Ask HN: Am I too old to start a programming career? - <AUTHOR> I first got into coding ~5 years ago. Taught myself a few languages, did some online contract work on the cheap. I decided to go back to school for a CS degree. By the time I graduate, I'll be in my early 30's.<p>I know that the CS field tends to skew young, especially for entry-level work. Am I likely to face significant barriers due to my age? <comment><USER2> Anecdotally, I hired one of the best engineers I have ever worked with when he was 31 and a junior in college. I hired him as an intern. Now, 5 years later, he's making well North of 6 figures.

By the way, as an intern he was still learning. I remember one day he was running the longest, worst, non-infinite loop I have ever seen. It ran for hours! He asked me what was wrong. That was his trick. He would ask good questions and he would remember what he learned and applied it later. That's why he's such a great engineer. He still learns to this day. So, do it! And keep on learning.

</comment><comment><USER3> I received my CS degree in 1984. I started my first consulting business 12 years later at 35, and founded a startup last year with a co-founder.

You will experience ageism, so plan on cutting your own path in either consulting, freelance development, or founding your own company. Build your network - that is where you will expand your opportunities.

Don't let anyone ever tell you that you can't have a productive software development career at any age.

</comment><comment><USER4> Based on my personal experience, no you will not face barriers. As a self- taught web developer in my early 30s (now headed back to school), I was able to get a lot of interviews at small and large companies. There is a lot of demand for good software developers. I do not think age will enter into the equation at all.

Yes I'm sure there is age discrimination in the industry and you might have he misfortune of encountering it. But based on your other comment, you seem to have a determined attitude which is great. Now quit inventing problems for yourself that don't exist and go spend your time doing something more worthwhile.

</comment><comment><USER5> Here is what i can tell you. dont just be a "programmer" Choose one hard topic and master it.

I suggest stuff like Cryptography, Machine Learning, blockchain technologies, networking, low level hardware programming stuff. That is what i think guys in 30's should be good for, the hard things all the kids run away from.

Things like web development are nowadays too crowded with young talent that, even if you get employed. you will feel weird. around teens and young adults.

</comment><comment> a-saleh My advice for you would probably be, to try to work/consult anywhere to get you the "at least 2 years experience in" your chosen specialization :-)

As far as I have seen, as long as the HR thinks you have been on somebody elses payroll because of your programming for some time, they will gladly hire you.

Or you might go the 'Double your consulting rates' way, often proselytized by patio11 in HN comments :)

</comment><comment><USER6> You could argue that most age discrimination is probably not at entry level positions, but more people wanting to pay rockstars in cans of rockstars not the wages that a great experienced engineer deserves.

</comment><comment><USER7> Switched careers and got my first gig as a junior developer at 41 years old. Now 43 years old and a 3/4 of the way through a CS degree as well, still working full time as a software developer (and loving it). Never too late.

</comment><comment><USER8> I don't think so - I went back to university to study Software Engineering when I was 34, graduated last year and walked in to a great job. I never felt like my age caused any barriers when applying for jobs, and actually was a great help as it made it easier to stand out from the crowd.

</comment><comment><USER9> I graduated college CS in 1988 at 30. I had no trouble finding work. But that was 1988, and I've never worked in SV. All the world is not SV.

</comment><comment><USER10> I'm curious, in regard to going back to school, are you pursuing a second (or first) Bachelors in CS or a Masters?

<comment><AUTHOR> First; I never finished a degree after High School. I got married instead and left school for the world of blue collar employment, which worked well enough for me for a long time, but now I find myself craving a career where I'm intellectually challenged.

<comment><USER11> That's funny, I would trade my office job for the right blue collar job opportunity.

</comment></comment></comment><comment><USER12> I'm going to start a fitness career at age 43.

Just do it.

<comment><AUTHOR> I'm going to do it no matter what, I'd just like to hear opinions on what I'm getting into, so I can plan for likely roadblocks.

</comment></comment><comment> _I- If that is bugging you, try choosing places where your managers will be older than you. problem solved.

<comment><USER13> Significant barriers due to age also include learning. When it comes to new technologies, do you think you'd learn the most in places where the manager is older than you?

Did you perhaps mean go to places where the manager is a good learner?

</comment></comment><comment><USER14> nope, nowhere close to too old. if anything, there's not much to worry about considering you already taught yourself some basics.

</comment><comment><USER15> Not at all. I know many in early 30 who are junior programmers.

</comment><comment><USER16> outside of bay area bubble, your age doesn't really mater. so, yeah, go for it</comment>


Ask HN: IDE Right Screen == Better Problem Solving Skills? - <AUTHOR> I'm curious to find out if my experience is atypical with coders. Like most developers my workstation setup consists of dual/triple monitors.
I've found (or at least perceived) when I'm displaying the IDE on the far right my problem solving/coding skills are better. Moving my IDE to the left feels unnatural for some reason and I don't appear be as productive. Unscientific I know, I measured this with the amount of tasks closed in a day.
Does anyone else find this? What screen do you have your IDE/Editor on? <comment><USER2> Aside from habit alone, such as how scrollbars are customarily at the right, this phenomenon may result from psychological or even neurological factors.

Psychologically, the side of your dominant hand is where you prefer to keep things you see as dangerous or more difficult to control. This is why a male and female couple usually walk with the male at the right. The male's job is to protect the couple from outside intruders, for which the male needs his good hand free and facing the outside world. The male's left hand is on the more trustworthy, less dangerous side -- by his female partner.

Neurologically, the left visual field (left of the visual fixation point) is processed directly by the right cerebral hemisphere, and vice versa. In normal mammals, the two hemispheres share data efficiently. For some individuals (particularly "split-brain patients"), this sharing may be more or less interrupted, in which case it would be better to keep the logical information in the right visual field so that the left cerebral hemisphere can process the data effectively. After all, the left cerebral hemisphere is made to process serialised data, such as source code.

<comment><AUTHOR> Wow, this is really interesting stuff. One could read from this that to be more creative, say, for designers they should focus on the left screen.

</comment></comment><comment><USER3> If there is a difference, I'd suspect it to be the result from a combination of environmental, ergonomic, and physical factors. The subjective experience could be shaped by slight differences between monitors; directional glare, acoustic comb filters and air drafts; habits related to posture, ocular dominance, or physical ailment; or a preference for interacting with the IDE via mouse or keyboard. Which is to say, that a good first working hypothesis is that the phenomenon is limited to "this place, this work, this time, this equipment" rather than generalizing to an intrinsic property of the person.

My advice: keep working with the IDE on the right so long as it makes you happy.

Good luck.

</comment><comment><USER4> some of my most productive times have been away from the computer -- thinking very hard how to do things. perhaps walking around the block, or staring at the wall, or standing in front of a whiteboard.

personally, i used to have a pretty nice setup with one screen and a tiling window manager. with one screen you don't have to move your head at all, just use the keyboard to flicker between desktops. perhaps this works better with plain terminals / terminal editors, where you don't lose any screen real estate (in comparison, using e.g. visual studio is pretty nice, but on a small monitor it is sort of like looking at a text file through a porthole)

</comment><comment><USER5> Running an iMac (23") with a second display (23"). Second display is on my right, and there's a wall on my right, too. Keyboard is positioned directly in front of the iMac (left) and the 2nd display is slightly tilted toward me.

My usual setup is:

Browser on right. Mail and IM in a different desktop also on the right.

Sublime, iTerm, SourceTree and other dev tools on the left.

</comment><comment><USER6> I always assumed that your dominant side is the side you should keep the screen of focus on. I'm a righty and always have my editor on the right screen, even when I'm doing a lot of research. Then again, my right screen is nearly right in front of me with the left screen offset and angled just next to it ~my 11 o'clock.

</comment><comment><USER7> My IDE's are always on the left and my other materials on the right. But I haven't felt very productive since I got my new 24" dual monitor setup. Perhaps I should move my IDE to the right and see what happens.

</comment><comment><USER8> I recently moved desks and had to switch the side my external monitor was on. I have to admit I felt "slower" with the new setup, but after a few days I felt like I was back to normal.

</comment><comment><USER9> Sounds worthy of a more formal study. (If I had to bet, I'd say there's something to it.)

<comment><AUTHOR> I believe there is more at play here. I hope someone more qualified would research this, very interesting.</comment></comment>


Ask HN: What programming language to learn for a statistician? - <AUTHOR> My SO, is currently a statistician/data research, she primarily that works in excel/vba/sql.
As she works in the public sector, we would like to broaden her employment prospects and looking at most J/Ds for Data Scientists or similar stats based roles programming is a must.
So which is the most suitable language to learn? Python? R?
TLDR; Data Scientists, what did you start out learning? What worked? What would you do differently? <comment><USER2> As other said here, Python seems like the good choice; Plus it's a "real programming language". I mean, you can use it for more stuff: web programming, web scrapping, etc. There are a lot of libraries, even for game development.

If you can learn more than one I would recommend learning R as well, rather than other technologies such as octave or matlab..

</comment><comment><USER3> I'd go with Python and specifically the scientific + numerical libraries. There are books like "Python for Data Analysis" from O'Reilly.

Five years ago I would have said "R", but Python enthusiasts have been replicating what R does in Python at a frantic pace, and R will never really replicate what Python brings to the table.

</comment><comment><USER4> As a statistician I spend ca. 80% of my time collecting and transforming data. Maybe because I never had the luxury having 1-2 own data engineers doing that for me. Having worked with SAS, SPSS, Matlab and python and tried some other tools I would say that the choice of statistical programming language does not make a big difference. If you once understand a modelling process you can reproduce/use it in any language as long as there is a documented package for it.

On the other side knowing how to work with data is IMHO more important. Being an SQL pro, knowing how to think in data sets instead of data records, when to use flat tables, how to use vectorization and matrix manipulation even for all day tasks especially in "in memory" systems is essential.

I would say SQL + R/python makes a good combination. With that you can solve a lot of problems at least two different ways. R gets integrated step by step in DWHs, what makes a lot easier. I hope SAS dies a short and painful death, but could be also a valid choice.

</comment><comment><USER5> I'd note that SAS is still used in the public sector and enterprise to a larger degree then you'd think, just because of legacy usage. For example, the FDA had to clarify a few years ago that R was okay, because their regulations required the use of SAS5 formatted data for electronic submissions, and when I worked in a county health department, we used SAS.

Perl was also the bioinformatics golden child for a while, and I expect there are still people using it for that purpose in industry.

That said, looking beyond the public sector I'd look at Python as broadening her prospects more then anything else, just because it's more broadly used in a variety of industries, and general understanding of it is more broadly applicable.

I'd suggest she also learn enough R to import stuff and export stuff. If there are R scripts she needs to use, python can be used to script R from the command line, and she can import data, process it, and be able to export the results back into python as an intermediate step.

</comment><comment><USER6> From a statistics perspective R is the language to learn.

Python is good for data engineering or pipelining, etc - but R is the best for analysis:

\- Rstudio is a much more friendly interface than IPython/Jupyter notebooks

\- Python's visualization libraries can't come close to ggplot2

\- Python lacks an effective grammar of data manipulation better similar to dplyr or magrittr.

I think HN is more engineering focused, hence increased exposure to Python. At the places I've worked/interviewed for data science, 1 was full Python (though they have a high eng bar for data scientists, and very few data engineers), and the rest had a reasonable split of R and Python. Your SO will be fine either way but might find R more intuitive and better suited to statistics work.

</comment><comment><USER7> Dedicated probabilistic modeling environments are also gaining ground and may become standard in the near future.

The holy grail is something like: feed in some data, or parameters and have an algorithm generate the corresponding correct Bayesian inference and posterior distribution. It's very easy for scientists, even with years of knowledge and experience, to implement things incorrectly ;)

Check out Stan and Figaro:

[http://mc-stan.org/](http://mc-stan.org/)

[https://www.cra.com/technical-expertise/probabilistic- modeli...](https://www.cra.com/technical-expertise/probabilistic- modelingprogramming)

</comment><comment><USER8> Python or R, or a combination of both: [https://en.wikipedia.org/wiki/R_(programming_language)](https://en.wikipedia.org/wiki/R_\(programming_language\))

</comment><comment><USER9> R is what companies that are leaving SPSS and SAS are switching to. While I also like Python for Data Science, R seens to be more popular in the industry.

</comment><comment><USER10> Python. It has all libraries in the world and it's easy. Plus you'll be able to do some normal, general-purpose programming in it.

</comment><comment><USER11> I'd also recommend you to have a look at F#. It's functional language so it might be more intuitive for mathematician to learn. And it can also call R functions, so you can use all the R statistical function + packages.

</comment><comment><USER12> Julia

</comment><comment><USER13> Ruby

</comment><comment><USER14> Python IMO.</comment>


Harvey Golub's Response To Warren Buffett - <AUTHOR> http://online.wsj.com/article/SB10001424053111903639404576516724218259688.html?mod=WSJ_Opinion_LEADTop

<comment><USER2> I don't understand the often-repeated conservative talking point that "almost half of all filers pay no income taxes at all". There are only two kinds of people who pay no income taxes at all: the desperately poor and the super-rich (who are taxed on investments at the 15% long-term capital gains rate). Is the conservative proposal really that we should tax the desperately poor? Because that seems not only a terrible public policy choice, but an extremely inefficient way to close our budget gap.

<comment><USER3> I did a little googling for you, from 2009:

"About 47 percent will pay no federal income taxes at all for 2009. Either their incomes were too low, or they qualified for enough credits, deductions and exemptions to eliminate their liability. That's according to projections by the Tax Policy Center, a Washington research organization."

...

"In recent years, credits for low- and middle-income families have grown so much that a family of four making as much as $50,000 will owe no federal income tax for 2009, as long as there are two children younger than 17, according to a separate analysis by the consulting firm Deloitte Tax."

[http://finance.yahoo.com/news/Nearly-half-of-US- households-a...](http://finance.yahoo.com/news/Nearly-half-of-US-households- apf-1105567323.html?x=0)

<comment><USER4> Low- and middle-income families pay most of their taxes in the form of payroll taxes, which are a mandatory 15% tax (shared by the employer, who also pays their salary) on all income. Consumption taxes also apply to everyone, and for those who spend most of their income each year, this amounts to at a 5-10% additional tax.

Virtually nobody, with the exception of the very poor who qualify for the EITC, are safe from these tax. The "50% pay no tax" is a right-wing talking point that is intentionally dishonest.

<comment><USER5> What makes Golub's point so misleading is that he counts consumption taxes, payroll taxes, state taxes, and even future estate taxes when he pays them, but only looks at federal income tax to get the "half the people pay nothing" line.

<comment> eric-hu Ah, thank you for clarifying on that. I was wondering how he came up with the figure that 90% of his income would be taxed.

I wonder how much the average lower and middle class person would be taxed according to this accounting scheme.

<comment><USER6> I don't think it's possible to come up with the 80 to 90 percent that he claimed. The top marginal rate for federal tax is 35%. State taxes and sales taxes can be deducted from income for federal tax. Social Security tops out at $106,800.00, and Medicare taxes are 1.45% on all income. As far as the estate tax, he won't pay that - unless he inherited the money. His heirs will pay an estate tax on anything over 5 million dollars that they inherit from him

The federal estate tax tops out at 35%, but also excludes some property and deductions. New York state's estate tax is also capped at 35%.

Finally, the estate tax is seldom actual double taxation since a large percentage of estates subject to taxation are in the form of stocks or property which are not taxed until they are actually sold.

</comment></comment></comment></comment></comment></comment><comment><USER7> This response is nothing more than political talking points, whereas Warren Buffett's article was a thoughtful and meaningful piece about a simple positive change the country could make to help control the deficit. I'm not saying some of his points aren't possibly valid, but nothing as written in this article is deep enough to be meaningful.

</comment><comment><USER8> Tax rates were higher under Clinton and the economy was booming. Oh, and there was a budget surplus.

Along comes W, we end up in multiple confrontations over seas, cut incoming revenues (of which I will admit to benefiting), and end up with huge deficits?

Clearly going back to anything in the Clinton era would tank the economy. The particular article is particularly fluffy in the "private enterprise will solve all problems" with comments about infrastructure programs like trains, etc. The fact that we are spending less on infrastructure (roads, rail, fiber, etc) is one reason we are seeing an overall quality of service decline.

I will certainly admit there are issues with the US tax code and there needs to be more efficiency in the system. It is pretty clear that relying on private industry for infrastructure (especially where there is a (or near) monopoly, the companies do _NOT_ do what's write for the country. Another local to California example PG&E and the gas pipeline debacle.

<comment><USER3> The problem isn't taxation, it's spending. If we went back to Clinton levels of spending we'd have a massive surplus. The big cuts that are coming due to the debt ceiling negotiations aren't actually cuts, they're decreases in predicted spending increases -- we can't even hold the budget steady. This is complete madness.

<comment><USER2> The problem is neither taxation nor spending. It's a failure to correlate revenue to our financial commitments. We will not be able to cut our way to deficit reduction in our lifetimes; there's just too much deficit there. The superstitious belief that we can balance our books by cuts alone (thereby likely throwing the country into a second recession, which would make matters worse) is the real madness in this discussion.

<comment><USER9> There are multiple problems, some of which interrelated.

You could go all the way back to the constitution of the USA. The US has non- compulsory voting, because in theory this ensures only well-informed, conscientious voters turn up. In reality, it leads to pork barrelling. Let's say you are a chicken farmer, in a chicken farming district, and Congress is considering a subsidy (or tax) on chicken farms. You and the boys at the chicken farmer's club have an incentive to mobilize, and try to get people to vote for the party (or candidates) with chicken-friendly views. But the apathetic masses would rather just not vote, because this pork barreling debate will not hurt their wallets _that_ much.

Whereas in Australia (which has compulsory voting), a politician who runs an anti-pork campaign can get a fair bit of support from apathetic voters who don't want to be at the polling booth, but have a sneaking suspicion that government spending is not always wise.

</comment></comment></comment></comment><comment><USER10> There are a number of huge problems with this argument, but the most important problems are the common ones:

1\. There's just so much waste!

The byline reads: "Before you ask for more tax money from me, raise the $2.2 trillion you already collect each year more fairly and spend it more wisely." This is then supported by a few examples which don't address any of the big entitlement programs necessary for nontrivial tax-reform.

2\. I pay such a large percent of the taxes!

He draws authority from the fact that "Today, top earners—the 250,000 people who earn $1 million or more—pay 20% of all income taxes, and the 3% who earn more than $200,000 pay almost half. Almost half of all filers pay no income taxes at all. Clearly they earn less and should pay less. But they should pay something and have a stake in our government spending their money too."

This is clearly a less meaningful statistic than percentage of income paid, which was the crux of Buffett's argument. If I posses say, 90% of the assets in some country X, certainly it doesn't make sense for me to yell, 'hey, I pay like, 60% of the taxes in this place, and all of you Xonian slackers in the bottom 5% are skating by on a free ride.' It particularly doesn't make sense if, as he proposes, there is no tax on gifting money to your (grand)children, and so perhaps I just inherited the wealth.

</comment><comment><USER11> The top 250,000 people basically run the government, so his polemic needs to be addressed at them.

All the special interests he talks about are from his cohort of the top .1%

Basically, this article amounts to "Let Them Eat Cake"

<comment><USER12> care to elaborate "The top 250,000 people basically run the government"?

<comment><USER13> Look up the citizens united case. The supreme court essentially said that money = speech, and therefore, spending money to influence political campaigns and elections is protected by the first amendment.

<comment><USER12> but i think the 250000 people is just the poor with a good life.... isn't that about the <1% you are taking about?

<comment><USER13> Not sure I understand. The top 1% have little in common with the poor, especially when it comes to political interests. Due to the supreme court case, they can now spend unlimited amounts of money to try and influence politics, which means that despite their significant difference in population sizes, they are over-represented in our government.

<comment><USER12> the top 1% buys peanuts that cost 250.000 each.

</comment></comment></comment></comment></comment></comment><comment><USER9> Did he actually read Buffett's article? Warren Buffett points out that while the rich _do_ pay quite a bit of income tax, they often don't pay the same share of other taxes.

Then he claims he pay's 80%+ tax. Um, really? I guess if you had massive losses of lowly taxed income, and a really high salary, they could balance each other out and you could pay unbounded taxes. But over 80% does not seem typical.

</comment><comment><USER14> What strikes me as most odd is the fact that conservative'ŝ constantly point out that 50% of people pay no taxes at all.

They use this figure to illustrate a demand for raising taxes on these people.

I never heard a conservative ask the question: Why are there such large income disparities within our society? And how can we fix them?

The answer would not be raising the taxes on the poorest, but to lift them out of poverty. However, most people know damn well that this would not work without some major adjustments to the way we do business.

<comment><USER13> I do agree with you, but I feel I should provide a slight correction. The claim is that 50% of people pay no federal income tax. They still pay payroll tax, state tax, and sales tax. So when conservatives make the '50% claim' they are being fairly deceptive.

</comment></comment><comment><USER15> _"Of my current income this year, I expect to pay 80%-90% in federal income taxes, state income taxes, Social Security and Medicare taxes, and federal and state estate taxes."_

Huh? What is he possibly doing that warrants this high of a tax on his income?

<comment><USER2> It's particularly odd that he's planning on paying estate taxes (unless he plans to die this year). Estate taxes are paid by the estates of decedents, not by living people.

</comment></comment><comment> buff-a There is a useful and effective fiction called "property" that I continue to support. However, when 3% of the people earn 50% of the money, and use this fact to _complain_ about paying 50% of the taxes, then it may be time to demonstrate that this fiction exists only as long as it is mutually beneficial, as opposed to some God given right or a fact of nature.

</comment><comment><USER16> Jon Stewart recently took down the argument to tax the poor rather effectively:

[http://www.thedailyshow.com/watch/thu- august-18-2011/world-o...](http://www.thedailyshow.com/watch/thu- august-18-2011/world-of-class-warfare---the-poor-s-free-ride-is-over)

</comment><comment><USER17> Yeah, "you earned it". Not your children. Why should they get free ride?

Estate taxes exist to encourage doing something productive with your immeanse wealth rather than just hoarding it.</comment>


Universa Blockchain Protocol – faster transactions, smarter contracts - <AUTHOR> http://universa.io <comment><USER2> This is a consortium chain with trusted nodes. It is therefore not an open and permissionless public blockchain. This may have many uses, but it is not competing with Ethereum. It is competing with Ripple, Bitshares and other distributed databases run by trusted parties.

<comment><AUTHOR> is this a scam or Ponzi scheme? a lot of people say that. But if we look who are the person behind it, I think it's real.

</comment></comment><comment><USER3> No individual cap = money grab

<comment><AUTHOR> Yeah, but I think it is revolutionary.

</comment></comment><comment><USER4> interesting, looks like they are marketing themselves as ethereum 3.0

Hard to trust some ICOs these days but the smart contract space is pretty full of future opportunity

GUI contract builder sounds like a cool novel approach to offer some visual programming system, i find with ICOs its super hard to invest in something that's not running in production in front of everyone.

For investing in the crypto coins that are stable and in production checkout the live forecasts at [https://bitbank.nz](https://bitbank.nz)

</comment><comment><USER5> Ponzi pumping should not be supported on hacker news</comment>


Children work in Congolese mines where cobalt is extracted for smartphones - <AUTHOR> http://news.sky.com/story/meet-dorsen-8-who-mines-cobalt-to-make-your-smartphone-work-10784120 <comment><USER2> Much of the angst in this thread are the first-world confused sort: "Why don't they just eat cake?" Its a hard world. You don't solve child-labor by simply firing the children. There has to be a whole social net to catch unemployed children, feed them and give them schooling.

I worked all my young life, in Iowa, on a farm. One of the most dangerous jobs in America according to the actuarials. No lasting damage to me, though not all my cohort actually survived unscathed into adulthood. Heck, half my fathers' generation had nicknames like 'lefty' and 'stub'.

Should working children on farms in Iowa be banned? Had it happened when I was young, half the family farms would have gone under.

Its not some academic third-world issue. You ate that food we produced. And at the time, it wasn't going to be produced any other way.

<comment><USER3> I really dislike the anti-"academic" viewpoint of this comment. It is a issue that has been solved countless times before and applying academic analyses are exactly what's needed to resolve this.

> Should working children on farms in Iowa be banned? Had it happened when I > was young, half the family farms would have gone under.

probably yes. If you can't support a business without relying on child labour, it's not much of a business. I'm guessing this was around 20-40 years ago, during which time food production boomed across america and food prices plummeted. So yes, the food would have been produced regardless, you and your peers would have had more time to spend on education and the net personal and economic benefits would have been positive.

If you took the children out of the mines the cobalt would still get mined. The owners would find technology and process efficiencies to stay price competitive, if those don't exist then the price of mobile phones should go up.

These parents are no different to those in developed countries and would want what's best for their children, if they had the choice - so that safety net would get added.

<comment><USER4> > If you took the children out of the mines the cobalt would still get mined. > The owners would find technology and process efficiencies to stay price > competitive, if those don't exist then the price of mobile phones should go > up.

You talked about the mine owners and the price of phones, but what about the children and their families? What would they have to do?

<comment><USER3> Go to school.

If there's no schools then there's not enough tax being drawn from the mine, so tax the mine (or cobalt exports). You do that until the point smartphones become unaffordable (which we are really, really far off).

Except that's not what happens because it's not in the West's interest and there's enough influence over dictators etc. to keep it that way.

<comment><USER5> Right. So it's not what happens. It's the DRC, it's mine cobalt or starve.

What's your point, unless you were actually agreeing with the parent?

<comment><USER3> the parent is implying that this is the way it is, the way it was and the way it always will be (and backs it up with a personal anecdote). That's not the case though - it is possible to remove a dictator, it is possible to stop wars, it is possible to change employment laws, it is possible to send children to school and it is possible to change the world for the better. And it's not a theory.

<comment><USER6> Your "let them go to school" is the equivalent of "let them eat cake": if they could go to school they probably wouldn't be working in a mine in the first place :/.

If you want to try to solve the problem through some random intervention you need to take a step back and fix whatever is preventing them from going to school, not arbitrarily taking away their jobs and then patting yourself on the back for a problem solved.

<comment><USER3> Taking away the job does solve the problem though, because the cobalt must come from somewhere, so the mine will increase prices to pay for the new labour they need. And the tax from this will pay for the schools.

The ultimate reason it doesn't happen is because people in the west don't want to pay more for their smartphone (they are not to blame though, as they won't see this picture, our politicians, corporations and planners are the groups that maintain this picture deliberately).

<comment><USER5> You are talking about a country with child soldiers and indentured service. Your perfect-sphere-of-a-market is even further from reality than in developed countries.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> This is a delicate topic. "In the United States, Dodd–Frank Act required manufacturers to audit their supply chains and report use of conflict minerals", see [https://en.wikipedia.org/wiki/Conflict_minerals](https://en.wikipedia.org/wiki/Conflict_minerals). The problem here is that cobalt is not included in the list of conflict minerals.

For one point of view, you may want to read "Why Cobalt Is Not a Conflict Mineral": [https://agmetalminer.com/2011/06/06/why-cobalt-is-not-a- conf...](https://agmetalminer.com/2011/06/06/why-cobalt-is-not-a-conflict- mineral/)

<comment><USER8> Agreed. A lot of things seem black and white on the surface. A lot of articles seem to imply "think of the children, make cobalt a conflict mineral!" but this would have some insane destabilizing effects.

The story has a lot of parallels to the story of the Harkin Bill. For those that don't know, I've paraphrased the Wikipedia article below:

"Based on the Bangladesh Bureau of Statistics Labor Force Survey estimated there were about 5.7 million 10- to 14-year-old children engaged in Child labour in Bangladesh. This number may have been as high as 15 million children."

... "In 1993 employers in Bangladesh' ready-made garment (RMG) industry dismissed 50,000 children (c. 75 percent of child workers in the textile industry) out of fear of economic reprisals of the imminent passage of the Child Labor Deterrence Act"

... "The act which banned "importation to the United States of products which are manufactured or mined in whole or in part by children" would have resulted in the loss of lucrative American contracts. Its impact on Bangladesh's economy would have been significant as the export-oriented ready-made garment industry represents most of the country's exports."

... "UNICEF sent a team of investigators into Bangladesh to learn what came of the children who were dismissed from their factory jobs. UNICEF's 1997 State of the World's Children report confirmed that most of the children found themselves in much more deplorable situations, such as crushing stones, scavenging through trash dumps, and begging on the streets. Many of the girls eventually ended up in prostitution."

I highly recommend everyone read the full Wikipedia article: [https://en.wikipedia.org/wiki/Child_Labor_Deterrence_Act](https://en.wikipedia.org/wiki/Child_Labor_Deterrence_Act)

\- - - -

For anyone who skipped to the bottom for a TL;DR: Bangladesh had millions of child laborers, US Senator Harkin proposed a bill that would ban importing products made with child labor, and Bangladesh's garment industry (which was most of the country's exports) fired 75% of the children. As a result most children found worse work: crushing stones, scavenging trash, and prostitution.

<comment><USER9> Ok so should we supinely accept that 1%-ers are benefactors because they're keeping children off the street by making them work?

Sorry but: fuck that.

If a country is competitive because it's essentially engaging in slavery you just increase pressure, up to blockade and sanctions. That is, until they start taxing business enough to pay for proper public schooling, housing and sanitation.

This race to the bottom bullshit has got to stop.

<comment><USER10> When child labour was stopped in the mills in the UK, there were similar arguments made about how we shouldn't curb the free market.

<comment><USER11> Here is Engel's account of working conditions for children in UK mines in the early 19th century:

[http://www.historyhome.co.uk/peel/factmine/childmin.htm](http://www.historyhome.co.uk/peel/factmine/childmin.htm)

</comment></comment></comment></comment></comment><comment><USER12> I don't know what makes me most sick : That a profitable business like smartphone making rely on child labor

Or that people are using 900$ phones to explain that those children should be happy to have a 1p/day job.

Free market surely doesn't apply to starving 7 years old. What are the alternative they know about? Who brought them to the mine? What the difference between that and slavery? Is slavery allowed because "they could end up as prostitute"?

As Congo owns a big proportion of Cobalt they should be able to hire "adults" to do the work and pay them more. Given they have any incentive to do so, which they currently don't.

<comment><USER13> No, the main actors involved have no incentive in doing so.

[http://projectcensored.org/19-american-companies-exploit- the...](http://projectcensored.org/19-american-companies-exploit-the-congo/)

> Historically, the U.S. government identified sources of materials in Third > World countries, and then encouraged U.S. corporations to invest in and > facilitate their production. Dating back to the mid-1960s, the U.S. > government literally installed the dictatorship of Mobutu Sese Seko, which > gave U.S. corporations access to the Congo's minerals for more than 30 > years. However, over the years Mobutu began to limit access by Western > corporations, and to control the distribution of resources. In 1998, U.S. > military-trained leaders of Rwanda and Uganda invaded the mineral-rich areas > of the Congo. The invaders installed illegal colonial-style governments > which continue to receive millions of dollars in arms and military training > from the United States. Our government and a $5 million Citibank loan > maintains the rebel presence in the Congo. Their control of mineral rich > areas allows western corporations, such as American Mineral Fields, to > illegally mine. Rwandan and Ugandan control over this area is beneficial for > both governments and for the corporations that continue to exploit the > Congo's natural wealth.

<comment><USER14> This should be the top comment. Nearly all of the problems in the world revolve around US installed dictators, financed by US banks, lobbied by US corporations.

<comment><USER3> it might be true, but it's just not pragmatic to just say "America did it"

The US dictators, banks, corporations and citizens are ruling, financing, lobbying and voting for this regardless. To solve the problem each of these need their incentives aligned (e.g. give dicators a better deal for not allowing this, limit profitability of cobalt mining to the banks, force coprorations to declare "cruelty free", write articles like this one to influence citizens to vote for favourable policies).

</comment></comment></comment></comment><comment><USER15> The work of a scholar I follow has covers this topic a little. Chris Blattman recently co-wrote an op-ed [0] about his data covering sweatshops in Ethiopia. They found that it wasn't always so clear that these dangerous industrial jobs lifted people out of poverty.

In a really neat trial, they went to factory owners and randomized the acceptance for job applicants, tracking the outcomes of people who found employment elsewhere. Chris originally made his name studying the lives of former child soldiers in Uganda. Recommend his mostly-professional twitter feed [1]

[0] [https://www.nytimes.com/2017/04/27/opinion/do-sweatshops- lif...](https://www.nytimes.com/2017/04/27/opinion/do-sweatshops-lift-workers- out-of-poverty.html?_r=1) [1] [https://twitter.com/cblatts](https://twitter.com/cblatts)

</comment><comment><USER16> If anyone's interested, there's a brand of phones that's actively trying to change this: [https://www.fairphone.com/en/](https://www.fairphone.com/en/)

Contrary to other brands, they can actually try to fix it because they can also admit that this is an issue with their first two phones: because they're an awareness campaign as well, because they're documenting what issues they encounter and why it's so difficult, and because they want to be the trailblazer that figures out how to improve this situation, so other brands can copy their model.

</comment><comment><USER17> Look up the admitted history of US intervention in the Congo and nearby countries. We created a messed up economic and political situation deliberately with military/intelligence tactics so that mining companies could more profitably exploit those countries. If we had not used strong arm tactics then they would be charging much more for the minerals and would have a good chance of creating a healthy economy.

</comment><comment><USER18> I don't like it when people try to emotionally manipulate me.

 _Dorsen is threatened with a beating as he works in heavy rain_

It's almost a cliche. There may be a horrible injustice going on here, and if so it really deserves better reporting. Give me some numbers, some sense of scale. Is this a widespread problem?

<comment><USER19> There are numbers to satisfy you, but some people connect more with concrete stories. That's how they get a sense of the problem, by hearing stories from real people, rather than numbers.

People are different in what makes them care.

<comment><USER20> I wish there was more numerate reporting out there though. I'm all for there being news sources for people who prefer the individual-human perspective (though some abuse this by picking unrepresentative anecdotes to spread dangerous misconceptions), but I'd like there to be some that served the more statistically-conscious market.

<comment><USER19> Oh yes absolutely.

</comment></comment></comment></comment><comment><USER21> The sad thing about these situations is that for the people working for pennies a day, it's better than nothing.

<comment><USER22> > The sad thing about these situations is that for the people working for > pennies a day, it's better than nothing.

You're assuming they are paid to begin with, there is plenty of child-slavery in Africa. Some of these kids are sold by relatives. They aren't paid at all since the relative has already been paid.

<comment><USER23> Even in america child labor was typically unpaid. Your parents made you work in the fields and in return they fed you and raised you. I would imagine these scenarios are similar.

</comment></comment></comment><comment><USER24> I'm glad they have a job. Their families probably need it very much. I hope that their hard work allows the next generation of Congolese to live in greater prosperity.

<comment><USER25> I have seen the impact of mines like this first hand in many third world countries. It is not what you think.

The people work horrendous hours for a tiny amount of money - maybe 50 cents per day. At the end of the day they need to pay for food (no time to grow it) and pay for people to do things like make their shelter, clothes and transport (no time to do it for themselves). And so they have zero money left. They also work in horrible conditions and have a life expectancy of ~40.

In many countries (Cameroon, Bolivia, Ivory Coast, Senegal, etc. etc.) I have seen where this crosses a line, and the locals simply choose not to work and just go back to growing their own food etc. Often they are happier and better off.

Yes, this forces the wages to go up a tiny fraction, but in reality it is almost nothing, because there are always more naive country-folk coming in who think (as you do) "having a job is great" and they will "provide for their families" etc. By the time they figure out the whole thing is a terrible scam and quit, they already live in a slum in the city and can't go back. They are trapped. They probably even owe the mine some money or live in housing provided by the mine, so they are literally owned.

Your idealized view of Capitalism is plain wrong. It does not happen like that in countries that do not have strict labor laws. (and even then, I would argue that many in the USA are working-slaves)

Read Grapes of Wrath if you have not, it does a fantastic job of illustrating how people become trapped in extremely low-paying jobs with little to no choice.

<comment><USER24> You are wrong to think I'm not aware of the grisly circumstances under which many work, or that I've never been in despicable situations myself, or that I'm not familiar with the literary works of the communist-leaning John Steinbeck. I stand by my original statement.

<comment><USER25> You are completely aware that working for pennies a day is pointless, shortens their lives, and many people would be better off not doing it.

However, you stand by your original statement that you are glad they have a job.

Color me confused.

<comment><USER24> You don't get to compare reality against some imagined utopia where these mine jobs don't exist and everyone is fed and happy children are attending air conditioned schools with loving parents at home. You only get to compare against what would actually happen: the boys would become child soldiers because it beats hunger, and the girls will turn to prostitution. Now it is your turn to tell me this is a better outcome.

<comment><USER25> > _Now it is your turn to tell me this is a better outcome_

I can tell you what I have seen, not anything at all imagined.

I have seen hundreds of people quit their jobs in third world mines and other "western owned slave labor". So I can tell you first hand exactly the outcome that happens.

I have seen those people go back to growing their own food, making and washing their own clothes, building their own houses etc. They go back to being members of their communities. They have massively more food and water than they need, and quickly have a lot of social time. Now they have time to spend with their family and friends. They don't have much money, so often they won't own a car, but they have plenty of food and water and shelter and family time.

Their basic needs are met, and they have a good life.

Actually, it virtually all of the 15 countries I have been to in West Africa I have met hundreds and hundreds (and seen thousands) of people that have massively more leisure time than anyone I know in the Western World, and on the whole I would say people are happier. Certainly they have no stress, no timelines and don't answer to any boss. They have no alarms, and don't care what time it is on any given day (or what day it is).

This is not hollywood. This is not the world CNN tells you it is. Child soldiers and prostitution are not the only option, and in my experience in over 30 undeveloped countries, they are extremely rare.

<comment><USER26> What you write sounds good, and you seem to have the experience to back yourself up, but the overall picture doesn't make sense:

You say that people who stop doing this back-breaking, underpaid work end up better off. If that's the case, why are people still staying on the shitty job? Why aren't they making what looks like a no-brainer decision from our viewpoint?

<comment><USER25> As I said in the original comment, there are many possible reasons. They have already moved from their farm to live in a slum in the city, and can't go back. They probably owe some money for that move, maybe even they owe money to the mine. They maybe even live in mine-supplied housing.

Of course, the lure of "lots of money" is a strong one, and they will work for years and years thinking one day they will have the lucky break that will make the difference and pull them out of poverty. (side note: sound familiar? Look around you)

Like I said, read grapes of wrath to see an excellent account of how people head towards this "working dream" only to become disgustingly trapped working as slave labor, continually going backwards even though they work harder and harder. When they are unable they are kicked out to die and replaced.

And finally, many people do quit and attempt to get away from it all, but there is an endless stream of naive newcomers to continually staff the mine. (again, see this clearly shown in grapes of wrath)

<comment><USER26> Now you've made me wish I'd read Grapes of Wrath!

Thanks for the explanation. Those may not be good reasons, but they're understandable reasons that help solve the puzzle for me.

<comment><USER25> I am curious, how do you distinguish between "good reasons" and the reasons that are causing this to happen ?

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> Imagine the same thing happened in somewhere in USA or Europe. Will anyone argue against shutting down these cell phone companies?

<comment><USER28> No, because people in industrialized nations have alternatives --either job- wise or welfare subsidies. People in third world countries don't have good alternatives --they are where we were 80-100 years ago, maybe more.

<comment><USER29> Third world is also no longer used in Social Sciences and Academic circles as a classification as Third World originally meant the countries that did not either support USA or the Soviet Union during the Cold War, I think the latest term is developing states.

That aside, why not ensure better regulations and ways on the mines, if cobalt is only readily available in large amounts in the Congo and phones being one of the more profitable products, you are only exploiting the local peoples.

I understand it would have a huge impact on supply chains and manufacturing but the alternative is losing lives, I remember this same debate from years ago about people losing lives for phones in Congolese mines and am somewhat amazed that its literally the same issues.

<comment><USER28> Right, I meant underdeveloped nations. But third world is understood as long hand for the same --but now without the hegemonic context. (calling them one way or the other does not magically improve their lot or make it worse)

Cobalt is available in other countries (US, Mexico, among others) but starting up a mine is not cheap and takes years --I think Idaho has/had one?. We could mine more and then those people would lose the little they have.

As someone else said, their best bet as a society is to follow in China's footsteps to ramp up quickly --though note they have paid a pretty heavy price (pollution). Still, on the whole, I don't think it can be argued sincerely that they have not come out way ahead.

</comment></comment></comment></comment><comment><USER30> As long as they're paid wages which are attractive to them, I don't see exactly what's wrong. Every modern society in the world has worked through child labour to the point that they can obsolete it. The prohibitions against it in the west came after most people didn't work as children anyway.

<comment><USER31> _As long as they 're paid wages which are attractive to them, I don't see exactly what's wrong._

When the alternative is starving to death a _very_ low wage that essentially only gives you enough to not die becomes quite attractive. That doesn't mean it's fair, reasonable or right.

<comment><USER32> > When the alternative is starving to death

This. If this is the alternative how is the solution stop buying cobalt from them? So basically, cos we want to feel morally superior these people will have to alternatively starve to death cos there is not much else going on in that part of the world to make money on... ? :/

While I am sadden by stories like this, unfortunately I think the solution requires complete overhaul of the environment they are in not just running the mine out of business. They need _another_ alternative. But this cannot be changed by the outsiders :(

And there are similar stories, if not worse, with tobacco industry in Africa, but I assume it is not as attractive to journalists as "mining" is seen more like a slave job. (Kids basically pick and sort tobacco leaves with no protection which makes them absorb dangerous amounts of nicotine)

But the solution is not to stop smoking but to give them alternative. The only reason we don't have child labor in western countries is that we have alternative means of getting food for which we, thank god, don't need to utilize children.

(One good alternative I've seen is tea plantations, partially cos tea doesn't have harmful chemical for people so they need to invest less in protective gear for example)

</comment></comment></comment><comment><USER33> cobalt is being phased out of lithium batteries, at least at tesla.

</comment><comment><USER34> what if someone built a coding farm instead of mines, people would still complain because it's taking advantage of them but isn't progress the best way to elevate them?

</comment><comment><USER35> That is sensationalism out of the context of living conditions of those children.

First of all, just all children in Africa are "working" in the sense that they are fetching water every day from wells and water sources, often on their heads, as much as they can carry, but not too much. Without water, no child can wash their bodies, and no food can be cooked. Children work in any area of life helping adults to push vegetables, sort things, and anything where a child can be helpful.

They are not spoiled and learn that way how to contribute to family. There is nothing wrong with it. It is not "work", and children are not "paid" moneys, they are simply helping their parents.

There is really nothing wrong with helping.

The environment in such mining areas is such that families usually have no work at all. Suddenly somebody is opening a mine, and it becomes matter of speed to collect whatever is representing a resource, to exchange such resource for better life.

Sometimes work is so easy such as separating various stones from other stones.

When parents know that there are some dangerous chemicals, they would not involve their children. Congolese people are not that dumb how story wants to show it.

Children are helping in such activities that are appropriate for them. Nobody is forcing them, and there are schools, those who need to go to school, usually go.

Everywhere in Europe, before European development, before some 100 years, children were helping parents in the same way.

Now with that nice life, and all development that happened in the meantime, it is easy to point out fingers "look you are employing children", but that is not quite correct description. Problem is larger than "children labor", and I do not see it as "labor", I see that as children helping parents. I have never seen a forceful parent or "employee" who is forcing children to work.

Sensationalism makes it appear so.

To understand really situation, one need to come on place, and not just sit behind a modern computer, watching pictures from Congo.

In the end, what you want? That they do not get any food, money, cloth, resources required for living?

<comment><USER36> Interesting, the variations in explaining this stuff away. Here are you saying "this labour is just part of being a family in Africa", and upthread there's someone saying "if children didn't have these jobs, they'd be forced into prostitution".

> _When parents know that there are some dangerous chemicals, they would not > involve their children._

I've seen first-hand, here in a first-world country, people with engineering degrees working in manufacturing with dangerous chemicals refuse to bother putting on safety gear.

Hell, the whole OH&S industry has trouble getting employees to act safely, not just employers.</comment></comment>


Ask HN: What do you think of my idea for a new type of college? - <AUTHOR> I have an idea for a new type of college or university.  If it is successful it could have a meaningful impact on world poverty.
In developing countries there are many smart, hardworking students who finish high school but who do not have the family income to pay for a good university education.  Government and private foundations offer a few scholarships and loans but demand greatly outstrips supply.
I want to establish a non-profit college to provide an opportunity for young adults from a poor country like India or Cambodia to receive a university education and immigrate to a rich country like Australia or Germany.  What would make this college different from others is a focus on reciprocity and growing the size of the college: Students who graduate will have an obligation to give a significant percentage of their salary back to the college with the aim that the college can grow at a rate of 10% per year.  For example, if there are 100 students enrolled in a given year then there will be 200 students enrolled 7 years later, and 400 students enrolled after another 7 years, etc.
To achieve such growth it may be necessary to ask students to pay 20% of their salary to the college for 15 years after graduation.  That is lot of money, and you may think there is no way someone will voluntarily give up such a large chunk of their income.  But there are many psychological factors that the college can employ to encourage the student to financially support the college after graduation.  Here are a few:
1. Reciprocity - If someone gives you something, it is natural to feel grateful and to want to return the favour.  The college gives students a large benefit - a path out of poverty - so the student will naturally want to give something back the college.
2. Commitment and consistency - Before enrolment, the college will ask the student to make a public commitment to pay 20% of his/her ... (continued below) <comment><AUTHOR> ...salary back to the college after graduation. The college website will have a page about the student, including a handwritten commitment and short video of the student explaining why he/she is grateful to college and supports its mission. After graduation the student will feel the need to live up to this public commitment.

3\. Liking and wanting to be liked - Each graduate will be asked to act as a mentor to two freshman students. This will take the form of a two-hour Skype call each week to help with coursework, answer questions and offer encouragement. This develops a personal bond between the graduate and the freshman students. If the graduate stops financially supporting the college then the two students he/she has been mentoring may not be able to continue at the college.

4\. Expectations of friends and family - Imagine that a graduate's mother has a friend whose daughter is 12 years old. If the graduate continues to pay money to the college then the girl will have an increased chance of being admitted to the college when she reaches 18 years of age. If the graduate stops supporting the college then the girl will lose that advantage: the graduate's mother and her friend will be disappointed.

5\. Social proof - If a graduate's former classmates all pay 20% of their salary to the college, the graduate will see this as natural and follow their example. The graduate will also not want to be seen by former classmates as 'leting the team down'.

6\. Liking and wanting to be liked - A small percentage of the money paid by the graduate to the college will go to the pension fund of the graduate's former teachers. The graduate will like and want to be liked by the teachers - this will act as incentive to continue financially supporting the college.

7\. Labelling and identity - From time to time the college will send little gifts like pens, sweaters, t-shirts, calendars, phone covers, etc. to the graduate. Using and wearing these items will strengthen the graduate's pride and support for the college.

On their own, each of these psychological factors may not be enough to overcome the student's self-interest. But together, I think they will provide a powerful incentive for the student to financially support the college for the full 15 years after graduation.

What are your thoughts on this idea? Will it work?

<comment><USER3> A few tweaks:

"That is lot of money, and you may think there is no way someone will voluntarily give up such a large chunk of their income."

Why voluntarily? Why not put it in a contract, as a condition of admission? If the expected increase in income is greater than the 20% they'd have to pay, it's still a good deal. _Especially_ if the 20% is charged only on the income above some minimum, i.e, pay nothing or very little of they don't make much.

"adults from a poor country like India or Cambodia to receive a university education and immigrate to a rich country like Australia or Germany"

Why not establish the university directly in the poor countries? The cost of living is lower, so the 20% paid from graduates would go much further, and the countries get to avoid brain-drain.

<comment><AUTHOR> Good points!

Regarding 'voluntary': At some point there should be a written commitment from the student, but I'm undecided about whether it will be a formal, legal document signed before admission. The more external pressure I apply, the less the student will accept inner responsibility for the commitment. If you put a gun to someone's head and say, 'sign here' that person will not feel genuine commitment.

I'm also on the fence about whether the college should be located in a poor country. Yes, the cost of living is lower but it may be harder for the student to immigrate to a rich country after graduation. Immigration is key - <USER2> it the college is unlikely to grow at 10% per year.</comment></comment></comment>


Ask YC: Accepting Credit Cards as a Bahamian company - <AUTHOR>

I'm building an e-commerce site for a Bahamian company and am having a hard time finding a solution to accepting payment via credit card.  Any internationals (non-US/UK/Canada) doing this? <comment><USER2> Build an entirely owned subsidiary in a respectable place, the UK for example. And funnel the transactions through it.

Had the same problem in a startup I built 5 years ago that was based in Costa Rica.

The entire process should take no more than a couple of days.

<comment><USER3> I'm fairly sure this is illegal in the UK. Can anyone confirm this?

<comment><USER2> So long as the parent company is not doing anything that is illegal under UK law, it is totally legal as far as I know or at least it was 5 years ago. What part of it do you think might be illegal?

But then again, I am not a lawyer so please confirm with your legal staff.

</comment></comment></comment><comment><USER4> We really need an Ask rms section :)

He may know about this from his business experience.

</comment><comment><USER5> Have you looked at PayPal?

<comment><AUTHOR> PayPal doesn't support receiving funds for the Bahamas. We could only send paypal funds...

</comment></comment><comment><USER6> worldpay might work

<comment><AUTHOR> Talked with Worldpay and it's not one of their supported countries.</comment></comment>


What is your carbon footprint? - <AUTHOR> http://whatismycarbonfootprint.com/sg/#/ <comment><AUTHOR> It would be great to have an easy-to-use calculator for CO2 impacts of people/companies/industries. This one is somewhat short on details. Do you know a better one?</comment>


Scaling Erlang Developer Experience at WhatsApp [pdf] - <AUTHOR> https://codesync.global/uploads/media/activity_slides/0001/03/f2292f201aa6b04db8c4e0b9cfa191dd07c9ee14.pdf <comment><USER2> What I like most about some experienced engineers who have been at companies from the beginning is that they realize the needs of a small-team, cash- constrained, rapidly growing company are different from that of a dozens-of- teams, complex, but also rapidly scaling enterprise. The devil is in understanding when and how to transition your tooling, architecture, and — dare I say it — attitudes, from the one to the other.

I am curious to hear more from these engineers; how decisions were made about transitioning/scaling; and what decisions were made.

<comment><USER3> There are things that could (should?) be done from the start. Most has to do with automation. For example automated build tools. Maybe you don't want automated unit tests in the beginning but those parts can be added later without changing the company's culture and stucture too much.

Or automated invoices. It is much easier to change this than changing a co- worker who manually created all the invoices.

<comment><USER4> > Maybe you don't want automated unit tests

Interested why you'd say this, can you elaborate? Do you mean tests in general or unit tests specifically?

I can't imagine automating a CD pipeline without having some automated testing as an integral step. If you don't have automated tests, how do you remain confident that you haven't introduced bugs/regressions?

Even in a small codebase that's easy to do - especially when you're evolving quickly.

Like I say: not tacit criticism, genuinely interested.

<comment><USER5> I think the key point in the OP's statement is "early on"

I think unit tests (or just more generally a test suite) is invaluable. But when you're starting out small (1-3 person dev team) and the API is changing so rapidly (we learned something this week we didn't know last week so that new service now only does 1 thing instead of 5 things), tests can _really_ slow down development. And as mentioned by the OP as well, adding unit tests (or a test suite in general) shouldn't be too hard once you get a stable API

I might be preaching to the choir so to speak, but that's just my $0.02

</comment></comment></comment></comment><comment><USER6> One of my favorite talks is by Rick Reed about scaling Erlang at WhatsApp. What an absolute savage. He flies through an articulate and in-depth curriculum on system performance and bottleneck mitigation.

The talk is called "That's 'Billion' with a 'B'" and makes for a great lunchtime watch: [https://www.youtube.com/watch?v=c12cYAUTXXs](https://www.youtube.com/watch?v=c12cYAUTXXs)

<comment><USER7> I remember that year. I was giving a talk at EF during the same time slot but the schedule originally had me in the large room and they had a much smaller one.

When the news of the acquisition hit, everyone wanted to see the WhatsApp talk. The organizers knew this so we swapped rooms. So, I started my talk by asking if anyone in the room was here for the WhatsApp talk and told them they could quietly leave and I wouldn't mind and a bunch of people got up.

Heheh. I don't blame them. I didn't really like my talk and Rick Reed is very good at what he does and the talk is no exception.

</comment></comment><comment><USER8> Erlang is the Actors-model version of Greenspun's tenth rule of programming:

"Any sufficiently complicated server backend contains an ad hoc, informally- specified, bug-ridden, slow implementation of half of Erlang."

Is it really the end-all-be-all model of server architecture? What are microservices, if not Actors Clunkified? "Serverless" functions, if not the simplest actors in disguise? Docker, actors except over IP addresses and clunky APIs?

The real takeaway: Valuable stuff is stateful. You know you're doing valuable work for a real human end-user if you are dealing with tricky state problems. Extracting money out of that is a bunch of developer-productivity-limited business concerns. It seems actors are a good model to solve that.

<comment><USER9> That quote regarding Erlang is attributed to Robert Virding.

</comment></comment><comment><USER10> I absolutely love the BEAM and Elixir, but one of my common complaints and source of errors is the lack of compile-time type sanity checking, so I'm excited to see movement in this direction. Dialyzer is sorta okay, but the speed, cryptic errors, and syntax have kept me from fully embracing it.

<comment><USER11> Gleam may be what you're looking for:

[https://gleam.run/](https://gleam.run/)

<comment><USER12> This isn't ready for prime time yet iirc.

<comment><USER13> It's not but is in constant development. The author is very active on elixirforum.com

</comment></comment></comment></comment><comment><USER14> I find it funny they say Whatsapp "chose" Erlang. They "chose" Erlang because ejabberd was written on it, and they chose ejabberd because of a Jabber mailing list suggestion. That's about it...

<comment><USER15> are you saying that the choice was purely due to luck? Would whatsapp have been as popular and successful had it not been in erlang but some other language/stack?

<comment><USER16> > are you saying that the choice was purely due to luck?

What he is saying is, that they chose the best open source tool available for their use case at that time, and not a programming language.

> Would whatsapp have been as popular and successful had it not been in erlang > but some other language/stack?

I would argue, that they might not have been as efficient in terms of computational resources and the number of technical employees needed, but they would still have succeeded even if the back-end was implemented in Java.

Because what all WhatsApp users actually interacted with were the clients – and they were not written in Erlang.

</comment></comment></comment><comment><USER17> > "We are working on a prototype, open-sourcing in November"

I'm curious to see how Elixir integration with such static type system would work.

<comment><USER18> I absolutely love Elixir and use it all the time, I really just wish it had a type system (that's not the slow behemoth Dialyzer). I understand the difficulty of typing processes and I don't envy the task, but as a user of the language it would make it _that_ much better to work with! Just imagine working with a language like Elixir that has the type system of F#!

<comment><USER19> Sounds like Scala / Akka to me

</comment></comment></comment><comment><USER20> Last I heard (years ago), I though that WhatsApp's backend was being rewritten in some other language, because Facebook didn't think maintaining an Erlang codebase was tenable. Did that change?

<comment><USER21> Perhaps you're thinking of Facebook chat?

[https://www.quora.com/Why-was-Erlang-chosen-for-use-in- Faceb...](https://www.quora.com/Why-was-Erlang-chosen-for-use-in-Facebook- chat)

[https://www.quora.com/When-did-Facebook-switch-away-from- usi...](https://www.quora.com/When-did-Facebook-switch-away-from-using-Erlang- for-Facebook-Chat-What-was-the-reason-for-it-What-did-they-replace-it-with)

</comment></comment><comment><USER22> Can someone explain what Erlang offers that Go does not? Both have great support for concurrency, but Go has type checking and a more familiar syntax.

<comment><USER23> * Erlang builds _reliability_ into the language and runtime through concepts of liking, supervision, …

* Erlang is a much simpler language

* Despite lacking a static type system, Erlang's functional bend, immutability, SSA and pattern matching makes for a rather safe language

* Erlang has always been fully preempted, it didn't have to wait until 2020 for that to happen

* Erlang also builds distribution in, though it's "trusted distribution" so probably of fairly limited use at large

* Erlang uses shared-nothing concurrency, greatly limiting side-effects across processes, which again helps with reliability: there is no action at a distance in sequential erlang, no third-party can come in and mess with your state

* when dealing with binary data, binary patterns are absolutely amazing (and rather unique)

<comment><USER24> > * Erlang is a much simpler language

Go is widely considered to be a very simple language, often too simple, so I find this claim interesting.

> * Despite lacking a static type system, Erlang's functional bend, > immutability, SSA and pattern matching makes for a rather safe language

This is fine stuff, but I would rather have a type system, so this is just making up for a deficiency with some other stuff, so it's really just a sidegrade, not so much an upgrade or a downgrade.

> * Erlang has always been fully preempted, it didn't have to wait until 2020 > for that to happen

With extremely rare exceptions, Go has _always_ been fully preempted from a developer experience point of view. The fact that the underlying implementation was using function calls as yield points simply didn't matter. The fact that it is fully preempted now means it's kind of weird to still hold it against Go that they are doing the same thing as BEAM now.

It is _done_ , this is no longer a bullet point.

> * Erlang also builds distribution in, though it's "trusted distribution" so > probably of fairly limited use at large

Go has _always_ "built distribution in" by offering to build single static binaries. If anything, BEAM languages are _harder_ to deploy.

> * Erlang uses shared-nothing concurrency, greatly limiting side-effects > across processes, which again helps with reliability: there is no action at > a distance in sequential erlang, no third-party can come in and mess with > your state

I agree that immutability is an advantage. In general, third parties can't come in and unexpectedly mess with your state in Go either, as long as you're either maintaining your state local to a function or keeping your global variables private to each package.

Keep in mind that Go's package imports must form a tree with no loops. Third party packages literally cannot see your code or any of the exported global variables, since you are importing them, and not the other way around.

Go does not offer any way for packages to reflect over the whole program's state in memory, so there's no way for third party packages to go hunting around in memory and playing with your values, which would be stupid, unless they use "unsafe" to start poking at random memory addresses, and I'm certain you can do something equally dumb in Erlang with a sufficient amount of effort. It's just as crazy to think of doing something useful that way in Go as it is in Erlang.

> * Erlang builds reliability into the language and runtime through concepts > of liking, supervision, …

This is literally the only compelling talking point I've seen for Erlang/BEAM vs Go.

However, I've written large Go applications with distinct services running within the same binary, and it is possible to make extremely reliable systems. Go's context package allows you to build trees of processes that you want to be able to cancel, including cancelling specific sub-trees without affecting adjacent trees or parent trees.

The single biggest footgun with building reliable systems in Go is that it _prefers_ to crash early. So, every Goroutine that you launch, you must make sure that the first thing it does is catch any panics to avoid taking down the entire program, including unrelated Goroutines. When correctly written, a human will be immediately alerted to the bug that caused this panic (which shouldn't ever happen anyways), and the program will continue operating normally in the mean time until a human gets a chance to push out an update to fix that bug.

In practice, enforcing just one rule (Goroutines must catch panics) in code reviews is not that hard, and it isn't common in my experience for most code to arbitrarily launch Goroutines -- Goroutines should be managed.

In return, Go offers much better performance than BEAM, as well as most of the practical benefits of BEAM that I've seen discussed online.

I think Rust is a better language than either Go or any BEAM language, but the absence of a preemptive concurrency model like Go and Erlang offer just makes it hard for me to enjoy the prospect of using Rust for general purpose network services.

Once Go adds generics in the next year-ish, that should solve my biggest real annoyances with the language. I really look forward to being able to package up a number of the concurrent patterns I write into reusable packages, which will largely eliminate once and for all the need for me manually spin up a new Goroutine in the code that I'm writing and potentially forget to catch any panics.

<comment><USER25> > > * Erlang also builds distribution in, though it's "trusted distribution" > so probably of fairly limited use at large

> Go has always "built distribution in" by offering to build single static > binaries. If anything, BEAM languages are harder to deploy.

I suspect GP meant distribution in the distributed computing sense, not the deployment sense. What, baked into Go not via a library, handles multiple Go _programs_ communicating within the same physical node or across multiple physical nodes? Erlang gives you the _same_ communication method whether distributed or within a single node, Go does not (that is, Go channels are internal to a specific program, they cannot be referenced from different programs or computers).

If they did mean it in the deployment sense, I'd still argue it's a point in favor of Erlang. Two nodes communicating can execute code on the other.

<comment><USER24> Yes, I definitely misunderstood the point being made there.

> What, baked into Go not via a library, handles multiple Go programs > communicating within the same physical node or across multiple physical > nodes?

Go does have an RPC package built into the standard library, for what it's worth, but I know it's not the same thing as the runtime transparently stitching distributed machines together under the hood.

</comment></comment></comment></comment></comment><comment><USER26> > shift to modern languages with integrated tooling, e.g. Erlang competition:

>

> C++, Java => Go, Rust, Kotlin

My first C++ IDE was Turbo C++ 1.0 for MS-DOS in 1993, and Borland, Zortech, Symatec, Microsoft, IBM, and plenty of others had well known C++ IDEs.

Many of the ideas of modern C++ IDEs is basically rediscovering the work done by Lucid and IBM with their Smalltalk like capabilities for C++ tooling in the late 80's/early 90's.

Java is well known for being one of the languages with best IDE support out of box. It didn't start like that in 1996, but the last 25 years have been good to it.

Go and Rust are yet to have similar offerings and Kotlin, well it is a JVM language and profits from the Java eco-system and Google's push to replace it on Android due to non-technical reasons.

Maybe better examples should have been provided.

<comment><USER27> Java is interesting because writing code in it is generally absolutely miserable without an IDE.

</comment></comment><comment><USER28> Working in a small Company always let me astonished learning things about unicorn apps. But really an application like Whatsapp need 1000+ developers!? I can think about teams about android, ios and web app. X2 if you think about teams for business oriented services. But 1000+ developers for what?

<comment><USER29> Just some of the needs at that scale:

      Fraud
      Security
      Integrations
      Infrastructure
      Data
      Accessibility
      Growth
      I18n
      API

In addition, there won't be individual teams for android, ios, etc. Those domains will be broken across many task-specific teams.

</comment></comment><comment><USER30> I am curios why they need 1K people instead of 10? What changed on the server side of WhatsApp?

<comment><USER31> I understand that the 1K+ engineer number comes from Facebook as a whole, when mentioning the use of Hack as a typed PHP.

More like to give a perspective on the transition on how to come from a small company into a huge one.

<comment><USER32> WhatApps got audio and video calls after the Facebook acquisition.

Usage increased by a few orders of magnitude too.

<comment><USER33> Yeah I think people get usage confused with number of users.

</comment></comment></comment></comment><comment><USER34> I think the concepts are very interesting of Erlang but I still don't understand it fully. And also about the multi-node os only an internal network scenario is not like a cloud mesh thing. You would need docker.

</comment><comment><USER35> > some {T} | undefined

Can we please avoid TS pitfalls?

<comment><USER36> Would you mind expanding a little bit on why this is bad ? I'm fairly new to TS and find myself doing it a lot.

<comment><USER37> The advantage of the Option type is that you don't need to check for nullability, you simply pattern match on Some(_) or None. A type of `some{T} | undefined` means that the expression can have values `Some(_)` or `None` or `undefined`, which defeats the point of the Option type!

<comment><USER23> Except Erlang doesn't have a none. Nor an undefined for that matter. So `some {T} | undefined` means exactly that, there is no underlying null pointer which could sneak up on you.

`undefined` here is not built-in type or value of the language, it's a standard atom like any other.

So are null, nil, value or false (although false does have a special status in that it's the customary output of boolean operations alongside true).

<comment><USER37> I'm aware of that, I was explaining why `some{T} | undefined` is problematic in Typescript. If you have a signature with both option type and undefined it's a signal of a code smell.

<comment><USER38> But `some{T}` isn't an option type, it's a member of the option type!</comment></comment></comment></comment></comment></comment>


Massive Mystery of Saturn's Rings - <AUTHOR> https://www.theatlantic.com/science/archive/2019/01/saturn-rings-cassini/580696/ <comment><USER2> There's an engineer reckons aliens made them.

'From photographs taken during the Voyager 1 flight to SATURN in 1980 the reader of this remarkable book sees that one of the photgraphs shows that the A-ring is incomplete.The author sets out to explain this phenomenon in an understandable form. The famous Cassini and Enke gaps also fit into the author's explanation. The micro photography employed by the Author answers many of the questions about Saturn asked since Galileo and the Author further shows a relation to the well defined crater on the earth's moon called 'Mare Orientale' and to the 1908 Tunguska catastrophe in the U.S.S.R. CREDENTIALS: Dr. Norman Bergrun is an alumnus of Ames Research Laboratory, NACA (National Advisory Committee for Aeronautics) predecessor of Ames Research Center, NASA where he worked twelve years as a research scientist. At Ames, he pioneered the setting of design criteria for airplane thermal ice-prevention and the developing of roll stability laws for airplanes, missiles and rockets. He joined Lockheed Missiles and Space Company (now Lockheed Martin) where he was manager of the planning and analysis of flight tests for the Navy Polaris Underwater Launch Missile System. During his thirteen years at Lockheed, he also served as a senior scientist having responsible analysis cognizance of special space-satellite applications. An Associate Fellow of the American Institute of Aeronautics and Astronauics (AIAA), he is active as a leader in Congressional Visits Day events on Capitol Hill. Credited with numerous awards and citations including the California Society of Professional Engineers Archimedes Engineering Achievement Award... he is listed in "Who's Who in America", "Who's Who in Science and Engineering", and other reference works.'

[http://podcast.sjrdesign.net/files/070_RingmakersOfSaturn.pd...](http://podcast.sjrdesign.net/files/070_RingmakersOfSaturn.pdf)

[https://www.goodreads.com/book/show/1470353.Ringmakers_Of_Sa...](https://www.goodreads.com/book/show/1470353.Ringmakers_Of_Saturn)</comment>


Linus Torvalds on Jobs and RMS - <AUTHOR> http://youtu.be/pcbbOcquHZ4

<comment><USER2> I thought this was going to be Linus calling out Stallman for his recent remarks about Steve Jobs.

Turns out that it's an old interview where he simply states his impressions of the two people. (Spoiler: Jobs and Stallman are actually pretty similar people.)

<comment><USER3> my downvoted comment days ago saying the same thing: <http://news.ycombinator.com/item?id=3085955>

</comment></comment><comment><USER4> What an awful interviewer.</comment>