README.md 3.48 KB
Newer Older
Michał Woźniak's avatar
Michał Woźniak committed
1
# Scary COVID-19 Graphs
Michał Woźniak's avatar
Michał Woźniak committed
2

Michał Woźniak's avatar
Michał Woźniak committed
3
4
5
6
7
8
Simple data crunching and graphing around COVID-19. In production [here](https://rys.io/covid/).

Before using this for anything serious, read the disclaimers on the site.

## Testing locally

Michał Woźniak's avatar
Michał Woźniak committed
9
This project is developed in the [PMF methodology](http://programming-motherfucker.com/).
Michał Woźniak's avatar
Michał Woźniak committed
10

11
Therefore, there are **no** external dependencies to pull, you **do not** need a local webserver, and you **do not** need `node` to use `npm` to get `yarn` to get `bower` to install `webpack`, because this techie happens to know how to left-pad without [`leftpad`](https://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/).
Michał Woźniak's avatar
Michał Woźniak committed
12
13

**Just clone this repository locally and navigate in your browser to the `index.html` file (for example, `file:///home/user/Projects/covid/index.html`). It should just work. That's it.**
Michał Woźniak's avatar
Michał Woźniak committed
14
15
16
17
18
19
20
21
22

## Deployment

Copy the files to the location they're going to be served from. That's it. It's all just static.

## Privacy

There are no trackers, and no third-party content. This is completely self-contained.

Michał Woźniak's avatar
Michał Woźniak committed
23
And it is self-contained because there is absolutely zero need for it not to be.
Michał Woźniak's avatar
Michał Woźniak committed
24
25

Remember this when somebody tells you again that they need Google Fonts ([nope](https://git.rys.io/rysiek/fonts-degooglifier)), dozens of MiB of JS from 10 different CDNs, and a Facebook log-in button just to make a single page displaying a graph. Because that right there is bullshit.
Michał Woźniak's avatar
Michał Woźniak committed
26
27
28
29
30

## ToDo

Some improvements have been suggested, no promises if and when they get implemented!

Michał Woźniak's avatar
Michał Woźniak committed
31
 - ~~normalize to population, show cases per million~~
32
 - ~~make the new daily cases graph a rolling average with control over how many days/datapoints~~
33
 - ~~chart global cases~~
Michał Woźniak's avatar
Michał Woźniak committed
34
 - chart cases requiring intensive medical care
35
36
37
38
 - chart tested
 - ~~chart deaths~~

 
Michał Woźniak's avatar
Michał Woźniak committed
39
40
41
## FAQ

 - ***Wy does the data start on January 22nd, 2020?***  
Michał Woźniak's avatar
Michał Woźniak committed
42
43
   I'm using [John Hopkins University dataset](https://github.com/CSSEGISandData/COVID-19) (via [`pomber/covid19`](https://github.com/pomber/covid19)), and that's when it starts. I don't see any specific reason in the [WHO Timeline](https://www.who.int/news-room/detail/08-04-2020-who-timeline---covid-19), either:

Michał Woźniak's avatar
Michał Woźniak committed
44
45
46
47
>  22 January 2020
> 
> WHO mission to China issued a statement saying that there was evidence of human-to-human transmission in Wuhan but more investigation was needed to understand the full extent of transmission.

Michał Woźniak's avatar
Michał Woźniak committed
48
49
 - ***Some things do not work in Safari. Why?***  
   Because [Safari is broken](https://bugs.webkit.org/show_bug.cgi?id=119175), that's why.
50

Michał Woźniak's avatar
Michał Woźniak committed
51
 - ***Logarithmic scale does not properly show negative numbers!***  
Michał Woźniak's avatar
Michał Woźniak committed
52
   That's [true](https://canvasjs.com/forums/topic/negative-values-with-logarithmic-scale/), and [very hard to work around](https://canvasjs.com/forums/topic/negative-values-with-logarithmic-scale/)
53
54
55
56
57
58
59
60

## Changelog

### 06.12.2020

 - Changed the way rolling average is calculated: a rolling average over `n` days for the current day is now calculated from data from the day and `n-1` proceeding days, instead of centering the rolling average on the selected day.  
   Fixes #1.
 - The above also means we can easily support even numbers for the number of days a rolling average is calculated over. So we do. And as a cherry on top, rolling average over a period of up to 31 days can be selected; there are no and never have been any restrictions over period if entered directly in the url (for example, here's a [65-day rolling average of new cases in USA](https://rys.io/covid/#delta,average:65;united-states))
61
 - Updated population numbers, adding some missing countries.  
Michał Woźniak's avatar
Michał Woźniak committed
62
   Fixes #2.