How We Increased Our Conversion Rate By 311% - <AUTHOR> http://blog.statuspage.io/how-we-increased-our-conversion-rate-by-311-percent

<comment><USER2> <a very small amount> increased by "311%" is still a <very small amount>, this is a way to oversell numbers, imho. The rest of the article is not bad, shame about the title.

<comment><USER3> 0.5% conversion is pretty good for a SaaS product that only targets businesses.

<comment><USER4> I would have thought businesses are most likely to use a SaaS product.

Is Netflix considered SaaS? Perhaps my mental definition is way off on scope of SaaS. Honest question, not trying to be sarcastic

<comment><USER5> Netflix isn't really a SaaS because it's not providing "software" (the first "S" in SaaS)-- it's providing content.

On the other hand, Google Calendar, Gmail, etc are providing software and would probably be considered SaaS products. You're providing the content and Google is providing the means of managing it.

</comment></comment></comment></comment><comment><USER6> For what it's worth, we did the free premium trial in June. Over 14 days, we received 11 emails from the folks at StatusPage--some about getting started, some (too many) just their regular email blasts, some to say our trial was ending. Eight of these offered an unsubscribe link, which is appreciated, but the default should not be to spam the shit out of potential customers.

I know I've seen other threads on HN and elsewhere about finding the "right" number of emails to inundate your trial users with, so I hope you guys are experimenting with this and tracking what works and what's turning people off.

Still, seems like a solid product that does what it says, and overall we didn't convert because we already had a solution in place that we're comfortable with. Good luck.

<comment><AUTHOR> Haha yeah we used to send waaaay to many emails. We're now down to 6 over 20 days. Sorry for being overbearing the first time around. When we personally reach out, there isn't an unsubscribe link but as far as I know, all of our automated emails have them.

Email is something we definitely need to experiment with more. It can be an amazing tool when used for good.

Thanks for the feedback.

<comment><USER7> If you want to see email done right, check out PerfectAudience's flow.

<comment><USER8> Wow. Thanks. After hours of doing battle with spreadsheets, reading this made my night. I'm going to pass this along to the team!

</comment></comment></comment></comment><comment><USER9> I would rename their "Hobby" plan. It's condescending. People don't pay ~$240 / yr to have a status page for a hobby site.

<comment><USER10> I routinely give out "Call the low plan 'Hobby'" advice. Here's why:

a) Price-sensitive customers with side businesses often either affirmatively identify of hobbyists (I would have said that about myself for the first 5 years of my business -- at which point $20 a month would have made it somewhere around the 10th most expensive thing I was buying, by the way) or are willing to buy it without thinking too much about the name.

b) At larger customers, there are social reasons to avoid putting Hobby on a purchasing card / requisition form / etc where one does not have any technical/quota/etc objections against the lowest-tier plan. I've told the following anecdote two dozen times but it's still good: I was once instructed by a boss to get CrazyEgg set up. We were in the $9 a month Hobbyist tier. I put in a requisition for it and he redlined the Hobbyist and price, went to the pricing page, and picked the Enterprise tier (at $500 at the time, IIRC). When I pointed out that I was intimately familiar with the numbers and sure we could make do with Hobbyist, he said (translated loosely from the Japanese) "Eff if I'm going to pass a request for Hobbyist services to [my boss]."

c) See the anecdote above? I can tell you the anecdote. I can't show you the data. But trust me, the anecdote has scaled for companies before.

<comment><USER9> Actually, I thought about your CrazyEgg anecdote as I was writing my comment. Having worked for a large Japanese company for several years, I did see a cultural difference between what US and Japanese managers were willing to sign off on for purchase req's. But aside from that, I do think a $9/month CrazyEgg plan is within the scope of a true hobby site, whereas $20/month for a status page service isn't. The proof is in testing, but my gut tells me that customers could be segmented without using a plan name that is arguably demeaning.

</comment></comment></comment><comment><USER11> What a strange world we live in, there is a business that lets other businesses point out that their business is not doing business sometimes.

<comment><USER12> But it's hosted in a different location. So if said business is offline, you won't know why. An offsite location, with backup sites will still stand.

Also, it's not really for people to know... it's for people who depend on it, like API sites. As an app that uses, say Balanced or Stripe, I'd want to know when, why and for how long they are down. So their status is important to me.

</comment></comment><comment><USER13> Thanks for sharing! At the risk of sounding pedantic, your increase was actually 211%:

(0.424 - 0.136)/0.136 = 2.117 (so 212% actually)

(Increasing something by 100% is doubling it, 200% is tripling it, so on and so forth.)

But to everyone saying he's overselling, if the title had said he tripled his revenue, would you say the same thing? This is a huge accomplishment no matter how you slice it!

</comment><comment><USER14> How We Increased Our Traffic Rate By Writing Ads For HN.

</comment><comment><USER15> .136% to .424% is a 211% increase.

</comment><comment><AUTHOR> Would be happy to elaborate on any of these points if you have any questions.

<comment><USER16> Do you guys measure/optimize on "traffic to revenue" or just "traffic to paid"? Does these two measurements have different optimization techniques?

Also, it would be great to learn about how do you generate top of the funnel. As patio11 said there is an "arms race" on that front and I wonder what do you that on that front.

<comment><AUTHOR> If I understand your question correctly, you're asking if we optimize for traffic -> any plan vs. traffic -> total revenue? Right now it's pretty unsophisticated and we're not really measuring/optimizing on getting people to select a higher plan vs. a lower plan. I'm sure as we nail more of the basics down this is something we'll focus on in the future though.

Generating top of the funnel is actually really hard and something we struggle with a lot. Writing blog posts and posting them on Hacker News (like this one here) result in huge bumps of traffic but it's not really scalable. We added a small "powered by statuspage.io" at the bottom of every status page and are going to do more SEO-minded blog posts.

For early stage startups where there isn't already much of a market (there aren't a lot of companies doing status pages as a service), a lot of traffic and eventual customers come in via word-of-mouth. We have some plans to really give our customers an amazing experience with our product and company as a whole with the hope that it will get people talking about us.

Do a google search for karma based marketing - Colin from Customer.io does an amazing job getting people talking about his company.

<comment><USER16> Thanks! One more question: I like your [https://www.statuspage.io/series-t](https://www.statuspage.io/series-t) page. Is there a service which does everything for you or do you guys process this?

<comment><AUTHOR> We process all of it =/. There are companies that take care of the entire fulfillment process but the volume we're doing is so low that we just mail them ourselves.

</comment></comment></comment></comment></comment><comment><USER17> _" For us, there was so much low hanging fruit in watching a bunch of people check out our marketing site. I suspect there's a good amount of diminishing returns there, but if you've never done it, the value you get out of it is tremendous."_

I'd strongly suggest that you keep doing actual tests with customers until you actually _see_ diminishing returns. I've regularly seen people think they've fixed all of the big problems - then see another N rounds of "low hanging fruit" appear ;-)

The insights and improvements you get from doing usability testing are very different from the ones that you get through optimisation via a/b testing. Each can inform the other.

Keep doing both until you find you get no value. I suspect that you'll find that you keep getting significantly useful results if you keep it up.

</comment><comment><USER18> One of the best things that worked for me when increasing conversion rates is to remove all the distractions that's on the page.

To do this, you first need to define what that specific page's goal is (whether it's to have the visitors purchase, share, sign-up, etc...). It'll work remarkably better if you only have 1 goal per page.

From there, you need to look for the things that will distract your visitors from doing that specific goal. It could be the images, an even better content, even the social sharing buttons, etc...

</comment><comment><USER19> By having a server error page? Seems a strange strategy.

</comment><comment><USER20> The demos of your app on your site are pretty slick. What are those ? Simple Gifs or is there some other fancy sorcery going on in there ? PS: i would really like a way to control the playback of these demos. I would mostly arrive when they had already started and frustrated would move on.

<comment><AUTHOR> The thing that shows off the different parts of the actual status pages is just a big screenshot with explanations controlled with some JS/CSS. The Creating and Managing Your Page section is actually HTML5 controlled videos.

</comment></comment><comment><USER21> I couldn't figure out why pricing was dependent on number of users. Who are the users? How do I know how many I will have? Do I have any control over who they are?

But most of all, why is this thing tied to that at all?

</comment><comment><USER22> So statuspage.io displays of a another site is up, down, etc? I don't get it. If you want something outside your company to do this, get regular webhosting plan from an ISP.

<comment><USER23> I can see the benefit. It is a totally different architecture to your service. Meaning no chance that the thing that brings down your service is shared by you services servers and the server running your status page.

</comment></comment><comment><USER24> Good tips, thanks. Do you have any resources that you learned from? Trying to improve on this, too.

<comment><AUTHOR> Haha oh god so many. Google startup metrics for pirates, check these out [http://www.conversion-rate-experts.com/clients-and- results/#...](http://www.conversion-rate-experts.com/clients-and- results/#clienttestimonials), sign up for this [https://segment.io/academy/](https://segment.io/academy/), read these [http://blog.kissmetrics.com/topics/conversion/](http://blog.kissmetrics.com/topics/conversion/).

Now that you mention it, putting together a huge directory of this content might be valuable.

<comment><USER24> Thanks, appreciate it.

</comment></comment></comment><comment><USER25> What javascripty thing are you using for "Just ask xyz" copy?

<comment><AUTHOR> This guy [http://cosmos.layervault.com/typer- js.html](http://cosmos.layervault.com/typer-js.html)

<comment><USER25> Thanks! I'm gonna' use this.

Also - what are you using for the moving status page below highlighting features? That's clever.

P.S. - did you also try A/B testing the copy, layout, etc.

<comment><AUTHOR> That's just a little custom thing I made myself with JS/CSS.

</comment></comment></comment></comment><comment><USER26> But what do I do if I want to increase my conversion rate by 312 %?</comment>


Four ways to a Practical Code Review (2007) - <AUTHOR> http://www.methodsandtools.com/archive/archive.php?id=66

<comment><USER2> I guess we're already doing these. We use a pull request workflow and I get an email when a developer creates the pull request. I inspect the changes in the request and approve and/or merge the changes into our main development branch. EZPZ

</comment><comment><USER3> Missing figures, unfortunately.

EDIT: I was wrong. It's just that the figure is waaaay below the paragraph that mentions it.</comment>


Pre-Socratics: A Painless Introduction - <AUTHOR> http://lukemuehlhauser.com/pre-socratics-a-painless-introduction/ <comment><USER2> Author hints that although the enlightenment narrative of a "Greek miracle" holds a strong bias in modern minds, the true origin of philosophy remains shrouded in mysticism. The possibility exists that human civilizations could indeed be much older than the timelines suggested by current archaeological evidence. Indeed if one were to ask certain Hindu devotees about the origin date of the Vedas, you may be surprised to find the response: "They are Timeless!"

A not-quite-painless but no less stimulating intro to Ancient Indian Materialism:

[http://www.iep.utm.edu/indmat/](http://www.iep.utm.edu/indmat/)

</comment><comment><USER3> Ancient Greek philosophy didn't evolve in a vacuum. If anyone really happens to be interested in the subject a good source might be 'The Shape of Ancient Thought' by Thomas McEvilley which traces the co-evolution of ancient Greek and ancient Indian philosophy starting from the time both Greece and India were subordinate to the Persian Empire and interacted extensively in places like Persepolis. This interaction continued even after the subordination of Persia to Greece and later to Rome.

</comment><comment><USER4> This doesn't even scratch the surface of pre-Socratic philosophy and doesn't explain its importance for European/Western culture.

</comment><comment><USER5> Wouldn't what is left of the pre-Socratics fit into a very small book, with plenty of room for commentary?

<comment><USER6> hell no

the unholy trinity (socrates, plato, aristotes) were despictable in regard to presocratic. They where siding with the wealthiest one in order to say: \- richest people should rule and democracy was shit (hence the republic) \- science sux because it is complex to understand it; \- religion should rule the life of people; \- censorship is cool; \- it matters more to ridicule your opponents with fallacies than to use logic in dialog; \- philosoph should lend their power to the more powerful in order to influence the society \- martyrdom is totally cool. Let us die for ideas

On the other hand you have

\- Epicure: most people defer to live not noticing a deadly poison has been put in the source of our life \- Euclides : you can create any geometry given the choice of axioms and careful reasoning \- Diogenes Laerce : the cynics (dogs in greek) living by choice with no material property (the inspiration behind the stoician) \- Esop well, who don't know Esop? La Fontaine at least plagiarized him and then became a famous french poet. \- Herodote: Invented modern history \- thyucidide described the end of the greek civilisation (conflict between Spart and the imperialist Athen) \- Solon, Clysten, périclès the inventor of the real democracy and the founder of politicics \- Sparta invented the modern method of social management and controlling the masses

AND

The last of the sophist (the way of thinking that was demolished by the socratics): Nietschze. Wie man mit dem Hammer philosophirt (or how much socrates sux).

</comment></comment><comment><USER7> Is this the entire book?

<comment><USER8> "The End" kind of gives it away. More of a long essay than a short book. I'm going to check it out regardless, I really need to level up my classical and pre-classical philosophy.</comment></comment>


Show HN: CanYouMath? – A fast-paced fun math game - <AUTHOR> https://play.google.com/store/apps/details?id=com.kylbit.game.canyoumath

<comment><AUTHOR> My team just released CanYouMath? and we would like some constructive feedback. So far the feedback has been positive but not too many details.

We want ideas and suggestions for improvement! Thanks!</comment>


Telegram Triples Price in Largest Initial Coin Offering - <AUTHOR> https://www.bloomberg.com/news/articles/2018-02-28/telegram-said-to-triple-price-in-largest-initial-coin-offering <comment><USER2> So the big hitters got to buy in at $0.37 and everyone else gets a call chance at $1.33, at which point the big hitters have already tripled their investment. I guess that's what the get for foregoing the usual equity and voting rights that go along with stock. They have essentially been offered an opportunity to make significant gains on the back of retail investors.

I had hoped that this ICO was going to lead the way on being a fair model but it looks like they are going for the cash grab just like all the other ICOs to date.</comment>


Shutdown Will Be Worse for Economy Than First Thought, White House Says - <AUTHOR> https://www.npr.org/2019/01/16/685845545/shutdown-will-be-worse-for-economy-than-first-thought-white-house-says <comment><USER2> It's not about the wall being immoral. It's about it being monumentally stupid and a waste of money. There are much better solutions.

<comment><USER3> I think the more important thing is to keep a single branch from using a shutdown as a tool to get their way. Government via hostage taking is not democratic.

<comment><USER4> Both branches of the government are holding the country hostage.

<comment><USER5> Only one person veto'd the continuing resolution this time around.

We know who to blame. If both sides walked away from the CR, then maybe you'd have a point. But only ONE side (of the three sides: House, Senate, and President) have walked away from the CR.

Shutdown also started when the House was controlled by Republicans. The shutdown was 10-days old before Pelosi took the gavel and Democrats entered the house. Former speaker Ryan didn't feel like fixing the issue on his way out, so he left it to the Democrats. McConnell, while he's gone into hiding recently, managed to pass a bill in late December which could have prevented the shutdown (so McConnell barely gets a passing grade. A C-, he did something to stop the shutdown at least. But McConnell should show some leadership and rally the Senate to stop the shutdown today, just as he did back in December)

I place the blame mostly on the President (for destroying the CR agreement McConnell passed), and somewhat on Mr. Ryan for walking away from the problem on the last 10 days of his Speakership.

<comment><USER6> I'm not sure about that logic. It's just a consequence of the order of operations. If the process went Sentate->President->House for approval, the House would be the only one to not approve a bill that included wall funding.

<comment><USER7> Good reason for that: Congress controls the purse. The House already passed legislation that all Senators in December passed, so most of the Senators still there voted in favor of the bill. Congress doesn't need the President's approval, either. They can override his veto. The Senate has the votes for that already based on votes for the same legislation already.

The Senate could take it up for a vote again, and pass the bill they already passed, but they won't, purely for political games.

<comment><USER8> They aren't the same bill (115th vs 116th).

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> It's also gonna make it way harder for the gov to attract talent for a while.

<comment><USER10> Eh. Most government positions are really "big talent" kind of ordeal. Most are a stable way to make decent money with great benefits and retirement. The ones that are valuable will still get their talent I'm sure.

</comment></comment><comment><USER11> I, for one, am very glad to not be a government worker. Imagine getting a free month-long unpaid vacation, or worse, a month of work without pay!

<comment><USER12> Even worse, there's no known end date. You can't go traveling, visit your family or anything else you'd do on vacation because the shutdown _could_ end tomorrow and then you'd have to go back.

</comment></comment><comment><USER13> Does anyone have thoughts on the theory that after 30 days of shutdown, it's easier to remove otherwise protected employees? The source I saw doesn't seem particularly trustworthy ([https://www.americanthinker.com/blog/2019/01/omb_issues_guid...](https://www.americanthinker.com/blog/2019/01/omb_issues_guidance_on_reduction_in_force_layoffs_due_to_partial_shutdown.html)) but the argument seems plausible enough. The idea is that a fast-tracked "Reduction in Force" reorganization plan intended to permanently downsize the government could be backdated to the beginning of the shutdown, thus giving Trump considerable leverage over Congress. Is there anything to this argument?

</comment><comment><USER14> The way I've been thinking about it is that shutdown a couple years ago was really a game of chicken where neither side thought it was actually going to happen.

This time around it's more of a siege tactic where the idea is to hunker down until one side feels enough pain that they will yield. It's really a case of which side's base can tolerate the pain longer without either flipping sides or losing faith in the leadership.

Plus it's Trump's power tactic at letting the Dems know he's the boss even now that they have the House. He has zero problem playing the bad guy to get what he wants and come out on top.

<comment><USER15> It's just as much Pelosi and Schumer playing politics. They don't want to give him any money, despite this being a fairly small request, because they know that if he can't deliver on his central campaign promise it will tear his base away from him and secure his 2020 defeat.

<comment><USER16> Correction: his base will blame Pelosi and Schumer for standing in the way of border security and vote in droves for Trump Term 2: Electric Boogaloo.

<comment><USER17> _Election_ Boogaloo. I can't believe you missed that.

<comment><USER16> Well shucks.

</comment></comment></comment></comment></comment><comment><USER18> If the wall is immoral and ineffective, should the United States destruct the existing portions of the wall already built at the US-Mexican border?

<comment><USER19> Watched this video from CBS News recently and it looks like portions of the wall in place are sticks with wire: [https://youtu.be/5o4d6Wp3u2Q](https://youtu.be/5o4d6Wp3u2Q)

<comment><USER18> What about the wall at the border by San Diego? That's a much better fortified structure, and if immoral and against the principles of the United States, wouldn't this portion be worth getting rid of?

</comment></comment></comment><comment><USER15> "Citing an unnamed official."

This headline is misleading. It suggests that Trump administration officials are publicly reporting this, when the question of who is saying this cannot be confirmed.

</comment><comment><USER20> Ugh what a mess. It's not just that we are lighting money on fire, it's also that the reason for all of it is so pointless. Those poor furloughed workers are having very real damage inflicted upon them. Damage that will take years to recover from if they ever do. It's cruel, its pointless, its stupid. At this point the shutdown has cost more than a wall ever would.

Then of course there's the more disturbing thought that if I were a Russian asset looking to sow chaos and economic instability in the country, a shutdown (and a trade war, and alienating our allies abroad) would do a pretty good job...

<comment><USER21> >Damage that will take years to recover from if they ever do.

Can you please elaborate? From my limited knowledge, furloughed workers haven't got a paycheck (yet) for a one month. Is this kind of damage they will be recovering from for years?

<comment><USER5> In the 2013 Shutdown, a number of government experiments (ie: Flu Experiments) were destroyed due to neglect from the shutdown. Which ended up having the worst Flu Vaccination success rate in the last 10 years or something (like a stupid low 30%).

Etc. etc. Government projects are stopped during shutdowns. It literally takes years to recover from a shutdown (another year or two before Flu Vaccination experiments were back up and running at full potential)

<comment><USER21> OK, I get that some projects will have to restart from scratch, but this is not like furloughed workers have "some real damage inflicted upon them".

It's just work, and their lives are more or less unaffected (with the exception of a single - so far - paycheck being delayed).

<comment><USER22> A lot of people live paycheck to paycheck. To them, a single lost paycheck can mean not paying rent on time or not eating.

Acting like this is not causing real damage is highly disingenuous.

</comment></comment></comment></comment></comment><comment><USER23> Putin sure got his money's worth.

</comment><comment><USER24> How are the shutdown's effects on the economy being measured? Where did they come up with 0.1% loss every 2 weeks?

<comment><USER25> Good question. As will all previous shutdowns, I have not noticed any impact whatsoever.

<comment><USER26> I noticed the shutdown of last year. In particular, my advisor(I was a doctorate student at the time) was informed he won a significant award by the NSF with guaranteed funding and was unable to recieve it until two months or so after the shutdown. (As a side note we were also disrupted by the immigration ban, and were unable to bring on excellent scholars to pursue research at our facility.)

I'm no longer in research, but of my companions who are, this is definitely being felt.

<comment><USER27> Yep. NIH granting cycle is totally derailed & it's job interview season in academia.</comment></comment></comment></comment>


Coding on paper - <AUTHOR> http://lispcast.com/coding-on-paper.html

<comment><USER2> The more I program, the more I write about what I'm going to program.

I haven't gotten to the point of writing my code on paper, though.</comment>


HN accounts for 12% of Social Bookmark referral traffic - <AUTHOR> http://www.readwriteweb.com/archives/analysis_what_are_the_webs_top_sources_of_referral_traffic.php Note: I work on Woopra projects :-) <comment><USER2> This data is sounds biased.

Delicious did in the BILLIONS of monthly PVs when I left - I really doubt HN throws more traffic in aggregate.

<comment><USER3> Yeah, this just shows that they have an install base hugely skewed towards sites that techies read.

<comment><USER4> That doesn't explain why slashdot is 0% though.

<comment><USER5> I don't read slashdot anymore. Do you?

<comment><USER6> phrack4lyfe greetz2hnn

</comment></comment></comment></comment></comment><comment><USER7> Anybody else thinking we should be alarmed at this kind of data - because of the spammers and self-promoters who will flock to HN, I mean...

<comment><USER8> That was my first thought, keep a low profile !

<comment><USER9> Maybe we should go back to pushing Erlang submissions to the top of the first page again?

<http://news.ycombinator.com/item?id=512145>

</comment></comment></comment><comment><USER10> I had a phone call this morning with our national GM, where I had to explain why HN is noted as consistently in our top 5 referring sites (which is to say I had to explain what HN actually is).

That's attributable to the fact that I'm active in this community, so I was surprised to see it accounting for so much traffic on a larger sample, but there's certainly evidence that even links that get no votes and no comments still drive traffic (though not as much as links that add value and create discussion).

<comment><USER11> I suspect that getting a lot of visits from 'Hacker News' doesn't sound very comfortable to many people.

<comment><USER10> Yes, I note the OP refers to YCombinator rather than Hacker News, but as the profile of both grow outside of the tech community not making the distinction will become more and more inaccurate.

</comment></comment></comment><comment><USER12> the fact that they have HN as having 2.4 times more referrer traffic than reddit makes me question this.

Look at the numbers, HN is a top 3,000 site, reddit is a top 300 site.

<comment><USER13> <http://www.raterush.com/pages/digg-reddit> might explain this somewhat.

A huge chunk of reddit links are back to reddit, to imgur and to things like major newspapers and youtube. If only a few of these are not actually tracked by Woopra, the results would get skewed significantly.

<comment><USER14> Then for the few legitimate remaining articles, I'll postulate that reddit users go to comment after only reading the headline and never follow the link of the article. Maybe HN readers are more diligent and do read/visit the articles more often.

</comment></comment></comment><comment><USER2> Hn is not a social bookmarking website.

<comment><USER15> HN is many things to many people, and to some it is definitely a social bookmarking site. It even has something called a 'bookmarklet', if you have a description of HN that does not include the social bookmarking aspect (posting links and discussing them) then I'm very interested in to what you think HN is.

<comment><USER2> It's a forum. Most of the threads are started with a link to discuss but not all.

I mean, how is it useful as bookmarks, social or otherwise? Are you able to save something so you can return to it later?

There are lots of bookmark lets that have nothing to do with bookmarking. It's just a way to execute some JavaScript in the context of a page.

Most of the sites there aren't social bookmarking, either. SU has the functionality, though.

For what it's worth, I'm the one who coined the term.

<comment><USER15> Check the 'saved' link on your profile page.

So, yes, you can return to those pages at a later point in time.

<comment><USER2> I'm not even sure how to get stuff on or off that list.

Again, in what way can you use this site as your bookmarks? You save an obscure documentation page and a mod deletes it, and then what?

HN (like digg, reddit, etc) is social news, or something. People who confuse the two think so because the delicious front page and digg looked similar, or whatever.

<comment><USER15> Obscure documentation pages are most likely not going to survive, I agree with you there. But I definitely do use it to 'bookmark' technology news and it is very rare that a link gets deleted.

The bigger risk for deletions seems to be not tech related stuff but rather non-tech related stuff that manages to get a couple of upvotes.

HN is social news simply because the audience can define it as such.

The main ingredients, the ability to post links and to discuss them and to revisit them at a later stage makes it such that some users will come by and use it in that way.

All the stuff you submit and upvote goes on that list, you can't remove stuff from the list if you've upvoted it, you can't remove stuff from the list after a certain time has passed.

<comment><USER2> Since when are discussions necessary for social bookmarking? Delicious doesn't have this.

Like I said, it's a forum.

<comment><USER15> They're not necessary but they don't hurt either.

As the coiner of the term, you may want to update the wikipedia article which, after listing the basic requirements says: "As these services have matured and grown more popular, they have added extra features such as ratings and comments on bookmarks".

So there seems to be a convergence of terms and services here.

I think the major difference between social bookmarking sites (of which I see HN as one, and you obviously don't) versus a forum is that on a forum the vast majority of the topics is not started with a link.

On HN the vast majority of the topics _is_ started with a link.

<comment><USER2> Can you please provide a definition for social bookmarking that includes the uses you are but is also not overlapping with other things? (Otherwise, you wouldn't need the term as distinct from other definitions, obviously.)

The confusion stems from when Kevin Rose started calling Digg social bookmarking to help raise VC, and was adopted by people who are only understanding superficially (the front pages look kinda similar, so clearly they're the same thing!) Kevin then stopped using the term.

I think you either understand this superficially as well. There are many things that I could use to serve some obscure purpose without that being the primary purpose.

Or perhaps you are just trolling.

<comment><USER15> I think the term 'social bookmarking' has expanded from its initial, narrow definition of 'a service where you can bookmark stuff and share those bookmarks with others and potentially tag them' to the point where the general public will interpret it as to be wide enough to include sites like /., digg, reddit and HN, whereas before that time it was limited to sites like furl, diigoo and deliciou.us. Witness the title of this article. For me the key element is that the majority of the discussions use a link as the topic starter.

I understand that initially the definition was a more narrow one, but since this seems to be the way people use it nowadays I'll just go with the flow, I have no vested interest in seeing the definition being used in one way or another.

To me a 'forum' is a site where people will come to discuss a subject, occasionally using links to illustrate the point.

I think that it is not very friendly to try to label someone that is having a fairly long conversation with you a troll just because you apparently disagree with them.

<comment><USER2> It's more your weak use of logic and lack of supporting points makes me think you are trying to make me annoyed rather than prove your point.

I do not think that "it has links to start discussions" make it a social bookmarking site. I think it is bookmarking + public that make it a social bookmarking site.

HN is a forum and a social news site. Delicious is social bookmarking and maybe a weak social news site, but not a forum.

Slashdot, also mentioned in the article, is DEFINITELY not a social bookmarking site. Surely you agree with this?

Incidentally, I picked a random forum, and looked at a few items. They all seemed to be started around links: [http://www.r8talk.com/forums/forumdisplay.php?s=fa7531fdc42e...](http://www.r8talk.com/forums/forumdisplay.php?s=fa7531fdc42e4354fb3ffd3e38de92a5&f=2)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> Wow, slashdot has really fallen far.

I know that I personally hardly read it anymore, but I used to read it many times per day.

<comment><USER15> Slashdot always had a tendency to discuss stuff without reading the article first, or at all.

So it doesn't drive as much traffic as you might expect, but when your site does get mentioned on /. it gets much more traffic than a HN posting.

Also, there probably is very little overlap between the typical /. covered site and the sites that woopra covers, /. is not really a start-up related site.

If you were to re-run the numbers with all of google analytics covered sites (impossible to get the data, unfortunately) you'd likely get a different picture.

The barrier to entry for a successful HN posting is much lower than it is on /., the volume of 'posted' stories on /. is much lower too.

All in all less surprising than you'd think at first sight.

</comment></comment><comment><AUTHOR> This wasn't at all surprising to me. HN has a great community of tech enthusiasts who have a insatiable appetite for tech content. I'm sure the people who ask for critiques on their web apps get a nice traffic boost.

</comment><comment><USER17> Useful data, thanks! I'm a little disappointed the pie charts don't include 'Other', which would have given a sense of how long the tail is.

Regarding the seeming discrepancy in data for Google's share, the reasons are probably: (i) more of Bing/Yahoo's traffic stays within their portals than Google's does, and (ii) Google is especially dominant among tech-savvy users, and the websites that were analyzed have proportionally more of such users (which would also explain why HN shows up).

</comment><comment><USER18> Argh misleading stupid 3d graphs!

</comment><comment><USER19> Considering that Social Networking site data is skewed due to not accounting for apps, could it be possible that is happening in the Social Bookmark space as well? Do Reddit and Slashdot have iPhone/Android apps?

</comment><comment><USER20> The reason why slashdot.org shows no traffic driven is because most visitors there know to block their referer.

</comment><comment><USER21> People still use StumbleUpon?</comment>


Mitch Kapor vs. Ray Kurzweil: A $20k Bet on Turing Test - <AUTHOR> http://www.longbets.org/1

<comment><AUTHOR> I'm entirely on Mitch Kapor's side on this issue, and I think what he doesn't say here is that Turing Test is a nonsense. Not only it would be impossible to imitate personal history, to answer all questions in a psychologically correct manner (taking into account childhood stories, libido etc.) - not only that.

We expect intelligent machines to solve hard problems, or to replace us in some routine, boring tasks that can't be formalized on ordinary algorithmic machines, etc. This does not necessarily imply full psychologically correct impersonation, so Turing Test is irrelevant and it's a waste of time.

</comment><comment><USER2> Hey, it's 2008. Bet #2 says:

 _In a Google search of five keywords or phrases representing the top five news stories of 2007, weblogs will rank higher than the New York Times' Web site._

Unfortunately they don't say how the top 5 news stories are decided or what keywords apply, so it's hard to see who actually won.</comment>


Which Links Get More Clicks? - <AUTHOR> http://www.adpushup.com/blog/users-select-links-click/

<comment><USER2> >When current leaks, it would invariably go through the earth wire, the reason for it being that it offers the least resistance for the flow of current.

Man, I wish people would stop repeating that "path of least resistance" thing about electricity. It makes it so much harder to understand how electricity actually works when you've been hearing that lie your whole life. It's also the kind of misinformation that gets people hurt.

Current flows through _every_ path, always. Otherwise, parallel circuits wouldn't work.

<comment><AUTHOR> I wrote the article.

You are correct - Current will flow through all paths, with more current flowing through the lower-resistance paths - Just like humans :)

<comment><USER3> I liked your insight about the persuit of happiness. Did you know there are ads designed specifically to help people feel _less guilty_ after thy made an expensive purchase? (Merdedes does this).

<comment><AUTHOR> That's quite interesting - not heard of this before. Can you share more information on this?

<comment><USER4> I seem to remember Cialdini's "Influence" touches on this (it's a great read about persuasion and influence in any case)

Basically we have a strong need and desire to be self-consistent, and so we seek reasons to rationalise our decisions and they don't need to be all that logical as we try really hard to fill in the gaps. Just present a somewhat plausible story, and you can make people substantially happier about their purchase.

A lot of aspirational brand advertising serves to make you willing to spend money on an expensive product, but also to help you justify the purchase to yourself afterwards by continuing to give you reasons why you made the right choice, so that you go tell your friends about your awesome expensive new Mercedes rather than go around telling them the car salesman tricked you into buying a car you can't really afford once you've had a chance to think things through.

On the lower end, those "write 200 words about how much you love X for a chance to win" competitions are based on a similar principle: They don't care one iota what you write; but apart from getting your address for marketing purposes, they also want people to think about positive things to associate their product with, and commit to them in writing - our need to be self- consistent makes us feel better about the product as a result and we become more likely to advocate the brand and be a loyal customer.

</comment></comment></comment></comment></comment><comment><USER3> >Our mind chooses the path of least resistance when it's given a work. It would try to find the easiest way to get a job done

Except when the task is _boring_ and you're ordered to perform the task (like in a boring day job). My DICS-'personality' scan showed I tend to not perform the task until it is almost to late. Or I tend to find other, more challenging ways to reach the goal. I have to keep it exciting. There is a UX school of thought using these profiles as well. I paid for mine, but google'd a bit. Here is a free one [http://www.123test.com/disc-personality- test/](http://www.123test.com/disc-personality-test/)

</comment><comment><USER5> I love reading this kind of stuff. Can anyone recommend any similar resources?

</comment><comment><USER6> Last time I saw someone actually A/B test it, telling users to actually click in the link text was superior in terms of click through rates. So this article doesn't seem to be factually based.

</comment><comment><USER7> >when a passage is typographically well structured and design, the readers are more engrossed in the text

Design vs designed. Pedantic point but it stuck out in that specific sentence.

<comment><AUTHOR> Thanks! fixed that.

</comment></comment><comment><USER8> Good read, but why is CSS linked at the end of the page?

<comment><AUTHOR> To get a better Google Page Speed score :)

</comment></comment><comment><USER9> Who knows? I didn't click it.

</comment><comment><USER10> The author's thesis was quite intuitively illustrated by the Google AdSense "Heat Map", which depicted a schematic of your typical web page, with a header, navigation bars down both sides, a footer, and some blocks where the content lay.

Heeding the advice of the Heatmap by placing one's Ad Units in the "Hot Spots" on one's old pages quite commonly doubled one's monthly revenue.

However the last time I went to look for it at Google's AdSense support site I could not find it. I don't know whether they moved it or took it down.

For your own purposes, try placing important links at different places on your pages, leave them there for a week - as the traffic to most sites tends to be cyclical with a one-week period - then analyze your web server logs so as to determine how many internal referrals to other pages on your own site resulted from each link.

I analyze my own logs with Analog ([http://analog.cx/](http://analog.cx/)) which is powerful and configurable but has a steep learning curve. If you don't have the headspace to Read The Fine Manual, there are many fine competitors readily available.

Each subsequent week, move each of those experimental links to a distinctly different place on your pages.

Upon finding the most-effective placement for each link, put all the links in their best places, then try altering their presentation: text color, typeface size and style, backround color and the like.

Once you've found the best combination of everything, you will be in a good position to earn some coin via PPC ads.

I myself for three solid years earned $3,500.00 per month on the average, $5,000.00 for two different months, with just two Ad Units on just one single quite lengthy, well-researched piece on copyright law:

Links to Tens of Thousands of Legal Music Downloads

[http://www.warplife.com/tips/law/copyright/music/legal- downl...](http://www.warplife.com/tips/law/copyright/music/legal- downloads.html)

Come for the links, stay for the law school lecture.</comment>


AMD CEO resigns unexpectedly - <AUTHOR> http://www.reuters.com/article/idUSTRE70A0D620110111

<comment><USER2> It's a shame. AMD always just seems to be a little behind the next big thing. With the exception of the K8 they've just been in perpetual catch-up mode. They finally have a pretty good mobile x86 platform when the rest of the industry seems to have decided ultra-low-power ARM is the way to go. They developed a pretty good high end server platform then the industry realized virtualization can save a ton of money on hardware. Poor AMD.

<comment><USER3> While in recent times this might be true, I seem to recall AMD also beat Intel to 1Ghz, and I was not paying that much attention at the time, but I think they came with multi-core cpus around the same time if not a bit earlier than Intel.

Fusion also seems to be slightly ahead of the curve, but I follow all this stuff less and less so I'm not that familiar with the details of how exactly it compares to SandiBridge.

<comment><USER4> AMD had intel flat beat on multi-core for a long while.

<comment><USER5> See my comment on the parent post about downvote. I couldnt reply to you earlier as HN disables posting to downvotes for a while, I think.

</comment></comment></comment></comment><comment><USER6> > A source familiar with the matter said the board viewed Meyer as somebody > who stabilized AMD and helped turn it around, but wanted to look elsewhere > for an executive to accelerate the company's growth.

These really are two different skills. A CEO that can turn a company around may not have the right skillset to put it into a sustained growth.

AMD's myopic view of only competing against Intel is also another problem. There's no real reason they also shouldn't be fabbing PowerPCs and ARM chips in bulk. At least in order to extend the life of older fab facilities.

<comment><USER7> At this point, AMD doesn't own any fabs. They spun that part of the business off as Global Foundries, which then bought Chartered for good measure and is now a close partner with ARM: They've even abandoned the tradition of making a full wafer of SRAM to test and demonstrate new processes in favor of making test wafers of ARM SoCs. (Apparently SRAM cells don't do a very good job of exposing the kinds of problems that will crop up when trying to make CPUs.)

<comment><USER8> Indeed, SRAM layouts are very regular (it's a lot of the same), so the lithography process is easier to get right. This is also why new, less-nm processes will first be used to produce Flash/RAM and only later for complex CPU logic.

</comment></comment></comment><comment><USER9> I wonder if this has anything to do with the very cheap Sandy Bridge line just launched by Intel. $300 for a chip that competes with $1200 chips is pretty tough to beat.

<comment><USER10> I assume you're referring to the ultra low voltage sandy bridge parts parts. AMD's Ontario and Llano, coming out later this year, will be very competitive with these parts. Not to mention cheaper to produce.

<comment><USER9> I meant the 2600 i7 chips. What is AMDs answer to that?</comment></comment></comment>


Ask HN: How do you estimate hours required for projects - <AUTHOR>

Is there a de-facto standard formula that can be used to calculate how long it will take to complete a web application project for clients? <comment><USER2> The old de-facto formula was to estimate the number of hours then multiply times two.

Basically, break it into pieces. Usually individual pages and estimate each based on prior experience. Add to it other things you may need to do like designing a schema, interfacing with other APIs, etc. This will probably give you your best case scenario. Then multiply times two because stuff always comes up that you didn't think about. This is what I use for "ballpark" estimates.

This is definately open to optimization.

I think it is important to understand "both sides". Clients usually like fixed-bid or per project pricing because it limits their risk. That way they won't be surprised by a huge bill.

As a freelance developer, I disklike fixed bids because it requires me to manage scope really carefully, otherwise my effective rate falls really quickly. So this really means that I need to increase my bid by some amount (I do 25%) do limit my exposure. So this isn't quite as good for the client as it might look on the surface.

A better way to do it is a lesser rate, such as hourly or weekly, and then break the work into iterations or phases, each resulting in something demonstrable so they can see what they are getting for their money. After they pay for the phase, they can walk with the source code written so far if they want. This limits risk on both sides. I've gotten paid for what I've done so far, and they have something tangible for what they've paid so far.

I start out with prototypes/proofs of concept to explore the most risky aspects of the application first and then feed what I find back into the estimate. This way, I can the client can know sooner than later about gotchas that can affect schedule or cost.

</comment><comment><USER3> Yes. Pick a random number 1-10 and then multiply it by 4, and then by the number of self-titled "founders" in the startup hiring you. That's the number of hours it will take to finish after each founder has complain and asked you to change something.

But seriously, most guys who can predict hours needed with any amount of reliability are the guys who have been doing it for awhile and have already done a similar job. They use past experience to predict amount of work hours needed to finish something. If you truly have no idea how long it will take you, you could begin by breaking up the project into each piece and try to project how much time each of those pieces would take. For example, how long will the design take, the homepage, the about page, the forms. Break each feature apart and try to estimate time for each, then add them up.

My best suggestion is just to overshoot your hours. If they accept the offer you should work hard to make sure you meet the deadline and if you go under the deadline, be honest and tell them how much money you saved them.

</comment><comment><USER4> Right now this is a bit of a problem for me too. I just guestimate based on previous work and hope nothing goes wrong or nothing unexpected crops up. In the event where it's something I've never worked on before, I do a bit of research and try gauge the difficulty by seeing how hard the subject is, how many resources are available (tutorials, articles etc) and my estimate here is compared with how long it took me to learn something similar.

I have noticed that my estimates are becoming more accurate over time but I'd also like to know if people have some sort of a procedure/workflow that they follow.

Another approach I experimented with was using the scrum methodology. I tried breaking the tasks up into smaller chunks (user stories) and then valuing the effort/time required for the individual parts before adding the values up.

</comment><comment><USER5> Make a qualified guess based on previous experience and realistic numbers.

Run it through your peers (specially anyone else involved in delivering it). Listen to the most pessimistic ones, rather than the über optimistic.

Multiply that estimation you have now by π.

Believe me, you will more often than not correct with such a calculation.

Bonus: You will be right by more or less ~10% which you can either give as a discount to your client, or you can charge them 10% extra in the end.

Warn them that there is ALWAYS risk when estimating, and all risk should be shared. Win Win FTW!

</comment><comment><USER6> I have been doing ok on estimates lately. The trick I use is to break everything into tasks <= 4 hours, ideally 3. In fact, I much prefer 3 because with 4 hour tasks it's too easy to think almost anything will take a half day. That keeps things realistic and errors in your estimates from snowballing. Also, I rarely find any tasks to take less than one hour.

</comment><comment><USER7> I give my best guess based on nothing going wrong. I then tell the person asking for the estimate that things will go wrong (usually external dependencies like getting access to the customer network or having the design delivered on time with no changes to it) and that this will double my initial estimate.

</comment><comment><USER8> An old _construction_ contractor once told me that the proper way to estimate is to "take a wild guess, and then double it... and then triple it".

Even with a lot of experience, the only thing that's really certain is that unexpected things tend to jump out and eat your budget.

</comment><comment><USER9> I will generally base my estimates off prior projects that are similar in nature. If the project is unique enough, I usually push for a weekly rate instead of a project rate. I really dislike scope creep, and this allows me to charge for it.

</comment><comment><USER10> Don't - break into smaller and smaller tasks till writing out the task feels like the next step is pseudo code. Then it's small enough that you can count up the tasks and have a good idea of how much there is to do

Fibonacci, elephants and mice do not come into it.

plan carefully. If you don't know enough to plan carefully, prototype, then plan.</comment>


Ion-convert: Convert data to the Amazon Ion format - <AUTHOR> https://github.com/bradley-curran/ion-convert <comment><AUTHOR> I'm working on a project that uses the Amazon Ion format to store binary data. I wanted to see the textual representation of the data when debugging, but there wasn't any existing tools.</comment>


David Blaine Spouts Fire and Water [video] - <AUTHOR> http://smashpipe.com/news/videos/rkXV3UxMzoo/David_Blaine_Real_or_Magic_Water_Spouts_Fire_and_Water.html

<comment><USER2> He might as well have used my Grandpa's famous 'cabbage licqueur'.</comment>


The Case for Singletons - <AUTHOR> http://eamann.com/tech/the-case-for-singletons/ <comment><USER2> Necessary singletons are a sign that your language/library either embraces "everything is a class" so you have to make vacuous singleton classes to get full access to the language, or it is lacking a sufficiently powerful module system so you have to implement an ad-hoc one yourself using classes.

Unnecessary singletons are usually a sign that someone, somewhere designed a way too general system that allowed multiple instances of something, then nobody ever used that feature, then someone else came in and made things a bit saner by adding a singleton constraint, leaving vestigial object-ness and meaningless pointers being passed around everywhere.

In a perfect world with perfect programmers you'd never see one so the instinct that they smell bad is correct.

<comment><USER3> > Unnecessary singletons are usually a sign that someone, somewhere designed a > way too general system that allowed multiple instances of something, then > nobody ever used that feature, then someone else came in and made things a > bit saner by adding a singleton constraint

I fail to see how that makes anything saner.

<comment><USER2> If your program has an unused and untested capability, killing it is a move in the right direction even if it makes your program less elegant. Bad behavior is worse than ugly design.

Of course the right thing to do is to simplify the rest of the program to take advantage of the new assumption but maintenance programmers don't always have the luxury.

</comment></comment></comment><comment><USER4> Downvote away -- I know I deserve it, but I need to say this:

Whenever I see a discussion of good software design principles given by a PHP programmer, with PHP examples, I roll my eyes and press Back.

Rightly or wrongly, the thought that goes through my head as a former PHP programmer (from versions 3 - 5.x, ending in ~2010) is something like, "if this person knew anything about well-designed software, they'd know enough to use a well-designed language."

<comment><USER5> A statement like this doesn't help anyone.

It doesn't help the productive PHP programmer get a better understanding of other (possibly better) tools that exist, what problems they solve, and how they can transition to those tools.

It also doesn't help the person making the statement convey their expertise in the subject matter. Instead it looks like an easily dismissed statement about PHP, without any real attempt to prove it.

<comment><USER6> The problems of PHP have been well documented here: [http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad- de...](http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/) I think its relevant that PHP does object and classes in terrible backwards ways and, among other things, a singleton will necessarily be rather ugly in this context. Learning about singletons won't help anyone get a better understanding of other tools that exist. Learn Ruby or Python if you want to do web programming.

<comment><USER7> It's like people in Ferraris yelling at people in Toyotas.

<comment><USER8> It's more like people in cars yelling at people who have attached wheels and diesel engines to horses.

<comment><USER7> What?

</comment></comment></comment></comment></comment></comment><comment><USER9> There is another argument against singletons. They destroy design information:

[http://michaelfeathers.typepad.com/michael_feathers_blog/201...](http://michaelfeathers.typepad.com/michael_feathers_blog/2012/12/global- variables-destroy-design-information.html)

</comment><comment><USER10> I am not a big fan of "getInstance". For a session it should be named something like "defaultSession". It is perfectly reasonable that you later want to add a separate session that requires HTTPS only cookies, in which case it could be called "secureSession".

</comment><comment><USER11> If we're on the subject of anti-patterns, should GOTO really never be used, in any situation?

I remember writing some code in C a few years ago and I needed a place in a function where cleanup is performed, and in case there were errors caught in multiple places before you get to the cleanup area, I used a goto statement to jump there after printing the error message and turning on a special error flag.

How would you solve that problem without goto?

<comment><USER12> You would put the cleanup code in a separate function, and call it.

I don't think there's anything wrong with using goto in such a case, though, if it makes the code more understandable.

<comment><USER13> Having worked in a large C code base that was occasionally tainted with this approach (rooted only because people have been told to avoid goto as dogma), I have to say that goto is a better approach to emulate try-finally or RAII in C. For one, the goto will read better as a single piece of prose, there will be no need to glance over at some other function to see the free call. Second, let's say your function has 2 allocations and a lock acquisition - that means your cleanup function needs a pointer to each, usually done with parameters. Add an extra allocation? New parameter to the cleanup function. This gets messy, fast, in a way that the goto does not.

</comment></comment></comment><comment><USER14> My problem with most singletons is that they are a half-way solution for a developer unwilling to commit and accept that sometimes a bit of global state isn't the end of the world.

Static fields and static methods on classes should be used sparingly, but if you're going to use them, just use them. Why half-assedly try to hide the fact that you're using them by wrapping them into a singleton?

This is a(nother) thing I like about Go, the design of the language allows for the fact that sometimes a function is just a function and doesn't need an object receiver and maybe it even modifies a package level global, so what? Just make sure you properly handle multithreading situations. In Go code you don't find a lot of patterns where people are trying to sweep what they are doing under a rug in order to not anger people who accept "common wisdom" code design guidelines as absolutes.

If you need to write "dangerous" code (and sometimes it is best to write "dangerous code"), do it in the open, out in the light of day, that way at least it can more easily be reasoned about if someone does hit a snag in it.

<comment><USER15> "Why half-assedly try to hide the fact that you're using them by wrapping them into a singleton?"

I may be misunderstanding your context for the above comment but when I use singleton classes for WordPress plugins I do so to avoid potential namespace collisions with other WordPress plugins.

</comment></comment><comment><USER16> Singletons are easy to implement, simple to understand and have no performance penalties. They don't need to be defended. If they work for your project, use them.

<comment><USER3> > Singletons are easy to implement, simple to understand and have no > performance penalties.

Unless there's any concurrency to the system, that is. Then they're shared state (as fraught with peril as any shared state) except they're shared state which can be broken/corrupted straight from the initialization.

</comment></comment><comment><USER17> So Eric is sort of right although he doesn't explicitly state it: Singletons _may_ provide a decoupling point nearly identical to dependency injection when designed with care. But that's not really the problem, and he stops with an argument that is compelling to someone in 2002 but not so compelling for someone from 2012.

The reason we prefer non-singletons to singletons are as follows:

• Most languages do not provide very good ways to prevent singleton collision. As software has become more complex and open source's success increases the size of the average dependency tree, this problem is exacerbated.

• Singletons force you to confront all the problems shared state concurrency has to offer, with almost no support. DI objects tend to be isolated from one another and do not run into that level of complexity so soon.

• Singletons tend to make it harder to test code unless your language has a method for overriding or mocking singletons within a dynamic scope (or static type checking between types with liskov-substitutable signatures). The most classic exampe of this is one of the most prevalent singletons: your system clock.

Knowing what we know now about how successful software projects tend to be confronted with expectations of concurrency, parallelism, robustness in the face of reuse, and testability; singletons offer a lot of costs for very transient benefits.

<comment><USER3> Singletons also make things painful if (when?) you have to go from "one instance" to "two instances", which regularly happens.

<comment><USER18> Which is why they should be used sparingly, if at all. I'm not advocating we go out and start making every class a singleton, just explaining how they _do_ serve a purpose in PHP/WordPress development.

<comment><USER15> I support Eric here. Singleton make sense in WordPress specifically for encapsulating plugins. In WordPress plugins can never have more than one instance so it's really a moot point to expect them to be anything else.

Outside of WordPress plugins, I don't currently know of cases where I'd also advocate for singletons. Yes in most other cases singletons are bad but I'm sure there are some other cases where they do make sense. And you can't prove a negative.

</comment></comment></comment></comment><comment><USER19> I generally prefer Lisp-style ✲dynamic✲ variables. They basically work the same way singletons do, but they can be set and reset at a block-scoped level (great for test mocks and the like, and makes your control flow easier to understand), and they play much better with threads.

Rust doesn't even have singletons or global variables, since they aren't threadsafe. It has thread-local storage, which dynamic variables are built on top of.

<comment><USER3> > It has thread-local storage, which dynamic variables are built on top of.

That hack only works if execution can never be suspended though. The issue exists in Python where it's possible to fake dynamic scope using threadlocals, but _that_ can blow up if execution is suspended (between `yield`s in a generator, for instance) as the stack doesn't get unwound (merely frozen) and the threadlocal isn't reverted if it's in the frozen part of the stack. Same deal if it's possible to unshift stack frames, the threadlocal will more than likely end up in the wrong state.

An other thing which bothers me with threadlocals is that it's not really possible to introspect currently-bound locals in order to "save" them alongside lambdas (though that may be an API issue more than an issue with the locals themselves), and in my experience async callbacks tend to need their creation stack context more than their callstack context.

<comment><USER19> Both good points. Rust doesn't have the problem with execution being suspended, since the only mechanism for suspending execution is through the task system. Thread locals are all per-task.

The issue with introspection is fair, and it's a gotcha you have to keep in mind whenever you use dynamic variables. They're necessary to make the task system and condition handler system work under the hood, however, so we can't just remove them.

<comment><USER3> > They're necessary to make the task system and condition handler system work > under the hood, however, so we can't just remove them.

Oh I've nothing against dynamic variables at all and wouldn't want them (or conditions) to be removed from Rust (in fact I wish solid dynamic variables were available in more languages), don't get me wrong.

</comment></comment></comment></comment><comment><USER8> This is a good read on singletons.

[http://www.object-oriented-security.org/lets- argue/singleton...](http://www.object-oriented-security.org/lets- argue/singletons)

"Singletons are possibly the single greatest obstacle to good object-oriented design today. They are often at the root of huge intractable design flaws in large systems, and yet many programmers continue to use them and even insist that they are a good design pattern. Many programmers point to the fact that the singleton pattern is a prominent part of the book Design Patterns, but don't realize that at least one of the authors of that book (Erich Gamma) is on record saying that it shouldn't have been.

We argue that Singletons are almost always bad design and almost never needed. In the few cases where singletons seem necessary, the "environment pattern" offers a reasonable alternative. Therefore, we recommend that programmers always avoid singletons and that programming languages ban them or at least provide an option to ban them."

</comment><comment><USER20> I prefer to mix both dependency injection and singletons for the best of both words. Classes accept dependencies in their constructors but as optional parameters -- if the parameter isn't provided, a default reference is pulled from a singleton.

It saves a lot of extra typing when 99% of the time your dependencies are fixed.

</comment><comment><USER21> Singletons, globals/statics, and dependency injection all seem to be solutions to the problem of making objects find each other at runtime.

Maybe it's time for a dedicated language feature to solve that problem? For example, each object could carry an implicit reference to an "object pool", from which it can fetch other objects by their class/interface. If an object constructs other objects, the "pool" gets passed along implicitly. Test suites could use "pools" filled with mocks. And unless I'm missing something, the presence of all required dependencies could be statically checked at compile time.

Basically it would be like Lisp's dynamic variables, but based on the construction hierarchy instead of the call hierarchy. What do you think?

</comment><comment><USER22> The main issue I have with singletons is that _any_ mutable global state prevents your application from being first-class within its own runtime environment.

This is of course useful for unit testing, but also reduces hidden state dependencies between submodules.

</comment><comment><USER23> I've been of the opinion for a while that static variables of any kind should be avoided except for const data (tables, constants, etc.). They make code very difficult to impossible to port to multi-threaded environments, and make it hard to cleanly instantiate and then clean up a module within a larger program. Even things that feel like they should be global should be contained with a global context container that can be cleaned up.

<comment><USER18> I agree. But remember, the article is specifically about singletons in _WordPress_ , which is written in PHP, which is single-threaded.

<comment><USER3> > the article is specifically about singletons in WordPress

Is that why you open with

> I would argue that Singletons are not just useful, but are necessary for > robust software development.

?

No mention of wordpress there, you use it as an example but your assertion is that singletons are downright _necessary_ to software development.

<comment><USER15> @eamann, I gotta give @masklinn credit there, you didn't explicitly make it clear your post was focused on WordPress-related use-cases. It was obvious to me from your references and knowing your focus but maybe not obvious to those who don't specialize in WordPress if all they did was scan the article, as most people do.

<comment><USER3> No, even reading the post it's not obvious. It's obvious that he talks about wordpress, but considering the assertion I quoted I simply read it as using a wordpress-based example/use case to support his hypothesis.

At no point did I find or notice a modifier of the article being an argument for the usage of singletons _in wordpress plugins_. though I may just have missed it.

</comment></comment></comment></comment></comment><comment><USER24> I can't speak to server side development, but for ui applications, storing your models in a singleton can save you a lot of time. When you're developing apps its very easy to get stuck in a mindset that you only need certain data for each screen, but the truth is the data for one area will inevitably bleed over into other areas, and having a good way of updating and reflecting data to the areas needed is the sign of good architecture.

</comment><comment><USER18> I've posted a follow-up to this that broadens the ideas of Singletons for general PHP use. Using abstract classes and inheritance, it's also possible to unit test the code contained within a Singleton. The follow-up is here: <http://news.ycombinator.com/item?id=5023027>

</comment><comment><USER25> Is it just me or did he never actually address the dependency injection complaints? It read like he spoke glowingly of how dependency injection decouples your code and makes your blissfully flexible and then nothing. Was his counter argument just that sometimes you _need_ to be less flexible?

<comment><USER26> He tried to, with the suggestion that with DI, you suddenly had the dependence hard coded and would have to make a code change to change the dependency. This, of course, is not accurate.

</comment></comment><comment><USER27> > Think of every time you've used the global keyword when working in > WordPress.

I pretty much stopped reading there. Referencing WordPress when making a point about software design does not strengthen your point.

Singletons are the antithesis of dependency injection.

</comment><comment><USER8> The number of replies defending PHP make me think that HN is very close to becoming a useless place, dangerous even, for obtaining programming (and probably other) advice.

<comment><USER18> It's not about defending PHP. PHP is an ugly, inconsistent language. It's a matter of pointing out why certain tools are used in certain environments.

</comment></comment><comment><USER28>
         $this->persist

That's just sad. And the author even is a wordpress _developer_

<comment><USER18> Yes, it's sad. And no, I'm not a "wordpress" developer, I'm a WordPress developer who didn't properly proofread everything before publishing. You should probably take a lesson from that ... :)</comment></comment>


Who Makes the IoT Things Under Attack? - <AUTHOR> https://krebsonsecurity.com/2016/10/who-makes-the-iot-things-under-attack/ <comment><USER2> I tried the suggesting from the comments:

>In your home network: Turn on ALL your gadgets that you think have connectivity got to [http://whatismyipaddress.com/](http://whatismyipaddress.com/) and enter it at [https://www.censys.io/](https://www.censys.io/)

Then see what is exposed to the internet.

Seemed ok for my stuff so far.</comment>


Gmail annoyances Google needs to fix - <AUTHOR> http://news.cnet.com/8301-17939_109-10127183-2.html?part=rss&subj=news&tag=2547-1_3-0-20

<comment><USER2> 1\. I use a free e-mail service, and all I am concerned about is they still earn money over me..

2\. I am so used to old fashion competitors' e-mail clients and too dumb to learn new things, yet "I am a technology columnist who has written about everything from HDTVs to computers to Flowbee Haircut Systems"

3\. I love to use mouse for every action.

4\. I hate to use mouse for every action. (and as nirmal points out I am too dumb to learn how to do what I want to do, I prefer to complain)

5\. Once in five times, I can come up with some features that everyone can like..

</comment><comment><USER3> 1\. Don Reisinger, come on! You can't be serious?

2\. Labels are far more flexible than folders. If you want to use labels like folders, then just label + archive.

3\. No, it doesn't.

4\. eh.

5\. Good idea.

</comment><comment><USER4> There is a keyboard shortcut for moving emails to trash. By default it is "#" but you can use a GmailLabs feature to change it to something else. Unfortunately, it cannot be the delete key. I set mine to "d".

As far as labels go, if you don't want emails that are labeled to show up in your inbox then just set a filter on them to "Skip the Inbox". I do this with all of the emails that come from any company (Twitter, Borders or Amazon).

</comment><comment><USER5> _At least no one at the company actually reads my e-mails, I guess._

Tongue-in-cheek?

</comment><comment><USER6> Multiple signatures would be very helpful.</comment>


Ask HN: December 21, our (app) world has ended? - <AUTHOR>

Ok, now that I have your attention... so we built a mobile security application that we put up on Google Play and started seeing the downloads coming and getting feedback. Google sends us an email saying we are violating the TOC - they mention some vague reasons - repetitive keywords and claiming features that is not supported by the app... none of that makes sense to us as we are in the early days of our application and we dont even know how to do everything that is mentioned there.
Nonetheless, we looked at the copy on Google Play and compared it with other (heavyweight) vendors in the space and made it very similar. We figured that if someone else is approved and getting downloads, they must have done something right that we didnt understand. We notify Google after the email that we have taken action.
Time goes by, then suddenly one fine day in December, we receive a cryptic email that our application has been yanked for similar reasons to one listed in the previous email.
We appeal that we have followed all rules and regulations to the best of our knowledge - however, we didnt get any response so far. There is no phone or person to talk to.
Oh, BTW - we spent close to 2 years building this app. This is not a game app that was done by an Indie developer in their spare time.
Does Google care for its developers? If yes, then they need to be more articulate in their reasons and respond better to such incidents.
As far as we are concerned, our (app) world has ended today...
BTW, some of our other apps are live which follow the same copy and principle..
https://play.google.com/store/search?q=syncnscan&c=apps
Has anyone else faced this problem? I would love to hear any experiences. <comment><USER2> You could always try listing on the Opera store and other similar stores. After all, it takes proper promotion to get your app downloaded now since Google removed the 'what's new' list, so divert your efforts toward another store.

It will add some friction to the download process as users will have to download the Opera store app but at least you can still get your app on their devices relatively easily.

</comment><comment><USER3> This is yet another example of Google/Apple appstore owners highhandedness. I cant believe that they rubbish someone's efforts of years with a single email and dont have the courtesy to respond. This is the least they owe to their app developers who have made them successful and the envy of Microsoft!

</comment><comment><USER4> Hopefully you'll live another day ! - It does beg the question does Google care about startup's anymore ?

</comment><comment> future-guru Sorry to hear that mate... Hope Google wakes up before its too late</comment>


Is being a niche language developer good for your career? - <AUTHOR> http://blog.jayfields.com/2007/12/is-being-niche-language-developer-good.html <comment><USER2> It's not programming in a niche language that's limiting his options. It's assuming that he has to "be" a niche language developer and "focus" on one thing. Saying _I am a Ruby developer_ in that sense is like saying _I am a hammer carpenter_. Good programmers learn new languages easily, and specialization is the wrong approach to apply here.

<comment><USER3> It depends:

That guy's more likely to get a job where they need a _Ruby_ developer. Maybe I'm more likely to get a job when they need someone to do X Y and Z and they think they'd like to use Ruby, but use other languages for other things, too.

<comment><USER4> It depends even more. If I were looking for a Ruby developer, I'd hire a guy who could write an optimizing compiler for Javascript in C and had never used Ruby than someone who only knew Ruby; even if they knew Ruby pretty well.

If you are going to become a Ruby _Language Lawyer_ , then you'll probably get the best compensation and find the most rewarding work at a limited number of companies; but in the process of learning a language well enough to be called a language lawyer it's almost impossible not to become proficient in other languages as well. I'd argue that if you don't know anything but Ruby, you're most likely not a Ruby _expert_.

<comment><USER5> I'm not sure if I agree. Sometimes what a company really needs is an EXPERT in their field.

Generally smart people can of course learn any subject matter but a) you'll need resources to coach them and b) they'll write mediocre code for a very long time.

Any smart Java developer can learn Ruby but for a long time they'll be writing Java code in Ruby. It takes a while longer to become adept with Ruby and start writing Ruby code like a pro. And sometimes you just don't have the resources or the time so you need to hire candidates that have expertise in the right area.

<comment><USER4> _Any smart Java developer can learn Ruby but for a long time they'll be writing Java code in Ruby. It takes a while longer to become adept with Ruby and start writing Ruby code like a pro._

I'm not talking about "any smart Java developer," I'm talking about a top- quality hacker that really understands computers. From a hiring perspective, it may be hard to tell the difference between a great hacker who solves big problems and a Ruby Pro who can only write effectively in Ruby. But it's the truth. A programmer who really understands the inner workings of a system and the point of high-level languages shouldn't have any problem learning to use Ruby effectively in a very short period of time with minimal coaching(No more coaching than you'd likely need to do anyway, if you're planning to actually integrate his code).

If you're trying to plan your own career, "should I become a niche developer?" is the wrong question to be asking, unless you have failed an attempt to become a great hacker and aren't interested in trying again.

<comment><USER6> Yup.

The good developer may not know all the idioms in ruby. But that will have negligible impact on his productivity or the quality of the code he writes.</comment></comment></comment></comment></comment></comment>


In Silicon Valley, Chinese 'accelerators' aim to bring startups home - <AUTHOR> https://www.reuters.com/article/us-usa-trade-china-startups/in-silicon-valley-chinese-accelerators-aim-to-bring-startups-home-idUSKCN1II0UG <comment><USER2> One of the most difficult problems we have in Michigan and the Midwest in general is that a large percentage of our most talented developers leave the state upon graduating college to go to work for the Silicon Valley giants.

If you talk to them a few years later they long to return to the Midwest and they want to do a startup. What if Michigan had an accelerator in Silicon Valley, one where it's native VC's and angel investors had first crack at funding these companies with the provisio that they move back home?

<comment><USER3> I mean do you blame them? It's cold, not much to do, political turmoil in recent years. I don't see MI offering a lot

<comment><USER4> Was warm enough for Henry Ford, The Dodge Brothers, William Durant, Herbert Henry Dow, Louis Chevrolet etc. Maybe some thicker skin and a harder winter would benefit folks ;)

<comment><USER5> At that time, Silicon valley didn't exist and California was barely getting mass migration. About a century later, now even the car industry seems to move toward California..

<comment><USER4> Doesn't seem like a good thing to me, with the cost of real estate, energy and labor in California, building sprawling manufacturing plants for cars probably won't work. Plus the margins on building cars are very low at high volumes - not something SV is used to.

<comment><USER6> California is huge and has plenty of cheap land as long as you don't need to live next to the ocean.

Ex: ~1000$ an acre. [https://www.landandfarm.com/property/Freeman_Ranch-7072064/](https://www.landandfarm.com/property/Freeman_Ranch-7072064/)

</comment></comment></comment></comment></comment></comment><comment><USER7> China is going to win this one, because US VCs want to "exit". Big Chinese companies are quite happy to keep ownership as the company becomes operational and profitable. They want revenue, not valuation.

<comment><USER8> I might be touching a sacred pearl in these parts, but in many ways, the US start-up system incentivizes the wrong things, as you say, just getting an exit. A more valuable thing for people with capital to shoot for is sustained or long-term value (revenue is one of those things I guess).

<comment><USER9> Indeed, the tech world (and to some extent, the business world more generally) is a stark reminder that there is no longer any social pressure against being a "sellout."

</comment></comment></comment><comment><USER10> I can't help but think this best aligns with US immigration system. US take in huge amount of international students, but don't have a reliable (no, lottery- based work visa with a ~50% SLA is not reliable) and easy way for top graduates to work. Instead, policies that were made tens of years ago in fear of US jobs stolen by foreigners are still effective and the same mindset influence many Americans.

This is just an effort among many to attract talent in the US, and at this point any country who doesn't make this kind of effort is basically leaving free money on the table.

</comment><comment><USER11> Surprised they missed CometLabs, an AI focused Accelerator in SF that is part of Legend Holdings.

</comment><comment><USER12> It is not clear any longer that in the near future most new software technology will still originate in the US.

It appears that the first author of about 50% or more of accepted long papers at ACL 2018, a top NLP conference, is a Chinese. (I didn't count comprehensively as there are > 200 papers, but I counted from a substantial sample.)

[http://acl2018.org/programme/papers/](http://acl2018.org/programme/papers/)

Added:

Yes, an NLP conference is far from a comprehensive sample of software technology. That is why my first sentence was quite tentative. Nevertheless, the data could be a harbinger for a more widespread phenomenon to come (US researchers used to dominate many, perhaps most, top AI conferences).

The point is not mainland China will dominate software technology. It is that the US may no longer be dominant.

Feel free to add other data to contribute to substantive discussion.

<comment><USER13> Chinese ethnicity doesn't mean Chinese (PRC) national. There's also Taiwan, Singapore, Hong Kong, etc...

<comment><USER14> And plenty of Americans are Chinese (especially in tech research), if you see the latter as an ethnicity rather than a nationality.

</comment></comment></comment><comment><USER15> That looks great. More countries should have this kind of initiatives, so we could have technology to spread worldwide, instead of getting concentrated into a single high-cost area of the world.

<comment><USER16> Where I live in Seattle, one reason for the high cost is Chinese cash buyers snapping up real estate to move their assets out of the country.

China's authoritarian government's policy is world domination, and I don't think we should be helping them.

<comment><USER17> Ignore our highly restrictive zoning for the majority of the city, and the booming giants we have from Boeing to Amazon crowding the region. Many of the people I grew up with have moved from Capitol Hill, Ballard & West Seattle to Marysville, Tacoma and Issaquah due to the housing crisis pricing them out of the city.

Condo complexes are practically never built due to our state liability laws, and the only apartments being built are premium units, as once you deal with the zoning requirements and end up with 20% of your building's floor space getting lopped off, that is the only thing that can profitably be built.

<comment><USER16> Seattle does have many other housing problems. However, I was outbid by all- cash Chinese buyers in Bellevue and Sammamish, as well, when looking for a house.

<comment><USER17> Have you looked at the zoning code in Bellevue or Sammamish? Its likely much worse than Seattle's, I know Kent's zoning is positively wretched, mandating that more than half of any commercially zoned property be paved for parking. How can you have density when you zone it away?

</comment></comment></comment></comment></comment><comment><USER18> When you lived in the West, why return to China? ( Except money)

</comment><comment><USER19> It's unethical to give a piece of your company to an oppressive government like China's or anyone else involved in human rights violations.

<comment><USER20> US is involved in human rights violations too. So where does that logic leave us?

<comment><USER21> This is a false equivalence, China is objectively much worse.

At least America doesn't jail or kill its political activists and journalists, doesn't have what is effectively a dictator for life, doesn't directly control all media in the country, has a semblance of real democracy, doesn't keep it's states by threatening them with military action, doesn't overly and actively censor it's citizen (although it does spy on them).

<comment><USER22> Whataboutism is a powerful disease of modern discourse. Pretty soon we will start letting killers go because John Wayne Gacy and Jeffrey Dahmer killed more people.

I think it arises from a misguided attempt at calling out hypocrisy, but the result is a race to the bottom where any other example negates any criticism. Nobody is perfect so if you have to be perfect to criticize no criticism is possible.

<comment><USER23> > I think it arises from a misguided attempt at calling out hypocrisy

That's quite a good analysis.

And it's literally the case here. OP was going all "white knight", being judgmental and saying how could people help such a bad country as China.

Which is both a limited view and hypocrisy at it's finest. I'm veggie, but I don't stop being friends with meat eating people, although I do consider it something cruel.

The world is not black and white.

It's not because we don't know it's not a proper civilized argument. It's because it was not meant to be an argument in the first place. Just a way to keep OP in check.

But yeah, that's a big fail.

<comment><USER22> The trouble is that I always see the inverse too: people deflecting any criticism of American foreign policy by citing other countries with worse human rights records.</comment></comment></comment></comment></comment></comment>


Show HN: This year I learnt to code and am just about to release my first game - <AUTHOR> http://www.youtube.com/watch?v=fQCrg3y3pts

<comment><USER2> First time programming ever? How did you find the learning curve?

Anyway, congrats, looks really good. Good luck.

<comment><AUTHOR> Well, yeah! I'd done a tiny bit of VBA scripting for work, but this was first effort to do anything 'proper'.

The curve was pretty tough to start with (and I'm definitely nowhere near the top of it yet), but I kept my goals small and gave myself a lot of time to read books / websites / stack overflow.

One downside to this approach is that I'm still working with code I wrote a year ago, so my code base is pretty horrendous! Needless to say I won't be reusing much of this project...

Thanks very much!</comment></comment>


How I Started a Web Design and Consulting Business when I was Sixteen [Part 2] - <AUTHOR> http://tanayj.com/web-design-and-consulting-business-part-2/

<comment><USER2> This is more of a startup response than web design specifically. I'm 17, been working on projects for a few years now. The barrier to entry on the internet is low these days, which is great as it means anyone. Not just teens but maybe someone who wouldn't usually be able to start this kind of thing is able to do so.

Sites like Forrst, Dribble and TinyProj (newcomer) are pushing this growth and building a portfolio/experience based credibility system whereas designers are evaluated by their design work, not their degree.

</comment><comment><USER3> While social media can be a good catalyst for getting recommendations and getting your name out there, word of mouth recommendations are not to be underestimated for local business. I've started a web development business when I was 15, so it's cool to see others doing the same.

</comment><comment><USER4> I started when I was 16 as well and word of mouth is one of the most powerful ways that I got clients. I started off doing one of dads companies the others heard about it and I did them to. It sort of snowballed from there. I think it was just the fact that I was 16 and was doing better work than competitors in the market.

One of the questions I have for the author is how did you manage your time around school, friends etc? I outsourced most of the work and did the crucial stuff myself but it was still a burden sometimes.</comment>


Public XMPP Server Directory - <AUTHOR> https://xmpp.net/directory.php <comment><USER2> I've been running my own XMPP server for years, with federation enabled. A few years ago, it seemed like the logical successor to AIM and MSN and all those other walled garden IM systems. And how easy! My XMPP "name" was the same as my email address. One less thing to put on my business card.

But since then, I have realised a big problem with it - no-one uses it! Today I communicate with the world by iMessage, SMS, Twitter, and email. "Instant messaging" just seems to have died as a concept entirely, replaced by yet more walled gardens like Snapchat.

My XMPP server is being turned off for good, next week.

<comment><USER3> I've also been running my own federated XMPP server for a few years. To my dismay I discovered about a month ago, that a Gmail user on the "new Hangouts UI" never saw me as online. I could send them messages but they just got dumped into an "email"-looking message within Gmail, which I don't think even registered as unread. You'd have to go looking to find it at all. I think they could send me messages, but why would they if I never appear to be online? If the Gmail user reverted to the "old chat", things seemed to work as expected. They're nice enough to let you toggle between them for now, but my friend said only the new interface allows free SMSing or something.

Don't take my word too heavily, as this was just what I saw in a quick test with one Gmail account of my own. But I decided if Google is going to basically hellban me, and since almost all of my contacts are on Gmail anyway, I'd just transition to a Gmail account to talk to them. I only have one contact that's not on Gmail, and it's an acquaintance I'll probably not talk to again. Maybe I'll keep the server running just for decentralized geek-cred. At least Google is nice enough to let me use a desktop client, for now.

I also noticed Google doesn't seem to support encryption on federated chats. I guess the proper solution is something like OTR anyway, but that was disappointing to see.

<comment><USER4> Why no one created a transport for hangouts? This is how XMPP conquered msn, aol, yim and others, and could once again become popular.

Is communication with hangouts much harder?

<comment><USER5> Hard isn't the right word - it seems to not currently be officially possible. There is no documented interface for communication with users on Hangouts. Not even XMPP is supposed to work, though I and some other users are still able to use it.

The only API available is for building applications that interact with the existing Hangouts UI.

<comment><USER6> AIM (OSCAR) was never officially possible either. Reverse engineering has a long history in IM clients.

</comment></comment></comment></comment></comment><comment><USER7> XMPP is dead. The only people you can reach over XMPP are technically minded people and you can already reach more of them via IRC. XMPP didn't manage to spread. It's over.

<comment><USER8> I think you may feel this as you don't see all the organisations that use XMPP internally for their office communications and video conferencing. We use it internally, we have rooms for each department and some group rooms that are very active - when a new person starts with us they often comment how good it is to have a functional internal chat system. We have OTR encryption for confidential exchanges such as providing users with passwords and developers with SQL from databases etc...

<comment><USER9> Would you mind sharing which XMPP client do you use?

<comment><USER10> Yeah we use Adium which we've found to be fantastic especially when paired with the OTR plugin.

<comment><USER9> Thanks!

</comment></comment></comment></comment></comment><comment><USER11> Plenty of places use XMPP, they just end up running it over some proprietary transport protocol so it doesn't interoperate with anything else. Federated XMPP on the other hand is dead with its eulogy delivered by Google.

</comment><comment><USER12> Situation with instant messaging is still a huge mess. Especially with Google deserting XMPP efforts. I lost majority of my contacts after this Hangouts fiasco. Everyone should thank Eric Schmidt for this.</comment>