Why is Microsoft giving away web traffic and abandoning users? - <AUTHOR> http://www.itwriting.com/blog/3225-why-is-microsoft-giving-away-web-traffic-and-abandoning-users.html

<comment><USER3> Microsoft was able to attract 7 million users, and 30 million visitors - <USER2> decided that there wasn't enough value in that to continue developing.

I'm wondering if they came to the same conclusion that Ning did when they decided to shut down their free web hosting properties?

<comment><USER4> What was Ning's conclusion?

<comment><USER3> Ning decided there was no profit in "Free" web hosting - even with all the advertisements they plastered over the pages. They shut it all down and only support paid hosting.

<comment><USER4> OK. That sounds like a reasonable conclusion. I wouldn't be surprised if they came to a similar one.

I must admit that I find it amazing that blogs or even Facebook make as much money as they do from advertising. Google I get. I semi-regularly click a Google ad, because they are relevant. But I've almost never seen a blog ad or Facebook page ad that had content worth clicking. The exception to this are specialty blogs, like Engadget. But most blogs aren't Engadget.

With that said, clearly Facebook is making a ton of money. I'd love to see the data on what actually gets clicked.

<comment><USER5> Facebook and Google can target users more accurately than a blogging platform.

</comment></comment></comment></comment></comment><comment><USER6> I'm confused about Microsoft's strategy and directions. They appear to be as well.

<comment><USER7> Yes, this seems like a major surrender in the consumer space which brings into question any of their other consumer-focused web properties.

</comment></comment><comment><USER7> Related: "2010 acquisitions--Microsoft: 0, Google: 23" <http://news.cnet.com/8301-13846_3-20017823-62.html>

These two data points put together make me think something is Seriously Wrong in Redmond. They both speak to uncoordinated business unit strategy and paralysis in executive management. Perhaps Balmer is finally on his way out, resulting in this lack of focus.

</comment><comment><USER8> it could be that MS wants to re-focus on its strength: desktop OS. This might be a sign that MS position its software to be the traffic directors to preferred 3rd-party partners who are the best-of-the-breed in their respective market. In Windows past, MS first releases OS w/o important applications/features, let 3rd-parties fill in the niche, then develops features that won market acceptance. A modified version of this strategy might be simply making deals w/ 3rd-party web-sites to monetize the traffic.

If this is the thinking behind closing MS Live Blogs, then, yes, it's a tactical retreat but actually a step forward in their strategy.

The more interesting question might be how much of Windows Mobile OS influences this decision.

</comment><comment><USER9> > _Now, I thought the Live ID was a single sign-on for Microsoft's online > services, and the basis of a network of friends and contacts. Perhaps > Microsoft is now ceding that concept to Facebook or others? This does seem > to be a move in that direction; and while it may be acceptance of something > that was inevitable, it is a bad day for Microsoft's efforts to matter > online_.

I disagree. The sooner they kill off unpopular products and focus their efforts the better. Google has no qualms about quickly terminating projects that haven't gained traction, and MS shouldn't either. Especially now that they are going "all in" on search.

</comment><comment><USER10> A rare moment of clarity, maybe? Let's stick to things we can do for a profit?

</comment><comment><USER11> I thought they were going to offer wordpress-powered blogs on their own domain(s). Was I wrong?</comment>


Ask HN: Turn a hobby into a profession? - <AUTHOR>

I enjoy studying programming languages in my spare time. More specifically I like to study how to implement them, subsequently learning about DSLs as well. I believe that there is a market for this, but I am wondering how much of one. How could I turn this into a profession? Also, please feel free to share your experience(s). <comment><USER2> Hey There, I'm in a bit of a similar situation to you. I enjoy studying Web Design in my spare time. I also really like helping nonprofits and small municipal organizations. I've taken some first steps to turning this into my profession, and the key to this was two-fold: 1) The nonprofit I worked for in the summer had a terrible website. I made a portfolio website that showed what I could do, sent it to the director, and asked her if I could redesign her website. She agreed, and we went for it. Things went well, but one thing about starting your own business is you really work closely with people, and if they are very difficult people, you have to find a way to deal with them. 2)So I had my first success at an opportunity I found by leveraging my current connections. How to proceed from there? Offer to volunteer your services. I reached out to a local Americorps worker offering to volunteer my web design skills. We emailed back and forth for weeks and just recently say down for a meeting of 4 people in a small municipal government office. We are currently putting together a proposal to update the current website and if it goes through, I'll have my second client.

I'm not where I want to be yet, but I've started to get some traction and very hopeful that I'm on my way.

I'd love to talk to you more and see if we could help each other if we can find similar interests.

\- Max

<comment><AUTHOR> Would love to chat as well. Just PM JesseH on Freenode or shoot me an email. firstname.lastname@example.com

<comment><USER3> In addition to contacternst I would say that you maybe that thinking freelancing to small organization and some other thing like that. Feel free to share your personal portfolio I'll go visit it and give you my opinion ;)

<comment><AUTHOR> Fresh out of highschool so don't expect TOO much ;) but I'm working on it. jessehorne.github.io Check it out and tell me what you think.

<comment><USER3> Don't worry I'm pretty much fresh out of HS to :) I like what I see, keep being active on github that's great !</comment></comment></comment></comment></comment>


We (unexpectedly) got 60K users in 60 hours - What we learned - <AUTHOR> http://www.patrickambron.me/2012/07/12/we-unexpectedly-got-60k-users-in-60-hours-what-we-learned/

<comment><USER2> Hey everyone, just wanted to say I'm truly flattered my blog got posted to HN and made the front page (I'm the author). I hope people found it helpful

2 comments

1) Some of you wanted to know how HN compares to other sources for us, in terms of signups, conversions, etc. I'll post it in this thread at the end of the day (would you guys want a follow up post on this "Value of HN visits")

2) I've gotten some great feedback on the actual product from the HN crowd, which is awesome. Feel free to leave any feedback on this thread (you can try it at <http://brandyourself.com>)

<comment><USER3> Hey Patrick,

I have a question. Why is the title of your <http://patrickambron.brandyourself.com/> brandyourself page "Patrick Ambron, Internet"? Specifically, why ", Internet"?

<comment><USER2> When we first created the profiles, we wanted to optimize for your industry as well. We didn't want people putting in anything so at first we just used the industries used by the US Labor Dept (LinkedIn does the same). Now we allow you to manually add your profession too, but I just kept mine as "Internet" because it seemed the closest.

</comment></comment></comment><comment><USER4> Have you any thoughts of handling the edge case of users with ridiculously common names?

In the top ten for my firstname lastname I have:

       a famous chef,

       a life coach who is doing branding SEO,

       someone else who is a programmer,

       a professional photographer

In the top three firstname middlename lastname

       various high school kids,

       a registered sex offender

<comment><USER2> Sometimes a name is just too competetive to realistically expect to own the first page. That said, using our service, you are very likely to get some stuff about you up there. That visibility is important. If your name is Brad Pitt, people know you aren't the actor, but at least they found what they were looking for on result 6.

You are thinking the right way by trying to add an initial or middle name to your name. I'd be very surprised if you're name was too competitive to get some results.

Shoot me an email, I'd be happy to take a look and give somem advice pambron [at] brandyourself [dot] com

</comment></comment><comment><USER5> Patrick, can I ask if you get any actual calls in response to "call and talk to the real person" offer on your website? I'm sure many on HN recognize the importance of having a phone number on the site, but it'd be very helpful to know what it translates to in real world.

<comment><USER2> Yea, we actually WANT to talk to to as many users as possible. We get at least half a dozen calls a day. Trevor, our "customer happiness officer" spends all day talking to customer, answering people's email, etc. It does a few things

1) People get so excited to talk to a real person, even if they've just experienced a bug. These people become huge fans

2) It's the best way to learn about who's using your product. It's much easier to design and develop when you're thinking of specific people

I'd recommend everybody do it

</comment></comment><comment><USER6> "As any startup will tell you, most publications will only feature a startup if given some sort of exclusive. In their eyes, the only reason to cover a startup is if it provides readers with something they can't get anywhere else."

How do you start this conversation with a publication? How hard is it to simply cold email Mashable and attempt to get an article?

I'm assuming once the relationship is built it's easy to get follow up posts but do you have advice for making that initial connection?

<comment><USER2> When you're pitching a writer for the first time, I've found it's best to keep it short, focus on the story (show them the angle), and make it clear you just aren't blasting a bunch of writers. I usually try something like "Hey I'm the cofounder of BY. We just launched a product that helps people improve their own search results without having to spend thousands of dollars on a reputation firm. For example, my co-founder Pete couldn't get an internship in college because he was being mistaken for drug dealer and couldn't afford 7K to fix it. I read some of your posts on online reputation (link to them) and thought this might be a good fit. Let me know if you're interested--have plenty of details if you want to know more"

And yes, once you establish that relationship it becomes easier to tell them about an upcoming story. Even then, you want to keep it short, and focus on the story for them so the hard work is already done. "Hey, we just released a new feature. We can actually tell you when an employer googles you or finds your profile. For example, say you're interviewing at ad agencies in NYC, you might get a alert that says someone from Ogilvy just Googled your name and found your profile" We're really the only place providing this intelligence, let me know if you want more"

</comment></comment><comment><USER7> <http://patrickambron.brandyourself.com/>

> Co-Founder & CEO at BrandYourself.com

> January 2009 - January 2000

Branding fail

<comment><USER8> Good catch, updated now! So what did you think of the article, was it useful to you?

<comment><USER7> Absolutely, as it happens, but I wanted to do the traditional Hacker News "you suck" before I flipped and told you I enjoyed reading it.

I like your product too. It feels more personal than a linkedin.

<comment><USER2> Haha, much appreciated man. I think our profile is more personal than a LinkedIn, but we also provide something they don't. You can submit any link about you (LinkedIn, personal website, article written about you, etc) track it's ranking, and walk you through everything you can do to make it more search engine friendly so it ranks higher for your name

</comment></comment></comment></comment><comment><USER9> Very interesting product. I haven't yet had a chance to fully explore the site, but I will certainly be creating an account in the future.

I have two concerns:

1) What happens when two people with the same name sign up? Couldn't that lead to issues where they're both trying to promote their own stuff while burying the others?

2) Is there any way that someone could pose as someone they're not in order to sabotage that persons google results, or I could see the possibility of a friend doing that in order to pull a prank on you?

As I said I haven't fully explored to site, so if these concerns are addressed on there, apologies. Great article!

<comment><USER2> Hey these are really good questions

1) In terms of duplicate names, the product also helps you optimize for specific relevant terms like "Patrick Ambron, developer" or "Patrick Ambron, BrandYourself" "patrick ambron, NYC" etc. So people looking for you will be able to find you. That said, if two people are competing for the first page of Patrick Ambron using our service, the person more actively updating and creating content will edge the other out (google loves new, relevant content). But, at least they'll be a leg up on all the other Patrick Ambron's of the world

2) This is definately a possibility--in the same way, I can go and create a wordpress site using your name. It's hard to detect, but there are warning flags we look for. If you create an account for Patrick Ambron, but don't have the authentication for any of the other profiles (FB, twitter, LI) it looks suspicious and we check it out. We also have a policy where if you email us because somebody is using your information in an account, we will suspend the account for you, until the user can verify that they are who they say they are.

<comment><USER9> Thanks for taking the time to respond! Guess I better create an account so I can get a leg up on the other Grant Covingtons out there :).

<comment><USER2> Awesome! Feel free to reach out if you want to make sure you're doing everything you can or if you have any questions pambron[at]brandyourself[dot]com

</comment></comment></comment></comment><comment><USER10> How are they determining what companies are googling you?

Do they attempt to create a top ranked page about you, and then monitor IP addresses visiting it, and match that to some db that maps company to IP address?

<comment><USER2> @pdx yea you nailed it. Most of our users end building a BrandYourself Profile, which is a simple (but pretty) profile that's really well structured around your name, so it generally ranks on your first page. From there we can use the IP addresses of visitors to determine who they are

We could always tell you when someone found that profile and where they came from (they came from FB, or they came from Google after Googling your name", but recently we started mapping the IP address to organizations. That data is really accesible--you can buy a list from most major hosting companies--but it's not really used for this purpose

<comment><USER11> Haven't tried this, but can't just do a whois query for the IP address?

<comment><USER12> That's not always reliable. For example, if you do a query on my company's web server IP address, you'll just get the name of our ISP as your result.

<comment><USER13> Whois on an IP address - you mean rDNS, right? Are you sending mail from this server without fcrdns?

Most VPS providers will let you change the rDNS record for the IP.

<comment><USER14> No, rDNS And whois are different things. <http://en.wikipedia.org/wiki/Whois> vs reverse DNS, which you are obviously familiar with.

</comment></comment></comment></comment></comment></comment><comment><USER15> Very cool, looks like it has a lot of potential. I'm hoping you have some spam prevention strategies in place, though, as it seems pretty ripe for it as it takes off (just like any free service that lets you create profiles and post links to sites, but _especially_ a service that promotes SEO and posts followed links to sites)

<comment><USER2> Yea that's a good point. The nice part is, we don't create any profiles or links on behalf of the user. They need authenticate things like twitter, fb, etc on their own, so they actually need to have or create these profiles. They need to go through the work of creating all the relevant content, and linking it to eachother, we simply let you know if they are optimized/filled out enough, and track their ranking

Interestingly enough, one of the things we need to keep our eye on is people going through the trouble to create accounts--including social media profiles ---about other people. Would not have guessed that would be a problem

<comment><USER4> You could have a one-time pay service to get a "verified" badge on the profile, like what Twitter has for celebrities.

<comment><USER2> That's a really good idea. It could serve the purpose of giving you a badge, but it could also be a protective measure, because it means we won't let somebody else with your info use the service (since they aren't verified)

</comment></comment></comment></comment><comment><USER16> I love this service, was in the early signup group and within a month controlled my first 10 results.

Keep expecting a pivot to small biz though and hope that's in the plans, seems like a much easier group to monetize.

<comment><USER2> Thanks for the kind words and for using the product.

Right now we are focused purely on individuals (it helps us keep the product simple). It stems from our mission, "a person shouldn't have to pay a lot of money to manage or improve their _own_ search results." While small businesses are easier to monetize, we're happy to just help as many people out as possible, and as long as 2% want the premium features, we're in a good place

<comment><USER17> Yep but helping small business have a positive white hat SEO, could be huge. I myself have been searching your page for small business option, and I am more willing to pay for my startup than for me (and I´ll probably convert the private account).

<comment><USER2> I do think there is a big business there, but it's also crowded and more complicated. People don't realize how big the individual market is, and we want to be the ones who own it. But reach out to me, I'd be happy to show you how to use the product, and give you some additional tips for the business front--pambron[at]brandyourself[dot]com

</comment></comment></comment></comment><comment><USER18> While this break-down is very interesting, it all boils down to one thing: they announced an innovative feature that interests a lot of people. Things could have played out differently but the outcome would be the same - lots of signups.

If someone from the company is reading: I found out I already have an account (probably from the time it launched), but I can't access it. Login doesn't work and when I try to reset my password it says "e-mail not found".

<comment><USER2> Hey, email me at pambron[at]brandyourself[dot]com. I'll figure out why you can't log in

</comment></comment><comment><USER19> Just a thought - some people go to a lot of effort to 'hide' who they are by ensuring their name does not turn up - or if it does its so mixed in with many result's that it would be hard from a casual review to determine this is the John or Jane Doe one is after - while others a lot of effort to make sure a search turns up the correct Mesers Doe.

<comment><USER2> Our view is pretty simple on this: Whether you like it or not, people are going to Google you, and they expect to find you. 75% of HR depts. are now _required_ to Google candidates before searching for them, 30% of all daily searches are for someone's name. If you don't show up, you miss an opportunity to mold that first impression.

You might as well be proactive and make sure you have some relevant content well optimized. Otherwise you might be represented by something negative posted by somebody else, or something irrelevant, or mistaken for somebody else all together--my cofounder Pete couldn't get an internship in college because he was being mistaken for a drug dealer

In other words, if you don't define yourself, something else will.

</comment></comment><comment><USER20> I really like your product, but the only issue I had was when I was boosting my links. After every step in the boosting process I was asked to share that step with my Social Network, while that may help my SEO it became more of a nuisance. I would like to be asked only after completing all of the boosting steps.

Other than that keep up the great work!

<comment><USER2> Just to be clear: You were asked to share your link after every step in the boosting process?? It should just be your final boost step, which you can choose to do or not. Looking into this now

<comment><USER20> I just tried to recreate and could not.

<comment><USER2> Yea, it should be your final step (it's 1% step that helps, but you don't need to do it). I can't recreate the bug either, but i have my eye on it. That would be annoying so thanks for the heads up

</comment></comment></comment></comment><comment><USER2> Thanks again everyone, I'm truly flattered. We had some great discussions (have some catch-up to do today, had no idea I'd be spending so much time on HN :)).

Since so many people were curious to see the affect HN would have on our signups, I think I'm going to do a follow up post next week.

</comment><comment><USER21> I really like how you guys built a viral mechanism into the product. You incentivize the user to share their BrandYourself with their existing profiles/networks to receive a "boost", which helps spread word of your product. Pretty ingenious if you ask me. Good job guys!

<comment><USER2> Thanks. The trick is to figure out how a viral mechanism that aligns with your actual value prop. People want their links to show up higher in google, and sharing them on social networks will actually help in that process. It fits :)

</comment></comment><comment><USER22> I remember telling people about this when it first launched, citing it as a vanity metrics booster.

As a startup founder, however, it's invaluable. I'm a converted fan, and the process even taught this rookie a bunch about link building and SEO.

Great work, keep it up, and loved the blog post.

<comment><USER2> Thanks Nickler. Glad we were able to convert you :) We've actually found that startup founders/entrepreneurs are great, great users for us. If you're interested I'd love to talk to you on the phone, and get an idea of how you approached the product, and what changed your mind.

If you're interested, just shoot me an email (pambron [at] brandyourself [dot] com)

</comment></comment><comment><USER23> More just FYI, but it's weird that your blog doesn't show up in [https://www.google.com/search?q=We+(unexpectedly)+Got+60K+Us...](https://www.google.com/search?q=We+\(unexpectedly\)+Got+60K+Users+in+60+Hours.+What+we+learned)

<comment><USER2> Thanks Eli. That's actually because I just created this blog about 2-3 days ago (this was my first post). It'll take a bit before it's picked up and starts ranking. That said, I should see it go up soon, since I use BrandYourself :)

<comment><USER23> Cool, I figured as much. It's a nice post, I was googling it to send it the whole team.

</comment></comment></comment><comment><AUTHOR> Any chance you will release a plugin for a non-brandyourself site? I'd love to put the "find out who's googling you" feature on my blog or even my startups website.

<comment><USER2> Nothing in the direct roadmap, but that's a great idea. Right now we're focusing on being more directly integrated w sites so we can you improve them right from us. But again, that's a very good idea

<comment><USER24> I would be interested in such a plugin as well. Given that I have a very unique name (Moncef Belyamani) and that I've had an online presence for quite some time, I've owned the first page of search results for both my name and my "monfresh" nickname for years. I don't have a need for a BrandYourself profile, but the "associate an IP address to a company" feature is intriguing, and the analytics service I use for my sites (getclicky) doesn't seem to offer that. Are there any analytics companies that do?

<comment><USER2> Surprisingly, very few analytics companies do. I'd go as far as to say just us (at least in what I've seen)

The reason is, most analytics company's are meant for places that get a lot of traffic. It's not really appealing or useful to have such specific info on one visitor, Instead you want overarching information about all of them

A person on the other hand, probalby has one or two people finding them a month. That means each visitor is someone important. You want as much information as possible to figure out who they were (where did they come from, how did they find me, where did they _work_ , etc) Our goal is to get as much information as possible to you

</comment></comment></comment></comment><comment><USER25> How much better are your results in boosting visibility as compared to for example getting myname.com and linking to myname.com from all social media profiles?

<comment><USER2> Getting yourname.com is always a Great move (we let you apply a custom domain to your BrandYourself profile), and you want to link all your social media profiles.

We basically walk you through a simple process

1) Make sure you have relevant content on the web (FB, LI, personal website, etc)

2) Make sure that's as search engine friendly as possible (are you using you're actual name, is there enough relevant content on it, can search engines index it correctly, etc)

3) Make sure all of your relevant content links to eachother (Your FB should link to your personal website, etc)

On average users find after going through our "boost process" for any given link, it rises a full 1-2 pages(10-20 results) in their google results.

</comment></comment><comment><USER26> Awesome piece. It's rare that a startup dives this deep into the details. You deserve the 1000+ signups you'll score from a HackerNews front page ;-)

<comment><USER2> Hey thanks man! I just happen to really enjoy data--and it's paid off.

I've also been getting some great feedback from the HN crowd, so these are great signups :)

<comment><USER27> Rochester guy here who has enjoyed watching a non-NYC startup gain some traction. Nice job!

Also, will there be a "post HN front page" report?

<comment><USER2> I think I may do one

</comment></comment></comment></comment><comment><USER28> Good things happen to good products. Though Hashable is closing so might see a influx from users migrating from there over the next few weeks.

<comment><USER2> Thanks. I think focusing on a good product is the most important thing. We do one thing really well: when someone googles your name we help you make sure you have the most relevant things showing up. In terms of Hashable, we aren't a direct replacement, but the type of people interested in networking apps generally like to make sure they look good online :)

</comment></comment><comment><USER29> Were these high quality users in the sense that they converted to paid from a free account? What source lead to the highest quality users?

<comment><USER2> Yes, users can pay for premium features (free users can submit, track and boost up to 3 links, paying members can boost unlimited) With our model we hope 2% convert to paid at some point in their Lifetime as a user.

In terms of this push, most of the major US press has been a _phenomenal_ source (which was the bulk of this surge). 2-3% converted in the first 24 hours, and by 8 weeks that number was closer to 5%. Mashable by far being the best, followed by Huff Post

BrandYourself profiles were/are another amazing source. This makes sense too, because it's coming from a trusted source.

Google and Direct isn't quite as strong (which makes sense since the sources are so varied) but we still get above the 2% mark by 4-5 weeks

The signups from foreign publications were pretty bad. They signed up for free at high rates, but they just don't pay (.5%). Not entirely sure why, but until we figure it out, we put people from those places on a wait list

<comment><USER3> >The signups from foreign publications were pretty bad. They signed up for free at high rates, but they just don't pay (.5%). Not entirely sure why, but until we figure it out, we put people from those places on a wait list

Do you have international friendly payment methods? Regionally tiered pricing? And what do you mean by, "we put people from those places on a wait list"?

<comment><USER2> What do you mean by regionally tiered pricing? Right now all pricing is in USD which could be another reason for the drop off. Does anybody have experience with this type of thing?

PS-certain countries are put on an invite list so they can't sign up right now. It tells them to sign up to get on the waiting list

<comment><USER30> So, any way for legitimately interested people from banned countries to sign up other than waiting?

</comment></comment></comment></comment></comment><comment><USER31> I feel like I want these guys to succeed just because Patrick seems such a nice guy, have enjoyed reading the threads.

<comment><USER2> Hey, thanks man

</comment></comment><comment><USER32> Good work, man. Takeaway for me is to make the most of Google Analytics' conversion tracking features.

<comment><USER2> Yea absolutely. We track everything through our own internal system and through analytics. We want to know where our best users come from. Which sources get people to sign up, which sources bring the most active people, and which sources lead to the most subscriptions. It helps you focus your marketing/PR efforts.

<comment><USER32> I'm interested to see how HN does for you. The front page in my experience drives an order of magnitude less traffic than you saw from Mashable, which is still a nice bump. Let us know how we convert, eh? :-)

<comment><USER2> Yea, I think I'll post on this thread at the end of the day w some numbers, or maybe even do a quick follow up post tomw. Either way, I'll let everyone know

<comment><USER32> Cool, thank you.

</comment></comment></comment></comment></comment><comment><USER33> You might want to take the quote from Fox news off your front page. First thing I noticed...

<comment><USER2> Do you dislike the quote, or the fact that it's from Fox news?

<comment><USER34> I dislike Fox.

<comment><USER2> Can't say I blame you, actually. At the time of Launch, it looked like our widest reaching "crediblity booster". I think we should go ahead and change that now

</comment></comment></comment></comment><comment><USER35> 30% is a awesome conversion. Any specifics on how you were able to get it up so high?

<comment><USER2> 1) We happen to have a value proposition that appeals to almost everyone. Almost everyone has Googled their name, and thought about improving their results in some way or another--maybe there's something embarrassing, or maybe someone else with their name owns all the results, or maybe they have certain things they just wished showed up.

2) We worked hard on our home page \--we explain what it does, who we are, and how it works in as little words as possible, and lead you right to sign up (we tweaked this language so many times I can't tell you) Everytime it seems clear enough to us, we would put it front of random person. If they didn't completely understand what we did and want to sign up, we went back to the drawing board. We did this over and over again.

\--For those who need more validation we lead you to more info: our company story/mission, our press, testimonials, et. I call these "credibility boosters"

3) We give a lot away for free. People like free stuff

</comment></comment><comment><USER36> How did you implement that particular feature? (Notify when someone searches you)

</comment><comment><USER37> I want to know how many signups you get from this submission to HN

</comment><comment><USER38> Hey Patrick, I don't see the link to the article. Did I miss something? Can you please resend, I am very curious. Thanks!

<comment><USER2> [http://www.patrickambron.me/2012/07/12/we-unexpectedly- got-6...](http://www.patrickambron.me/2012/07/12/we-unexpectedly- got-60k-users-in-60-hours-what-we-learned)

</comment></comment><comment><USER39> Congratulations, but there's no way to say who a "user" is in 60 hours. What you got was 60k signups in 60 hours.

</comment><comment><USER40> Thanks for sharing the lessons

</comment><comment><USER41> There is one problem with the "find who is googling you" feature. For about a year now, google has started hiding the search results from the referral when someone uses google while logged in to google services.

You may have seen "not provided" in google analytics for searches that found your site... This is users logged in to google. And with more people using google services such as gmail and g+, more and more results will be hidden. On my corporate, tech web site, I'm seeing 40-50% of results from google as "not provided" nowadays, and its increasing every month.

<comment><USER42> I thought that's a feature of HTTPS, not sending referral headers to non-HTTPS links. (and so not an explicit move by Google but a necessary consequence of providing secure connections for logged-in users)

<comment><USER2> Yep. Basically if you're using Google behind the HTTPS (like you're logged into Google+) they'll send back a non referral header. There ARE ways around this, but it's tricky

</comment></comment></comment><comment><USER43> Interesting! I made my own guide a while back for my friends, with great success.

1a) Make a "brand" with your middle name Google your first and last name. If you're like most people on earth, you're one of many with your particular combination. So how can you rank higher?

Never fight a battle you don't have to. Pick a middle name, real or imaginary. Google your new full name.

Example: My name is Kevin Barry. The Google result is completely owned by Wikipedia and other impossible to compete against sites.

My full name is Kevin William Lord Barry. I think Lord sounds cool, so I'll make Kevin Lord Barry my "official" online name. It's much easier to rank for and even helps with personal branding.

1b) Consistency! Put your new name on top of your resume for consistency.

2) Edit/Create Your Facebook Take your new name. If your Facebook looks professional, change your Facebook name to your new name. If not, make sure your Facebook doesn't use your new full name.

3) Edit/Create Your LinkedIn Take five minutes to create a LinkedIn account with your new name. Put all of your resume information on it neatly. LinkedIn will rank well for your new name, and you can brag as much as you want on it without looking pompous.

4) Make Yourself Look Good on Amazon Make an account on Amazon, using your new branded name. Pick a couple of books in your industry with good ratings. Read the summaries (read the book, preferably, but I won't judge if you don't). Leave a review of the books that makes you look good: show that you know industry terms, talk about your experience, etc.

Each review you leave will go to your Google front page and make you look smarter. This only works if you know enough about your industry to sound smart, of course. You can also do this for textbooks, or fiction that you like if you want to sound interesting.

5) Make Accounts on Web 2.0 Websites Take five minutes to make an account on sites that allow descriptive profiles with your full name Quora, Yahoo Answers, DisQus, Meetup, or anywhere else you want. Feel free to participate in these communities to help even more, although it's not necessary.

6) Strut Your Stuff! Here's where you can have fun and really seem impressive. Go to Weebly.com and make a free website, called "yourfullname.weebly.com". Set the page title to "Your Full Name Online" and the page description to "Your Full Name's Online Website". Write a paragraph about yourself on one page, and a page with links to your linkedin, Facebook, or anywhere else you want to show people. Go nuts and add anything else you want that might make you seem interesting. Voila!

<comment> X-Istence This has worked well for me personally. My dad and I have the same name, and I share a fairly common name for Dutch people. My name is Bert Regeer, but I always go by Bert JW Regeer. In conversation I am still Bert, but everywhere else I am Bert JW. This solves a lot of problems.

People no longer get me confused with my dad or some guy working for Shell, when I sign up for mail or anything along those lines it has my middle initials in the first name field (unless they have a special field for middle initials) and I don't have issues with my dad and I sharing a name (If we travel together, sometimes the airline will cancel the ticket because they believe it is a double booking ... makes it really fun when we both go to check-in).

Best of all, I now rank really high for Bert JW Regeer. As in, almost everything on the first through third page are exclusively me (may change depending on location) on Google. That makes it fairly easy to find me.

<comment><USER2> This is a really good idea (we encourage users to do it). If you have too common a name, use a middle initial. The trick is, you need to use that name in prof. setting (biz card, resume, etc) otherwise people will still Google the other name, and they won't find you

<comment> X-Istence Indeed, my middle initial is on everything. Business cards, it is in my domain name (bertjwregeer.com), it is used in email, everything.

</comment></comment></comment></comment><comment><USER44> "Error establishing a database connection"

Is this a joke?

<comment><USER45> I thought it was too :D <http://cl.ly/0a2r3l2b331l0B1n141U></comment></comment>


Show HN: 67% of PHP installs are insecure - <AUTHOR> https://developerjack.com/blog/2015/12/09/php-version-roundup <comment><USER2> I think this should not be in Show HN...

<comment><USER3> Reason? I think it should be shown so people can take proper care.

<comment><USER4> "HN" is good for this article.

"Show HN" is not good for this article.</comment></comment></comment>


I made a UK Government Covid-19 themed "ambiguous slogan generator" - <AUTHOR> https://slogangenerator.net/covid <comment><AUTHOR> It comes with its own "conspiracy nut mode" for auto-generating slogans including 5G, bat soup and vaccine themes

oh ... and pull requests are welcome</comment>


Ask HN: Eastern Europe company, solo consultant. Could I access a VC? - <AUTHOR> Incorporated company in Eastern Europe country. No employees, started 6 years ago. Working with any technology needed, no fancy development, customers are happy and more important - problems get solved. I charge about $20/hr. I always have work in progress and never got a customer that negotiated the fees. I like to do this, I learn things, I get to solve real-life problems but I feel that I could be making much more money if I'd charge more.
I don't have any magnificent idea, however I do know that in my country many small businesses need CRMs, ERPs and custom software. So it's basically a lot of work to do.
My question is, can I access a VC like the US does? Where could I find a partner? Where can I educate on how VCs work (in depth)? <comment><USER2> Hey, Fellow developer in Greece here! I don't do custom jobs, I have only applications and this gives me allot of free time to implement new apps and expand existing.

Why do you need VC? Can't you create an application by yourself and start selling it?

<comment><AUTHOR> Hi, thank you for the reply! Yes, I can create web-apps and that is what I actually do. CRMs and stuff.

I was just curious if it's easy to access a VC but I am aware that at my level I wouldn't know/have to do with the money.

It's not like I grow that fast...</comment></comment>


Useful tips for Backbone.js - <AUTHOR> http://codifyme.wordpress.com/2013/05/26/useful-tips-for-backbone-js/

<comment><USER2> Really Helpful!!! :)

</comment><comment><USER3> Good read

</comment><comment><USER4> thumbs up to this</comment>


The Middleman Is Thriving on the Internet - <AUTHOR> http://www.heraldtribune.com/article/20110924/ZNYT05/109243019/-1/news03?Title=The-Middleman-Is-Thriving-on-the-Internet

<comment><USER2> There's no particular reason why the Internet would eliminate traditional middleman roles. Middlemen match trades, curate and absorb risk. The Internet only changes matching, eliminating a good chunk of the discovery but leaving the cajoling of either end alone.

Right now, the major areas open seem to be cajoling and curation. That sounds about like what the profiled firm does: they open communication with local restaurants and then present the options to customers.</comment>


SQL Server 2019 Public Preview New and Interesting Features - <AUTHOR> http://www.nielsberglund.com/2018/09/24/what-is-new-in-sql-server-2019-public-preview/ <comment><AUTHOR> A very initial investigation of what is new in SQL Server 2019 Machine Learning Services.</comment>


HackerRankX Wants To Kill The Resume - <AUTHOR> http://www.fastcolabs.com/3031839/hackerrankx-wants-to-kill-the-resume-once-and-for-all <comment><USER2> Great, so now I have to maintain an updated LinkedIn profile, contribute to various open source projects on GitHub, sustain an active StackOverflow profile, and complete coding challenges on HackerRankX.

I hope the employer who hires me doesn't mind if I do all that on the clock!

<comment><USER3> Don't forget you'll also need to know Ruby, PHP, Python, Node.js, all .net languages, Javascript, HTML5, CSS3, Nginx, Linux, Nosql, MySQL, Photoshop, Art and Design, among other skills.

<comment><USER4> In my experience, the interview process for jack of all trades job descriptions plays out the same way every time.

1.) The candidate shows up with a effectively all the required skills. Predictably, logically, the candidate has a roughly average level of skill across the range on average.

2.) The interviewers decide the candidate won't do because he/she is 'only' average in some area that should have been one entry on a _short_ list of _required_ skills in the first place.

Either hire for the skills you actually need and be specific about it or hire the smartest, hungriest people you can find and be honest about what they'll be expected to learn.

<comment><USER5> You forgot:

3.) Applicant is hired, and paid criminally below-market with above-market stress, because the types of people who explicitly hire "jack of all trades" are generally trying to save money.

</comment></comment></comment></comment><comment><USER6> I feel like coding challenges like these are contrived and really prove nothing. Cool, you can create a "palindrome index." Can you effectively lazy load assets in an app on demand? Can you architect your CSS in a way that only the relevant styles show up on a page? Do you know _why_ a standard for loop is faster in most cases than a for in loop? Tests like what this site is trying to do don't really prove anything other than you're good at solving puzzles with code whereas as an employer I'm more interested in the quality of your applicable code and architecting thought processes.

I'm not saying these tests are _totally_ useless. Obviously it demonstrates a dev's ability to code within one or more languages, but they're hardly enough to make a hire off of. When it comes to building actual product, these tests always fall short.

<comment><USER7> If your core business is built around a specific CS problem [e.g. Uber would be the traveling salesman, Google is searching with NLP], picking candidates that demonstrate they can solve that sort of problem effectively [not perfectly, just 'good enough'] is pretty relevant. [e.g. Code Combat's Greed tournament would be a good recruiting platform for finding developers for Uber that worked on the backend since the traveling salesman problem seems really relevant to them]

However, I think you are right in that most of them are useless because they don't focus on that sort of detail.

EDIT: Okay, I had a bad example. Sorry.

<comment><USER8> I guarantee the amount of time spent on traveling salesman problems at Uber is a miniscule fraction of all development time.

<comment><USER7> Oh, I'm sure. But it would be _relevant_ which was my point. Someone at Uber at some point had to solve that sort of problem.

Many of the questions I've been asked in interviews are more or less, "Someone had to do X at some point as part of our product, how would you do it?"

The goal is to figure out if you are competent at solving business problems logically that are relevant to the business in some way.

<comment><USER9> Would it be though? Amazon spends a lot of time on the traveling salesman problem too, but only the extreme high end architect level people, on a _very_ tiny number of teams.

99.9% of engineers at Amazon are writing, well, downright normal code.

It seems silly to test someone on something they will never, ever run across in the course of their duties, and which you reserve for only a tiny, select portion of your workforce.

It'd be like requiring all the waiters in a restaurant to also be qualified chefs. Yeah, cooking is the core of your business and highly relevant to the organization as a whole - but not to this position.

<comment><USER7> Proving people know how to implement an algorithm [even one that is a pretty bad solution to TSP] seems relevant to me. It doesn't to other people.

Think of it as a more relevant FizzBuzz.

> It seems silly to test someone on something they will never, ever run across > in the course of their duties, and which you reserve for only a tiny, select > portion of your workforce. > It'd be like requiring all the waiters in a > restaurant to also be qualified chefs. Yeah, cooking is the core of your > business and highly relevant to the organization as a whole - but not to > this position.

Is a naive solution to TSP really that hard?

<comment><USER9> > _" Is a naive solution to TSP really that hard?"_

Why do we want a naive solution to TSP? The naive solution to TSP has no applicability to anything - it's purely a thought exercise in the same vein as "why are manhole covers round" and "how many jelly beans are in this jar".

Remember that 10 years ago we thought _those_ questions were "predictors" of programmer ability. Turns out that was full of crap.

So your notion of testing someone's suitability for a job is to ask them to solve a problem unlike any they will encounter in the job, expecting them to generate a solution that would be wildly insufficient even _if_ the problem was relevant to their job?

In the mean time I rarely see companies testing for abilities that _are_ used on a regular basis in these jobs: the ability to architect, knowledge and familiarity with best practices and design patterns, writing testable code, etc etc. All of these skills are far from universal, but yet we spend no time ensuring they're there. No, we blow the valuable 45-60 minutes we have with candidates twiddling around with TSP.

We ask candidates simplified things from what goes in IRL, because we don't have all day. That can't be helped - the least we can do is make sure what we ask is actually a simplified version of what the candidate will be responsible for, instead of simplified versions of things the candidate will never touch, ever.

> _" Proving people know how to implement an algorithm [even one that is a > pretty bad solution to TSP] seems relevant to me."_

It doesn't to me. More accurately, it doesn't seem relevant to the majority of coding jobs out there.

In reality the number of jobs that _ever_ involve implementing real algorithms is really low. Even in research-heavy companies like Google it's limited to a small subset of employees in a small subset of teams.

The vast majority of everyone will not write a substantial algorithm from scratch in their day job. Ever. So why are we testing for this ability?

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> I was recently interviewing for a new job. One company asked me to solve a coding challenge. I had one free evening to do it and managed to get it mostly done but didn't feel comfortable submitting it as there was still a few issues and I didn't have time to clean it up like I wanted to.

The other company asked for some code samples of work I had already done and then I walked them through it to show that I understood it and what design decisions and trade-offs I had made and why.

The company that asked for code samples ended up making me an offer and due to lack of time and the fact that another company was already interested in hiring me, I never even continued the conversation with the coding challenge company.

It seems that if a coding challenge is trivial then it doesn't really prove much. There's probably an answer for something close to it online and even if the candidate did solve it on their own it's still too trivial.

If a coding challenge is complex enough to actually test a candidates range of knowledge then it's often not worth it to complete the challenge for a possible job opportunity.

</comment><comment><USER11> I think I prefer Gild's approach (I've only superficially skimmed their site, no actual experience of their product). They're analysing existing data points to predict the right applicants - StackOverflow, Github etc.

Seems more elegant to use what exists than to ask recruiters to come up with a custom challenge. If they can't make realistic asks at the moment it's unlikely they can create realistic tests on HackerRankX either.

I'm still waiting to see the first job that requires 5 years + experience in Swift. Shouldn't take more than a few months.

</comment><comment><USER12> Even with all these metrics I still have to write code even for the phone screen and then have a 6-8 round coding interview where I have to algorithms that I will not use in my job. I don't see that going away.

Also I don't see bigger companies adopting these anyway. They will have their own way of hiring and is usually more relaxed. All these hurdles just make an experienced candidate cringe more applying to a startup.

</comment><comment><USER13> I was into HackerRank for a while (in a previous life I did a lot of TopCoder/CodeJam/ICPC/USACO/etc) but it just wasn't the same. Programming competitions have a long history and high standards, and there were just too many repeated failures on both the side of execution and problem selection. An objective function that immediately allows a trivial solution for record points. Lack of compiling with optimizations. Changing what libraries are allowed partway through (more accurately, some server instances allowed the library, but they all went away by the end). Too basic algorithms. That said, I did have a lot of fun, especially having free reign to use ML and NLP and math libraries. But even that just made me realize that ML competitions tend by nature to be less about the "Aha" moment then they are about getting all your ducks in a row and doing the appropriate due diligence, and I might as well spend that time consulting for hedge funds.

</comment><comment><USER10> How is hackerrankx.com different than hackerrank.com? They use the same logo but require different logins.

<comment><USER14> One is a general programming/hacker site, the other is the same product built as a recruiting tool for recruiters/companies.

<comment><USER10> It seems odd that they don't combine the two. You could have a paid version for companies that lets them create their own coding challenges and view candidates who have completed challenges in problem domains and languages they are interested in.

<comment><USER14> We're figuring out exactly how this could work -- but given the disparate audience of the two applications, they are separated for now. Like Github normal, and Github Enterprise.

</comment></comment></comment></comment><comment><USER15> For what it's worth, I kinda like the idea. I don't think coding interviews are going to go away anytime soon and I'd much rather use HackRank's fancy interface from the comfort of my home than stand awkwardly at a white board while one or two people stare judgingly at the back of my head.

Despite the somewhat sensationalist headline, the article itself actually seems to be pretty realistic (aside from the "and in a year from now, HackerRank will be like that" comment).

To me, it seems like another tool people who are not good at networking can use to distinguish themselves.

</comment><comment><USER16> > "[...] an obscure theory, like graph theory [...]", [founder] says

Even nowadays, no more or less respectable university will let you graduate with a CS degree without learning at least the basic ropes of graph theory (more than rightfully so). If this is representative of their priorities, I am left wondering if their ranking will actually be of interest to any organisation looking for competent programmers (as opposed to bedroom-trained PHP/Python hackers).

</comment><comment><USER17> Or companies could just ask for code samples. A resume is just a summary of experience, not sure how programming challenges would show the person can maintain a working relationship in a company.

</comment><comment><USER18> Things like this seem more useful as a honeypot.

</comment><comment><USER19> the functional programming challenges have a very weird selection of available languages:

Scala, Clojure, Erlang, Haskell, Ocaml, Lisp, F#.

not the most popular languages.

<comment><USER20> functional programming languages are not the most popular languages.

<comment><USER5> Eh, Javascript seems to be doing alright for itself.

<comment><USER21> Since when is JavaScript functional?

<comment><USER22> It's not functional in the same vein as Haskell, but it is in the same vein as a lisp. Essentially, JS is an application of the lambda calculus.

<comment><USER21> The family of Lisps isn't functional by definition. There are Lisps which are as non-functional as one could imagine.

Anyway, where the hell are you seeing the lambda calculus in JavaScript (ignoring that "it's based on lambda calculus" is probably as useful as "computers usually work with 0s and 1s")?

</comment></comment></comment></comment></comment></comment><comment><USER23> No.</comment>


Ask HN: Can I interview you about life at a startup? - <AUTHOR>

Hi HN,
I am a Dutch student from Amsterdam currently in the Bay Area to conduct my master research. Since I can remember I have always been interested in tech. I am focusing on the value of social capital in entrepreneurship. The Bay Area seemed like the best place to go :)
My research focus is narrowed down on startups that have less than 10 people working for them. I have been a HN reader for some time and I figured this is a good place to ask if there are some people that might be interested in talking about their experiences. This can be over a cup of coffee or some Dutch cuisine :) I am currently in the Bay Area, and will be for some time!
All the best,
Jim
firstname.lastname@example.com <comment><USER2> You might also find some useful information on Mixergy. Andrew Warner interviews startup founders and there is a vast collection of interviews to watch.

<http://mixergy.com/>

</comment><comment><USER3> You probably know about these but just in case you could also use the books "Founders at Work" and "Startups Open Sourced".

<comment><AUTHOR> Thanks for the tip, fduran, that looks good!</comment></comment>


Thousands Petition Netflix to Cancel Amazon Prime's Good Omens - <AUTHOR> https://www.theguardian.com/books/2019/jun/20/petition-netflix-cancel-amazon-prime-good-omens-christian-neil-gaiman-terry-pratchett <comment><USER2> A little bit of discrepancy to the article, because Netflix often claims a movie or series is "A Netflix Original" when it's anything but. This could have easily given some a wrong impression about who made the series. Still, personally I think shows like this do more to focus on religion rather than to take focus away - seems silly to protest something that is promoting at least in some sense the things you like, just because it doesn't represent it precisely to your liking.

<comment><USER3> Silliness is their stock in trade. Without, who would they recruit?

You could say it was ... _foreordained_.

<comment><USER4> _foredained_

</comment></comment></comment><comment><USER5> The group protesting it is called "Return to Order". Just at first glance, that choice of name is repugnant. It's like an unholy mix of Christian Right / Moral Majority + authoritarian echoes of the past all in one. Gross.

They are indeed a theocracy-promoting group, as one would easily suspect.</comment>


April breaks global temperature record, marking seven months of new highs - <AUTHOR> http://www.theguardian.com/environment/2016/may/16/april-third-month-in-row-to-break-global-temperature-records <comment><USER2> The peak of the current El Niño exceeded that of the 1998 version by a massive 0.08 C, according to satellite data. What is the probability the difference is natural variation? I suspect things aren't nearly as dire as the usual breathless pronouncements would have us believe...

Regardless, a new push for advanced nuclear power would be a good thing. Air pollution isn't good for anyone. Next-gen technology from companies like Thorcon Power will provide power at lower rates than coal, with no possibility of meltdown and no need for water cooling.</comment>


Zyppos, crowdsourcing for cheap flights - <AUTHOR>

Zyppos relaunched after a complete redesign: www.zyppos.com<p>The easiest way to find the best flights and lowest fares. Use experts to make sure you get the perfect itinerary, as they compete to fulfil your needs. <comment><USER2> Found 2 typos while setting up a contest.

Beginning - Price for this costest is $ 25.00. Are you offering a better reward?

End of contest - Conteatulations, you are just a step to submit the contest. Just confirm and click submit!

I submitted a contest to fly from RDU (Raleigh) to SFO (San Francisco). RDU is a tough place to fly out of because there are a limited number of direct flights. During the winter, there is only 1 direct flight a day and in the summer there are 2 to SFO. However, I submitted a contest more to see how it works than anything else.

Either way, I like the concept!

EDIT: I submitted the contest, but it sits at the Loading something awesome screen and never goes anywhere.

<comment><AUTHOR> Hello! Thank you so much for the feedback - well spotted, corrected those two issues.

As for your contest, were you not able to finalise it? We are taking a look at it right now!

</comment></comment><comment><USER3> Does it work everywhere? Or does it have a regional/country focus?

Will test out today

<comment><AUTHOR> We focus globally! We tend to find much better fares on longer flights or more complicated itineraries using our flight hackers' tricks, but we can find low fares on local flights too! Give it a go and let us know what you think.

</comment></comment><comment><USER4> Nice landing page!</comment>


Developers: First, do no harm - <AUTHOR> http://sdtimes.com/industry-watch-developers-first-no-harm/ <comment><USER2> Perhaps this is overly political of me, but i really hoped this article spoke to developers who actively develop systems that allow agencies to subvert the privacies we has historically enjoyed. When i see things the NSA does, i have to measure my anger as someone, not unlike myself, built this software.

</comment><comment><USER3> I would love to read this article, but I cannot scroll the page. (Chrome on OS X.)</comment>


Rob Pike: Go at Google - <AUTHOR> http://talks.golang.org/2012/splash.slide <comment><USER3> What annoys me a little bit about Go (and other projects similarly adherent to "worse is better") is the implied dichotomy between "research" and making "programming lives better". Do they think the point of Haskell isn't to make programming easier? That's what most of the research into the language is _exactly_ about! This isn't just about Haskell either: most other PL research is also about making programming lives easier. And Go ignores essentially all of it.

Now, there is even nothing strictly wrong about ignoring research like that. It's just annoying how they _revel_ in ignoring all recent progress in the field.

<comment><USER4> Haskell is an elegant language but Haskell fans will be much more effective advocates of the language if they admit that it's conceptually very difficult for most programmers to grasp. Some of the most experienced and capable programmers I've ever known have struggled to get their head around Haskell, and I don't buy the argument that it's only because their minds have been poisoned by overexposure to other languages.

Haskell is important and I'm glad it exists but I think Go has a much better chance of become a plausible alternative to Java and C++ and perhaps Python in most programming shops.

<comment><USER5> I think Simon Peyton Jones says it best about Haskell :

<http://www.youtube.com/watch?v=iSmkqocn0oQ>

He says Haskell is useless. Without even debating that (it can certainly be useful for certain classes of programming problems), you can see his point : The goal of Haskell was to start from an ideal view (pure functional programming without side effects) and try and see how to make that eventually practical for everyday programming, _without sacrificing the pure core of the language_.

You have languages, like F# (or even C# !) that takes lessons from Haskell, with at the same time being practical for pretty much every programming task (their platform , .Net, makes them useless for a lot of use cases, but that is another problem)

And on the other side (in my opinion), you have languages like Go, being pretty dismissive about pretty much everything learned from languages like Haskell.

I respect the point of view of Go's creator, i just disagree with it, and don't see any project i could do in Go that i wouldn't prefer doing in Scala/OCaml/C#. But more power to people who want to do great things in Go !

Go fills a niche (AOT compiled without a VM) that only OCaml fills in the list of languages i have listed, and OCaml is probably much more complicated to learn, even if it is way simpler than Haskell, so even if i don't agree with the design choices, i can see why Go could gain traction (apart from the fact that it is Google powered)

<comment><USER6> Peyton-Jones said that Haskell was useless before they got a handle on how to do IO. Haskell is clearly not useless at present.

<comment><USER7> However it's far harder to make it not useless than other choices. To me at least, Haskell appears to be alphabet soup like badly written Perl. The syntax is so close to the metal it's unreal.

<comment><USER8> SPJ's comment had nothing to do with lexical syntax.

</comment></comment></comment></comment></comment></comment><comment><USER9> <http://talks.golang.org/2012/splash.slide#48>

Time for honesty: What bullshit.

\- Go codebases by non experts are peppered with magical incantation (sleeps, etc.) to avoid the dreaded "all goroutines are sleep". Of course "they are doing it wrong", but that is the germinal point.

\- A concurrent Go program will likely behave differently given 2 bits (just 2 lousy bits) of difference in the object binary. (runtime.GOMAXPROCS(1) vs runtime.GOMAXPROCS(2)). Imagine someone touching those 2 bits in a "large codebase". It is practically impossible to do the same thing in a large Java codebase and fundamentally change the programs runtime behavior. (Happens all the time in Go.)

\- It is very difficult to reason about a Go routine's behavior in a "large codebase" without global view and a mental model of the dynamic system e.g. which go routine is doing what and who is blocking and who is not. Pretty much defeats the entire point of "simple" concurrency, to say nothing of "scaling". Programming in Go's variant of cooperative multithreading is actually more demanding than preemptive multithreading. Cute little concurrency pet tricks aside, Go concurrent programming actually requires expert level experience. "You are doing it wrong". Of course. Point.

\- _There is nothing, absolutely nothing_ , that you can do in Go that you can not do via libraries in Java. Sure, the cute syntactic go func() needs to be replaced with method calls to the _excellent_ java.util.concurrent constructs, but the benefits -- high performance, explicit-no-magic-code -- outweigh the cute factor in this "programmer's" book.

\- On the other hand, there are plenty of things you can do in Java that are simply _impossible_ to do in Go.

\- Once we factor in the possibility for bytecode engineering, then Java is _simply in another higher league_ as far as language capabilities are concerned. (Most people who rag on Java are clearly diletantes Java programmers.)

If Go actually manages to be as effective as Java for concurrent programming at some point in the future (when they fix the somewhat broken runtime) then the Go authors are permitted to crow about it. Until that day, go fix_the_runtime() and defer bs().

One thing that programming in Go has made me realize is just how awesomely Sun/Gosling, et al. hit that "practical programming" sweet spot. No wonder the modern enterprise runs on Java and JVM.

It just works. (But it is "boring" because it's not bling anymore. Oh well, kids will be kids.)

<comment><USER10> > Go codebases by non experts are peppered with magical incantation (sleeps, > etc.) to avoid the dreaded "all goroutines are sleep".

I'm confused. This is indicative of a deadlock, where no goroutine can make progress. Sleeps would mask the symptoms, yes, but would never actually solve a deadlock, the program would just do nothing for a longer period of time. What Go codebase(s) are you referring to?

> A concurrent Go program will likely behave differently given 2 bits (just 2 > lousy bits) of difference in the object binary. (runtime.GOMAXPROCS(1) vs > runtime.GOMAXPROCS(2)). Imagine someone touching those 2 bits in a "large > codebase". It is practically impossible to do the same thing in a large Java > codebase and fundamentally change the programs runtime behavior. (Happens > all the time in Go.)

If you are trying to find a low number of bits, you can just use 0. GOMAXPROCS can be set via an environment variable, the function is just to override that value.

More to the point, I am convinced that you are wrong. You are saying that in a Java class file, there are no 2 bits I could change that would impact the behaviour of a program, and that is plainly false.

> It is very difficult to reason about a Go routine's behavior in a "large > codebase" without global view and a mental model of the dynamic system e.g. > which go routine is doing what and who is blocking and who is not.

I guess this could be true if you engineer a system where every goroutine depends on every other goroutine. But it isn't true for code I've seen. As an example, the http library in Go has a goroutine that accepts TCP connections, and a goroutine for every accepted TCP connection. This knowledge is not necessary to use it, and is not necessary if a different part of your program is using it, because it is exposed behind an abstraction (http.Handler). To paraphrase the OP, Go enables simple programming. It doesn't forbid bad programming.

> There is nothing, absolutely nothing, that you can do in Go that you can not > do via libraries in Java.

Depending on what you mean by "do", I believe Turing would have something to say on this matter: <http://en.wikipedia.org/wiki/Turing_completeness>

> On the other hand, there are plenty of things you can do in Java that are > simply impossible to do in Go.

Depending on what you mean by "do", I either agree with you, or think you are mistaken. If you mean things that you can syntactically write down, like a Giraffe is-a Animal, or an Apple is-a Fruit, then yes, that is impossible to write down in Go. If you mean a problem that can be solved in Java that cannot be solved in Go, then I think you are mistaken.

> Once we factor in the possibility for bytecode engineering, then Java is > simply in another higher league as far as language capabilities are > concerned.

Why is this in another league? You can use assembly from Go, meaning you can generate code and jump to it if you really want to. Not sure why this would be considered a special feature of Java, or even why you think Java pioneered this. Bytecode is just a portable assembly, but its just as portable to build per-platform assembly emitters (like compilers do).

> Most people who rag on Java are clearly diletantes Java programmers.

Right. That makes sense to me; no one who knows anything about Java would ever criticize it. Sarcasm aside, this demonstrates a fallacy in reasoning.

> If Go actually manages to be as effective as Java for concurrent programming > at some point in the future

It isn't more effective now? News to me.

> when they fix the somewhat broken runtime

Sorry, remind me what this is referring to?

> It just works. (But it is "boring" because it's not bling anymore. Oh well, > kids will be kids.)

This is dangerous thinking. This is the cry that the native programmers raised when Java was born. Try and keep that in mind.

<comment><USER11> > > when they fix the somewhat broken runtime

> Sorry, remind me what this is referring to?

I think he may be talking about the conservative gc which causes memory to effectively leak a lot on 32 bit machines.

<http://code.google.com/p/go/issues/detail?id=909>

<comment><USER12> Perhaps most people use 64 bit on their servers nowadays.

Judging by the rate of releases of minor versions of Go, I bet it will be fixed in about two months from now. They are certanly aware of the issue.

<comment><USER13> The issue is actually impossible to fix without overhauling the entire language. It's impossible to garbage collect unboxed objects without being conservative.

<comment><USER14> Exactly. But conservative GC sounds like a dumb idea in the first place. Im not the expert these people designing these languages are, but i can not understand how memory leaks can ever be acceptable just because the probability of it seriously affecting you, is low (when on x64). Doesnt that just imply you can not use these types of languages in any mission critical context.

I must be wrong though: it seems Google is using it for parts of their infrastructure, and im assuming those are long running procceses. But what if the worst case scenario does happen? Are there workarounds? Monitor memory usage, and just restart? Can we force the runtime to free a certain resource?

What am i missing? How does this not completely destroy anu utility of these languages? Why do people put conservative gc in languages outside of the esoteric or academic context?

<comment><USER10> > Doesnt that just imply you can not use these types of languages in any > mission critical context.

No more so than with C++. There is a relatively high probability of you having left a memory leak in an average C++ server.

> Monitor memory usage, and just restart?

That would work, and is probably a good idea for all servers anyways. I've seen apache take upwards of 60 gigs due to some misconfiguration, so monitoring memory utilization of your programs and alerting or automatically restarting is a good idea.

> What am i missing? How does this not completely destroy anu utility of these > languages? Why do people put conservative gc in languages outside of the > esoteric or academic context?

There isn't really a good reason as far as I can tell. The only advantages are that its much simpler to implement, particularly when you have C interop. You can annotate Go objects with types to do precise collection, but as soon as you pass them to C, a lot of guarantees the Go typesystem makes go out the window. Other than that, can't think of anything.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> I'm pretty stoked on Go. I freaking love C. Love it. It's like they took C and went to the best disciples of C's creators and said "look - we've got these problems now nobody envisioned 40 years ago. Can you make C for us again, but better?" And they said "yes!" and it was good.

We get some nice concurrency primitives, garbage collection, cleaner syntax, something between structs and objects that fits the right feeling, automatic bounds checking, cute array syntax, and a big-ass, well defined standard library. Oh, and this concept of interfaces that is so well executed it's not even funny.

Except. I feel like they are forcing the fanboy mindset. At one point in this slide deck, there is the following bullet: "The designs are nothing like hierarchical, subtype-inherited methods. Much looser, organic, decoupled, independent."

I didn't see the talk. But that is the most vapid, meaningless description I've ever seen of a feature of a programming language. Rob might as well have said, "it's hipster better," which would have conveyed exactly as much meaning.

So here's my question - and I hope there are real answers - can someone point me to >3 real, big systems that are built using Go? I'll accept Google internal systems on faith.

<comment><USER16> > It's like they took C and went to the best disciples of C's creators

I'm confused, didn't they go to the _actual_ C creators? Or am I misunderstanding something?

<comment><USER17> Except for Ken Thompson, not really. Neither Dennis Ritchie nor Brian Kernighan (K&R) were involved in Go, as far as I know.

<comment><USER18> Ken Thompson wasn't actually involved in the development of C. He created B, though.

</comment></comment></comment></comment><comment><USER19> I was a bit confused at slide 35 where he said that Go's declaration syntax is "easier to parse -- no symbol table needed" as I don't typically think of a symbol table being involved in parsing. Here's an interesting comp.compilers thread from 1998 about parsing C++: <http://compilers.iecc.com/comparch/article/98-07-199>

<comment><USER20> Couldn't pass this one up seeing as I should actually be dealing with this for a class instead of commenting on Hacker News. What it means is that certain sets of symbols cannot be parsed unambiguously without information generated during the parse itself (the grammar is not context-free).

The link in the sibling comment has the canonical example:

foo * bar;

can either be parsed a multiplication or a declaration depending on whether "foo" has been typedefed previously. So you need to keep track of typedefs in a symbol table to correctly parse things.

The biggest problem with this is that many parser generators (including yacc) are much harder (if not impossible) to use with context sensitive grammars.

<comment><USER21> To me it looks like Go is designed to make compiler writer's life easier rather than programmers. Why is it so important to save on symbol table if it does make language less intuitive (at least for people with C background)?

We should be moving towards compilers that are capable of dealing with even more closer to natural semantics, not the other way around.

I'm suspecting similar mindset was at work when making decisions on error handling which, IMO, is the most appalling part of Go. If you have coded in C most of your life then it's same ugliness as usual but for others it's a huge move backward. Again the designers of Go could have implemented exceptions and let programmers choose what mechanism they prefer. This would be same as in Java or C# where a programmer can _choose_ to return error values instead of raising exceptions. But I guess that would be more work for compiler writers.

<comment><USER22> _Why is it so important to save on symbol table if it does make language less intuitive (at least for people with C background)?_

Because Pascal-style declarations are superior in readability. With type inference, they also allow less typing ("foo :=" instead of e.g. "auto foo =").

You are going a learn a completely new language, new idioms, new standard library, new tools, and you're arguing that switching to a different style of declarations, a very _very_ minor detail, is "less intuitive"? I'm not sure how intuition applies there: are you learning a language by trying to compile what you typed without reading any documentation or what?

 _Again the designers of Go could have implemented exceptions and let programmers choose what mechanism they prefer._

Because making them optional doesn't work well. If someone uses exceptions and someone not, combining code from those two people will make you use _both_ exceptions and error returns. It would be even messier than indicating errors in C (does this function return 0 on error or -1 or what)?

<comment><USER23> It's arguable that the Pascal-style declarations are superior in readability.

I've discussed this with colleagues in the past, and those who were raised with English as their native language, for example, often find C-style declarations easier to comprehend. They find the adjective (that is, the type) coming before the noun (the variable name) more natural.

The opposite happens for those whose native language is one where adjectives follow nouns. They find the Pascal convention easier to comprehend.

<comment><USER22> The existence of this website <http://cdecl.org/> confirms that even English speakers find it hard to read C-style declarations :-)

Plus, types can be seen as nouns instead of adjectives:

        int x
        variable x is an integer
        var x int

</comment></comment></comment></comment></comment></comment><comment><USER24> Thinks like this have an unnerving "smell":

"Dependency hygiene trumps code reuse. Example: The (low-level) net package has own itoa to avoid dependency on the big formatted I/O package."

...now, if this kind of attitude stays in the core dev land I don't really care about it. But when I'll consider Go as an alternative for a large project, I'll start worrying if people adopt the "it's OK to reinvent some wheels" philosophy when they start building higher level frameworks in Go... I mean, how hard can it be to split the "big formatted I/O package" into a "basic formatted I/O" package and an "advanced formatted I/O package" that requires the first one, and have the "net" package only require "basic formatted I/O" (or maybe even make "basic formatted I/O" something like part of the language "built ins" or smth - I don't know Go so I don't know the Go terms for this)?

<comment><USER10> > I'll start worrying if people adopt the "it's OK to reinvent some wheels" > philosophy when they start building higher level frameworks in Go...

I certainly don't have this philosophy, and I don't know thats its a thing amongst Go programmers. I think its just a standard library thing.

> I mean, how hard can it be to split the "big formatted I/O package" into a > "basic formatted I/O" package and an "advanced formatted I/O package"

It would easy, but then you're cluttering your library to make implementing the std lib easier, rather than making the lives of people using the std lib easier.

> or maybe even make "basic formatted I/O" something like part of the language > "built ins"

Things that are in the language built-ins would need to go in the spec, and would need to be implemented by two separate compiler suites. The authors seem to be doing their best to keep the core as small as possible. Having libraries written in Go is cleaner, reusable across compilers, and give newcomers a place to read idiomatic Go.

<comment><USER24> > It would easy, but then you're cluttering your library to make implementing > the std lib easier

yeah, but the "advanced formatted I/O" package can include all the function from the "basic" one (i.e. act as if it contains all the functions and structs from both of them) and be the only package 90% of regular language users know about, and if happened to need to write some low level code that only needed the "basic/low-level formatted I/O" I would just import that ...it just seems 100x more "sane" to do it this way

</comment></comment></comment><comment><USER25> I was having lunch with a friend of mine who works at Google a few weeks ago and I asked him how popular Go was at Google. He said the only people using it are the Go team. Java and C++ continue to reign supreme at Google.

<comment><USER26> Your friend is out of the loop. I am one of the Go readability reviewers, and I review thousands of lines of Go code each week. The code is written by Googlers from different teams around the world.

It is true that Go is in the minority compared to C++ and Java. Change takes time at a company of this size. But the graphs are all up and to the right, and the rate of Go code being written at Google is accelerating.

<comment><USER25> > I am one of the Go readability reviewers, and I review thousands of lines of > Go code each week.

If you're on the Go readability team, you are going to see thousands of lines of Go code each week, as a simple consequence of selection bias. Your observation doesn't invalidate my friend's claim.

Something that would invalidate that claim would be how many lines of Go are submitted into the Google code base every week compared to Java and C++. My friend is simply saying that this ratio is minuscule.

<comment><USER6> His claim is still an effective denial of the claim he was denying, namely, that the only people using Go are on the Go team.

</comment></comment></comment></comment><comment><USER27> I never liked Go, but I admit I like it a lot more if it means I don't have to deal with Maven and other dependency systems as much like the slides say. I've been doing Android since it came out, but before that I was J2EE, and it could be hell if Hibernate needed a different version of a dep than something else in your code stack, for example. Handling JARs by hand stopped working, and the countless XMLs files listing deps for all parts of the system and library started getting full of overrides and the like. Eventually Oracle rewrote all the class loading for their app server which allowed dependencies to have dependencies which were invisible to apps using them. So something as basic as class loaders had to be completely reworked to deal with this, and it was still damn complex and a pain in the ass.

<comment><USER28> >I never liked Go, but I admit I like it a lot more if it means I don't have to deal with Maven and other dependency systems as much like the slides say.

Hrm, yeah, there are alternatives here. (Not in Java-land...other places.)

> I've been doing Android since it came out, but before that I was J2EE, and > it could be hell if Hibernate needed a different version of a dep than > something else in your code stack, for example.

You really should look into Clojure.

<comment><USER29> Wait, isn't easy access to Java libraries one of the premises of Clojure? In that case Java's dependency issues still apply?

<comment><USER28> Yeah but then you get to use Leiningen, not Maven.

Leiningen is manna from heaven.

</comment></comment></comment></comment><comment><USER30> I think all of the keynotes at OOPSLA this year were surprisingly engaging.

I've seen a lot of Go talks from various Googlers, and I have to say that this was the best-motivated, most humble, and most honest of them that I have seen. Rob knew he was speaking to an extremely PL-oriented audience, and structured his talk accordingly, and the result was fantastic. Go comes from a very different standpoint than almost all academic PL work, and in that respect, for those of us in academia, it's an interesting breath of fresh air and a reminder of the uniquely fine line between industry and academia in computer science.

</comment><comment><USER31> <http://talks.golang.org/2012/splash.slide#11>

> Pain

> What makes large-scale development hard with C++ or Java (at least):

None of the points apply to Java.

</comment><comment><USER32> "Go has garbage collection, only. [...] Day 1 design decision." <http://talks.golang.org/2012/splash.slide#51>

Can someone tell me why GC was the obvious choice as opposed to say automatic reference counting?

<comment><USER33> If you squint your eyes enough, automatic reference counting is a garbage collection method. But if you are going down that road, there are other garbage collector schemes which often produces way better performance in the common situations, i.e., copying collection or Mark'n'sweep.

But it is a trade-off. Refcounting collectors need to address pointer cycles. And they are also quite slow due to all the refcount bookkeeping going on all the time. But they have the nice property that the lifetime of an object won't linger around in a zombie state. And there are no point in time where the system is in a "collecting" state and cannot give service.

That said, many modern, multi-core malloc() routines contain a lot of ideas from GCs in them. The gap is closing fast.

</comment></comment><comment><USER34> As a warning, there seems to be no mouse-navigation of these slides. You have to use a keyboard. (or touch, probably)

<comment><USER35> Actually there is but it's actually a bug it seems..

You can scroll side to side to navigate through the slides (swipe left or right with 2 fingers on Macbook touchpad). However, this seems to only allow a few slides to load -- the swiping doesn't trigger the 'next slide' javascript so only a few prerendered slides are usable.

<comment><USER36> There's an interesting bug if you arrow past the end of the slideshow. It moves a distance not on a slide width boundary, so if you arrow back from there you're in the middle of the last slide, and so on.

</comment></comment></comment><comment><USER37> One of the few nice things about the C include mechanism is that it's pretty easy (and standard practice) to set up separate implementation and interface files. If the implementation of something changes, but not the interface, I don't want to have to recompile all the clients. This is lost in almost all "modern" languages.

(This is, of course, horribly broken in C++ which likes to inline everything.)

<comment><USER38> Java has interfaces.

<comment><USER37> Not the same thing. Think public-vs-private portion of a class.

<comment><USER39> The only advantage Go interfaces have over interfaces in other languages, is that you can make third party code comply to a given interface if you're lucky enough to have the same set of methods available.

Even then, you might hit the issue that although the interface matches syntactical, the semantic meaning of the method calls differs.

For the CS folks, Go interfaces are nothing more than structural typing, available almost any FP language.

The only advantage over Java, C#, D is that you are not required to state explicitly which interfaces a given type implements.

However this forces you to use tools to discover which interfaces a given type implements.

</comment></comment></comment></comment><comment><USER40> Didn't we try error codes back in the day? I think exceptions are brilliant. They let you write your error code in one place (at the top of the stack), instead of planning for every contingency at every level.

Once I discovered exceptions back in the 90s, life got a lot easier.

Of course Java ruined exceptions with the invention of the CheckedException, maybe this tainted the Go designers' thinking?

<comment><USER41> As someone that grew up with exceptions, I like the idea of errors being recoverable by default. If it's not fatal, your catch block is going to swallow the exception anyway. And if your error is, panic().

(This could be Java experience scarring my then-young mind)

<comment><USER40> Most exceptions aren't recoverable. They are _usually_ a result of bugs or system problems. This means 1) the bug needs to be fixed. 2) the system needs to be fixed (start up a DB service, clean disk-space, add memory, etc).

This is where java went wrong, java checked exceptions treats everything as recoverable when recovery is unlikely.

I mean, someone tries to login to a web site and the DB is down. What do you do? Or there is a bug that throws a null pointer exception. How do you recover from that?

I think the error code approach has the same effect as CheckedExceptions. People will tend to code to ignore the problems and not report them. Exceptions are great in that they bubble up to the top of the stack, so they are easy to report/alert on.

</comment></comment></comment><comment><USER42> Favorite quote: "While that build runs, we have time to think."

<comment><USER43> That reminds me of a story that I read ages ago. It happened in the 1980s.

This group of programmers had taken to exercising while waiting for compiles. They were all buff. Then Turbo Pascal came out and they all turned back into couch potatoes. :-)

<comment><USER44> Exercise. That's what I'm supposed to be doing while Maven downloads the Internet.

</comment></comment></comment><comment><USER45> Sorry to veer off topic, but why is the golang site so _ugly?_

I clicked on the link in the second slide: <http://golang.org>

compare with:

<http://www.ruby-lang.org/en>

<http://git-scm.com/>

<http://www.haskell.org/haskellwiki/Haskell>

Even Dart looks great: <http://dartlang.org/>

I feel a little guilty being negative about this, but presentation does matter, and Google ought to be able to afford it.

<comment><USER46> I think it's nice. It's super functional and easy to find information. It may not be pretty, but I know exactly where to go to find what I want.

I like that the urls are consistent. To find package documentation, I go to golang.org/pkg/<name of import>. For example, for http docs, I go to golang.org/pkg/net/http.

For most languages, I resort to a Google search to find package docs. This is true for python, c++, and even Java. I rarely have to google search something in Go.

I think the site very much fits in with their goal of simple and orthogonal. I actually wish more language documentation followed suit and made it easier for programmers to search for docs.

Sure, everyone wants a pretty site, but it's not like they need to advertise anything. It gets the job done very efficiently.

<comment><USER47> Regarding docs, what's also extremely neat is, when you're offline, just run "go doc" and it starts an HTTP server on your local machine to serve the exact same fine documentation experience. So thoughtful, one of many small details just part of the overall package, when you need them you find them easily and are delighted.

</comment></comment></comment><comment><USER48> Does someone knows wath is the reference to Tom Cargill and "PI" in the 16th slides please? I did not find anything on Google.

</comment><comment><USER49> I spent a year working on a project in Go, so got pretty used to the language. One thing I did wonder though was how would it fare on very large systems; how could Go hook up to work like MPI across clusters of computers?

</comment><comment><USER50> slide show didn't work for me in FireFox... haven't tried it in Chrome :)

Update: was trying to use a mouse to switch between slides, but later tried, and figured out that it only works with keyboard :)

</comment><comment><USER51> I can't be the only one for whom this presentation is completely broken on the iPad (scrolling to fast and skipping multiple slides).

</comment><comment><USER52> > It can be better to copy a little code than to pull in a big library for one > function.

I just don't get this. If you statically link in small functions from a big library, you only get the little bit you need anyway. Are they saying you avoid compiling the "big library" over and over? But if it is already compiled, that should not be necessary. And the chances are you are going to be importing lots of "little code" from the "big library" anyway. Unless they are saying the implementation of net's itoa is somehow simplified and not a just a straight code copy...otherwise I don't understand this approach.

<comment><USER53> > And the chances are you are going to be importing lots of "little code" from > the "big library" anyway.

That "big library" is often supported by someone else. One day, a year down the line, you realize startup time for you executables went from 0.01s to 2s because Big Library's initialization code now scans all subdirectories for some caching optimization, and stuff like that - stuff that's a win for general users of biglib, but not for you.

> I just don't get this

This is not about theory, it's about practical experience.

You'll notice that successful C/C++ libraries tend to include everything that's small enough and that they need to function - because dependencies byte you later on. e.g. libav/ffmpeg has its own copy of md5, libtcc has its own slab allocator, gsl has its own everything, everything ships with a copy of libz in case the system libz is borked.

The Go library just starts applying this principle a little earlier - <USER2> the standard library. I suspect that's because they envision a python-style batteries-included extensive standard library, which has no benevolent dictator to put order in it.

</comment></comment><comment><USER54> I miss uriel to respond to some of the really inexplicable posts on this thread. :(

</comment><comment><USER38> I don't get the interface stuff. If you had a method on an interface, you have to add it to all implementors, or clients won't compile. How is that different from Java? Java just adds the implements declaration, so Eclispse can help you find those implementations, instead of making you pore over compiler error listings.

<comment><USER19> In Java, you can run into situations where two classes share a method, but because they don't implement a common interface, for instance because they're part of two different libraries, you can't e.g. write a method that accepts instances of either. You can't straightforwardly take advantage of polymorphism.

In Go this is never an issue; you can declare an interface that captures the methods you're interested in, and the existing code automatically implements it. It's kind of like duck typing in python (e.g. this function will work on any object that has a method <x>), except it's statically typed.

<comment><USER39> Just because the method complies to the interface does not mean it does what you would expect from it.

static fulfilment != semantic fulfilment.

<comment><USER55> You could equally say that just because a class declares that it "implements" an interface, it doesn't mean it does what you would expect from it.

In practice, there is no language that can save you from people with malicious intent to confuse you.

In practice, this is rarely an issue.

<comment><USER39> There is a big difference.

When a developer makes a class implement an interface s/he signing a contract thus validating assumptions.

When a type in Go matches an interface, it happens by chance.

<comment><USER55> Utter nonsense. Either a function/method is semantically compatible with the expectations of its caller, or it is not.

Whether or not the function/method's author typed the words "implements Foo" has absolutely no impact on this.</comment></comment></comment></comment></comment></comment>


Show HN: The Problem with Google's Deepfake Dataset and FaceForensics++ - <AUTHOR> https://www.dessa.com/post/deepfake-detection-that-actually-works?=HN <comment><USER2> Saw it last night. Didn't know you guys built a detector as well. That's awesome.</comment>


Jumpers (2003) - <AUTHOR> http://www.newyorker.com/magazine/2003/10/13/jumpers <comment><USER2> I really should not have read this article. I don't know what it is about depression that makes you want to end it all (even though I think about it all the damn time).

</comment><comment><USER3> This article was the inspiration for the song of the same name by Sleater- Kinney, as seen at [https://www.youtube.com/watch?v=vZA_7FtttRY](https://www.youtube.com/watch?v=vZA_7FtttRY)

</comment><comment><USER4> I believe there is a documentary about this.

<comment><AUTHOR> Do you remember the name?

<comment><USER5> The Bridge [http://www.imdb.com/title/tt0799954/](http://www.imdb.com/title/tt0799954/)</comment></comment></comment>