Universities are also to blame for the GOP's 'grad student tax' - <AUTHOR> https://www.washingtonpost.com/news/posteverything/wp/2017/11/29/universities-are-also-to-blame-for-the-gops-grad-student-tax/ <comment><USER3> My wife is graduating from a PhD program and all her friends spam social media with "Republicans making my taxes go up!" posts.

News Flash - universities claim they pay _way_ more than a grad student's stipend, then get some sort of tax break by "gifting" the tuition. So if tuition is $50k, and pay a $30k stipend, total compensation is $80k - <USER2> though a student only gets $30k salary!

Why doesn't the university just say the tuition awarded to grad students is $100k? $500k? $1million? Who cares? It doesn't really exist anyway!

In reality, they should "award" grad students $0 in tuition and pay them like what they are - employees (and deeply exploited employees at that!).

EDIT - Sure, PhD students _might_ cost more than they are paid (although I seriously doubt it given the 80 hour weeks, classes taught, and metric ton of bullshit my wife put up with). Regardless, pretending that somehow my wife is being paid $80k and the university is doing her this big favor is a ridiculous. Universities should figure out how to fund the supposed costs some other way than through a giant, made-up tuition bill that's waived. Universities are full of the smartest people on earth, _surely_ they can figure out how to give grants properly without this insane accounting maneuver.

<comment><USER4> We've beaten this to death in other threads, but that's not how it (often) works.

Grad students usually don't pay the tuition themselves, but someone often does. In the sciences, this often comes in the form of training grants from the NIH or NSF at the beginning of grad school, followed by individual grants to the student (e.g., NRSA) or advisor later on. Some people also get funded by private foundations.

These funders aren't going to pay $1M per student, but they might very well pay $40k. So...the university sets tuition at $40k, takes that money when it can, and waives it when it no one else will cover it. Clearly, some kind of funding is required to put on courses, organize seminar series, and things like that.

None of this is to deny that academia is broken in many ways, but it's not broken in the way you are claiming.

<comment><USER5> >Clearly, some kind of funding is required to put on courses, organize seminar series, and things like that.

Other countries manage to do all of those with a fraction of the cost of US universities. Courses should be paid for by undergraduate students tuition, grad students attend only a handful of courses throughout their studies. Universities already take "overhead" money from the NIH or NSF grants, the "tuition waiver" is just another way to get even more "overhead" than they would otherwise be able to justify.

The real problem here is the cost disease, the fact that US schools spend much, much more than schools in other countries, for no apparent reason.

<comment><USER6> The US actually does reasonably well in certain sectors -- many non-flagship state schools provide a decent undergraduate education at approximately the same cost as German universities.

The in-state tuition at Missouri State University is $7,306 (yearly!), which is actually cheaper than the typical German education. Portland State is $9,030. I choose those because Missouri and Oregon subsidize less than other states, so tuition is closer to true spend, and I'm too lazy to calculate true spend.

Germany's excellent mid-range public transit and relatively dense population makes a big difference in terms of _total_ cost (including room and board), since many more Germans can live at home during university. But those things are more attributable to infrastructure and especially geography than cost disease.

(The case of elite private universities is pathological. Call it whatever you want, they're just charging what they know they're worth. But they're also extremely atypical -- the US has _A LOT_ of universities, and they have different sets of problems. Central Western Flyover State University does not suffer from the same problems as the Ivy League)

<comment><USER7> >>> The in-state tuition at Missouri State University is $7,306 (yearly!), which is actually cheaper than the typical German education

No it's not. $7k+ is not a "deal", it's outrageous.

<comment><USER6> _> No it's not_

"the average cost of an undergraduate degree in Germany is $32,000, PAID FOR BY THE STATE" [1] (emphasis mine)

7306 x 4 = $29,224 < $32,000.

Math!

Notice I put some caveats in my original post -- US states do spend _some_ money per pupil in high ed, but those numbers are relatively small and rapidly shrinking. Tracking state cash to specific schools is pretty hard, I wasn't able to do it, so instead I just chose states known for relatively low per pupil higher ed spending.

It is possible that the schools I mentioned are more expensive than universities in Germany. But not by much.

Also. Parent claimed that education in the US is expensive in absolute terms, insinuating waste. No one is disputing that students in the US have to pay a lot for their education. But I am disputing the common myth that all colleges in the US are absurdly expensive -- in absolute terms -- compared to universities in other countries.

[1] [https://www.marketplace.org/2015/03/31/education/learning- cu...](https://www.marketplace.org/2015/03/31/education/learning-curve/how- german-higher-education-controls-costs)

</comment></comment></comment></comment></comment></comment><comment><USER8> University accounting is like Hollywood accounting; mostly it is just a game that is played on paper to circumvent the spirit of various other rules. I seriously doubt the tax plan will collect anything from grad student tuition wavers, because universities have various alternatives to move the money around without forcing students to pay unaffordable taxes. The only real purpose of PhD tuition is to raid grants coming in to engineering and science departments to pay stipends for humanities students, and there is no shortage of creative ways to raid grants.

</comment><comment><USER9> > It's not the norm for PhD students to pay any tuition.

Ok if it's not the norm, why go through the charade? Just make the tuition $0

EDIT: Ah, found it in article - because they think IRS will charge them anyway. Well, ok, let IRS then charge them and see what happens.

> As the university bulletin explains, "for a standard [research assistant] > appointment in addition to the salary, the grant pays half of the tuition.

Yap happened to me. Got a grant and a large part of it evaporated because it went to pay for my "tuition". Well there we go. Everyone is upset at the government, why aren't they upset at the universities.

Let's check Yale's (the article talks about it) endowment for 2017. $27.2B - nice. How about they use that to pay a higher stipend to students instead of $30k for lab work, how about pay them $100k. And maybe Universities should stop skimming so much off of grants that are often coming from government labs.

But of course it is easier and more fun to get the grad students to sit on the floor and yell "Look what Trump just did to us!". Makes for better news at least.

<comment><USER10> Endowments are not slush funds. They're supposed to last forever and you can't just withdraw money whenever you feel like it. There are other savings to be made in administrative overhead that could cover higher salaries without touching the endowments.

<comment><USER9> > Endowments are not slush funds.

I didn't say they are.

> They're supposed to last forever and you can't just withdraw money whenever > you feel like it.

They are controlled by a board and no you can't just tie them to a corporate credit card and swipe it left and right. And some endowments are restricted based on the donors' requirements (a common one is "use this for one particular sport").

However using endowments to pay for tuition is also not unheard of. That's what fellowships or tuition endowments are.

The bottom line a university with those kind of resources can find a way to pay students a bit more. They are not innocent victims attacked by the evil government which is how the issue has been presented in the media. This article explains things in more detail and is more balanced, that's why it kind of stood out.

</comment></comment></comment><comment><USER11> I asked a friend who recently completed a PhD about this, and he was pretty scathing about the UC system; he gave the same explanation as the OP.

TLDR: the reason the universities do this fake tuition fee plus rebate combination is basically money laundering; their grant money can be spent on paying for students, but not on capex like building new campuses. So by artificially inflating their top-line tuition fee spend, and then clawing most of it back in the form of a rebate, they are able to repurpose grant money for other expenses.

The problem with this situation is that it's actually not in the universities' interests to help grad students; their best play is to let grad students get ground into the dust a bit more and then point at how awful the Trump administration is, knowing that the Republicans will get the blame. In a sense, the worse it goes for students, the better, as it increases the likelihood of a concession that enables the universities to continue their money laundering. However hard it is to be a grad student in the US, there's still a lot of competition for each one of those low-paying grad student spots, so even if demand for those jobs goes down a lot, the seats will still be filled.

<comment><USER12> > However hard it is to be a grad student in the US, there's still a lot of > competition for each one of those low-paying grad student spots, so even if > demand for those jobs goes down a lot, the seats will still be filled.

Yes, but grad students aren't fungible commodities; if the best grad students with the best choices don't want to go to US schools, it will impact the quality of research, the ability to attract top talent at other levels, the ability to attract funding, and the ability to generate value through research (patents, etc.), as well as the quality of graduates and their future income potential, which affects things like likely future growth of endowments.

Your analysis of the Universities' interest is correct, in terms of financial interest, only in the shortest possible term, which might be key for the kind of for-profit public firms that live and die by the next quarterly report, but most universities aren't like that.

<comment><USER11> > most universities aren't like that.

I hope you are right, but I'm not so sure. We'll see I suppose.

<comment><USER12> The structural incentives are different, as they are mostly private or state- established quasi-private nonprofits; they don't answer to shareholders who buy and sell continuously and especially based on quarterly reports.

</comment></comment></comment></comment><comment><USER13> I worked in the administration of a flagship state university. Instead of spending millions of dollars on salaries for bogus administrative positions like 'Senior Vice President of Strategic Initiatives', put that money towards grad student salaries and bringing down general tuition.

<comment><USER14> That's not how you win friends and influence people, to coin a phrase ...

</comment></comment><comment><USER15> After reading through the article, it sounds like the tax treatment and accounting for PhD students is a mess. If anything, the new tax bill simplifies it.

<comment><USER16> The problem is that it simplifies it abruptly, for no good reason and in a way that will be more directly problematic for students than for the giant institutions they work for.

<comment><USER17> Then maybe they should strike.

Remember strikes?

<comment><USER18> Striking works when your employer is the one instituting harmful policies. In this case I don't think it would help the students at all.

<comment><USER17> Institutions skimming sometimes up to half of grants is basically theft and using grad students as super-cheap skilled labor is exploitation.

This should be the straw that breaks the camel's back.

</comment></comment></comment></comment></comment><comment><USER19> TLDR: _They could still change course in a way that would moot the tax bill: They could recognize that graduate student workers add value and stop charging tuition._

And that's what they'll do, assuming the changes are passed into law. They'll find some other line item in the grant or overhead calculation to cover that expense. It's all a shell game, which is why I believe that the tax code should be vastly simplified. It's too easy to navigate around any individual provision, if you can afford to pay someone who knows how (and universities can).

<comment><USER4> The thing is that most of this money is coming for the feds already, so the net result of all this will be close to zero (except for screwing over a bunch of people who are already in pretty precarious situations).

</comment></comment><comment><USER20> There is an easy solution to this problem.

Go to Germany.

[http://www.bbc.com/news/magazine-32821678](http://www.bbc.com/news/magazine-32821678)

Were I young and starting college again, I would be gone.

<comment><USER21> This is the important point - the US has spent the whole year handicapping itself in the competition for global talent. The effects of this will be felt in a decade, and nobody will remember where we went wrong.

<comment><USER22> The US academic system has been growing increasingly dysfunctional for a decade; this year is just more of the same.

</comment></comment></comment><comment><USER23> > _Although at Yale University, we actually bring in incomes around $30,000 > per year, we'd be taxed like people who make $70,000. The hole this would > blow in the individual finances of graduate students would make advanced > research impossible for many. I could wind up with $11,014 — more than a > third of my actual take-home pay — going to taxes. This would mean I'd owe > four times my current tax bill._

I'm surprised that someone making 30k would pay any income taxes, TBH. I'm not sure where the $11k number comes from, but I'd be curious to see how it would be that high with the larger standard deduction that the tax bill proposes. Not saying it's wrong; just saying there's no support provided and it seems a bit high. Note: I am a (former) tax lawyer.

<comment><USER4> I worked it out here[[https://news.ycombinator.com/item?id=15625353](https://news.ycombinator.com/item?id=15625353)] for the current tax regime.

Yale's tuition is actually a bit more than $40k; they quote $47600 for this year.

I believe the GOP plan replaces the current standard deduction ($6350) and personal exemption ($4050) with a $12,000 standard deduction, but the first $90k are taxed at 12%, instead of including 10% and 15% brackets.

So...12% of ($30,000 stipend + 47,600 tuition - 12,000 deduction) is $7872. Connecticut (where Yale is) also has an income tax that's 3% of the first $10,000; 5% of the next $40,000, and 5.5% of the amount between 50k and 100k. Assuming tuition is also subject to state tax, it works out to 10000 * 0.03 + 40000 _0.05 + 27600_ 0.055 = $3,818.

That works out to a total of $11,690 from take-home pay of $30,000. Ouch.

<comment><USER23> Thanks for taking the time to do the math. It would be interesting to see if various states put "adjustments" in place to back out the tuition from income, for state law purposes. In the event that this goes through at the federal level, I would imagine several states (CA, NY, MA) would do this in a heartbeat.

</comment></comment></comment><comment><USER24> > It would be preposterous to bill us for this — akin to asking medical > residents to pay the hospital for the right to train there.

Interestingly, this historically was the case, and continues to be the case for some residencies in the United States. This provides support _for_ assessing tuition as opposed to treating students like employees.

</comment><comment><USER25> Will this also affect scholarships at the undergrad level? i.e. need based aid or merit scholarhips?

Law school as well has a lot of these. The articles focus on grad students, so it hasn't been clear if tuition rebates at other levels are affected.

</comment><comment><USER26> Maybe the entire purpose of this tax change is to kill both research and the universities? The GOP seems to generally be opposed to both. Make it impossible for the grad students to survive, that means less grad students so less research gets done, and the university gets less research funding and less royalties from patents. Seems like a clever indirect way to kill two birds with one stone, like something a politician would think of.

</comment><comment><USER27> What is also missed is how much universities are dependent upon international graduate students because they pay the most. Then when those students demand GTA's the universities dream up new, costly classes, labs, and recitations, for no credit, which are not necessary to graduate, but are forced upon the undergraduates and go towards padding the GTA budget.

</comment><comment><USER28> Hard to sympathize with a blue blooded yalie.

</comment><comment><USER29> Nobody but the GOP is to blame for what's in the GOP's bill.

</comment><comment><USER30> I've edited my post to better illustrate my opinion.

I don't have any opinion on whether or not PhD students are employees or not, however, what I do want is consistency. So if PhD students are indeed students, yet receive a massive tax break in the form of "free tuition" (contrast this to imaginary undergraduate working for a college, who receives income from the college from a job and has to pay post-tax income for tuition) then undergraduates should have the same benefit (that is, tuition reduction from pre-tax income, if they work for the school that they go to).

That's it.

<comment><USER31> Ph.D. students, in the sciences and engineering at least, spend the majority of their time doing research that benefits the university. Much like professors, they have teaching obligations, make research contributions, and generally work to advance their field. While they are labeled students, the day-to-day life of a Ph.D. student looks more like an employee than a customer. This is why there's been a push to unionize, and why even charging tuition in the first place is suspect.

<comment><USER30> Indeed. If it looks like an employee they should be paid like an employee.</comment></comment></comment>


Too Much Targeting + Too Little Fungibility = Minimal Revenue for Facebook? - <AUTHOR> http://www.blogation.net/2009/05/too-much-targeting-too-little.html

<comment><AUTHOR> This does raise an interesting question; how do you reconcile the conversion power of highly targeted advertising with the realities of running massive nationwide or global campaigns?</comment>


Ask HN: Intellectual property 101 - <AUTHOR>

I live and work in Florida, have not signed any sort of IP agreement with my employer, and am now wondering about the implicit agreement (if any) between myself and them regarding code and the ideas in the code.  Is it generally true that a company may own the program itself (code), but not the ideas contained therein (unless explicitly stated otherwise in a signed contract)? <comment><USER2> I'm not a lawyer, but I just went through a round with one on a similar issue. In my jurisdiction (which is outside the US) the principle was that code was protected, and ideas were not (unless patented), BUT if I went ahead and built a product that was suitably similar to one I had worked on before under an employment contract, the burden of proof would be on me to prove that I did not copy the code (and thus it was a good idea to throw in some novel features, and use a different programming language/framework/platform).

Still: spend the bucks and ask a lawyer, if the issue is relevant to you. Better to have too much legal advice than too little (believe you me.)

</comment><comment><USER3> The company holds copyright to all the code you write on company time.

In theory, abstract ideas in the code are not patentable. Patents are supposed to be specific embodiments of ideas. In practice, you totally need a lawyer if you or the employer are considering patents.</comment>


"Clock boy" Ahmed Mohamed sues Irving schools, police for wrongful arrest - <AUTHOR> http://arstechnica.com/tech-policy/2016/08/clock-boy-ahmed-mohamed-sues-irving-schools-police-for-wrongful-arrest/?comments=1 <comment><USER2> before his "invention" was thoroughly exposed as a fraud--eg, there are youtube videos showing its faithful reproduction in under a minute from readily available components--Ahmed Mohamed, during his numerous television interviews, repeatedly referred to the clock-in-a-box as "my invention"\--for instance, on Good Morning America, he said "this wasn't my first invention and it won't be my last"

AM's father--an odd cross between a muslim apologist and a Kardashian--said numerous times during television interviews that his son had never been in trouble before this incident.

in fact, AM had had been suspended numerous times during the previous two years. Likewise his older sister had also been suspended for a "bomb"-related incident in the same school district three years earlier.

and the racist school AM attended? less than 10% of the students at that school are white; The school's valedictorian the previous year was Muslim girl who was also quick to disagree with the characterization of the school as anything other than accommodating to Muslims: "…Mac is a place where there is no or very little prejudice." ([http://www.breitbart.com/texas/2015/11/25/muslim-former- texa...](http://www.breitbart.com/texas/2015/11/25/muslim-former-texas- students-unexpected-revelations-clock-boy-ahmeds-school/))

</comment><comment><USER3> There are a bunch of sources for this story, which I mentioned in submitting my link, and I'm not a fan of Joe Mullin's approach to the article, which is why I called him out in the comments section over there.

There are two sides to every story. Running with the narrative that Ahmed's family has put forward ignores that the ISD & City were prohibited from responding due to existing laws. Like HIPAA for students.

This lawsuit might pull that plug.

</comment><comment><USER4> I honestly don't know how to feel about this. I'm really happy for Ahmed for getting the justice and recognition he deserves, and for sure, suing for $15-mil would be hard lesson for the police and the school.

But suing for that big, even after all the coverage and press he's already gotten (plus the gifts and scholarships he's been granted), surely throws this whole hullabaloo under a different light.

<comment><USER5> Recognition he deserves, what exactly did he do worthy of recognition? Is his family's pressing of the issue for additional fame and fortune not indicative of their true intentions? Perhaps we should just ignore the fact that his father has twice run for President of Sudan, and that their family friend Anthony Bond, the founder of the Irving NAACP was the first person they called after Ahmed was arrested, suggested the family call the media. Then the family left the US to live in Qatar, they're in the states doing a media tour.

Edit: For more in depth coverage of the family [https://www.washingtonpost.com/lifestyle/style/a-year-ago- ah...](https://www.washingtonpost.com/lifestyle/style/a-year-ago-ahmed- mohamed-became-clock-boy-now-he-cant-escape-that- moment/2016/08/02/2b8650be-484b-11e6-bdb9-701687974517_story.html?tid=sm_tw)

<comment><USER6> The attention deserved would seem to be scorn, given the apparent history of pranks and trouble-making, combined with his family's glory-seeking as well as unstable behaviour. Further, there was nothing inventive or experimental about the clock: all he did was gut an existing clock and put it in a pencil case.

All indications are that the punishment was justified, and the family is simply capitalizing on the incredible and racist double standards of the western world today: muslims can do no wrong.

<comment><USER5> Today's media decide the story before any of the facts are known and push whatever narrative they seem fit. Problem with this is most often when the facts come in the subject is not wearing the halo the media first painted them with. Ultimately the narrative falls apart and the media rarely offers a follow up, the majority of the public goes on believing the first version of the story they were sold

<comment><USER6> I wouldn't even say first, I'd say they believe the version they _want_. It's all about echo chambers these days, one need only look as far as the modern (american) college campus, tumblr, facebook, twitter, etc. Anything that isn't devout worship and support is now "harassment" and they have to flee to their safe spaces. The mere concept of civil discourse and disagreement, together, is intolerable to these children.

<comment><USER3> A big "Yuuuuup" to this thread of rebuttals / context. I'm completely pissed off at media entities for refusing to acknowledge the school district was legally prevented from responding. Bringing this lawsuit is, to me, without a doubt the worst possible thing the family could do. Now all the narratives they could prevent from hitting the media will become matters of public record. In my personal opinion, I don't think a jury will be sympathetic at all - and probably quite the contrary - it's as though a lesson wasn't learned and is being used as an opportunity for exploitation. As Hank Hill was fond of saying, "That boy ain't right" and Karma is owed its due.</comment></comment></comment></comment></comment></comment>


Hackerly proposals for fixing U.S. politics (compiled by Lessig) - <AUTHOR> http://bostonreview.net/BR35.5/lessig.php <comment><USER2> TL;DR The problem wont fix its self. The system will prevent solutions that limit it. Nothing will change until you do something. That something needs to be withing the current rules of the game.

What I find most amazing about any analysis piece on the problems of democracy and what to do about it is that they are almost always self-defeating. By this, I mean the very proposal to solve the problem prevents the problem from being solved.

The article is correct about what (one of) the problem is. Institutional corruption is analogous to the principal-agent problem except the issue is the asymmetry influence, not information.

But suggesting that the existing 'system' recognise the problem and then take action against itself is pure naivety. If politicians, those empowered by us to represent us, are being corrupted by special interest enough not to represent our interests, then those same special interests are going to ensure that measures to restrict their influence are thwarted. The system can't be changed from the outside without revolution, and revolution won't happen until things get really bad (and then generally turn out just as bad later)

The problem of special interest can only occur when the net benefits (expected outcome - cost of lobbying) for special interest groups exceed the net costs for individuals to fight it. Sadly, the benefit to the few is great and despite a net social cost, spread amongst the population the cost to the many is little.

The only way to solve the problem is to do so in a way that doesn't change the system. One way of doing this (and the only viable option I can think of) is to form a non-partisan political party who's only policy is to do what the electorate tells it. The candidate signs a legally binding contract to vote according to the will of their electorate and some kind of public/electronic forum allows issues to be discussed and voted. As long as everything is sailing along nicely, you wouldn't have to have any involvement if you didn't want. But, if a bad law is proposed (SOPA comes to mind), then there is no way it could pass if the majority was against it.

I'm sure that there will be opposition to this - it is devolving power to the populous and making politicians simple spokespeople, not deciders of the public will - but isn't this what #occupy needs? A way to use the existing system to devolve power to the 99% (well actually to the 100%).

<comment><AUTHOR> The players within a game can be acting in a way they find distasteful, but which is nonetheless required of them by the rules. Students can be compelled to cheat if they perceive that it is widespread. Professors inflate their grades so their students are not disadvantaged upon graduation. Journalists "dumb down" their writing in order to better compete. Cyclists take dangerous drugs in order to stand a chance of winning against others they believe to be doing so as well.

In these tragedy-of-the-commons types of scenarios, all can be willing to agree to a change of the rules, so long as no actor gains immediate "unfair" advantage.

It's my personal opinion that most people in D.C. are fundamentally smart and good-hearted. Unfortunately, the euphemisms of spin constitute their thought processes. This, organized by the corrupting influence of money, has led in aggregate to delusion and dependency.

Rules-changing legislation is, hopefully, possible -- though perhaps only after beltway-types can be freed from self-deception.

<comment><USER2> 'In these tragedy-of-the-commons types of scenarios, all can be willing to agree to a change of the rules, so long as no actor gains immediate "unfair" advantage.'

That, sadly, is why I am so pessimistic about political change via the current advocacy model. Tragedy of the common's type situations can often be avoided if enough players can agree to a some convention or code of behaviour. The problem with special interest in politics is that even if every politician could agree that the current way the game is played is destructive, special interest would actively work against reform.

Change under the current system is reliant on the altruism of those in power to limit that power.

<comment><USER3> I don't think change is impossible in our current system of government. The idea just needs to spread that reform is more important than how that reform is perceived to affect any pet political issue, because it will improve the outcome of every other issue. I don't sense much momentum behind that meme, though.

</comment></comment></comment></comment><comment><USER4> I'm fine with banning corporate money in politics as long as all groups are banned from giving money (e.g. unions). U.S. Citizens should be able to contribute individually in a non-tax deductible manner as they want to a candidate directly or a registered political party, but no other group or person. The obvious exception would be the political parties themselves (new tax status or maybe it exists now).

I would also like all public money pulled. We have a budget crisis and need to stop all non-essential spending. If you cannot convince people to give you money then you are not going to convince anyone to vote for you either.

<comment><USER5> I don't think this is practical. So say your friendly neighborhood oil company sends a memo out to its employees saying "We need to drill in the [Insert National Park] to stay in business. So if you want to keep your job you need to send money to politicians that will allow us to drill in [Insert National Park]"

If that statement is true and the company would really go out of business than it isn't coercion. But the end result is the same as you have now.

The same is true for Unions just substitute "You have to elect this person or they'll gut your social security and take away your pension" in place of drilling.

<comment><USER4> There are actually laws about the corporation doing that exact thing already. Unions are a little trickery because they do use member money to do such things, but the principal is the same. Lock a few executives up when they pull this stunt and reward the whistleblower.

<comment><USER6> Look at the flip side: consider all the companies standing against SOPA/PIPA right now. Do you want to prevent them from even drawing attention to the issue? Do you want to prevent employees from taking any steps at all to raise awareness among like-minded people, many of which might work at the same company?

<comment><USER4> yes, yes I do - the media companies caused the law in the first place - individuals raised the defense

</comment></comment></comment></comment></comment><comment><USER7> Seems to me that as long as votes are for sale, somebody will buy them, and the system will be corrupt. The only real solution, and it's not an easy one, is that voters have stop being so easily influenced. They need to become critical thinkers that actively research their opinions. All the ingredients are in place for this to happen, but it's going to take at least a generation to catch on.

</comment><comment><USER8> Public money for public office.

Although the logistics are hairy to work out, I think that the most important reform that could be made would be banning private contributions to campaigns entirely, and making every candidate equally funded through tax funds.

Every candidate should have an equal voice, and should not have to sell their souls or pander to large donors in order to be competitive in their campaign.

<comment><USER6> This fundamentally can't work. If you don't establish viability standards for who gets a tax-funded campaign, you get a pile of people just in it for the money, as well as a pile of people just in it for the lulz. If you _do_ establish viability standards for who gets a tax-funded campaign, you entrench the established political parties, because previous funded campaigns help ensure future viability and future funding.

I see absolutely nothing wrong with private contributions to campaigns, as long as those contributions can never end up in the candidate's pocket (rather than spent on campaigning), and as long as they have no influence on the candidate's decisions (past or future). The logistics of _that_ remain hairy to work out as well, but complete and total transparency seems like the right approach.

Personally, if I ran a campaign, I'd accept all contributions anonymously, to avoid any inadvertent bias or even the appearance of bias.

<comment><USER8> > _If you don't establish viability standards for who gets a tax-funded > campaign, you get a pile of people just in it for the money, as well as a > pile of people just in it for the lulz. If you do establish viability > standards for who gets a tax-funded campaign, you entrench the established > political parties, because previous funded campaigns help ensure future > viability and future funding._

How is this different from donation-funded campaigns? Visibility always increases your shot at future visibility.

Public funding prevents the visibility from compounding. If you manage to get enough endorsements to be funded at all (for example), your voice is just as well funded as the incumbent who, under the private funding model, is in a position to attract all the funding.

<comment><USER6> Donation-funded campaigns get funded by people who agree with them. Publically funded campaigns force people to pay for political campaigns they disagree with.

Many people participate in Kickstarter to fund ideas they want to support; imagine if _all_ projects on Kickstarter received mandatory funding, regardless of usefulness, viability, or the number of people who want the result. The whole thing falls apart.

<comment><USER8> > _Donation-funded campaigns get funded by people who agree with them._

Donation funded campaigns make it extremely difficult for new candidates from being judged on their merits.

> _imagine if all projects on Kickstarter received mandatory funding_

Bad analogy. Imagine if they all got equal opportunity advertising in order for people to decide their viability for themselves. Imagine if I had a way of hearing about all the great, viable, useful kickstarter projects that would get swept under the rug because they didn't have the right connections to promotion. Imagine if the old, established kickstarter projects didn't have the ability to browbeat me because they have more money for ads.

<comment><USER6> >> Donation-funded campaigns get funded by people who agree with them. >Donation funded campaigns make it extremely difficult for new candidates from being judged on their merits.

New candidates will fundamentally always have a problem drawing attention, and in fairness they ought to have to work at drawing attention. An awesome candidate shouldn't have any trouble building up grassroots support at a reasonable pace.

What happens if every random person who has ever said "if I were President" could run without putting much effort into it? We already get a barrage of advertisements around election time with just the candidates we have right now; how exactly do you expect to provide an equal footing for a thousand, or ten thousand? _Running should require a lot of work._ I want to remove the biases _against_ new, independent, and third-party candidates, but that doesn't mean it needs to become trivial to get a pile of "free money" and run.

> Imagine if they all got equal opportunity advertising in order for people to > decide their viability for themselves. Imagine if I had a way of hearing > about all the great, viable, useful kickstarter projects that would get > swept under the rug because they didn't have the right connections to > promotion.

No sensible system exists for that to happen. Too many Kickstarter projects exist for equal advertising to have any useful impact. If you want to get noticed, _get yourself noticed_. Yes, that makes Kickstarter as much about publicity as about awesome tech; the same problem happens with startups to an even greater degree. Great ideas will always generate noise, but they still need help from people who know more than just how to have great ideas.

Kickstarter, to me, seems as fair as anyone could hope for. No entrenched candidates, no political parties, no free funding, just a pile of projects trying to look the most awesome and draw the most attention.

</comment></comment></comment></comment></comment></comment><comment><USER9> Money is not speech.

If money were speech, then the government forcing me to pay taxes would be a violation of the first amendment.

If money were speech, the government telling me not to give money to terrorists would be a violation of the first amendment.

The supreme court justices are idiots. Plain and simple.

<comment><USER5> Honestly, if you think something this complex is simple and the people who disagree with you are idiots than it's probably you who is acting like an idiot.

To give just one flaw in your logic. Protesting is speech. If I work I can't protest. But I do get money for my work. If I were to pay someone to protest for me I would be using my money to exercise my right of free speech. So in that case money is speech.

The issue is in money inequality. If I'm paid $1,000 an hour than my money can buy more speech than the person who goes out and protests. If our society values every person's free speech equally then we need to find a way to deal with that inequality.

THAT is the issue and that's a lot more complicated issue.

</comment></comment><comment><USER10> tldr: You might as well try to "fix" VMS.

I find it a little difficult to think seriously about "fixing democracy" when on the same day I see something like this:

<http://www.nytimes.com/2011/12/14/opinion/free-the-fda.html>

"The precedent risks placing the real power for drug approval not just with a cabinet secretary, but with the White House itself. The only solution, then, is to make the F.D.A. truly independent."

In other words, it's an essential aspect of American democracy that your elected officials have no actual power at all. Presumably Prof. Lessig reads the NYT?

Because frankly, if elected politicians have no actual authority, and this is a feature rather than a bug - I'm struggling to figure out why we should care so much whether or not they're on all on the take.

I'm not disputing that they're all on the take. The worst part is that if you make a political office symbolic in reality, its professional occupants rapidly grow entirely incapable of exercising actual power and become, basically, actors - worthless celebrities. You're selecting for Rick Perry and you'll get Rick Perry.</comment>


Ask HN: Which areas in computer science are useful for space research? - <AUTHOR> I am looking for a thesis topic and my goal is to work in space exploration and research eventually. What areas of CS is valuable to space researchers?<p>I know they'd prefer physicists with programming skills instead of computer scientists with basic knowledge of physics, but still I want to maximize my chances. <comment><USER2> Now that is an interesting question... And unfortunately, I'm totally unqualified to even attempt answering it. Finding CS folks in space research is less difficult than sighting bigfoot, but they are still a fairly rare breed.

Your best bet is contacting folks at NASA, JPL, and possibly SpaceX, then asking them directly. NASA is especially keen on promoting education geared towards space research, and of course, they'd know the answers to your questions.

One fun thing you might want to try is tweeting one of the astronauts currently on the ISS. They often answer education-related questions.

Good luck!

[http://www.nasa.gov/offices/education/about/](http://www.nasa.gov/offices/education/about/)

[http://www.jpl.nasa.gov/edu/](http://www.jpl.nasa.gov/edu/)

</comment><comment><USER3> Anything related to delay tolerant networking / store-and-forward.

[https://en.wikipedia.org/wiki/Delay- tolerant_networking](https://en.wikipedia.org/wiki/Delay-tolerant_networking)

[http://ipnsig.org/](http://ipnsig.org/)</comment>


(2013) Jonathan Blow – Game design: the medium is the message - <AUTHOR> https://www.youtube.com/watch?v=AxFzf6yIfcc <comment><AUTHOR> Excerpt I particularly enjoyed, especially the parallel to junk food and eating hygiene at the end, because it explains the confusion still often encountered when arguing that video games can be (at least) as human, moving, emotional, empathetic as other cultural forms. Transcription mine, as truthful as I could, sorry for typos.

 _If you 're a game player and you're playing this kind of Candy Crush games right now, just know that what you're doing is the new version of watching Bad TV in the 70s._

 _Just like you don 't necessarily know right now this is like Bad TV, people watching Six-Million-Dollar Man in the 70s were not cognitively aware how terrible that show was most of the time. It's only in retrospect that we can stand where we are now, look back and say _"Wow that show was terrible" _. Same with these games: you 're swimming in them, so you can't see how bad they really are. And just like I can look back at the 80s and say _"Man, I can't believe I spent so many hours watching frickin' Knight Rider, Airwolf and all that stuff" _, it 's going to be very easy to look back in 15 years and say _"I can't believe I played so many of these illusionary treadmill games" _._

 _And a common response to that kind of statement is:_ "You know, I sort of hear what you are saying but I don't believe it because when I'm playing a game like Candy Crush, I'm having fun, and there's nothing wrong with that." Note this is also what designers say: _" Well people have fun playing, who are you to judge?"_.

 _And it 's like, well, sort of, but in other areas of life we don't have this level of confusion. A lot of people going to McDonald's and eating fries will tell you they taste good. But there's not really any confusion that this is good food, right? Nobody thinks this is good food! Nobody thinks you should eat this everyday! But in games that level of clarity hasn't been reached yet._

 _The nice thing, though, if you 've played this kind of Candy Crush games, is to know there's actually better stuff out there. Stuff that can actually speak to you as a human being beyond just a bundle of reflexes that can be psychologically manipulated. And if you're playing this Candy Crush kind of games, it at least means you might be a little bit interested in games to begin with. So, if you want it, with a little bit of scouting and some good advice, you can find the good things on the opposite side of the spectrum. And you might find them much more interesting; or maybe not and maybe you'd go back playing Candy Crush, who knows? But it's a possibility._</comment>


HFCS makes rats fat? A counterpoint. - <AUTHOR> http://www.foodpolitics.com/2010/03/hfcs-makes-rats-fat/ <comment><USER2> Page one of the study supports the original claim. Is this blog post just a test to see if we will really read it now?

Per the study...... 3\. Results 3.1. Male rats with daily 12-h HFCS access gain more weight in 8 weeks than animals with equal access to sucrose Animals with 12-h 8% HFCS access gained significantlymore weight in 8 weeks than animals with 12-h 10% sucrose access

<comment><USER3> Keep reading.

"Further, no difference was found in HFCS intake and total overall caloric intake in the groups given 12-h access versus 24-h access. Both groups consumed the same amount of HFCS on average (21.3 ± 2.0 kcal HFCS in 12-h versus 20.1 ± 1.6 kcal HFCS in 24 h), even though only the 12-h group showed a significant difference in body weight when compared with the control groups."

As per the author's criticism, these results are seemingly inconsistent. Why would rats with 12-h access to HFCS gain more weight while rats with 24-h access did not, when their HFCS intake was the same on average?

<comment><USER4> The say on page 2: "...our previous publications show limited (12 h) access to sucrose precipitates binge-eating behavior (Avena et al., 2006)."

</comment></comment></comment><comment><USER5> Good questions in here. While I'm personally inclined to be sympathetic to the study, I have to admit that if I'm to be skeptical about other things (I want to say AGW, but don't want to open that can of worms), I need to be consistent in looking for high-quality research here as well.

<comment><USER6> I have a very simple rule: anything I read in the MSM (or similar "science" publications) about a study that agrees with the current politically correct opinion I _automatically_ discount. _Especially_ if it's medicine related (weak science and fraud are particularly common in this area).

If it's important enough to me, I'll dig down and actually read the paper ... but I generally don't bother, because most of the time I'll find junk science (or nearly so) like in this case. I'd rather spend my time with the _Journal of Irreproducible Results_ and the upside down parts of the _Worm Runner's Digest/Journal of Biological Psychology_.

</comment></comment><comment><USER7> >The rats fed HFCS for 24 hours per day, which should be expected to be fatter, were not. They weighed less (470 grams) than the rats fed sucrose for 12 hours per day. So these results are inconsistent.

I don't see why you would expect those to be fatter; the data point is completely separate. Common sense doesn't apply in biology - any number of factors could cause the results to reverse on a 24 hour feeding schedule.

Humans don't follow a 24 hour feeding schedule, as it happens.

<comment><USER8> > Humans don't follow a 24 hour feeding schedule, as it happens.

Regardless, I would think that instability of results under seemingly minor variations in conditions for rats suggests we should drastically reduce our confidence in any generalization of even the seemingly more relevant result.

<comment><USER7> >should drastically reduce our confidence in any generalization of even the seemingly more relevant result.

Oh, absolutely! I certainly didn't mean that you should go trusting the scientist to vet his own research; most studies say exactly what the researcher wants them to say. But I think the results are strong enough to prompt (probably stronger) testing in other labs.

If the research was done properly, then instability of results under minor variations generally implies that the variations weren't actually minor.

</comment></comment></comment><comment><USER9> Also, scaling for mass, the rats are given the equivalent of 3000 kcal (more than most humans eat in a day) in pure HFCS.

<comment><USER7> Scaling for mass is not a particularly useful measure. Their metabolisms are _much_ higher..

<comment><USER10> Well, you can scale for mass, just not linearly. Metabolism scales with mass^(3/4).

Interestingly, so do the number of cars in a city with a city's population size- this is a fun essay on the subject: [http://opinionator.blogs.nytimes.com/2009/05/19/math-and- the...](http://opinionator.blogs.nytimes.com/2009/05/19/math-and-the-city/)

</comment></comment></comment><comment><USER10> The ironic thing is that this is probably true because corn syrup is more "natural" than table sugar. We're better at extracting calories from foods commonly found in our evolutionary history. Sucrose is only found in a handful of foods (like beets) but fructose is everywhere. It's similar to how East Asians extract 20% more calories from rice than people with other ethnic backgrounds.

</comment><comment><USER11> Amazing how quickly the original store made it onto every major news channel etc.

Yet not one fact checker or news editor seems to have spent the time Marion Nestle did in this article.

<comment><USER12> It was a story people were prepared to believe; the "HFCS bad" meme started taking hold years ago. It's a lot more comfortable for people with a sweet tooth to swallow this than to say "all sugar bad" and actually change their behavior.

</comment></comment><comment><USER13> Sugar, Glucose, and High Fructose Corn Syrup is pumped into everything that Americans eat, nearly all drinks, nearly all Breads and Snacks, chips, and fast-food is chock full of it. Go check your fridge and pantry if you don't believe me. America has the highest percentage of obese people on Earth because of these sweet sweet chemicals. It's killing us.

But don't believe it because I said it, take it from an MD: <http://www.youtube.com/watch?v=dBnniua6-oM>

Double up on your fruits and vegetables, apples, pears, carrots, oranges, spinach, bell peppers, bananas, potatoes, unsalted nuts, things with high fiber, and everything else that comes from a plant or tree.

Cut in half any food that contains a significant percentage of Sugars, Sucrose, Glucose, Fructose, or Corn Syrups. That paunch under your belly button will thank you.

<comment><USER14> If your message were merely about sugars, you probably wouldn't be advocating bananas, apples, and pears. They have a decent chunk of sugar in them.

For example, my Trix has 13g of sugar [1] and an apple (small) has 13g [2]. The calories do sway in the apple's favor, but there are fewer vitamins in an apple. Does this mean Trix are healthier? No (see the sodium and carbs), but it also doesn't mean they will be the death of me if I exercise and don't eat 5000 calories worth.

1) <http://caloriecount.about.com/calories-trix-i116032>

2) <http://caloriecount.about.com/calories-apples-i9003></comment></comment>


Belkin caught using Amazon Mechanical Turk to post fake reviews for its products - <AUTHOR> http://www.crunchgear.com/2009/01/17/belkin-paying-65-cents-for-good-reviews-on-newegg-and-amazon/

<comment><USER2> I don't trust Belkin products myself. A few years ago Belkin sold a router that would periodically override your web browsing and display an ad for parental control software in your browser instead:

<http://news.cnet.com/2100-1039_3-5104863.html>

That said, it is good of palish to point out that this newest hasn't been 100% verified.

<comment><USER3> I used to think Belkin was good. I like the clean look and design of most of their products. Then, they pulled the stunt you mentioned above. Now, just when I think the moral decay has been flushed out over time, we get this new story.

They have become the Arthur Anderson of computer companies in my mind.

</comment></comment><comment><USER4> This would be an effective way to tarnish the reputation of a competitor.

<comment><USER5> I presume you mean: enter a job in mechanical turk to praise one's competitor's target, and then tip off a journalist?

Because otherwise, it's just dumb.

<comment><AUTHOR> more like use Mechanical Turk to have 100 people leave negative comments on competitor product

<comment><USER6> That seems far more effective, since the vast majority of router buyers don't read any publication in which this story would run.

<comment><USER7> How about doing both? Hire 70 to write negative reviews, and 30 for positive. Tip off about the positive ones.

<comment><USER8> You're hired. Any relation to this fellow? <http://xkcd.com/125/>

Just remember to use different accounts & language between the negative & positive reviews. Either way, be really careful to anonymize your tipoff, in case it backfires.

<comment><USER7> No relation. Just years of playing Diplomacy.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> this is done tons by big corporations. usually they pay a shop overseas to make accounts and post false praise. this is something i've looked extensibly into before, so when i get back tonight i'll go through my old notebooks and post some links.

<comment><USER10> That would be much appreciated

</comment></comment><comment><USER11> Apparently it is common for an author to create fake reviews for his book on Amazon. Ethically this is the pits. Somehow we need to evolve a reputation system so that we can trust reviews.

A side note: a while back Charles Stross (SF writer) had a thread on his blog where writers posted the best Amazon 1 start ratings of their books. The 1 star guys can get pretty creative.

<comment><USER12> I always look at the 1-star reviews first - they're often the most insightful:

[http://www.amazon.com/review/product/0262011530/ref=dp_top_c...](http://www.amazon.com/review/product/0262011530/ref=dp_top_cm_cr_acr_pop_hist_1?_encoding=UTF8&showViewpoints=0&filterBy=addOneStar)

 _The only pro for this book is the wealth of information. The main con is that all of this wealth is presented in a haphazard way. I couldn't understand most of it. This text would be OK as an occasional reference, but nothing more. It is definitely overrated._

 _Just as an example, data directed programming, the way it is presented in the book, is counterintuitive. Operator overloading in C++ makes much more sense, even if its syntax is a little tougher than Scheme's._

 _And finally, what's with the jokes? When they mentioned Microshaft, I realized that the authors are just two immature jerks. Don't get this book._

<comment><USER13> Sometimes it's particularly fun to read clueless 1-star reviews of classic books. ISTR there was a 1-star review of Newton's _Principia_ complaining that he bought to help him with his high school physics course and it was way too confusing.

</comment></comment></comment><comment><USER14> Precisely why only those who have purchased the product from a site should be allowed to post reviews for it.

I know there would be less reviews left, but I'd rather know that the review I'm reading came from a real person who really bought the product.

</comment><comment><USER15> I dont know, im naive enough to hope that a competitor wouldnt do this, at the same time I dont believe at belkin would do this in such an obvious manner.

<comment><USER16> Sometimes things are doing by misguided employees in the false assumption that they are helping. It's not the company that is doing the deed often but an overzealous employee who doesn't think of his/her actions. We experienced this with forum posting from a competitor. When we found and I talked with the owner he was as confused as me, but he phoned me back a few days later to say that he had tracked it down to an employee. He apologised and contacted the forums to remove the posts - I had a lot more respect for them after that. We're still competitors and fight hard, but fair, with one another</comment></comment>


Sir Ken Robinson: Do schools kill creativity? - <AUTHOR> http://www.ted.com/talks/view/id/66

<comment><USER2> To a large degree I believe they do. But I think this is mainly because they are at the bottom of a very large heap.

At the top, is industry. They need a way to filter the 'hands dirty' workers from the management, and the management from the Executive. So the 'old boys clubs' traditionally get the Executive, the Universities churn out the management and the high school system produces the blue collar workers.

So in order to meet this demand, the focus of schooling has to be those skills which are most likely to be of use to industry - English, Maths, Science. Followed by history, geography and foreign languages. Last, seen as necessary for a 'rounded' individual are the arts - music, art, drama and dance in that order (as Sir Ken points out).

Is this good, or right? Don't know. Is it likely to change? Probably not. After all, are you going to be the parent to turn your child's back on the traditional model of schooling to provide an alternative education, knowing this will probably make them a 'better' (define that how you will) person but possibly less employable as a result?

I know there is a lot of babble these days about the breakdown of the workplace but even the most avant-garde employer would prefer their employees to be literate, numerate and deeply knowledgeable in a given topic.

Sir Ken's central point, though, about educating the whole person is spot on. I do believe greater emphasis ought to be given to the softer subjects, such as the arts. However, there are only so many hours in the day and unless the very large majority of parents start reclaiming ownership of their children's education then little is likely to be demanded to change. By this I mean that the parents are so busy themselves (working, may be single-parent) that they have little time and energy to teach their 2 year old how to count and recite the alphabet and so forth. So the job is delegated to the primary education system who have to make room to bring the children to a standard of literacy and numeracy where they can start the 'real' learning.

<comment><AUTHOR> I like your summary of the talk. One subtly to his position that made the talk stand out for me was that he wasn't completely opposed to the top-down model for determining the weight of subjects in schools based on industry demands. Rather, his argument was that schools weren't keeping up with the needs of the industry they educate their students for. He seemed to be making the case that as an increasing number of the methodical aspects of industry become automated as technology progresses, problems which require more creativity such as determining "what" to make rather than "how" to make it become much more important.</comment></comment>


Debating the power of Google's Wave - <AUTHOR> http://news.cnet.com/8301-17939_109-10256471-2.html?tag=rtcol;inTheNewsNow

<comment><AUTHOR> I kinda like Google Wave.</comment>


Fanvibe (YC S10) Signs A Letter Of Intent To Be Acquired By beRecruited - <AUTHOR> http://techcrunch.com/2011/06/27/fanvibe-berecruited/

<comment><USER2> Sounds more like an acquisition of the team upon first glance. Not sure what the plan will be as far as integration. Seems like two entirely different business models.

<comment><USER3> Yes, primarily for the team and our expertise in sports and mobile. However, there are some pieces we built for Fanvibe that we can apply to beRecruited - but not much on the user-facing side.

<comment><USER2> Thanks for clarifying Vish. Good luck with beRecruited.

</comment></comment></comment><comment><USER4> Ooh thanks for posting this so fast! I actually didn't know the techcrunch article was out until I saw it here haha.

<comment><USER5> Is this primarily a talent acquisition?

<comment><USER3> Yes, primarily for the team and our expertise in sports and mobile. However, there are some pieces we built for Fanvibe that we can apply to beRecruited - but not much on the user-facing side.</comment></comment></comment>


Template Metaprogramming with Modern C++: templates in depth - <AUTHOR> http://blog.biicode.com/template-metaprogramming-cpp-ii/ <comment><USER2> Because they can take integral types, they can take function addresses. This is a really interesting article:

[http://www.codeproject.com/Articles/11015/The-Impossibly- Fas...](http://www.codeproject.com/Articles/11015/The-Impossibly-Fast-C- Delegates)

By passing the address of the function to the template, the compiler knows which function is going to be called - the idea being that a smart compiler can now inline your delegates for you.

<comment><USER3> The clean approach is to wrap functions into classes:

class Wrap { void call() {...} };

template <typename F> { ... F::call(); }

And with some imagination one can write a macro to do this wrapping given an existing function, used like this:

void my_func();

using MyFuncWrapped = WRAP_FUNC(my_func);

// Now MyFuncWrapped::call() calls my_func.

My implementation of the wrapper: [https://github.com/ambrop72/aprinter/blob/master/aprinter/me...](https://github.com/ambrop72/aprinter/blob/master/aprinter/meta/WrapFunction.h) . But note it doesn't use std::forward since this code assumes no references being used.

<comment><USER4> But you don't get much by wrapping it in that class and making a functor out of it, unless you want to manage state. Either way, in C++, it is a slim line between the two.

C++11 lambdas have this quality of "a type for every function" as well.

</comment></comment></comment><comment><USER5> "By default, there is no exponential and mind blowing executable size increase."

I'm sorry but that's not really true. If you compile with debugging information included (with or without optimization), GCC will give you tons and tons of template name stuff in your compiled binary. I have one program that is over 100 MB and well over half of it seems to be template-related debugging stuff. It's unlikely that you could generate so many and such long symbols by hand if you weren't using templates. If you build without debugging symbols, or strip them, or separate them out, you may have different results, but I don't think that's the most common scenario for C++ users.

You can also wind up with actual instruction bloat too: a seemingly "high performance" function written with recursive templates may wind up with dozens of kilobytes of machine code thrashing your i-cache while a perfectly good "old style" function would do the same job with a hundred bytes. Disk may be cheap, but instruction cache is not.

<comment><USER6> Even a not very complex program written in modern C++ is going to use a lot of map, set, vector, unordered_map, iterator instantiations for different types. Even if some of them can be deduplicated by a smart-enough-linker, that's still a significant amount of code, added for little or no gain (most of code is not on critical path).

<comment><USER7> Does the program need to do the map, set, vector, iterator, ect... operations or does it not? If the work needs to be done then it needs to be instantiated in the code somehow. What is your proposed alternative?

<comment><USER8> To me, the parent seemed to be complaining about multiple copies of effectively the same map (or set, or vector, ...) code for different types, not the presence of the map (or ...) code in the first place. The latter is obviously unavoidable. The former is an efficiency trade-off between the optimization opportunities afforded by specialization and inlining, and the smaller instruction footprint of keeping the code generic.

<comment><USER7> So then, is the proposed alternative a library of containers and algorithms that are genericized via void pointers, memcpy sizes and function pointer predicates?

<comment><USER8> I'd assume so. In principle you can get there without sacrificing type safety ([http://en.wikipedia.org/wiki/Type_erasure](http://en.wikipedia.org/wiki/Type_erasure)). In practice, I don't know whether or not you can write type safe C++ that compiles that way.

<comment><USER4> In truth, if you really care about it, you can take a policy based design approach to this and have explicit rules for when you may or may not do type erasure. It's definitely a bit of work, but you can actually get full compile_time type safety and yet avoid having duplicative code with various tricks like (this skips over a lot of the pain and isn't really how you'd do it... just illustrative):

        template <std::size_t N>
        struct raw {
            template <typename U>
            constexpr raw(U x, std::enable_if<.....>);

            template <typename U>
            constexpr operator U();
        };

        template <template ContainerType, typename T, std::enable_if<std::is_trivially_convertible<T, ....> > >
        struct somewhat_erased_container :  private ContainerType<raw<sizeof(T)>> {
        };

It's particularly easy to do with containers of pointers (of course).

<comment><USER8> Very nice.

<comment><USER4> Herb Sutter has prompted a variant of the Pimpl idiom that kind of goes this way, as have others. Linus was proudly showing how C was better than C++ by virtue of being able to do something much like this, but of course you _can_ accomplish this in C++, of course there are some down sides that accompany it. Most importantly with C++ you can much more easily provide more robust compile time type safety with little or no runtime overhead.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Guys, you have managed to put our site down. We are working on it but HN has managed to put our site down.

Manu Sánchez will be conducting a talk about template metaprogramming in the C/C++ Madrid Meetup (Spain):

[http://www.meetup.com/Madrid-C-Cpp/](http://www.meetup.com/Madrid-C-Cpp/)

You should now be able to access a style-less version of the post in the same URL.

</comment><comment><USER10> The article is good about explaining when and how code is generated, but I think that the fibonacci example does more harm then good because this is one of those fancy 'template hacks' which I wouldn't use for real-world code. A few really useful real-world use cases for templates are (IMHO):

\- they can make interfaces more simple by using template methods/functions (have a single method which is specialized by the compiler, instead of polluting the API with 20 slightly different methods which only differ by the argument type)

\- they can enable a coding style which 'looks and feels' almost dynamic without loosing the strict type checks and optimization opportunities that a static type system provides

\- they can help to keep related data close together in memory and minimize dynamic memory allocation (e.g. an array of structs instead of an array of pointers)

\- the compiler has more optimization opportunities because it has more type information (vs. a more dynamic system where types are only known at runtime)

The tradeoff is of course that the compiler generates more (specialized) code, it breaks the simple rule that the amount of generated code grows linearly with the number of lines of code. On the other hand the compiler has a lot more type info to optimize the generated code. Still the programmer has to know what's happening under the hood so he can weigh the advantages against the disadvantages.

[edit: formatting]

<comment><USER4> Part of what is great about C++11/C++14 is constexpr's. It moves ll this "compute ahead of time" logic in to a simpler and more familiar structure.

There is actually a tremendous amount of value of precomputing a lot of work that is currently computed at runtime (the amount of wasted CPU in your typical C++ program, particularly at start time, is kind of crazy). It's just that the real hot spots in real world programs programs tend to revolve around runtime dynamic logic.

</comment></comment><comment><USER11> Yes, you can, but you probably shouldn't.

Template "metaprogramming" is something that originated by accident, as a side effect of the original template mechanism, which was intended as a way to allow writing small generic functions. Then it got a fan club, and influence on the C++ standards committee. Now the C++ language design has gone off into template la-la land, with lots of feature support for a bad idea.

It's kind of cool that rewrite rules are Turing complete, and that C++ lets you do things like compute Fibonacci numbers at compile time using recursive rewrite rules. This is a terrible way to program. Someday, someone will have to debug the thing, and it won't be easy.

There's a long history of this sort of clever stupidity. LISP doesn't have a FOR statement. So one was created as a compile-time macro. Here's the MIT Loop Macro, Common LISP version:

ftp://ftp.cs.cmu.edu/user/ai/lang/lisp/code/iter/loop/mit/mit_loop.cl

All 1496 lines of it. It's very clever. It took over a decade to debug.

Don't go there.

</comment><comment><USER12> I am really struggling to understand the "build_string" example. Here's my attempt to pick it apart.

        template<std::size_t count , typename STRING>
        struct build_string_impl;

I think the above is a template that resolves to a forward declaration of a struct type called build_string_impl. It says, give me a size and a type STRING, and I give you a struct type.

        template<std::size_t count , char... Cs>
        struct build_string_impl<count,string<Cs...>>
        {
            using result = typename build_string_impl<count-1,string<c+count,Cs...>>::result;
        };

I think the above is a partial specialization of the above forward declaration. In this specialization, the typename STRING is not a string, but instead a variadic char-thingy. So the 'typename STRING' is misleading. This partial specialization creates a struct type that contains a member type 'result' that aliases the 'result' type member of a recursive template instantiation.

        template<char... Cs>
        struct build_string_impl<0,string<Cs...>>
        {
        	using result = string<c,Cs...>;
        };

This is a partial specialization that represents the base case. It declares a template that creates a struct type build_string_impl that contains a member type 'result' that aliases the 'result' of a string type.

Where I get lost is here:

        build_string_impl<count-1,string<c+count,Cs...>>

This attempts to instantiate the build_string_impl template with a size_t and a string. But there is no implementation of the template with these types - only for size_t and variadic char. So how does this get instantiated?

<comment><USER13> There could be a bug on the code snippets included inside the post, sorry. Check the code running at compiler explorer, it's working and you can see clearly the result string literal at the end of the assembly.

The point of the example is: We represent a string as a variadic pack of chars, and build_string is a metafunction that builds that kind of string recursively given a starting character and a size. Inside that metafunction we define an aux metafunction build_string_impl that does the job, we only have to pass the required initial parameters (The count of chars and the initial empty string). The first partial specialization acts as the recursive case of that function, and the second is the base case (note count is 0 in that case).

</comment></comment><comment><USER14> Since the site appears to be unreachable at the moment here's the cached link for convenience: [http://webcache.googleusercontent.com/search?q=cache:ldrpOr9...](http://webcache.googleusercontent.com/search?q=cache:ldrpOr9Cka8J:blog.biicode.com/template- metaprogramming-cpp-ii/+&cd=1&hl=en&ct=clnk)

</comment><comment><USER15> There are so many typos in the code that it must have been typed in manually rather than pasted from working examples, but it was very very informative.

<comment><USER9> It could also be the version. When we uploaded it for the first time, all the codes >,< were interpreted by a WP plug-in wrong so we amended them on the go. The version being shown is probably the one before that correction.

</comment></comment><comment><USER11> Linked site appears to be down.

</comment><comment><USER16> "Modern C++" is outdated nowadays. Just look at the C++ code published by Google.

<comment><USER17> For example? Last thing I read from Google about C++ was the Coding Style Guide ([http://google- styleguide.googlecode.com/svn/trunk/cppguide.h...](http://google- styleguide.googlecode.com/svn/trunk/cppguide.html))

<comment><USER13> The term "Modern C++" refers to the fact that most of the C++ industry still depends on or develops C++98/03 code. Is "Modern" compared to that, and the term is used to refer to state of the art C++ instead of old C++98.

<comment><USER4> "Modern C++" often refers specifically to techniques from Alexandrescu's book" [http://erdani.com/index.php/books/modern-c- design/](http://erdani.com/index.php/books/modern-c-design/)

Thanks to updates to the language, some of the hackery in there is no longer nearly so devilish, and there the language standard provides idioms that are simpler but "good enough if not better" for most people (tuples, smart pointers, move semantics, etc.), so a lot of the specific designs in the book _are_ starting to become passé. Still, it is a fantastic book for understanding the expressive power of C++'s multiparadigm design.

<comment><USER13> +1 to alexandrescu's "Modern C++" showing the expressive power of C++. Also, imho, one o the key points of the book is how Alexandrescu criticises the OO patterns of the so horrible Gang Of Four. Anybody who have readed their book in depth should note that they provide a poor cookbook with "Do you have this problem, copy-paste that code" notes and an implementation provided by someone thats completely biased with all the OOP buzzwords, but never implemented them seriously in a real language.

<comment><USER4> Yeah... no.

First, GoF and design patterns in general isn't really meant to be "copy and paste" code. They're very clear that the code is provided merely for illustrative purposes.

Most of the design patterns in the GoF book are actually cribbed/realized in standard libraries of various languages where they work quite well. The problem is, those languages look almost nothing like C++. You could describe it as "biased with OOP", but it's really more that C++'s peculiarities (value semantics, comparatively complex and tightly coupled inheritance semantics, a purely functional meta-object protocol with very limited reflection semantics, and yes, it's multi-paradigm approach) make it serve as a bad fit.

Ironically though, much of MCPP is proving C++-style manifestations of GoF design patterns...</comment></comment></comment></comment></comment></comment>


India: Startups will get 3yr income tax exemption - <AUTHOR> http://www.thehindu.com/business/top-10-takeaways-from-modis-speech-at-startup-india-launch/article8114318.ece <comment><AUTHOR> Also noteworthy: 80% reduction in patent registration fee

</comment><comment><USER2> Too bad that startups don't make profits</comment>


Mozilla rolls out sponsored tiles to Firefox Nightly's new tab page - <AUTHOR> http://thenextweb.com/apps/2014/08/28/mozilla-rolls-sponsored-tiles-firefox-nightlys-new-tab-page/

<comment><USER2> The sponsored tiles are defaults, and they're replaced by sites you actually use over time. This is a good, unobtrusive way for Firefox to get funding.

<comment><USER3> I find these even more bothersome than the standard "previously visited" tiles. At least in FF you can turn the tiles off -- Chrome... nope! The thumbnail can even be a security problem in some settings.

<comment><USER4> As noted in the bug report, there are plenty of extensions if you want to change the New Tab page. Here's one you might like: [https://chrome.google.com/webstore/detail/new- tab/adcpijkmbe...](https://chrome.google.com/webstore/detail/new- tab/adcpijkmbecohfalcbafjgadfnpchhlg)

<comment><USER3> I'd prefer to not have to load some 3rd party of who-knows-what-quality-or- what-else-it's-doing extension or plugin.

It serves google no purpose in Chrome -- why not just let me turn it off? Especially in an enterprise environment like at the office...

<comment><USER5> I get around this by having a work profile on chrome (in case you didn't know that already). I know it's still bad when you do some lunchtime browsing, etc, but after about a year, my work profile cannot even auto-suggest facebook when i type 'fac'.

<comment><USER3> Good point - I usually just wipe all history regularly now (which is a pita) ... but, this doesn't save my other (less savvy) users at the office.

</comment></comment></comment></comment></comment></comment><comment><USER6> As most people, I'm not a big fan of Ads, but in this case I'm making an exception, provided it helps Mozilla diversify its source of incomes (at least a bit), I'm all for it.

</comment><comment><USER7> > Instead of seeing blank tiles when a new Firefox user opens a new tab, > Mozilla thought it would be best that they see "content."

I don't care much about this sponsored tab fuss but that is some serious BS logic.

Feels like UX goes in circles. The web of the 90s was "Show as much content as possible". Google came around and it became "show only the absolutely crucial stuff". Then facebook came around and we're back to shoving as much crap down the monitors as possible.

Feels like we jump from one extreme to another all the time. And yet, the Google.com homepage remains clean and uncluttered (yes, there's more stuff than there used to, but its still 90% whitespace).

Take it this way: When you create a new folder, a file manager won't show the contents of other folders you often access just because it's "best that you see content". Or when you empty your inbox, gmail won't show some random popular emails. So on.

Showing popular sites is a good idea at its core but if you're on a fresh profile, well you're on a fresh profile. Make money off firefox of course, you need it, but "it's best you see content" is bullshit justification.

<comment><USER8> How is that bullshit? You've got a page of your commonly-visited sites that would be empty if not pre-populated. Mozilla has offered up a balanced way to pre-populate it: put popular sites up for free and offer a handful of spots to other people who will pay for it.

I've got a Samsung SMART TV that comes with something called "Smart Hub". In the same way as Mozilla they've pre-populated a number of applications that could be useful. This means that Netflix and Youtube are now a single click away for me and usable as soon as the TV is powered on. If they hadn't pre- populated something in the Smart Hub, I'd have to dig through the catalog for to find the apps I want to use, and I'd be staring at an empty screen trying to figure out what I need to do on that page, which is probably the same sort of experience that new users might feel trying to navigate the web.

Defaults help you get started fast, and having "something" rather than "nothing" doesn't automatically mean "cluttered".

<comment><USER9> I have a Samsung SMART TV too and I find Smart Hub to be extremely annoying in that there are prominent app spots that cannot be deleted. They're just there for Samsung to promote whatever partner it likes and it's the sort of thing that makes me regret buying Samsung.

<comment><USER10> In this case they can be deleted, and furthermore are eventually replaced by tiles containing thumbnails from your own browsing history, just as they are now.

</comment></comment></comment></comment><comment><USER11> it's really surprising to see how strongly people here oppose the idea of Mozilla making money. Mozilla is arguably one of the most important tech companies, committed to FOSS, transparency and providing a much needed counter balance to much larger tech giants that would steamroller all over the web without them. This is probably the least obtrusive change they could have made, how do you expect them to survive without revenue?

<comment><USER12> Really? Because I can't count to even one post in this thread opposed to Mozilla making money. I can count to more than a dozen that even suggests methods of doing so.

</comment></comment><comment><USER13> I'd rather like to see a progress bar for donations (just like on Wikipedia, reddit and Kickstarter) and I wouldn't mind if it was boldly integrated into the user interface (for example next to the address bar). Advertisement does not feel right for a company like Mozilla.

<comment><USER14> Ads are currently their only real form of income. If you use the search bar to look for Amazon items and buy something, Mozilla receives money, if you search Google with it and click an ad, Mozilla receives money.

Mozilla may be a non-profit, but they are in the advertisement business already.

</comment></comment><comment><USER15> > For users with existing tiles (History Tiles) in their new tab page, Firefox > replaces the default screenshot with a better image. The Enhanced Tile is > displayed only for sites that would have appeared on a user's new tab page > based on their browsing history. The improved image is supplied by the site > or partner and can include a logo plus a rollover image.[1]

This could very conceivably be used to display ads, e.g. Company X pays site Y to have an ad as part of site Y's tile.

[1][https://support.mozilla.org/en-US/kb/how-do-sponsored- tiles-...](https://support.mozilla.org/en-US/kb/how-do-sponsored-tiles-work)

</comment><comment><USER16> When the tiles first rolled out with Facebook etc a little while back I thought it was going to feel cheap or annoying, but I haven't really noticed. Because of that, I'm not really sure how this is going to generate much revenue either. The go away so quickly after a few minutes of browsing that I almost feel like at some point they'll need to start mixing in a couple ad tiles on each view to generate any meaningful revenue.

</comment><comment><USER17> If I remove all the tiles on new tab page, I just have a bunch of empty tiles (using just updated Nightly). Is there a page showing all sponsored tiles that I can go to user/browser-independent?

</comment><comment><USER18> I (hopefully) assume this will get removed in Iceweasel and Icecat.

</comment><comment><USER19> Good thing I have my own new tab page.

</comment><comment><USER20> So Firefox is now Adware?

<comment><USER21> Firefox costs money. If it doesn't get it from the users (like it never was) or from Google (like it could soon be), it needs to find some way to fund anyway. This kind of advertising worries me a little but I find it acceptable. If you disagree, please do so by donating and saying it out loud and calling everyone to do like you.

<comment><USER22> > If it doesn't get it from the users (like it never was)

But early Mozilla was supported by its users, through donations of both code and money. Volunteers also spearheaded the hugely successful "get Firefox" campaign. Thanks to Google money, Mozilla can now afford to pay top dollar for engineers and prime office space on the Embarcaderro. That is not necessarily a bad thing, but I sometimes wonder if it may have made Mozilla a less focused and user-centric organization than it used to be.

<comment><USER14> No, the Mozilla Organization was kept alive by Netscape, with some other major corporation sponsoring full-time engineers. When Netscape bailed completely and the Mozilla Foundation was founded on a grant from Netscape, they started having to find their own revenue sources. And they did with Google.

The Mozilla Corporation was founded in 2005 because Mozilla was generating so much cash (mainly from Google search), that they got in trouble with the IRS. That was only 2 years after the Mozilla Foundation was created!

The bulk of their revenue has always been advertisement.

As for code, they still very much rely on the open source model for new code.

</comment></comment></comment></comment><comment><USER22> Meh. Mozilla has to do this because they have become fat and bloated thanks to Google money. They should go back to their roots and shrink back down to the scrappy little organization that depended on its users for donations and promotion. _That_ Mozilla would never have turned to adware.

<comment><USER23> Unfortunately, _that_ Mozilla would, in all likelihood, have long since sunk without trace.

Not that I like this development, but I think it basically is what it is, in the absence of a genuine alternative.

(edit after 25 mins: actually, someone mentioned Iceweasel and Icecat up the page a way, neither of which I thought of - I guess there are genuine alternatives after all.)

<comment><USER24> I've given up and switched to Pale Moon.

For me, Firefox reached its peak just before it switched from the classic download window and has been going downhill ever since.

It's now rapidly going in the direction of too many formerly promising open- source projects - the core developers feeding back on each other until they go the way of the fashion industry - "This is what you need. Everything that came before is useless and must be discarded", repeating every so often.</comment></comment></comment>


Fast Reed-Solomon Coding in Go - <AUTHOR> http://blog.klauspost.com/blazingly-fast-reed-solomon-coding/ <comment><USER2> Whilst I quite enjoy Go, one annoyance I have is that it seems there is no middle ground between alright performance using pure Go and great performance using Go with assembler. Many other languages allow you, if you contort it, to get good performance without leaving the language. In this code, it was at least well sourced (and hopefully battle tested) SSE3 assembler for the Galois field arithmetic.

I hit this repeatedly when writing a pet project govarint[1] which performs integer encoding and decoding. I don't expect blazingly fast performance if I don't use assembler, but bitwise operations are painfully slow compared to the equivalent in C. C would also win handsomely even if the compilers were equivalent due to no boxing. It's also additional overhead that you now have two divergent code paths - the Go code (fallback in case you don't have assembler for the architecture) and the assembler code - that would both need to be kept up to date and checked for bugs / errors / inconsistencies.

Am I missing something? I only ever see assembler checked in to repositories - is there a typical sane build process I've just not seen? Is it just a matter of waiting for the Go compiler to "level up" optimizations to match GCC/Clang? Or should I just learn to live with the fact that to code Go I'll also need to reacquaint myself in assembler again?

[1]: [https://github.com/Smerity/govarint](https://github.com/Smerity/govarint)

<comment><USER3> There's no free lunch. One of Golang's primary goals is to compile fast (which is admirable!), which it achieves in part by leaving out lots of optimizations. Bringing 6g/8g up to the same level of optimizations as LLVM/GCC will, in all likelihood, slow down its compilation time. I can't speak for where along the line of speed versus code quality Go's developers want to place the compiler in the long run, nor am I saying you can't do better than both GCC and LLVM in compilation speed, but I do think there's a fundamental tradeoff there that no project can eliminate (short of writing in assembler, that is—which is, for all its downsides, an approach that does eliminate the tradeoff).

<comment><USER4> ...I don't see it.

Compile time optimization is a thing you can do for your production build only. Unless Go's design implicitely inhibits certain types of optimizations, but that would seem odd given how opinionated it is. What you do in Go, and what you mean, are much clearer then in most other languages.

<comment><USER5> The go tool has no distinction between development builds and production builds; every build is a production build. This itself is a manifestation of Go's opinionated philosophy.

[https://golang.org/cmd/go/#hdr- Compile_packages_and_dependen...](https://golang.org/cmd/go/#hdr- Compile_packages_and_dependencies)

</comment></comment></comment></comment><comment><USER6> Very nice work, and thanks for releasing under MIT.

Interesting that Backblaze decided to go with 17+3 configuration. As I read more on the topic, I realized I haven't quite wrapped my head around how data and parity are allocated across symbols, stripes, and disks, and how all that impacts degraded read performance, but at first glance I would assume 17+3 would have a pretty terrible degraded read performance.

Another great read if you're interested in home brew RAID or using parity is Plank's paper "Tutorial on Reed-Solomon Coding for Fault-Tolerance in RAID- like Systems". [1]

I found that gem reading Adam's blog on implementing triple parity RAID in ZFS. [2]

[1] - [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103...](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.7089&rep=rep1&type=pdf)

[2] - [https://blogs.oracle.com/ahl/entry/triple_parity_raid_z](https://blogs.oracle.com/ahl/entry/triple_parity_raid_z)

<comment><USER7> _Very nice work, and thanks for releasing under MIT._

Cheers. The hard work goes to BB, their initial library, though :)

 _Interesting that Backblaze decided to go with 17+3 configuration._

Yeah. It seems they don't go for any RAID within a storage pod, but instead uses raw ext4, and distributes shards across pods instead of hard drives in a single pod. [1]

This would of course mean that a single pod isn't loaded when a drive is replaced, but it is distributed across 17 other pods.

[1] [https://www.backblaze.com/blog/vault-cloud-storage- architect...](https://www.backblaze.com/blog/vault-cloud-storage- architecture/)

<comment><USER8> (BrianB from Backblaze here)

Yes, that's right. When a drive is replaced, its contents are rebuilt from the data on the 19 corresponding drives in the other 19 pods in the vault.

</comment></comment></comment><comment><USER9> the article contains an excellent introduction to "Galois Field Arithmetic" available via the following: [http://www.snia.org/sites/default/files2/SDC2013/presentatio...](http://www.snia.org/sites/default/files2/SDC2013/presentations/NewThinking/EthanMiller_Screaming_Fast_Galois_Field%20Arithmetic_SIMD%20Instructions.pdf).

there is linux-kernel article by hpa: [https://www.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf](https://www.kernel.org/pub/linux/kernel/people/hpa/raid6.pdf)

<comment><USER6> Great links, thanks!

At the end of the presentation, they mention rotated reed-soloman array codes, which led me to another paper Plank worked on: "Rethinking Erasure Codes for Cloud File Systems: Minimizing I/O for Recovery and Degraded Reads" which was very interesting as well. They directly address the problem of read performance in a degraded state.

[http://www.cs.jhu.edu/~okhan/fast12.pdf](http://www.cs.jhu.edu/~okhan/fast12.pdf)

<comment><USER10> I wonder why Rabin's IDA ("Efficient Dispersal of Information for Security, Load Balancing, and Fault Tolerance") is not mentioned anywhere

[http://web.archive.org/web/20070221140752/http://discovery.c...](http://web.archive.org/web/20070221140752/http://discovery.csc.ncsu.edu/~aliu3/reading_group/p335-rabin.pdf)

</comment></comment></comment><comment><USER11> I was under the assumption that R-S has been replaced with turbocodes in most use cases. Why not use those? Patent issues?

<comment><USER12> I believe the difference is that in this case, RS is being used as an erasure code (which means, you either have the data or you don't; the drive has either failed or it hasn't). Failures are (approximately) uncorrelated (assuming different parts are stored on different hosts), so for this use case, RS approaches optimal in terms of storage used (some metadata needs to be stored, which is overhead).

</comment></comment><comment><USER13> Quick question about the API: why separate the Split phase and the Encode phase ?

In other words, are there any scenarios where one would want to Split data but not Encode it, or where data is automatically split and all that is left to do is to Encode ?

</comment><comment><USER14> On a somewhat related note, what is the meaning of 6a and 6c? I suppose 6g is the go compiler and 6l is the linker. Is 6a an assembler and 6c a c compiler?

</comment><comment><USER15> Yev from Backblaze here -> Nice work!</comment>


California's housing crisis won't be solved unless Californians embrace building - <AUTHOR> http://www.latimes.com/politics/essential/la-pol-ca-essential-politics-updates-state-s-housing-crisis-won-t-be-solved-1489001030-htmlstory.html <comment><USER2> those who already have houses will probably vote against it, as this will devalue their properties.

new comers who don't have a house yet usually don't have the right to vote either.</comment>


Search Advertising On Google Offers Lowest ROI  - <AUTHOR> http://internetrack.blogspot.com/2008/07/google-grabs-774-of-us-search-engine-ad.html According to Efficient Frontier's "US Search Engine Performance Report: Q2 2008," based on data from a fixed set of large-scale search advertisers, "Google accounted for 77.4% of US search engine ad spend in the second quarter, an increase of 2 percentage points over 2Q07." <comment><USER2> If you just measure clicks to conversions, I agree that Google gives you less quality clicks. But that's only one aspect - what about brand awareness? You'll never get brand awareness going if you ignore google in favor of the others.</comment>


Ask HN: Best SEO Book/Resource? - <AUTHOR>

As a freelance Web Developer, my clients often ask me about SEO. I tell them that I put all the right tags in the website so that Google can scrape it well. However, I know SEO is way more than meta tags + adwords, and I'm tired of being clueless on the subject.<p>What Book/Resource would you recommend to start understanding SEO and improve my code ? <comment><USER2> Why, yours truly of course: [http://www.warplife.com/tips/webmaster/](http://www.warplife.com/tips/webmaster/)</comment>