Ask HN: Who knows about Ad Networks? - <AUTHOR>

I'm a young entrepreneur who just launched a start up. In my niche I see an opportunity for an Ad Network, but I don't really know much about how to set one up. Could anyone mentor me on this? <comment><USER2> The ad network business is very crowded, the margins are getting lower and Google is crushing it in display ads of late.

There is very little room for new player in this space, and the players who have reached scale are very well funded.

Ad Networks will be a 'winner take most' market, and I do not suggest trying to play in it unless you have:

a) deep pockets b) some amazing technology that is really innovative and groundbreaking c) a disruptive business model d) massive domain knowledge (which you just said you don't have).

This is not the best beach to surf IMO. Any niche you've found that reaches any kind of scale will be taken by the bigger players who have hundreds of sales executives each.

The opportunity for bootstrapped ad networks is long over.

<comment><AUTHOR> hey jason, thanks for the response. Do you think this still applies even if I'm not looking to grow this into a huge network? and instead just want to set up a private invite only type? I'd hope to focus on quality in this network, right now there really aren't any players in the niche I'm in.

<comment><USER3> There's really no room for a private, invite-only type network -- at least not one that would make enough money to be worth your time.

One key you need to understand about the display biz now -- advertisers aren't as focused on buying sites anymore. Instead, they think of it as buying "audiences." Buying from a couple exchanges will give an advertiser reach to 95+% of the web. Add in some unique data with the built in targeting of the exchanges, and you can make both very broad and very very granular buys.

There are actually players in your "niche", you just can't see them because they are way too big. The large buying platforms are capable of targeting users (audiences) on a very granular level.

The only real model that works now is:

A) create unique tech (dynamic creatives a la Like.com) or gather a unique data set (preferably do both)

B) charge a premium for use of your unique tech / data while buying on the exchange

With any other approach you either won't make much money (so big players not interested) or won't find clients / leverage (big players too ingrained already and will crush you).

</comment></comment></comment><comment><USER4> Check out OpenX <http://www.openx.org/>

In addition to setting up your own private label network, you can buy and sell inventory on their exchange. This lets you appear bigger than you are. For example, if you are able to sign up a publisher in your niche, you can immediately start trafficking relevant ads to show him you're capable. You'll make more money attracting Advertisers in your niche to buy those impressions, but that's a chicken/egg problem that being part of an exchange helps with.

<comment><USER3> Open X is definitely a good tool to get you up and running cheaply, but isn't as full featured as some of the other ad servers (ie. DFP)

Keep in mind that the entire display ecosystem is already on / moving towards an exchange-based model (rather than a network based model). Most networks now buy a lot of their inventory directly from the exchange.

So if you're looking to start your own network, you should be thinking about building it on top of the exchanges, and you should also have some unique offering: expertise in display / optimization, unique data set, etc.

<comment><USER4> There are a lot of plugins for Open X offering additional functionality. A case could be made that as OSS, it's got the potential to face more challenges than DFP, though obviously offer some additional ones as well (like having to manage your own servers).

It sounds like the poster has a niche market he (or she) understands. In that situation, I don't think technology needs to be a selling point.

<comment><AUTHOR> Yea I'm in a niche, I see an opportunity and feel that I have the connections to bring publishers and advertisers together and create my own (small) network, but not sure how to set it up (the technology side). I'm thinking about doing an invite only type of network and focus on the targeted advertising advantage.

</comment></comment></comment></comment><comment><USER5> I used to manage product/ operations for a large display ad network and now have an online ad startup. I am happy to help you with questions. Not sure I can answer them but should be able to at least point you in the right direction.

</comment><comment><USER6> I'm working on an ad network for the second time in 2 years. The key in my opinion has been around sales, assuming you're a premium network.

It took me 2 years to understand the sales process and to make the right connections at brands and agencies to make it work. YMMV.

</comment><comment><USER7> Ad networks are tricky. I did a _lot_ of research on them and even built a small one at my last startup. They're easier the start than ever, but also riskier to grow than ever. Contact me directly if you want to chat. grantis_omega(at)hotmail.com

</comment><comment><USER8> While I don't actually setup the networks, I do work with the ad sales team at Grooveshark (mostly in development for new proposals). This doesn't directly answer your question, but here's a few things I've learned:

1\. Setting up a network outside of Google Ads is all about traffic. Most of the networks have minimum traffic quotas and won't really talk to you until you satisfy their requirements.

2\. Most use Google's DFP (DoubleClick For Publishers) to serve/price ads.

3\. Be aware that the lower quality ad networks are susceptible to malware intrusion which sometimes run through their ads and you will have no control over when they infect your users.

<comment><USER3> 1\. True regarding minimums. But ultimately depends on what your objective is. A company like Retargeter doesn't have minimums as high as some of the larger networks due to the type of campaigns they run.

2\. Many use DFP, but many also use Microsoft ATLAS, Open X (an open source ad server), among others.

3\. Definitely true. Shouldn't be a problem as long as you stick to the more well known names in the space. Another concern with lower quality networks is click-fraud.

</comment></comment><comment><USER9> A quick way to get started might be something like this: <http://buysellads.com/privatelabel>

</comment><comment><USER10> On a similar note I was wondering if anyone had experience (as an advertiser) and had an opinion on the most cost effective advertising network for text ads?

Google Adwords seems overly competitive for certain keywords and seems to result in overpaying for traffic. As an alternative, Microsoft AdCenter has been effective - but I was wondering if anyone else has had experience on other networks?

</comment><comment><USER11> I'm curious about this too. I've been toying with starting an ad network in my niche as well, but I'm still not sure if I want to head in that direction because I don't know enough about the process.

</comment><comment><USER3> I'm an expert in online display advertising -- including networks, exchanges, data, etc. Happy to talk in private, or can answer questions here.

<comment><USER12> What's the best way to reach you privately to discuss about technology that works with ad exchanges? Also, are there any blogs/resources for someone interested in building something similar to invitemedia? Thanks

</comment></comment><comment><USER13> you'll need to contact a buyer at an agency. Be wary of being a 'remnant of remnant' ad network, your CPMs will be extremely low. Email me if you need any help.

</comment><comment><USER14> Post your email in your profile and I will be in touch. ari

<comment><AUTHOR> The response has been great, my email is firstname.lastname@example.com

</comment></comment><comment><AUTHOR> Thanks!</comment>


Cement that absorbs greenhouse gases instead of emitting them - <AUTHOR> https://qz.com/1123875/the-material-that-built-the-modern-world-is-also-destroying-it-heres-a-fix/ <comment><USER2> _Solidia insists that their cement can be used for all sorts of concrete application. I was less convinced, because much of concrete use requires pouring and curing on site. Ensuring such uses are covered in chambers full of carbon dioxide seems difficult._

Was interesting until I saw this.

Good for decorative concrete, though.

Around here all the applications of poured concrete are for foundations, basement slabs & walls, as well as commercial building applications.

<comment><USER3> > Was interesting until I saw this.

> Good for decorative concrete, though.

It goes far beyond decorative concrete. This process can be used for concrete blocks, roof tiles, drainage pipes and boxes, prestressed slabs, and virtually any other product that is manufactured off-site.

For the record, I don't think I have ever seen a basement where the walls were solid pour. It's a waste of concrete when hollow block with poured columns is sufficient.

<comment><USER4> In Ottawa, Ontario, Canada all of the basements I went in were solid pours. I only saw cement blocks as a foundation for cabins with no basement.

In coastal BC most places don't seem to have a basement at all.

<comment><USER5> Back in Ontario I did see the basement of a private school extended with blocks (filled with rebar and concrete).

Twice actually as the first time they back-filled it; the wall partially caved in from lack of rebar (I was renovating an apartment across the street, and talked with the site super on occasion).

</comment></comment></comment></comment><comment><USER6> I looked at that development quite closely (for an article for a German online magazine) a couple of years ago. There were a number of companies trying things like this.

Recently I was asked to write an updated article and I checked what happened to all those companies. Most of them went nowhere. Unfortunately. It seems to be a very hard problem to reduce the carbon footprint of concrete.

<comment><USER7> For concrete their first priority is for it to work. So are they going to take a bet with a new formula if it will cost them tons of money to fix? If your new formula messes up then you probably double the carbon impact in the first place.

</comment></comment><comment><USER8> Why not normal concrete that already takes in CO2 from the environment? A interesting read about what went wrong in the Biosphere atmosphere: [http://biology.kenyon.edu/slonc/bio3/2000projects/carroll_d_...](http://biology.kenyon.edu/slonc/bio3/2000projects/carroll_d_walker_e/whatwentwrong.html)

<comment><USER9> This is explained in the article: the process of producing cement releases more CO2 than is subsequently absorbed when it cures.

</comment></comment><comment><USER10> Anyone hear about Hempcrete? Concrete made of Hemp that also traps Co2?

<comment><USER11> It's not comparable to concrete though as it has completely different physical properties (ie. much lighter and weaker). It's more rigid insulation made with natural fiber and a lime based binder to hold it together.

</comment></comment><comment><USER12> stupid question, why not growing trees above cement factories ?

<comment><USER13> Trees can only story a certain amount of CO2, and factories will produce much more than the trees can absorb.

<comment><USER12> Then pass it through pools of liquid an algae I don't know... I'm sure we could transform a large chunk of emissions into useful byproduct if people tried.

</comment></comment></comment><comment><USER14> This seems like a distraction. We don't need green cement, we need laws that allow us to shape cement into tall buildings so people can live near where they work.

<comment><USER15> Why not both?</comment></comment>


Ask HN: Good books on negotiation  - <AUTHOR>

Negotiation is a very broad scope so let me narrow it down with context to start-up folks.<p>Lets say what book/resource would you suggest to improve negotiating skills for
- hiring & incentives
- investors/evaluation/deal terms - mergers/acquisitions terms <comment><USER2> "Getting to Yes" [http://www.amazon.com/Getting-Yes-Negotiating-Agreement- With...](http://www.amazon.com/Getting-Yes-Negotiating-Agreement- Without/dp/0140157352)

<comment><USER3> In the best class I took in all of high school we read this book cover to cover. It can be a little bit repetitive but as soon as I read the title of this post I immediately thought of this book.</comment></comment>


GLIntercept – An OpenGL function call interceptor for Windows - <AUTHOR> https://github.com/dtrebilco/glintercept <comment><USER2> > GLIntercept works by overriding the call to wglGetProcAddress, wrapping the > real function pointer in some assembly and then returning it to the > application being debugged.

I used to code Counter-Strike cheats for fun[0] back in the 1.6 era and this is how the simplest ones worked. For example, wallhack hooked glBegin and, if the mode was GL_TRIANGLE_STRIP or GL_TRIANGLE_FAN (used for models mostly), it disabled GL_DEPTH_TEST which in turn rendered models over the walls.

More advanced cheats needed to hook onto the game code to extract information from memory and call/intercept game functions, but it was mostly the same.

There was a thriving community where all kind of information was shared, including how to bypass anticheat programs, but it died in an incident long after I was gone (I miss you, GameDeception).

Very fun memories :)

[0] Really. I never shared any of those cheats or used them online. It was just the fun of learning how a system was made and _then_ breaking it.

<comment><USER3> Wait, gamedeception is no longer around?? :(

<comment><USER2> Whoops, I missed your reply (and you'll probably miss mine).

Apparently so. I just went there one day and it was gone. There were rumors like a fit of rage or the owner no longer wanting to be associated with cheat coding, but as an outsider to the scene I really don't know what happened.

</comment></comment></comment><comment><USER4> "GLIntercept is a OpenGL function call interceptor for Windows that will intercept and log all OpenGL calls"

<comment><USER5> Then what? What do you do with a log of OpenGL calls? Replay them to get screen captures? Send in really long game bug reports? Insert ads into games?

<comment><USER6> Extract assets -- might be easier to do it by intercepting OpenGL calls than by reverse engineering some proprietary binary format.

Edit: There are entire online communities dedicated to pulling assets out of old games, for who knows what reasons. A buddy of mine from school would spend entire weekends dumping assets from classic GameCube titles -- he would occasionally render up scenes from old Zelda games with global illumination and fancy material shaders, which were always kind of cool.

</comment></comment></comment><comment><USER7> _" GLIntercept has existed since 2003 and was mainly designed as an OpenGL 1.0-2.1 debugger. So while basic function logging should work on all OpenGL versions, the more advanced features listed below may or may not work in OpenGL 3.0+. (especially when using a core OpenGL profile)"_

I've never used GLIntercept, but the above caveat sounds like it's not really usable with modern graphics apps, like any non-trivial game.

But there are other similar tools that do and have all the same features or more. To be fair, the GLIntercept readme provides a list of such tools right at the bottom. The first item in that list, renderdoc, is something I've used a lot and is _very_ feature rich and supports GL, DX, and Vulkan.

</comment><comment><USER8> For a OpenGL interception keeping up with modern OpenGL APIs use apitrace: [https://apitrace.github.io/](https://apitrace.github.io/)

</comment><comment><USER9> With GLIntercept we created an early Augmented Reality prototype with Macromedia Director. We just replaced a certain background texture with the camera stream.

</comment><comment><USER10> Punishable by jail time in South Korea.</comment>


The 2020 Ig Nobel Prize Winners - <AUTHOR> https://www.improbable.com/ig-about/winners/#ig2020 <comment><USER2> My favorite is the Peace Prize awarded to India and Pakistan for having their diplomats ring each other's door bells in the middle of the night and then run away.

</comment><comment><USER3> " for devising a method to identify narcissists by examining their eyebrows."

Wow! That's a useful feature. Opens the intriguing possibility of automatic identification using machine learning, or even self-identification with the selfie camera!

And charting the results over time may be interesting to correlate with mood, health, diet, etc.

</comment><comment><USER4> Misophonia, the distress at hearing other people make chewing sounds. I think my X had that :)</comment>


An astute online comment has some wondering whether Brexit may ever happen - <AUTHOR> https://www.washingtonpost.com/news/worldviews/wp/2016/06/26/an-astute-online-comment-has-many-wondering-whether-brexit-may-ever-happen/ <comment><USER2> Previous discussion

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

</comment><comment><USER3> Whatever your opinion on Brexit, it would be a miscarriage of democracy to ignore the referendum's result, even if it is not strictly legally binding.

If Leave can win now, it will garner more support if the public's will is neglected.

Also the comment takes it as a foregone conclusion that triggering Article 50 would spell the political demise of the sitting Prime Minister. Isn't this a dubious assumption? We're seeing short-term market reactions today, but it is a very different thing to assert that the long-term impacts are as suicidal as is commonly believed.

<comment><USER4> Technically, sure.

Practically... it's a 52%/48% vote. Hardly a mandate. Some people say a revote might yield an opposite result, which means the current outcome is probably under the margin of error.

It wouldn't exactly be a miscarriage of democracy to not follow through and see how things unfold in the next couple of years, and maybe vote again to see if the gap widens or if our country remains split in the middle on the issue.

At any rate, this comment about the situation is frighteningly deep and chilling.

<comment><USER5> Is there a margin of error with a vote like this? Isn't it a direct count of people who want their opinion known? It isn't sampling and trying to figure out what everyone wants.

<comment><USER6> I don't know about 'error' but there's definitely room for valid decision changes. You can take most things back within a grace period after signing the dotted line, after all.

<comment><USER5> But that isn't what this measured. Like how the US census is suppose to be an exact count of everyone on April 1; it may change due to births and deaths, but on that day (at some time) it is suppose to be exact.

A vote is an exact count of the will of the people at a given time. There is no error. People can change their minds, but that isn't what the vote represent. That is, a vote is what people who chose to vote said they wanted, not a probabilist representation of what the people as a whole want.

</comment></comment></comment></comment></comment><comment><USER7> In all this backlash, I wonder if the people who have come out strongly remain, realize that they are trying to help massive corporations subvert a democratic referendum. Its my understanding that the people who are most strongly for remain, fits nicely within the demographic that defines itself as progressive, whose policy choices take an often anti-corporate form.

<comment><USER8> Are you saying that the only way for someone to be a "progressive" is to blindly vote on the opposite of whatever "corporations" want? That's a rather "wild" definition of _progressive._

</comment></comment><comment><USER9> The smart political calculation is probably to delay, delay, delay, then hold another vote that won't pass and move on with life. Unless they've totally given up on keeping Scotland in the UK I guess.

</comment><comment><USER10> I understand that in many of the areas that voted in favour of Brexit, most people vote for Labour. I would think that makes it more likely for Labour to win next elections? In that case Boris Johnson would be out of the picture regardless.

See: [https://twitter.com/goodwinmj/status/746979915896070144](https://twitter.com/goodwinmj/status/746979915896070144)

<comment><USER11> I think, no offense to you personally, but many people here don't quite grasp how drastically the frame has shifted.

There may not be a Labour political party by next elections. Labour is disintegrating as we discuss this.

</comment></comment><comment><USER12> This is exactly why the rest of the EU is pushing so hard for the UK to leave soon. "Put up or shut up", basically.

</comment><comment><USER13> > The Conservative party election that Cameron triggered will now have one > question looming over it: will you, if elected as party leader, trigger the > notice under Article 50? Who will want to have the responsibility of all > those ramifications and consequences on his/her head and shoulders?

This comment ignores ideology. For diehard anti-eu supporters triggering Article 50 isn't some grave decision. They don't care about the ramifications and consequences (or more distinctly, they don't agree that they will be bad). Maybe Boris and Farage really didn't want to win, but that doesn't really matter, they did and their party will force them to follow through on it.

</comment><comment><USER14> If you are given the responsibility to vote (or to lead a campaign), you should be willing to accept the consequences of the result wholeheartedly.

If Boris Johnson or whichever leader of the "Leave" movement replaces Cameron, they need to trigger Article 50 (and accept whatever consequences that arise from the exit). Failure of which will cast doubt on their conviction for leaving the EU. This will cast a pall over their time in office.

Cameron's move to resign is a shrewd and calculated one. While he is already culpable for calling the referendum in the first place, he is placing the responsibility of triggering Article 50 on the people who so fervently called for it.

</comment><comment><USER15> Brits have a long* history of democracy and hold it as rather important. If article 50 hasn't been invoked by 5th November there will be riots on the streets.

* not really that long, but longer than most

</comment><comment><USER16> That's smart. By resigning, Cameron effectively scheduled a second referendum on the issue, aka the next election.

<comment><USER17> His resignation does not trigger an election, if that is what you meant, but the selection of a new prime minister by the Conservatives.

<comment><USER16> Thank you for the clarification.</comment></comment></comment>


God's Lonely Programmer (2014) - <AUTHOR> https://motherboard.vice.com/en_us/article/wnj43x/gods-lonely-programmer <comment><USER2> It seems like he died recently... But it's hard to know for sure with Terry</comment>


Bitcoin to adopt a finite coin supply. - <AUTHOR> https://github.com/bitcoin/bips/blob/master/bip-0042.mediawiki <comment><USER2> For those confused, here's a great summary explanation from user lifeboatz on Reddit (do read the BIP though, it's funny):

""" Since these BIPs can be confusing, I'll explain. The way the block reward halving is implemented, the reward is calculated by taking 50 and bit-shifting it to the right by a certain number, which is the block number (height) divided by 210000.

So at Block 210000, the bit shift is 1, effectively dividing the block reward by 2, to 25.

At Block 420000, the bit shift is 2, effectively dividing the block reward by 4, to 12.5.

This works great up to 63. But since there's no specification in C++ as to what to do if you take a 64-bit number and shift it 64 bits, it's undefined.

And what happens on many C++ compilers is that they just pass that decision on to the hardware to define it. And in the case of the most popular PC and server equipment, what the hardware does is it doesn't even look at the high order bits of the shifting amount.... so 64 = 0, 65 = 1, 66 = 2, etc.

This means that at block number 210000*64, the block reward is currently programmed to be 50 again. Oops.

This is an urgent situation that should be addressed within the next 200 years! If miners are alive who could benefit from this, they may not want to change it. """

[http://www.reddit.com/r/Bitcoin/comments/21ynmv/bitcoin_shou...](http://www.reddit.com/r/Bitcoin/comments/21ynmv/bitcoin_should_adopt_a_noninfinite_coin_supply/cghpxiv)

<comment><USER3> A Schrodinger's bug

</comment></comment><comment><USER4> This is a pretty amusing way to document a bug.

</comment><comment><AUTHOR> Mailing list discussion: [http://sourceforge.net/p/bitcoin/mailman/message/32174171/](http://sourceforge.net/p/bitcoin/mailman/message/32174171/)

</comment><comment><USER5> "This poses obvious problems, however. Prominent among them is the discussion on what to call 1 billion Bitcoin, which symbol color to use for it, and when wallet clients should switch to it by default.

To combat this, this document proposes a controversial change: making Bitcoin's monetary supply finite."

Haha April fools! ... I hope?

<comment><USER2> Nope!

[https://github.com/bitcoin/bitcoin/pull/3842](https://github.com/bitcoin/bitcoin/pull/3842)

</comment></comment><comment><USER6> I thought the supply of bitcoins was already finite by design, at around 21 million

<comment><AUTHOR> Read the page.

</comment></comment><comment><USER7> This is an april fools joke. Im really getting sick of them.

<comment><AUTHOR> Kinda. Its actually completely earnest, but just presented in a silly way. The april fools joke is that its not a joke.</comment></comment>


Ask HN: Facebook Live Map Discontinued? - <AUTHOR> Often I jump on Facebook Live Map to check for local feeds when news is breaking. Yesterday I tried to get on and the URL no longer works. Others around the internet observe it hasn't been available since Christmas Eve.
I can find no official mention of it being removed and my attempts to communicate with Facebook via tweet and Facebook itself went unanswered.
Does anyone know if the product is dead or is it just an extended technical issue? <comment><USER2> Heard it was discontinued cause people was using it to sell items and Fb, either didn't like it or didn't approve of it. I thought it was one of Facebook's highlights. Hope it comes back.</comment>


Clang 2.8 release now considered "production ready" - <AUTHOR> http://cplusplus-soup.com/2010/10/04/clang-gc/

<comment><USER2> I tried a svn build of clang++ two months ago on our in-house code base of hundreds of thousands of lines of C++. I didn't see much advantage to using it.

\- I felt misled by all the advertising on the website. They are comparing to Apple's version of gcc-4.2. The last GNU release of gcc-4.2 was two and a half years ago. Even Debian stable has something newer. Compared to gcc-4.2, the newer gcc-4.5 compiles faster, produces faster code, and gives better diagnostics. The comparison on the website was not useful for me to predict the differences now.

\- In terms of compile speed, clang was sometimes faster and sometimes slower than gcc-4.5, but overall the differences were very minor.

\- In terms of performance, clang was >10% slower, which is OK for debugging builds.

\- The diagnostics were a little prettier than gcc-4.5's, but not a huge improvement. I think it was mostly because they were in color.

\- Getting the existing codebase to compile was a chore. gcc bends the rules of the C++ standard in some ways that don't appear to cause confusion but make the code more pleasant. For example, it allows unqualified lookup into dependent bases of class templates, which means you can write "foo()" instead of "this->foo()" in things that look like class members (see <http://clang.llvm.org/compatibility.html#dep_lookup_bases>). There are a number of these - look through the page. I felt like clang was being inappropriately pedantic and beating me over the head with the standard. The most frustrating part was that the compiler wasn't confused - the error message gave me a copy/paste set of changes to make.

\- On my Debian system, I could not find a set of c++0x headers that clang knew how to compile (the official instructions say "use gcc's"), so I couldn't try out the new standard.

<comment><USER3> Just FYI: The reason they're using gcc-4.2 comparisons is that Apple employees are banned from using GPLv3 software. E.g. if you report a bug to them that requires checking out a newer version of GCC they'll just shrug and say "sorry, but we can't try it out".

Oh, and the diagnostics are much better, and not just because they're in color. Consider e.g. this program:

        #include <stdio.h>

        int main(void)
        {
            printf("hello %d", "world");
            return 0;
        }

GCC will give you:

        hello.c: In function 'main':
        hello.c:5: warning: format '%d' expects type 'int', but argument 2 has type 'char *'

While clang gives you:

        hello.c:5:20: warning: conversion specifies type 'int' but the argument has type 'char *' [-Wformat]
            printf("hello %d", "world");
                          ~^   <comment><comment>~

Clang tells you not only the line that had the error but also the column, then it higlights the %d format argument, and shows you which argument you gave doesn't fit with it.

Pretty much all of its diagnostics messages are like that. While you sometimes have to stare at code for 5-10 seconds to see what GCC is complaining about clang will tell you exactly what the problem is.

<comment><USER4> "The diagnostics were a little prettier than gcc-4.5's, but not a huge improvement." <\- I think this example fits with this description: gcc clearly stated it was the second argument... it is nice that it pointed out to me what the second argument is, but I can count. A little prettier, but not a drastic improvement.

I think what most of us are really looking when someone claims that they have better diagnostics is to do something for cases that are currently incomprehensible. As an example: if you run into an error in a recursive template, sometimes you are scratching your head at an error that seems to have no direct semantic meaning. When I was really doing a lot of C++, I started to accumulate a mental map of "when gcc claims that X has occurred, what that really means is that I should try explicitly adding a template or typename keyword to a nearby expression".

<comment><USER3> I've seen people new to C struggle with what I think are relatively simple GCC diagnostic messages. I think they're somewhat simple now since I'm used to them and know C.

But pointing out exactly the bit of code that's wrong, and often what you should do about it is - I think - a huge improvement.

</comment></comment></comment></comment></comment></comment><comment><USER3> I've been using clang 2.7 instead of GCC for a few months now. I'm never going back to GCC:

* It has much better diagnostics messages: <http://clang.llvm.org/diagnostics.html>

* Compilation times are much faster, even though I always wrap gcc/clang with ccache.

* It uses a lot less CPU / memory on equivalent compile options.

The only disadvantage is that compared to GCC 4.4 the resulting binaries are usually around 5-10% slower. The LLVM developers say that's to be expected, currently they're targeting GCC 4.2 for their performance metrics.

<comment><USER4> This seems like an argument to use LLVM for day-to-day development and gcc for later staging and deployment, not to ditch gcc entirely for LLVM.

<comment><USER3> Right, I should have mentioned that I only do C development, not packaging. So I compile everything with CFLAGS="-O0 -ggdb3".

But of course if you're producing binary packages you may want to use other criteria than compilation speed and diagnostic messages to select the compiler.

</comment></comment></comment><comment><USER5> This post seems quite disingenuous. Clang is way cool and a breath of fresh air, but TFA only mentions compile times and at no point does it mention the characteristics of the output binary (size, performances). It also omits the compilation options (the optimization levels would be a pretty good start).

Because it's fast and pretty small, Clang is probably the best thing you can use during development, but in my experience — no 2.8 yet of course — it produces binaries pretty consistently slower than gcc's and is therefore a worse option for production (and for CI servers and integration of course)

<comment><USER6> Performance wise I've seen some good results from Clang SVN in the last few months. Not universally faster (or slower) than GCC or ICC, but I have seen (important, useful) cases where code was 30-50% faster compiled with Clang than anything else I tried. (I also saw cases that had terrible performance, and occasionally miscompiled code, though mostly it was +-10% of GCC).

I can't say I understand why anyone would care too much about compilation speed, though - GCC+ccache is about as fast as Clang+ccache, as the primary bottleneck is disk throughput.

<comment><USER7> > GCC+ccache is about as fast as Clang+ccache, as the primary bottleneck is > disk throughput.

I often compile code that has not been compiled before. For example when using MacPorts.

Never underestimate how much people like speed. I never thought SVN was slow or that I needed speed, until I tried git and realized I could not even consider using something slower.

<comment><USER8> > Never underestimate how much people like speed.

That's one of the main reasons I like Go. It's been explicitly designed to enable fast compilation, and even at this early stage its compilers are very fast.

</comment></comment></comment></comment><comment><USER9> The release notes for 2.8 are here: <http://llvm.org/releases/2.8/docs/ReleaseNotes.html>

</comment><comment><USER10> It's in fact LLVM 2.8 that has been released, isn't it?

I have LLVM 2.7 installed and Clang itself says this:

$ clang --version

clang version 1.1

<comment><USER10> Oops. I installed this release of LLVM and Clang has in fact taken a big jump in version number and is now the same as LLVM, 2.8.</comment></comment>


Have many tabs open? Try Hare – Tab manager for browsers - <AUTHOR> Hi Guys,
Really excited to share with you guys an extension I created for my worst nightmare, tabs clutter!
This is an extension of your productivity of using browser.
When we have many tabs open and are confused about which window's tab is it already open, we go ahead and create a new tab with the exact same content. This makes your browsing experience too cluttered and less productive.
Hare makes it faster for you to jump on any tab, you have open, by doing a fuzzy search on factors like URL, title, etc. When you are all done with your tabs, you can have a nice interface for them to close it at once based on your fuzzy search.
Features: — Fuzzy search on your tabs. Title or URL of the website. — Action to close multiple tabs at once while doing a fuzzy search. — Use Keyboard shortcuts to navigate quickly through the features.
For any bugs, queries, feature request or any feedback, you are always welcome to mail me at firstname.lastname@example.com
Roadmap: 1) Add history and bookmarks search. 2) Action which lets you search the same way you would do on the browser address bar so you never have to click on the address bar all your browsing experience through hare! And many more....
Chrome: https://chrome.google.com/webstore/detail/hare-%E2%80%93%C2%A0beautiful-tab-mana/elklpfhmdbclpenlnljkfknnijnjnmon?hl=en
Firefox: https://addons.mozilla.org/en-US/firefox/addon/hare-beautiful-tab-manager
Website: https://tabhare.com
It's live on producthunt too! Here - https://www.producthunt.com/posts/hare-beautiful-tab-manager-for-browser <comment><USER2> If you have too many open tabs - that means you hardly use bookmarks and don't use the history.

There are some extensions which would let you prevent garbage entries (like countless GMail, HN main page etc duplicates) from appearing in your history (by means of auto-deleting them as soon as they get there or just by showing you a filtered version of the history). Using such practically turns yout history into an endless resource-safe tabs list.

There also is TidyTab Chrome extension (what's the Firefox alternative, by the way?) which would let you bulk-bookmark and close the open tabs.

</comment><comment><USER3> Awesome! Being able to search through your tabs is such a powerful ability!

Some time ago I made a small Chrome extension, see [https://chrome.google.com/webstore/detail/tab- switch/jibghim...](https://chrome.google.com/webstore/detail/tab- switch/jibghimhedaoojdpdianpomdmgdhogce), for this myself.

I love how you're building this into a cross browser, fully featured product with nice looking UI!

<comment><AUTHOR> Glad you liked it! Appreciate it!

</comment></comment><comment><USER4> Nice work, I kind of like the simplicity.

Vimium (the browser extension) has had this exact feature, for almost 10 years (shift+t).

I suppose if software solutions just aren't discover-able, then people will unknowingly recreate them... which isn't necessarily a bad thing... it's just interesting to see people come to the same conclusions.

[http://vimium.github.io/](http://vimium.github.io/)</comment>


The Latest in Silicon Valley Innovation: A $700 Juicer - <AUTHOR> http://www.vanityfair.com/news/2016/04/the-latest-in-silicon-valley-innovation-a-700-dollar-juicer <comment><AUTHOR> I submitted this story exclusively because I believe it happening to be April Fools Day provides the most deft illustration of Poe's Law I have ever seen.

Despite passages like this:

"The juice packs are stamped with QR codes, which the machine scans and uses to determine if the fruits and vegetables are fresh enough for it to press into an eight-ounce cup of juice for you. If it's not, the pack is discarded. It's a Wi-Fi connected device, which means if the Internet's out, you can't have your cup of beet-and-apple juice that morning."

I still can't figure out if this announcement is a real and serious startup or a prank, even with some additional google searching.

</comment><comment><USER2> Report of $120m funding from January last year. It also links to a SEC filing. [http://www.businessinsider.com/juicero- raises-120-million-20...](http://www.businessinsider.com/juicero- raises-120-million-2015-1)</comment>


How To Impress a Girl - <AUTHOR> http://alexkrupp.typepad.com/sensemaking/2009/02/how-to-impress-a-girl.html

<comment><USER2> Isn't this already happening with YouTube? People making a name for themselves without going through the normal channels?</comment>


The UK Space Agency are going to get a letter from the future. - <AUTHOR> http://stupidstuffido.co.uk/the-uk-space-agency-are-going-to-get-a-letter-from-the-future/

<comment><USER2> This is brilliant piece of British humour. The guy really deserve answers from Herbert George Wells society, still operating from the corner of Baker St and Marylebone Rd.</comment>


Looking to make a new group of friends in your neighborhood? - <AUTHOR> https://www.gokrewe.com/get_started <comment><AUTHOR> Hi HN, I'm starting a company, Krewe, to help people make a new group of friends right in their neighborhood that they could potentially see every day, even when they're busy. It places you into a group of five of your peers (so it's comfortable meeting up at first), all who live within a mile of you (so it's convenient to meet up often and become great friends).

Having close friends you can see all the time is the secret to happiness. I hope a few of you will take ~20 seconds to sign up, because I know you all will love it.

</comment><comment><USER2> I was looking for 6 people to stalk locally, this is such a timesaver.</comment>


Ask HN: How can I find beta testers(teachers) for my educational app? - <AUTHOR> I am genuinely interested in helping teachers and students. How do I reach them without spamming them. here is the link to the website http://www.clickeinstein.com <comment><USER2> I don't have time to give an extensive and exhaustive answer here - I should blog about this. The same question comes up again and again. Here are some quick comments.

Analysis:

* Why is your app different?

* Is it a vitamin or pain-killer?

* What does it do? Not from your point of view, but from a customer's point of view.

Pitch:

* This will save you time ...

* This will let you do stuff you really want to do, but can't ...

* This will improve what you already do ...

Approach:

* Blog

* Get feedback

* Approach a few individuals and pique their curiosity

* Reduce friction.

I haven't been to look at your app, because you've made me do work to do so. There's no link I can click - why are you making me make that extra step?

So, what have you done?

<comment><AUTHOR> Thank you Colin. This has given me a lot to think about. Here are the links to the app - Android - [https://play.google.com/store/apps/details?id=com.clickeinst...](https://play.google.com/store/apps/details?id=com.clickeinstein.app&hl=en) iOS-[https://itunes.apple.com/us/app/clickeinstein/id1042178529?l...](https://itunes.apple.com/us/app/clickeinstein/id1042178529?ls=1&mt=8) Thanks a ton!</comment></comment>


The worst registration "CAPTCHA" question ever (SciDB) - <AUTHOR> http://www.scidb.org/forum/ucp.php?mode=register

<comment><USER2> From [http://cran.r-project.org/web/packages/scidb/vignettes/scidb...](http://cran.r-project.org/web/packages/scidb/vignettes/scidb.pdf) \- it could be "n-dimensional arrays" or "arrays"</comment>


Lucid Motors beats Tesla with 9.9-second quarter mile becoming fastest EV sedan - <AUTHOR> https://techcrunch.com/2020/09/02/in-ego-battle-lucid-motors-claims-to-beat-tesla-with-9-9-second-quarter-mile/ <comment><USER2> It launches very smooth and level in that video, compared to a fossil fuel vehicle of similar performance like the Dodge Demon</comment>


Analytics for your content contributors - john-grimes http://johngrimes.info/2009/05/analytics-for-your-content-contributors/

<comment><AUTHOR> Very nice idea. Could be a great way to keep contributors coming back to the site.</comment>


WebGL is Fundamentally Flawed - <AUTHOR> http://www.extremetech.com/computing/87696-webgl-is-fundamentally-flawed

<comment><USER2> This article misses the point entirely. The criticisms of Microsoft come from the fact that they're decrying WebGL while providing the exact same functionality, along with the exact same problems, in Silverlight. Yes, WebGL lets you run code on the underlying graphics hardware. To my knowledge, so does Silverlight and Flash 11. If you view WebGL as being flawed, then Silverlight and Flash 11 are flawed as well.

</comment><comment><USER3> Is IE9 faster in the rendering demos than Chrome?

However I am going to argue one thing that was mentioned in the article. Chrome is not just about being fast. Its fast executing, fast updating (patching vulns and keeping up pace), more extensible than IE (at least easier to get extensions), sandboxed and significantly more secure than ie , and a way for google to push some good technologies out. Its also cross platform, so any computer I go to I can run chrome on, ie is windows Vista/7 only not even XP which chrome runs on.

I also feel is a good thing that video card vendors will get a swift kick in the balls to get their act together and make their drivers secure and decent finally. Though I cringe at the thought of what the state of webgl will be on linux with ATI drivers.

<comment><USER4> > I also feel is a good thing that video card vendors will get a swift kick in > the balls to get their act together and make their drivers secure and decent > finally.

This makes me laugh because video card vendors could give a damn if their drivers are "secure".

What does security mean when you're talking about a processing unit.

Is the prevalence of virus's that work on the x86 processor giving Intel a "swift kick in the balls" and forcing it to "get its act together"?

In reality, NVidia will just blame the user, browser, and website in that order saying "we ran the code you gave us".</comment></comment>


Twilio Contest Finalist Translates Languages via SMS to Voice - <AUTHOR> http://ivolo.mit.edu/post/TextLang-e28093-Instantaneous-Language-Translation-on-the-Go.aspx

<comment><USER2> Wow, this coupled with Word Lens make an incredible pair. With all these language barrier breakers of recent, I wonder when the equivalent of Adams' Babel fish will become a reality? Surely it is right around the corner! ;-)</comment>


Don't measure developers, measure projects - <AUTHOR> https://anaxi.com/blog/2018/11/25/do-not-measure-developers-measure-projects/ <comment><USER2> Don't automate what you can't first do manually. Your best developers might be helping, supporting, designing and architecting your next solution.

One commit, one PR, might prove more valuable for your business than hundreds of other tickets closed.

Remove the KPIs and talk to your team members in 1-on-1s regularly. Give responsibility and trust to your team, and they'll be self-empowering.

Add KPIs and you'll take away their responsibility. Trust will be lost. Probability for innovative solutions will go down, your best developers will leave.

It is all about trust and responsibility. Hire for team spirit, conscientiousness, communicative skills and diversity.

<comment><USER3> The phase of a project with a flood of PRs and closed tickets is the easy part. The real work is done before and after (planning and debugging), in people's heads.

</comment></comment><comment><USER4> Of the metrics listed, the only one I will say _never_ to use is lines of code. As a very wise manager told me, "Code is a liability. Functionality and business value are assets." Measuring developer productivity by looking at how many lines of code they've written is like measuring the health of a business by how much money it's spending.

If you can delete code and retain the same level of functionality (for example, because you found a library that will automate much of the task), then that's a huge win. Every piece of code that the team writes is one more thing that has to be unit tested, integration tested, documented, and maintained in the face of future changes. If they can offload that work to a library, or find a way to accomplish the same task by using existing code or by reconfiguring the application, that's almost always preferable to writing new code to accomplish a particular business need.

Of course, one can go too far in the other direction. It's easy to fetishize using external libraries for everything (like we see so often in the JS ecosystem). But that's where I would argue that the analogy of treating code like money shines. Sometimes it _is_ worth spending money to have something custom made for your business, rather than buying an off-the-shelf component. Similarly, sometimes it is worth writing code to do something custom, rather than integrating a third party library, or reconfiguring an existing application. But that choice should be consciously made. Rewarding developers for lines of code written moves that choice out of the realm of conscious decision-making and into the realm of reflex. They get paid for more lines of code, so they're always going to reach for the solution that results in more lines of code, regardless of whether that code is necessary or appropriate.

<comment><USER5> I agree that lines of code is a terrible measurement of productivity.

I don't agree that short is always better. Sometimes it's better to write the code so that it's easier to understand than to use smart tricks to make it short, because the next person looking at the code might not be on to your tricks. You can argue both ways on this of course, but I prefer clean and easily understandable because I've seen what happens when you don't do that and a junior programmer has to fix something 15 years later.

I also disagree that libraries are better. You seem wary of JS, and that's good, but no libraries are magical and none of them can be trusted to do something for you, unless you look under the hood.

Especially not open source libraries. If you don't know what is going on inside the libraries you use, then you're heading for a world of pain. Of course some libraries are better than others, but using them blindly is wrong. And if you have to read up on them, then they aren't really quick fixes.

We had a developer who used a library to handle decimals. We have our own library for this, that we've build because almost none of the open source libraries for decimals are very good at handling memory allocation and floats and computers aren't 0.00000000000 they are 0.00000001436 etc. But our developer didn't know we had our own library for this, so he used a public one. One that uses around 10 other libraries, one of which didn't handle memory allocation the way you'd want.

So suddenly our decimals were wrong, but the computer didn't know they were wrong, because technically the library worked it just wasn't specific enough. And it cost us a lot of money to clean things up afterwards.

This is the extreme example, but it's never been more relevant than it is today. Especially not in a world where less and less programmers seem to actually know how computers or even compilers work.

<comment><USER6> I assume that's "especially not-open-source libraries" and not "especially not open-source libraries"

<comment><USER5> No, I meant to say that open source libraries are especially dangerous.

I get why you may object, but open source libraries have failed us a lot and by contract the .net framework library hasn't.

There are a lot of great open source libraries, that are both well documented and maintained, but there are a lot more that aren't.

<comment><USER6> Then i don't understand why you associate not knowing what's in a library with specifically open source ones. They tend by nature to be more open to introspection by any member of the community.

<comment><USER5> [https://arstechnica.com/information- technology/2018/11/hacke...](https://arstechnica.com/information- technology/2018/11/hacker-backdoors-widely-used-open-source-software-to-steal- bitcoin/)

</comment></comment></comment></comment></comment></comment><comment><USER7> One thing I have noticed when working with juniors is that the wrong things are considered for story point estimation and those story points are the metric of success.

Juniors tend to be overwhelmingly concerned with basic literacy. First its a "does it work" and then it graduates to "how to write the code". This often comprises thinking about tools, frameworks, dependencies, and code style. These aren't deep problems that moves a business forward. These are competency problems that keeps a person employed. This is a distraction that consumes developers with busy work instead of thinking and planning about how to make a product better or how to release faster.

Worse still, too much emphasis on the particulars around _the how_ of it can blow out a 30 minute task to a 2-5 day task with all the unnecessary scaffolding and extra process. This is particularly frustrating when realizing these concerns can be immediately eliminated when the proper automation is in place. It is possible to really get good at spinning on mouse wheels and cranking out those stories a little bit faster, but it still isn't moving the business forward. Nothing forces out strong developers faster than cliches like: "That is the framework way" or "You're reinventing a wheel".

Some better metrics to really measure real world success:

        1. does the change solve a business problem
        2. does it pass the project automation
        3. does it reduce total code instructions
        4. does it close out defects
        5. reduced execution time
        6. improvements to project automation (faster developers)
        7. improvements to documentation

Once the proper metrics are in place the concerns of the juniors are addressed economically. For example, if reducing instruction count is important the code gets leaner and _the how_ of it shifts from code style to leaner code. Code style is important because developers need improved literacy from uniform code expression, but once the goal of expression is leaner code the uniformity shifts from expressive style to optimization concerns.

<comment><USER8> I'm not sure what you mean with "reducing total code instructions" and "lean code", but I'm not sold on the idea of making code less readable which often happens when you try to reduce code by being smart.

Reading code is mostly way harder than writing it, especially if you read code from someone else. Optimizing for readability is the game changer for maintainability.

* Use expressive function and variable names.

* Have clear consistent structure across your project(s).

* Use simple code where possible.

* Do not write one-liners that do multiple transformations. Each line should have one purpose.

* Document design decisions in code. Don't document "what" your code does, that should be readable by itself, but why you made the decision to do it like that.

* Documentation library style comments for complicated functions helps a ton to know what the function is supposed to do.

* Add tests that specify the expected behavior. This not only helps when changing code, but also when reading.

It's not readable code XOR documentation, it's both. Readable code is the "what", documentation is the "why". Even if the docs get outdated, the why can still be insightful.

Non of the above suggestions usually reduces code, but it will help everyone else, including future-you in 6-months, to work with your code.

<comment><USER9> Why would you think less code means the code is less readable?

Does cramming 5 lines of code into 1 line make it less code? No.

Reading code is harder, so the less code there is to read, the better.

<comment><USER8> As I said in my comment, a lot of the stuff I see as positive for making code more readable more often than not adds extra lines as comments or as code, because you keep it simple. You are right that cramming 5 lines in one, doesn't really reduce code, but I have worked with enough programmers that thought it's a good thing.

Sure if you can reduce code without making it more complex, that's a good thing.

</comment></comment></comment></comment><comment><USER10> Noooooooo. All of these metrics are a mistake, don't measure any of them. Measure the things that actually matter about your product and whether or not it's getting better or worse.

Measure outcomes. Only outcomes. Try and make sure your metrics capture the real outcomes and not just what you see in a lab. This usually means you need to use field data to get that information.

<comment><USER11> The post looks reasonable to me. The point he's making is that no metric is useful for measuring developer efficacy/productivity & the underlying unstated reason is that dev works tends to be random; problem A is nothing like problem B & there's no way to objectively measure the quality of solution for problem A against another developer's solution.

He's instead proposing metrics that you can use as a high level barometer of project health. What outcome are you looking for? You can't mean the final shipping SW because that's usually way too late. You want to figure out if your velocity is going to let you hit your ship date _well_ in advance of the actual ship date so that you have time to deploy process fixes/hire more people so that you do hit the ship date.

<comment><USER10> > He's instead proposing metrics that you can use as a high level barometer of > project health. What outcome are you looking for?

None of the proposed metrics capture project health. Test coverage is the closest and that still isn't great. (Unit tests are important but you can have 100% test coverage and a 0% working product. In fact, this is how every project begins before the first line of code is written.)

No one gives a damn how many pull requests happen or how many days apart they are.

1) Does the software work yet?

1a) How much of it works?

2) Does it do what we want?

2a) .... everytime? Less? How many 9s?

Report on the things that matter. Track the things that matter. Everything else is actively harmful and distracts your teams from doing what matters.

Also, when you ship the software you haven't finished, you've begun. It is absolutely still useful to keep metrics on outcomes and track improving them over time. It is absolutely not "too late" and any planning that assumes software is done after you ship it is flawed. Features can become done, software never is.

<comment><USER12> They're useful to measure in that _changes_ to them are indications that something might be happening. Use them as canaries.

For example, your velocity has changed. Why has it changed? Are you bringing new people up to speed? Have you suddenly hit some unexpected complexity? Your mean time to resolve issues has gone down. Are you releasing code with simple bugs you should have caught? Have your team started picking them up sooner?

Whenever something changes there's questions you can ask, the answers to which might well help you do better. Using metrics as an early indicator of change can help.

<comment><USER10> 1) If you need metrics to answer _those_ questions you have a larger problem than metrics can solve.

2) That's an argument for literally any possible metric. You could make an equally passionate argument that looking at and keeping track of free/busy times on calendars or soda consumption or how full the garbage cans are on the floor as an indication and early warning sign that something changed. It doesn't mean those are good things to track. Pay attention to the things that matter. Align whole teams and organizations around those things. Don't let them get distracted with metrics that don't matter.

3) Metrics are a double edged sword and influence behavior. If you're tracking the wrong things, you will _get_ the wrong things.

<comment><USER13> People would like to have simple proxies for measurements instead of doing actual work. I totally agree all those metrics are useless and only real indicators are "is it working yet" and "are users finding it useful". Because I can make loads of pull requests that are perfect but are not working for end users, and have 80% test coverage for functionalities users never use.

Funny is that as project leader one should click through project as in using it to see if it is working instead of wasting time on finding proxies. If leader/manager does not know how to use system or never clicks through then he is useless...

</comment></comment></comment></comment></comment></comment><comment><USER14> A friend of mine was looking at the metrics for a project he was managing and saw that the bug rate of commits after 4pm was much higher. So then he introduced a new rule against committing after 4pm, resulting in a big drop in the bug rate. He chalked it up to less committing while fatigued and rushing to get things done to go home.

<comment><USER15> That's really interesting. Was there any drop in overall productivity/delivery pace as a result? There are definitely times when I wind up cranking out buggier-than-usual code later in the day/night to meet deadlines or get things done that otherwise wouldn't (at least, not on schedule). Sometimes when I timebox myself too much like that and it winds up dragging projects out days or weeks longer than they would have been had I not just blocked out a few hours to get the dang thing working and then cleaned it up afterwards; this is particularly true for complex projects where it can take a large portion of the day simply to build the mental context necessary to actually start executing on what needs to be done. If I cut myself off at a certain arbitrary time, the time spent building mental context earlier is totally wasted.

<comment><USER14> _If I cut myself off at a certain arbitrary time, the time spent building mental context earlier is totally wasted._

If what you have to remember to make a certain change means you have to keep 27 things in your head at once to avoid making bugs, you might want to consider re-organizing your code so this number is smaller.

</comment></comment></comment><comment><USER16> I think the title of this post is great, but the body doesn't quite deliver. The best content I've found on this subject is this book:

[https://www.amazon.com/gp/product/0932633366](https://www.amazon.com/gp/product/0932633366)

It talks about the different between informative and motivational metrics - the former being just for awareness while the latter being intended as explicit targets for employees. While it's easy to bleed the former into the latter, there's nothing inherently wrong with measuring game-able statistics as long as the incentive to muck with them is minimized. Easier said than done, but not impossible.

The article is pretty dismissive of story counting, which is a semi-popular approach to estimation:

[https://martinfowler.com/bliki/StoryCounting.html](https://martinfowler.com/bliki/StoryCounting.html)

(Anecdotally, we had someone look at our teams' previous sprints and found that # stories / sprint was more consistent than points per sprint over the time frame they reviewed. YMMV.)

The focus on velocity-related metrics seems smart - Git Prime did some analysis on this and found that frequency of commits was a useful measure:

[https://blog.gitprime.com/prolific-engineers-take-small- bite...](https://blog.gitprime.com/prolific-engineers-take-small-bites- patterns-in-developer-impact/)

I don't see how these are any less game-able than klocs though.

<comment><AUTHOR> Thanks for the book recommendation! Will definitely read it :).

Concerning Gitprime, I completely agree with you. And they do say that the point is to game their metrics: [https://help.gitprime.com/general/cant-you- just-game-the-met...](https://help.gitprime.com/general/cant-you-just-game- the-metrics)

</comment></comment><comment><USER17> Is Agile solving this problem now? or has Agile gotten out of fashion?

        * release often, release early, each release should function though with less features.
        * break large goal to small steps, one step at a time.
        * sprint every 2 weeks or 4 weeks.
        * 15-min stand-up every other day
        * etc,etc

I read some agile books in the past, and now I'm experiencing real Agile in sw development for the first time, so far I found it is quite effective comparing to my past projects, assuming you have some great scrum master and project- owner that are really good at the balance of arts.

<comment><USER18> If people actually do it, it helps a lot.

In my experience, if business stakeholders are seeing real value shipped to customers every week (or 2 if you must) then they don't get very antsy. Especially so if they are using a release-early, release-often approach to the product, where they see a project as an opportunity to explore what customers really want.

The problem starts to come in when the feedback loops are long. If they ask for something in January and don't see results in June, then they've got 6 months to wig out. And one of the ways they'll try to manage their fear is by getting up in developers' business by imposing all sorts of metrics.

<comment><USER17> in our case it's a long term internal project, it's embedded system development, we release bi-weekly internally before it reaches 1.0 for customers.

embedded product is notoriously hard to manage and I found Agile process actually helped quite a bit, via Scrum's 'story points' method.

</comment></comment></comment><comment><USER19> > If you don't include story points or some equivalent, this might be the most > misleading metric you could use.

I'm sorry, but if you think "story points" is something useful, your organization is already doomed.

Story points is an inflationary currency. When your developers realize that somebody important in the company cares about said currency, they will make sure that their work has more of these "story points" in "sprint planning".

<comment><USER20> Maybe it's just because I'm more confident that I won't get fired, but I've not had any trouble telling the higher ups to stop asking about story points.

Story points are a way for your teams to improve themselves. If they don't understand that, then teach them. And never report the points (directly) to anyone above the project lead or perhaps one level above that. Any higher and they are too disconnected from both the team and the work to understand what they're seeing.

The only thing that higher ups should care about are trends up and down. Your team, after say 6 months, should be pretty steady in their performance if they're using story points correctly. Downward trends should be identified by them and their project lead _early_ and addressed, and if it's an issue that may impact other teams they should communicate that up and out. Upward trends should be celebrated but also examined to see if some change could be duplicated elsewhere (an improvement to your build configuration resulting in faster feedback, adoption of a new development tool or technique, etc.).

<comment><USER19> > Story points are a way for your teams to improve themselves.

These points have nothing to do with actual value produced to the business, or the developer's worth / skill. It's also very easy for a developer to begin to inflate the estimation of tickets they believe they will work on, creating a false sense of confidence.

Alternatively, if people work at a "shop" where tickets are so fungible that people pick up whatever the top ticket on the board is, it tells me that they are working on low-value, repeatable things where expertise is unnecessary.

It's also not clear that increasing story points (even if they were somehow related to work / hours perfectly) would be useful. I've seen teams drop down to do minimal "work" for months and produce tremendous value because they were reorienting the product to do things successfully. An organization that looked at that labor input, sans objective outcomes in the product, would be doing themselves a disservice.

Story points, tickets closed, lines of code: ultimately all of these are a belief in the labor theory of value. But that's the thing. I don't want labor, I want value, and the tragedy that is input-focused measurement is just due to it's easier to do than measure product outcomes. It's always more convenient to say "We did 24 story points this week" than "Our users hate our software, and here's how we know it."

<comment><USER20> > These points have nothing to do with actual value produced to the business, > or the developer's worth / skill.

This is true.

Story points don't translate to value. They can't. A nail could be worth 5 cents, or it could be a million dollars. Value is determined by the customer and their need.

Story points translate to cost. Customers determine the value. They examine the cost. And they determine whether the value is worth the cost. Is that 5 cent nail worth 5 cents or is it the nail that'll save the project?

Story points are about developing an effective and consistent _estimation_ tool (how much will this cost or how much time will this take to produce). If your team is inflating their story points, they're idiots.

Assign a number to a story or task. If the team has developed consistent and reliable estimates (this takes time to happen) then this number translates with some reasonable fidelity to cost and time to complete the task. If the numbers are unreliable indicators of cost and time, then the team needs to examine their estimation methods. Perhaps bring in other people with more experience to help them.

The _team_ (themselves, no one else) has a history of completing so many story points per cycle (sprint, week, month, whatever). So they know that if the customer has asked for an estimated (their estimate) 50 units of work and they can only complete 20 per month on average, then it'll take 2.5 months on average to complete the work. This lets them, you know, plan. And discuss with their customer the priority and objectives. If the customer is only paying for one month of labor, the customer will have to reexamine their objectives and priorities.

The customer never sees the story points. They see the cost and time estimates the story points turn into.

The managers never see the story points. They see the cost of the projects and the income from customers.

The only people who should see and care about the story points are the developers and the project lead. Maybe a statistician if they can't do the math themselves.

<comment><USER19> > Story points translate to cost. Customers determine the value. They examine > the cost. And they determine whether the value is worth the cost. Is that 5 > cent nail worth 5 cents or is it the nail that'll save the project?

There is absolutely no evidence that story points actually correspond to cost in a product organization (as opposed to a contracting billable hours situation), because the long-term scope of a project is unknown. When does a project actually "end" with respect to its cost vs value production? Is this accounted for via story points? Are all of those things known when starting the first iterations? I would submit the answers to these are "we have no clue."

Something that does however correspond to cost is well, cost. Team's have a known salary burn rate, and this is completely independent of how many imaginary points they make. Any organization whose value output is being measured where two weeks is actually such a large timeframe that it needs to be broken down into more granular estimates is 1) delusional about the predictability of their actual value output and 2) pipe fitters working on easy, well-known features.

There are many ways of estimating projects as a whole that are equally as (un-)reliable for estimation and take way less time, and these can be coupled together with financial rationalization from the business. If two week increments can't have significant variance for the business to make a profit, and this business is in the extraordinarily high margin software industry, they're working on the wrong problems.

</comment></comment></comment></comment></comment><comment><USER21> Getting secure connection warnings.

<comment><USER22> Maybe the author fixed it - I see no such warning (FireFox 63), but what did catch my eye was a 3.6 MB jpeg that took 16.3 seconds to load (25 Mbps connection) -- admittedly, haven't read the actual article yet.

<comment><AUTHOR> Oh let me check this! Sorry about that.</comment></comment></comment>


Startup Resumes: Best Practices - <AUTHOR> http://blog.underdog.io/post/89286171752/startup-resumes-best-practices

<comment><USER2> Does anyone have suggestions for folks that can do a great job "designing" a resume? Email is in my profile.</comment>


Success in startups takes time. It's a long, long road. - <AUTHOR> http://www.humbledmba.com/go-big-or-go-home

<comment><USER2> Awesome, this is extremely relevant. I've been working with my other co- founder since mid-2009. I've since graduated, lived in China for 4 months, turned down multiple Master's programs, gotten married, and turned down job offers both in the US and abroad. All because of the reasons he mentioned...it may be difficult, but the alternatives are surely not for me.

And there's no stressing how difficult it is...emotionally, physically. 100 hour weeks, not sleeping for days before a launch, being away from family, etc. My wife lives 8000 miles away and if I wasn't working on a start-up we could be in the same place. But at the end of the day, I wouldn't change a single thing. I love what I do.

</comment><comment><USER3> Really inspiring post. Motivation persistence seems really important in the long run. You sometime will loose your motivation, but as long as you keep doing it, your chances to succeed increases.

</comment><comment><USER4> So true. If you focus on the payday you lose, if you focus on the product you _might_ win. The only way to win every time is to relish in the journey.

</comment><comment><USER5> I believe it. It's epic. firstname.lastname@example.com founder</comment>


NP = PSPACE - <AUTHOR> https://arxiv.org/abs/1609.09562 <comment><USER2> Scott Aaronson said (in a comment on his blog), "suffice it to say my prior is so overwhelmingly against this standing as not to be particularly interested in spending time on it."

I'd be willing to bet a lot of money this isn't right. It's hard to convey how implausible it is that NP could equal PSPACE, and the proof strategy is just "Here is an NP algorithm for a PSPACE-complete problem". They haven't attempted to implement the algorithm, as far as I can see. Presumably if this claim gets enough attention, someone will go to the trouble of working out where the mistake is in the proof.

</comment><comment><USER3> Is there a theorist who can put this into perspective? How excited should we be?

<comment><USER4> I'm not a theorist, but PSPACE is a superset of NP (and therefore of P). This paper shows that there are no PSPACE problems that are not also NP problems -- intriguing, to be sure, but it doesn't seem to immediately speak to the relationship between P and NP.

<comment><USER5> Yes it does, because there is a proof of P /= PSPACE. So the whole paper implies P /= NP</comment></comment></comment>


Ask HN: recommended dedicated server provider - <AUTHOR>

Hi
With various levels of virtualization taking over, dedicated servers seem to be on the wane (or at least less talked about).
Can anyone recommend a favourite dedicated, real-metal server provider? <comment><USER3> leeware.com is amazing in price, 100% hands off self managed dedicated hosting in bulk rentals only though. Not sure if I would recommend them for production ready servers though - great if you want a development environment, additional temporary memcache or anything you may not need 100% of the time. Currently manage 5 machines there. Don't expect support from leeware, which is more than fine for the price and the quality of servers.

OLM.net has also been good and extremely reliable - I recommend them for cheap self managed hosting for production level service. I manage 18 machines there. Annoyed by their billing practices (need to sign and fax a document each time you set up a new server to authorize the CC, and the same when you change the CC you are using).

servint.net has the best support and are extremely reliable. I have used them for nearly 10 years however they are the priciest of the three so sadly am slowly phasing them out. I currently run 4 servers there. Did I mention I LOVE their support?

</comment><comment><USER4> If you're looking for something flexible, powerful and straight up good, <http://www.goscomb.net/> gets my vote.

Not the cheapest, but definitely one of the best. We used them for a dedicated pen testing server, and when you're running port scans and exploits across the Internet they were surprisingly trouble free (other hosting providers had their IDS' go off, had filtering for various ports or would just randomly shut our systems down for 'hacking', despite us telling them what they were being used for.

We've replaced it with a beefier office link and a smaller VPS (also from Goscomb). Goscomb are UK-based, so you might find that it's less suitable for Asia-Pacific users due to latency.

</comment><comment><USER5> I'm using <http://joesdatacenter.com/> because it's the best price:power ratio I've found under $100/mo. I've got a dual core/4GB/1500GB for $79/mo.

I've been using them for ~9 months with just one or two minor hiccups.

<comment><AUTHOR> Those do look like pretty good deals. Like the name too. :)

What "hiccups" did you have?

<comment><USER5> Two network outages that were both short. I've opened tickets for those problems and for some misc questions. They've been extremely quick in answering.

</comment></comment></comment><comment><USER6> I, personally, have a dedicated server from HostGator. They don't tend to be very popular in in HN circles, but I've had a great experience with them.

Support is very fast and very helpful. They have even installed some software on the server that I was not able to, within hours of my request. And I've had bascially 0 downtime in the 4 years that I have been using them.

That said, I am right now looking to switch over to a virtualized host because I want to learn more about server management. But if you don't want to deal with that, then HostGator is a great solution.

<comment><USER7> I am a hostgator dedicated customer too, and overall am happy. Here's some feedback on them.

Downside:

\- You pay the same price for your hardware every year even though that same hardware gradually gets cheaper for new customers.

\- I pay $50 a month extra for a RAID 1 controller. This seems pretty steep, although I guess I'll find out the true value of this once a disk dies.

The good:

\- Hostgator is a down-to-earth company with pretty good customer service. They aren't trying to re-invent the hosting business model to reap giant returns. They do the basics and seem to have enough competent help to do this well.

\- Several years ago I had shared hostgator server get hacked via an insecure wordpress install. Hostgator automatically alerted me to this.

</comment></comment><comment> dav-id I have a root server with <http://www.hetzner.de/en/> it is running Windows Server 2008 R2 Web and is extremely quick and located in the EU so much lower latency for the people who visit it compared with one in the US - <USER2> people based in countries in the EU and Asia.

</comment><comment><USER8> Go to [http://www.hetzner.de/en/hosting/produktmatrix/rootserver- pr...](http://www.hetzner.de/en/hosting/produktmatrix/rootserver- produktmatrix-eq/) , they have great hardware, low prices and great uptime. I have a bunch of servers from them and couldn't be more happy with it.

</comment><comment><USER9> I have a couple with <http://www.hivelocity.com/> that I throw a constant ton of traffic at.

As a bonus they have this guy there Dave who is absolutely awesome if you can get him on your MSN/whatever IM.

<comment><AUTHOR> Looks promising, thanks for the pointer.

<comment><USER9> If you go with them let me know, I'll pass on Dave's MSN addy ... it's insanely valuable having a direct line of contact.

Or just put "Dave" in the how you heard about them field, he'll probably contact you just from that.

To really put into perspective how useful it is - a while back this crazy little game caused a million+ people to connect to my servers simultaneously. Dave has his own big-ass server and within an hour or so had a few VPS's deployed for me to carry the slack.

</comment></comment></comment><comment><USER10> Try 100tb (formerly known as 10tb) <http://www.100tb.com/>

I was with them for a while and they are rock solid. Servers are hosted at Softlayer datacenters.

</comment><comment><USER11> How about Burst.net?

<http://www.nocster.net/sale.shtml>

You can get a quad-core, with 8GB of RAM and 1TB of disk for less than $100.

</comment><comment><USER12> from all aspects, softlayer would be my choices.</comment>


Looking for hacker room mates in SF - <AUTHOR>

I just moved to the city and thought it would be fun to get together a bunch of hackers to rent out a nice apartment in the city. I think we could help each other out on whatever projects we're working on, exchange ideas and it could also be a blast! It seems like you get a better bang for the buck the more people you are (3BR or 4BR have much better value/money). I was thinking of spending somewhere between 1000-1700 per person per month, which should get us a nice spot when 3 or 4 people. If your interested in doing this, write me an email to firstname.lastname@example.com with what price range / part of the city your looking at. I'll organize a meetup of the interested people so we can see if we all match together and define criteria for a successful hunt! <comment><USER2> I thought you can get a nice 2br/3br apartment just for a person him/herself for 1000-1700 per month?</comment>