Getting Googled by Your Doctor - <AUTHOR> http://cancer.nautil.us/article/225/getting-googled-by-your-doctor-is-the-new-normal <comment><USER2> So what I got from this is that police feel like they can search your home without consent over a facebook profile photo.

Nice.

He should have requested help from the ACLU, sued the person who made the call that he needed to be forcibly taken in, and sued the police department for illegal search, while making the case VERY public.

I was wrongfully committed once by a vengeful relative (not even blood) who deceitfully pretended to be my guardian, making up shit about my state of mind.

The government is still hounding my mother about the medical bills, which she refuses to pay because she did not even find out what was going on until I was committed and could not be released. I was kidnapped from her house and was led to believe we were going somewhere else. Next thing I know, a police officer is at the car window telling me we can do this the easy way, or the hard way.

I take this kind of intrusion on personal liberty to be especially heinous.

<comment><USER3> > He should have requested help from the ACLU, sued the person who made the > call that he needed to be forcibly taken in, and sued the police department > for illegal search, while making the case VERY public.

While I agree with you in principle, it should also be noted that some people may not want their mental health treatment to become a matter of public record. It may affect their future in unpredictable ways (employment, relationships, legal disputes, etc). It could be used against them down the road.

<comment><USER2> That's the unfortunate truth... so he should have gone after a large settlement, citing that very reason.

</comment></comment></comment><comment><USER4> I wish there was a way to give a psychologist all my online tracks (down to Slashdot posts when I was 12), context of what I was thinking around the posts, and along with the usual story of my life. Then diff it against "normal" and provide advice--"because of X you seem to react Y so maybe try Z".

<comment><USER5> Dear god, I hope there isn't. While my online persona is pretty much the same as my real-life persona, I know quite a few people who have more than one online identity. I would hate to have someone characterized with a mental illness because their psychologist came across their old tumblr or livejournal.

<comment><USER6> The disagreement between the two of you is kind of paralleling an emerging debate over trends in mental health assessment research.

Right now, there are large grants (from the federal government) being dispersed to develop systems to basically scrape patients' social media info and smartphone data (including things like GPS, accelerometer data, etc.) to predict outcomes. There's other related research going on too.

Traditionally, assessment methods work more like an instrument: you introduce a stimulus and record a response. I don't think that's going to change, because of various advantages of that sort of data, but the utility of other types of data is being actively discussed. You have privacy issues like are being discussed here, but there are also practical issues like: what if your severely mentally ill patient doesn't have a Facebook account they use regularly? What if they don't even own a phone, or use it, which common?

Looking for patients on the web isn't uncommon. It's not really so much your depressed office manager, it's your patient who is being court-ordered for some service because they pulled a gun on their girlfriend and used the butt of it to knock their 2-year-old over. Imagine that they come in, and you're supposed to be monitoring their danger to self or others, and aren't willing to say much to you, and won't consent to have you contact a third party, or don't even have a third party to contact. If a situation arose where you could find something on Google, would you refrain from searching it? What about an online public government-run database? What about reddit? What about Facebook? Where do you draw the line? Should the courts be ordering that psychologists and psychiatrists be able to scrape your phone? Install an invasive monitoring app? What if you haven't been convicted yet? What if you aren't charged with anything, but have been deemed incompetent to make your own medical decisions?

<comment><USER5> _If a situation arose where you could find something on Google, would you refrain from searching it? What about an online public government-run database? What about reddit? What about Facebook? Where do you draw the line?_

The courts have already answered this question for a different audience: the police. There is already a rich legal body of knowledge and practice that governs where and when searches are appropriate. That should be the _minimum baseline_ for mental health professionals. If a police officer, a person trained and vetted by the legal system to detect threats and use (up to lethal) force to end them cannot access this data, there is no way that some damn _civilian_ should have access. If you want access, get a court order, just like a police officer, just like a state attorney. No court order? Fuck right off.

In your case, I can easily see a judge saying that the person in question is legally mandated to turn over social media accounts for some period of time as a condition of their sentence or parole.

</comment></comment></comment></comment><comment><USER7> I find it hard to believe most doctors have the time to casually google patients.

<comment><USER8> Psychologists usually have self-imposed limits on the number of patients that they see in total.

</comment></comment><comment><USER9> Never ever publicly tell stuff like that you're suicidal. It's a recipe for disaster. People think they have to send police after you, lock you up and put you under watch - mostly causing more harm and problems than good. They actually think that it is morally okay to violate your freedoms in this situation. Get help - the best way would be to talk to someone face to face. Don't post morbid stuff on the net, you worry everybody crazy.

<comment><USER10> Are you saying it's not morally ok to stop suicidal people? You really wouldn't even if it was your friend or loved one? Would you want them reading comments like this, telling them to keep it secret?

<comment><USER9> Yes, that is what I am saying. My respect for self-ownership and individual choice runs so deep that if someone truly wants to die (not as in voicing suicidal thoughts as a cry for help, but actually wanting to die), I'd respect that. If someone has the right to live, they should have the right to die.

As for telling them to keep it a secret (at least to the public) - that is not because I would mind. It's just an advice to protect themselves because society tends to react to this stuff in extremely retarded ways.

<comment><USER10> Most people who attempt suicide and survive say they regret it. Usually almost immediately. Suicidal moods are often temporary and they would be fine if they waited it out. I might agree in principle that people have a right to end their lives. But in practice it seems like suicidal people are not making a perfectly informed decision and are better off being saved from suicide. And suicide doesn't just affect that person, it affects everyone around them too you know.

And therefore I honestly think comments like yours are dangerous. Telling suicidal people to stay quiet and not get help they need, or even encouraging them to do it.

This is something that personally affects me a great deal. I have a close friend who often has thoughts of suicide. I dread that the day will come I will find out they are dead, and I will be devastated. I'd do anything to prevent that. Their moods are always temporary and they go back and forth from being depressed to on top of the world in just a few days.

<comment><USER9> >Most people who attempt suicide and survive say they regret it.

And later on they may regret failing their attempts.

>But in practice it seems like suicidal people are not making a perfectly informed decision

Many people don't make perfectly informed decisions about a variety of things, yet we allow them to exercise their freedom to do so.

>And suicide doesn't just affect that person, it affects everyone around them too you know.

That's a stupidly selfish and ignorant argument of everyone around the person. "You gotta keep on living because otherwise I feel sad." Not even considering that the mourning of a death of a friend is nothing compared to the suffering of a full-blown suicidal depression. If someone had terminal cancer and was suffering horrible pain every day, you wouldn't tell them to go on because them dying "affects everyone around them too you know".

>Telling suicidal people to stay quiet and not get help they need, or even encouraging them to do it.

I did neither of those. I clearly stated "Get help". I clearly stated to seek out dialogue, but not publicly over the internet. I never encouraged anyone to kill themselves, I just want to protect the liberty of anyone to do it.

All in all, you completely misunderstood me.

</comment></comment></comment></comment></comment><comment><USER11> How is that not illegal due to the simple fact that you are disclosing to a third party who your patients are?

<comment><USER12> How?

<comment><USER11> By typing it into their search form and sending it to their server, and especially on "social networks" by the further (non-)interaction with the person?

<comment><USER8> HIPAA rules specifically permit incidental disclosures that accompany a permitted purpose such as relating to safety, patient communication, or health treatment, including payment.

If your doctor has a reasonable reason to Google a patient beyond mere curiosity, HIPPA would allow the search to take place because the revelation of a name is considered a 'minor' disclosure, and was incidental and as minimal as possible.

If HIPPA didn't have such exclusions, merely calling a patient by name in a crowded waiting room would be a violation.

<comment><USER11> > HIPAA rules specifically permit incidental disclosures that accompany a > permitted purpose such as relating to safety, patient communication, or > health treatment, including payment.

I think those really are very different cases. For example, telecommunication is protected by other laws. So, yes, a doctor may call you and even speak into their telephone about your medical information, thus effectively transmitting that information to their telco, but then, telecommunication providers are not allowed to listen to calls or use the contents for marketing purposes, or whatever.

> If your doctor has a reasonable reason to Google a patient beyond mere > curiosity, HIPPA would allow the search to take place because the revelation > of a name is considered a 'minor' disclosure, and was incidental and as > minimal as possible.

First of all, it's not just the name being disclosed, it's the link to the doctor that's being disclosed. And the question is: Well, was it minimal? How do you determine that? And was it incidental? What are the criteria?

Imagine a doctor called everyone in their city, asking them if they knew anything about their patient. Not out of curiosity, but because they are trying to get a better understanding of the medical situation of their patient. They are only disclosing the name, so it's a minor disclosure, right? And also, it was just incidental, right? They didn't call to tell everyone who their patient is, they called in order to collect information they thought could help them!

Now, how exactly is that actually different from asking google? The number of humans involved? What if you hired a detective to collect information on your patient? At least, you then could put confidentiality clauses into the contract, instead of giving the information to a company where your use of the service implies accepting some TOS that allow that company to essentially use the information to make money in any way the like!

> If HIPPA didn't have such exclusions, merely calling a patient by name in a > crowded waiting room would be a violation.

Well, that doesn't seem like a particularly convincing argument to me. They are physically present and essentially identifiable to the other people in the room anyway, and essentially due to their own decision to go there. So, yeah, there probably is a need for exclusions that allow this, but that example doesn't really help with figuring out where the limits are or should be.

<comment><USER8> I would say its' a gray area.

HIPAA exceptions in recent years have focused on both identifying information and medical condition together.

For example, the NCIS exception allowing mental health staff to disclose to NCIS if an individual should not be permitted to own a firearm due to their mental state. That's a revelation of both the name and their medical information.

Or the finance exception, that allows payment processors to know the names of patients without requiring them to have a business agreement with the medical agency and subject themselves to HIPAA rules. They have no access to medical records and aren't sufficiently entangled with the medical practices so it's been ruled that they are except.

Or the media exception, in which you can disclose that a patient is in 'stable' or otherwise condition in the ER if a member of the media calls for them by name. In this case, the media already knew the name, and the disclosure is deemed for the public good.

Now.... sharing a name with Google to receive completely public information about a patient? That's not something that's specifically prohibited or denied. It could be argued that Google had a 'need to know' just to deliver the search result, and as others have argued, Google cannot connect an arbitrary name search to a patient's medical history.

If it were to come up, the deciding factor would be was the search for the patient's benefit? Name disclosures have historically been deemed to be minimal if there's no other information attached, and HIPAA provides wide latitude to doctors to use a patient's name in the ordinary course of business or to further treatment goals by contacting people or organizations not directly related to the patient.

> Well, that doesn't seem like a particularly convincing argument to me.

Keep in mind all of my examples are simply that... examples. They're not arguments into themselves.

</comment></comment></comment></comment></comment></comment><comment><USER13> I wish there was a way to explicitly consent for all my health data to be free and public for any purpose.

<comment><USER14> Be careful what you wish for. Making such information free and public could open you up to all kinds of tracking and discrimination, not to mention higher costs for insurance or credit.

Anonymize it and I'm there, though this certainly would not help in this situation described by this article.

<comment><USER15> Don't forget, they just ruined any opportunity for their children to also have a anonymous genome.

Literally, if there is some hereditary disease, they may have just made it so their kids can never get affordable insurance -_-

<comment><USER10> It's been illegal for awhile for health insurance companies to use genetic information. And now they can't even discriminate against any preexisting conditions.

<comment><USER14> But how would you know if they had? My insurance bill doesn't give me a breakdown of how they decided my premium. And how do you know that they won't be able to in the future? Healthcare regulations are subject to the whims of the current government.

</comment></comment></comment></comment></comment><comment><USER16> As a social media self-exile I have to laugh at the (emphasis mine) "increasing openness of _our_ lives, which _we_ increasingly spend online..." Who's this 'we'?

If someday I'm unfortunate enough to have to see a doctor, and they Google me, they'll find nothing. What happens then? Will they have to do their job using only the information I specifically provide them? Horrors.

</comment><comment><USER17> I wonder what privacy law, particularly outside the US, says about this.</comment>


A new and improved Twitter API - <AUTHOR> https://blog.twitter.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html <comment><USER2> This is what they cite as the key benefits:

"A cleaner API that's easier to use, with new developer features like the ability to specify which fields get returned, or retrieve more Tweets from a conversation within the same response

Some of the most requested features that were missing from the API, including conversation threading, poll results in Tweets, pinned Tweets on profiles, spam filtering, and a more powerful stream filtering and search query language "

I really doubt this is what developers have been yearning for in a revamped Twitter API. Previous APIs provided plenty of functionality, it's just that too many of us were burned by the ever-shifting policies around API use. I personally went from envisioning Twitter as the social data pipeline of the web to vowing never to touch it again within the span of one year. I can't believe this announcement wouldn't touch on policy and developer relations at all.

<comment><USER3> > conversation threading

Actually, this was a major point of API failure when I last tried to use it. Did you know that, with the current API, there's no way to _retrieve the replies to a tweet_? This makes it impossible to build tools that, say, allow you to visualize a tweet thread, because you simply _can 't_ fetch the thread.

So I'll say that, as a casual, social, and informational user of Twitter (i.e. not business, not adtech, not academia), this announcement gives me a little hope that we might see a resurgence in 3rd party apps that provide more powerful ways of interfacing with Twitter. At least, that's my hope, maybe I'm naive that they'd really allow this.

<comment><USER4> _> there's no way to retrieve the replies to a tweet_

My crusty old version of Tweetbot has been doing that for years...? Maybe not perfectly for tweets with hundreds of replies, but well enough.

<comment><USER3> Any idea how it's done in the API? I know you can retrieve a tweet's _parent_ , but not its _children_.

<comment><USER5> You have to use the search feature to look for tweets and then look at the parent tweet ID. This is what bots like threadreaderapp, etc do. You can construct it from the bottom up if you know the ID of the _last_ tweet in the thread of responses too, but you wouldn't know that a priori unless the user gives it to your software somehow.

<comment><USER3> But... that's not a tree -- there's still no way to discover all leaves. That's just a thread/singly linked list.

<comment><USER5> Yes, I forgot to mention that. You need to know the IDs of all the leaf nodes of the thread or else you can only partially reconstruct it.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> No word on the most important thing: the limits.

Current limits that keep becoming stricter and stricter make the API unusable.

<comment><USER7> I was looking into doing something for my own use, and you can't even retrieve your own list of followers or blocked users in one go! You have to paginate it, each page is counted against the rate limit!

<comment><USER8> Everything non-streaming from Twitter has always been paginated, no? Same with all YouTube, probably FB too right?

<comment><USER9> Same with everything ever, some users have hundreds of thousands of followers, I'm not sure how you would do it without pagination.

The limits are tight. It's true. But pagination is not the enemy.

I think better scaling of the pricing tiers could help but Twitter probably doesn't care enough about small devs.

</comment></comment></comment></comment><comment><USER10> An interesting side effect of making your product ad-driven is what it does to the incentive structure of treating your product as a platform.

Twitter is just one example of many of companies who have created an API, asked developers to build on it, and then later burned the whole thing down.

Fundamentally, if you let developers build products that access your data in ways that users want, the very first they're going to do is _remove the fucking ads_. And, obviously, if that's how your company makes money, you can't let that happen. Given the choice between killing your ads or killing your API, you're going to kill the API every time.

Imagine running a casino and offering a "slot machine API". If you let the developers discard all of the losing spins, you're gonna have a bad time. This is essentially what an ad-driven company does when they have an API that lets developers separate the data users want (actual data) from the data they don't (ads).

<comment><USER11> Unless this is the idea. Never have worked with it before but my understanding (confirmed by many of the comments here) is that the current API is pretty difficult to work with. Rate limit the new API and allow less restrictive access through paid tiers.

Suddenly Twitter is no longer reliant solely on ad revenue and all of the stigmas associated with it in the current changing environment.

With this, they are no longer an ad company but a platform ala Google Maps/Stripe. Plenty of companies would be more than willing to pay for unrestricted access to Twitter for data analysis.

Ad revenue may take a hit but won't disappear overnight

</comment></comment><comment><USER12> I'd love access to the Twitter API for research purposes for my writing, but I'm priced out for that purpose.

I can't prove it, but it feels like they only want big businesses researching their markets, and not people like me asking questions about Twitter itself - even though letting people do that would result in negligible additional traffic.

This might be controversial and I know people will say that they're a private company and can do what they want, but Twitter has positioned itself as society's de-facto official communication channel and I think the data on it should be a matter of public record at this point.

edit: Does anyone have experience with scraping tools and Twitter? Presumably it's hard to do.

<comment><USER13> This is quite new: [https://github.com/lschmelzeisen/nasty/](https://github.com/lschmelzeisen/nasty/)

<comment><USER14> Doesn't seem to support "from:{screen_id}" in search, a bummer.

</comment></comment></comment><comment><USER15> I ran a Twitter app for 9 years that they crippled, crippled, then eventually killed with policies. It went from "@ev loves your app," to "your app is against our terms of service" in that time. My Twitter days are done.

<comment><USER16> Have you written about your experience? I'd just be curious to know what you built, and the series of the events that unfolded.

</comment></comment><comment><USER17> These folks from Twitter might suffer from a major disconnection from reality, they burned several bridges of trust over the years and now they just write a small disclaimer about them discovering the hack from this week and the new API apparently does not address issues people had with it in the past (that were used to choke 3rd-party apps). Kudos to the developers working on it directly though, I suppose it takes a lot of effort and the managers responsibilities are not yours to take home but they need to actually regain trust before anything else, no matter how fancy the API is. Some kind of "LTS" or long term contract for the API versions would be a start.

<comment><USER18> Exactly. What's their goal with the new API? Will they continue to be hostile to Twitter app developers?

Years ago, they made a distinct choice to become a business/celebrity platform, and actively moved away from the utility it could have been. That move cemented my view of Twitter as a dead-end for technology.

<comment><USER19> Twitter is not as profitable as they want to be, so the corporate wants user to do something monetizable, but users prefer what can't generate revenue and don't favor whatever that do, but Twitter is a private company so they have to do it eve if it would only result in its irrelevance, and that will lead to even less profit, then

</comment></comment></comment><comment><USER20> Like to think I'm quite positive when it comes to companies putting things out there, but still can't bring myself to trust Twitter's actions when it comes to their API.

I built and sold (albeit for a very tiny sum of money) one of those text- extender mini-blog tools back in the day off the back of the API. It felt easy, clean and part of the ecosystem.

Every action they took degraded that trust. I know they're a business and the data (and primarily their advertising serving and monitoring tech) is their lifeblood, but... fool me once...

</comment><comment><USER21> One amazing use of the twitter API is to be able to mass delete your favs, rts, and tweets. It's the only thing I use it for as the API and platform as a whole is otherwise hostile.

[https://github.com/MikeMcQuaid/TwitterDelete](https://github.com/MikeMcQuaid/TwitterDelete)

<comment><USER22> Last time I checked (2 months ago, I think), the API couldn't fetch more than the 3600 latest liked / posted tweets. Has this changed?

<comment><USER23> If you delete the first 3600 tweets, the next 3600 should now be the latest posted.

<comment><USER22> You're technically right, but the Twitter API won't return the next 3600, even after deleting the first ones. The response will be empty, even if you know for sure there's more.

<comment><USER24> Meaning the API is leaking the number of deleted tweets?

Could you make a tool to find out how many tweets someone has deleted?

<comment><USER22> No, my understanding is that Twitter has a "bucket" of the latest 3600 tweets you've posted / liked. This bucket is faster than their database to query, so once you empty the bucket, the API returns no result, and the bucket is never "refilled" from the database.

Those are not technical terms, sorry, but this is how I currently understand it so it might help you too?

<comment><USER25> Rather than "buckets", I bet they just have a flag on each tweet in the database for whether it's deleted. So if you delete the most recent 3600, next time they do a query to see recent tweets, it retrieves 3600, but they're all deleted, so it filters them all out. Buckets are a little less likely implementation wise because you'd either sometimes see that the most recent bucket had very few tweets in it, or they'd have to be constantly shuffling tweets between buckets.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> The final straw for me was when twitter deprecated the years-old auth keys I had used without any issues because I wouldn't register my phone number.

If you look at twitter's checkered history, I don't see why anyone would put the effort into a new API without strict guarantees of future usability.

<comment><USER27> Strict guarantees of usability don't exist. Look how many technologies MS has abandoned.

</comment></comment><comment><USER28> Spoiler: It doesn't mention the word "client" at all. This is not going to bring back the features they took away in 2018.

</comment><comment><USER29> > given the security incident we discovered yesterday

We discovered. Heh.

</comment><comment><USER30> Nobody wants a new API. The new features don't make up for all the work needed to rewrite every call. Again. Nobody wants this.

<comment><USER31> It is probably true nobody who currently codes against Twitter APIs wants new APIs. I've rewritten them before and won't be doing it again. Maybe someone new will come along to replace us. Twitter doesn't care unless it makes them more views.

Doesn't matter anyway because they already got rid of the useful APIs, which broke everything anyone I knew had written. Handwriting has been on the wall.

Sort of like boycotting Facebook, it's only takes the step of stopping to set you free.

</comment></comment><comment><USER32> They are pushing stuff on the public API that has been available for years to "managed accounts" via Gnip.com.

This makes the paid APIs more widely available - it's now possible to start using paid APIs without talking to a sales person, with lower budget (but not lower prices - some endpoints cost nearly $1 per call).

They also plan to remove free endpoints 6 months to 1 year after a paid equivalent is released.

Bye bye per-user quota.

</comment><comment><USER33> Here's there actual roadmap: [https://trello.com/b/myf7rKwV/twitter-developer- platform-roa...](https://trello.com/b/myf7rKwV/twitter-developer-platform- roadmap)

</comment><comment><USER34> I'd care more if I could actually appeal my dev account being perma banned for real reason other than I failed to clearly express what I wanted to do with a app

> _You cannot create additional apps because your developer account was > rejected or suspended._

<comment><USER23> We got the same on one account because their emails went to spam. It's bloody weird to lock people out permanently for not seeing an email.

<comment><USER34> I got banned cause they didn't agree with what I wanted to go and I couldn't email/message/discuss with anyone why my use was not approved and allowed. I couldn't resubmit with changes to the plan and I had a proper business plan and it all went in the bin as I couldn't get API access. Shouldn't of created it all on my personal account I guess but it was an important lesson on not relying on external services

</comment></comment></comment><comment><USER35> "The number of active real users and followers on Twitter has been greatly exaggerated..." \- Inactive Twitter Users.

Bots and verified users have ruined the platform.

<comment><USER36> Personally, I don't have an issue with bots on a platform, as long as they are there to be helpful. In the case of Twitter, I would restrict bots from being able to reply to tweets^, retweet, or like. Only output original things (like automated messaging) or restrict it to DMs. And possibly restrict the use of @s and #s in those tweets so they can't affect trending. That way you can seriously cut down the signal to noise ratio and also make it much easier to spot a bot account.

And please put a BOT label on every bot account and tweet they send. This should be a hard requirement.

^ However, this would interfere with bots like the threading or videothis types. So maybe not apply that restriction.

</comment></comment><comment><USER37> Nothing to see here. This isn't an announcement, it's a pre-announcement. Empty PR, "We actually love developers (despite our sordid history), yadda yadda". Almost all of the details are TBD.

</comment><comment><USER38> Did anyone look at the prices?? Holy shit. Are they selling gold? Those prices are ridiculous.

<comment><USER39> Where do you find the prices?

<comment><USER38> When you login with the Developer account it gives you an option to upgrade and there you can see the prices. But I'll save you that: 2500 requests against their Full Archive costs 1899 USD. That's 75 cents per request.

That sounds absurd to me. 2500 requests is nothing and what if you're testing? The sandbox level is 50 requests for free.

Maybe I don't understand well the use cases but all the things that come to my mind for these APIs would required more than 2500 requests to do something interesting. They are pricing their data like if it was some sort of unique canonical truth vault when in reality 95% of it, it's just a bunch of shitposts.

<comment><USER40> Are you getting the prices from this [0] page? I think that's the pricing for the old API, because it still hast the standard/premium/enterprise split.

> In the past, the Twitter API was separated into three different platforms > and experiences: standard (free), premium (self-serve paid), and enterprise > (custom paid). As a developer's needs expanded, it required tedious > migration to each API. In the future, all developers — from academic > researchers to makers to businesses — will have options to get elevated > access and grow on the same API. > > ([https://blog.twitter.com/developer/en_us/topics/tools/2020/i...](https://blog.twitter.com/developer/en_us/topics/tools/2020/introducing_new_twitter_api.html))

[0] [https://developer.twitter.com/en/pricing](https://developer.twitter.com/en/pricing)

</comment></comment></comment></comment><comment><USER41> > Eventually, the new API will fully replace the v1.1 standard, premium, and > enterprise APIs.

Uh oh. Using nitter's [1] RSS feeds is one of my main ways to access news. I have the feeling this is about to end.

[1] [https://nitter.net/](https://nitter.net/)

<comment><USER42> nitter basically gets data from twitter the same way the the web client does it, using the unofficial (and undocumented) APIs

<comment><USER41> Good to know, thanks for mentioning it.

I guess they're quite used to breaking changes in twitter's API, then :) (presuming that a private API must change quite often)

</comment></comment></comment><comment><USER43> I hope they allow for blocking more than one user at a time at a minimum. Between the rate limit and only blocking one at a time, it takes forever to block a white supremacist and all their scumbag followers via the API. Much faster to just change your country to Germany.

</comment><comment><USER44> Knowing Twitter I imagine "improved" means more closed and with stricter rate limits.

<comment><USER9> For the free tier, the user endpoint users/lookup which now is just /users seems to maintain the same rate limit, and looking at the other endpoints I haven't seen something stand out as strongly reduced.

I notice that there doesn't seems to be a distinction in the new API between user context and app context as far as rate limiting is concerned, so maybe that would make a difference.

But a lot of endpoints are still missing so everything is still to see!

</comment></comment><comment><USER45> I always read comments about how Twitter is not profitable. Any ideas as to how much of their revenue comes from ads vs. businesses paying for API usage?

<comment><USER46> Twitter only has 8 consecutive quarters of profitability. At some point hn will catch on.

</comment></comment><comment><USER47> I get it, but anything with the phrase "new and improved" always strikes a nerve with me. In all honesty I hope other companies learn from this, and put in the effort to bolster their defenses-in-depth, especially at a CSE-level. I have witnessed many a times, how much power they are given, and how easily it could be exploited by just a bit of coercion.

</comment><comment><USER48> Notice the page never seems to mention 3rd party clients, the only thing many of us care about.

</comment><comment><USER49> Keeping my fingers crossed for removal of OAuth and other complications accessing the API. I hate using libraries for this, all I want is a simple token-based REST API, something like Facebook and many others have had for years.

<comment><USER23> OAuth is how you _get_ the token. Facebook uses OAuth just like Twitter does.

</comment></comment><comment><USER50> Things I would like: * Date when you followed someone * Bookmarks api.

Doesn't seems to be it.

</comment><comment><USER51> Lots of (seemingly justified) complaints here. Is anybody on Mastadon? I have joined, but I have no followers and don't know who to follow. I'd love some connections over there.

I'm @email@example.com

</comment><comment><USER52> All these years and they still don't have a serious API offering.

</comment><comment><USER53> Will they also switch from oauth1 to oauth2 with this?

(they already offer oauth2 for server to server, but as far as I know it's still on oauth1 for user authentication)

</comment><comment><USER54> Can something actually be both 'new' and 'improved'?

Also, why does it sound like you're trying to sell me a car?

</comment><comment><USER55> Still no word on if they plan to make twitter bookmarks a part of the API. Disappointing

</comment><comment><USER56> It doesn't answer the most important question: is it OAuth2 now?

</comment><comment><USER57> Public roadmap is always an interesting decision to make.

</comment><comment><USER58> Twitter absolutely deserves the bad reputation they have here, and this does nothing to change it.

</comment><comment><USER31> Why should anyone continue to use Twitter if it is unable to guarantee someone won't hijack one or more of its accounts?

Let's face it, those aren't our accounts or our data. They are Twitter's.

All of that is controlled by Twitter, and intended to serve their business interests, or whoever happens to be controlling Twitter at that moment.

It was just a few days ago someone else was controlling Twitter.</comment>


A Virtual Girlfriend? Yes, iPhone Has an App for That. - <AUTHOR> http://blog.mixamo.com/2010/05/24/need-a-girlfriend-how-bout-a-virtual-one/ <comment><USER2> Konami made iPhone versions of Love Plus so I think it is quite a bit of a stretch to call this the best quality virtual girl friend app.

</comment><comment><USER3> wow.. really?</comment>


Laughing Computer: A Google custom Search Engine for Programming Queries - <AUTHOR> http://laughingcomputer.com/

<comment><USER2> Needs to show the full url, not just the domain, as I use that quite regularly to filter results manually, and to exclude likely duplicates.

</comment><comment><USER3> I use to run a site that used the Google custom search engine and seen others try as well - they all seem to fail because you have pretty much no ability to "tailor" the results and in the end just Google.com works better.

</comment><comment><USER4> Hmmm I had a go at "error 1356" in both Google and this... Google comes back with the MySQL error I would expect to get. This one comes back with nothing about MySQL.

Odd because its powered by Google. I imagine that whatever phrase weighting that should be applied in this case isn't being applied.

An interesting idea though... perhaps its needs a narrower focus?

</comment><comment><USER5> Sometime back, I have created a similar programming specific search site, based on Google Custom Search

Here it is: <http://veerasundar.com/app/codered/></comment>


Many Eyes - a visualization tool by IBM - <AUTHOR> http://www-958.ibm.com/software/data/cognos/manyeyes/ <comment><USER2> JRE Install required. I can't install anything on my OS. Can you please get rid of this requirement?

<comment><USER3> Yeah, it's called d3.</comment></comment>


Ask HN: Why is the number of 'Show HN' posts declining? - <AUTHOR>

I see only 4 of them on the first 4 pages now.. <comment><USER2> They're not, they're just getting flooded out by other posts. There's been at least 20 in the last day, but only a tiny percentage (low single digits) ever make it to the front page.

</comment><comment><USER3> Possibly due to Summertime, I am constantly checking [http://showhnapp.herokuapp.com/](http://showhnapp.herokuapp.com/) it shows every post that contains the words "Show HN". That's how I found this post!

</comment><comment><USER4> I look forward to the MetaShow HN, a webpage that collects links to each Show HN posted, which includes a post about itself.

Interface with github/bitbucket to get the languages and licence info and auto tag.

</comment><comment><USER5> Better question: 'ask' is its own page, why not 'show'?

<comment><USER6> Yea. That would be nice, I am missing it too.

</comment></comment><comment><USER7> You can use hn webapp [http://hn.premii.com](http://hn.premii.com). There is an option to filter show and ask hn stories.

</comment><comment><USER8> Summertime? I know I build more stuff in the winter.

</comment><comment><USER9> Maybe people have seen everything. Just a guess.</comment>


Coding without Google - <AUTHOR> http://www.bfilipek.com/2016/05/coding-without-google.html <comment><USER2> Programming is so much more fun and awesome now. Everyone has a computer, and has their computer on them 24 hours a day. Whether it's a website or a mobile app, you're able to immediately get things in the hands of your "normal" friends and see what they think.

The development side of things are also better. All of these open-sourced, internet-networked tools/libraries/languages allow you to build really powerful stuff really quickly. Yes, there is a huge quality and maintenance problem, with lots of people writing libraries they instantly abandon, but I think this just forces you to read lots of source code and become a better programmer.

Build more powerful stuff, faster, and get it in the hands of more people, faster. What a time to be a programmer. The article does a good job of noting the problem of distraction, but I think that has always been an issue, and why we have always seen anti-social traits among lots of successful developers. Tuning out the allure of being young and having mindless fun in the 90s to focus on code is no different from tuning out the allure of being young and having mindless fun today. As for older people, well, it's always been a challenge to be super-focused and dedicate time to learning new things while dealing with household/adult responsibilities.

This is a very special moment as a developer. It is like being in the business of rock 'n roll in the era in which radio and television took off, which made it possible to create music that ended up broadcast around the world within weeks. If you can stay true to the roots of the code, and avoid all of the weird get-rich-quick types that have entered the scene, you can have a lot of fun right now.

The past wasn't any better, and the future can't be predicted. The time is now.

<comment><USER3> Programming is far less fun now, and more painful than it used to be: stupid management practices (agile, scrum, ...), broken and poorly documented 3rd party libraries, code reviews, pair programming, politically correct unit tests, it goes on and on. Check my previous HN postings for rants, if you'd like.

It used to be that your computer had a compiler, and editor, and a shell, and you would go to work, writing code. Now, in the age of programming by google, you are left with the much duller task of gluing together other pieces of code. It's boring, and there are so many distractions -- the ones noted above, as well as Facebook, Buzzfeed, etc.

Now there is one other thing that's going on. Most of us are working pretty high up the stack. I suspect that if you are working on low-level algorithms (for AI, database internals, DSP, ...) that programming remains a fun activity.

<comment><USER4> It sounds like you enjoy writing code itself more than the process of building software. I get the same sense of wonder and excitement when I get an app to successfully do something I thought up in my head whether it's just attaching up a Google API to get a map or location picker integrated and working or if I'm coding out the whole feature myself.

I have a lot of respect for hardcore "coders" (I feel like that term has a pejorative connotation in tech, but I don't mean anything bad by it). But I think there are plenty of people out there like me as well. I consider myself an engineer, not a programmer. I solve problems and build things. Writing code is just one of the major tools in my arsenal to get things done.

I think there are still tons of options out there for people who like writing lower-level code, but it's moved into areas like embedded systems and scientific lab tools. All the coding work for most of the common stuff has been basically commoditized already.

<comment><USER5> The funny part here is that in many cases it is still far easier to build stuff from scratch than to glue someone else's poorly documented shit together.

<comment><USER6> Yes. So many libraries are engineered to solve everyone's problems, you can spend hours, or days, figuring out if it is engineered to solve _your_ problem. It's like searching for a needle in a haystack you aren't sure has your needle.

</comment></comment></comment></comment></comment><comment><USER7> When I was 17 (about ~10 years ago) I was hospitalized for a whole month. All I had was my linux laptop without any games (well, I did have Battle for Wesnoth which was great) and no internet connection in the hospital.

I was so bored of being bed-ridden at the hospital that I eventually started browsing the source code of a C++ game engine (Irrlicht engine) and use that as documentation for a small game project. During that experience I learned to read the local documentation, read the source code and actually figure out how stuff was implemented in the engine, which quirks it had and even modify and recompile it.

Simply because I was bored and I had no way to get the answers I needed off the internet.

It was a very enlightening experience, I think every developer should get to a point, at least once in their life, where they're just sitting in front of the computer with no external distractions and no internet connection, just explore what you have and make the best out of it.

<comment><USER8> > "I think every developer should get to a point, at least once in their life, > where they're just sitting in front of the computer with no external > distractions"

Well, that's why I use Emacs in full screen mode, without menu bar or tool bar, with a very minimal .emacs configuration and only reference documentation inside Emacs in info format.

<comment><USER9> Yea but I guess the point is 'self control' \- I use emacs full screen too, that doesn't mean I don't just switch to a workspace for a browser when I need it.

</comment></comment></comment><comment><USER10> It can be kind of a fun experience to try coding something substantive without an Internet connection - say, while riding Caltrain or on a plane flight. It's a very different workflow. You need to download all of your docs ahead of time, and then get used to browsing through them as the doc generator intended. If you get stuck, better dig into the source code of that library you don't know how to use. You end up thinking through your code a lot more, and being more careful and more rigorous about the library calls you use.

I've found it's a pretty handy skillset to have, but for most everyday programming, I'm happy to reach for the search box.

<comment><USER11> Any ideas of a particular project to try while disconnected?

<comment><USER12> I've been working on a game recently, ([https://technomancy.itch.io/bussard](https://technomancy.itch.io/bussard)) and I've been struck with how refreshingly simple and self-contained it can be compared to a web service. I can still count all my dependencies on one hand instead of pulling in a huge intertangled graph of them, and I nearly always find that when I run into problems, they are of my own making instead of being thrust upon me by 3rd parties.

Granted I need reference documentation for the engine (love2d in my case), and I occasionally consult the Lua stdlib documentation (which I get from apt- get), but that's about it.

</comment></comment></comment><comment><USER13> Wow, this really took me back!

My first real experience with coding was the NeHe OpenGL Tutorials (which are still available online ironically). At the time I was writing a visualization plugin for an early version of Winamp, and I downloaded all NeHe's tutorials and saved them offline, as well as the OpenGL reference and Visual C++ CHM help file.

I would then go down to spend time with my grandparents in Southern Ohio, without any kind of Internet access, no cell phone back in those days, and a barely Pentium laptop. I later hauled my desktop down there, but most of the time was spent out on the deck with my shitty laptop.

It was amazing.

I would just spend the entire day coding and learning, while my grandmother read her book, out in the wilderness, looking out over a picturesque lake every now and then to clear my mind and think about a problem I was having, or to ponder the next steps in what I wanted to learn or do. Especially hard problems would require a nature walk while I thought about how to best represent things in the real world and grasped 3D graphics concepts for the first time.

In between breaks we would take turns getting up and making tea for one another, and every now and then I would make something cool, or learn something for the first time, and excitedly have to show my grandmother, who would immediately tell me I was "so smart" and shake her head in amazement of "modern technology".

Towards the end my grandfather put up speakers and we listened to old 50's and 60's big bands out on that deck during these trips. I think more than anything these were the shared experiences that got me into coding and really opened my mind up to the possibilities.

These days, this kind of situation and environment is hard to replicate. Things are just so unnecessarily complex and now all our tools expect an Internet connection to work. It makes me sad that today's generation will probably never know the kind of experience I had. There is something about not having the Internet at your fingertips that forces you to reason through things on your own and find your own powerful source of creativity rather than the route search/download someone else's code that we all do now.

<comment><USER14> While I don't live in as nice of a place as that, I used to go on walks with my dad when a programming problem was bothering me (he used to be a programmer in the 90s and early 2000s, but is a lawyer now). These days I still go on walks by myself when I'm trying to solve an especially hard problem, and my suburb is very tranquil and calm at night. Good chance to get some exercise and think about whatever is bothering you.

IMO, you don't need the internet to solve a problem if you actually understand what's going on.

</comment></comment><comment><USER15> I have been a dev for 15 years. Its seems less fun now. I did hard core C++ games for 13 of that (Nintendo DS+Wii, 360 and PS3 games). You always had a pretty good sense of what what going on. Now I am doing web/mobile. Its just a messy swamp. Everyone's first instinct is to slap another JS library on every problem. The build breaks and I ask what does somebslib.js do? No one knows or cares. They just keep slapping more JS on the problem until it looks like it works. No desire to have a clear mental model. No desire for efficiency. Oh well. Working on personal projects is the only super fun coding I get to do.

<comment><USER16> I get what you're saying, but I don't think we should stop this movement of "plug and play" coding. Last year, I needed to build a really small app to be used internally by my company. Without "slapping another JS library" in, it would have taken me 6 months to build this application, but I did it in 2 weeks. It works, ~30 people use it every day, haven't run into any problems.

A critic would say, "but what about in ten years when they need to fix a problem with the app you built, but none of the libraries are around, or have all changed significantly, etc". To which I say, just build another one, the first one took me two weeks, just spend another two weeks building a newer one. Code is cheap, throw it away and get new code if the old stuff stops working.

</comment></comment><comment><USER17> I started coding in the 80's, when all I had was access to the BASIC programming manual that came with the Timex 2068.

Thankfully I also got some programming books shortly thereafter, which introduced me to Z80 Assembly.

Back then these books for home micros were targeted to children so you had cartoons and funny drawings explaining programming concepts.

[http://www.misteriojuvenil.info/detalhes.php?id=3422](http://www.misteriojuvenil.info/detalhes.php?id=3422)

Since those descriptions are in Portuguese, the Atari archives are a better example for an international audience,

[http://www.atariarchives.org/](http://www.atariarchives.org/)

Other than that, we had to get listings in Crash, Your Sinclair, Micro-Hobby, Micromania, Input, Spooler. Most of them we had to fix before they could run, because there were always the usual typographic errors breaking the code.

Specially painful when typing hexdumps of Assembly for entry into monitor applications.

Then those of us lucky enough to live close by to a library with computing books, also got to hold some of them. Or get to meet others to share our ideas.

When I managed to get online to the local district BBS, I was already 18 years old, and one could hardly use it, because how expensive it was and it only allowed between 5 to 10 simultaneous connections.

We were forced to think out of the box and try to figure out the solution to a given problem on our own. Which lead to very creative ideas.

Specially in the demoscene community, which was a great experience back then.

Nowadays, we just copy-paste.....

<comment><USER18> _Back then these books for home micros were targeted to children so you had cartoons and funny drawings explaining programming concepts._

Some of these books are still available. Usborne put a bunch of their old ones from the 80's for free online:

[http://www.usborne.com/catalogue/feature-page/computer- and-c...](http://www.usborne.com/catalogue/feature-page/computer-and-coding- books.aspx)

See their assembly book, "Machine Code for Beginners"

<comment><USER17> Thanks for the reference!

</comment></comment></comment><comment><USER19> When I started coding 30 years ago, I didn't have internet, and being a kid living in a remote rural area where even the nearest bookstore is a long drive away - virtually unreachable for a 12 year old - I hardly had any resources available at all. It was both frustrating and exciting.

Every book or tool you could get your hands on was a treasure; and my friends and I, developing primitive adventure games, had to reinvent some wheels in pretty lame ways, like image compression for our backgrounds, or drawing of sprites onto a background.

I once got my hands on a 8086 assembly manual, what a gem that was! but alas, we had no assembler or a C compiler, so we reverted to creating blank files and using DOS' DEBUG.EXE to tweak the assembly from all zeros to whatever we wanted.

It was really exciting although not very "productive". Then one of the guys got a modem and the BBS world opened up to us, and it was never the same again.

<comment><USER20> > we reverted to creating blank files and using DOS' DEBUG.EXE to tweak the > assembly from all zeros to whatever we wanted.

I started coding in assembler on a z80 based machine. All my programs would be written out in opcodes, on paper.

Then once I was sure they "looked right" I'd place the opcodes on another sheet. Leaving the jmp-targets blank.

The final step, before entering the code, was to count the length of instructions so that the jmps went to the right location.

Fun times. I'm amazed I had the patience to stick with it.

<comment><USER21> Very similar story here, and I share the amazement at my own patience, but then I remember - there was nothing else to do. I was a kid - no car, no job, 3 channels on TV. What else would you have done?

<comment><USER20> I only started programming at all because the bundle that contained the computer + tape-deck + games had a faulty tape-deck, such that my family couldn't use it.

I spent about four days reading the manual, complete with BASIC tutorial, until the shops opened again and it could be returned & exchanged.

(This would have been in 82-83 or so. When I was 7.)

</comment></comment></comment></comment><comment><USER22> Maybe programming with Google by my side has taken away some of the romance I associated with programming, but it has certainly made me a better and more productive programmer.

I found a Zip drive(anybody remembers those?) with lots and lots of my early source code, circa 2004, when I programmed day and night, because it was so much fun to learn. There was no Stack Overflow back then and even Googling yielded fewer results. Unfortunately some of the creative solutions I came up with back then, make me cringe right now.

Being able to consult with knowledge and experience of people much, much smarter and wiser than me, has made me more productive. I don't waste time solving the same problems again and again, I can find tested and efficient solutions to problems quickly. I am more productive by leveraging all the knowledge. I am not paid to implement quicksort and then test it extensively to match already existing solutions that are blazing fast, I am paid to do real, practical work. The less boilerplate I have to write, the better.

Just my 2 cents.

<comment><USER5> Internet is dark and full of stupidity. It is weird to expect it to feed you with a refined collective wisdom.

There are far better places full of knowledge. You know, good ol' libraries.

</comment></comment><comment><USER23> My (I was 8) first computer (not PC) I got beginning of the 80s when there were only BBSs with, at least in my country, not much programming info (pirated software, images, stories, text games, porn). I had a Basic, assembly and C book second hand and I bought the occasional magazine and listed/disassambled existing software I typed over from mags or downloaded. That was all that was needed: the rest you had to make up by reading in the manual or experimentation.

For my current hobby projects I use things like C, Forth, Lua: languages and libraries I can keep in my brain and do not need internet for to write things that work. Compared to commercial work it is especially the fast changing things (often changing for no apparent reason) like JS projects and/or some web/app frameworks that really require Google. Certainly the best practice to use a library for _everything_ , even when unstable or rapidly changing, is a pain. It is often much faster to write things yourself without having to debug yet another library but you keep thinking you are wasting time and fall for it. With internet not available you have to find a solution yourself. Using a lib is usually the better solution but just writing things without Google just feels better to me.

<comment><USER24> Lua was my first programming language and it really is beautiful in that you can keep the whole language in your head and write entire programs without looking anything up. In fact - when I first started programming in other languages, it would essentially boil down to: write snippets in Lua, then google to find out how the syntax works in the other language, and copy it over.

<comment><USER23> Yeah that is why I did (and sometimes do) in Forth. Because it's terse and no syntax it is so rapid to just try little things out. Unfortunately MOST code I write does not benefit from that (web/app) but the embedded and game work certainly does.

</comment></comment></comment><comment><USER25> In current times you can build vastly more powerful software than you could in "the day", but you can't possibly remember how to drive it all.

Constant reference to Google and StackOverflow is unavoidable unless you are building something within a very constrained technology.

<comment><USER26> This is very much on-point, many of us are working with a bunch of disparate technologies loosely connected by standardised protocols and considerably less standardised APIs.

</comment></comment><comment><USER27> I find coding offline more constructive - my most productive coding sessions are on the train. Getting to focus on what I'm trying to achieve without getting distracted is important and useful.

But debugging is impossible without the internet, I find. Working out what an error means from just the error description and the source code of the library is bloody difficult. Googling the error message gets better results immediately. A friend and I were talking about this, that maybe we should just use UUID's for error messages and write the error description in Stack Overflow, since that's where they'll end up anyway.

<comment><USER28> > I find coding offline more constructive - my most productive coding sessions > are on the train. Getting to focus on what I'm trying to achieve without > getting distracted is important and useful.

I do this as well. Airplanes and underground trains are some of my favourite places to program.

> But debugging is impossible without the internet, I find. Working out what > an error means from just the error description and the source code of the > library is bloody difficult.

I find most bugs by reading the code.

The error doesn't mean anything.

You have decided that the computer did something unexpected. Rather than assume the computer is wrong, you need to assume that it is correct, and that some part of your assumptions were wrong.

A friend of mine was trying to hash some content, but _every_ file it hashed was `da39a3ee5e6b4b0d3255bfef95601890afd80709` so he tried all sorts of stuff. If you _know_ what the SHA-1 of an empty string is, then you're like google, but if you just read the code, you'd see a `||` instead of an `&&` that meant that the `read_file()` never occurred.

<comment><USER29> 1.That can't happen. 2.That doesn't happen on my machine. 3.That shouldn't happen. 4.Why does that happen? 5.Oh, I see. 6.How did that ever work?

<comment><USER9> That's always the tough one: "How did this even work in the first place...."

</comment></comment></comment></comment><comment><USER30> I think part of the problem these days is expectations.

Many years back, drawing a simple vector drawing on the screen was amazing... now it's a single command, and people expect HDR 3D rendered images otherwise it's not worth doing.

Life is busier, more 'impressive' and the internet shows you many people who are so advanced you shouldn't even bother.

The days of home computing were awesome in so many ways.

Then again, the opportunities are just different these days - the astonishing capabilities given to new games designers through Unreal Engine / Unity, etc.

The ability to show your work to so many people and not need computer 'friends' that live nearby.

It's just different.

It is a shame that so many people don't read so much to gain knowledge but instead mentally cut/paste examples to build something quickly.

</comment><comment><USER31> I learned programming alone with qBasic when I was 14 without internet.

By luck my father had left an icon to qBasic on his win 3.1 computer and it had a similar interface to edit which I knew very well, and I opened a file and realised the code made it go.

qBasic had a good and complete help with all the functions and examples. I loved it, and It helped me learn english and basic.

I remember playing football with friends and an idea came up to solve a problem I had at the time and I stopped playing to write the code in my school notebook. When I came home, it worked.

The internet has many dogmas and principles that are being repeated and learned by novices without understanding why by going through it themselves. Sometimes a singleton is the right thing to use, for example.

</comment><comment><USER32> Google is too useful to not use it, But you shouldn't have to do a google search because you don't remember a command or basic functionality of a language or library. That information should be rapidly available by the documentation. Google should be used for troubleshooting or researching a new concept.

[http://devdocs.io/offline](http://devdocs.io/offline) is a great resource if you want to code offline.

</comment><comment><USER33> One of the advantages of Google is that technical documentation often omits critical details. How often do you look at something on MSDN, or Apple's docs, and just scratch your head? Then, a quick Google search fills in the missing information!

Back in the 90s, I couldn't just go Google the ambiguous areas of Borland's documentation. As a result, I probably made lots of silly novice mistakes that a novice today won't make.

</comment><comment><USER34> I have a slightly different perspective as someone who learned how to code in recent times (about 4 years ago) with the rich amount of resources on the web.

I do use Google & the internet generally a fair amount, largely for referring to APIs, but for various people's approaches to solving certain problems on occasion.

The two dangers of relying heavily on Google though is losing knowledge & sometimes generating doubt in ones conclusions from a well-reasoned understanding of the problem, and encouraging inefficiencies when sometimes a little harder thought at a problem could solve it much faster due to having sufficient knowledge.

My opinion is that there are pros and cons having the vast resources of the internet, and while it has mostly been a net positive thing, we should know to guard against the weaknesses that is possible to slip into being too heavily reliant on it.

</comment><comment><USER35> I often find myself contemplating to move my information consumption back to a purely paper based approach as long as this is still possible. After all, good newspapers and magazines do a good job at curating the most important information for me. The fact that this way, "news" arrive with a little delay at my desk, doesn't make me less smart on a higher level. The only useful information on the net (useful in the sense: makes me money and saves time) is purely job related stuff. But the net makes it really hard to only read those parts... I still hope, I can find a good balance on the electronic world one day.

</comment><comment><USER36> I feel that programming is fundamentally similar to other writing in that there are more and less research-oriented "subtypes" of writing and writers.

If a journalist is writing a 1-column newspaper story about how the European Central Bank's latest meeting affects banks, that's clearly a research- oriented piece. Probably she will spend more time on discovery of facts and stakeholder opinions rather than actual writing.

On the other hand, a writer working on a short story may do very little research. Fiction generally builds on life experience -- it's very hard to write a heartfelt story on a topic that you have to constantly google up.

Something similar happens in software, at least to me. There's some coding that requires constant online research and browsing... But then there's the other kind where I know my tools already, I know the project is possible based on previous experience, and I can just sit down and start writing. IDE autocompletion and one-click access to relevant API headers often ensures that I don't need online help for anything.

I like the latter kind much more. Research-oriented coding makes me feel like I'm some kind of junior API lawyer. The other kind is more like making a painting: you're slowly building up something that might be good but you also have to accept that it will look like shit at many stages. That solitary exploration is the reward to me in both painting and programming.

</comment><comment><USER37> My problem with with trying to learn programming back in the mid-90's (my first attempt at programming) was that I couldn't find any books that I could really get into and truly learn from. I knew I should be able to figure it out, but things weren't clicking. I'm sure that had to do with the quality of bookstores in rural NH at the time, but still, it was horribly frustrating to drop a bunch of cash on a few books that seemed pretty good in the store only to get home and realize that after the first chapter or two I felt completely lost and hopeless.

Fast-forward to my second attempt to learn programming ten years later in the mid 00's, and between the sheer amount of tutorials/ebooks/other random things online, I was able to pick it up very quickly, the way I always figured I should be able to. Part of that was definitely the shift to higher abstraction levels for a lot of things, but I firmly believe a large part was that I was able to much more easily find instruction that worked for me, rather than having to choose from just a few limited options.

Because of that, I have no real fond memories of programming before google, and I owe all of my ability to the programming-with-google world. (That said, I have extremely fond memories of the communities on the BBS's I frequented back in the day!)

</comment><comment><USER38> A bit surprised with the view of Code Googling, imho it boils down to deep and shallow knowledge. Even though results are quicker when googling you will never find optimal solutions for your problem or not even necessarily accurate. It was a bit more painful before but the diversity of solutions was immense and solutions were optimized for the problem at hand. It's a good thing to make programming more accessible but it's not the necessarily the way to go for all programmers.

</comment><comment><USER39> I was one of those guys in 1990... heck I was one of those guys in 1983. But I don't really romanticize it. I still have three shelves full of books, including some classics like the 3-vol. Knuth, Abrash's Zen books, the ARM of course, as well as the C++ essentials (Lippman, Meyers, Eckel, etc.), gang of three patterns books, and quite a few others. I spent thousands on books, but I haven't bought a book on programming in something like ten years now. I once paid $140+ for an IBM manual on programming the PC VGA chip. I'm sure I still have it in a box downstairs. I also paid $700 for a 9600 baud modem, and regularly forked over $400+ a month to Compuserve, where I spent time with other geeks on the Computer Language and Dr. Dobbs' Journal forums. Interesting times.

It's worth noting that one of the reasons search is in general so important these days is there are so many more things we have to know. If you weren't actually working in those days then you don't realize how comparatively simple it was. There was more complexity on a micro scale, because we were writing compiled code w/o the benefit of all the high level abstractions available now. But on a macro level things were much, much simpler.

</comment><comment><USER40> When I programmed in university pre-2000, I used gopher in place of google.

Applicable matches were limited to source code file search, which gave examples of function calling out in the wild. There were no books of use available, and the documentation was often vague and incomplete man pages.

</comment><comment><USER41> This reminds me of Derek Siver's post about memorizing a programming language[0]. If I start working in a new language or new framework full time, I find it really helpful to be deliberate about learning the things I'll use regularly, to reduce the dependence on Google for common API calls etc.

Like others have said I've found that programming on a flight or long train ride is super productive, especially for starting a new feature where I'm writing fresh code (as opposed to debugging existing code). For some reason I've rarely translated that into deliberately using "flight mode" when I need to focus.

[0]: [https://sivers.org/srs](https://sivers.org/srs)

</comment><comment><USER42> I find this interesting, as I recently completed a book (1).

My co-author (much younger and smarter than me) mentioned while we were in the middle of writing it that he'd 'never read a computer science book'.

I had to reflect on how much had changed in 15 years of software development. When I started I was using Dogpile to search for 'documents' on the 'net (which had an apostrophe then) while balancing a 'learn C++ in 21 days' book on my knee.

So 'coding without books' (and coding well) is already more than possible.

1) [https://www.manning.com/books/docker-in- practice](https://www.manning.com/books/docker-in-practice), since you ask.

</comment><comment><USER43> Wouldn't be a great idea a VLOG of someone coding without internet at all ,and talking about the pros and cons?

Once I moved to a small town , and I didn't have too much money for proper broadband , so I had 2 hours of dial-up every day.

I remember using that time much more efficiently and trying to download PDFs and such for the following hours , a lot of the things I've read in books/PDFs then I still remember today after 10 years. (Basic unix IPC and others)

Some of the things I've read online yesterday I don't remember today ha!

</comment><comment><USER44> I semi-experienced this last year when I was teaching coding in prison. For obvious reasons prisoners weren't allowed to have internet access, their learning entirely depended on outdated learning manuals and tutors.

It was hard, though it became clear very quickly which books were actually written for beginners even though all of them said "introduction to blah blah" or "foo bar for beginners".

</comment><comment><USER45> I felt like I was doing a degree in google-ing at one stage, but I don't believe the speed and complexity of development nowadays could be matched by the pre-broadband days. Communities can be brought together on sites like Stackoverflow and people who aren't experts in certain fields can just google it, and implement something in minutes that would take much much longer to find, then learn, pre-google.

</comment><comment><USER46> With that program you even download an offline version of Stackoverflow. Just download Dash [https://kapeli.com/dash](https://kapeli.com/dash) and make all your coding docs offline available. It's really impressive for coding/working without Internet connection. UPDATE: Did not know about devdocs.io Seems like an opensource version of Dash.

<comment><USER47> Yeah. Dash is brilliant, though Zeal[0] is the real FOSS Dash ;)

I adore Dash though, and honestly reach for it (with a tonne of docsets loaded into it) before I reach for my browser these days. Extremely useful, especially when doing work with very well-defined APIs.

I do a lot of personal programming on public transport, and while I can tether, to be honest I prefer using Dash and keeping my computer mostly offline if I want to focus.

[0] [https://zealdocs.org/](https://zealdocs.org/)

<comment><USER48> I came here to post the same thing. Now, some projects do not have their documentation wrapped in Dash docsets.

</comment></comment></comment><comment><USER49> All the people romanticizing the good all days need to write CAD/CAM software in Fortran IV on an IBM 360 with nothing but the five thousand opaque IBM reference binders and a couple of college texts on computer graphics. To a deadline.

The real "joy" was posting a problem on the comp.lang.c and praying Dan Bernstein or Henry Spencer was online and would answer sometime in the next day or so ...

</comment><comment><USER50> To fight distractions online and stay in a coding zone, I use RescueTime and set limits on time spent on distracting sites. Like hacker news. ;)

</comment><comment><USER51> >I could focus better on the ideas and on the code. Now, with so many distractions you need to be more resistant and self disciplined.

I think it is about the task at hand. When I try drawing 2D spaceships and adding keyboard controls, it is a flowing experience no matter what tools I use.

When I start solving bugs in compression libraries or debugging million line code bases, it is all pain, frustration and google.

</comment><comment><USER52> God, I remember hunting up the various Inside Macintosh books in the mid-90s. I finally found some in the library of a tech college.

"No, we don't even let our students take those out of the library."

So I made hand-written notes, went home and tried to use them. It was slow work and I didn't get very far.

I much prefer Google. I just read whatever I find with a much more critical eye.

</comment><comment><USER53> This reminds me of the time when I first started getting more into computers around age 13/14 and learned HTML when I had limited bandwidth dialup. I had to push myself to test things by going over to someone overs house and then tried my best to get the concepts down

</comment><comment><USER54> "I often downloaded pages with tutorials, so that I could read them offline later." \- So true.

</comment><comment><USER55> > I believe that offline experience that I had in the past was a good thing. I > could focus better on the ideas and on the code. Now, with so many > distractions you need to be more resistant and self disciplined.

More disciplined === better programmer. The Internet is doing it right.

</comment><comment><USER56> I got into java pre google my mac didnt have enpugh disk space for code warrior but the jdk was tiny enough to fit on my mac performa with its 250 meg hard drive. Wrote my thesis project in java 1.0 java was horrifically slow back then but the jdk was really small.

</comment><comment><USER57> Coding with Google at your side is great, until you have to interview on a whiteboard without access to Google... while interviewing at Google.

</comment><comment><USER58> i remember back in the day when you had to order paper reference books and it took days to weeks to get them, or for the supposedly free ones you were denied because your need/qualifications were somehow not right. And you simply could not proceed without them.

</comment><comment><USER59> related : [https://news.ycombinator.com/item?id=11700640](https://news.ycombinator.com/item?id=11700640)

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

</comment><comment><USER60> A huge difference between programming Before Google and now is the explosion in libraries/frameworks/APIs. With arbitrary undocumented "features" requiring obscure setup and workarouds. Google gets you to actual programming faster.

</comment><comment><USER61> Point made, I'm reading this instead of coding right now.

</comment><comment><USER62> Come to China. No Google here!

(You can get to Google with a VPN but...)

</comment><comment><USER63> Actually there is a difference between gluing pieces of code and making it work and writing algorithms that solve hard computer science problems.

</comment><comment><USER64> Good coders code, great - reuse. :)

</comment><comment><USER65> I learned programming on a Sinclair ZX81 with the manual of that computer. I think it was called Timex in the USA. There wasn't much that could be done on that computer so the manual was more than enough. Exception: machine code, which needed another book. With two reference books I could do basically everything.

Fast forward to today. I would need a reference book for every language I use, possibly more than one per language (core language, standard libraries, etc), plus one reference for every library (jars, gems, node modules, ...). This is both inconvenient and impossible.

Inconvenient because I would need a bookshelf of, how many? one hundred books? And good luck doing it on a train.

Impossible because how could the author of Random Library XY n.0 publish a reference book for at least every major version of it? Software development would slow to a crawl (but maybe there won't be JavaScript fatigue and the like.)

The solution would be something close to what I did out of necessity in the early 90s, pre-web: download the manual of the program or of the library and maybe print it. I remember that reading a manual from the first line to the end meant that I really knew what that library did. Now it's more like I google for it, load the page, CTRL-F for the concept I'm looking for, try it, it works -> done, it doesn't work -> google more or look for another library. Shallow knowledge of hundreds of libraries vs deep knowledge of a handful of them.

Some languages enforce or facilitate writing documentation inside the code and distribute it. Example: Ruby gems usually install the rdoc so you have local documentation fore every gem you download and can use it offline. However getting to the rdoc for one among the dozens of gems I could be using in a project is slower than getting to its README on GitHub, which maybe is the only documentation there is. Can maven download the javadocs for every jar it gets? Apparently yes but I googles for it :-) [1]

Finally, looking on the ruby-lang site for that method I seldom use in the Enum class is much faster than turning pages in a book.

And this is when everything goes well. When you have errors (not the easy ones) good luck without googling the answer. You could waste days understanding what's going on. Either you end up with intimate knowledge of every piece of software you're using or you give up and find a job in another industry. Again, software development would slow down to a crawl.

So... there is no good alternative to googling with the exception of very short sessions when you want to be totally focused, you know very well every piece of software you're working on (maybe you use other software of yours as a reference) and there are no surprises.

[1] [http://stackoverflow.com/questions/5780758/maven-always- down...](http://stackoverflow.com/questions/5780758/maven-always-download- sources-and-javadocs)

<comment><USER5> Far better solution is to supply documentation with a library. Also, there are such things as docstrings and literate programming.

Also, there are still areas where you can be pretty much on your own and do not use any external libraries.

</comment></comment><comment><USER26> Coding without searching basically boils down to coding without docs, and that seems pretty self-defeating.

Sure - If you just can't resist Stack Overflow's dubious charms, or find yourself updating your LinkedIn profile three times a day then cutting the hardline has some merit, but they aren't inherently programming issues.

<comment><USER66> > Coding without searching basically boils down to coding without docs, and > that seems pretty self-defeating.

He does mention though, was that back in the day he used programming books, which would have contained example snippets explaining most problems.

I started coding pre-internet. All you had was your text mode IDE or editor, and if you were really lucky, it had a basic searchable help function that you just kept attacking with keywords until you stumbled on a function or principle that solved your problem.

These days, everyone goes to the top result on StackOverflow and looks at the answer, then thinks 'ok, that'll do' without actually seeing if the answer is actually the most optimal. Pre-internet, without that level of group-think, there'd be multiple ways to solve problem X, and each programmer approached it differently. Some methods would be good, and some bad, but by working it out yourself made you a better coder in the long run.

This is why I think that older programmers have better analytical brains due to their long history of not being able to 'just look it up' \- you had no-one to help you; if you couldn't solve it yourself, it didn't get solved. I lost track of the many early ideas I abandoned because the routines needed were beyond my coding ability (for me, graphics coding was/is my Achilles heel). Is that a good thing or not? I don't know. But what I will say is that starting to learn to code with the internet at your fingertips, may make someone a lazy coder, but it's hard to ignore that infinite well of knowledge...

<comment> jon-wood > These days, everyone goes to the top result on StackOverflow and looks at > the answer, then thinks 'ok, that'll do' without actually seeing if the > answer is actually the most optimal.

Maybe some people do, but I don't know anyone good who does that. They might go to Stack Overflow to get an idea of what direction they should be heading in, but they'll then use that information to build a solution that fits the overall system they're working on.

<comment><USER66> Agreed. I was generalising to make a point. I do think though that a LOT of 'coders' out there are just adept at copy-pasting.</comment></comment></comment></comment>


Startup Black Friday - <AUTHOR> http://www.producthunt.com/e/black-friday-startup-toolkit

<comment><USER2> A Great "Which services should I look into when starting to build my product" list. Love product hunt for many reasons, but it's so easy with the lists to just go in and select what the community thinks are the best.

</comment><comment><AUTHOR> check the comments for the deals/coupon codes. Segment, mixpanel & mention have pretty good ones</comment>


2016 Letter to Shareholders - <AUTHOR> https://www.amazon.com/p/feature/z6o9g6sysxur57t <comment><USER2> > _Third, use the phrase "disagree and commit." This phrase will save a lot of > time. If you have conviction on a particular direction even though there's > no consensus, it's helpful to say, "Look, I know we disagree on this but > will you gamble with me on it? Disagree and commit?" By the time you're at > this point, no one can know the answer for sure, and you'll probably get a > quick yes._

This sounds really powerful but also like it might be open to abuse. Does anyone use something similar in their own workplace?

<comment><USER3> Not worded this way, but the idea of commitment is valued more heavily then unanimous decisions at my work. In particular, we follow that puts commitment right after conflict, agreement isn't necessary.

I don't think this is abused because it's up to all parties to give their commitment. I can't give your commitment if you disagree, only you can.

</comment></comment><comment><USER4> A lot of good stuff, I especially liked points about high-velocity decision making:

"Many decisions are reversible, two-way doors. Those decisions can use a light-weight process."

"most decisions should probably be made with somewhere around 70% of the information you wish you had. If you wait for 90%, in most cases, you're probably being slow."

"use the phrase "disagree and commit."" ... It's a genuine disagreement of opinion, a candid expression of my view, a chance for the team to weigh my view, and a quick, sincere commitment to go their way."

<comment><USER5> That 70% idea comes from Colin Powell I believe. Of course it probably isn't his originally. [http://govleaders.org/powell.htm](http://govleaders.org/powell.htm)

</comment></comment><comment><USER6> Good read. I thought this was sort of paradoxical though:

"First, never use a one-size-fits-all decision-making process."</comment>


Litecoin - Bitcoin - <AUTHOR> https://en.bitcoin.it/wiki/Litecoin <comment><USER2> Fellow Litecoiners:

I'm launching a campaign for Litecoin tees at Teespring. The goal is set on 50 shirts. If we reach that goal, the shirt will be printed and will be sent to you. If the goal isn't reached, you don't have to pay anything.

<https://teespring.com/litecoin></comment>


Minute for Up to date Digital marketing promotion strategies in Covid-19 - <AUTHOR> https://www.linkedin.com/pulse/15-minute-refresh-digital-marketing-promotion-covid-19-dhaval-panara <comment><AUTHOR> Covers the latest techniques...</comment>


RED is going to change the game for indie films - <AUTHOR> http://borderlinetheory.com/?p=115

<comment><USER3> Cameras are to indie film makers as laptops are to web startups: important to have but not their biggest concern. Pro cameras can always be borrowed or rented if need be. The bigger concerns for an indie film are paying for a lighting crew, a sound crew, line production, then months of editing and post production, and then trying to get anyone at all to distribute the finished product. Nice camera? Yes. Game changing? No.

<comment><USER4> I think for a lot of indie films it's a bunch of guys in a profit sharing scheme living on ramen noodles. Back when I was applying to college I looked into film school, the 35mm film costed $600/minute, and since they're photo films you can't overwrite them. If you screw up you throw them away. So in effect the medium is the weakest link for a lot of indie people, especially ones on the low end of the spectrum.

</comment></comment><comment><USER5> Here's a link to the company's web page: <http://www.red.com/nab/scarlet>

</comment><comment><USER6> I think the reality is somewhere in between the excitable article and the downbeat comment; being able to shoot more cheaply is nice and all, but still does not mean indie filmmakers will be any more welcomed into theaters (many of which still require prints anyway).

Much more interesting than the improvements in price/quality of digital filmmaking is the possibilites of film distribution on the net. It isn't happening as quickly as I'd hoped, but as bandwidth gets cheaper and faster, and televisions get more connected to the net, I'm expecting the film industry to change quite dramatically. The emergence of cheap digital filmmaking and web-based distribution networks will be similar to the recent change in dynamic of web startups. And the longer the big studios avoid exploiting this model, the more chances it has to be seized by independent filmmakers (and startups ;).

<comment><AUTHOR> It depends on the market, locally, the owner of a major theater chain has adopted digital projection on something like 35+ screens in the greater metro area and has really been open to some of the smaller indie films. Many times it takes a lot of vision on the part of the theatre owner/manager because indies can really depend on the "long tail" when it comes to theatre audiences. They don't have the money to advertise so you run the film for a week and hope those people tell their friends and they tell there friends and pretty soon you start to see some steady returns as the word gets out, but this takes some guts and patience from the owners.

Net distribution will be a great avenue as well, given how reticent the studios have been to band together and provide "one" place where people can go to rent/buy films online.

<comment><USER6> I'm hopeful that net distribution will eventually feed-back into theatres - <USER2> films can build small followings online before getting theatre runs.

<comment><AUTHOR> That is a really good point!</comment></comment></comment></comment>


The Longest Continuous Flight in History – 64 Days in a Tiny Biplane - <AUTHOR> http://worldwarwings.com/longest-continuous-flight-history-64-days-tiny-biplane/ <comment><USER2> Worst use of the word "biplane" in an aviation article?

<comment><USER3> It's not a biplane, is it? I only see one wing.

Edit: It's a Cessna 172, and for sure, not a biplane.

<comment><USER4> Confused why they thought a Cessna 172 was a biplane. Its even in the title of the article.

One thing for sure it shows the durability of the Cessna planes. Testament to that design and construction.

</comment></comment></comment><comment><USER5> AOPA has a much better article about this flight: [https://www.aopa.org/news- and-media/all-news/2008/march/01/e...](https://www.aopa.org/news-and- media/all-news/2008/march/01/endurance-test-circa-1958)

They also know better than to call it a biplane ha

<comment><USER6> Shame they didn't include pictures though. The one with the car racing along for food/fuel was pretty awesome.

</comment></comment><comment><USER6> Here I thought 15 hours straight from New Delhi to Newark was bad. 64 days is just not even believable it's so insane.</comment>