Opera and WebKit: a personal perspective  - <AUTHOR> http://www.brucelawson.co.uk/2013/opera-and-webkit-a-personal-perspective/

<comment><USER2> A good quote from the article:

      One rendering engine will go. Some lament that. Some of
      those who lament it seemed never to test in it, excluded
      it from their demos, or actively blocked it.

<comment><USER3> what i will probably miss most about opera are the features that will vanish for several versions until they (ever?) catch-up.

</comment></comment><comment><USER4> "Opera has 300 million active users"

I call bullshit. If Opera wants to make a claim like that they're going to have to aggressively defend their counting strategy.

Firefox: "According to Mozilla, Firefox counts with over 450 million users around the world." [1]

Chrome: "At the 2012 Google I/O developers' conference, Google claimed that there were 310 million active users of Chrome, almost double the number in 2011, which was stated as 160 million active users." [2]

[1] <http://en.wikipedia.org/wiki/Firefox>

[2] <http://en.wikipedia.org/wiki/Google_Chrome>

<comment><USER5> opera is very strong on Mobile phones (incl. old Symbian Nokias). 300 million is a lot, but within the possible. this comment was written in opera.

<comment><USER6> also, their mini browser directs stuff through their servers.. which means it's very possible for them to have a pretty accurate view of how many users they have.</comment></comment></comment>


Apple Mac App Store tells cross-platform Electron apps to get lost - <AUTHOR> https://www.theregister.co.uk/2019/11/05/apple_app_store_electron/ <comment><USER2> More accurately, Apple is getting more insistent that apps on the store can't use private APIs, and the Chrome browser is a huge offender in using private APIs. Of course, Chrome is the technology underlying Electron, so any apps built with Electron are likewise affected.

Google doesn't care if Apple won't let Chrome on the App Store. But if you built your app with Electron, you may very well care that Apple is now getting more insistent about enforcing these rules.</comment>


LinkedIn To Launch Its Own Ad Network - <AUTHOR> http://www.techcrunch.com/2008/09/14/linkedin-to-launch-its-own-ad-network/

<comment><USER2> I was just joking last night how a startup or business "launching it's own ad network" has become the new "launching, becoming or integrating a social network."

Not sure what happens if a social network launches its own ad network. Apocalypse? Dead pool?

<comment><USER3> I think it's a good strategy. The existing ad networks are pretty restrictive and not particularly innovative.

Worked pretty well for stumbleupon.

<comment><USER2> I hope so. I'm sick of seeing features act as leading indicators.

</comment></comment></comment><comment><USER4> Search advertising works. It brings in more then is needed to fund great search long term with plenty of R&D, innovation, free services & free food.

But advertising online is far from solved. It's still not clear what sort of sites/apps can be funded by advertising & what types can't. Experimentation here is vital. We need advertising models that fund the rest of the web. Or at least the part that is ultimately going to be funded that way.

Search ads do a good job of matching ads to what you are doing (Looking for stuff about X, here's an ad for X). Maybe something can be built on matching ads to _who_ you are.

</comment><comment><USER5> There's an opportunity here for someone to create a system that dynamically optimizes ad revenue for content providers by weighing potential revenue from various ad networks based on content, context, and user profiles.

TV networks like ABC don't accept ads from just one agency media buyer. Why should web sites commit to a single Internet ad network?

</comment><comment><USER6> Well, it makes sense if the people/information they can target. It'll work well for B2B ads without a doubt.

<comment><USER7> To be honest it may even be useful.

If you're a founder occupying the retail insurance space and you're getting ads served about retail insurance opportunities then it's obviously no good.

If you're a founder occupying the retail insurance space and you're getting ads served about support for retail insurers then it's a hell of a lot better than the crap you get on google.</comment></comment>


Ask HN: any boilerplate ToS philosophically equivalent to the MIT license? - <AUTHOR>

I like the MIT license for being straightforward and simple for code. It's easy to slap on any code that you want to share without worrying too much about what's done with it. For me, it means "here is it. This is my code, but feel free to do your thing"
So I'm wondering if there's something in the same spirit for Terms of Services. I'm afraid ToS have to be more tailored to specific sites though.
Is there anything you typically use for services that you want to share without the burden of committing to a specific conduct? Something like "Use at your own risk"?
Thanks! <comment><USER2> Automattic's ToS and PP are licensed under CC. You can use them as a starting point. <http://en.wordpress.com/tos/>

While you certainly can save money editing your own ToS and PP, be aware that this is a time consuming process. I've worked on ours (It's not yet done, but when it is it will be released under the same license as Automattic's)

Be sure to read Antone Johnson's answers about ToS and PP on Quora:

[http://www.quora.com/Is-it-a-reasonable-hack-to-copy- paste-a...](http://www.quora.com/Is-it-a-reasonable-hack-to-copy-paste-a- similar-companys-Terms-of-Use-Privacy-Policy-change-names-and-edit-a-bit-vs- spending-legal-in-alpha-stage)

[http://www.quora.com/What-are-some-ways-to-prevent-and-or- de...](http://www.quora.com/What-are-some-ways-to-prevent-and-or-deal-with- legal-issues-that-arise-from-actions-of-users-on-user-generated-content- websites)

[http://www.quora.com/How-do-I-find-a-specialist-to-write- a-T...](http://www.quora.com/How-do-I-find-a-specialist-to-write-a-Terms-of- Service-and-other-legal-documents-for-a-website)

FINALLY, MAKE SURE YOU GET A REAL LAWYER TO REVIEW WHATEVER YOU DRAFT BEFORE YOU USE IT. Ask them the price to draft one for you for scratch, then use that to negotiate a better price to just review the one you already wrote. You might want to use version control with Automattic's ToS and PP, so that they can see what you've changed.

[DISCLAIMER: I am not a lawyer. This post does not constitute legal advice. Use at your own risk]

<comment><AUTHOR> Thanks a lot for your answer! The links are very useful, though sadly they point towards custom ToS and privacy policy.

I expected that, but it's an extra step to do for projects that might not always be worth it. That's why the MIT license is always nice on the code side…

<comment><USER2> Unfortunately the legal documents suck hard. Most legal documents were written for lawyers and courts to execute and only incidentally for humans to read. Our ToS, when I'm finally done with it will have quite a few parts which may be more use to you than the Wordpress one. Wordpress focuses on a product with a tenant structure, where each tenant "owns" their domain. Our product is more like Twitter, Foursquare or Quora, where you have users in a shared space. Check out my profile for my company domain. The ToS and PP should be posted by the end of December when we go public with our product.</comment></comment></comment>


Could Body Odor Be Your New Password? - <AUTHOR> http://www.strongpasswordgenerator.org/blog/body-odor-password

<comment><USER2> A question that should be asked is: If someone slips you chemical $X, that alters your body odor, will you be locked out of your devices?</comment>


Study: Intelligent Cars Could Boost Highway Capacity by 273% - <AUTHOR> http://spectrum.ieee.org/automaton/robotics/artificial-intelligence/intelligent-cars-could-boost-highway-capacity-by-273#.UEZAIqv-vCA.hackernews <comment><USER3> The introduction of radial tires caused a collapse of the tire industry. People didn't start driving four times as far when the useful distance of a tire increased.

Human driven cars are idle 95% of the time. Many fewer self-driving cars could handle the same capacity with ride sharing services like uber.

I'm concerned that auto manufacturers would take actions to prevent this outcome, reducing the potential.

EDIT: silverstorm that's an awesome point

<comment><USER4> If software drove all cars, driving cars would become much more efficient

1\. cars will last longer, which would make car manufacturers unhappy

2\. cars will become more fuel efficient, which would make fuel industry unhappy

3\. insurance rates will go down, which would make insurance industry unhappy

4\. number of accidents would be less, cars would require lesser maintenance which would make mechanics unhappy

etc

But, more people (elderly, people with disabilities) would buy cars, so number of cars sold would go up. Also, it would open up whole lot of possibilities on the software side, construction industry etc (what if roads are designed for super efficient drivers, than humans?).

Overall, it would be awesome to watch this happen - kudos to Google for tackling this.

<comment><USER5> 5\. Housing prices would go down in major cities in the short term? Less demand to be in a metro area?

Living in the suburbs would be much more palatable because you could convert your "drive time" to "internet/reading time".

Auto driving cars would be not be just a disruption (i hate that word) to the auto industry, it would be an earthquake that would have many aftershocks to the economy as a whole.

<comment><USER6> > ... because you could convert your "drive time" to "internet/reading time".

Sadly some of us humans are now genetically dead ends. I'm one of those people who gets car sick unless I'm looking out the window, best in the front seat and with cool air blowing. Consequently I can't really read or Internet. (If I look at a paper map for about 60 seconds I'll be on the verge of puking.) So even if I wasn't driving I can't really use the time for anything else (can't sleep either).

</comment></comment></comment></comment><comment><USER7> 3 points should be considered:

1) Even with robots there will be unknowns which the robots will have to deal with which will still require a margin of safety. Likely that margin of safety will be lower with robots, but definitely will not approach 100% capacity. (things like tire blow-outs, deer, even sudden rain etc).

2) Road wear will still need to be considered in any cost benefit analysis. Presumably road wear is less of a factor than jamming cars on the road, but I don't know that for sure and someone should do the math on that. There is also a point where if you exceed a certain capacity percentage, anytime road work needs to be done it would dramatically impact traffic since there is less of buffer to absorb the lack of lanes.

3) As we increase capacity, we may run in to additional problems that we cannot imagine. Bridges for example could be an issue as the amount of weight would be increased dramatically, even more remote a possibility would be damage from additional vibrations etc. Those are just ideas that come to mind, but there are probably many other risks we are not considering.

Overall, I am 100% for robotic cars, robotic passenger jets, etc. I just wanted to brainstorm a few future problems that may need to be considered as we move forward. The last thing I want to see is a 5 year setback.

Then again, the engineers at google and elsewhere have probably considered all these things which just seem new to me as a casual outside observer.

<comment><USER8> I think your broad point is correct; no system can be perfect. But most of your criticisms have straightforward rebuttals. Robots, being robots, are going to be _inherently safer_ at the stuff you mention (tire failure, sudden obstacles, weather) simply because those things are "dangerous" _precisely because_ they are unforseen and require the driver to take action quickly. Robots are faster.

Road wear is a cost, but it scales at worst linearly with traffic. I can't imagine anyone crying because we can now build ($$$$) half as many lanes of highways but much repave ($) them twice as often.

And the bridges things is just wrong. Bridges are obviuosly designed for maximal loads, which in this case would be a bumper-to-bumper traffic jam of even more weight than a packed stream of robots. And that happens routinely.

<comment><USER9> We don't want to mis-underestimate the complexity driving a car. The dynamics of obstacle avoidance, for example. Have you ever been hit by a deer?. Had a blowout (not a flat) on an SUV, say in a decreasing radius, off camber turn? Can you solve for some of these considerations? certainly. But you would need extra-ordinary technology. The dataset for camber-level 3D GPS maps, for example = large. What about a sinkhole or collapse of roadway al-la Embarcadero freeway? Or the Collapse of the Bay Bridge? What about hydro- planing after a rainstorm in CA? Lastly, ABS can be dangerous on snow, dirt and other imperfect road surfaces. How do you feather the brakes? Just some edge cases. On the cost side, the interstate system is ~complete. So, you wont be saving money by avoiding future construction, in proportion. You will just be speeding up the depreciation of the existing capital infrastructure. So, again, that's not a clear cut case there.

<comment><USER8> I'm not following those edge cases at all. Those all sound pretty fatal to humans too, or invoke driver skills ("feather the brakes", seriously?) that real-world drivers don't have. The point here isn't to be perfect, it's to be _better_. And that is, frankly, a very low bar.

Also: I'm very amused by your assertion that the interstate highway system (probably 10% of which is under expansion at any given time in any give metro area, and the remainder of which is rapidly approaching capacity and/or experiencing routine unplanned congestion) is "done".

<comment><USER9> _I'm not following those edge cases at all_

Understood. So I will explain a bit more in depth. But, the things I laid out are pretty basic. The dynamic responses of a vehicle under motion works something like this.

(1) Balance. The car is never level. As you accelerate, there is inertia. The drive train and the chassis do not move in unison. They are connected by "Springs". This is like an airplane: attitude. So, the forces on the car and the road are different, but related. And there is a lag.

(2) Dynamics. Accelerate, nose up + ass down. Decelerate, nose down+ass up. The road is not straight? Similar for a turn (tilt left, tilt right). Now, combine. What happens? There is a dynamic weighting applied to all 4 corners. Go into a rt turn? Weight front left. Unweight rear right. etc. So, the point is that the friction is changing in each corner as you drive. The friction must exceed the energy of the car, or you will slide like on ice, etc. But, for the reason you brake in a turn, this is not always guaranteed, etc.

(3) Topology. Now, add some complexity: The road is not flat. This changes the calculation of the weighting for each tire. A tire on a 45degree incline is not holding as much friction as on a 2 degree one. This is like standing on a sand-slope, etc. Just basic idea. Now, The traction is a function of the weighting of each tire, _plus_ the relative position of the tire to the road surface.

(4) Environment. Also, you have to consider a few other things: Do you know the co-efficient of friction of the road surface? Clean? Dry? Wet? WIth autumn leaves? What tyres do you have? What is the friction curve with relation to the rubber type and the ambient air-temperature? Oh, and by the way where is the tread depth? Today? Yesterday? These are all things that go through the mind of a trained driver and are not un-common knowledge (think: f1, rally). Same thing with left-foot braking, not using ABS, non-abs brakes on snow/ice/dirt/ etc.

(5) Complex System. If you cannot predict any part of this, you run the risk that the inertia of the car from speed etc >friction => loss of traction, accident, crash etc. This means: If you don't know the "camber" of the turn, your math is a problem. You might know that you are turning right at x degrees, but what will the turn be in 100m? constant radius? or not? What if you change lanes in the turn? etc. Now, you can topo-map solve this at high enough resolution. Eg., something akin to a race-track, in a video game. Go to Laguna seca, and put that in a computer. Problem here, though, is scale: like 1 inch topo variances or something, but that data set for CA state? Is huge. You don't have it. How would you even get it? What is your other option? Terrain acquiring radar? That might work. There is probably something in 60ghz and up that in theory might work. But you are line of sight constrained and now how far out can you look? 10m? What is the system's reaction time? How fast are you?

(6) Road hazards. Similar problem here. If there are abrupt changes. How do you acquire them? A sinkhole. A pot-hole (might break your wheel, etc) These are things not on a map-set. A live person just drives around them. But, what about a freeway? 6 Lanes, everyone is packed in like sardines. Does the guy in lane 6 know the guy in lane 2 is going to swerve? If he doesn't swerve (an breaks his wheel) what happens? The bridge failures are an example similar. If you are driving, you just look and see: no road. But, what if you are on auto- pilot? Who tells the computer there is no road? Same thing flash flood. Even worse, is hydroplaning risk (like 1/4 inch of standing water, say). If you are not driving are you paying attention? If you don't feel the steering wheel, how do you know? Can you put that into the computer?

That being said, they are doing amazing things with traction control systems on motorcycles right now. So some of this may get figured out. But you will not see a guy with all of this tech riding no hands/no brakes, etc. This is strictly in addition to user input and continual monitoring of the controls.

____________________________

The Interstate System

Do you have experience actually navigating? Like, say long stretches accross the USA? At continental scale? The Interstate systems is what it is. Its "90%" done. There is not 1000 mile segments being built. Max is 100 miles, and even that is incredibly difficult (permits, etc). Also, those are not "capacity" related build outs, you are talking only a couple of missing geographic links. New lanes/etc are a different animal (thats maintenance, for the most-part). Put another way, US is not going to rip out 2/3 of the roads and put 3x the traffic on the smaller footprint, to get to a break-even case. Now, you want to increase by 278% more cars/hours on the system? OK fine, but it will cost you. Its basic math, no? Also, the economics of construction don't work out that you save money by only "fixing" half the lanes or whatever. Lastly, consider the purpose: more capacity? History shows, no matter how many lanes you put down, the 405 fwy will be in Jam at 4-6pm in LA. Its not just rubbernecking. It is a larger social issue: people will procrastinate. Now they are in a "hurry". Oops. [As the saying goes, sometimes there is no engineering around stupid =D.]

Other Safety cases.

The point of these cases is not that they are per-se fatal. It is that they require real-time rapid-terrain-acquisition to avoid making the problem worse. Deer is similar. I doubt a basic Lidar is going to acquire a deer in the brush that jumps out in the road. It might, with thermal imaging, make it possible to _see_ hiding off to the side. But, the calculation would need to be predictive in a what which is pretty amazing.

</comment></comment></comment></comment></comment><comment><USER10> I'm curious what happens when you have highways filled to capacity, and then more cars are added.

A busy highway moving smoothly at capacity is like a super-cooled fluid. As long as nothing goes wrong, it can last, but the second you introduce some delay, somewhere, you wind up with a rapidly expanding solid (ie traffic jam). Intelligent cars boost the capacity of smooth traffic more than they do the capacity of bumper to bumper slow traffic, and hence the transitions from "awesome" to "oh shit" should be much nastier than they are now.

The traffic jams of the future could make our current ones look tame.

<comment><USER11> please, could you elaborate on this? I loved the metaphor.

>"As long as nothing goes wrong, it can last, but the second you introduce some delay, somewhere, you wind up with a rapidly expanding solid "

<comment><USER10> The capacity of the road as being the number of cars passing by per second. Which is the number of lines times the rate at which cars are traveling, divided by the distance between cars in a lane. Now compare:

Smooth: Going 60 mph and leaving 2 car lengths of space, so the distance from front bumper to front bumper is 3 car lengths.

Congested: Going 30 mph and leaving 1 car length of space, so the distance from front bumper to front bumper is 2 car lengths.

In the former road you go 2x as fast and need only 1.5x as much space, so the former road has a third as much capacity as the latter. So if cars are moving along a highway already operating at capacity into a congested area, cars are arriving at the transition faster than they are leaving. Thanks to the law of conservation of cars, excess cars must accumulate at that transition, and since they have nowhere to go, they wind up parked in a traffic jam. And as long as the road feeding it is at capacity, that traffic jam grows.

From the point of view of the driver, this is what it looks like. You're sailing along in smooth fast traffic, and then hit a sudden traffic jam with no warning. After sitting there for a long time the road starts moving again, but goes much slower.

This is common experience in Los Angeles traffic. And a significant fraction of accidents happen at that sudden transition from smooth sailing at 60 mph to a dead stop. (In fact my wife got rear-ended in that exact scenario a year and a half ago on the 405 near Los Angeles airport.)

<comment><USER11> Thanks! Really really insightful.

</comment></comment></comment></comment><comment> a-priori Wow, about a month ago on Reddit, I made a quick calculation where I predicted a 250% improvement in capacity.

[http://www.reddit.com/r/Futurology/comments/y28g8/suspend_al...](http://www.reddit.com/r/Futurology/comments/y28g8/suspend_all_pessimism_for_a_moment_share_a_short/c5s0xqs)

</comment><comment><USER12> Is it just coincidence that this is essentially e? I know the natural log pops up in all kinds of unexpected places. Is this one of them?

<comment><USER13> I'd be more concerned about the phony precision. Not 250%, not 270%, no -- 273%.

<comment><USER14> Considering this references an actual research paper, I'd wait to actually _read_ the paper before calling the precision phony.

<comment><USER13> No, you don't need to read the paper to conclude that three significant figures of precision is warranted.

Perhaps the research is good, and this is just a case of PR having unwarranted input into the labeling, but that still wouldn't justify the headline.

</comment></comment></comment></comment><comment><USER15> I've always had a few questions about the move toward fully automated cars (and I don't mean to raise these as luddite objections, I'm just curious how it will play out, and what steps are being taken to address this)

1)How will manual cars (and motorcycles) be managed once we have non trivial percentages of cars on the road automated? Will there be automated-only highways? Automated-only lanes? Is the beginning of the end for those of us who really enjoy driving (or motorcyles?). Or will those things just be limited to non-urban/track environments?

2)How does all this automation & closer car traveling @ high speeds work when natural events intercede. The most obvious one is weather (rain or snow), which can be a huge problem for cities as is, but it seems like having cars on the road with no "bubbles" of space to buffer great exacerbates the potential for massive accidents when there is marginal traction. Secondly, in many areas of the country, wildlife on highways is a very common occurrence (even in cities there's the occasional road debris/unexpected obstacle). I wonder how well an at-capacity automated highway could react to a sudden bit of road obstruction w/o running into a massive accident (or massive traffic jam) situation.

Of course, many/most human drivers don't handle adverse weather or unexpected obstacles very well either, so maybe these are just facts of driving, not arguments against automated cars as such. Still, I'm interested to see what attempts are being made to mitigate the effects of such variables.

<comment><USER16> I think there are a lot of situations where automatic cars would leave more space than humans, who seem to be prone to (unnecessary) tailgating.

<comment><USER17> Let's not forget traffic jams caused by rubbernecking.

</comment></comment></comment><comment><USER18> This type of information has made me rethink my overly-negative opinion of how the United States has chosen to spend its transportation infrastructure efforts. I've always been under the impression that car-centric designs are grossly inefficient, and used primarily due to culture and profit of the automobile and oil industries, while putting actually transportation efficiency on the back burner.

But automated cars could flip the efficiency numbers around. Really excited to see where this technology takes us.

</comment><comment><USER19> This is not necessarily good news. Among other thing this means the capacity for pollution also rises, although hopefully not by the same factor - <USER2> automated cars can be more energy efficient than human drivers.

<comment><USER20> There is a large amount of pollution cause by the manufacturing of cars, which can have a net benefit. Another benefit is that you could use very efficient cars for the trips that they are suited for like going shopping for groceries by yourself, and inefficient ones like picking up a new refrigerator.

That said I'm also worried that it could increase the time spent in cars since there won't be as much negative feedback from stressful/boring/unproductive driving.

</comment></comment><comment><USER21> Am I missing something here? Already our motorways / highways are not being used at this higher capacity but when something bad happens there is no redundancy. Everything grinds to a halt. What's the desire to make this worse? Also does it not put even more pressure on the roads leading to the highway? - increasing congestion to the point where having higher usage of highways is pointless.

</comment><comment><USER22> I think self driven cars are going to be an amazing blessing to senior citizens — this could really reinvent suburbia in a good way.

<comment><USER23> True, but not even that limited. Any individual that could benefit from not having to concern themselves with the outside environment. In addition to the senior citizens, you also have the handicapped, the makeup applicators, the cell phone users, limited eyesight drivers, the overall bad drivers, and more importantly, impaired drivers (alcohol especially).

Not just performance in terms of efficient driving and merging, but also safety and essentially taking human operator error out of the equation (for the most part)

<comment><USER24> _Any individual that could benefit from not having to concern themselves with the outside environment._

I think people will take this way too far. They'll turn on the autopilot and take a nap while blasting through a school zone or something.

<comment><USER25> _I think people will take this way too far. They'll turn on the autopilot and take a nap while blasting through a school zone or something._

If the car can't handle those situations, then it's not going to be a very useful intelligent car.

</comment></comment></comment></comment><comment><USER9> Isn't the historical _problem_ 100% of feasible capacity will be used?

<comment><USER13> Bingo. Until you can handle the problem of people moving further out to make up for the shorter commute, you're just deferring the problem, not fixing it.

</comment></comment><comment><USER26> Come on guys, you're the IEEE. Lead the story with the second set of graphs, not the first set of graphs.

I'm also going to go out on a limb and guess that this study doesn't account for the inevitable malware when the majority of vehicles are communicating with each other.

<comment><USER27> "I'm also going to go out on a limb and guess that this study doesn't account for the inevitable malware when the majority of vehicles are communicating with each other."

It's not inevitable. The simple solution to malware - just don't run any software you didn't have when you were first turned on - seems pretty solid here. Software updates handled the way airliners do it - not by letting the consumer reach out into the aether and grabbing whatever shiny malware infested dreck he can find.

<comment><USER26> Aha. s/malware/bad actors/

A little late getting back to the party, but the problem I intended to highlight was the potential for DDOSing the traffic network, or someone otherwise gaming the system.

</comment></comment></comment><comment><USER28> With the right software, they will be able to drive like a school of fish, at very high speeds.

</comment><comment><USER29> Intelligent societies could build infrastructures and communities that don't need cars.

</comment><comment><USER30> I sure hope Google and Tesla are partnering to bring the tesla's next model to the market as the first fully electric and robotic self driving car.

<comment><USER31> Tesla's goal is to create a fun-to-drive electric car. It would be opposite to their goal to create a self-driving car.

</comment></comment><comment><USER32> My first thought is minority report "pods"</comment>


JavaScript 'wake' event - <AUTHOR> http://blog.alexmaccaw.com/javascript-wake-event

<comment><USER2> If you do a timeout polling like this, it might be a good idea to bump up the timout to several minutes (not every 20 seconds like in the example code).

Peridically waking up an idle CPU just to check the time has a surprisingly big effect on power consumption. This might be a real issue if you have this page open in your smartphone browser but the phone is idle but not sleeping in your pocket.

<comment><USER3> RequestAnimationFrame[1] would solve that, however it wouldn't trigger in the background, which may, or may not be wanted.

[1]: [http://www.paulirish.com/2011/requestanimationframe-for- smar...](http://www.paulirish.com/2011/requestanimationframe-for-smart- animating/)

<comment><USER4> Probably is actually, I'd expect there's little need to update the list if said list is not being looked at. On the other hand, it might be fairly costly while the system is being watched as it will fire (and do some check) on every single frame.

</comment></comment></comment><comment><USER5> Been there done that. Never thought it was worth making a plugin for or even blogging about it though.

<comment><USER6> ... and that post to be in HN front page. Wow.</comment></comment>


Phonebloks: The phone you can build like Lego - <AUTHOR> http://www.bbc.co.uk/news/magazine-24490331 <comment><USER2> I do not see why this gets any publicity after a moment to think "Has any modular upgrade-able system ever worked?"

The best example I can think of are home-built PCs which sometimes go through one generation of graphics upgrade, and maybe the case gets re-used for a new motherboard. Anything else?</comment>


Ask HN: Feel the same loyalty for countries of residence as we now do jobs? - <AUTHOR> https://twitter.com/ChristinGorman/status/833567570200555520 <comment><USER2> I'm not particularly nomadic but having been born in a country, raised in another and currently living in a third country I already feel zero loyalty towards any specific nationality or country.

</comment><comment><USER3> Unrealistic hope, when so many people never live more than a day's hike from where they were born.

[https://www.nytimes.com/interactive/2015/12/24/upshot/24up-f...](https://www.nytimes.com/interactive/2015/12/24/upshot/24up- family.html)

</comment><comment><USER4> Scott Alexander has written an interesting exploration of an idea similar to this: [http://slatestarcodex.com/2014/06/07/archipelago-and- atomic-...](http://slatestarcodex.com/2014/06/07/archipelago-and-atomic- communitarianism/)

I feel like the tweet author is being too dismissive of the value of culture though (which is the umbrella that morals and religion belong to).

<comment><AUTHOR> I think the tweet author in the first twitter reply emphasises the importance of culture in your choice of residence versus the arbitrary birth country.

<comment><USER4> By culture I mean a culture to belong to, traditions and history you can feel linked to and that give you a sense of historical continuity. I'm british though so our cultural history is a bit more ancient than the US and I don't know if national spirit works the same there as a result. It seems the US is more unified by ideas around freedom from tyranny and individual rights.</comment></comment></comment>


Why banks charge fees - <AUTHOR> https://medium.com/@ryanstr/today-i-went-to-the-bank-6fd0728d8bb8#.eu7snq7my <comment><USER2> Except you don't have to leave traditional banking for Bitcoin, or the block chain in general. Join a credit union. Our small business accounts accrue zero fees, my personal accounts have zero fees. I talk to someone who literally lives in my city (well lives in the city I used to) when I call the support number.

They form an alliance with other credit unions and they are all zero fee. I go to a credit union ATM near my house to do any banking I can't do on the phone app (deposit checks > $5k). I can use the ATMs in any 7-11 for free and even deposit cash. In a way it's like Simple in that I haven't stepped foot in a branch since opening the account. Even to finish loan papers.

One thing that Chase did better than my credit union is international wire transfers. They charge less and I am able to do them via web interface instead of calling the branch every time. It's actually kind of a pain and I'm thinking about looking into something to work around this.

In 8 years my credit union has never screwed up, continued to add benefits to my card, gives me a free FICO credit check and score every month, and approved me for a $60k auto loan from the app on my phone instantly. Their loan rates are nearly universally 1-2% lower than the commercial banks and the crap the auto dealers push, except for when they do 0%.

They also shy away from making bad loans. The mortgage crisis barely touched them. You want a jumbo loan? You better have some damn good credit. It was the fact that during the housing crisis they were barely touched that I changed from Chase to them as I wanted to work with a bank that practiced good lending practices and didn't need to make shareholders happy every three months.</comment>


Using Go Modules - <AUTHOR> https://blog.golang.org/using-go-modules <comment><USER2> I've been using Go modules, and I really like them. It's obvious they really paid a lot of attention to backwards compatibility. Being able to vendor using mod is really awesome, as well as see all your transitive dependancies automatically. It's very goish to focus on minimizing your dependancies and actually think about what you're pulling in. I'm not yet sure how I feel about the v2+ stuff. Having a separate module for breaking changes is something I think I'll have to try more to form an opinion on, but I dislike the idea of embedding the version in the name instead of using the mod file.

I do think it's kind of odd that it decides to put packages in GOPATH, but disallows you from coexisting go mod projects in GOPATH. I organize all my code for all my languages using the go repo as dir. I've had to maintain a separate tree for go mod which is not ideal.

After using Go dep and mod, I felt that dep was the super straightforward and obvious way to do it. It's how I would have done it. Go mod is much more Goish, it's opinionated and based on a philosophy that fits with the language. It Gives me hope that if they do add generics they will make them uniquely Go as well.

<comment><USER3> It does not put modules in GOPATH, at least not where you'd normally find them. Pre-modules github.com/foo/bar would be in $GOPATH/src/github.com/foo/bar. Now they are in $GOPATH/pkg/mod/... (... being based on the URL with some handling for versions and characters that don't work well in filesystems, I don't know the exact details).

The main problems I've had with go modules are fast-and-loose upstreams that happily rewrite history. go mod detects this and stops the world, and you have to manually edit go.sum.

I also feel like "go get github.com/foo/bar" doesn't always get me the latest version. You see that there was a commit 1 hour ago, but then "go get" adds a version like 20181130-93874837 to your dependencies. I assume they know what they're doing? But I'm probably wrong.

<comment><USER4> > The main problems I've had with go modules are fast-and-loose upstreams that > happily rewrite history. go mod detects this and stops the world, and you > have to manually edit go.sum.

This is really irritating. I have the same problem with TLS: every time a malicious actor tries to manipulate my connection and steal my cookies I get an error page and can't do online banking anymore!

Sarcasm aside: this is not a problem with Go modules. This is a problem with the libraries you're using and you should avoid those projects until they get their act together.

<comment><USER5> Internal libraries are a huge pain to build now. I don't need the rigor of semantic versioning for this, it just gets in the way. My act is together, I have tests that confirm my libraries work, I have a idempotent versioning system that is automatic (git sha) and if something gets merged to master that is my stamp of approval that it works.

Between the versioning behavior and trying to figure out how to document transitive dependencies correctly go mod has made my life as a maintainer harder.

<comment><USER6> It sounds like the replace syntax might help here. It allows you to forgo semver+version control and depend on modules on your local disk. [https://github.com/golang/go/wiki/Modules#can-i-work- entirel...](https://github.com/golang/go/wiki/Modules#can-i-work-entirely- outside-of-vcs-on-my-local-filesystem)

</comment></comment></comment></comment></comment><comment><USER7> Making sure I understand this: I'm some independent developer working in many languages. I like every project I work on to be inside ~/work/ within a subdir I name based on the project.

I used to be annoyed that I had to put every go project into a dir 7-8 layers below that e.g ~/work/go/src/github.com/joshklein/project/cmd/hello_world.go, but now I can have ~/work/go_hello/src/main.go. Right?

I understand this isn't the main point, but frankly it's the thing I care the most about.

<comment><USER2> I actually organize all my projects using the go way, there's nothing that stops you from coexisting Haskell in the Go tree. The advantage is that if you are working on something like the kernel, you can maintain separate branches easily.

That said, mod allows you to put your project anywhere but in the GOPATH, so the answer to your question is yes. The path is virtualized in the mod file.

<comment><USER8> It awfully breaks when you run into multiple systems that want things done their way. Like Go and ROS workspaces.

</comment></comment></comment><comment><USER9> I'm not an active golang user, but something which gives me pause here is the insistence on a strict 3-number semver.

For a commercial entity shipping software which may include upstream components, it's important to have options for maintaining (and versioning) in-house forks of upstream components. This becomes a problem when you fork v1.2.3 from upstream and want to internally release your fixes, but now your internal 1.2.4 and upstream's 1.2.4 both have the same number but diverge in content.

I like the Debian solution to this, which permits freeform textual suffixes, so that in the hypothetical scenario above, you can release v1.2.3bigco1, v1.2.3bigco2, with the final number indicating the version of the patchset being applied onto the upstream release; then it's also clear what to do when you rebase your fork because you've maintained the integrity of the upstream version.

<comment><USER10> _> I like the Debian solution to this, which permits freeform textual suffixes, so that in the hypothetical scenario above, you can release v1.2.3bigco1, v1.2.3bigco2, ..._

Go also allows freeform textual suffixes, it just needs a `+` in there: v1.2.3+bigco1, v1.2.3+bigco2.

<comment><USER11> Oh wow, so they are not following semver? In semver everything after + is a build tag that does not "modify" the version (i.e. 1.2.3+a and 1.2.3+b are considered to both be the same version, just e.g. built at different times).

<comment><USER12> The blog post links to the Semantic Versioning spec, specifically item 9.

> A pre-release version MAY be denoted by appending a hyphen and a series of > dot separated identifiers immediately following the patch version. > Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]. > Identifiers MUST NOT be empty. Numeric identifiers MUST NOT include leading > zeroes. Pre-release versions have a lower precedence than the associated > normal version. A pre-release version indicates that the version is unstable > and might not satisfy the intended compatibility requirements as denoted by > its associated normal version. Examples: 1.0.0-alpha, 1.0.0-alpha.1, > 1.0.0-0.3.7, 1.0.0-x.7.z.92.

Item 10 explains how + can be used to add a build tag.

> Build metadata MAY be denoted by appending a plus sign and a series of dot > separated identifiers immediately following the patch or pre-release > version. Identifiers MUST comprise only ASCII alphanumerics and hyphen > [0-9A-Za-z-]. Identifiers MUST NOT be empty. Build metadata SHOULD be > ignored when determining version precedence. Thus two versions that differ > only in the build metadata, have the same precedence. Examples: > 1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85.

Instead of using v1.2.3bigco1 or v1.2.3+bigco1, we should use v1.2.3-bigco1. If we need to add a build tag we can use v1.2.3-bigco1+001.

</comment></comment></comment></comment><comment><USER13> _" the go command automatically looks up the module containing that package"_

Looks up where? GOPATH? The tree below the current file? The current directory? What's the "current module", anyway? Where is that stored?

 _" go: downloading rsc.io/sampler v1.3.0"_

Downloading from where? Github? From what repository? The page for "go get" now talks about "module-aware" mode, but doesn't make it clear how that works.

This is the usual headache with dependency systems. There's some specific directory layout required, and you have to know what it is. This article needs to be more explicit about that. Otherwise you end up depending on lore and monkey copying.

<comment><USER10> _> What's the "current module", anyway? Where is that stored?_

The article uses "current module" like you might use "current git repository"; it's the module containing the directory that you are currently `cd`ed to. Just as git identifies the repo by looking for `.git` in successive parent directories, go identifies the module by looking for `go.mod` in successive parent directories.

 _> > "go: downloading rsc.io/sampler v1.3.0"_

 _> Downloading from where? Github? From what repository?_

From the same place that non-module-aware `go get` downloads it. The only difference on the "remote side" of that from old `go get` is that it grabs the `v1.3.0` git tag, instead of git HEAD; if you don't specify a version it grabs the most recent `vSEMVER` git tag instead of git HEAD.

 _> > "the go command automatically looks up the module containing that package"_

 _> Looks up where? GOPATH? The tree below the current file? The current directory?_

Looks it up on the network, à la `go get`. Exceptions:

\- The `replace` directive in your `go.mod` can manually override where it looks up a specific package.

\- Telling Go `-mod=vendor` will have it look up all depended-upon modules in `vendor/`, rather than via the normal mechanisms; you can create the `vendor/` directory with `go mod vendor`.

It doesn't use the network every time; a module cache lives in `${GOPATH:-${HOME}/go}/pkg/mod/`; but you don't need to know that any more than you need to know that a build cache lives in `${GOCACHE:-${HOME}/.cache/go-build}`.

 _> There's some specific directory layout required, and you have to know what it is._

Not really, the only requirement is that you have a `go.mod` file that identifies a package name for the directory that it's in. So that if I have github.com/lukeshu/foo, it just needs a `go.mod` saying

        module github.com/lukeshu/foo

instead of having the requirement that it be checked out to `$GOPATH/src/github.com/lukeshu/foo`. Beyond having the `go.mod` file, there aren't really any structure requirements.

 _> This article needs to be more explicit about that._

Does it, though? It's a blog-post, not the "normal" documentation. The full docs _are_ much more explicit and nitty-gritty than a high-level blog post.

<comment><USER14> As far as I can tell, rsc.io/sampler isn't a git repository, so it's not doing the same stuff `go get` does. If I try to clone it I just get hit by the HTTP redirect to the docs for rsc.io/sampler.

I may be missing something here (it's been quite a while since I did serious Go stuff so `go get` may have changed too)

> Does it, though? It's a blog-post, not the "normal" documentation. The full > docs are much more explicit and nitty-gritty than a high-level blog post.

It's a bit weird to have a blog post about the new module system with nothing about how modules can be published, a pretty common task.

<comment><USER10> _> As far as I can tell, rsc.io/sampler isn't a git repository, so it's not doing the same stuff `go get` does. If I try to clone it I just get hit by the HTTP redirect to the docs for rsc.io/sampler._

Why would you try to `git clone` it directly instead of trying to `go get` it?

        $ GO111MODULE=off go get -v rsc.io/sampler
        Fetching https://rsc.io/sampler?go-get=1
        Parsing meta tags from https://rsc.io/sampler?go-get=1 (status code 200)
        get "rsc.io/sampler": found meta tag get.metaImport{Prefix:"rsc.io/sampler", VCS:"git", RepoRoot:"https://github.com/rsc/sampler"} at https://rsc.io/sampler?go-get=1
        rsc.io/sampler (download)
        created GOPATH=/home/lukeshu/tmp-go; see 'go help gopath'
        Fetching https://golang.org/x/text/language?go-get=1
        Parsing meta tags from https://golang.org/x/text/language?go-get=1 (status code 200)
        get "golang.org/x/text/language": found meta tag get.metaImport{Prefix:"golang.org/x/text", VCS:"git", RepoRoot:"https://go.googlesource.com/text"} at https://golang.org/x/text/language?go-get=1
        get "golang.org/x/text/language": verifying non-authoritative meta tag
        Fetching https://golang.org/x/text?go-get=1
        Parsing meta tags from https://golang.org/x/text?go-get=1 (status code 200)
        golang.org/x/text (download)

It's been that way since at least 1.2 (I'm pretty sure since 1.0, but I haven't verified that memory). The process that `go get` follows is described by `go help importpath`.

The TL;DR is that it fetches `[https://${pkgpath}?go- get=1`](https://${pkgpath}?go-get=1`), and looks for `<meta name="go-import" content="...">` to tell it where to `git clone` from (with some hard-coded hacks for common websites that don't support that, like github.com).

 _> It's a bit weird to have a blog post about the new module system with nothing about how modules can be published, a pretty common task._

Because that hasn't changed. You still publish packages the same way you always have. The only difference in how you publish is that now "vSEMVER" git tags mean something.

<comment><USER14> Ah, I wasn't aware that the meta tag existed, everything about publishing crates seemed to point to using github (or a self-hosted repository of various supported VCSes)

Thanks.

The example using a less-commonly-known package distribution method is probably causing the confusion in Animats' original comment.

</comment></comment></comment></comment></comment><comment><USER15> I've been using Go modules for a bit and I really like it. I can easily set up local dependencies using the `replace` keyword as well. For instance, all of the apps in `cmd` which need access to common packages are their own modules, and then I just add:

      replace pkg => ../../pkg

And I can refer to everything inside of `pkg` (`pkg` is its own module as well).

</comment><comment><USER16> The meat:

> go mod init creates a new module, initializing the go.mod file that > describes it.

> go build, go test, and other package-building commands add new dependencies > to go.mod as needed.

> go list -m all prints the current module's dependencies.

> go get changes the required version of a dependency (or adds a new > dependency).

> go mod tidy removes unused dependencies.

And you can use some sugar to declare exact versions you want.

</comment><comment><USER17> The main thing that annoys me about Go modules is that it broke so much tooling. I still can't get GoCode to work properly, and there are 4 or 5 different forks of the repo all trying to add module support, its a mess.

<comment><USER18> Gocode works in vim but for some reason won't do autocomplete in spacemac's go-mode. I haven't found the time to look for a fix yet. There's a fork of Gocode that fixes it, but makes vim's autocomplete very very slow. As someone who switches between vim and emacs I wish this mess gets sorted out soon!

<comment><USER19> HEAD of vim-go has now gopls support, which has excellent support for Go modules for code completion and jumpt to definition. Give it a try.

<comment><USER18> Oh, I'm already using vim-go, but didn't know it does code completion too. Thanks for writing such a great plugin!

</comment></comment></comment></comment><comment><USER20> Google API's latest semantic version is behind the doc site (godoc.org/google.golang.org/api). Is this standard practice in Go?

I was coincidentally converting my Go project to use Go modules yesterday. I depended on a Google API which was originally retrieved via 'Go get', corresponded to docs and worked fine as this pulled from HEAD. `go mod` did not work out of the box, as it required the latest semantic version (v.0.2.0) of my this Google API import. This version, however, is behind documentation and broke my code.

I understand I can require a specific commit in the go.mod file, but the strings for specific commit seem cryptic. Where can I look up the version hash that matches the doc site?

<comment><USER20> Ah. The trick is to substitute in the go.mod file's require block.:

s/$SEMANTIC_VERSION_BRANCH/$BRANCH

In this case, $BRANCH == 'master'. 'go build' will resolve 'master' to a specific commit hash version.

<comment><USER21> you can also `go get google.golang.org/api@master`

</comment></comment></comment><comment><USER22> I've returned to university recently. We're learning Make in one of my classes at the moment ("learning" Make seems so weird to me). When going over dependency graphs I couldn't stop thinking of how awesome `go mod tidy` is.

</comment><comment><USER23> I haven't been using Go modules, to the point where I only have a vague notion of what they do.

I haven't felt the need for them.

At what point do they become necessary? Which pain-points should I be on the lookout for?

<comment><USER24> Probably at the point new versions of your dependencies break your code. If you have no external dependencies, you should be fine.

It also gives you the freedom to have your projects wherever you want.

</comment></comment><comment><USER25> Be warned that if you like all the tooling VSCode provides for Go then that is still not available if you are using go modules. They are working on it and there are some rough betas out there for some limited functionality but simple things like renaming variables etc, are still not available.

Realize this is a tooling issue and not necessarily a language one, but do feel like they should be mentioning this. It makes working with modules pretty painful. (we are doing it but man do I miss simple refactors / usages etc..)

<comment><USER26> I agree, I tried go modules a couple of months ago but the VSCode tools were much slower and cpu usage increased when using go mod extensions. I reverted back to not using go modules at the time, will try again soon to see if it improved. I still like go modules.

</comment></comment><comment><USER27> All I wanted was a way to safely and easily cleanup my $GOPATH. I don't have a lot disk space and $GOPATH takes up most of it.

This thing apparently doesn't solve my problem. `go mod tidy` simply removes a dependency from a module, but that dependency is still cached in a big arcane directory at $GOPATH/src/mod. Why?

I think we all should be using something like Nix for dependency management that solves all problems, but that is so hard to setup!

<comment><USER28> Not having a lot of disk space is a minority case for developers now. I wouldn't hold your breath for the Go authors to address it.

If you have a disk space problem, Nix would seem to be the _opposite_ of the solution to that. One of the ways Nix does its magic is to chew through disk space a lot more freely than most distros do.

<comment><USER27> Also, there are a lot of people who think disk space is an issue. See [https://pnpm.js.org/](https://pnpm.js.org/) for example.

(Ironically, pnpm doesn't have an auto cleanup feature.)

<comment><USER28> npm was especially broken with disk space, above and beyond what Go has ever had, so their problem was much worse.

And my point is not that disk space is never an issue. That's why I said it was a _minority_ issue, not "not an issue". My point is more than Go is not a language about addressing every fiddly minority's issues. It's definitely about the 20% that does 80% of the work. So waiting for a language lead by a philosophy like that to address a disk space issue is probably not a good plan.

To be a bit more constructive, I'd observe I've had great experiences with cross-compiling. On the chance you're disk-space limited because you're developing right on a target resource-constrained device, you may be able to move your development to a more powerful system, even of a different architecture, and cross-compile fairly easily. I often have a workflow where I just "go build blahblahblah && rsync blahblahblah target:blahblahblah && ssh target blahblahblah" and I just press up & enter on a shell when I want to push & test the code. As long as you've got half-decent bandwidth to the target device, it's fine. There may be a couple of other buttons you may want to push to speed that up, because IIRC when cross-compiling it'll end up building the entire app, and you'll want to pre-compile things for the new arch.

</comment></comment></comment></comment><comment><USER29> question: what happens if you wanna organize your software in modules? so for example, a main module (package main) and a secondary module (core). Do you init both as separate modules? and then you use the second as dependency on the first one? do they have to be actually published somewhere to be accessible in this way?

<comment><USER30> You could use an unpublished version of "core" using the "replace" directive, but this might not be a good idea. If you have two modules that are so closely tied together that they always need to be released simultaneously, it's probably better to make it a single module with multiple packages in it.

<comment><USER29> thanks!

</comment></comment></comment><comment><USER30> There are at least two bugs in this tutorial:

\- There's a duplicated section starting with: "Note that our module now depends on both rsc.io/quote and rsc.io/quote/v3:"

\- In the example of upgrading a major version, Hello was renamed to HelloV3, but the caller isn't renamed. It should be "quoteV3.HelloV3".

</comment><comment><USER31> In the "Upgrading dependencies" section when they use "go get", will the command be local to that module? I am used to "go get" working with the idea of a $GOPATH. I almost wish they introduced another sub-command to update a dependency.

</comment><comment><USER32> not ready yet for production, most of the cli tools such as errcheck dont work. [https://github.com/golang/go/issues/24661](https://github.com/golang/go/issues/24661)

other than that it works like a charm, here's a tutorial i wrote: [https://getstream.io/blog/go-1-11-rocket- tutorial/](https://getstream.io/blog/go-1-11-rocket-tutorial/)

<comment><USER10> Do note that you can use errcheck with modules if you call it through golangci-lint.

</comment></comment><comment><USER33> How do you reference local go modules that are under development? The equivalent in node is `npm link`.

<comment><USER34> with a `replace` entry. e.g.

        replace (
            github.com/repo/module/path vX.X.X => /path/to/github.com/repo/module/path
        )

</comment></comment><comment><USER35> Every mainstream programming language that came out in the last 20 years has already solved this. Java, Javascript, Ruby, Python, Rust, you name it.

I am baffled to why Go has not figured this out and are presenting recent developments as some kind of breakthroughs - they are not.

To me, and I'm not trying to be disrespectful here, because of the shortcomings it has, Go is in the experimental/keep an eye on bucket. It does some things really, really well but it's far from the panacea most developers that use it think it is.

<comment><USER36> Go's modules are quite a lot nicer than Java's or Python's dependency management / build tools. JavaScript only recently got its act together. Can't speak to Ruby, but Rust is the only one that got it right the first time. Dependency management is only recently a "solved problem".

> Go me, and I'm not trying to be disrespectful here, because of the > shortcomings it has, Go is in the experimental/keep an eye on bucket. It > does some things really, really well but it's far from the panacea most > developers that use it think it is.

Go is definitely a production-ready language, and indeed it powers much of the most important software that has been written since it went 1.0 (particularly in the Cloud and DevOps spaces). It's not perfect, but it's really, really good and improving steadily.

<comment><USER37> > Rust is the only one that got it right the first time.

Not really the first time. They made attempts before. Dumped it along with person who created earlier solution and then developed current solution.

To their credit they identified early that an official solution is essential.

<comment><USER35> > To their credit they identified early that an official solution is > essential.

this made me smile.</comment></comment></comment></comment>


Ask HN: Employees of Facebook, what's it like to work there? - <AUTHOR> Former or current. Use a new username if you have to. I've learned about the suicide of Qin Chen and it's made me wonder what life is like inside Facebook.<p>Thanks for taking the time to answer and discuss this. <comment><USER2> I was a former developer at Facebook. If you have the chance, watch YouTube techlead's video on Facebook. He summarized it better than I can.

There's a strong lack of management and high blame culture. "Empower engineers and focus on impact" is the motto there. Basically that statement has lead management to say "here's something and go make something happen"

Directions are ambiguous and leadership has no vision and when things go right, they get all the credit but shit goes down, engineers get blamed.

Not to mention the ambiguity in the performance review. It's highly political. My team judges engineer quality based on lines of code written and not quality of code. On top of that, there's this weird pride/arrogance in everyone at Facebook.

Also, due to the lack of vision and direction of team, everyone is doing the same thing but different way. It's just a terrible org structure.

I need to emphasize this point. This is a company wide thing and not a team thing. Everyone suffers this issue because mark sucker berg and Sheryl sandderp refuse to take any accountability for the culture and direction the company is going

<comment><USER3> > If you have the chance, watch YouTube techlead's video on Facebook. He > summarized it better than I can.

He's seriously an ex-Facebook employee? I thought it was satire.

> Everyone suffers this issue because mark sucker berg and Sheryl sandderp > refuse to take any accountability for the culture and direction the company > is going

I've read over and over that Sheryl Sandberg was the worst thing to ever happen to Facebook.</comment></comment>


Hawaii Becomes the First State to Pass a Bill Supporting Universal Basic Income - <AUTHOR> https://futurism.com/hawaii-becomes-the-first-state-to-pass-a-bill-in-support-of-universal-basic-income/ <comment><USER2> The bill[1] itself is plain language and easy to read.

The bill establishes a 'basic economic security working group' to investigate the broader issue of how to properly support sudden mass under-employment. The bill doesn't only mention the automation of jobs but also the widening equality gap and globalization of jobs. As per the bill, Hawaii has a heavy reliance on a service-based economy and is already significant displacement of local jobs.

I don't know how these bills work with schedules/deadlines (there doesn't seem to be any timeline specified in the bill) but I'm quite excited to see the first findings.

1\. [http://www.capitol.hawaii.gov/session2017/bills/HCR89_.pdf](http://www.capitol.hawaii.gov/session2017/bills/HCR89_.pdf)</comment>


We Are Comma.ai: The Android of Self Driving Cars - <AUTHOR> https://commaai.blogspot.com/2016/12/the-android-of-self-driving-cars.html <comment><USER2> Now, I'm no PR expert, but when aspiring to peddle safety-critical software, I'd say drawing a comparison with _Android_ is the last thing you'd want to do.</comment>


Man on the run: Former CIA spies on what they'd do if they were Snowden - <AUTHOR> http://www.andmagazine.com/content/phoenix/13012.html

<comment><USER2> With all due respect to the former CIA officers, there's a bunch of poor and outdated advice in this article.

The one I'll point out is using a dead person's birth certificate to get ID and an SSN. The databases for the death index were cleaned up after 9/11 and if you try this, your attempt will be flagged and you'll likely be visited by law enforcement pretty shortly. You will not get an ID nor an SSN.

The best way to hide is to not leave any (legitimate) money/electronic trails. Practice disinformation. For example, use a credit card to buy a plane ticket to Bangkok on Saturday, then go buy a bus ticket to Mongolia with cash for Friday and similar tactics. It won't stop professionals from eventually finding you, but it will buy you (sometimes significant) time.

All this is pointless because almost certainly the US IC knows exactly where Snowden is already. It's laughable that anyone believes they're still searching for Snowden.

<comment><USER3> Your comment amuses. On the one hand, its possible that the CIA folks in the article are offering bad advice, either knowingly or unknowingly. For example, I imagine that the CIA has a guy in the basement making fake ids, rather than having field agents make their own. On the other hand, I doubt you know more about it than they do. Of course, you'd never show off your collection of fake ids to win a internet argument...

<comment><USER4> > I imagine that the CIA has a guy in the basement making fake ids

As a government agency, don't they already have legitimate access to the real ID printing machines?

<comment><USER5> The guy in the basement is making fake _non-US_ IDs.

<comment><USER6> Why in the basement? Is it _illegal_?

Sorry, I'm flabbergasted at the legal/illegal discussion over massive spying on non-US citizens.

</comment></comment></comment></comment></comment><comment><USER7> In a couple points. Much of the advice may be more valid for overt CIA operations than in Snowden's case. Snowden is writing his own rulebook and it is based on a fairly narrow array of relatively novel tactics plus more standard tools I suspect he picked up in his special forces training (remember he has at least some special forces training).

A careful look at Snowden's tactics is that he is working off an understanding at how to play various groups and people off eachother. He has a keen sense of what everyone's interests are. His goal is not to be invisible but rather to be too hot to handle for anyone.

<comment><USER8> I wish more people understood the situation like you, but there are many fickle HN users who are silly putty in the hands of big media.

<comment><USER7> Also according to some sources he has been planning for years (according to some sources he held off in 2008 because he was hoping for action by Obama). He is uncommonly bright and prepared. I don't think the choice of regions or timing can be a coincidence at all. He announced he was in Hong Kong when the leaders of both Hong Kong and China were in the US, and he has managed to very skilfully play various groups off eachother.

He almost comes across as too prepared. Occasionally I have wondered if someone was coaching him, but if he has been planning for years, he could have half a million dollars stashed somewhere (or at least a sizeable fraction of that), and he may simply have spotted his opportunity and known it wouldn't come again.

<comment><USER9> On the other hand, I would have thought that he might have been better off just letting himself get arrested in the US. He has the attention of the world, and every time his case moved in court he would be on the front pages again. I can't imagine the US government having the courage to face the public opprobrium that would come with placing a whistleblower acting _for_ the people in prison. This guy is no Bradley Manning - he wasn't revealing legitimate US state secrets that could put innocent people in danger, he was revealing potentially illegal behaviour of the US government with respect to its own citizens.

Whilst on the run however he _can_ be "disappeared". How do we tell the difference between a Snowden lying low in some forgotten corner of the world, and a Snowden chained up in some forgotten US prison cell, or a Snowden burned to ashes in a car in Afghanistan? In both cases he is invisible to us. Dangerous, dangerous game. In fact it's so dangerous it's bordering on unbelievable for me.

</comment></comment></comment></comment><comment><USER10> You almost wonder if he'd be better off "hiding in plain site" if he does intend to hide, by staying in the (continental) US. I mean, the USA is a BIG place, and outside the major cities, there are some damn remote areas in the US, where the population density is pretty low, and you could probably hole up out of site for quite some time and rarely even be seen. Look at how long Eric Rudolph stayed hidden in the Appalachians, for example. Although, to be fair, while he may not have been a "trained operative" he was apparently a survivalist type, and had quite a bit of skill at living in the woods and living off the land. I have no idea where Snowden falls on that.

But still, it's not that hard to find a job in the US doing some kind of manual labor, where they don't ask for any ID, pay cash, don't pay any taxes, and where the crew usually all go back to the bosses house and burn a few joints after work. If you're willing to swing a hammer and can run a mitre-saw and/or rip a piece of plywood on a table-saw, without cutting your hand off, you can probably find a construction job working "under the table". Finding a place to say would be tougher, since most (all?) US states require hotels / motels / etc. to collect ID information. But if you can find somebody friendly to let you crash on their couch, or find a low-paid motel clerk in some hick town, who'll take a small "donation" in order to rent you a room without ID...

Bus around the country, move periodically, and dye your hair a different color, grow a beard, let your hair grow out, and you could probably stay hidden in the US for quite some time.

<comment><USER7> Actually he has been hiding in plain sight. His goal is not to be found. He has told everyone where he is. He is writing his own rulebook and playbook. He will be remarkably hard to touch.

He realizes he can't hide. He's taking quite a gambit with Hong Kong but the calculations to do it have been extraordinarily well thought out.

<comment><USER10> I wouldn't necessarily classify what he's doing now as hiding, although he does seem to have lowered his profile considerably the last couple of days. But publicly he's said he doesn't really intend to hide, so I was speaking more to the hypothetical case where he does decide to just flat out "go to ground" and try to evade being found at all. As opposed to hoping the Hong Kong government or some other political process will shield him.

</comment></comment></comment><comment><USER11> The CIA is not going to disappear him now that he went public. And he can't slip out of Hong Kong without everyone knowing. Seems to me that this can only workout in one of two ways. Either he requests and receives asylum from some 3rd party country before the US requests extradition so that Hong Kong can't stop him from leaving. But I suspect he has a short time window to make this happen, maybe only days before the US delivers the extradition request. At which point Hong Kong will probably take his passport.

If that doesn't happen then it'll just work its ways though the Hong Kong courts. If he attempts a legal delay and obstruction tactic similar to Assange it could take years. Meanwhile the US demonization will continue and the US/China/Hong Kong politics will wax and wane. But most probably he'd end up in a US jail eventually, with all the political fallout that that will entail.

<comment><USER12> He could be somewhat valuable for the Chinese in countering some PR claims against itself -- "China is monitoring dissidents", "China is hacking peaceful countries" etc etc. All that is true, but now that they have him in exchange of asylum he could become a talking head for them so they can now say "Aha, but US can't tell us anything concerting privacy, look at what they are doing!" And then invite him on a TV show to describe all the massive NSA surveillance apparatus.

What would he do? Would he cooperate with the traditional enemy? That might put his motives in question and he would become an easier target to slander. ("aha, he was a traitor all along, a Chinese spy etc etc.")

<comment><USER13> It wouldn't work for the reason in your second paragraph: he would loose too much credibility if he was seen as a mouthpiece for China.

</comment></comment></comment><comment><USER14> A large house in a suburban neighborhood in Pakistan has proven to be an excellent place to hide.

<comment><USER15> Yes, but you need ISI support to pull that one off.

</comment></comment><comment><USER16> I never seen so many former federal employees promoting their books in one post.

<comment><USER17> And not just any federal employees: spooks. Gotta milk that James Bond cachet, I guess ;-)

<comment><USER16> It's funny how they all seem to be rather theoretic, context-free comments, not taking the details of Snowden's circumstances in account. He wasn't really trying to hide, otherwise he wouldn't have made a public statement from a known location.

And it seems most of those spooks interviewed never actually had to run for their life, putting their theories to the test.

</comment></comment></comment><comment><USER18> Everyone seems to think this guy should go and hide. But if he is hiding he can't defend himself publicly. I think we all know that the US can eventually find him. We also know that if he is found cowering in some hole, far from media scrutiny, that he's likely to be killed, or secretly rendered for torture. Retreating to a semi-friendly place like HK where the press might not be completely captured by US influence, where the gov't might not be completely pliable may have been the best thing he could have done.

</comment><comment><USER19> Are the CIA basically the not-so-bad guys now? Seems like they haven't been busted for doing anything super-nasty lately.

<comment><USER20> You mean besides running the secret prisons? It's exactly the opposite for me; I can deal with the NSA overreaching on surveillance (so long as they occasionally get slapped back), but the CIA is a national embarrassment.

</comment></comment><comment><USER21> This really sounds like something straight out of some Ludlum book, which, incidentally, I loved.

This is by no means advice for Snowden, but it's worth a shot.

When you're on the run, burn your passport. Get rid of your wallet except for cash. If you can, withdraw as much cash as possible and close your bank accounts. Toss your wallet in a fire, taking only cash. Get rid of any physical attributes that could be used to easily find you. If you wear the same type of shirt every day, wear a different one every day. Shave your facial hair, and get a new hairdo.

Be a nomad. Sleep in homeless shelters, and go from place to place, never staying in one location too long. Set false breadcrumbs, like Facebook logins, at strategic locations. Map out a route of where you plan to go, and map out the route where you'll leave linked IPs, logins, property along the way, maybe make a call or two with a prepaid phone and dispose of it.

When your money supply is running low, forge your own identity. Create a new name, with a new ethnicity. Get a job. Live there for a while, never getting too close to anyone. Disappear. Get off the grid permanently. If the United States approves a pardon, then show up only after 4 months, it could be a decoy.

Always stay on the run. And never. Trust. Anyone.

\</comment><comment>

for added effect, listen to [https://www.youtube.com/watch?v=dc7qiosq4m4](https://www.youtube.com/watch?v=dc7qiosq4m4)

<comment><USER22> Snowden could enter China without paperwork from Hong Kong.

Once inside, train travel (usually, though this may have changed a year or so ago) or long distance bus travel requires no identification and there are a huge number of long and porous land borders to cross, particularly in the Southeast Asian direction. Though he'd want to avoid part of the Vietnam one due to the likelihood of leftover land mines.

The Shan, Wa and Kachin armies in northern Burma are known to be extremely hospitable to visitors. Likewise, it's easy to stay off the grid in Laos for decades.

While in China, the lack of a passport could be explained with an easily faked 'receipt' from any semi-local embassy: "they're making me a visa". This would of course gel with one's travel story. (Hint: Between Hong Kong and SEA borders there are international consulates for SEA nations in Nanning and Kunming.)

(Edit: Cambodia has few hills. Vietnam has too high a population density. Laos is a reasonable option. The Shan State Army is perhaps too affiliated with neighbouring powers. The Wa or Kachin would be better destinations, the latter are also near completely Christian due to US missionary activity, and on bad terms with the central Burmese authorities of late so less likely to hand people over. All in all, the Kachin would be a good bet.)

<comment><USER17> Have to disagree on many counts. Though not the visa-receipt thing, that was brilliant ;-)

1) Chinese public transport is subject to random stops and searches. Everyone has to show identification.

2) The Chinese borders with Vietnam and Laos are not exactly tourist destinations. The place is rife with ethnic tensions and saturated with military presence, due to opium trafficking, smuggling of goods, and that little war between Vietnam and China.

3) The hill-tribe and minority "armies" (gangs?) are just 2nd-rate heroin traffickers, and that region is one of the most heavily infiltrated by intel, specially Thai. Thailand is one of the closest U.S. allies, right up there with Colombia and Jordan in terms of ass-kissing to State Department.

4) Both China and Vietnam are police states; any whiff of him and they can mobilize undercover cops of an entire city. Hotel and taxi operators are the gov's eyes and ears. Not to mention you're _required_ to register your movement with nearest police station (no one ever does this ;-)

Bangkok would have been a perfect option, since the people are desensitized to white men and no one would notice him.

<comment><USER22> 1) Not that random, but yeah, hence the 'my passports getting a visa in some consulate' note (easily forged). 2) Your info is maybe 30 years out of date. It's one of the largest tourism destinations in the country. I know, I lived there five years. 3) The Shan State Army are ethnic Tai speakers, so yeah, maybe. But further west, the Wa and yet further the Kachin are more independent. 4) It's not hard to find hotels that don't care about registration. Even if they do register, few report identities to the police immediately. Even if they report immediately, few cops are going to be bothered to check. By the time they do, you're gone.

Bangkok is indeed a good destination, except, as you point out, that Thailand is a major US ally.

</comment></comment></comment></comment><comment><USER23> If he's smart, he's not even in Hong Kong anymore, nor has he been for some time.

Prerecorded video explicitly stating where he's located? Seems like a ruse.

</comment><comment><AUTHOR> I assume he's actually in a journalist's apartment, not going out. Intelligence agencies may know where he is, but no one is going to go after him.

</comment><comment><USER24> While trekking The Peak (formerly Victoria Peak) in Hong Kong, I ran into a housekeeper walking the family dog. We saw a group of men getting into a very nice car. She mentioned to me that the license plate on the car allows them to travel into China without the usual checks.

</comment><comment><USER25> I think the best alternative for him is to get himself arrested in a wide public eye.

I am absolutely sure that several people would come up in his support. He can turn himself into a symbol. Any court case around him will be closely followed and analyzed.

</comment><comment><USER26> hey, maybe he has some bitcoins

</comment><comment><USER27> Did he plan for a picture of his face to be plastered all over every news site for a week? Presumably yes, in which case he's probably not planning on trying to disappear.

</comment><comment><USER25> I will not be surprised if he is found dead by killing himself like Aron Swarz.

<comment><USER28> "How do you know it was suicide."

"There was a note. Jimmy, have they found the note yet?..."

</comment></comment><comment><USER24> All of your comments have been duly noted. ;-)</comment>


Why not hack your favicon to show file loading progress, React-LoadCon - <AUTHOR> When it comes to a huge file (such as huge PDF or upload file to Cloud service)  loading or download in a tab, a tiny progress indicator on favicon could be an interesting but also considerate UX experience.
This idea comes from a long time ago and has been realized by so many open-source developers, and it comes to me again when I try to solve this good first issue for the `Send` project from Mozilla https://github.com/mozilla/send/issues/803
Here is React-LoadCon for React community, welcome to play around and feel free to submit your feedback whenever encounters any issue.
https://foreseaz.github.io/react-loadcon/ <comment><AUTHOR> Of course, welcome to star and send PR, more loading indicator in canvas will be added soon. Thanks.

[https://github.com/foreseaz/react-loadcon](https://github.com/foreseaz/react- loadcon)

</comment><comment><USER2> Ha, easy little piece but interesting, keep up the good work.

<comment><AUTHOR> Thanks man, actually this small repo plans to offer a more general tool to manipulate Favicon as `Favicon as a DOM`, but now can only use canvas to draw dynamic images and replace the <meta favicon /> tag, which is extremely tedious. Maybe this dom-to-img repo could be introduced to simplify the covert process: [https://github.com/tsayen/dom-to- image](https://github.com/tsayen/dom-to-image)

Any issue or PR, free feel to submit~</comment></comment>


Elliptic Curves as Elementary Equations - <AUTHOR> http://jeremykun.com/2014/02/10/elliptic-curves-as-elementary-equations/

<comment><USER2> Very nice exposition (for a mathematician :) Given the quality of this initial post, I actually find it kind of unfortunate that the focus of the series seems to be on the Dual_EC_DRBG backdoor, since that is (and should be) such a rare use of elliptic curves.</comment>


Curl User Poll - <AUTHOR> http://daniel.haxx.se/blog/2015/05/06/curl-user-poll-2015/

<comment><USER3> "Please check the protocols you use curl/libcurl for"

I had no idea Curl could be used for protocols other than HTTP/HTTPS.

<comment><USER4> Indeed, and they have been a source of some nasty security vulnerabilities in the past. If you're using libcurl, it's a very good idea to restrict redirects to HTTP and HTTPS only (with CURLOPT_REDIR_PROTOCOLS), lest a malicious site redirect you to an imap or smtp URL.

</comment></comment><comment><USER5> Too bad the "worst areas" list didn't include the UI. I cannot recall the number of times I've spent looking through the docs, which flag was it again? -s? -S? -q? Every. Single. Time.

But it's a minor annoyance. Great great tool.

<comment><USER6> I personally think curl is one of the better examples of CLI tools as it follows the pipe metaphor by default (which wget doesn't), supports both long and short flags (so if -s isn't memorable, then use --silent) and doesn't require a flag for it's core mandatory input (ie a URL). You can even slide flags in after the URL, if you wanted - which is something you generally only see supported by GNU utilities.

I could see curl being a little daunting to someone who is normally uncomfortable with the command line, but that's not really the fault of curl having a bad UI, that's more a paradigm preference of the user.

<comment><USER5> as it turns out (just had to look it up again, incidentally!) the correct form when piping it to an output tool is -s -S. E.g.:

        $ curl -s -S http://example.com/some.json | python -m json.tool

I want errors, but I don't want that annoying status bar to mess up the output. I don't use curl often enough to even remember I need two flags at all (e.g. I remember now, but didn't know when I wrote the original comment).

It can follow any philosophy it wants: when a user is consistently confused, I personally consider it bad UI.

EDIT: This is not the only bad / confusing default. Another popular one is -L. Not following redirects should be the exception; I almost never want curl to choke on 3xx. Result, I could practically alias curl="curl -L". Great software, but the UI is unfortunate.

<comment><USER6> Firstly, every CLI HTTP client I've used outputs a status to console, even when it detects standard out is being redirected / piped. It can be very annoying at times, but isn't a curl specific thing. And it's hardly a great ordeal to remember --silent (or quickly _curl -h | grep silent_ / do a find inside _man_ , should you need a memory jog). Perhaps a little tip here is to force yourself to use the longer flags as they're much more memorable?

Secondly, have you ever considered that there are just as many people who might not want curl to automatically follow redirects? Personally I happen to use curl a lot to check that redirects work (eg sending the right HTTP status code) so I'd find your preference more annoying than intuitive.

Lastly, I get that you might not like some of curls default behaviours, but given curl's command structure follows the same idioms as most POSIX / GNU command line programs do, it's a bit far reached to say curls UI is bad or "unfortunate". Particularly when where's other people that do prefer the default behaviour you dislike. And since curl does follow POSIX idioms, you can just create that _alias_ you discussed to force curl into your preferred default behaviour (you don't get much more user friendly than a tool you can customise the default behaviour of).

This is why I say that curl follows the standard CLI UI pretty well - <USER2> doesn't throw much in the way of unexpected behaviour and anything specific that you may dislike can easily be tuned via the usual methods.

</comment></comment></comment></comment><comment><USER7> Survey is down, so I'll just post. I use curl primarily for testing web service apis. It's also pretty awesome that chrome and other devtools can 'copy request as curl'.

<comment><USER8> Being a similar user of curl, I found I had to skip a lot of questions.

The survey calls itself a "curl user poll" but most of the questions seem to be written as a "curl developer poll". It's actually pretty hard to convey what I think is the majority position of curl users: I use it, I'm glad it exists, and I never think about the code it contains.

</comment></comment><comment><USER9> Shame you can't complete the survey using a cURL request.

<comment><USER10> The Google machine disagrees

[https://journalxtra.com/linux/bash-linuxsanity/bash- filling-...](https://journalxtra.com/linux/bash-linuxsanity/bash-filling-web- forms-with-curl-and-wget/)

TL;DR

cURL can fill out forms using the "-d" option.

[http://curl.haxx.se/docs/manpage.html#-d](http://curl.haxx.se/docs/manpage.html#-d)

<comment><USER9> Google, very sensibly from a web security point of view, have a hidden nonce field in their surveys that you'd need to parse out of a prior request in order to submit the form. That means you can't use 'pure' cURL. formfind might well work to grab the value you'd need to send though.

<comment><USER11> Pipe/heredoc to edbrowse will handle that, too.

</comment></comment></comment></comment><comment><USER12> I listened to an episode of Changelog last night which featured curl creator, Daniel Stenberg, as a guest: [https://changelog.com/153/](https://changelog.com/153/)

It's worth listening if you're at all interested in curl or popular open source projects in general.

<comment><USER13> He also does weekly videos discussing curl, HTTP/2, stuff at Mozilla, etc; worth a subscribe: [https://www.youtube.com/user/danielhaxxse](https://www.youtube.com/user/danielhaxxse)

</comment></comment><comment><USER14> [http://curl.haxx.se/donation.html](http://curl.haxx.se/donation.html) might not be a bad place to visit

</comment><comment><USER15> Can do a lot more with Curl than I imagined. Unfortunately for me, when it comes to those kinds of uses, I'm rarely still in Bash, and I've already started using Python or Go's HTTP libraries.

<comment><USER16> Python also has a curl library.

<comment><USER6> Go has a few curl packages too: [https://www.google.co.uk/search?q=go+lang+libcurl](https://www.google.co.uk/search?q=go+lang+libcurl)</comment></comment></comment>


A molecule called 'Sandman' could help solve the 'mystery of sleep' - <AUTHOR> https://www.washingtonpost.com/news/speaking-of-science/wp/2016/08/03/a-molecule-called-sandman-could-help-solve-the-mystery-of-sleep/ <comment><USER2> _to some of us (ahem, yours truly) the idea that there 's a "mystery of sleep" might seem a bit, well, strange. Don't we sleep because we get tired?_

Quotes like this are typical of the American tendency to be pseudo-proud of being unintelligent, uneducated or apathetic. I'm surprised they included it and disappointed they did. Perhaps to help the readership identify with the columnist? But then again the readers are actually reading something scientific, so I don't get it.

<comment><USER3> I think the purpose of this device is to provide context to the problem. If you are about to provide the scientific explanation for something all of us experience every day "Why do things fall down" / "Why is sugar sweet" it helps to take a step back and remind the reader that there is a scientific explanation for the phenomenon they are so familiar with (so much so that it feels unnatural to even question it in the first place).

<comment><USER4> maybe he dislikes the "ahem, yours truly" part? Although I agree with your point, to me that phrase strongly conveys the "pseudo-proud" attitude the parent OP was referring to

</comment></comment></comment><comment><USER5> It would be great if this opened the door to sleep aids that activated the brain's natural sleep induction mechanisms, as opposed to today's sleep aids, which are basically just sedative/CNS depressant/muscle relaxers.

<comment><USER6> Well, this is what melatonin does and its OTC. My horrible insomnia was cured not by Ambien, but by .5mg of Walgreen's melatonin and even now I rarely take it.

Its also probably time we admitted human beings can't fit into lifestyles where they're bombareded with blue light, stress, etc right before bedtime. The Western lifestyle is fairly anti-traditional and old fashioned things like prayer/meditation/whatever before bed and calm family time of putting the children to bed or reading to them has been replaced with ipad usage/internet tomfoolery, or tv watching.

I doubt there will ever be a pill to fix this. If you're serious about fixing insomnia then you need to do the legwork of proper lifestyle change. Personally, the benefits I get from running flux on the desktop as well as daily meditation are incredible. Pharmacological solutions shouldn't be our first instinct.

<comment><USER7> The problem with your "melatonin" suggestion is that there's no way to know how much melatonin you actually took, since there is no regulation on the chemical, and the "sleep pills" that are purchasable don't say on the label what concentration they're made at, and concentrations vary by brand, and could vary bottle to bottle (due to an inexact manufacturing technique, for example).

<comment><USER8> In several EU countries, you can buy melatonin pills made by an actual pharmaceutical companies (which also manufacture prescription drugs) OTC. You could order it online. Note there's a difference between unregulated supplement and an OTC drug.

Although I think your worry about quality excessive, it's not like making pills is rocket science. The supplement companies most likely get the powder in bulk from biochemical factories that also manufacture prescription drugs.

<comment><USER9> In the US, the supplement industry is much less regulated than the pharmaceutical industry.

The concern is not excessive, at least in the US. Consider [https://consumerist.com/2016/07/27/anyone-can-make- market-a-...](https://consumerist.com/2016/07/27/anyone-can-make-market-a- dietary-supplement-including-consumer-reports/) :

> While real drugs — prescription or over-the-counter — must demonstrate > levels of safety and effectiveness before hitting store shelves, dietary > supplements are effectively regulated like food products.

[https://consumerist.com/2016/01/20/7-things-you-need-to- know...](https://consumerist.com/2016/01/20/7-things-you-need-to-know-from- frontlines-investigation-on-supplements-safety/) gives a summary of a Frontline episode on the topic; Frontline does documentaries on public affairs topics.

Or, from 2001, [http://ajcn.nutrition.org/content/73/6/1101.full](http://ajcn.nutrition.org/content/73/6/1101.full) \- "All plant products were correctly identified by botanical plant species (ie, Panax species or E. senticosus); however, concentrations of marker compounds differed significantly from labeled amounts. There was also significant product-to-product variability: concentrations of ginsenosides varied by 15- and 36-fold in capsules and liquids, respectively, and concentrations of eleutherosides varied by 43- and 200-fold in capsules and liquids, respectively."

Or from the 1990s, [http://www.sportsci.org/jour/0003/lmb.html](http://www.sportsci.org/jour/0003/lmb.html) :

> Analysis of 16 commercial DHEA products revealed that only half the products > contained the amount of DHEA stated on the product label; content varied > from 0 to 150% of the stated content (Parasrampuria et al., 1998).

> Melatonin supplements have failed to meet quality claims or delivery > profiles stated on their labels (Hahm et al., 1999).

It lists others as well.

</comment></comment></comment></comment></comment><comment><USER10> Well, this ended on quite the cliffhanger. Incredibly curious what is next discovered about this "sandman" ion channel and what it interacts with and responds to.

Additional links:

Oxford write-up which sticks more prosaicLly to the science (I imply no pejorative connotation to "prosaic", I simply mean there are fewer flourishes and asides): [http://www.ox.ac.uk/news/2016-08-03-researchers-discover- san...](http://www.ox.ac.uk/news/2016-08-03-researchers-discover-sandmans- role-sleep-control)

Paper in Nature: [http://www.nature.com/nature/journal/vaop/ncurrent/full/natu...](http://www.nature.com/nature/journal/vaop/ncurrent/full/nature19055.html)

</comment><comment><USER8> The article doesn't spell it out, but it seems that's how dopaminergic stimulants make it hard to sleep. Dopamine deactivates the sleep circuit. This opens the way to stimulants that doesn't impair sleep and the reverse. That could explain (partially unknown) modafinil's mode of action - a dri that works preferentially on the sleep neurons.

</comment><comment><USER11> It's not a molecule though - it's an ion channel. There is no compound called sandman as I understand this.

<comment><USER12> The authors refer to the CG8713 gene product as Sandman, which is a single molecule. Flybase associates this gene with a single polypeptide, predicted to be 395 amino acids long [1].

My research skills are rusty, but I found a paper which makes it sound like this channel is probably a heteromer [2].

So yeah, the ion channel is almost certainly composed of more than one subunit (and thus more than one polypeptide, and more than one molecule), but the researchers are focusing on this subunit.

[1] [http://flybase.org/reports/FBpp0087858.html](http://flybase.org/reports/FBpp0087858.html) [2] [http://www.ncbi.nlm.nih.gov/pubmed/17074048](http://www.ncbi.nlm.nih.gov/pubmed/17074048)

</comment></comment><comment><USER13> I have my own theory.

We sleep because that's when we are logged out of the virtual game that this world is.

I'm only semi-serious.

But let's work with it. What if we research sleep right until there is nothing left to find out, and we since can't figure out any reason at all for it?

Could we use that to postulate for a reason that is non-physical? Spiritual? Virtual reality? Something else?

<comment><USER14> When you're logged out of a virtual game, nobody can force you to log back in. But you can wake up someone who's sleeping.

<comment><USER13> Some people are hard to wake up.

Have you never set a game with alerts that make noise if something interesting is happening, so you rush back and play?

The delay in waking up is how long it takes the "player" to get back to his chair.

If the player did not go back that would be seen by us as fainting, or in longer situations, a coma.

</comment></comment></comment><comment><USER15> " ... and future research will explore what affects sleep _quality_ once asleep ..." :)

</comment><comment><USER16> "Sleeping animals are incredibly vulnerable to attacks, with no obvious benefit to make up for it — at best, they waste precious hours that could be used finding food or seducing a mate; at worst, they could get eaten."

It seems pretty obvious that sleep had an evolutionary advantage to conserve energy when the species couldn't be productive. For example, human sleep during the night because we can't forage / hunt / find a mate during the night because our vision requires light.

<comment><USER17> That doesn't seem obvious at all, it presumes sleeping is about conserving energy and that's an unwarranted assumption and baseless assumption. Sleep very well could be a requirement for brains to work they way they do. If you are deprived of sleep you will shortly go crazy; sleep isn't about saving energy.

If you see anything that seems obvious, you can bet science already checked that out and moved past it and that it's more complicated than that.

Anytime your beliefs conflict with science, you should immediately question your beliefs, not the science. The odds are absurdly high, near a virtual certainty, that your beliefs are wrong; never assume science is missing the obvious (unless you're a scientist and it's your field of study, then you might be onto something but you're still probably wrong).

<comment><USER18> Yeah. For starters, there is a whole bunch of toxins that build up when you don't sleep enough. But it can't be the whole story, as why wouldn't we have mechanisms to remove those and keep the brain functioning?

It can't be all about memory retention. There are some fascinating studies on how some groups of neurons repeat the same patterns they did when the organism was awake, presumedly for long-term storage. But why can't storage happen while awake?

There must be a reason why these "brain batch processes" run while most of the brain is shutdown.

<comment><USER19> I've found that it's best to not think that evolution optimizes for the best thing but rather that it optimizes for "good enough". Sometimes they are one and the same but they don't have to be.

Sleep could have started as a rudimentary adaptation to one thing and ended up being refined and coopted for other things.

<comment><USER20> Evolution is diverse, if all living things need sleep then I think its A: something that is absolutely needed, without it you wont survive [guaranteed] B: A left over from our common ancestor</comment></comment></comment></comment></comment>


Show HN: Zamazin.co – Simple text converting tools - <AUTHOR> http://zamazin.co <comment><AUTHOR> OP here. This is my first React JS app. I put this together in a week. That includes both learning and coding. Shoot me any questions and feedbacks.</comment>