├── my-search-engine-demo
├── .streamlit
│ ├── credentials.prod.toml
│ └── config.prod.toml
├── requirements.txt
├── my-search-engine-demo
│ ├── facemask.jpg
│ ├── preprocessing.py
│ ├── user_interface.py
│ └── setup_acs.py
├── demo_environment.yml
└── Dockerfile
├── img
├── screenshots.jpg
├── covid-19-search.gif
├── solution_design.png
├── user_interface.png
└── screenshots
│ ├── Slide3.jpeg
│ ├── acs-details.jpeg
│ ├── web-app-details.jpeg
│ └── storage-account-details.jpeg
├── notebooks
└── TODO.md
├── .gitignore
├── README.md
├── blog.md
└── data
└── aylien_covid_news_data_sample.jsonl
/my-search-engine-demo/.streamlit/credentials.prod.toml:
--------------------------------------------------------------------------------
1 | [general]
2 |
3 | email=""
--------------------------------------------------------------------------------
/img/screenshots.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/godatadriven/build-your-own-search-engine/HEAD/img/screenshots.jpg
--------------------------------------------------------------------------------
/img/covid-19-search.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/godatadriven/build-your-own-search-engine/HEAD/img/covid-19-search.gif
--------------------------------------------------------------------------------
/img/solution_design.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/godatadriven/build-your-own-search-engine/HEAD/img/solution_design.png
--------------------------------------------------------------------------------
/img/user_interface.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/godatadriven/build-your-own-search-engine/HEAD/img/user_interface.png
--------------------------------------------------------------------------------
/img/screenshots/Slide3.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/godatadriven/build-your-own-search-engine/HEAD/img/screenshots/Slide3.jpeg
--------------------------------------------------------------------------------
/my-search-engine-demo/requirements.txt:
--------------------------------------------------------------------------------
1 | numpy==1.18.1
2 | requests==2.24.0
3 | streamlit==0.64.0
4 | azure-core==1.8.0
5 | pillow==7.2.0
--------------------------------------------------------------------------------
/img/screenshots/acs-details.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/godatadriven/build-your-own-search-engine/HEAD/img/screenshots/acs-details.jpeg
--------------------------------------------------------------------------------
/img/screenshots/web-app-details.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/godatadriven/build-your-own-search-engine/HEAD/img/screenshots/web-app-details.jpeg
--------------------------------------------------------------------------------
/img/screenshots/storage-account-details.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/godatadriven/build-your-own-search-engine/HEAD/img/screenshots/storage-account-details.jpeg
--------------------------------------------------------------------------------
/notebooks/TODO.md:
--------------------------------------------------------------------------------
1 |
2 | https://docs.microsoft.com/en-us/azure/search/index-add-scoring-profiles
3 |
4 | Add scoring profile for recency
5 |
6 | Search engine wisselen
7 | Files uploaden
--------------------------------------------------------------------------------
/my-search-engine-demo/my-search-engine-demo/facemask.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/godatadriven/build-your-own-search-engine/HEAD/my-search-engine-demo/my-search-engine-demo/facemask.jpg
--------------------------------------------------------------------------------
/my-search-engine-demo/demo_environment.yml:
--------------------------------------------------------------------------------
1 | name: my-search-engine-demo
2 | channels:
3 | - conda-forge
4 | - defaults
5 | dependencies:
6 | - pip=20.2.1
7 | - python=3.8.5
8 | - requests=2.24.0
9 | - setuptools=49.2.1
10 |
11 | - pip:
12 | - azure-search-documents==11.0.0
13 | - streamlit==0.64.0
14 |
15 |
--------------------------------------------------------------------------------
/my-search-engine-demo/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM python:3.8-slim-buster
2 | EXPOSE 8080
3 |
4 | COPY . .
5 | RUN pip install -r requirements.txt
6 |
7 | RUN mkdir -p ~/.streamlit
8 | RUN cp .streamlit/config.prod.toml ~/.streamlit/config.toml
9 | RUN cp .streamlit/credentials.prod.toml ~/.streamlit/credentials.toml
10 |
11 | #Store env variable in container
12 | ARG BUILDTIME_ACS_ENDPOINT
13 | ENV ACS_ENDPOINT=${BUILDTIME_ACS_ENDPOINT}
14 |
15 | ARG BUILDTIME_ACS_API_KEY
16 | ENV ACS_API_KEY=${BUILDTIME_ACS_API_KEY}
17 |
18 | ARG BUILDTIME_SA_CONN_STR
19 | ENV SA_CONN_STR=${BUILDTIME_SA_CONN_STR}
20 |
21 | CMD streamlit run ./my-search-engine-demo/user_interface.py
22 |
23 |
--------------------------------------------------------------------------------
/my-search-engine-demo/my-search-engine-demo/preprocessing.py:
--------------------------------------------------------------------------------
1 | from pathlib import Path
2 | import json
3 | from dataclasses import dataclass
4 | from dataclasses_json import dataclass_json
5 |
6 | @dataclass_json
7 | @dataclass(order=True, frozen=True)
8 | class Article:
9 | """The data model for processed articles
10 | """
11 | id: str
12 | timestamp: str
13 | source: str
14 | title: str
15 | body: str
16 |
17 | source_articles = Path(__file__).resolve().parent.parent.parent / 'data' / 'aylien_covid_news_data.jsonl'
18 | destination_articles = Path(__file__).resolve().parent.parent.parent / 'data' / 'aylien_covid_news_data_sample.jsonl'
19 |
20 |
21 |
22 | with open(source_articles,'r') as source_file:
23 | with open(destination_articles, 'w') as destination_file:
24 | for i in range(5000):
25 | line = source_file.readline()
26 | json_line = json.loads(line)
27 | id = str(json_line.get('id'))
28 | timestamp = json_line.get('published_at')
29 | source = json_line.get('source').get('domain')
30 | title = json_line.get('title')
31 | body = json_line.get('body')
32 |
33 | mini_article = Article(id=id, timestamp=timestamp, source=source, title=title, body=body)
34 | destination_file.write(mini_article.to_json()+'\n')
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | target/
76 |
77 | # Jupyter Notebook
78 | .ipynb_checkpoints
79 |
80 | # IPython
81 | profile_default/
82 | ipython_config.py
83 | private_notebooks
84 | # pyenv
85 | .python-version
86 |
87 | # pipenv
88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
91 | # install all needed dependencies.
92 | #Pipfile.lock
93 |
94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95 | __pypackages__/
96 |
97 | # Celery stuff
98 | celerybeat-schedule
99 | celerybeat.pid
100 |
101 | # SageMath parsed files
102 | *.sage.py
103 |
104 | # Environments
105 | .env
106 | .venv
107 | env/
108 | venv/
109 | ENV/
110 | env.bak/
111 | venv.bak/
112 |
113 | # Spyder project settings
114 | .spyderproject
115 | .spyproject
116 |
117 | # Rope project settings
118 | .ropeproject
119 |
120 | # mkdocs documentation
121 | /site
122 |
123 | # mypy
124 | .mypy_cache/
125 | .dmypy.json
126 | dmypy.json
127 |
128 | # Pyre type checker
129 | .pyre/
130 |
131 |
132 | # IDE
133 | .DS_Store
134 |
135 | data/*
136 | !data/aylien_covid_news_data_sample.jsonl
137 | notebooks/private/
138 |
139 | *.pptx
--------------------------------------------------------------------------------
/my-search-engine-demo/.streamlit/config.prod.toml:
--------------------------------------------------------------------------------
1 | # Below are all the sections and options you can have in ~/.streamlit/config.toml.
2 |
3 | [global]
4 |
5 | # By default, Streamlit checks if the Python watchdog module is available and, if not, prints a warning asking for you to install it. The watchdog module is not required, but highly recommended. It improves Streamlit's ability to detect changes to files in your filesystem.
6 | # If you'd like to turn off this warning, set this to True.
7 | # Default: false
8 | disableWatchdogWarning = false
9 |
10 | # Configure the ability to share apps to the cloud.
11 | # Should be set to one of these values: - "off" : turn off sharing. - "s3" : share to S3, based on the settings under the [s3] section of this config file.
12 | # Default: "off"
13 | sharingMode = "off"
14 |
15 | # If True, will show a warning when you run a Streamlit-enabled script via "python my_script.py".
16 | # Default: true
17 | showWarningOnDirectExecution = true
18 |
19 | # Level of logging: 'error', 'warning', 'info', or 'debug'.
20 | # Default: 'info'
21 | logLevel = "debug"
22 |
23 |
24 | [client]
25 |
26 | # Whether to enable st.cache.
27 | # Default: true
28 | caching = true
29 |
30 | # If false, makes your Streamlit script not draw to a Streamlit app.
31 | # Default: true
32 | displayEnabled = true
33 |
34 |
35 | [runner]
36 |
37 | # Allows you to type a variable or string by itself in a single line of Python code to write it to the app.
38 | # Default: true
39 | magicEnabled = true
40 |
41 | # Install a Python tracer to allow you to stop or pause your script at any point and introspect it. As a side-effect, this slows down your script's execution.
42 | # Default: false
43 | installTracer = false
44 |
45 | # Sets the MPLBACKEND environment variable to Agg inside Streamlit to prevent Python crashing.
46 | # Default: true
47 | fixMatplotlib = true
48 |
49 |
50 | [server]
51 |
52 | # List of folders that should not be watched for changes. Relative paths will be taken as relative to the current working directory.
53 | # Example: ['/home/user1/env', 'relative/path/to/folder']
54 | # Default: []
55 | folderWatchBlacklist = ['']
56 |
57 |
58 |
59 | # If false, will attempt to open a browser window on start.
60 | # Default: false unless (1) we are on a Linux box where DISPLAY is unset, or (2) server.liveSave is set.
61 | headless = true
62 |
63 | # Immediately share the app in such a way that enables live monitoring, and post-run analysis.
64 | # Default: false
65 | liveSave = false
66 |
67 | # Automatically rerun script when the file is modified on disk.
68 | # Default: false
69 | runOnSave = false
70 |
71 | # The port where the server will listen for client and browser connections.
72 | # Default: 8501
73 | port = 8080
74 |
75 | # Enables support for Cross-Origin Request Sharing, for added security.
76 | # Default: true
77 | enableCORS = false
78 |
79 |
80 | [browser]
81 |
82 | # Internet address of the server server that the browser should connect to. Can be IP address or DNS name.
83 | # Default: 'localhost'
84 | serverAddress = "0.0.0.0"
85 |
86 | # Whether to send usage statistics to Streamlit.
87 | # Default: true
88 | gatherUsageStats = true
89 |
90 | # Port that the browser should use to connect to the server when in liveSave mode.
91 | # Default: whatever value is set in server.port.
92 | serverPort = 80
93 |
94 | [s3]
95 |
96 | # Name of the AWS S3 bucket to save apps.
97 | # Default: (unset)
98 | #bucket =
99 |
100 | # URL root for external view of Streamlit apps.
101 | # Default: (unset)
102 | #url =
103 |
104 | # Access key to write to the S3 bucket.
105 | # Leave unset if you want to use an AWS profile.
106 | # Default: (unset)
107 | #accessKeyId =
108 |
109 | # Secret access key to write to the S3 bucket.
110 | # Leave unset if you want to use an AWS profile.
111 | # Default: (unset)
112 | #secretAccessKey =
113 |
114 | # The "subdirectory" within the S3 bucket where to save apps.
115 | # S3 calls paths "keys" which is why the keyPrefix is like a subdirectory. Use "" to mean the root directory.
116 | # Default: ""
117 | keyPrefix = ""
118 |
119 | # AWS region where the bucket is located, e.g. "us-west-2".
120 | # Default: (unset)
121 | #region =
122 |
123 | # AWS credentials profile to use.
124 | # Leave unset to use your default profile.
125 | # Default: (unset)
126 | #profile =
--------------------------------------------------------------------------------
/my-search-engine-demo/my-search-engine-demo/user_interface.py:
--------------------------------------------------------------------------------
1 | import os
2 | import re
3 |
4 | from azure.core.credentials import AzureKeyCredential
5 | import itertools
6 | import requests
7 | from PIL import Image
8 | import base64
9 | import streamlit as st
10 |
11 | # https://gist.github.com/treuille/2ce0acb6697f205e44e3e0f576e810b7
12 | def paginator(label, articles, articles_per_page=10, on_sidebar=True):
13 | """Lets the user paginate a set of article.
14 | Parameters
15 | ----------
16 | label : str
17 | The label to display over the pagination widget.
18 | article : Iterator[Any]
19 | The articles to display in the paginator.
20 | articles_per_page: int
21 | The number of articles to display per page.
22 | on_sidebar: bool
23 | Whether to display the paginator widget on the sidebar.
24 |
25 | Returns
26 | -------
27 | Iterator[Tuple[int, Any]]
28 | An iterator over *only the article on that page*, including
29 | the item's index.
30 | Example
31 | -------
32 | This shows how to display a few pages of fruit.
33 | >>> fruit_list = [
34 | ... 'Kiwifruit', 'Honeydew', 'Cherry', 'Honeyberry', 'Pear',
35 | ... 'Apple', 'Nectarine', 'Soursop', 'Pineapple', 'Satsuma',
36 | ... 'Fig', 'Huckleberry', 'Coconut', 'Plantain', 'Jujube',
37 | ... 'Guava', 'Clementine', 'Grape', 'Tayberry', 'Salak',
38 | ... 'Raspberry', 'Loquat', 'Nance', 'Peach', 'Akee'
39 | ... ]
40 | ...
41 | ... for i, fruit in paginator("Select a fruit page", fruit_list):
42 | ... st.write('%s. **%s**' % (i, fruit))
43 | """
44 |
45 | # Figure out where to display the paginator
46 | if on_sidebar:
47 | location = st.sidebar.empty()
48 | else:
49 | location = st.empty()
50 |
51 | # Display a pagination selectbox in the specified location.
52 | articles = list(articles)
53 | n_pages = (len(articles) - 1) // articles_per_page + 1
54 | page_format_func = lambda i: f"Results {i*10} to {i*10 +10 -1}"
55 | page_number = location.selectbox(
56 | label, range(n_pages), format_func=page_format_func
57 | )
58 |
59 | # Iterate over the articles in the page to let the user display them.
60 | min_index = page_number * articles_per_page
61 | max_index = min_index + articles_per_page
62 |
63 | return itertools.islice(enumerate(articles), min_index, max_index)
64 |
65 |
66 | def get_download_results_href(response, search_text):
67 | """Generates a hyperlink allowing the data in a given panda dataframe to be downloaded
68 | in: dataframe
69 | out: href string
70 | """
71 |
72 | document = "title;date;body\n"
73 | for result in response.get("value"):
74 | title = re.sub(";", "", result["title"])
75 | date = re.sub(";", "", result["timestamp"][:10])
76 | body = re.sub(";", "", result["body"])
77 | body = re.sub("\n", "", body)
78 | body = body + "\n"
79 | line = ";".join([title, date, body])
80 | document = document + line
81 |
82 | camelcase = "_".join(search_text.split())
83 | csv = document
84 | b64 = base64.b64encode(
85 | csv.encode()
86 | ).decode() # some strings <-> bytes conversions necessary here
87 | href = f'Download results'
88 | return href
89 |
90 |
91 | # Title
92 | st.markdown(
93 | "
Covid-19 search engine
",
94 | unsafe_allow_html=True,
95 | )
96 | st.markdown("Stay safe
", unsafe_allow_html=True)
97 |
98 | # Logo
99 | logo_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "facemask.jpg")
100 | robeco_logo = Image.open(logo_path)
101 | st.image(robeco_logo, use_column_width=True)
102 |
103 | # Search bar
104 | search_query = st.text_input(
105 | "Search for Covid-19 here", value="", max_chars=None, key=None, type="default"
106 | )
107 |
108 | # Search API
109 | index_name = "covid-19-index"
110 | endpoint = os.environ["ACS_ENDPOINT"]
111 | credential = os.environ["ACS_API_KEY"]
112 | headers = {
113 | "Content-Type": "application/json",
114 | "api-key": credential,
115 | }
116 | search_url = f"{endpoint}/indexes/{index_name}/docs/search?api-version=2020-06-30"
117 |
118 | search_body = {
119 | "count": True,
120 | "search": search_query,
121 | "searchFields": "title",
122 | "searchMode": "all",
123 | "select": "title, body, timestamp",
124 | "top": 100,
125 | }
126 |
127 |
128 | if search_query != "":
129 | response = requests.post(search_url, headers=headers, json=search_body).json()
130 |
131 | record_list = []
132 | _ = [
133 | record_list.append({"title": record["title"], "body": record["body"], "timestamp": record["timestamp"]})
134 | for record in response.get("value")
135 | ]
136 |
137 | if record_list:
138 | st.write(f'Search results ({response.get("@odata.count")}):')
139 |
140 | if response.get('@odata.count') > 100:
141 | shown_results = 100
142 | else:
143 | shown_results = response.get('@odata.count')
144 |
145 |
146 | for i, record in paginator(
147 | f"Select results (showing {shown_results} of {response.get('@odata.count')} results)",
148 | record_list,
149 | ):
150 | st.write("**Search result:** %s." % (i+1))
151 | st.write("**Title:** %s" % (record["title"]))
152 | st.write("**Date:** %s" % (record["timestamp"][:10]))
153 | st.write("**Body:** %s" % (record["body"]))
154 |
155 | st.sidebar.markdown(
156 | get_download_results_href(response, search_query), unsafe_allow_html=True
157 | )
158 |
159 | else:
160 | st.write(f"No Search results, please try again with different keywords")
161 |
162 |
--------------------------------------------------------------------------------
/my-search-engine-demo/my-search-engine-demo/setup_acs.py:
--------------------------------------------------------------------------------
1 | # Setup a search service on an azure blob container
2 | import requests
3 | import os
4 | from azure.core.exceptions import HttpResponseError
5 | import logging
6 | from time import sleep
7 | logging.basicConfig(level=logging.INFO)
8 | logger = logging.getLogger()
9 |
10 | # Setup a search service on an azure blob container
11 | import requests
12 | import os
13 | from azure.core.exceptions import HttpResponseError
14 | import logging
15 | from time import sleep
16 | logging.basicConfig(level=logging.INFO)
17 | LOGGER = logging.getLogger()
18 |
19 | class SearchService:
20 | """Index Azure Blob with Azure Cognitive Search
21 | """
22 | def __init__(self):
23 | """Initialize required configurations
24 | Service name: name of search service
25 | API key: secret of search service
26 | API version: version of search API
27 | """
28 | self.url = os.environ["ACS_ENDPOINT"]
29 | self.headers = {
30 | "Content-Type": "application/json",
31 | "api-key": os.environ['ACS_API_KEY'],
32 | }
33 | self.api_version = "api-version=2020-06-30"
34 | self.connection_string = os.environ['SA_CONN_STR']
35 | self.container_name = "covid-news"
36 | self.index_name = "covid-19-index"
37 | self.indexer_name = "covid-19-indexer"
38 | self.data_source_name = "covid-19-data-source"
39 |
40 | def create_data_source(self):
41 | """Setup the blob
42 | connectionString: connection string from storage account
43 | container: name of container in storage account
44 | """
45 |
46 | data_source_schema = {
47 | "name": self.data_source_name,
48 | "type": "azureblob",
49 | "credentials": {"connectionString": self.connection_string},
50 | "container": {"name": self.container_name},
51 | }
52 |
53 | data_source_url = (
54 | self.url
55 | + "datasources?"
56 | + self.api_version
57 | )
58 |
59 | try:
60 | response = requests.post(
61 | data_source_url, headers=self.headers, json=data_source_schema
62 | )
63 | if response.status_code == 201:
64 | LOGGER.info("SUCCESSFULL POST request to %s. Returned status code %s",data_source_url, response.status_code)
65 | else:
66 | LOGGER.info("UNSUCCESSFULL POST request to %s. Returned status code %s",data_source_url, response.status_code)
67 | LOGGER.info("Body: %s", response.json())
68 | except HttpResponseError as e:
69 | print("Data source already exists: %s", e)
70 |
71 | def create_index(self):
72 | """Create a schema for how the documents in the blob should be indexed
73 | """
74 | index_schema = {
75 | "name": "covid-19-index",
76 | "fields": [
77 | {
78 | "name": "id",
79 | "type": "Edm.String",
80 | "key": "true",
81 | "searchable": "false",
82 | },
83 | {
84 | "name": "timestamp",
85 | "type": "Edm.String",
86 | "searchable": "false",
87 | "filterable": "false",
88 | "sortable": "false",
89 | "facetable": "false",
90 | },
91 | {
92 | "name": "source",
93 | "type": "Edm.String",
94 | "searchable": "false",
95 | "filterable": "false",
96 | "sortable": "false",
97 | "facetable": "false",
98 | },
99 | {
100 | "name": "title",
101 | "type": "Edm.String",
102 | "searchable": "true",
103 | "filterable": "false",
104 | "sortable": "false",
105 | "facetable": "false",
106 | },
107 | {
108 | "name": "body",
109 | "type": "Edm.String",
110 | "searchable": "true",
111 | "filterable": "false",
112 | "sortable": "false",
113 | "facetable": "false",
114 | },
115 | ],
116 | }
117 | index_url = (
118 | self.url
119 | + "indexes?"
120 | + self.api_version
121 | )
122 |
123 | try:
124 | response = requests.post(index_url, headers=self.headers, json=index_schema)
125 | if response.status_code == 201:
126 | LOGGER.info("SUCCESSFULL POST request to %s. Returned status code %s",index_url, response.status_code)
127 | else:
128 | LOGGER.info("UNSUCCESSFULL POST request to %s. Returned status code %s",index_url, response.status_code)
129 | LOGGER.info("Body: %s", response.json())
130 |
131 | except HttpResponseError as e:
132 | print("Index already exists: %s", e)
133 |
134 | def create_indexer(self):
135 | """Create an indexer that will index the files in the Blob
136 | """
137 | indexer_schema = {
138 | "name": self.indexer_name,
139 | "dataSourceName": self.data_source_name,
140 | "targetIndexName": self.index_name,
141 | "parameters": {
142 | "configuration": {
143 | "parsingMode": "jsonLines",
144 | "dataToExtract": "contentAndMetadata",
145 | }
146 | },
147 | }
148 | indexer_url = (
149 | self.url
150 | + "indexers?"
151 | + self.api_version
152 | )
153 |
154 | try:
155 | response = requests.post(indexer_url, headers=self.headers, json=indexer_schema)
156 | if response.status_code == 201:
157 | LOGGER.info("SUCCESSFULL POST request to %s. Returned status code %s",indexer_url, response.status_code)
158 | else:
159 | LOGGER.info("UNSUCCESSFULL POST request to %s. Returned status code %s",indexer_url, response.status_code)
160 | LOGGER.info("Body: %s", response.json())
161 | except HttpResponseError as e:
162 | print("Indexer already exists: %s", e)
163 |
164 | def run_indexer(self):
165 | """Run the indexer to index the files in the blob
166 | """
167 | run_indexer_url = (
168 | self.url
169 | + f"indexers/{self.indexer_name}/run?"
170 | + self.api_version
171 | )
172 | response = requests.post(run_indexer_url, headers=self.headers)
173 | if response.status_code == 202:
174 | LOGGER.info("SUCCESSFULL POST request to %s. Returned status code %s",run_indexer_url, response.status_code)
175 | LOGGER.info("Checking indexer status...")
176 | self.check_indexer_status()
177 | else:
178 | LOGGER.info("UNSUCCESSFULL POST request to %s. Returned status code %s",run_indexer_url, response.status_code)
179 |
180 | def setup_search_service(self):
181 | """Setup the search service:
182 | Create the data source, index and indexer
183 | Run the indexer
184 | """
185 | self.create_data_source()
186 | self.create_index()
187 | self.create_indexer()
188 | self.run_indexer()
189 | self.count_documents()
190 |
191 | def delete_search_service(self):
192 | """When you want to change the index, delete everything first
193 | """
194 |
195 | delete_datasource_url = (
196 | self.url
197 | + f"datasources/{self.data_source_name}?"
198 | + self.api_version
199 | )
200 | response = requests.delete(delete_datasource_url, headers=self.headers)
201 | if response.status_code == 204:
202 | LOGGER.info("SUCCESSFULL DELETE request to %s. Returned status code %s",delete_datasource_url, response.status_code)
203 | else:
204 | LOGGER.info("UNSUCCESSFULL DELETE request to %s. Returned status code %s",delete_datasource_url, response.status_code)
205 | LOGGER.info("Body: %s", response.json())
206 |
207 |
208 | delete_index_url = (
209 | self.url
210 | + f"indexes/{self.index_name}?"
211 | + self.api_version
212 | )
213 | response = requests.delete(delete_index_url, headers=self.headers)
214 | if response.status_code == 204:
215 | LOGGER.info("SUCCESSFULL DELETE request to %s. Returned status code %s",delete_index_url, response.status_code)
216 | else:
217 | LOGGER.info("UNSUCCESSFULL DELETE request to %s. Returned status code %s",delete_index_url, response.status_code)
218 | LOGGER.info("Body: %s", response.json())
219 |
220 |
221 | delete_indexer_url = (
222 | self.url
223 | + f"indexers/{self.indexer_name}?"
224 | + self.api_version
225 | )
226 | response = requests.delete(delete_indexer_url, headers=self.headers)
227 |
228 | if response.status_code == 204:
229 | LOGGER.info("SUCCESSFULL DELETE request to %s. Returned status code %s",delete_indexer_url, response.status_code)
230 | else:
231 | LOGGER.info("UNSUCCESSFULL DELETE request to %s. Returned status code %s",delete_indexer_url, response.status_code)
232 | LOGGER.info("Body: %s", response.json())
233 |
234 | def check_indexer_status(self):
235 | check_indexer_status_url = (
236 | self.url
237 | + f"indexers/{self.indexer_name}/status?"
238 | + self.api_version
239 | )
240 | sleep(5)
241 | while requests.get(check_indexer_status_url, headers=self.headers).json().get('lastResult')['status'] == 'inProgress':
242 | LOGGER.info('Indexer in progress. Sleeping for 5 seconds. Zzzzzz...')
243 |
244 | sleep(5)
245 | if requests.get(check_indexer_status_url, headers=self.headers).json().get('lastResult')['status'] == 'success':
246 | LOGGER.info('Indexer created correctly, you can start your search queries')
247 | LOGGER.info("""\n_____.___. __ ._.
248 | \__ | | ____ __ __ _______ ____ ____ | | _| |
249 | / | |/ _ \| | \ \_ __ \/ _ \_/ ___\| |/ / |
250 | \____ ( <_> ) | / | | \( <_> ) \___| < \|
251 | / ______|\____/|____/ |__| \____/ \___ >__|_ \__
252 | \/ \/ \/\/""")
253 | else:
254 | LOGGER.warning('Indexer did not finish with status "success".')
255 |
256 | def count_documents(self):
257 | count_docs_url = (
258 | self.url
259 | + f"indexes/{self.index_name}/docs/$count?"
260 | + self.api_version
261 | )
262 | response = requests.get(count_docs_url, headers=self.headers)
263 | LOGGER.warning('Counted %s documents in index %s.', response.text, self.index_name)
264 |
265 |
266 | if __name__ == "__main__":
267 | search_service = SearchService()
268 | # search_service.delete_search_service()
269 | search_service.setup_search_service()
270 |
271 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # How to Build Your Own Covid-19 Search Engine
2 |
3 | The amount of information around us is constantly increasing, with over 3 million blogs published on the web every day (Internetlivestats, 2020). Indexing this information made Google great — their search engine processes a whopping 3.5 billion + searches a day (Internetlivestats, 2020).
4 |
5 | Meanwhile, Covid-19 has the world in its grip. As scientists measure and observe progress of the disease, we all learn a bit more as they publish their findings in papers, articles and blogs everyday. I found myself curious to learn what all is out there.
6 | In my explorations I stumbled across [this](https://aylien.com/coronavirus-news-dataset/) dataset with 550K articles about Covid-19. It sealed the deal: I was going to build myself a search engine for articles related to Covid-19. I created my own tool for understanding the pandemic better, and in this blog I'll share how I did it. For those of you who can't wait, click [here](https://covid-19-search.Azurewebsites.net/) to check it out.
7 |
8 | # Anatomy of an Covid-19 Search Engine
9 | In the end my Covid-19 search engine looked like this:
10 |
11 | 
12 |
13 | To build this solution I used of the following technology:
14 |
15 | * Search engine: [Azure Cognitive Search](https://azure.microsoft.com/en-us/services/cognitive-services/)
16 | * Data storage: [Azure Blob Storage](https://azure.microsoft.com/en-us/services/storage/blobs/)
17 | * User interface: [Docker](https://www.docker.com/) and [Streamlit](https://www.streamlit.io/)
18 | * App Deployment: [Azure Container Registry](https://azure.microsoft.com/en-us/services/container-registry/) and [Azure App Services](https://azure.microsoft.com/en-us/services/app-service/)
19 |
20 | First, I'll outline my overall process. I started out by storing the articles in the blob storage, using the cognitive search API to index all of them. Then I created a simple user interface with a search bar for entering queries. The search bar sends the search query to the cognitive search API, which returns the most relevant results. To deploy the whole application, I embedded it in a Docker image which I pushed to the Azure Container Registry. Azure App Services then deploys this image as a website, which can be found [here](https://covid-19-search.Azurewebsites.net/). A schematic visualization of the whole solution is shown below.
21 |
22 | 
23 |
24 | Let's go through each step in more detail, so you can recreate the solution yourself.
25 |
26 | # Step 1: Get the code
27 | Before we start, clone the [code repository](https://github.com/godatadriven/build-your-own-search-engine) to a folder on your computer. With minor changes you can tweak it to create your own search engine with different files. Use your terminal to navigate to the build-your-own-search-engine folder, here you can find all the code.
28 |
29 | ```
30 | cd build-your-own-search-engine
31 | ```
32 |
33 | # Step 2: Get the data
34 | Let’s look at the dataset first, to get an idea what we are dealing with. The dataset contains over 1.5 million Covid-19-related articles, gathered from Nov 2019 to July 2020 from over 400 global sources. You can download the full set [here](https://blog.aylien.com/free-coronavirus-news-dataset/) (please note it is >7 GB).
35 |
36 | In the interface I want to be able to show the article date, source, title, and content. Therefore I'm interested in the following variables in the dataset:
37 | * Identifier: to uniquely identify the documents
38 | * Timestamp: to sort the articles on recency
39 | * Source: to check where the data comes from
40 | * Article title: to index the article on & show as a search result
41 | * Article body: to index the article on & show as a search result
42 |
43 | For simplicity, I recommend using the prepared subset of articles which is stored in the repository (data/aylien_covid_news_data_sample.jsonl). However, if you want to use the full, follow the next steps.
44 |
45 | After downloading the dataset, unpack it and put it in the data folder in the cloned directory. Open your terminal, go to the data folder and run the following code.
46 |
47 | ```
48 | python preprocessing_sample.py
49 | ```
50 |
51 | This will create a file called "aylien_covid_news_data_sample.jsonl". In this file there are 50 sample records. If you want all the data, run the preprocessing_all.py script instead. This will create a set of files containing 100K documents each. Note that downloading, preprocessing, uploading, and indexing of all the records will take a significant amount of time, which is why I recommend to using the prepared subset instead.
52 |
53 | # Step 3: Store the data in the cloud
54 | We need to store the data in the Azure Blob Storage. If you don't have an Azure account, [subscribe for free](https://azure.microsoft.com/en-us/free/). First [create a storage account](https://docs.microsoft.com/en-us/Azure/storage/common/storage-account-create?tabs=Azure-portal) and then [create a container](https://docs.microsoft.com/en-us/Azure/storage/blobs/storage-quickstart-blobs-portal). Make sure the name of the container is "covid-news" or alter the used container name in the setup_acs.py script later.
55 | Finally, upload the created "aylien_covid_news_data_sample.jsonl" file into the container you have created.
56 |
57 | Look up the storage account connection string. You can find your connection string on the Azure portal here:
58 |
59 | 
60 |
61 | We need to register this string as an environment variable called `SA_CONN_STR` on your machine. The connection string that you copy from the UI has an obsolete part at the end which would break our solution. Therefore, make sure to delete the part of the string after the `==;`. Then, add the following line to your `~/.bash_profile`, replacing the part between the quotes with the relevant part of your connection string:
62 |
63 | ```
64 | export SA_CONN_STR='DefaultEndpointsProtocol=https;AccountName=XXX;AccountKey=XXX==;'
65 | ```
66 |
67 | Open a new terminal and check if your connection string is correctly stored as an environment variable by running:
68 |
69 | ```
70 | echo $SA_CONN_STR
71 | ```
72 |
73 | If you did it right, this should print the connection string. If you get stuck here, google on how to add environment variables to your operating system.
74 |
75 | # Step 4: Build the search engine
76 | To index articles you need to do four things:
77 | * Create a data source [read the docs](https://docs.microsoft.com/en-us/rest/api/searchservice/create-data-source)
78 | * Create an index [read the docs](https://docs.microsoft.com/en-us/rest/api/searchservice/create-index)
79 | * Create an indexer [read the docs](https://docs.microsoft.com/en-us/rest/api/searchservice/create-indexer)
80 | * Run the indexer [read the docs](https://docs.microsoft.com/en-us/rest/api/searchservice/run-indexer)
81 |
82 | I've created a script for you that takes care of this. But before you can run it, you have to create the search service.
83 |
84 | In the Azure portal, navigate to the Azure search service. Create a new search service. Write down the URL from the overview page. This is the ACS_ENDPOINT. Then navigate to the keys tab in the pane on the left. The primary admin key is your ACS_API_KEY. Also add your client IP in the networking tab. Do not forget to hit save!
85 |
86 | Now, also register the ACS_ENDPOINT and ACS_API_KEY on your machine as environment variables.
87 |
88 | You can find them from the Azure portal here:
89 | 
90 |
91 | When exporting your environmental variables please note the trailing slash in the ACS_ENDPOINT.
92 |
93 | ```
94 | export ACS_API_KEY=XXX
95 | export ACS_ENDPOINT='https://XXX.search.windows.net/'
96 | ```
97 |
98 | Please note the '/' at the end of the ACS_ENDPOINT.
99 |
100 | When you have added the environment variables open a new terminal and run the setup script:
101 |
102 | First install the dependencies. You probably want to do this in a virtual environment E.g.
103 | ```
104 | virtualenv
105 | source /bin/activate
106 | pip install -r my-search-engine-demo/requirements.txt
107 | ```
108 |
109 | Then run the following command:
110 |
111 | ```
112 | python my-search-engine-demo/my-search-engine-demo/setup_acs.py
113 | ```
114 |
115 | This will trigger the indexation process. Wait until you see "Indexer created correctly..." and some fancy ASCII art which tells you that the indexation is done.
116 |
117 | If you are running into timeout errors, please check if your IP is whitelisted from the networking settings in the Azure portal for in Azure Cognitive Search. If not, please add your IP.
118 |
119 | # Step 5: Develop the user interface
120 | For the user interface we will create a Streamlit app. According to their website:
121 |
122 | > "Streamlit’s open-source app framework is the easiest way for data scientists and machine learning engineers to create beautiful, performant apps in only a few hours! All in pure Python. All for free.""
123 |
124 | Let's put that to the test shall we? Check out the "my-search-engine-demo/my-search-engine-demo/user_interface.py" file in the repository to check out how the user interface is made.
125 |
126 | The paginator and download results functions are nice to haves. So, you can leave them out if you want to. The following are essential:
127 |
128 | 1) Create a title
129 | 2) Render an image
130 | 3) Create the search bar
131 | 4) Load the API secrets
132 | 5) Send the search query to the API
133 | 6) Render the results
134 |
135 | You can try it out locally by running:
136 | ```
137 | streamlit run my-search-engine-demo/my-search-engine-demo/user_interface.py
138 | ```
139 |
140 | # Step 6: Deploy the user interface
141 |
142 | ### Docker image
143 | For this part you need to [install Docker](https://docs.docker.com/get-docker/) on your local machine.
144 |
145 | According to their website:
146 | > "Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly."
147 |
148 | We will create a Docker image, with the required dependencies and the code for the user interface.
149 |
150 | We build the image from the my-search-engine-demo/my-search-engine-demo directory by running:
151 |
152 | ```
153 | docker build --build-arg BUILDTIME_ACS_API_KEY=${ACS_API_KEY} --build-arg BUILDTIME_ACS_ENDPOINT=${ACS_ENDPOINT} --build-arg BUILDTIME_SA_CONN_STR=${SA_CONN_STR} -t covid-19-search:latest .
154 | ```
155 |
156 | This way we create a docker image tagged with "my-search-engin-demo:latest". The environmental variables will be copied into the image.
157 |
158 | To test if your image was build correctly run it locally:
159 | ```
160 | docker run -p 8080:8080 covid-19-search:latest
161 | ```
162 | You should now be able to access the user interface from your browser with localhost:8080.
163 |
164 | The exposed port is specified in the Dockerfile. If you want to expose the service on a different port, alter it there.
165 |
166 | ### Azure container registry
167 | Now we must create an [Azure container registry](https://docs.microsoft.com/en-us/Azure/container-registry/container-registry-get-started-portal). Write down the server name, which is something like "XXX.Azurecr.io
168 |
169 | From the access keys menu, enable admin and write down the username and password so you can log into the server.
170 |
171 | Now it is time to push the image to the registry. First, we tag our image with the login server/image name:tag.
172 |
173 | ```
174 | docker tag covid-19-search:latest {login server}/{image name}:{tag}
175 | ```
176 | It will look something like "XXX.Azurecr.io/covid-19-search:latest"
177 |
178 | Second, we log into the server
179 | ```
180 | docker login <>
181 | ```
182 |
183 | Third, we push our image to the server:
184 | ```
185 | docker push server/image name:tag
186 | ```
187 |
188 | You should now see the image in your Container Registry repository.
189 |
190 | ### Azure app services
191 | You are almost done! The last step is to publish the image as a webpage accessible from the internet.
192 |
193 | 1) In the Azure portal, go to Azure app services and add a web app.
194 |
195 | 2) Enter a name for your new web app and select or create a new resource group. For the operating system, choose Linux.
196 |
197 | 3) Choose "configure container" and select Azure Container Registry. Use the drop-down lists to select the registry you created, and the Docker image and tag that you generated earlier.
198 |
199 | Now create your service. Once that's done head to the service URL to access your website!
200 |
201 | The above steps should look something like:
202 | 
203 |
204 | If the website is accessible, but it seems to load forever (the search bar does not show), you might have stumbled upon a bug. I fixed it by upgrading to a more expensive plan, and scaled back to the cheaper plan after. This might raise some eyebrows, including my own, but it did the trick. If you find the cause, please let me know,
205 |
206 | # Conclusion
207 | Building you own search engine by indexing articles with the cognitive search API is easier than you might think! In this blog we've covered how to use Streamlit to interact with the search engine and learned how to dockerize and deploy the solution as a web app.
208 |
209 | I hope that by reading this blog you've gained one of these three insights.
210 | 1) Found relevant information regarding Covid-19.
211 | 2) Identified an opportunity to alter this solution to a different dataset.
212 | 3) Identified an opportunity to alter this solution to replace the search engine with a different analytics engine.
213 |
214 | Don't hesitate to share what you've learned in the comments below, or to contribute to the code base!
--------------------------------------------------------------------------------
/blog.md:
--------------------------------------------------------------------------------
1 | # How to Build Your Own Covid-19 Search Engine
2 |
3 | The amount of information around us is constantly increasing, with over 3 million blogs published on the web every day (Internetlivestats, 2020). Indexing this information made Google great — their search engine processes a whopping 3.5 billion + searches a day (Internetlivestats, 2020).
4 |
5 | Meanwhile, Covid-19 has the world in its grip. As scientists measure and observe progress of the disease, we all learn a bit more as they publish their findings in papers, articles and blogs everyday. I found myself curious to learn what all is out there.
6 | In my explorations I stumbled across [this](https://aylien.com/coronavirus-news-dataset/) dataset with 550K articles about Covid-19. It sealed the deal: I was going to build myself a search engine for articles related to Covid-19. I created my own tool for understanding the pandemic better, and in this blog I'll share how I did it. For those of you who can't wait, click [here](https://covid-19-search.Azurewebsites.net/) to check it out.
7 |
8 | # Anatomy of an Covid-19 Search Engine
9 | In the end my Covid-19 search engine looked like this:
10 |
11 | 
12 |
13 | To build this solution I used of the following technology:
14 |
15 | * Search engine: [Azure Cognitive Search](https://Azure.microsoft.com/en-us/services/cognitive-services/)
16 | * Data storage: [Azure Blob Storage](https://Azure.microsoft.com/en-us/services/storage/blobs/)
17 | * User interface: [Docker](https://www.docker.com/) and [Streamlit](https://www.streamlit.io/)
18 | * App Deployment: [Azure Container Registry](https://Azure.microsoft.com/en-us/services/container-registry/) and [Azure App Services](https://Azure.microsoft.com/en-us/services/app-service/)
19 |
20 | First, I'll outline my overall process. I started out by storing the articles in the blob storage, using the cognitive search API to index all of them. Then I created a simple user interface with a search bar for entering queries. The search bar sends the search query to the cognitive search API, which returns the most relevant results. To deploy the whole application, I embedded it in a Docker image which I pushed to the Azure Container Registry. Azure App Services then deploys this image as a website, which can be found [here](https://covid-19-search.Azurewebsites.net/). A schematic visualization of the whole solution is shown below.
21 |
22 | 
23 |
24 | Let's go through each step in more detail, so you can recreate the solution yourself.
25 |
26 | # Step 1: Get the code
27 | Before we start, clone the [code repository](https://github.com/godatadriven/build-your-own-search-engine) to a folder on your computer. With minor changes you can tweak it to create your own search engine with different files. Use your terminal to navigate to the build-your-own-search-engine folder, here you can find all the code.
28 |
29 | ```
30 | cd build-your-own-search-engine
31 | ```
32 |
33 | # Step 2: Get the data
34 | Let’s look at the dataset first, to get an idea what we are dealing with. The dataset contains over 1.5 million Covid-19-related articles, gathered from Nov 2019 to July 2020 from over 400 global sources. You can download the full set [here](https://blog.aylien.com/free-coronavirus-news-dataset/) (please note it is >7 GB).
35 |
36 | In the interface I want to be able to show the article date, source, title, and content. Therefore I'm interested in the following variables in the dataset:
37 | * Identifier: to uniquely identify the documents
38 | * Timestamp: to sort the articles on recency
39 | * Source: to check where the data comes from
40 | * Article title: to index the article on & show as a search result
41 | * Article body: to index the article on & show as a search result
42 |
43 | For simplicity, I recommend using the prepared subset of articles which is stored in the repository (data/aylien_covid_news_data_sample.jsonl). However, if you want to use the full, follow the next steps.
44 |
45 | After downloading the dataset, unpack it and put it in the data folder in the cloned directory. Open your terminal, go to the data folder and run the following code.
46 |
47 | ```
48 | python preprocessing_sample.py
49 | ```
50 |
51 | This will create a file called "aylien_covid_news_data_sample.jsonl". In this file there are 50 sample records. If you want all the data, run the preprocessing_all.py script instead. This will create a set of files containing 100K documents each. Note that downloading, preprocessing, uploading, and indexing of all the records will take a significant amount of time, which is why I recommend to using the prepared subset instead.
52 |
53 | # Step 3: Store the data in the cloud
54 | We need to store the data in the Azure Blob Storage. If you don't have an Azure account, [subscribe for free](https://Azure.microsoft.com/en-us/free/). First [create a storage account](https://docs.microsoft.com/en-us/Azure/storage/common/storage-account-create?tabs=Azure-portal) and then [create a container](https://docs.microsoft.com/en-us/Azure/storage/blobs/storage-quickstart-blobs-portal). Make sure the name of the container is "covid-news" or alter the used container name in the setup_acs.py script later.
55 | Finally, upload the created "aylien_covid_news_data_sample.jsonl" file into the container you have created.
56 |
57 | Look up the storage account connection string. You can find your connection string on the Azure portal here:
58 |
59 | 
60 |
61 | We need to register this string as an environment variable called `SA_CONN_STR` on your machine. The connection string that you copy from the UI has an obsolete part at the end which would break our solution. Therefore, make sure to delete the part of the string after the `==;`. Then, add the following line to your `~/.bash_profile`, replacing the part between the quotes with the relevant part of your connection string:
62 |
63 | ```
64 | export SA_CONN_STR='DefaultEndpointsProtocol=https;AccountName=XXX;AccountKey=XXX==;'
65 | ```
66 |
67 | Open a new terminal and check if your connection string is correctly stored as an environment variable by running:
68 |
69 | ```
70 | echo $SA_CONN_STR
71 | ```
72 |
73 | If you did it right, this should print the connection string. If you get stuck here, google on how to add environment variables to your operating system.
74 |
75 | # Step 4: Build the search engine
76 | To index articles you need to do four things:
77 | * Create a data source [read the docs](https://docs.microsoft.com/en-us/rest/api/searchservice/create-data-source)
78 | * Create an index [read the docs](https://docs.microsoft.com/en-us/rest/api/searchservice/create-index)
79 | * Create an indexer [read the docs](https://docs.microsoft.com/en-us/rest/api/searchservice/create-indexer)
80 | * Run the indexer [read the docs](https://docs.microsoft.com/en-us/rest/api/searchservice/run-indexer)
81 |
82 | I've created a script for you that takes care of this. But before you can run it, you have to create the search service.
83 |
84 | In the Azure portal, navigate to the Azure search service. Create a new search service. Write down the URL from the overview page. This is the ACS_ENDPOINT. Then navigate to the keys tab in the pane on the left. The primary admin key is your ACS_API_KEY. Also add your client IP in the networking tab. Do not forget to hit save!
85 |
86 | Now, also register the ACS_ENDPOINT and ACS_API_KEY on your machine as environment variables.
87 |
88 | You can find them from the Azure portal here:
89 | 
90 |
91 | When exporting your environmental variables please note the trailing slash in the ACS_ENDPOINT.
92 |
93 | ```
94 | export ACS_API_KEY=XXX
95 | export ACS_ENDPOINT='https://XXX.search.windows.net/'
96 | ```
97 |
98 | Please note the '/' at the end of the ACS_ENDPOINT.
99 |
100 | When you have added the environment variables open a new terminal and run the setup script:
101 |
102 | First install the dependencies. You probably want to do this in a virtual environment E.g.
103 | ```
104 | virtualenv
105 | source /bin/activate
106 | pip install -r my-search-engine-demo/requirements.txt
107 | ```
108 |
109 | Then run the following command:
110 |
111 | ```
112 | python my-search-engine-demo/my-search-engine-demo/setup_acs.py
113 | ```
114 |
115 | This will trigger the indexation process. Wait until you see "Indexer created correctly..." and some fancy ASCII art which tells you that the indexation is done.
116 |
117 | If you are running into timeout errors, please check if your IP is whitelisted from the networking settings in the Azure portal for in Azure Cognitive Search. If not, please add your IP.
118 |
119 | # Step 5: Develop the user interface
120 | For the user interface we will create a Streamlit app. According to their website:
121 |
122 | > "Streamlit’s open-source app framework is the easiest way for data scientists and machine learning engineers to create beautiful, performant apps in only a few hours! All in pure Python. All for free.""
123 |
124 | Let's put that to the test shall we? Check out the "my-search-engine-demo/my-search-engine-demo/user_interface.py" file in the repository to check out how the user interface is made.
125 |
126 | The paginator and download results functions are nice to haves. So, you can leave them out if you want to. The following are essential:
127 |
128 | 1) Create a title
129 | 2) Render an image
130 | 3) Create the search bar
131 | 4) Load the API secrets
132 | 5) Send the search query to the API
133 | 6) Render the results
134 |
135 | You can try it out locally by running:
136 | ```
137 | streamlit run my-search-engine-demo/my-search-engine-demo/user_interface.py
138 | ```
139 |
140 | # Step 6: Deploy the user interface
141 |
142 | ### Docker image
143 | For this part you need to [install Docker](https://docs.docker.com/get-docker/) on your local machine.
144 |
145 | According to their website:
146 | > "Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly."
147 |
148 | We will create a Docker image, with the required dependencies and the code for the user interface.
149 |
150 | We build the image from the my-search-engine-demo/my-search-engine-demo directory by running:
151 |
152 | ```
153 | docker build --build-arg BUILDTIME_ACS_API_KEY=${ACS_API_KEY} --build-arg BUILDTIME_ACS_ENDPOINT=${ACS_ENDPOINT} --build-arg BUILDTIME_SA_CONN_STR=${SA_CONN_STR} -t covid-19-search:latest .
154 | ```
155 |
156 | This way we create a docker image tagged with "my-search-engin-demo:latest". The environmental variables will be copied into the image.
157 |
158 | To test if your image was build correctly run it locally:
159 | ```
160 | docker run -p 8080:8080 covid-19-search:latest
161 | ```
162 | You should now be able to access the user interface from your browser with localhost:8080.
163 |
164 | The exposed port is specified in the Dockerfile. If you want to expose the service on a different port, alter it there.
165 |
166 | ### Azure container registry
167 | Now we must create an [Azure container registry](https://docs.microsoft.com/en-us/Azure/container-registry/container-registry-get-started-portal). Write down the server name, which is something like "XXX.Azurecr.io
168 |
169 | From the access keys menu, enable admin and write down the username and password so you can log into the server.
170 |
171 | Now it is time to push the image to the registry. First, we tag our image with the login server/image name:tag.
172 |
173 | ```
174 | docker tag covid-19-search:latest {login server}/{image name}:{tag}
175 | ```
176 | It will look something like "XXX.azurecr.io/covid-19-search:latest"
177 |
178 | Second, we log into the server
179 | ```
180 | docker login <>
181 | ```
182 |
183 | Third, we push our image to the server:
184 | ```
185 | docker push server/image name:tag
186 | ```
187 |
188 | You should now see the image in your Container Registry repository.
189 |
190 | ### Azure app services
191 | You are almost done! The last step is to publish the image as a webpage accessible from the internet.
192 |
193 | 1) In the Azure portal, go to Azure app services and add a web app.
194 |
195 | 2) Enter a name for your new web app and select or create a new resource group. For the operating system, choose Linux.
196 |
197 | 3) Choose "configure container" and select Azure Container Registry. Use the drop-down lists to select the registry you created, and the Docker image and tag that you generated earlier.
198 |
199 | Now create your service. Once that's done head to the service URL to access your website!
200 |
201 | The above steps should look something like:
202 | 
203 |
204 | If the website is accessible, but it seems to load forever (the search bar does not show), you might have stumbled upon a bug. I fixed it by upgrading to a more expensive plan, and scaled back to the cheaper plan after. This might raise some eyebrows, including my own, but it did the trick. If you find the cause, please let me know,
205 |
206 | # Conclusion
207 | Building you own search engine by indexing articles with the cognitive search API is easier than you might think! In this blog we've covered how to use Streamlit to interact with the search engine and learned how to dockerize and deploy the solution as a web app.
208 |
209 | I hope that by reading this blog you've gained one of these three insights.
210 | 1) Found relevant information regarding Covid-19.
211 | 2) Identified an opportunity to alter this solution to a different dataset.
212 | 3) Identified an opportunity to alter this solution to replace the search engine with a different analytics engine.
213 |
214 | Don't hesitate to share what you've learned in the comments below, or to contribute to the code base!
--------------------------------------------------------------------------------
/data/aylien_covid_news_data_sample.jsonl:
--------------------------------------------------------------------------------
1 | {"id": "74199025", "timestamp": "2020-04-05 23:59:42+00:00", "source": "complex.com", "title": "British Prime Minister Boris Johnson Hospitalized 10 Days After COVID-19 Diagnosis", "body": "On Sunday, British Prime Minister Boris Johnson was hospitalized \"for tests\" because of \"persistent\" COVID-19 symptoms\u00a010 days\u00a0after he tested positive, CNN reports.\u00a0\nJohnson reportedly went to the unspecified London hospital after his doctor advised him to do so. A press release from his office called the\u00a0move\u00a0\"precautionary.\"\u00a0\nOn March 26, Johnson revealed he had tested positive and that he had been dealing with symptoms since that date. Britain had gone into lockdown two days earlier.\nSince the 26th, Johnson has been quarantined at his Downing Street residence. He is the first known world leader to have contracted the virus.\u00a0\nRoughly a month ago, right around the time the U.K. started dealing with an outbreak, Johnson garnered media coverage for saying he'd shook hands with coronavirus patients during a hospital visit. \u00a0\n\"I shook hands with everybody, you will be pleased to know, and I continue to shake hands,\" Johnson said during a press conference that took place on March 3. His positive test was registered 23 days later.\u00a0\nOn Saturday, Johnson's fianc\u00e9e, Carrie Symonds, tweeted out that she'd spent a week in bed with coronavirus symptoms. She had not officially been tested for the disease, but said she felt \"stronger\" and \"on the mend\" following the week of rest:"}
2 | {"id": "74199021", "timestamp": "2020-04-05 23:59:36+00:00", "source": "sbs.com.au", "title": "NSW coronavirus death toll hits 18 as cases rise to 2637", "body": "NSW has now recorded 18 COVID-19 deaths as the state's total number of cases rises to 2637.\n\nNSW Health said on Monday the state had recorded 57 new cases - a drop on the previous day which was partly explained by fewer tests being done over the weekend.\n\nThe death toll rose to 18 after the deaths of an 86-year-old man and an 85-year-old man on Sunday.\n\nIt comes after NSW Police Commissioner Mick Fuller on Sunday announced an investigation into the circumstances surrounding the docking and disembarkation of passengers from the ill-fated Ruby Princess cruise ship.\n\nThe investigation - led by the NSW police homicide squad - aims to identify how passengers were allowed to disembark from the ship in Sydney, which is linked to 622 COVID-19 cases and at least 11 deaths across the country.\n\n\"The only way I can get to the bottom of whether our national biosecurity laws and our state laws were broken is through a criminal investigation,\" Mr Fuller said.\n\nMr Fuller told reporters transparency regarding patient health on board the cruise ship was a key question for the investigation.\n\nThe ship will dock in Port Kembla, near Wollongong on Monday.\n\nIt's expected to spend up to 10 days docked for medical assessments, treatment or emergency extractions of the crew, NSW Police say.\n\nThe investigation will cover the actions of the port authority, ambulance, police, the NSW Health department and Carnival Australia.\n\nThe NSW government on Sunday urged young people to take the COVID-19 pandemic seriously, revealing more than a quarter of the state's current coronavirus cases are in people aged under 29."}
3 | {"id": "74199016", "timestamp": "2020-04-05 23:59:32+00:00", "source": "hindustantimes.com", "title": "Industry in Chandigarh will need major impetus by government post lockdown, say businessmen", "body": "ChandigarhWith shops and manufacturing units closed due to the curfew imposed to stop the spread of coronavirus disease (Covid-19), traders fear economic recovery will be difficult.It is for the first time that all business activity, trading and manufacturing, has been shut down in the city.\u201cThere is great uncertainty among businessmen as to what the future holds. People have even stopped planning how to manage the after-effects of the shutdown. We also don\u2019t know for how long businesses will remain disturbed because of the Covid-19 pandemic,\u201d said Neeraj Bajaj of the Chandigarh Business Council.In the city\u2019s industrial area, more than 30,000 are employed in manufacturing and service units.\u201cBeyond the short-term struggle, the industry will need major impetus from the government in the short and long term. There should be moratorium period or extension of six months for payment of liabilities including utility bills, taxes and duties to the government,\u201d said Pankaj Khanna, president, industries association, Chandigarh.Industry is also seeking for loans accounts, which become non-performing assets (NPA) during lockdown, to not be considered wilful defaulters.\u201cStimulus package for MSMEs (micro, small and medium enterprises) should be considered for the financial year 2020-2021. Financial support for unorganized sectors will also be required,\u201d Khanna said.Chandigarh Beopar Mandal wrote to Prime Minister Narendra Modi and Punjab governor and UT administrator VP Singh Badnore on Friday, seeking help, as they struggle to deal with the acute economic crisis caused by the pandemic.\u201cWe request the government to allow us to pay our employees \u20b94,000 to \u20b95,000 per month as ration cost till the lockdown continues,\u201d the traders\u2019 body stated in its communiqu\u00e9.\u201cMost of our traders have taken overdraft/CC limits or term loans in order to run their businesses. When there isno business activity, paying these interests is also a big challenge,\u201d said Charanjiv Singh, chairman of the Chandigarh Beopar Mandal.FACTORY WORKERS ISSUED CURFEW PASSES TO FACILITATE WAGE DISBURSEMENT TO LABOURTo resolve the issue of payment of wages to more than 25,000 factory workers in the city, the UT administration has started issuing curfew passes to factory officials to allow them to disburse wages.\u201cSo far, we have issued 120 curfew passes for factory officials. In case there are any problems regarding this, we are taking them up on priority basis,\u201d said Harjit Singh Sandhu, director, industries.Due to restrictions on movement imposed because of the curfew, both factory owners and workers have been facing problems with the disbursement of wages. Various industry associations had taken up the issue with the administration.The UT labour department, too, has contacted industrialists and factory owners regarding payment of wages to the labourers. \u201cAround 10,000 labourers have already received their salaries. Efforts are being made to ensure that the remaining labour is paid wages at the earliest,\u201d said a senior UT official, wishing not to be named.Meanwhile, household workers like maids, gardeners, etc are finding it difficult to collect their monthly salaries because of curfew restrictions. \u201cThe administration should devise a plan that allows household workers to collect their salaries from houses of their employers. They are not able to visit their workplaces and they don\u2019t have curfew passes either. This is causing them a great deal of hardship,\u201d said RK Garg, a city based social activist."}
4 | {"id": "74199017", "timestamp": "2020-04-05 23:59:32+00:00", "source": "hindustantimes.com", "title": "Coronavirus in Chandigarh: Follow advisories, one cannot be too careful, says 23-year-old discharged patient", "body": "Chandigarh The 23-year-old man, discharged from the isolation ward of Government Medical College and Hospital (GMCH), Sector 32, after two weeks of treatment, is elated to be home.\u201cI am feeling perfectly fine,\u201d he said, as he arrived at his house in Sector 19 around 6pm. Son of a senior UT official, the youth had tested positive for Covid-19 on March 22 after he came in contact with the brother of Chandigarh\u2019s first coronavirus patient, a 23-year-old woman from Sector 21.\u201cOne cannot be too careful. Though I did not have severe symptoms, all of us, even the young, are not immune to it. Advisories for social distancing and hand washing should be followed religiously,\u201d he said.\u201cDuring the course of my stay at the hospital, I learnt that there is nothing to be afraid of, but we need to be careful. My morale was high and I was confident of quick recovery,\u201d he said, while adding that those affected by the disease should not lose hope as recovery was possible.The youth reported to the hospital after his fever rose, alerting him that he could be infected. \u201cIn isolation, even though I was not allowed to move out, I spent my days reading and talking to my friends. The doctors, nurses and the supporting staff were immensely helpful,\u201d he said.The 25-year-old brother of the city\u2019s first positive patient was also discharged from GMCH on Saturday. He had tested positive on March 20 after coming in contact with his sister, who flew back from the United Kingdom on March 15 and tested positive on March 18. Their mother, who had also contracted the infection, was discharged on Saturday.On his recovery, the youth said following the instructions of the doctors was vital to get cured at the earliest. \u201cDifferent bodies react to the virus differently. I did not have many symptoms, while other positive patients had cough and fever. So, precautions are a must to contain the spread of the virus,\u201d he said."}
5 | {"id": "74199018", "timestamp": "2020-04-05 23:59:32+00:00", "source": "hindustantimes.com", "title": "Crackers sound jarring note as Chandigarh tricity lights up on PM Modi\u2019s solemn plea", "body": "CHANDIGARH The stillness which had become so much a part of the tricity over the last two weeks was shattered by exploding firecrackers on Monday night as people in their enthusiasm to follow Prime Minister Narendra Modi\u2019s solemn call for a candlelight vigil to unite to fight the coronavirus epidemic exceeded their brief to keep things low-key.Even as residents, following PM Modi\u2019s Friday call to show solidarity and battle the pandemic, switched on their mobile phone lights and lit candles and diyas on Sunday at 9 pm, the sound of crackers sounded a jarring note. \u201cThis is the height of insanity and insensitivity to celebrate death and disease with so much pomp, show and bursting of crackers. This is a real wake of call for people who love India and the Indian ethos of compassion and humanism above all,\u201d said, Pramod Sharma, who heads Yuvsatta, an NGO. \u201cIt was very peaceful initially. People had lit candles in their balconies, many were playing bhajans on their music systems, when suddenly crackers started popping. This was a solemn occasion, not something to celebrate,\u201d said Nayna, a resident of Sector 43.Dr Ravindra Khaiwal , additional professor, environment health, The School of Public Health, Post Graduate Institute of Medical Education and Research, said, \u201cThe purpose (of lighting diyas) was for showing solidarity with the citizens who are at the forefront of dealing with the coronavirus outbreak, but a few people resorted to bursting of crackers. That\u2019s an undesired step,\u201d he said. \u201cWe are in the midst of a pandemic and people are celebrating as if it\u2019s Diwali,\u201d quipped Mohali mayor Kulwant Singh. Former railways minister and Congressman Pawan Kumar Bansal felt this showed \u201cthe over enthusiasm and hype built up over the PM\u2019s announcement. What was supposed to be voluntary action has now become a must-do thing.\u201dCrackers were burst in most parts of the tricity. In some localities, enthusiastic Bharatiya Janata Party workers resorted to sloganeering in favour of their party and PM Modi. \u201cIt appears that people, by bursting crackers, did not understand the sensitivity involved in the issue. The call was not for this,\u201d said Dr Pramod Kumar, director, Institute for Development and Communication (IDC), Chandigarh."}
6 | {"id": "74199019", "timestamp": "2020-04-05 23:59:32+00:00", "source": "hindustantimes.com", "title": "48% Covid-19 positive patients in Chandigarh tricity aged between 21-40", "body": "Chandigarh Health authorities have confirmed that majority of the 35 Covid-19 positive patients in the tricity, at 48.6%, are aged between 21 and 40.The age bracket hit the next hardest is between 41 and 60 years at 25.7%. Senior citizens, who are above 60 years, account for 20% of the positive cases, all from Mohali.In Chandigarh, it\u2019s mostly the younger population that has been infected by the virus, as 72% of the 18 positive patients are in the age group of 21-40 years.Experts correlate this with the mobility of the young. \u201cIf we see the trend in Chandigarh, the five patients, who had travel history to foreign countries where Covid-19 cases were reported, are all below the age of 35,\u201d said PVM Lakshmi, an epidemiologist at the Community Medicine and School of Public Health, Post Graduate Institute of Medical Education and Research (PGIMER). \u201cThe young individuals mostly mix up with their peers more than their families, and this is one reason that more cases were reported among the younger population in Chandigarh,\u201d she added.On the contrary, the maximum cases in Mohali, at 46.6%, are in the 61 to 80 age group, while no one among the Chandigarh or Panchkula cases falls in this age bracket.Dr G Dewan, director health services, Chandigarh, said the disease\u2019s trend here was the same as that found at the national level. Around 83% people infected in the country are below the age of 60, almost a similar trend seen in the tricity. \u201cHowever, we need to be more cautious with regards to the senior citizens, especially those also suffering from comorbidities like diabetes and hypertension, as these have been associated with severe symptoms and complications,\u201d he added."}
7 | {"id": "74199015", "timestamp": "2020-04-05 23:59:28+00:00", "source": "nzherald.co.nz", "title": "Covid 19 coronavirus: Huge price hikes for essential goods during lockdown", "body": "A freezer that cost $949 on March 1 shot up to $1499 by March 31 as lockdown conditions limited trade across the country.\n This is just one of a number of products to have seen significant price hikes during the lockdown, according to price comparison site PriceSpy.\n The indexed price across all 108,000 products listed on PriceSpy increased by 5 per cent in March 2020.\n READ MORE:\n\u2022 Covid 19 coronavirus lockdown: The Warehouse experiences huge demand for essential products\n\u2022 Covid 19 coronavirus: Briscoes, Mitre 10 join companies selling essential items\n\u2022 Covid 19 coronavirus: Essential goods expansion brings reprieve for struggling Kiwis\n\u2022 Coronavirus: Anger over Kmart selling fake tan as essential item but not stocking winter pyjamas\n The biggest growth was seen in chest freezers which surged by 28 per cent between March 1 and 31. What's more is that 90 per cent of the chest freezers listed were found to cost more by the end of the month.\n Webcams, heating and cooling products, washing machines, desktop PCs and ebook readers all shot up in price over this period.\n \"Shockingly, the findings revealed 90 per cent of the top 10 most-click-on chest freezers cost more to buy on 31st March compared to 1st March, before the national Covid-19 alert system was implemented,\" said Liisa Matinvesi-Bassett, New Zealand country manager for PriceSpy.\n \"Similarly, over three quarters [80 per cent] of the top 10 most-clicked-on webcams were more expensive to purchase at the end of the month compared to the start. A similar trend was also apparent for whiteware goods, with 70 per cent of the top 10 most-clicked-on items costing more on 31st March compared to 1st March.\"\n The price hikes have been applied across categories. Photo / File \n Matinvesi-Bassett said that while fluctuations in pricing are to be expected, the price hikes in this instance have been \"extraordinary\".\n \"If we are to compare like-for-like and look at the biggest savings offered across the top 10 most -clicked-on products across the same shopping categories, the most substantial saving found was for the Apple Mac Mini (2018), which cost $190 less on 31st compared to 1st March,\" she said.\n There have been massive differences in prices. Photo / File \n \"During such unprecedented times, our key piece of advice to consumers who need to make an essential purchase right now is to be vigilant and conduct important price research before they commit and buy, as our insights suggest many products have received a price hike over this last month.\"\n This data comes off the back of the Government's decision to allow certain retailers to sell a number of essential goods to get New Zealanders through the lockdown.\n The move allowed the likes of the Warehouse, Noel Leeming, Briscoes and Mitre 10 to sell essential goods, such as heaters, whiteware and computers.\n A number of products have seen a big lift in prices. Image / PriceSpy \n The decision was made in recognition of the need for people to safely isolate, stay connected to one another and work or study from home.\n The stores have, however, faced massive demand as Kiwis rushed online to get their hands on essentials.\n Key products include heaters, dehumidifiers, light bulbs and globes, hand tools, padlocks, firewood, batteries, sealants and silicones, work boots and gumboots, workwear, torches, spouting, downpipes, smoke alarms, child safety items and small household appliances.\n \u2022 Covid19.govt.nz: The Government's official Covid-19 advisory website"}
8 | {"id": "74199004", "timestamp": "2020-04-05 23:59:18+00:00", "source": "inquirer.net", "title": "Holy Week rites worldwide disrupted, but not spirit", "body": "Attendees sit by palm branches as Pope Francis celebrates Palm Sunday Mass behind closed doors in St. Peter\u2019s Basilica, at the Vatican, Sunday, April 5, 2020, during the lockdown aimed at curbing the spread of the COVID-19 infection, caused by the novel coronavirus. (AP Photo/pool/Alberto Pizzoli)\n\n\nMANILA, Philippines s\u2014 For Pope Francis at the Vatican, and for Christians worldwide from churches large and small, this will be an Easter like none other: The joyous message of Christ\u2019s resurrection will be delivered to empty pews.\n\nWorries about the coronavirus outbreak have triggered widespread cancellations of Holy Week processions and in-person services. Many pastors will preach on TV or online, tailoring sermons to account for the pandemic.\n\n\n\nMany extended families will reunite via Face Time and Zoom rather than around a communal table laden with an Easter feast on April 12.\n \n\n\u201cI\u2019ll miss Mass and the procession,\u201d said Aida Franco, 86, a retired teacher from Quito, Ecuador. \u201cBut God knows better.\u201d\n\nNear-empty basilica\n\nPope Francis, the first Pontiff from Latin America, will be celebrating Mass for Palm Sunday, Holy Thursday and Easter in a near-empty St. Peter\u2019s Basilica, instead of in the huge square outside filled with Catholic faithful.\n\nIn the Pope\u2019s native Argentina, the archbishopric of La Plata encouraged the faithful to use any type of plant at home for a \u201cvirtual\u201d blessing that will be live-streamed during Palm Sunday services this weekend.\n\nThe pandemic has prompted the cancellation of a renowned annual tradition of sawdust and handmade flower carpets coating the streets of Antigua, a colonial Guatemalan city, during its Holy Week procession. Instead, some residents will make smaller carpets to display outside their homes.\n\n\u201cWe know this is happening because of some message from God,\u201d said Cesar Alvarez, who has been making the multicolored carpets with his family for 28 years. \u201cBut we\u2019re taking it with a lot of sadness.\u201d\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\n\nIn some communities, there are innovative efforts to boost Easter time morale.\n\nDistancing at egg hunt\n\nAt Asbury United Methodist Church in Prairie Village, Kansas, family ministries director Heather Jackson is organizing an Easter egg hunt that embraces social distancing.\n\nParents and children are creating colorful images of Easter eggs to display in windows or on garage doors, and the \u201chunt\u201d will entail families driving around in their cars, or strolling on foot, trying to spot as many eggs as possible.\n\n\u201cIt\u2019s about keeping people safe while maintaining that sense of joy,\u201d Jackson said. \u201cIt will be a difficult time because it\u2019s a time for families to come together and right now we just can\u2019t do that.\u201d\n\nIf not for the virus, 32-year-old Chris Burton\u2014a writer, teacher and devout Baptist in Brooklyn, New York\u2014would be planning a trip to Maryland for Easter dinner with his family. Instead, he plans to watch the online service of his church, Trinity Baptist, and then catch up with relatives by phone.\n\nBurton, who has experienced five bouts of pneumonia since 2011, has blogged about the need to shelter in place. Yet he still hopes this Easter will rekindle the uplifting emotions he\u2019s cherished since wearing his Easter suit in childhood.\n\n\u201cAll that\u2019s happening doesn\u2019t mean we need to be somber,\u201d he said.\n\nPriest-carrying vehicles\n\nIn Venezuela, Catholic officials said that after the Holy Week liturgies, some priests would try to take the Blessed Sacrament\u2014the wine and bread of Holy Communion\u2014on a vehicle and, using loudspeakers, invite congregants to join in spirit from their windows and balconies.\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\n\nA similar use of priest-carrying vehicles was adapted in the Philippines, Asia\u2019s bastion of Catholicism. Locals lined up in front of their homes in several districts of Manila and Quezon City, which are entering its fourth week of a lockdown that has brought the frenetic metropolis nearly to a halt.\n\nThe priests made signs of the cross as they rolled past waving residents marking Palm Sunday, the start of the week that culminates with the observance of Easter.\n\n\u201cThis celebration will continue despite the spread of the virus,\u201d said Bong Sosa, who attended wearing a mask crafted from a water cooler bottle.\n\nIn Brazil, the world\u2019s biggest Catholic country, Rio de Janeiro\u2019s huge Christ the Redeemer statue has been closed indefinitely. Large Holy Week gatherings are banned in several states after a federal court overruled a decree by President Jair Bolsonaro exempting religious services from quarantine measures.\n\nMany faithful across Latin America say they\u2019ll miss Holy Week\u2019s observances, yet there is acceptance of the cancellations.\n\nHealth first\n\n\u201cIt\u2019s sad because we can\u2019t be with our Lord in his Calvary, but it\u2019s fine,\u201d said Felipe Navarrete of Santiago, Chile. \u201cThe health of the population comes first, and we have to be responsible with older people who join these rituals the most.\u201d\n\nMany pastors are pondering their upcoming Easter sermons, including the Rev. Steven Paulikas of All Saints Episcopal Church in Brooklyn. His sermon will be transmitted online but delivered in an empty church.\n\n\u201cIt\u2019s started me thinking about the empty tomb,\u201d he said, referring to the biblical account of Christ\u2019s resurrection after his crucifixion.\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\n\n\u201cThat emptiness was actually the first symbol of this new life,\u201d Paulikas said.\n\nOn the evening of April 9\u2014Holy Thursday commemorating the Last Supper of Jesus and his apostles\u2014Paulikas is organizing a communal supper for his congregation, hoping members will join via Face Time.\n\nSounds and images\n\nAt St. Ambrose Catholic Church in Brunswick, Ohio, Father Bob Stec is organizing a pre-Easter initiative, arranging for each of the parish\u2019s 5,500 families to get a friendly call from another member.\n\nHe\u2019s expecting upwards of 20,000 people to watch the online Easter service.\n\n\u201cWe\u2019re going to try to flood their senses visually and audibly with the sounds and images that will give them hope,\u201d he said.\n\n \n \n\n\n\n Subscribe to Notifications\n\n\n\n\n\n\n\n Unsubscribe from Notifications\n\n\n\n \n \n \n \n\n \n\n \n\t\n\t\n\t \n\n \n\t\n\n \n Outbrain"}
9 | {"id": "74199005", "timestamp": "2020-04-05 23:59:18+00:00", "source": "inquirer.net", "title": "Crucifixion site on lockdown to block penitents", "body": "Local tourists pose by crosses before a re-enactment of the crucifixion of Jesus Christ for Good Friday celebrations ahead of Easter in the village of Cutud near San Fernando, north of Manila on April 14, 2017.\nDevotees in the fervently Catholic Philippines nailed themselves to crosses and whipped their backs in extreme acts of faith that have become an annual tourist attraction. / AFP PHOTO / NOEL CELIS\t\t\n\n\t\n \n \n CITY OF SAN FERNANDO, Pampanga, Philippines \u2014 The new coronavirus is poised to bring to a stop this Holy Week the crucifixion rites in the village of San Pedro Cutud here.\n\nBarangay Cutud, where some 5,000 penitents would end their flagellation and crucifixion on Good Friday, has been placed on total lockdown since Palm Sunday to stop the spread of infection.\n\nSix policemen were sent to the area to guard the three entrances to the village, said Cutud chair Remegio de la Cruz. \u201cI do not want foreigners and local spectators to come,\u201d he told the Inquirer by phone.\n\n\n\nThe village\u2019s Good Friday events, ending on a version of Calvary, had been drawing 30,000 to 50,000 spectators annually due to real-life crucifixion rites.\n \n\nHardheaded villagers\n\n\u201cThis coronavirus disease must be stopped from being transmitted,\u201d De la Cruz said. \u201cThere are some villagers who are hardheaded, but I am strict. So they better obey me or else.\u201d\n\nRuben Enaje, 59, a house and billboard painter, regularly took on the role of Jesus Christ in \u201cVia Crucis\u201d (Way of the Cross), the play staged on the streets of Cutud.\n\nBut local officials have asked Enaje and other penitents to drop the crucifixion rites after President Duterte ordered a stop to the gathering of people in big numbers to curb the spread of COVID-19.\n\nEnaje said he would just carry a 37-kilogram wooden cross from his house to the hill on Good Friday.\n\n\u2014TONETTE OREJAS\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\n\n \n \n\n\n\n Subscribe to Notifications\n\n\n\n\n\n\n\n Unsubscribe from Notifications\n\n\n\n \n \n \n \n\n \n\n \n\t\n\t\n\t \n\n \n\t\n\n \n Outbrain"}
10 | {"id": "74199006", "timestamp": "2020-04-05 23:59:18+00:00", "source": "inquirer.net", "title": "COVID-19 patients to waive confidentiality", "body": "COVID-19 patients to waive confidentiality\n\n\n \n\t\n\n\t\tBy: Dona Z. Pazzibugan\n\t\t\t\t-\t\t47 seconds ago\n\t\n\n\n \n \n \n \n MANILA, Philippines \u2014 No less than the country\u2019s top medical and legal groups have called on authorities to disclose the identities of COVID-19 patients and so-called persons under investigation (PUIs), saying many patients continue to withhold their true medical history thus endangering the thinning ranks of healthcare workers.\n\nThe Philippine Medical Association and Philippine College of Surgeons together with the Integrated Bar of the Philippines appealed to COVID-19 patients and PUIs to voluntarily waive the confidentiality of their medical information and inform those they have recently been in close contact with.\n\nThey also urged the Department of Health to \u201cprudently use and promptly share the medical information\u201d to all concerned so they could take precautionary and remedial measures. Justice Secretary Menardo Guevarra said he \u201cstrongly\u201d supported the call and affirmed the \u201cethical and legal basis\u201d laid down by the Philippine Medical Association and the Data Privacy Commission to justify waiving the medical confidential rule \u201cin times of public health emergency.\u201d\n\n\n\nHe also strongly supports the call of the Integrated Bar of the Philippines on COVID-19 positive individuals and PUIs \u201cfor the waiver of confidentiality of their medical condition,\u201d Guevarra told reporters on Sunday.\n \n\n\u201cThis will enable other people they have been in close contact with to take the necessary precautions or remedial measures to protect themselves, without having to further burden the Department of Health with the tedious task of contact tracing,\u201d he added.\n\nThe three medical and legal groups made the appeal in a joint statement on April 4, three weeks since the enhanced community quarantine to contain the outbreak.\n\nIn justifying their call to waive the medical confidentiality rule, they reported increasing incidents in which COVID-19 patients continue to withhold their true medical condition when seeking treatment or hospital admission \u201cthereby compromising the health institutions and the health workers,\u201d many of whom have died or fell ill from the infectious disease.\n\nEven without the individual waiver, they said, existing laws and rules grant the government \u201csufficient authority and basis\u201d to lift the confidentiality of the medical condition of COVID-19 patients and PUIs.\n\nThese include Republic Act 11332 or the 2018 Law on Reporting of Communicable Diseases, which makes illegal the \u201cnon-cooperation of persons and entities\u201d in times of public health emergencies.\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\n\nThe confidentiality of a patient\u2019s medical data and details is \u201cnot absolute\u201d and can be lifted \u201cwhen the public health and safety so demand\u201d or \u201cwhen the patient waives his right,\u201d the three groups pointed out.\n\nArticle III Section 3 of the Code of Ethics of the Medical Profession, they said, exempts a physician from keeping private and highly confidential a person\u2019s medical information \u201cwhen required by law, ordinance or administrative order in the promotion of justice, safety and public health.\u201d\n\nThe Health Privacy Code specifying the Joint Administrative Order No. 2016-0002 or the privacy guidelines for the implementation of the Philippine Health Information Exchange, also allows that \u201cin case of emergency where time is of the essence, disclosure may be made even without court order.\u201d\n\n \n \n\n\n\n Subscribe to Notifications\n\n\n\n\n\n\n\n Unsubscribe from Notifications\n\n\n\n \n \n \n \n\n \n\n \n\t\n\t\n\t \n\n \n\t\n\n \n Outbrain"}
11 | {"id": "74199007", "timestamp": "2020-04-05 23:59:18+00:00", "source": "inquirer.net", "title": "Bishop: Holy Week is about love, not rituals", "body": "A Roman Catholic priest riding on a tricycle and wearing a face mask blesses the faithfuls holding coconut leaves during Palm Sunday event in Borongan town, Eastern Samar province, central Philippines on April 5, 2020, as part of the Easter observance. - Church authorities have asked the catholic faithfuls not to go to churches for the Palm Sunday blessing, but instead to stay in front of their houses as priests will go around their communities for the blessing, to observe social distancing as part of the government efforts to combat COVID 19 pandemic. (Photo by Alren BERONIO / AFP)\t\t\n\n\t\n \n \n MANILA, Philippines \u2014 The new coronavirus failed to keep Filipino Catholics from observing Palm Sunday.\n\nPriests went around communities in lockdown to bless palm fronds waved by people from the front of their houses or delivered blessing from the back of trucks and motorized tricycles.\n\nIn a photo posted on CBCP\u00adNews, the official news service of the Catholic Bishops\u2019 Conference of the Philippines (CBCP), a priest blesses palm fronds from a tricycle in Borongan City, Eastern Samar.\n\n\n\nManila Auxiliary Bishop Broderick Pabillo, in his homily during Palm Sunday Mass at Manila Cathedral that was live-streamed on Facebook, said liturgical activities this year would be a lot different, \u201cbut Holy Week must continue.\u201d\n \n\nBright side\n\nCatholics in many parts of the world may miss the \u201cexternalities\u201d of the celebrations, he said, but \u201cthis may be a good chance for us to go into the essence of what we are doing.\u201d\n\n\u201cThere is always a bright side in what is happening even in this COVID-19 pandemic,\u201d he said.\n\nPabillo urged the faithful to spend the remaining days of the Luzon lockdown in prayer and reflection.\n\n\u201cLet us not mind so much that we are already in the fourth week of the lockdown. Let us not complain. But let us use this silence and inactivity of the lockdown this Holy Week to reflect and to pray,\u201d he said.\n\nHe encouraged the faithful to think of the difficulties brought about by COVID-19 as a way of being one with Jesus, who died for mankind.\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\n\n\u201cOf course, after four weeks, there are already lots of complaints, not only of inconvenience, not only of boredom, but, even for some, because of great need. They might be hungry already. Let us join all these sufferings to that of Jesus. He loves us so much that he suffered for us,\u201d Pabillo said.\n\n\u201cWe welcome him today, let us continue to welcome him. We recognize him and he still comes to us in the ordinariness of our lives even when we are under quarantine. It\u2019s good to pause and see how is the Lord coming to us during these days,\u201d he added.\n\nThis Holy Week is a good time to reflect on why Jesus suffered so much and that his suffering should \u201clead us to sorrow and gratitude\u2014sorrow for our sins, for our indifference, and gratitude for his great love and solidarity with us,\u201d Pabillo said.\n\nNot less holy\n\n\u201cWe may be celebrating this year\u2019s Holy Week differently, but hopefully, more deeply,\u201d he said, adding that the absence of traditional religious activities does not make Holy Week less holy.\n\nLingayen-Dagupan Archbishop Socrates Villegas echoed Pabillo\u2019s views, saying Holy Week is about love, not rituals.\n\n\u201cLove makes us holy. Love, not rituals, is the spirit of Holy Week,\u201d he said.\n\nFr. Jerome Secillano, executive secretary of the CBCP public affairs committee, also said Holy Week \u201cshouldn\u2019t be less holy since what makes it really holy is the sacrifice of Christ and not the participation of people.\u201d\n\n\u2014TINA G. SANTOS\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\n\n \n \n\n\n\n Subscribe to Notifications\n\n\n\n\n\n\n\n Unsubscribe from Notifications\n\n\n\n \n \n \n \n\n \n\n \n\t\n\t\n\t \n\n \n\t\n\n \n Outbrain"}
12 | {"id": "74199008", "timestamp": "2020-04-05 23:59:18+00:00", "source": "inquirer.net", "title": "Christianity\u2019s most somber time spent somberly", "body": "Christianity\u2019s most somber time spent somberly\n\n\n \n\t\n\n\t\tBy: Ador Vincent Mayol, Joey Gabieta\n\t\t\t\t-\t\t3 hours ago\n\t\n\n\n \n \n \n \n \n LIVESTREAM The Mendoza family of Bagong Silangan village in Quezon City attends Palm Sunday Mass via online broadcasting or livestreaming, amid the spread of the coronavirus disease that has forced the government to put the entire island of Luzon on lockdown. (Photo by NI\u00d1O JESUS ORBETA / Philippine Daily Inquirer)\n\n\nTACLOBAN CITY, Leyte, Philippines \u2014 Zenaida Oledan woke up at 5:30 a.m. on Sunday determined to do one thing.\n\n\u201cI want to have my palm fronds blessed,\u201d said the 54-year-old mother of four.\n\n\n\nOledan was among several residents who lined the city streets of Barangay 6 to observe Palm Sunday, the start of Holy Week\u2014the most somber time of the year in Christianity.\n \n\nGoing to the community\n\nBut unlike in previous years, the Catholic faithful were requested to stay at home in a bid to contain the spread of the new coronavirus, which causes the deadly COVID-19.\n\nMsgr. Erlito Maraya, head priest of Sacred Heart Parish in Tacloban, went out to the community to bless the people\u2019s homemade palm fronds.\n\nOledan was glad about Maraya\u2019s bringing the Palm Sunday tradition to people\u2019s homes. \u201cAt least even during this time of COVID-19, we\u2019re still able to observe Palm Sunday,\u201d she said, holding the palm she had bought.\n\nIn Cebu, Archbishop Jose Palma presided over Palm Sunday Mass at an empty Cebu Metropolitan Cathedral. But Gov. Gwendolyn Garcia was there to see him consecrate Cebu to the Our Lady of Guadalupe, the island\u2019s patroness.\n\n\u201cIn the midst of fear and anxiety caused by COVID-19, even great nations are at a loss about what to do. We have no solution. [The best we can do] is to bend down our knees in prayer,\u201d Palma said in his homily.\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\n\nGratitude to medical workers\n\nHe expressed gratitude to all medical workers who, he said, were like Jesus who sacrificed his life for the good of many.\n\n\u201cThese people exposed themselves to risk and yet they are there. We admire people who are willing to take the risk knowing that life is precious. This is the image of Jesus who offered his life so that others may live,\u201d Palma said.\n\n\u201cIn time of COVID, we should be serious in giving value to life. We\u2019re confronted with a serious case and I hope people will follow what authorities are implementing,\u201d he added.\n\nOn March 17, Palma ordered the suspension of Masses in Cebu amid increasing COVID-19 cases. He urged parishes in the archdiocese to use technology to bring church services to people, especially those who are in quarantine.\n\nOn Negros Island, people attended services \u2014 Catholic and Protestant \u2014 through television.\n\nSome of them put palm fronds on their gates as a reminder of Palm Sunday.\n\n\u2014WITH A REPORT FROM CARLA GOMEZ\n\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\n \n \n\n\n\n Subscribe to Notifications\n\n\n\n\n\n\n\n Unsubscribe from Notifications\n\n\n\n \n \n \n \n\n \n\n \n\t\n\t\n\t \n\n \n\t\n\n \n Outbrain"}
13 | {"id": "74199009", "timestamp": "2020-04-05 23:59:18+00:00", "source": "inquirer.net", "title": "Fighting a pandemic: When healers need healing themselves", "body": "THE BEST AND WORST IMPULSES Risking infection by the coronavirus as they provide care for patients on their watch, medical workers also face discrimination by people afraid for their lives. \u2014PHOTO COURTESY OF KATH VALDEZ\n\n\nMANILA, Philippines \u2014 \u201cYou really need to be strong in this profession,\u2019\u2019 said Kath Valdez, a ward nurse at the Philippine General Hospital (PGH) in Manila, who has seen how the usually crowded halls of PGH turned empty and eerily quiet, except for the muffled suffering of patients battling a virulent disease that has also taken its toll on health workers like her.\n\n\u201c(You have) to put so much heart into it so that you can help people (deal), not only with their physical pain but also the emotional and mental challenges they are going through,\u201d she said.\n\n\n\nAfter PGH was designated by the Department of Health as an \u201cend referral hospital\u201d for COVID-19 cases, Valdez recalled, she started taking care of one patient whose condition was made worse by bouts of depression. Two of the patient\u2019s family members had died from COVID-19, while the rest were recovering.\n \n\n\u201cShe is isolated and alone in PGH, and cannot do anything. It\u2019s too sad to see patients like that. All I can offer is myself, a person who will listen to her,\u201d said Valdez.\n\nHealth workers get so invested in their work that they sometimes forget to take care of themselves, she said, and \u201cthis eventually leads to burnout and similar challenges.\u201d\n\nAnother source of anguish\n\nBut lately, another source of their mental anguish has surfaced \u2014 one that stalks nurses and health workers the moment they step out of the hospital.\n\nValdez has experienced it herself: One day as she walked home, her neighbors hurried back inside their houses, avoiding her like the plague. She has also heard stories of health workers being forced out of their rented places because of fear that they could infect the entire community.\n\n\u201cI know (people) are just being careful,\u201d she said. \u201cBut I wish they would be kinder and more considerate to us, especially during this time of crisis,\u201d Valdez said.\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\n\nSupport groups\n\nTo help themselves cope, nurses in the state-run hospital turn to their support group\u2014\u201cPGH Care Society\u201d\u2014to help each other out of emotional and psychological lows through professional and peer interventions.\n\nOther groups, such as Ugat Foundation and the University of the Philippines Diliman\u2019s PsycServ (UPD PsycServ), have been offering telepsychotherapy and psycho-emotional counseling services for front-line health workers and people experiencing stress or anxiety during the COVID-19 pandemic.\n\nLike other PGH nurses, Valdez has developed the fear of getting the virus and infecting others, as well as a sense of helplessness for not being able to do everything for the patients.\n\n\u201cWe\u2019ve also faced (cases of) infectious diseases in the past, but this is something that we didn\u2019t expect to blow up like this. It totally changed our working environment. There is fear, anxiety, and uncertainty all around,\u201d said Valdez, who lives with friends in Manila while her entire family is abroad.\n\nThe PGH Care Society, a mental health advocacy group whose members include Valdez, provides a platform for nurses to freely express their feelings as a form of unburdening and release. Through online exchanges, they can hopefully unload negative feelings and deal more strongly with \u201cone of the most challenging times of their career,\u201d Valdez said.\n\nOnline counseling\n\nUgat Foundation, meanwhile, is a group helping Filipino families, overseas Filipino workers (OFWs) and marginalized individuals cushion the physical and psychological impact of the coronavirus outbreak.\n\nOn April 2, it launched Ugat Sandaline, an online platform that provides psycho-emotional counseling services to people affected by the pandemic, especially medical front-liners and other responders deployed by the government.\n\n\u201cThey need a lot of support now, and hopefully, crisis counseling empowers them in their valiant efforts to fight COVID-19 and ensure the safety and health of the Filipino people,\u201d the group said.\n\t\t\t\t\n\n\t\t\t\t\t\n\t\t\t\n\nUgat Sandaline volunteers include psychologists, mental health professionals, and psychology graduate students who are trained to listen to and empathize with those needing emotional support, whether through video, voice call or online chat.\n\n\u201cIn cases such as pandemics, when compliance is critical to the nation\u2019s efforts to \u2018flatten the curve,\u2019 feeling heard or having an outlet to ventilate feelings will hopefully also enable more (people) to comply with national and local government efforts,\u201d the group said in a statement.\n\nFor other \u2018essential\u2019 workers\n\nA third help group, UPD PsycServ, has expanded its free telepsychotherapy services to reach out not only to health workers but also to persons under investigation or monitoring for coronavirus symptoms, and COVID-19-positive individuals and their relatives.\n\nIt also offers a comforting hand to security guards, store cashiers, janitors and other \u201cessential\u201d workers who still have to go to work\u2014and face the risk of being infected\u2014while the Luzon-wide lockdown is in effect.\n\nOnline sessions with the group can be scheduled through text, Viber or an online form posted on the group\u2019s Facebook page.\n\nSometimes a simple \u201ckumusta\u201d (how are you?) suffices to renew their strength, Valdez said.\n\n\u201cAs health workers, we\u2019re used to asking others: Kumusta ka? So it\u2019s time that we also take care of our fellow nurses and front-liners,\u201d she said. \u201cThat one simple question can totally change someone\u2019s perspective and feelings.\u201d\n\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\n \n \n\n\n\n Subscribe to Notifications\n\n\n\n\n\n\n\n Unsubscribe from Notifications\n\n\n\n \n \n \n \n\n \n\n \n\t\n\t\n\t \n\n \n\t\n\n \n Outbrain"}
14 | {"id": "74198985", "timestamp": "2020-04-05 23:58:52+00:00", "source": "arstechnica.com", "title": "Zoombombing is a crime, not a prank, prosecutors warn", "body": "Coronavirus-related social distancing measures have given a big popularity boost to Zoom, a video conferencing platform that's known for its ease of use but not necessarily strong security or privacy protections. Internet trolls and other troublemakers have responded with \"Zoombombing\": joining Zoom meetings uninvited and disrupting them. Zoombombers have exposed themselves to schoolchildren and shouted racial slurs.\n\nIn a Friday statement, federal prosecutors in Michigan warned the public that Zoombombing isn't a harmless prank; it's a crime.\n\n\"Hackers are disrupting conferences and online classrooms with pornographic and/or hate images and threatening language,\" wrote the US Attorney's Office for the Eastern District of Michigan. \"Anyone who hacks into a teleconference can be charged with state or federal crimes.\"\n\nPossible charges include \"disrupting a public meeting, computer intrusion, using a computer to commit a crime, hate crimes, fraud, or transmitting threatening communications,\" the prosecutors warn. All of these charges come with the potential for fines and jail time, the authorities say.\n\nThe exact charges a Zoombomber faces would presumably depend on how they gained access to a Zoom meeting and what they did to disrupt it. For example, some Zoom meetings are advertised publicly, which might make it hard to make a computer intrusion charge stick. But someone could still be prosecuted for things they said or did to disrupt the meeting after joining it.\n\n\u201cYou think Zoombombing is funny? Let\u2019s see how funny it is after you get arrested,\u201d Michigan US attorney Matthew Schneider said in Friday's release. \u201cIf you interfere with a teleconference or public meeting in Michigan, you could have federal, state, or local law enforcement knocking at your door.\u201d\n\nIn a recent story, Ars Technica security reporter Dan Goodin explained how Zoom users can protect themselves from Zoombombing attacks. He noted that meetings can be password-protected, and he advised against announcing login information on social media or other public channels.\n\nGoodin notes that hosts can disable Zoom's \"Join Before Host\" setting to ensure that the host is in control of a meeting from the outset. Zoom also has a \"waiting room\" feature, allowing a host to verify participants before allowing them to join the meeting."}
15 | {"id": "74198971", "timestamp": "2020-04-05 23:58:41+00:00", "source": "itv.com", "title": "Boris Johnson spends night in hospital as he battles coronavirus", "body": "Prime Minister Boris Johnson is spending the night in hospital after he was admitted for tests as his coronavirus symptoms persist.\nHe will stay for \u201cas long as needed\u201d in the London NHS hospital where he was taken as a \u201cprecautionary step\u201d on the advice of his doctor \u2013 rather than as an emergency.\nThe news came just an hour after the Queen delivered a message of hope to the nation amid the Covid-19 pandemic, saying \u201cwe will overcome it\u201d although we \u201cmay have more still to endure\u201d.\n\n\n\n\n\n A total of 4,934 patients \u2013 including frontline healthcare workers \u2013 have died in hospital after testing positive for coronavirus in the UK according to the latest figures issued by the Department of Health.\nMr Johnson, 55, tested positive for the virus 10 days ago, and has been in self-isolation inside his Downing Street flat since.\nA Number 10 spokeswoman said: \u201cOn the advice of his doctor, the Prime Minister has tonight been admitted to hospital for tests.\n\u201cThis is a precautionary step, as the Prime Minister continues to have persistent symptoms of coronavirus 10 days after testing positive for the virus.\n\u201cThe Prime Minister thanks NHS staff for all of their incredible hard work and urges the public to continue to follow the Government\u2019s advice to stay at home, protect the NHS and save lives.\u201d\n\n\n\n\n\n US President Donald Trump was among the well-wishers, starting Sunday night\u2019s White House press briefing by saying Mr Johnson was \u201ca great friend of mine\u201d and adding: \u201cI\u2019m sure he is going to be fine, he\u2019s a strong man, a strong person.\u201d\nIn a rare televised address to the nation, the Queen personally thanked frontline NHS staff, care workers and others for \u201cselflessly\u201d carrying out their essential roles which had brought \u201cus closer to a return to more normal times\u201d.\nShe thanked others for staying at homes, separated from friends and family, and echoed the words of Forces\u2019 sweetheart Dame Vera Lynne\u2019s Second World War anthem, when she said \u201cwe will meet again\u201d.\nIt came as:\n\u2013 Scotland\u2019s chief medical officer, Dr Catherine Calderwood, resigned following criticism for visiting her second home and not adhering to social distancing advice.\n\u2013 The Department of Health said the number of reported coronavirus-related hospital deaths had risen by 621 to 4,934 as of 5pm on Saturday, up from 4,313 the day before.\n\u2013 Princess Alexandra Hospital in Harlow confirmed Lynsay Coventry, 54, who died on Thursday, was the first serving midwife to die after testing positive for the virus.\n\u2013 Health Secretary Matt Hancock warned outdoor exercise could be banned if people continued to flout the social distancing rules.\n\n\n\n\n\n Mr Johnson remains \u201cin charge of the Government\u201d and in contact with ministerial colleagues and officials despite his hospital admission, a spokesman said.\nBut de facto deputy prime minister Dominic Raab, the Foreign Secretary, is expected to chair the daily Covid-19 meeting on Monday morning in Mr Johnson\u2019s place.\nHis persistent symptoms are understood to include a high temperature, and it was considered sensible for doctors to see the PM in person.\nMr Johnson\u2019s pregnant fiancee Carrie Symonds said on Saturday that she was \u201con the mend\u201d after spending a week in bed after also suffering coronavirus symptoms.\n\n\n\n\n\n The 32-year-old, who is expecting the couple\u2019s baby in early summer, has been self-isolating in Camberwell, south London, with the couple\u2019s dog Dilyn.\nThe Prime Minister revealed on March 27 that he had tested positive for Covid-19 and was self-isolating with \u201cmild symptoms\u201d including a high temperature and persistent cough\nHe has shared several video updates from his Number 11 flat since the diagnosis, and stepped outside to join the nationwide clap for key workers on Thursday evening.\nMr Johnson has not been seen publicly since, but spoke to new Labour leader Sir Keir Starmer on Saturday afternoon.\nSir Keir wished the PM a \u201cspeedy recovery\u201d after the announcement."}
16 | {"id": "74198970", "timestamp": "2020-04-05 23:58:40+00:00", "source": "slate.com", "title": "Bronx Zoo Tiger Is First of Its Kind to Test Positive For Coronavirus", "body": "Nadia, a four-year-old female Malayan\u00a0tiger\u00a0at the\u00a0Bronx\u00a0Zoo, is seen in an undated photo provided by the\u00a0zoo\u00a0in New York.\n\nWildlife Conservation Society\n\n\n\n\n \n\n \n Nadia, a four-year-old female Malayan tiger at the Bronx Zoo, has become the first tiger in the world to test positive for the coronavirus. It is the first known case of an animal contracting the coronavirus in the United States. Nadia\u2019s sister Azul, two Amur tigers, and three African lions have also developed a dry cough, a symptom that is typical of COVID-19 patients. Because of the difficulty of obtaining samples from big cats, only one was tested. Besides a bit of loss of appetite all the Bronx Zoo animals are doing well, the Wildlife Conservation Society\u2019s Bronx Zoo said in a statement. The zoo has been closed since March 16.\n\n\n\n \n\n\n\n \n\n\n\n \n The U.S. Department of Agriculture confirmed the finding and said it marked the first case of a tiger testing positive for COVID-19. The big cats were likely infected by an asymptomatic staff member.\n\n\n\n \n\n\n\n \n\n\n\n \n Even though all the big cats infected with COVID-19 are expected to make a full recovery the positive test raises fresh questions about how the virus is transmitted to animals. No pets in the United States have tested positive for the virus and there is no evidence to suggest that animals can transmit COVID-19 to people. A dog in Hong Kong tested positive, which led officials to conclude animals could test positive if they had been exposed by humans but could not transmit the virus to humans.\n\n\n\n \n The USDA says anyone who is sick with the coronavirus should restrict contact with animals as much as possible. If someone who is sick with the coronavirus must take care of a pet or be around animals, \u201cthey should wash their hands before and after the interaction,\u201d notes the USDA. Experts also recommend that pets of owners who are infected with COVID-19 should be kept inside as much as possible."}
17 | {"id": "74198976", "timestamp": "2020-04-05 23:58:40+00:00", "source": "yahoo.com", "title": "WEEKLY ROUND-UP: Sports happenings in Singapore (30 March-5 April)", "body": "SINGAPORE \u2014 Here is a round-up of sports events and developments in the past week (30 March to 5 April):\nMost sports, recreation facilities to close from Tuesday\nSports and recreation facilities will be closed from Tuesday (7 April) to 4 May, as Singapore implements elevated safe distancing measures to curb the spread of COVID-19.\nThe closures include ActiveSG Sport Centres, studios, gyms, indoor sport halls, swimming complexes, Active Health Labs, as well as The Float and The Rink@JCube.\nAll recreational facilities in hotels will also be closed. All group sports and physical activities shall cease during the period, regardless of group size or location. This includes one-on-one private coaching sessions, as well as outdoor group physical activities.\nWhile public parks and 15 SportSG open-air stadiums will remain open, the Singapore government reminds the public to practise safe distancing in open spaces.\nThe 15 stadiums that will remain open are: Bedok, Bishan, Bukit Gombak, Choa Chua Kang, Clementi, Home of Athletics, Hougang, Jurong West, MOE (Evans), Queenstown, Serangoon, Toa Payoh, Woodlands, Yio Chu Kang, Yishun.\nList of services that will remain open during the period:\nBishan Sport Centre: Good Bites\n\nBukit Gombak Sport Centre: SingPost (POPStation)\n\nChoa Chu Kang Sport Centre: KFC, SingPost (POPStation), Star Learners@CCK Sports Centre\n\nHeartbeat@Bedok ActiveSG Sport Centre: Burger King, Heavenly Wang, NTUC Income Insurance Co-operative Bedok, Kaki Makan, QB House, RedMan at Heartbeat@Bedok, Ren Tian Tang Herbal Haircare, SuperGenius Preschool HBB, Subway, Swee Heng Bakery, Tian Ma Group, Unity Dental, Watson's Personal Care\n\nHougang Sport Centre: SingPost (POPStation)\n\nJalan Besar Sport Centre: Broadway Food Centre\n\nJurong East Sport Centre: KFC, PastaMania, SingPost (POPStation)\n\nJurong West Sport Centre: MindChamps PreSchool@Jurong West, The Enrichment Childcare, SingPost (POPStation)\n\nPasir Ris Sport Centre: Burger King, Kcuts, McDonald's, MSF Social Service Office, SingPost (POPStation)\n\nSengkang Sport Centre: Kcuts, PastaMania, SingPost (POPStation), Star Learners\n\nSerangoon Sport Centre: SingPost (POPStation)\n\nWoodlands Sport Centre: Citrus By The Pool, SingPost (POPStation)\n\nYio Chu Kang Sport Centre: MindChamps Pre-school, SingPost (POPStation)\n\nActiveSG Hockey Village@Boon Lay: Little Explorers' Cove\n\n\nSingapore Derby postponed to later date\nThe Singapore Turf Club will postpone the $1 million Singapore Derby, which was originally scheduled for 18 April, with the new date to be announced later.\nThe race is one of the oldest feature races on the Singapore racing calendar, and is the final leg of the Four-Year-Old Challenge series. It is the second-richest race in Singapore, after the $1.5 million Kranji Mile, which is scheduled for 23 May.\nVeteran official appointed as Asian representative\nThe Singapore Disability Sports Council announced that veteran official Arthur Lee, 73, has been appointed the Asian representative to the swim committee at Virtus: World Intellectual Impairment Sport. This is the first time a Singaporean has been appointed for this role.\nLee will be serving a three-year term, and will help the committee manage competition programmes to promote sports for athletes with intellectual impairment.\nWith over 30 years of officiating expertise under his belt, Lee has been a strong advocate of inclusion and professionalism in Singapore swimming meets. He volunteered as a technical official and officiated his first National Swimming Championships in 1995. Since then, more than 30 other technical officials in Singapore have been trained by Lee to officiate para swimming meets.\n\n\nHave a sports event to tell our users? Email us at sgnews.tips@verizonmedia.com. In your email, do provide as many details as possible, including videos and photos."}
18 | {"id": "74198963", "timestamp": "2020-04-05 23:58:31+00:00", "source": "straitstimes.com", "title": "Ecuador city runs out of coffins amid coronavirus crisis", "body": "QUITO (AFP) - Soaring numbers of coronavirus deaths in Ecuador's second city Guayaquil have led to a shortage of coffins, forcing locals to resort to using cardboard boxes, city authorities said on Sunday (April 5).\n\nAuthorities in the Pacific port city said they had received a donation of 1,000 pressed cardboard caskets from local producers, and delivered them for use in two local cemeteries.\n\n\"It's so they can meet demand,\" a city hall spokesman told AFP. \"There are either no coffins in the city or they are extremely expensive.\"\n\nBusinessman Santiago Olivares, who owns a chain of funeral homes, said his company was unable to keep up with demand.\n\n\"I sold the 40 that I had at the downtown branch, and 40 others from my headquarters. I had to order 10 more at the weekend and they've run out,\" Olivares told AFP.\n\nThe cheapest coffins currently cost around $400.\n\nOlivares said a 15-hour curfew in the city was contributing to the shortage of basic raw materials for coffin makers like wood and metal.\n\nLast week, residents posted videos on social media showing abandoned bodies in the streets in the Latin American city worst hit by the pandemic.\n\nThe government called in troops to pick up 150 corpses from streets and homes earlier this week after mortuary workers in the city were unable to keep up with a backlog of removals.\n\nThe cardboard coffins \"will be a great help in providing a dignified burial for people who died during this health emergency,\" the Guayaquil mayor's office wrote on Twitter.\n\nEcuador reported 3,646 cases of the coronavirus on Sunday, including 180 deaths, the majority of them occurring in Guayaquil and its surrounding province of Guayas."}
19 | {"id": "74198957", "timestamp": "2020-04-05 23:57:57+00:00", "source": "cbsnews.com", "title": "Why John Dickerson wrote about acknowledging each other's grief as the coronavirus takes its toll", "body": "Amid the confusion and anxiety of coronavirus news, John Dickerson wants people to take time to acknowledge what has been lost. For an increasing number of Americans, that means a loved one.\n\nBehind the growing numbers of people who have died from COVID-19, there are friends and family members in mourning. Recently, Dickerson saw that sorrow up close when he spoke to a friend whose close family member died from the virus. He also saw the disconnect between what that family felt and the broader political debate occurring about the coronavirus.\n\nTo make sense of that clash, he wrote about it in an article for The Atlantic.\n\n\"The response has been pretty powerful, from all sorts of different people,\" Dickerson told 60 Minutes Overtime. \"And so a lot of people when they read it, passed it around, either because they were experiencing grief, or because they knew somebody that was, or because they were having a kind of anticipatory grief and sorrow about this confusing moment that we're all in.\"\n\nPart of what makes this moment so confusing, Dickerson said, is that people can no longer do what they usually do when a loved one dies. Due to social distancing and mandates against gatherings, they cannot have a funeral, nor hug relatives who have gathered. In most instances, they are not even able to be with their loved one in person before they die, especially if its due to COVID-19.\n\n\"All of the normal coping mechanisms are taken away,\" Dickerson said. \"And that is an acute situation for the people going through it, but also for the rest of us. This is something new for all of us to be experiencing this at the same time.\"\n\nFor Dickerson, that sense of unity in grief is what will help people get through it. He pointed to the collective applause that New Yorkers give at 7 pm each evening in thanks to health care workers who are taking care of the sick. The sounds of clapping hands and banging pots, he said, goes beyond the intended message.\n\n\"It's also all of us neighbors hearing each other, participating in that together, all having the same human reaction, regardless of our politics or our creed or our religions or races or where we come from, that we're all expressing the same kind of gratitude at the same time,\" he said, \"which is not only a good thing to be doing collectively, but it also reminds us all that we, at the very basic level, are all human beings.\"\n\nThe video above was produced by Brit McCandless Farmer and Sarah Shafer Prediger. It was edited by Sarah Shafer Prediger."}
20 | {"id": "74198954", "timestamp": "2020-04-05 23:57:53+00:00", "source": "news.com.au", "title": "Tiger tests positive for coronavirus at NYC\u2019s Bronx Zoo", "body": "A tiger at the Bronx Zoo has tested positive for the new coronavirus in what is believed to be the first known infection in an animal in the US or a tiger anywhere, federal officials and the zoo said Sunday. \nThe four-year-old Malayan tiger named Nadia \u2013 and six other tigers and lions that have also fallen ill \u2013 are believed to have been infected by a zoo employee who wasn\u2019t yet showing symptoms, the zoo said. The first animal started showing symptoms on March 27, and all are doing well and expected to recover, a zoo spokesman said. The zoo has been closed to the public since March 16 amid the surging coronavirus outbreak in New York.\n\u201cThese are extremely hard days for all of us \u2013 no matter where we live and work. We will ensure that whatever we can learn from these circumstances will be used to better understand and combat this disease,\u201d zoo director Jim Breheny said in a statement.\nThe finding raises new questions about transmission of the virus in animals. The US Department of Agriculture, which confirmed Nadia\u2019s test result at its veterinary lab, says there are no known cases of the virus in US pets or livestock.\n\u201cThere doesn\u2019t appear to be, at this time, any evidence that suggests that the animals can spread the virus to people or that they can be a source of the infection in the United States,\u201d Dr Jane Rooney, a veterinarian and a USDA official, said in an interview.\nA USDA spokesperson said on Sunday it was not recommending routine coronavirus testing of animals in zoos or elsewhere or of zoo employees. Still, DR Rooney said a small number of animals in the US had been tested through the USDA\u2019s National Veterinary Services Laboratories, and all those tests came back negative except Nadia\u2019s.\nThe coronavirus outbreaks around the world are driven by person-to-person transmission, experts say.\nThere have been a handful of reports outside the US of pet dogs or cats becoming infected after close contact with contagious people, including a Hong Kong dog that tested positive for a low level of the pathogen in February and early March. Hong Kong agriculture authorities concluded that pet dogs and cats couldn\u2019t pass the virus to human beings but could test positive if exposed by their owners.\nSome researchers have been trying to understand the susceptibility of different animal species to the virus and to determine how it spreads among animals, according to the Paris-based World Organisation for Animal Health. The American Veterinary Medical Association and the federal Centres for Disease Control and Prevention have been recommending that out of an abundance of caution, people ill with the coronavirus should limit contact with animals \u2013 advice that the veterinary group reiterated after learning of the tiger\u2019s test result.\nIn general, the CDC also advises people to wash their hands after handling animals and do other things to keep pets and their homes clean. At the Bronx Zoo, Nadia, her sister Azul, two Amur tigers and three African lions developed dry coughs, and some of the cats exhibited some wheezing and loss of appetite, said Dr Paul Calle, the zoo\u2019s chief veterinarian.\nOnly Nadia was tested because it takes anaesthesia to get a sample from a big cat. Her temperature was taken at the same time, and it was normal, Dr Calle said. The seven sickened cats live in two areas at the zoo, and the animals had contact with the same worker, who is doing OK, zoo officials said. They said they are taking \u201cappropriate preventive measures\u201d for the staffers who care for the ailing animals, and there are no signs of illness in other big cats on the property.\nFor most people, the coronavirus causes mild or moderate symptoms, such as a fever and cough that clear up in two to three weeks. For some, especially older adults, it can cause more severe illness, including pneumonia, and can be fatal."}
21 | {"id": "74198955", "timestamp": "2020-04-05 23:57:52+00:00", "source": "news.com.au", "title": "Coles launches its own $80 groceries box to rival Woolworths", "body": "Coles has launched a Community Box that it will deliver to its vulnerable customers who have been most impacted by coronavirus and panic buying. \nThe supermarket giant will deliver a range of non-perishable basics for $80, the same price Woolworths charges for its Basics Box.\n\u201cAs part of our commitment to helping those most in need during this challenging time, we\u2019ve created the Coles Community Box,\u201d a Coles spokesperson said.\n\u201cDelivered direct to homes in two packages by Australia Post, the Coles Community Box contains grocery items and household items for healthy meals and snacks, plus some everyday essentials.\u201d\nRELATED: Follow the latest coronavirus updates\nColes' box contains a range of pantry samples including long-life milk, tea or instant coffee, cereal, baked beans, pasta and wraps.\nThe Community Box will be only available to Coles' priority service customers as \u201cour priority right now is helping our most vulnerable customers and giving them access to grocery items and everyday essentials\u201d.\nThose who are eligible for Coles' priority service are those over the age of 65, indigenous Australians over the age of 50 as well as aged and disability care businesses.\nColes has been forced to limit its home delivery to just those who are \u201cin genuine need\u201d as well as pausing its click and collect services, meaning customers can no longer pick up their pre-purchased supermarkets in store.\nWOOLIES BOX DIVIDES SHOPPERS\nLast week Woolworths launched its own version, an $80 Basics Box that is available for any customer who is unable to visit the supermarket.\nThe $80 box includes contactless doorstep delivery by Australia Post within an estimated time of two to five business days of order.\nCustomers can\u2019t switch, change or choose items within the box, with Woolies explaining that streamlining the picking process is part of ensuring customers get the essential items as quickly as possible.\nHowever, the box has divided shoppers, with some slamming its contents in a post in Facebook group Budgeting, Food, Savings Ideas, Life Help Australia on Friday.\n\"Wow. Not even bread?\" one person wrote, while another claimed it was \u201coverpriced for what you get\u201d.\nRELATED: Science behind Aussie toilet paper frenzy\n\u201cDoes seem a bit of a rip-off for the price tag, is there some items missing?\u201d one person commented.\nHowever, others argued the box was \u201cbetter than nothing\u201d and the point of it was to provide \u201cnon-perishable staples\u201d to the vulnerable.\nIn response, Woolworths told news.com.au it had developed the Basics Box to \u201cmeet an essential community need\u201d and the supermarket \u201cwill be making no profit from it\u201d.\n\u201cWhile it\u2019s a far cry from a fully customised home delivery, it\u2019s a good value offer covering the basics,\u201d the spokesman said.\n\u201cThe price includes delivery to the door and helps cover costs associated with the picking, packing and transport of goods.\n\u201cBy streamlining the mix of products and partnering with Australia Post and DHL, we\u2019re able to get more food to more vulnerable customers much faster.\n\u201cWe continue to work hard behind the scenes to ramp up our home delivery capacity for the benefit of priority assist customers.\u201d"}
22 | {"id": "74198940", "timestamp": "2020-04-05 23:57:29+00:00", "source": "dailycaller.com", "title": "\u2018I Felt A Real Pain In My Heart For My Country\u2019: David Benham Arrested Outside NC Abortion Clinic Over Coronavirus Orders", "body": "Police arrested David Benham on Saturday, saying he defied North Carolina\u2019s coronavirus stay-at-home orders.\n Benham and his sons were supporting pro-life sidewalk counselors who offer counseling to \u201cat-risk mothers and babies\u201d heading in and out of Preferred Women\u2019s Health Center. \n \u201cYou know I am well within my constitutional authority to be here,\u201d Benham said as he was handcuffed, a video showed. \u201cYou know that we are doing the right thing.\u201d\n \nPolice arrested David Benham and his son Saturday for violating coronavirus distancing orders while offering sidewalk counseling outside a North Carolina abortion clinic \u2014 an incident he said was targeted.\n Benham, who started the pro-life sidewalk counseling service Cities4Life in 2010, told the Daily Caller News Foundation he received a call from some of the sidewalk counselors Saturday morning saying there were police outside Preferred Women\u2019s Health Center in Charlotte, North Carolina.\n \n Benham is a Christian entrepreneur and former professional baseball player who gained media attention after he and his brother Jason Benham\u2019s reality HGTV show was canceled over the brothers\u2019 religious views.\n Three members of Cities4Life were at the clinic offering counseling Saturday, according to Benham, who said he drove to the clinic with two of his sons after hearing about the police.\n \u201cWe are a federally recognized 501(c)(3) public charity,\u201d he told the DCNF of Cities4Life. \u201cWe are an essential business. We have both a local ordinance, a stay in shelter local ordinance, and a stay in shelter state ordinance.\u201d\n Cities4Life is a publicly recognized charity that provides essential social services \u2014 like an ABC store, he said.\n \n North Carolina Gov. Roy Cooper on March 27 issued a stay-at-home order in place until April 29, prohibiting gatherings of 10 or more people and directing North Carolinians to stay at home except for essential activities or businesses, such as grocery shopping, outdoor activity, taking care of others, and working at essential businesses like hospitals.\n Local outlets reported that police said there were about 50 people protesting at the clinic, but Benham said that information is inaccurate. Cities4Life had three members present at the clinic and a mobile ultrasound unit attended by two members, according to Benham, while about 15 police officers were at the scene. (RELATED: \u2018Hail Satan\u2019: Students Met With Public Masturbation, Glass Hurled, As They Pray Outside Abortion Clinic)\n \u201cBy the time they took me away, there were individuals that came and showed up,\u201d he said. \u201cBut there was no organized groups of people. The Charlotte-Mecklenburg Police Department said there was a cluster, that there were 50 protesters. And of course, none of that is true.\u201d\n Video footage from the incident showed Benham telling a police officer that he and Cities4Life are within their rights to stand outside the clinic, adding that they are practicing social distancing and standing six feet apart.\n \n WATCH:\n David Benham Unlawfully Arrested\n Saturday morning David Benham was unlawfully arrested. Many have labeled him a fake Christian and claimed that he was endangering lives by being out today. This couldn't be further from the truth. David practiced social distancing and exercised every necessary precaution in light of COVID-19. Thank you for all the prayer and support so far. See the whole story in this video.\n Posted by Benham Brothers on Saturday, April 4, 2020\n \n \u201cWe are practicing social distancing, we have cleaned our hands, we are offering help to these mothers,\u201d Benham told the police officers in the video.\n He told the DCNF that Cities4Life took multiple precautions against the virus, including drawing on the sidewalk to mark appropriate distances for the sidewalk counselors.\n He continued: \u201cAnd if you are saying that we don\u2019t have the right to be here, then go in the abortion clinic and make the arrests there.\u201d\n \u201cI don\u2019t have the authority to go in the abortion clinic,\u201d the police officer said. (RELATED: World Health Organization: Abortion Is \u2018Essential\u2019 During Coronavirus Pandemic)\n \u201cSo you don\u2019t have the authority to go into the abortion clinic, but you have the authority to bully us and our sidewalk counselors?\u201d Benham asked the officer.\n \u201cI\u2019m not budging,\u201d he added. \u201cAnd our sidewalk counselors are not budging.\u201d\n \u201cYou know I am well within my constitutional authority to be here,\u201d Benham said, as he was handcuffed. \u201cYou know that we are doing the right thing.\u201d\n The video footage showed Benham telling the officers that he and the other sidewalk counselors are acting within their constitutional rights to be there, and that the group is a recognized charity \u201coffering essential services\u201d within the law to assist women in at-risk situations.\n \u201cI\u2019m actually thankful that when I got tapped on the shoulder, I didn\u2019t even hesitate and just did it,\u201d Benham told the DCNF of his arrest. \u201cThen I felt courage inside of me and I felt a real pain in my heart for my country, and I felt a real threat to my children\u2019s future.\u201d\n \u201cAnd you\u2019ll see on the video, when they cuffed me, I said something and I almost burst out crying. I swallowed it back because I was just hit with such emotion that I can\u2019t believe my country is doing this. I can\u2019t believe these officers,\u201d he said. \u201cAnd it wasn\u2019t the officers. It\u2019s whoever\u2019s instructing the officers. I can\u2019t believe we\u2019ve gotten to this point where we\u2019re going to use a national healthcare emergency, a global healthcare emergency and global healthcare crisis to grab on unlimited power of the government and steal constitutional rights from pro-life Christians.\u201d\n Benham was booked and released four hours later, he said, with an upcoming court date of June 2. He and seven others were charged with Violation of Emergency Prohibitions and Restrictions, according to WBTV.\n \u201cI was already in jail \u2014 just the holding tank \u2014 for about an hour. And then all of a sudden I look up and boom, here comes my 20-year-old with cuffs on,\u201d Benham said.\n \u201cI said, \u2018What on earth happened?\u2019 He was like, \u2018Well, you know, I wasn\u2019t even standing around anyone and they told me I had to leave and there wasn\u2019t even 10 people there.\u2019 And so I was like, \u2018Well, I might as well go down and like my dad.'\u201d\n Benham said the incident showed \u201cviewpoint discrimination\u201d from the mayor of Charlotte, the city council members of Charlotte, and the city attorney of Charlotte.\n \u201cThey\u2019ve been after us for years,\u201d he said. \u201cAgainst conservative voices.\u201d\n \u201cSo once this coven crisis hit, this was their opportunity for a power grab,\u201d he added.\n Benham pointed the DCNF toward a March 28 tweet from Charlotte City Councilwoman Julie Eiselt in which she asked police to shut down pro-life activity at an abortion clinic. Eiselt, who did not respond to a request for comment from the DCNF, noted in another tweet that pro-lifers had been protesting at a Planned Parenthood clinic.\n Neither Charlotte Mayor Vi Lyles nor the Charlotte-Mecklenburg Police Department replied to multiple requests for comment from the DCNF. (RELATED: Texas Governor Deems Religious Services Essential As Police Arrest Southern Pastors For Holding Sunday Services)\n Benham noted that the police understood \u201cvery clearly\u201d that Cities4Life had the right to be at the clinic.\n \u201cThey had one of their officers on the phone with their attorney,\u201d he said. \u201cAnd so every argument I was making, they would then make that argument to their attorney and then come back with what they were trying to say. And every time we just twisted them right up and said, \u2018Nope, Nope. Doesn\u2019t work. Here\u2019s why.'\u201d\n \u201cThey should have never made that arrest,\u201d he added. \u201cThey should\u2019ve never done it. But they did.\u201d\n Republican Texas Sen. Ted Cruz defended Benham in a Saturday tweet, calling the arrest \u201cunconstitutional.\u201d\n \u201cMy friend David Benham was unconstitutionally arrested today in NC for peacefully providing pregnancy counseling outside an abortion clinic. If NC deems abortion \u201cessential,\u201d then pregnancy care services are as well. This is WRONG; Governor Cooper should be ashamed,\u201d he tweeted.\n \u201cThis is an unconstitutional arrest,\u201d Cruz added in another tweet. \u201c@BenhamBrothers exercising core First Amendment rights. PEACEFULLY. In a way fully consistent w/ public safety. Because elected Dems are pro-abortion, they are abusing their power\u2014in a one-sided way\u2014to silence pregnancy counselors.\u201d\n Both Live Action and Live Action\u2019s president Lila Rose weighed in on the matter as well.\n \u201cIt is DESPICABLE unconstitutional for pro-abortion bureaucrats to order the arrest of peaceful Americans who pray offer hope outside abortion facilities, all while allowing the lethal abortion industry to continue killing innocent children during a pandemic,\u201d Rose tweeted.\u00a0\n Content created by The Daily Caller News Foundation is available without charge to any eligible news publisher that can provide a large audience. For licensing opportunities of our original content, please contact licensing@dailycallernewsfoundation.org."}
23 | {"id": "74198931", "timestamp": "2020-04-05 23:57:25+00:00", "source": "urdupoint.com", "title": "Trump Says Nearly 1.7Mln US Citizens Underwent Tests For Coronavirus", "body": "WASHINGTON (UrduPoint News / Sputnik - 06th April, 2020) As many as almost 1.7 million people in the US have been tested for COVID-19, US President Donald Trump told reporters at the White House Coronavirus Task Force briefing on Sunday.\n\"We've done 1.67 million tests, and we have a great system now,\" Trump told reporters.\nThe US president added that the overall situation was getting slightly better.\n\"We see the light at the end of the tunnel. ... Hopefully, in the not-too-distant future we will be proud of the job we all did,\" Trump noted.\nNew York, which has been the most impacted state by COVID-19, for the first time in a week reported fewer deaths from previous days, although there were 600 new fatal cases.\n\"Maybe that's a good sign,\" Trump commented.\nOver 331,000 coronavirus cases have been confirmed in the United States, which is the largest number of cases among all countries. The US death toll from the viral infection is the third largest, it is surpassed only by Italy (over 15,880 deaths) and Spain (more than 12,400 deaths).\nJohns Hopkins University data at 13:30 GMT on Sunday showed that the total number of confirmed coronavirus cases in the US was 312,249 including over 8,500 fatalities."}
24 | {"id": "74198932", "timestamp": "2020-04-05 23:57:25+00:00", "source": "urdupoint.com", "title": "Coronavirus Cases In US Showing Leveling Trend Across All US States - Pence", "body": "WASHINGTON (UrduPoint News / Sputnik - 06th April, 2020) US Vice President Mike Pence says that there is a trend of leveling in the number of COVID-19 cases across all US states.\n\"New cases were down slightly,\" Pence said at the Sunday White House Coronavirus Task Force press briefing, adding that a \"leveling\" trend was reported by all the state governors he talked to.\nPence stressed that, as Trump said earlier at the briefing, there was \"light at the end of the tunnel.\" \"We'll get through this a lot sooner than we first thought it would take,\" the vice president said.\nAccording to the Johns Hopkins University's Coronavirus Resource Center, there are over 335,500 confirmed coronavirus cases in the US, which is the largest number of COVID-19 cases of all countries.\n The United States has the third largest death toll from COVID-19 in the world (over 9,500 fatalities), it is surpassed only by Italy (over 15,880 deaths) and Spain (more than 12,600 deaths). The city of New York alone has registered over 2,250 deaths from COVID-19.\nTrump said during a White House press briefing on Saturday that the number of COVID-19 deaths would be on the rise in the following two weeks."}
25 | {"id": "74198922", "timestamp": "2020-04-05 23:56:41+00:00", "source": "dailymail.co.uk", "title": "Lucy Hale dons a face mask while running errands in Los Angeles", "body": "As the novel coronavirus, COVID-19, continues to see rises in cases and deaths around the country, the Centers for Disease Control has implemented a new recommendation for people to wear face masks during any time in public.\n\nAnd Lucy Hale seems to be following the new suggestion as she was spotted in a face mask while running errands in Los Angeles on Sunday.\n\nThe 30-year-old star looked casual for her outing in green metallic workout leggings paired with a black bomber jacket.\n\nHer black jacket had a large rose embroidered on the back and she paired the look with a dark grey plain tee and black and grey lace-up sneakers.\n\nKeeping her hands free she had a crossbody bag, with a light brown leather strap, across her chest.\n\nThe former Pretty Little Liars star covered the rest of her face with dark metal frame sunglasses.\n\nHer signature brunette locks were pulled back, and out of her face, into a low ponytail as she was spotted getting into her white Mercedes SUV.\n\nThe animal lover took to Twitter on Thursday in support of the American Society for the Prevention of Cruelty to Animals.\n\n'An organization I absolutely adore - @ASPCA - is urgently seeking donations for their COVID-19 Relief & Recovery Initiative to help pets, pet owners, and animal welfare organizations!! Please consider supporting their lifesaving efforts,' she tweeted for her roughly 7.1 million followers along with a link to the organization's emergency relief fund.\n\nLucy has been portraying title character Katy Keene in The CW spin-off of Riverdale since its premiere in February.\n\nThe Tennessee native rose to fame portraying Aria Montgomery in the Freeform series Pretty Little Liars from 2010 to 2017.\n\nLucy had a starring role in the Fantasy Island supernatural horror film that was released on February 14 in theaters.\n\nThe prequel to the 1977 ABC television series earned $48 million worldwide against a production budget of $7 million.\n\nLucy currently has three films in post-production: A Nice Girl Like You, Son Of The South and Big Gold Brick.\n\nShe also is a co-producer of A Nice Girl Like You, which is based on the 2007 popular memoir Pornology by Ayn Carrillo-Gailey."}
26 | {"id": "74198925", "timestamp": "2020-04-05 23:56:41+00:00", "source": "sportskeeda.com", "title": "New WWE NXT Women's Champion crowned at WrestleMania 36 tonight", "body": "New WWE NXT Women's Champion crowned at WrestleMania 36 tonight\n\n\nCharlotte Flair won her second NXT Championship tonight.\n\nFans are already calling the match one of the best of the weekend.\n\n\n\n\n\n\n\n\n\nNews \n\n\n\nModified 06 Apr 2020, 05:23 IST\n\n\n\n\n\n\n\n\n\n Ripley vs Flair at WrestleMania 36Following what was an incredible match between the two at WrestleMania 36, Charlotte Flair defeated Rhea Ripley to win her second NXT Women's Championship.\n'The Queen' spent most of the match working on Ripley's left knee, and while the 'Nightmare' certainly held her own during the bout, it wasn't enough. Flair won the hard-fought battle following a Figure Eight leglock.\n Image courtesy of WWE This was the opening match on the second night of a two night WrestleMania that has had to improvise left and right due to the lockdowns caused by the current COVID-19 pandemic. This is the reason that tonight's matches have been prerecorded and held in an empty WWE Performance Center - save for a few exceptions like the Boneyard and Firefly Fun House match.\nThat being said, Ripley vs Flair was an incredibly well-performed match, with both Superstars attempting to put on a show worthy of a stadium of screaming fans. And that they did, with the majority of opinion expressed on social media sites like Twitter and Facebook expression their joy with the fight, and already calling it one of the best matches of the two nights so far.\nIn the meantime, we'll have to wait and see what kind of impression Flair makes on NXT now that she's the black and gold brand's reigning women's champion.\n\nPublished 06 Apr 2020, 05:23 IST\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFetching more content..."}
27 | {"id": "74198823", "timestamp": "2020-04-05 23:56:26+00:00", "source": "stuff.co.nz", "title": "Coronavirus: 'Traumatised' tourist driver sentenced over fatal crash", "body": "Melanie Giesinger, 28, was fined and disqualified from driving after causing the death of motorcyclist Tane Roderick in a crash near Moeraki on Waitangi Day.\n\nA grieving mother says the\u00a0tourist driver who killed her son \"may not be in jail, but boy she's getting punished\".\n\nMelanie\u00a0Giesinger, a teacher from Austria, appeared for sentencing\u00a0behind closed doors in the\u00a0Auckland District Court on Friday after killing Kiwi motorcyclist Tane Roderick in a crash in Otago on Waitangi Day.\n\nRoderick's family, including\u00a0his Invercargill-based mother Sally Wast, were able to take part in the sentencing via audio visual link, or telephone.\n\nRoderick, 42, died\u00a0when the campervan Giesinger was driving pulled out in front of his motorcycle near Moeraki, south of Oamaru, on February 6.\n\nREAD MORE:\n\n *\u00a0Mum of motorcyclist killed in Moeraki crash says tourist drivers\u00a0should sit test\u00a0\n\n *\u00a0Coronavirus: German teenager sets sights on a mercy flight\n\n *\u00a0Stranded tourists try to charter planes to catch international mercy flights\n\n *\u00a0Coronavirus: US lobbying for its citizens to be allowed to get to Auckland to fly home\n\nGiesinger, 28,\u00a0pleaded guilty in February, but her counsel sought a discharge without conviction, delaying her sentencing until April.\n\nThe rescheduled sentencing\u00a0was going to be held in Dunedin on Wednesday, but was brought forward under urgency\u00a0due to concerns about Covid-19.\n\nGiesinger's travelling companions returned to Austria in February, leaving her to face the sentencing alone.\n\nHer isolation, coupled with New Zealand's coronavirus\u00a0lockdown and Roderick's death,\u00a0had left her \"traumatised\", Wast said.\n\n\"Mentally it is going to weigh on her the\u00a0rest of her life. I think she's been punished enough.\"\n\nIt was unclear when Giesinger could return home, but \"she needs to be with her family\", Wast said.\n\n\"I do feel for her, being here on her own, that must be horrendous for her.\"\n\nGiesinger and Roderick's family met face-to-face at a restorative justice meeting after the last Dunedin court appearance.\n\nWast said the family were \"a pretty intimidating lot\"\u00a0and Giesinger was obviously remorseful.\n\n\"She answered the questions we all asked ... after all it could have been any one of us driving that campervan. She just happened to be the one that day.\"\n\nWast said she continued to grieve for her son and his death\u00a0served as a reminder that \"you never know when your number is up\".\n\nRoderick, who had just celebrated his first wedding anniversary,\u00a0was\u00a0travelling to Invercargill for the Burt Munro Challenge Rally after visiting\u00a0his uncle in Moeraki.\n\nThe police summary of facts said the\u00a0Auckland man\u00a0died instantly when\u00a0Giesinger\u00a0drove her campervan into his path.\n\nGiesinger told police she did not see him.\n\nWast said Giesinger was fined $4500 at Friday's sentencing, and ordered to pay\u00a0reparation to Roderick's family. She was also disqualified from driving in New Zealand for 18 months.\n\nIt is unclear if\u00a0Giesinger\u00a0is able to return home to Austria, but her sentencing comes\u00a0as neighbouring\u00a0Germany helps hundreds of its citizens fly home."}
28 | {"id": "74198787", "timestamp": "2020-04-05 23:55:57+00:00", "source": "usnews.com", "title": "Couples in Quarantine: Stress, Anxiety, Fear of the Unknown", "body": "With all the havoc it's wreaking across the globe, the coronavirus outbreak is naturally having an impact on couples and their relationships."}
29 | {"id": "74198938", "timestamp": "2020-04-05 23:55:57+00:00", "source": "businessinsider.com", "title": "General Motors and Ventec are gearing up to make critically needed ventilators in Indiana to fight the coronavirus pandemic", "body": "On Friday, President Donald Trump used the Defense Production Act to direct General Motors to \"prioritize federal contracts\" for ventilators.GM confirmed that it's retooling a plant in Indiana to manufacture ventilators with Ventec Life Systems.The partnership could increase capacity to more than 10,000 ventilators per month; hospitals confront a critical shortage of ventilators as the COVID-19 coronavirus spreads across the US.GM also said that it would produce surgical masks at a plant in Michigan.Visit Business Insider's homepage for more stories.\n\n\n\nOn Friday, President Donald Trump signed a Presidential Memorandum directing the Secretary of Health and Human Services to use the Defense Production Act to \"accept, perform and prioritize federal contracts\" for ventilators.Trump's move comes after he railed against the automaker on Twitter over the production of the life-saving machines needed to assist medical professionals responding to the coronavirus pandemic.In a statement, the White House accused General Motors of \"wasting time\" and that their fight against the COVID-19 pandemic was too urgent to allow for the give-and-take of the contracting process.GM confirmed that it would build ventilators at a factory in Indiana, in partnership with Ventec Life Systems.The VOCSN critical-care ventilators are FDA-cleared and could begin shipping next month.\n\n\n\n\"Across all manufacturers, there is a global backorder of critical care ventilators capable of supporting patients fighting COVID-19,\" Ventec said in a statement.\"Depending on the needs of the federal government, Ventec and GM are poised to deliver the first ventilators next month and ramp up to a manufacturing capacity of more than 10,000 critical care ventilators per month with the infrastructure and capability to scale further.\"Some details about the use of the factory in Indiana were earlier reported by The New York Times.Ventec said that it would also expand manufacturing capacity at its Bothell, Washington, facility.GM and Ventec announced a partnership earlier this week. But on Friday, President Donald Trump attacked GM and CEO Mary Barra for a deal for FEMA to buy ventilators that reportedly fell through.\n\n\n\nThe companies said that efforts to retool the Kokomo, Indiana, plant, which normally supplies electrical components for vehicles, were underway \"around the clock.\"\n \n \n \n \n \n \n \n \n \n \n \n \n GM will also make surgical masks at a plant in Michigan.\n \n\n \n GM\n \n \n \"Depending on the needs of the federal government, Ventec and GM are poised to deliver the first ventilators next month and ramp up to a manufacturing capacity of more than 10,000 critical care ventilators per month with the infrastructure and capability to scale further,\" Ventec said.According to Ventec CEO Chris Kiple, \"This unique partnership combines Ventec's respiratory care expertise with GM's manufacturing might to produce sophisticated and high-quality critical care ventilators.\"\"This pandemic is unprecedented and so is the response, with incredible support from GM and their suppliers,\" he added. \"Healthcare professionals on the front lines deserve the best tools to treat patients and precision critical care ventilators like VOCSN are what is necessary to save lives.\"The companies said that work started last Friday, March 20, on an immediate plan to mass-produce ventilators, locating more than 700 parts required to assemble\u00a0200,000 ventilators.\n\n\n\n\"GM is in the position to help build more ventilators because of the remarkable performance of GM and Ventec's global supply base,\" added Barra. \"Our joint teams have moved mountains to find real solutions to save lives and fight the pandemic.\"GM also said that it would start making \"FDA-cleared Level 1 surgical masks at its Warren, Michigan manufacturing facility.\"Production starts next week and could create up to 100,000 masks."}
30 | {"id": "74198875", "timestamp": "2020-04-05 23:55:54+00:00", "source": "indiatimes.com", "title": "26-year-old tests positive, cops say he is Tablighi attendee | Ludhiana News - Times of India", "body": "Ludhiana: A 26-year-old man from Rajgarh village, Payal block, tested positive for coronavirus on Saturday evening.\u201cHe is one of the 20 people who returned to Ludhiana after attending a religious congregation from March 13 to 15 at Tablighi Jamaat Markaz in Hazrat Nizamuddin, Delhi,\u201d stated the additional director general of police in a letter to deputy commissioner Pradeep Agrawal, commissioner of police Rakesh Agrawal and senior superintendent of police (rural) Vivek Sheel Soni on April 1.With this, positive cases in Ludhiana district have reached six. Civil surgeon Dr Rajesh Bagga said, \u201cOn Saturday, 46 samples were sent, one tested positive and the report of another is pending. The source of infection is yet to be traced.\u201d\u201cHe had travelled outside Punjab and we are tracking it. We have taken the samples of his family and admitted him to the civil hospital isolation ward late on Saturday night. We will also trace his contacts.\u201dThe 26-year-old told the TOI that he visited Guntur district, Vijayawada, Hyderabad, from March 16 to 23 and stayed at an acquaintance\u2019s house there. On March 23, he took a flight from Hyderabad to Delhi and returned to Ludhiana the next day.He denied attending Tablighi Jamaat in Delhi.The deputy commissioner said, \u201cThe health department is keeping a check on his family. His locality has been sealed and police force deployed there.\u201dSSP (rural) Harpreet Singh, \u201cHis call records show that he was in Ludhiana from March 13 to 15. He had gone to Hyderabad on March 16. He was in Delhi on March 23 and came back to Ludhiana on March 24.\u201dApart from him, five women have tested positive for Covid-19 till now. They had no foreign travel history. The first was a 55-year-old from Gurdev Nagar who tested positive on March 24 and was admitted to Dayanand Medical College and Hospital. On Sunday, her throat swab was again sent to Rajindra Hospital, Patiala. The second patient is a 72-year-old Jalandhar woman admitted to Christian Medical College and Hospital. Her condition is stated to be stable. The third patient, a 42-year-old woman from Amarpura Mohalla, was referred to Rajindra Hospital on March 30. She died the next day. Her 72-year-old neighbour is the fourth case. The fifth case is a 69-year-old woman from Shimlapuri. She too has succumbed to coronavirus.\u2018Admitted, tested, discharged, picked up next day again\u2019The 26-year-old said, \u201cThe health department picked me up from my house on the evening of April 2 and admitted me to the civil hospital isolation ward. They took my throat swab and didn\u2019t serve me dinner. I was told that my report will be out the next day. When I inquired that day, they said it will come on April 4. On April 4 morning when I asked them, they said I tested negative and I was released at 11.30am.\u201d\u201cI requested the health department to drop me home in an ambulance, as it was difficult to get a transport in the curfew. But they refused. I then walked till Dholewal Chowk, from where my father picked me up,\u201d he added.On April 4 night, health department officials called him up and said they were coming to handover to him his reports. \u201cWhen they came, they said I had tested positive and that they had come to pick me up. I have no symptoms like cough and fever. I am perfectly fine. I didn\u2019t go out during the lockdown.\u201dOn whether he attended the Islamic congregation in Delhi, he said, \u201cI never went there. On March 16, I had gone to Delhi by Shan-e-Punjab Express. From there the next day, I boarded Vijayawada Express to reach Hyderabad.\u201dHe lives with his parents, two sisters, wife and two sons. They have been admitted civil hospital isolation ward.Balbir Singh Sidhu, health and family welfare minister, said, \u201cAn inquiry will be marked against those who discharged the patient. Patients will now be told about their report status.\u201d"}
31 | {"id": "74198877", "timestamp": "2020-04-05 23:55:54+00:00", "source": "indiatimes.com", "title": "69-yr-old Shimlapuri woman is second casualty from city | Ludhiana News - Times of India", "body": "Ludhiana: A 69-year-old woman from Shimlapuri with no contact history with a Covid-19 patient became the second casualty in Ludhiana on Sunday, a day when the number of confirmed cases in the district rose to six.The woman was admitted to Fortis Hospital here at 10.09pm on March 31 and she breathed her last in its isolation ward at 2.30pm on Sunday. She had tested positive on April 2. She had stayed with her niece in Mohali from March 17 to March 31 and had commuted there by a bus. However, she had started showing symptoms of cough and breathlessness from March 23. Eight days later, she took an ambulance from Mohali all alone and got herself admitted to Fortis Hospital, Ludhiana.Ludhiana civil surgeon Dr Rajesh Bagga said the condition of the woman deteriorated around 2pm. She had a cardiac arrest and passed away at 2.30pm after cardiopulmonary resuscitation (CPR). Fortis Hospital medical superintendent Dr Shelly Deora told the TOI, \u201cWe could not revive her after cardiac arrest.\u201dThe woman\u2019s daughter-in-law said, \u201cShe was fine when she was admitted on March 31. Then she had diarrhoea, but was having proper meals till April 1. But on April 2, she developed acute respiratory issues and was put on a non-invasive ventilator. However, in the past two days her health deteriorated and she was put on a ventilator.\u201dLudhiana health authorities have sealed her locality in the densely-populated Shimlapuri. \u201cNo one is coming forward to claim her body due to fear psychosis,\u201d said sources in health department.Dr Shelly said, \u201cI called up the additional deputy commissioner, the sub-divisional magistrate, SHOs and the health department. They said we have to take the body to the cremation ground. It\u2019s been more than three hours that the body has been sanitised and zipped up, but family is not ready to come to the cremation ground.\u201dSDM (west) Amrinder Singh Malhi said, \u201cWe are coordinating and have tied up with nodal officer Dr Ramesh Bhagat. Her relatives are in panic and do not want to attend the cremation. We will help the family in cremating the body with the support of police officials.\u201dHowever, a member of her family said, \u201cWe do not know how the body will be taken to the cremation ground.\u201dLater, she was cremated at a ground in Dana Mandi.Earlier, a 42-year-old woman from Amarpura Mohalla was referred to Rajindra Hospital, Patiala, on March 30 and she died the next day. The body was sent to Ludhiana in accordance with health department guidelines.--Tracking the casesSuspected cases till date | 329Samples sent on Sunday | 51Positive cases till date | 6 (5 from Ludhiana and 1 from Jalandhar)Deaths reported | 2Patients who tested negative till date | 270Results awaited | 51Patients screened on Sunday | 334Home quarantined on Sunday | 164"}
32 | {"id": "74198919", "timestamp": "2020-04-05 23:55:53+00:00", "source": "yahoo.com", "title": "Gilead To Donate 1.5M Doses Of Experimental Coronavirus Treatment: 'The Right Thing To Do'", "body": "Gilead Sciences, Inc. (NASDAQ: GILD) is donating 1.5 million doses of remdesivir, its investigational drug for COVID-19, for compassionate use, expanded access and clinical trials, Chairman and CEO Daniel O'Day said Saturday.\u00a0\nThe doses are intended for patients with severe symptoms who will receive them intravenously on a daily basis in a hospital setting, the CEO said in a letter posted on Gilead's website.\u00a0\nThe 1.5 million doses could amount to more than 140,000 treatment courses in COVID-19 patients, depending on the duration of treatment, he said.\u00a0\nThe antiviral drug was first developed by Gilead as a potential treatment for the Ebola and Marburg viruses.\u00a0Multiple clinical trials for the drug are underway in COVID-19 with thousands of patients worldwide participating, the company's CEO said Saturday.\u00a0\nThe drug is investigational and unapproved, and its safety and efficacy are not yet known, according to Gilead.\n\"Having a potential treatment in our hands comes with significant responsibility,\" O'Day said.\u00a0\n\"Providing our existing supplies at no charge is the right thing to do, to facilitate access to patients as quickly as possible and in recognition of the public emergency posed by this pandemic.\"\nBenzinga is covering every angle of how the coronavirus affects the financial world.\u00a0For daily updates,\u00a0sign up for our coronavirus newsletter.\nGilead Sets Goal Of Producing 1M More Remdesivir Doses This Year\nAs of Sunday, there are 1,252,265 confirmed coronavirus cases globally and\u00a068,147 deaths, according to Johns Hopkins University data. 238,675 people have recovered from the virus, according to the university.\u00a0\nOver 1,700 patients have been treated programs where Gilead has provided remdesivir on a compassionate use basis for children and pregnant women, O'Day said.\u00a0\nThe company has set a goal of producing more than 500,000 remdesivir treatment courses by October and 1 million by the end of 2020.\nThe production of the drug requires specialized chemistry, multiple chemical reactions, scarce raw materials and sterile manufacturing capabilities, the CEO said. Gilead has managed to cut the end-to-end manufacturing timeline for remdesivir from about one year to roughly six months, he said.\u00a0\nSee more from Benzinga\n\u00a9 2020 Benzinga.com. Benzinga does not provide investment advice. All rights reserved."}
33 | {"id": "74198855", "timestamp": "2020-04-05 23:55:52+00:00", "source": "abc.net.au", "title": "Latest coronavirus cases in Tasmania linked to North West Regional Hospital", "body": "Two more cases of coronavirus in Tasmania have been linked to an outbreak at a hospital in the state's north-west, the Premier has confirmed.\n\nThe cases were announced on Sunday night, but Premier Peter Gutwein only confirmed they were linked to the hospital on Monday morning.\n\nThe two new cases include a health worker and a patient at the North West Regional Hospital (NWRH) in Burnie.\n\nThree other cases, all health workers, have previously been linked to the hospital.\n\nMr Gutwein said it was important residents in the north-west \"understand this is serious\" and said an outbreak investigation was underway to trace the sources of the infection.\n\nIn addition to the two new cases linked to the NWRH, the hospital's chief medical officer Tony Lawler said another patient in the Mersey Community Hospital in Latrobe near Devonport had tested positive for coronavirus after being transferred from the NWRH on April 2.\n\nAt the time of the transfer, the patient did not have coronavirus symptoms, Professor Lawler said.\n\nTasmania has 86 cases of COVID-19 in total.\n\nTwo other cases announced on Sunday were linked to travel on the Ruby Princess cruise ship and contact with a known COVID-19 case.\n\nForty have been in the south, 24 in the north, 19 in the north-west and three people from interstate who were diagnosed in Tasmania.\n\nMore to come."}
34 | {"id": "74198939", "timestamp": "2020-04-05 23:55:51+00:00", "source": "foxnews.com", "title": "Celebrity livestreams you can watch while social distancing during the coronavirus pandemic", "body": "Here are some live streams by celebrities you can watch online as social distance indoors during the coronavirus pandemic.\n\n\n\n\nGet all the latest news on coronavirus and more delivered daily to your inbox.\u00a0Sign up here.\nAs coronavirus has all but dried up releases in the worlds of music, movies and television, it's easy to become bored at home while quarantining.\nWhile streamers like Spotify and Netflix have nearly endless catalogs of content, some might be yearning for something a little different to keep their mind off of things.\nREESE WITHERSPOON SAYS SHE'S TRYING 'TO BE PATIENT' WITH FAMILY DURING CORONAVIRUS QUARANTINE\nLuckily, there are plenty of celebrity livestreams to keep fans occupied, whether they're looking for music, talk shows or something else.\n\n Miley Cyrus is hosting a daily talk show on Instagram featuring celebrity guests.\n (Photo by Presley Ann/WireImage)\n\n\nHere's a look at the livestreams airing during the coronavirus quarantine:\nBillboard's \"Live At-Home\" series, which can be streamed on Facebook, provides fans with live, 30-minute sets performed by the likes of Josh Groban, Lauren Jauregui, JoJo and more.\nDiplo offers livestreams of full DJ sets that he mixes in his living room. Fans can tune in on YouTube.\nMiley Cyrus has started a daily talk show called \"Bright Minded,\" which features all-star guests like Reese Witherspoon and Demi Lovato. Check out the show on her Instagram page.\nJADA PINKETT SMITH TALKS RELATIONSHIP-BALANCING AMID CORONAVIRUS PARANTINE: 'I NEED 2 HOURS, PLEASE'\nDeath Cab for Cutie's Ben Gibbard is streaming live from his home every day, playing hour-long sets. Watch them on the band's Facebook page.\nGlobal Citizen is offering a \"Together At Home\" series, featuring the likes of Jennifer Hudson, Chris Martin, John Legend and more, which can be streamed on the organization's\u00a0Instagram.\nChristine and the Queens broadcasts concerts on Instagram every day.\n\n Katherine McPhee and David Foster put on daily concerts from their home.\n (Bennett Raglin/Getty Images for Breast Cancer Research Foundation, File)\n\n\nKatharine McPhee and her husband David Foster are putting on concerts every evening from their home, which can be seen on Instagram.\nFollow John Mayer on Instagram to get updates on his talk show, \"Current Mood.\"\nTalk show hosts like Jimmy Kimmel and Jimmy Fallon are offering monologues and interviews on YouTube.\nHOW MEGHAN MARKLE, PRINCE HARRY ARE SELF-ISOLATING: REPORT\n\"Live with Kelly and Ryan\" has gone remote, and can be watched on YouTube.\nChris Harrison, host of \"The Bachelor\" franchise, holds nightly \"Group Dates,\" where he and his girlfriend chat with former franchise contestants on Instagram.\n\n Chris Harrison hosts a talk show on Instagram featuring contestants from \"The Bachelor\" franchise. (Photo by Paul Archuleta/Getty Images)\n \n\n\nOn Thursday, March 26, TikTok will play host to EduTok, which will feature livestreams from Jessica Alba, Dr. Phil, Billy Nye and more to offer life advice, health tips and thoughtful conversations.\nCLICK HERE TO GET THE FOX NEWS APP\nOn Sunday, March 29, FOX will air a \"Living Room Concert for America,\" which will be hosted by Elton John and feature at-home performances from superstars like Tim McGraw, Mariah Carey, Billie Eilish and many, many more."}
35 | {"id": "74198729", "timestamp": "2020-04-05 23:55:50+00:00", "source": "indiatimes.com", "title": "Sherpur colony residents \u2018attack\u2019 health dept team | Ludhiana News - Times of India", "body": "Times News NetworkLudhiana: Residents of a colony in Sherpur allegedly attacked a health department team when it went there to pick up a Covid-19 suspected case on Sunday afternoon.Sahnewal senior medical officer Dr Poonam Goyal said, \u201cA health department team reached the colony after receiving information that its resident is a coronavirus suspected case and that he had come in contact with Tablighi Jamaat attendees. The team comprised two workers of 108 ambulance and three multipurpose health workers.\u201dAs soon as the team made the suspected case sit in the ambulance, a locality resident started making a video of it. When the team objected to it, the man began manhandling them. Later, other residents also joined him and attacked the team with sticks. They also tried to block the way of the ambulance, Goyal added.Ambulance driver Dilpreet Singh and health worker Gurdeep Singh have received minor injuries.A compliant has been lodged with Moti Nagar police.Moti Nagar police station additional SHO Surinder Singh said, \u201cOn receiving the information, we reached the spot. The team has got their medical examination conducted. An FIR will be lodged after recording their statements.\u201d"}
36 | {"id": "74198645", "timestamp": "2020-04-05 23:55:47+00:00", "source": "abc.net.au", "title": "Australia's coronavirus death toll hits 37 as numbers in NSW continue to rise", "body": "Australia's coronavirus death toll has doubled in the past week after two new fatalities in NSW took the national total to 37.\n\nNSW Health confirmed an 86-year-old man and a 85-year-old man with COVID-19 died yesterday.\n\nOn March 30 Australia had 17 confirmed coronavirus fatalities, but that number has swollen in the past week.\n\nThe increase is particularly pronounced in NSW, where there has been 18 COVID-19 deaths, including six in the past two days.\n\nNSW Health's executive director of protection Dr Jeremy McAnulty said the total number of new cases in the state was decreasing.\n\nIn the 24 hours to 8:00pm Sunday, there were 57 new coronavirus infections in NSW, taking the state's total to 2,637.\n\n\"The numbers we are seeing in the last few days have been really hopeful,\" Dr McAnulty said.\n\n\"It seems that the actions we are taking in terms of case finding and contact tracing have been working.\"\n\nEleven coronavirus deaths, and more than 600 cases, have been linked to the Ruby Princess cruise ship, which docked at Port Kembla this morning.\n\nNSW Police Commissioner Mick Fuller said there were 1,040 crew members from 50 different countries still on the ship.\n\nAbout a fifth of them have COVID-19 symptoms.\n\nYesterday, police announced a criminal probe to examine if the ship's operator, Carnival Australia, downplayed potential COVID-19 cases before it docked in Sydney last month.\n\nThe ship will get fresh supplies and everyone on board will be tested so healthy crew members can be repatriated.\n\nDr McAnulty said it was \"pleasing\" to see a drop in the latest infections figures in NSW, but noted there were fewer tests done at the weekend.\n\nThere have been more than 300,000 screenings for the virus done across the country.\n\nNSW Health said it was encouraging doctors and clinics to expand their COVID-19 testing in regions where there was evidence of local transmissions.\n\n\"So people with symptoms of acute respiratory infection, so cough, shortness of breath, sore throat or fever [should] go talk to their GP or go to a clinic for testing,\" Dr McAnulty said.\n\nHe said areas which NSW Health were looking to expand screening in Sydney included Ryde, Macquarie Park, Woollahra, Manly, Waverley and Dee Why.\n\nOutside Sydney, Dr McAnulty said testing should be increased in Byron, Lake Macquarie, Port Macquarie, Broken Hill and Nowra.\n\nLast week, a pop-up testing clinic was established at Bondi Beach after several backpackers were linked to an outbreak in Sydney's eastern suburbs."}
37 | {"id": "74198647", "timestamp": "2020-04-05 23:55:47+00:00", "source": "indiatimes.com", "title": "State will use SC breather on border row to formulate effective response: MP | Mangaluru News - Times of India", "body": "Mangaluru: A direction from the Supreme Court to the Union health secretary on Friday, to hold consultations with her counterparts in Karnataka and Kerala to find a solution to the deadlock arising from Karnataka\u2019s decision to close its borders and not allow people to enter from Kasaragod, will be heard on April 7, which has given Karnataka a breather for some time. The state will use this time to formulate its response, to negate a direction from the Kerala high court to the Centre in this regard.Asserting there are no issues in this regard till April 7, when the Supreme Court takes up the matter for further hearing, Dakshina Kannada MP Nalin Kumar Kateel said, \u201cThe status quo will continue till then. Karnataka will file one more affidavit before the apex court on that day, explaining reasons on why the borders between Karnataka and Kerala must remain sealed,\u201d putting in context the record number of Covid-19 cases in that state.The Dakshina Kannada district administration is worried as neighbouring Kasaragod district has almost as many Covid-19 cases as is there in the whole of Karnataka.\u201cWe have no issues with Kerala in normal times. However, the Covid-19 pandemic has created an extreme situation, where allowing patients from Kasaragod into the city will put tremendous pressure on the existing health infrastructure, that should cater to the needs of people of the district,\u201d Nalin surmised."}
38 | {"id": "74198666", "timestamp": "2020-04-05 23:55:47+00:00", "source": "yahoo.com", "title": "Stock market news live updates: Stock futures rise as investors monitor coronavirus case counts", "body": "Stock futures rose Sunday evening as investors braced for another week of closely monitoring developments around the global coronavirus outbreak and policymakers\u2019 responses to the pandemic.\nOver the weekend, new coronavirus cases continued to rise in major centers around the world, albeit at an at least temporarily slower pace than in recent weeks.\nThe state of New York, which leads the nation with about 122,000 positive cases, on Sunday reported 594 new coronavirus deaths, or a decrease from the 630 reported on Saturday. But Governor Andrew Cuomo in Sunday press briefing cautioned against conflating the state\u2019s first reported decrease in both death and total case count with the start of a trend, and reiterated that the state health system remains strained with patients. Total fatalities in New York have topped 4,100 to date.\nElsewhere, Italy reported the slowest rise of new deaths in two weeks on Sunday. France and Spain \u2013 two other European centers for the virus \u2013 also reported a deceleration in new deaths. In Britain, where more than 47,000 people have been infected, Prime Minister Boris Johnson was admitted to a hospital for further testing 10 days after testing positive for the coronavirus.\nOfficial government guidance around controlling the spread of the coronavirus continues to be dynamic in the U.S., with the Centers for Disease Control and Prevention on Friday adding a recommendation for Americans to wear cloth face coverings when leaving their homes.\nAnd U.S. leaders\u2019 rhetoric around the outbreak is still dire, with many Americans in states across the country preparing to remain under stay-in-place orders for at least the coming weeks.\nOn Sunday, U.S. Surgeon General Vice Admiral Jerome Adams told Fox News on Sunday that this coming week \u201cis going to be the hardest and the saddest week of most Americans\u2019 lives, quite frankly,\u201d adding that it will be \u201cour Pearl Harbor moment.\u201d He also noted in the interview, however, that Americans could \u201cchange the trajectory of this epidemic\u201d by following social distancing guidelines.\nAnd for equity markets, visibility as to the duration and extent of the outbreak would be a welcomed respite. Stocks ended last week lower as volatility returned to equity markets following the prior week\u2019s advances, as rapidly deteriorating economic data began to reflect the impact of the coronavirus outbreak. The March jobs report \u2013 which collected data just through about the 12th of the month \u2013 already showed U.S. employers cut 701,000 non-farm payrolls, before widespread social distancing measures had even gone into effect.\nWith this in mind, Thursday\u2019s initial jobless claims report will again be a closely watched print, with consensus economists expecting to see 5 million new unemployment claims filed for the week ended April 4. The prior week, jobless claims skyrocketed to a record 6.648 million.\n\u2014\n6:25 p.m. ET Sunday: Stock futures rise\nHere were the main moves during the overnight session for equity futures, as of 6:25 p.m. ET on Sunday:\nSP 500 futures (ES=F): up 37 points, or 1.49% to 2,519.75\n\nDow futures (YM=F):\u00a0up 288 points, or 1.37% to 21,245.00\n\nNasdaq futures (NQ=F):\u00a0up 125.5 points, or 1.67% to 7,648.25\n\n\n\u2014\n6:18 p.m. ET Sunday: Boeing extends closure of Puget Sound, Washington operations\nBoeing (BA) said in an announcement Sunday that it is extending the production facility closures at its Puget Sound, Washington-area facilities, \u201cin light of the company's continuing focus on the health and safety of employees, current assessment of the spread of COVID-19 in Washington state, the reliability of the supply chain and additional recommendations from government health authorities.\u201d\nPreviously, Boeing had anticipated a 14-day temporary suspension of these facilities in Washington state, starting March 25. At the time, Boeing said it would grant paid leave to employees who could not work from home for 10 days. Boeing did not provide an update on its leave policy in its latest public announcement Sunday.\nThe floor of the New York Stock Exchange (NYSE) stands empty as the building prepares to close indefinitely due to the coronavirus disease (COVID-19) outbreak in New York, U.S., March 20, 2020. REUTERS/Lucas Jackson\nMore\n\u2014\nFollow Yahoo Finance on\u00a0Twitter,\u00a0Facebook,\u00a0Instagram,\u00a0Flipboard,\u00a0LinkedIn, and\u00a0reddit.\nFind live stock market quotes and the latest business and finance news\nFor tutorials and information on investing and trading stocks, check out Cashay"}
39 | {"id": "74198627", "timestamp": "2020-04-05 23:55:46+00:00", "source": "indiatimes.com", "title": "Seized vehicles will be released after payment of fine: Police | Mangaluru News - Times of India", "body": "Mangaluru: The owners of more than 600 vehicles seized by the Mangaluru city traffic police for violating lockdown orders have been booked under Indian Penal Code Section 270 (malignant act likely to spread infection of any disease dangerous to life) and Motor Vehicles Act, said a senior police source.\u201cThese vehicles are seized to prevent people from commuting, which can lead to the spread of Covid-19. We had seen people taking joy rides across the city, due to which we have stopped them. The city police personnel have seized more than 600 motorbikes and fined the offenders under IPC Section 270 and the Motor Vehicles Act,\u201d said a senior police source.The source added: \u201cThe police will only release the vehicles after appropriate fines are paid for the violations. It is advisable that everyone stays at home and that they do not to venture out aimlessly. It is in the larger interest of society. The drive of seizing vehicles will continue till the lockdown is in force.\u201dAnother official from the traffic division revealed that the seizure of vehicle has resulted in less unnecessary movement of motorists."}
40 | {"id": "74198612", "timestamp": "2020-04-05 23:55:45+00:00", "source": "indiatimes.com", "title": "No cases in Gurgaon in past five days, but testing curve slopes too | Gurgaon News - Times of India", "body": "Gurgaon: The district of Gurgaon may not have reported any novel coronavirus (Covid-19) case in the past five days, but the fact that fewer people have been tested daily since March 18, as revealed by government data, could be a factor.Moreover, only 365 samples have so far been taken in a city that has a population of more than 25 lakh.From a high of 50 people tested on March 21, the number dwindled to 23 on Sunday. The number of people screened at the two civil and 12 private hospitals under government surveillance is a mere 5,974, most of whom were not tested.The number of daily screenings has also declined. On March 18, 19 and 20, the department screened 1,527, 723 and 1,358 people, respectively. From March 26, when only 258 people were screened, the figure dipped to just 30 people on March 27, 26 on March 28 and 49 on March 29.Gurgaon does not have any government testing centres for Covid-19 yet.Even though private players have been roped in by the government, they have to send samples to PGI Rohtak for validation.\u201cTests are conducted on people with symptoms. Everybody doesn\u2019t need to be tested. People with travel history but no symptoms of Covid-19 are being quarantined,\u201d said JS Punia, CMO."}
41 | {"id": "74198570", "timestamp": "2020-04-05 23:55:43+00:00", "source": "business-standard.com", "title": "Pimpri Chinchwad: 3 COVID-19 patients test negative,to go home", "body": "Three COVID-19 patients from Pimpri \n\n\n\nChinchwad area in Pune district, whose repeat samples tested negative on Thursday, will be discharged from the hospital on Friday, an official said.\n\n\"The three patients, who tested negative two times after their 14 days of isolation period, will be discharged from the hospital shortly today,\" a health official from Pimpri Chinchwad Municipal Corporation (PCMC) said.\n\nPimpri Chinchwad has so far recorded 12 coronavirus positive cases, the official said, adding that no new case was detected in the last seven days."}
42 | {"id": "74198568", "timestamp": "2020-04-05 23:55:42+00:00", "source": "msnbc.com", "title": "IMF chief Georgieva says the world is in a recession, containment will dictate strength of recovery", "body": "International Monetary Fund chief Kristalina Georgieva said Friday that the global economy is now in a recession thanks to COVID-19, but that she's heartened to see world leaders finally realizing that only a coordinated effort will be able to stem the spread of the novel coronavirus.\n\n\"We have stated that the world is now in recession and that the length and depth of this recession depend on two things: Containing the virus and having an effective, coordinated response to the crisis,\" she told CNBC's Sara Eisen.\n\n\"I'm very encouraged by what I see now. I see much clearer understanding [among global leaders] that if we don't beat it everywhere we won't be able to get out of it,\" she added.\n\n\"We should not go ... with small measures now when we know that it is a gigantic crisis,\" she said minutes later. \"We've never seen the world economy standing still. Now we [do]. How we go about revitalizing it is another important topic.\"\n\nThe IMF has taken extraordinary measures in recent weeks to help combat the economic toll COVID-19, and efforts to contain its spread, has had on economies around the globe.\n\nOn March 16 the international body said it \"stands ready\"\u00a0to use its $1 trillion lending capacity to help countries around the world that are struggling with the humanitarian and economic impact of the novel coronavirus.\n\nGeorgieva wrote at the time that such support could be used to aid its members, especially emerging and developing countries. The IMF's Catastrophe Containment and Relief Trust \"can help the poorest countries with immediate debt relief, which will free up vital resources for health spending, containment, and mitigation.\"\n\nHer comments came near the end of yet another violent week on Wall Street, with the S&P 500 down nearly 3% in midday trading in New York. Both the S&P 500 and Dow industrials are up more than 10% this week, however, after the Federal Reserve moved to pump cash into the U.S. economy through historic easing policies and zero-interest loans.\n\nAmerican investors also found relief in moves by Congress toward a massive, $2 trillion stimulus package that, if passed, would provide millions of citizens with quick infusions of cash among other provisions.\n\nThe S&P 500 and Dow Jones are each down at least 25% from their all-time highs hit as recently as February.\n\nSubscribe to CNBC PRO for exclusive insights and analysis, and live business day programming from around the world."}
43 | {"id": "74198566", "timestamp": "2020-04-05 23:55:41+00:00", "source": "abc.net.au", "title": "Australian doctors design and make medical equipment needed to fight coronavirus", "body": "Australian doctors who are worried the system will not be able to provide them with the equipment they need to protect themselves and their patients during the COVID-19 pandemic are looking at ways to design and produce their own.\n\nDoctors are concerned about the availability of equipment to protect both themselves and patients, one Melbourne anaesthetist, who wished to remain anonymous, told the ABC.\n\n\"Many doctors and health professionals are very concerned and confused about the requirements for, and current supply of, personal protective equipment (PPE) for hospitals,\" she said.\n\n\"Some hospitals now have less than one week of available stock of this type of equipment to deal with any potential or known COVID-positive patients.\n\n\"This situation is applicable to normal or emergency surgery, emergency rooms and inpatient ward care, as well as the treatment of COVID-positive patients.\"\n\nA large centralised group involving Victorian university staff, clinicians and manufacturers has been working tirelessly to develop suitable products and to co-ordinate the supply and demand of these essential items, and it has begun to network with other similar groups across Australia and internationally.\n\nThey have reached out to philanthropical organisations and local engineers and manufacturers to open up supply lines and found them keen to help.\n\nThe PPE items they are working to create in order to reduce the risk to staff and secure their safety include:\n\nOn top of the doctors' efforts, a Department of Health and Human Services (DHHS) task force has been established to assess this dynamic supply and demand situation, while the Federal Department of Industry, Science, Energy and Resources has set up a ventilator task force.\n\nAll DHHS-supplied equipment needs to be approved by the Therapeutic Goods Administration (TGA).\n\nThe TGA has created a rapid approval process to speed this up for COVID-related equipment.\n\nCon Kolivas, a retired anaesthetist and software engineer who is helping to coordinate one of the groups, said it started as a casual chat between a few people about the lack of ventilators in Italy at the time.\n\nThey wondered whether it would be possible for Australia to build some kind of simple ventilator in case of a shortage locally.\n\n\"The rate of infection of medical staff in the worst-affected areas overseas is now very high and, to make matters worse, doctors who've been infected at the front line appear to have a higher death rate than people who've caught it in the community,\" he said.\n\n\"I and others approached people from different disciplines in industry, medicine, engineering, software and so on about what we could do and found a cohort of people willing to help out.\n\n\"After the initial discussion about ventilators, talks turned to things we could manufacture locally and personal protective equipment (PPE) was top of the list.\n\n\"Government and health suppliers don't actually give us any of this sort of equipment, so we needed to innovate because there isn't an easy path to find these novel pieces of equipment.\"\n\nEmergency physician and intensive care fellow Arun Ilancheran said a severe shortage of equipment was looming.\n\n\"Our group feels is it imperative that we source local engineers and manufacturers to continue to have the supply chain of the essential equipment that we need to save lives during this pandemic.\n\n\"We are aware that as the lockdown phase gets stricter, we will have further supply chain issues.\"\n\nDr Kolivas said the Victorian Government was keen to support any firm designs the group could come up with, but for any complex designs, the regular government channels of approval and funding could slow things down.\n\nFortunately, various philanthropical organisations were also very willing to assist, he said.\n\n\"With the help of 3D printing it makes it possible to tackle any kind of design we want,\" Dr Kolivas said.\n\n\"The problem with 3D printing is it's slow, so it's great for producing the prototypes, but you can't mass produce them if each one takes two hours to print.\"\n\nThat is where support from local manufacturers comes in.\n\nDr Kolivas said that, again, there was a desire to help.\n\nToyota is one example of a company which has offered its design and engineering capabilities to produce equipment on a large scale.\n\nCrucially, Dr Kolivas said, ventilator manufacturer Medtronic had opened up one of its designs for free use during the pandemic, without intellectual property restrictions, meaning there was potential for manufacturers to produce the vital piece of equipment in Australia.\n\nA website, COVID SOS, has been set up as a central hub for the various groups out there working on novel solutions.\n\nIt is also trying to address frontline medical equipment shortages through community-sourced methods of design and manufacture.\n\nHere are some examples of the equipment the group is working on:\n\n\"The \"intubation box\" is an example of an alternative novel PPE to deal with the unique threat of coronavirus. When a patient is so severely affected by the respiratory complications that they need to be put on a ventilator, they need to have a tube put into their trachea to connect them up to the ventilator. That particular procedure puts the doctor (usually an anaesthetist, intensive care specialist, or emergency physician) and assisting staff in very close proximity with the patient's respiratory tract \u2014 they're literally staring down the patient's throat. The potential for aerosol exposure there is extreme, and our clinicians had seen perspex shells used overseas for that scenario to limit that exposure. We developed our own solution, as you can see in the diagram, where the patient is under perspex with rubber-like seals to drop around the patient, and it has self-sealing hand holes for the clinicians to do their intubation. The design was revised and simplified a few times and is made from laser-cut perspex, so is ultimately not that complex to build, which is important. It has been tested clinically with success already and we're looking to produce a number of these for multiple hospitals.\"\n\n\"The facial shield is a very simple guard to/from the staff member which provides an impermeable barrier to any aerosols being sprayed in either direction. It obviously doesn't provide a perfect airtight seal but it affords a great deal of confidence when performing procedures on infected patients. We were able to prototype these from an open-source design on the internet and 3D print them. 3D printing has allowed us to rapidly get a design built, so it allows for rapid prototyping, but is very slow in production. A local manufacturer has taken up the need for facial shield designs and has said they'll be able to produce them in the thousands. We have been connecting hospital networks with this manufacturer to allow them to test out their prototypes and they should be able to order them immediately.\""}
44 | {"id": "74198541", "timestamp": "2020-04-05 23:55:39+00:00", "source": "yahoo.com", "title": "Oil Retreats as Meeting Delay Raises Doubts for Price War Truce", "body": "(Bloomberg) -- Crude fell sharply in Asia after a delay to a planned meeting of top producers to discuss output curbs raised doubts over the prospects for an agreement.\nBrent futures dropped as much as 12%, after jumping almost 14% on Friday. The OPEC+ bloc including Russia will hold a virtual gathering on April 9 instead of Monday after fresh divisions emerged. Saudi Arabia and Russia have indicated that they want the U.S. to join any agreement, but President Donald Trump had only hostile words for OPEC on Saturday, and threatened tariffs on foreign oil.\nState oil producer Saudi Aramco has delayed until Thursday an announcement on its official selling prices for May, according to people with knowledge of the situation, to await signs of what may happen at the meeting. That comes as the International Energy Agency said that the deepest production cuts in the oil industry\u2019s history wouldn\u2019t be enough to steady a crude market in which demand has been ravaged by the coronavirus.\n\u201cThe likelihood of a deal being done is extremely low,\u201d said Daniel Hynes, senior commodities strategist at ANZ Bank. \u201cCertainly the type of agreement you\u2019d need to stabilize the market is a long shot given how much demand had been hit.\u201d\nBrent crude fell $2.14 a barrel to $31.97 at 6:52 a.m. Singapore time after earlier dropping to as low as $30.03. The contract\u2019s six-month contango widened to $5.58 a barrel from $3.96 on Friday.\nWest Texas Intermediate futures in New York declined 7.3% to $26.28 a barrel after earlier dropping as much as 11%.\nBrent futures rallied 37% last week, while WTI ended the week up 32%, as Riyadh and Moscow appeared to move toward a resolution to their damaging battle for market share. Prices are still less than half the levels at the start of the year, with the coronavirus crisis crushing demand.\nFor more articles like this, please visit us at bloomberg.com\nSubscribe now to stay ahead with the most trusted business news source.\n\u00a92020 Bloomberg L.P."}
45 | {"id": "74198507", "timestamp": "2020-04-05 23:55:23+00:00", "source": "thehill.com", "title": "Fauci, Navarro got into heated argument over unproven COVID-19 treatment: report", "body": "Dr. Anthony Fauci Anthony FauciSunday shows preview: As coronavirus spreads in the U.S., officials from each sector of public life weigh in Trump warns 'there will be a lot of death' in the coming week How deadly is the coronavirus? MORE, the nation's top infectious disease expert, reportedly clashed recently with President Trump Donald John TrumpPelosi eyes end of April to bring a fourth coronavirus relief bill to the floor NBA to contribute 1 million surgical masks to NY essential workers Private equity firm with ties to Kushner asks Trump administration to relax rules on loan program: report MORE's top trade representative Peter Navarro over the malaria drug hydroxychloroquine and its use as a possible treatment for COVID-19.\n\nDuring a meeting Saturday first reported by Axios, Navarro reportedly accused Fauci of opposing the administration's temporary ban on travel from China after Fauci cautioned against the administration promoting the use of hydroxychloroquine to treat coronavirus.\n\n\"You were the one who early on objected to the travel restrictions with China,\" Navarro reportedly told Fauci.\n\nThere's no evidence Fauci has ever publicly criticized the administration's approach to travel from China amid the outbreak, and on March 12 Fauci praised such a policy during a press briefing.\n\nTrump officials including the president himself have touted the possibility of hydroxychloroquine as a treatment for coronavirus, though the drug is not proven to be effective according to Fauci himself during a recent press conference.\n\n\"The answer is no,\" he said in late March, adding: \"And the evidence that you're talking about ... is anecdotal evidence.\"\n\n\"There has never been a confrontation in the task force meetings like the one yesterday,\" one source familiar with Fauci and Navarro's dispute told Axios. \"People speak up and there's robust debate, but there's never been a confrontation. Yesterday was the first confrontation.\"\n\nThe White House did not immediately return a request for comment on the exchange from The Hill.\n\nCoronavirus cases in the U.S. have topped 300,000\u00a0as of the latest numbers from the Centers for Disease Control and Prevention (CDC)."}
46 | {"id": "74198475", "timestamp": "2020-04-05 23:54:09+00:00", "source": "ctvnews.ca", "title": "Surrey should delay its police transition due to outbreak, city councillor says", "body": "SURREY -- \n\tSurrey city councillor Linda Annis was against the transition to a municipal police force before the COVID-19 outbreak. Now, she says, she\u2019s even more concerned.\n\n\n\t\u201cWe\u2019re in a crisis right now in B.C., Canada and throughout the world,\u201d Annis said. \u201cThis not the time for us to be changing badges for the sake of changing badges.\u201d\n\n\n\tAnnis points to the economic hardship many people in Surrey and other Lower Mainland municipalities are dealing with right now, with business closing down and laying off employees.\n\n\n\tThe City of Surrey itself has temporarily let go of 140 full-time staff members at Surrey libraries.\n\n\n\t\u201cPeople are unemployed, worrying about rent, mortgage payments and something as simple as putting food on the table for their families,\u201d Annis added.\n\n\n\tShe said the city needs to be focusing on providing that kind of service to people now, not focusing on the transition to a new police force.\n\n\n\tSurrey mayor Doug McCallum\u2019s plan is to have the force running by this time next year, at a cost of $192-million in its first 12 months.\n\n\n\tOn Sunday, the city said it needed more time before it could officially announce whether COVID-19 would impact the transition, but a Surrey resident shared an email with CTV News that hinted a possible response.\n\n\n\tThe email, signed by the Surrey Policing Transition Team and dated March 17, reads, in part, \u201cat this time there is no impact from COVID-19 on the delivery of the policing transition project.\u201d\n\n\n\tThe provincial government also said it needed more time to provide a comment on where it stands in regard to a possible delay in the Surrey police transition because of COVID-19.\n\n\n\tMeanwhile, Annis said she will continue to call on the province to order a referendum on the transition."}
47 | {"id": "74198467", "timestamp": "2020-04-05 23:54:05+00:00", "source": "indiatimes.com", "title": "Startups demand liquidity lifeline to stay afloat - ETtech", "body": "Illustration: Rahul AwasthiIndia's startups are lobbying the government for a lifeline as they cope with an existential liquidity crisis amid a disruption of their ecosystem due to Covid-19, the national lockdown and a spiraling global market. Half of them may be forced to close if no support is forthcoming, according to one of the letters sent to the finance minister.Startups sought loans free of interest or linked to income tax and goods and service tax (GST) refunds to meet funding needs in a March 30 letter to finance minister Nirmala Sitharaman signed by the Confederation of Indian Industry, Nasscom, Indian Private Equity and Venture Capital Association as well as leading entrepreneurs and venture capital investors. Among the 75 signatories are Kris Gopalakrishnan, Rajan Anandan, TV Mohandas Pai, Arihant Patni and Mukesh Bansal.The startups want public sector banks and state-controlled Small Industries Development Bank of India (Sidbi), the implementing agency of the \u20b910,000 crore Fund-of-Funds, to offer loans up to the full extent of the refunds they're due.\"These refunds are undisputed... but are yet to get transferred to the startups due to various reasons,\" said Siddarth Pai, founding partner of 3one4 Capital and a signatory to the March 30 joint letter.\"While these are assets on the balance sheet of the startups, what's needed now is the translation of this to cash,\" said the letter.This will provide startups with liquidity for the near-to-short-term without stressing government resources, the note said.\"Covid crisis threatens to destroy all of the progress and future potential of our startup ecosystem in a few short months,\" the letter stated. \"We seek your urgent intervention to help ensure India's startup ecosystem survives... We need the startup ecosystem to survive in order to help the economy bounce back.\"Another communication from LocalCircles, an online community platform that represents 29,000 startups and small and medium enterprises (SMEs), to the finance minster said \"startups want that some or all of CSR (corporate social responsibility) funds be permitted into startups as grants\".Companies should be allowed to invest in startups and avail CSR benefits and claim it's CSR, the letter said. \"The startup and SME community is hopeful that the government will consider these asks with the highest importance,\" said the March 31 LocalCircles note. \"It is critical for startups and SMEs to survive... and if nothing is done, at least 50% of them will soon be shut.\" ET has seen both the letters.Venture capital firms have issued warnings to portfolio companies and the broader ecosystem to conserve cash and tighten spending, given the worsening macroeconomic climate and meltdown of global indices. Ecommerce and food delivery unicorn startups have been struggling because of the lockdown. Some of the top startups in the country are reported to have started cutting staff costs.\"The government's focus rightfully seems to be on health and like in the past it will come to the rescue of the startup ecosystem soon,\" said Sanjay Mehta, founder, 100X. \"Also, the corporate venture capitalist as an asset class has gone away due to the current situation, and any access to fresh capital in small businesses will be the only way growth will come.\"Multiple ongoing deals talks have been shelved or put on hold citing force majeure, threatening companies that don't have adequate funding to last out the crisis, ET has reported.Follow and connect with us on Twitter, Facebook, Linkedin"}
48 | {"id": "74198469", "timestamp": "2020-04-05 23:54:05+00:00", "source": "news.com.au", "title": "Year 12 could be extended into next year in the wake of coronavirus", "body": "Education ministers are looking at every trick in the book to ensure year 12 students finish school this year despite the mayhem caused by coronavirus. \nConcerns have been raised about how the disruption caused by COVID-19 could damage year 12 results.\nState and federal ministers will meet on Tuesday to canvass options including extending the academic year or postponing final exams. They will also discuss boosting overall scores and changing university application procedures.\nVictorian Premier Daniel Andrews has floated the possibility of extending year 12 into next year - a year 13, but his federal counterpart is not keen.\n\u201cAll options will be considered tomorrow when we meet \u2013 that is an outlier option \u2013 that is in a very worst case scenario,\u201d Federal Education Minister Dan Tehan told Seven on Monday.\n\u201cThe hope is that we will be able to get everyone through this year.\u201d\nState and territory curriculum and assessment authorities will present all available options to the meeting.\nMr Tehan said responses to the pandemic would likely vary between jurisdictions.\n\u201cBut there is a collective will among all education ministers for us to be able to ensure that all those year 12 students will be able to complete their studies this year,\u201d he said.\n\u201cAnd then go on to university, vocational education or employment next year.\u201d\n- with AAP."}
49 | {"id": "74198468", "timestamp": "2020-04-05 23:54:04+00:00", "source": "indiatimes.com", "title": "Cities take to drones to keep services up - ETtech", "body": "Drones have been used for many things, but this may perhaps be a first. Across India, city corporations and police are tapping drone operators to better enforce the lockdown, spray disinfectants, identify clusters of people showing signs of sickness and for quick delivery of medicines and medical supplies.In the time of the Covid-19 virus outbreak, drones are being viewed as tools to limit human exposure.Firms such as Garuda Aerospace, Marut Drones, IIO Technologies, The Drone Federation of India and initiatives like Droneman.in are actively partnering with other firms to cater to the demand.Several of them have repurposed agricultural drones to spray disinfectants and are using micro drones with cameras to help police in surveillance. \"We've been working with the Telangana government for the past two weeks. We started with disinfecting drones, then we started with surveillance because everything is locked down,\" said Prem Kumar Vislawath, chief innovator at Marut Drones.China, Singapore and other Southeast Asian countries are also extensively utilising drones for various missions over the past few weeks. \"We will spray disinfectant (using drones) so that there is no human intervention,\" Gaurang Rathi, CEO of Varanasi, said. \"This will also be done in offices - municipal and district administration, health department, where we are doing work every day.\"The city administration has identified Chennai-based Garuda Aerospace, which builds drones locally, for the operations. \"We can cover four to five times more distance using drones than a human can do in a day,\" said Agnishwar Jayaprakash, founder of Garuda Aerospace, which has deployed drones in Raipur in Chhattisgarh, and Namakkal and Tiruvarur in Tamil Nadu.\"The drones can reach heights of up to 100 metres and cover more area. We can automate 80% of the spraying without human intervention\".One of the biggest and easiest use cases for drones is surveillance. \"It's not just a flying CCTV camera, it's a flying CCTV camera with an operator. This way, the operators can specifically tell the authorities if there is a problem in an area or not,\" said Smit Shah, director of partnerships at The Drone Federation of India. The organisation is utilising its base of drone operators and putting them in touch with local authorities, he added. In Tamil Nadu, the state electricity board, TN Generation and Distribution Corporation (Tangedco) has deployed drones to sanitise around 25 sub-stations as a pilot to deal with the spread of the virus.Bengaluru-based IIO Technologies has also deployed drones for crowd control and to monitor the body temperature of people in several locations in Delhi. In Bengaluru, the firm has deployed its drones in HSR Layout and operations in a few other areas are ongoing. Amber Dubey, Joint Secretary in the Ministry of Civil Aviation, said that drones will benefit in areas such as agriculture, disaster management, healthcare and law enforcement. \"The ministry is working with different government entities and industry bodies to simplify procedures and enable rapid growth of the drone industry,\" he said.Follow and connect with us on Twitter, Facebook, Linkedin"}
50 | {"id": "74198457", "timestamp": "2020-04-05 23:53:44+00:00", "source": "hotnewhiphop.com", "title": "British Prime Minister Boris Johnson Hospitalized From Coronavirus", "body": "British Prime Minister\u00a0Boris Johnson\u00a0was\u00a0admitted to the hospital, Sunday, after battling coronavirus symptoms since his\u00a0March 27 diagnosis.\nDan Kitwood / Getty Images\n\"On the advice of his doctor, the Prime Minister has tonight been admitted to hospital for tests,\"\u00a0the Prime Minister's Office said in a statement.\nThe decision to go to the hospital was described as a\u00a0\"precautionary step.\"\n\"Prime Minister continues to have persistent symptoms of coronavirus 10 days after testing positive for the virus,\"\u00a0Downing Street explained in a statement, Sunday. \"The Prime Minister thanks NHS staff for all of their incredible hard work and urges the public to continue to follow the Government's advice to stay at home, protect the NHS and save lives.\"\n\nCNN's Medical Analyst Dr. Kent Sepkowitz says that the tests Johnson will receive could reveal \"several more variables of lung function and might indicate whether he is just fatigued and spent, or actually in some danger.\"\u00a0\nIn the time since his diagnosis, Johnson has worked from home and lived in accordance with social distancing guidelines.\nOn Friday, Johnson released an update video on Twitter saying he was still experiencing symptoms:\u00a0\"I still have a temperature. So in accordance with government advice I must continue my self-isolation until that symptom itself goes.\"\n\n\n\n\n\n\n\nThere are now\u00a0more than 1.2 million cases of coronavirus around the world.\u00a0Over 68,000 have died.\n[Via]"}
51 |
--------------------------------------------------------------------------------