House Republicans propose to scrap $7,500 electric vehicle credit - <AUTHOR> http://www.reuters.com/article/us-usa-tax-vehicles/house-republicans-propose-to-scrap-7500-electric-vehicle-credit-idUSKBN1D2282 <comment><USER2> I have a lot to say on this...

> Critics say electric vehicle buyers tend to be wealthier than average > Americans and do nod need subsidies.

I love how this gets buried at the bottom after an avalanche of criticism. A free $7500 for the rich and an additional $7500 in revenue for manufacturers. Say what you want about the American political system, it is a master class in manipulation.

"But the environment!"

Assuming someone who buys a $100,000 car is unwilling to spending $107,500 for the same vehicle. Yes the environment would suffer, that is also assuming electric cars (in their current state) are less impactful than fossil fuel vehicles (which isn't the case). In fact, used internal combustion cars should be given a subsidy if you care about the environment.

"But the poor can't afford these cars without it!"

The poor can't afford it with it. How many bolts do you see driving around? I've lived in Asheville NC, Nashville TN, and Portland OR. I've seen 3 bolts total and hundreds of $100k Teslas driving around.

If you're poor, you probably live in an apartment without an electric car charging station. You probably can't afford a new car so you buy used which is exclusively internal combustion. So how does this tax credit affect you at all?

\---

I'm intensely fascinated by conversations and how they are framed to manipulate opinion. Depending on your political slant, you could have easily framed this as "tax breaks for the wealthy" or "an attack on green energy" or "supporting domestic manufacturers" or "hurting domestic manufacturers".

It's all bullshit and I can't stand it anymore...

<comment><USER3> >that is also assuming electric cars (in their current state) are less impactful than fossil fuel vehicles (which isn't the case)

Is that true? Got a reference?

The problem is that external costs like pollution are not being priced into the cost of ICE vehicles by, say, a pollution tax. This limited subsidy is a backhanded way of doing that.

I don't see the issue with rich people benefiting from it, because it's exactly those rich people buying 100K Teslas that are paying for the cost of driving research into better battery technology and cheaper cars so everyone benefits from cleaner air and reduced global warming.

<comment><USER2> Yes its true. I do not have a source handy so I'll have to rely on some other HN commenter to help me out.

Basically the math works like this:

An internal combustion cars cost X tons of carbon to produce. An an EV costs Y tons of carbon to produce. If you need a new car, it will probably require the same amount of carbon to produce an EV as a combustion car. But if you can drive a used car and extend its life 5, 10, 15 years, you save all the carbon of producing the car (which is where the majority of the carbon cost comes from).

> I don't see the issue with rich people benefiting from it, because it's > exactly those rich people buying 100K Teslas that are paying for the cost of > driving research into better battery technology and cheaper cars so everyone > benefits from cleaner air and reduced global warming.

I love investing in technology. However, there's probably more efficient ways of doing it. Every dollar spent to help the rich could have been spent helping the poor, or the environment, or funding research.

<comment><USER4> Plus there's the environmental impact of strip-mining lithium for the batteries. This impacts hybrids as well as EVs.

Owning a Tesla (the current fad) or Prius (the previous fad) has long been about _looking_ like you are environmentally conscious rather than actually _being_ environmentally conscious. True lovers of mother nature ride the bus, train, or ride a bike.

<comment><USER5> Owning a Prius was about feeling good.

Owning a Tesla, from what I can tell, is about operating a truly excellent vehicle that happens to be electric.

<comment><USER4> The Mercedes-Benz S-class is a better car than the Model S in many ways (not all). A lot of people could afford either but buy the Model S _because_ it is electric, not just that it happens to be electric.

Just a quick thought from someone that actually went shopping and drove both: The MB S-class beats the Model S in terms of luxury feel. Hands down. The Model S is faster. And quieter. But it does not feel as good as a MB at all. Before you ask, no, I ended up buying neither. I bought a Subaru Forester and an airplane for the same money.

</comment></comment></comment></comment></comment></comment><comment><USER6> If we just eliminated subsidies in the oil & gas world, I can promise you the economy will move towards renewable extremely fast.

Make it a phase out of two - four years..., it would boost sales of EV's and our entire transportation network much more quick than EV tax credits would, AND, it would be a fair market for once!

It would spur innovation, create many jobs, we would lead the world once again in regards towards moving to a 100% renewable economy, etc... so many things. The fat, old pigs/politicians of the O&G industry need to be shown the door... It's 2017... we can do this now.

Not to mention the extra long term taxpayer savings on currently increasing medical costs...

<comment><USER7> What's the biggest specific subsidy of oil or gas right now that you know about?

<comment><USER6> When taking in account of direct and indirect subsidies, see this IMF report: [http://www.imf.org/en/News/Articles/2015/09/28/04/53/sonew07...](http://www.imf.org/en/News/Articles/2015/09/28/04/53/sonew070215a)

There are many other reports by many other groups...

Also consider the costs of using tax payer money to pay for/subsidies infastructure/reasearch in the fossil fuel industry.

<comment><USER8> From that report:

> The bulk of energy subsidies in most countries are due to undercharging for > domestic environmental damage

I understand it's an accepted part of the word subsidy but it always feels dishonest when people treat "lost revenue" and actual money given to industries the same and then combine them into a huge number that is 95% theoretical losses that are difficult to quantify.

<comment><USER7> Right, argumentative, cloudy, and political. If that's what is meant by "dropping the subsidies", then the simple sounding solution actually hides all the complexity of the problem.

</comment></comment></comment></comment></comment><comment><USER9> And if they scrap oil subsidies too, the market can figure it all out. But looks like most direct and indirect O&G subsidies will remain.

<comment><USER10> O&G companies are able to write off the cost of doing business just like other businesses. They are not "subsidies".

[https://www.forbes.com/sites/drillinginfo/2016/02/22/debunki...](https://www.forbes.com/sites/drillinginfo/2016/02/22/debunking- myths-about-federal-oil-gas-subsidies/#cbd6cf06e1cd)

<comment><USER11> It's a ballsy move to compare the oil and gas industries to health. There is plenty to criticise about the way the US healthcare system is run, but do people really begrudge treating the two industries differently?

<comment><USER12> Yes, I do begrudge the dickens out of people who insist that being able to deduct oil exploration costs is an unfair "subsidy" to oil and whose removal would instantly turbocharge renewables by itself.

Letting companies deduct expenses like everyone else is not a subsidy.

It's like it's become part of the common mythos, that US oil companies get massive cash subsidies that are the sole reason they're not beaten by renewables, but the moment you apply any scrutiny it falls apart.

(Environmental concerns are legit, but the lack of better regulation is a non- standard usage of "subsidy" and people go further to claim that tax- deductions-everyone-gets are subsidies.)

<comment><USER11> Do not think that some industries should be disincentivised and others incentivised?

<comment><USER12> I think specific activities, irrespective of industry, should have their external costs priced in.

I don't think that failure to do so the same thing as a cash subsidy.

<comment><USER11> So stick approach rather than a carrot? If that's what you mean I think I prefer this.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> I mean it's kind of the point of tax reform. You eliminate deductions that only wealthier people benefit from and lower the rate over all. You'll see a lot of deductions go away that are good on their own but in aggregate with all the other deductions give us such a massively complex system.

<comment><USER14> > You eliminate deductions that only wealthier people benefit

The Nissan Leaf and Chevy Volt aren't particularly upper class cars. Neither is the Model 3.

<comment><USER15> Yes, those are cars for the wealthy. Most people cannot even afford a car. If they can, they're probably not buying a new car. And, if they do buy a new car, they're probably looking to spend close to $20,000.

<comment><USER14> > If they can, they're probably not buying a new car.

While it's a subsidy; the benefits don't stop at the first purchase. As long as the subsidy continues, prices for used EVs will stay below prices of new EVs.

<comment><USER15> You make a great point.

I'd like to learn more about that dynamic of used car pricing. Do you have any pointers?

Here are some thoughts I have which might introduce subtleties:

* At some price level, there is a floor on "good condition used car that will safely take you from A to B",

* A used EV also price-competes with all used cars, and perhaps even with new non-EVs.

</comment></comment></comment></comment></comment><comment><USER16> These subsidies were almost on the way out for GM & Tesla anyway.

 _The qualified plug-in electric drive motor vehicle credit phases out for a manufacturer's vehicles over the one-year period beginning with the second calendar quarter after the calendar quarter in which at least 200,000 qualifying vehicles manufactured by that manufacturer have been sold for use in the United States (determined on a cumulative basis for sales after December 31, 2009)_

There is a chart here [1] which shows GM and Tesla hitting the 200k sold mark in about 3 months. Sucks to be Faraday Future, but first-to-market is real.

[0]: [https://www.irs.gov/businesses/plug-in-electric-vehicle- cred...](https://www.irs.gov/businesses/plug-in-electric-vehicle-credit- irc-30-and-irc-30d)

[1]: [https://www.pluglesspower.com/learn/forecasting-the- sunset-o...](https://www.pluglesspower.com/learn/forecasting-the-sunset-of- federal-tax-credits-for-evs/)

</comment><comment><USER17> Why do articles like this always paint reductions in a negative manner? This is actually a positive. The credit should be scraped immediately. The credit was an initial incentive to help encourage drivers to adopt electric vehicles, and it worked very well. Electric vehicles are everywhere especially in major cities; they are huge in my city San Diego. However, now that they are mainstream there is no reason to continue with tax breaks. Electric drivers will continue to drive them, and their share of the market will continue to expand with or without the tax breaks as more people convert. Lets us that tax money to pay for other important things like paying off our debt or funding sustainable energy solutions.

</comment><comment><USER18> I bought a Prius Prime earlier this year anticipating that such a move was possible.

This would be a real shame, though, because it does help level the playing field a bit given how much our country invests in oil.

<comment><USER19> I choose the Volt over the Prime and I'm curious if you don't mind, what pulled you towards the Prime?

<comment><USER18> The Volt was the other serious contender for me (especially given that I live in a state that doesn't generally get the electric vehicles).

Ultimately, it was _trunk space_ that made me choose the Prime. We have one car and occasionally go camping and having more storage in the car was more important than the fifth seat or longer electric range.

</comment></comment></comment><comment><USER20> "Electric car buyers tend to be wealthier and don't need subsidies"

If that is so why are republicans proposing to cut the estate taxes?

hypocrites.

<comment><USER21> To be fair ceasing to take people's money and ceasing to give people free money isn't ideologically the same thing (even though both result in people having more money).

<comment><USER22> Since it's a tax credit, it was also never actually "given" to people.

</comment></comment></comment><comment><USER23> Good. Both tax and subsidy distort market price and lead to deadweight loss.

And you can't realistically argue that some endeavors deserve taxpayer support while others have to rely on access to financial markets to get over the hump in their runway. The treasury department should not be picking winners and losers. Leave that to investors that have to put some of their own skin in the game.

The minimum damage to the economy occurs when a tax exactly matches the value of negative externalities pushed out onto the public, to be spent exclusively on cleaning them up, and when a subsidy matches any positive externality that the company hasn't managed to capture yet.

It isn't hard to think that any subsidy for electric vehicles should be scrapped, and within the bounds of the same public concern, replaced with a tax on emissions from combustion vehicles, to be used to make those engines already in service less polluting. The tax phases itself out, as people buy new vehicles that pollute less, and as they make already-paid-for repairs and retrofits on older vehicles.

With the subsidy, you have to turn it off manually whenever the desired economic effect has been achieved.

I have no idea what the motivation is behind subsidizing oil & gas. Encourage people to use engines instead of slave labor? Maybe use gas instead of coal? Whatever the reason is, it may have once favored the best side of a two-sided race, but with additional competitors joining the field, it no longer necessarily helps the best of them. That's why taxing the negative externalities almost always makes more sense, because the tax falls away without further intervention when that competitor exits. Like licensing horses to be inside a municipality, to cover the cost of cleanup when they poop on city streets. When people stop riding into town on horses, and start driving cars, the horse tax goes away without further effort.

There is also the possibility that an industry may _never_ get over the hump in its runway. Do you want to keep it on life support forever? And if not, how do you decide when to pull the plug?

</comment><comment><USER24> I can provide one data point: I drive a 20 year old Honda Civic but I'm looking at getting another car (with automated shifting for spouse). With the $7500 federal tax credit + $2500 CA credit I was considering a Chevy Bolt. Now I'm about 99% certain I won't, I'll probably buy a Honda Civic, now that they went back to making hatchbacks.

I don't know about environmental impact (I bike to work 4 out of 5 weekdays) but that's one lost electrical vehicle purchase. I could have charged it at home for "free" (I have solar panels) but it's way too expensive without the credits.

</comment><comment><USER25> Curious if this would impact the yet-to-be-produced Tesla Model 3s or if it would only discourage future automakers from manufacturing EVs?

<comment><USER26> Some of the Model 3s, it is per manufacturer and begins to phase out after 200,000 vehicles.

[https://www.cnbc.com/2017/07/28/tesla-is-running-out-of- fede...](https://www.cnbc.com/2017/07/28/tesla-is-running-out-of-federal-tax- credits-for-car-buyers-edmunds.html)

So people at the front of the line would be eligible for the full amount.

The ongoing drop in battery costs is likely a bigger factor than the rebate though.

<comment><USER25> Right, I knew it started to phase out (over 6 quarters) after the 200,000th US delivery. My question was more if this proposed legislation could terminate the EV credit entirely, or it would prevent new automakers from taking advantage of it.

</comment></comment></comment><comment><USER27> I love electric cars but I do not think it is fair for my money to be taken to subsidize a car for someone else. I had no say in the matter. The same goes with solar subsidies. If you want an electric car or solar, you should pay for it, not the taxpayer.

</comment><comment><USER28> The correct solution here is not to get rid of the credit, but to introduce a phase out as income rises, so middle class car buyers benefit, but wealthy car buyers don't.

But that won't happen because the real goal of the proposal is to support the oil and gas industry, not to remove a subsidy to wealthy car buyers. As the article states, even the auto industry has come out against this.

<comment><USER28> In addition to the down-votes, can someone explain to me why they think a high income phase-out of the EV rebate is _not_ preferable to eliminating it altogether, especially if the objection to the rebate is that it subsidizes car purchases by the wealthy?

</comment></comment><comment><USER29> How about CO2 taxes on fossil fuels then?

<comment><USER26> Or even just fuel taxes that are sufficient to maintain vehicle infrastructure.

<comment><USER30> My fuel is already taxed - I pay about $0.59 tax per gallon in Virginia.

<comment><USER31> In Germany, you'd be paying $6.14 tax per gallon.

<comment><USER32> Ok, you get taxed more on fuel. Good for you.

There's starving kids in Africa. They have it worse than kids in the US but they aren't more than tangentially relevant to a discussion on hunger in the US.

Your European fuel taxes are of similar relevance to this discussion about fuel and transportation taxes/subsidies in the US.

6.14/gal a wonderful example of an amount of taxation I never want to see on a gallon of anything short of liquid cancer in the US. I'm convinced that we can reach a far more efficient way to implement carrots and sticks.

<comment><USER31> > I'm convinced that we can reach a far more efficient way to implement > carrots and sticks.

What dollar value do you assign to the human and economic cost that any one pound of CO2 will produce over the next century? How did you come by this number?

If you haven't, then you're just going with your gut feel. Gut feel is a terrible way to judge whether or not policy is good, or not.

What if the economic cost of burning that gallon of gas is $10? Would applying that externality to the price at the pump still churn your stomach?

If you don't want to assign a greater or equal cost to it, then the most efficient solution for the market will be to keep polluting, causing net harm. Robbing Peter to fill Paul's gas tank.</comment></comment></comment></comment></comment></comment>


Pop Up Guide to the Personal Computer - <AUTHOR> http://jonathanryan.org/2009/04/28/pop-up-guide-to-the-personal-computer/

<comment><USER2> My brother was given a copy of this book (as a child, in the 80s); it really is as cool as it looks.

<comment><USER3> That's great pop up books always made me think a lot of work went into making sure they worked correctly and probably needed a lot of special fixes to get them to open like that.

This isn't your average popup either as seen on the first picture with the nice interactions. Although I do remember seeing many pull tabs.

</comment></comment><comment><USER4> Oh yes! I remember going through this over and over in the school library when I was in about 2nd grade, attempting to help re-fold pages so they'd pop up correctly.

</comment><comment><USER5> Not a book you would ever want to read for fear of breaking it.</comment>


Show HN: ArkScript, a small and fast language for scripting video games - <AUTHOR> https://github.com/ArkScript-lang/Ark <comment><AUTHOR> A while ago, I was using Lua as a scripting language for my games but wanted something between Lisp and Python, a language which would run on a VM to be able to export only the bytecode, and to be able to code in a lisp like syntax.

And ArkScript was born. I wanted to keep it tiny, under a megabyte, with a few keywords to do everything.

I think I can say I achieve what I wanted to do, now we are working with a small team to improve the code, the documentation, and the standard library. The language is indeed small and fast (even if we can do better, and I'm still seeking for more speed), with immutability (with 'let'), and closures (note that we can read the data captured by a closure easily, as a small object, through for notation: object.field).

<comment><USER3> Interesting project. By chance have you heard of fennel[0]? It is a compile to Lua language with s-expression syntax. Also I believe you can export LuaJIT's bytecode with string.dump and it would be portable across platforms. Not trying to diminish your work, however. This could be useful for having a "real" Lisp embedded in-game. I don't think I've seen a scripting language with immutability either.

Would it be possible to write a REPL using ArkScript or use the compiler from within the language?

Also, I'm really curious how you got so many people to work on the language. How did you accomplish this?

[0] [https://github.com/bakpakin/Fennel](https://github.com/bakpakin/Fennel)

<comment><AUTHOR> I've never heard of fennel before, looks interesting!

Yes it's possible to launch a REPL by using the `-r` or `--repl` option when launching ArkScript executable.

A few people contributing on the language are people I know from some programming discord servers, and the others came to work on the project after discovering it thanks to the hacktoberfest tags I put on the issue.

</comment></comment></comment><comment><USER4> Exactly how can a language that's 4x slower than _CPython_ , on the only benchmark posted, be considered "fast"?

<comment><AUTHOR> This is a very heavy test of non optimizable recursion, and (benchmark not published yet) ArkScript is only 2 times slower than JavaScript. It sounds a lot, but please note that I'm actively working on improving those numbers, and I'll add other benchmarks (fast allocations of lists and more) to have a better idea of what the language is capable of in term of speed.

<comment><USER4> > This is a very heavy test of non optimizable recursion, and (benchmark not > published yet) ArkScript is only 2 times slower than JavaScript

That statement does not help. Which implementation of Javascript and what kind of benchmark is only 2x faster?

For starters, here is a good overview of Javascript interpreter performance:

[https://bellard.org/quickjs/bench.html](https://bellard.org/quickjs/bench.html)

<comment><AUTHOR> Woops sorry

I used the Ackermann Péter fucntion, still the same parameters (3, 6), on spidermoney (js engine for Firefox 74.0, windows 10, i7 8k)

Thanks for the link, I'll definitely dig down into that!

</comment></comment></comment></comment><comment><USER5> I'll be very surprised if game scripting languages don't all devolve to whatever-compiles-to-webassembly. Not only will choices be more plentiful but the ecosystem will be stronger and safer than what any individual author could built before long.

<comment><USER4> I'd predict the opposite. Game developers tend to be hostile towards web technology. _Not_ having that ecosystem in your pipeline is a bonus. Safety isn't something game developers value highly.

WASM would just make everything more complicated for no good reason. You can't do JIT-compilation on the consoles or iOS, so it's not going be performing any better than a simple interpreter.

If you go the interpreter scripting route, what you really want is trivial and comfortable binding to native (engine) code. You likely want your engine functions to be intrinsics in the VM.

Otherwise, you'll want to go the AOT compiled scripting route, which offers better performance. Then you just do the "scripting" in C++ (UE4) or C# (Unity).

<comment><USER6> Slightly tangentially, as someone that worked on games entirely in C# more than a decade or so again, it still sometimes makes me sad that most C# work in games is just Unity scripting today.

C# is a very performant and efficient language that I thought a lot more games would be written in top-to-bottom today, at least in indie circles. (Sure, performance tuning C# is a different art to C++ performance tuning, but it is a very similar art [know your data structures, keep an eye on your allocations, pool memory where you can].)

That "Safety isn't something game developers value highly" says a lot about why that C# bubble popped and C# right now is "merely" that weird scripting language choice for Unity.

</comment></comment></comment><comment><USER7> You can script in C: [https://www.youtube.com/watch?v=WMSBRk5WG58](https://www.youtube.com/watch?v=WMSBRk5WG58)

</comment><comment><USER8> OT but why do you need a separate language for scripting? Why not just use the same language as you use for the rest of your game?

<comment><USER9> Game logic can then be implemented in a safe, "clean" language where game designers can't break the underlying game engine.

It's also partly due to C++ being the Lingua Franca of game development - <USER2> it were a slightly less complicated/difficult to deploy language you could use both (I have built a toy GUI app that live compiles D code into an object file, and calls an entry point with a nice OOP interface into a made up data structure, it worked pretty well but I don't know much about games so I don't have much use for it). C++ is also ridiculously slow to compile (at it's beautiful worst) so having AI logic (say) in the main codebase is a bit of an issue for designers.

<comment><USER10> I also saw a Rust game engine using a scriping language that leans heavily on Rust concepts.

I think the scripting language was called Dyon.</comment></comment></comment>


Does Not Work - <AUTHOR> http://importblogkit.com/2015/07/does-not-work/ <comment><USER2> This drives me crazy. I've worked with people that describe fully working, well designed systems as "brittle" or "broken" or "don't ever use that" because they found one edge case or bug in them. And they don't elaborate, so when they sound so confident it discourages more junior engineers from using those systems so they build their own which results in them building _actually_ brittle, broken systems.

For a couple I've had to learn to blatantly ignore their recommendations. It's is a real shame because if they've found bugs or edge cases then they probably actually do have experience with it. If it were possible to get more than "it sucks", they'd actually be great sources of experience and information but instead their wolf-crying has relegated them to just being noise.

</comment><comment><USER3> I've found that "this doesn't work" usually means "I've spent the past three hours on this and I want someone else to take a fresh look at it before I go insane" with my co-workers. In the case where someone doesn't provide more information because their brain is on fire and they're starting to get stressed out about the problem, it's easier to just help them and trust they'll do the same for you.

Having said that, with a team that's spent less time around each other, you might not have that level of consensus.

<comment><USER4> I've found that even QA people casually write "X feature doesn't work" in bug reports, when they could give 10x more information, like: "the page stalls and shows the spinner continuously", "the button is grayed out and I can't click it", "the output is garbage letters", "the result is not the expected value", etc.

<comment><USER5> They probably assume that the person whose job is to maintain the code can more efficiently investigate the nature of the problem, provided they give instructions on how to reproduce it.

<comment><USER6> How do we know whether or not we're properly reproducing whatever they're seeing if we don't know what we're seeing?

I've seen scenarios where a set of reproduction steps actually showed two things wrong. QA was sending it back for one of the things, but they didn't say what was wrong, only that something was wrong and here's how to reproduce it. The developer saw the other problem, and fixed it. The result when shipped back to QA?

"You didn't fix the problem, but I opened a new defect now for the other thing you broke."

</comment></comment></comment></comment><comment><USER7> > When programmers come to me and simply say "this code does not work," I send > them away. Their problem is not solvable by me or anyone.

When people come to me and say that, I ask "in what way doesn't it work?" and figure out how to help them.

<comment><USER8> Yeah.

I feel like if you really are working with people who are total caricatures of cargo-culting code monkeys, and you see yourself as a Guru holding court and suffering the wailing of ignorant petitioners only so long as they are able to dig deep within themselves and _attempt_ to rise to Your level for the duration of the conversation, you have only yourself to blame. Blogs posted from high horseback are just masturbation (who knows, maybe you secretly _like_ being surrounded by people who don't make you feel challenged).

In more reasonable language... if you have put yourself in the position of being the most senior or most effective employee on your team by a very wide margin, you are going to have this sort of experience. You can either try to help the more junior/less effective folks improve themselves, or go find something else, or just put up with it.

<comment><USER9> > You can either try to help the more junior/less effective folks improve > themselves, or

An article on the best ways to convey the answer to the question "in what way does it not work" seems a good start.

Yes the tone is obnoxious, but the advice is good.

<comment><USER10> I read his comment as pointing-out/caricaturing the obnoxiousness of the blog post.

And frankly, I think he's right.

</comment></comment></comment></comment><comment><USER11> Cuts both ways tho. There are developers (some good, most not) who are notorious about not testing their code. "I don't know dude, it doesn't seem to work -- did you test it?" is fair game in these cases, especially once a pattern has been established. As in, why don't you look into it and figure out why it doesn't work instead of asking me to do it for you? As in, letme-not- googlethatforyou. Of course, depending on severity, action should be taken right away to address this bad habit.

Re: "no hello", I'm not fully with it. Some developers enjoy a more human-like interaction which doesn't play into the unfriendly programmer/BOFH stereotype. Lack of testing will cost the company a lot more time and have more damaging effects than people saying hi to each other (which could be argued to be worth the little extra time it takes to play out):

      1. Dev commits untested code
      2. QA has to catch it
      3. QA has to fill bug report
      4. Dev not known for testing has to read bug report
      5. Dev not known for testing has to fix bug
      6. Dev not known for testing has to test reported bug
      7. Dev not known for testing has to commit fix
      8. QA has to look at again, and either approve/close or send back to step 3.
         - versus -
      1. Dev commits tested code
      2. QA tests change
      3. QA approves change

One pet peeve is people who ask "can I ask you a question?" \- this doesn't have the same positive benefit as "hey, how's it going? how was your wknd?", it doesn't seem to serve any purpose. I typically ask people, nicely, to just ask the question directly next time and I'll answer when I'm able, if can't right away. Especially in a chat-type environment in a geographically/timezone-diverse team.

<comment><USER12> > "can I ask you a question?" .. doesn't seem to serve any purpose

I think of it as a request for a context switch. If you're mentally occupied - writing a tricky recursive function, say - and somebody walks up and says, "Hey, what's the time complexity of inserts into a red-black tree", it's likely that just parsing the question will kick you out of your current context so you lose track of what you're doing.

<comment><USER13> That is how it works for our team. Normally if someone skips that step it's more urgent and I temd to answer (they have already asked and distracted me so why not). I don't really mind pleasantries, they remind me I am working with humans.

</comment></comment></comment><comment><USER14> Here the discussion between two programmers is being compared to a car being taken to a workshop (mostly to a person whom u dont interact with on a daily basis)

When a programmer says to another programmer it "does not work", there is usually some history between these programmers where they have some level of understanding between them. This article kinda ignores that aspect.

I had never heard someone complain that it "does not work" when there is a compilation error. That is just what a non-programmer or a beginner would say who is trying to get attention for help. This example doesnt fit with the point the article is trying to make.

When someone says it "does not work", it is usually followed by a long pause, where the programmer is still wondering why it is not working. The other programmer usually gets that and they patiently wait to hear the details or ask questions because they had been there themselves.

It all boils down to what level the two programmers had worked together before and having an idea of when someone would use such a phrase without giving any explanation. Usually the other programmer already has a context of what might not be working).

If your scenario does not fit with my explanations, all I can say is that, the other people is stuck and needs some input or someone to challenge his thinking to debug it better. If someone says that, all you have to do is reply back saying "what do you mean?" and you will get flooded with information.

</comment><comment><USER15> > The phrase "does not work" should be reserved for when you're taking your > car to the mechanic and you don't have a clue what's wrong with it.

I might suggest that the phrase "does not work" is as irritating to mechanics as it is to programmers. "Don't have a clue what's wrong with it" is clearly not the case if you are taking a car to a mechanic in the first place -- you surely have _some_ idea of what's wrong with it.

Certainly applies to other professions as well. As a rule of thumb, please help others help you.

<comment><USER16> This reminds me of a programming discussion I saw a while ago where someone came up with the "carpenters don't spend so much time being picky about their hammers as we do our own tools" line. Which got a prompt reply by a carpenter saying they indeed have very personal opinions about hammers and a whole subthread on which hammers are best for which applications. Programmers think they're way too special... :)

</comment></comment><comment><USER17> > If you are experiencing a problem of the nature of one of the first two in > that list (does not compile or has a run-time exception), then somewhere, > you've got an error message or an exception, and probably even a line > number.

Thing is, in this particular project I'm in - most of the time - you don't.

Since our project is an in-browser text editor most of our bugs occur because the browser did something unexpected, like suddenly changed the selection, or inserted an element somewhere. In situations like these you usually don't get an error message or anything - just weird behaviour.

Normally our users report this by writing that pressing a button or using a shortcut "does nothing" \- and that's fine.

When you're dealing with leaky abstractions on a day-to-day basis you sort of have to get used to bug descriptions like these.

<comment><USER18> Browser WYSIWYG editors are full of dragons. I'd give you that exception.

<comment><USER13> Which is amazing since it's a problem we have been trying to solve for more than a decade. I figure we just can't solve it fast enough to keep up with browser features and bitrot.

I once built a wysiwyg editor that utilized drag and drop for dynamic page content. Native browser drag and drop is an utter mess.

<comment><USER17> Native selection, even if you don't support legacy browsers is a bigger one.

The API itself is ok. It's all the tiny differences between browsers that turn it into a dumpster fire.

And don't get me even started on pasting stuff from Word. Customers expect this to work, because yeah, how hard can this be really? Regardless of how many safeguards you put, eventually someone somewhere is going to create a file that will generate a heap of errors.

We have over 150 test cases(600+ unit tests) and _still_ every week something pops up.

</comment></comment></comment></comment><comment><USER19> > If you're telling a programmer that a particular piece of source code simply > "does not work", then you should no longer consider yourself a programmer.

I found this article unnecessarily rude. Sounds like someone got grumpy after answering too many SO posts. I agree with what others have said: If someone says that, either they are inexperienced and you can teach them some useful debugging skills, or their brain is on fire and you could try to be more helpful than sending them away.

<comment> King-Aaron Agree, I could barely stomach the article myself. If I asked someone for help and they told me to go away, it would make me quite irate. It's a "holier than thou" mentality.

</comment></comment><comment><USER20> Many years ago, in an engineering class, each of us was given an in class exercise of describing something to the rest of the class that only one of us could see in a box. We had to use physical properties only, color, arrangements of geometric shapes, etc.

It made me realize the value of careful observation (looking at an old fashioned black telephone with a dial in my case) and then careful description of what I was seeing in terms that would communicate it to the others.

It's funny how often someone tells me their computer or some software is simply not working. I guess I'm no better; I usually reply "Have you tried turning it off and then on again." (A favorite line from the British comedy, The IT Crowd.)

</comment><comment><USER21> I think this applies to cofounders and employers/bosses as well, if you're the programmer and they are non-technical, and they come to you and simply state "someone tried to do this thing and it didn't work" without giving you anything to debug with, view it as a huge red flag indicating that they do not, and do not want to, understand or appreciate your work and your time.

I've had this happen to me and after asking politely multiple times, and explaining the need for communicating in a detailed and useful manner (that I demonstrated), I would end up just getting angry when it would continue to happen.

</comment><comment><USER22> This is a huge pet peeve of mine. I know competent developers who interrupt me and simply say "X doesn't work". For the most part I appreciate that they're just using the phrase as a conversation starter and they do have more context to share. But why not share it in the first place? I either have to wait for them to elaborate, or ask for more information. Either way, the verbal dance just prolongs the interruption for no obvious benefit. I think of it in the same way as someone messaging me saying "hey" or "are you there?". Genuine question: am I being unreasonable/irrational to be frustrated by this?

<comment><USER23> Nope, and there's [http://nohello.com](http://nohello.com) to point people in the right direction.

<comment><USER24> > _The same goes for "Hello -- Are you there?", "Hi Bob -- quick question.", > "Do you have a sec ?", "yt?" and "ping". Just ask the question!_

Actually, I'd prefer that coworkers don't start blowing up my phone/PC with chat alert beeps for an extended question until they've confirmed that I'm not in a meeting/trying to concentrate/etc.

<comment><USER25> Alternatively, if you're in one of those not-available states, most IM clients have some kind of facility to publish that availability...

<comment><USER26> ...and often people still send me the "Are U busy?" message despite my status being busy.

I've started using the "Do not disturb" option in my Office Communicator when am in important meetings. Using that option on the communicator makes it impossible for someone to send me a message. Any attempts explicitly fail on the sender's end with an error stating the obvious - The receiver has set "Do not Disturb"

</comment></comment></comment></comment></comment><comment><USER27> Heh. A lot of time ago we programmed and created systems for regular business — accounting, automated workplaces, etc. It was all simple, but of course we occasionally introduced bugs here and there, and sometimes an entire module was built in a wrong way (specification errors). I will tell the rest from my pov, because it applied to everyone in general.

For the first hundred of error reports I tried hard to get any information beyond "nothing works" — yeah, not just something doesn't work, _nothing_ does. Phone line diagnostics were hard and both sides quickly tired because of lack of understanding. Me and my client had different sets of terminology, thinking styles and stereotypes. But as the time goes by, my remote-debug skill grows.

And I started to get feedback. It was still inaccurate and often rough, but two things could easily be noticed: 1) there still are people who won't help; 2) people who help have their own ideas on what's happening depending on their [relatively tiny] computer knowledge. That started an era of the great misunderstanding. As we easily exchanged clients in our tight company, we did entire blocks and modules in wrong ways, based on information from incompetent client. We did work that no one needs. We prepared for something, and it was not there. And then I finally got why (partly) 1)-group exists. They just went through all that a long time ago.

The fact is, whether does your client tell you what's happening, or does not, you have to go there and have all of your tools and instruments and anything you have with you. You _do not_ listen on their interpretations. You just go there and say "show me". And only then you have all the information on what is actually happening and where and who is in charge.

After we realized that, we stopped asking for any feedback. Literally. The only two things we needed to know about the problem were 1) is that a "show stopper"? 2) who encountered it. First one makes your weekly plan. Second one gives a hint about a module name and its developer.

We stopped exchanging info from clients, intentionally. If I need someone to make things for me, I just call and tell him to go to the place and solve anything they need, without details. If I get a call, I just say ok, I'll be there in two hours. That was _an improvement_.

So, if your client tells you "it doesn't work", just be happy that he doesn't spend your time and be sure that you have remote desktop app or remote access system enabled at his side.

</comment><comment><USER28> I spent a summer job in tech support, as I'm sure many on HN have at some point. "It doesn't work" is such a frustrating piece of information to hear. Especially when the reporter doesn't even tell you what "it" is, let alone what they think working looks like.

<comment><USER13> My favourite story of this I will never stop telling: digital marketing head emails a support request, subject reads "please fix". Email contents? A screenshot of her desktop on the home page of the website.

Turns out she was referring to a typo in a tiny article description and it was of course so glaringly obvious to her that it needed no context.

</comment></comment><comment><USER6> Hey people, author here.

I've seen a lot of comments about the tone of the article or how this isn't the best approach to take with someone who literally exhibits this behavior. And if you take the post literally and from the point of view of the person being asked advice, you're pretty much right (unless of course we're talking about this strategy as a literal response to Stack Overflow posts).

In truth, this is not my literal approach when people come to me exhibiting this behavior. I'm actually quite a lot nicer in person (believe it or not). Really, this article was written with the hope in mind that it would be read and shared with people who aren't particularly good at exploring the WHY of "does not work". In fact, almost all of my articles are geared toward entry level developers.

Anyway, I'm glad most of you seemed to enjoy it, and pretty much all of you agreed that the overall sentiment of the post is good advice, even if you didn't like the tone (which is perfectly fair).

</comment><comment><USER29> This is also fairly common in user issues as well:

Broke my shit. Does not work. Sad! Fake Code!

(no example of how to reproduce it, no debug logs, nothing actionable that can be done about it, just unproductive frustrated yelling into a bugtracker, user disappears and doesn't respond to requests for any of the above)

</comment><comment> King-Aaron This article comes across to me like someone with no social skills bitching about people who have social skills.

</comment><comment><USER30> Teaching a lesson is always unnecessary and is often conflated with teaching itself. Some of the bad team leads I work with do this. Some people are simply incapable of teaching and have to rationalize it by enforcing protocols about how one programmer has to approach another. I have always found it inhuman.

</comment><comment><USER31> Much as I dislike Stack Overflow's zealous moderators, they are pretty good at closing down questions worded this way.

</comment><comment><USER32> Thank you for this blog post

</comment><comment><USER33> (2015)

</comment><comment><USER34> Nick, there's something broken on your website.

/s</comment>


How a fusion of at least four cuisines created crab rangoon - <AUTHOR> https://www.atlasobscura.com/articles/what-is-crab-rangoon <comment><USER2> I think of it this way: immigrant cultures are their own culture, that should not be confused with their "parent" culture in their homeland.

Thus, Crab Rangoon is an _authentic_ cuisine... of the American Chinese immigrant culture. As in, it was invented by "American Chinese" people—a particular people—and they can claim it as part of their (rather new-ish) cultural heritage.

As long as you make this distinction, the argument over whether something "is" authentic goes away. Everything is authentic. The question becomes: what is this-or-that food an authentic example _of_?

<comment><USER3> Alton Brown, in his inaugural episode of "Good Eats: The Return," points out that most of what is known in the U.S. as Italian food has its origins in Little Italy, New York.

[https://www.youtube.com/watch?v=5kg6regArFY](https://www.youtube.com/watch?v=5kg6regArFY)

</comment></comment><comment><USER4> " There's a fundamental problem with the concept of authenticity in food..."

Yes, the problem being that I have never heard someone accuse a food of being inauthentic without sounding like they are desperately trying to sound cultured or cool or high status.

<comment><USER5> If I'm an Indian in California craving Indian food "just like home", am I desperately trying to sound cultured?

Maybe I was cultured to begin with! :D

There is a point when food attributed to a culture but not invented by it gains authenticity - when the culture that it is attributed to adopts it. A few examples:

\- Tikka Masala (British)

\- Burrito (California)

\- Siracha Sauce (California)

\- Pepperoni (New York?). But, we're still waiting on Italians on this one.

<comment><USER6> The popular Mission style burrito was invented in 20th century California, but people have been rolling meat or beans or veggies into tortillas for a very long time. And they were called "burritos", in Mexico, as early as 1895.

Quoting the Diccionario de Mexicanismos, which says "burrito" is a term from Guanajuato state:

Tortilla arrollada, con carne u otra cosa dentro, que en Yucatán llaman cozito, y en Cuernavaca y en Méjico, taco

(rolled tortilla, with meat or something else inside; in Yucatán called "cozito", and in Cuernavaca and Méjico "taco")

[https://books.google.com/books?id=u2xQAAAAMAAJ&pg=PA98](https://books.google.com/books?id=u2xQAAAAMAAJ&pg=PA98)

</comment></comment></comment><comment><USER7> "American Chinese" food has to be uniquely American. I temporarily lived in HongKong for about 18 months and I still remember my shock of landing in HK and not finding "General Tso's Chicken" anywhere :). The ignorant American in me then realized that Chinese food in HK (and this is not even mainland china) is so different. Then I learned that there is a specific type of Chinese food called Szechuan that is generally spicy which probably comes close but that is a small part of real chinese food. I could still be wrong in understanding all this but at some point, I stopped worrying and start enjoying the food :)

<comment><USER8> There's a great comedic documentary called "Searching for general tso" that's a great watch on this topic.

</comment></comment><comment><USER9> >What the Heck is Crab Rangoon Anyway?

Delicious, that's what it is.

<comment> pickle-wizard I was out with a friend a few months a go, who does not like seafood. I ordered some crab rangoon. I offered him one. He said he doesn't like seafood.

I told him to trust me and just try a bite. He ended up eating most of them and now every-time we go out to Chinese, he orders them.

I've discovered as I've gotten older. It is not so much that I don't like foods, as I don't like ways of preparing it. For example I don't like cooked fish, but I love sushi. Seriously I can go to a sushi restaurant and spent $150 by myself. Something about cooking fish gives it a different taste that I don't like.

<comment><USER10> It might be something about the "cooking fish" that people serve that's different from sushi fish - freshness. I used to hate all fish, then liked only sushi, and only eventually moved into enjoying cooked fish as well. The last only happened when I discovered that fresh fish never smells like fish, even when cooked.

</comment></comment></comment><comment><USER11> Since the author mentioned Yakamein, it's also worth noting that Bourbon Chicken is named after Bourbon Street in New Orleans and is also another American Chinese dish that is native to the South.

Another interesting tidbit, from watching the General Tso's documentary, is that the Missouri family that invented Cashew Chicken still adamantly claims that McDonald's took their fried chicken chunks recipe to make their now famous McNuggets.

</comment><comment><USER12> Why should anyone worry about 'authenticity' in food? Perhaps I'm very American in my view here, but my thought is that taste comes before history. Crab Rangoon, which I've interestingly never seen relabeled Crab Yangon, is a call back to the more interesting or enthusiastic past. I wish we had that kind of invention left in today's kitchens.

<comment><USER13> The best reason that comes to mind is that the American version is its own separate thing from the original. Tex-Mex and authentic Mexican food for example are both great and I wouldn't want to go without either.</comment></comment>


How To Put On A Nerd Conference - <AUTHOR> http://www.televisionsky.org/2010/05/how-to-put-on-a-nerd-conference/ I drew this at TechCrunch Disrupt today.... <comment><USER2> It seems that there are people who are able to follow this model and make money by throwing "Nerd Conferences".

In my mind, the key differentiator between mediocre events and great events is who the target audience for the event is:

      - A great even is designed for the benefit of the audience.
      - Mediocre events are designed for the benefit of the sponsors or the organizers.

<comment><AUTHOR> fantastic point. i've been to both, and the difference is quite clear

</comment></comment><comment><USER3> While hanging around with all those nerds, be sure to ask them about the difference between jpeg and png.

<comment><AUTHOR> I think the difference in this case is around 40kb, haha.

<comment><USER3> Well, the main difference is you won't end up with blurry text and artifacts.

<http://imgur.com/GkCbP.png>

<comment><AUTHOR> holy smokes, chaosmachine, you just changed my world! (not being snarky either, I seriously never knew that in all my days of amateur photodoodling)

<comment><USER4> A very general rule I learned is that png's are best for images with large areas of the same color (screenshots, logos, text) while jpegs are best for images with lots of color variation (real-life pictures, for example).

<comment><USER5> PNGs are good at compressing gradients too, I hear.

</comment></comment></comment></comment></comment></comment><comment><USER6> Is it wrong that I've been to these sort of conferences and actually enjoyed myself?

Webstock (<http://www.webstock.org.nz/>) in particular is great if you're ever in my part of the world. Great signal-to-noise ratio, fantastic speakers, very little of the standard tech conference douche baggery ("10 tips to monetize your blog"; any panel comprised of commentators rather than people who make stuff; etc.) and an upbeat sort of atmosphere that's difficult to articulate.

<comment><AUTHOR> Makes me wish I lived in New Zealand... :)

</comment></comment><comment><USER7> The JPG is still there: [http://www.televisionsky.org/wp- content/uploads/2010/05/nerd...](http://www.televisionsky.org/wp- content/uploads/2010/05/nerdcon.jpg)

</comment><comment><USER8> and name it web 3.1415926535897932384626433832795 conference</comment>


A Tale of Four Caches - <AUTHOR> http://calendar.perfplanet.com/2016/a-tale-of-four-caches/ <comment><USER2> The "cute" Questy story line is really annoying. I'm not a five year old.

</comment><comment><USER3> Thanks, this is cool and easy to get</comment>


Leela Zero – Go engine with no human-provided knowledge - <AUTHOR> https://github.com/gcp/leela-zero <comment><USER2> I applaud the work that went into this!

But at the same time I feel sad for the state of science where working code is still not considered part of the paper, so the code is almost never published, let alone published as Free Software for other scienists (and hobbyists) to tinker with it, to fix it, to improve it, and to adapt it.

For example, why isn't it possible for everyone interested to let Leela Zero play against AlphaGo Zero, on their own hardware (or their university's hardware)?

<comment><USER3> > so the code is almost never published

Even worse is that a friend of mine who is a researcher in neuroscience/BCI has found that many of the papers couldn't be reproduced at all with flawed or incorrect conclusions. Since they typically don't publish their code, its very difficult for others to check the correctness.

<comment><USER4> And even when it is made available, it is of very poor quality. I heard about someome who studied the programs used for analyzing DNA sequences. While tinkering with it, he found a bug, fixed it and submitted a pull request. Two years later, the pull request was still not merged by the maintainer of this 'standard' package. He also told that the software was of a poor quality. For example, in theory, four base pairs could be stored in one byte, instead they are simply storing the letters A,C,T, or G in a single byte for each pair.

<comment><USER5> I haven't tested this myself, but from what I have heard it is not necessarily a good idea to store several different things in a single byte like this. While it may consume less memory there is a performance cost for each access since you may need to do masks and shifts.

Of course, there is a non-trivial performance trade-off with more cycles but more objects fits in cache, etc.

Some quick googling gave for example this source which seems to hint that under some situations it is not worth it at least [https://stackoverflow.com/questions/4240974/when-is-it- worth...](https://stackoverflow.com/questions/4240974/when-is-it-worthwhile- to-use-bit-fields)

Lastly, it seems like being quite harsh to call the code being of poor quality because of something like that. Unless it really is very important to get the extra memory, just the maintenance cost of packing things efficiently might make it not worth it. Even production code bases such as the JVM will happily use a single byte (or even more?) to store a boolean, and such things probably occur all over the place.

<comment><USER6> unless the author uses memory in the most efficient way possible (preferably writing LLVM-IR directly) it will be hard for reviewers to run DNA analysis algorithms on their smart fridges /s

</comment></comment></comment></comment></comment><comment><USER7> This is super cool! As soon as I read the AlphaGo Zero paper I wanted to do a reimplementation as well, but apply the strategy to train a chess engine instead. Performance turned out to be way more important than I anticipated (I haven't built many big projects before) and I've been less inclined to work on it recently since I realized the necessary computing resources to train it properly would cost hundreds if not thousands of dollars in Google Cloud GPU time. I also wrote it in Python because I've done all of my TensorFlow work in Python so far.

[https://github.com/emdoyle/chess_ai](https://github.com/emdoyle/chess_ai)

That's my repo, if anyone wants to help me make it faster or possibly fix parts of it (hard to be sure the MCTS and NN are faithfully replicated) I would welcome pull requests!

Also I gitignored my tensorflow serving stuff but it's basically required to be able to serve the models and communicate via RPC to get predictions (the RPC client is visible in the repo).

</comment><comment><USER8> I used to have a screensaver that played out recorded games of go when you were away from your computer. It'd be fun to have something similar for the training of this.

At the moment, it seems like it's outputting moves, but it'd be lovely to have a nice graphical representation.

<comment><USER9> was it this one? [http://draves.org/goban/](http://draves.org/goban/)

</comment></comment><comment><USER10> >>> If you are wondering what the catch is: you still need the network weights.

That's why I'm very worried about neural nets stuff : you can share any code you want, the secret sauce (the weights) will be easy to hide. GPL don't quite apply here.

It's probably true of hundreds of other applications, but somehow, I have the feeling it's different with AI 'cos the data "embody" the behavior much more.

<comment><USER11> This is why lots of large companies are happy to open-source internal code, no? Because ultimately it's data which is valuable, not the algorithms.

</comment></comment><comment><USER12> "Recomputing the AlphaGo Zero weights will take about 1700 years on commodity hardware"

Oh well...

As much as the hardware advances are important, maybe there will be better ways to train networks with limited hardware

(training even a small CNN with limited resolution inputs on a CPU is slow)

<comment><USER13> Didn't the Zero version from Google train on something like 10 TPU's? Or is it only inference?

Seems just the CPU or even GPU aren't really suited for this kind of task

<comment><USER14> "Train" as in do the gradient computation: 64 GPU.

Generate the data to do that in the first place: 2000 TPU, each about 45 TFLOPS (or 2-4 x a GTX 1080 Ti).

</comment></comment></comment><comment><USER15> I was a bit confused by the title. They really shouldn't name a game after a popular programming language.

<comment><USER16> I wonder why we've settled on the Japanese name for the game rather than the Chinese (weiqi) or Korean (baduk) names. Using one of those would make it a lot less confusing.

<comment><USER17> The game came to Europe and America from Japan, and for decades the only translated foreign literature on it was Japanese.

Whenever I do a google search I use "baduk" instead. I think most people writing about go are smart enough to throw that word in there somewhere.

<comment><USER16> I do the same sort of thing when searching whenever I run into trouble. Even before Google introduced their language, it was a nearly unsearchable name.

</comment></comment></comment></comment><comment><USER18> A total of 22593 games have been submitted. 416 clients have submitted games. You can get see live stats here: [http://zero.sjeng.org/](http://zero.sjeng.org/)

</comment><comment><USER19> _> Recomputing the AlphaGo Zero weights will take about 1700 years on commodity hardware_

We're seeing the reversal of PC revolution and most people don't seem to notice or care.

<comment><USER20> On the contrary.

Google achieved such high computational power from building custom chips. No one in the 90s could have afforded the custom ASICs that ran "Deep Blue", and certainly no one except Disney in the 90s could afford the giant cluster of computers used to compute "Toy Story".

The story of "PC Revolution" is always Big Company spends billions on custom ASICs -> hardware companies take notice -> NVidia releases "Volta" which emulates the TPU in 2018. ([https://devblogs.nvidia.com/parallelforall/inside- volta/](https://devblogs.nvidia.com/parallelforall/inside-volta/))

Soooo yeah. We're actually really, really close to consumer-level TPUs. Within a year or two. Google's secret sauce is being replicated by hardware companies now, and consumers will likely reap the rewards.

There's always a few years of delay between state-of-the-art custom machines and wide-spread adoption of consumer hardware.

\</comment></comment><comment>-----

Despite their success in these games, I'm personally not really sold on the broad applicability of Neural Networks. But hey, I'm willing to be proven wrong. There's a lot of experimentation being done and the "TPU" architecture is definitely very interesting (and the way "Tensors" map to simple linear- algebra problems is really what makes all of this possible).

I really wouldn't be too gloomy about Google's headstart. They did invent the TPU architecture after all, its only fair that they get to play with it for a few years before the mass market consumers can.

<comment><USER21> I could swear Toy Story was a Pixar production long before it was Disney...

</comment></comment><comment><USER22> What's Google's secret sauce with these datasets anyway? How are they planning to monetize being the best go player in the world? I don't understand the incentive for not releasing it.

</comment><comment><USER20> Looks very interesting! I'm an OpenCL beginner so I really like to see how other people are actually doing OpenCL development.

Some notes:

* OpenCL code is stored in strings: [https://github.com/gcp/leela-zero/blob/master/src/OpenCL.cpp](https://github.com/gcp/leela-zero/blob/master/src/OpenCL.cpp)

* OpenCL Build Flags are: m_program.build("-cl-mad-enable -cl-fast-relaxed-math -cl-no-signed-zeros -cl-denorms-are-zero");

Which is telling: I've been struggling with -O2 on my AMD R9 290x, but it seems common knowledge that the AMD OpenCL optimizer is basically unusable. No -O2 to be found here. I guess that's how people have been dealing with that issue...

</comment><comment><USER23> The alphago paper contains a reasonable amount of detail, but not nearly enough to allow a true reimplementation. This should be described as "an attempt to reproduce" or such. It should be expected to differ in details, and quite posssibly some of those details might turn out to be important!

<comment><USER14> Does "fairly faithful reimplementation" not reflect this nuance? I'm not sure what you think was missing from the Alpha Go Zero paper in terms of methods, BTW. The whole thing was fairly simple [1] and all the knowledge is discovered. I think that was DeepMind's point.

Of course if Alpha Go Zero had some proprietary secret sauces that they omitted from the paper and that are needed for things to converge or whatever, you are right.

[1] I mean if you look at the code, most of it is a fast Go engine, and code to compute a residual network stack on the GPU. These aren't things that the DeepMind paper has to spell out.</comment></comment>


AI produces realistic sounds that fool humans - <AUTHOR> http://news.mit.edu/2016/artificial-intelligence-produces-realistic-sounds-0613 <comment><USER2> AI that produces sound through analysis of a source video is impressive. Fooling humans is not. Since most of us have grown up on a steady diet of film and television many of the sounds we have in our memories are the work of foley artists that add sound effects to sequences in post. The sound of horse hoofs on cobblestones is likely created from a percussive technique that has no equine participation. The sounds of people being punched may be the sound of a large piece of meat being struck with a club. Similarly crunching snow likely is not the sound of a person walking through actual snow.

Our perceptions of sound within a video/film source is already deeply skewed and therefore the notion that this AI is a Turing test of sorts is a weak analogy.

<comment><USER3> You're right, but as someone who's done a lot of sound editing/foley work I can't help having mixed feelings at seeing yet another job skill automated away. Good part - in a few years this will be good enough for commercial use which will save sound editors all sorts of tedious dull work and free them up to do more exciting creative stuff. Bad part: the tedious dull work was also what paid the bills. The easier it is to do that stuff automatically, the less people are willing to pay for good quality work.

Rather than now being able to make a living do the sort of fun really creative stuff like inventing new sounds for teleportation devices or dramatic natural phenomena, editors are more likely to be asked to work for free on the theory that they'll gain great exposure for their creativity. That's generally a very bad bargain. If past trends in the electronic dance music market are anything to go by, increasing automation will not reward true creative talent but rather just lead to an arms race to have the latest sound libraries, synthesizers etc. and just be the first to market with big splashy new sounds that offer superficial novelty.

Ability to provide high-value equipment below normal rental cost frequently trumps considerations of talent in the film industry. Similarly there are plenty of crappy directors of photography out there who get hired regularly because they own a pile of nice lenses and related camera equipment, and hiring them plus their camera package looks economically attractive on paper because it's hard to quantify photographic talent.

<comment><USER2> I have so much respect for foley artists. Artist being the operative word. People don't appreciate the hard work and creativity that goes into making the perfect sound.

</comment></comment></comment><comment><USER4> I think people here are underestimating how big a thing this actually is and I think the headline is kind of to blame for that. This is much less about fooling humans than about what this actually means.

Humans spend a huge part of our early live learning to listen and to connect the dots between what we see and what we hear.

The fact that Deep Learning algos now can simulate audio based on what they see thats the big thing here. Not the production of the sound that fools humans. You can almost sense how imagination and inspiration is inside the reach of machine learning (yes there are some way to go yet)

We are now not only seeing individual senses being simulated but also the relationship between them. And as a bonus what one machine learns one place can be instantly added to the knowledge of the other.

Thats IMO the big deal here.

<comment><USER5> >> And as a bonus what one machine learns one place can be instantly added to the knowledge of the other.

That's actually one big problem with machine learning algorithms: it's not at all clear how to integrate their knowledge with that of other algorithms (and that includes different instances of the same algorithm). Such algorithms build a single model of one domain at a time, and we're talking about very strict domains.

What we're seeing lately is many teams announcing that they trained an algorithm to do this or that pretty damn amazing thing, but watch closely: how many of those announcements describe a system that can integrate its learning into a wider cognitive architecture? There's teams that trained models to recognise images, to combine images, or to map images to strings, but all these things are simple tasks, that are only useful in a very limited range of circumstances. Machine learning algorithms unfortunately are one trick ponies. They do one thing well- and that's it.

>> You can almost sense how imagination and inspiration is inside the reach of machine learning (yes there are some way to go yet).

That's an understatement- the bit about having some way to go. We're not even close, really. To train a machine learning algorithm the first thing you need is a lot of examples of the thing you want it to learn. It's really hard to see how one would compile a set of examples of imagination, not least because it's inside peoples' heads. Not to mention we don't even know what human imagination is in the first place.

<comment><USER6> > Machine learning algorithms unfortunately are one trick ponies.

Most humans only know a few of the skills that other people know. We are specialized, too.

<comment><USER5> You're talking about specialisation in a restricted field, like maths or a scientific discipline. That's part of education.

I'm talking about how all (healthy) humans learn about the world they inhabit, by building a broad context of the entities and concepts in it. We all learn to speak a language for instance, in fact I believe most people actually learn a couple. We learn to interpret facial expressions, who is our friend and who is not, how to find sustenance and so on. We learn a whole bunch of things outside of formal education and specialised technical knowledge.

We specialise even in the kind of knowledge I describe, sure, but we can also change specialisation without too much hassle. I myself have been making my living as a programmer for the past several years coming from a completely non-technical background for most of my life. It was hard going to learn a new thing from scratch, but I was perfectly able to do so. We lose this flexibility as we grow older but for most of our lives we have nothing like the limitations of machine learning.

<comment><USER6> > we have nothing like the limitations of machine learning

Well, that works both ways. Humans are quite limited, we haven't doubled our IQ in the last 1000 years. But machines have even more potential to grow than we do, in the next 50-100 years they will surely have matched our ability to adapt.

Today, a company releases a translation software for a couple of languages, next year they release translation between 100 languages. A human can't keep up with that. Yes, they still need tuning and architecture design, but that might change soon, maybe in a few years.

Also, the education of humans needs to be human supervised, but machine learning can be unsupervised (like, AlphaGo playing millions of self games to fine tune its value function), thus, cheaper. I am sure Lee Sedol needed much more energy to train to get up to that level of play. He's 33 years old, and in order to get to his level he required resources, teachers, food, etc. AlphaGo played a few million self play games and only consumed a bunch of cheap electricity, while doing it a hundred times faster and surpassing the man.

<comment><USER5> >> AlphaGo played a few million self play games and only consumed a bunch of cheap electricity,

Well, if Google has access to cheap electricity then I understand why they're so successful. Unfortunately, I think they find it as expensive as everyone else, except they have a larger budget than most and they can afford to burn it for as long as they like (well, ish).

>> I am sure Lee Sedol needed much more energy to train to get up to that level of play. He's 33 years old, and in order to get to his level he required resources, teachers, food, etc.

Sure, but in the same vein AlphaGo required the energy and combined effort of probably a few hundred thousand humans to create the infrastructure on which it runs, the factory that created its hardware, the people who invented its programming language, its algorithms and so on. If you're going to think about historical costs, then think about historical costs.

But, I'll refer you to my reply to TomPete (same level): no, runnign AlphaGo is not "cheap" in any way. There are huge costs involved, as there are for pretty much all state of the art machine learning algorithms, with deep learning topping the curve. For instance, try training an instance of AlexNet on the full ImageNet data on your hardware, with your home electricity budget.

>> next year they release translation between 100 languages.

That's not that hard to do. What's hard to do is to get good translation between those 100 languages. In practice, for all companies who do machine translation right now, translation works well between a few pairs (like three or four pairs) and the rest is only useful as entertainmnt for native speakers. I speak a few languages, French, English and Greek, and I can attest to the fact that going from or to Greek from either French or English is just hilarious, in any machine translation service I've tried, with Google Translate first, of course.

I think you're just overestimating the quality of machine translation. I'm afraid it's nowhere near as good as you think it to be.

>> Humans are quite limited, we haven't doubled our IQ in the last 1000 years.

That doesn't mean much. Even humans with a low IQ can learn to read and write, and perform all sorts of reasoning tasks that are out of the reach of all AI systems, even if those same systems can outperform every human in specific and very restricted tasks.

Again- you're overestimating AI, I'm afraid.

</comment></comment></comment></comment></comment></comment><comment><USER7> They trained the algorithm to watch the stick and play sounds from the database where the stick moved similarly.

But the title makes it seem like the algorithm is synthesizing the sounds from scratch!

<comment><USER8> They can do pure parametric synthesis as well, but it's not nearly as convincing so most of the video is devoted to the more convincing match method. FWIW, constructing realistic sounds from first principles is much more difficult than you'd think.

> where the stick moved similarly

where the stick moved similarly and was hitting similar things, which is a non-trivial task.

<comment><USER9> yes, it would have to learn to simulate the physics of the system to match the video, which would be cool

</comment></comment></comment><comment><USER10> "The first step to training a sound-producing algorithm is to give it sounds to study. Over several months, the researchers recorded roughly 1,000 videos of an estimated 46,000 sounds that represent various objects being hit, scraped, and prodded with a drumstick. (They used a drumstick because it provided a consistent way to produce a sound.)"

Whilst the production of natural seeming sound is cool, that quote right there perfectly shows just how limited AI/ML still is. Sure, Deep Learning systems can be taught to do perception tasks (such as understanding or creating sounds and images) very very well, but those perception tasks are incredibly specific and narrow. Not only that, but they are trained large datasets hand-labels through an intensely laborious process, and indeed this laborious process is necessary because we are still using simplistic supervised learning. At this point good recognition or generation with deep learning is entirely old news, and I think zero shot or unsupervised/semi-supervised learning is where the real challenges still are.

<comment><USER5> >> They used a drumstick because it provided a consistent way to produce a sound.

More to the point, that bit.

The article makes a big todo about how humans use sound to learn about their environment and so on, but imagine if we needed to get a drumstick to make sounds consistent enough to learn to recognise them.

Supervised and unsupervised learning is not the real challenge. The real challenge is to get to the point where algorithms can build a model without the benefit of an insanely expensive data pre-processing pipeline. Deep learning's big promise is exactly that, but it's not always delivered (for instance, there's a paper by Hinton and I forget who else, where they report that training LSTM RNNs on raw characters does not give best performance) (so we're stuck with tokenisation and the implicit assumptions they impose on your data- my corollary).

Also, there are ways to avoid the expenses of hand-labelling, for instance co- training: [https://en.wikipedia.org/wiki/Co- training](https://en.wikipedia.org/wiki/Co-training)

<comment><USER10> True, that bit is especially bad.

"The real challenge is to get to the point where algorithms can build a model without the benefit of an insanely expensive data pre-processing pipeline."

Arguably, that is equivalent to saying the real problem is still unsupervised/semi-supervised learning. IE, being able to just throw a bunch of raw data and maybe just a bit of hand configuration at an algorithm and have it do complicated things for you. The success of Deep learning is to scale to tons of data and build really complicated models, but as it is used today that data is still hand labeled for supervised learning in an insanely expensive data pre-processing step. Good unsupervised or semi-supervised learning could hopefully let us get out of this, but I don't think anyone really knows how to get there yet. Co-training is an older example of semi-supervised learning, and more recently there were Ladder Networks, but I don't think any algorithm has been shown to work really well and become the norm in the way LSTM RNNs or CNNs have.

<comment><USER5> >> Arguably, that is equivalent to saying the real problem is still unsupervised/semi-supervised learning.

I don't agree because data pre-processing and labeling are two distinct parts of the pipeline and you can totally have one without the other.

And there's more to it than that. Currently we have to provide the context for an algorithm to learn. We do this by selecting training examples. Whether these examples are labelled or not, they are only a small part of the world we wish the algorithm to learn about.

You don't even have to go as far as the wider physical world to see this in action. In any training context, if your training set is missing a category of entities, Y, then your algorithm will never model Y. It doesn't make any difference if your model is trained in a supervised manner or not. What matters is that there is a part of the world that it hasn't seen.

I guess you can say that humans don't have a way to learn this way either, but human learning has a big advantage: we need very little data and very little training to incorporate new knowledge and our context of a world is very broad to begin with. It's at once broad, specialised, robust and flexible. We're a bit scary if you think about it.

Which leads me to believe that the limitation of our machine learning algorithms is not in the labeling, or even in the data pre-processing but in some fundamental aspect of building a context from examples only. There's something missing and it's not something we know about (hah!). The missing part means that you can learn from examples until the heat death of the universe and there will still be an infinity of things you don't know anything about- and that are potentially part of your immediate environment.

Obviously, removing the need for pre-processing will make things much cheaper and there will be progress, ditto removing the need for supervision. But it won't get us anywhere nearer human learning, despite people's best wishes, because we're missing a part of the puzzle that's a whole other ball game.

(and which I obviously don't claim to have any idea about)

</comment></comment></comment></comment><comment><USER11> It fools humans _more often than a baseline algorithm._

What that means in numbers, they carefully avoid saying.

</comment><comment><USER12> Sample size: 3

<comment><USER13> Important little side note.

</comment></comment><comment><USER14> Fooling humans is much easier when about 50% of the sound is always accurate (in any case it's a wooden drumstick hitting something). The human mind is very forgiving, especially when vision accompanies sound (McGurk effect [1])

Furthermore this fixed variable makes the pool of samples to choose from much much smaller.

Still impressive of course ;) just far from dubbing any video there is.

[1] [https://youtu.be/G-lN8vWm3m0?t=32](https://youtu.be/G-lN8vWm3m0?t=32)

</comment><comment><USER15> Paper is here:

[http://arxiv.org/abs/1512.08512](http://arxiv.org/abs/1512.08512)

</comment><comment><USER16> It would be cool to create the drums for a song by taking a video of the performance and then using this software to create the recording to be put into the song.

</comment><comment><USER17> Funny coincidence that I just stumbled upon a nice video about sound crafting for cinema:

[http://sploid.gizmodo.com/wonderful-short-film-reveals- the-p...](http://sploid.gizmodo.com/wonderful-short-film-reveals-the- painstaking-magic-of-f-1782096219)

</comment><comment><USER18> The demo seems to recognize three basic categories of things hit - shrubbery, dirt, and other solid objects. It doesn't distinguish much between hitting metal, wood, and asphalt.

It's another step toward common sense. Predicting what will happen if a robot does something in the real world is essential to making robots less stupid.

</comment><comment><USER19> We've been fooling humans for years because the humans in question were conditioned by tropes on TV: [http://tvtropes.org/pmwiki/pmwiki.php/Main/TheCoconutEffect](http://tvtropes.org/pmwiki/pmwiki.php/Main/TheCoconutEffect)

</comment><comment><USER20> Good research, but some parts of the videos are like badly dubbed sound effects - actually hilarious: [https://www.youtube.com/watch?v=0FW99AQmMc8&t=1m1s](https://www.youtube.com/watch?v=0FW99AQmMc8&t=1m1s) (the drumstick noise in the middle).

still impressive.

</comment><comment><USER21> Next we need to do it in reverse - given a sound, generate a video to match. I wonder how well that would work?

</comment><comment><USER22> Much of this is beyond me, but is it producing (synthesizing) sounds? Or just sampling sounds?

<comment><USER23> Most of the video has them using an algorithm to predict the sound of the hits, then finding the closest match in the database & using it as a sample.

At 1:50, they switch to using the prediction as a synthesised replacement. It is not as good. They switch back to the first method for the tests

</comment></comment><comment><USER24> Why is AI focused so much into fooling/imitating/trap-ing humans these days?

<comment><USER25> I don't think these systems' purpose is to fool humans. Tasks that test whether a system can fool people are simply a good way to evaluate the performance a system. If a speech synthesis fools people into thinking a real person is speaking, that means the speech synthesis is really good. You might say it's not important that a speech synthesis sounds perfectly human but our speech perception evolved to be optimal for human speech, so it's likely that any deviation from that makes the signal harder to process.

</comment></comment><comment><USER26> This has the potential to do the same for Videogames as did Mo-Cap.

</comment><comment><USER27> Percussionists beware. Your obsolescence clock is ticking.

</comment><comment><USER28> This work looks very cool from the demo video. Have yet to read the paper, but the parametric inversion for generating sounds from features seems very intriguing.

</comment><comment><USER29> Since the discussion seem to have died down a bit I just have to say it, sorry. Quit beating around the bush.

</comment><comment><USER25> Just a couple of years ago no one would have called this AI. Interesting how this old term has become so fashionable again. Perhaps it's also being overused and AI winter is coming.</comment>


Wozniak Gets It Wrong on Net Neutrality - <AUTHOR> http://www.t-gaap.com/2015/3/2/wozniak-gets-it-wrong-on-net-neutrality

<comment><USER2> What a tiresome article.

<comment><USER3> Why tiresome? Because you don't want to hear some bitter truth?</comment></comment>


Worth trying? (feedback plz) - <AUTHOR> https://play.google.com/store/apps/details?id=com.igbow.chest <comment><AUTHOR> The Chest is a role playing themed clicker game, where you tap chests to gain money, once you have enough money you can upgrade your weapons and equipment to get ready for the adventure!</comment>


The Times of London reporting Russian agents probing Ireland internet cables - <AUTHOR> https://boingboing.net/2020/02/17/ireland-suspects-russia-is-try.html <comment><USER2> Blog spam. Here's a direct link: [https://www.thetimes.co.uk/article/russian- agents-plunge-to-...](https://www.thetimes.co.uk/article/russian-agents- plunge-to-new-ocean-depths-in-ireland-to-crack-transatlantic-cables-fnqsmgncz)

Also it's just 'The Times'. The NYT is the NYT.</comment>


Blackwater's Founder Is Under Investigation for Ties to Chinese Intel - <AUTHOR> https://theintercept.com/2016/03/24/blackwater-founder-erik-prince-under-federal-investigation/ <comment><USER2> Ties to Chinese intel has also been used to target numerous Chinese scientists who were later proven innocent. This looks like a situation where Erik Prince did various things that drew objections and the Chinese intel angle just happens to be the most convenient handle for his critics.</comment>


Darwinian medicine and the 'hygiene' or 'old friends' hypothesis - <AUTHOR> https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2841838/ <comment><USER2> Dear Websites: Don't fuck with scroll.

If you're going to do it (and there's a case to be made for page-flipping mode, I made it on HN earlier today), _do so loudly, clearly, and with a fallback mode._

Yes, book-style pages are useful. However they're not the convention for HTML navigation.

And users may visit with any of multiple mixes of devices, controls, and/or viewports.

I'm on a mobile device that looks a lot like a desktop in landscape mode but has a keyboard but no mouse or trackpad or trackpoint, nor does it have pageup/pagedown keys.

And it can rapidly convert to a portrait-mode display.

My first impression was that Firefox/Android had frozen its ass as it's wont to do. It took some futzing to realise this was intentional behavior of the site in question.

<comment><USER3> It's not terribly obvious, but you can change the behavior. Click the "Alt" button at the top, then the "Classic" view.

EDIT: Whoa, my message was missing a word. The not. Sorry about that, that completely changed the tone of it.

<comment><USER2> NB, I assumed the missing word when I read that. But yes. (Missing) A word can (not) make a difference ;-)

</comment></comment></comment><comment><USER4> The "old friends" hypothesis is a very interesting point of view regarding the epidemiology of immune system disorders. Of particular importance is the evidence that major depressive disorder falls into this category.

The impact of this is huge. IIRC MDD is the 3rd leading cause of disability world wide. MDD costs the American economy >$200 billion/year according to recent studies.

Quite fascinating to me that the quest of developed nations for hyper- sanitation may well be a cause of rising levels of disability. When I was a kid my mother didn't seem to object when I was "playing in the dirt". Maybe she was on to something, I sure don't have the allergies so many of my contemporaries complain about.

IMO this article is a really excellent review of "old friends", at least it made quite an impression on me when I read it at the time of publication:

Raison CL, Lowry CA, Rook GA _Inflammation, sanitation, and consternation: loss of contact with coevolved, tolerogenic microorganisms and the pathophysiology and treatment of major depression._ [http://www.ncbi.nlm.nih.gov/pubmed/21135322](http://www.ncbi.nlm.nih.gov/pubmed/21135322)

<comment><USER5> I played in a lot of dirt as a kid. LOTS. I have a ton of allergies. I wasn't breast fed, however. I was born in a time when our society thought formula was better for babies than what evolution produced.

My son, who never played in the dirt (that's a problem with high-density cities) and was breast fed, has a ton of allergies.

<comment><USER6> I wonder if it's more related to extensive antibiotic use, both in people and the livestock we eat. I played in the dirt a lot, pretty sure I was at least partially breast fed, but have always had a ton of allergies (as well as asthma) since I was a kid.

I also used to get at least once-yearly (if not more often) sinus, throat, and ear infections, and also received repeated antibiotics for UTIs (that turned out to not actually be infections at all, but muscle spasms related to fibromyalgia). I got scarlet fever when as I was four, and got yearly strep throat until I was well out of college.

As an adult my allergies now include amoxicillin (and penicillin and keflex), which was given to me repeatedly in childhood.

</comment></comment></comment><comment><USER7> Carlin's take on it [https://www.youtube.com/watch?v=CnmMNdiCz_s](https://www.youtube.com/watch?v=CnmMNdiCz_s)</comment>


Why use a digital stadiometer? - <AUTHOR> http://blog.plover.com/tech/stadiometer.html

<comment><AUTHOR> The original title reflected the actual point of the article, but the mods have changed it. It's captured in the last sentence:

        [A]ssume that bad technical decisions are made
            rationally, for reasons that are not apparent.

I suppose changing the title from informative to non-informative is a decision being made rationally for reasons that are not apparent.

To the moderators:

I understand why you sometimes change the titles on submissions, setting them to the original title on the source page. I get it, I really do. But this article really, _really_ isn't about the stadiometer, and while it's true that you've changed it to the original title on the source page, it is deeply misleading, and the extent to which it's not misleading, it's uninformative.

Please, please, can you sort this out? The title I carefully provided was intended to get to the intent and content of the item, and I feel that it was much, much more informative. You are removing information, and that feels like a really bad thing.

It can't be a 'bot doing the change, because it would've happened sooner, so there must be a human looking at this and making the decision to change it. They are already expending brain-power on the task, they are already looking at the submission, why not actually make a decision, rather than acting in a purely mechanical fashion?

Case in point, consider this submission:

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

You haven't changed the title on that. Why not? Because the title is "pub". If you change the informative title on this post to one that's non-informative, why not change the title on that one?

Someone, somewhere, is making decisions already. For the sake of making HN a better place, please consider a better process for doing so.

<comment><USER2> Yes, a thousand times!

A title exists in a context. The context of the original medium is completely different than a list of articles on HN. For instance, people who subscribe to an author's blog typically know the author's voice and typical subject matter, whereas people who see a title in a long list of possibly interesting content pieces do not have that context, so the original title does not communicate to those what the author was intending to communicate.

There must be a better solution than blindly reverting every title.

<comment><USER3> For some reason it seems to be a simple posting rule in HN and mods like to do this. Yet it's not always adhered to. Confusing!

</comment></comment></comment><comment><USER4> This is the kind of wisdom I wish I had when I started my career and assumed that everyone who did things differently from me was stupid. I wish I could give it to all my current smunderlings when they complain about "bad" code written by otherwise smart and capable people last year... There's always a story behind what is, and it's worth learning before passing judgement.

</comment><comment><USER5> > the manual stadiometers were always giving inaccurate readings

An amazing feat, considering that the mechanical ones I've seen consist of a horizontal bracket that slides on the vertical scale attached to a wall (or a stand), and one just needs to read the number shown when the bracket touches the top of the head.

And it's not like that data needs micrometer precision ...

<comment><USER6> That struck me too. All the errors I can think of from the manual devices would happen with the electronic devices. (People not standing straight, people with big hair, etc etc.)

While you don't need micrometre precision a person's hight (and weight, and thus BMI) can be used as part of the process that deprives them of their liberty and subjects them to forced feeding against their will via NG tube. So accuracy is probably a reasonable requirement.</comment></comment>


The official history of the United Kingdom, according to the Home Office - <AUTHOR> https://www.the-tls.co.uk/articles/official-history-of-united-kingdom-according-to-home-office/ <comment><USER2> Great link, thank you!

... but oh dear, history is not what we think, as per the oft quoted Churchill:

"For my part, I consider that it will be found much better by all parties to leave the past to history, especially as I propose to write that history myself."

... even that quote is not what we think! [https://slate.com/culture/2019/11/history-is-written-by- the-...](https://slate.com/culture/2019/11/history-is-written-by-the-victors- quote-origin.html)

This is probably closer to the truth:

"History is a set of lies agreed upon." Napoleon Bonaparte

</comment><comment><USER3>
      "..As a recent new citizen who was born and brought up in Germany, I am very grateful for the heroic sacrifice of many British men and women in the Second World War. But why does the Home Office want us to forget the many Americans and Canadians who died alongside them on the beaches in what was a joint Allied invasion?.."

Quite a delicious irony, given general consensus in Britain that, if Hollywood is to be believed; the USA won the Second World War single-handedly.

PS: WARNING modal dialogue obscures most of article text.</comment>


CrypTool Book - <AUTHOR> https://www.cryptool.org/en/ctp-documentation/ctbook <comment><USER2> This is a good overview, concise without filler.</comment>


Google Podcasts launches for Android with personalized recommendations - <AUTHOR> https://www.theverge.com/2018/6/19/17475878/google-podcast-app-android-download-launch-date <comment><USER2> So now I need to use this instead of google play music?</comment>


Dialects in Code: Part 1 - <AUTHOR> https://www.rosstuck.com/dialects-in-code-part-1 <comment> aaron-santos Interested to see where this series goes. The author has chosen PHP to illustrate these examples, but the problem exists in all languages to some degree and more so in the "complicated" or kitchen sink languages. C++, like PHP, is another kitchen sink language which exhibits this dialect phenomenon to high degree.

One of the biggest gripes I have with C++ is that "subset of C++" is a commonly thrown around phrase to say dialect without necessarily using the word "dialect". Yet, I have in the last decade seen no list of C++ dialects, descriptions of any dialects, or even anyone who has given a name to a single dialect. It hides away their hard work of establishing a praxis and sets up the conditions for newcomers to toil away recreating their own dialect all while trying to actually get stuff done.</comment>


JavaScript Mindmap (with cool demo) - <AUTHOR> https://github.com/kennethkufluk/js-mindmap

<comment><USER2> Beautiful. Something oddly fun about fluid draggable objects. Kept me occupied for a good 10 mins. Maybe useful as an idiot detector as well :P

</comment><comment><USER3> Here is the demo: <http://kenneth.kufluk.com/google/js-mindmap/>

<comment><USER4> Red over Green!! Aaaaargh! My eyes!!

</comment></comment><comment><USER5> Similar project: <http://arborjs.org/>

Cool Demo: <http://arborjs.org/halfviz/#/the-abominable-snowman>

I used arbor.js a a few months ago to make a graph of my facebook friend's connections, and it was really easy.

</comment><comment><USER6> Hah, this is a lot more fun than generating dot files. I should do Twitter mentions again. <http://pepijndevos.nl/2010/03/tweet-o-graph>

</comment><comment><USER7> ThoughtMuse is the nicest javascript mindmapping tool that I've seen: <http://thoughtmuse.com>

</comment><comment><USER8> I hope it adds collaps and expand :P</comment>