The End of California? - <AUTHOR> http://www.nytimes.com/2015/05/03/opinion/sunday/the-end-of-california.html?_r=0

<comment><USER3> Sam Altman: "it's remarkable how many other problems reduce to the energy problem" [https://news.ycombinator.com/item?id=9239063](https://news.ycombinator.com/item?id=9239063)

I hope in 100 years, a "water shortage" on earth will be a silly concept, as you can always just pull more from the ocean.

<comment><USER4> You don't think there will be consequences to massive desalination?

[http://www.scientificamerican.com/article/the-impacts-of- rel...](http://www.scientificamerican.com/article/the-impacts-of-relying-on- desalination/)

<comment><USER5> There won't be. Scientific intuition and the available studies suggest that apart from perhaps in the immediate vicinity of where they pump the salt back in, the effect is minimal, no matter how much desalination you perform.

It's what you'd expect, in fact. The state of California (if my back of envelope calculations are correct) uses in total about 66 cubic kilometres of water each year.

If you produced California's entire water supply by desalination, this would be akin to removing 1/10,000,000 of the Pacific's water every year. It's a miniscule amount, and is of order of magnitude the same as not letting the Colorado reach the ocean.

<comment><USER6> I've wondered if cargo ships couldn't use the very salty water as a source of electricity (ion gradient), slowly draining the saltier water as it traverses the ocean.

<comment><USER7> Or could the very salty water be used, somehow, for renewable energy storage for off-peak hours?

</comment></comment></comment></comment></comment><comment><USER8> Is this a particular style of writing ? He takes 3 sentences, makes 1 paragraph. Then repeats with the next 3, and the next 3 etc. The paragraphs are completely disjoint - so he mentions almonds in a para, then Romney in another, then Glenn Beck, then something about Yosemite....its like a whirlwind tour of the drought landscape with no central thesis or conclusion. No flow, just lots of disparate facts. What is his point ? How exactly does one go from one freak drought to the end of California, which has what - <USER2> fourth or fifth largest GDP on the whole planet ( if it were a country ) ?

<comment><USER9> 8th.

[http://www.ccsce.com/PDF/Numbers-July-2014-CA-Economy- Rankin...](http://www.ccsce.com/PDF/Numbers-July-2014-CA-Economy- Rankings-2013.pdf)

<comment><USER10> Interesting, thanks, but those are 2013 numbers. The article claims California grew/is growing faster than Texas which isn't the case in your linked report, so I wonder where one might find more recent data.

<comment><USER11> This is the most recent I could find, I can't vouch for the accuracy/truthfulness of the data though:

[https://www.aei.org/publication/texas-great-american-job- mac...](https://www.aei.org/publication/texas-great-american-job-machine- solely-responsible-1m-net-us-job-increase-since-2007/)

</comment></comment></comment></comment><comment><USER12> Where I live the management companies are watering the decoration plantation every day regardless if it was raining the previous day or not. The also have some leaks, but guess what, they don't care because they are not motivated financially to solve these problems. If you report them to the authorities they simply defer the cost to the renters. Now, the question is how long it takes it the local authorities to close these loopholes and put effective measure to stop wasting water. Wait, they are also not interested. Nevermind. :)

<comment><USER13> I've never seen a municipal/public grass area that isn't over watered in California. Drive down some street that has a grass covered divider or grass lined public areas between the sidewalk and the street. Come by when it's being watered. Watch the water run all over the street instead of in the grass. That of course then makes every car that goes by dirty which then has to be washed (more water)

<comment><USER14> This has begun to change -- not fast enough, though, I agree.

LADWP and the City of LA have both begun to convert their own buildings' landscaping to drought-tolerant plantings. It's very slow, I think because of a color-of-money issue. Upkeep may come from a already-available pile of cash, while replacement comes from a different and much smaller pile.

Also, for a couple of years now, LADWP has been offering cash payments to customers who replace their lawn with drought-tolerant plants ([http://www.ladwp.cafriendlylandscaping.com](http://www.ladwp.cafriendlylandscaping.com)).

It's having a noticeable effect, although I have to say that many of the jobs done by contractors are atrocious. Exhibit A is these guys, [http://turfterminators.com](http://turfterminators.com), who will replace your front yard with 2'' stones and a few sad succulents for free, and claim your DWP payment. I removed my lawn 14 years ago.

</comment></comment></comment><comment><USER15> I find the entire development very terrifying.

Even if I don't live in the US and being not particularly interested I've heard about California's water problem more then 10 ago. That means the problems and dangers are well know a relatively long time ago. There is a ton of publications and research on various levels and domains.

It seems to me that we are completely incapable to handle the challenges that come with (finite) natural resources. Our system works as long as it works and then it halts full stop. Like a massive train, there is no change of course.

<comment><USER16> I'm confused why the price per gallon for water isn't skyrocketing in California.

If the state is artificially keeping the price low, of course people aren't going to change their habits and business models. And the end game is running out of water instead of innovating to keep your water bill down.

<comment><USER17> Well, for one, water prices are not really set by a free market. Residential water providers are monopolies regulated by the local governments. They're not allowed to jack up their rates as it would hurt the poor. In San Juan Capistrano, the plaintiffs recently won a suit against tiered pricing on the argument that the water cannot be sold at a cost greater than the cost of providing it.

Agricultural interests with senior water rights have a legal right to a much greater amount of water at much lower cost. Those with riparian rights (upstream) have the right to take as much water as they can use.

There are hundreds of reasons why it's not as simple as "turn this knob to raise price".

<comment><USER18> /sarcasm: I wonder why there aren't air access riparian rights (upstream) or senior air rights. It seems logical if there are such rights for water, there should be similar rights for air.

<comment><USER19> In actuality, it is one of enforcement. It is relatively easy to track and identify water usage. You can disguise a well only for so long. If the US federal government had the means to regulate air usage by so many cubic feet per year, they would.

For some industries this already exists in the form of the regulation of emissions. If you're capping an industries carbon output into atmosphere what you are really capping is the mass of oxygen they can consume from the atmosphere. If you do the thermodynamic analysis of it, you're basically putting a cap on the amount of energy that a business can acquire from using the atmosphere. Most industries run 24/7, so it is really easy to calculate how much oxygen they'll use each year and how much carbon they'll emit into the atmosphere.

It isn't so easy for individuals and smaller businesses. For example, I own a generator that uses oxygen from the atmosphere to get electrical energy. However, I only use it for a tiny fraction of each year.

</comment></comment></comment></comment></comment><comment><USER20> Why do crops need to be grown in California or 'shipped' to China? Can't these crops be provided by other states in the U.S. that are more conducive to farming? It seems California is not a great state for farming, and was engineered to be suitable. I understand the economic value to the state, but using 80% of the water during a drought? It seems like an incredible waste of resources for the financial gain of a single state.

<comment><USER21> Contrary to your entirely reasonable assumptions, California is more conducive to farming than most places. There is little to no frost, a nearly yearlong growing season, and plenty of water thanks to the natural reservoir that is the Sierra snowpack. The catch is that California has always been prone to multiyear droughts; while this is the worst single season on record, the drought itself is not particularly notable -- the last similar drought was just 40 years ago.

So why do we clamp down on residential watering while allowing almonds to be grown? Simple: residential watering provides no economic purpose, and dead grass will grow back when the water comes back. Almonds provide an economic benefit and we usually have plenty of water for them. Diverting water from residences to almonds during a drought is simply the price of keeping that part of the economy alive.

<comment><USER22> Almond growers better be paying a premium then in order to compensate the residents of the state who lost their water to them. If California is conducive to farming other than water then the high price in water should be fine.

<comment><USER23> I think it's a mistake to keep harping on Almonds. California produces so much of the world's supply that ceasing production here would be hugely disruptive. Beef and Dairy, on the other hand, are produced in areas with far more available water. California could stop producing livestock and the world (and the state) would, for the most part, shrug and go about their normal business.

Almonds get so much attention, but if you look at the amount of water necessary to produce almond milk vs the amount of water necessary to produce cow's milk, almonds start to look at lot more attractive.

</comment></comment></comment></comment><comment><USER24> The solution to this problem is very, very simple: actually force farmers to pay market price for the water they use. The end.

<comment><USER25> That's not what I would call simple. America has a long history of subsidizing farmers, which in turn keeps food prices down.

<comment><USER26> Not all food subsidies keep food prices down. For example, several crops have dedicated programs where the government keeps a significant portion of the annual crop off the open market as a means of keeping the price high (see the recent SCOTUS case about raisins). Then there's things like ethanol mandates which act as a subsidy to farmers but increase both the cost of food and the cost of gasoline. An even bigger problem are import tariffs and other forms of protectionism that again subsidize farmers but increase prices.

Food stamps are a far far better way of subsidizing food for the poor than through a rube goldberg system of supposedly helping the poor by giving millions to huge agribusinesses. So much so that I consider those types of arguments a bit of a red herring. Along with the "food security" argument -- there's no impeding worldwide embargo of the united states and if there were calories would be the least of our problems.

</comment></comment></comment><comment><USER27> Among the many well-known statistics cited in the article, absent was the less known point that half of California farms still use open ditch irrigation. It makes many of the other discussions about crop selection and municipal conservation seem trivial.

</comment><comment><USER28> The article could be one word long: "No!" But I guess that does not sell as many ads.

<comment><USER29> [http://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines](http://en.wikipedia.org/wiki/Betteridge%27s_law_of_headlines)

</comment></comment><comment><USER30> This paragraph really captures the essence of the problem:

"But California, from this drought onward, will be a state transformed. The Dust Bowl of the 1930s was human-caused, after the grasslands of the Great Plains were ripped up, and the land thrown to the wind. It never fully recovered. The California drought of today is mostly nature's hand, diminishing an Eden created by man. The Golden State may recover, but it won't be the same place."

</comment><comment><USER31> If only there were some science dedicated to the study of allocation of scarce resources, the practitioners of which may be able to offer some advice...

<comment><AUTHOR> but... who needs science when you can have free markets?

</comment></comment><comment><USER32> I find the article quite disingenuous given it doesn't admit the reality of the situation. If California stops being used to farm cash crops for export outside of California [as it is currently], the "water problem" will mysteriously vanish overnight. Even with droughts.

[http://aic.ucdavis.edu/pub/exports.html](http://aic.ucdavis.edu/pub/exports.html)

[http://ajed.assembly.ca.gov/sites/ajed.assembly.ca.gov/files...](http://ajed.assembly.ca.gov/sites/ajed.assembly.ca.gov/files/Fast%20Facts%20on%20California%27s%20Agricultural%20Economy.pdf)

> In 2013, the total amount of agriculture and livestock products exported > from California to the world totaled $13.7 billion.

[http://www.slate.com/articles/technology/future_tense/2014/0...](http://www.slate.com/articles/technology/future_tense/2014/05/_10_percent_of_california_s_water_goes_to_almond_farming.html)

> By all accounts the current water crisis is far more urgent in the sprawling > fields of the Central Valley. And that's bad news for those of us who enjoy > eating daily. Two simple facts explain why: California is the most > productive agricultural state in the union, and agriculture uses 80 percent > of California's water. In a year with practically none of the stuff, that's > enough to send ripple effects throughout the country.

> Almonds alone use about 10 percent of California's total water supply each > year. That's nuts. But almonds are also the state's most lucrative exported > agricultural product, with California producing 80 percent of the world's > supply. Alfalfa hay requires even more water, about 15 percent of the > state's supply. About 70 percent of alfalfa grown in California is used in > dairies, and a good portion of the rest is exported to land-poor Asian > countries like Japan. Yep, that's right: In the middle of a drought, farmers > are shipping fresh hay across the Pacific Ocean. The water that's locked up > in exported hay amounts to about 100 billion gallons per year—enough to > supply 1 million families with drinking water for a year.

</comment><comment><USER33> "The California drought of today is mostly nature's hand, diminishing an Eden created by man."

FFS. And the repeated mantra of almonds, along with not one mention of meat. It's nothing but hubris and ignorance.

<comment><USER34> it's there, midway down — "It takes 106 gallons of water to produce an ounce of beef — which is more than the average San Francisco Bay Area resident uses in a day."

I did a double take at that line you quoted, though.

<comment><USER35> Those figures are based off of grain fed, mass produced cattle. Assuming that all such grains originate in California, or even that it applies to all meat, is silly. They are not accurate for grass fed beef.

Around Petaluma, for example, the cows graze on grass that is not irrigated. They may be supplemented with grain in the winter months.

A cow itself, not including water used to grow feed, will consume about 30-55 gallons of water to every hanging pound. You can do this calculation yourself: A decent hanging weight of a cow is about 600 pounds. A cow drinks ~25 gallons a day, and goes to slaughter around age 3. (25x365x3)/600.</comment></comment></comment>


Brave browser is coming with default Binance affiliate url - <AUTHOR> https://twitter.com/BrendanEich/status/1269289242905042944 <comment><USER2> I think Brave's attempted cure to ads is worse than the disease. Now you don't just have adblocking, you also have a weird crypto middle man who tries to peddle you affiliate links. It's like a sort of protection racket

</comment><comment><USER3> Getting worse every release.

It's been showing "photo ads" in new tabs from time to time.

And the prompt to use that crypto ad thing every time it updates hasn't been appreciated either.</comment>


How to Write a Rust Syntax Extension - <AUTHOR> http://brodoyouevencode.com/posts/how-to-write-a-rust-syntax-extension/

<comment><USER2> I can't help thinking that this is just the wrong way to do this.

If I have a subtle metaprogramming problem that I'm going to solve with the C preprocessor, I can code it and document it right there in the same source where it's used. Because that's the natural place for it. The metacode is the fundamental thing I'm writing, and it belongs in the "code" files for the rest of the project.

These Rust things are implemented as modules. I need to keep them separate. I need to build them separately. That breaks discoverability really badly. If a future maintainer needs to figure out what my strange macros do, they just look at them. If they get confused by my strange syntax extensions, they need to figure out where some other crate is coming from.

Regardless of other concerns about the mechanics, I think this is going to put a really serious damper on this kind of code.

Quite honestly, I'm looking at this and seriously thinking that more pedestrian options (python scripts to emit or preprocess rust code, for example) might be simpler and cleaner in practice.

<comment><USER3> Rust also has macros, which can easily be defined next to their use: [http://doc.rust-lang.org/book/macros.html](http://doc.rust- lang.org/book/macros.html)

Syntax extensions are more like plugins for the Rust compiler.

<comment><USER2> I know, but Rust macros seem to be fairly simple "expansion of a syntax tree" things, not intended as a programming environment. This is (or at least appears to be) the Rust answer for things like elaborate C macros or C++ template metaprogramming. There's a place for that kind of code in the world, even though it's needed rarely.

Thinking about this as a "compiler plugin" is exactly what I think I'm getting at: if I need to implement some sort of DSL feature for my code, _I want to do it as part of my code_ and not have to deploy it as a plugin to the compiler.

<comment><USER4> > This is (or at least appears to be) the Rust answer for things like > elaborate C macros or C++ template metaprogramming.

Generics are Rust's answer to most template metaprogramming.

> if I need to implement some sort of DSL feature for my code, I want to do it > as part of my code and not have to deploy it as a plugin to the compiler.

The problem with that is that, in a cross-compilation scenario, the environment that the compiler runs in may be completely different from the environment that your code is deployed in. Different symbols may be available, some libraries may or may not be there or work differently, etc. So you really need it to be separate modules.

<comment><USER2> That seems kind of non-responsive. The fact that there are technical limitations with Rust's mechanism doesn't invalidate the fact that the existing solutions work fine when implemented with a cross compiler and yours don't. It's sort of a special case of my point: maybe you did it wrong.

( _Edit, for clarity: the C preprocessor and C++ template languages are well- specified interpreted languages executed at compile time. Rust 's attempt here is poorly specified and coupled closely to the runtime environment of the compiler binary. And that choice has leaked into the API presented to the programmer. And that's bad._)

And regarding templates/generics: I'm not talking about type calculus stuff, but more like the kind of code you see in Boost's lambda or serialization libraries (which to be fair I think are terrible libraries personally -- IMHO this kind of code doesn't belong in libraries at all, which is my point). I don't think Rust generics (to their credit) can do that.

<comment><USER4> > That seems kind of non-responsive. The fact that there are technical > limitations with Rust's mechanism doesn't invalidate the fact that the > existing solutions work fine when implemented with a cross compiler and > yours don't. It's sort of a special case of my point: maybe you did it > wrong.

Two of your examples have been template metaprogramming and cpp, both of which are very limited programming environments (technically Turing complete, but both are Turing tarpits). When you actually want a full programming environment, you always hit the cross-compilation issue. It's just fundamental to the problem. But the advantages of a having a full programming environment available, _when you need that power_ , outweigh the downsides of having to write in a separate module.

The other example you gave is writing a Python script, which has all the same problems of writing in a separate module, except now you're writing in a different _language_ in addition to writing in a separate module.

Sometimes you don't need the power of a real programming environment, of course. That's why the macro system, which does not expose a full programming environment, exists in Rust. _But C++ templates and (especially!) cpp weren 't designed as programming environments either._ They're pretty terrible programming environments. If you want that kind of thing, use the macro system. It's technically Turing complete too in just the same way as templates are. But we _also_ expose a full programming environment, if you want it.

I'm mystified by how offering a feature that extends the existing state of the art _in addition_ to offering a feature that reflects the state of the art—the macro system—could possibly be somehow "doing it wrong".

<comment><USER2> > I'm mystified by how offering a feature that extends the existing state of > the art in addition to offering a feature that reflects the state of the > art—the macro system—could possibly be somehow "doing it wrong".

That's a total strawman (seriously: every time I see you deal with a criticism you pull out this flamage toolkit; please stop). All that stuff in the first half of your sentence? That's the stuff you're doing _right_.

What you're doing wrong is that I can't write that inline in the code and need to write it as essentially an extension library for the compiler.

I don't think it's such a strange request that my DSL implementation look like it does in C or Scheme, e.g. "[Define some quirky DSL hackery] [Implement a bunch of code using it]". I'm likewise mystified why you think that's not a useful requirement or a shortcoming (even a minor one -- you're literally refusing to engage me on this) of your design.

The example code in the linked article is simply _ugly_. Ugly APIs are bad, even (especially) for subtle features.

<comment><USER5> I'm having a hard time understanding your objection. The nearest I can parse from all of your posts is "you aren't doing things the way I like therefore you are wrong" which isn't a very compelling argument to me.

<comment><USER2> Uh... what other definition is there for thinking something is wrong? I've written DSLs, and code generation hacks, and used the preprocessor, and lisp macros extensively to do it (not templates so much, to be fair). I know the problem area, I know what I like, and I don't like this.

It seems that your position is "well, you won't get it so shut up about it". That seems rather uncompelling too. :)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Great to see documentation on syntax extensions; hopefully this will end up in the official Rust book at some point.

Also, this domain makes it _really_ hard to take the content seriously...

<comment><USER7> Note that syntax extensions are behind a feature gate, that means they are an experimental feature usable on nightlies, but not on released versions of Rust.

<comment><USER8> Yup, this is very much why I have put zero effort into documenting them: they deeply rely on compiler internals, and I have enough other work to do without helping create de-facto standardization, like what happened with macros...

That said, still glad to see posts like this.

</comment></comment></comment><comment><USER9> > Syntax extensions are a cool feature (and Rust is the only language I know > of that supports something like this) that allows you to modify the AST at > compile time, so you can generate your own code or modify existing code.

Java has had this feature for about 10 years now. The standardized API (required by all conformant compilers) defines only _reading_ a _partial_ AST (just declaration) and generating new source files, but javac supports full AST transformations.

Two famous Java projects making use of javac AST transformations are the good- old Lombok project and Checker, Java 8's new pluggable type systems.

<comment><USER2> Lisp has had this feature for... never mind.</comment></comment>


Pycket – A Tracing JIT for a Functional Language [pdf] - <AUTHOR> http://homes.soic.indiana.edu/samth/pycket-draft.pdf

<comment><USER2> Very interesting, though there's a large overlap with material covered in the cited papers.

It was particularly interesting that a good result could be obtained despite started with such a simple model (CEK).

Some questions that comes to mind:

* Is the allocation elimination good enough that you could just treat all variable as set! mutated instead?

* If instead of direct-style (later "re-discovered" as A-normal form) you used CPS with first-class continuations, then the two-phases of the append problem would fall right out?

A downside to using a generic JIT engine, like RPython, is the loss of language specific GC opportunities (for a lazy language, these include indirection elimination, trivial reductions, untagged heap objects, ...).</comment>


Top Tech Companies: You filter on raw IQ, here is how to do it more effectively - <AUTHOR> http://nadamhu.wordpress.com/2013/06/16/top-tech-companies-you-mostly-filter-on-raw-iq-and-here-is-how-to-do-it-more-effectively/ <comment><USER2> This post is a mischaracterization of why tech companies as basic coding questions. Or at least Microsoft, where I learned to interview and coached my own team of interviewers over several years.

1) Basic coding questions are a nice filter. If you can't remove an element from a doubly-linked list in C on a whiteboard immediately after graduating, what were you doing the last four/five years? It's like the height signs before an amusement park ride: "you must be at least this competent." These are not intended to be hard problems. You should not be crippled if you "think differently" or "form important theories." Further, dropping one on the floor is not a deal-killer; you just have to get most of them.

2) Do you really understand how a computer works? If I give you some inputs (or you come up with them), can you walk through your program and describe the execution and memory state in some detail? You'd be shocked how many 4.0 GPA CS students from Stanford/etc. cannot. I am willing to teach new graduates how to work at scale. At a top firm, I am not willing to send them back to school to take Operating Systems and Architecture again.

3) Can we have a discussion about your code and the problem without you breaking down completely? More edge cases, expand it to a broader domain, increase perf (MSFT), scale it to web size (Google), etc.

None of these are raw IQ measures. If you want to see such measures, look to the finance industry where, for example, my wife had to take the Wonderlic Test during one interview, which is definitely more a measure of "raw sprinting smarts."

<comment><USER3> > point 1)

I remember what a doubly linked list is but I wouldn't remember C well enough to pass the test. Does that make me a bad programmer?

> point 2)

Depending on the position, this might or might not matter. If you are modeling high level concepts in functional languages for example, does it really matter if you don't know what a logic gate is or how processes are scheduled?

> point 3)

Agreed.

I would say whatever questions you chose, it will only filter out for a certain type of programmer. Your questions are most likely targeted at C/C++ systems programmers.

<comment><USER4> > I remember what a doubly linked list is but I wouldn't remember C well > enough to pass the test. Does that make me a bad programmer?

Unless the position was for a C role, Most people would accept psuedo code, or help you along with enough syntax to get you through.

</comment></comment></comment><comment><USER5> My IQ is 136. I can attest that it is not an indicator of anything. I am a lazy, average programmer. Whatever benefit I gain from having a higher IQ is offset by my inability to focus for more than a minute. I don't understand how people can study and lack many basic skills because I aways seemed to sneak by without them. I am a chronic procrastinator, only the fear of having to write a final in 24 hours made me study/cram by pulling all nighters. I have a CS degree and rarely went to class, having collected every letter grade A+ through F, and survived being on academic probation (my semester with four D's and an A+). Just one data-point and a counter-example as to why IQ is not a good measure of anything.

According to Gwern[1]: It is worth noting that studies of human genius frequently say that raw IQ and talent are not helpful past unexceptional levels like 130 IQ; what makes the difference is motivation and the "drive to mastery"

1: [http://www.gwern.net/Terrorism%20is%20not%20Effective](http://www.gwern.net/Terrorism%20is%20not%20Effective)

<comment><USER6> ADHS?

<comment><USER5> I've never been diagnosed. In high school I had an uncharacterized organizational learning disability. Out of desperation I wanted to be medicated and have made the huge step, huge for me, of talking to a doctor who referred me -- we'll see. The stories I've seen on HN have soured my opinion of medicating. I don't want to become addicted or unable to function, less than I already do, without drugs.

</comment></comment></comment><comment><USER7> I suggest they might want to filter based on IQ but the math doesn't support them. Pick a cut-off point, below which you will not hire a person. Assume perfect filtering and no mistakes. How big can your company get?

Start with 7 billion humans, then reduce to the set of those with at least the target IQ. Are there enough people in the world to make this work? How about after subtracting people who don't do that kind of work or don't speak the right languages? Or they're in the wrong country and won't move. Or they're at some other employer. Keep subtracting from the pool and see who's left.

If your company is bigger than the number you get after this filtering, then you aren't really filtering that way. You just think you are.

</comment><comment><USER8> Ignoring the not-so-thinly-veiled-advertisement. The premise is wrong. Companies optimize for a lot more than raw IQ (company fit, engineering skills, response to criticism and pressure etc.)

Humans can also get better a solving problems like he presents. It's not about memorizing test cases, it is about developing heuristics and noticing patterns - something humans are actually very good at. If you practice you will get better.

<comment><USER9> Why "response to criticism" \- is that prevalent in your corporate culture? Sounds like a great reason to walk out of an interview.

<comment><USER8> In a professional environment, generally the best way to get started is to simply throw something up on a whiteboard, tear it apart, throw something else, tear it apart...rinse repeat. If I tell someone in an interview that their solution is flawed, I want them to be intrigued, ask questions and find out way OR tell me why I am wrong/mistaken in a professional manner - if they are stubborn, rude, angry or simply fail to respond, they will not be a good fit.

In any large culture people will constantly tell you you are going about something the wrong way, it is simply in the nature of large cultures. It is the job of any professional engineer to compile notes, listen and react appropriately to this. Sometimes the other people don't have the whole story, or are simply just wrong...other times they know something you don't and you have to be willing to scrap what you were doing and go back to the drawing board - with a new contact and fresh information.

</comment></comment></comment><comment><USER10> I struggle to find the point of this article. OK, I'm somewhat being coy and perhaps somewhat dismissing it with a middlebrow but in a real sense I'm not quite sure what is being argued. Is this the developer of "Find the Mafia!"? It's not as if the "Top Tech Companies" are actually measuring IQ, so that seems to belie the point. Sure, you could say they are asking questions that you believe correlate with raw IQ if you want, I might say "citation needed" but the fact is it is not exactly what they are doing. Now, I'm not sure this particular type of puzzle is the perfect solution, or even a candidate solution. Yeah, I'm a little flummoxed.

By the way, the simpler explanation for asking question about CS theory and algorithms is that they want people that have really studied them thoroughly. I know, it's a crazy idea, ... but it just might be the answer. :)

</comment><comment><USER11> I feel like your article is just a not so subtle ad for your game.

</comment><comment><USER12> While I find the premise of the blog post to be potentially interesting (2nd post since 2011), I wonder if this is much more than a thinly veiled advertisement.

</comment><comment><USER13> I've always had difficulty interviewing because I'm a #2 on this guys list-- the "long distance runner" of thinking. My talent has always been slow, methodical crunching of massive amounts of data-- analysis. There's no way to demonstrate this talent during an interviews. I've gotten feedback from interviews and heard, "It's not that you didn't answer every question correctly, it's that you weren't fast enough." So I essentially can't show my most valuable skill to a potential employer.

</comment><comment><USER14> I read the fine article and all the comments submitted here before seeing some questions that can be answered by reading a FAQ I've posted here on HN before about company hiring procedures. The last full posting of that FAQ was a while ago,

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

and the tl;dr of the FAQ is "If you are hiring for any kind of job in the United States, prefer a work-sample test as your hiring procedure. If you are hiring in most other parts of the world, use a work-sample test in combination with a general mental ability test."

Readers of HN have asked me to put that FAQ somewhere on the Web with a permanent link, and I am revising it for posting to my personal website. If you have suggestions for how to make the FAQ better, I'd be glad to hear them, as I have already been doing further research on company hiring procedures.

</comment><comment><USER15> The most effective way to filter on raw IQ would be to... filter on raw IQ. But that's illegal.

<comment><USER16> It's not technically illegal, just legally perilous. Some companies do it, but they're companies that require a whole lot of other qualifications - "we only hire from Harvard and Yale" or "applicants must have ten years managing at least 150 employees".

<comment><USER17> I think the situation is basically that it's allowed, but employers have to jump through probably more hoops than they should be required to to prove it's fair. The Supreme Court ruled in 1971 in Griggs v. Duke Power Co. that Duke Power Co. had high school graduation and IQ test requirements for all but the lowest-level positions, the IQ requirement having been added after the Civil Rights Act of 1964 was passed and they were made to stop directly discriminating against black applicants. The court looked at promotion records and decided that the requirements weren't really predictive of anything and served mainly to allow them to continue discriminating against black applicants, and decided that the Civil Rights Act prohibited general intelligence tests, so employers either have to prove that such tests are predictive of job success, or only use tests that are written to test job- specific abilities.

I don't know where to find the data used in that case, but my understanding is that intelligence tests have been shown to be broadly predictive of job performance, more so than any tests written to test only "job-related" skills; intuitively, it's often better to hire someone who can more easily learn new things than to hire someone who already has some amount of experience but has difficulty learning new skills, drawing inferences, and dealing with unexpected situations. So if you're hiring someone, and you have two otherwise equal applicants, and one scores better on an intelligence test, it makes sense that you'd be better off hiring the one who scored higher, but this is prohibited by the Supreme Court's interpretation of the Equal Rights Act.

Banning employers from using an effective method to choose who to hire necessarily causes economic efficiency. It's fascinating to think about how much; a large part of why companies like to hire from top universities is that that's where the smart students are. A large part of why so many companies are requiring college degrees for jobs that didn't previously require them is that it's an effective form of cognitive selection; as more and more students go to college, fewer high-IQ students don't go to college, and the IQ gap between those who do and those who don't grows. I think eventually someone's going to realize it's possible to hire students straight out of high school on the basis of test scores and provide them with all the necessary training, skipping the whole process of making them spend $250,000 and four years of their lives experimenting with drugs and getting shwasted.

<comment><USER16> >I think the situation is basically that it's allowed, but employers have to jump through probably more hoops than they should be required to to prove it's fair.

Actually, no, you're misunderstanding the key to _Griggs_. It doesn't matter if the test is fair if the outcome is discriminatory.

</comment></comment></comment></comment><comment><USER18> Raw IQ should only be one of several components to consider. There are many proxies for determining raw IQ, but the proxies themselves should not be the end goal.

Remember that writing maintainable code is also about communicating an idea -- knowing how to pick the right word to describe a variable or function -- knowing how to document your code succinctly, are critical and have a significant effect on a company's bottom line in the long-run.

Furthermore, you want to hire someone who will not negatively affect the productivity of his coworkers with his attitude. He must be able to work productively in a team setting.

</comment><comment><USER19> There are two major types of problems while programming. Firstly how to break down a bigger problem into set of smaller problems. Secondly how to solve small problems quickly and efficiently. Large scale design question represent the former. Type three interview questions test the later. While raw IQ may he correlating with it this is not what big tech companies are looking for IMHO.

</comment><comment><USER20> The game Set would appear at first glimpse to be the same sort of raw- horsepower IQ test.

And yet, skilled players are substantially better than unskilled players. They also tend to be formidably intelligent people, but any game may be gamed.</comment>


Ask HN: wishlist app idea - <AUTHOR>

Hey guys,
Over the holidays my wife and I have been feeling the need to have a webapp where you could enter all the goodies you'd want for xmas/your birthday/etc from different sources (amazon, ebay, etc) and then send a link to your wish-list to your friends and family, so they could claim the gifts and buy them for you.
Ideally you could create several named lists (one for your bday, one for xmas, etc).
Seems like it could be a fun little open source side project.
What do you guys think? <comment><USER2> plenty of them on the AppStore. have you checked before posting? [https://itunes.apple.com/app/id405041233?at=11l6Tr](https://itunes.apple.com/app/id405041233?at=11l6Tr)

</comment><comment><USER3> \- I like it. Im more interested in the design and execution.</comment>