Venezuela, Bolivia offer asylum to U.S. intel leaker Snowden  - <AUTHOR> http://www.cnn.com/2013/07/05/world/americas/venezuela-snowden/index.html?hpt=hp_t2 <comment><USER3> It really is the most wonderful irony that the US's apparent heavy-handed actions over Morales' plane ended up biting them in the ass.

As an American, I really do want to know, though -- who are the ham-fisted officials in charge of overseeing Snowden's prosecution? Who was the actual official who made the decision to tell France and Spain not to let Morales land? And who are the officials in France and Spain who decided to obey? (And are they still denying it?)

I mean, regardless of what you think about Snowden, the level of American incompetence here, the way our officials are simply disrespecting other governments and peoples of the world, is really astounding. It's shameful, and I wish I knew who the bumbling officials actually are.

<comment><USER4> I don't know why many assume the U.S. was behind this. France and Italy have their own spy programs and the less said the better, so blocking him could have forced Snowden back to Russia to accept Putin's terms (stop talking) or cause his capture.

<comment><USER3> Well that's why I said "apparent". But it is awfully hard to believe that a country would independently take the seemingly unprecedented step of dening landing privileges to a sitting head of state, "just because" \-- when Snowden has had nothing to do with either France or Spain.

And it's even harder to believe that _two_ countries both would.

<comment><USER4> I had assumed the U.S. was behind it, but P.J. Crowley doesn't think so.

[http://www.youtube.com/watch?v=cv0AOpfeN6k#t=428s](http://www.youtube.com/watch?v=cv0AOpfeN6k#t=428s)

</comment></comment></comment></comment><comment><USER5> I've lived in Bolivia for a year when Evo Morales was already president. I've also been to Venezuela.

Assuming the CIA won't try to actually abduct him there and Morales will stay in power, Bolivia is a perfect choice in many ways. Morales is totally trustworthy. The country is very safe and less militarized than Venezuela. Policy is somewhat more moderate, basically based on social democratic ideas as they are seen in Europe. There is a history of corruption, but this is mostly in the lower layers of government and police and elections are probably not affected.

Venezuela, however, can actually protect him once he is inside the country. Bolivia probably can't.

<comment> g-garron I am bolivian and live in Bolivia, this is one of the most accurate comments about my country I've read from a foreign.

If you have questions about how is here, I will try to be as objective as I can. (Disclaimer: I am not into politics, I am a geek/hacker :) ).

</comment></comment><comment><USER6> It's so good that at least two states have the balls to stand up to the USA and offer asylum against what is obviously a political manhunt.

As a Norwegian, I'm ashamed that our government and bureaucracy is too scared to stand up for our moral values. If Snowden was from Somalia, we would have granted him asylum with no further discussion. It's ridiculous that a (former) "banana republic" is the only nation that dares take this issue seriously. They may have their own agenda, but facts are facts.

<comment><USER7> _obviously a political manhunt_

Are you suggesting that Snowden was charged with a crime for his politics and not his actions?

<comment><USER6> No. There was probably a crime involved. But Snowden is a classic example of a whistleblower, which the US Government has been harsly persecuting through the legal system. The response is completely out of proportion to the crime - <USER2> effect grounding the private plane of a foreign head of state, which would be considered an act of war if it was done to Air Force One. If this was a simple question of a crime, it would be handled through INTERPOL and the normal legal channels. It is currently handled with international diplomacy at the highest levels.

This makes it seem pretty obvious that the prosecution/persecution is due to a fear that future whistleblowers will reveal more illegal activity in the US government and that this attention will cause a backlash from the public. Remember that the programs Snowden revealed are very likely illegal, at the very least violating the US Constitution.

I am claiming that Edward Snowden and similar whistleblowers are political enemies of the US Government (though not necessarily the people of the United States), and that this is why they are treated so harshly.

[Edit: Typo fix.]

<comment><USER8> The clear difference from your typical wistleblower case is that Snoden allegedly downloaded significant classified material, threatened to release this material, and has traveled to a cointry that would be a primary benefactor of this classified information. So, Snow den created this very unusual case.

</comment></comment></comment></comment><comment><USER9> Snowden should be called a "public informant", not a leaker, whistleblower, etc. Typically, informants are insiders who help police, etc. "Informant" has a positive connotation. So if the government has their informants: FBI informant, police informant, etc. we the people should have a "Public Informant".

<comment><USER10> Oddly enough, the term "whistleblower" was coined specifically to avoid the perceived negative connotations of the term "informant": [https://en.wikipedia.org/wiki/Whistleblower#Origin_of_term](https://en.wikipedia.org/wiki/Whistleblower#Origin_of_term)

<comment><USER11> Interesting, the negative connotation might have been a legacy of prohibition.

It's unfortunate that people don't feel the same about the war on drugs, simply because it mostly effects minorities.

<comment><USER12> I don't think so. I have a negative connotation and I am not American. I would more guess it is American propaganda around the war of drugs which is trying to make informant sound like a good thing.

When I hear informant I think of organizations like Stasi.

<comment><USER13> It's more "collaborator" a bit east from you, "informant" has a more neutral meaning here.

</comment></comment></comment></comment></comment><comment><USER14> Heh, as I saw some people commenting, Evo Morales incident only would push the entire South America to end giving Snowden Asylum...

In fact this whole thing is being very interesting, because one guy is managing to create multiple diplomatic incidents, I would not be surprised if this end in some sort of war, or a breakup of alliances or trade zones.

<comment><USER15> I have a bad feeling, that's how wars are started...

<comment><USER14> If this become a war, who will be blamed, Snowden? US presidents with their terrible policies? Osama Bin Laden for giving incentive to the terrible policies? US presidents for training Osama Bin Laden in first place? Russia for invading Afghanistan and giving reason to train Osama Bin Laden?

I think it all depends on who wins in the end. Too bad, the common people always lose.

<comment><USER11> Bin Laden is definitely the Gavrilo Princip, but I disagree with the opinion that our leaders were just innocently and emotionally reacting to 9/11, as most of Bush's cabinet consisted of hardcore, , Team B[1], neoconservative ideologues.

[1][http://en.wikipedia.org/wiki/Team_B](http://en.wikipedia.org/wiki/Team_B)

<comment><USER16> I don't think they were innocently reacting, I think that people innocently[1] let them do it, and that this was Bin Laden's intention.

[1] I stopped short of saying dumbly.

</comment></comment></comment></comment></comment><comment><USER17> This is what happens when you push an entire (sub?)continent to feel like they must flip you back for embarassing one of their own

<comment><USER18> Two countries led by the some of the most leftist leaders != entire "(sub?)continent"

Judging by those who have not granted Snowden asylum, there are many more who support the U.S. than otherwise.

<comment> k-mcgrady Not granting Snowden asylum does not mean those countries support the US. It means that the US has significant influence it can hold over them.

<comment><USER19> It also could mean that they don't care about the whole affair enough to get involved on either side.

</comment></comment></comment></comment><comment><USER20> I think on of wikileaks misstakes was to apply for asylum in 21 countries. Make it easier for the countries to say no. It is like hichhicking. Chanses of you getting picked up at a road where the drivers of the cars know that there is only one car in one hour is higher then getting picked up at a high trafic road. Same psychology.

<comment><USER21> You may be correct if getting asylum was the only purpose of the spray and pray request. To me, it seems to have filled another purpose also, to show the people of the requested countries where their governments stand. For example, the French government's come under quite heavy fire for their handling of the situation.

</comment></comment><comment><USER22> Snowden is playing chess.

The end-game is that he will always be looking over his shoulder, whether it's a new host government that wants to score points with Washington or a contractor collecting a bounty placed on his head. Or, anxiety of previous could get him.</comment>


X-37B Space Plane: Mysterious US military aircraft launches - <AUTHOR> https://www.bbc.com/news/science-environment-52698133 <comment><AUTHOR> This is the sixth mission:

* [https://en.wikipedia.org/wiki/Boeing_X-37#OTV-6_(USSF_7)](https://en.wikipedia.org/wiki/Boeing_X-37#OTV-6_\(USSF_7\))</comment>


Screen sharing in Slack, made interactive via Screenhero acquisition (YC W13) - <AUTHOR> https://slackhq.com/screen-sharing-in-slack-made-interactive-cf8816efaa01 <comment><USER2> People are so desperate to find viable business ideas. We discuss to death MVPs, fake landing pages, articles describing how to find and validate ideas and find first customers.

Yet, no one notices when business opportunity stares them in the face.

Go and duplicate screenhero. It's not that hard (Screenhero was written by 4 devs and 1 designer). They did YC in winter 2013 and got acquired by Slack in Jan 20015, so it's less than 2 years.

You have a validated product that many people love and are willing to pay for and enough of a "outside of Slack" market to sustain a small company.

On launch you'll get free PR just by announcing "Screenhero alternative".

And if you do a good job, it's likely that Atlassian (or some other Slack competitor) will want to acquire you for a tidy sum.

Lot's of the hard code has been written for you (libraries for stun firewall traversal, vp8 for the video codec). You need to write a simple backend for matching people and 2 desktop apps (mac and windows).

It's not easy but it's also not a problem that requires breaking new ground, just solid engineering.

What we get instead are pleas to Slack to not kill stand-alone Screenhero and bemoaning that someone didn't write OSS (aka free) clone.

<comment><USER3> You mean you could make a YouTube clone in a weekend? It's easy to fall into this way of thinking. But hey, maybe you will build the next Screenhero, or TeamViewer. Or maybe you'll end up as one of the thousands of other versions of this nobody has ever heard of. The idea is usually not the hard part.

<comment><USER2> I mean that you can make a Screenhero clone in approximately the same amount of time that it took to write it originally. Should be a bit less because straight path (cloning) is shorter than twisty one (things that Screenhero did that did not end up in the final product).

Note that by the time of Slack acquisition Screenhero was approaching v2.0, they had product out far longer than that. So it's not unreasonable to say you could do a v1 of similar product in a year.

Both idea and execution are hard. Cloning existing idea removes one hard part, therefore increasing the chances of success. Look at Excel, Word or Baidu or Sina Weibo.

As to "thousands of other versions of this": you would have to point to at least one. It's hard to argue against imaginary products.

Based on this thread for many people Screenhero has no acceptable substitute.

<comment><USER3> I can agree that when you have clearly defined business goals its easier to spit out a product. And I'm not arguing that you could make something similar to Screenhero in a year -- the hard part would be to distinguish it from the thousands of others. You could find examples with some Googling (remote desktop software, screen sharing software): GoToMeeting, Join.me, LogMeIn/Hamachi, RealVNC, not to mention built in RDC in Windows, etc. Those are just the famous/obvious ones. If you kept digging, I'm sure you could easily find hundreds if not thousands of similar solutions.

I understand they're slightly different from one another, and I suppose its possible all the commenters here went through each and every one of these options and found nothing useable but it seems unlikely to me, and similarly unlikely the +1 one would make in this pool would be any sort of revolutionary "game changer" VCs would mob onto. The space seems well-established or dare I say it "saturated".

</comment></comment></comment></comment><comment><USER4> I wish this was forked instead of killed. Everytime I use Screenhero, it has been butter smooth.

I would be ready to pay $3/month for screenhero standalone or a pay-per-use. I'm not interested in Slack, the use cases are clearly different.

I think Slack missed or rather killed an opportunity here, they could have kept Screenhero (and use it to upsell Slack) and also integrated it in Slack. Not only that but it took them over 2 years to make this integration and in the meantime Screenhero remained invite-only.

<comment><USER5> Have you tried Discord? It's geared towards gamers but it's got most of the features we needed from Slack.

More info: [https://support.discordapp.com/hc/en- us/articles/11500098275...](https://support.discordapp.com/hc/en- us/articles/115000982752-Screen-sharing-Video-Calls)

<comment><USER6> Due to shenanigans toward Jason Scott[0], and the whole "Hype Squad" thing I have zero interest in supporting Discord.

[0]: [https://twitter.com/i/web/status/903663357210841088?lang=en](https://twitter.com/i/web/status/903663357210841088?lang=en)

<comment><USER7> I fail to see the "offense". Maybe the tone in that email is aggravating to you as it seems to be for him, but... I can only shrug and wonder. I'd say it's not a bit worse than half of the promotional emails from services I (or my company) pay for in a week...

</comment></comment></comment></comment><comment><USER8> Stand-alone ScreenHero sharing is smooth as butter -- truly amazing. Controlling a remote computer feels local.

Right now I'm using the slack-integrated "ScreenHero", and it's really laggy. This is super disappointing, and painful to use. It's actually making the mouse pointer of the person sharing lag for them.

Slack: please keep the stand-alone ScreenHero until you make the integrated one have the same performance.

<comment><USER9> Why has "smooth as butter" become such an overly used phrase in the tech world? Listening to the last Apple product release I must have heard the word butter a few dozen times.

I don't know about anyone else but this phrase is really starting to annoy me. It's overly used, and the word "butter" in my mind is closer to "greasy", like "don't touch it with your finger because it'll get slimy and you'll have to wash your hands". Can't you just say "smooth" or "without any perceptible lag"?

EDIT: Seriously, this doesn't bug anyone else?

<comment><USER10> "Smooth as butter", "smoother than butter", "butter smooth", et al is a common western phrase. It's as old or older than the King James Bible itself (Psalms 55:21 if you're curious). It's a quintessential English idiom.

<comment><USER11> Thank you, that's fascinating!

 _Psalm 55:21 King James Version (KJV)

21\. The words of his mouth were smoother than butter, but war was in his heart: his words were softer than oil, yet were they drawn swords._

<comment><USER12> While this is true idomatically,

there was also a 'Project Butter' designed to make Android 'Buttery Smooth' a few years back - I think the high level of application of this idiom to video rendering specifically took hold at that point..

</comment></comment></comment></comment></comment><comment><USER13> Really disappointing news, rolling Screenhero into Slack doesn't solve the same problem at all.

I work for myself and have a large contact list of people who don't know each other who I often pair with or screenshare with. With Slack, there's really no way for me to create the same setup.

I'd need to create a new team called "Adam's Screenhero Contacts", invite all of my contacts (who don't know each other) to be part of this "team" together, and I'd have to foot the bill for the whole team since there's no way for each individual to pay for their own Slack account.

Is there a viable Screenhero alternative out there yet?

<comment><USER14> They can't take control of your screen but I like [https://appear.in/](https://appear.in/)

<comment><USER15> I'll second this, appear.in is great for lightweight small-group video chats.

<comment><USER16> I think this might fall under "doesn't solve the same problem at all".

<comment><USER14> You can share your screen but you cannot share control of your screen. Screenhero was the word on sharing control.

</comment></comment></comment></comment></comment><comment><USER17> Screenhero is hands down the best (smoothest) screen sharing app I've ever used.

It's bittersweet to see them acquired by Slack as a paid only feature, but I'm happy for the team and it seems like a very ideal kind of acquisition where they solve a problem Slack has and wasn't solving well, and then Slack can scale the Screenhero userbase overnight.

Edit: I just tried this feature in Slack with /call then enabling others to edit and it didn't seem to be as smooth as the usual Screenhero experience. I wonder if something was changed in the integration.

<comment><AUTHOR> Screenhero co-founder here. We're committed to making Slack Calls better, and have a number of upcoming improvements in the works.

<comment><USER18> Yea I found the window a bit harder to control as well. I'm also really bummed because I'm not sure how I am going to help my little sister learn to code now that we can't screenhero together. Not gonna make a paid slack channel just for that.

<comment><USER17> Maybe a shared online "cloud IDE" fits your use case? Something like [https://glitch.com/](https://glitch.com/).

</comment></comment></comment></comment><comment><USER19> I'm going to mention Jitsi Meet[1] since nobody has mentioned it. 6 months or so ago I started looking for a simple, reliable and cheap option to share a screen. I don't like GoToMeeting because it's too enterprise-y and there are a lot of steps involved—not too friendly for my tastes. And there are a few like that.

I stumbled upon Screenhero, but it was already too late—Slack bought it and it's not possible to create a new account.

What we chose for a few weeks was Appear.in—a simple, painless and reliable tool. However I feel like it's not polished enough, and some of our clients had issues with it, so I kept looking.

Jitsi has been a blast: just install an extension (or no extension if you're on Firefox) and you're ready to go. It's uncluttered, it's reliable and too good to be free to be honest.

Only downside it's that all the URLs are public and since there are no registration involved, there's no admin on each channel.

1: [https://meet.jit.si/](https://meet.jit.si/)

</comment><comment><USER20> I use screenhero daily for work and I am incredibly sad to see it go, even though we all knew this day was coming. It hits even harder for me since my company just moved us off of slack due to their lack of hippa compliance and cost issues, so not only is the standalone screenhero gone, I've lost the ability to use it in slack too. Does anyone have a good suggestion for an alternative?

<comment><USER21> You mean HIPAA? Assuming so, what were the issues?

<comment><USER22> I'm curious too. Slack claims HIPAA compliance: [https://slack.com/security](https://slack.com/security)

<comment><USER23> Many companies claim HIPAA compliance. That doesn't mean much, though, unless they're willing to sign a BAA with their customers. I don't have direct experience with this and our Slack usage, but I'm guessing this is where the disconnect is.

</comment></comment></comment></comment><comment><USER24> And according to @SlackHQ on Twitter, Screenhero is shutting down in a little over a month:

> Now that Screenhero is fully integrated into Slack, we will be closing > Screenhero on December 1st. > [https://screenhero.com/](https://screenhero.com/) for more info!

<comment> house9-2 Its a real bummer, I would much rather pay for Screenhero standalone than integrated into Slack.

</comment></comment><comment><USER25> Does anyone know of the "secret" sauce that made screenhero so much better than the alternative. When I used it years ago, it was super smooth and felt more like the real screen rather than the remote screenshare

<comment><USER26> I have the same question. Using it a lot, there were little quirks that made it feel like it had very low level access to my Mac. Sometimes it would move the mouse on my screen outside the SH window, but synced up with the other person's mouse (on their 2nd monitor not shared). Especially noticeable with dual screens or when moving the SH window. Kind of hard to explain in words.

</comment></comment><comment><USER27> We're daily SH users, and the voice chat still feels leaps and bounds ahead of anything else (Slack, Zoom, Chime, etc). Inevitable sunsetting, but sad.

</comment><comment><USER28> We user both Slack and Screenhero at work. This is not a move I'm looking forward to. Slack's Video/Audio issues are so many that we also still use webex for person to person video chats more often than not. I've been nothing but disappointed every time I've tried to use slack for something that's not text based chatting.

</comment><comment><USER29> Can someone tell me how screenhero performs in a call of 50+ people? We teach classes, and Slack is our home base, so Screenhero would be great, but I'm not sure of how it scales.

<comment><USER26> As of 12 months ago, I inevitably had problems with more than 3-4 people in a session. But that was mainly when we'd try to rotate presenters. Got used to restarting the call in order to pass the baton. Even without rotating however, there would often be connectivity issues where someone had to drop off and reconnect. That slowed us down with small groups, so if you had to pause anytime one of 50 people had connectivity issues I'd guess it would be unusable unless they fix the connectivity issues.

Have you tried youtube for live streaming? Never tried a private stream, but they certainly know how to scale video.

<comment><USER29> We use Zoom and it's fantastic, just not as tightly integrated into Slack.

</comment></comment></comment><comment><USER30> So I suppose that means Screenhero won't be available outside of Slack anymore? I always found it useful as a stand-alone app when you wanted to let somebody control your screen that is not on Slack. Anyone have good alternatives for that?

<comment><USER31> zoom.us allows remote controls, it worked fine the couple of times I've used it.

</comment></comment><comment><USER32> This is highly appreciated (as someone who never got an invite to Screenhero, so was never able to compare)!

I hope it's stable. Slack's audio/video conferencing is not exactly... smooth.

In fact, it still boggles my mind that in 2017, conferencing is still in the stone ages when it comes to reliability.

With Slack I often either get a one-way connection (only one party can hear the other) or the call is unable to connect, claiming that "Bob ended the call". Meetings tend to start with five minutes of "Can you hear me? Hello? Testing, testing..." until we either are able to get a connection, or we give up and move to Skype, which isn't perfect, but much more reliable.

Incredibly, it also turns out that if you try calling someone who's already calling you on Slack, _you get a busy error_! How insane is that? We were both trying to reach each other, both expressing — in terms of UI — the exact same intent, and the app interprets that as a conflict.

There's also some pretty shoddy intergration between the desktop and mobile app. Recently, I tried talking to a colleague, and we went through all of the above insanity, but at one point, as he was calling me, Slack on my _phone_ was ringing, but the desktop app wasn't. Some of these bugs are hard to understand.

My company's go-to solution the last couple of years has been GoToMeeting, which is 99% rock solid, but doesn't integrate well with anything, and doesn't have a good mobile app. The biggest benefits to GTM are the ability to record meetings, and the ability to dial in through a normal phone. The latter feature has saved is a lot of times when one person has been on a bad Internet connection.

<comment><USER33> Screen hero audio was wonderful for me. It felt as if you were sitting next to the other person, even when the other person was half way around the world. I hope the new functionality in Slack will be comparable.

</comment></comment><comment><USER34> Most unfortunate. I don't recall any other collaboration tool which has been so dramatically better than the alternatives for such a long time.

</comment><comment><USER35> When is videocalling and screensharing coming to Linux?

<comment><USER36> Slack's beta Linux client already supports video calling and screen sharing.

<comment><USER37> Does not seem to work under Wayland. You can see the mouse pointer, but the rest of the screen is black.

Haven't tried it under X yet.

<comment><USER38> Don't worry I'm sure it will work in 5 or 6 years when they get around to implementing this functionality in some subtly incompatible way on each major desktop environment.

Since its impossible to implement something that works across multiple environments hopefully whichever one does the best job of providing this feature also does a decent job of providing every other feature that previously was able to be provided by any app.

</comment></comment></comment></comment><comment><USER39> For anyone wanting to roll this themselves, it's actually quite easy with Chrome media capture these days. Just make a Chrome extension with desktopCapture permissions, follow the example codes to do things like chooseDesktopMedia and webkitGetUserMedia and let them choose the desktop (or tab). You can do what you want w/ the media stream after that (like capture to blobs which you can send around, or send over WebRTC or whatever).

I have even successfully captured a tab to video [0]

0 - [https://github.com/cretz/chrome-screen-rec- poc/tree/master/a...](https://github.com/cretz/chrome-screen-rec- poc/tree/master/attempt1)

Edit: I should say screen capture, screen sharing is a different deal of course.

<comment><USER40> Does this cover letting your screenshare partner take control of your computer?

<comment><USER39> Got my edit in just as you typed this, heh, no it doesn't. But I doubt capturing keyboard and mouse and sending it would be that difficult. Granted at that point I would opt for an OS native approach.

</comment></comment></comment><comment><USER41> The audio quality of ScreenHero has always been so great. What codec are you using? I think I remember you saying you switched the video codec to H.264. How did you make the audio side work so well?

</comment><comment><USER42> While this Slack feature is meant for live screensharing, remote teams also need a way to record and share screencasts outside of live meetings. My cofounder and I having faced timezone inflicted pain in remote teams before, wanted to scratch our itch, and built a solution for anyone to easily record and share screencasts. If you feel remote work pain, do check us out at [https://checkoutclip.com](https://checkoutclip.com). Interested to hear thoughts.

</comment><comment><USER43> Make it linux compatible!

</comment><comment><USER44> Congrats to J & the Screenhero team! :)

</comment><comment><USER45> Two years to do integration, which make me remember that Thread feature spent 3 years. that's why slack make things so easy to use.

</comment><comment><USER46> I can't believe it took them over two years to integrate this.

</comment><comment><USER47> Does screehero still use 200% cpu?

<comment><USER48> It'll use 0% after December.</comment></comment>


Happy Birthday Jasim - <AUTHOR>

It's Jasim's Birthday!!! Please upvote! <comment><USER2> The power of the coconuts moves you !!

</comment><comment><USER3> I'm not sure coconuts actually age. Do they?</comment>


R: text analysis of Trump's tweets - <AUTHOR> https://www.r-bloggers.com/text-analysis-of-trumps-tweets-confirms-he-writes-only-the-angrier-android-half/ <comment><USER2> Can we link to the original blog post please? [http://varianceexplained.org/r/trump- tweets/](http://varianceexplained.org/r/trump-tweets/) Not only is it nicer to the author, it's far better formatted as well.

<comment><USER3> Agreed, the article you linked is quite a well-laid out read and as the originator I'm glad to have seen it first in that context.

Back to the subject at hand, seeing the drastic difference in tone only goes to support a hypothesis that Trump himself is constantly at odds with his staff et al. If not in actual statements, at least the sentiment of the statements. Refusing to buy into, well, softer diction would be another false claim, it might seem.

</comment></comment><comment><USER4> We need some followup analysis. Now that you can reliably filter out staff tweets, we need to re-examine whether Donald Trump is the most prolific shitposter in the history of the internet.

Seriously, though, a twitter bot for each candidate that retweeted only things that we think came directly from them and not from staff would be very interesting. I don't follow either candidate on Twitter since I tend not to believe one liners from candidates, but it'd be interesting to follow their tone. Does Hillary Clinton do any of her own social media, or is that 100% staff?

<comment><USER5> I'm having a science-fiction-in-real-life moment here where I'm imagining a person's public persona being managed, with or without their consent, by an AI designed to determine whether their public posts/comments are authentic or not. We live in weird times and they're getting weirder.

<comment><USER4> Especially with this election cycle - you couldn't make this stuff up.

</comment></comment></comment><comment><USER6> It would be interesting too to trace any early signs of dementia in his speech, as in [1,2].

[1] [http://www.nytimes.com/2015/03/31/health/parsing-ronald- reag...](http://www.nytimes.com/2015/03/31/health/parsing-ronald-reagans- words-for-early-signs-of-alzheimers.html?_r=0)

[2] [http://www.j-alz.com/content/tracking-discourse- complexity-p...](http://www.j-alz.com/content/tracking-discourse-complexity- preceding-alzheimers-disease-diagnosis-case-study-comparing)

<comment><USER7> The first link discusses the changes in Ronald Reagan's speech, especially unscripted press conferences over a number of years. They compared the number of unique words used, number of repetitive words used etc.

I don't think you could do the same analysis on Trump's tweets because people can take more time to compose their tweets, choosing apt words for the context. Plus tweets are much shorter, so you'd have a smaller corpus with fewer unique words to begin with.

Still, definitely an interesting idea that you had there.

</comment></comment><comment><USER8> I have been waiting for someone to do this analysis; I had been thinking for a while that there was something more "boring" about his iPhone tweets. Thanks!</comment>


ADCS7476 12-Bit A/D Converter - <AUTHOR> http://dev.emcelettronica.com/adcs7476-12-bit-ad-converter <comment><USER2> I'm hungry for some Hormel brand emcelettronica.

</comment><comment><AUTHOR> An analog-to-digital converter (ADC, A/D, A to D) is a device which converts continuous signals to discrete digital numbers. The reverse operation is performed by a digital-to-analog converter (DAC). [from Wikipedia]. ADCS7476 (datasheet), ADCS7477, and ADCS7478 are monolithic CMOS 12-, 10- and 8-bit analog-to-digital converters.</comment>


The Bombs of Steve Bannon - <AUTHOR> https://www.nytimes.com/2017/03/10/opinion/the-bombs-of-steve-bannon.html <comment><USER2> This is an important column on the architect of the future Trump Republic, where the US Constitution is an obstacle to be debased and then ignored. The column is a quick read, just enough to get a flavor for Bannon's agenda and what's in store for all of us if the resistance movement is not successful.</comment>


Ask HN: Any guides on what someone wanting to start a company should know? - <AUTHOR> <comment><USER2> [https://hn.algolia.com/?query=starting%20company&sort=byPopu...](https://hn.algolia.com/?query=starting%20company&sort=byPopularity&prefix&page=0&dateRange=all&type=story)

Beyond that, it's hard to say without more information. Have you looked at Startup School and their library[1] of information? If not, I suggest doing that, as it's a veritable gold mine of good information.

If what you're working on is intended to be a scalable startup (as opposed to, say, a laundromat, or a one-man consulting company, etc.) then I highly recommend reading either _The Four Steps to the Epiphany_ [2] and/or _The Startup Owner 's Manual_[3]. The latter is nominally the 2nd Edition of the former, but I find that there's enough difference in the content to justify reading both. If you're more enterprise focused, the former is more centered on that world. If you're doing something consumer focused, the latter title is more oriented towards that (but not to exclusion).

[1]: [https://www.startupschool.org/library](https://www.startupschool.org/library)

[2]: [https://www.amazon.com/Four-Steps-Epiphany-Steve- Blank/dp/09...](https://www.amazon.com/Four-Steps-Epiphany-Steve- Blank/dp/0989200507)

[3]: [https://www.amazon.com/Startup-Owners-Manual-Step- Step/dp/09...](https://www.amazon.com/Startup-Owners-Manual-Step- Step/dp/0984999302)

</comment><comment><USER3> The stats. First time fails are very likely, is stat one. So try to find a fail-cheap opportunity.</comment>


They Who Control Encryption - <AUTHOR> https://qvault.io/2020/08/12/they-who-control-encryption/ <comment><AUTHOR> The bill (4051) mentioned towards the bottom is a real piece of work: [https://www.congress.gov/bill/116th-congress/senate- bill/405...](https://www.congress.gov/bill/116th-congress/senate- bill/4051/text#id2181D12061F244F48C92BE40EF66B66A)

Imagine being unable to use open-source standards legally without providing a backdoor.</comment>


Are you familiar with DEXTR (a big screen Twitter client)? - <AUTHOR> http://dextr.riglondon.com

<comment><USER2> Would it have hurt you to put some screenshots up?

<comment><AUTHOR> It's not mine but a product I frequently use. See for yourself.</comment></comment>


SASS gets functions - <AUTHOR> http://nex-3.com/posts/104-haml-and-sass-3-1-are-released

<comment><AUTHOR> I'm very happy that SASS and HAML are finally separated, and I don't think I'm alone in that. But I'm not a fan of this mini-language that's gradually creeping into SASS.

I do understand the need for SASS not simply to be a declarative language. (Its dynamic nature is why I started using it in the first place.) However, growing a language ad-hoc around CSS doesn't seem like the best way to go. Instead, I would recommend preprocessing SASS through an existing interpreter (like a Ruby implementation) and not come up with language features "on the fly".

Long-term, it's clear to me that CSS would be much more useful if it were written in a homoiconic Turing-complete language. That way, we could code configuration succinctly (via macros) but have access to all the power of the full language when necessary.

What I'm saying is: right now this feels like a hack.

<comment><USER2> There's no "gradual creeping" or "ad-hoc" language features being added "on the fly". We spend a lot of time thinking about what features are included in Sass and most feature concepts do not get added.

Feel free to write your CSS in ruby, it would take less than a week to whip up a DSL for CSS, but good luck trying to get a designer to use it ;)

<comment><AUTHOR> Don't get me wrong, I'm a huge fan of SASS and Compass and think variables have been implemented well. But retroactively adding functions _feels_ ad-hoc, even if great care was taken when adding the feature. I feel that designers might be more likely to write Ruby methods than these style functions (though of course I don't have data to back that up).

</comment></comment></comment><comment><USER3> This is great, will break some existing SASS though (for example, it broke !variable = 100px syntax in my app)

<comment><USER2> Sorry! But that syntax was deprecated in 3.0...

<comment><USER4> I tried to use all the edge sass and compass, but gradients css code seems to be rendered without "old webkit" (with color-stops) gradient syntax. Although changelog says it stays.

What is the decision on the subject? Am I facing a bug or is it really deprecated?

<comment><USER2> It should work based on the urls below. Contact the mailing list for support.

[https://github.com/chriseppstein/compass/blob/stable/framewo...](https://github.com/chriseppstein/compass/blob/stable/frameworks/compass/stylesheets/compass/css3/_images.scss#L22)

[https://github.com/chriseppstein/compass/blob/stable/framewo...](https://github.com/chriseppstein/compass/blob/stable/frameworks/compass/stylesheets/compass/_support.scss#L26)

</comment></comment></comment></comment><comment><USER5> Does anyone have a mirror/cache of this?

<comment><USER6> [http://webcache.googleusercontent.com/search?q=cache:nex-3.c...](http://webcache.googleusercontent.com/search?q=cache:nex-3.com/posts/104-haml- and-sass-3-1-are-released&hl=en&gl=uk&strip=1)

You can get the google cache for any url by searching for that url prepended with cache:

<comment><USER5> I tried that but somehow it didn't work ... Thanks!</comment></comment></comment>


Web Scraping with Modern Perl (Part 2 - Speed Edition) - <AUTHOR> http://blogs.perl.org/users/stas/2013/02/web-scraping-with-modern-perl-part-2---speed-edition.html

<comment><USER2> Are you a hardcore web scraper? Check then <https://blog.databigbang.com> for articles such as how to scrape sites with javascript, browserless oauth, implementing your own rotating proxies.

Disclosure: I am the author but the site is helping and saving the time of thousands of people with code and examples.

<comment><USER3> Your site never seems to load for me.

<comment><AUTHOR> Same here :(

<comment><USER2> You mean slow? it is on AWS.

<comment><AUTHOR> Figured it out; the problem was the HTTPS. <http://blog.databigbang.com/> is fine :)

<comment><USER2> Sorry, it was my fault. Too much HTTPS sites lately.

</comment></comment></comment></comment></comment></comment><comment><USER4> Here are some of the list resources:

20 Perl libraries for fetching web content - <http://neilb.org/reviews/http- requesters.html>

An SO wiki page for html scraping - [http://stackoverflow.com/questions/2861/options-for-html- scr...](http://stackoverflow.com/questions/2861/options-for-html-scraping)

<comment><AUTHOR> YADA, the concurrent fetcher featured in the article, has extensive benchmarks on many Perl WWW User Agent libraries, also: [https://metacpan.org/module/AnyEvent::Net::Curl::Queued#BENC...](https://metacpan.org/module/AnyEvent::Net::Curl::Queued#BENCHMARK)

</comment></comment><comment><USER5> Shamless on topic plug here. Some readers might be more familiar with ruby.

Multi-threaded webscraping with the tor network with ruby -

[http://devcomsystems.com.au/2013/01/multi-thread- mechanize-u...](http://devcomsystems.com.au/2013/01/multi-thread-mechanize- using-multiple-tor-circuits-for-web-scraping/)

</comment><comment><USER6> Take a look at Tales.

Tales is a block tolerant web scraper that runs on top of aws and rackspace. Tales is design to be easy to deploy, configure, and manage.

<https://github.com/calufa/tales-core>

<comment><USER7> I dunno... the tales install script seems to want to take over whatever account it's run as, going so far as to _modify ~/.ssh/config_. That _alone_ gives me pause... then it requires you have a github account?

And it needs mysql, redis and mongo??!?

Oh, and of course, I'll need an aws/rackspace account...

If I need all that for a web-scraper it better be for a _big_ project.

The CPAN modules in the linked article can all be installed and run as a non- privileged user (via either local::lib or perlbrew, etc.). And there are no daemons, nothing running as root, nothing listening on any ports, no configuration or tuning to think about, and it'll work everywhere from my macbook to my dev-server running linux or BSD or Solaris or _whatever_.

BTW, Mojolicious (<http://mojolicio.us>) is really great stuff. Outside of having a reasonably up-to-date version of Perl (5.10.1 or higher), it's got no external dependencies, not even other CPAN modules. It's fast, flexible, easy to use, and easy to deploy just about anywhere. sri++

<comment><AUTHOR> Mojolicious is featured more extensively in the Part 1 of my article: <http://news.ycombinator.com/item?id=5159452> ;)</comment></comment></comment>


How to Defend Earth Against an Asteroid Strike - <AUTHOR> http://blog.wired.com/wiredscience/2009/03/planetdefense.html <comment><USER2> I hope this isn't considered improper, but I wrote a few things on this topic and I think I go a bit more in depth than this Wired piece. Here they are:

[http://michaelgr.com/2007/04/14/near-earth-objects-are-we- wh...](http://michaelgr.com/2007/04/14/near-earth-objects-are-we-whistling-in- the-dark/)

[http://michaelgr.com/2007/10/28/deflecting-earth-bound- aster...](http://michaelgr.com/2007/10/28/deflecting-earth-bound-asteroids/)

[http://michaelgr.com/2008/01/27/near-earth-objects-we- cant-b...](http://michaelgr.com/2008/01/27/near-earth-objects-we-cant-beat- the-odds-forever/)

<http://michaelgr.com/2008/01/31/target-earth/>

</comment><comment><USER3> _"NASA's goal is to find 90 percent of those that are one kilometer across and larger. We're at 82 percent right now, and we've only been aggressively searching at current levels for eight to 10 years. Those ones just haven't flown into view."_

Can anyone work out/explain how they know they're detecting 82% of them?

<comment><USER4> They've detected all of them, but they are only going to talk about 82% of them until they get more money. "Freemium research", I'll call it...

<comment><USER5> ...I don't know, but a more serious idea would be that the mass of everything they found so far is 82% of the mass they'd expect to find according to simulations. Like all those planets they discovered because their mass had an influence on nearby bodies.

Not saying this is the actual reason, just that there are reasonable ways to get a number like this...

<comment><USER3> Yeah, I was wondering about something like that too, but as they are putting constraints on the single bodies of mass I'm not sure that's sufficient.

</comment></comment></comment></comment><comment><USER6> The best and most obvious defense against an asteroid strike would be not put all our eggs in one basket and diversify our planetary holdings. Colonizing other worlds seem to provide the most bang for the buck in terms of protecting both what we have and what we will achieve from catastrophic failure of the earth.

<comment><USER7> That's a good long-term measure. But we also need something more cheap and quick to set up right now.

<comment><USER6> Would it really be much less expensive and take less time to build asteroid defense systems (I almost typed "missile defense systems") which require us to deal with space than just to start getting better at getting into space anyway? Especially since most, if not all, of the technologies listed in the article would be put to better use for transportation (of either humans or goods) rather than as destructive ends (but such is the folly of human nature, I suppose).

Planning for an asteroid strike strikes me as fear mongering, especially without being able to do anything "unless people see the asteroid in time to plan for it". Being resigned to a fate of having to continuously defend doesn't sound good either. I'd rather consider the possibilities for mankind's future as provided by getting off this rock than wallow in the status quo that merely deflecting an asteroid would provide.

</comment></comment></comment><comment><USER8> They don't mention my favorite idea: move the Earth. (I first saw a tiny blurb about this idea in a magazine, then saw it mentioned as an idea Russian scientists had considered.)

Apparently if you detonate a nuke on the moon, it will eject some of the moon's mass. The resulting change to the Earth-moon system alters the Earth's orbit around the sun ever-so-slightly.

However, 'ever-so-slightly' totaled over months or years means the Earth is thousands of miles from where it would have been otherwise, converting a direct-hit into a near-miss (or vice-versa!).

With enough warning, this could be a preferable approach, because it's assembled from things we already know how to do (like reach the moon), rather than targeting some tiny object at an extreme distance (an all-new challenge).

<comment><USER3> Why is that your favorite idea? It sounds like the most potentially harmful to us, long-term, by far. I'm no ecologist but I have to imagine changing our orbit could screw up the balance of our ecosystems pretty badly.

<comment><USER8> It's my favorite because it's unique, plausible, and thought-provoking -- not just 'blow up or deflect the asteroid' (as just about every other idea is).

The essence of the idea was that it only takes a tiny, tiny change for the Earth to wind up far away from the collision location, though not necessarily any different in its average orbit. So climate/ecosystems wouldn't necessarily be affected.

But now that you mention it, the second mention of the idea I saw -- ejecting moon mass to subtly change the Earth's orbit -- may have been in the context of intentional climate engineering rather than asteroid defense.</comment></comment></comment>


How Egyptians Organized: Clever Web and Traditional Communcations - <AUTHOR> http://online.wsj.com/article/SB10001424052748704132204576135882356532702.html

<comment><USER2> tl;dr:

The protests have a core leadership group which has pulled off at least two very clever feints. First, before Jan. 25th, they announced rallies at 20 sites within Cairo, to disperse the police; this allowed the rally at a 21st site, discreetly organized over low-tech channels (paper and face to face) to get all the way to Tahrir Square without much police opposition. Seeing that on TV, in turn, helped get the really big crowds out to Tahrir Square a couple of days later.

Much more recently, they pulled off a similar feint to establish a second encampment. They announced a march on government TV headquarters; while the army deployed to defend the TV station, a larger unannounced crowd marched on the parliament building, and set up camp right in front.</comment>


Is Your Website Ready? iPhone 6s Testing Now Available - <AUTHOR> http://mobile1st.com/iphone-6s-testing-now-available/ <comment><USER2> Just what I was looking for... Devs send your project mgrs to this site, make 'em look good. [http://mobile1st.com](http://mobile1st.com)

<comment><AUTHOR> Great! 60% of online browsing is now through Mobile. mCommerce is sure to catch up if ... your site is Mobile-ready. The Mobilizer test tool will help you out at www.mobile1st.com.

</comment></comment><comment><USER3> I see you offer iOS 9 too. Excellent!</comment>


Ask HN: When will cryptocurrencies be currency? - <AUTHOR> I'm really excited about the potential cryptocurrencies offer as an international medium of exchange, as smart decentralised currency, but everyone seems to only view it as something to "invest" in.
I have family members who barely even know how to operate their smartphones "investing" in Bitcoin, but even a casual conversation with them reveals that they have no idea what it really is. They don't even know that it can be used to actually buy things, and they don't know about it's other applications, like smart contracts.
And it's such a shitty 'investment' instrument too! This is all madness.
How can we change this? How can we get people to stop hoarding it and start actually USING it? <comment><USER2> That's never going to happen. Currencies are enforced and controlled by central, powerful authorities (the state). Institutions like central banks (or the FED) try to control inflation and/or deflation. In a time of prospering, the obvious goal for a central banker should be to have a mildly deflationary currency. That is because central bankers want consumers to spend their money today and not wait for tomorrow (hoarding).

Now bitcoin has built-in a hard limit. Which makes the currency, inherently inflationary. I have no evidence, but I believe that this was a strategic choice by Satoshi. Why would you buy a currency made out of cpu cycles, with no backing if not for it's future value? Without being a state (e.g. selling _trust_ ) or having huge amounts of gold to back up a new currency, the only reason someone would wanna buy it, is indeed, the _future value_ that could hold. Hence, Bitcoin or any cryptocurrency can work as an asset but not as a currency given the current design.

Y. Varoufakis, spoke of a centralised digital currency in his solution for the Greek crisis. That could be a digital currency, that anyone can use. But was a fully controlled digital currency issued in the form of IOUs by the state.

NOTE: Talking about adoption of a decentralised currency a-la bitcoin, by a state or group of states to replace entities like the FED or the ECB shows a poor understanding of the most basic principles of the financial systems.

<comment><USER3> Don't you mean mildly inflationary? I believe the US fed aims for 1-2% inflation. Or did I misunderstand?

Similarly, bitcoin is deflationary because of the fixed supply.

<comment><USER2> Yes tha is correct. I meant deflationary for bitcoin and inflationary for the USD

</comment></comment></comment><comment><USER4> For now, I believe cryptocurrencies are mostly used for speculation, most people that buy them expect to sell them back with profit, just like stocks. The value of bitcoin is too volatile right now to be effectively used at a currency. I would not want to hoard bitcoin (or other cryptocurrencies) right now.

At the end of day, a currency is based on trust. If I have a 20$ Cad bill, I know all businesses in Canada will accept it, the Bank of Canada is backing this currency, people can be paid in Canadian dollars, and etc. I also know that I can easily exchange my canadian dollars to Euros, US dollars and etc. Most cryptocurrencies don't have that same level of trust right now. If there is no trust, people won't actively use this currency.

In addition, Currencies are also used by a country/central bank to regulate its economy through monetary policy.

But I can see cryptocurrencies to be an addition to "normal" currencies, but I don't think they will ever replace them.

<comment><USER5> Which do you trust more? The decisions of a government, or the laws of mathematics?

<comment><USER6> It isn't about trust in mathematics; its trust that in the future someone will still be willing to buy your bitcoin (with whatever, be that dollars or loaves of bread).

</comment></comment></comment><comment> kyle-rb Money has 3 main uses: a medium of exchange, a unit of account, and a store of value.

Bitcoin works reasonably well as a medium of exchange, as long as transactions are confirmed relatively quickly.

Bitcoin prices are pretty much always tied to the price in US dollars or some other fiat currency. Online prices can be changed dynamically, so Bitcoin doesn't really need to be its own unit of account.

But it never really works as a store of value, due to its volatility. I have about $20 in Bitcoin today, but I have no idea what that will be worth in a week, so it's risky to keep any large amount of money in Bitcoin. The safest way to buy things in Bitcoin would be to buy it, and then immediately send it to whomever you're buying from.

So I think that Bitcoin will be much more usable when its price stabilizes, and there's much less friction with each purchase.

<comment><USER7> Yes - that's right : people mostly shouldn't need to hold such high Bitcoin balances to buy things. What's in the way is the state interfering so you can't change dollars for Bitcoin with your bank and there aren't services that do that which are convenient enough. In time this will change so you can just make Bitcoin payments from your checking account.

<comment><USER8> "In time this will change so you can just make Bitcoin payments from your checking account."

If Bitcoin could displace banks, what incentive do they have to displace themselves?

<comment><USER9> Banks make money by borrowing from one person and lending to another at a higher interest rate. They can do this in Bitcoin just as well as in US dollars.

</comment></comment></comment></comment><comment><USER10> One thing that hasn't been suggested yet is the lack of point of sale support for cryptocurrencies.

Companies like Coinbase and Stripe have already made it relatively straightforward to accept Bitcoin online. Think if companies like Square or other point of sale terminal vendors made it easy to accept Bitcoin to pay for my coffee!

<comment><USER8> There are a few issues - there are no "chargebacks" with Bitcoin. You get a lot less protections in your capability to return things - its all up to the merchant. Also, the transaction times are too slow right now, esp for small purchases. Finally, there is so much volatility with the value of cryptos - would a merchant want to see the amount you paid him lose 20% value the next day just due to the market?

</comment></comment><comment><USER11> They already are. All currencies are based on trust nothing else. There is no inherent value in any currency besides the trust in it's issuer.

They can be used to buy things already that's enough.

<comment><USER12> I don't understand why this is being downvoted; it's the most correct answer.

People in other answers are adding superfluous fluff about taxes and governments and such things, but none of that is relevant to whether something is currency.

</comment></comment><comment><USER13> Never.

A currency is something taxes are denominated in. And those currencies are necessarily controlled by the authority issuing the tax or the power to tax loses it effectiveness. (see Greece for details)

Everything else is just a transferable asset - intangible or otherwise.

It's why gold isn't a currency. You can't settle taxes with it.

A currency is the modern equivalent of a tally stick. It's what an authority uses to command physical resources.

</comment><comment><USER14> It'll never happen. Any sort of currency needs to be backed either by an asset or a government, otherwise it's essentially worthless.

Cryptocurrencies have value because they're basically one big ponzi scheme where people invest because they are confident someone after them will buy it, but the odds of them having staying power are slim because, at the end of the day, there is nothing with actual worth backing them.

<comment><USER15> > where people invest because they are confident someone after them will buy > it

That's stock market.

<comment><USER16> Yes, but one difference is that if the price of a company goes low enough, someone will buy it and sell off it's assets. Depending on what sort of assets the company has, this is even something that banks will finance.

</comment></comment></comment><comment><USER17> People need to hoard it before being able to use it. It needs to grow about 1000x to be hoarded by all people, which may take 20-50 years.

</comment><comment><USER18> For cryptocurrency to be widely used as currency, it needs to become massively scalable:

[https://medium.com/@FEhrsam/scaling-ethereum-to-billions- of-...](https://medium.com/@FEhrsam/scaling-ethereum-to-billions-of- users-f37d9f487db1)

</comment><comment><USER19> I saw a popup store at a local flea market with "pay with Bitcoin" sign. Use and knowledge can be increased with improved access and merchant use

</comment><comment><USER20> Bitcoin will enter mainstream progresively, and will be replacing Gov currencies as fast as the society realizes it. Once reached the point we decide there is no need for Govs to manage us we'll be free. Dont worryabout concepts like i nflation deflation, having a fix number of bitcoin is like havin a fixed number of tons of gold. Each bitcoin will vary its value in a offer/demand basis, naturally

</comment><comment><USER12> People will use it when it makes sense for them to use it. People are ignorant because they don't need to use it.

</comment><comment><USER21> Money is deeply flawed. The only reason it works is because it's heavily backed regulated, and manipulated by the government. A good example of this is inflation, which governments use to discourage hoarding and encourage spending.

Cryptocurrencies have many benefits over fiat currencies, as you mentioned, but they still share many of their flaws. I believe that blockchains and smart contract will have a huge impact, but I don't believe tokens will replace money.

What will replace money is a new kind of currency that's based on people's reputation. This is unavoidable, but will first require the death of privacy.

</comment><comment><USER22> Since cryptocurrences are basically pyramid schemes, and sooner or later you run out of suckers, probably never. Don't interpret this as me saying that fiat currencies are much better, though! Really nothing that anyone has invented out of thin air can beat gold and silver, or paper directly exchangeable for the same.

<comment><USER23> Fiat currencies certainly beat gold/silver when it comes to avoiding depressions.

[https://www.theatlantic.com/business/archive/2012/08/why- the...](https://www.theatlantic.com/business/archive/2012/08/why-the-gold- standard-is-the-worlds-worst-economic-idea-in-2-charts/261552/)

<comment><USER24> Not for the people trying to save their money with it.

<comment><USER23> Gold does not have to be the official currency for people to use it to save their money. They are free to do so now or any time.

<comment><USER25> Not any time. Gold was confiscated by the federal government during the Great Depression. I imagine it'd be much more difficult to confiscate Bitcoin.

<comment><USER26> [http://m.quickmeme.com/meme/3thb4w](http://m.quickmeme.com/meme/3thb4w)</comment></comment></comment></comment></comment></comment>


Limiting flies to specific eating hours protected their hearts against aging - <AUTHOR> http://universe.sdsu.edu/sdsu_newscenter/news_story.aspx?sid=75480 <comment><USER2> Fly hearts are unrelated to mammal hearts. Flies belong to a completely different phylum. Pretty much everything about the organs of flies is different to humans. They don't have lungs, they don't have a brain, but a cerebral ganglion, they don't have a full stomach, but a stomodaeum, etc. More importantly, they don't have oxygen rich blood or red blood cells. I realise that flies are often used for genetic studies that have implications for humans, but I very much doubt this study says anything much about human heart health.

<comment><USER3> They are analogous, and an analogy is what we're after.

</comment></comment><comment><USER4> Similar research has been done in mice, with similar results. See e.g. [http://www.cell.com/cell- metabolism/abstract/S1550-4131%2814...](http://www.cell.com/cell- metabolism/abstract/S1550-4131%2814%2900498-7)

Bottom line: try restricting calorie intake to a ~10 hour window for 5+ days per week.

<comment><USER5> That's interesting. Isn't one of the common "good advice" in diet was to have a lot of multiple tiny meals throughout the day?

<comment><USER4> I think that 'many small meals' is specific to calorie restricted diets, in order to avoid feeling so hungry. A time restricted diet is a different approach; although it could be combined with calorie restriction, this is not a requirement.

Human trials should give us a better idea of how effective a time restricted diet will actually be. Personally, I think that time restriction is more realistic than calorie restriction for the majority of people, so that's why I'm excited about this research.

<comment><USER6> For weight loss/management, it's recommended to eat your daily calories over 6 meals throughout the day. But, the general idea isn't to keep you from feeling hungry, but rather to keep your blood sugar relatively constant, so the body doesn't enter "hoard energy" mode (where muscle is preferred as an energy source over fat) and you aren't spiking your bloodstream with huge surges of glucose (and thus insulin, which is what prompts the storage of glucose as fat) after binging.

<comment><USER7> Is there any empirical support for this idea?

I hear it repeatedly on fitness forums, but haven't seen it tested. I do leangains myself, which is intermittent fasting + barbells. In the leangains community the idea is widely derided. Martin Berkhan, the man who made leangains, is pretty scrupulous with citing studies, so if something supported the six small meals idea I suspect he would have mentioned it.

I did a few google scholar searches, but I'm not familiar with any specialized terms that might be relevant. Are there studies I might be missing?

<comment><USER6> I don't know, actually. I've heard the idea repeated so regularly in diet and exercise literature that I'm not sure I've ever looked for studies on it.

[1] is the closest thing I can find on the subject, which showed that high- frequency diets substantially reduced insulin levels in the blood. This seems to be the Ur-study from which the idea was spawned.

On the other hand, you have [2] which shows that even though glucose levels fluctuated more on 3-meal plans, resting metabolism and satiation were both higher, though there was no significant effect on fat oxidation.

[3] suggests that regular meals (as opposed to irregular meals) "have beneficial effects on fasting lipid and postprandial insulin profiles and thermogenesis."

Finally, [4] seems to sum up existing findings as "some for, some against, most neutral, tl;dr eat fewer calories".

[1] [http://www.ncbi.nlm.nih.gov/pubmed/2674713](http://www.ncbi.nlm.nih.gov/pubmed/2674713)

[2] [http://journals.plos.org/plosone/article?id=10.1371/journal....](http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0038632)

[3] [http://ajcn.nutrition.org/content/81/1/16.short](http://ajcn.nutrition.org/content/81/1/16.short)

[4] [http://journals.cambridge.org/action/displayAbstract?fromPag...](http://journals.cambridge.org/action/displayAbstract?fromPage=online&aid=879792&fileId=S0007114597000093)

<comment><USER7> Interesting, thanks.

I wish more studies and nutritionists would focus on satiation. "Eat fewer calories" isn't practical, in a lot of cases, since it involves actively fighting hunger. Ceteris parabis, the more satiating of two diets should lead to more weight loss.

The diet and exercise popular literature is a mess. A lot of it is either seventh hand knowledge repeated to the point of truth, or articles written for SEO purposes to capture readers wondering "will food X burn fat/increase gains"?

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Completely ridiculous conclusions based the information provided. Even if the standard diet were quantity restricted, it does not indicated the amounts actually ingested by each fly group. Timing as the sole controlled factor for an actual scientific experiment, requires that each group ingests the same amount. As such, the amount should be no more than that which can be ingested in a 12 hour period. To relate the finding to circadian rhythm, the timing should be varied based on normal sleep patterns.

</comment><comment><USER9> Would like to see the effect of different time window sizes. Is there an optimum? Does a 3 hour window work even better?

<comment><USER10> Daily three-part cycle:

8 hour intake window (noon - 8pm)

8 hour rest (8pm - 4am)

8 hour excretion (4am - noon)</comment></comment>


Structuring Sinatra Applications - <AUTHOR> http://blog.sourcing.io/structuring-sinatra <comment><USER2> Nice to see this. I love sinatra + redis + haml + jquery.</comment>


Best Mobile (VIDEO) ad networks? - <AUTHOR>

I've been looking around at different mobile ad networks that are focused on video ads. It's hard to find specific numbers on CPMs for each ad network. Thus, I was wondering if anyone knew which ad network has the best CPM rates?
I've seen that millennial media has $10--$35 CPM for Video ads.
Other mobile video ad network's I've looked at: Vdopia, AdColony, Vungle, YuMe, & MobFox.
Any help or guidance would be great!
Thanks,
CC <comment><USER2> you should check out Sharethrough

<comment><AUTHOR> thanks will do!</comment></comment>


US government sues Edward Snowden over his new memoir 'Permanent Record' - <AUTHOR> https://news.yahoo.com/im-not-asking-pardon-edward-124317097.html <comment><AUTHOR> oops, dupe of those:

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

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


Go and Simplicity Debt - <AUTHOR> https://dave.cheney.net/2017/06/15/simplicity-debt <comment><USER2> _> But there is equally no question that adding these features to Go would make it more complex. [...] I have no doubt that adding templated types to Go will make it a more complicated language, _

I don't know if adding generics to Golang is the right thing to do but I don't agree with how Cheney has framed it. I wish programmers would use a more precise mental framework about "simplicity/complexity".

It's not important if generics make the _" language specification"_ more complex. What's really more important is if it makes the real-world _language usage_ more complex.

What matters is the sum of _total complexity_ : the language spec + adhoc idioms/patterns/conventions/workarounds used in actual codebases.

As an example, if you make a super simple language like Javascript in 1995 with hardly any features, what you eventually end up with is _complexity in npm_ with dozens of modules for things like leftpad(). Or you can insist that "prototypes are simpler than OO" but you actually end up with a dozen OO- simulation libraries with different syntax out in the wild. Instead of the overall JS landscape being simpler, it is more complex.

This does not mean you must put everything language feature including the kitchen sink into the language. The lesson learned from history is to talk about about simplicity/complexity in a _more holistic way_.

<comment><USER3> _What matters the sum of total complexity: the language spec + adhoc idioms /patterns/conventions/workarounds used in actual codebases._

This is a great one sentence summary of the history of C++. (Would also do for a history of programming.) Any hoary Ruby veteran probably has a story about the misuse of missing_method. (Likely one in which they were the antagonist.) The way that the programming field has shaken out, it turns out that there is a group of programmers who are fine with application programming and using well thought out libraries. However, only a minority of these programmers have the ability to engage in the thinking about other-POV and 2nd/3rd order effects that are needed to make a good library or meta-level tool. (Not to mention the community management skills needed to keep people happy while not giving them absolutely everything they want.) As a relative noob, I was listening to hoary Smalltalk veterans talking about this in the early 2000's. This situation is pretty analogous to the one surrounding crypto, except that the consequences of hubris are somewhat milder.

 _The lesson learned from history is to talk about about simplicity /complexity in a more holistic way._

Also from the early 2000's -- The _Design Patterns_ guys were often saying that design patterns and other kinds of common incantations were often symptoms of deficiencies in programming language design.

<comment><USER4> I've been musing about these sorts of issues of "what is really complex" lately, too. I started evaluating new languages for low-level application code again after spending a lot of time overly close to web browsers, and then ended up deciding that Free Pascal beat them on the stuff I cared about, relative to C compilers as a baseline:

* Best-in-class compile times

* Modules; preprocessor is relevant, but not dominant

* Generics, variant records, function and operator overloads, exceptions, safe string and dynamic array types

* Libraries for common things, with a reasonably conventional style: APIs, containers, bindings, etc.

* No GC; pointers are available, but language features discourage casual usage. RAII pattern is achievable.

* Strong + static types, nominal types and type aliasing.

* Good IDE support, mature tooling, compiler has very broad platform support.

The new languages do win on a lot of the language-feature aspects(particularly memory safety when performing deep optimizations), but they don't have as good a story on the tooling. The compile speed is a major feature and is only likely to remain advantageous over time - and the features already in place are quite effective at limiting source code size, boilerplate, and dangerous constructs. This despite "Pascal is verbose" being memetic.

And if I want more high-level power, I've found that writing a FSM is the most probable path to achieving it. A FSM that embraces the problem domain is a tiny compiler: input source constructs, FSM checks them, applies appropriate algorithms, then emits a list of actions. More power? Add a second FSM to make it a two-pass compiler. Add a stack, or attach it to a database. If it has to be fast, it can generate code in the last step, too. Those things add tons of power to model the problem and aren't heavily dependent on language-side support.

<comment><USER5> Yup, we already had all of that in Turbo Pascal for MS-DOS, hence why I never saw any value in C back in 1993.

On those days outside UNIX, C was just yet another systems language, with most home micros being written mostly in Assembly.

Also Turbo Pascal OOP features were adopted from Apple's Object Pascal, used to write the initial versions of Lisa, Mac OS and known software like Photoshop.

</comment></comment></comment></comment><comment><USER6> I know Go gets a lot of heat for not having generics, but having done a few fairly complex things in Go now, I really haven't missed them, nor have I had to bail out to interface{} in ways that I wouldn't have had to in other languages.

The main reason for that is that golang lists and maps CAN be typed and while they aren't perfect, they are pretty darn great for most use cases. Certainly I understand some people have the need for specialized data structures, but I wonder how often a project needs that data structure to be totally generic, as opposed to just doing the work to implement it (yes even perhaps copy/pasting some other implementation) and moving on. That's ugly yes, but it just isn't that big a deal in my experience.

In any case, the gains from having a great runtime that compiles to a binary, an excellent standard library and awesome concurrency primitives far outweigh the negatives for me. Really enjoy Go.

<comment><USER7> I find Go is quite similar to C, and C also lacks all of these features. It's rare to see C code using some library for generic containers. Most developers roll their own, as needed.

In practice, bugs and safety aside, this tends to work swimmingly. Look at Redis, or git, or postgresql, or the many other projects getting by just fine without generics.

While I agree, and believe generics offer unparalleled power, they often aren't remotely necessary. If anything, their presence creates a tendency to over-use them, resulting in even greater complexity.

<comment><USER8> No, it doesn't work swimmingly. All of those projects have ended up either using void∗ or macros, or both, in order to roll their own _generic_ data structures.

> Look at Redis,

[https://github.com/antirez/redis/blob/unstable/src/adlist.h](https://github.com/antirez/redis/blob/unstable/src/adlist.h) — generic doubly-linked list with void∗

[https://github.com/antirez/redis/blob/unstable/src/dict.h](https://github.com/antirez/redis/blob/unstable/src/dict.h) — generic hash table with void∗

> or git

[https://github.com/git/git/blob/master/hashmap.h](https://github.com/git/git/blob/master/hashmap.h) — generic hash table with void∗

[https://github.com/git/git/blob/master/list.h](https://github.com/git/git/blob/master/list.h) — generic doubly linked list implemented with macros

> or postgresql

[https://github.com/postgres/postgres/blob/master/src/include...](https://github.com/postgres/postgres/blob/master/src/include/lib/ilist.h) — generic doubly linked list implemented with macros

[https://github.com/postgres/postgres/blob/master/src/include...](https://github.com/postgres/postgres/blob/master/src/include/lib/rbtree.h) — generic red-black tree with void∗

<comment><USER9> I agree strongly.

"It works" is an encoding of, "I can write tests which perform correctly" and not "My code is stable in the face of aggressive input."

Go definitely follows along with C in this tradition. It's better than C, because you have slightly more safety interpreting memory as executable and in bounds checking. However, it does very little to stop destructive bugs or let programmers escape copy-paste code hell where regressions keep resurfacing because it's most expedient to copy-paste code.

</comment></comment></comment></comment><comment><USER10> After seeing Rich Hickey's excellent material on the matter^, I can no longer read anything talking about Simplicity and Complexity in programming without suspecting the author of being fast and loose with what those terms specifically mean.

As it stands, they are recipe for different camps and sub-camps of programmers to talk past each other endlessly.

^ [https://www.infoq.com/presentations/Simple-Made- Easy](https://www.infoq.com/presentations/Simple-Made-Easy)

<comment><USER11> Simplicity is very easy to objectively measure. Write down a formal semantics for the programming language in question, and count how many pages you used.

But, of course, nobody will actually do this, because it would expose the inherent complexity of designs advertised as simple. Many people's feelings would be hurt in the process.

<comment><USER12> I would argue that is a good measure of the simplicity of the language itself, but not a measure of the simplicity of the use of the language. By that measure, Malbolge is a simple language than C++ by a factor of ~1000. However, it is still much simpler to write code in C++ than in Malbolge.

<comment><USER11> I said absolutely nothing about _ease_ of use.

<comment><USER13> For many simplicity is defined by ease of use though.

<comment><USER11> Ease of use is subjective. It depends on people's goals, skills and even tastes.

</comment></comment></comment></comment></comment></comment><comment><USER14> I agree with the sentiments of this post (you can't "just" add generics; there are serious trade-offs), but I think his assertion that Python is "on the wrong side of history" is untrue. More people are using Python now than ever before, in more and more problem domains. It's great for certain things, just not very good at concurrency (alleviated by async) and particularly parallelism (though in practice you can often work around it with C extension modules and multiprocessing). But to say Python has "missed the boat" and is "on the wrong side of history" is not true.

<comment><USER15> Anecdotal evidence from the Pythonistas I've known in my career -- they stick to it because they like it, it's old (to them that means it's a proven tech) and because there's too much intertia in their organization to move on to something else.

Technologies aren't only popular because of their quality, or shall we bring PHP once again to prove this point?

<comment><USER16> Yup, this is what I hate about all of the we-must-be-right-look-at-our- adoption-rate arguments. From the blog post:

> There is a reason Go programmers choose to program in Go, and I believe that > reason stems from our core tenets of simplicity and readability

Not the reason I choose it, I choose it for tight cross platform binaries and nice stdlib. Arguments made against generics should be technical, not political... complexity may be subjective, but the justification for the definition can still be technical.

<comment><USER15> As I mentioned in my more lengthy comment right here -- [https://news.ycombinator.com/item?id=14563597](https://news.ycombinator.com/item?id=14563597) \-- popularity is very loosely correlated to the quality of the popular thing. There's ease to pick up, there are pressing business needs fixed by a creative junior Python dev, there's the businessmen loving quick solutions (and future be damned of course), there's inertia, there's skepticism ("but our current system is working! why switch?"), there are tens of other such phenomena that can be attributed to the very buggy automatic brain processes.

So yeah, I hate the _we-must-be-right-look-at-our-adoption-rate_ arguments as well. :)

</comment></comment></comment></comment><comment><USER17> The facet that is missing is the impact on users' code complexity. It is all well and good if Go is simple, but if my code is horrendously complex to compensate, it isn't a net win. I exaggerate, but a lot of the complaints for Go already stem from this trade-off.

Focusing entirely on the language itself is a failure. Keep on eye on the language's users,

</comment><comment><USER18> No one knew about generics until languages like Pony and Crystal proved that they were important? This may be a pedantic point, but technically, generics or templated types were already being used in some obscure, academic languages like Java, C#, and C++.

<comment><USER19> As I read it, the author wasn't discounting those languages or saying nobody had heard of generics, he was saying that newer languages demonstrate that generics are now expected. Remember, both c++ and Java got generics added on (and c# followed Java's lead).

The introduction of languages that have generics designed in from day one is key. Even though Go doesn't (yet?) have them, the fact that its designers wrestled with the question from the start is an indicator that the concept has become central to programming language design.

<comment><USER5> You got your history wrong.

C++ got templates during the time it was being designed.

Between C++ ARM and ANSI C++98, C++ compilers experimented with them, and its design reflected on the standard work.

Borland was one of the first PC compiler vendors to support templates, still on their MS-DOS/Windows 3.1 compilers, with the release of Borland C++ 3.0.

Microsoft Research already had a .NET prototype with generics support, by the time v1.0 was about to get released, but they decided it was more relevant to ship v1.0 than waiting for the generics support to be fully done. Don Syme from the F# team has a few blog entries about this.

One of the first languages to get generics was CLU in 1975, shortly followed by ML and Ada in the early 80's.

<comment><USER20> C++ did not have templates when the first commercial compilers shipped and the first books were published. It got templates around 1990, five years after the first release of a commercial C++ compiler and the first publication of "The C++ Programming Language".

ref: [http://www.stroustrup.com/hopl-almost- final.pdf](http://www.stroustrup.com/hopl-almost-final.pdf)

<comment><USER5> C++ was only set in stone in 1998 with the release of ANSI C++98.

Until then, it was a moving target, with C++ compilers catching up with CFront and ongoing work at ANSI/ISO meetings.

</comment></comment></comment></comment></comment><comment><USER21> Google cache link: [https://webcache.googleusercontent.com/search?q=cache:__B53p...](https://webcache.googleusercontent.com/search?q=cache:__B53pKdoxMJ:https://dave.cheney.net/2017/06/15/simplicity- debt+)

</comment><comment><USER22> Go: the only place in the known universe where you can find generics described as complex.

Even though modern VB-programmers manage to deal with them just fine.

So pardon my French, but what's the fucking issue?

        var typesafeListOfInts = new List<int>();

How is that hard?

<comment><USER23> The point is not List<int>. The point is that the primary intention of Go is to push developers to write the most readable (and hence, maintainable) code possible. No one argues that List<int> will not make the code more readable (and in fact, Go has some very limited generics for lists, maps and channels for these usecases). The problem is that once you give people parametrized types, they're going to parametrize _the shit out of them_ , leading to byzantine messes such as the C++ standard library or Boost.

And that's not saying that something like Boost isn't an accomplishment in itself. But it's beyond hard to read, and when your language allows to write code like that, it's bound to appear in your codebase as well, and make maintaining it much harder than it needs to be.

<comment><USER22> > The point is that the primary intention of Go is to push developers to write > the most readable (and hence, maintainable) code possible.

Lack of parameterized types leads directly to code-duplication. How is duplicate code more maintainable?

> The problem is that once you give people parametrized types, they're going > to parametrize the shit out of them, leading to byzantine messes such as the > C++ standard library or Boost.

An extraordinary claim with no backing what so ever.

Just because C++ turned out terrible doesn't mean everything else has to. Look to C# and Java. They're doing _just fine_.

Also: how is littering your code with "interface { }" any less Byzantine than simply using "T"?

</comment></comment></comment><comment><USER24> I'm glad the article begins with mentioning the GIL, the elephant in the room of Python and Ruby. I often wonder why it isn't getting the attention I believe it deserves - either the problem is just too hard to solve and has been written off as not worthy of addressing, or perhaps developers do not understand how much (unnecessary) complexity goes into deploying, running and monitoring a production Python/Ruby app only to work around the GIL limitation. I devoted a section of my recent blog post to the GIL problem here [1] if you're interested in why I believe it is such a problem and how cool it is that Go does not have it. It's not the only thing I like about Go, but it is one of the most important ones in my opinion.

[1] [https://grisha.org/blog/2017/04/27/simplistic-go-web- app/](https://grisha.org/blog/2017/04/27/simplistic-go-web-app/)

<comment><USER25> It can be argued that the GIL doesn't matter, because Python is too slow if you have a performance sensitive problem anyway. I'll give numpy as an example.

</comment></comment><comment><USER26> > _By the time this decade rolled around, Node.js and Go had arrived on the > scene, highlighting the need for concurrency as a first class concept. > Various async contortions papered over the single threaded cracks of Python > programs, but it was too late. Other languages had shown that concurrency > must be a built-in facility, and Python had missed the boat._

While concurrency is nice, some citation is needed here. For one, Python is not going anywhere, and remains spectacularly more popular than Golang.

> _But, no matter how important and useful templated types and immutability > would be, integrating them into a hypothetical Go 2 would decrease its > readability and increase compilation times—two things which Go was designed > to address._

Well, they sacrificed compilation times to get a native compiler (which has no real utility to the users of the language, on the contrary it makes bootstrapping a little more messy).

Sacrificing it for Generics seems like a no brainer, but it seems they're not yet ready to bite the bullet.

As for "sacrificing readability" I don't think that having 30 lines of code just because you need to make it work with different types is any easier than having 10 lines of the same code with parametric types. Not to mention NOT having to write any code at all, because the standard library can finally have code (e.g for math, collections, etc.) that works across all relevant types. With Generics people could just reuse a few generic implementations of channel uses to handle 90% of their concurrency needs.

And it's also much better and easier to parse than using dreadful string templating kludges or interface{} to get the same behaviour.

I mean, the author mentions all those languages with generics ("Rust, Nim, Pony, Crystal, and Swift showed that basic templated types are a useful, and increasingly, expected feature of any language—just like concurrency"). Does he see the users of those languages complaining about generics being a burden?

Why do people always have to lament the terrible burden Generics will bring to Go in advance, when millions of us (literally, just add Java and C# programmers) just use generics in other languages without thinking twice about it?

There's a proverb in my country, that "He who'd rather not knead the dough (to make bread), keeps sifting the flour for days".

In programming terms it would translate roughly to: "He who is too lazy to build a bikeshed or doesn't like the prospect of building one, will keep on discussing the color it should give it".

Which I think is the case whenever anybody from the core Go team discusses Generics.

> _As it stands now, generics or immutability can't just be added to Go and > still call it simple._

It's 2017. Neither are particularly difficult to grasp for a modern programmer. Even enterprise Java programmers have been using the former for a decade already, and they're not known for the wild experimental nature...

<comment><USER27> > For one, Python remains immensely more popular than Golang.

And it's worth looking at the reasons for that. Firstly, age is a factor - Python is much older.

However, most Python growth has come from data science and machine learning fields. There is no reason Go can not grow the pie and make such fields more accessible to those with an interest in computing concurrently. And surely, if there is one field where concurrency might be a boom it might be data science and machine learning.

Now, Go has some problems in that area: principally it does not have data structures as "friendly" as Python lists or NumPy arrays, and therefore people will have to jump through hoops. Could it get them? Yes. Would that be more powerful than generics? Absolutely. Will it get them? It's not obvious to me it will, other than through a third-party library which is fine.

In fact Python's successes might not be Python's. They might be NumPy's and Pandas' successes. Go can have the same thing, and do it better.

<comment><USER28> I think you underestimate just _how_ important is Python's support for various numeric data types is for NumPy's, success. There is no possible equivalent in Go that would not look like a horrendous mishmash of various different functions to declare all the different numeric types and various forms of matrix slicing and traversal operators.

<comment><USER27> Go does not support multi-dimensional slices, and that is a problem.

I am not sure the numeric data types thing is such an issue.

Python supports int, float, long and complex types. So does Go, with the slight annoyance you have to care a little more about the size of your number, and so you don't just label something 'long' and walk away safe in the knowledge it's kinda big. Numpy just makes Go's numeric data types available. The clever thing it does that Go does not is around arrays and operations on them - something we need to consider in Go land, carefully.

The other stuff Numpy and Pandas makes available could be made available in Go, too and could abstract away the horrible stuff under the hood where you're resizing slices and creating multidimensional versions.

I think the moment multi-dimensional slices are available, you can do everything you want, and with concurrency and therefore able to trivially exploit multi-core systems - that could be the killer feature. Maybe.

</comment></comment></comment></comment><comment><USER5> The good part of Go is having a programming language, which DevOps are adopting in place of C, allowing for safer userspace applications.

The sad part is Google supporting Java, Kotlin, TypeScript, Dart and C++ progress o one side, all with lots of people knowledgeable in language design and then there is Go.

</comment><comment><USER29> While the author's main idea is good (it can be more complex to work around missing features than to have them designed in from the beginning), starting from an invalid premise really weakens the article.

Node.js illustrates the need for concurrency, but is even more single-threaded than Python.

Somehow, in spite of the GIL, Python has continued to increase in popularity, probably because the workarounds are pretty easy (use multiple processes or c extensions that give up the GIL or jython or...).

Threads are not the only route to parallel execution, just as templates are not the only route to generic data structures.

</comment><comment><USER30> Wrt/ to generics I think one interesting exercise would be to look at list and see what would need to happen such that it behaves more like the built in map. You'd want to be able to declare:

\- list[type]

\- delete should work.

\- len and cap should work. (rather than .Len() )...

\- range should work.

\- What do we do for iterators?

I think it would make code that uses lists more readable/grokable. So you do get something in return for the debt you possibly took on to be able to implement list. In a sense that's also the way C++ trades things off, the library code is more difficult but the code using the library is simpler/safer.

<comment><USER23> I don't understand the question. All of these operations (except for delete) work on []T and have always worked on it.

<comment><USER30> [] is a slice... not a list... I'm talking about [https://golang.org/pkg/container/list/](https://golang.org/pkg/container/list/)

</comment></comment></comment><comment><USER31> This is all about trade-offs right? Choose to have a simpler language when it comes to concurrency and multi-threaded programming and the outcome is a harder time troubleshooting at runtime.

Or, make the compiler more powerful and annotate the code in such a way that the compiler does way more upfront on your behalf...now this means you don't have to work so hard to troubleshoot code in production.

Personally, I'd rather work harder up front--even if it means a higher learning curve.

</comment><comment><USER32> I'm finding it difficult to accept the premise that generics and immutability are needed in Go.

In my case,

      var foo map[<type>]interface{}

solves 99% of issues where I would normally need generics.

The author also doesn't really specify what kind of generics, there's a huge difference between parametric polymorphism (i.e. Haskell type classes) and Java/C++/C# generics.

The sheer rapid pace of development and simplicity has made Go our primary stack.

<comment><USER13> > var foo map[<type>]interface{}

> solves 99% of issues where I would normally need generics.

But it also opens you to to runtime conversion errors, spurious if checks for type information compilers with generics have, or slow reflection to find the type.

> The author also doesn't really specify what kind of generics, there's a huge > difference between parametric polymorphism (i.e. Haskell type classes) and > Java/C++/C# generics.

Java/C++/C#/Haskell generics all provide parametric polymorphism though.

Haskell type classes provide ad hoc polymorphism, though I guess maybe they provide parametric polymorphism as well.

Per Wikipedia:

> In programming languages and type theory, parametric polymorphism is a way > to make a language more expressive, while still maintaining full static > type-safety. Using parametric polymorphism, a function or a data type can be > written generically so that it can handle values identically without > depending on their type.

</comment></comment><comment><USER33> I don't think Cheney properly understands the concept of "simplicity" fully. A language is not simple because it meets some arbitrary measure of smallness.

A language is simple if it decomplects unrelated concerns. Which go does admirably in certain areas, but its absence of generics certainly adds to cognitive overhead and unnecessary complexity elsewhere.</comment>


Show HN: Bookmark OS is like Mac or Windows optimized for bookmarks - <AUTHOR> https://bookmarkos.com/?v2 <comment><AUTHOR> Founder here. Bookmark OS is a passion project that I'm building because I got tired of the linear and crappy UIs of almost every bookmark manager. It is an attempt to bring the ease of use, elegance, and power of a GUI like Mac or Windows to bookmarks.

I submitted the first basic version of Bookmark OS here 2 years ago and since then a ton of work has gone into it based on user feedback. Here are some of the highlights:

      - Folder suggestions will attempt to predict the folder a bookmark should go using AI and NLP. This helps avoid creating different folders with the same content (for example, a "coding" and a "programming" folder) and makes it super fast to find the right folder.
      - Keyboard shortcuts (inspired by vim): opening a bookmark has never been faster. For example, press "a" for "All" bookmarks, then the down arrow and then "enter" to open the latest bookmark.
      - Customize icon view: change icon size, font size, spacing, and line height to your liking.
      - Customize list view: change the order of columns and show/hide columns.
      - You can now see a bookmark's parent folder in a column when viewing all and searching. This makes it easy see where a bookmark lives and easily open the folder with a click.
      - Folder sharing: share a folder of bookmarks that cannot be edited or collaborate on a folder with a friend.
      - Tags and folders work together: for example, if you activate a "to read" tag, only folders that have a bookmark with a "to read" tag nested inside will show.

In terms of tech stack, I've tried to stay vanilla as possible to keep things simple. For the front end no framework is used, just jQuery and Bootstrap. On the backend, Rails, Sidekiq, Redis, and Postgresql. Right now, Postgresql is being used for search as well and it works great.

And lastly, Bookmark OS is subscription based and has a healthy paying userbase for longevity.

There are more features on the way, so let me know if you have any suggestions or questions!</comment>


Creating a virtual traffic jam on Google Maps with 99 phones and a wagon [video] - <AUTHOR> https://www.youtube.com/watch?v=k5eL_al_m7Q <comment><USER2> Discussed here: [https://news.ycombinator.com/item?id=22216821](https://news.ycombinator.com/item?id=22216821)

</comment><comment><USER3> Why is his face blurred in the photos on the website but not in the video?

</comment><comment><USER4> why would you want to do this - other than just because you can?</comment>


Geographic distance can be simple and fast - <AUTHOR> http://jonisalonen.com/2014/computing-distance-between-coordinates-can-be-simple-and-fast/

<comment><USER2> Interesting comparison. For the SQL distance example, though, a spatial database engine like PostGIS would of course be more appropriate.</comment>


A site devoted to documenting every Facebook investor - <AUTHOR> http://whoownsfacebook.com/

<comment><USER2> Well put together and utterly depressing.

<comment><USER3> What makes it depressing?

</comment></comment><comment><USER4> Why is the total from the left column only %72.669, who owns the rest?

<comment><USER5> That's the question the website exists to discover an answer to.

</comment></comment><comment><USER6> Divya Narendra (bottom), who _came up_ with the idea, got less than 1/1000 what Mark Zuckerberg -- who _executed_ on the idea -- received. Goes to show that ideas are worthless.

<comment><USER7> No, ideas aren't worthless, they're just worthless without execution.

I've got tons of ability to execute, and so do most of the people on this website, but what most of us lack are ideas to act on.

These ideas aren't specific to web-app concepts, either. They could be marketing ideas, or ideas for new datatype implementations, or the next trendy datastore.

I think this is something that a lot of hackers miss. You might be the smartest coder on the planet, but if you don't have something to code, then you're Stradivarius sitting in a box on a shelf.

Ability to execute is something that almost everybody who has ever seriously uttered the phrase "idea guy" lacks.

</comment></comment><comment><USER8> FB is estimated at $85B and only 6 non-founding employees are worth more than $20M? Is this a full list?

</comment><comment><USER9> I don't get it. How come Mark Zuckerberg owns only 24%? How are these shares distributed among these holders as it grew from a four person startup to this big giant company? Can any one point me to the complete story? I guess that will be a valuable read for fresh startups like us.

<comment><USER10> "Only"?!

24% is a remarkable position for Zuckerberg to have maintained to this point, considering the amount of money they've raised and the "public" market cap of Facebook. Many founder/ceos of _much_ smaller companies find themselves at around 10-20% after two or three rounds.

<comment><USER9> "after two or three rounds" : What does it mean?

</comment></comment></comment><comment><USER9> Wait a minute! That doesn't add up to 100%. They all add up to only 72.669%. What happened to the rest 27.331%?

</comment><comment><USER11> They all wish. Shouldn't the "convicted felon" be at the top?</comment>