NASA will pay $146M for each SLS rocket engine - <AUTHOR> https://arstechnica.com/science/2020/05/nasa-will-pay-a-staggering-146-million-for-each-sls-rocket-engine/ <comment><USER2> Tim Dodd just released an excellent (and long) video comparing the costs of SLS with Falcon Heavy and (eventually, maybe) Starship. [https://www.youtube.com/watch?v=KA69Oh3_obY&feature=youtu.be](https://www.youtube.com/watch?v=KA69Oh3_obY&feature=youtu.be)

SLS will cost upwards of a billion per launch. Compare that to $90 million for a reusable Falcon Heavy launch or ~$150 million for a disposable one.

<comment><USER3> Kind of off-topic, but trying to watch that video brought this to mind: [https://news.ycombinator.com/item?id=22792243](https://news.ycombinator.com/item?id=22792243)

<comment><USER4> Tim can repeat himself often, but he's not bad at what he does. His content is admittedly designed for children.

</comment></comment></comment><comment><USER5> The purpose of the space program isn't to explore space, it's to consume federal funds, accruing influence and kickback contributions to the politicians who arrange it.

It's important you understand this primary purpose if you want to understand what happens at NASA.

If you are a space program supporter who is okay with the situation as long as NASA is getting money, then you are the reason they can get away with this. Thanks a lot.

<comment><USER6> it's also a high quality job creation program that employs 17K at NASA and who knows how many at contractors

it's also a military capability

it's also saved who knows how many lives with weather satellites and ambulance GPS and satphone rescues

it's also a meteor warning program

it's also a global warming monitoring program

it also begets companies like spacex and capabilities like GPS for all and inspires people to pursue science

sure there's fat, but we're employing highly skilled domestic tech and science people with that fat, would it be better if we left all those tax dollars to be spent on iphones and Starbucks? or the prison industrial complex? NASA and NOAA and the NIH and any pure science agency is super defensible

<comment><USER7> We can spend all the taxpayer money on creating 17k highly skilled jobs that actually do something.

NASA does some useful stuff, but we could be doing much more useful stuff with the same money, while still having 17k+ jobs and good military technology and weather satellites etc.

<comment><USER8> Can we though? Or have we demonstrated over time that any suitably large program sustained over a suitably long time will innevitably need to account for the enormous incentive there is to exploit that funding. What do you propoes to do? Ask the defence companies if they would stop exploiting the government contracts that only exist because of their lobbying in the first place?

</comment></comment></comment></comment><comment><USER9> > The core stage is structurally similar to the Space Shuttle external > tank,[24][25] and initial flights will use modified RS-25D engines left over > from the Space Shuttle program.[26] Later flights will switch to a cheaper > version of the engine not intended for reuse.[27]

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

So they reused as much of the space shuttle as possible, down to using left over engines. Developing a new engine from scratch using a new fuel (methane) like SpaceX did would have been a very risky proposition. Like NASA, Blue Origin and ULA both did much more conventional things and have launch costs multiple times those of SpaceX. The relative cost of NASA's more conservative design decisions is more a testament to Space X's remarkable success with the Raptor engine than NASA being somehow incompetent.

<comment><USER10> Each Merlin Engine costs $1M.

A Raptor is expected to cost less than $1M each.

Blue Origins BE-4 is priced at $8M each.

So how did conservative NASA get cheaper RS-25 engines for only $147M each?

<comment><USER9> Those numbers are not measuring the same thing. Those are the marginal cost per engine. What did it cost Space X to develop the design, and what did it cost them to build the production facilities? The price NASA is paying is for delivery, not the cost to produces one more after billions have been sunk. Also, how many do they plan to produce? NASA probably only needs a few dozen RS-25s for the life of SLS, so probably not worth the billions Space X spent developing a new engine.

<comment><USER10> The Merlin was developed for the Falcon 1, at a total cost of $90M (including the rocket itself; and Kestrel engine for 2nd stage).

It was enhanced for Falcon 9, which has a total development cost of $300M for the first versions, including rocket, tanks, second stage, Merlin Vacuum.

The RS-25 was developed in the 70s for the Shuttle, and had a quoted cost of $47M at end of Shuttle life. This is literally the cost to make a few more after all design and testing was done. NASA has spent over $15B developing the SLS, why are they paying three times more for these engines?

<comment><USER9> Because they shutdown the production lines capable of making them for $47 million over a decade ago, and it costs a lot of money to recreate them and get the tooling and personnel needed. It's also the single most expensive rocket ever. It was designed to be the best, economics were ignored because they had the budget to do everything optimally. In terms of basic specs, RS-25 is comparable to Raptor with superior specific impulse, and is a highly proven 45 year old design. Reliability is really the most important stat, given the cost of the payload and other parts of the rocket. Obviously Space X spent a lot of time thinking about economics, with great results, but going for the expensive but sure bet option made a ton of sense for SLS.

Merlin is much simpler and smaller and not really comparable to the other two.

The RS-25 got new life with SLS, I would expect future NASA craft to use Space X engines.

</comment></comment></comment></comment></comment><comment><USER11> I feel like we'd all be better off if the federal government just cut an equivalent no-strings-attached check to Alabama in perpetuity, cancelled the SLS, and freed up all the rocket scientists to build something useful.

They could probably even do it in Alabama! SpaceX could open a local branch and mop up the talent. The current "waste money on the SLS for political reasons" just feels like the worst of all possible worlds.

<comment><USER12> I feel we are better closing down instagram/<useless app>, and using freed up computer scientists to build something usefull.

<comment><USER13> I don't think you understand the difference between public and private money

<comment><USER12> I don't think you understand that entire industry sectors would not exist without Nasa. There would be no GPS, no Google-maps, and you wouldn't know when a hurricane is coming.

</comment></comment></comment></comment><comment><USER14> Richard Feynman was pulled in to investigate the space shuttle challenger disaster. He refused to sign the report unless his findings were included. They were eventually included as an appendix, which is well worth reading.

There is a section on the main engines (you can search down to the SSME section)

[https://science.ksc.nasa.gov/shuttle/missions/51-l/docs/roge...](https://science.ksc.nasa.gov/shuttle/missions/51-l/docs/rogers- commission/Appendix-F.txt)

<comment><USER15> > Thus, it is not unreasonable to guess there may be at least one surprise in > the next 250,000 seconds, a probability of 1/500 per engine per mission.

It's interesting to read this in the context of the STS-93 incident [1] where a broken SSME injector came close to causing a mission abort. Was this Feynman's "one more surprise"? He was writing this report 70 missions before it happened in 1999.

[1] [https://en.wikipedia.org/wiki/STS-93](https://en.wikipedia.org/wiki/STS-93)

</comment></comment><comment><USER16> Of course, the answer to why it is done, is the money flowing into many states involved in the production. Jobs are something every politician likes to create. And it is part of an economy, that the state spends some amount of the tax dollars to support a wide range and healthy economy. But for that, the jobs need to do something useful. Just overpaying for rocket engine is the quite opposite. The same amount of money could be spent to create jobs which have a longtime value and as a consequence create more jobs. Even if it was just used to accellerate the whole project by not wasting effort on something which can be bought at a fraction. Like in having the funds to make a real moon station, instead of creating a rocket, which goes to the moon once or twice and then gets cancelled because at those costs, you cannot afford a moon station.

</comment><comment><USER17> I don't understand - what is the motivation here? The article is a little short, and it gives good insight into just how expensive this is (compared to other similarly classed potential space purchases). However, what I am failing to grasp is... why? Why spend so much when these other options are available? Surely not ignorance. Is it malice? corruption? Someone's ego?

<comment><USER18> This is a jobs program which happens to produce rockets. The rockets are not the key objective, the jobs are.

<comment><USER19> Playing devil's advocate here: wouldn't "preserve institutional knowledge about building rockets" also be it's goal?

<comment><USER20> > preserve institutional knowledge about building rockets

No it would be "preserve institutional knowledge about building OUTDATED rockets"

If you are a tech company are you going to run your own outdated servers at 10x the cost because you would like to preserve institutional knowledge about running outdated hardware ?

Your argument would be correct if the cost difference was not that huge, the fact that it is so huge indicated that the tech they are using is very very outdated. No point in preserving anything about it.

<comment><USER21> The cloud hardware metaphor is a good one.

Preserving _knowledge_ is easy and cheap.

Preserving _capability_ (that is to say, people and companies with knowledge and ability to use it) is not.

To use the metaphor, a huge part of the military procurement budget is dedicated to continue building, deploying, and operating on-prem servers.

Not because it's more efficient, but because at an international level, having a cloud provider (or in this case Russia or China) tell you "No" when you ask to renew or expand, is unacceptable.

Unlike tech, machine shops filled with trained people can't be provisioned with a click...

</comment></comment></comment></comment></comment><comment><USER22> Compared to $1m for a reusable Raptor that has more power at sea level.

There really should be painful monetary and career consequences for the people who makes these insane decisions. The reality is it doesn't matter a bit and they'll retire with a wall full of accolades.

</comment><comment><USER23> Space isn't easy. Going to the moon is significantly harder than LEO. I don't think one can claim functional and performance equivalence between SLS to FH.

[https://youtu.be/Y81vx__JngY](https://youtu.be/Y81vx__JngY)

Now, if the argument is: Why go to the moon? Well, that's a different conversation.

<comment><USER24> Jim Bridenstine sounds like a competent guy, but the fact is that NASA as an organization is no longer competent. They can't build rockets anymore. SLS has been a complete failure. The program was announced in 2011. The plan was to make an expendable vehicle based on existing RS-25 engines, existing SRBs, and the existing Space Shuttle external tank. This idea of reusing all of these systems was based on the previous Constellation project. Over the past decade NASA has spent $15 billion on SLS and they have yet to launch. Falcon Heavy went from a concept in 2011 to launching Elon Musk's car into interplanetary space in 2018. The development cost for Falcon Heavy was around $500 million. That is 30x cheaper and almost twice as fast.

Orion has also been in development for over a decade and has cost $16 billion. Current estimates put the total development cost at $23 billion.

If you add up the development costs of Constellation, SLS, and Orion, I am sure it would be close to $50 billion. That's for an expendable launch system that costs $1 billion per launch. For the price of a single SLS launch, you could develop Falcon Heavy and launch 5 of them. Obviously Falcon Heavy doesn't have all the capabilities of SLS, but SLS is vaporware. And by the time SLS is working it will have to compete with Starship. It seems totally insane to continue this program considering that in the best case, we will have a launch system that is 10x more expensive than its competitor.

<comment><USER12> Firstly, this money is a pittance compared to the costs of development of F-22, which produced a habdfull of planes and thats it.

Second, the decision to use existing shuttle conoonebts was made basically by congress/ lobbyists. Congress gets insane amount of control over nasa, and can fund or de- fund individual projects. As a result, nasa has to tailor them to something congress will like and approve. This miopic managenent probably results in what weve got

<comment><USER25> A) Whataboutism B) The program cost for the F-22 was 67B. It produced more than "a habdfull of planes", it produced 187. The reason it ended up costing so much (per aircraft) is the development cost had to be spread across fewer airframes than planned. Truncating the purchase to 187 is perhaps one of the greatest military acquisition mistakes in my lifetime.</comment></comment></comment></comment>


The Illustris project: A large cosmological simulation of galaxy formation - <AUTHOR> http://www.illustris-project.org/about/

<comment><USER2> For context, this project just published a paper in Nature on this simulation [0] and a preprint is available [1]. One of the reasons this simulation is big news is its use of a new numerical technique (a "moving mesh"[2]) for the hydrodynamics which purportedly handles fluid instabilities with much greater accuracy. One effect of this is that cold gas flowing onto galaxies interacts with the hot gas halo around galaxies, which prevents that cold gas from going directly to the centers of galaxies. This results in larger simulated galaxies, which match better with observations.

[0] [http://www.nature.com/nature/journal/v509/n7499/full/nature1...](http://www.nature.com/nature/journal/v509/n7499/full/nature13316.html)

[1] [http://arxiv.org/abs/1405.1418](http://arxiv.org/abs/1405.1418)

[2] Previous work used either a fixed mesh with adaptive refinement for higher-resolution or a "smoothed particle hydrodynamics" scheme where particles are used to simulate fluid flows. Both schemes have advantages and disadvantages, but the claim is that this moving mesh code ("Arepo") does the best job of treating fluid instabilities. The paper describing the new code is at: [http://dx.doi.org/10.1111/j.1365-2966.2009.15715.x](http://dx.doi.org/10.1111/j.1365-2966.2009.15715.x)

<comment><AUTHOR> The Nature paper mentions that past simulations were unable to create the current population of disk galaxies (e.g. Andromeda, Milky Way).

They say "The culprit was an angular momentum deficit leading to too high central concentrations, overly massive bulges and unrealistic rotation curves." [0]

Any idea why these older sims wouldn't create the correct angular momentum in late-type galaxies?

[0] [http://www.nature.com/nature/journal/v509/n7499/full/nature1...](http://www.nature.com/nature/journal/v509/n7499/full/nature13316.html)

<comment><USER2> > Any idea why these older sims wouldn't create the correct angular momentum > in late-type galaxies?

My understanding from seeing talks this group has given is the culprit was the same effect I mentioned. If the fluid instabilities aren't properly handled, gas flowing onto galaxies stays cold and flows into the centers of galaxies [0], which results in less angular momentum because much of the material is at small radii. Correctly computing the fluid behavior results in gas not plunging directly to the centers of galaxies and instead building up at somewhat larger radii. For a given rotation speed, a larger galaxy will have higher angular momentum, so that's the sense in which their simulation improves on things.

[0] - This behavior has been called "cold flows" or "cold mode accretion" and was seen in simulations, but hasn't had direct observational support.

<comment><AUTHOR> Interesting. Thanks very much for the explanation.

</comment></comment></comment></comment><comment><USER3> I'm fascinated by the distinct types of structures that gravity and other forces create at such large scales. The really zoomed-out views of the universe remind me of neurons in a microscopic view of the brain.

When I was researching this stuff last year, I tried to use the Millenium Simulation (the world's largest n-body simulation at the time, 2 billion cubic light-years) to visualize this effect using webgl, but wasn't quite satisfied with the result [1]. Thanks to Illustris I've found out that one of the researchers on the project has created several excellent visualizations that seem to use some of the techniques from the larger simulation. They are worth taking a look if you're interested in visualization/simulation or how galaxies form [2].

[1] [http://www.asterank.com/galaxies/](http://www.asterank.com/galaxies/) [2] [https://www.cfa.harvard.edu/~dnelson/#tab-5](https://www.cfa.harvard.edu/~dnelson/#tab-5)</comment>


Can higher CO2 be more beneficial to the world? - <AUTHOR> http://www.cato.org/blog/co2-benefits-outweigh-climate-stressors-chinese-wheat

<comment><AUTHOR> The source article can be found in the link below, however you do need an AMS membership to download the PDF. I have not found a free version yet.

<http://journals.ametsoc.org/doi/abs/10.1175/JAMC-D-12-039.1></comment>


Python Modernize: Modernizes Python code for eventual Python 3 migration - <AUTHOR> https://github.com/mitsuhiko/python-modernize

<comment><USER2> How is this different from the 2to3 tool included with Python?

<comment><USER3> It's a 2to3 mod that makes codebases compatible with both versions, instead of doing a Python 2 -> Python 3 conversion. I'm fine with 2to3's integration in distribute, which also allows supporting both from the same package, but some people, like mistuhiko, prefer not involving 2to3 as part of the build.</comment></comment>


Is Facebook Bug Bounty Bogus?  - <AUTHOR> I didn't think it was bogus until I found a Facebook  Bug nearly 2 months ago. It was a valid bug and I created a video like everyone else. I submitted the bug to facebook and thougth this would be a spammer's dream come true if any spammers get hold of it. I thought they would fix it soon, but after 15 days I get a reply saying sorry for the delay and somebody will be looking into it soon.
Now after more than a month since that email and nearly 2 months since the filing of the bug, I hear nothing. I check the bug and it has been fixed. I can tell it has been fixed because the form output has changed and there definitely has been a code update.
May be they are deliberately causing this delay so that less number of bug will be revealed in media and they don't look so bad ? <comment><USER2> I work at facebook on the bug bounty program, if you have an email, name or ticket id I can look into it for you.

There could be a few things going on here, maybe your bug was classified as low pri, maybe we misdiagnosed the bug.

Speculation but I would call into question your assertion that we fixed something based on your submission and then attempted to hide/delay it. We have not and would not do such a thing.

<comment><AUTHOR> It may not be intentional but what about unintentional fixes ? What happens to bugs that were valid when posted but fixed (unintentionally) right after a release/code deployment.

<comment><USER2> I need more information if you want me to look into this issue.

We have paid out on such issues before but there is no hard rule. In general we err on paying out if there is any question. We have paid out before when a submission wasn't a bug at all but lead us to some part of the code that we ourselves then found a security bug in.

It is in our best interest to payout whenever possible. More payouts = more submissions = more security bugs found and fixed.

<comment><AUTHOR> I think the report number is 173358208.

<comment><USER2> Cool, found it. Will respond in the email thread.

<comment><AUTHOR> Thanks for the reply, that clears things up.

<comment><USER3> for you yes ... for us no ! Can we know why you got no reply and no reward !

<comment><AUTHOR> This is the excerpt from the reply

"Sorry it took a while to respond. It took us longer than normal because we have had a few weeks of higher than average volume and this ticket was marked as fixed but we hadn't corresponded back to you yet."

"This was indeed fixed by a separate diff that had been committed but was not yet live when you submitted the issue. So in this case we didn't learn about a new issue but we did double-check some of our assumptions around this stuff."

And I got a reward of $500. Here is the POC [http://www.youtube.com/watch?v=x5HXv7nPgYo](http://www.youtube.com/watch?v=x5HXv7nPgYo)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> Any bug bounty program suffers from tons of junk mail from people who copy paste definitions from owasp and misunderstand whats going on.

Bug bounty programs are as legitimate as the company wants them to be by providing the time of engineers to analyze the bugs and the funds to reward researches. I don't think they can be bogus exactly, they are what they are.

Now, the reason they exist is because bugs have a value outside the bounty program. So you, as a researcher, either have something you can profit from (in which case the choice to report to the bounty is your personal choice and there are others should you have to reanalyze) or you have a worthless curiosity and you can't really complain that no one is giving you money.

It sounds like you spent time entering a 'marketplace' that you don't have the capability to fully participate in, if you're all hung up on Facebook turning over a reward.

<comment><AUTHOR> You missed a key point, "responsible disclosure". Not only to the company but to the public. I care less about whatever bounty they give or do not give. They could just deny the bug but this lingering is too much. I like Google's program where you have to wait x number of days and then you can disclose any bug. I guess all I wish from these programs is that they fix the bugs fast which is good for them. I did not spent time to enter anywhere. I was just curious 1 day and played around for an hour or two. I guess you are assuming too much about me and my capability and you cared so much as to create an account just to reply to this post...meh :/

</comment></comment><comment><USER5> I have had 5-6 bounty bugs answered in very short order.. this mush have slipped thought the cracks.</comment>


Apprentice.at – Apprenticeships, not internships - <AUTHOR> http://apprentice.at/ <comment><USER3> "We expect that you will have your own equipment and your own software. Up&Up uses Macs and Adobe Creative Suite and will expect you will have a late model/version of each. "

from [http://www.upandup.agency/careersjob_id=job_20140721143320_P...](http://www.upandup.agency/careersjob_id=job_20140721143320_PYKUIEK4CHAK5QZM)

the nerve...

<comment><USER4> I have mixed feelings about that.

You know, many young kids actually have a Mac already, and if not, a new Mac and a monthly subscription for Adobe costs a fraction of what 3 months in college costs.

And if you've already spent a couple of years in college studying literature, algebra, music, philosophy, psychology, introduction to business and what not, you might just want some practical experience that within a few months could actually land you a job that provides a decent paycheck.

<comment><USER5>
      you might just want some practical experience that
      within a few months could actually land you a job
      that provides a decent paycheck.

It always struck me as ironic that student engineers, who are on track for well paid jobs, get offered paid internships; but student journalists, who are on course for poorly paid jobs, are expected to do unpaid internships - <USER2> even _pay_ to _do_ internships.

<comment><USER6> I am a little confused as to how that is ironic. Strikes me as anything but that

<comment><USER5> To vastly over-simplify our economy, we usually expect people with greater ability to pay to pay the same or more for substitutable goods. For example, people with more money can buy fancy coffee from starbucks, while typically people who can't afford that will make do with instant coffee.

In this case, the people with the greater ability to pay have to pay less.

That seems ironic to me, even though I know enough about the economy to understand why it happens.

<comment><USER7> There are far more English lit grads that are competing for any job with a "publisher" or "journalism"

Also newspapers are well known for poverty level wages even when they had 30% profit margin.

A major publisher can pick and chose from ox-bridge grads who got a first.

</comment></comment></comment></comment></comment></comment><comment><USER8> Apprenticeship?

Any role I looked at there had significant requirements. "Must have intermediate knowledge of Swift" etc etc.

That's not how apprenticeships work. If anything, this is a far worse version of an internship given that some of them are measuring the tenure in weeks.

Edit: Hah. "Our apprenticeship is not a junior role. The majority of people who join thoughtbot as an apprentice leave a job working as a developer or designer to join us. Because it is such a high bar, even people who have been working in the industry for many years may not make it through the interview process."

Insane. You've somehow managed to find a way to destroy the value of employment even further.

<comment><USER9> > Insane. You've somehow managed to find a way to destroy the value of > employment even further.

The value of "work", I would say.

But yeah, corporatism is insanely good at it, and worst of all, in a subversive way. The society (through education and others) is being silently shaped by corporatism tenets so that, by now, even grassroot-like movements - not at all affiliated with the major "interests" \- live by these ideals.

</comment></comment><comment><USER10> I can't seem to find any reason to think of this as anything other than an internship rebranded.

An apprenticeship doesn't have to be four years, but in 3-months I don't see anyone gaining any real fundamental depth of learning. Surface level skills? Sure.

If this was a genuine "Apprenticeship" I'd expect anything from 18 months+

<comment><USER11> I agree with this. I did three co-op terms (I'm not sure how they're formally different from internships but anyways...) two of which were four months long, and one which was eight months long.

I found that after three months, I was just getting to the point where I could make meaningful contributions. For my two four-month co-ops, this meant that I hardly got to contribute. I really preferred the eight month co-op term, where I felt like I was much more part of the team.

</comment></comment><comment><USER12> The four-year model is based around teaching fundamentals and then adding current technologies on top. In addition to being relatively slow, it often fails to teach the most recent set of technologies.

However, I don't think apprenticeships are a good fit. The apprenticeship model is great for skills that do not change rapidly or need frequent updating. Carpentry five years ago is much the same as carpentry today. This works well because in such areas, you can afford to gloss over or just skip many fundamentals because the hands-on skills are all that will be needed for a multi-decade career.

This model doesn't map well to development. Current technologies move fast. Adapt rapidly. One year's hot approach is the next's old broken crap. Our educational systems need to be designed around enabling people to adapt rapidly. The only way I know to do this is to teach people the fundamentals they need to adapt to anything within their field.

I'm happy to entertain other approaches, but this seems like hammering a round peg into a square hole because using a square peg is inconvenient.

<comment><USER13> I have to disagree; apprenticeships work perfectly fine in IT.

Yes, technology moves fast and if one wants to stay current in the field, one has to keep learning.

But the fundamentals remain the same. It has been forty years since TAoCP was published for the first time. Has it become irrelevant? Hell, no. Has logic or maths changed because of this year's fad? Of course not.

Is four years a long time? Not if you want to give a young person a thorough education and a solid understanding of the craft, from the foundations up.

Instead, you know, of just train them to hammer out code in the currently most hyped language, without really knowing what they are doing and why it all works.

Teach concepts, not implementations.

Edit: Typo, standpoint clarification.

<comment><USER14> I don't think you're disagreeing here. Kalium is saying that an apprenticeship model is the wrong way to teach these skills.

<comment><USER13> That's exactly where I disagree. In my opinion, the apprenticeship model works quite well in IT.

I guess I'm biased here; I grew up in Switzerland and did an apprenticeship in IT. Also, the company I've been working for the last five years has had apprentices since it's very beginnings and most of the apprentices chose to stay afterwards.

<comment><USER12> Apprenticeships, as typically proposed in a context such as this one or in bootcamps, don't teach fundamentals and train skills. They skip the former in favor of getting to the latter more quickly. Skip logic and math in favor of React and Bootstrap, that sort of thing.

That is what I am saying is a poor fit. None of the items on this list, last I looked, are four-year apprenticeships that include CS fundamentals.

</comment></comment></comment></comment></comment><comment><USER15> Apprenticeship is nothing of the past! It is still done in some countries. And not poor countries. Switzerland for example. Read here: [http://qz.com/122501/apprenticeships-make-young-people-in- sw...](http://qz.com/122501/apprenticeships-make-young-people-in-switzerland- employable/)

<comment><USER16> Yeah but they're nothing like this. An apprenticeship in CH lasts between 2 and 4 years, you get paid around 15k CHF and you go to school something like 2 days a week. Also, big-ish corporations have to take on apprentices by law.

</comment></comment><comment><USER17> I don't really see the difference between this and a good internship in the software development field. Usually you get a mentor and they nurture you fairly well or help you to help yourself (if it's a good internship and not a "oh free codemonkey" mindset). I'd say dev internships are way ahead of the curve compared to other industries.

The real problem (imo) is that while there's a huge demand for developers at the end of the day it's still hard to program well and there's a potentially strong penalty on being sloppy while learning and on top of that the opportunity cost of people nurturing you from zero/a low level is pretty high. There's a difference between being able to glue working stuff together and understanding an existing codebase. Most jobs require the latter and solid engineering principles on top. I'm afraid there is no hotfix/silver bullet.

Call this apprenticeship or whatever you want, I agree that the right step is taking time to develop talent even if it costs you money now. But the downside is that the workforce is ultramobile so you may invest a lot for no return.

I think the management trainee programs of bigger companies could be an interesting model to investigate. They are essentially meant to groom and train future >middle management through on the job training in all areas of the company.

</comment><comment><USER18> If you do apprenticeships, look at Germany how to do it correctly. Apprentice.at is not the solution to the problems you are facing.

</comment><comment><USER19> Well, I was confused by the domain since I acutally did my apprenticeship and study in Austria (the one with mountains, no kangooros here). Well here it looks different, apprenticeship includes working for a company and going to a public school finishing with a certified diploma. These offerings on apprentice.at doesn't look anything like this.

</comment><comment><USER20> Something I didn't get from the website was the actual difference between an apprenticeship, an internship, and a straightforward job. Also, there are legal distinctions surrounding what can be done with paid and unpaid interns, so it would be useful to know how an apprenticeship compares to all three of those other models.

<comment><USER21> Not sure about the legal differentiation, but a good practical explanation is here - [http://www.amazon.com/The-End- Jobs-9-5-ebook/dp/B010L8SYRG](http://www.amazon.com/The-End- Jobs-9-5-ebook/dp/B010L8SYRG)

</comment></comment><comment><USER22> I expected something much different. I transitioned into teaching higher education a few years ago and I would love to partner with places to send my students after they complete their two-year associates degree. I think if I bootstrapped people with the basics of breaking down problems, building code, etc, and could then send them to a great apprentiship, that would change the way we view education.

But what I see here is a very different than that. Most of my students wouldn't financially apply, let alone make it for skills.

Some of the ads even state that people with industry experience wouldn't even make it through the interviews... so this looks at first glance like a way to get some cheap labor from semi-experienced developers.

I don't know if that's what I want to see from our industry, and it makes me a little sad.

</comment><comment><USER23> This is just an internship rebranded, right?

...because my understanding of apprenticeships is that they are very very different to this concept (maybe it's different around the world - I'm from Australia).

</comment><comment><USER24> The appearance of these seems like a natural reaction to the rise of coding bootcamps. I can easily imagine how employers are hesitant to take on a newly minted bootcamp grad, but may consider an apprenticeship program (yeah, it's a dressed-up internship) as a kind of stepping stone / way to mitigate risk of taking on a jr. dev from one of the bootcamps.

</comment><comment><USER25> Sounds great and seems to better process than bootcamps since you are actually getting paid. Albeit a little low, $500/week in SF for 3 months is kind of low. (iOS at ThoughtBot)

<comment><USER26> One of Thoughtbot's sample success stories was a graduate of not one but two paid bootcamps, and had industry work experience...

To be good enough to try out at thoughtbot on a little less than Australian minimum wage, their baseline expectation is that you've already designed and shipped an app, probably work as a designer/developer for another company and are prepared to wait "several months" for them to deign to reply to you.

On your knees, serfs!

</comment></comment><comment><USER27> Why the Austrian domain?

<comment><USER28> I assume they were going for a domain hack... apprentice at such-and-such company.

</comment></comment><comment><USER29> Where is the Washington Apprenticeships, Seattle preferably :)

<comment><USER30> I am not affiliated with site, but I believe the apprenticeship model is good. I'm currently looking for a apprentice ([http://jeffrey.io/writings/apprentice.html](http://jeffrey.io/writings/apprentice.html)) to do my open source bidding.

<comment><USER31> Does your apprentice have to be local to you or can they be remote?

</comment></comment></comment><comment><USER32> Background: I'm familiar with Sparkbox's 6 month paid apprenticeship and know a few people who went through it. I'm also a graduate of the [http://bloc.io](http://bloc.io) full-stack apprenticeship.

If I'm not mistaking, the current software "craftsman" and "apprenticeship" movement has been largely influenced by Dave Hoover's Apprenticeship Patterns (free on the web): [http://chimera.labs.oreilly.com/books/1234000001813/index.ht...](http://chimera.labs.oreilly.com/books/1234000001813/index.html)

A few quotes from that book:

</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>

This book is written for software apprentices—for people who have had a taste of developing software and want to take it further, but need some guidance. Whether you have a college degree from a prestigious computer science program or are entirely self-taught, you recognize that there are great developers out there, and you aspire to achieve the same mastery that they possess.

...

When discussing what it means to be an apprentice, Marten Gustafson, one of our interviewees, put it best when he said, "I guess it basically means having the attitude that there's always a better/smarter/faster way to do what you just did and what you're currently doing. Apprenticeship is the state/process of evolving and looking for better ways and finding people, companies and situations that force you to learn those better/smarter/faster ways." We think there's a lot of value in having this internal drive that is not dependent on anyone else to bestow solutions upon you, and that leads you to find constructive ways of dealing with problems.

...

Apprenticeship is the beginning of your journey as a software craftsman. During this time you will be primarily focused inward, intent on growing your craftsmanship. While you will benefit from the attention of your peers and more experienced developers, you must learn to grow yourself, to learn how you learn. This focus on yourself and your need to grow is the essence of what it means to be an apprentice.

</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>

In my mind, the key difference between an internship and apprenticeship is the focus and purpose. Generally, a company hires an intern as a cheap way to get extra help. Sure, they will help the intern as needed, but primarily so they can accomplish something for the company.

Whereas, when a company takes on an apprentice, the primary focus is on providing an awesome, safe learning environment. Sure, the apprentice will likely do something of value for the company, but that's a side benefit.

Also, generally people think internship == work while apprenticeship == learning.

So technically there may not be a lot of difference, but I argue that the difference in paradigms has a large impact.

\---

I'm not familiar but any of the other apprenticeships, but Sparkbox's is much better than what's generally being discussed in the other comments here. You don't need to already have significant experience to join. All you need is an interest in web development. See more here: [https://github.com/sparkbox/apprenticeships](https://github.com/sparkbox/apprenticeships)

So don't let one company's program taint your view of the rest!

<comment><USER33> Thanks for sharing your thoughts. I got introduced to the Sparkbox apprenticeship program through this post, and that's helpful! I wonder what your friends (or people you know) thought of the program?

<comment><USER34> I am alum of Sparkbox's apprenticeship program (and builder of [https://apprentice.at](https://apprentice.at)) and would be happy to share my experience with you. If you'd like to chat, ping me!</comment></comment></comment>


Google Eyes Mouse Movement as Possible Search Relevancy Signal - <AUTHOR> http://www.webpronews.com/topnews/2010/07/13/google-eyes-mouse-movement-as-possible-search-relevancy-signal <comment><USER2> From the comments:

A No Google Can Do Lots Ov Things But How Are You Guna Put A Client Assistant Residing In A Clients Computer ....... Theres No Way A Human Being Will Fit ... But Hay Hoo Would Love To See

Think When Someone Trys To Contest Patent Ad Go For Term Client As Patent Weakness There Are Lots Of Others Out There But Client ........... Er A Prob No Why BUT CLIENT :)

Lovely.</comment>


Brisk walk is better exercise - <AUTHOR> http://well.blogs.nytimes.com/2013/12/04/why-a-brisk-walk-is-better/

<comment><USER2> Seems like really well done science reporting that not only addressed the correlation v causation possibility, but explained why this finding is interesting even if it is just correlative.</comment>


32-Thread Xeon Setup for Less Than a Haswell-E Core I7 - <AUTHOR> http://www.techspot.com/news/64312-affordable-16-core-32-thread-xeon-pc.html <comment><AUTHOR> I have an even cheaper Xeon setup that's based on the older LGA1366 socket and off-lease workstation-class machines such as the Dell Precision T5500 or HP Z600. Those processors can be had for dirt cheap -- I got a matched pair of X5660 for $25 on Ebay. They don't match the single-threaded performance of current generation Intel processors, but they're still decently fast.</comment>


Big Data's Radical Potential - <AUTHOR> https://www.jacobinmag.com/2015/03/big-data-drones-privacy-workers/ <comment> rm_-rf_slash I have been hearing more and more from the security community, including being told personally by Bruce Schneier, that data is rapidly becoming a"toxic asset." Anything stored on a server can be stolen, and the more your business depends on data - instead of an actual product - the more attractive it is for a hacker to steal it for personal gain or malicious intent.

<comment><USER2> Which is exactly why we must decentralize.

</comment></comment><comment><USER3> Quote: "There is no consensus about what "big data" is, exactly, but fans and critics agree that it's reshaping the way we live."

Big data is the data that exists from the tracking of every tiny little thing you do. If you think that is going to make for a better society, have I got a history lesson for you.

<comment><USER4> It hypothetically could, but there's no economic incentive to use it to improve human life by exploring trends.

For instance, what if people who logged into Facebook at 11 AM had a higher chance of brain tumors from the idiotic content? This trend would only be possible to find with big data... but it won't be looked for.

<comment><USER5> Is your point that there won't be people looking for arbitrary foolishness? I feel like I must have missed something here.

There is a fundamental problem in that no one knows the questions to ask, which might be where you're leaning, but the silliness of your example made it difficult for me to be sure.

There are many very smart people working on this problem, though, I can assure you of that.</comment></comment></comment>


Ask HN: Is there a Photoshop rental service? - <AUTHOR>

Is there a service where I could remote to a server (either Mac or Windows) with Photoshop installed where I could use it for an hour or two for several dollars or euros per hour? <comment><USER2> You can rent individual applications from Adobe's Creative Suite directly:

[http://www.adobe.com/products/creativesuite/cssubscription.h...](http://www.adobe.com/products/creativesuite/cssubscription.html)

I don't think you'll find any hourly-based software usage although that would be really interesting to see ... something like EC2-running-x-application boxes.

<comment><AUTHOR> Thanks -- it looks like this is the only viable option for me.

</comment></comment><comment><USER3> >remote to a server (either Mac or Windows) with Photoshop installed where I could use it for an hour or two for several dollars or euros per hour?

Nope, against the EULA too. [http://www.adobe.com/products/eulas/pdfs/Photoshop_On_a_Serv...](http://www.adobe.com/products/eulas/pdfs/Photoshop_On_a_Server_Policy_5-31-2011.pdf)

<comment><AUTHOR> Oh! Well, that would explain why I can't find a service like this...

</comment></comment><comment><USER4> Have you tried pixlr (<http://pixlr.com/editor/>)? It is a very scaled down version of Photoshop, but if your needs are basic it can fill your need and is free. It even has support for .psd files and can preserve layers.

<comment><AUTHOR> Thanks for the suggestion! I just tried this with a recent PSD that a client sent me, but it came back with an error.

</comment></comment><comment><USER5> If you only need some hours, why you don't use 1 month trial version? [http://www.adobe.com/cfusion/tdrc/index.cfm?product=photosho...](http://www.adobe.com/cfusion/tdrc/index.cfm?product=photoshop)

<comment><AUTHOR> Unfortunately, my clients send me PSDs at random points throughout the year, so I can't squeeze my usage into a single month. Thanks for the suggestion, though.

</comment></comment><comment><USER6> Not a service, but you can go to Kinko's which has retail locations everywhere. And they have high-end printers next to the computers.

<comment><USER7> exactly. or use Gimp.

<comment><AUTHOR> The problem I run into when trying to use a different image editor, like Gimp, is that sometimes my clients send me PSDs with complicated photoshop layer masks/filters that come across wrong/weird in anything else.

</comment></comment></comment><comment><USER8> Hmm, the question makes me think that rather that wanting to use such a service, the asker wants to build one, and tries to see if there are any competitors.

<comment><AUTHOR> I get clients sending me PSDs, every once in a while, that I can't just export as-is with Wenovo PSD Viewer. It's kind of a pain to have to chase down a designer pal just to have him or her turn on/off a layer or two and export to PNG for me. I do this maybe 8-10 times a year, so it's hard to justify paying for a Photoshop license just to perform some exports.

<comment><USER8> Get Photoshop Elements then. Way cheaper.

And it's ironic that I would get downvoted for proposing this, but you can get a copy of Photoshop for free of the intertubes.

(I say, ironic, because in other threads I would get downvoted for saying that "freely sharing" commercial software should remain illegal and it doesn't matter if it's "only a copy" and "you wouldn't ever buy it anyway". Make up your minds people...).

<comment><USER9> I would absolutely recommend getting Photoshop Elements. It's got most of the features of Photoshop you'd ever use, and is much cheaper. You can get it bundled with Premiere Elements for $74 on Amazon right now, in fact. In fact, I bet you'll be surprised how powerful Photoshop Elements is; I could follow many detailed Photoshop tutorials in it with no problem at all.

The only problem you might hit with Photoshop Elements is that you can't group/ungroup layers in it by default. If you need to do that much, you might want to get Elements+ (<http://simplephotoshop.com/elementsplus/>) as well, which is an addon that unlocks some of the hidden features of Photoshop in Photoshop Elements.

<comment><AUTHOR> Oh, nice! This could work for me! :) Thanks for the suggestion!

<comment><USER9> No problem at all! You might want to try out a Photoshop Elements trial along with an Elements+ trial and make sure it fits the bill for what you need, but I bet it would.

<comment><AUTHOR> Wilco!</comment></comment></comment></comment></comment></comment></comment>


The most stupid C bug ever - <AUTHOR> http://www.elpauer.org/?p=971

<comment><USER2> This is a good article because it shows the author's thought process. That means we can see what he did wrong and learn to think differently.

The first thing that sticks out as problematic is the assertion that a level of indirection around tmpfile is going to be slow. There are two ways we can determine if this is true; Try It And See, or read the output of the compiler to see what code it generates. Let's try the second one.

We'll make a file called slow.c with the contents:

        int f(void){
          return 42;
        }

        int g(void){
          return f();
        }

Then we can see what code gcc generates with the -S option:

        $ gcc -S slow.c

and looking at slow.s. Here's the important part of g (with some annotations removed):

        g:
        .LFB1:
    	pushq	%rbp
    	movq	%rsp, %rbp
    	call	f
    	popq	%rbp
    	ret

So, we're calling f here. But you don't compile your production code with -O0, so let's try -O3. Here's f:

        f:
        .LFB0:
    	movl	$42, %eax
    	ret

And here's g:

        g:
        .LFB1:
    	movl	$42, %eax
    	ret

Notice how we're not calling f anymore; we just get f's body right in our function. So there's no speed cost to writing a function that only calls another function. This is the simplest possible case for an optimizer to optimize, and of course it does.

If you want to be explicit, you can always inline g. Then, at g's call site, we see:

        main:
        .LFB2:
    	pushq	%rbp
    	movq	%rsp, %rbp
    	call	f
    	movl	$0, %eax
    	popq	%rbp
    	ret

Which is almost the same thing as what -O3 produced, except g's body is copied into its caller instead of f's body being copied into g. (And this is at -O0.)

Another case where the thought process goes awry is the guess that there is a preprocessor bug. It's easy to verify, run gcc with -E and see what you get. Here's our test case:

        #define foo f

        int f(void){
           return 42;
        }

        int g(void){
          return foo();
        }

Preprocess:

       $ gcc -E buggy.c

        int f(void){
          return 42;
        }

        int g(void){
          return f();
        }

And look. No bug!

So let's move on to the final problem, the weird comment. We'll again see what our preprocessor output looks like on a minimal test case:

        #define FILE int

        #ifdef _WIN32
        #  define tmpfile w32_tmpfile
        #endif

        FILE *tmpfile(void) { return (FILE *) 0 }
        FILE *w32_tmpfile ( void ) { return (FILE *) 0 }

        void test(void){
          FILE *g;

          if (code == 200) {     // Downloading whole file
            /* Write new file (plus allow reading once we finish) */
            // FIXME Win32 native version fails here because Microsoft's version of tmpfile() creates the file in C:\
            g = fname ? fopen(fname, "w+") : tmpfile();
          }
        }

We end up with:

        int *tmpfile(void) { return (int *) 0 }
        int *w32_tmpfile ( void ) { return (int *) 0 }

        void test(void){
          int *g;

          if (code == 200) {

          }
        }

Which looks like our code has suspiciously gone missing. Let's try removing the comments:

        int *tmpfile(void) { return (int *) 0 }
        int *w32_tmpfile ( void ) { return (int *) 0 }

        void test(void){
          int *g;

          if (code == 200) {
            g = fname ? fopen(fname, "w+") : tmpfile();
          }
        }

And hey, our code is back. Must be something to do with the comments.

Anyway, the C toolchain is very simple, so let the computer do the compilation for you when you suspect the compiler isn't doing what you want. Read and understand its output; don't rely on a tool that does something that you couldn't do yourself.

Something I mentioned in that code completion article the other day was "don't rely on your editor to be your brain". This got a lot of downvotes, but this is exactly the problem the author has here. His editor didn't interpret the source code in the same way that the compiler did, and that's what matters.

Learn the language you are using so that you can spot bugs! Don't think something isn't a comment just because your editor doesn't show it in italic orange! Suspect an editor bug, not a compiler bug.

And finally, if you use correct grammar in your comments, this wouldn't have happened:

        /* We use our own tmpfile implementation here, since Windows' writes directly to C:/. */

<comment><USER3> Alternatively, use a debugger. This issue would have become obvious in seconds if he had stepped through it with a debugger. Of course if you only have gdb as a debugger, that's easier said than done - I'd too rather stab myself in the eye with a hot poker than using gdb again. Proper tools make issues like this much less painful to solve.

<comment><USER4> What was it so painful about it you had to highlight gdb specifically? I'm just starting out with it, so far it seems a lot more flexible than its visual counterparts do.

<comment><USER3> Its lack of easily seeing the surrounding code you're stepping through. Its cumbersome ways of use (having to type commands for inspecting variables rather than just being able to point at them). Its difficulty of learning it.

And all of that for no benefit - I spend hours learning vim too, but at least there I got flexibility and a supremely powerful editor in return; but there is nothing gdb can do that the Visual Studio debugger can't. And there you just set a breakpoint and press run, while for gdb it takes you a day just to get integration with your editor set up the first time. I'm not sure what you mean with 'flexible' - a debugger is by its very nature interactive, so the typical advantages of text-based tools don't apply. But of course YMMV etc.

<comment><USER2> gdb can "list" and "where", which gives you the lexical and dynamic contexts respectively.

Here come the downvotes... but if you don't know the code running in the debugger well enough to remember the details, well, you've found your bug. Read and understand your code very carefully before you waste your time single-stepping through it.

(This is the biggest problem I see with developers that use IDEs -- they forget that they have a brain, and that your brain is always going to be faster than clicking shit in Eclipse.)

<comment><USER3> Oh great, another internet toughman boasting about how all those IDE-using pussies are just stupid and how Real Programming should be left to Real Programmers (queue story of Mel here somewhere). _rollseyes_

When you have to type commands to see what you would otherwise see immediately, how is that _not_ a usability deficiency? GDB fans just have Stockholm syndrome.

And if you think there is anyone on this world who has a complete mental model of each line of code in a 10k-line project, let alone a 100k or 1m one, you're insane. I'm not talking about debugging a 15-line function, But even then, single-stepping through a function of that size doesn't even cost extra time when you use proper tools (and not that POS gdb), so 'waste your time' doesn't even apply there.

Debuggers have a bad rep with some crowds because of the damage gdb did - people think that that's how debugger work and can only work. Navel-gazing at its worst.

<comment><USER2> _Oh great, another internet toughman boasting about how all those IDE-using pussies are just stupid and how Real Programming should be left to Real Programmers (queue story of Mel here somewhere). rollseyes_

If you want to talk like this, go back to Reddit. I'm not an Internet toughman, I'm describing the motivations behind the interface of gdb. Turns out that just because someone disagrees with you doesn't mean they're dumber than you.

In this case, I think it's worth listening to me because I've used pretty much every development tool imaginable to write hundreds of thousands of lines of code. I may know what I'm talking about! Shocking!

 _When you have to type commands to see what you would otherwise see immediately, how is that not a usability deficiency? GDB fans just have Stockholm syndrome._

Information overload is just as bad as too little information. GDB lets you see what you need to see when you need to see it. It doesn't guess what you want it to do; you tell it. You're the brain and it's the computer.

And, it hooks into your text editor if you want that little => next to the line of code GDB is on. I've personally never found this to be useful. (As I mention in a comment above, it's rare for modern compilers to produce code that runs top-to-bottom exactly as you've typed it anyway. The source code is an explanation of the sort of steps you want the computer to take, but it's not an exact model of what the comptuer's going to do. Saying "we're now running this line of code" can be very misleading.)

 _And if you think there is anyone on this world who has a complete mental model of each line of code in a 10k-line project, let alone a 100k or 1m one, you're insane. I'm not talking about debugging a 15-line function._

This is just plain wrong. The debugger is the wrong tool for analyzing a bug that persists over 10k lines of code. The key to debugging is to reduce the scope of the problem, and the way to do that is by not tightly-coupling large chunks of code. If you have a bug that requires a mental model of 10k-1m lines of code, unit tests and refactoring is the tool you need to be using.

But, with that in mind, 10k lines is not that much to keep in one's memory. I maintain cperl-mode.el, which is 10k lines of elisp that I did not write. I haven't touched it for months, but I still know where the important parts are and how they interact. Reading is one of the most important skills a programmer can have. If you can't remember what you've read, you need to slow down. Lack of understanding causes bugs.

 _single-stepping through a function of that size doesn't even cost extra time when you use proper tools (and not that POS gdb), so 'waste your time' doesn't even apply there_

Yes it does. Single-stepping requires a round-trip between the computer and your brain for every line of code. When your IDE jumps you to a new file because you stepped into a function, your brain has to context-switch and read the surrounding code. All in all, it's a slow and complicated operation compared to the normal process of running your unit tests and scanning the logs if there is a failure. That case is fast because most parts are done by the computer; it just gives you a few pieces of information that you can use to analyze, tweak, and re-run. And you can drink some coffee while the computer does most of the work!

A debugger is for a very special case where unit tests cannot find bugs, or the effort to write these test would be too high. A good example is examining a core dump from a production process. You load it up in your debugger and can inspect the program state in great detail. You see that the current call frame is 0x626f6f66. That looks like the text "foob", which seems like it might have come from some text your program was working with, "the foobar chronicles". But you're using bounds-checking for your string operations, so why the bug? Use the debugger to inspect some local in-memory state, like the "len" parameter to strlcpy. It's 2938473873! Must be an integer overflow somewhere.

The key here is that everything we did was interactive and required human thought at each step. We didn't know what the problem was, so we asked the debugger for some data. Then we thought about it for a while, came up with a theory to test, and asked the debugger for more information to prove or disprove our theory. After repeating this a few times, we came to the conclusion that we are doing an addition wrong in the foo function, and that's making the program segfault.

With that in mind, we switch back to our text editor, write a test for the length-calculation math, and then fix the math. We shouldn't need a trip to the debugger for a while, because we use the debugger to collect information in odd cases, not to watch our program run normally.

So anyway, I guess my hangup with the graphical IDE-based debuggers is "why". Why are you writing code that needs to be single-stepped regularly? Why is your codebase so messy that you can't understand it? Why is your time so worthless to you that you are doing the computer's work for it, instead of the other way around?

A debugger is a tool to use for investigating weird things, not something you should bust out everyday.

 _Debuggers have a bad rep with some crowds because of the damage gdb did - people think that that's how debugger work and can only work. Navel-gazing at its worst._

A lot of insults, but not a lot of information. If you're so sure that Visual Studio's debugger has solved all of programming's problems, why not share a concrete example of how you use it? Your post adds nothing to the conversation and makes people wish your computer would punch you in the face.

<comment><USER5> > I'm not an Internet toughman, I'm describing the motivations behind the > interface of gdb.

Actually, yes, you did that, but you still are one.

For the plain and simple reason that you repeatedly stooped to insults while making your points instead of letting them stand on their own. You should not be surprised people think little of you if you cannot teach without belittling people.

<comment><USER6> It's funny how both sides in any argument or disagreement think one side is belittling the other by doing nothing more than assuming the other side doesn't understand something or another (this includes you just now btw). Certes pointing out ad hominem counts as ad hominem every single time too.

<comment><USER5> > this includes you just now

Most certainly not. The factual divide is one issue and his politeness another. The posts of jrockway are laced with flat out insults that are unnecessary and have nothing to do with any assumptions about understanding.

Let me point one out:

> Your post [...] makes people wish your computer would punch you in the face.

(Omitted part not being an insult.)

<comment><USER6> Surely there was insult and ad hominem in his post (not arguing the fact), but I believe it was in reply to the insult and ad homimen from the post he was replying to. Calling someone an internet toughman counts as ad hominem just as much as calling someone computerfacepunch.

Although, the more I think about it, your point was probably: no need to stoop to the same level.

<comment><USER5> Consider that it was preceded by:

> they forget that they have a brain > where -O3'd code magically executes as > though the compiler didn't do any optimizations on it. > And finally, if you > use correct grammar in your comments

These have varying degrees of subtlety, but they are definitely aimed digs.

There was a definite precedent that warranted the toughman comment and made it seem like an accurate description to me even when i was actively trying to be nice.

Edit: I understand your point and think about it fairly often, i.e. when programmers in one language attack another and the attacked group goes on to point out how they refrain from attacks. I just do not think i have any ash to sprinkle on my shoulder in this case.

<comment><USER2> It's not a dig. I do think you're dumb if you don't like gdb. Naturally, my opinion comes out in my writing, which I think is my Creative License. You should realize that anything you read is biased. You should read the post for content, mix it with its credibility, and then reach a decision.

In the end, I think that my experience programming adds more credibility than my love for snide comments subtracts. That doesn't make me a toughguy, that makes my writing interesting to read.

<comment><USER5> Let me put it like this: mst you are not.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> I agree with the various other commenters on the blog post - that treating the wrapper function like an unacceptable amount of redirection is insane premature optimisation at expense of clarity.

Not to mention the wrapper can be inlined in C99, or would be automatically inlined with -O3 in gcc, not that it matters one iota in this case.

The other glaring bug would seem to be Windows' implementation for POSIX tmpfile() requiring admin access. But I guess that's not too surprising.

<comment><USER8> Indeed. What's a wrapper function's overhead compared to _opening a file_ , which subsequently will be _written_ to?

Frankly, I wish this sort of blog post wouldn't be upvoted here. It's one thing when someone asks a basic question on StackOverflow. Even experienced programmers can learn with the answers. But when someone writes an "authoritative" blog post that misses the basics, it's more noise than signal.

<comment><USER9> Well, jrockway's deconstruction was pretty nice to read even if the original was boring.

<comment><USER8> Point taken. I learned something with the comments if not with the original article.

</comment></comment></comment></comment><comment><USER10> I've actually encountered this, but I can't say it stumped me at all.. my syntax highlighting made it immediately apparent what would have happened had I tried to build.

A coworker of mine also ran into a similar issue (not realizing something was commented out, thus odd behaviour) with a _if 0 .... #endif_ comment. Vim highlights that correctly too but his emacs setup did not (no idea how stock it was).

<comment><USER11> That was my reaction. Syntax highlighting makes syntax errors a breeze to notice.

<comment><USER12> I thought this as well, then added a point to "Backslash directory separators" on my list of reasons to go back in time to kill Bill Gates...

<comment><USER13> Hey, none of this would have happened if the author used proper punctuation!

</comment></comment></comment></comment><comment><USER14> "That has a performance impact on all platforms..." I mean, tmpfile() is about to make AT LEAST one system call, access the disk, and do a bunch of stuff he has no control over whatsoever, yet he's worried about one extra CALL instruction. Talk about premature optimization.. (and incompetence, if you will).

</comment><comment><USER15> The comment from SteveB in the linked-to thread was interesting:

       Most editors i have used highlight the next line in green as a comment,
       however i have come across one that took me over a year to solve, that is
       remarkably similar.

            //why does this next line not compile??/
            x = 0;

        because the ??/ operator is a trigraph meaning \
        That was never been highlighted correctly any editor I have used.

<comment><USER16> wait. So it should have been compiling before the comment was added. Why then was the comment added?

<comment><USER17> To prove a point.

</comment></comment></comment><comment><USER18> Compiling with gcc's -Wall option, which implies -Wcomment, would spit out "warning: multi-line comment". Unless you have good reason to do otherwise, _always_ use -Wall. I recommend -Wextra and -Werror as well.

<comment><USER12> Also -ansi and -pedantic if you're aiming at the C89 standard for some reason, it's great to look in the gcc manpage and see all the little flags that are around. I don't often like -Werror since it can interrupt my flow. If I'm testing runtime correctness, and something like "suggest parentheses around assignment used as truth value" pops up when that was intentional, I don't want to make the context switch to go back and fix it and recompile before context switching again back to test whatever runtime correctness I was aiming for. I'll fix it later. Philosophically, -Werror assumes I'm the type of person who ignores warnings completely for the duration of a project, and will stop you from ignoring them in the first place even if there may be reasons to; I don't think most people are that way.

</comment></comment><comment><USER19> "That has a performance impact on all platforms: the direct call to tmpfile() is now an indirect, which defeats optimization, and well, everything."

This couldn't be any more wrong. First of all, even if there were a performance impact, it would be meaningless compared to the time it takes to perform the system calls required for tmpfile().

Second, the compiler will inline the function call if it can. You can use a regular "inline" function and if you're not convinced it's good enough, then use __attribute__(force_inline) or equivalent. Even if the damn function is not an inline function, it will get inlined if it's in the same translation unit as where it is called (look at the asm output of gcc -O3). In the (not so far) future we'll be able to enjoy link time optimizations and don't have to care about translation units w.r.t. inlining optimizations.

<comment><USER20> Even without inlining, it will be subject to tail call elimination with any sane compiler: my_tmpfile will just branch to _imp_tmpfile instead or returning.

</comment></comment><comment><USER21> I too am tired of paying the price for C's notoriously expensive function calls.

<comment><USER2> Especially around the otherwise speedy task of disk IO. On Windows.

</comment></comment><comment><USER22> Martin Fowler in "Refactoring" supported one of my prejudices, which is that "comments are bugs". So we could have nipped this bug in the beginning by not commenting here.

Then there is the question of why are we even thinking about the optimization issues about calling tmpfile? Are we doing billions of these calls? Or more on the order of tens of them. But in either case, wouldn't it be evident prior to any optimization or measuring effort that the time taken up by the OS to actually create the file would swamp any gain done by this optimization?

One might then argue that the bugs are 1) using comments 2) attempting an optimization that simple pre-calculation shows no real benefit.

</comment><comment><USER23> emacs unfortunately fails on the trigraph-sequence "??/" and ofcourse the line immediately following doesn't get executed. having AST based syntax hi- lighting would of course fix the issue. most editors, afaik, used hacked together regexe's which break-down under various conditions.

</comment><comment><USER24> Similar bug:

      int i = 10;
      int *p = &i;

      int j = 100/i; // j==10 right? right

      int k = 100/*p; // k==10 right?

That last line doesn't compile.

<comment><USER25> Use spaces between arithmetic operators. You've already got them around the = sign. It looks much better, and prevents this problem:

      int i = 10;
      int *p = &i;

      int j = 100 / i; // j==10 right? right

      int k = 100 / *p; // k==10 right? right

Also, any decent syntax highlighter would have caught the latter problem. The problem in the blog post was much more subtle, because most (all?) syntax highlighters won't catch it.

</comment></comment><comment><USER26> In addition to everything else, please don't use a negative condition in an if/else statement.

        if(NULL != fname) {
            g = fopen(fname, "w+");
        } else {
            g = tmpfile();
        }

Better:

        if(NULL == fname) {
            g = tmpfile();
        } else {
            g = fopen(fname, "w+");
        }

<comment><USER27> I'm not particularly disagreeing with the point you are making - but would it really be asking to much for people to provide explanations of _why_ one form is preferred over another?

<comment><USER26> Certainly.

The else block in this case is executed when "NULL != fname" is false. That's an unnecessary double negative and takes a nonzero amount of mental effort to unscramble. The example I gave reverses this. This would also be acceptable:

        if(fname) {
            g = fopen(fname, "w+");
        } else {
            g = tmpfile();
        }

(I also don't regard either statement as an "exceptional condition", they both seem equally likely to me.)

<comment><USER27> Thanks - I've started getting a bit grumpy about coding rules that come without any explanation of _why_ you should do something (simply saying something is "best practise" often being the worst "explanation" of all).

<comment><USER28> For what it's worth I couldn't disagree more. I use the guard pattern very often (as described here <http://video.ias.edu/webfm_send/1207> [Video]).

Rather than writing:

       if (argc == 3) {
          if (fname) {
             /* Do stuff */
          } else {
             printf ("File name cannot be null");
          }
       } else {
          printf ("Wrong number of arguments");
       }

I would write:

       if (argc != 3) {
          printf ("Wrong number of arguments");
       } else if (!fname) {
          printf ("File name cannot be null");
       } else {
          /* Do stuff */
       }

<comment><USER26> That has merit. Personally I usually find myself doing something more like this:

       if (argc != 3) {
          printf ("Wrong number of arguments");
          // throw an exception or return NULL or something
       }

       if (!fname) {
          printf ("File name cannot be null");
          // throw an exception or return NULL or something
       }

       /* Do stuff */

The important thing, to my mind, is the absence of an else block.

<comment><USER28> Yeah, that is a pattern I occasionally use but I prefer what I have written above as the control flow is more explicit. A missing return (or even one which is quite deliberately omitted) is much harder to spot.

</comment></comment></comment></comment></comment></comment></comment><comment><USER29> I loved the punchline, & probably wouldn't have spotted that one myself.

As others have noted, the moral is to not use C++ '//' style comments in C code or at least hope that you are using a clever editor ;)

<comment><USER13> It would have produced the same bug in C++ code as well.

<comment><USER29> I guess it would, it's just not something I've run into.

The only time I've ever seen backslash's used in C or C++ as a line-break is in huge multi line macros with lots of variables that has been broken up for readability.

It never occurred to me it could be used to do multi line comments but there you are.

</comment></comment></comment><comment><USER30> Maybe this is why my C tutor used to say over and over again "never use C++ style comments even though Visual studio let's you do it".

<comment><USER31> My thoughts, exactly. Perhaps I'm a little overly pedantic, but it annoys me to extremes when I find c++ style comments littering up c

<comment><USER10> What I do is I turn on my compilers warnings for C++ comments in C code, then use C++ comments with all my TODO comments. That way I know if there are any outstanding TODOs when I go to build.

<comment><USER32> It's not a warning in GCC. The -ansi flag, and older standards, err on C++ comments, but they're still valid input for C99 mode(s).

<comment><USER10> With -pedantic you can get:

      warning: C++ style comments are not allowed in ISO C90 [enabled by default]

Might be worth noting at this point since I'll already halfway though the GCC manpage again, that -Wcomments seems to be exactly for the sort of situation the author of the article found himself in.

</comment></comment></comment></comment></comment><comment><USER33> The most stupid C bug ever? Pointers.

Or rather, value of, rather than dereference by default. Ada got this right, dereference by default, no pointer arithmetic.

<comment><USER34> It isn't a bug, it is a feature. C wasn't designed to abstract away the reality of pointers, which are the basic building blocks of assembly. If you don't like pointers, then don't use C. All programming languages have their time and place (even something like whitespace).

The advantage of not abstracting pointers is that it makes low-level programming much easier. Instead of having to write your operating system kernel in assembly, you can write it in a portable language that is much easier to read!</comment></comment>


New App Store, sell your appointments at the Apple Genius Bar - <AUTHOR> http://www.victusspiritus.com/2011/06/18/new-app-store-sell-your-appointments-at-the-apple-genius-bar/ <comment><USER2> In the next installment, the author will relate anecdotes about the times he repeatedly dropped by his doctor's office without an appointment and they couldn't see him.</comment>


Calling it quits? When do you think enough is enough HN? - <AUTHOR>

Hey HN. I'm a budding entrepreneur, with a team equally as enthusiastic as me. We're still in college, which makes things a bit different in various regards. Nonetheless, we've been working on a startup for about two and a half years now (www.criticrania.com).
We still like the idea, and think we have executed on the concept decently well. The problem? We have no substantial business plan to entice supporters, and we are experiencing the ever dangerous chicken and egg problem.
We always have more ideas, and we have the time, but when do you know when enough is enough? <comment><USER2> I went to the site and hit the 'random' button in the menu bar. I was surprised that after two and half years that so many popular music albums had only one or perhaps zero reviews. I would suggest that you become more active on your campus and within your social network to get more reviews on the site. If nothing else, you and your team could do all the reviews. I recall Newegg did this in the beginning, but I could not find a link to prove it.

As for a business plan there is always affiliate links to sites that sell the music/movies/etc like trueblueponies suggested, as well as ads. You can always think of a more exciting monetization strategy later, but the first trickle of cash would be enough to keep the interest going even it it may not amount to much.

This is the most reviewed album I found [http://www.criticrania.com/content.php?type=music&id=30](http://www.criticrania.com/content.php?type=music&id=30) Pink Floyd Dark Side of the Moon. It has only 6 ratings, yet is still a best selling album almost 40 years since it was released. Surely there could be more reviews and comments than that just from your social circle?

Never give up, never surrender. Never fool yourself either - if between you and your friends you can't write a dozen reviews[1] (or many more) for every album/book/whatever you like then maybe you don't have what it takes to make that site a success. There are always other ideas if this one doesn't work, just give it a fair shot.

1\. maybe put links to reviews on other sites like Amazon, with an affiliate link. I am sure you could find many reviews of everything around the internet to link to, or to quote with attribution.

</comment><comment><USER3> If you've been working on this for 2.5 years, with little traction, I think that's more than enough. Noone is expecting Facebook-like success of course, but after 2.5 years, you should have at least a good thousand regular users a day (do you?)

I think the first rule is you need to build something people want. Focus first and foremost on that. It sounds easy, even too simple, but people make the mistake of doing the opposite.

For you, I don't know what people are getting of value from signing up for your site. They get to express themselves, but they can do that anywhere they go. How are you providing value to people? Why should they invest more than 5 mins in your site? In today's world, ppl have their fingers ready to click the back button. You need to come up with a compelling reason for them to stay.

</comment><comment><USER4> You should love what you do. Idealistic, I know. But if you don't get up in the morning and don't feel a certain level of gut certainty that you like doing this, regardless of success, than re-evaluate.

The passion for what you do will lead to success. On that there is no question. How you define success is very much in the air. But if you're doing what you love, it really doesn't matter, does it?

Keep in mind that at the end of the day you are more valuable than the idea. You're still in college, it's early in the game. You can create new ideas, change the world in ways you haven't even thought of yet.

<comment><AUTHOR> See and therein lies the problem! I love working on the idea (Far more than I like doing school, that's for sure). It's practically my baby. But of course I like my idea...

But you raise very good points. I am quite stuck on this one, as you can see.

"You can create new ideas, change the world in ways you haven't even thought of yet." - What if this one isn't it. When do I move on? Haha

</comment></comment><comment><USER5> Why must your first business idea be some sexy grandiose social network that requires perhaps millions of users to reach the critical mass required for it to generate one iota of value?

When did you wake up and say "oh I NEED a social network just for media?". Find something people NEED that doesn't require all this ancillary bullshit to be useful and sell it. Then when you can finally put the money problem aside you can dive into your big social network idea, if you even care to at that point.

</comment><comment><USER6> It's great that you started early. If you really (and i mean really) like your idea and still feel that this is going to be great, then you seriously go with it.

</comment><comment><USER7> Spend some time to write a business plan and try with all you've got to pitch it. Success or failure that is a worthwhile learning experience.

<comment><AUTHOR> Thanks jnorthrop.

I guess I should have added more detail. We've written out a full business plan, it's just very weak (knowingly). We've pitched a few different times and just finished up a Business Plan competition at our school.

It was a fantastic experience and we learned an absolute ton (a lot of it being how much we did wrong from the start, but still very valuable). It's just so hard to tell the difference between "quitting" and spending your time more wisely, i.e. on a new idea.

<comment><USER8> Are you validating any of these ideas with even 10x random strangers of your target demo? I mean with potential users vs pitching the plans to schools or potential investors.

5x different ideas x10 targets = 50x engagements, not out of the realm of an intensive time-suck. Could eventually lead to an alternate plan point of focus.

</comment></comment></comment><comment><USER9> Never give up. You should use affiliate links to sell the products that are getting reviewed.</comment>


How prevalent is stimulant use among Uber drivers in the Bay area? - <AUTHOR> https://www.quora.com/unanswered/How-prevalent-is-stimulant-use-among-Uber-drivers-in-the-Bay-area?share=1 <comment><AUTHOR> Or anywhere else, for that matter?</comment>


Show HN: Discuss data with chart-level comments - <AUTHOR> https://chartio.com/blog/charts-worth-commenting-on/ <comment><AUTHOR> Dave, founder of Chartio here. With so many of our customers working remote we realized that we needed to prioritize our collaboration features and worked long hours to get this out.

We're really excited about how this came out - like comments on google docs, it makes for an entirely different and more collaborative experience. I hope it helps teams create better dashboards together and more easily discuss their data.</comment>


Microsoft's Secret Acquisition Spree - <AUTHOR> http://paidcontent.org/article/419-microsofts-secret-acquisition-spree/ <comment><USER2> Game Room ( [http://www.microsoft.com/games/en- us/games/pages/gameroom.as...](http://www.microsoft.com/games/en- us/games/pages/gameroom.aspx) ) could have easily been a prototype of something they might be planning to do with a future gaming experience.

For example, when the console comes on, you could start off in a virtual world where you could choose the game you want to play. By blurring the lines between the games and the virtual world, the console could become a virtual amusement park. Your avatar could have a house, etc. like 2nd Life and the user could gain more experience, items, etc. like WoW.</comment>


23andMe Genetic Testing Kit Free with a Year Long Membership of $108 - <AUTHOR> http://www.yourgeneticgenealogist.com/2011/04/23andme-sale-on-monday.html <comment><USER3> My advice to anyone thinking of doing genetic testing (be it 23andMe or another route) is to consider seriously doing it at as a "John Doe" (ie not using your real name and details).

Knowing you have a high susceptibility to a significant disease could have all sorts of implications for insurance - medical, life and even car.

In general insurance companies require you to disclose any and all information that you have that would be pertinent to them assessing risk. Clearly for medical and life insurance you knowing there is a high chance you will get Parkinsons (for example) is information your insurer would like to know - <USER2> presumably will have a negative impact on your coverage costs/availability.

Here in the US there are currently laws - such as Genetic Information Nondiscrimination Act (GINA) - to prevent insurance companies demanding this information.

However laws can be repealed. The insurance industry is the 'leader' in government lobbying. 23andMe is still subject to US federal subpoenas laws. 23andMe could be aquired by an insurance firm.

Also consider laws differ in other countries, where insurance companies might be able to legally demand results. In Canada insurance companies can not only request it, they can demand you get this kind of testing before you can obtain coverage.

Consider further that databases can be hacked/stolen (it seems to be happening to every email marketing company right now).

Think carefully whether you want your personal legal name and contact details all over the results of a test like this.

<comment><USER4> if you expect to be truly anonymous with 23andme, you're going to need to anonymize the address the kit is sent to, the payment information, and the connections to other people you have as well.

related: [http://www.quora.com/Is-it-possible-to-use-23andme- anonymous...](http://www.quora.com/Is-it-possible-to-use-23andme-anonymously- under-a-pseudonym-or-otherwise-without-personally-identifying-information)

<comment><USER3> The following is my boiler plate for anything that requires anonymous subscription - 23andme, domain registration, hosting, etc:

1) Mailbox in SF's China Town _(a number don't ask for ID even though they're supposed to legally request it)_. Many also don't speak much English so if anyone comes to investigate good luck to them.

2) Visa/Amex gift card purchased at Walgreens/Safeway in cash - ideally in a different city you happen to be visiting with no connection in. Las Vegas and New York are great choices.

3) Email address created and accessed via TOR within the incognito mode of the browser. Buy the 23andMe subscription/domain/hosting in the same way but making sure you are using a different TOR session.

<comment><USER5> While I approve of you guarding your privacy, you may want to be careful about doing this with domain names - many registrars require that the WHOIS information is up to date, and can theoretically take them back if it isn't. I'd imagine the same holds for domainsbyproxy and the like.

<comment><USER6> So what? All you need is the initial email to work, nobody is going to notice fake whois that quickly. No person is going to show up at the address you list to verify that it's actually _your_ address.

I've used fake whois records for a while and have never had any problems. I did make my main domain "real" a few years ago to avoid any problems, however.

</comment></comment></comment></comment></comment><comment><USER7> I know that it's entirely irrational and counter-productive, but I can not bring myself to do this and find out things I'd rather not spend the rest of my (hopefully not too short) life obsessing over. I'm already busy enough focusing on the obvious things, like being overweight. If I discovered that I'm certain to end up with Parkinson's or Alzheimer's or something, I might have a pretty difficult time coping.

It makes no sense. It's entirely irrational. I love information. Knowledge. Informed decision making. And yet . . .

<comment><USER8> I'm not aware of very much in the genetic material 23andme processes that is indicative of a 100% chance of having some future disease. Here's a screenshot of my 23andme dashboard with some of the information removed: <http://i.imgur.com/9ViAf.jpg> . As you can see, everything here is based on how much more likely you may be to develop a disease than the average person. Within the page details the specific studies that have given them the information being used in the calculation are cited with links and additional technical information. You can also see that the highest risk factor they've calculated for me is 11.3% or 1.61x the average (in this case, it's Age- related Macular Degeneration).

Obviously, it's possible that a person could be given a more significant percentage of a serious condition which raises additional questions. If you are both A) objective enough to firmly grasp that a chance is simply a chance, not a sure outcome and B) not someone who worries a great deal about possible future situations, you might benefit from using 23andme. Otherwise, it may be wise not to purchase the program.

For me, I've had an interesting effect of using some of the increased negative risks to help me stop bad habits while at the same time, not using any of the decreased risks as a license to go ahead and live more recklessly in those areas. Hopefully this give you some additional perspective on whether something like this would be right for you.

<comment><USER9> be careful, very easy to decode your health information from this screenshot.

( the average risk - is mostly unique value )

( for example: Restless Legs Syndrome [ avg risk: 2.0% ])

:-)

<comment><USER8> Yes, I realized this when making the image. It's certainly something people should consider before posting their results online even in an edited format. For me, blocking the names out was a barrier to discovery for most people (not worth the effort). It's not something I specifically want to share with the world, but there's nothing in that list I would be upset to hear people know either. Certainly a good comment for people to think about.

</comment></comment></comment></comment><comment><USER10> For anyone who missed the details on when this is available (as I did on the first read) and who read it thinking of taking advantage of this offer: the deal is only available from midnight to midnight (24 hours) Monday, using PST as the timezone. So starting in just under 4 hours.

</comment><comment><USER11> $63 to ship a single kit to The Netherlands? What is this, eBay?

<comment><USER12> Agreed - but it's medical mail both ways with import duty paid on way in... I bit the bullet and paid - not bad, about £100 all in for the year sub and test. Hopefully the data will be of interest.

</comment></comment><comment><USER13> One of the more interesting parts of 23andme, at least for me, was finding second and third cousins (likely) that I didn't know. Most of the actual medical tests are fairly non-predictive (1.5x increase in one study for something which is already rare?), but the ancestry part is something where having a lot of participants in a selectively-open database can be interesting.

I do really hope Halcyon (or another company) gets full sequencing costs down as low as they say they can. Then, sequencing becomes just a routine checkbox on blood tests.

</comment><comment><USER14> Note that the extent of their genetic analysis varies by ethnicity, with those of East Asian and African descent getting less than half as much analysis: <https://www.23andme.com/health/ethnicity/>

<comment><USER15> That's certainly true right now, but the information in the health reports gets updated all the time based on new studies, so it will continue to get better.

</comment></comment><comment><USER16> "Free when you pay"

<comment><AUTHOR> I agree. It was a word choice between free and sale. I assumed free was a more effective title than sale for HN.

Note that when buying add a one-year subscription which will bring the total price to $108.

</comment></comment><comment><USER17> Just told someone to order, i think the service is worth every penny, i hope doctors find this research valid enough to base some of their work on it(i'm public insured in germany).

My only fear at this point is them turning people over to evil scientists after finding out about their superpowers.

</comment><comment><USER18> Drats...largely limited to NA and Europe.</comment>


Conservatives face a tough fight as Big Tech's censorship expands - <AUTHOR> https://thehill.com/opinion/technology/434407-conservatives-face-a-tough-fight-as-big-techs-censorship-expands <comment><USER2> So private companies choosing to not carry conservative speech and writing is censorship?

I thought censorship was what governments did, not private companies. You know, you've got a right to free speech, but I don't have to pay for your platform. That's what the justification of ditching the equal time doctrine on radio and TV companies back in the 80s was. That basically eliminated any liberal voices on TV and radio, and we were all told it was just market driven.

Calling what a private company does "censorship" seems like a grotesque, yet whiny, perversion of the word.</comment>


What happened to tcrn.ch? Techcrunch's own URL shortener - <AUTHOR>

Couple of months ago, Techcrunch announced that it was going to use tcrn.ch as the domain name for it's shortened link. Their reasoning being that tcrn.ch will carry it's brand name in the shortened link as opposed to getting hidden in a bit.ly link.
But lately I've observed that they seem to have gone back to bit.ly? Anyone has an idea why? <comment><USER2> They're planning on bit.ly using link data to start a news aggregator, and they want to be at the top of bit.ly's charts when it happens.

</comment><comment><USER3> I think it worked under <http://awe.sm> if it helps

<comment><AUTHOR> Yes they were using services of <http://awe.sm> to to get their own shortlinks at <http://tcrn.ch>. But lately I am seeing that they are using bit.ly and not tcrn.ch</comment></comment>


Google's Panda Update: An Interview with Matt Cutts & Amit Singhal - <AUTHOR> http://www.wired.com/epicenter/2011/03/the-panda-that-hates-farms/

<comment><USER2> "We're lucky to have the criticism, because that means people care enough to tell us what they want."

That's a winning attitude in a competitive business. Because the Google team mentioned search results for medical terms in the interview, I tried out a few searches on medical terms that a few months put appallingly bad sites at or near the top of the results page. Now Google is serving up much better sites on medical topics, so I'm glad that algorithm change was made.

</comment><comment><USER3> There are lots of very interesting things in this post - one of the most interesting long term changes I see is that Google are now admitting that you can lobby for algorithm changes.

I can imagine in another 12 months there will be vocal lobby groups to get Google to change parts of their algorithm for certain types of sites. This feels like the start of Google coming out of their shell and admitting that they listen to communities like HN and will respond with large scale algorithm updates.

I'd also dearly dearly love to know what this breakthrough was:

"Amit Singhal: Well, we named it internally after an engineer, and his name is Panda. So internally we called a big Panda. He was one of the key guys. He basically came up with the breakthrough a few months back that made it possible."

<comment><USER4> Indeed. My mind races:

something like assigning super-distinctive words prime numbers and multiplying them in a paragraph, and doing a lookup on it to see if that combination of super-distinctive words appears elsewhere.

Would be fun to find out how very wrong I am...

<comment><USER5> That algorithm would find duplicate content, which Google has done a decent job detecting for a while.

The new update was about low-quality content. Thinking of an algorithmic way to detect that isn't easy (obviously!). I guess I'd be looking at adapting things like [http://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readabil...](http://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_test) somehow, so it wouldn't penalize either easy-to-read or difficult-to-read but would look at the density of harder-to-read content vs easier-to-read fluff. Or something!

<comment><USER6> I'm not sure it would be that hard for Google to identify the crap sites - when you go to one you either click your back button or out through the adsense that usually dominates/perfectly blends with the content anyway, Google is catching that bounce rate damn near 100% of the time.

</comment></comment></comment></comment><comment><AUTHOR> It's also interesting how they admit that the results can be gamed if you know what the changes they've made are. While that's most likely always been the case with Google's algorithm (any search algorithm, really), it's interesting that they're publicly saying it.

</comment><comment><USER7> How long do you think it'll take for people to figure out how to game this change? If content farms are dead, what's next? Social Spam?</comment>