Burying 'One Child' Limits, China Pushes Women to Have More Babies - <AUTHOR> https://www.nytimes.com/2018/08/11/world/asia/china-one-child-policy-birthrate.html <comment><USER2> China's one-child policy was a huge success. They avoided a big population run-up in the gap the introduction of reasonably good medicine and a high enough standard of living that birth rates went down. India didn't do that.

Now that China is developed enough that birth rates have gone down as a result, they've backed off on the one-child policy. It did its job.

The country has a long history of famines. China's last famine was in 1985. Remember, China has limited arable land and many mouths.

<comment><USER3> The one-child policy also resulted in the worst gender imbalance in the world, which "could lead to instability as more men remain unmarried, raising the risks of anti-social and violent behavior."

[https://www.scientificamerican.com/article/china-says-its- ge...](https://www.scientificamerican.com/article/china-says-its-gender- imbalance-most-serious-in-the-world/)

<comment><USER4> A neat gender balance would be better for the people involved than an insanely skewed gender balance that favours men.

That being said, one could substitute China -> America and, gender -> wealth, unmarried -> jobless, and I think the accusation would be similar. I've had Americans seriously tell me that the country is on the brink of civil war, which seems about as bad as anything that could come from China's gender imbalance. I'd link that to economic problems, it is the explanation that makes the most sense to me.

Basically, there is a real concern; but I'm not sure it is an /unacceptable/ outcome of the One Child Policy. It might just be an outcome. The OCP can easily be cast as a policy of courage and prudence; overpopulation carries a real threat of starvation and collapse if it overshoots what the local resources can support.

<comment><USER3> I don't know what America has to do with anything, but China's income inequality is also worse than America's, so there's that.

[https://en.wikipedia.org/wiki/List_of_countries_by_income_eq...](https://en.wikipedia.org/wiki/List_of_countries_by_income_equality)

<comment><USER4> Ah, sorry, should have linked my source.

[https://en.wikipedia.org/wiki/List_of_countries_by_distribut...](https://en.wikipedia.org/wiki/List_of_countries_by_distribution_of_wealth)

Wealth, not income. Although I do now see the data is 2000 era, so the situation might be different now. China was a very equal country by wealth back then, though.

<comment><USER2> For China, the difference between 2000 and 2018 is huge. In everything.

</comment></comment></comment></comment></comment></comment><comment><USER5> Declining demographics is not only a problem in China, but many countries in the world. Japan's government policies, for example, have had limited success.

[https://www.centreforpublicimpact.org/case-study/tackling- de...](https://www.centreforpublicimpact.org/case-study/tackling-declining- birth-rate-japan/)

China's backtrack is also reminiscent of Singapore's campaigns, which also had problems raising its fertility rate after its "Stop-at-Two" campaign in the 60s.

[https://en.wikipedia.org/wiki/Population_planning_in_Singapo...](https://en.wikipedia.org/wiki/Population_planning_in_Singapore)

A side effect of encouraging more births in a patriarchal society such as China will be fewer selective female abortions.

<comment><USER6> Also, South Korea just went through the same backtracking.

</comment></comment><comment><USER7> >To put it bluntly, the birth of a baby is not only a matter of the family itself, but also a state affair," the official newspaper People's Daily said

Lest anyone think otherwise, thd regime remains deeply authoritarian and has echoes of early 20th cent. Progressive thinking from Europe and elsewhere.

<comment><USER8> The idea that baby production is a community concern (it is literally perpetuation of the community) is nearly universal. Modern western society is the outlier in treating it as a personal affair. (And even in the U.S., people who "choose" not to have kids are viewed skeptically.)

<comment><USER7> Yeah but progressivism and accompanying eugenics of early 20th cent were seen favorably by both intrawar Germany and the SU and importantly to be controlled by the central gov.

<comment><USER9> You went from a comment by an official about the state's interest in babies to progressivism, eugenics, soviets and Nazis. It's word salad trollery and you should, as they the thing says, 'eschew' it.

<comment><USER7> They all think they know best and want to tell people what to do.

</comment></comment></comment></comment></comment><comment><USER10> I genuinely don't understand the constant push for population growth. Why does population need to keep growing? GDP? Paying taxes for some social benefits for the old?

How is this sustainable? When does the ever increasing growth end?

<comment><USER11> Some see it as a cultural arms race. A "the other cultures aren't stopping having children, so we need to out-populate them!" sort of deal.

What the fuck is with the idiotic voting going on here lately? Every single comment I make, many simply pointing out facts or objectively mentioning something uncontroversial, is getting downvoted lately. What I said in this comment is absolutely the mindset of a lot of people. I am not one of those people.

<comment><USER12> For an example of this see the quiverfull movement in the US. Those "N Kids and Counting" shows were about members of the quiverfull movement.

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

<comment><USER13> The linked article shows the number of "quiverfull" people is less than a rounding error: 0.0025%.

So, not so much a "movement" as a reality TV show.

<comment><USER12> They're the explicit part of a larger idea.

I grew up Baptist, and remember the preacher explicitly making the same argument. There just were not a lot of people who defined their identity around it; they still internalized the idea though.

</comment></comment></comment></comment></comment><comment><USER14> Once mass urbanization takes hold, it is especially difficult to counteract declining birth rates. This is especially true in highly patriarchal societies like China, Japan, and Italy, where motherhood and career is much more of an "either/or" proposition and where men are much less likely to help out with housework.

<comment><USER6> Classing China in with Japan and Italy on this is weird and probably incorrect. Chinese women generally work after having kids, and take advantages of lots of child care resources missing from the other two countries (grand parents, lots of daycare/kindergartens). Chinese (especially Shanghainese) men are more likely to be henpecked, and they will do house work.

</comment></comment><comment><USER15> I wonder if China will be forced to encourage immigration. Illegal immigration is apparently already growing rapidly.

Companies can't find workers anymore so they start smuggling in people to do the job

At some point this illegal stream will become so large that one has to consider legalization.

<comment><USER16> China actually is in the process of establishing immigration agency and relevant laws/policies to encourage immigration.

[https://www.scmp.com/news/china/policies- politics/article/21...](https://www.scmp.com/news/china/policies- politics/article/2137058/new-immigration-bureau-set-handle-growing-number)

<comment><USER6> That has always been true for the last 10 years at least, at least they've been talking about it. When it actually happens will be notable however.

</comment></comment></comment><comment><USER17> I am here to help

<comment><USER18> Could you please stop posting unsubstantive comments to Hacker News?

</comment></comment><comment><USER19> It is not because of one child policy that results in male babies birth rate higher than female's. Actually,in China,this policy is not "powerful" to everyone,especially in poor area.however,birth rate in poor area is much severer(in many villages,it is possible that girls were killed when they were born).In ancient times,birth rate was still not equal(sometimes even worse than today' )without one child policy.</comment>


Final Fantasy VII (NES video game) - <AUTHOR> https://en.wikipedia.org/wiki/Final_Fantasy_VII_(NES_video_game) <comment><USER2> I'm in the stage of writing a video game with several characters, and i must say i was quite amazed by those visuals, there are more online.

I want to guess if somehow, it helped to structure the art production better, since they had to remake a lot of work.

Aaaaaaaand I'm still genuinely curious about this very odd rumour of a secret white boss hidden under the main city midgar, which i read in a magazine at the time. Because this boss might have existed in the earlier version.</comment>


Ask HN: E Commerce transaction failure - <AUTHOR>

After making a successful payment through my net-banking account i closed the window before the payment gateway could redirect me back to the sellers site.
My bank statement shows that the money was debited but seller site shows that the transaction was failed and "settlement requested".
Have I lost the money and product too ? <comment><USER2> No. Send mail to the seller, tell them that you bought their product and that an error has prevented their site from recognizing it. Ask them to fix this manually.

If they don't fix it manually and don't refund you, speak to your bank and say "Internet merchant did not deliver as promised." You'll get a refund.

Commerce is surprisingly robust.

<comment><AUTHOR> I expected that there has to be some mechanism to cancel such transactions.

</comment></comment><comment><USER3> Dad? I didn't know you were reading HN now.</comment>


BeOS or NeXT: Did Apple Make the Wrong Choice? (2001) - <AUTHOR> http://lowendmac.com/backnforth/010416.html <comment><USER2> NeXT came free with a Steve Jobs. That's a hard to beat deal.</comment>


A Purposeful Personal Loss of Anonymity - <AUTHOR> http://www.observationalhazard.com/2014/10/a-purposeful-personal-loss-of-anonymity.html

<comment><AUTHOR> "I used to believe that the future of the Web was anonymity. The Web boom of the '90s focused on anonymous content consumption. The '00s were all about signed content creation (think Facebook, YouTube). I thought the third era would be a combo of the two - anonymous content creation. But anonymous content creation has its limits. We want to trust our sources, so we need to know who they are. We want to connect with other people, not just ideas."</comment>


Show HN: FLUCK – soundcloud for videos - <AUTHOR> http://gofluck.com/

<comment><USER2> I like the name. Some eye catching content there too

</comment><comment><USER3> i like how you can bookmark a specific point in the video, youtube don't have that function

</comment><comment><USER4> So....YouTube?

<comment><AUTHOR> except comments are bind to time in video so no one has to say refer to 4:03 in the video or things like that</comment></comment>


Using Twitter as a Collective Mood Ring - <AUTHOR> http://bits.blogs.nytimes.com/2009/08/11/using-twitter-as-a-collective-mood-ring/?hp

<comment><USER2> Seriously, What statistics would you get when to take in to the fact that 90% of the tweets are by bots? And twitter users with large following are either bots or celebrities. All these factors should be considered while building the web app. Anyways it should be an interesting social experiment.

Also, they should consider using facebook statuses instead of tweets. Facebook status messages are more personal than tweets. Any thoughts?

<comment><AUTHOR> Facebook is being investigated as a potential data source as well especially given the acquisition of FriendFeed and roll out of their new search engine.

I am of the researchers involved in the project (full disclosure) and yes we are concerned about the numbers of tweets generated by "bots" or other software although we estimated to be much lower ~25% (still significant mind you). We receive approx. 1.8 million tweets a day but it is important to note unlike similar projects we make no attempt to quantify the sentiment of individual tweets and instead only say something about significantly large portions of them (hourly, daily, weekly, monthly) time frames.

Our method has proven useful on song lyrics, presidential speeches and blogs. See our publication in the Journal of Happiness Studies ([http://www.springerlink.com/content/757723154j4w726k/?p=b9b0...](http://www.springerlink.com/content/757723154j4w726k/?p=b9b0726c4baa4c55a845dec88c63f4b4&pi=2)) for more info, open access license.</comment></comment>


Vitalik Buterin on Cryptoeconomics and Markets in Everything - <AUTHOR> https://medium.com/conversations-with-tyler/vitalik-buterin-tyler-cowen-cryptocurrency-blockchain-tech-3a2b20c12c97 <comment><USER3> Maybe I'm just being cynical (or jealous!), but when I read "Vitalik Buterin, who has managed to synthesize insights across those fields into successful, real-world applications like Ethereum", I think it's worth asking what qualifies as successful, because to me, the inflated market cap of a speculative asset isn't an objective measure.

I think that Ethereum's market cap has perhaps created an unearned reputation for solving an essential problem (running _any_ verified, distributed computation) and being the best solution to large-scale verifiable computation, when I would argue that verifying a computation in a distributed system by having each node (or some large subset of nodes, if sharded) perform every step of every computation is _not_ an optimal solution.

<comment><USER4> Money. A few engineers are impressed by the technology but most people are excited by the money and prospect of a lot more money in the future. That's what drives crypto fanatics instead of trying to generate value and that's why I think it will ultimately fail.

<comment><USER5> What's going to fail? Crypto fanatics? Cryptographically-secured trustless distributed systems? All of cryptography?

<comment><USER4> The Ethereum ecosystem and its derivative coins will not gain adoption among anyone except a passionate sub cult which will eventually go to zero.

<comment><USER6> Similar statements were made about the computer and Internet as well.

<comment><USER7> I hear this argument a lot, I'm not old enough to remember these times but I wonder how much is true. According to Wikipedia ARPANET was established in 1969, then:

> In 1971, Ray Tomlinson, of BBN sent the first network e-mail (RFC 524, RFC > 561).[59] By 1973, e-mail constituted 75 percent of ARPANET traffic.

> By 1973, the File Transfer Protocol (FTP) specification had been defined > (RFC 354) and implemented, enabling file transfers over the ARPANET.

This is what ARPANET looked like in 1974, or 5 years after its establishment: [https://upload.wikimedia.org/wikipedia/commons/0/00/Arpanet_...](https://upload.wikimedia.org/wikipedia/commons/0/00/Arpanet_1974.svg)

Meanwhile Bitcoin is almost 10 years old and all we have is speculation, scams, a near-useless currency and many promises. What we don't have is a useful application that showcases what only cryptocurrencies can do.

<comment><USER8> And for a comparison in the same tech era: Facebook had more than a billion users after 10 years.

The "its still early days!" argument holds no water.

<comment><USER9> Terrible comparison bro. One company is built on tech that's been around for decades.

<comment><USER8> Merkel trees have been around since the 70s.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> > Don't people trust ether and Ethereum in part because they trust you? In a > sense, there's this Russian tradition of holy men who come along — > Dostoyevsky's Alyosha, Prince Myshkin — like a non-evil Rasputin...

> ...I try to make myself maximally accessible in a bunch of ways, try to > bring different people in different communities together, perform a kind of > social coordination function, which is probably, from an economist's point > of view, similar to some aspects of management, but without the aspects of > management that evoke images of centralized control in all those different > things...

Question dodge level 9000.

<comment><USER11> Is that a question dodge? I mean he's in the unique position that people do trust Ethereum in part because of him, but he really wants people to trust in the protocol and its evolution over just himself.

Personally, if Vitalik wasn't involved in Ethereum I probably wouldn't have been as interested in the project initially. But, for Ethereum to really take off in the public realm, the cryptocurrency and its creator need to be decoupled more. And I think this response from Vitalik gets this point across.

<comment><USER12> What was Vitalik known for before Ethereum? He is still quite young, how much did he do before Ethereum?

<comment><USER13> I tried to promote some quantum computer scam as well, IIRC.

<comment><USER13> *He

</comment></comment></comment></comment></comment><comment><USER14> Conversations With Tyler is a podcast I greatly look forward to - I have learned quite a bit from people I might not have paid much attention to going about my typical hi-tech lifestyle, and for that I feel enriched and am thankful.

</comment><comment><USER15> _o how would you describe how you teach yourself economics?

VITALIK BUTERIN: I guess it involves a combination of things. Some of it is reading what various economists on the internet say. Some of it is reading papers. Sometimes, if I want to dig into some topic more deeply, I end up reading books, like I read one on urban transportation economics a while back._

One of the things people need to realize is that you can't _learn_ economies or behavioral science by reading. Sure you _know_ concepts but unless you have implemented and gone through a full economical cycle, what you have in hand in terms of _knowledge_ is just hypothesis - not actual facts. Every downturn has upended what people previously known about depression. And same goes for upturns. Sure, there are analysis after the fact but nothing in-between the cycles.

Additionally, I remember Buterin quoting Debt: The First 5,000 Years as gospel truth of economies. While the book is good and provides one perspective of looking at things it is not the whole and sole of the theory. So, I really doubt Buterin's knowledge on economics.

Before someone asks, I don't doubt his understanding on cryptocurrencies.

And frankly, this whole learning by reading is good for foundations. But I see many people in crypto field jumping to release a, let's say voting blockchain, because they read some papers/books on voting. And then they release an ICO to test their theoretical knowledge. This doesn't help anyone.

To paraphrase Matt Levine on Bloomberg, cryptocurrencies seems to be learning about every mistake made earlier. Just on a bigger and faster.

<comment><USER16> Given the actual results and insights provided by economists, I doubt __anyone __' s knowledge on economics.

Question one: is there any successful economy that doesn't require endless population growth?

</comment></comment><comment><USER3> When discussing how crypto-assets should be valued:

> In that case, you can take the simple model and say a cryptocurrency's > valuation is the net present value of the transaction fees that it's > getting. This, by itself, surprisingly does give fairly decent valuations.

> For example, Ethereum's transaction fees tend to be about $500,000 a day > recently, which is about $180 million a year. If you tried to value the > ether market cap as some kind of corporation, then the "P/E ratio" is only > somewhere in the low 200s, which is high for a company, but not off-the- > charts absurdly high.

Isn't this completely circular? He's saying that the value of the transaction fees per year measured in dollars equates to some reasonable fraction of the market cap measured in dollars... but wouldn't this be true if the market cap were much higher or much lower? It's just a comparison of the total supply to the amount being circulated, rather than a substantive claim about how each token (or the market cap) should be valued in dollars.

<comment><USER17> No, because transaction fees are an ongoing negotiation between miners and the people issuing transactions. That market can adjust to change in the ether price, and keep the real-world transaction cost the same. Or the fees can wildly fluctuate due to variations in traffic, even when the ether price is stable.

<comment><USER3> That position isn't supported by volatile transaction fee data - <USER2> spikes for spam or high traffic, the transaction fee denominated in dollars generally tracks the price of ETH. Probably because the overwhelming majority of ETH activity is speculative (60% of ETH held on exchanges), and traders view transaction fees as simply a percentage of gains/losses and are more amenable to paying higher fees.

</comment></comment></comment><comment><USER18> > What are things that you can do with blockchains that you can do only with > _more_ difficulty without them?

It's nice to see one of the most important figures in cryptocurrencies state plainly that cryptocurrencies aren't solving problems that have been impossible to solve before.

</comment><comment><USER19> I'm not an economist myself but Vitaliks reasoning in regards to valueing cryptos seems unsound:

 _For example, Ethereum's transaction fees tend to be about $500,000 a day recently, which is about $180 million a year. If you tried to value the ether market cap as some kind of corporation, then the "P /E ratio" is only somewhere in the low 200s, which is high for a company, but not off-the-charts absurdly high._

Those transaction fees are revenues and NOT earnings. I have no idea how profitable ETH mining is but earnings are going to be significantly less after including operating costs (hardware and energy mostly). Also being somewhat new and still unproven, I would add a hefty risk premium to the discount factor. All in all I would say that a P/E of 50 would be optimistic and dependant on getting a lot more transaction throughput. Based on that you could argue that ETH is currently overvalued by a factor of maybe 10-30.

 _There's also this model of store of value, where people hold it because they expect more people to hold it in the future, and because people keep getting richer and the population keeps growing. As long as prices grow slow enough, it can be stable in the long term._

Duh?! That suspiciouly sounds like the definition of a pyramid scheme?

</comment><comment><USER20> Popups, dickbars ... it's amazing that Medium can retain users. I am so driven away by this user-hostile behaviour. I would never ever put anything on Medium.

<comment><USER21> [https://alisdair.mcdiarmid.org/kill-sticky- headers/](https://alisdair.mcdiarmid.org/kill-sticky-headers/)

</comment></comment><comment><USER22> This is an interview between one of the most important economists and most important computer scientists alive today.

Even if you disagree with my assessment (and I'm sure many on HN will be more than happy to do so) I think you will find at least some interesting tidbits in this podcast that will make it worth your time to listen.

<comment><USER23> One of the most important computer scientist is a wrong statement.

He is not a computer scientist. And he is different than one. He should be called crypyoecononomy architect.

Computer scientist requires a lot of more work in research and development, and at the same time he has done a lot more work that is outside of the computer scientist scope.

<comment><USER24> It seems to me that he's advancing the research frontier in an area of computer science. Whether or not he has a PhD seems pretty irrelevant to that.</comment></comment></comment>


Ask HN: How hard would it be to allow 120 character titles? - <AUTHOR>

Hacker News currently limits submission titles to 80 characters.  Brevity is often good, but I've found 80 characters painfully short more than a few times -- especially for science articles.  I can't imagine that it would be technically difficult and I don't think we're likely to see any major increase in title abuse (Reddit-style editorializing in the title, for example) since the HN community is pretty ruthless about flagging submissions if they see a problem. <comment><USER2> Do you have any examples of specific articles with titles that would benefit from a longer limit?

<comment><AUTHOR> Here's a couple of examples from my submission history. I've probably got better examples if I search farther back.

      a) Isaac Asimov wrote a "paper" about a time-hopping compound called thiotimoline
      b) In 1947 Isaac Asimov wrote a hilarious spoof of scientific papers about a time-hopping compound called thiotimoline

The first version is the title I submitted under. The second title is the one I would have liked to use. The first is 78 characters and the second is 115.

Here's another one (66 and 115 characters):

      a) Saroo's Google-Earth Quest: How an Orphaned Boy Found His Way Home
      b) Years after getting lost at a train station, Saroo searched for his birth home using hazy memories and Google Earth

Another thing of note is that you can often squeeze a title down to 80 characters or less, but it really takes a lot of time.

<comment><USER2> For me, I don't think that the longer titles are any better than the shorter ones, at least for the examples that you give above. Looking at the articles themselves, they have completely different titles to the ones that you picked (both the short and longer versions). This goes against the Hacker News Guidelines [0] which state: "...Otherwise please use the original title, unless it is misleading or linkbait." Indeed, a general rule on Hacker News is not to editorialize headlines (ie make up headlines that look good in order to attract people to click on the link).

This does of course raise the question of whether the Hacker News Guidelines are a good idea or not and I am torn on this one. On the one hand, I suppose there are occasions where a headline can be made clearer and more useful by rewriting it. On the other hand, I see the current guidelines as a backlash against the state of linkbait headlines on Reddit when Hacker News was first created all those years ago.

[0] [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

</comment></comment></comment><comment><USER3> Or at the very least, add tooltips to the title links on the list views (comments, new, etc) so we can read the entire title when they get truncated.

For example:

        	Ask HN: How hard would it be to allow 120 characte...

_why?_

</comment><comment><USER4> Well, this would be weird for those who use terminal clients that assume the 80 character limit,(if any exist) on 80-column-wide hardware terminals.

<comment><USER3> I know it's Hacker News and there are likely to be more such users than average, and probably just enough to be worth worrying about.

But maybe they (kogir, dang, whomever) can add ?cols=n as a parameter or something so they can adjust it to their heart's content. Most of us have room for 80 characters and plenty to spare.</comment></comment>


Proof from IEEE that lottery can be technically rigged [video] - <AUTHOR> http://www.youtube.com/watch?v=HkhMCCOHFmM&feature=player_embedded

<comment><AUTHOR> Previously on reddit:

<http://www.reddit.com/r/technology/comments/acvd0/></comment>


Elon Musk joins Donald Trump's advisory council - <AUTHOR> http://www.independent.co.uk/news/people/elon-musk-donald-trump-advisory-council-a7474416.html?cmpid=facebook-post <comment><USER2> He should be good in this role. He knows how to spend government money.</comment>


Ask HN: How would you teach teens to code in 2019? - <AUTHOR> My son and daughter are growing up and after setting them up with Linux machines and kids coding activities (Scratch, Coding Minecraft w Java, Shoes.rb and more) a few years back I think it's time to teach them to code proper.
I have experience in ruby and react and currently work as a Digital Media Designer.
What resources would you suggest? A. As a curriculum To run a small code club with them and a friend or two with homework in between
B. Self directed online resources they can use to level up themselves?
I've always loved ruby but am aware that JS is king and also want them to have exposure to functional languages also. <comment><USER3> Agreed that they should show an interest before you embark on this. Finding joy in general education is more important than job skills for that age.

That said, Ruby and JS are not great languages for teaching fundamentals. They (especially JS) have a lot of weird design decisions that don't translate to other languages and don't map neatly onto problem spaces.

If you insist on JS, start with TypeScript at least. But maybe D, Kotlin, Go, or Dart would be better to teach general concepts.

Python would be a good add-on because they could actually use it to write quick utility scripts and, eventually, data analysis.

Instead of linear programming exercises, it may be easier to find problems they find interesting and help them Google their way through solving them. Maybe they have some tedious homework they could learn to automate.

The problem you'll find is that kids don't do much work, so programming (i.e. making a computer do work for you) isn't necessarily that exciting yet.

<comment><USER4> When first learning it's more enjoyable to see an idea translate quickly to reality.

JS is great for that purpose. It's very easy to make animations and other fun effects in the DOM or build an extension on top of their favorite site. Once invested they might start research and discover CS fundamentals. Immediately throwing them at typescript without understanding JS could lead to frustration/confusion.

They also might learn an appreciation for things like type safety by not having them. For that reason dynamic languages like Ruby /Python are great. They can execute an idea faster, and if they get frustrated by those types of issues then introducing them to those other languages. Kotlin is cool, but it makes a lot more sense if you have had to deal with null pointer errors before.

<comment><USER5> I finally learned Javascript after hating two compsci classes that used Java. I really like Javascript or Python for beginners, I think other languages are too strict and are not "fun" to learn for beginners

<comment><USER3> Java's strictness used to be tedious and redundant. Don't assume all strict languages work like Java. Type inference in Kotlin, for example, is fantastic.

Strictness with good error messages is much better for beginners. That's why I use the strictest possible language in professional work: if the compiler can do a bunch of work for you, why not let it?

Strictness is like bumper lanes or training wheels.

</comment></comment></comment></comment><comment><USER6> I've been volunteering to teach high school kids how to program for the past decade and it's been my job for the past two. As many of the other comments recognise, finding the joy in programming should be your number one goal. Having peers to bounce off of and push each other forward is a great way to do this!

One of the programs we run at work is an online 5 week competition where you learn to code (either with Blocky or Python) at the same time. It's called the NCSS Challenge [http://ncss.edu.au/challenge](http://ncss.edu.au/challenge) . It's aimed at Australian students, but you can give it a go from anywhere in the world.

Teachers often run the Challenge in their classes and we have had a few code clubs run it too. It works really well having a group of kids be able to compete and encourage each other to solve problems.

There are multiple levels, but it increases in difficulty each week at a challenging but achievable rate. At the hardest levels it gets quite competitive with students making programs to compete at playing games (last year was Big2) against each other.

I'd recommend clicking the "Try demo" button at the bottom of [http://ncss.edu.au/challenge](http://ncss.edu.au/challenge) . Even if you don't sign up, you can get an idea of what kind of problems we see kids getting hooked by. I think there's a lot you could "steal" in terms of how to pose interesting yet simple and informative problems for teenagers to solve.

</comment><comment><USER7> Glitch is amazing. It solves the development environment problem better than anything else I've ever seen - you can spin up a new environment entirely from your web browser without installing anything, and seconds later you have a dynamic website that other people can visit.

It's also a really great learning community, thanks to their "remix" feature (like forking on GitHub).

<comment><USER8> I also really appreciate that you can get started playing around without making an account.

</comment></comment><comment><USER9> When I was quite young, I started 'programming' by copying code out of magazines. I would run home from school, open up a magazine, write code until dinner, run downstairs after and write code until I had to go to bed. If I repeated that often enough, I would eventually (if I was lucky) be able to compile my code, fix the 14,000 missing pieces of punctuation and then have a (very primitive) game to play and share with my friends.

I don't recall learning much, but I was at an age where I was more concerned with getting Nario to jump over a bucket than with actually learning. I likely did learn something, maybe even just a passion for sitting in front of a computer and making it do cool things. I'm sure I also learned that if you really want something, just put in the hours and jfgid. For me though, the operative part was games. I wanted to play games and at some level, I wanted to learn how other people built amazing games for my Tandy.

The point of all that (other than 7:30am nostalgia) is that, for me at least, I had to be motivated. I had to want the end result enough to push through the grueling bullshit of it all. To this day, I believe that the only way to learn to code is to fall in love with a project to such an extent that you can't stop yourself. Whether that's a good lesson for teenagers will have to wait...my kid is only three, so I have a decade of self doubt to interfere. :)

<comment> yoz-y I fear that this kind of passion is now harder to achieve, because kids are shown that computers can do amazing stuff from very young age but anything that you can produce yourself will be woefully behind. Back in the day a game copied from a magazine was worse than what one could buy, but not _that_ much worse.

This is why, I think, we see people "coding" in Minecraft and Roblox. They have all of the environment set up for them and can do cool stuff which they can immediately appreciate.

<comment><USER10> While I agree to a certain extent with the point you made in your first paragraph, I'm not sure why you doubt quoted coding with regard to Minecraft and Roblox. Both games have Turing complete languages. Roblox uses Lua.

Minecraft uses javascript on Bedrock, but also has a command block scripting language along with redstone, which together form a unique and mentally stimulating coding environment.

This isn't even mentioning mods which add different languages (Forth or Lua) or modding the game itself, which isn't that difficult to stumble into these days.

<comment> yoz-y Oh, I did not know that (I was only familiar with redstone).

</comment></comment></comment></comment><comment><USER11> I started with BASIC programs written on my TI-86 to automate math problems; they may find that a useful way to get started, and learning a little BASIC shouldn't be much more brain-damaging than learning Javascript.

I kind of have a problem with training people to "code" rather than teaching computer science; feels sorta like comparing a "wine and painting night" to a course in oil painting, in that you might shortcut to something acceptable- looking but with little understanding of how or why you did it. But they're kids and will probably quickly tune out during Dad Explains Linked Lists :)

Ideally I'd suggest starting off with some smaller guided exercises to get them familiar with the language, then work with them to spec out and implement a more interesting project. In my CS courses in college we implemented the minimax algorithm for tic-tac-toe and checkers, starting with a tic-tac-toe engine which just printed out its desired move and evolving along until we were displaying a checkerboard as it played along. Could be a good project for you since it's implementing something they're familiar with (board games), doesn't use anything weird like networking, and can introduce concepts such as recursion and complexity ("if we have it calculate the next move, how many possible moves are there? What if we calculate the next two moves? The next three?")

<comment><USER12> I remember geometry in 9th grade. I ended up programming my TI for all the formulas so it would prompt for the variables then you hit enter and viola, perfect answer every time.

We had a test where I ended up finishing in about 10 minutes. The second person to finish took 30 minutes +. In hindsight I should have went slower because it was obvious no one could have finished as fast as I had.

After the class was dismissed the teacher obviously asked me to stay after class and asked me if I had downloaded all the formulas I had used.

I explained that I did not download/transfer from someone and that I had programmed the calculator to do it for me.

Teacher called me out (probably not believing it) and asked me to program the volume of a cylinder.

Took about 10 minutes to write it up quick, showed it worked and rather than reprimand me the teacher did something amazing.

She said something along the lines of, "If you understand the formula enough to write a program to do it for you, that shows you understand it at a higher level. Rather than punish you, I will still give you a 100% and you are allowed to use your calculator for the remainder of the class as long as you do not share your program(s) with anyone else."

I never had many friends (loner nerd type) so that was easy and it was the easiest 100% I had ever gotten.

<comment><USER11> Hah, it was geometry class for me too. Lots of plug-and-chug arithmetic, no logic required, translated perfectly into simple calculator programs.

</comment></comment></comment><comment><USER13> You should differentiate between the different aspects programming involves. I sure do see logical thinking as the most important aspect of development. Also Algebra is important, but well above the understanding of a younger child. If you look for example into Game Design you get a lot bigger area of interest that is combinable with programming, such as UI, Art, 3d, Sound, Story, Mechanics and Level-Design, etc.

Getting them directly into programming directly will likely be the wrong attempt, because (in my opinion) programming requires a lot of frustration tolerance and if done the wrong way will spoil it for them. Also combining an existing interest with development, such as using their painted characters in a game might create interest in content creation.

In our Game Design BA, we also give a summer school course for kids (12-18 years), that teaches them to develop a game in GameMaker during 2 weeks. Other visual development systems such as GameMaker might be good as well. Afaik lego also has a visual programming system for it's mindstorms system.

If you you insist on classical programming languages i'd suggest python with some ui based libraries (for example pygame, not because of gaming, but because of graphics, sound and interaction aspects) or processing.

I also consider gaming as an important aspect of learning. But the game has to change often, othervise it's just enjoyment to get perfect in a system that you already mostly understand. I usually reach this point after 2 to 8h in a game, because i want to understand the logic of the game. If you enjoy the story, you have to go trough the whole game usually. To reflect on the things you played and experienced is good to learn as well, but usually spoils the fun. There are a lot of games that teach logic thinking and often contain logical structures systems or train logic thinking. (minesweeper, sudoku, kerbal space programm, bridge builder games, lots of construction games (minecraft)...)

</comment><comment><USER14> I'm super grateful that my first exposure to programming (high school in Eastern Europe, 10+ years ago) was in C++. I don't think we even did a lot of C++ specific stuff so it was probably closer to C but using cout instead of printf. Covered things from if-statements and loops to sorting and tree- searching algorithms. It doesn't sound flashy and it somehow goes against the trend to try to make learning exciting, but it lays a really nice foundation in your learning.

<comment><USER15> This.

I learned programming from doing C, and man am I glad I did. I thinm if my first language had been something like JS it would have been a major impediment.

</comment></comment><comment><USER16> Teens/Childs quickly loose interest in something. Find out what they find "hip" or cool, don't expect it to be what you find cool. I would rather support them to program their own Instagram app then to propose them to some hardware programming environment (thinking of educational boards) if they don't like it.

Also, learning programming was applied autodidactics for most of us, isn't it? My feeling is that this is the only really working way of learning programming (have worked 10y in university, teaching programming: Doesn't work well).

It really depends on your kids and on your relationship to them. Maybe you should present them a vast amount of programmable devices and interfaces to explore together interesting projects.

<comment><USER17> It's the content on IG that's fun, not the app itself. Take it from me, someone who half-learned JS and PHP through extremely tedious "build your own FB" tutorials that took 2 hours of setup work (VirtualBox, MAMP, MySQL DB setup, etc etc) before you even started "coding".

At best they will end up with something not much more than a static website that can accept image uploads. Forget about live video, stories and the stuff people actually use on IG.

I think a simple game would be better. Easier to see results early on, at which point you can dive deeper into the mechanics of what's happening.

<comment><USER16> You nail it: I find "Instagram" as an application interesting, because it can be approached really easy (file upload and viewer). That even you don't find it interesting anymore supports my point that it should be the kids who decide what to code. I never had an interest in developing games. When I learned JS and PHP (~15yrs ago), I created tons of dynamical websites which nobody used, but which were fun to code.

</comment></comment></comment><comment><USER18> First one is Beaker Browser. I know this isn't a popular technology - <USER2> that's not important to a teenager. I have been teaching some teenagers how to build little JavaScript apps in Beaker (no npm or git yet) and it has completely caught on for most of them. These are kids familiar with Scratch but not text-based languages.

The nice thing about Beaker is:

* They can write dynamic apps without needing to write server code. (We are working on note-taking apps and home pages that save to the file system.)

* They can share their stuff and link to each other without needing to publish anywhere. This also makes it a kind of private network, so it feels like a safe place to make mistakes.

* Has a built-in text editor and file manager. Eventually they will learn more - but let's start with just the HTML, CSS and JS - that's already a lot to take on.

* Concept of versioning is built-in, so hopefully this will make it easier to teach source control.

Other good tools that I have enjoyed using to teach elementary-age kids: Twine is amazing. And Scratch (as well as Scratch Jr on touch devices) are good preparation.

To determine interest level, I like to have them watch over my shoulder while I build something small for five or ten minutes. (Don't go too long.) I start by just showing how HTML tags work. This will excite many of them - they may even start to conjure up ideas right away - if it doesn't excite them, then perhaps the interest isn't there. (Or they might not understand something like HTML yet and need something simpler.)

</comment><comment><USER19> I have taught programming in schools in the UK. It's not necessarily that easy. If your kids are beyond Scratch and Minecraft, I would teach them Python - I think it's the best teaching language and it's also real world useful. I've mostly used Code Club resources but what I'd really like to do if I could would be to teach programming robots. Although really getting into coding will only happen if coding or a project grabs their interest, I think it is super useful for every child to have programming experience. It introduces them to a different way of thinking and teaches them that they can do at least some simple coding for themselves.

</comment><comment><USER20> Start with purpose. My son only really went for it with Java, because he needed it for Minecraft plugins.

Attempts before with Scratch weren't too successful, but once the Why was there, setting up Eclipse and all kinds of silly things Java makes you do weren't a lasting obstacle.

</comment><comment><USER21> High schoolers are so innately passionate about tech today. May be best to let them figure out where their own passion lies. And just be there to sign off on the purchase orders.

In the past year I've witnessed:

Student run AR / VR clubs producing award winning interactive digital content

OS development in Rust for a robotics competition

Computational cinematography for programmable drone swarms to produce short form content for a YouTube channel

Functional design in CAD of a Martian habitat

CV object recognition and tracking app using Core ML

And an automated burrito making machine!

VR edtech content is particularly effective in classroom settings, with near 100% interaction rates. I'd say producing 3D VR / AR content is probably the skill they are most anxious to acquire. And it involves not just getting Oculus type hardware into classrooms and training instructors. But also Blender skills, narrative voice for the new medium, and thinking about localization for global distribution. There's no downside to being able to express one's embodied teenage reality in an immersive imagined world.

</comment><comment><USER22> If I had to teach a class right now, I'd teach them on Raspberry Pi's and with some command line / terminal capability that includes SSH. I would probably bring in mathematics, taking care to separate the two pedagogically. I think the rest of the details would depend on the age of the kids in the class.

<comment><USER23> Exactly. Command line /terminal should be the first step in any learning that takes place on a computer.

</comment></comment><comment><USER24> Do they show an interest? Same as playing an instrument you can get them one, teach them a few tricks, send them to classes and then, well, they either want to pursue it or not.

<comment><USER25> I agree to the extent that a hands-on person might not care for or see the value to learn programming. I had arguments with my younger brother about learning software programming, whereas he liked building computers and building out networks (I'd jibe, 'pulling cable').

That said, I don't think music education is a good analogy, unless you're working at Guitar Center. I'd say it's more like learning Spanish, if you want to be a food service manager. It's not your job to speak nor write in Spanish for Spanish speakers, but it's damn useful.

So what I'm saying is you don't have to become a programmer to realize the value of doing a data analysis task in a fraction of the time it takes in Excel. Especially how business likes to pile on work (now you have one more thing to do every week) in a way that design and project-based work does not.

</comment></comment><comment><USER26> For direction of learning, I'd recommend finding challenging projects with them which they have a strong interest in, and can feel a sense of ownership over, then let their curiosity and creativity drive the teaching. The teaching should reward them by solving problems they are perceptive of and value.

I think for a language, Javascript is a great choice. It's convenient because it can be used in the browser, or CLI / server with Node. It has powerful and user-friendly tools for debugging and profiling. NPM has a wealth of libraries for graphics, robotics, machine learning, and pretty much anything else you might want.

For functional programming, with interoperability with Javascript, there's Elm: [https://elm-lang.org/](https://elm-lang.org/)

</comment><comment><USER27> I would not focus just on programming but on projects. I would get a few Raspberry PIs and some electronic components and let them build and program devices. Build a simple weather lab for temp, humidity, etc. Build a silly traffic light that is triggered by a motion sensor. Have a lamp that can be controlled from a web page.

Programming isn't just about web apps and mobile games, so teach them how to build simple projects. Their eyes will open up to all the things computers control all around them. That way they get to decide what they like, hardware, software, both, neither.

</comment><comment><USER28> Initial interest is very important but not enough. The best way to teach teens (not just today) would be by making something simple and interesting together with them. It can be as simple as a "tic-tac-toe". Then add on complications little by little. The language itself doesn't really matter. It's always evolving but the concept is similar through all common languages. Here is my story: I was born in the mid 80' and was curious about computer science. Unfortunately all my computer science classes turned to be super boring at that moment...I decided to switch to economics and finance. Occasionally I used python/sql for some basic scripts at work. But I never understood "the magic" of coding... till recently I started learning coding with a bootcamp. I was so surprised that I really enjoyed it. I loved the problem-solving aspect, the strong logic and the power to create something simply by coding! Now I look back my experience at school. Most old classmates doing well at CS started exploring coding by themselves thru gaming projects. They were so passionate about doing projects, but so much the theories, while I was worn out by most computer science classes filled with blablas. I wish I had done the fun projects with my classmates instead taking boring theory classes at that moment. Coding is such a practical material - different with other STEM subjects. We should teach people first about how to code, then how to code better with all theories behind that.

</comment><comment><USER29> If your kids get into coding and if they're doing Javascript (which I think is a good place to start for lots of reasons, but python might be better) I can personally recommend Free Code Camp for learning basics and intermediate topics in javascript web development. The interface is thoroughly gamified and it's very effective for people who are, but ONLY after they're enthusiastically hacking away at web dev. They'll be much more successful at learning the basics once they realize that they want and need the basics.

</comment><comment><USER30> For me the 'magic' of BASICs line function helped me a lot to start coding because I could 'see' the results and was blown away by the graphics.

Therefore I would go for Processing, which is a kind of Java. Or even the online version [https://p5js.org/](https://p5js.org/) which integrates the HTML DOM.

And ofcourse follow The Coding Train with Daniel Shiffman. Fun to watch and he has video's for starters and experienced coders.

<comment><USER31> I did not see this comment and added a similar one and looks like there are 2 Coding Train fans on here. this. rocks !!!

</comment></comment><comment><USER32> code for code's sake is usually boring. using code to do something you already want to do can be fun.

so start by finding a project. even better if they find the project on their own...

<comment><USER33> So true. I think that finding a project involves listening to the child/young adult and listening is a bit of a skill!

I think trust is also important. So if you can do a collaborative project where you do your bits and they do their bits then it should all work out.

Then you need some imagination. To think of a project. It should satisfy a personal itch. Or a neighbour's problem.

A good breakdown of roles is for adult person to do some hardware, even if the computer interface is just a switch and a relay and then the computer bits can be done by the young person.

I would say that listening is important, particularly if you want the young person to be owning the project.

</comment></comment><comment><USER25> I'm thinking about this for my niece--topics, ideas, pedagogy.

First, I'd say data storage and retrieval. I created my first DB on a Macintosh and FileMaker. Super useful. I still use a DB I started 20 years ago filled with every book I read. Make a project for quickly designing a database and using it. Someday they'll find a use for the skill.

Second, flip the script. Instead of cool projects, teach them what computers are great at. I think algorithms and models/simulations are really on-point. Team that up with learning Jupiter Notebooks, wow.

Finally, maybe you could teach them strategies on how to learn, and mix some computing solutions into it. Audit some Coursera or Edx classes. I recommend Charles Severance [1] and the Guttag and Grimson [2]. The whole course may be over their head, but there are a few really accessible lessons that are super interesting.

Good luck. Whatever it takes.

[1]: [https://www.coursera.org/learn/python-network- data](https://www.coursera.org/learn/python-network-data)

[2]: [https://www.edx.org/course/introduction-to-computer- science-...](https://www.edx.org/course/introduction-to-computer-science-and- programming-using-python-2)

</comment><comment><USER12> I would direct them to a game style coding session as gaming can be a stepping stone for some.

For me gaming led to wanting to mod the games, which led me learning how mods were created and learning to 'break' the game.

I am not affiliated with them however I did stumble across a DApp programming 'game'

[https://cryptozombies.io/](https://cryptozombies.io/)

If they like the above at that point I would direct them to other programming languages.

</comment><comment><USER34> You could look into Turtle graphics and Clojure. This is a modern take on "Logo" \- a language designed for children, but the learnings can be applied directly to Clojure/Clojurescript.

[http://timothypratley.github.io/power- turtle/](http://timothypratley.github.io/power-turtle/) (try in browser)

<comment><USER31> Thanks for sharing this , I think its a interesting approach to learning Clojure and I am a going to use this. Using a LISP as your first language may be too abstract to effectively teach and use. I would consider it a risky approach . IMHO it is better suited as a second programming language for someone who already codes and wants to expand on his/her programming skills. I would like to here from someone who started with a LISP ( as opposed to the 99% of us who start with imperative languages)on their learning experience.

</comment></comment><comment><USER35> I did a video series with this in mind: gameswithgo.org

Teaching programming fundamentals via game projects. Things mostly from scratch, no engines.

</comment><comment><USER36> This is more "resource" than "curriculum" but have you seen Glitch.com? It's a combination hosting service/dev environment/playground that has lots of example projects that can be forked and modified, many of which are things that they might find interesting (messing around with Spotify playlists, etc.).

</comment><comment><USER37> If they have interest in it, by all means. Programming is a very slow learning curve, which can be frustrating for most people. I would personally start with very highly specialised / abstracted programming environments. If they like video games, using things like construct or, harder, Unity might be a good inbetween. Because of scenes editor and such, you can create something nice just with a series of drag and drop, and just write a few simple scripts to make it a bit more alive. It's also good to start on existing tutorial and try to customise them.

If they aren't interested in video games, it might be harder to sell programming as a hobby. I guess there is something a bit more magical to "hey, I managed to make this cube move when you press the joystick, and then when you press A it jumps" vs "hey, I have a sign-in form for my app".

</comment><comment><USER31> I would highly recommend this channel Coding Train on Youtube [https://www.youtube.com/user/shiffman/](https://www.youtube.com/user/shiffman/)

The instructor Daniel Shiffman explains coding from the ground up and is easy to follow along. The kids can use the web based editor [http://editor.p5js.org/](http://editor.p5js.org/) and all you need is a browser. This is usable from a tablet but using any laptop or desktop will provide a better experience.

Start with the playlist Coding with P5.js [https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tM...](https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA)

This channel starts with the basics and goes all the way to machine learning !!!

</comment><comment><USER38> If I had the time to construct exercises I would use a very primitive game engine to teach these things. Depending on the students math level you could focus on the interactions and their logic or the math of physics (in a simple way).

This idea is biased to my own experience.

The benefit of this approach is that it teaches that computer science on its own is great. If you add an understanding of science and math, it can be even more powerful.

I think working with numbers is something programming "snaps to" easily.

The weakness of this approach is that anyone who thinks they're weak at math or logical thinking ends up possibly feeling left out.

For example:

\- if Mario touches an enemy, he should loose a life

\- if Mario has a power up active he should go back to original form

\- implement Mario's jump

\- implement Mario's movement

\- make it inertial

\- implement gravity

\- implement momentum

\- etc..

</comment><comment><USER39> I assume by "Code Proper" you mean the ability and knowledge to use computer science to program. If so, focusing on programming only would be like focusing on the HOW, the procedure, whereas focusing only on CS would be akin to focusing on the WHAT and WHY, the rules and purpose. These two complement each other.

In this case, your kids should learn the language that teaches them CS at meaningful and deep level, so that they can see what is the soul of programming. You would need Scheme language, the text being one by Friedman (sorry, not a fan of Wizard book for the reason that it is very MIT-centric and elitist in that sense).

Once they know enough CS and Scheme to find their way in the map of programming (in the scheme of things, pun intended), then I suggest at least two programming languages that differ from each other in how they solve problems and what kinds of problems. One of these is without doubt Python, because it is connected to all sorts of fine things like web dev, AI, general purpose programming etc, and is programmer-friendly enough to not cause mild and chronic masochistic psychosis like certain languages (not naming names, because this is highly subjective).

After your kids are experts in Python, they should learn Javascript because of its utility, but also how different it is from Python. These two languages for operational, utilitarian purposes that also nicely supplement what they did with Scheme.

Once they have a good grasp of Py and Js, they should build proficiency in Haskell so that they can appreciate programming from a completely different angle; Haskell is going to be more useful later, so it has more than just didactic value.

After Haskell, some Julia for computational programming would be nice, since Julia does things efficiently and differently.

At last, they should also master C, for historical and low access purposes (and to not to fail "can you C" question).

With these languages under the belt, and the basics of CS1, they should move on to CS2, and try real world programming. John Zelle's book teaching Python and C++ for a second course in programming is very nice.

</comment><comment><USER40> Give them each a raspberry pi, pre install it with risc os, configure it so the start up language is BBC basic 5.

Then have a search on places like 8bs.com and download some of the "type your own xxx xxx game" books, or have a look for "Marshall Cavendish input magazine" if you search around you can find all 52 issues as pdfs.

Have the kids work through the books, and the practical exercises in the magazines.

In the 1980s and 1990s this produced some of the best UK developers and coders around, and inspired an entire generation to write their own softwate, to explore the machine, to tinker about under the hood with things like assembler language, and really understand what's happening inside.

Once they grasp that, change the config of the rPIs and install desktop c, get them writing desktop software and designing guis for their apps so they start to learn high level languages, and how they relate to the low level, use your skills to teach them how users will interact with their gui.

When they start mastering that, jump up higher, compiled vs interpreted, script languages, presentation languages (such as html).

It never did me any harm, I make a pretty good living, I'm an 80s back bedroom developer and proud of it.

Before I submit this though, I know there are going to be many who will cry "we don't need low level knowledge anymore", "what on earth do you want assembler for" or "you old hippy grey beard, bigger off and leave us kids alone", to which I say.....

Trust your gut, it's not about learning assembler, or low level, it's about encouraging exploration, it's about getting them to discover how fascinating the journey they are about to embark on, and not just cramming their minds with syntax and turning them into code monkeys.

Even now, nearly 40 years later, I still love what I do, I'm not afraid to take the lid off windows/linux/macos and break things, because you learn so much more when you learn how to fix your screw ups.

Good developers are born out of passion for what they do, not from nessecity or a sense of future preperation.

</comment><comment><USER41> I learned to code on GW Basic in the 1990s. My first programs were simple games like: try to guess which random number the computer picked, you'd input a guess, and the computer would respond with higher, lower, or correct (IF- THEN-ELSE). You'd get to keep guessing until you win (LOOP).

Those might be mundane coding examples for teenagers, but it taught me the basics of logic.

Functions is one thing I wish I had learned about a lot earlier than I did. Also how to commenting out lines of code, rather than deleting them. And how to use the debugger. These are no-brainier concepts now, but I was 10-years- old and self learning from books with some guidance from my dad and brother.

</comment><comment><USER42> I think it would be good to try something different. First I would get them good at typing code. This way they will not have to think about typing and thinking, they can just think. Second I would figure out a way to get them used to the concepts of programing, like for loops, variables, ect.. by doing other tasks. For example run a soccer drill like a for loop so they are learning secondly. I think this might help with some kids giving up early since its hard. It should be a little easier since they will have some experience with the concepts since they have run the drill before. Hope this makes sense, good luck!

</comment><comment> jerome-jh Well it is difficult because there are so many distracting things and programming environments are not very engaging for kids. My two daughters had great fun assembling Lego Mindstorms and Robotis Bioloid kids (with the smallish metal screws). We then downloaded the examples programs to which I did a few changes in front of them, and tried to explain stuff. But clearly they showed no interest in the programming activity. So I did not insist. I may try some time later with an Arduino: I think it is by far the less sucking programming environment for young people, and it basically works (and is text based).

</comment><comment><USER43> Show them how Google works. Try to give them some kind of motivation to learn to code. Make sure they know how to read. Demonstrate that you can make money doing it (i.e. by programming yourself and earning money from a product or job.) If they are smart and they are actually interested in coding, they will use online resources to teach themselves. If they are not motivated enough then you can give them projects and pay them for accomplishing them. But they aren't going to get very far if you have to do that.

</comment><comment> a-saleh Code-club sounds great.

I can say from my memory:

I received computer in 1999, on my ~10 birthday.

I don't remember if I had big drive for learning programming, but my mom found me a programming course for kids.

It was once a week for two hours?

We used Visual Basic For Applications (because it was present in every office install)

We mostly did simple cli-like applications, composed of strings of input and message boxes, i.e. quizzes, simple calculators, poem generators, maybe even simple interactive fiction? It took as a year to go through all of the basic primitives.

Later we used form-designer and made simple games with the Timer object.

I liked it :)

</comment><comment><USER44> Like the rest, if they are interested. I think, again like others, that something with better fundamentals than JS would be good as then JS won't be hard to take up. I learnt coding in the early 80s by programming games. But when it came to making money I used those skills to build business applications. And I liked that as well (I like the feeling of creating something that works 'out of nothing').

<comment><USER45> Something fun to start in might be GreasyMonkey kind of stuff were they can manipulate existing sites. That could introduce them into a lot of programming areas while still allowing small changes to have big results.

<comment><USER46> This. My 12 year old son was never very interested in school coding (Scratch mainly), but when shown how to manipulate existing web pages using Inspect in Chrome that really caught is imagination.

</comment></comment></comment><comment><USER47> I'd go with turtle initially as suggested by another. Until they can wrap their heads around concepts like loops and the basic cause and effect of code = an output. Wrong code wrong output etc.

Then python. Though keeping that interesting for kids is going to be a challenge I think. Maybe if they can control some sort of LCD array or a motor or robot of sorts?

</comment><comment><USER48> JS is not king. It doesn't self-host. It is just scripting.

C and assembly are fundamental. If you want to get fancy: Rust, and [https://ispc.github.io/](https://ispc.github.io/)

Ghidra is a good learning tool. Use it to decompile executables back to C, and to look at the assembly.

</comment><comment><USER49> Arduino is a great tool and language to start out with coding! It is easy to start out blinking an LED, and from there you can do lots of very cool things with servos, speakers, and sensors with a lot of available parts, tutorials, and code libraries.

It requires a little hardware but I think that is what makes it more fun!

</comment><comment><USER50> A. Check out archive.org and look for old basic computer game books. Your kids can tackle all the games in JS, Ruby or whatever. Plenty of code to "look" at and it gets them thinking on how xyz work in language A and B.

B. Leveling up will happen naturally when they see a problem and want a solution for it.

</comment><comment><USER51> when I was learning programming as a kid it was all about video games. Quake was a new game and it had an embedded language called QuakeC that controlled the game logic. That was hugely fun for making Quake mods. That set me up to do programming in Perl and C.

I would probably play to their interests with projects that are more concrete than abstract. If they are into video games, lots of games have mod languages and they can start by giving themselves more health, more power, different weapons etc. If they are into social media maybe javascriptlets to edit the DOM on a website to change peoples tweets and take a screenshot, twitter or insta bot that automatically responds to certain types of posts, etc.

Teenagers should be able to grasp non-toy languages and the concept of searching StackOverflow for how to do stuff :)

</comment><comment><USER52> I think it depends on what kinds of problems they're interested in solving.

It's not my favorite either, but you'll probably get better traction in Python. Everything from Arduino to algo trading runs in Python. JS if they really like in-browser, but that's it.

<comment><USER53> Python is the closest in experience to the BBC Basic I grew up with, I think.

The only challenge/disappointment vs. BBC Basic is that you need additional modules (and complexity) to output any sort of graphics; if this is of particular interest, I would highly recommend checking out processing [1].

[1] [https://processing.org](https://processing.org)

</comment></comment><comment><USER54> I really like getting people started with IOT projects! They can be simple, often with a Raspberry Pi, Python, some wires, and a sensor, but they are very rewarding to finish and expose them to a lot of different areas: embedded, web, etc.

</comment><comment><USER55> Game Builder: Create 3D games with friends, no experience required

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

</comment><comment><USER56> yes, definitely. My father teaching me to code as a kid was a very happy time!

Today, I would start by playing a bit with the browser developer tools, and then move straight to shadertoy to produce cool opengl demos.

</comment><comment><USER57> How to teach programming to your loved ones: [https://www.youtube.com/watch?v=BleOgPhsdfc](https://www.youtube.com/watch?v=BleOgPhsdfc)

</comment><comment><USER58> Personally, I would think twice and instead help them find what they are good at (or have interest in). Future will include content creation of sorts.

</comment><comment><USER59> CS50x on edx followed by the CS50 sequel focused on game development and/or _How to Design Programs_ followed by _Realm of Racket_.

</comment><comment><USER60> I would definitely say stay in the web development area of programming. It's really expanding at an incredible rate. HTML, JavaScript (All the frameworks), CSS, PHP, etc.

</comment><comment><USER61> Those TRS80-100's look fun.

</comment><comment><USER62> Step 1) Buy a lot of paper. Too many ideas, concepts, and problems in programming are really really big and we have no idea how to effectively tackle them. Being able to take notes, write down your thoughts, create diagrams and pictures, etc is invaluable in being able to learn. Being able to go back and checkout your thoughts in the past helps a lot.

Step 2) You'll want to check out these videos and pass them along as you feel they are appropriate: John Cleese on creativity: [https://www.youtube.com/watch?v=Pb5oIIPO62g](https://www.youtube.com/watch?v=Pb5oIIPO62g)

Philip Wadler on the beginnings of computer science: [https://www.youtube.com/watch?v=2PJ_DbKGFUA](https://www.youtube.com/watch?v=2PJ_DbKGFUA)

Rich Hickey's Simple Made Easy: [https://www.infoq.com/presentations/Simple- Made-Easy/](https://www.infoq.com/presentations/Simple-Made-Easy/)

Types and why you should care: [https://www.youtube.com/watch?v=0arFPIQatCU](https://www.youtube.com/watch?v=0arFPIQatCU)

80-20 rule and software: [https://www.youtube.com/watch?v=zXRxsRgLRZ4](https://www.youtube.com/watch?v=zXRxsRgLRZ4)

Jonathan Blow complains about software: [https://www.youtube.com/watch?v=k56wra39lwA](https://www.youtube.com/watch?v=k56wra39lwA)

I've got a list of videos and other links that is much longer than this. Start paying attention and building your own list. Pass on the links as they become relevant to things your kids encounter.

Step 3) I spent a decade learning effectively every programming language (at some point new languages just become a set of language features that you haven't seen batched together before, but don't otherwise add anything new). You can take it from me, all the programming languages suck. The good news is, though, that you can find a language that clicks well with the way you think about things and approach problem solving. The language that works for you might not work for your kids. Here's a list to try iterating through: Some Dynamic Scripting (Lua, Python, Javascript, etc); Some Lisp (Common Lisp, Racket, Clojure); C; Some Stack (Forth, Factor); Some Array (R, J, APL); Some Down To Earth Functional (Ocaml, ReasonML, F#); Some Academic Functional (Idris, Haskell, F*); C#; Go; Rust

Step 4) Listen to everyone, but remember that software development is on pretty tenuous ground right now. We've been building bridges for thousands of years, but the math for CS has only been around for about 100 years and we've only been doing programming and software development for decades at most. Everyone who is successful will have some good ideas, but there will be an endless list of edge cases where their ideas are worthless at best. Help your kids take the ideas that work for them and not get hung up on ideas that cause them to get lost and frustrated.

</comment><comment><USER63> Www.coderdojo.org is free

</comment><comment><USER64> C and an arduino

</comment><comment><USER39> I assume by "Code Proper" you mean the ability and knowledge to use computer science to program. If so, focusing on programming only would be like focusing on the HOW, the procedure, whereas focusing only on CS would be akin to focusing on the WHAT and WHY, the rules and purpose. These two complement each other.

In this case, your kids should learn the language that teaches them CS at meaningful and deep level, so that they can see what is the soul of programming. You would need Scheme language, the text being one by Friedman (sorry, not a fan of Wizard book for the reason that it is very MIT-centric and elitist in that sense).

Once they know enough CS and Scheme to find their way in the map of programming (in the scheme of things, pun intended), then I suggest at least two programming languages that differ from each other in how they solve problems and what kinds of problems. One of these is without doubt Python, because it is connected to all sorts of fine things like web dev, AI, general purpose programming etc, and is programmer-friendly enough to not cause mild and chronic masochistic psychosis like certain languages (not naming names, because this is highly subjective).

After your kids are experts in Python, they should learn Javascript because of its utility, but also how different it is from Python. These two languages for operational, utilitarian purposes that also nicely supplement what they did with Scheme.

Once they have a good grasp of Py and Js, they should build proficiency in Haskell so that they can appreciate programming from a completely different angle; Haskell is going to be more useful later, so it has more than just didactic value.

After Haskell, some Julia for computational programming would be nice, since Julia does things efficiently and differently.

At last, they should also master C, for historical and low access purposes (and to not to fail "can you C" question).

With these languages under the belt, and the basics of CS1, they should move on to CS2, and try real world programming. John Zelle's book teaching Python and C++ for a second course in programming is very nice.

Post that, it would make sense to become mathematically involved in programming. For instance learning enough good mathematics to understand concrete mathematics for CS by Knuth et al. The best book to do that is the Rozov, Potapov, Dorofeeov text called "elementary mathematics" which was written in 80's when people when authors had very high IQs.

After they finish the Knuth Concrete Mathematics, they could develop real- world software to further hone their skills and decide what to learn next.

The most important thing however, is to let your kids gravitate towards it if they feel like it. I used to hate Piano, but not because I disliked piano per se, but because I had a bad teacher and it appeared harder than it actually was. So make sure your kids like it, but if they dislike it, it could also be due to factor x (some other reason other than sheer dislike).

Finally, good luck and hope my humble opinion has not offended anyone here.</comment>


Women more likely to date men with iPhones - <AUTHOR> http://techcrunch.com/2010/04/21/54-of-women-more-likely-to-date-men-with-iphones-says-iphone-retailer/

<comment><USER2> Local survey results: 100% of males in my IT department said they were less likely to date women who based their dating decisions on men's phone preferences.

</comment><comment><USER3> > "Hear that, Michael Arrington?"

I completely forgot about the ridiculous iPhone/Gender Dating poll the minute I read that line. Did a TC staff writer just really take a pop shot at Arrington? This can only get good.</comment>


How to Learn a New Coding Language Fast - <AUTHOR> http://nettuts.com/articles/10-steps-to-learning-a-new-coding-language-fast/

<comment><USER2> anyone else felt reading that article was a waste of time? anyone seen any brilliant tip here that will let you learn a language faster than you used to?

<comment><USER3> I see no brilliant tips...in fact, the rush to connect to the DB seemed odd to me. I am all for cookbook type approaches to learning, but this one seems inherently limited in focus. Maybe if I know Python and i'm trying to learn PHP? I'm trying to imagine where that is applicable.

</comment></comment><comment><USER4> What's a coding language?

<comment><USER5> It's something you write codes in.

(a pet peeve of mine is when people refer to code as "codes")

<comment><USER6> Old-school mechanical engineers say "codes" when referring to FORTRAN programs.

But in the case of this article I think he means PHP.

</comment></comment></comment><comment><USER7> Step 1: Read Peter Norvig's essay about how there is no shortcut to learning how to program. Now your expectations should be tuned to a realistic setting.

Step 2: Read and write code as often as possible.

Step 3: Wait at least 10 years.

Step 2 is the important one. You'll know you're getting close to learning how to program when you don't need a top 10 list to learn the syntax for a new language in a programming paradigm you are already familiar with. You'll only need a quiet long weekend.

<comment><USER8> Step 4: ????

Step 5: Profit!

I'll show myself out...

</comment></comment><comment><USER9> Honestly, cheat sheets and the like have never been that useful for me. The only thing that seems to work is to figure out a project and dive in.

</comment><comment><USER10> Content-free. Boring. Waste of time.</comment>


BSON and Data Interchange - <AUTHOR> http://blog.mongodb.org/post/9333386434/bson-and-data-interchange

<comment><USER2> Maybe I'm wrong, but it seems like the only thing missing from json is a standard for dealing with time, and a standard for dealing with typed objects/arrays. Wrap all that into a binary format and call it done. All these other additions seem like bloat to me designed for some specific language or use case.

<comment><USER3> When are UNIX time or ISO-8601 insufficient?

<comment><USER4> Because every programming language's library does it slightly different. With the T, without the T, with or without the Z, converted to UTC or not.. Of course it's no rocket science to figure out, but it's work every time.

Notably, JavaScript has no standard way to convert a Date to e.g. 2007-03-01T13:00:00Z.

UNIX timestamps are worse because there's no hint about the timezone (should be UTC but often isn't), plus no space for milliseconds. Of course you can just *1000 for msecs and document that it's UTC, but once again, not trivial.

Basically, you can't just convert a JSON string date into your language's Date(Time) class and be sure that it went right. This is a lot of energy wasted.

</comment></comment></comment><comment><USER4> A lot of tools for (almost) the same job, it seems.

I also like Zed Shaw's TNetstrings alternative: <http://tnetstrings.org/>

I like how it, indeed, is trivial to parse.

</comment><comment><USER5> See also bert-rpc, which is a cross-language/platform serialization standard along with fast rpc support. This is what github uses:

<http://bert-rpc.org/>

</comment><comment><USER6> It'd be nice if the Python version of BSON were pulled out and put in a separate module so that it could be used independent of MongoDB.</comment>


1,800 Minecraft players' email addresses and passwords leak - <AUTHOR> http://www.theguardian.com/technology/2015/jan/20/minecraft-players-email-passwords-leak-online

<comment><USER2> Sounds like the list that has been circulating for months. Dinnerbone (developer) commented on it on Twitter, I think.</comment>


Chargen: Good Intentions on the Old-Timey Internet - <AUTHOR> https://somanymachines.com/tx/character-generator-protocol/ <comment><USER2> Some of the other low TCP ports that used to have public debugging-oriented services:

echo 7/tcp echo 7/udp

This one would echo back what you sent it, kind of like running cat, except on another computer across the Internet.

discard 9/tcp sink null discard 9/udp sink null

This one would discard what you sent it, kind of like running cat >/dev/null, except on another computer across the Internet.

systat 11/tcp users

This one would sometimes give information about the remote system's status.

daytime 13/tcp daytime 13/udp

This one would show you what the other machine thought the current time was. I know of one machine that still supports it to this day; try

$ telnet time-a.timefreq.bldrdoc.gov daytime

to see how it works.

netstat 15/tcp

I don't know what this one did.

qotd 17/tcp quote

This one is like running the Unix "fortune" command or something, except on another machine.

chargen 19/tcp ttytst source chargen 19/udp ttytst source

And this is the one mentioned in the article, with the goal of helping you find bit-level errors on the network path between hosts.

I think many of these were implemented by default and enabled by default in the inetd service, which was a daemon that would bind various TCP ports and then dispatch the connections by forking and execing a specified command with the input and output bound to the socket that the connection had arrived on. However, at least some versions of inetd could also sometimes implement simple services' logic internally instead of using an external command. The use of inetd has now become rare because of the pressure to run fewer network services for security reasons, and because most daemons that provide network services now handle TCP for themselves.

I think one argument for inetd was that there might be services that are typically unused most of the time, so there was no reason to permanently allocate the memory for a daemon to handle those services in between connections. By contrast, as the Internet has gotten larger, faster, and more popular, it's more common to have dedicated machines running individual services that are essentially always in use by multiple remote users, so it's preferable to have the daemon with the relevant logic to answer new requests already running and ready to go. (In fact, now some services will prefork a pool of worker processes to prepare for requests that haven't even arrived yet.)

Edit: does anyone know why these services all received odd-numbered TCP ports?

<comment><USER3> "Well-known port numbers are typically odd, because early systems using the port concept required an odd/even pair of ports for duplex operations. Most servers require only a single port. An exception is the BOOTP server which uses two: 67 and 68 (see BOOTstrap Protocol - BOOTP)."

[https://www.capesoft.com/Cached/UDP.htm](https://www.capesoft.com/Cached/UDP.htm)

<comment><USER4> Old FTP also ran on a pair of ports: 21 and 20, as described here: [https://en.m.wikipedia.org/wiki/File_Transfer_Protocol#Commu...](https://en.m.wikipedia.org/wiki/File_Transfer_Protocol#Communication_and_data_transfer)

<comment><USER5> Are there any Old FTP servers still in existence? It would be neat to find one.

</comment></comment></comment></comment><comment><USER6> I miss those days. Maybe I'm just getting old, but it seems like a trend where time passing or more people getting involved in something causes its inherent quality/goodness/kindness to decrease.

I accept that that's an illusion, though. Things aren't really getting worse overall, nor better. Nothing new under the sun.

<comment><USER7> Try to browse the web without an ad-blocker, then tell me things aren't getting worse.

I really don't know how non-tech people can stand using the web. It's almost a complete cesspool of ads, malware, alerts/notifications, shady sites, and dark patterns.

Apps are winning the war because web sites owners make it impossible to use their site.

<comment><USER6> It's true--I never do this. And on the odd occasion when I get a new browser without adblock, I recoil in horror.

Same with broadcast and cable TV. Who watches this shit anymore?

</comment></comment></comment><comment><USER3> Some of those good intentions got tested early enough. There was an instance of a student at Harvey Mudd in the 80s who set up mail forwarding from his Unix account to his VMS account and forwarding from his VMS account to his Unix account. The first e-mail that came in eventually brought both systems to their knees. And the trust remained pretty unbroken regardless of this. Into the 90s, I could telnet easily enough between corporate and university systems, no VPN needed (although a quick google reveals, no VPN invented either). The levels of access that were granted were rather shocking by contemporary standards.

<comment><USER8> > Into the 90s, I could telnet easily enough between corporate and university > systems, no VPN needed (although a quick google reveals, no VPN invented > either).

Apparently IPsec, SSH, and SSL all appeared in 1995, as did SHA1 and 3DES, must have been quite a year for crypto. But those took time to catch on, especially as the systems were far more fragmented then than today. It took five years more to get rid of the silly export regulations finally on 2000. That should illustrate how new thing even relatively reliable widespread crypto is, before systems were far more trust based

<comment><USER4> I did my junior (high-school) year English research paper on RSA and public key encryption that year (1995). I recall using a phrase along the lines of "This may lead to more trust of The Information Superhighway, and enable its use as a commercial trade center."

<comment><USER8> Curiously RSA is the one thing that's ancient, coming from the 70's. I don't know if it was used much at all for anything before mid nineties though.

<comment><USER4> Yeah, they'd done the math bit, but there wasn't really any practical application until Phil Zimmermann built and distributed (rather cleverly in some cases) PGP.

</comment></comment></comment></comment></comment><comment><USER9> I remember when IRC clients and scripts didn't check the given port number (or ip address) when asked to initiate a DCC (Direct Client-to-Client) connection and you could exploit this by sending connection requests to a set of Microsoft's servers that were always up and running chargen with a hefty pipe behind it. If it was a chat the client would either lock up or get flooded off their dial-up connection. If it was a file transfer you could fill up a hard drive reasonably quickly since they were small back then. IRC used to be pretty rough and a lot of fun...

<comment><USER10> My favorite was to send a

      /ctcp #channel +++ATH0

and watch half of the users in a channel drop off.

</comment></comment><comment><USER11> A lot of these old protocols never die out. You can still find them on the Internet today:

[https://shodanio.wordpress.com/2014/03/06/blast-from-the- pas...](https://shodanio.wordpress.com/2014/03/06/blast-from-the-past/comment- page-1/)

For example, there are still ~53,000 Quote of the Day services:

[https://beta.shodan.io/search?query=port%3A17](https://beta.shodan.io/search?query=port%3A17)

</comment><comment><USER12> > Today, it's mostly old printers and weirdly implemented IoT things that > still respond to this kind of traffic.

And people inexplicably running Microsoft Services for Unix in cloud hosting.

</comment><comment><USER13> One day only governments and criminals will use UDP.</comment>


Toward a Constructive Technology Criticism - <AUTHOR> http://www.cjr.org/tow_center_reports/constructive_technology_criticism.php <comment><AUTHOR> At 30k words, a very long-form discussion, but extraordinarily well researched and constructed, looking at the role and methods of criticism of technology within the media. A masterwork from Sara M. Watson.

Particularly commended: the notes, syllabus, and style guide.</comment>


Privacy and the Treacherous Middle Ground - <AUTHOR> http://www.avc.com/a_vc/2010/05/privacy-and-the-treacherous-middle-ground.html

<comment><USER2> Fred is right on the money here. Facebook was the original private channel in the space. It gained an enormous amount of trust and users as a result.

They don't seem to realise that the social graph was not their competitive advantage for the endgame: that can and will be duplicated. The diaspora bonanza indicates this.

Trust is the ultimate lock-in for any consumer product or service, especially one dealing intimately with people's social lives! It is the hardest advantage to build and is nearly impossible to regain.

The diversion over the past year of trying to be the jack of all trades has cost them a lot and they haven't stopped the hemmorage. The fact that they've waited till this week to realize they have a massive problem and call the rumoured company wide meeting indicates that these people are asleep at the wheel.</comment>


Happy Birthday, Canada - <AUTHOR> http://www.save.ca/community/h-happy-birthday-canada/#.WUWW6GEYg-k.hackernews <comment><USER2> Interesting info, but I find it odd that none of the photo sources are credited.</comment>


Researchers discover how cells remember infections decades later - <AUTHOR> https://phys.org/news/2017-12-cells-infections-decades.html <comment><USER2> So does donating blood on a regular basis reduce vaccine efficacy over time? It seems you'd be giving away the T-cells. For a person with 8 pints of blood, making 5 one pint donations would reduce the number of original T-cells by about half. Unless there is a storage place for them. Do these have an affinity for hanging out in the spleen compared to other cells? That would prevent their loss during bleeding.

<comment><USER3> From what I remember, T-cells (or was it B cells?) hang out in the lymph nodes.

</comment></comment><comment><USER4> Original press release (phys.org just aggregates them):

[http://news.berkeley.edu/2017/12/13/researchers-discover- how...](http://news.berkeley.edu/2017/12/13/researchers-discover-how-cells- remember-infections-decades-later/)

</comment><comment><USER5> Confused about how this is new information. I remember learning the same thing 12 years ago in biology class.

<comment><USER6> I'm also confused but only because I've learned that cells have varying life spans and the only cells I know that last decades are brain cells.

<comment><USER7> The article goes far beyond than just "cells have variable lifespan".

</comment></comment></comment><comment><USER8> Terribly written article.</comment>


BT Tower broadcasts error message to the nation as Windows displays admins shame - <AUTHOR> https://www.theregister.co.uk/2019/04/08/bt_tower_broadcasts_error_message_to_the_nation_as_windows_crashes/ <comment><USER2> "That BT is running a soon-to-be-defunct operating system for its display isn't particularly worrying."

Indeed, what is more worrying is that Microsoft has managed to brainwash people into confusing "unsupported" and "defunct". Windows 7 installations won't suddenly stop working when the day comes.</comment>


How do you manage the code quality of your projects? - <AUTHOR> Hi,
I'm Mariano Focaraccio, Founder & CEO of Gitcolony (http://gitcolony.com). We are working really hard to redefine how software companies manage the code quality of their projects. I'd love to hear about your experience with code review, peer programming and QA processes to understand where the pain points are and make sure we can tackle them!
Gitcolony is still very much a beta - there are plenty of rough edges. It'd be great to hear your thoughts, good or bad!
Thanks for your time! <comment><USER2> This is what we do: [http://www.yegor256.com/2014/08/13/strict-code-quality- contr...](http://www.yegor256.com/2014/08/13/strict-code-quality-control.html)

<comment><AUTHOR> Pretty interesting! Besides static code analysis, do you use any tool to manage manual code review, functional testing and integrations with deployment and task/issues management tools?</comment></comment>


Microsoft scans Chromium code, lops off offensive words - <AUTHOR> https://www.theregister.co.uk/2019/09/03/chromium_microsoft_offensive/ <comment><USER2> The Chromium source has a library in the blink engine that is abbreviated as WTF::* which in this context is the Web Template Framework, which facilitate with custom data-structures to support the blink engine over some of the standard library offerings (As found in the C++ std lib). [0][1]

> I don't expect Chrome teams to necessarily make these bugs a priority (we > haven't seen this pose a problem for us in practice as far as I know), but > if cleaning this up is valuable for Microsoft (or any another Chromium > contributor) then we should have no trouble getting the necessary code > reviews.

This is absolutely one of the most ridiculous and perhaps a winner for the silliest tickets in Chromium I have ever seen. All for the sake of political- correctness and scanning naughty words for 'diversity and inclusion'. The WTF classes are a foundational component in Chromium which has lasted for years and to accept a large refactor for this reason is essentially going against the laws of logic and critical thinking.

It is only when Microsoft that gets involved that they (Chromium Team) will take a look at something which is quite frankly impractical to carry out and is also frivolous to even consider. Any other outside contributor would be shown the door if they dared to show a 'diversity and inclusion' case for 'trigger words' from those who are open to be offended easily. Doing such a purge will cause breakages that are just not worth it.

If I were the Chromium team, I would just close this frivolous issue no matter who it is, even if it is anyone from Microsoft.

[0] [https://chromium.googlesource.com/chromium/src.git/+/62.0.31...](https://chromium.googlesource.com/chromium/src.git/+/62.0.3178.1/third_party/WebKit/Source/platform/wtf/README.md)

[1] [https://chromium.googlesource.com/chromium/blink/+/refs/head...](https://chromium.googlesource.com/chromium/blink/+/refs/heads/master/Source/wtf/)

</comment><comment><USER3> There's something that warms my heart about Chromium using "wtf" as a "protocol message".

The chromium bug report is here, for the curious: [https://bugs.chromium.org/p/chromium/issues/detail?id=981129](https://bugs.chromium.org/p/chromium/issues/detail?id=981129)

[later...] This is all I got for searching "wtf" in the source, it looks like an abbreviation for something longer, would love it if someone could fill us in on the full name (or the story): [https://cs.chromium.org/search/?q=%22wtf%22&sq=package:chrom...](https://cs.chromium.org/search/?q=%22wtf%22&sq=package:chromium&type=cs)</comment>


Ask HN: Know of any data only mobile plans? - <AUTHOR>

I am very unhappy about ATT charging me 110$+ for two iphones. I want to decrease my cell phone bill. One way is to use a prepaid phone for voice and a data plan on a second phone.
Question:
Do you know of any mobile operators who offer only data plan and no voice plan?
Thanks <comment><USER2> That's usual for tablets. Have a look at [http://prepaid- phones.t-mobile.com/prepaid-internet](http://prepaid- phones.t-mobile.com/prepaid-internet) for example.

<comment><AUTHOR> Thanks. That looks promising.</comment></comment>


TOR project uncovers flaw in mass-surveillance appliance - <AUTHOR> http://boingboing.net/2012/07/03/tor-project-uncovers-flaw-in-m.html

<comment><USER2> Previously covered on HN.</comment>