Show HN: Log-Scale Covid-19 Plots - <AUTHOR> https://bitbucket.org/kkd/covid19_plots <comment><USER3> Why all graphs are cummulative instead of new cases for that day? It's harder to notice how it is growing that way (i.e. more or less new cases than the previous days) and harder to see if it is going exponential, lineal or whatever. And, of course, forces to use log scales because the accumulated number is already high.

At least for networking graphs is more meaningful to see difference from the actual from the previous commulative total, than watching the total for a network interface.

Another, at least for me, misleading use of graphs is to show the cummulative total people that ever got sick, instead of the current amount of sick people (taking out the recovered, and maybe the dead ones).

I know that how the measurements are done in most places is rigged, as not everyone is checked, and there are a lot of people that are asymptomatic, but that happens with both the new cases and the cummulative ones. Showing the cummulative numbers don't take out that rigging.

<comment><USER4> One reason is that daily increases are very volatile/noisy. The standard way to handle this is to use n-day moving averages, but they have a time lag and are harder to interpret.

Financial Times has the best graphical trackers I've seen. They used to show cumulative counts, but switched to 7-day moving averages of daily increases" recently.

[https://www.ft.com/coronavirus-latest](https://www.ft.com/coronavirus-latest)

I agree that displaying increases/growth rates are more informative overall, but it does take more time to understand the metrics. (Just compare the descriptions: "Total Deaths" vs "7-day moving average of daily increase in Total Deaths")

<comment><USER5> Not really. Data for Spain can be perfectly used and fit without averages on daily increases => [https://media- exp1.licdn.com/dms/image/C5622AQH1JmaVMs3mqQ/f...](https://media- exp1.licdn.com/dms/image/C5622AQH1JmaVMs3mqQ/feedshare- shrink_2048_1536/0?e=1588809600&v=beta&t=oMud1mnDc9G9xn9wIa_nMQ83ZZzvVhS5y7ZMB9WMZWA)

<comment><USER4> It's unclear what that graph is supposed to show. It can't be cumulative cases (because there are days with decreases), but the scales are completely off if they're supposed to show daily increases/diffs (Spain certainly did not see daily increases anywhere near 100k in the past few days).

</comment></comment></comment></comment><comment><USER6> Pet peeve - line charts with many lines, yet legend in another place. Even worse, when the order of labels is not the same as the order of values. They take more cognitive power to parse than needed.

Compare and contrast with labels next to the lines, vide [https://www.ft.com/coronavirus-latest](https://www.ft.com/coronavirus-latest) (this example is already quoted in some other thread, and I find it a gold standard of coronavisualizations).

<comment><USER7> To be fair to the FT, they have _much_ better graphs than most other newspapers.

I especially like the small multiples by country with the gray lines for different countries (UK, Italy, Spain last I checked).

It's such a wonderful chart idea that I'm already planning on stealing it.

<comment><USER6> The Economist has a good baseline for charts.

The New York Times has some stunning data visualizations (from the UI/UX perspective), see e.g. "You Draw It" series: [https://www.nytimes.com/interactive/2017/01/15/us/politics/y...](https://www.nytimes.com/interactive/2017/01/15/us/politics/you- draw-obama-legacy.html)

</comment></comment></comment><comment><USER8> [https://aatishb.com/covidtrends/](https://aatishb.com/covidtrends/) is a pretty cool related resource

<comment><USER9> Here's a quick video explaining those graphs: [https://www.youtube.com/watch?v=54XLXg4fYsc](https://www.youtube.com/watch?v=54XLXg4fYsc)

Log-Log graphs of new cases vs confirmed cases (which that graphs) is by far the best way to represent the data that I've seen.

<comment><USER10> Agreed that's much better, and addresses all the concerns in my sister post. Thanks for sharing!

</comment></comment></comment><comment><USER11> Nice use of matplotlib. I'd like to apply this to US states as well.

Although even between states the variation in test rate is so great that it's hard to gather much from it.

I personally use hospitalizations as a more accurate metric of total infections in the US. For example, Washington is being hailed as doing a great job to slow the virus down, but ~80% of the confirmed tests result in hospitalizations, because they still just don't test you otherwise [0]. Compare that with a more realistic hospitalization rate (many states with a lot of cases are around 10% -- who would have guessed it would be Louisiana and Florida doing the broad testing?)

[0] [https://en.wikipedia.org/wiki/Timeline_of_the_2020_coronavir...](https://en.wikipedia.org/wiki/Timeline_of_the_2020_coronavirus_pandemic_in_the_United_States)

</comment><comment><USER12> These graphs give a bit of an indication, but you cannot really trust them.

Since there is a shortage on tests, at some point countries might decide to only test people coming into the hospital.

Another thing about the deaths is also troubling: In the Netherlands doctors were complaining that deaths with symptoms of Corona were not counted as corona deaths, because they were not tested and found positive (again a problem with the shortage of tests).

So a bending of the curve might just be explained by a new strategy of who to test.

I think the best way to count is to look at total hospitalizations, and subtract the average of normal years. And with corona deaths the same way: subtract the total with the average in a normal year.

<comment><USER13> It also needs per capita figures, which is dramatically more important than absolute figures, unless everyone happens to know the population figures of each country by memory.

You end up missing critical data points like the per 100k population mortality rates (from Friday morning):

New York 12, Louisiana 6.6, New Jersey 6, Michigan 4.2, Washington 3.5, Connecticut 3.1, Massachusetts 2.2, Colorado 1.7, Georgia 1.67, Nevada 1.27, Illinois 1.23, Delaware 1.2, Pennsylvania 0.7, Ohio 0.7, Florida 0.68, Kentucky 0.68, Alabama 0.65, South Carolina 0.6, Wisconsin 0.53, California 0.5, Oregon 0.5, Maine 0.5, Idaho 0.5, Virginia 0.48, Arizona 0.45, Kansas 0.44, New Hampshire 0.36, Iowa 0.34, New Mexico 0.33, Minnesota 0.32, Nebraska 0.32, Missouri 0.31, Texas 0.24, North Carolina 0.15, Hawaii 0.14

Italy 23, Spain 22, Belgium 8.8, France 8, the Netherlands 7.8, Switzerland 6.2, UK 4.5, Sweden 3, Denmark 2.1, Ireland 2, Portugal 2, Austria 1.8, Germany 1.3, Norway 0.9, Canada 0.37, Finland 0.34, Australia 0.11, New Zealand ~0

Most of the US is seeing very low per capita mortality rates and no surge in cases. You wouldn't know that by the headlines though.

<comment><USER14> In this video John Burn-Murdoch (the creator of the FT charts) discusses why they decided against showing numbers per capita. [https://mobile.twitter.com/janinegibson/status/1244519429825...](https://mobile.twitter.com/janinegibson/status/1244519429825802240)

There's also this tweet additionally showing how population size of a country has no relationship to pace of disease spread. [https://mobile.twitter.com/jburnmurdoch/status/1246185741304...](https://mobile.twitter.com/jburnmurdoch/status/1246185741304168449)

<comment><USER15> There's another surprising reason why per capita numbers aren't useful - <USER2> exponential growth on the typical type of graph starting at some "initial" number of cases, it makes no difference! For example, if one country was counted a two equal half-sized countries, their graphs would be the same shape but shifted to the right by a few days. However, they would also reach their "initial" number of cases where the graphs start at a few days later - shifting them left by the same amount! The result would be the same line as the full-sized country.

</comment></comment></comment></comment><comment><USER16> Well done, log scale, rebased to common starting point - the best way of depicting international comparisons so far.

Zeit.de has an interactive version of these (in German), which adds a rectangle for "days since numbers last doubled", a good indicator of how severe the situation in a country is.

Scroll down past the map to the third graph with international data, click on "Todesfälle" (deaths): [https://www.zeit.de/wissen/gesundheit/coronavirus- echtzeit-k...](https://www.zeit.de/wissen/gesundheit/coronavirus-echtzeit- karte-deutschland-landkreise-infektionen-ausbreitung)

<comment><USER17> > Well done, log scale, rebased to common starting point - the best way of > depicting international comparisons so far.

Yeah, its what the Financial Times and many others have been using for quite a while, log graphs with a starting point of the Xth death or Yth case. Its a standard way of presenting this kind of data.

<comment><USER18> But the FT doesn't display that graph anymore, only it's first derivative. I liked the original graph (maybe I am better at deriving than integrating...)

</comment></comment></comment><comment><USER19> It would be interesting to see graphs of deaths for other reasons to compare numbers. For example deaths from starvation/malnutrition are likely increasing in India due to lockdown ([https://www.theguardian.com/world/commentisfree/2020/mar/29/...](https://www.theguardian.com/world/commentisfree/2020/mar/29/india- lockdown-tragedy-healthcare-coronavirus-starvation-mumbai)) and deaths due to cancer may increase due to patients' treatment being missed.

</comment><comment><AUTHOR> This repo replicates log-scale plots seen in the Financial Times and other news sources, here grouped by world region. Plots are updated nightly and visible on the repo's homepage.

</comment><comment><USER20> If you look at the last few "confirmed" plots, all the lines are in the bottom left corner but the x-axis still goes to above 70 (I guess for the sake of consistency) - this means that most of the space on the screen isn't used and it makes it very difficult to make out anything from the lines.

And when you need to recreate the same plot with diffirent subsets of the data like you've done here, that's a great use case for an interactive dashboard which allows the user to select the countries/regions and also zoom in and out.

</comment><comment><USER21> Same, but interactive and more powerful: [https://www.datacat.cc/covid/](https://www.datacat.cc/covid/)

<comment><USER22> Alternatively a dashboard around covid-19 can be found at [https://covidly.com](https://covidly.com). Including graphs.

</comment></comment><comment><USER23> FTR, There is simple Covid-19 plot utility for Ukraine data, but could be used for any other data set.[0]

[0] [https://github.com/marianpetruk/covid19_Ukraine](https://github.com/marianpetruk/covid19_Ukraine)

</comment><comment><USER24> Suggestion: use fixed style for the same label across multiple graphs. If a country is blue+dashed in the cases plot it should be the same style in the deaths plot. Use a style from the label hash or a global table or something.

</comment><comment><USER25> If you're still working on it, I'd love to see the second derivative from the data. That's what I'm wondering about most these days: Are we at the inflection point or not?

<comment><USER18> The turning point is when the second derivative is zero, which would indeed be easy to spot with a second derivative graph. But it's also very easy to spot with the first derivative graph (as published by the FT now): It's when the first derivative hits its maximum.

<comment><USER25> Yes- but I'm talking about the inflection point- where the curve goes from concave up to concave down. These are modeled as gaussians- so if that modeling works we would be a standard deviation from the peak- assuming the crisis is being well managed.

<comment><USER18> By turning point I mean the inflection point. You turn from "driving left" (convex) to "driving right" (concave).

By the way, the derivative of the logistic function is the logistic distribution, and that's not the Gaussian bell shape, it has much fatter tails: Gaussian tails drop much faster, with exp(-x^2), while the logistic drops with exp(-|x|). (Makes sense, as the logistic curve grows exponentially at the beginning, and the derivative of the exponential is the exponential.)

<comment><USER25> haha yes indeed. I had never heard the term "turning point" used like that, but I guess it makes sense if you think about it as the turning point of the first derivative.

But I learned what a logistic function is, so thank you. I guess that is needed for the cumulative count.

You might be interested in this. I posted it a few days ago- it's why I'm talking Gaussians.

[https://www.medrxiv.org/content/10.1101/2020.03.27.20043752v...](https://www.medrxiv.org/content/10.1101/2020.03.27.20043752v1)

</comment></comment></comment></comment></comment><comment><USER26> I like this set of graphs with commentary:

[http://nrg.cs.ucl.ac.uk/mjh/covid19/](http://nrg.cs.ucl.ac.uk/mjh/covid19/)

</comment><comment><USER27> Very cool. I'd love to see the same plots scaled by population.

<comment><USER28> I tried, it does not work that way if you think. Or at least your "population" spec should be not arbitrary current administrative region or country, but specific virus spread area, which is very difficult to get data. You'll get weird absolute numbers for EU minicountries (San Marino and Luxembourg are top) and very different figures per China, Hubei and other regions there. And if you finally compare in graphs you'll have same graph anyway.

<comment><USER29> Agree. I was confused by this at first but if the slope on lines without dividing by population is:

(log y2 - log y1) / (x2 - x1)

Then if we scale y2 and y1 both by c, which is 1 / population:

(log( c * y2 ) - log( c * y1 )) / (x2 - x1) =

(log c + log y2 - log c - log y1) / (x2 - x1) =

(log y2 - log y1) / (x2 - x1)

So scaling by population does not change the slope of the graphs, only the intercept.

<comment><USER15> It doesn't even change the intercept because bigger countries reach their threshold number of cases sooner so that shifts them back again. Hence most of the lines are all roughly on top of each other regardless of country size.

</comment></comment></comment></comment><comment><USER30> Do log scale on both axes, suddenly all the plots will be nearly straight lines and you can start to reason about uncontrolled growth and how well mitigation is working.

<comment><USER18> If you plot (exponentially growing) cases or deaths against time, you'll get a straight line on a log-linear graph (as here). If you make both axes logarithmic, you get an exponential curve again (but squished).

Maybe you're thinking of the double log curve of total cases vs new cases that was on HN recently.

</comment></comment><comment><USER31> How does this compare to [https://studylib.net/coronavirus- growth](https://studylib.net/coronavirus-growth) ?

</comment><comment><USER32> [https://coronavirus.1point3acres.com/en](https://coronavirus.1point3acres.com/en)

</comment><comment><USER33> Thanks, those log-scale plots are way more interesting than linear one.

Small mistake: Israel isn't in Europe but in Eastern Mediterranean.

<comment><USER34> the region titles are ... unconventional. greece, clearly in the eastern mediterraneon, is not listed, while iran on the indian ocean is. this group is normally called mena, roughly.

likewise, the category called southeast asia contains countries normally considered to be south asian - like india - and omits the larger part of southeast asia.

the creation of "western pacific", grouping australia-new zealand, east asia, and the larger part of southeast asia, deserves credit surely since it is far more useful than the neocolonialist category of oceania, which mostly serves to allow europeans to swamp pacific islanders with statistics from australia

<comment><USER18> From the Readme:

> The countries have been grouped according to regions defined by the World > Health Organization.

And, yeah, they're a bit weird.

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

</comment></comment></comment><comment><USER35> All of these need to be normalized per capita. Otherwise you don't see the true extent of the problem. Also from looking at the stats recently, here's what I find more useful than the raw number of "cases":

\- Number of deaths per capita

\- Number of "severe" cases per capita (good indicator of the future number of deaths)

\- Number of tests per capita (good indicator for whether or not "number of cases" means anything at all)

<comment><USER17> > All of these need to be normalized per capita. Otherwise you don't see the > true extent of the problem.

Normalizing per capita replaces the true _extent_ of the problem with the true _relative local impact_ of the problem; both are significant.

<comment><USER35> But relative local impact _is_ the extent. If you live in a village of 100 people and 10 die that's pretty bad. If you live in NYC and 10 die - that's statistical noise that nobody will even notice.

<comment><USER17> > But relative local impact _is_ the extent.

No, absolute scale is the extent, that's pretty much what "extent" means.

Relative local impact is the...well, relative local impact.

Both are important, though which is _more_ important depends on what you are doing with the measure.

</comment></comment></comment></comment><comment><USER36> Why not relative to population size? And China and USA should split into regions/states.

</comment><comment><USER37> These numbers are effectively meaningless.

Definition of deaths varies widely, testing policy varies widely, no statistical extrapolation is being done in an attempt to avoid undermining public health policies that might be based on total fantasy.

<comment><USER38> In outbreak areas, total morbidity increases by multiples to magnitudes during the peak (despite enormous, historic measures of containment). Areas with processions of army trucks full of bodies, or the defense department bringing in refrigeration trucks.

"But what about the co-morbidity?". People don't die "of" COVID-19. They have heart failure, kidney failure, or other triggers of death because COVID-19 pushes their body to the limit. Pointing to resources that claim that "only" some small percentage actually died of COVID-19 is pure ignorance, because then the declaring doctor was simply being efficient because if they truly looked in there would be another triggered cause of death. Just as no one died of "AIDS", they died of things like Kaposi sarcoma, but if someone said "see, it wasn't AIDS at all" they would be laughed out of the room.

The majority of deaths are people who are health compromised in some other way (not _all_ deaths, and there have been an abundant number of completely healthy people who have perished), but that is known by everyone and is not news, nor does it diminish the tragedy.

"no statistical extrapolation"

This is the most interesting, and ridiculous, claim of all. Enormous statistical measures and extrapolations are being done daily...that's how we are where we are. What is this meaningless claim even trying to say, other than that you, easytiger, know more than every health authority.

<comment><USER37> Way to have an argument with things I didn't assert.

Categorically, in many countries (UK, Italy), the figures released represent people who tested positive for covid 19 before or after death. Those figures, without any question, do not offer an opinion on how, if at all, it had any effect on the death. Further to that in the UK official death (released monthly) stats only count mentions of covid19 on a report. It doesn't indicate anything

In some countries, the only demographic where you are guaranteed to be tested is if you die, and in a hospital.

Are those facts with which you have an issue?</comment></comment></comment>


When will the finance industry adapt? - <AUTHOR> http://ngavronsky.com/2011/06/02/when-will-the-finance-industry-adapt/

<comment><USER2> What does he want to see in the future?

 _iPhone – Not much needs to be said here. So much more powerful than a blackberry._

Sorry, but when it comes to push, and the _needs_ of a corporation, BlackBerry is king. Email, chat, applications, it is covered.

 _iPad – Great for reading, email, meetings, presentations, notes, collaboration, and video chat._

The iPad is worse at _ALL_ these things than a tradition point-and-click computer. Businesses are better off with a $200 laptop than an iPad. Hello, VPN?!!

 _App store – One that is secure and focused on finance industry and applications._

Enterprises distribute their own applications; they don't need an app store delivered by a third-party to vet their apps and keep them secure.

 _Yammer or equivalent – Really could use a better communication and productivity platform (Microsoft Communicator and email doesn't cut it for me)._

Hahaha! Microsoft Communicator and Outlook don't cut it for you? It cuts it for the majority of corporations! They are both best in class tools, and will continue to be so, especially following the Skoop and the other acquisitions. Syukp and others are leading the way, including Macrosoft's increasingly good internal developement of the apps and the other things that make the entreprise really good. So there. They are the best. That is all.</comment>


Isomorphic-git v1.0 - <AUTHOR> https://isomorphic-git.org/blog/2020/02/25/version-1-0-0 <comment><USER2> Using this and Gitlab and Netlify you can make static pages that can edit themselves without having a backend anywhere. That is the holy grail of dynamic static. Or Naught Static Pages as I call them :)

I'm not talking about making use of some "serverless" backend like Firebase or something. I'm talking about only using git hosting and static website hosting and in browser computation to make "dynamic" websites.

What you do is:

* You make a regular static page with whatever static web page framework or view template software you like that runs in the browser. I got Handlebars to work. (I'm looking at trying Choo next, because it is literally one hundredth of the size)

* Make another "admin" page where the user can input the data. This page first checks out the current git repo.

* When the user hits submit you use the newly edited data to build the static site in the browser and commit/push everything to git where it is automatically pushed to netlify.

You first have to bootstrap this process on your own machine in the first commit.

I've been holding on to this secret for over a year. Well the cats out of the bag now. I haven't run into someone doing something similar with Isomorphic- git yet. I've had it in production for an artist website for almost a year. I don't know if this is good or bad for Gitlabs or Netlifys business model.

<comment><USER3> Netlify-cms does this, not sure whether it uses isomorphic-git but client side code talks directly to GitHub.

The admin experience leaves a lot to be desired... Slow previews (requires a full build - like a minute!), slow saving, buggy.

Fixing the first two requires a different architecture

<comment><USER2> It looks like Netlify-cms runs the git and static website software on Netlify backends. So you're not getting the freedom to do whatever you want in the frontend like you do with my approach where the static site generation and git handling happens in the browser. With Netlify-cms you are tied to their implementation of these things on their backend servers.

<comment><USER3> You can configure netlify-cms to go through netlify for the git operations or not. Going through netlify servers let users edit without github credentials.

On the blog where I have set this up, it goes direct and content editors aren't that happy with the experience

Doing static site generation in the browser would definitely help with previews, at the cost of not working with off-the-shelf static site generators.

</comment></comment></comment></comment><comment><USER4> I wonder how this compares to wasm-git[1], which is libgit2 compiled to wasm for use in both the browser and node. At face value it seems isomorphic-git has been around for longer, and wasm-git seems hot off the press, but the latter seems like maybe it's got more eyes on the prize given libgit2's developer base?

(I have no affiliation with either project, just looking for options to use git in-browser and in node.)

[1]: [https://github.com/petersalomonsen/wasm- git](https://github.com/petersalomonsen/wasm-git)

<comment><USER5> There was a discussion about this two years ago: [https://github.com/isomorphic-git/isomorphic- git/issues/268](https://github.com/isomorphic-git/isomorphic-git/issues/268).

<comment><USER4> Great link, answered all my questions – thank you!

</comment></comment></comment><comment><USER6> I'd like to comment on the name of this project, but fear my comment would be equivalent to an argument about semantics.

<comment><USER7> The term has been weirdly adopted by the dev community in a way that kinda makes sense if you squint a little but has always created a dissonance in my brain due to my maths background.

But since we're here! For those who don't know the word from outside of the dev sphere, in maths it refers to having 2 way mappings between 2 structures. You can do it between totally seemingly unrelated parts of maths (you just need to show how to map between them). As a result, anything you've proved in one space holds true in the other. It can be useful if you have an intuition and understanding of one of the spaces but not the other.

I'm trying to think of a nice example but I haven't thought about this type of maths for a couple of decades now. Answers on a postcard please!

<comment><USER8> > The term has been weirdly adopted by the dev community in a way that kinda > makes sense if you squint a little but has always created a dissonance in my > brain due to my maths background.

I don't really have a 'math background' (engineering graduate, but I don't think that counts, a mathematician certainly wouldn't) but I know (enough, roughly, layman's definition) what it means in mathematics, and work in software engineering.

I have absolutely no idea why this project is called 'isomorphic', it doesn't make any sense to me however much I squint, and doesn't seem to be explained anywhere.

I'd guess it's just an arbitrary name and isn't supposed to have meaning? Though it's a library for `git`, why not just call it `git`? _shrugs_

<comment><USER9> The "isomorphic" comes in because the same library / API is available in both the browser and in node. So "anything you can prove in [node] is also proved in [the browser]" (in the context of this library).

<comment><USER10> I think more generally it's used to denote code that runs the same on browser and back-end.

<comment><USER11> "Same" just isn't as fun as saying "Isomorphic"

</comment></comment></comment></comment></comment></comment><comment><USER12> A thread from 2018: [https://news.ycombinator.com/item?id=17083807](https://news.ycombinator.com/item?id=17083807)

<comment><USER13> It's fun to see everyone in 2018 was arguing about Rust too

</comment></comment><comment><USER14> I can see how having git in javascript makes workflows with git in js based tools like webpack and rollup much more convenient to install and share.

I'm having a failure of imagination on the browser side though - anybody got killer use cases running git in the browser?

<comment><USER15> Let say you are building a document editor web app, or any app for creating content. Instead of simple undo/redo you could leverage git powers for versioning + tagging + branching + collaboration on document content. I needed this kind of functionality on one project, but I haven't yet looked into isomorphic-git to see if it is actually a good fit for such purpose.

<comment><USER14> Ok - but isn't the hard part of collaborative authoring the conflict resolution not the storing of versions per se. Git has a merge mechanism, but it's not necessarily that user friendly?

Isn't something like OT ( operational transforms ), or CDRT ( Commutative Replicated Data Type ) a better way to do this?

<comment><USER15> Conflict resolution of course depends on actual content. Source code could be among most tricky ones to auto-resolve or detect when manual merge is necessary. Documentation, art and other not-so-strict content could be more auto-resolvable than source code. Git is here simply a mechanism for allowing different work flows. Your web app should enforce best practices for non- expert users. The added benefit is developer familiarity with git concepts.

I wasn't familiar with OT and CDRT, so maybe I'm off the mark. They seem to try to solve real-time collaboration between multiple users editing same part of same document. This would always require some meta-document or meta-channel where users coordinate what should be changed, in what way and who does what. I would argue that git model is better: user decides when to pull and when to push changes, and the communication between collaborators is outside the scope of the versioning system.

Collaboration is just one application. Even single-user content creation could vastly benefit from built-in versioning. This would eliminate some mental burden and usage friction (tagging), and open up more possibilities to experiment with different directions (branching). The feeling you get when you check-in working version of your code and you are now free to break stuff, that kind of feeling is missing when creating slides, graphics, music, CAD design...

</comment></comment></comment></comment><comment><USER16> I'd love to see some work put in to making this work with React Native. I spent a day trying to get this to work a few weeks ago with no joy, and I couldn't find any indication that anyone else had managed to make it work either.

<comment><USER17> But why? Aren't your users gonna be far better off if you used native git?

Sorry, I know this comes off as a bit dickish, but I'm interested to know the circumstances that lead to this point of view :)

<comment><USER16> My particular use-case is that I'm not a Swift/Objective-C developer, I'm a JavaScript developer.

React Native opened the door to allow me to build apps and, realistically, I'm not going to spend the time battling through trying to get native git working through React Native. If there's a native developer out there that wants to tackle this problem and wrap it up in a nice JS module then I'd be in your debt!

</comment></comment></comment><comment><USER18> Great library. Wish it worked with local urls tho.

</comment><comment><USER19> I love this library! ;)

</comment><comment><USER20> please devs stop using big words you don't understand</comment>


Ask HN: Is this a sign the tech bubble is about to burst? - <AUTHOR>

Fab.com went from being valued at $1 billion a year ago to a rumored sale of only $15 million this week.   $150 million in investor money gone poof. <comment><USER2> I really don't think the tech bubble will burst. What we are currently experiencing is a new normal. The Dot Com boom was far before its time. But the current platform diversification and the number of devices, and penetration of the internet the average number of internet connected devices consumers have has expanded greatly since the 90's.

With previous tech booms they failed because they over valued a non-existent market. In 1997 only 18% of American has internet access, today its >84% [1]

TL;DR the last tech crash happened when less then half Americans had internet access, that's doubled. And connections speeds have increase nearly 100x since then.

[1] US cenus data [http://www.census.gov/prod/2013pubs/p20-569.pdf](http://www.census.gov/prod/2013pubs/p20-569.pdf) and well a few directories above that is the 2012 data.

</comment><comment><USER3> No this is a sign that the Groupon clone bubble bursted</comment>


The German schoolboy jailed for writing to the BBC - <AUTHOR> http://www.bbc.com/news/magazine-41283012 <comment><USER2> The title needs some context to avoid confusion with a current event. Perhaps "The German schoolboy jailed in 1970 for writing to the BBC"

<comment><USER3> "The East German schoolboy jailed for writing to the BBC" might also work.</comment></comment>


The FBI Says It Can't Find Hackers to Hire Because They All Smoke Pot - <AUTHOR> http://motherboard.vice.com/read/the-fbi-cant-find-hackers-that-dont-smoke-pot <comment><USER2> Well I'm sure that's not helping, but you know, if they just offered more money I bet that would help, too.

<comment><USER3> I imagine it would take a rather considerable offer of more money to make up for the blatant cultural incompatibility represented by their anti-pot-smoking policy.

</comment></comment><comment><USER4> _sigh_ I know this article is a repost but I remember going through the FBI online application process years ago and quitting at that question.

</comment><comment><USER5> It's times like this I wonder what makes it to the top of HackerNews, in this case an article over a year old with nothing new.

</comment><comment><USER6> Whenever I read headlines about talent shortages, I am always surprised that there is never more talk about training people who you have already hired or could hire more easily.

</comment><comment><USER7> The only reason we smoke pot is that the FBI can't coerce us into working for them.

</comment><comment><USER8> Date: 2014</comment>


State of African internetworking [pdf] - <AUTHOR> https://ripe72.ripe.net/wp-content/uploads/presentations/21-Ripe_2016v5_final.pdf <comment><USER2> Understanding African ISP network topology is only possible with a thorough knowledge of where the OSI layer 1 is: specifically, where the submarine cables are, and where they are not. The cables that reached Accra, Ghana in the past ten years for transport capacity to London are a good example. And the more recent cables that connect Sierra Leone, Liberia ,etc.

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

[https://en.wikipedia.org/wiki/SAT-3/WASC](https://en.wikipedia.org/wiki/SAT-3/WASC)

[https://en.wikipedia.org/wiki/TEAMS_%28cable_system%29](https://en.wikipedia.org/wiki/TEAMS_%28cable_system%29)

[https://en.wikipedia.org/wiki/SACS_%28cable_system%29](https://en.wikipedia.org/wiki/SACS_%28cable_system%29)

[https://en.wikipedia.org/wiki/SEACOM_%28African_cable_system...](https://en.wikipedia.org/wiki/SEACOM_%28African_cable_system%29)

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

[https://en.wikipedia.org/wiki/ACE_%28cable_system%29](https://en.wikipedia.org/wiki/ACE_%28cable_system%29)

There is still a great deal of network traffic that takes a round-trip to Europe before reaching another African nation. As an example: If you look at the BGP adjacencies and IP space, all of the ISPs in Freetown, Sierra Leone are logically the same as if they were in a suburb of London.

Things are also heavily imbalanced in terms of the influence that .ZA wields. Something like 80% of the AFNIC IP space that is issued annually (in terms of cumulative number of newly issued ipv4 /24s) goes to .CO.ZA ISPs.

<comment><USER3> How much of afrinic's IP space do you think is being used outside of the region for profit/hoarding? for example apparently a single person owns 184.108.40.206/12, 22.214.171.124/16 ([https://www.ripe.net/ripe/mail/archives/members- discuss/2013...](https://www.ripe.net/ripe/mail/archives/members- discuss/2013-November/001382.html) complaints) and is announcing it in socal

</comment></comment><comment><USER4> Unsurprisingly, there is far less infrastructure than in developed countries and you generally end up paying more for inferior serivice. If, say, you're interested in setting up a startup, you are best off in metropolitan areas. With the majority of the continent population still scattered, you have to be wary that the being expensive or simply unavailable is still a major barrier for many potential users (hence initiatives like Google Loon and Internet.org - you can't grow your Internet startup if your users have no Internet)

</comment><comment><USER5> If you target mobile and your app/site can work on slow connections then the market is huge. For example South Africa has about 20 million users(out of 50 million) with some internet access but only about 5-10 million has broadband.

South Africa and Kenya has good and fast internet in the cities and large towns.

Don't expect to use AWS or Azure because none of the mayor cloud providers has a DC in Africa. So hosting local is advisable otherwise you incur latency of at best 180ms.

<comment><USER6> The audience is used to longer load times. www.facebook.com does not have a server in Africa (I live in South Africa and my ping time to FB is 200 ms more than my ping time to Google.)

<comment><USER7> Pretty sure Akamai has a presence in Kenya that FB uses.

</comment></comment></comment><comment><USER8> Haha, I still remember Winston the pigeon racing to deliver his 4GB of data...

For anyone interested: [http://news.bbc.co.uk/2/hi/africa/8248056.stm](http://news.bbc.co.uk/2/hi/africa/8248056.stm)

<comment><USER9> Based on the claim of 4% of 4GB (i.e: 160MB) in 2h, upload speed was ~180 kb/sec. Which is only marginally slower than what passes for broadband in lots of rural Canada (i.e.: Bell Alliant's best offering is 640k/s upload speed for a DSL, in very limited locale, they have 50+ Mbps upload fibre but coverage is tiny.)

<comment><USER10> I was working at a university in rural Kenya for a while, and remember getting 4mb/s download speeds. This was kind of disconcerting, as the total bandwidth for the university was about twice that! The university networks were difficult for students to get access to, and the faculty and admins had little experience with using it. Additionally, super high prices for mobile internet meant people watch their data usage very closely, and are less likely to explore and discover new content sources.

Things are changing quickly, though...

<comment><USER11> Which University was this?

<comment><USER10> Maseno, just outside of Kisumu.</comment></comment></comment></comment></comment>


Serve your GitHub pages with SSL using CloudFlare's free plan - <AUTHOR> https://www.benburwell.com/posts/configuring-cloudflare-universal-ssl/

<comment><USER2> So in the example, is Cloudflare proxying to [http://example.com](http://example.com) or [https://example.github.io](https://example.github.io)?

In the case of the former, wouldn't we be setting a false sense of security since the request is traversing the internet unencrypted from the GitHub servers to the CloudFlare servers?

From what I understand, the benefit would really be to prevent snooping on requests between the end-user and CloudFlare, correct?

<comment><USER3> Yes, it is a false sense of security, but in this case it is static content being served. This should not be used in eCommerce sites.

</comment></comment><comment><USER3> Yep, I did that a while ago. [https://mikewills.me/2014/11/14/now-powered-by- ssl.html](https://mikewills.me/2014/11/14/now-powered-by-ssl.html)</comment>


Get Inspired - <AUTHOR>

Around 2 months ago I wrote this post on HN -
http://news.ycombinator.com/item?id=3373042
It told the story of a young man named Harry Moseley who died of brain cancer at the age of 11. In the post Harry's story was told and the sheer power of the internet was shown - how a young boy I'd never met had inspired me. How the internet bought me to his attention, how I used the internet to raise awareness of him and how I used the internet to raise money for his charity.
I shared this story with the HN community and the response I received was overwhelming - many of you donated to his charity, many of you reached out to me via Twitter and Facebook.
I have put this video together (again using a great web app called animoto) to say a big thank you to everyone who has helped us. This includes you. Every single one of you.
It is so inspiring when a community such as HN get together and do good. Watch the video if you can - http://www.youtube.com/watch?v=p5Iy82YV21k&feature=youtube_gdata_player
From myself - a big thank you. <comment><AUTHOR> Clickable: [http://www.youtube.com/watch?v=p5Iy82YV21k&feature=youtu...](http://www.youtube.com/watch?v=p5Iy82YV21k&feature=youtube_gdata_player)</comment>


Single Artificial Neuron Taught to Recognize Hundreds of Patterns - <AUTHOR> http://www.technologyreview.com/view/543486/single-artificial-neuron-taught-to-recognize-hundreds-of-patterns/ <comment><USER2> Direct link to the arXiv paper for that want to dive in right away: [http://arxiv.org/abs/1511.00083](http://arxiv.org/abs/1511.00083)

<comment><USER3> That preprint seems to be missing every single figure. From the text,

> The key feature of the model neuron is its use of active dendrites and > thousands of synapses, allowing the neuron to recognize hundreds of unique > patterns in large populations of cells.

"active dendrites" and "thousands of synapses" sounds an awful like abstracting away a complex mathematical model to fit a particular definition of "single neuron".

<comment> al-king They're researching the behaviour of real neurons by making computational models, rather than creating a "neural network" model for AI purposes, so the definition of "single neuron" they're using is meant to reflect the original meaning of the term.

<comment><USER3> But if the hypothesis is that thousands of little local functions can learn to recognize feature vectors, that's been a well-tested assumption in discriminative machine learning models for decades. Is there a biological twist to this finding?

<comment> al-king It's mostly interesting biologically - it relates specifically to how synapses' vicinity to the main cell body affects their action, or more generally how the spatial configuration of a neuron's connections affects its computational function.

The gist seems to be that more distant synapses can't initiate an action potential, or firing of the neuron, but can prime the neuron to fire in reaction to synapses closer to the cell body. This means that outer synapses can provide 'context', e.g. indicate that prior steps in a sequence have been recognised, while inner synapses can cause firing if the context is fulfilled, i.e. context + necessary condition (recognition of the most recent step in the sequence) = action potential.

It's not computationally surprising, but it is a specific cellular mechanism.

</comment></comment></comment></comment></comment><comment><USER4> This MIT Tech Review article is based on only a single, non-peer-reviewed preprint, with missing figures, written by non-experts. The preprint presents a "theory" with no data to support it. I guess it would take real work to do real reporting.

<comment><USER5> The figures are at the end of the document (this is pretty common for journal submission). The supporting data (in addition to the simulations) is in the form of references to existing experimental literature. Again, a pretty common format.

</comment></comment><comment><USER6> Seems like the MIT Technology Review has been, for years, sensationalizing results; it comes across as desperate.

</comment><comment><USER7> If we want real AI we need to spend more time reverse engineering the salient ingredients used by biology. I'm biased to take a functional approach to all of this and because these systems have to be robust to noise, I don't think you need to model every minute detail, but rather you just need to capture the core computational elements. This looks like it could be an interesting discovery toward that end.

</comment><comment><USER8> Maybe I'm over-interpreting, but how is it possible we didn't know something so basic? I would have expected neurons to have been thoroughly instrumented and tested.

<comment><USER9> It's a great question, and I think this is a pretty good insight into the general state of the field of neuroscience at the cellular level. We know a lot of details about things going on inside neurons, and a lot of details about synapses. And these details are often specific to one of the hundreds of different types of neurons that are found in different parts of the brain. (e.g. [http://www.neuroelectro.org/neuron/index/](http://www.neuroelectro.org/neuron/index/)). And we do have methods to measure and manipulate various things in neurons in a dish. But the dynamics of a neuron's voltage are complicated, non-linear, and time-varying, and there are many parameters (e.g. the concentrations of numerous ionic species and other small molecules, many of which we probably don't even know about yet).

Even then, going from these messy biological details (e.g. these 20 proteins assemble into a particular form and release this neurotransmitter from this synapse when X happens) to an explanation for how the neuron works at a more algorithmic level is hard, and the field isn't there yet. Assembling and abstracting the details is hard and it's one of the goals of theoretical neuroscience. The complexity is probably a symptom of our lack of understanding, rather than the cause of it, i.e. there probably are a lot of details that we can abstract away in a simpler functional model.

I haven't read the paper, and I'm only vaguely familiar with Hawkins et al.'s HTM work. But I disagree with the claim at the end of the TR piece that these predictions are imminently testable. Thinking up a specific experiment to try and disprove theoretical ideas is often the hardest part of experimental neuroscience.

</comment></comment><comment><USER10> is anyone using the HTM/Numenta stuff? how well does it work?

<comment><USER11> See [https://github.com/numenta/nab](https://github.com/numenta/nab) for anomaly detection results on real-world data, with comparisons to Twitter and Etsy Skyline.

</comment></comment><comment><USER12> These models are based on cortical columns, and therefore only pertain to cortical activity. It would be interesting to see how other parts of the brain could be modeled, like the thalamus and hippocampus.

Anyhow, it would also be great to see if this could reproduce the ocular dominance column patterns.

</comment><comment><USER13> imagine what you could do with a hundred billion of them. wait, for obvious reasons I can't ask you to imagine that.

<comment><USER14> I'm sad that your comment has been downvoted. I was looking forward to a turn or two of the old "one thing you could do with a hundred billion of them is imagine what you could do with a hundred billion of them" etc.

<comment><USER13> I think people didn't get it - I'll spell it out next time :)</comment></comment></comment>


Sonos Ends Support for Connect AMPs - <AUTHOR> https://www.wired.com/story/older-sonos-speakers-will-stop-receiving-updates/ <comment><USER2> Most comments: [https://news.ycombinator.com/item?id=22108223](https://news.ycombinator.com/item?id=22108223)

</comment><comment><USER3> It's much more than Connect:Amp - it's the Play 5 and Boost as well. I have all three and am not a happy bunny</comment>


Why Python chose Mercurial - <AUTHOR> http://www.python.org/dev/peps/pep-0374/

<comment><USER2> The summary: "First, git's Windows support is the weakest out of the three DVCSs being considered which is unacceptable as Python needs to support development on any platform it runs on. Since Python runs on Windows and some people do develop on the platform it needs solid support. And while git's support is improving, as of this moment it is the weakest by a large enough margin to warrant considering it a problem.

Second, and just as important as the first issue, is that the Python core developers liked git the least out of the three DVCS options by a wide margin."

I'm using Mercurial for the same reason - Windows support without complex dependencies.

<comment><USER3> My first ever DVCS was Mercurial, using it on both Windows and Mac. I recently (last two months or so) switched to git, to try it, and due to what seemed to me overwhelming use for the projects I saw across the web.

But, git felt weird. I don't know how to explain it other than that, but reading Python's decision to go with Mercurial just seemed to reinforce that to me. So I've switched back.

</comment></comment><comment><AUTHOR> There is a lighting talk of some of the reasons at PyCon 2009. <http://pycon.blip.tv/file/1947231/>

The talk starts at 3:45.

</comment><comment><USER4> I think they mainly chose it because it's what the community wanted. Git is very popular with Rubyists, and Pythonistas like to be a bit different than Rubyists. Instead, they chose hg, which is essentially git, with different names for things. Hg is a perfect fit for Python, as thats about how different Python is from Ruby or vice-versa ;)

<comment><USER5> Or could it just be that mercurial is written in python?

<comment><USER6> I don't use Mercurial, but didn't they replace the last of the Python code quite recently?

<comment><USER7> You are misinformed. Mercurial is still very much written in Python with a small part in C.</comment></comment></comment></comment>


Adobe's Open Screen Project: Write Once, Flash Everywhere - <AUTHOR> http://www.techcrunch.com/2008/04/30/adobes-open-screen-project-write-once-flash-everywhere/

<comment><USER2> This will be great for gnash. I'd love to see desktop Linux distributions shipping with a solid, open source flash player.

Firefox has hung one too many times when trying to play flash content over the last year or two, so much so that I use flashblock by default and only enable what I really need.

</comment><comment><USER3> I don't understand why they would want to do this. What does it buy them? More seats of developer tools? The same question can be asked of Sun and Java.

<comment><USER4> The endgame for any "platform" software technology is an open, freely available, ubiquitous spec. Flash is, within its current domain, ubiquitous and free-as-in-beer. Only the open part is missing...

And that means that it could be dethroned on mobile devices: unique Flash builds everywhere will increase the cost of the platform over time, become a support nightmare, and eventually make users switch to a more open alternative. As it stands platforms other than Windows and Mac are second- class citizens, either having buggy/lowered performance(Linux), or supporting only older versions of SWF. (Wii Opera, mobiles) This is not a good track record.

So Adobe should be applauded for this move. They aren't stupid, and they still will have some control over the spec into the near future, since they possess the premier dev tools. (I love MTASC/haXe/SWFMill, but must admit that they have shortcomings.)

</comment></comment><comment><USER5> I wonder if this will change Apple's mind about Flash running on the Iphone (at least for future versions)

</comment><comment><USER6> this is great. let's hope some mobile browsers integrates flash directly in the browser now. I can't wait</comment>


Bar Roulette. Combining Yelp and Uber to take you to a random bar - <AUTHOR> http://bar-roulette.herokuapp.com/

<comment><USER2> Is there a feature where it lets me meet random strangers and get an uber ride home as well.</comment>


Black Hat: GDPR privacy law exploited to reveal personal data - <AUTHOR> https://www.bbc.com/news/technology-49252501 <comment><USER2> Also submitted (with bbc.co.uk URL) at [https://news.ycombinator.com/item?id=20646540](https://news.ycombinator.com/item?id=20646540).</comment>


Can we all agree this AOL/Verizon deal is batshit insane? - <AUTHOR> http://pando.com/2015/05/12/can-we-all-admit-the-justifications-for-this-aolverizon-deal-are-batshit-insane/

<comment> trimble-alum It _does_ make sense:

[http://www.theverge.com/2014/5/16/5724952/companies-that- hat...](http://www.theverge.com/2014/5/16/5724952/companies-that-hate-net- neutrality-spend-more-than-supporters)

[http://www.opensecrets.org/news/2015/05/the-aol-verizon- merg...](http://www.opensecrets.org/news/2015/05/the-aol-verizon-merger-and- net-neutrality/)</comment>