An Epidemic of Loneliness in America? - <AUTHOR> https://www.nytimes.com/2018/12/08/opinion/letters/loneliness-epidemic.html <comment><USER2> Here's an interesting article: "Why is it hard to make friends over 30?" [1]

"As external conditions change, it becomes tougher to meet the three conditions that sociologists have considered crucial to making close friends: proximity; repeated, unplanned interactions; and a setting that encourages people to let their guard down and confide in each other."

[1] [https://www.nytimes.com/2012/07/15/fashion/the-challenge- of-...](https://www.nytimes.com/2012/07/15/fashion/the-challenge-of-making- friends-as-an-adult.html?fbclid=IwAR2OOyMBHuRYlmoodgUP4IytWePx1Ky6SZag- zfxW3F9mk72S3_wLzH8P-g)

<comment><USER3> I make new friends of all ages all the time. At church.

It does provide "proximity; repeated, unplanned interactions; and a setting that encourages people to let their guard down and confide in each other". And not by coincidence. One of the major goals of church is to help people form healthy and significant relationships (that is, friendships).

<comment><USER4> Yeah, as an atheist, the weekly unforced meetup you guys have is the one thing I do envy.

I wonder how many of the churchgoers secretly have no real faith and are only there for the company...

<comment><USER5> That's what congregations like the Unitarians are like. I go once a month to the local one, and I've been an atheist my entire life. I'd guess about half the people that there are, too, but no one really seems to mind one way or the other, as long as you're friendly and civil to everyone else. Mostly it's a discussion group, and I quite enjoy it.

<comment><USER6> The hard thing about (some) interest groups is that sometimes they have people "way out there" in political opinions, "different" view of the world (think the views that include the usage of aluminium headwear) or just maladjusted to normal living.

<comment><USER7> Why is this so hard, though? It might be a little tedious to sit through their ramblings, but it seems to me a sign of the times that this would be considered hard to do.

<comment><USER6> Depending on the level, it is really detrimental to the experience.

I mean I can take your average left/right winger rambling on, but depending on how far and away it goes it's really a no for me.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> > Loneliness, however, is a symptom of large changes in society, many caused > by policies that Republicans have pursued over decades.

What neurosis is one suffering that loneliness has to be pinned on the political party one dislikes? I don't understand how Americans can wade through media so thick with political bias. It's exhausting and increasingly permeates everything.

And if Republicans are to blame, as the author insists, then so too are Democratic policies of changing demographics at such a pace as to erode social trust. Not to mention the constant assault for merely _belonging_ to a majority demographic. Tell people in despair that they're too "privileged" to opine, on the one hand, and that their days are numbered, on the other, and they begin to feel strangers in a strange land.

<comment><USER9> The bias is not in the media in this case. These are letters to the editor.

<comment><USER10> The NYT still published it, which i think counts as "media." Even if they don't necessarily agree it's an implicit endorsement that this is a well reasonable argument.

</comment></comment></comment><comment><USER11> I had no desire to make friends until college. I was so content with just hanging out by myself that I didn't even realize that other people were making friends. When I got to college I finally realized that I was so different from everyone else.

I basically had to start from zero social skills and work my way up which is/was extremely painful.

Can anyone relate? I think it has something to do with my parents because they aren't social at all.

<comment><USER12> My experience is that having friends to hang out with was "easy" through high school, because you're basically "stuck" around a fairly small number of peers in your neighborhood and school. In college there was still some of that, with dorm mates and classmates in your major. After that, it's really only coworkers that you are "automatically" going to spend a lot of time with, and it becomes much more important to have the social skills to actively find friends. As everyone says, hobbies and social groups (like religions and clubs) are probably the best way to do this.

<comment><USER13> "Boring time" or dedicated idleness is excellent for socialization, which is what I think creates the best environment for creating friendships.

<comment><USER12> That's precisely my experience. To be honest, after college I've found that hobbies are not that great for finding very close friends. Shared interests are certainly great for meeting people, but just because you occasionally make pottery or hike with someone doesn't mean you'll connect on a deep level.

<comment><USER14> This is an insightful observation that I feel is worth unpacking further. I've had similar experience when attending interest-based meetups, which I thought would be an ideal place to make friends (which I've never been any good at), but I found that was not the case at all.

Thinking back, I recall feeling uncomfortable commenting on or diverting the conversation towards anything that was unrelated to the prescribed topic of the meetup. It felt rude to divert time away from the topic that everyone there had specifically chosen to allocate their time to, otherwise they wouldn't be there in the first place.

With places like school, even college, there's still a general feeling that you have to be there, and so diversions from the topic at hand are more welcome.

To put it another way, interest-based groups seem to be about the interest first and the people second. The people there are compartmentalized away as being related to the specific topic, and not generalized friends. In this way the group lacks that crucial idleness factor that others here have mentioned, since everyone is there with a purpose to fulfill that they don't want to distract others from.

<comment><USER12> That's precisely my experience. I have "hiking buddies," but they remain just that unless I make an effort to connect more (which I'm generally not great at). It's not that we never talk about things other than hiking—we certainly do, but the fact that the group is assembled for the purpose of the particular outdoor adventure still prevents there from being much organic significant friendship building.

It probably doesn't help that a lot of my hiking and camping trips are a few hours' drive away from home and thus tend to draw people who live fairly far away from me.

<comment> et-al > _the fact that the group is assembled for the purpose of the particular > outdoor adventure still prevents there from being much organic significant > friendship building_

I'm of the belief that you don't "create" close friends as much as you "discover" them. So the purpose of going to meetups, events, parties, etc. is to just cast a wider net.

Sure by socializing more you become a better conversationalist and can carry them on better with strangers, but at the core, close friends are like significant others--special just they way they are.

</comment></comment></comment></comment></comment></comment></comment><comment><USER15> I have a hard time finding people who like to work on old cars. I joined a mopar club for a while, but all they did is talk about meeting minutes and the budget. Never going over to Bob's house and getting his wreck back on the road. I run into people now and then who have a classic in their garage, but they never seem interested in having a group of people helping out. None of my friends in the tech business have the remotest motorhead tendencies. Nobody in college did, either.

I had a group of friends who did this in high school, and have a lot of great memories of it.

<comment><USER16> Yea, I've recently gotten into working on cars for fun. I've gotten 2 cars I bought at auction from no start/no crank to running in the past few months..

But no one around me is interested in tinkering. Hopefully I can find someone to help me with an engine rebuild (my next major learning goal). Then messing with turbos.

People in tech are especially averse it seems to me to wanting to do manual labor type things like this.

<comment><USER15> > messing with turbos

Haha, ain't nothing like the sound of a belt-driven supercharger. I didn't stick one in the dodge because:

1\. it would stick up through the hood, messing up my all-go-no-show plan

2\. it would wind up the body of the car into a pretzel if I didn't add a ton of stiffening

3\. without one it dyno'd at 400hp which turned out to be enough to scare the crap out of me

<comment><USER16> 400, nice.

One of the things I'm worried about is all the heat they generate. I was watching a guy on youtube and he had to build a ridiculous heat shield to keep it from melting stuff around his turbo. Seems fun though!

I just want to add a blow off valve and get that sound.

I find myself watching these videos a lot. [https://www.youtube.com/watch?v=Gn- AoxKQB90&t=11s](https://www.youtube.com/watch?v=Gn-AoxKQB90&t=11s)

I don't even like driving fast, I drive like a grandma haha

</comment></comment></comment></comment><comment><USER17> Past discussion of the Op-Ed this is a response of: [https://news.ycombinator.com/item?id=18521499](https://news.ycombinator.com/item?id=18521499)

</comment><comment><USER18> I've been seeing this topic in the media for quite a few years now, and I just wonder why there doesn't seem to have any solution either from the private or public sectors. Is it because loneliness is not huge enough, or it's like poverty that has to be dealt by yourself? Those social media and apps trying to help just make loneliness and anxiety worse as many other articles suggest.

<comment><USER19> In Japan there are government programs set up to get single people together. Some cities reserve entire bars or areas for singles only. There are government run speed dating services as well: [https://www.businessinsider.com/japanese-government- dating-s...](https://www.businessinsider.com/japanese-government-dating- services-2016-10)

<comment><USER18> I don't think there's anything in the US for the reasons I mentioned.

</comment></comment></comment><comment><USER20> I enjoyed the women from Chicago's point. That having that old-time gym feeling is not something that's the best for most people. It's one of those silly ideas that tries to sum up a big problem and give it a small fix. I remember a friend showed me something their aunt or something posted about dirt roads. It was a similar idea to the gym thing. It's absurd.

</comment><comment><USER21> Yogic view of loneliness (and ways to overcome it) is quite different from our contemporary ideas. [http://omswami.com/2018/10/loneliness.html](http://omswami.com/2018/10/loneliness.html)

<comment><USER22> Interesting, thanks. I will add this to my own article on this (featured already on HN: [https://news.ycombinator.com/item?id=17794060](https://news.ycombinator.com/item?id=17794060)) - Looks like loneliness (in the sense of "being alone") is more or less inescapable, the trick is to transform it in Solitude, in the sense of "being content even when alone".

</comment></comment><comment><USER23> I don't think it'll get better any time soon.

When I was a teenager, I couldn't wait to start driving. That led to hanging out at the town bowling center with a group of like-minded friends.

My kids mostly talk to their friends online. None of them seem to have the same burning desire to drive places-- they like to get together, but they're also fine communicating on the phone. It doesn't seem as closely connected.

<comment><USER24> When I was a teenager, I had friends who were pretty much accidents of geography and school districting. This is not to say that they weren't real friends, but there was nothing really fundamentally holding us together other than being kids in the same place at the same time. I remember feeling lonely a lot.

After touring a dozen colleges, I picked my eventual alma mater because I met a bunch of computer science students who I recognized as _my tribe_. It was like an epiphany. I'm still close with many friends from this era (28 years ago), even as I've moved and expanded/changed my tribe. I haven't felt truly lonely since high school.

When you're young you're on fixed rails without a lot of control. The internet makes it possible to find people you really connect with, even if you don't see them in person all the time. Don't prejudge the level of connection.

The only friend from high school that I still keep in regular touch with is someone I met BBSing (ahh, the 80s).

<comment><USER25> > The internet makes it possible to find people you really connect with

How?

</comment></comment></comment><comment><USER26> I had trouble making friends untill i came across a movie called "The Social Network".

Before, i was like Zuck (fb founder, the one who blogged about his girlfriend) from the movie, very annoying but always spewing ultimate truth regardless of whether it hurts people or not.

Now i act like Sean Parker (Napster founder, the one who brought Peter Theil on board as an investor) from the movie, either people ignore me or become my friend.

Those of you who go blank at new people. I suggest you pick a character and play it with all honesty, if nothing atleast it will be entertaining.

Are there other movies which teach you how to make friends?

<comment><USER27> Don't you think this kind of defeats the propose of having a friend ? Sure, you don't want to be an asshole like social network zuck, but that doesnt mean one should suppress themselves just to please others.

I have thought of friendship as a distinctly tiered system. I very carefully reveal parts of me to a lower tier of friends (mostly acquaintances), and use those reactions to gauge of I want to reveal more of myself to them.

Trust and exposing vulnerability are IMO at the Crux of what friendship is. There is a certain irrationality and lack of equal exchange that goes into being a friend. Like sometimes inconveniencing yourself to help a friend, without any clear short term reward in sight.

If I had to always act like someone else in front of my friends, then I would say I don't have friends at all.

</comment></comment><comment><USER28> For me, the most interesting thing about all these loneliness articles is how often they make it to HN's first page. It says more about HN/tech community then America as a whole.

<comment><USER29> Maybe it has something to do with the role technology plays in this issue.

<comment><USER3> I don't know. We can blame technology. Or we can actually go out and join something.

Maybe serve at a local food bank. Worst case, you're still lonely but some hungry people get fed.

Incidentally, how are you going to find a good food bank to help out at? I bet it looks like "technology": search engines, smart phone apps, web pages, email, digital calendars, navigation instructions, and signup forms.

<comment><USER30> Of course this is great advice for an individual. It's always possible to effect change at the margins. But this sort of advice at a population-level feels meaningless. It's entirely fair to search for root causes to large-scale dysfunction. Otherwise the trend will just grow worse

<comment><USER31> I like to point out that the English language has a beautiful way to describe it by having two distinct words ("anyone", "everyone") instead of just one, unlike my native German ("jeder"):

If something somebody proposes in response to a population-wide problem works for _anyone_ it should also be tested if it works for _everyone_. A lot of "how to get ahead and gain wealth" suggestions come to mind too that fail the second test.

</comment></comment></comment></comment></comment><comment><USER32> It's going to become worse as more and more work becomes remote only

<comment><USER33> And less physical visits are required for daily life

</comment></comment><comment><USER9> Offtopic, I followed the link in the last letter to that Senate committee and got:

Sorry, a potential security risk was detected in your submitted request. The Webmaster has been alerted.

Then I tried [https://www.senate.gov/](https://www.senate.gov/) and got the same thing. Is there a reason for this? I'm in the UK browsing on Firefox.

<comment><USER34> The senate site has had SSL issues for me for years. It's very weird. If you go to: [http://www.senate.gov/senators/leadership.htm](http://www.senate.gov/senators/leadership.htm) and try SSL, it redirects to http. Strange. Like it's not set up recursively or something or that directory has it's own .htaccess or w/e that doesn't use SSL?

<comment><USER9> You literally mean the website of the United States senate _just doesn 't work_, and hasn't for years? I mean, I absolutely cannot find a way to access that site without getting the same "unauthorized" message.

This can't be true...

can it?

</comment></comment></comment><comment><USER35> If USA, with its outgoing culture has a loneliness epidemic, then Europe (at least the western part) is already long gone.

<comment><USER36> Those are two different things. Loneliness is more about important relationships with people who matter to you and you matter to them. You don't have to be outgoing and chat with everybody to have that. Outgoing people easy to chat with can still be lonely, deep friendship is not the same as chatting briefly in a bus.

</comment></comment><comment><USER37> Submissions about loneliness have company at least:

[https://hn.algolia.com/?query=Loneliness%20points%3E10&sort=...](https://hn.algolia.com/?query=Loneliness%20points%3E10&sort=byDate&dateRange=all&type=story&storyText=false&prefix&page=0)

</comment><comment><USER38> No surprise really. More and more is personalized and self-centric, which is replacing the shared experience. Of cource more and more people are feeling they don't belong, there's less and less to belong to.

</comment><comment><USER39> Not sure what's the point of these letters, reminds me of the comments section in the NYT which I find politically overcharged and offensive. It was an article that resonated with many people. Does it make people feel better to ridicule loneliness. You can brush off poverty but it still there...

<comment><USER40> Letters to the editor are internet comments before internet comments were a thing. The intent was to display variety of opinions relating to a topic so you weren't beholden to just the newspaper's stance. Not totally sure why they continue to publish letters, I suppose they're usually higher quality than internet comments because they require more effort.

<comment><USER3> They're higher quality because they're curated.

It's possible that the average submission is better than the average internet comment due to the level of effort required. Or perhaps some of it is due to the fact that the printed letters are archived for posterity.

But regardless, the average letter is not printed. There is only room for a select few.

</comment></comment></comment><comment><USER41> I know it's opinion, but it's hard to take the NYT seriously when the writers always blame Republicans where politics is almost completely irrelevant.

<comment><USER42> Maybe. A friend who I spoke to for the first time in a long time made a pretty good point to me the other day. Neither of us are liberals, btw. Both of us are into so many of the same things. We just have different careers, and we are approximately equally jealous of eachother's careers.

We talked about what we have been doing while feeling lonely and we each had different stories of why we were not able to spend time around people we wanted to be around. He couldn't afford to live in the city anymore and had to move to the Midwest where now he makes a wage that will probably never allow him to move back. I, on the other hand, can never leave the city because there are no jobs for me elsewhere and I would not be able to come back. Neither of us are comfortable investing in homes because we both feel unhappy where we are.

Job wise, we both have problems with our companies we work for, but like our coworkers. We feel very distant from what we are doing and recognize that the inability to change careers or better our situations gives us a lack of hope. His situation is slightly different because he is in a higher management position, but neither of us feel we can talk to anybody nearby about these things or we will be outed as not being this imaginary committed perfectly obsessed careerist type.

Basically, everything we have depends on our entire stories, everything we have ever done. We don't have the privacy to have a multifaceted life without feeling like some fraud. He relates this to our society being so obsessed with individuals instead of letting us just be ourselves, separate from our jobs and our income and wellbeing. We don't have the option of dreaming because the risk is just too great. We have seen our friends lose everything by taking risks.

Ultimately, I have to agree. We have let this obsession of making our personalities our lives get the best of both. It's the core idea behind individualism, which we are taught is a great thing and I always believed it. I still do in most cases, but now i feel stuck inside my individual self, lonely like alll the other individuals.

We are so obsessed with ourselves as individuals, we lose sight of ourselves as parts of greater wholes, like families and neighborhoods.

I am not sure I can separate this from politics.

<comment><USER43> > We don't have the privacy to have a multifaceted life without feeling like > some fraud.

You hint at the answer, that aside from financial obligations nothing stands in the way of finding who you really are but yourself. Once a person finds confidence in expressing their true desires and aspirations, others take notice and start valuing and admiring the person, like in everything else it's a herd/popular mentality where anyone will appreciate it so long as others do but specially so long as the subject does. The road is of course winding tortuous with self-doubt, (more) loneliness as everyone else is just trying to conform and flak from society until the breakthrough years. But being a trendsetter is not much more than finding what are your particular trends for this existence, so to say. Only I can hold myself back emotionally, ultimately. Though yes, maybe attempts fail with nothing to show for it (even though wisdom may be worth more than a big salary as one ages) but I still think it's worth trying, really putting your heart into those attempts. The focus on people being specialists and not generalists (specially in more than one area of knowledge) makes the situation worse for sure.

<comment><USER42> This suggests that I want more money or consumption, and that's wrong. Nor do I want popularity. Quite the opposite. Popularity and attention are really the main problem, if anything. Who we are is defined by what we have done more than any time in history. Every day that passes is further locking ourselves into our cages of individuality. How can popularity and followers, like you mention, be our only hope for change when they are also the ties that are trapping us to our current trajectories?

Specialist vs. generalist gets more at the problem I think we were talking about, but even the fact that it is such a debated concept seems off. Something seems wrong on a bigger level. Sometimes you need a specialist and sometimes a generalist, and we are highly adaptable creatures. It is strange this thing leads to so much anxiety. I think people are just worrying tremendously over _which one are they_ to an unhealthy degree, and because they are scared to death of failure. Who can blame them?

I'm sure some love popularity and never want to do anything else with their life, but that is an unrealistic bar we have created for everybody in our society. So I guess that seems like a thing to look at.

</comment></comment></comment></comment><comment><USER44> I am not an american. But i have no one in my life. And unlike that 16 years old who feels lonely although she/he is in fact "surrounded by nice people", i am not surrounded by anyone. The funny thing is half an hour ago i wrote about what Ive been already knowing for a good decade: people are small coin. Bargaining chip. They come and go. What a coincidence. I decided to reiterate that because some situation reminded me of it, but I dont talk about it in absolutely most cases. I genuinely think that communication is mostly woethless and not to be spent time on. Had friends, had online friends, many of both types, had more than 200 skype contacts and got rid of them all.

Do I regret? It would be a lie to say yes. I almost dont reject any more connections since 2016, I hardly have any. I saved all the messages Ive been writing to anyone during the last 2 years. Its refresging to read them and see how much time you invested in taljing to someone who you have hard time remembering at all. I think Internet opened my eyes to this fact. Communication is worthless.

You know one other thing Ive benn thinking about last week? AVOID humans. I didnt write that anywhere back then. The essence of the idea is that networking is worthless. Waste of time. Talking to machines may spread your words 100x more than talking to humans. Just make a bot taljing on your behalf.

You may say that I will become self absorbed and self righteous for nothing because no one can correct me. Thats untrue. Occasionaly I can write like i do now, in a completely alien space. If i feel like it, i will return for answers and critique. But I dont want that, I will not return.

I read a lot of what others write and post and make and that keeps my thought going and helps me prevent it from becoming stale. The thing is, they are not writing or posting that TO me. But still I know what they think.

Honestly, I hugely dislike real life talking anymore. What a waste of everything. I wont lie, I can interrupt anyone who approaches me with a talk and say directly "I am not interested". Or "Dont talk to me". I dont care how they feel. Remember, they all are a passing substance, an ephemera, a hallucination. Dont get me wrong, they are real humans. But theres no need in caring about what they feel. There are too many humans. Today these, tomorrow others. Caring for what they think or what they want from you when you dont want anything from them is a waste of capacity.

You know whats funny. When you need something from them in return, you just come to them and ask. That easy. Funny bit is they, been rejected, still often do what you ask for. They are afraid to break the thousand-year-old lie saying "what you give is what you get". No such thing.

<comment><USER12> I have the tendencies to feel and act similar to what you describe, but I think these tendencies can often be harmful and I often try to resist some of them. Feel free to contact me if you ever want to talk about this and other randomness with a kindred spirit. My email is in my HN profile and my Twitter is the same as my HN username.

<comment><USER45> Heads up, your HN profile is blank.

<comment><USER12> Thanks! I don't know why I thought email addresses on HN were public for a minute there. Fixed!

</comment></comment></comment></comment><comment><USER46> I've said it before and I'll say it again: loneliness isn't the problem; it's our physical dependence on non-loneliness that is the problem.

</comment><comment><USER47> I think the funny honey badger video is useful in becoming less of a shut in: [https://m.youtube.com/watch?v=4r7wHMg5Yjg](https://m.youtube.com/watch?v=4r7wHMg5Yjg)

That, and remembering that life eventually ends: you literally have nothing to lose unless you are doing something totally reckless and/or against the law.

You will find that as you become more like the honey badger, people will find that refreshing and seek you out. Because we all have the same problems and want to be honey badgers internally.</comment>


Vringo Loses Appeals Court Ruling in Google Patent Case - <AUTHOR> http://www.businessweek.com/news/2014-08-15/vringo-loses-appeals-court-ruling-in-google-patent-case

<comment><AUTHOR> "Vringo fell 73 percent to 86 cents at 12:43 p.m. in New York trading after dropping as low as 67 cents."

Wow!</comment>


Why Programming Languages? - <AUTHOR> http://lambda-the-ultimate.org/node/4303 <comment><USER2> Link to the actual essay: <http://soft.vub.ac.be/~tvcutsem/whypls.html>

The guidelines specifically ask that you link to the content, and not a shell or shim.

And the original has already been posted: <http://news.ycombinator.com/item?id=2708173>

<comment><AUTHOR> normally I'd agree but LtU is an exception: <http://news.ycombinator.com/item?id=975116></comment></comment>


Trip.com founder gives advice on fundraising - <AUTHOR> https://www.entrepreneur.com/tradejournals/article/82755250.html <comment><USER2> Its good, but article is from 2002. A lot of it may still hold true, however, would like an updated one with the funding under current economic weather.</comment>


Exceptions are monadic - <AUTHOR> http://blogs.atlassian.com/developer/2011/06/exceptions_are_monadic.html

<comment><USER2> This is kind of interesting for collapsing two solutions to the error- signaling problem that are usually seen as alternatives. Or at least, I think of them as alternatives, and they're often presented that way.

The classic error-signaling approach is in-band signaling through 'error' return values, but that has the problem of any in-band-signaling solution, clash between the control and data values. Two possible solutions are: 1) in- band signaling with a more complex (data,control) encoding scheme, in this case every function returning (value,error-code); or 2) out-of-band signaling. The simplest example of #2 is C's _errno_ facility, with one global out-of- band error status system; exceptions can be taken as a more sophisticated improvement that implements local context, along with infrastructure to make it easy to specify error-handling policies.

But it's interesting to think of exceptions as syntactic sugar on an in-band- signaling solution, rather than out-of-band signaling at all (at least conceptually), with Monads wrapping the code to check/propagate the error signal.

</comment><comment><USER3> How does this work for constructors? I have the habit of guarding against poor input. If a value is null, I'll throw a null pointer exception or an illegal argument exception. While I recognize that both of these unchecked exceptions, I could just as easily throw a ModelArgumentException that extends from Exception.

The reason I throw such exceptions is that I don't want my object to be constructed with invalid state (this is especially true when my object is immutable, but has actions). Since I cannot return an Either, I believe that I must either A) throw an exception or B) allow invalid state. I don't like either solution.

<comment> T-R Perhaps you could return an Either from the constructor, and then either have a special construct to handle Left:

        myObj = new Object() :{ cleanup() }

or require dummy objects in case of failure:

        myObj = new Object() ?? new DummyObject()

Admittedly less than optimal. The more I think about it, the more I think it's a bad idea... The first still means that you need a separate catch block for each statement. The second is essentially swallowing the exception.

Aside from that, using Either in the return kills your ability to do method chaining, unless you build method chaining into an operator and have it propagate the Either (similar to bind).

<comment><USER4> I think I am missing something: is there any commonly used statically typed OO language that allows you to return a different type from the constructor?

AFAIR even in scala you either use a factory method in a companion object or use "real" constructors.

<comment><USER5> If Objective-C fits your definition of statically typed OO language, then I believe you can return whatever you want in the -(id)init constructor.

The common idiom for implementing constructors in subclasses is to do "self = [super init]; if (self) { ... subclass constructor impl ... }; return self".

Setting self to nil is a common use-case.

<comment><USER6> Objective-C isn't a statically typed language, it is a dynamically typed one with static type annotations to make the compiler check common errors for you.

</comment></comment></comment></comment></comment><comment> T-R If you were to implement this in a procedural language with side effects, what would you do about "finally"?

<comment><USER7> It would be a little more cumbersome to write, but the same effect can be achieved easily:

      A a = new A();
      try {
          B(a);
          return C(a);
      } finally {
          a.cleanup();
      }

Transforms into:

      Either<Exception, Result> ret;

      A a = new A();

      ret = B(a);
      if (ret.isRight()) ret = C(a);

      a.cleanup();
      return ret;

Maybe someone can rewrite this even more cleanly. I can think of an easy-to- generate improvement containing a GOTO.

<comment> T-R Forgive my ignorance, but what about this method saves us from having to use continuations to unwind/rewind the stack, as Exceptions do?

<comment><USER8> You can implement "finally" as a higher order function in Haskell:

      finally :: Either err a -> IO () -> (a -> IO (Either err b)) -> IO (Either err b)
      finally (Left err) cleanup  _k = cleanup >> return (Left err)
      finally (Right x)  _cleanup k  = k x

You avoid having to unwind the stack because the user of finally has to manually convert into CPS in order to supply the higher order argument of type "a -> IO (Either err b)"

</comment></comment></comment></comment><comment><USER9> Author here: thanks for submitting this!

</comment><comment><USER10> the simple use of "Either" does not instantly qualify something as "monadic"

you know what else is monadic? NULL pointers. oh wait, you know what else is monadic? unix pipes. you know what else is monadic? CPP. really old shit.

just because the word monad isn't everyday english doesn't make it a cool or even an interesting concept. it's just an awkward abstraction for something everyone already intuitively understands. monads were invented for the sole purpose of giving haskell a programmable model for IO, that's _it_. it's just a concept that's only useful for haskell programming, everything else _already_ has an intuitive programming model for IO.

it's like building up integers to be this crazy complicated concept and then saying Exceptions are integers. awesome, good job, you've just found an equivalence, here's a pat on the back (psst <http://en.wikipedia.org/wiki/Church_encoding>). i guess i should expect these kinds of vacuous observations given all the BufferedManagerFactorySingleton crap code java slaves write.

you know what else is monadic? state machines. you know what else is monadic? imperative programming. wait wait wait! you know what else is monadic? JAVA ITSELF _head explodes_

<comment><USER11> I'm sorry but almost every sentence in your comment is wrong:

> the simple use of "Either" does not instantly qualify something as "monadic"

The composition of calls to functions that return Either as to implement exceptions is exactly Monadic.

> you know what else is monadic? NULL pointers. oh wait, you know what else is > monadic? unix pipes. you know what else is monadic? CPP. really old shit.

Only if very loosely interpreted. NULL pointers are not monadic. Maybe types are monadic (and also considered an "Exception monad").

Unix pipes are not monadic in a meaningful way (they don't support the monadic operations), but approximations/implementations of them can be.

In what sense is the C preprocessor monadic?

> just because the word monad isn't everyday english doesn't make it a cool or > even an interesting concept. it's just an awkward abstraction for something > everyone already intuitively understands.

Cool and interesting are subjective concepts. I find them pretty cool, in the sense of capturing one of the most general patterns in code I've ever seen captured.

In what sense are monads an "awkward" abstraction?

> monads were invented for the sole purpose of giving haskell a programmable > model for IO, that's it. it's just a concept that's only useful for haskell > programming, everything else already has an intuitive programming model for > IO.

That's completely false. Monads don't have anything to do with IO, it's just a particular instance of them. I can make a list of Bananas, does a list have anything to do with bananas?

Monads are immensely useful for many things. When using Haskell, I can use a very large set of combinators that work with any monad, to compose Parsers, functions, Maybe values, and various other types.

This means I can re-use a lot more code and vocabulary. When I learn an API, I don't have to read the documentation and types of 30 specific combinators. Instead, the library just says: "This type has a monad instance" -- and I can use my existing knowledge to work with it.

> it's like building up integers to be this crazy complicated concept and then > saying Exceptions are integers. awesome, good job, you've just found an > equivalence, here's a pat on the back

No -- the semantics of statement composition in the face of exceptions is the only valid instance of Monad for Either values that encode them. It's not like you have to go very far to find this equivalence. Integers are not usefully equivalent to exceptions.

> i guess i should expect these kinds of vacuous observations given all the > BufferedManagerFactorySingleton crap code java slaves write.

This observation is actually one of the first uses of monads in the Haskell crowd, not in the Java crowd.

> you know what else is monadic? state machines. you know what else is > monadic? imperative programming. wait wait wait! you know what else is > monadic? JAVA ITSELF head explodes

I think you've completely missed the point of Monads.

Take a look at:

[http://haskell.org/ghc/docs/latest/html/libraries/base/Contr...](http://haskell.org/ghc/docs/latest/html/libraries/base/Control- Monad.html)

I can use any of the combinators in there with any monad instance. The fact I can use them with Either values makes Either value composition behave exactly like exceptions.

This is not a "neat observation" -- it is something people routinely use, plentifully.

<comment><USER10> look dude, you're right. monads are freaking awesome. it's because a lot of things in CS can be shown to "be monads", it's called turing completeness. <http://en.wikipedia.org/wiki/Turing_completeness>

unix pipes as monads: <http://okmij.org/ftp/Computation/monadic-shell.html>

cpp as a monad: [http://conal.net/blog/posts/the-c-language-is-purely- functio...](http://conal.net/blog/posts/the-c-language-is-purely-functional/)

monads invented for IO / functional impurity: [http://homepages.inf.ed.ac.uk/wadler/papers/monads/monads.ps...](http://homepages.inf.ed.ac.uk/wadler/papers/monads/monads.ps.gz)

"This is not a "neat observation" -- it is something people routinely use, plentifully." ...in haskell

and who are you to say that integers are not usefully equivalent to exceptions??? have you ever heard of _errno_? i don't have exceptions _or_ monads in bf, just pointers. i need an equivalence so that i can feel smarter when i code bf. and if you dare say that bf isn't a useful programming language then you better stop coding in java...

<comment><USER11> Monads and Turing Completeness have very little to do with each other.

Unix pipes as monads is trying to create an analogy (an imprecise one) between unix pipe operations and monadic operations. The monadic laws do not hold with unix pipes, so the analogy is pretty weak.

You might want to re-read Conal's "the c language is purely functional" because it makes no claim about cpp being a monad, at all.

Let's look at the monad instances/examples listed by the Wadler paper, in order:

* The identity monad

* The strictness monad

* The state monad

* Filters (MonadZero)

* Monad Morphisms

Under "More Monads":

* Parsers

* Exceptions

* __Input and Output __

Are you trying to use this paper to establish that monads were invented exclusively for I/O and now perverted to describe exceptions? Note how exceptions are listed as an example use of monads _before_ I/O.

> and who are you to say that integers are not usefully equivalent to > exceptions??? have you ever heard of errno?

errno is not an exception mechanism. You have to indicate, in-band, that there's an error result, then check for that result, and then use errno as well, to implement exceptions.

Whereas the Either monad itself implements both the in-band encoding of errors, and the caller's error-check and propagation.</comment></comment></comment></comment>


Do You Have This Wicked Urge To Go Shoot Many People? I Have Some Advice. - <AUTHOR> http://mikecanex.wordpress.com/2012/07/20/do-you-have-this-wicked-urge-to-go-shoot-many-people-i-have-some-advice-for-you/

<comment><USER2> Good advice.

Except for the bit at the end where he advises you to make a false police report.

Check with local police, as they may organise free destruction of unwanted weapons.</comment>


Amazon S3 - Cross Origin Resource Sharing Support - <AUTHOR> http://aws.typepad.com/aws/2012/08/amazon-s3-cross-origin-resource-sharing.html

<comment><USER2> Hah, about time.

About 6 months ago I rewrote the Let's Crate (<https://letscrate.com>) backend to work exclusively with Amazon S3 Direct POST uploads. Getting upload progress to work with that was a royal PITA, but in the end I got it working. If you're interested in how, perhaps that's a good subject for a far more lengthy post on how to write extremely convoluted Javascript. I gave myself a pat on the back (no flash, yay!) and vowed to never do anything like that again.

As requested: Basically, the gist is that you accept the upload via a local JS file that acts as a conduit. You then turn the dropped / selected file object into a blob object and transfer that blob JS file that lives on S3 (using postMessage and a hidden iframe). That JS file on S3 is what actually performs the upload and tracks the upload progress. On progress events, I send back postMessage payloads to the local JS file to show updates to the user.

Convoluted, but it works. :)

<comment><USER3> I'd really like to hear about how you did this. Any chance of open sourcing it?

<comment><USER2> Sure! Although now that this is supported natively it seems like more of an academic exercise than anything else.

If any others have interest (reply to this comment if you do), I can turn it into a library and put it on Github.

<comment><USER4> +1!

</comment></comment></comment></comment><comment><USER5> Yes! Fonts in Firefox will work now!

</comment><comment><USER6> It's been 3.5 long years since first feature request, but thank you!

</comment><comment><USER7> Finally, I won't have to proxy s3 requests through my own nginxes.

I've pled for this feature in the AWS forum, over their commercial support (which I bought just to bug them about this), and to werner vogels directly.

Thanks jeffbarr!

<comment><AUTHOR> You are very welcome!

<comment><USER8> Thank you so much man, you saved me and my team a bunch of development next week. ABSOLUTELY PERFECT TIMING!! We used the iframe trick, but it sucked. This is MUCH, MUCH, MUCH better, thank you!!!!

</comment></comment></comment><comment><USER9> OK, now how about CloudFront?

<comment><AUTHOR> I am researching that with the team as we speak. Need to make sure that the right headers are passed back from CloudFront to the S3 origin.

<comment><USER10> it works

<comment><USER11> rather beautifully, might i add.

<comment><USER12> How did you get it to work? I've been wracking my brain over this but can't configure it correctly [http://stackoverflow.com/questions/12358173/correct-s3-cloud...](http://stackoverflow.com/questions/12358173/correct-s3-cloudfront- cors-configuration)

</comment></comment></comment></comment></comment><comment> chao- As excited as I am about this finally happening, I was so pissed about having to deal with this issue over and over (e.g. JS files describing WebGL models), that I was on the verge of starting a service to provide the layer of redirection with CORS support, ala what Heroku does for EC2. I was actually getting a bit psyched for it, because I was convinced Amazon didn't care about ever implementing this.

At least now I won't launch something only to have Amazon eat my lunch when they finally came around to providing this much-needed feature.

<comment><USER13> Adding a feature people want to AWS isn't a business, they'll always launch it eventually :)

</comment></comment><comment><USER14> Great.

Could somebody explain CORS to me? How is making the server you're contacting specify it wants to receive requests, in the response header, secure? The request has already been made!

<comment><USER15> If the request is made by a web page from a different server it would ordinarily be rejected because of the same origin policy.

Using CORS allows you to specify which servers you can accept requests from unless of course you are using ; Access-Control-Allow-Origin: *

More info ; <https://developer.mozilla.org/en-US/docs/HTTP_access_control> <http://en.wikipedia.org/wiki/Cross-origin_resource_sharing>

<comment><USER14> Doesn't it keep a risk of XSS attacks though, since the CORS policy is only disovered AFTER the request is made?

<comment><USER16> The request is still made regardless, your JavaScript just won't be able to access the response without a CORS header set.

<comment><USER17> The request isn't actually made (at least not your request). The browser sends an OPTIONS request to get the CORS policy and then will block your request if its not allowed.

Edit: My above comment is slightly incorrect. If the request is "simple" it will be made and then you'll be blocked if it doesn't fit the CORS policy. If the request is not deemed "simple" (according to some rules you can look up in the spec) then the OPTIONS flow occurs.

<comment><USER14> Ah I see. I wondered if it dd some such thing. That's good to know.

</comment></comment></comment></comment></comment></comment><comment><USER18> Can anybody Show me an working example of a working html/JavaScript script which uploads to S3 directly over html. Never worked with html5 Upload before. Where can i get more information how this will work? Is it a normal form send with additional fields for authentication? I really have no clue and would be very happy to be pointed into right direction.

Thanks in advance

</comment><comment><USER19> Great timing. I recently began working on a project where I ran into the problem of cross-domain fonts in Firefox trying to serve static assets from S3 to CloudFront. Had to resort using my own nginx proxy through CloudFront for fonts and add an additional request to the page. Finally, problem solved!

</comment><comment><USER20> This must have been difficult to work out. My thanks (or condolences?) to Amazon for this. It will make my life a bit easier!

</comment><comment><USER11> oh my god it is about friggin' time.

</comment><comment><USER21> Awesome. Will this allow us to load images into canvas without security errors?

</comment><comment><USER22> somewhat shocked they pushed Friday before the weekend.

<comment><USER23> pretty good strategy if you ask me. amazon has to have engineers working seven days a week anyways, if they push new stuff on a friday afternoon then it gets a couple days of low usage before all their customers get back to work on monday and try to implement it.

<comment><USER24> Sure, critical systems have round-the-clock coverage, but pushing big changes before the weekend is still not optimal. If there is an emergency, you'd rather have most of your workforce available, awake, and at work.</comment></comment></comment>


What it really means to be a CTO - <AUTHOR> http://www.scottporad.com/2010/11/12/what-it-really-means-to-be-a-cto/ <comment><USER2> I sorta disagree. Sometimes being CTO is about instituting technical leadership from scratch. There have been a couple times where i've worked with a company (as a contractor) and helped them in a CTO role. This has ended up with a need to scrap everything and start again.

That decision was acceptable because of the complete lack of any technical experience in house (100% outsourced, multiple vendors) who had very different patterns of development. Couple this with no tests, no process and no patterns, you're stuck trying to work against something that's unpredictable.

The way forward then is to hire a team (even if it's just one guy) internally who can have ownership of code. Then instituting good practice and a sensible method of rebuild and rediscovery. Obviously this hinges on having enough runway to get into it properly.

tl;dr: sometimes it's ok to scrap it all and start again when your goal isn't about preserving code but instead is about building a better product and technical culture inside a company.

Getting downvotes - I wanted to add something: There's a real risk of making problems worse when you don't have any ability to stop and change. Working with existing code is great but when you have existing customers running into bugs on a daily basis, and fixing them would change the business logic that others are relying on, you either choose to build more technical debt or you swallow it and start again. Obviously this depends on runway, position, etc.

There are many times when companies go through their proto and raise seed only to find that their original hypotheses aren't working, and to change requires a significant re-architecture. Bolting this on to existing codebases can end up with code so complex that it won't stay up, and you end up spending six months in pure fire-fighting ops mode to keep the thing alive. Knowing when to recognize this and acting accordingly is the right approach, even if that sometimes means calling it a day on the existing code and starting again.

<comment><USER3> I'm calling bs on this.

You have to keep the train moving. That keeps the cash coming in. You can't stop the train.

So, you have to take what you have and somehow -- that's what you are being paid for and hopefully you have the chops -- manoeuvre the beast into a better state. This is fscking hard, especially when you have to get the darn thing under test. And it's invariably massively undervalued by most biz management teams.

You can _always_ extract value from operative but shitty code, even if you have to stick your head around the U-bend and pull it back with your teeth. If you don't know that yet, then you've more to learn.

<comment><USER4> Personally, I see the CTO's job as being the one to advocate pristine, perfect code at the expense of business objectives. The reason is simple: if they don't, nobody else will. Of course the business side of the organization is always going to be pushing for more features at the expense of code quality. Why? Well, they're not the ones who will take the blame for code sucking.

If you give in to them too many times and end up with buggy code where trivial changes take a month, but has all the features that are needed where do you think the blame will fall? I can guarantee you it isn't going to be the business side.

The goal shouldn't be for the CTO to be the business side's technical henchman. It should be to look after the technical side of things. If a rewrite is the best decision technically (without considering the business), then that's what the CTO should advocate, _but_ they need to be willing to work with the business side to find a solution that works for both sides.

<comment><USER5> The CTO needs to be part of the executive team, so they don't have the luxury of ignoring the business objectives. The CTO should be able to make a business case for investing in quality engineering. Quality engineering has benefits for the business, but they are not always worth the price.

Engineers are the only ones who can advocate for pristine code without tradeoffs, and I would argue that great engineers care enough about the business to not do that. Really great engineers just build the pristine code in the same amount of time regular engineers would have taken to get a simple version almost-working.

I actually like the idea of "technical henchman", though!

<comment><USER6> _Really great engineers just build the pristine code in the same amount of time regular engineers would have taken to get a simple version almost- working._

This has been key in my experience. I'll build a feature that is flexible, clean, well factored, and completely documented in the same time it requires someone else to make a half working mess.

CTO's as I'd like to understand them bring the bar as high as they can within business constraints. Doing any less is accepting mediocrity. Is that something you'd want in an executive leadership role?

</comment></comment></comment></comment></comment><comment><USER7> It also means having root access.

All kidding aside, that is the central question of being a start-up CTO. All non-business building aesthetics and measurements are out the window until you have customer #1. After that, the goal is to support the customer as best as you can. If ugly code is making modifications difficult, then you rewrite only then. If it is working, then for all that is holy leave it alone. If the code is beautiful and a change will make it ugly, then it will be ugly.

One of the lessons I wrote about goes core to this. There is more value (to a company) in learning how to navigate, manipulate, and fix large bodies of ugly/shit code than trying to rewrite it in a perfect way.

</comment><comment><USER8> Broadening the idea of a CTO from startups to companies with long track records, I've always thought of ideal CTOs as those who can balance risk and stability, growth and retention. They are elastic enough to handle being stretched between the business/product/finance goals of the organization and the engineering required to make the product actually go.

Good CTOs know about all the shiny new things but have the good taste to apply them only when appropriate, can manage the finances of an engineering team, and aren't afraid to hire developers who might be smarter and better than themselves.

</comment><comment><USER9> The role of the CTO depends on the context. Sometimes you lead, sometimes you just facilitate. Sometimes you focus on technical quality, sometimes you focus on business objectives. It all depends on the balance within the company and the companies objectives.

Bottom line is that you base your strategy on what the company needs, not on some abstract notion of a good CTO. The only consistent objective is to make yourself as superfluous as possible by creating a balance between engineering quality and business objectives that maintains itself without constant management interference.

</comment><comment><USER10> What it means to be a CTO at a startup is significantly different than what is means to be a CTO at a Fortune 500 company.

I realize the audience here on HN - but that's a very important distinction to make.

</comment><comment><USER11> This reminds me of Joel Spolsky's Things You Should Never Do (<http://www.joelonsoftware.com/articles/fog0000000069.html>). It's old advice, but still as relevant as ever.

<comment><USER12> It's relevant, but he didn't really mean it to be taken at face value. Because of course it just isn't true (even though people keep repeating it a lot, for some reason).

The world is full of tons and tons of successful, large-scale software systems (from apps to languages to databases to OSs) that were not only "rewrites" of older systems, but _had_ to be written because the original system had incurred too much technical debt.

So what Joel _really_ meant, deep down inside, was "okay it's not that you should _never_ replace large systems from scratch; it's just that you should be _very_ circumspect about it, OK? You don't just go knee-jerkedly ripping out the old stuff just because it's a ugly, a pain to deal with, unsexy, etc. You have to look at the whole picture, and understand the (true) business costs of what you're doing. That's all I'm saying."

<comment><USER13> I'm not sure about that.

What I took away from the article is this: whenever you're thinking of rewriting from scratch, there's a better way - incrementally replacing the code. It's not as fun, and it _feels_ worse, but it ends up with much better code. I'm pretty sure this is nearly always true.

Joel outlines the reasons, but the most important one, imo, is this: you're _not_ going to do a better job. You think you are, because you see that the code is a mess and think you're better than the people who designed it. And you're probably right (or at least, you know more.) But a system that has years of work on it is not something you can whip up again from scratch - you're going to miss all the same things they missed the first time, when _they_ were designing it, and either recreate all the bugs, or make your new system a mess.

Incremental improving is nearly always the saner solution.

<comment><USER14> I second that. It's not the "rewrite" that is bad, but the "rewrite from scratch". You might end up with a completely different codebase if you do it incrementally.

</comment></comment></comment></comment><comment><USER15> "one of Seattle's most impressive companies, I Can Has Cheezburger? " - Really? Does that say more about Seattle, or the Web at large?

(Or was this just a joke and I missed the point?)

<comment><USER16> I found it kind of weird that the guest post on this guy's blog was his friend talking about how great the blog's owner is.

<comment><USER17> That's me. Scott asked me to do a guest post and had no idea what I'd come up with. I'd been telling folks this story about him for a while, so I figured it was as good an excuse as any to share it with a wider audience.

</comment></comment></comment><comment><USER18> I was brought in to a company a while back and took on the leadership role for a while (then brought in a friend to actually be the CTO as I wanted to be pure hands-on). When I arrived at the company, the original code base was a mess - originally outsourced to India, then given to a company in China and then a developer in the Czech Republic. The code was using amazing code like "$sourceboy = $sourceboy;" and tons of other gems.

Anyhow, the decision was quite clear a rewrite was in order. The original code base received a little love here and there to make it work, but in the end we replaced it all and the company ended up selling for a little shy of 8 digits.

While you may not be able to just scrap it all, there is no reason you can't do things the right way behind the scenes and then relaunch the right way over time. I think a good CTO or leader should recognize what will be better for the company, and perhaps at times that does indeed involve maintaining what you have - but if it is indeed broke; it's also in your best interest (as well as the company's) to fix it.

</comment><comment><USER19> You can tell a lot about the culture of an organization by comparing the official and unofficial duties of the CTO vs. the COO. One of the better things I've seen written about what a CTO is came from this Rands quote

"There are two classes of Free Electrons. Sr. Electrons and Jr. Electrons. Both have similarly productivity yields, but the Senior versions have become politically aware. In technology savvy organizations, most CTOs fall into this category."

[http://www.randsinrepose.com/archives/2005/03/20/free_electr...](http://www.randsinrepose.com/archives/2005/03/20/free_electron.html)

</comment><comment><USER20> This reminds me of "you go to war with the army you have, not the one you want".

It's easy to think about what the perfect greenfield solution would be, but this is rarely the case. There's the "best" solution, and the "most applicable" solution.

In my conversations with non-technical managers I spend much more time arguing against the "best" solution, and for what best fits our situation. If I can't reach them I will break out this line:

"Nothing would make me happier than to spend more money and time on new technology, but I think we can meet your needs with X."

</comment><comment><USER21> A lot of comments here seem to be missing what the post was intending to communicate (IMO.)

It's not about whether starting from scratch is okay or not. It's not about whether mixing various technologies to get to something that works is okay or not.

It's about aligning business needs with the execution plan and the resources available.

</comment><comment><USER22> The point it makes is one aspect that Mike Cohn's chapter on Financial Prioritization really gives great insight (<http://my.safaribooksonline.com/9780137126347/ch10>). In the end, such issues are a business decision, and making it can be very detailed and complex or very concise and simple, depending on things like project size and how agile must you be. But they are business ones. Looking into them through any other lens risks a series of possibly very bad decisions.</comment>


Ask HN: Would buying dead YC companies be possible and worth it? - <AUTHOR> Every demo day I see a few wallflowers that look like the runts of the litter. Maybe the team wouldn't take advice, didn't work hard, or fought amongst themselves.<p>Everyone looks at YC's success stories, but would it ever be worthwhile to acquire up a YC carcass for $1000, none of the original founding team, and buy your way in to the YC network?<p>(Yes, I could always apply to YC, but getting in is like getting your straight-B's nonathletic non legacy kid into Stanford: possible in theory but not even worth attempting given the odds). <comment><USER2> You would be better served spending that time and money building your own project and applying to YC.

</comment><comment><USER3> For 1000 dollars you are unlikely to get the assets / IP unless the company has a lot of debt

<comment><USER4> Eh, lots of projects are otherwise abandoned.

</comment></comment><comment><USER5> Only one way to find out.

<comment><USER6> Yeah, make an offer for every dead company, and let's see</comment></comment>


Ask HN: inexpensive hosting for static pages? - <AUTHOR>

I have a few (static HTML) websites that collectively get ~200 pageviews a month. I'm currently paying $7.50/month on Namecheap to host them, which is totally unnecessary.<p>Can you recommend a cheaper, or free, hosting service? <comment><USER2> S3, Github pages or many services which use dropbox for static websites and blogs, like scriptogr.am

</comment><comment><USER3> yes! dotcloud is 4.32$ for static and they have a really great UI.

Otherwise, Github Pages does it for the great price of free!

<comment><AUTHOR> Thanks for the Github suggestion - looks like exactly what I need.</comment></comment>


A blog system written in Go - with a telnet frontend - <AUTHOR> http://fettemama.org/faq_en.html <comment><USER2> Oh wow, I remember when fettemama.org was a really questionable blog back in the day (NSFW: [http://web.archive.org/web/20080910005654/http://www.fettema...](http://web.archive.org/web/20080910005654/http://www.fettemama.org/) ). I guess we all grow up and start hacking our own blogging software in Go :)

</comment><comment><USER3> Love it. Just like the BBS' of yesteryear.

<comment><USER4> no ansi colored menus though

</comment></comment><comment><USER5> Very interesting, although I personally would rather have a SSH option.

</comment><comment><USER6> This isn't _strictly_ Telnet-compatible: I don't see any IAC-command support (i.e. replying WONT or DONT to DO or WILL negotiations), or even handling of "\r\0" (which the RFC defines as the proper serialization of a lone "\r"). It just accepts commands delimited by newlines. Telnet is more than newline- delimited commands!

[https://github.com/jsz/fettemama/blob/master/tnt/session.go#...](https://github.com/jsz/fettemama/blob/master/tnt/session.go#L163)

</comment><comment><USER7> telnet?

</comment><comment><USER8> Simply amazing

</comment><comment><USER9> Very nice! Just like the Packet radio of yesteryear.</comment>


Show HN: Can we predict behavior based on your to do list? - <AUTHOR>

Hi all,
Just wanted to share an MVP that we`ve developed over the past couple weeks -- http://todoneapp.com<p>I have used many to do list apps over the years and I`m always looking for ways to work better and smarter. Unfortunately none of these stick around for very long.
Maybe the solution is in actually getting the tasks done as opposed to just somewhere I can put them? If that`s possible, maybe it`s possible to build something that actually anticipates what I want to do? Regardless, would be a cool engineering project to try and crack.
Just a thought. <comment><USER2> FB login is non-starter.

Todo:

1\. Build login.

2\. Create ToDo list.</comment>


We've been doing full-a$$ SCRUM for 6 months, here's what we learned - <AUTHOR> http://bostinno.streetwise.co/channels/weve-been-doing-full-a-scrum-for-6-monthes-heres-what-we-learned-1/

<comment><USER2> Good share. I've been part of multiple scrum environments and I've always found daily meetings to last much longer than they should. Did you face this problem? If yes, how did you solve it?

<comment><AUTHOR> We did. We ended up forcing people to stand-up</comment></comment>


Android phones can be hacked remotely by viewing malicious PNG image - <AUTHOR> https://www.csoonline.com/article/3339776/security/android-phones-remotely-hackable-just-by-viewing-nasty-png-image.html <comment><USER2> Previous discussion [https://news.ycombinator.com/item?id=19140360](https://news.ycombinator.com/item?id=19140360)</comment>


Chrome added an annoying translation feature - <AUTHOR> http://user.wordpress.com/2014/06/15/chrome-added-an-annoying-translation-feature/ <comment><USER2> To those people who don't browse the internet in multiple languages, allow me to elaborate.

With the new translate popup, you have to acknowledge it before you can continue typing. This means always having to press escape or cancel randomly when browsing the majority of webpages you visit.

Worse, the popup only shows after the page is fully loaded, so if you are browsing a page that is slow to load for whatever reason, you're sure to get interrupted in the middle of whatever you are doing, and if you were typing something, you aren't anymore because you just lost focus.

Now imagine this behavior on nearly every webpage.

My options are to disable the translate feature, which I use quite a bit, or to just put up with a crappy user experience, which is what I've been doing.

If you live in an English speaking country and only visit the occasional foreign website, you're likely never to notice this problem.

<comment><USER3> What I don't understand is, why doesn't the "never translate pages in language X" option solve you problem?

My own experience is that I often read pages in a couple of languages which I understand well (and don't want auto-translated, so I put those languages on the don't-translate list) and occasionally come across a page that seems interesting in a language what I don't understand (and then the offer to translate is helpful).

<comment><USER4> People are often reluctant to execute UI to permanently remember choices because they want to preserve the option to choose in the future.

For example, say I have a workable command of French, but want the ability to translate French in the future in case I don't understand a particular paragraph. So I put up with the annoying dialog over and over because I'm afraid to not have it when I want it.

Always/never UI is almost always a design failure IMO.

Another example is the intent chooser in Android. I put up with the dialog that asks whether I want to use Gallery or G+ photos because I fear not being able to choose in the future when I have some other viewer I want to use, or when there is some particular feature of G+ that I learn about and want to use.

In many cases this isn't rational if you think it through. There is probably some UI to reset the intent option somewhere, and finding it then is probably less time overall than dealing with this dialog over and over. But you don't think that through in the moment, you get slightly frustrated, press "not now" again, and get on with whatever you were trying to do.

<comment><USER5> You can always re-enable the translation popup through the page's context menu. It has an entry for "Translate to English" (or whatever your preferred language is) right there.

<comment><USER6> The problem is that a "permanent" decision has to be made before the user has the option to discover how to make it less permanent.

When it comes to UI issues, the existence of a solution with enough poking around is rarely a solution at all. The problem is that the UI is creating a conflict for the user at the beginning; being able to resolve a conflict is far worse than never creating the conflict at all.

<comment><USER7> >When it comes to UI issues, the existence of a solution with enough poking around is rarely a solution at all

I have heard this pithily articulated in human factors as "if the user can't find it, the function's not there".

</comment></comment></comment></comment></comment></comment><comment><USER8> An unfortunate trend.

Chrome / Chromium have introduced a few non-optional changes recently that seem to have been implemented by North Americans / native English speakers / ex-or-current Microsoft windows users. Any or all of which are annoying for non-North Americans or people that don't use Microsoft Windows.

Two that spring to mind - clicking in the URL bar now selects the entire contents. It now has the dubious honour of being the _only_ text entry box in any GNU/Linux application to work that way.

Similarly, dragging the scrollbar now has a snap-back feature if you move the mouse more than about 40px from the scrollbar 'region'. Again, the only application on any GNU/Linux DE that abuses the scrollbar in this fashion.

Requests by non-MS-Windows users to make these configurable settings, and/or respect OS defaults, are met with disdain.

<comment><AUTHOR> Both issues are valid. Have you tried filing a bug? It's interesting that Google doesn't put a high priority on Linux boxes even though both of their operating systems (ChromeBook and Androids) are based on Linux kernel

<comment><USER8> Bugs exist, and are well populated (though I suspect many disgruntled users don't manage to track these things down to the code.google tracker).

The bug threads contain a predictable mix of well-reasoned, thoughtful explanations of the problem, polite requests for fixes, impolite and exasperated complaints, and developer responses ranging from 'you're wrong to want the earlier / native OS behaviour' to 'we won't fix it, for reasons'.

Snap-back bug 377191 [1] morphed into 377919 [2]. I'm pretty sure the non- intuitive 'snapback' name is an unfortunate and doubtless unintended example of making it harder for users to find, and report their preferences.

Looking at those two bug reports, there's at least another half dozen issue #'s that have been merged into these.

MS-Windows-like single-click to select the URL (rather than using the mouse as a pointer to position the cursor, as GNU/Linux users seem to be familiar with) bug reports date back a _long_ time [3] with hints that not all the developers agree with the behaviour change (or the refusal to make it an option). Again, it's the kind of thing that people continue to identify and complain about elsewhere, for example on the Google product forums [4].

Just as with this one-time-offer-only, auto-translate pop-up bug -- I _really_ dislike the allegedly modern behaviour of reducing configuration options inside software, while your shipped configuration annoys an ever-increasing section of your user base.

The alleged benefit of satisfying the handful of people who are easily bewildered by Settings dialogs is simply perverse.

</rant>

[1] [https://code.google.com/p/chromium/issues/detail?id=377191](https://code.google.com/p/chromium/issues/detail?id=377191)

[2] [https://code.google.com/p/chromium/issues/detail?id=337919](https://code.google.com/p/chromium/issues/detail?id=337919)

[3] [https://code.google.com/p/chromium/issues/detail?id=26140](https://code.google.com/p/chromium/issues/detail?id=26140)

[4] [https://productforums.google.com/forum/#!topic/chrome/AZt9L9...](https://productforums.google.com/forum/#!topic/chrome/AZt9L9dhJhg)

</comment></comment></comment><comment><USER9> It's clippy again! Silently stealing the focus, moving things, and being "completely" helpful is so familiar behavior... It's only missing the avatar.

Also, Google keeps translating my queries into my native language. If I search for some English term, odds are I want English pages back. But no, Google disagrees (even when I search for a definition).

<comment><USER10> google.com/ncr and you have generic Google without country redirect, it prefers returning English results

</comment></comment><comment><USER11> The author is spot on, it is annoying.

As opposed to the author though, I believe yet another setting is not needed: the translation tool is readily available as an icon in the address bar, so _if_ I want to use that nice translation tool, I can easily just click this icon.

<comment><USER2> It would also be nice if this were a standard option and not just one that appears randomly when the auto-detect succeeds.

<comment><AUTHOR> Yeah, I really miss this one. Sometimes auto-detect just fails. I had to install another extension (also from google) to fix it. But why load another extension into memory for that?

<comment><USER12> The translate feature is always available via the context menu even if the auto-detection fails to deliver.

</comment></comment></comment></comment><comment><USER12> I'm Kenji Baheux on the Chrome team and have been overseeing this feature with our UX team.

Please accept my apologies for the trouble. We've been listening and are making the following changes:

1\. we won't show the infobubble and rely on the omnibox icon if the focus is on an editable field. [https://crbug.com/313100](https://crbug.com/313100) (fixed in M36)

2\. the infobubble will stop stealing the focus: you will be able to type, perform shortcuts, scroll the page and so on. [https://crbug.com/378643](https://crbug.com/378643)

3\. we are experimenting with the idea of never showing the infobubble again and solely rely on the omnibox icon as soon as we observe more than X negative actions within a given timeframe T (starting with X=2; T=24h) [https://crbug.com/379035](https://crbug.com/379035)

4\. A few other adjustments around the "translated" infobubble (e.g. will not be shown for automatic translation, will not show up if the "translating" infobubble has been dismissed). [https://crbug.com/319628](https://crbug.com/319628)

I'm eager to hear additional feedback and would appreciate if you could play with the feature in Canary as we land the different changes.

I'll take a look at each comments and reply with specific answers where relevant.

Oh for the record, I'm French and my Japanese is better than my English ;) Merci d'avance!

</comment><comment><USER13> What happened to the mantra "Never get in the way". Focus stealing spits in the face of everyone who worked so hard to make chrome silently updated like it does.

<comment><AUTHOR> Guess those have left Google long time ago! ;)

</comment></comment><comment><USER14> _Recently Google has added a built-in translation feature to Chrome that has some usability issues. Since these issues haven't been fixed in the past couple of releases, they might be here to stay._

Built-in Google Translate was added in Chrome 4.1 in 2010:

[http://googlechromereleases.blogspot.de/2010/03/windows- beta...](http://googlechromereleases.blogspot.de/2010/03/windows-beta-update- translate-and.html)

<comment><USER15> The feature's not new but it was redesigned relatively recently. Previously it had showed a notification bar, not that popup dialog.

Old UI: [http://docs.oseems.com/_media/general/application/chrome/chr...](http://docs.oseems.com/_media/general/application/chrome/chrome- translate.png)

New UI: [https://user.files.wordpress.com/2014/06/screenshot-6.png](https://user.files.wordpress.com/2014/06/screenshot-6.png)

In my opinion, new version is prettier, but more annoying as it partially obscures webpage content.

</comment></comment><comment><USER16> Here is an example of an unexpected Google Translate behaviors. I don't recall seeing these behaviors on this page before this week. [http://imgur.com/0xPSsfn](http://imgur.com/0xPSsfn)

This report generation tool is displaying names of locations located in the Netherlands, so Chrome suggests translating the page from Dutch to English.

I addition, it displays a dialog box asking if there is a better translation of the label for the 'Download CSV' button.

<comment><USER12> One solution would be to use the meta notranslate tag:

[https://support.google.com/translate/?hl=en#2641276](https://support.google.com/translate/?hl=en#2641276)

</comment></comment><comment><USER17> This would annoy me to no end if it impacted me to any degree.

Another annoying feature (new, I think) is auto zooming new tabs/windows I open if I had been zoomed in on the previous page. It doesn't seem like it can be turned off.

Also, asking permission to view in full screen is kind of annoying. But an immediately following popup with "www.youtube.com is now full screen" is just obnoxious. We also probably shouldn't begin desensitizing users to clicking "Allow" in non-security situations.

<comment><AUTHOR> The zoom feature seems to be site-wide. i.e. if you have two tabs from the same site, they have the same zoom level. It's a little unexpected.

The full-screen popup is also very annoying. +1

</comment></comment><comment><USER18> This brings up a more general question: why have things pop-up to the top of the screen where it has to push the screen down slightly after versus having it pop to the bottom where it wouldn't be a problem? Do users not see things on the bottom? My memory is that Firefox uses bottom bars a fair amount like for searching in a page but chrome only does for file downloads.

<comment><USER2> Although the change from a top bar to a full-on pop-up box likely had to do with visibility, the biggest problem is that it now steals focus from the user.

I don't care where the option is on the screen as long as it's not randomly taking my cursor away from the webpage I'm trying to use.

</comment></comment><comment><USER19> I wonder if it's all parts of the US that don't know foreign languages. I went to highschool in Texas and we all had foreign languages since grade 6. Most of us can at least read spanish. My friends that went to a local private school were usually fluent in two other languages. I myself am fluent in Spanish and can read/write Latin/Greek.

<comment><USER20> Never bring reason or facts to block a good America bashing/stereotyping. It ruins the game for everyone.

<comment><USER21> Those aren't facts, they're anecdotes. Facts are things like _" Just 18 percent of Americans report speaking a language other than English. That's far short of Europe, where 53 percent of citizens speak more than one language."_ [1]

[1] [http://www.ed.gov/news/speeches/education-and-language- gap-s...](http://www.ed.gov/news/speeches/education-and-language-gap- secretary-arne-duncans-remarks-foreign-language-summit)

<comment><USER22> Compare the language prevalence of the US, geography wise, to Europe and perhaps you'll understand the disparity. You basically have to learn multiple languages to some degree in Europe. In the US you can travel larger distances than all of Europe and speak only one language. Additionally, with English being one of the common business languages, you find that many non-English speaking countries learn English. Americans don't need to learn English (well, some might). Should they learn another language or three, of course. Is it necessary for everyday life? No. Most Americans have never left their country and likely never will. The extent of their driving can get them places that speak Spanish and French (maybe Portuguese if they REALLY drive).

I get it, Americans are fun to bash for numerous reasons, but it really annoys me when the bashing is not thought through enough to be valid.

<comment><USER21> I understand the reasons behind the disparity - and I'd say geography has little to do with it; most people in Europe learn English has a second language, not whatever language their neighbours speak. In fact, if anything we _avoid_ learning their language, since we're at war with each other every half a century.

But understanding the reasons doesn't make invalid. If anything, it makes it _more_ valid, since the reason we all learn English as a second language is because the Americans pushed for it, from Hollywood to the Internet. It's not like English was the natural default; my mother was still taught French. It wasn't until a few decades ago that English became the only thing we must absolutely learn.

In any case, I meant only what I wrote; that Americans don't know second languages is a fact. Whether that's cause for bashing was not part of my post.

</comment></comment></comment></comment></comment><comment><USER23> Speaking of weird Google UI. I got an odd G+ share thing over my movie selections today with no close button [http://imgur.com/lhXgt9z](http://imgur.com/lhXgt9z)

temporary glitch I imagine

<comment><AUTHOR> work of art! :)

</comment></comment><comment><USER24> If I ever want to translate a page to another language, I know how to. So please don't ask me more than once - and let me dismiss it forever.

If I ever want to use anything else than google.com to search, even though I am in another country, I know how to change it. So please don't ask me more than once - and let me dismiss it forever. STOP ASKING ME!

<comment><AUTHOR> I hate it when the software becomes some sort of big brother or parent. Trust the user and respect their choices, even if you're designing software for young kids! :D

</comment></comment><comment><USER25> Android chrome. Settings \ content settings \ translate - turn off

Desktop chrome. Settings \ advanced \ languages \ unchecked offer to translate

<comment><AUTHOR> Can one translate a page after turning off this feature in Chrome Android?

<comment><USER25> Only by going through Google translate web page. This disables the popup to turn it on

</comment></comment></comment><comment><USER26> I am not surprised. I tried to add some additional languages to Google (web) preferences to the "Skip translations for" but then the primary language for everything Google was changed to one of my additional languages. I had to go back and change it to default single language.

<comment><AUTHOR> And that happened in a released product. Not sure if Chrome engineers bother to test the product thoroughly now that they have such a quick unobtrusive update system. Updates are bad. They are the reason for the demise of Windows. They ease mistakes for sloppy people.

</comment></comment><comment><USER27> According to [http://crbug.com/237522](http://crbug.com/237522) the second time you click 'No' it should offer you a 'Never translate this language' option.

Edit: it's under the 'Options' button of the translate popup.

<comment><USER28> Though he mentions also that he wants to sometimes use the feature, rather than having to deal with the everytime/never options.

</comment></comment><comment><USER29> Chrome has a good flow for this already if you want sometimes-translation. If the feature is bothering you,

1\. Never translate this language

2\. When you want a page translated, click the Translation icon in the URL bar and choose to translate.

</comment><comment><USER30> I've been seeing that for ages and I'm not a Chrome user. It could be disabled last I checked...

<comment><AUTHOR> Obviously you are not a Chrome user. It's possible to avoid this dialog. However it is quite annoying over a long usage period. And that's where you don't feel the pain ;)

</comment></comment><comment><USER31> This feature is very well designed and the author of this post did not have anything better to write.

<comment><USER15> The primary point of the complaint is that feature is obtrusive to the extent it's annoying - it displays some _uncalled popup_.

If an active suggestion (feature advertisement) is necessary, a single once- in-lifetime "hey, here's a way to translate the page - click this icon if you want to do so [ uh, okay, got it, now stop bugging me ]" (with clicking outside treated as "probably didn't read - remind later again") would be a much better approach.

<comment><USER31> How many languages are the webpages you visit written in as to make this feature so annoying?

<comment><USER32> English, for one.

I'm unsure what point you try to argue here. The author of that post explained what is wrong with the feature. You provided zero arguments against that. Saying 'Nope, you are wrong' is not really helpful.

For me this feature is highly annoying and utterly broken. I agree with the author and think his points were well made .</comment></comment></comment></comment>


Ask HN: Examples of beautiful C code? - <AUTHOR> Hey, HN,
I hardly ever read other people's code, but I'd like to start dedicating a few hours each week to studying idiomatic C. The ultimate goal is to improve my own code.
What are some codebases that are worth studying? Bonus points for open-source projects that are looking for new contributors. <comment><USER2> Since it was just posted, the xv6 ANSI C Unix source is nice and fairly compact. They even provide a nice PDF for you to take it with you:

<http://pdos.csail.mit.edu/6.828/2011/xv6/xv6-rev6.pdf>

Also the low-level GLib core library is good:

<http://git.gnome.org/browse/glib/tree/glib>

</comment><comment><USER3> You should check out Redis - <https://github.com/antirez/redis>

</comment><comment><USER4> I'm certainly not the best C programmer out there but hey, might want to have a look at:

\- <https://github.com/visionmedia/luna> \- <https://github.com/visionmedia/libcss>

</comment><comment><USER5> You might be interested in [http://www.amazon.com/Beautiful-Code-Leading- Programmers-Pra...](http://www.amazon.com/Beautiful-Code-Leading-Programmers- Practice/dp/0596510047)

I believe one of the examples they gave in C was the diff algorithm from Subversion.

</comment><comment><USER6> The Quake 3 source code - <https://github.com/xxpor/Quake>

</comment><comment><USER7> * SQLite

</comment><comment><USER8> linux kernel code is good enough for c examples.

</comment><comment><USER9> * Postgresql

* Varnish

</comment><comment><USER10> the netbsd kernel.</comment>


Some Thoughts on Our Business (2011) - <AUTHOR> http://www.lettersofnote.com/2011/11/some-thoughts-on-our-business.html <comment><USER2> Now there's a relic from another _age_ : the entertainment industry was still operating on the old model, Japan was a perceived threat to US businesses (!) and the Internet was not yet a "problem".

I can't imagine the 2017 version of this letter.

<comment><USER3> Considered in 2017 they now are a blockbuster powerhouse with Marvel, Lucasfilms, Pixar, and a rejuvenated Disney Animation under their banner.

</comment></comment><comment><USER4> It might sound flippant, but that's one of the best pieces of writing I've ever read. I have a lot of respect for the author.

</comment><comment><USER5> That's such a fantastically well written letter and I think he was absolutely right in his diagnosis of the problems they faced and the solutions.</comment>


Ask HN: SaaS tools for building 100 person sales center? - <AUTHOR> A company that I have an investment in is building up a sales center that will shortly have 100 reps. I can't stand the idea of having premise based solutions in 2015.
Right now we use Shoretel cloud with Zoho CRM but that is combo is missing some key functions including: skills-based routing, business integration tools, dialer. I'm looking for feedback from folks who have actually set up a sales center (not just vendors) that have found good tools to help us efficiently run a sales center.
Talkdesk seems to be the closest to what I want but I've heard they sell smoke/mirrors.
Here's a good list of features I looking for: http://blog.talkdesk.com/the-most-common-call-center-software-features <comment><AUTHOR> I ended up adding this question to Quora too where there seem to be more applicable responses/feedback

[https://www.quora.com/A-company-that-I-have-an-investment- in...](https://www.quora.com/A-company-that-I-have-an-investment-in-is- building-up-a-sales-center-that-will-shortly-have-100-reps-I-cant-stand-the- idea-of-having-premise-based-solutions-in-2015-What-full-featured-cloud- options-are-available-and-recommended-by-users-not-vendors)

</comment><comment><USER2> I haven't set one up but I did some research a while back and heard good things about Five9

[http://www.five9.com/products/virtual-contact- center](http://www.five9.com/products/virtual-contact-center)

</comment><comment><USER3> I work for talkdesk - would be happy to talk and try to address your concerns re: smoke/mirrors. Certainly not what we're trying to do. I'm at james dot alonso at talkdesk.com.</comment>


The NDB team on its revolutionary nano-diamond batteries - <AUTHOR> https://newatlas.com/energy/nano-diamond-battery-interview-ndb/ <comment><USER2> [https://youtu.be/uzV_uzSTCTM](https://youtu.be/uzV_uzSTCTM)

</comment><comment><USER3> Came to hacker news hoping there'd be someone to explain why this is snake oil.</comment>


Twitter Shuts Off "Find Friends" Feature For Instagram - <AUTHOR> http://techcrunch.com/2012/07/26/no-api-for-you-twitter-shuts-off-find-friends-feature-for-instagram/

<comment><USER2> This is almost certainly a strategic move on Twitter's part to slow the spread of Instagram. I doubt it has to do with "developers" as others have surmised. Even if it hurts Twitter's growth in the short term, in the long term it makes more sense to keep API access on for competitor photo-sharing apps and turn it off for Instagram (which is now a direct competitor). If Twitter buys Instagram, this sort of thing doesn't happen.

<comment><USER3> I'd actually love to have seen Instagram been acquired by Twitter instead of Facebook (if any acquisition had to happen). For me, I don't really use Facebook much anymore except for the occasional sharing of photos, and for everything else I use Twitter. Most status updates I see on Facebook now are about the length of a tweet, I'm not involved in any groups, don't "like" any pages; it all pretty much comes down to photos and text.

</comment></comment><comment><USER4> Even if there are legitimate reasons behind incidents like these, it's problematic for Twitter that there essentially hasn't been a positive story about the Twitter API since summer of 2010. And there have been a lot of stories about the Twitter API since then.

</comment><comment><USER5> Facebook shut off Twitter's access to friends the same day it launched:

[http://www.insidefacebook.com/2010/06/23/twitter-facebook- fr...](http://www.insidefacebook.com/2010/06/23/twitter-facebook-friends/)

</comment><comment><USER6> Anyone else think <http://join.app.net/> should introduce some lower donation tiers?

Like "$10 — You give a shit about this" "$25 — You give a shit about this and you want a t-shirt"

<comment><USER7> I signed up a couple of days ago where it was around $85k and it's only at $89k now. Won't be meeting the goal at this pace, some lower tiers is probably a good idea. Or maybe a terrible one.

</comment></comment><comment><USER8> I'd love to hear commentary from Twitter or Instagram on the rationale for this. I don't think it's very plausible that this is due to 'strain' on Twitter's infrastructure as the Techcrunch article alludes. If API call volume was really the cause for Twitter blocking the API call, I'm sure Instagram would have been happy to throttle the volume of such API calls by limiting the amount of Twitter friend searches over a period of time (ex: you can only find new friends once/week).

It all seems very counterintuitive and you think that Twitter would be encouraging content creation and engagement on their platform as it creates defensibility for the service. Consider this: Twitter probably is positioned to spot emerging trends faster than any other service by being able to mine emergent links, etc.

I think this is going to leave a myriad of mainstream users disenchanted by Twitter locking them out of their friends list.

I signed up to Twitter very early (user id ~5000) and have been enamoured by it's growth and how it's established itself as the preeminent destination for open conversation and realtime search/discovery. There are a lot of smart people at the helm of Twitter and I have faith that they'll realize their mistake and fix it. Otherwise the conversation will go elsewhere and it would be a shame to see all that value dissipate.

Thoughts? Keep the conversation going on Twitter: @raja

<comment><USER9> The real reason? Twitter doesn't want Facebook to have direct access to their social networking lists.

</comment></comment><comment><USER10> Wow, I can't believe Twitter would alienate their API developers by shutting this feature off. Very soon, there will be no point in even integrating your app or site with Twitter.

<comment><USER11> Let's hope Facebook follows suit!

</comment></comment><comment><USER12> > _The decision is especially perplexing [because] Jack Dorsey is also an > investor in Instagram and the two companies share Benchmark as an investor._

Shouldn't those be past tense? Did either of them maintain a connection to Instagram post-sale to Facebook?

<comment><USER13> The deal hasn't closed yet as far as we know.

<comment><USER14> The deal hasn't closed as of Facebook's investor's call today

</comment></comment></comment><comment><USER15> Wow - looks like pretty soon there wont be any bridges between ecosystems.

<comment><USER16> Thats why we need protocols and not APIs.

<comment><USER17> Can you explain this a little more please?

<comment><USER16> If you use an API, you are bound to the decisions of the one single entity that is making the API available.

An open protocol on the other hand can be implemented by anyone who is willing to provide the service.

An API is an indicator for a walled garden. In this case two walled gardens are fighting for their share of the pie.

Instead of Twitter we should be using status.net, running our own instances of it. Decentralized just like email.

</comment></comment></comment></comment><comment><USER18> I always found it annoying I couldn't discover my facebook friends twitter accounts. This seems in line with the above.

<comment><USER19> _"... I always found it annoying I couldn't discover my facebook friends twitter accounts. ..."_

Are you annoyed enough to pay money for this?

<comment><USER20> Woah! Let's not get crazy here and start requesting compensation for our time. Capitalism would break out, and where would our national recession be then?

<comment><USER21> ... what?

</comment></comment></comment></comment><comment><USER22> This is absolutely crazy.

I'm guessing a pictures product is down the pipe...

</comment><comment><USER23> Annoying, and it will probably work. I've never followed anyone on instagram that I wasn't following on twitter, and if the option wasn't available I wouldn't have bothered.

</comment><comment> k-mcgrady It makes complete sense. Having the 'find friends' feature as an open API enabled Instagram to instantly build a network for you. If they didn't have this feature from the start things might have turned out very different. The only people I ever followed on Instagram were people I followed on Twitter.

</comment><comment><USER24> Reminds me of when Apple's Ping had an option to bring in friends from Facebook, which quickly disappeared.

</comment><comment><USER25> You can still access the list of a person's followers through Twitter's API, and Instagram has twitter-handle to instagram-handle mappings in their DB.

Why aren't they rolling out their own "Find my twitter friends"?

<comment><USER26> That is what Twitter shut off.

<comment><USER25> Twitter has shut off accessing the list of people a person follows?

<comment><USER26> That is how you would build the feature. Instagram gets a list of the Twitter accounts I follow, and looks to see if any of them already have an account.

<comment><USER25> Oh ok, I thought there was a more complex feature of the Twitter API. Getting the list of people a given user follows is such a basic API feature that I was genuinely surprised Twitter would disable it for Instagram.

<comment><USER26> My guess is Twitter doesn't want Facebook to have access to their friend graph and Facebook did the same thing to them a while ago.

</comment></comment></comment></comment></comment></comment><comment><USER27> This space is officially ripe for disruption. I was against an open-source version of Twitter because I really respected the brand and its tech....but now I'm not so sure. Would love to work on a replacement.

<comment><USER28> Like <http://identi.ca/> ?

<comment><USER27> Looks neat, but I don't see that it is open source.

<comment><USER29> It is. Being open source was always their selling point. <http://identi.ca/doc/source>

</comment></comment></comment></comment><comment><USER30> The dream of the Internet is dying.</comment>