What problems have you solved using genetic algorithms/genetic programming? - <AUTHOR> http://stackoverflow.com/questions/1538235/ <comment><USER2> GA solve hard optimization problem, with serious resource constrains, to facilitate breakthrough technology to market:

In January 2004 I was contacted by Philips New Display Technologies who were creating the electronics for the first ever commercial e-ink book reader, the Sony Librie, that had only been released in Japan, years before Amazon Kindle and the others hit the market in US an Europe. The Philips engineers had a major problem. Few month before the product was supposed to hit the market, they were still getting ghosting on the screen when changing pages. The problem was the 200 drivers that were creating the electrostatic field. Each of these drivers had a certain voltage that had to be set between zero and 1000 mV or something like this. But if you changed one of them, it would change everything. So optimizing each driver's voltage individually was out of the question. The number of possible combination of values was in billions,and it took about 1 minute for a special camera to evaluate a single combination. The engineers had tried many standard optimization techniques, but nothing would come close. The head engineer contacted me (I was in US at the time, they were in Holland) because I had previously released a Genetic Programming library to the open-source community. He asked if GP/GA's would help and if I can get involved. I did, and for about a month we worked together, me writing and tuning the GA library, on synthetic data, and him integrating it into their system. Then, one weekend they let it run live on the real thing. Next Monday I got these glowing emails from him and their hardware designer, about how nobody could believe the amazing results the GA found. This was it. Later that year the product hit the market. I didn't get payed one cent for it, but I got 'bragging' rights. They said from the begining they were already over budget, so I knew what the deal was before I started working on it. And it's a great story for applications of GAs.

</comment><comment><USER3> With regards to GAs, it's good to keep in mind the comments from Russell and Norvig's AI book:

"At present, it is not clear whether the appeal of genetic algorithms arises from their performance or from their aesthetically pleasing origins."

Furthermore:

"Most comparisons of genetic algorithms with other approaches (esp. stochastic hill climbing) have found that the GAs are slower to converge."

The discussion at the page below is very enlightening as well.

[http://books.google.ca/books?id=8jZBksh- bUMC&lpg=PR8&...](http://books.google.ca/books?id=8jZBksh- bUMC&lpg=PR8&dq=aima&pg=PA155#v=onepage&q=genetic&f=false)

<comment><USER4> Yeah, I see them as just one tool in the randomized-optimization toolbox. It's not entirely clear to me why many people see them as the only or the first tool (perhaps the appealing biology metaphor?). In particular, I tend to like a complexity ramp: first try the dumbest thing, like random instances, then move on to randomized hill climbing or a variant like simulated annealing, then add more complex stuff on top of that, whether via GA crossover, or something that learns/exploits a statistical distribution, like MIMIC, if the simpler methods didn't work and you need to exploit the structure of the space. And with purely discrete things, I also like considering whether completely different approaches, like constraint programming, would work instead (instead of optimizing a numerical fitness/cost function, you give a list of things that must be true about any desired solution, and ask it to find one meeting the constraints).

</comment></comment><comment><USER5> * Generating rule sets for classifying politicians by party, based on voting data - this was for a class project. IIRC my results were a little better than the standard GrowRule (or whatever it was called) algorithm that most of the class used.

* Generating iterated prisoner's dilemma strategies. It's not that this is an intractable problem...but I wanted to see what would happen in a large population of different strategies. This actually resulted in support for some theoretical results I'd read, which was nice. This was for a class paper.

* The Mona Lisa polygon thing that Roger Alsing came up with - wrote this just to test a new GA lib I'd written to learn Python.

* Optimizing a nano-scale emitter for a new scanning electron microscope - I didn't actually _solve_ this problem, as I had to leave the job where I was working on it before the project finished...but I'd like to think that the project will get somewhere one day.

* "Translating" English prose to English verse; that is, trying to increase the metricality of text while minimizing semantic drift. Very, uh, mixed results (I blame Wordnet!). This was also a class project.

I feel like I might be forgetting something, but that's at least most of it.

<comment><USER6> How'd you measure metricality of text? <http://github.com/darius/versecop> was my own hack at that using the CMU pronouncing dictionary -- I'd like to come back to it sometime.

<comment><USER5> Well, we had a solution that used the CMU Pronouncing Dictionary but also had a lot of unknown handling on top of it. Then we used a heavily modified version of Levenshtein distance to measure distance from Shakespearean iambic pentameter, with weighted penalties for the various "common irregularities"...we consulted someone in the English dept. to set the weights reasonably. Our metricality algorithm gave Shakespeare's sonnets 0.85, some random Dickens 0.7, and the NYT 0.4 or so...so we think it worked reasonably well.

Happy to send you the paper if you're interested in more depth than the above.

<comment><USER6> Yeah, unknown words were the biggest problem. I'd love to see your paper -- firstname.lastname@example.com if you don't want to post a link here. Thanks!

I wonder if y'all ever went looking for 'hidden verse' in published prose, too.

</comment></comment></comment></comment><comment><USER7> For reference, here's the classic list of 36 known human competitive results produced by GP: <http://www.genetic-programming.com/humancompetitive.html>

</comment><comment><USER8> I needed to have a lot of hacking fun: stack based genetic programming provided me with tons of wonderful hacking days a few years ago. See your computer understanding how to create programs like: "DUP * 1 +" actually doing symbolic regression by discovering a program that has the best fitness for the set if inputs is something you'll hardly forget in your life.

Btw other than to have fun I also tried to use this approach to create a few hash functions with good distributions.

</comment><comment><USER9> I'm trying to evolve a bot for the current Google's AI challenge using genetic algorithms. The results so far: a mediocre bot that doesn't even win on all maps against the samples bots, and a laptop that is about to die every minute now from exhaustion.

<comment><USER10> I would thnk genetic programming might make more sense. Have you looked into that?

I'd love to hear more about your approach. Email me? I thought of using GP for the tron google challenge but it was too slow to launch that java thing they give you to run the players.

</comment></comment><comment><USER11> Bill Gross gave a TED talk a few years ago where he discusses how they used genetic algorithms to design a solar collector and a subsequent stirling engine. Theres not much on the details of what went into creating the program, but there were a few interesting pictures of their progress along the way.

<http://www.ted.com/talks/bill_gross_on_new_energy.html>

</comment><comment><USER12> Solving magic squares

I wrote a solver (conventional style) in Ruby that could solve squares in about 30 minutes, and I was pretty pleased with that, so I challenged a friend of mine to beat me.

He came back an hour later claiming he had code that could solve it in under 10s. He'd written a genetic algorithm that solved squares on my machine in about 6s _and_ in only about 30 lines of Java (less than my Ruby). I was pretty humbled

</comment><comment><USER13> In 2007-9 I developed some software for reading datamatrix patterns. Often these patterns were difficult to read, being indented into scratched surfaces with all kinds of reflectance properties, fuzzy chemically etched markings and so on. I used a GA to fine tune various parameters of the vision algorithms to give the best results on a database of 300 images having known properties. Parameters were things like downsampling resolution, RANSAC parameters, amount of erosion and dilation, low pass filtering radius, and a few others. Running the optimisation over several days this produced results which were about 20% better than naive values on a test set of images unseen during the optimisation phase.

This system was completely written from scratch, and I didn't use any other libraries. I'm not opposed to using such things, provided that they give a reliable result, but you have to be careful about license compatibility and code portability issues.

</comment><comment><USER14> I used some GP to find optimal ranges for sensors meant to detect malware on computers. The sensors were things like process and thread counts, memory usage, disk activity, etc... but there were around 40 total sensors and very large ranges of data seen on computers running normally and computers with some kind of malware running in the background. The detection software built with the GP results worked pretty well. It was just a project I did for a reverse engineering class in college.

</comment><comment><USER15> GA and GP are powerful methods for machine learning, but other methods are often a better use of programmer and computer time, particularly the Support Vector Machine.

</comment><comment><USER16> Answering a slightly different question: if you're considering trying to solve a problem with a GA, you might first try simulated annealing. For many problems, it will probably converge to a decent answer more quickly, is quite a bit easier to code, and is less resource intensive.

</comment><comment><USER6> Made <http://djb.deviantart.com/gallery/> using my eye for the fitness function. Karl Sims did it better originally, but I had some fun with it.

</comment><comment><USER17> _My first job as a professional programmer (1995) was writing a genetic- algorithm based automated trading system for S &P500 futures. The application was written in Visual Basic 3_ \- thanks! You made my day!</comment>


Ask HN: How Do You Negotiate? - <AUTHOR> Whether it's your salary, get your PR merged, or how to resolve a problem in your hotel room (and get a free upgrade), I usually feel like I'm stuck into a corner more frequently than not. Get too emotional and feel like losing even when I squeeze out some concession.
I've tried reading some books. Most recent one was "never split the difference" by Chris Voss. But it's still a huge challenge.
What's working for you? And how can I and others learn to better negotiate? <comment><USER2> There are a few components to being a good "negotiator".

1\. Put yourself in situations where you're comfortable walking away. If you're frequently finding yourself in back-and-forths where you're afraid of the other side saying no, you may be putting too much on the line. Start off with lower risk negotiations, and slowly ratchet them so that you have something to fall back on.

2\. A lot of people think that negotiation is a "fight" to arrive to get what you want, but the reality is more complicated. It's really a joint agreement where both sides get most of what they want. Most negotiations rarely end with all parties feeling getting everything they desire. To achieve this, communicate your needs clearly, and likewise, try to understand the other side's needs. Only then can you make demands that make sense.

3\. This goes along with #1. It's very important to give the sense that you have control over the situation. In a salary negotiation, this could be having multiple offers, or very clearly communicating that you don't _need_ the job. In a PR, it might be replying to pushback on a change by explaining in detail why it's a positive for the codebase, and throw out a few architectural details to support your statements. If you're trying to get an upgrade during your hotel stay, usually just asking is enough—most hotels are fully booked anyways, so as long as you appear calm and deliberate about it, you'll probably get _something_ extra.

4\. I hesitated in adding this as a specific bullet point, since it might be "controversial"; be nice! You're dealing with humans, not machines. Don't be rude while negotiating. It rarely works out as a strategy to get the other side to concede. Nice people are fun to work and deal with.

</comment><comment><USER3> I've had an unprecedented number of salary negotiations over the past two months.

I had multiple offers to choose from and they were all pretty good on the surface. Having "I can walk away if I need to" in the back of my mind made the entire experience more relaxing (on my end).

I stated with "I'm looking at X, Y, and Z companies" in the first interaction with each of the three interviews.

Company X gave me an offer of $AMOUNT in an email (before a formal discussion about salary). $AMOUNT was a really nice bump from my current salary already.

When it came time to talk "how much do you expect" for Y company I told them I had X offer for $AMOUNT and would be interested to know what they could offer.

Y company came back with $AMOUNT + 10%.

I used was up front with company Z about the previous two offers. They offered me $AMOUNT + 17%. Note: company Z was slightly worse compared to X and Y.

I had a meeting with company X and told them about the above. They agreed to $AMOUNT + 17%.

I took company X in the end.

<comment><USER4> If company X moved 17% how much % do you think you potentially left on the table?

<comment><USER3> Hard to say. Probably some amount.

I was already making a stupid amount for the workload at my original employer. I'm happy with the end result for the moment.

I had another offer that I didn't mention here for 30% more after I accepted the +17% offer. It required a being on call Tuesday to Sunday... Money isn't the only factor.

</comment></comment></comment><comment><USER5> Someone mentioned practice, and yes that is key. When I decided I was going to learn how to sell, I quit my job and went work in new car dealerships; it took me a couple of years and hundreds of negotiations before I became a force to be reckoned with.

Read sales books like those written by Zig Ziglar and Jay Abraham. Voss is awesome (though the title is a misnomer as he does advocate for splitting the difference in a part of that book). Some of his best advice is that of mirroring--it works like magic.

Never forget that if you are not prepared to walk away, you are not negotiating you are capitulating. Love or hate Trump he understands this fact about negotiating and he owns it.

</comment><comment><USER6> Just ask. It's harder for some than you might think. Don't over think it. Ask for what you want, be direct, be sincere, and line up alternatives if you need to walk away.

</comment><comment><USER7> Read "Never Split The Difference" by Chris Voss. It was the best book i read in 2019 and it will change your mind on how you look at negotiating.

</comment><comment><USER8> I'm also reading Voss's book and watched most of his Masterclass. You probably just need more time on task, which is the problem with learning a lot of things. Most of us negotiate job offers, salary, hotel upgrades, etc infrequently. One thing that works is not giving a fuck and be willing to walk away. For example, buying a car - in that specific scenario you have a ton of leverage.

Could be a good product idea - negotiation practice sessions as a service...

</comment><comment><USER9> Regarding salaries, pick a number you're a tony bit ashamed to say out loud and add 5-10%. Use that as a starting point and let them talk you down. You'll probably want to try this out a few times on jobs you're meh about to get comfortable saying it.

</comment><comment><USER10> Apart from the book by Voss you can also read these two they are good books but in the end it all comes to presence of mind and practice.

To Sell Is Human by Daniel Pink Getting To Yes by Roger Fisher & William Ury.

<comment> blaser-waffle I liked, and will second, Getting To Yes</comment></comment>


The Scrum Backlog is where Features go to die. - <AUTHOR> https://medium.com/product-love/b1336ff707aa

<comment><USER2> This is exactly right. It's why I don't use Trello anymore. I have a single sheet of paper that I split down the middle with a line and fill up on either side of the line with my tasks.

Even still, I end up with backlog that I have to discard from time to time. The problem seems to be the speed with which items can be added to the list. When the list is nearly full, I have to think hard about whether or not I'm going to throw any old task on there. But when it's nearly empty, I start filling it up.

Since I only keep one list for both business and personal needs (because I only have one set of waking hours in a day), I have started to fight myself by filling it up with things like movies I want to see but know I will forget about. Now, _those_ tend to be the things that fall to the "backlog", i.e. the top of the list, as the unfinished things are the first things to get written down when the page is full.

So yeah, my paper is also self-prioritizing. The longer a task has been on the list, the more likely it is to bubble to the top of the page. Also, scratching off items is motivating, especially when there are only a few left.

Hah! Who am I kidding? There's never "only a few left". But I've gotten much better about getting through the churn and making sure nothing ends up more than a month old.

Hah! Who am I kidding, again? Filing my tax returns has been on there for more than a month now!

<comment><AUTHOR> Thanks for sharing. I can absolutely empathize.</comment></comment>


Doing Windows, Part 2: From Interface Manager to Windows - <AUTHOR> https://www.filfre.net/2018/06/doing-windows-part-2-from-interface-manager-to-windows/ <comment><USER2> Other article [https://www.slashgear.com/original-windows-demo-video- shows-...](https://www.slashgear.com/original-windows-demo-video-shows-pre-os- in-1983-27314559/)

With the video [https://youtu.be/vnDRw8-caxU?t=415](https://youtu.be/vnDRw8-caxU?t=415)

<comment><USER3> For all the shaky camera work, the video still looks better with its global shutter, than contemporary jelly-looking rolling shutter CMOS sensor.

<comment><USER2> analog ftw

I think that our mind enjoys that better than hyper sophisticated digital trickery

/me goes back to scavenging crt tvs

</comment></comment></comment><comment><USER4> Before reading this article, I'd never connected the concept of a computer menu with a restaurant menu.

<comment><USER5> It's just that, on a restaurant menu, there's less of a chance of blindly selecting the Global Thermonuclear War option.

<comment><USER6> I believe it is, over at Burger King, home of the WOPR.

</comment></comment></comment><comment><USER7> Amazing piece of historical journalism. Thumbs up for the quality material. Thank you for posting this.

<comment><USER8> you should read all of Jimmy's stuff, or better yet support him. His writing has only gotten better over the years and if you're a adventure/sim/IF gaming buff (which I'm not) it's even better. He recently finished a 10(?) part retrospective on Civilization which lost me in the weeds but was still awesome.

<comment><USER7> I went deeper on Jimmy's Maher work and found a collection of his published e-books: [https://www.filfre.net/the-digital-antiquarian-e-book- librar...](https://www.filfre.net/the-digital-antiquarian-e-book-library/). To say I'm impressed is to say nothing at all. He did a stellar job, filling the historical gap between generations.

Jimmy and contributors - you made my day guys. Thanks a lot for all the hints.

</comment></comment></comment><comment><USER9> _" For another, true multitasking would be possible under Windows, claimed Microsoft"_

I had forgotten how terrible the early versions of Windows looked compared to Lisa, Amiga and even OS/2 and DR's GEM.

Even 7 years later Windows 3 only had cooperative multi tasking that in reality was program launcher with background printing. Applications were hopeless at releasing processor and if you tried to multi task you often crashed the whole OS. It was, of course, hugely commercially successful from 3 on. :)</comment>


Genetic Algorithms for Training Deep Neural Networks for Reinforcement Learning - <AUTHOR> https://arxiv.org/abs/1712.06567 <comment><USER2> Hello all. I am one of the paper's coauthors. Thank you for your interest in this work! We hope you enjoy it. Just an FYI, this paper is part of a cluster of five papers released on Tuesday morning, detailed in this blog post: [https://eng.uber.com/deep-neuroevolution](https://eng.uber.com/deep- neuroevolution)

</comment><comment><USER3> Without reading this specific paper, I think this is the future. If not genetic search, then some other metaheuristic. I think this is only really credible road to AGI in the near term, as it seems to be largely a hardware limitation that will be alleviated in the next few years.

Through the history of deep learning, the frontier has been networks that can be trained to some feedback of whether they're working or not in ~6-8 days. Within a few years there will almost certainly be ASICs that allow us to train hundreds of thousands or millions of networks in several weeks, relative to several weeks for one of the same network in 2017. This will let us start exploring things like evolving networks seriously.

Fundamentally, we know neural networks can instantiate general intelligence, and we know genetic search is capable of finding the right neural networks. There are big differences between the CS and biological versions of each, but it's striking that the big breakthrough in "AI" was deep neural networks and not anything else.

When I think about the difference between AlphaZero and human intelligence, I don't think it's "more intelligence." AlphaZero seems perfectly intelligent to me: I think the difference is more about the selective pressures that produced us. AlphaZero is a reflection of its environment and the process by which it developed in that environment. I would be shocked the future of deep learning continues to be hand-design from human intuition.

Edit: looking at the link, I want to caveat the above by saying this paper may or may not be "it," but directionally I think the idea is underrated and erroneously out of favor now as neural networks were in 2009. Ken Stanley (coauthor on the linked paper) in particular has been hung up on one particular approach, NEAT, since like 2002 that is kind of interesting but definitely not the end-all.

<comment><USER4> > Fundamentally, we know neural networks can instantiate general intelligence

This isn't at all the case! We know neuronal networks, of the human brain variety specifically, can host this vague thing we're calling general intelligence.

It's not at all clear that artificial neural networks of the deep learning variety can do everything a neuronal network can do.

</comment></comment><comment><USER5> Note that using genetic algorithms to come up with initial weights for neural networks was the state of the art in the late 90s/early 2000s. So this paper is not as novel as it seems, but it's good to have it for reference.

My feeling is that since shallow networks can be made to have equivalent accuracy to deep networks, that the real challenge isn't topology but training. Hobbyists have access to so much processing power with GPUs now that they can explore techniques that weren't practical for experts 20 years ago. So we may see training speed increase by a few orders of magnitude using techniques besides gradient descent (maybe quantum computing someday, who knows).

The big question though is how to combine networks into hierarchies so that the number of behaviors that can be learned is no longer limited (since pattern recognition is largely a solved problem). I think the way GAs fit in is that they make it much easier to understand and build simple NNs, and possibly train hierarchies or discover topologies that aren't immediately obvious.

<comment><USER3> Deep learning wasn't novel in 2012 either - it was the removal of a hardware limitation that made it compelling again. I think the same is true for evolving DNNs, but I don't know if the available compute power is there yet.

> My feeling is that since shallow networks can be made to have equivalent > accuracy to deep networks, that the real challenge isn't topology but > training.

This is not really true though... even very shallow neural networks can be universal function approximators in a trivial sense because they can be lookup tables, but they are really not expressive enough to generalize well and lack a lot of the expressivity of deep networks.

<comment><USER6> > shallow neural networks can be universal function approximators in a trivial > sense because they can be lookup tables, but they are really not expressive > enough to generalize well

You've got it flipped. If anything, shallow neural networks (of an equivalent number of parameters) are more "expressive" than deep networks, BUT that expressivity just makes them overfit. This is the bias vs. variance tradeoff. If anything, deep networks encode our prior belief that there is a hierarchy of features / a compressed representation, which limits the model that is learned, to a model conforming to those priors.

</comment></comment></comment><comment><USER7> In 2005 I took a sub-symbolic AI course where one of the homework assignments was to evolve a neural network using genetic algorithms. So that in itself is nothing new. The novelty of the paper seems to be the scale of the solution. Personally, I hope we'll see a little bit of revival of genetic algorithms/programming -- I think it's promosing in design (cars, aeroplanes, architecture, etc.), since it's good at finding novel solutions to optimization problems.

<comment><USER8> Overall the idea is about 20 years old. The earliest reference I can think of is Karl Simms work. It's pretty impressive considering how old it is: [http://www.karlsims.com/evolved-virtual- creatures.html](http://www.karlsims.com/evolved-virtual-creatures.html)

<comment><USER9> This was the paper that excited me about neural networks in the nineties, from 92... [http://liacs.leidenuniv.nl/assets/PDF/boers- kuiper.92.pdf](http://liacs.leidenuniv.nl/assets/PDF/boers-kuiper.92.pdf)

</comment></comment></comment><comment><USER10> The paper looks really solid, but the title had me gasp "Bingo!" for a second.

More seriously, thinking about metaheuristic, which approaches at which scale, i.e. machine learning architecture, that's the future.

</comment><comment><USER11> I'm not well-versed in machine learning, so I just want to make sure I understand the general point here: these researchers trained a competitive deep neural network _without_ using gradient descent? Does this mean neural networks might become more useful for discrete optimization problems without gradient information, like program synthesis?

<comment><USER12> Neuroevolution is nothing new. I don't know why people think this is something big/innovative.

<comment><USER11> Because as far as I know, genetic algorithms perform poorly compared to basically every other optimization technique. I'm under the impression that they're not actually used for anything interesting these days, now that the initial hype about implementing natural selection on a computer has died down.

Stochastic hill climbing as a baseline method for evaluating genetic algorithms: [http://papers.nips.cc/paper/1172-stochastic-hillclimbing- as-...](http://papers.nips.cc/paper/1172-stochastic-hillclimbing-as-a- baseline-method-for-evaluating-genetic-algorithms.pdf)

When will a genetic algorithm outperform hill climbing? [http://web.cecs.pdx.edu/~mm/nips93.pdf](http://web.cecs.pdx.edu/~mm/nips93.pdf)

A GA being competitive with modern gradient based methods is very surprising to me.

<comment><USER12> Try optimizing for the shape of an antenna using hill climbing.

Thing about evolutionary networks is that they can evolve topology, which usually is just a thing decided by people implementing NNs (and not guaranteed to be anywhere near most optimal). I don't see why given enough time GAs (or EAs) could not outperform simple backpropagation based on differentiating simple cost functions.

<comment><USER11> Why wouldn't you be able to do that with hill climbing?

<comment><USER13> Because you can't establish any gradient information from the design variables (antenna topology) to the objective function (i.e. antenna gain). So most of the time you might end up climbing towards some wrong direction (i.e. local optima).

<comment><USER11> Hill climbing doesn't use a gradient, that's gradient descent. Hill climbing is pretty much the same as GA with a population of 1. There's no reason you can't design an antenna with it, and before this paper I'd be convinced hill climbing would actually do it better.

The person I was replying to was also advocating the use of GAs to solve the antenna problem, which don't use gradient information either.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> Maybe backprop is actually a form of evolution, a straight forward one where you iterate towards a better form

<comment><USER15> Better isn't always straightforward, sometimes unintuitive steps need to be taken to reach a better fitness value. The advantage of evolutionary methods over backprop is that evolutionary methods can take steps "backwards" and avoid local minima.

<comment><USER16> But local minima aren't a problem for modern neural networks that are optimizing in very high dimensional space.

<comment><USER17> It definitely is a problem. For instance there was a recent post about trying to teach a robot to put a board with a hole in it into a peg. It would just learn to shove the board next to the peg.

<comment><USER16> Sorry, saw this late.

It's a shown/kind of proven result that deep neural networks don't fall into local minima in the very high dimensional parameter space.

GANs and reinforcement learning are different. Research on getting those to converge to good local minima is still much more in its infancy. I don't particularly consider those just a "neural network", but sorry, I should have been more clear.

<comment><USER17> This thread is about reinforcement learning which definitely suffers from local minimas.

But even vanilla supervised nets suffer from local minima. Anyone who's played with them has encountered it. Here you can mess around with a neural net live in the browser and it very easily gets stuck if you try more than 3 layers (especially try the spiral dataset): [http://playground.tensorflow.org/](http://playground.tensorflow.org/)

<comment><USER16> That's why I said high dimensional neural networks. There's been a lot of literature explaining why local minima aren't a problem in very high dimension loss surfaces.

Check any of the literature on this subject: [https://arxiv.org/abs/1611.06310v2](https://arxiv.org/abs/1611.06310v2)

[https://arxiv.org/abs/1406.2572](https://arxiv.org/abs/1406.2572)

Local minima are something that people thought was gonna be a problem, especially back in the 2000s. They played around with small neural nets on toy examples such as yours, and thought it was intractable. It's the entire reason why neural nets fell out of the fashion in the early 2000s, and people moved towards techniques like SVM.

These toy examples don't generalize to high dimensions, and if you take a look at the literature, you'll see that the consensus agrees with my statement.

<comment><USER17> Ehh these theoretical results have questionable application to real life. Sure it might be very easy to learn simple correlations like "this patch of pixels correlates highly with the output '8'". But it's trivial to construct examples where neural nets get stuck in local minimas. For instance, try training a net to multiply two binary numbers.

Maybe with a billion neurons, just by random chance some of them would correspond to the correct algorithm and get reinforced by backprop. But very few NNs have layers larger than a thousand neurons. Because the cost of layers that big grows quadratically. And the chance of random weights finding the solution decreases exponentially.

One of the biggest reasons things like stochastic gradient descent, and dropout are used is because they break local minimas.

<comment><USER16> The statement "deep neural networks are not affected by poor local minima" is not really a personal opinion/theory at this point; it's the dominating consensus in the research community.

These are not just theoretical results. They're theory papers trying to explain the empirical result of why neural nets don't get stuck at local minima.

> Given that deep networks are highly nonlinear systems optimized by local > gradient methods, why do they not seem to be affected by bad local minima?

And other such results.

As I said above, neural nets are obviously able to get stuck in local minima in toy examples. If you read my above comment, you'll see that that has no bearing on my initial statement.

Dropout's main motivation is not to break local minima. It's to achieve better generalization. If it were the case that it was meant to break bad minima, we'd have better training loss upon adding dropout, which is obviously not true.

As for SGD, we used to think that it was mainly for computational purposes. That is, we're unable to batch our entire training set at once, so we have to split into mini batches.

Modern theory states more that SGD is good for avoiding sharp minima, as well as some other desirable properties.

I'm not sure you're really reading my comments thoroughly nor checking out the links, so if you're actually interested in understanding what's really going on, please do some proper research on the topic.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> i wonder if something like this is the abstraction where we as humans stop understanding it.

I do know that we define the cost function / the goal of it, but from using evolutionary Technic to build the network, there is only x layers left to add to create any net.

</comment><comment><USER19> I'm surprised Uber is funding general AI research given their reported financial situation.

</comment><comment><USER20> Well,this is surprising. Paper doesn't mention image recognotion and voice recognition at all. Is this because they are not interesting for new research or because in theese applications results were worse than that of gradient methods?</comment>


Introduction to C++ with Game Development - <AUTHOR> http://www.devmaster.net/articles/intro-to-c++-with-game-dev/part1.php

<comment><USER2> The example on the bottom can hardly be called C++

      #include "stdio.h"

      void main()
      {
      	printf( "Hello world!\n" );
      	getchar();
      }

\- main() should return int, not void

\- std::cout should be used instead of printf

\- std::cin should be used instead of getchar()

<comment><USER3> \- Who cares

\- No

\- No

And you didn't even complain about "stdio.h".

<comment><USER4> If you call it C++, then you should care.

<comment><USER3> Not really. People who feel the need to point out a use of void main every time they see it have nothing important to talk about.

<comment><USER5> On the other hand, people who write void main clearly have nothing to teach about C++, because that plainly _isn't C++_.

<comment><USER3> Apparently they do, because they're teaching it. But I guess you don't care about that, it's more important that you inform everybody about this distinction whereby you have a definition of C++ that requires more rigorous adherence to one of the standards, because it's very important that people be informed of this. We wouldn't want beginners to write programs that use "void main" and work perfectly fine. For that would be bad. No, this tutorial should be retitled. It should be retitled to "Game Programming with a language that's not exactly C++ but is acceptable to Microsoft's C++ compiler." Because that's a correct title. It would have been a perfectly fine tutorial that would introduce students to C++ programming, but right now it's horrible.

I was so glad to learn that people here are aware that C++ says main should return int. Because I was sitting here, wondering if somebody on Hacker News knows that main should return int. And then Ives came along to say, "I do!" That resolved my question. But then as a special treat, somebody else came along to point out that the iostreams library is not part of the STL. Or is it? I sure wouldn't want to forget the distinction between The SL and The STL. For they are different things. I think.

Confession time: One time, I learned that I had once learned some C++ from a tutorial that had used "void main." I felt doomed. I had just gotten over the phase where I thought it was okay not to correct somebody when not every part of every clause of every sentence they said was correct. But then I found that I liked using void main. And then before you knew it, I started writing <stdlib.h> instead of <cstdlib>, and then I used C99 header files, and then I used variable length arrays, and I used vector::data, and I liked it. The next thing you know I found myself running two threads at the same time, wouldn't you believe it? Now I know that what I was using was not C++, but that what I used was an abomination.

</comment></comment></comment></comment></comment></comment><comment><USER6> Learning to program C++ via game development strikes me as remarkably akin to learning to maintain a car by starting on a Ferrari. (Well, aside from the notion that a Ferrari is enjoyable to drive, anyway.)

C++ is tricky enough. Game development introduces additional layers of ugliness and complexity that I think can distract from actually learning to write good, secure, safe C++.

<comment><USER7> On the other hand it is one of the fields where the use of C++ is completly warranted. It is fun and offers challenging problems. I started programming like that and I sure liked it.

<comment><USER6> Completely warranted? If you're doing very-high-end stuff, yes. For the majority of indie-esque games and the stuff you'll be capable of doing when learning to program, and learning to write sane code during your formative stages? Not so much.

C# with OpenTK (or SlimDX, or XNA) or Python with PyGame are both superior choices for that sort of thing.

<comment><USER8> To be fair not everyone is making indie games. Although I wouldn't suggest starting out with C++, and wouldn't suggest it to people wanting to make games for PC as a single developer in a small team, if you eventually want to be a programmer working on AAA PC, console or mobile games you have to know C++ well in order to get hired, even if you primarily work in a different language. C++ is also still required for higher end indie stuff. I don't see that changing any time soon.

<comment><USER6> If they're not making indie games, or are making "higher end indie stuff," they wouldn't be reading an article like this.

<comment><USER8> Eh not necessarily. Someone in high school or college could be reading this article because they want to work on AAA games in the future and need a decent starting point, not because they want to start making indie games right now. You have to learn somehow and the game industry still hires junior programmers.</comment></comment></comment></comment></comment></comment>


People Keep Finding Coins in Their MacBooks and Nobody Knows Why - <AUTHOR> http://gizmodo.com/people-keep-finding-coins-in-their-macbooks-and-nobody-1790872620 <comment><USER2> It's a fix for noise created from vibrations. The most likely explanation is the drive was originally owned by someone else and they stuck it in there as a spacer for vibrations. I know the Gizmodo article claims at least one photo was from someone who bought it from an Apple Store, but that may simply be inaccurate, or maybe it was a refurb model.

<comment><USER3> Maybe a single technician working on repairing warranty/refurbished macbooks before they're re-sold simply had this "trick" as his way to make stuff work.

</comment></comment><comment><USER4> About a year ago I chose to replace my old MacBooks superdrive with a second HD. I found a penny stuck under the plastic covering on mine as well. No penny could have fallen into the slot to get to where it is located, and the device is not refurbished.

The location of the coin is on top of the spindle motor, so I assumed that it was for vibration dampening, and that it was cheaper to put a penny on it than to cut a piece of metal to fit.

</comment><comment><USER5> It's either a calling card from a disgruntled employee, or a vibration dampening shim.

<comment><USER6> The latter was my guess, or it could be used to insure a connection. Many years ago I used to have to wedge a piece of cardboard in my old MacBook battery bay to get it connect properly and stay connected.

Anyway when was the last time a Mac shipped with a SuperDrive? These are old machines.

<comment><USER7> 2016, actually. Just recently phased out.

[http://www.macrumors.com/2016/10/27/apple-discontinues- non-r...](http://www.macrumors.com/2016/10/27/apple-discontinues-non-retina- macbook-pro/)

<comment><USER6> Interesting, so much like continuing to sell the ancient Mac Pro today, they sold the 2012 MacBook Pro for four more years.

<comment><USER8> I remember reading an article not too long ago indicating those machines were still selling well because of how upgradable they were. I will see if I can find a link.

EDIT: here it is: [https://marco.org/2016/01/04/md101ll-a](https://marco.org/2016/01/04/md101ll-a)

</comment></comment></comment></comment></comment><comment><AUTHOR> Is it possible kids just stick coins in the superdrives or has anyone every verified these are vibration shims?

<comment><USER2> I was told there used to be an article online documenting exactly how to fix the vibration issue in this manner, but the article may now be gone (or at least, my friend doesn't know where it is anymore). So it seems extremely likely that it is just a vibration shim.

</comment></comment><comment><USER9> Replaced superdrive and HDD with SSDs and Sugru'ed up the slot long, long ago.

Pretty hilarious that people still bother with spinning polycarbonate or spinning rush.

</comment><comment><USER10> So a device produced overseas has currency inside it of the person that buys it.

I'm call clickbait BS.</comment>


Unfurling these ancient scrolls could destroy them - <AUTHOR> https://www.washingtonpost.com/world/europe/how-do-you-read-ancient-scrolls-too-brittle-to-unfurl-an-american-scientist-may-have-an-answer/2019/07/01/a971f4b8-969c-11e9-9a16-dc551ea5a43b_story.html <comment><AUTHOR> It will be super cool if this works. I can sort of imagine how the software might work in general, but doing it in a wound scroll and all of the layers and orientation for the script on the page just seems amazing.

Just forgetting that this is all carbonized now, just imagining software being able to read the text off a wound scroll itself seems incredible.</comment>


Samsung's Tizen OS Reportedly Full of Security Holes - <AUTHOR> http://www.theverge.com/2017/4/4/15175124/samsung-tizen-security-vulnerabilities-issues-flaws?utm_campaign=theverge&utm_content=chorus&utm_medium=social&utm_source=twitter <comment><USER2> Well, that's _one_ way to "bring the desktop experience" to IoT...</comment>


Why so many Americans claim Cherokee ancestry - <AUTHOR> http://historynewsnetwork.org/article/160700 <comment><USER2> "the number of Americans who self-identify as Cherokee or mixed-race Cherokee has grown substantially over the past two decades."

Assuming completely random mating, the ancestor count of a small group inside a large stable population should double every generation.

"In 2000, the federal Census reported that 729,533 Americans self-identified as Cherokee. By 2010, that number increased, with the Census Bureau reporting that 819,105 Americans claiming at least one Cherokee ancestor."

12% in 10 years, or 33% in 25 years (a modern generation) is less than would be expected by that first-order theory.

<comment><USER3> Yea, this article is weird. Why would a professor lead the piece with a suggestion that a bunch of this students are deluded and then provide essentially zero evidence that this is the case?

<comment><USER4> "In the United States alone, the Cherokee Nation of Oklahoma estimates there are over 200 fraudulent groups claiming to be Cherokee."

The author doesn't go into great detail, but it the estimate is probably correct given the statistics of the situation. The tribes have the tribal roll with the ancestry. You can do further reading on the genetic testing and people's beliefs about their ancestry.

<comment><USER5> Based on my experiences with non-recognized tribes of other affiliations, I'd be willing to best that a lot of those "fraudulent" groups are legitimate Native American tribes, or at the very least organized groups of people with shared Native American ancestry, but ones that are not officially recognized by the US Government.

Yes, there are fake tribes that come out of the woodwork hoping to gain casino rights, but many if not most of these non-recognized groups often accused of being fraudulent have verifiable histories going back 100 or more years, and have been studied by historians and anthropologists (with publications to prove it). It's a shame that such groups are denied the recognition they deserve, even after all that has happened in this country.

<comment><USER6> It is also a shame that casino rights is the form of recognition they seek.

<comment><USER7> It's a shame that casino rights is the only meaningful form of recognition being offered...

<comment><USER4> That is definitely not true. Federal recognition brings a host of abilities for a people to organize including the ability to form a government and other institutions.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I'm from the South and hear this all the time. I have no idea how many people are actually descended from the Cherokee (they were one of the larger groups in the South). I have a different crackpot theory. Historically, admitting you were less than 100% white was a dicey proposition. Sometimes I wonder if there aren't actually a larger than obvious percentage of people who have Native ancestors, but since they were assimilated, their descendants are only dimly aware of it and use "Cherokee" as a catch-all for saying they have some Native American blood in them. I'm sure some people are getting confused or just retelling tales passed down, but the South did have a lot of Native Americans in it. Has anyone researched this?

<comment><USER9> Yeah, I'm from the south and was always told some ancestor was Cherokee. Never really believed it, since it really is the sort of thing most families say. But then 23andme confirmed Native American dna as a small percentage for me. Go figure. It might all be more true than most people think.

<comment><USER10> Well, I have the opposite story. I was always told I was 1/256 Cherokee, but according to 23andme, I have no Native American ancestry -- however, I'm about .4% African. .4% is pretty close to 1/256, so I think the race of one of my ancestors was, um, edited.

I think amttc is on the right track, but needs to take it a little farther.

<comment><USER11> I have a friend with North African ancestry (mother is Spanish) and neither of her sisters show the same (all with 23andme).

At that distance, it's entirely possible you have the ancestry claimed and the ancestry discovered, but the DNA which would show it is absent for your Native American ancestry.

<comment><USER10> Good point. You're right -- it's possible. I don't think any of my other family members have gotten analyzed. That would shed more light on the situation.

Edited to add: well, look at it this way. If one _were_ part African in Alabama in the 19th century, one would be well advised to claim to be part Cherokee, if one's coloration and features were such that one could get away with it. Given that, I think Occam's razor inclines me toward the possibility I suggested.

</comment></comment></comment></comment></comment><comment><USER12> God damn it. That guy needs to learn to spell out certain key points, when writing an article. Maybe he'll consider bouncing his material off an editor from time to time.

      I've long ceased questioning students about the specifics
      of their claims. Their imagined genealogies may simply be
      a product of family lore, or, as is occasionally the
      case, a genuine connection to a Cherokee family and
      community.

      ... help explain why the Cherokees occupy a prominent place
      in our collective historical consciousness.

      ... why so many Americans hope to find a Cherokee in their family tree.

He doesn't come right out and say it, for whatever reason, but the thrust of the article is that such claims are dubious, tall tales.

He needs to add at least one sentence clarifying that he believes most, if not all such claims to be full of shit, and pants-on-head silly, or just plain college student shenanigans.

His article would further benefit from a line or three stating plainly that:

1\. The Cherokee possess the most popular of all Native American tribal names. People who are lying tend to craft their lies around well-known popular things, especially when a well-known thing might be THE ONLY thing they can remember in a subject area.

2\. The Cherokee nation possesses a sympathetic tale as part of the fabric of their historical background. This benefits liars, because it's more difficult to accuse lies upon a person courting sympathy. You better be sure of your accusation, or you'll seem to be a villain amongst the liar's audience.

3\. The Cherokee actually DO have a REAL diaspora of actual credible descendents, larger in size than most other nations. This contributes to a knock-on effect that ties into reason number one, there are more actual Cherokees floating around, thus they are more well-known, and thus remain the go-to Indian name for people who might craft lies to embellish their heritage in casual conversation.

These are the main points I'm gathering from the author's article, although he kind of couches his words in oblique assumptions about the reader.

Maybe he's worried about catching heat over proposing these sorts of ideas.

<comment><USER13> Not saying it was a brilliant article, but I got all three points without having to read it multiple times, and I thought it was quite clear. I liked that he didn't spoon feed the reader with predigested conclusions.

<comment><USER12> I'm complaining about his beating around the bush, not a reading comprehension thing. I like to know where the author stands on the topic at the outset, otherwise the article feels dishonest.

For example:

      I think there are a lot of people lying to
      themselves and others about their own
      ancestry.

Compared to:

      Isn't it interesting that so many people feel
      compelled to form opinions about how we might
      notice that there are statistical variances,
      when comparing observable heritage, as
      compared to reported heritage? I wonder why
      that would be? Some might say these are
      alleged fabrications, but then again this
      could all be very innocent.

<comment><USER13> But that's clearly inferred by this:

        In the United States alone, the Cherokee Nation of
        Oklahoma estimates there are over 200 fraudulent
        groups claiming to be Cherokee. Visit websites
        devoted to genealogy, and one will find scores of
        Americans expressing their disappointment when DNA
        testing contradicts family legnds about great,
        great grandma being Cherokee.

So, first of all, there are groups that outright make fraudulent claims about Cherokee ancestry. Secondly, there are lots of people who have believed — and claimed — to be descendants of Cherokee who discover that they have in fact been mislead.

You could argue that he doesn't provide the evidence (who are these 200 groups, and where do we find these "scores of Americans expressing their disappointment"?), but that's par for the course in a fluffy article like this. I don't see any bushes being beaten around, however.

</comment></comment></comment></comment><comment><USER14> My family tells a story about a distant great^n uncle of mine, who married a Cherokee woman. She had grown up without tables and chairs, as you might imagine, and was more comfortable squatting than sitting. Of course, my uncle wanted his wife to be at the dinner table with him. So he built a stool of such height that she could squat on it and be roughly eye level with her European-descendant family members sitting around the table. And they lived happily ever after.

I like to tell that story any time someone claims that technology pushes people apart rather than bringing them together.

<comment><USER15> When I worked in Singapore, our office building had only western-style toilets rather than the hole-in-the-floor type. So of course many employees had to climb up on them in order to squat.

<comment><USER16> > western-style

The holes in the ground are actually fairly common in Italy.

<comment><USER15> "Western-style" is what everyone called them when it made a difference. (In USA they're called just "toilets"; perhaps Europe is similar?) I've seen the hole-in-the-floor type in a fancy resort in Japan. Is that also the case in Italy? Keep in mind this hole still has standing water and a trap and still _flushes_. It shouldn't be confused with the vault style you see in more rustic locations, with or without a "toilet" seat.

</comment></comment></comment></comment><comment><USER17> "Being part Cherokee in Oklahoma is like being a Cubs fan in Chicago." \--Sarah Vowell

</comment><comment><USER18> I saw a signal for some Cherokee ancestry via 23andme. My family never said anything about it. I've got ancestors from the Appalachian region so it makes some sense, and I'm inclined to trust SNP analysis more than family stories. :)

</comment><comment><USER19> I'm a bit surprised that the benefit of claiming to be Cherokee for the sake of college applications isn't brought up. But overall, the author tries heavily to not take a stand, or insult anybody.

<comment><USER20> A well-known example of this from the recent past:

[http://elizabethwarrenwiki.org/elizabeth-warren-native- ameri...](http://elizabethwarrenwiki.org/elizabeth-warren-native-american- cherokee-controversy/)

<comment><USER21> That site looks super biased, I think maybe wikipedia ([https://en.wikipedia.org/wiki/Elizabeth_Warren#Native_Americ...](https://en.wikipedia.org/wiki/Elizabeth_Warren#Native_American_heritage_controversy)) or news articles would be better sources.

<comment><USER19> I wouldn't trust something specifically named "elizabethwarrenwiki" as trust worthy. But, relying on Wikipedia isn't too much better. Not for politics.

</comment></comment></comment></comment><comment><USER22> As a German: Could someone explain me, why Americans love to be "1/8th something"? There is a high chance that whenever I talk to someone, they say "Oh, yeah, I am 1/64th German!" \- and if I ask them if they know the language or culture (besides Rammstein) or if they visited Germany ever, almost anyone says no.

Is it just one of these safe smalltalk topics, like sports or weather? In the future, should I be interested and ask them about it? Or just say "how nice" and move along?

<comment><USER23> I think it's innocent enough, a country with a huge amount of semi-recent (within 2-3 generations) immigrants is bound to have a lot of people with a bit of mixed heritage, a number of which will be doing a bit of searching for some kind of cultural identity. An "oh really?" and maybe a polite question about which part of Germany their family is from, if they are still in contact with their German family etc will probably suffice.

However there's little excuse for "You're Scottish? Do you know my cousin Kenneth?" to which the appropriate response is "Ohhh _Kenneth_ ... yeah everyone knows him. He's a real jerk" :)

</comment></comment><comment><USER24> A very interesting article along the same lines:

[http://thislandpress.com/2014/08/26/among-the-tribe-of- the-w...](http://thislandpress.com/2014/08/26/among-the-tribe-of-the- wannabes/)

</comment><comment><USER25> Don't you need to be at least 1/4 (or maybe 1/16) Cherokee native American to be able to claim it?

[https://en.wikipedia.org/wiki/Blood_quantum_laws#Tribes_requ...](https://en.wikipedia.org/wiki/Blood_quantum_laws#Tribes_requiring_1.2F4_degree_blood_quantum_for_membership)</comment>


Windows Phone site marked as "may be hacked" by Google - <AUTHOR> https://www.google.com/search?q=windows%20phone&rct=j <comment><USER2> [https://www.google.com/transparencyreport/safebrowsing/diagn...](https://www.google.com/transparencyreport/safebrowsing/diagnostic/#url=www.windowsphone.com)

"Not dangerous

Safe Browsing has not recently seen malicious content on www.windowsphone.com."

</comment><comment><USER3> I'm still seeing this - I wonder what their metric is for figuring out these things.

</comment><comment><USER4> not anymore / not for me.

<comment><USER5> Still seeing it here.

<comment><USER6> Same. Still seeing it.

<comment><USER4> Just checked it, Google.co.uk says it's fine, Google.com says might be infected.

Chrome doesn't give out the malicious site warning on the redirect on either.</comment></comment></comment></comment>


Opsly - sysadmin as a service - <AUTHOR> http://www.opsly.com/

<comment><USER2> How do I apply to be a sysadmin? What kind of experience are you expecting and how are the sysadmin's paid. I'm very interested.

<comment><AUTHOR> If you find out, I'd like to know too</comment></comment>


Politicians Rush to Blame Encryption for Brussels Attacks - <AUTHOR> https://www.techdirt.com/articles/20160322/11200133982/before-we-even-know-details-politicians-rush-to-blame-encryption-brussels-attacks.shtml <comment><USER2> Blaming encryption is probably easier for them than to explain why all of the unprecedented surveillance that has been in place for years failed to stop yet another attack.

</comment><comment><USER3> We really need to get the point across that no government would be able to enforce a law that requires a certain software design (in this case, back doors) in all commercial and free software.

It's the equivalent of requiring people to say or write only certain things. Even China and North Korea do not do that successfully, and they try really really hard.

Our representatives and law enforcement are woefully uninformed about this issue, and it hurts the public because fingers are being pointed in the wrong direction. While we are infighting, terrorists are making strides.

It seems even Obama still thinks there is a way to stop criminals from using encryption, as his Press Secretary Josh Earnest mentions in a daily briefing last Friday [1]

[1] [https://youtu.be/LRR2B5f82e0?t=38m25s](https://youtu.be/LRR2B5f82e0?t=38m25s)</comment>


Indian entrepreneurs in US stuck with temporary, non-immigrant work visas - <AUTHOR> http://economictimes.indiatimes.com/news/news-by-industry/services/travel/services/indian-entrepreneurs-in-us-stuck-with-temporary-non-immigrant-work-visas/articleshow/7811713.cms

<comment><USER2> The article mentions the phrase "when he didn't win the visa lottery...". Just to give people some context ... a few years ago, so many people applied for the H1 visa, that the visa quota finished on the very first day.

I know a student who went to school in Canada and had a good job offer from a large US software company, and was negatively impacted by this (while a Canadian software person can indeed work in the US on a TN visa, an Indian who went to the same school in Canada needs to be on an H1 in order to take that same job). The poor guy got hit thrice. The first time was just the year before the H1 oversubscription ... he didn't have his physical degree in his hands by the time the visa quota finished. The next two times, there was a lottery and he didn't make it :(</comment>


Cold-Boot Attack Steals Passwords in Under Two Minutes - <AUTHOR> https://www.bleepingcomputer.com/news/security/cold-boot-attack-steals-passwords-in-under-two-minutes/ <comment><USER2> discussion of source this article reports about

[https://news.ycombinator.com/item?id=17977897](https://news.ycombinator.com/item?id=17977897)</comment>


Ask HN: How do you change misleading Knowledge Graph information with Google? - <AUTHOR> I work for a college who operates several campuses across the city. Each campus has been verified with Google My Business and lists the correct contact information for that given campus. Within the past two months, one of our satellite campuses has been the one appearing in the Knowledge Graph box instead of our main campus when searching for our college. This has negatively impacted our prospective students since when they search for our school, the map and phone number come up for our small satellite campus.<p>I've tried using the "feedback" link on the Knowledge Graph box and contacting Google My Business reps but to no avail. Can anybody shed light on how I can get the Knowledge Graph box information changed to point at our main campus? Thanks! <comment><USER2> The feedback button will work, but it's best if you organize and consorted effort. Get as many people as you can to do it, and give constructive feedback.

<comment><AUTHOR> Thanks for the advice. I guess we'll have to do a bit of a feedback blitz. Do you have any idea of how long it takes for the changes to be implemented?

<comment><USER3> Highly varies depending on severity.

</comment></comment></comment><comment><USER4> First question needed for potential resolution: Is your campus still the first search result?

<comment><AUTHOR> Our website is the first result, but the Google+ page for the satellite campus is the fourth result – our other campuses Google+ pages don't even show up in the first few pages of the search results.

<comment><USER4> What you should do then, (and I don't know that this will work), is to suggest your organization data using the Schema.org code; and specify your main campuses Google+ (verified business) page in the sameAs.

You can read more about doing that at [https://developers.google.com/structured- data/customize/soci...](https://developers.google.com/structured- data/customize/social-profiles)

While I can't guarantee or even believe whole heartedly it'll work, it will at least suggest to the google crawler what the true information should be.

It may also be helpful to embed corporate contact information using a similar process: [https://developers.google.com/structured- data/customize/cont...](https://developers.google.com/structured- data/customize/contact-points)

Are you willing to reveal the campus just so that I can see or no because privacy concerns?

<comment><AUTHOR> That's fantastic advice and well worth a shot! The school is Red River College, yet when you search for that, you get the information for Red River College - Stevenson Campus (our small satellite campus).

<comment><USER5> You will need about 20 - 30 unique people to provide feedback before Google will notice and take action. The knowledge graph is meant to work organically so its best to look at the source data and fix there first. I also wonder since i'm in L.A., I wonder if the Stevenson Campus is the closest to me...

I would recommend using URL rewriting this - [http://www.rrc.ca/index.php?pid=5841](http://www.rrc.ca/index.php?pid=5841) to [http://www.rrc.ca/contact](http://www.rrc.ca/contact) and mark it up with [http://schema.org/Organization](http://schema.org/Organization)

You may even want to try dedicating pages to each campus with its corresponding contact information. I also notice there is a different domain for Robin Center - [http://www.rrc.mb.ca/](http://www.rrc.mb.ca/) it looks like the same info as rrc.ca.

You should also request a Google+ Page name like +RedRiverCollege [https://plus.google.com/111245383000211941914/videos](https://plus.google.com/111245383000211941914/videos)

</comment></comment></comment></comment></comment><comment><USER6> I found an incorrect/incomplete Knowledge Graph entry for a dictionary definition once, and there was no Feedback option even available for it.

</comment><comment><USER7> Probably best to move your main campus to the location indicated. Google only employs the Brightest People, so the mistake is more likely to be yours than theirs. Also, the fact that there is no 'customer service' contact to be found on their pages is not an oversight.

</comment><comment><USER8> I've gone through the Maps error reporting before with mixed results.

<comment><AUTHOR> I've tried that too... The problem is that this satellite campus is a legitimate location, it's just not the campus that should be showing up as our main location.

<comment><USER9> Which campus should show up as the main one? Notre Dame? I looked at the website and Wikipedia, and I can't figure out if Notre Dame, Exchange District, or Downtown is the campus that should be returned. (This isn't a rhetorical question - I'd like to know the answer.)

<comment><AUTHOR> You're right, the Notre Dame location is our main campus.</comment></comment></comment></comment>


Apple pulls app that let you turn your phone into virtual iPod with click wheel - <AUTHOR> https://www.theverge.com/2019/12/16/21024729/apple-rewound-app-iphone-ipod-click-wheel-web-android-not-available <comment><USER2> Apple really knows how to kill a new craze here. Keeping a harmless iPod simulator on the App Store hardly threatens the sales of iPods these days. (Even though the result of it being pulled probably comes under copyright infringement.)

Even long after their extinction, They still want you to buy the real thing for 100x the original price.

<comment><USER3> It seems frankly ludicrous to claim Apple pulled an iPod simulator for iPhone because they want you to buy physical iPods, especially given that they don't sell physical iPods anymore.

The app seems tailor-made to reproduce Apple's intellectual property (i.e. designs), and it also charged a fee for Apple Music features.

Even the Verge post from last week said

> _It's a clever workaround as long as Apple doesn't pull the app_

If you're using workarounds to avoid Apple rejecting your app, you shouldn't be surprised when Apple ends up pulling your app.

<comment><USER4> It doesn't advertise itself as an iPod clone. What The Verge called a "clever workaround" was the fact that a skin to make it look like an iPod could be downloaded later. Apple is overreaching again, but that isn't surprising. What's surprising is that anybody, including the app's authors, is surprised.

<comment><USER3> The app appears to have been explicitly designed to enable cloning the iPod Classic interface, and making that skin something you download separately was a workaround because it's pretty obvious that it would get rejected if it shipped that way.

I really don't see this as Apple overreaching, especially given that the app is charging people for Apple Music features, which is definitely not okay.

<comment><USER4> > given that the app is charging people for Apple Music features

What Apple Music features is it charging for? That isn't even a thing that Apple complained about.

> The app appears to have been explicitly designed to enable cloning the iPod > Classic interface

The default is not an iPod classic interface. I can just as easily make an iPod classic skin for WinAmp.

The solution, as always, is to simply avoid Apple's arbitrarily restricted platforms.

<comment><USER3> Their own description of the app says

> _We launched an App that let you customize your iPhone to look like a 2000s > era MP3 player._

It's pretty obvious what the intention is. And while I don't know precisely how skins work, it's hard to imagine that they enabled clickwheel scrolling by accident.

> _What Apple Music features is it charging for? That isn 't even a thing that > Apple complained about._

I don't know specifically but even their own blog post explicitly cites this as one of the 3 things Apple pulled their app for:

> _2\. Charging for Apple Music features_

> _This is less unreasonable […]_

</comment></comment></comment></comment></comment></comment><comment><USER5> Isn't it wonderful that we've positioned companies like Apple as this great gatekeeper of what you can and can't make.

Mandatory app stores remain a terrible idea. Code signing remains a terrible idea. We need to push back against this idiocy.</comment>


What kind of developer do I need? - <AUTHOR> Hello, I'm looking do develop what I would believe to be a web-based app. I do not possess the technical skills to create it myself so I'm kind of in the dark as to where to start and what kind of developer I'd even need. The Idea itself is not particularly new or groundbreaking, but I'd like to improve on what's out there. I'm looking to create a site that lets users input data, choose a "theme" or template, and create beautiful infographics based on the data inputted. The user could then further customize colors and logos and finally, give them the image format to download. Users would have the ability to store logos on the site for easy access to customization of future graphics even set up profiles with color preferences....what kind of developer would I need to accomplish this? How could I vet them and make sure they know their stuff? and what would it possibly cost to create something like this? Thank you for your help and experience. <comment><USER2> I'm mostly going to comment on the latter part of your question about vetting a developer for this project.

As you mentioned you don't have the technical skills to create this project yourself, it would be quite difficult to be able to vet someone more reliably than random chance.

Obviously it would make sense for you to ask to see any related projects they've made, but I'd recommend having a technical friend help out with the vetting. Aside from past projects and their contribution to these projects, perhaps ask for a high level breakdown of how they would tackle this project. Have your technical friend to overlook this breakdown should weed out people who'd have little chance of delivering.

Hopefully others can chime in here, good luck!

</comment><comment><USER3> If you have the money for it, I would suggest going with a service like ziptask or gun.io. They will do all the technical heavy lifting for you (figuring out requirements, vetting / hiring, project management, testing). You will likely spend around $15k-30k (very rough estimate) and have your app within 3-6 months. Then you will pay a couple hundred a month in server/bandwidth costs to keep the thing running.

Otherwise, you are looking for a "full-stack web developer". Though I would really suggest going with an agency for a project like this. Hiring and managing freelancers is hard.

</comment><comment><USER4> If you do use a freelancer make sure you set up milestones and have it delivered and hosted and you get source code.</comment>


Objective-C, Ruby and Python for Cocoa - <AUTHOR> http://theocacao.com/document.page/428

<comment><USER2> This is a little bit of an older article and Apple has since been working on MacRuby (<http://www.macruby.org/trac/wiki/MacRuby>) which is poised to replace RubyCocoa. MacRuby adds a special syntax to Ruby to better deal with the keyed arguments. From the docs:

Objective-C:

      NSWindow *window = [[NSWindow alloc]
          initWithContentRect:frame
          styleMask:NSBorderlessWindowMask
          backing:NSBackingStoreBuffered
          defer:false];

RubyCocoa:

      window = NSWindow.alloc.initWithContentRect_styleMask_backing_defer(
          frame,
          NSBorderlessWindowMask,
          NSBackingStoreBuffered,
          false)

MacRuby:

      window = NSWindow.alloc.initWithContentRect frame,
          styleMask:NSBorderlessWindowMask,
          backing:NSBackingStoreBuffered,
          defer:false

<comment><USER3> This is not a special syntax. It's just ruby 1.9 specific hash literal syntax.

<comment><USER4> But it looks like the important thing is that they have found a way to automatically map this syntax to Objective C method names.

EDIT: Or, as the MacRuby docs put it:

"MacRuby has a modified version of the parser which detects calls or method definitions using one regular argument, and other arguments using the key/value pair syntax. It will reconstruct the Objective-C full selector if needed. The method name that will be used in the Ruby VM is the same as the Objective-C selector."

<http://www.macruby.org/trac/wiki/HowDoesMacRubyWork>

</comment></comment></comment><comment><USER5> Cocoa meets Javascript: <http://cappuccino.org/>

<comment><USER6> Cappuccino meets Ruby: <http://github.com/tlrobinson/cappruby>

It's _very_ incomplete... a proof of concept.

The bare bones sample app works, here's the Ruby version:

[http://github.com/tlrobinson/cappruby/tree/master/TestApp/Ap...](http://github.com/tlrobinson/cappruby/tree/master/TestApp/AppController.rb)

and the original version:

[http://github.com/tlrobinson/cappruby/tree/master/TestApp/Ap...](http://github.com/tlrobinson/cappruby/tree/master/TestApp/AppController- old.j)

</comment></comment><comment><USER7> I'm doing a bunch of work in Ruby/Cocoa right now and I am having _no_ problems. Highly recommended. Thoughts:

(1)

ObjC syntax is clearly clunkier than Ruby syntax; you can't honestly compare the two languages without noting that Ruby has arrays and tables as first- class citizens, and ObjC has them only as libraries. You could stop right there; your ObjC code is littered with "dict.objectForKey" and "dict.setObjectForKey" calls, and your Ruby code isn't.

The keyword argument bridge syntax turned me off too, but the reality is that 80% of the pain is due to Cocoa's incredibly verbose method names; for instance:

OSX::NSColor.colorWithCalibratedHue:saturation:brightness:alpha

(2)

You _can_ turn garbage collection on in 10.5 ObjC projects, but it isn't recommended; you lose 10.4 compatibility, and allegedly take a performance hit. The Ruby/Cocoa bridge handles retain/release counts automatically.

(3)

Ruby can call into C/C++ code too; there are multiple FFIs (I've done a lot of work with Ruby/DL) and if you're going to suck it up and write C code wrappers anyways, like you would be in ObjC, you can just write a Ruby extension.

(4)

This argument about "OSX revolves around Cocoa and Cocoa revolves around ObjC" is just emotional. What's the thing you can do in ObjC that you can't do in a Ruby/Cocoa project? Ruby/Cocoa can access arbitrary ObjC objects, open them up and redefine methods, or subclass them. In the unlikely event that I find something that doesn't work in Ruby, _then_ I'll go write the 20 lines of ObjC required to make it work, and call into it from Ruby.

It's 2009. We shouldn't be writing application code directly in C anymore.

<comment><USER8> To be fair, it depends on the application. You might not have to write them, but there are still plenty of applications where memory and speed are issues, and C gives you some really good tools to deal with them, but you're right -- C is not a high level language and shouldn't be used as one. I would go a step further and say that Objective-C also is not a high level language. Most people here would agree, but lots of Cocoa developers see it as the top of their language stack.

When you get serious with it, the Ruby/Objective-C combination has a lot of problems, mainly because the two languages and cultures simply weren't designed to go together. I have some notes on that here <http://programming.nu/rubycocoa-and-rubyobjc> and if you have the patience, a talk online that I presented at Jonathan Rentzsch's C4[1] conference: <http://www.viddler.com/explore/rentzsch/videos/13> MacRuby is a step in the right direction, but in my opinion it's better to use a glue language that's specifically designed for the task (and if you don't like mine, write your own :-) ).

<comment><USER9> I'd like to know what argument you would make to claim Objective-C isn't a "high level language". Despite the fuzziness of the term, I think Objective-C would meet most any bar that didn't specifically require the language to be interpreted. The only thing I can imagine being an issue is lack of support for closures, but a) it's coming to the language, and b) it's not radically more expressive than what objective-c already has to offer.

<comment><USER8> It's relative, and it's a distinction that changes as we make progress. Objective-C is a higher-level language than C, but as you noted, it's not interpreted, and I don't think it would be very pleasant to use as an interpreted language. It is verbose and repetitive (for example, to add a property to an Objective-C class requires you to add three lines of code in three separate places in your source code). And apart from the C preprocessor, it doesn't give us tools for building layers of abstractions that would hide these problems -- except for its handy ability to be used to write the implementation of something that future programmers might continue to see as "high level".

<comment><USER9> I don't think being interpreted matters. It may make your immediate development cycle faster, but that says nothing about long term development. I imagine the Scala guys would argue heavily that being compiled is a huge advantage to the power of that language, and would also strongly disagree that it isn't a high level language.

Objective-C properties are poorly done in my opinion, though you can add one in two lines with a given set of assumptions. But I don't think 1 vs. 3 lines is a meaningful indicator of very much either way; it's a small constant penalty, not some lack of expression at the core of the language.

Being verbose isn't a bad thing, and Objective-C isn't verbose in any meaningfully different way than most other languages. Header files may be a slight inconvenience, but they aren't even strictly necessary. Cocoa, the framework most commonly associated with Objective-C is verbose, and I think its a good thing. 90% of what you do as a programmer is read code, not write it. I gladly pay the penalty of 2x the keystrokes in return for half the mental overhead in reading the code. In reality, the penalty is less than 2, and the benefit may be more than 2, but its a matter of opinion.

You say you wouldn't like Obj-C as an interpreted language, I wonder if you're aware of Objective-J (<http://cappuccino.org>). It's essentially an interpreted version of Objective-C. It doesn't have header files, and it doesn't do properties the same way (it only does code generation for accessor methods, nothing else, but that generation is one extra keyword). It's interpreted, it has closures, and it generally has every feature JavaScript already has, plus dynamic message sending and classical inheritance courtesy of the Obj-J runtime (which is functionally equivalent to the Obj-C runtime). I'm biased, but I think its a great language.

<comment><USER8> Hi Ross, little things add up, and they are easy to fix in higher level languages (with macros). I consider programming to be a process of building abstractions, and I think the best high-level abstractions are concise.

I like to quote Peter Norvig on the subject of interpreted languages. But in his quote, he uses "interactive." Maybe that's a better word:

"Which way would you rather learn to play the piano: the normal, interactive way, in which you hear each note as soon as you hit a key, or "batch" mode, in which you only hear the notes after you finish a whole song? Clearly, interactive mode makes learning easier for the piano, and also for programming. Insist on a language with an interactive mode and use it." - Peter Norvig, Teach Yourself Programming in Ten Years.

I've seen Objective-J and generally have good feelings about Javascript. But it's not particularly strong on one other criteria that I like to apply, which is that it should be easy to mix code written at different language levels.

<comment><USER9> I see the value in being "interactive", but it isn't enough to rule out any other factor in choosing a language.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> I think this may be validation of Microsoft's approach with the .NET platform since one its core conclusions seems to be that Cocoa is too closely coupled to Objective-C to make alternative dynamic languages attractive as they don't "fit together nicely". The other line of discussion it goes down is whether or not Objective-C is the best option, but that's always going to end up being a matter of taste.

<comment><USER11> I don't think he's passing judgment, saying that Cocoa is _too_ closely coupled, I think he's just comparing why it works better with Objective-C than with Ruby. Amongst other interesting projects are Nu, a Lisp designed for Cocoa and Objective-C; and MacRuby, a fork of Ruby that uses Objective-C's runtime and garbage collector, and language tweaks for named arguments.

<http://programming.nu/>

<http://www.macruby.org/>

<comment><USER7> He doesn't really present any evidence as to why it works better with ObjC than Ruby, though.

</comment></comment></comment><comment><USER12> My biggest problem with Ruby for Cocoa work is that I enjoy the Smalltalk message passing syntax (keyword) more than the C++ syntax (object.name). The hacks to make it work right in Ruby do not look quite right.

Objective-C fills the place C++ or C# fill in the .NET platform world. It would be interesting to see a language built for Cocoa that fills the VB role.

<comment><USER7> I had the same reaction, but ObjC's method names are so bad that I just wound up writing my own Ruby wrappers anyhow, so most of my code is written in Ruby idiom.

ObjC does _not_ fill the role C# fills in .NET. ObjC is still C code. C# doesn't have pointers. It doesn't segfault. Every object has reflection. There aren't aliasing problems. ObjC fills the place C++ fills in Win32; we still need a C# replacement.

<comment><USER12> Well, I was going with the C++/C# is the "do more" option and VB is quicker / easier.

Just a note: ObjC has reflection.

<comment><USER7> For ObjC objects.

</comment></comment></comment></comment><comment><USER13> Interesting read.</comment>


Marc Andreessen: How To Hire The Best People You've Ever Worked With - <AUTHOR> http://blog.pmarca.com/2007/06/how_to_hire_the.html <comment><USER2> _I am unaware of any actual data that shows a correlation between raw intelligence...and career or company success_

Declarations of personal ignorance don't really prove anything. Such data, in fact, exists.

He goes on to list a bunch of voodoo hiring practices (viz, someone who faced adversity) and I won't criticize him for it: In the end, that's how every company hires. The government, to a degree, even forces its own set of voodoo traditions upon companies. People don't object too much: When you actually have that big pile of resumes in front of you, you realize that most people aren't all that distinctive. I've been shocked by how many CS grads DON'T HAVE WEBPAGES. Good god, people.

Of course, you know what will get you hired every time? If someone interviewing you liked you personally.

<comment><USER3> _Of course, you know what will get you hired every time? If someone interviewing you liked you personally._

I know I'm going out on a limb here, but I bet that in most companies 85% of the hiring decision comes down to this, and the urgency of filling the position. Affinity hiring also comes into play much of the time, i.e. people hire others of the same sex / educational background / interests as them.

If an interviewer personally likes you and believes that you are similar to them, the whole equation is flipped around: they have to find reasons NOT to hire you.

</comment></comment><comment><USER4> Good suggestions.

His notion of how Google hires (by degree) is off though. Google likes to talk about all the PHDs, but most engineers there don't have one.

</comment><comment><AUTHOR> _Pick a topic you know intimately and ask the candidate increasingly esoteric questions until they don't know the answer. They'll either say they don't know, or they'll try to bullshit you._

What if they're just trying to give you their educated guess? That can be valuable, it can also be misinterpreted as bullshit. I prefer to just make sure a candidate is psychologically able to say the words "I don't know" at some point.

</comment><comment><USER5> His suggestions are somewhat similar to Joel's "Smart and Gets Things Done" rule:

<http://www.joelonsoftware.com/articles/fog0000000073.html>

In fact, I believe his new book that came out very recently is all about recruiting.

</comment><comment><USER6> I really enjoyed the post, especially the fact that he focuses on some basic basics such as: a documented hiring process, interview questions, and a skills demo.

It seems like with all the hectic-ness of a startup these basics are often dismissed.

</comment><comment><USER7> _First, drive._

I agree with what he says. What I would like to see him do is to actually suggest ways to follow his suggestions, and some examples of how he actually followed his philosophy. I've asked him in the comments about this.

Such ideas are echoed loudly in business articles, leadership articles, programming articles, and college admissions articles. However, what ends up happening is people still hire those who are "like" them. I've often read many publications and felt like the logic made sense. However, the actions by those people and organizations were heavily biased.

I've often read 'literature' and have known that I am that person the organization is looking for. However, people then come up with some crazy reasons to reject those who are different: such as, "if that person was X, he would have done Y by now." All of a sudden, you throw that person's drive and achievements in many different fields out the window, and instead choose based on arbitrary metrics most familiar to them.

It's almost like the publicity department and the actual selection committees are two different sets of people... which usually, is actually the case.

So, while Marc's observations (similarly echoed by other publications and blogs) are true, the only way to apply these things is to follow Paul's advice: move to wherever the action is so people meet you personally. I'm learning that is the best advice to follow, whether you're applying to college, a job, starting a business, looking for partners, or whatever else.

 _Second, curiosity._

Now that Marc mentions that he likes well-rounded individuals with all sorts of backgrounds and a lot of proven drive in many different fields, he says curiosity is next important.

He mentions that somebody applying for an Internet company is supposed to have heard about REST, the Facebook API, Google's API, etc.

He makes two assumptions in this section:

1) all the best developers have all tried to create a social network with Ruby on Rails in the past 6 months and know about those technologies!

2) if you're young, then therefore you must be using Ruby on Rails to create a web application that implements Google Maps and Google AdSense!

That advice is going to eliminate 90% of smart programmers out there. What if they're Windows programmers (probably most of the people out there?) Now, before startup school, I still knew about Amazon S3, REST, and some of Google's API. But I didn't know about techcrunch, or have any interest in creating web applications until I attended startup school. Somebody driven like me, has easily analyzed some of the top frameworks and played with the Facebook API by now, and has had no problems creating a tool in the framework. But I think that's what other people would be able to do, as well!

What he's describing is checking for fluency in the "silicon valley scene", not for 'curiosity'. That's great, but at least acknowledge that.

Since I am curious, I applied to Startup School and am now more fluent in the "silicon valley scene" because of Startup School, news.yc, and techcrunch. But I couldn't have known web apps were feasible without hearing about those sources.

The problem is, his interpretation of what curiosity is, is going to take all those people with "drive" and eliminate them from consideration.

In part 1, he says the previous careers and experiences don't matter, but what the person was able to accomplish on his initiative. Then in part 2, he holds the person's current job against them. To paraphrase: "If they are at that job, then maybe they don't really want to work for a cutting-edge Internet company, after all?"

HELLO! THAT'S WHY THE GUY APPLIED TO YOUR COMPANY.

I see colleges and organizations say they are looking for those well-rounded, self-driven people who are curious and successful in many different fields, saying that what you do matters more than where you came from, then going right on and worrying more about their college ranking in US News and World Reports, or selecting people with an impressive college on their resume, or those who are similar to themselves, and completely disregarding all of the real-world metrics of success they themselves defined in their promotional literature.

The reason given? "If that person was X, he would have done Y by now." No--if that person has been successful in many different areas, and you like those that overcome difficulties, then what you're saying is contradictory and self- fulfilling.

 _Third, ethics._

I agree with another YC user who says that there is no absolute knowledge. If somebody tries to explain something they know in the best way they can, it doesn't mean they have no ethics. In fact, I would say that's a disservice to the company to judge people like that.

 _Do basic skill tests.

It's amazing how many people come in and interview for jobs where their resume says they're qualified, but ask them basic questions about how to do things in their domain, and they __flail_ _."_

If you're in agriculture, they may be a good candidate.

 _A lot of people come in and interview for programming jobs who, at their core, can't program.

And it's such a breath of fresh air when you get someone who just goes, oh yeah, a linked list, sure, let me show you._

Why does he treat young people like they are morons? I would expect somebody who is 24 to understand good UI design, understand the target market, have completed and sold his or her own shareware, understand that results and a quality product matter more than linked lists.

As far as programming goes, I would want someone who can build something without errors as they go along. Somebody who understands that criticism from those not in the target market don't matter whatsoever. Somebody who is more concerned about helping to make the world a better place than trying to create the coolest algorithms ever. Somebody who has no problem talking with the actual target market and bouncing ideas, talking to the users, etc.

That's just what is expected. For a breath of fresh air, it would be cool if the person has used similar technology in the past, as that wouldn't be too important.

In conclusion, I've asked Marc to write some examples where he chose driven, successful, well-rounded candidates who overcame some barriers and different careers (what he writes about in part 1) without penalizing them for not knowing about what's hot in the Silicon Valley right now, or holding the fact that they're trying to work for your company against them--please assume people are intelligent, and if you know they're hard-working and they want to work for your company, then why hold that against them?

It's simple insecurity--similar to somebody thinking that if a hot girl hits on them, it must be because she has every single STD. "How dare these smart and driven programmers want to work at this company or attend this college? This is an outrage! They must be applying to this new and very challenging environment because they are lazy and not curious whatsoever!"</comment>