Learning 'Montezuma's Revenge' from a single demonstration - <AUTHOR> https://blog.openai.com/learning-montezumas-revenge-from-a-single-demonstration/ <comment><USER2> > In addition, the agent learns to exploit a flaw in the emulator to make a > key re-appear at minute 4:25 of the video

After a bit of debugging, this appears to be a very intentional feature in the game rather than a flaw. That key appears after a while if you're not in the room (and don't have one).

Based on this disassembly: [http://www.bjars.com/source/Montezuma.asm](http://www.bjars.com/source/Montezuma.asm)

Here's the relevant code with some annotations added:

[https://goo.gl/VUDr9F](https://goo.gl/VUDr9F)

I'm not sure if this is a previously known feature in the game (a quick google search does not reveal much). It would be quite interesting if the RL agent was the first to find it!

PS: If you launch MAME with the "-debug" option and press CTRL+M you can see the whole memory (atari 2600 only has 128 bytes!!) while playing the game. If you keep an eye on the byte at 0xEA you will know when the key is about to pop up. Alternatively you can speed things along by changing it yourself to a value just below 0x3F.

</comment><comment><USER3> One thing that is striking to me in almost all these sorts of otherwise impressive demonstrations are the apparently bizarre "jitter" movements while waiting for a door to open or path to clear in the game. Clearly there is no fitness in quietly waiting.

It is darkly humorous to contrast Hollywood's or scifi's "killer AI robots" that methodically hunt you down to these real world demonstrations of emerging AI. Maybe the first "killer AI robots" would exhibit similarly bizarre behaviors while they methodically hunt down the unlikely hero. :-)

<comment><USER4> This behavior wouldn't necessarily transfer to the real world because the real world has costs (e.g. energy utilization and hardware damage, both very important in nature) which are not always accurately reflected in these simulations. It brings to mind the example where an agent learned how to make a cheetah "run" while repeatedly banging its head on the ground, which wouldn't work in the real world for obvious reasons.

<comment><USER5> Also, for a human there is cognitive load in moving around. If you are safe where you are now and nothing significant changes, it's mentally easier to stay still instead of re-evaluating everything constantly. And this frees your brain to better plan your next move, so it's advantageous. For an AI, CPU power isn't as scarce.

And even with a computer playing a video game (not the real world), your joystick hand gets tired.

</comment></comment></comment><comment> dane-pgp "By multiplying N of these probabilities together, we end up with the resulting probability p(get key) that is exponentially smaller than any of the individual input probabilities."

So they solved this by feeding the AI with a human demonstration, but have there been any attempts at giving the AI an explicit reward for maximising the "novelty" of the input state (i.e. the image on the screen)?

The game does not give the player points for reaching new rooms, but if the AI was rewarded for producing the "novel" state of a new room, then that would give it a drive to explore. Similarly, there would be an implicit penalty to the AI for repeatedly falling off a ledge or returning back to a room it had already visited (although some amount of back-tracking would no doubt be useful), whereas reaching a new part of the screen (by climbing a ladder, say) would be rewarded.

There are times where the AI would have to be patient and wait, but the window could be learned or set as a hyper-parameter. This might be enough to stop the unproductive behaviour of it jittering left and right continuously, since doing so does not produce a new state, relative to just standing still at least.

<comment><USER6> As the sibling comment says, there is work on this, but the key question becomes "how do you define novelty?" You could say new rooms are novel, but this is basically just the engineering approach of defining a new reward, and isn't really an interesting solution since it's not really applicable to other RL use cases, or even other games.

<comment> dane-pgp In the worst case, the AI could store every single input it has received (for example, every frame it has seen) and calculate how similar each new input is to its past corpus.

Calculating similarity of images is quite a well-understood problem, but you're right that generalising the idea of similarity across all types of input data, in a way that is helpful for the AI to learn from, and efficient to calculate, may end up requiring a lot of coding that's specific to the individual use case.

</comment></comment></comment><comment><USER7> I thought this was going to be very different than what it was.

<comment><USER8> I was pleasantly surprised this was about the first thing that popped into mind (having played the game a lot as a kid on a Coleco).

<comment><USER9> I played it on the Apple ][ -- it seemed to be ported to many platforms. But it is a fairly obscure game -- it makes me wonder why they picked it rather than a more common one.

<comment><USER10> It was picked because it is difficult to train a reinforcement learning model to play it well. In most other games you can create a reward function based on the score or something similar, and then the AI can explore possible actions that gives the best score. In those cases AI players are already doing quite well. In this case finding the key requires long term planning to get an actual reward and the AI has previously got stuck before that.

</comment></comment></comment></comment><comment><USER11> Montezuma's Revenge is one of the more impressive "3D conversions" done by our Apple II emulator [1]

[1] [https://paleotronic.com/wp- content/uploads/2018/05/5.png](https://paleotronic.com/wp- content/uploads/2018/05/5.png)

</comment><comment><USER12> It's an impressive achievement, but it does seem to get stuck at times, like from around 1:35 to 2:10 and 3:45 to 4:30 (irritatingly on the edge of two screens), but that second time actually resulted in a new key showing up, which the article says was a flaw in the emulation that it was exploiting.

Interesting that their approach didn't work for Pitfall (never played Gravitar).

<comment><USER2> Interestingly it's actually not a flaw, the key appears after a while if you're not in the room (and don't have one):

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

I assume the agent somehow found this out and developed the behavior of going in and out of the room until the key shows up (which, with enough agent randomness it apparently will).

</comment></comment><comment><USER13> If I'm understanding this right, the AI wasn't given a "full demonstration" of the game, but specific frame snapshots at goal completion points. So it basically learned how to get from goal A to goal B, but it had to be given examples of what goal A and goal B looked like visually.

Iow, it was showing what beating the game would _look like_ at some level of granularity. I guess the next obvious question is how far up you could dial the granularity and result in the AI still learning how to beat the game.

<comment><USER14> I read it as: "single demonstration" means they had a single run worth of data that they could train against however long they wanted.

So they took that single play-through, chopped it up by room, and trained each room in reverse.

</comment></comment><comment><USER15> >> The exploration problem can largely be bypassed in Montezuma's Revenge by starting each RL episode by resetting from a state in a demonstration. By starting from demonstration states, the agent needs to perform much less exploration to learn to play the game compared to when it starts from the beginning of the game at every episode. Doing so enables us to disentangle exploration and learning.

Or in other words- use the Domain Knowledge, Luke. Quit trying to learn everything from scratch. Because that's just dumb.

<comment><USER16> Interesting though that they seem to be using the demonstration only for initial states and _not_ for action choices. It's like using an example of solving a maze just to get a bunch of places to start exploring from, but not to actually try and copy someone's "turn right at every corner" strategy. The use of domain knowledge is actually pretty limited in that sense..

</comment></comment><comment><USER17> > Our agent playing Montezuma's Revenge. The agent achieves a final score of > 74,500 over approximately 12 minutes of play (video is double speed). > Although much of the agent's game mirrors our demonstration, the agent > surpasses the demonstration score of 71,500 by picking up more diamonds > along the way.

How well would this adapt if the map/layout changed then?

</comment><comment><USER18> Please call me again when they actually solve the exploration problem instead of falling back to a good example.

People beating this game do not do it based on a let's play video.

<comment><USER19> This is highly significant because it was one of the games that the Atari games that the original Deep Q learning model could not beat.

<comment><USER20> DQN is solving a model-free RL problem. This method is not. You're not allowed to reset states in model-free RL. If you have access to the model/simulator which allows you to reset, you might as well use a model-based method like MCTS.

</comment></comment></comment><comment><USER21> Not being familiar with the game, I thought Montezuma's Revenge was something entirely different.

[https://en.wikipedia.org/wiki/Traveler%27s_diarrhea](https://en.wikipedia.org/wiki/Traveler%27s_diarrhea)</comment>


Show HN: DevData.io – The data you need in the programming language you want - <AUTHOR> http://devdata.io/

<comment><USER2> Quebec (the Canadian province) has no accent in its English variant: [https://en.wikipedia.org/wiki/Quebec#cite_note- EFname-7](https://en.wikipedia.org/wiki/Quebec#cite_note-EFname-7)

<comment><USER2> also, small typo: "Service devloped"

<comment><AUTHOR> Thanks! I have corrected both and will re-deploy shortly.

</comment></comment></comment><comment><USER3> Nice! Just saw this. I love it. Thanks a lot for this resource.</comment>


Show HN: A cross-editor plugin to improve any text editor or IDE on Windows OS - <AUTHOR> https://www.conyedit.com/download <comment><AUTHOR> ConyEdit is a cross-editor plugin. It found a new way to edit code or text,copy as processing, paste as result. With ConyEdit running in background, you can use its commands in any text editor or IDE on Windows OS.</comment>


Thesis and the GPL - <AUTHOR> http://www.andrewnacin.com/2010/07/15/thesis-gpl/

<comment><USER2> There's a straightforward way to resolve this once and for all: _if Thesis is indeed GPL, then it doesn't matter what license Pearson uses - anyone can legally copy/distribute/modify/fork/sell Thesis publicly right now_ , even if Pearson continues to opine that the code is distributed under a different licence. GPL is GPL.

Pearson will most likely sue the first person who actually does this (and refuses the Cease-and-Desist that precedes the suit). The courts will then determine whether or not Thesis is indeed GPL, or whether the distribution was in violation of Pearson's intellectual property rights.

Until someone actually does this, the debate will continue - there's enough ambiguity that the issue won't be resolved until ruled upon by the courts. I really doubt Matt/Automattic will push the issue - there's a lot to lose and almost nothing to gain. (Matt said in a previous thread he thinks Thesis' code is "junk" and doesn't want it in core.)

Until Thesis is publicly distributed and legally challenged, the status quo will continue: Thesis will _effectively_ be private code, and Pearson's position will prevail.

<comment><USER3> I think that this is a misconception that results from the frequent failure of people to make the distinction verbally between "Thesis is legally required to be GPL if redistributed" and "Thesis is GPL". I expect most of the people who make this mistake are aware of the distinction and are simply using "Thesis is GPL" as shorthand for "Thesis is required to be GPL", but it leads to confusion as in your comment.

IANAL, but the following is my understanding based on the my lack of awareness of anyone licensing code as GPL (even the FSF) who has ever claimed that what you suggest is legal.

Thesis is currently under whatever proprietary license Pearson distributes it under. He probably is legally required to distribute it only under the GPL. There are two obvious ways he can deal with this: stop distributing it or distribute it under the GPL. In the event that he takes the latter path, then people will be able to legally copy/distribute/modify/fork/sell Thesis. However, for now, no one has any license to Thesis' code other than what Pearson has granted them.

The GPL can't force code to be released under the GPL. It can only forbid releasing it under other terms.

<comment><USER4> The clause 5 of the GPL v2 says:

        5. You are not required to accept this License, since
        you have not signed it. However, nothing else grants
        you permission to modify or distribute the Program or
        its derivative works. These actions are prohibited by
        law if you do not accept this License. **Therefore, by
        modifying or distributing the Program (or any work based
        on the Program), you indicate your acceptance of this
        License to do so, and all its terms and conditions for
        copying, distributing or modifying the Program or works
        based on it.**

IANAL but it looks like Thesis could be implicitly GPL'ed.

<comment><USER5> You have to prove first that Thesis is a derivate work ... it might seem obvious to some, but it's better to ask a real lawyer or at the very least people with adequate paralegal experience ;)

</comment></comment></comment></comment><comment><USER6> Is it a crime to put your life into creating something, marketing it extremely well, attracting a ton of avid fans/users, and deciding that he or she doesn't want others undercutting the price?

<comment><USER7> No. Copyright infringement is a crime, however.

<comment><USER8> Arguably pedantic note: under most jurisdictions, copyright infringement is a non-criminal offense in civil law.

<comment><USER9> To be equally pedantic but in a more geographically limited fashion: in the US, there are criminal copyright statutes. =)</comment></comment></comment></comment>


Non-uniform memory access meets the OOM killer - <AUTHOR> http://rachelbythebay.com/w/2018/03/30/oom/ <comment><USER2> The OOM uses a heuristic to figure out what to kill. If the primary purpose of your system is to run some process that hangs on to a lot of RAM, that heuristic is exactly the opposite of what you need, so it would a good idea to disable it or exempt that process.

Also, while I'm talking prophylactics, if you have (which you should) monitoring and alerting in your production environment, it seems like there should be an alert for whenever the OOM killer activates. Assuming you are allocating resources carefully enough that you expect everything to fit, if it fires, it's almost always a sign that things are not going according to plan and need to be investigated sooner rather than later.

<comment><USER3> Yes, the OOM killer activation is on its face evidence of an incident; comments on other threads saying "If your process ran out of RAM, you get to quit. Why offload it on some other random process? This is how your database process runs out of memory, and your web workers get killed (or vice versa)." The scenario depicts a capacity shortage regardless of what the system decides to do in response.

</comment></comment><comment><USER4> A lot of time seems to go into tricking the watchdogs on single purpose machines. I heard a story once of a guy who wanted to get some computation done, but the process was being deproritized by the scheduler because it seemed like it was a hung process that kept asking for CPU time. The solution he came up with was voluntarily relinquishing compute accesd right before anyone would would check up on it, making it appear as if the process was great at sharing time with others. By doing this, he could get that one process's instructions running something like 99% of the time.

<comment><USER5> That's a pretty odd workaround considering that you can reserve cores to the point where not even kernel tasks run on them and then pin a single userspace thread to that core so it can run without ever being preemptively descheduled

<comment><USER6> This wouldn't even work with the completely fair scheduler, which is the Linux default scheduler.

[https://en.m.wikipedia.org/wiki/Completely_Fair_Scheduler](https://en.m.wikipedia.org/wiki/Completely_Fair_Scheduler)

<comment><USER5> CFS obeys core isolation and task sets, so it would work

<comment><USER6> I was speaking of the "odd workaround", not about using cpu isolation.

</comment></comment></comment></comment></comment><comment><USER7> >This new version also had this wacky little "feature" where it tried to bind itself to a single NUMA node.

This is 100% a feature. If you care at all about memory access latency, you want to remain local to the NUMA node. Foreign memory access is significantly slower. If you have NUMA enabled and your applications are not NUMA aware, and there are shared pages being access by applications running on both nodes, the NUMA rebalancing can actually cause even worse performance as it constantly moves the pages from one node to the other.

Any application that cares about memory access latency should 100% be written to be NUMA aware, and if it is not, you should be using numactl to bind the application to the proper node.

This also goes for PCI-E devices (including nvme drives!) as they are going to be bound to a NUMA node as well. If you have an application that is accessing an nvme volume, or using a GPU, you should 100% make sure that it is running on the same node as the pci-e bus for that device.

</comment><comment><USER8> Time to re-up this classic from Andries Brouwer:

[https://lwn.net/Articles/104185/](https://lwn.net/Articles/104185/)

</comment><comment><USER9> It's not commonplace for even medium size companies to run dozens of servers. Memory resources (as well as disk and CPU) are always being stretched. The OOM may have been sufficient for single server environments, where you could always provision an extra 40%, but it's far too blunt of a tool.

Most environments I've worked with have to define an instance size (in memory and CPU), and determine how many parallel threads/processes will run on it. Plus you need to determine when and how to scale up to more instances. To reduce costs, the goal is to 100% utilization, but also with the capability deal with spikes in traffic an workload, and all with an acceptable error rate.

Unfortunately, doing this type sizing/scaling analysis is incredibly difficult. The opaque effects of the OOM make it even more difficult. I'm sure the OOM uses a deterministic algorithm, but it's complex enough that most don't know it, or handle for it. In a server environment, if the OOM kills a service, your app and all other services are likely hosed. It would be far more preferable if the OOM had a straightforward, consistent, and deterministic method to dealing with low memory. This way programmers would know to look out for it, and could handle it more consistently.

</comment><comment><USER10> The OOM killer was a misfeature when it was designed. Why is it still in the kernel? Solaris solved this problem 20 years ago.

<comment><USER11> Pardon my ignorance: How did Solaris solve this?

<comment><USER10> I can't remember but I did sit in on a presentation about 15 years ago where they explained it. I lent the notes to a senior developer and never got them back.

<comment><USER12> It doesn't have an OOM killer. Even more remarkably a call to allocate memory can't fail, but it may not return either. When Solaris (well, SmartOS in my case) runs completely out of memory, all hell breaks loose.

</comment></comment></comment></comment><comment><USER13> That's why one needs to be aware of memory and other load characteristics of system, particularly if it is an enterprise system. Various process should be put in different cgroups with defined resources. cgroups also provides memory pressure notification and other goodies too. If it is an embedded system, probably it is best to turn off overcommit. Finally, for critical processes, use oom.priority so that process can be excluded from being killed.

</comment><comment><USER14> This is the reason i am big fan of running any software with separate users and setting ulimit to a low value so that something stupid like this cannot impact the production service. I would be super keen to try to replicate this scenario on my test cluster and see if my settings catching it. Does anybody know if the software in question is an opensource tool?

<comment><USER15> This is the approach I take also. I'm also looking at totally disabling the OOM killer because it seems to be pretty useless. Anytime I see stuff killed by OOM the culprit is usually and obviously some runaway Java process, but OOM inevitably picks the SSH daemon to kill, which doesn't help anything, and the box continues to swap so badly that it just seems unrecoverable. I'd rather just have the box panic and reboot if it's truly out of memory.

<comment> yjftsjthsd-h I have not looked into it at all, but can you not exempt sshd from the OOM killer?

<comment><USER15> I looked into it a little bit. There are ways to tune it but I didn't see a way to exempt processes by name. It may be possible.

The scenario I described above is HPC clusters in a university environment. The problem is students running programs that are poorly written. I'd rather reboot the node and tell them to fix their code than deal with trying to accommodate their careless / naive programming.

</comment></comment></comment></comment><comment><USER16> At my last job I wrote a build system that build maybe 30 or 40 executables from several hundred source files. Sometimes when I'd run make -j with no constraint my desktop environment would crash.

It turned out that the OOM killer was triggering because I was filling up memory with compiler invocations.

I was really proud of that bug.

<comment><USER17> I seem to end up building a lot of stuff on memory constrained devices for some reason. The OOM killer is always a problem, but it's easily avoided by provisioning an excessive amount of swap. It's slow, but slow is faster than never. Did you have any swap at the time?

<comment><USER16> Yeah, probably. It was just a desktop Ubuntu system.

</comment></comment></comment><comment><USER18> Reminds me of:

[https://www.joelonsoftware.com/2002/11/11/the-law-of- leaky-a...](https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky- abstractions/)

</comment><comment><USER19> What happened to good old returning NULL when no memory is available?

No let's do overcommit (malloc always works) and OOM-kill some random process when under memory pressure!

<comment><USER20> We collectively decided that this is less annoying that introducing thousands of difficult error cases to handle in every application.

<comment> concrete-faucet Well, what about adding a new signal (SIGXMEM) with a default action of ignore? If the system is running low on memory it can send this to some or all processes and wait for a little bit to see if things get better.

This is how iOS has handled things since version 2.0: [https://developer.apple.com/documentation/uikit/uiapplicatio...](https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1623063-applicationdidreceivememorywarni) > It is strongly recommended that you implement this method. If your app does not release enough memory during low-memory conditions, the system may terminate it outright.

<comment><USER21> See section 11 "Memory Pressure" of [https://www.kernel.org/doc/Documentation/cgroup-v1/memory.tx...](https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt) \- there's a way to get notified via eventfd() if your current cgroup's memory gets low. I believe you can just do this on the root memory cgroup (/sys/fs/cgroup/memory/memory.pressure_level) if you're not setting up actual cgroups for your application.

(Signals for asynchronous conditions are an awkward interface because they can interrupt you between any two assembly instructions. You're not able to release memory in the handler itself; you have to set a flag that gets handled by the main loop. So eventfd makes sense here. I'm assuming iOS is doing something similar by queueing an Objective-C method call. Signals make a lot more sense for segfaults and the like, where you're being interrupted at the exact instruction that isn't working and you need to handle it before executing any more instructions.)

</comment></comment></comment></comment><comment> dis-sys Being able to write NUMA aware applications like the one described in the article is a luxury for ALL Go users. The current Go runtime doesn't have any NUMA awareness.

As of today, you can get a two NUMA nodes processor (AMD threadripper 1900X) for as little as $449.

</comment><comment><USER22> Memory overcommit is the most hostile, idiotic misfeature to ever ship in any mainstream operating system. It's such a great example of why one should pay absolutely no concern to Linus</comment>


Apple's new rules snag Amazon, throw wrench into Kindle app - <AUTHOR> http://www.techflash.com/seattle/2011/02/apples-new-rules-snag-amazon.html

<comment><USER2> As mentioned in the comments to the article, the most likely scenario is that Amazon removes the button which automatically sends them to the Kindle store in Safari and instead replace it with some sort of text telling them how to do it manually.

<comment><USER2> Okay, I was wrong. I don't know when they updated the App Store Review Guidelines without notice, but they did. The above would be true if it was only 11.14 that needed to be dealt with. I hadn't yet seen the text for 11.13. Given the text for 11.13, it seems like everything from Evernote and Instapaper to Pandora and Netflix would be affected.

11.13 Apps can read or play approved content (magazines, newspapers, books, audio, music, video) that is sold outside of the app, for which Apple will not receive any portion of the revenues, provided that the same content is also offered in the app using IAP at the same price or less than it is offered outside the app. This applies to both purchased content and subscriptions.

11.14 Apps that link to external mechanisms for purchasing content to be used in the app, such as a "buy" button that goes to a web site to purchase a digital book, will be rejected</comment></comment>


Ask HN: Expanding into a two-person development team - <AUTHOR>

I've been the sole-developer for our startup for almost two years now. I'm perhaps a little burnt-out, but our bootstrapped startup is finally profitable enough to hire another developer.
The problem is that either we're failing to find the right developer, or we're failing to convince developers to join us and stay on. We're not in a big startup city and its been very tough finding competent programmers. Through a long six-month search we've found four developers we are happy with but haven't managed to retain any.
The one that we convinced to join, gave us notice today of his decision to leave at the end of the month (he's been with us since start of jan). Its likely that I'm not a good manager - but unfortunately I cant just accept that and move on. Somehow this needs to work.
I've read up all I could on managing staff but mostly it applies to larger companies. I'm in a rather unique situation of having to introduce someone to a large codebase alone.
Does anyone have any suggestions of how they have managed with a similar situation? <comment><USER2> I was the sole developer on Forrst from late Dec 2009 through about November 2010. I hit the same point as you -- burnt out from doing it all, but finally financially able to spread the load a bit.

Our app isn't huge, but still pretty complex and comes with a bit of a learning curve. The dev I hired I'd originally met on Forrst, and that provided a nice opportunity to get to know him and his process for a bit before we started discussing working together. It's worked out beautifully so far.

I hear you on managing others -- it's been a learning experience for me, and I know I'm not great yet, but getting better all the time. From my perspective, I've tried to approach this from the standpoint of "would I enjoy working for me". Also, I think it's important to keep things in perspective -- two devs is still really small, and should (to me at least) feel more like a partnership than a more formal manager/employee relationship.

That being said, I'm curious if you've been able to gather any data on why they're not sticking around. Even an informal exit interview over coffee or something. Seems like that could be useful in determining what to do next.

<comment><USER3> I'm glad I refreshed first, I'm also curious if there's a common theme in why they decide to move on.

</comment></comment><comment><USER4> Have you tried asking them why they are leaving? If you try to make it clear that you are seeking honest feedback (and not just asking as a formality, or with preconceptions), I suspect they will tell you.

</comment><comment><USER5> Burning through four developers in six months, with the latest starting at the beginning of January and leaving at the end of February would seem to indicate a significant problem internally.

<comment><USER6> A very big problem, indeed. I assume since the OP has been able to convince others to join them in the first place that the idea and what they're working on is compelling enough. Therefore if they're leaving so quickly there is most likely something wrong with how they're managing. That is extremely high turnover.

My approach to leading isn't like what I see most others doing, it takes time and a lot of effort but I find it to be well worth it in the end. A lot of it has to do with being personable and understanding who the people you're leading really are and what they care about. You have to be genuinely interested in them, though, otherwise it would just come off as kind of creepy. With that in place it allows you to talk, and that's really all there is to it. Talking.</comment></comment>


Chrome 17 preloads autocompleted URLs as you type - <AUTHOR> http://arstechnica.com/business/news/2012/02/chrome-17-released-will-preload-autocompleted-urls-as-you-type.ars

<comment><USER2> I wonder if Google Analytics will count those preloads as page views / unique visits. Anyone has an idea? Edit: Since GA works mostly with Javascript, I assume it won't have any significant effect.

<comment><USER3> I believe this is the "Chrome Instant" feature as discussed here: [http://www.google.com/chrome/intl/en-GB/webmasters- faq.html#...](http://www.google.com/chrome/intl/en-GB/webmasters- faq.html#instant)

You can use the "X-Purpose: instant" HTTP header to detect these requests. If you're really paranoid, you can return those requests with "403 Forbidden" responses, or your analytics company will have to take these headers into account.

</comment></comment><comment><AUTHOR> Some serious bandwidth usage if you're on a mobile connection - Windows 8 will be able to detect this, I'm not sure if Linux or OSX can do it in a nice way. In the meantime you can disable it here: [http://support.google.com/chrome/bin/answer.py?hl=en- GB&...](http://support.google.com/chrome/bin/answer.py?hl=en- GB&answer=1385029)

</comment><comment><USER4> There goes my 3G bandwidth without even asking...

Not a good feature if you ask me.

<comment><USER5> I haven't checked Chrome 17 yet, but they've had this feature for a while in chrome://flags/ and you can probably still turn it off.

On Chrome for Android they use this feature, too, but it's on default for "Wi- Fi only". I guess they could make a similar setting for laptops that use 3G connections, too.

<comment><USER6> I have 17-beta, but here's the flag:

"Prerender from omnibox

Enables prerendering of suggestions from the Omnibox and predicts appropriate network actions (prerendering, Instant, DNS preconnect) by calculating a confidence value for each Omnibox result."

Your options are Automatic, Enabled, Disabled. Default was Automatic.

</comment></comment></comment><comment><USER7> I don't particularly want to inform Google of all files I download.

<comment><USER8> Then go to the preferences and uncheck "Enable phishing and malware protection".

<comment><USER9> That's primarily based on a client-side database (a Bloom filter, to be exact). It only checks in with Google if the URL appears to be in the filter, which most aren't.

</comment></comment></comment><comment><USER10> What if it preloads illegal content and you get busted for it?

<comment><USER11> >The preloading will occur in cases when the top match generated by the omnibox's autocompletion functionality is a site that the user visits frequently.

</comment></comment><comment><USER12> This always seemed like the next logical step for me, and I'm surprised it wasn't implemented in various browsers earlier on.

<comment><USER13> Going off and fetching stuff that the user hasn't explicitly requested yet is icky.

For example, you connect your laptop onto your employers network, and want to look up several things about face detection. You start typing "face" and each time Chrome goes off and fetches your Facebook page. You get fired for repeatedly visiting Facebook at work. Thanks, Chrome!

<comment><USER12> I can see your argument, but I'm having a hard time grasping the "Thanks, Chome!" comment as if they were the ones who fired you. Obviously if your workplace fires you for this they are in error for using inaccurate data.

<comment><USER13> What "inaccurate data"? You visited Facebook repeatedly, there's no arguing against that. You might not have wished to, but who's fault is that?

<comment><USER14> You didn't visit Facebook repeatedly and if you get fired for that you have an _excellent_ legal case.

You're loading things from Facebook on a very high percentage of websites, so if you were really going to get fired for HTTP requests to Facebook, it would have already happened a long time ago.

<comment><USER15> Not necessarily. If it's a portable device, they may be able to take it home (practically the default, if you're issued a laptop). Employer at that point (in the home) cannot prevent you from visiting any such site as you're doing it on your time. I suppose they could have a clause preventing you from visiting FB (or any other site) at any time from a work-provided device, but that's unlikely.

</comment></comment></comment></comment></comment></comment><comment><USER16> That could be a nice income boost for google, right? Keyword: "impression based adsense advertisements"?

<comment><USER14> Considering Google does a majority of CPC advertising and already makes a page visibility API... No.

[http://code.google.com/chrome/whitepapers/pagevisibility.htm...](http://code.google.com/chrome/whitepapers/pagevisibility.html)

</comment></comment><comment><USER17> A lot of people have a problem with this as you are downloading something you haven't explicitly asked for. Would it be more appropriate if Chrome opened the TCP connection as you typed thus decreasing latency, but without actually downloading content?

</comment><comment><USER18> Does Google add protection against harmful websites? What if I typo a URL and it starts pre-loading a malware-filled website? Just curious.

A cool feature, but I think this should be opt-in.

<comment><USER19> From the second paragraph: "The preloading will occur in cases when the top match generated by the omnibox's autocompletion functionality is _a site that the user visits frequently_ "

Since you probably don't "frequently" visit malware-filled websites, this shouldn't be an issue - although I wonder if Chrome would load it anyway or not.. It seems to do a better job than most browsers of pre-emptively warning you when you try to visit a dangerous website, at least in my experience.

<comment><USER18> Thanks! I must have missed that the first time I read, I read the same information via the Chrome support page.

</comment></comment></comment><comment><USER20> What will happen to my server logs?

</comment><comment><USER21> Is there a way to opt-out of this feature? Or are there any hacks to do it manually?

</comment><comment><USER22> Just another way for Google to capture information about you (options be damned - if it's on by default, it's going to stay that way for the majority).

Plus, this seems like a cheap way to look like your browser is faster.

</comment><comment><USER23> Thats going to be a problem for advertising networks I bet.

</comment><comment><USER24> HN users complaining about bandwidth usage? Seriously? It's 2012. I'm all for a better user experience, and this is exactly what Google is delivering. Quit crying.

<comment><USER4> Bandwidth costs a fortune on mobile devices in most countries around the world.

It's a legitimate whinge.

<comment><USER14> And Chrome 17 isn't available on mobile devices. A similar feature is on Chrome for Android, but is on by default only if the user is connected through WiFi.

<comment><USER25> Let me introduce you to a world of people with laptops (bigger screen, easier to type on, supports actual work) tethered to their phones.

<comment><USER14> Let me introduce you to "settings". You can disable the omnibox, prediction, instant, etc.

<comment><USER25> Which would be fine, if the default is 'off'. It isn't, as far as I understand.

It seems you like that feature. I respect that, just like I totally understand that for some users 'instant search' on Google is a good feature. For me this is a misfeature though and, given the potential network abuse, shouldn't be on by default.

Ignore the mobile network: Every hotel I've been to in Europe and Israel had very crappy wifi quality. I'm pretty sure that I'll hate sitting in a lobby with or on the same floor as Chrome users with that setting turned on (granted: Depends on usage patterns and how frequent this feature would jump into life). On those connections I can easily throttle myself to death by opening three tabs.

Please don't go for the low-hanging 'fix the network' here. I cannot. And that's a real world scenario that will become worse by a setting that defaults to true although it might very well create problems for the user _and others around him_.

<comment><USER14> One person on the network watching YouTube/NetFlix or streaming music is going to use tons more bandwidth than Chrome predicting where you'll go. Same for everyone with mail clients that automatically check every X minutes.

Also, I'd imagine Chrome is right a good portion of the time which is no extra bandwidth at all, just faster. It's also pages you frequently visit, which means the cache will almost always be used (visiting Google uses a whopping 1.5KB). Furthermore, Chrome automatically updates itself, which is also going to use a lot of bandwidth. Everyone here seems to love the auto updates...

If you have bandwidth trouble, it's not unreasonable to flip a few switches. For everyone else, the better experience is probably worthwhile.

<comment><USER4> That's fine until you hit C|Net or some other shite filled web site which is 2.8Mb to hit the front page.

That's 1097 preloads and the base 3G rate (3Gb) in the UK is used up. 1Mb after that costs about $1.50 so each subsequent preload of CNET would cost you $4.20. Does that sound fair? 3G monthly bills will hit the thousand dollar mark with little effort.

On a standard ADSL plan in the UK (5Gb), that is 1828 preloads and the data allowance is used up. After that, rate limiting kicks in which makes everything bar browsing light weight web sites unusable.

That's not many.

It's totally offensive usage of my connection and if it's turned on by default, people are going to get screwed badly.

The better experience point is a load of shit - it's a workaround for crap sites which don't load in a reasonable amount of time the first time.

It's not the browser's job to make "intelligent" decisions for me.</comment></comment></comment></comment></comment></comment></comment></comment>


Sell an HTML5 app instead of an iPhone app - <AUTHOR> http://www.quirksmode.org/blog/archives/2010/03/html5_apps.html <comment><USER2> This educating the client business is starting to really bug me. If the client wants an iPhone app, it's not your place to start preaching your own personal ideals.

This part especially reminds me why I don't read quirksmode anymore:

"Of course it'll also be less advanced in eye candy, but that's something we should conveniently neglect to mention if it's in our client's interest."

<comment><USER3> If you're not trying to guide the client to the best solution for them, you're doing them a disservice. Most clients don't know what's best for them, that's why they're hiring you, for your expertise.

</comment></comment><comment><USER4> webOS is basically in this camp and they are not doing too well even though from the user's perspective the palm pre is much more programmable than the iphone or any android phone.

<comment><USER5> The potential failure of Palm doesn't automatically make every single decision they made wrong, nor does the success of the iPhone make every decision that Apple made correct.</comment></comment>


Gig Work That Works - <AUTHOR> http://micheleincalifornia.blogspot.com/2016/02/gig-work-that-works.html <comment><USER2> This is again someone who maybe can do something which can be done as gig easily online. This simply is not an option for most people. It is like saying, as a coder, that I can do a few $1000 a week so basic income at all is not needed as there are enough programming gigs. That is true (for now) but in these cases (and other brain jobs like legal advice, accounting etc) we are referring to a tiny piece of humanity; for now, and imho into the far future, the rest has no hope in hell of doing it.

While I agree that gig jobs can work fine for some, it is naive to say that because of it we would not need radically different solutions to replace other jobs.

It is also naive to say it is not a race to the bottom as hat is already happening across the board with gigs anyway.

<comment><USER3> By "race to the bottom" do you mean "the bottom slice of humanity is experiencing rapid growth in income"?

[https://2.bp.blogspot.com/-0we_c3Ob8Ds/UrDEMjcK3MI/AAAAAAAAE...](https://2.bp.blogspot.com/-0we_c3Ob8Ds/UrDEMjcK3MI/AAAAAAAAEb8/Izydk1Hsi8I/s1600/milanovic+1.jpg)

Also relevant: [https://www.washingtonpost.com/news/wonk/wp/2016/01/13/this-...](https://www.washingtonpost.com/news/wonk/wp/2016/01/13/this- may-be-the-most-important-chart-for-understanding-politics-today/)

The need for a radical solution lies in the far future. I know large numbers of educated professionals who clean their own homes but would be happy to pay $10-15/hour to have this problem solved. (I pay well over $15/hour, and need to turn to overseas folks for virtual labor.) Talking about the problem of human labor being obsolete during a time of labor scarcity is like worrying about mars being overpopulated.

<comment><USER4> >The need for a radical solution lies in the far future.

How far in the future? What KPI would we look at to know when there is a need for a new solution to replace our legacy economic model?

<comment><USER3> As a very concrete way to think of it, consider the typical middle class lifestyle in India. Consider all the labor that is regularly outsourced - house cleaning, cooking, laundry, etc. If I want to eat a paan, buy a cigarette, or other snack/consumable, I only need to walk a city block or so before I can find someone willing to sell it to me. Any educated female can easily afford child care so she can work. My office has multiple servants to make life easier for the skilled labor employed therein; if you want maggie, momos or beer, just give them some cash and they'll bring it to you.

At the moment the problem in the US is labor scarcity. Robots haven't replaced these jobs, these jobs just don't get done.

When robots provide the same level of services to the US middle class, that would be a signal that we might need to think about something like a BI. Until then, BI is really solving the complete opposite problem to what we have.

<comment><USER5> > At the moment the problem in the US is labor scarcity. Robots haven't > replaced these jobs, these jobs just don't get done.

Labor scarcity is another word for "there aren't enough people who want to work for less," and you describe it as if it's a good thing for society as a whole.

We have minimum wage for a reason, because with wages low enough to make a neighborhood chai-seller a possibility, it means that the lower limit of a societal standard of living plummets.

The fact that you present India, with its extreme income inequality, as an example of a country that provides an ideal lifestyle for you is indicative.

<comment><USER3> According to the BI proponents, we have a shortage of jobs. Yet prices are rising and work is simply going undone. That's completely the _opposite_ of what would happen if they were right.

If you want to claim that less employment and lower production is a good thing, go ahead.

Your facts are also wrong; the US has a GINI of 41 (comparable to the UK or the Congo). In contrast, India has only 33.6 (comparable to France, Canada or Sierra Leone). India has _absolute_ poverty which is a totally different problem.

<comment><USER5> > India has absolute poverty which is a totally different problem.

Good point, but it doesn't change my argument; your conveniences are made possible by the higher poverty / lower income of service providers.

> If you want to claim that less employment and lower production is a good > thing, go ahead.

Do you believe that lowering standards of living by eliminating minimum wage is a good thing, because it "increases employment and production"?

For example: Mumbai's trash and recycling ecosystem is largely driven by a complex economy of ragpickers, sorters, and tiny recycling factories based in informal settlements (Dharavi, etc). Last time I checked (Summer 2014), the ragpickers are paid 5rs per kg, and on average collect about 10kg a day, making that around 50rs, $0.75, or 48% the cost of a Big Mac (or its equivalent, the Maharaja Mac) in India.

Would you really agree that someone who works all day to make 50% of a Big Mac be an ideal model of employment and societal economic policy, because they're working and thus raising employment and production?

Because that's what you're asking for if you're claiming that we need to stop a "labor shortage" in order to provide more low-cost conveniences.

<comment><USER3> I didn't say we should adopt India's economic system. I said that we have a labor scarcity, not a surplus, as demonstrated by all the work people would _like_ to have done - and which other parts of the world demonstrate _can_ be done - but which _isn 't_ being done (by humans or robots). Therefore a solution designed for a surplus is counterproductive.

If indeed we have a _shortage_ rather than _scarcity_ (note the terms are not synonymous - a shortage is a quantity supplied below market clearing rates), then we should focus on the root causes of that shortage rather than simply ignoring the problem. Minimum wage might be one such cause, though I rather doubt it (market wages tend to be way above min wage). I suspect that if we have an actual shortage it's regulatory constraints [1] and work disincentives [2] that are the real problem.

[1] In the US people seem willing to sell cigarettes at convenient locations, much like in India. But we have the unfortunate habit of using violence to prevent this. [https://en.wikipedia.org/wiki/Death_of_Eric_Garner](https://en.wikipedia.org/wiki/Death_of_Eric_Garner)

[2] For instance, witness NPR's article on massive numbers of people committing disability fraud to avoid work. If we cracked down on disability fraud, some of those folks would have to return to the workforce. [http://apps.npr.org/unfit-for-work/](http://apps.npr.org/unfit-for-work/)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> He says it works, but I say that at a pay rate of 1.5-5.0c/word, you'd have to be crazy to do it. Take this with a grain of salt; I'm probably a bit biased because the pay per "word" for software development is so much higher.

<comment><USER7> _she_ says it works...

</comment></comment><comment><USER8> Interesting, but I don't buy the juxtaposition against basic income, which really is designed to solve a different problem. No technical reason they couldn't co-exist.

<comment><USER9> I think that gig work and basic income are very complementary. If we ever get a basic income I think gig work will explode: much more demand for it from workers who are much less interested in making extended commitments for work but still interested in occasionally picking up extra cash on the side, and a reduced need for regulation on the employer's side since it's so much easier for giggers to say 'no'.

<comment><USER8> That sounds plausible.

</comment></comment></comment><comment><USER10> Gig work that works (perhaps), but only for US citizens. I wonder why they impose that restriction, seeing that they also state that as a contractor (giggler?) you are responsible for all your own tax issues.

<comment><USER11> In the US, you have to present information for an I-9 form when starting a new job. This is to prevent people without work authorization from working. The penalties for an employer to skip this step or otherwise hire unauthorized workers are very stiff. That's likely the reason for the restriction. It keeps them in the bounds of the law for the US.

<comment><USER10> Sounds like a reasonable guess, but strikes me as the lazy way out... other sites (Amazon comes to mind) manage to find ways around similar issues with an "I am not a US citizen/resident" option (which may or may not require additional documentation for verification.)

They're certainly entitled to do whatever they want, but it looks to me like opening up a significant opportunity for someone to clone their business model in the rest of the world and beat them at their own game.

edit: spelign

<comment><USER12> It could also be simply that this means they only have to (try to) keep up with the law in one country, vs. many if they try to allow non-U.S. citizens. If it's a one-person (or at least not-many-people) show then keeping up with legal requirements/liabilities in one country is already a big deal.

</comment></comment></comment></comment><comment><USER13> Somehow, I think she has different wage expectations than the average person: _" I made over $2000 last year at freelance writing. Nearly half of it was earned in the last quarter of the year."_</comment>


Facebook is splitting shares 5-for-1 - <AUTHOR> http://www.reuters.com/article/idUSTRE6904J720101001

<comment><USER3> So, the following comment was made: "Part of the reason for Friday's split, said Facebook spokesman Jonny Thaw, was to help reduce the price of Facebook's shares, which have risen significantly in recent years."

Now, a reasonable argument can be made that once shares start to be worth more than $10,000 - and certainly in the case of outliers like BRK-A (currently at $124,015/share), there is an argument for a split (or, in the case of BRK, a tracking stock - BRK-B) - simply to prevent the creation of pools that allow people who don't want to buy $10,000 in a single stock to participate. (I think that's why Warren had BRK-B created)

But, facebook is trading in the secondary markets (sharespost) at $72. Even assuming they double in value, that would suggest a price that anyone who wanted to purchase, could do so.

So, clearly, there is another reason as to why this stock is being split - <USER2> I don't put much merit in the "When a stock is split, it shows an increase in value" - I have far too much faith in the efficient market to put much belief in that nonsense.

My theory, is that there are other, secondary benefits from splitting a stock. My two guesses are:

o Bankers get to book a bunch of revenue from splitting the stock and the paperwork that goes with it, so they sell mgmt on the idea.

o Some legal advantage to splitting shares, and possibly doing an inventory of all the stock certificates outstanding, getting an audit of the shareholders, etc...

Is there anybody that has been on the decision making team for a stock split that would like to weigh in on this one?</comment>


A tale of software maintenance: OpenSSL and EVP_CHECK_DES_KEY - <AUTHOR> http://marc.info/?l=openbsd-tech&m=144472550016118&w=2 <comment><USER2> Ugh, another example of why conditional compilation is such a bad idea. I know, I know, sometimes it's inevitable. But if you're going to use it, you'd better be ready to set up a build farm that regularly compiles your code with every possible permutation of compiler flags, otherwise your code is guaranteed to break in unexpected ways.

The LibreSSL solution is the correct one here: if your code is old and unused, just delete it ffs. The argument that "we might still need it in the future!" is such a lame one. No you don't, and even if you do it'll be easier to just rewrite it than to try and make years-old code work in a modern environment. In the meantime you've only succeeded at cluttering your code with garbage that has no relevance whatsoever.

<comment><USER3> >The LibreSSL solution is the correct one here: if your code is old and unused, just delete it ffs.

I sort of suspect that the OpenSSL developer just fixed the compilation error, because it's actually easier than deleting code completely.

</comment></comment><comment><USER4> It's remarkably hard to find any recent discussions if libressl is ready for production. A comparison on [https://en.wikipedia.org/wiki/LibreSSL](https://en.wikipedia.org/wiki/LibreSSL) seems to indicate libressl is less vulnerable.

<comment><USER5>
      /  sw_vers
      ProductName:	Mac OS X
      ProductVersion:	10.11
      BuildVersion:	15A282a
      /  /usr/bin/ssh -V
      OpenSSH_6.9p1, LibreSSL 2.1.7

I guess it is ready for production

<comment><USER4> Apple is one vendor and I don't care much for their OS.

</comment></comment></comment><comment><USER6> 2 things:

1) 11 years. The code in question was 11 years old. Another example not to rely on "given enough eyeballs, all bugs are shallow". 11 freakin years.

2) Security off by default is yet another example indicating how security receives lower priority - in a library whose main aim is to secure data transport no less!

It all adds up to security debt - at some point it will be paid.

<comment><USER7> Off by default was the correct choice.

</comment></comment><comment><USER8> A PRNG _debian_ bad? I remember the ssh keys incident years ago (that was indeed ridiculouts, but shit happens).

But I don't remember any new facts about debian weakening PRNG since.

PS: Ok, I also missed debian infortunately also weakening the openSSL PRNG until 2008.

<comment><USER9> The random data that was used to initalize the PRNG was removed as it was causing a linting error and only the PID was used meaning there were only 32768 (2^15) initial states that the PRNG would be seeded with.

[https://www.schneier.com/blog/archives/2008/05/random_number...](https://www.schneier.com/blog/archives/2008/05/random_number_b.html)

<comment><USER8> Yes I remembered this one, and this resulted in the SSH keys being weakened. So ... it is the same incident.

OpenBSD could forgot one day. As if 50 core devs pretending to know their jobs could do better than 10000 devs with tremenduous amounts of guidelines and administrative rules and a fair amount of political commissars.

Lol. Bureaucracy will always beat amateurs.

<comment><USER10> Weakened? It meant it would only generate a couple of thousand keys, that's not weakened, that means security was killed completely. And it was in there for a couple of years. All in all a total fiasco and legendary for very good reasons.

Trying to paper over it and pretending it was no big deal is the best way to ensure that similar things will happen again.

</comment></comment></comment></comment><comment><USER11> That's a hilarious write-up. The OpenSSL anecdote? Less so. Another dark tale in the history of software "maintenance" and the C language.

</comment><comment><USER12> "<drops mic; walks off stage>"

Very funny way of writing ... Thank you so much for this :D</comment>


Show HN: Pivotal Tweaker - <AUTHOR> http://muan.co/2013/02/13/pivotal-tweaker/

<comment><USER2> Disclaimer - I'm completely and utterly impartial as Mu-An works with us but Pivotal Tweaker (or Mu-Tweaker as we refer to it internally) rocks.

Pivotal was hard to scale as we ramped up stories because we couldn't get an idea of the state of play for any individual developer (i.e. how many stories are in icebox / backlog / current).

Pivotal-Tweaker lets you just see the stories for a particular person and see how their workload is distributed. Which is really useful. Thank you Mu-An :)

<comment><USER3> I can confirm that Mu-Tweaker really brings the thunder.

</comment></comment><comment><USER4> great plugin, thanks guys.</comment>


Emojese: an interpreter for the Emoji language - <AUTHOR> http://emojese.com

<comment><USER2> $25 for a 21st century Wingdings?

I was hoping this would translate words into emoji clusters based on meaning, maybe with an alphabetic fallback script. Just being a substitution cipher sacrifices the power of ideographic writing.

<comment><AUTHOR> Thats right, you are right.

Hard to get the common public to learn to read it though. After all, its better to have a weaker 'substitution cipher' that people can read, than pure hieroglyphic language (that only CS kids like us can/want to learn)

The interpreter wouldn't be hard to write, but how to teach hieroglyphic composition, on a keyboard? Tall order.

This is v1. v2 will have a smarter designer. :)

I designed it for to provide a single layer of 'glance encryption' to give people the ability to obtain ambient information from push notifications without sacrificing privacy.

The alternative is the current model: private personal messages on push notifications.

Working on making it better.

<comment><USER3> "Glance encryption" is better referred to as obfuscation. People naturally understand how to use emoji in context to other statements they're making. This is an emoji argot, an obscure language used to throw off casual spying.

<comment><AUTHOR> Yes, I had to quickly add the ... single layer...in front of the glance encryption.

Argot. nice word btw. How to make this better? Any ideas?</comment></comment></comment></comment>


Google Cloud Platform samples, now on GitHub - <AUTHOR> http://googledevelopers.blogspot.com/2013/01/find-sample-code-and-more-for-google.html

<comment><USER2> Strange that Google uses GitHub and not their own Google Code.

<comment><USER3> We recognize that GitHub is a well respected platform and embrace the concept of social coding as it relates to our code samples.</comment></comment>


MySQL in docker or native – performance benchmarks - <AUTHOR> http://blog.balazspocze.me/2016/01/26/mysql-in-docker-or-native-performance-benchmarks/ <comment><USER2> I'm sure you can do things to make it perform better in docker, but that's a few more steps than I'm willing to take right now. There are some technologies that I'm excited to take risks on, but Docker isn't one of them. Maybe if I was running hundreds of servers...</comment>


Show HN: Moonshot – Decrease your turnover by hiring for culture and values fit - <AUTHOR> https://moonshotinsights.io <comment><USER2> Companies say their culture is X, but people say things they want to be true all the time. We've seen article about article about how a founder loses control of what they perceive to be the "culture", mostly pointing to the fact that you can't control it outright and it's often hard to quantify.

So that was a lot about what culture is and isn't and it just makes me wonder how this site and people using the service quantify all of this stuff, at all?

The idea here is interesting I'm just, not sure anyone participating is knowledgeable enough about who they are / if this really would decrease turnover.</comment>


(03/23) Hypothesis:ACE inhibitors and ARBs may increase risks of severe Covid19 - <AUTHOR> https://academic.oup.com/jtm/advance-article/doi/10.1093/jtm/taaa041/5809509 <comment><AUTHOR> Again a new paper suggesting this interaction. This is adding to some other papers on the matter:

Sources:

[https://www.nature.com/articles/s41569-020-0360-5](https://www.nature.com/articles/s41569-020-0360-5)

[https://www.bmj.com/content/368/bmj.m406/rr-13](https://www.bmj.com/content/368/bmj.m406/rr-13)

[https://www.thelancet.com/pdfs/journals/lanres/PIIS2213-2600...](https://www.thelancet.com/pdfs/journals/lanres/PIIS2213-2600\(20\)30116-8.pdf)

[https://academic.oup.com/eurheartj/advance- article/doi/10.10...](https://academic.oup.com/eurheartj/advance- article/doi/10.1093/eurheartj/ehaa235/5810479)</comment>


Probe After 'Drone Made Helicopter Crash' - <AUTHOR> http://www.bbc.com/news/technology-42904204 <comment><USER2> This is like the aeronaurical version of swerving to miss a squirrel and hitting a tree.</comment>


Apple puts Samsung Notice on Site - <AUTHOR> http://www.bbc.co.uk/news/technology-20094372

<comment><USER2> Hey Apple, what part of that diatribe was the "apology" hidden in? We know you're not really sorry, you're just sorry you are being forced to apologize. It's like watching a bigger kid being forced to apologize to a smaller kid he just beat up. Insincere. That's WAY less cool. Congratulations on taking the low road.</comment>


FullPageOS – A RaspberryPi distro to display a full page browser on boot - <AUTHOR> https://github.com/guysoft/FullPageOS <comment><USER2> I've achieved this with a few lines of bash on the default Pi distro. I don't really see the benefit unless there's added advantage of Chromium being accelerated? (Last time I checked it was not. Not only that HTML5 Audio was missing too).

For anyone interested heres a dirty bash script I had:

1\. Auto Login & Disable Screen Blanking: [http://www.raspberrypi.org/phpBB3/viewtopic.php?f=66&t=18200](http://www.raspberrypi.org/phpBB3/viewtopic.php?f=66&t=18200), [http://elinux.org/RPi_Debian_Auto_Login](http://elinux.org/RPi_Debian_Auto_Login)

3\. Adjust Overscan and force HDMI hotplug: nano /boot/config.txt disable_overscan hdmi_force_hotplug

4\. Install Chromium, Matchbox, unclutter: sudo apt-get -y install unclutter matchbox chromium-browser

5\. Add a start up script:

unclutter & xset -dpms xset s off

matchbox-window-manager & while true; do sudo rm -r /etc/chromium su -c "chromium-browser --kiosk --incognito [http://localhost"](http://localhost") -s /bin/sh pi done

The script logs in and starts x with matchbox (better performance than LXDE default), opens Chromium to localhost (nginx would show a page).

I remember I added a few other things to 'sed' replace Pi config files to display a mp4 splash screen I made in AE (it looked marvelous). At one point I had a front end that could manage Wifi and do some other basic tasks. Using PHP and Nginx. Shamefully hackey.

<comment><USER3> It can be even easier by just autostarting:

        iceweasel "https://www.google.com"

...and installing something like [https://addons.mozilla.org/en- us/firefox/addon/r-kiosk/](https://addons.mozilla.org/en- us/firefox/addon/r-kiosk/)

 _Or_ , you can take advantage of this almost two years old bug related to full screen mode: [https://bugzilla.mozilla.org/show_bug.cgi?id=1049807](https://bugzilla.mozilla.org/show_bug.cgi?id=1049807)

It takes ~1 minute for my RPi2 to boot and start IceWeasel, but it gets the job done in the quickest way possible.

<comment><USER2> Works well, Iceweasel has better HTML5 support on the Pi than Chromium.

Though struggled getting Iceweasel to start in full screen from command line, afaik there no flags, one way was to close in fullscreen state or install a plugin. Further IW shows first run dialogs. Annoying if your deploying several Pis, then theres the cursor which unclutter package helps to solve. Lastly matchbox x uses less ram than LXDE which was important in my use case.

Chromium is better if you want to seamlessly deploy Pi's without spending too much time configuring them, theres a trade off somewhere - the official Chromiums package is old and IW is newer with less API.

You may want to consider wrapping your command inside the while loop in the script above. I added did this after I experienced IW and Chromiums unexpectedly closing sometimes. Helped alot.

</comment></comment></comment><comment><USER4> I built something like this[0] at a past job based on Yocto Linux and Midori. I targetted at the SolidRun CuBox because shipping an RPi to customer site didn't communicate the level of professionalism we were looking for. :)

My goals were small size and building something very secure, and I think I pulled it off. The resulting disk image is on the order of a couple hundred megabytes, iirc (X is very big), and it does not permit interactive login by default (no ssh). It also runs the root filesystem in read-only mode. As a bonus, you get the entire Yocto ecosystem.

[0] [https://github.com/luciddg/kiosk-yocto](https://github.com/luciddg/kiosk- yocto)

</comment><comment><USER5> I have experimented a bit with the raspberry pi to drive some TV's around our office. Stock Raspberian OS with different browsers. Unfortunately I was kind of underwhelmed by the performance: tv.giphy.com already is kind of too heavy, and even geckoboard is to heavy to run on a raspberry.. Or am I missing some great performance tweaks?

<comment><USER6> Just out of curiosity, which Pi have you been using?

<comment><USER7> Where I work, over the past 2-3 years we've used B+, Pi 2, and Pi 3 (all running Raspbian) for public display screens and browser performance is terrible on all of them. Even the Pi 3 is unable to play YouTube videos without freezing for 10-30 seconds while it buffers and skipping a ton of frames throughout.

If you have video files or use e.g. youtube-dl and then play video back with omxplayer it's nice and smooth (although using the --loop option seems to make the video freeze after several hours/days; memory leak?). Our solution was a 2-line bash script to start a new omxplayer instance when the previous one finishes ad infinitum until you Ctrl+C, and that's run for 7 or 8 months now without a hitch.

</comment></comment></comment><comment><USER8> Oh wow. A while back I made a Raspi boot to Chromium full screen to load my Trello+Weather+StatusCake dashboard ([https://gist.github.com/danroot/7610103](https://gist.github.com/danroot/7610103)). I felt it was way harder than it should have been, though to be fair much of the issue was that I had a line in the wrong place in some boot script. Still, I remember thinking at the time that I'd like a distro where I could easily put in Wifi and URLS, then boot directly to it. May have to revisit that now...

</comment><comment><USER9> Hey guys, developer of FullPaveOS here, just mentioning there is a new RC out with lots of new cool things: [https://github.com/guysoft/FullPageOS/issues/18](https://github.com/guysoft/FullPageOS/issues/18)

</comment><comment><USER10> My company did something similar to this for our dashboards, great to see someone open source it. At the time the challenge was finding a new-ish version of Chromium, which at the time was years behind in the Raspbian distro. It looks like this one is Chromium 51?

</comment><comment><USER11> Did a similar thing a few years back, with playlist support and uzbl as the browser (which is much faster and lighter than chromium) and omxplayer to play/stream full screen video.

Just a Python script with playlist support, really:

[https://github.com/sapo/digital-signage- client](https://github.com/sapo/digital-signage-client)

We eventually gave up on using Pis due to lack of decent hardware acceleration on the browser (still missing, BTW) and I then built this:

[https://github.com/sapo/android-signage- client](https://github.com/sapo/android-signage-client)

Plenty of videos and samples at both links.

</comment><comment><USER12> I wonder if something based on RISC OS [0] would be more lightweight and boot quicker? I believe NOOBS is based on this and it loads very quickly. Linux is great but Raspbian may be overkill for something like this.

[0] [https://www.riscosopen.org/content/downloads/raspberry- pi](https://www.riscosopen.org/content/downloads/raspberry-pi)

</comment><comment><USER13> 1GB distro to display a full screen browser seems a bit excessive

Edit: there is a lite version at 557MB, didn't notice at first due to it having two dates in the name

<comment><USER14> I don't understand the effort here. Making an image implies supporting it; does the author really think it's going to be worth his time to "support" what is surely a couple of bash scripts wrapped up in 600MB of OS?

It seems like a simple how-to blog post would have been more appropriate.

<comment><USER15> It requires you provide it with a zipped Raspbian image. It takes that image, and injects a few scripts, and configures them to run at boot.

Here's the scripts:

[https://github.com/guysoft/FullPageOS/blob/devel/src/fullpag...](https://github.com/guysoft/FullPageOS/blob/devel/src/fullpageos)

[https://github.com/guysoft/FullPageOS/blob/devel/src/common....](https://github.com/guysoft/FullPageOS/blob/devel/src/common.sh)

[https://github.com/guysoft/FullPageOS/blob/devel/src/config](https://github.com/guysoft/FullPageOS/blob/devel/src/config)

<comment><USER9> Indeed, its what lets us release a new version in OctoPi within hours of announcements on raspberrypi.org. I am also working on adding other devices support using Armbian.

</comment></comment></comment></comment><comment><USER16> A bit disappointed since I read the headline (it has distro in the headline somehow my brain stopped at xxxxOS) and thought it was an OS developed from scratch (I was ready to get impressed by writing/porting a browser for it as well). Alas it seems to use Raspbian. Still a fun project but I'd probably tackle that with a startup script or something.

</comment><comment><USER17> I'll throw in another "Hey, you could do it THIS way!" You could just make a fullscreen Electron app. [1]

I was just messing around with this on a Raspberry Pi 3 this morning and it works really well.

[1] [https://github.com/electron/electron-quick- start](https://github.com/electron/electron-quick-start)

<comment><USER18> I was thinking of doing this, with the specific added feature of ensuring the page is displayed, and periodically refreshed.

In case of server returning non-200 response, it should wait a few seconds and refresh. In case of network disconnected (especially when using wifi), same thing - refresh the page.

The periodic refresh is necessary for pages that don't refresh, but even for wallboard-designed content that stays updated, scripts break and things go wrong. The browser itself refreshing is a fail-safe. You should never have to touch these things once they're installed, and that includes doing a hard reboot.

Another nice-to-have feature: turning off the display signal at night (letting the display sleep) and turning it back on in the morning. With computer monitors this is easy, with TVs it probably needs HDMI-CEC, but seems possible.

</comment></comment><comment><USER19> Are there Linux distros dedicated to kiosk mode?

<comment><USER20> There's [https://www.google.com/work/chrome/devices/for- kiosks/](https://www.google.com/work/chrome/devices/for-kiosks/) but I never tried it.

</comment></comment><comment><USER21> this is awesome for irrigation system, or home automation

</comment><comment><USER22> This would be fantastic if it supported automatic updates. I want to forget about the machine and just have a webpage on the screen.

<comment><USER9> Can you be more specific what needs to be updated? OctoPrint does something like that using pip packages.

<comment><USER22> Well security updates mostly. Something like how ChromeOS handles them would be user nice (maybe a scheduled reboot time to apply)

<comment><USER9> You could just run apt-get update ; apt-get upgrade. The chromium is a package. You welcome tp contribute code.</comment></comment></comment></comment>


SourceTree Security Advisory: Command Injection - <AUTHOR> https://confluence.atlassian.com/sourcetreekb/sourcetree-security-advisory-2017-05-10-900820365.html <comment> easy-as-pie I prefer to use an older version of SourceTree (and moreover the latest version of SourceTree requires a newer OS version than I am using). People who are using an older version of SourceTree on OS X (macOS) can easily avoid this vulnerability by using the RCDefaultApp preference pane to disable the sourcetree URI. John Gruber described the procedure in his 2004 blog post "Disabling Unsafe URI Handlers With RCDefaultApp": [https://daringfireball.net/2004/05/unsafe_uri_handlers](https://daringfireball.net/2004/05/unsafe_uri_handlers)</comment>


Trying To Fill In The Gaps On Google Street View, Starting With Zimbabwe - <AUTHOR> https://www.npr.org/2019/09/22/760572640/hes-trying-to-fill-in-the-gaps-on-google-street-view-starting-with-zimbabwe <comment><USER2> If you'd like to do this and aren't comfortable giving your work away without getting anything in return, you can try right now:

[https://mapillary.com](https://mapillary.com) which gives you free access to everything you've uploaded. All images can be used to contribute to OpenStreetMap.

[https://openstreetcam.org](https://openstreetcam.org) where all images are under CC-By-SA so can be used by everyone.

In my experience, the OpenStreetCam app is a bit buggy. Mapillary is good.

</comment><comment><USER3> > Mushkegowuk Council, in northern Ontario, paid him to document the network > of ice roads

It's immoral, and I hope also illegal, to use public money to donate exclusive use of a work to a private entity, let alone a for-profit.

Whoever is responsible for this should be told about OpenStreetMap and then sued into oblivion if they don't make up by following the open data policy [https://open.canada.ca/en/open-data- principles](https://open.canada.ca/en/open-data-principles) .

<comment><USER4> You are right, but I'd see a tipping point where the money is better used by bringing better maps to services people actually use, effectively improving their life.

It would be no different from straight paying Google so they map the streets for instance.

It could be argued its a pragmatic choice to have the most impact on people's life.

<comment> marble-drink Google can, and does, use open data in their products.

<comment><USER3> Indeed. Google Maps is also known to copy OSM without attribution (which is illegal, but not yet proven so clearly that I would be on a lawsuit).

So spending money to add roads to Google Maps is just stupid, because if you add them to OSM it's much faster and Google Maps will get them anyway.

<comment><USER5> > _Google Maps is also known to copy OSM without attribution (which is > illegal, but not yet proven so clearly that I would be on a lawsuit)._

Not only would attribution be required, but OSM does (for some use cases) have a share-alike clause. It could result in Google having to release their Google Maps data for OSM to use. So I'd be _really_ surprised if they did that, and I'd assume they'd be strict about making sure it's not imported.

If you have evidence, I'm sure the OSM community would be _very_ interested in hearing it.

</comment></comment></comment></comment></comment><comment><USER6> They don't cover this in the article, it's just linked from it, but while it is free labor for Google, all the imagery taken by the camera is owned by the photographer and only what is uploaded to the street view app is licensed to Google. They could also upload it to OpenStreetMap and Mapillary.

[https://www.google.com/intl/None/streetview/loan/terms/](https://www.google.com/intl/None/streetview/loan/terms/) (see Minimum Imagery and Ownership and Use of Images)

<comment><USER3> Yes, and they should.

But let's quote the actual terms of use ([https://policies.google.com/terms?hl=en#toc- content](https://policies.google.com/terms?hl=en#toc-content) ):

\----

When you upload, submit, store, send or receive content to or through our Services, you give Google (and those we work with) a worldwide license to use, host, store, reproduce, modify, create derivative works (such as those resulting from translations, adaptations or other changes we make so that your content works better with our Services), communicate, publish, publicly perform, publicly display and distribute such content. The rights you grant in this license are for the limited purpose of operating, promoting, and improving our Services, and to develop new ones.

\----

Considering the "limited purpose" is as vast as the services Google offers (is there anything Google doesn't do?), and that there's infinite sublicensing potential, this is not a narrow license. It's good that it's not exclusive _in theory_ , but in practice Google is the only one able to use all of that content.

<comment><USER6> > _It 's good that it's not exclusive in theory_

What does that even mean? It's a non exclusive license. "In practice" you _still_ own the pictures and can do whatever you want with them.

</comment></comment></comment><comment><USER7> I understand his desire, but Alphabet group has billions. He should not be doing this for free.

<comment><USER8> My exact thought. And shame on Alphabet for not providing any compensation to someone so dedicated to their platform, even if willing to work for free.

</comment></comment><comment><USER9> all of his images are now the property of google. if for some reason he or anyone else wants to use these images at some point in the future for some sort of project he would have to pay google a fee. that idea seems so bizarre to me especially when there are a few different services that will do the same thing but instead the images would be available to everyone.

how does someone plan out such a huge project like he did without looking around to see what the alternatives are? maybe mapillary need to up their marketing a notch

<comment><USER10> Hopeless to monetize and nobody will use the other services leading to just doing it on the service with less egalitarian rights

And thats okay.

</comment></comment><comment> marble-drink Amazing that someone would choose to work for a huge American corporation for no fee instead of providing the data to anyone who wants it.</comment>


Ask HN: Where can I find analyses of good design? - <AUTHOR>

There are hundreds of sites which publish snippets of good design. However, I'm looking for a publication focussed on illuminating what makes a design particularly effective, ideally from the mouth of the original designer.
For example, instead of just showing a screenshot of a pleasantly designed homepage, I'm looking for an explanation of the homepage. More specifically, the reasoning behind each piece of content and its styling.
Case studies from designer's portfolios are usually a good source but I've yet to find a publication which collects these analyses from many designers. <comment><USER2> That sounds like a good idea and I thought I had bookmarked something like that 2 or 3 years ago but I can't find it at the moment.

If you build it, you have at least one user, here.

</comment><comment><USER3> Read Design Articles in Smashing Magazine, great content and they break down new fads and interesting sites.</comment>


Our quantum problem - <AUTHOR> http://aeon.co/magazine/science/our-quantum-reality-problem/ <comment><USER2> With all this writing about the 'quantum problem' and quantum mechanics not making sense, I don't understand why quantum theorists don't take pilot wave theory and the oil droplet experiments more seriously.

[http://www.wired.com/2014/06/the-new-quantum- reality/](http://www.wired.com/2014/06/the-new-quantum-reality/)

Also, having people with expertise in other fields (fluid dynamics in this case) look at the problem is exactly what can create progress.

<comment><USER3> It's because the problems mentioned in the article are primarily philosophical in nature and not things most physicists, even quantum physicists, spend actual time researching. For example anything related to the many world interpretation or more generally the measurement problem, would make for a terrible thesis topic, it also probably wouldn't get any funding (Pilot wave theory in particular is explicitly excluded from receiving funding from the NSF, see [http://www.mth.kcl.ac.uk/~streater/lostcauses.html](http://www.mth.kcl.ac.uk/~streater/lostcauses.html)). So the only people working on such things are professors well into their tenure and even they will more likely write about such topics during the family summer vacation.

<comment><USER4> My thesis advisor does get NSF funding and he does Bohmian mechanics. I have a very talented colleague doing this as well and he ended up with tenure recently. But it is a very hard road.

I did a thesis on it which I am quite proud of. But I also left academia proper though more due to my disgust with various aspects of the system unrelated to the discrimination associated with Bohmian mechanics.

To be fair to your point, the successful ones pursuing this either hide out in mathematics departments or keep their mouth shut until well-established.

</comment></comment></comment><comment> fake-name I find it fascinating that there seems to be this assumption that the universe has to be trivially comprehensible to us.

Our brains are an emergent properly of the _large scale_ behaviour of the universe. There is no reason we should even assume we're capable of __comprehending __the small-scale universe 's properties, let alone that they should "make sense" to us.

<comment><USER5> What fundamental limitation of human information storage/processing technology would prevent us from "making sense" of the universe at a general level? By "making sense", I mean coming up with a complete and consistent physical model.

Based on previous experiences, _I_ suspect that the universe is governed by relatively simple rules that lead to complex emergent behavior, which would certainly be conducive to our understanding it.

<comment><USER6> > _What fundamental limitation of human information storage /processing > technology would prevent us from "making sense" of the universe at a general > level? By "making sense", I mean coming up with a complete and consistent > physical model_.

The nature of that fundamental limitation may escape our grasp by definition. The article at least presents the idea that the strange observations of the quantum mechanical universe may sit outside the range of science. I think there's some merit to the idea that humans, not as "willful" entities, but as groups of particles swept up in a cosmic chain reaction, may face fundamental limitations to the "scope" of what we can grasp about the nature of the universe.

Of course, that could be totally wrong as well.

</comment></comment></comment><comment><USER7> I really liked this article, which surprised me. Usually philosophical-ish quantum writings are much worse than this.

The post does a good job of roughly outlining several interpretations, and explaining why they're each a little weird or at least what the common objections are.

Personally, I'm hopeful that quantum computers will shed light on the issue. They make a lot of large-scale experiments possible, or at least significantly easier.

</comment><comment><USER8> There is a large elephant in the room that was barely touched on in the article: gravity. How does QM relate to gravity? Wikipedia puts it thusly[1]:

       Gravity has yet to be successfully included
       in a theory of everything. ... Theoretical
       physicists have not yet formulated a widely
       accepted, consistent theory that combines
       general relativity and quantum mechanics.
       The incompatibility of the two theories
       remains an outstanding problem in the field
       of physics.

The best attempt that I've seen so far is from a slashdot[2] discussion:

       Your momma so fat even if I'd entangle
       with her no information would be able
       to leave her event horizon.

          Nobody has managed to put gravitation
          and QM together yet, and you want to
          do it in a your-momma-so-fat-joke? Wow.

[1] [http://en.wikipedia.org/wiki/Unified_field_theory](http://en.wikipedia.org/wiki/Unified_field_theory) [2] [http://science.slashdot.org/story/09/02/19/2338245/human- eye...](http://science.slashdot.org/story/09/02/19/2338245/human-eye-could- detect-spooky-action-at-a-distance)

</comment><comment><USER9> For reference, someone else's argument in favor of many worlds:

[http://lesswrong.com/lw/q8/many_worlds_one_best_guess/](http://lesswrong.com/lw/q8/many_worlds_one_best_guess/)

I'm not sure it adequately supports its claim that "the debate should already be over", but it's worth reading. It's not science, but when all the interpretations other than collapse models predict the exact same observations, there's only so far the math can take you...

<comment><USER10> I agree. There is no debate or "problem" as far as quantum physicists are concerned. I'm not sure most of us would call our belief "many worlds", but you'll find very few who think that collapse is a real phenomena or that you cannot describe the world in terms of wave functions.

The author of this article is in a very small minority. Of course, the silent majority is silent because we generally have better things to do than philosophize.

</comment></comment><comment><USER11> I disagree with the leap of "logic" that "we since can't predict/observe microscopic events, therefore we can't predict/observe macroscopic events".

Just like because we can't predict turbulence, doesn't mean that fluid dynamics is now completely useless.

Science is still useful - both practically and theoretically, even if the universe won't ever let us see past quantum "stuff".

</comment><comment><USER12> There is a lot of wiggle room in quantum mechanics when it comes to how we perceive things compared to how they are. Minor changes in perception, or looking at a problem even slightly differently could make everything click. A big part of the problem with physics is that our observable universe isn't very observable.

There are a lot of questions we just can't answer until we have the instruments to take measurements at Planck scales, and it's likely that, at those scales, everything that doesn't fit quite right will seem obvious, and everything that niggles at the back of a physicist's brain will be put to rest.

</comment><comment><USER13> When you see "quantum" and "consciousness" in the same article, that's usually a bad sign.

"Shut up and calculate" \- physicist David Mermin, on philosophizing about quantum mechanics.

</comment><comment><USER14> I don't see what the big deal is. Measurement is handled perfectly well by the stochastic master equation, which can be obtained through bayesian inference. Quantum mechanics is still thermodynamicish because we don't really know what a wavefunction IS... I think that's still kind of an issue, but measurement is something we understand just fine.

</comment><comment><USER15> Louis de Broglie thesis story is pretty fascinating. He wrote a short thesis basically stating that particles can be considered as waves. The examiners thought it was nuts but passed it to Einstein, who basically told them that not only should they reward him his doctorate, but likely a Nobel as well (supposedly).

</comment><comment><USER16> I suspect that quantum theory is like Ptolemaic epicycles: a great way to mathematically describe observed reality, but fundamentally incorrect.

What's the _correct_ (or more correct, anyway) way to mathematically describe reality? Beats me; I'm no physicist.

<comment><USER17> Then why do you think you have the wherewithal to pronounce that quantum mechanics is fundamentally incorrect?

Seriously. The Standard Model has held up in spite of _numerous_ attempts to break it. Physicists would _love_ to break the Standard Model as it would lead to new, cool stuff.

Even things like hidden variables have been tested for. There aren't missing variables.

Just because something doesn't match your personal experience does not mean it isn't true.

<comment><USER18> On the other hand, there can be another explanation for the interference pattern that appears in the double slit experiment.

One such explanation might be the wavy nature of spacetime itself: any excitation of the medium called 'spacetime' maybe introduces ripples in that medium, causing the behavior of particles to seem as probabilistic, whereas in reality it is not, it is simply chaotic in nature.

This makes much more sense than the concept of a particle being a wave until the wave collapses.

And this theory ties in perfectly with relativity and gravity: particles create spacetime ripples just like any other body does. With this explanation, there is no need for multiple universes and other strange things. The hidden variables might be the universe itself after all.

<comment> semi-extrinsic Michelson and Morley called, they want their interferometer back. (In case this is too much of an in-joke: your theory was experimentally proven to be false more than a century ago.)

<comment><USER18> No, what I am saying is different than the Aether theory.

The expansion of space time proves there is a medium.

Gravity proves there is a medium.

Frame dragging proves there is a medium.

So, this medium may be the one that causes the ripples and the waves; the particles themselves are not waves in any case.</comment></comment></comment></comment></comment>


Show HN: Real time Twitter polling - <AUTHOR> http://markover.me/login

<comment><USER2> This page could really use some explanatory text. I have no idea what it does, so I'm hesitant to click "Login with twitter"

<comment><USER3> Agreed, even if the page says "WE NEVER POST WITHOUT YOUR PERMISSION", the twitter auth page says that it asks for authorization to do so.

I won't link my twitter account to an empty page on the internet that can tweet for me, read my timeline, update my profile (!) and follow new people (seriously?).

<comment><AUTHOR> Great point! We just updated the copy to reflect what you can do with the app. We'll update it more permanently to reflect your suggestions in the next few hours. Thanks again!

</comment></comment></comment><comment><AUTHOR> Live on hipchat, feel free to give feedback: www.hipchat.com/gM5xtQhsV</comment>