text:
# SCP: series SCP1998

There are currently 44 data files.
They correspond to 11 bi-objective set covering problems.

For each problem, 4 variants are given: class A, B, C and D:

+ A: the costs are uniformly generated
+ B: created from A by replacing the second vector of costs by the first one in reverse order
+ C: vector of costs generated with plateaus of values
+ D: created from C by replacing the second vector of costs by the first one in reverse order

## Format
The format is originally from the OR library extended for handling multiple objectives.

The format of all of these data files is:

    number of rows (m), number of columns (n)
    the cost of each column for objective 1 c1(j),j=1,...,n
    the cost of each column for objective 2 c2(j),j=1,...,n
    for each row i (i=1,...,m): the number of columns which cover row i followed by a list of the columns which cover row i

## Instances:

Legend:

ID : instance's name

[![instance file](../img/icon/dl-instance.png "instance file")](instances/) : instance's file

***

**Instances referenced  in [1]**

*Series 10*

| ID            | Characteristics                       | Available |
| ------------- | ------------------------------------- | --------- |
| 2scp11A.dat 	| m=10 / n=100 / density=19,2 / max1=23 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp11B.dat 	| m=10 / n=100 / density=19,4 / max1=29 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp11C.dat 	| m=10 / n=100 / density=29,9 / max1=39 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp11D.dat 	| m=10 / n=100 / density=34,1 / max1=42 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |

*Series 40*

| ID            | Characteristics                        | Available |
| ------------- | -------------------------------------- | --------- |
| 2scp41A.dat 	| m=40 / n=200 / density=4,53 / max1=19  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp41B.dat 	| m=40 / n=200 / density=4,57 / max1=15  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp41C.dat 	| m=40 / n=200 / density=5,36 / max1=18  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp41D.dat 	| m=40 / n=200 / density=5,43 / max1=17  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp42A.dat 	| m=40 / n=400 / density=4,91 / max1=30  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp42B.dat 	| m=40 / n=400 / density=4,94 / max1=29  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp42C.dat 	| m=40 / n=400 / density=5,67 / max1=33  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp42D.dat 	| m=40 / n=400 / density=5,96 / max1=35  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp43A.dat 	| m=40 / n=200 / density=10,47 / max1=30 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp43B.dat 	| m=40 / n=200 / density=10,60 / max1=30 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp43C.dat 	| m=40 / n=200 / density=10,81 / max1=29 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp43D.dat 	| m=40 / n=200 / density=10,91 / max1=29 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |

*Series 60*

| ID            | Characteristics                        | Available |
| ------------- | -------------------------------------- | --------- |
| 2scp61A.dat 	| m=60 / n=600 / density=3,51 / max1=35  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp61B.dat 	| m=60 / n=600 / density=3,44 / max1=33  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp61C.dat 	| m=60 / n=600 / density=3,99 / max1=37  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp61D.dat 	| m=60 / n=600 / density=4,06 / max1=38  | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp62A.dat 	| m=60 / n=600 / density=10,12 / max1=81 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp62B.dat 	| m=60 / n=600 / density=10,11 / max1=82 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp62C.dat 	| m=60 / n=600 / density=10,21 / max1=85 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp62D.dat 	| m=60 / n=600 / density=10,22 / max1=85 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |

*Series 80*

| ID            | Characteristics                         | Available |
| ------------- | --------------------------------------- | --------- |
| 2scp81A.dat 	| m=80 / n=800 / density=2,86 / max1=40   | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp81B.dat 	| m=80 / n=800 / density=2,86 / max1=44   | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp81C.dat 	| m=80 / n=800 / density=3,16 / max1=48   | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp81D.dat 	| m=80 / n=800 / density=3,21 / max1=36   | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp82A.dat 	| m=80 / n=800 / density=10,02 / max1=106 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp82B.dat 	| m=80 / n=800 / density=10,03 / max1=106 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp82C.dat 	| m=80 / n=800 / density=10,05 / max1=107 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp82D.dat 	| m=80 / n=800 / density=10,05 / max1=106 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |

*Series 100*

| ID            | Characteristics                           | Available |
| ------------- | ----------------------------------------- | --------- |
| 2scp101A.dat 	| m=100 / n=1000 / density=10,06 / max1=123 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp101B.dat 	| m=100 / n=1000 / density=10,06 / max1=123 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp101C.dat 	| m=100 / n=1000 / density=10,07 / max1=123 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp101D.dat 	| m=100 / n=1000 / density=10,07 / max1=123 | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp102A.dat 	| m=100 / n=1000 / density=20 / max1=227    | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp102B.dat 	| m=100 / n=1000 / density=20 / max1=227    | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp102C.dat 	| m=100 / n=1000 / density=20 / max1=227    | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |
| 2scp102D.dat 	| m=100 / n=1000 / density=20 / max1=227    | [![instance file](../img/icon/dl-instance.png "instance file")](instances/) |

*Series 200*

| ID            | Characteristics                        | Available |
| ------------- | -------------------------------------- | --------- |
| 2scp201A.dat 	| m=200 / n=1000 / density=5 / max1=66   | [![instance file](../img/icon/dl-instance.png "instance file")](instances/)|
| 2scp201B.dat 	| m=200 / n=1000 / density=5 / max1=66   | [![instance file](../img/icon/dl-instance.png "instance file")](instances/)|
| 2scp201C.dat 	| m=200 / n=1000 / density=5 / max1=66   | [![instance file](../img/icon/dl-instance.png "instance file")](instances/)|
| 2scp201D.dat 	| m=200 / n=1000 / density=5 / max1=66   | [![instance file](../img/icon/dl-instance.png "instance file")](instances/)|

Files contain data from [1]:

> [1] Xavier Gandibleux, David Vancoppenolle and Daniel Tuyttens.
 A first making use of GRASP for solving MOCO problems
 14th International Conference in Multiple Criteria Decision-Making
 June 8–12, 1998, Charlottesville, USA.

repository: vOptSolver/vOptLib

repo_name: vOptSolver/vOptLib


text:
# VarScene: A Deep Generative Model for Realistic Scene Graph Synthesis

```
@inproceedings{varscene_icml22,
author = {Verma, Tathagat and De, Abir and Agrawal, Yateesh and Vinay, Vishwa and Chakrabarti, Soumen},
title = {{V}ar{S}cene: A Deep Generative Model for Realistic Scene Graph Synthesis},
booktitle = {Proceedings of the 39th International Conference on Machine Learning (ICML)},
pages = {22168--22183},
year = {2022}
}
```

links
 - [pmlr](https://proceedings.mlr.press/v162/verma22b.html)
- [icml](https://icml.cc/Conferences/2022/Schedule?showEvent=16892)

license: MIT

branch_name: refs/heads/master

extension: md

gha_language: Jupyter Notebook

gha_license_id: MIT

license_type: permissive


text:
# U.S. States vaccine data

## Files in this folder

- time_series/vaccine_data_us_timeline.csv: Contains historical data, updated once a day. Each row is uniquely defined by `Province_State`, `Date`, and `Vaccine_Type`. Long format.
- time_series_covid19_vaccine_doses_admin_US.csv: Contains historical data, updated once a day. Each row is uniquely defined by `Province_State`, `Date`, and `Vaccine_Type`. Wide format.
- hourly/vaccine_data_us.csv: Contains the most recent data collected for each region, updated hourly. Each row is uniquely identified by `Province_State` and `Vaccine_Type`
- data_dictionary.csv: Metric definitions
- readme.md: This file. Description of contents and list of data sources

## Data Sources

Our data sources are a combination of the State's public dashboards listed below and the [CDC Vaccine Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations). The logic to combine the data is as follows:
1. If a State is making available a metric, we will compare that metric’s value with the metric value provided by the CDC and report the largest value to reflect the latest reporting of that metric. Note, all metrics are cumulative
2. If a State is not making available a metric, that metric will be sourced from the CDC Vaccine Tracker

If total administered doses is not available by State sources, but the different stages of doses (1st, 2nd, etc) are available, the value of total doses administered will be determined by summing the stages of doses administered.

The logic is applied each time data is collected. Therefore, for a each State, the source for a given metric’s value may not be the same for all days. It will depend on when the State and the CDC update their respective public data.

### Alaska

- [State dashboard](http://dhss.alaska.gov/dph/epi/id/pages/COVID-19/vaccine.aspx)
- [State COVID-19 Newsroom](https://gov.alaska.gov/home/covid19news/)

## Alabama

- [State dashboard](https://alpublichealth.maps.arcgis.com/apps/opsdashboard/index.html#/e4a232feb1344ce0afd9ac162f3ac4ba)
- [Governor's Newsroom](https://governor.alabama.gov/newsroom/category/press-releases/)

## American Samoa

- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Arkansas

- [State dashboard](https://www.healthy.arkansas.gov/programs-services/topics/covid-19-vaccination-plan)
- [Governor's Newsroom](https://governor.arkansas.gov/news-media/press-releases/)

### Arizona

- [State dashboard](https://www.azdhs.gov/preparedness/epidemiology-disease-control/infectious-disease-epidemiology/covid-19/dashboards/index.php)
- [State vaccine report](https://www.azdhs.gov/documents/preparedness/epidemiology-disease-control/infectious-disease-epidemiology/novel-coronavirus/vaccine-phases.pdf)
- [Governor's Newsroom](https://azgovernor.gov/news-releases)

### California

- [State dashboard](https://covid19.ca.gov/vaccines/#California-vaccines-dashboard)
- [State COVID-19 Vaccine site](https://www.cdph.ca.gov/Programs/CID/DCDC/Pages/COVID-19/VaccineDoses.aspx)
- [State COVID-19 Newsroom](https://covid19.ca.gov/latest-news/)

## Colorado

- [State dashboard](https://covid19.colorado.gov/vaccine-data-dashboard)
- [State COVID-19 Newsroom](https://covid19.colorado.gov/category/press-release?page=0)

### Connecticut

- [Governor's Newsroom](https://portal.ct.gov/Coronavirus/Pages/Governors-Press-Releases)
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Delaware

- [State dashboard](https://myhealthycommunity.dhss.delaware.gov/locations/state/days_to_show/284/primary_trend_type/bar#overview_trends)
- [Governor's Newsroom](https://news.delaware.gov/tag/coronavirus/)

### District of Columbia

- [DC's dashboard](https://coronavirus.dc.gov/data/vaccination)
- [DC's COVID-19 Newsroom](https://coronavirus.dc.gov/newsroom)

### Federal Entities

Federal entities included: Bureau of Prisons, Department of Defense, Indian Health Services, and Veterans Health
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Federated States of Micronesia

- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Florida

- [State vaccine report](https://floridahealthcovid19.gov/)
- [Governor's Newsroom](https://www.flgov.com/2020/12/)

### Georgia

- [State dashboard](https://dph.georgia.gov/covid-vaccine)
- [Governor's Newsroom](https://gov.georgia.gov/press-releases)

### Guam

- [COVID-19 Dashboard](http://dphss.guam.gov/covid-19/)
- [Guam Homeland Security Newsroom](https://ghs.guam.gov/news)

### Hawaii

- [State dashboard](https://health.hawaii.gov/coronavirusdisease2019/what-you-should-know/current-situation-in-hawaii/#vaccine)
- [State COVID-19 Newsroom](https://hawaiicovid19.com/news/)

### Idaho

- [State dashboard](https://coronavirus.idaho.gov/)

### Iowa

- [Vaccine Administration Report](https://idph.iowa.gov/Portals/1/userfiles/61/COVID19%20Vaccine%20Administration.pdf)
- [Governor's Newsroom](https://governor.iowa.gov/newsroom)
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Illinois

- [State vaccine dashboard](http://www.dph.illinois.gov/covid19/vaccinedata?county=Illinois)
- [State COVID-19 Newsroom](https://coronavirus.illinois.gov/s/news)

### Indiana

- [State dashboard](https://www.coronavirus.in.gov/vaccine/2680.htm)
- [Governor's Newsroom](https://www.in.gov/gov/newsroom.htm)

### Kansas

- [Kansas COVID-19 vaccine web page](https://www.kansasvaccine.gov/157/Availability)
- [Weekly Vaccine newsletter](https://www.kansasvaccine.gov/DocumentCenter/View/123/Vaccine-Historical-Document-1721)
- [Governor's Newsroom](https://governor.kansas.gov/newsroom/press-releases/)

### Kentucky

- [State dashboard](https://govstatus.egov.com/ky-covid-vaccine)
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)
- [Governor's Newsroom](https://governor.ky.gov/news)

### Louisiana

- [State dashboard](https://ldh.la.gov/Coronavirus/)
- [Governor's Newsroom](https://gov.louisiana.gov/index.cfm/newsroom/category/9)

### Maine

- [State dashboard](https://www.maine.gov/covid19/vaccines/dashboard)
- [State COVID-19 Newsroom](https://www.maine.gov/covid19/)

### Marshall Islands

- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Maryland

- [State dashboard](https://coronavirus.maryland.gov/#Vaccine)
- [Governor's COVID-19 Newsroom](https://governor.maryland.gov/coronavirus/)

### Massachusetts

- [State weekly vaccination report](https://www.mass.gov/info-details/preparing-for-a-covid-19-vaccine#weekly-covid-19-vaccination-report-)
- [State COVID-19 Newsroom](https://www.mass.gov/lists/press-releases-related-to-covid-19)

### Michigan

- [State dashboard](https://www.michigan.gov/coronavirus/0,9753,7-406-98178_103214_103272-547150--,00.html)

### Minnesota

- [State dashboard](https://mn.gov/covid19/vaccine/data/index.jsp)
- [Governor's Newsroom](https://mn.gov/governor/news/)

### Mississippi

- [State dashboard](https://msdh.ms.gov/msdhsite/_static/14,0,420,976.html)
- [Governor's Newsroom](https://governorreeves.ms.gov/covid-19/#press)

### Missouri

- [State dashboard](https://covidvaccine.mo.gov/data/)
- [Governor's Newsroom](https://governor.mo.gov/press-releases)
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Montana

- [State dashboard](https://montana.maps.arcgis.com/apps/MapSeries/index.html?appid=7c34f3412536439491adcc2103421d4b)
- [State's Department of Health and Human Services newsroom](https://dphhs.mt.gov/AboutUs/News)
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Nebraska

- [State Dashboard](https://experience.arcgis.com/experience/ece0db09da4d4ca68252c3967aa1e9dd/page/page_1/)
- [State COVID-19 Newsroom](http://dhhs.ne.gov/Pages/Coronavirus.aspx)

### Nevada

- [State Dashboard](https://app.powerbigov.us/view?r=eyJrIjoiMjA2ZThiOWUtM2FlNS00MGY5LWFmYjUtNmQwNTQ3Nzg5N2I2IiwidCI6ImU0YTM0MGU2LWI4OWUtNGU2OC04ZWFhLTE1NDRkMjcwMzk4MCJ9)
- [State COVID-19 Newsroom](https://nvhealthresponse.nv.gov/news-resources/press-releases/)
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### New Hampshire

- [State COVID-19 Newsroom](https://www.nh.gov/covid19/news/press-releases.htm)
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### New Jersey

- [COVID-19 Dashboard](https://covid19.nj.gov/#live-updates)
- [State COVID-19 "Vax Matters" Newsletter](https://www.state.nj.us/health/cd/topics/covid2019_vaccination.shtml)

### New Mexico

- [State dashboard](https://cvvaccine.nmhealth.org/public-dashboard.html)

### New York

- [Governor's COVID-19 Newsroom](https://www.governor.ny.gov/keywords/coronavirus)
- [State dashboard](https://covid19vaccine.health.ny.gov/covid-19-vaccine-tracker)

### North Carolina

- [State dashboard](https://covid19.ncdhhs.gov/dashboard/vaccinations)
- [State COVID-19 Newsroom](https://www.nc.gov/covid19/covid19-news-releases)

### North Dakota

- [State Dashboard](https://www.health.nd.gov/covid19vaccine/dashboard)
- [COVID-19 vaccine page](https://www.health.nd.gov/covid-19-vaccine-information)

### Northern Mariana Islands

- [Northern Mariana Islands' COVID-19 dashboard](https://cnmichcc.maps.arcgis.com/apps/opsdashboard/index.html#/4061b674fc964efe84f7774b7979d2b5)
- [Northern Mariana Islands' COVID-19 vaccination program](https://www.vaccinatecnmi.com/covid-19/)
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Ohio

- [State dashboard](https://coronavirus.ohio.gov/wps/portal/gov/covid-19/dashboards/covid-19-vaccine/covid-19-vaccination-dashboard)

### Oklahoma

- [State dashboard](https://oklahoma.gov/covid19.html)

### Oregon

- [State dashboard](https://public.tableau.com/profile/oregon.health.authority.covid.19#!/vizhome/OregonCOVID-19VaccinationTrends/OregonStatewideVaccinationTrends)
- [Governor's Newsroom](https://www.oregon.gov/newsroom/Pages/Agency.aspx?agency=GOV)

### Pennsylvania

- [State dashboard](https://www.health.pa.gov/topics/disease/coronavirus/Pages/Vaccine.aspx)
- [Data file](https://www.health.pa.gov/topics/Documents/Diseases%20and%20Conditions/COVID-19%20Vaccine_Provider%20Locations_Week%201.xlsx)
- [Governor's Newsroom](https://www.governor.pa.gov/newsroom/)
- [COVID-19 vaccine page](https://www.health.pa.gov/topics/disease/coronavirus/Pages/Vaccine.aspx)

### Puerto Rico

- [Governor's Newsroom](https://www.fortaleza.pr.gov/)
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Republic of Palau

- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Rhode Island

- [State dashboard](https://ri-department-of-health-covid-19-data-rihealth.hub.arcgis.com/)
- [Governor's Newsroom](https://www.ri.gov/press/)

### South Carolina

- [State dashboard](https://scdhec.gov/covid19/covid-19-vaccine-allocation)
- [Department of Health and Environmental Control's COVID-19 vaccine web page](https://scdhec.gov/covid19/covid-19-vaccination)
- [Governor's Newsroom](https://governor.sc.gov/news/archive)

### South Dakota

- [State dashboard](https://doh.sd.gov/COVID/Dashboard.aspx)

### Tennessee

- [State vaccination report](https://www.tn.gov/content/dam/tn/health/documents/cedep/novel-coronavirus/Vaccine.pdf)
- [Governor's Newsroom](https://www.tn.gov/governor/news.html)

### Texas

- [State dashboard](https://tabexternal.dshs.texas.gov/t/THD/views/COVID-19VaccineinTexasDashboard/Summary?%3Aorigin=card_share_link&%3Aembed=y&%3AisGuestRedirectFromVizportal=y)

### U.S. Virgin Islands

- [U.S.V.I. COVID-19 Newsroom](https://www.covid19usvi.com/news)
- [CDC COVID Data Tracker](https://covid.cdc.gov/covid-data-tracker/#vaccinations)

### Utah

- [State dashboard](https://coronavirus-dashboard.utah.gov/#vaccines)

### Virginia

- [Governor's Newsroom](https://www.governor.virginia.gov/newsroom/news-releases/)

### Vermont

- [Governor's Newsroom](https://governor.vermont.gov/press)

### Washington

- [State COVID-19 Newsroom](https://coronavirus.wa.gov/news)
- [State dashboard](https://www.doh.wa.gov/Emergencies/COVID19/DataDashboard)
- [State vaccination report](https://www.doh.wa.gov/Portals/1/Documents/1600/coronavirus/data-tables/VaccineAdministrationByDateReport.xlsx)

### West Virginia

- [State dashboard](https://health.wyo.gov/publichealth/immunization/wyoming-covid-19-vaccine-information/)
- [State's Department of Health and Human Services newsroom](https://dhhr.wv.gov/COVID-19/pages/updates-and-news.aspx)

### Wisconsin

- [State dashboard](https://www.dhs.wisconsin.gov/covid-19/vaccine-data.htm#day)
- [Governor's Newsroom](https://evers.wi.gov/Pages/Newsroom/Press-Releases.aspx)

### Wyoming

- [Governor's Newsroom](https://governor.wyo.gov/media/news-releases)
- [State web page](https://health.wyo.gov/publichealth/immunization/wyoming-covid-19-vaccine-information/)


text:
# android-http
Performing basic http requests in Android requires at least a handlful of code.
This is annoying when almost every component initiates some network activity.

## Installation
To use this library your Android project must be configured to use the JCenter or Maven Central repositories.

Add the following to your package dependencies and sync gradle.
```
compile 'org.unfoldingword.tools:http:2.0.0'
```

## Usage

```
GetRequest request = new GetRequest(someurl);
String response = request.read();
int responseCode = request.getResponseCode();
```

we now support downloading to a file

```
GetRequest request = new GetRequest(someurl);
request.download(somefile);
int responseCode = request.getResponseCode();
```

### Exceptions
If an exception occurs durring your request you can still retrieve the status code and message.
```
GetRequest request = new GetRequest(someurl);
try {
  request.download(somefile);
} catch (IOException e) {
  int responseCode = request.getResponseCode();
  String errorMessage = request.getErrorMessage();
}
```

### Authentication
```
GetRequest request = new GetRequest(someurl);
request.setAuthentication(username, password);
// or using a token: request.setAuthentication(sometoken);
String response = request.read();
int responseCode = request.getResponseCode();
```

## Extending
Requests are built around an abstract `Request` class. So you can easily create your own requests if the ones provided are incomplete or insufficient.

repository: unfoldingWord-dev/android-http

repo_name: unfoldingWord-dev/android-http


text:
> [d2b](../README.md) › **SVG Line**

![Local Image](../gifs/line-svg-transition.gif)

# {#generator}
[#](#generator) d2b.**svgLine**()

Constructs a new line generator with the default settings. This is not the same as [d3.line](https://github.com/d3/d3-shape#line). The purpose of this module is to provide a common graph API used in other types of graphs (e.g. line, area, bar).

When using the d2b-line generator you can draw multiple line graphs onto each element in the selection. This is shown in the data example below.

# {#apply}
[#](#apply) *line*(*context*)

Render the line(s) to the given *context*, which may be either a [d3-selection](https://github.com/d3/d3-selection) of SVG containers (either SVG or G elements) or a corresponding [d3-transition](https://github.com/d3/d3-transition).

Before applying the d2b-line generator, you should join the data to the selected element(s) using [selection.data](https://github.com/d3/d3-selection#selection_data) or [selection.datum](https://github.com/d3/d3-selection#selection_datum). Here is the default data format.

```javascript
var line = d2b.svgLine();

var datum = [
  {
    label: 'Line Graph 1',
    values: [
      {x: 1, y: 18},
      {x: 2, y: 10},
      {x: 3, y: 26},
      {x: 4, y: 35},
      {x: 5, y: 14},
    ]
  },
  {
    label: 'Line Graph 2',
    values: [
      {x: 1, y: 13},
      {x: 2, y: 26},
      {x: 3, y: 41},
      {x: 4, y: 14},
      {x: 5, y: 36},
    ]
  }
];

d3.select('.chart')
    .datum(datum)
    .call(line);
```

# {#type}
[#](#type) line.**type**()

Returns the string `line`.

# {#line}
[#](#line) line.**line**([*d3-line*])

If *d3-line* is specified, sets the *d3-line* generator to the specified [d3-line](https://github.com/d3/d3-shape#line) and returns the d2b line generator. If *d3-line* is not specified, returns the current *d3-line* generator, which defaults to [d3.line()](https://github.com/d3/d3-shape#line).

The *d3-line* can be configured at will, except for the [x](https://github.com/d3/d3-shape#x) and [y](https://github.com/d3/d3-shape#y) properties which will be set automatically by the d2b line generator.

# {#stack}
[#](#stack) line.**stack**([*d3-stack*])

If *d3-stack* is specified, sets the *d3-stack* generator to the specified [d3-stack](https://github.com/d3/d3-shape/blob/master/README.md#stack) and returns the line generator. If *d3-stack* is not specified, returns the current *d3-stack* generator, which defaults to [d3.stack()](https://github.com/d3/d3-shape/blob/master/README.md#stack).

The *d3-stack* can be configured at will, except for the [keys](https://github.com/d3/d3-shape/blob/master/README.md#stack_keys) and [values](https://github.com/d3/d3-shape/blob/master/README.md#stack_value) properties which will be set automatically by the line generator.

# {#annotation}
[#](#annotation) line.**annotation**([*d3-annotation*])

If *d3-annotation* is specified, sets the annotation generator to the specified [d3-annotation](http://d3-annotation.susielu.com/) and returns the line generator. If *d3-annotation* is not specified, returns the current annotation generator, which defaults to a [d3.annotation()](http://d3-annotation.susielu.com/).

# {#x}
[#](#x) line.**x**([*x*])

If *x* is specified, sets the *x* scale to the specified [d3-scale](https://github.com/d3/d3-scale) and returns the line generator. If *x* is not specified, returns the current *x* scale, which defaults to a [d3.scaleLinear()](https://github.com/d3/d3-scale#scaleLinear).

# {#y}
[#](#y) line.**y**([*y*])

If *y* is specified, sets the *y* scale to the specified [d3-scale](https://github.com/d3/d3-scale) and returns the line generator. If *y* is not specified, returns the current *y* scale, which defaults to a [d3.scaleLinear()](https://github.com/d3/d3-scale#scaleLinear).

### Datum Level Accessors

When the d2b line generator is applied to a selection, the following properties will be invoked. The function will be passed the element's bound [datum](https://github.com/d3/d3-selection#selection_datum) `d` and the corresponding element index `i`.

# {#graphs}
[#](#graphs) line.**graphs**([*graphs*])

If *graphs* is specified, sets the *graphs* array to the specified accessor function or array and returns the line generator. If *graphs* is not specified, returns the current *graphs* accessor, which defaults to `d => d`.

### Graph Level Accessors

When the d2b line generator is applied to a selection, the following properties will be invoked for each graph in the [graphs](#graphs) array. The function will be passed the graph data `d` and the corresponding graph index `i`.

```javascript
function (d) {
  // Here is what d might contain
  // d => {
  //   label: 'Line Graph 1',
  //   values: [
  //     {x: 1, y: 18},
  //     {x: 2, y: 10},
  //     {x: 3, y: 26},
  //     {x: 4, y: 35},
  //     {x: 5, y: 14},
  //   ]
  // }
}
```

# {#align}
[#](#align) line.**align**([*alignment*])

If *alignment* is specified, sets the *alignment* to the specified accessor function or string (either `"y0"` or `"y1"`) and returns the line generator. If *alignment* is not specified, returns the current *alignment*  accessor, which defaults to `"y1"`.

If the [stacking](#stack) is used the alignment will decide to use the y0 values or y1 values from the stack to position each svg line.

# {#tooltip_graph}
[#](#tooltip_graph) line.**tooltipGraph**([*tooltip_graph*])

If *tooltip_graph* is specified, sets the *tooltip_graph* to the specified accessor function and returns the line generator. If *tooltip_graph* is not specified, returns the current *tooltip_graph* accessor, which defaults to:

```javascript
  function (d) {
    return d.tooltipGraph;
  }
```

# {#shift}
[#](#shift) line.**shift**([*shift*])

If *shift* is specified, sets the horizontal *shift* to the specified accessor function or value and returns the line generator. If *shift* is not specified, returns the current *shift* accessor, which defaults to `() => null`.

If a `null` accessor is used this shift will be computed dynamically based on the type of [d3-scale](https://github.com/d3/d3-scale) being used. If a band scale is used then the shift will be set to half of the scales bandwidth.

# {#stack_by}
[#](#stack_by) line.**stackBy**([*stack_by*])

If *stack_by* is specified, sets the *stack_by* accessor to the specified accessor function and returns the line generator. If *stack_by* is not specified, returns the current *stack_by* accessor, which defaults to `() => null`.

If the accessor returns `falsy` then no graph stacking will be performed. If the accessor returns `truthy` then all graphs in a `datum` set will be stacked together. A more advanced method of stacking allows to stack specific graphs together, this can be done by using a stack property on the graph and setting the [stackBy](#stack_by) accessor accordingly. In the example below there will be two graphs stacked together under the key `1`, two graphs stacked together under the key `2`, and one other graph that is denoted as stack `3`.

```javascript
line.stackBy(function (d) {
  return d.stack;
});

data = {
  graphs: [
    {
      label: 'Line Graph 1',
      stack: 1,
      values: []
    },
    {
      label: 'Line Graph 2',
      stack: 1,
      values: []
    },
    {
      label: 'Line Graph 3',
      stack: 2,
      values: []
    },
    {
      label: 'Line Graph 4',
      stack: 2,
      values: []
    },
    {
      label: 'Line Graph 5',
      stack: 3,
      values: []
    }
  ]
}
```

# {#key}
[#](#key) line.**key**([*key*])

If *key* is specified, sets the graph *key* accessor to the specified accessor function and returns the line generator. If *key* is not specified, returns the current *key* accessor, which defaults to `(d) => d.label`.

If you are transitioning from one data set to another the key function is useful in making sure the proper graphs get updated to their corresponding values.

# {#color}
[#](#color) line.**color**([*color*])

If *color* is specified, sets the *color* accessor to the specified accessor function and returns the line generator. If *color* is not specified, returns the current *color* accessor, which defaults to:

```javascript
// define d3 color scale that will be used in the accessor
var color = d3.scaleOrdinal(d3.schemeCategory10);

function (d) {
  return color(d.label);
}
```

If you are transitioning from one data set to another the key function is useful in making sure the proper graphs get updated to their corresponding values.

# {#values}
[#](#values) line.**values**([*values*])

If *values* is specified, sets the *values* array to the specified accessor function or array and returns the line generator. If *values* is not specified, returns the current *values* accessor, which defaults to:

```javascript
function (d) {
  return d.values;
}
```

### Value Level Accessors

When the d2b line generator is applied to a selection, the following properties will be invoked for each element in the [values](#values) array. The function will be passed the value data `d` and the index position within the [values](#bubble_pack_children) array `i`.

```javascript
function (d) {
  // d => {
  //   x: 1,
  //   y: 18
  // }
}
```

# {#px}
[#](#px) line.**px**([*px*])

If *px* is specified, sets the *px* accessor to the specified accessor function and returns the line generator. If *px* is not specified, returns the current *px* accessor, which defaults to:

```javascript
function (d) {
  return d.x;
}
```

# {#py}
[#](#py) line.**py**([*py*])

If *py* is specified, sets the *py* accessor to the specified accessor function and returns the line generator. If *py* is not specified, returns the current *py* accessor, which defaults to:

```javascript
function (d) {
  return d.y;
}
```

# {#pannotation}
[#](#pannotation) area.**pannotation**([*annotation*])

If *annotation* is specified, sets the *annotation* accessor to the specified accessor function and returns the line generator. If *annotation* is not specified, returns the current *annotation* accessor, which defaults to:

```javascript
function (d) {
  return d.annotation;
}
```

# {#pkey}
[#](#pkey) line.**pkey**([*key*])

If *key* is specified, sets the *key* accessor to the specified accessor function and returns the line generator. If *key* is not specified, returns the current *key* accessor, which defaults to `(d, i) => i`.

Because the line generator does not render discrete points, this will only be used in rendering [annotations](#annotations).

# {#pcolor}
[#](#pcolor) line.**pcolor**([*color*])

If *color* is specified, sets the *color* accessor to the specified accessor function and returns the line generator. If *color* is not specified, returns the current *color* accessor, which defaults to `() => null`.

If *color* is `null` then the corresponding graph [color](#color) will be used. Because the line generator does not render discrete points, this will only be used in rendering [annotations](#annotations).

## Annotations {#annotations}

The line graph generator has built in hooks for annotations using the [d3.annotation plugin](d3-annotation.susielu.com). Each value in a line graph may contain an annotation at its `(x, y)` location. For example, a line value with an annotation:

```javascript
{
  x: 2,
  y: 41,
  annotation: {
    // dx/dy pixel offset that the annotation has from the value
    dy: -150,
    dx: -150,
    // use a custom annotation type from d3.annotation
    type: d3.annotationCalloutCircle,
    note: {
      title: 'Important Point'
    },
    subject: {
      radius: 20,
      radiusPadding: 5
    },
    connector: {
      end : "arrow"
    }
  }
}
```

### Other Methods

# {#get_computed_graphs}
[#](#get_computed_graphs) line.**getComputedGraphs**(*context*)

Returns the array of computed graphs for the context's datum. This is not the same as the graphs array provided in the datum. This is a constructed graphs array that invokes all of the accessors described above. Usually this is used internally by the [d2b.chartAxis](../charts/chart-axis.md) module.

# {#get_visible_points}
[#](#get_visible_points) line.**getVisiblePoints**(*context*)

Returns the array of visible points. This array will be formed by concatenating all of the graph values and invoking the [px](#px) and [py](#py) accessor for each. This is helpful when trying to dynamically update the scale domains based on the range of x and y values. Usually this is used internally by the [d2b.chartAxis](../charts/chart-axis.md) module.

The returned array will look something like this:

```javascript
[
  {x: 1, y: 18, graph: {/*graph object*/}},
  {x: 2, y: 10, graph: {/*graph object*/}},
  // ...
]
```

gha_language: JavaScript


text:
Ruby TypeScript
=================

This is a wrapper that uses the [TypeScript](https://github.com/Microsoft/TypeScript) developed by Microsoft.

That is, it runs TypeScript as a separate process to compile things.

## Dependencies

You must have TypeScript installed (i.e. you can run the command `tsc`).

Alternatively, you can set the `TYPESCRIPT_SOURCE_PATH` environment variable to the location
of the tsc script (e.g. `~/.npm/typescript/1.1.0-1/package/bin/tsc`) and it'll use that through node.

repository: jabbawookiees/ruby-typescript

repo_name: jabbawookiees/ruby-typescript


text:
# XGBoost Multiclass & Multilabel

Python code examples for multiclass and multilabel XGBoost implementations.

## Datasets

[1] [Wine Data Set](https://archive.ics.uci.edu/ml/datasets/Wine)

[2] [Anuran Calls (MFCCs) Data Set](https://archive.ics.uci.edu/ml/datasets/Anuran+Calls+%28MFCCs%29)


text:
# Using Nightingale
Make sure credentials.php file is present for accessing the DB. Define the db connection constants in `credentials.php` as follows:

`<?php`
` `
`define('DB_USERNAME', 'example');`
`define('DB_PASSWORD', 'eX4mP13');`
`define('DB_NAME', 'exampledb');`
`define('DOMAIN_NAME', '<IP_ADDRESS>');`

repository: labstry-opensource/LabManageSystem

repo_name: labstry-opensource/LabManageSystem


text:
---
layout: default
---

# 1994-07-21 - Re: Voice/Fax Checks

## Header Data

From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>(Robert Hettinga)

Message Hash: a3c272717e0a3d33b2589d9b5ad4905534b83e9c5c926d413de49489f67f787b

Message ID<EMAIL_ADDRESS>Reply To<EMAIL_ADDRESS>UTC Datetime: 1994-07-21 15:38:36 UTC

Raw Date: Thu, 21 Jul 94 08:38:36 PDT

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>Date: Thu, 21 Jul 94 08:38:36 PDT
To<EMAIL_ADDRESS>(Robert Hettinga)
Subject: Re: Voice/Fax Checks
In-Reply-To<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

> At 10:52 PM 7/20/94 -0400, Duncan Frissell wrote:
>
> >"Don't bother.  Take out the check you were going to send me, read me the
> >routing code and check number on the bottom.  Give me your name and address
> >and the bank's name and address as they appear on the check, the amount you
> >will pay and the date.  I'll collect that check electronically without you
> >having to bother to send it."
>
> This is exactly the problem we're having with identifying a market for
> digital cash. There's no unique selling proposition besides privacy. There
> are too many real good substitutes, like this one for checks. E-mail with
> the above information in it can be encrypted and signed, and would be
> secure enough to make a real good check in its own right. This is like my
> favorite quote (in InforWorld) about Macs: "It seems that 85% of the market
> will settle for 75% of a Macintosh."

The selling point for digital cash is that it has a low transaction cost
and can easily be used for extremelly small transactions. If agent A and
agent B want to do business without bothering their owners, you had better
have some robust digicash.

{% endraw %}
```

## Thread

+ Return to [July 1994](/archive/1994/07)

+ Return to<EMAIL_ADDRESS>(James A. Donald)](/authors/jamesd_at_netcom_com_james_a_donald_)"
+ Return to<EMAIL_ADDRESS>(Robert Hettinga)](/authors/rah_at_shipwright_com_robert_hettinga_)"
+ Return to "[solman@MIT.EDU](/authors/solman_at_mit_edu)"
+ Return to<EMAIL_ADDRESS>(Timothy C. May)](/authors/tcmay_at_netcom_com_timothy_c_may_)"

+ 1994-07-21 (Thu, 21 Jul 94 04:20:14 PDT) - [Re: Voice/Fax Checks](/archive/1994/07/69272169ff81f9dd00d52785c4631979f90278c61a01125fdaa466756ea671d6) -<EMAIL_ADDRESS>(Robert Hettinga)_
  + 1994-07-21 (Thu, 21 Jul 94 08:38:36 PDT) - Re: Voice/Fax Checks -<EMAIL_ADDRESS>    + 1994-07-22 (Thu, 21 Jul 94 23:58:30 PDT) - [Agorics, Digital Cash, and Protocol Ecologies](/archive/1994/07/998662c4d19834c99f0a2ca688e120a98a56446f28c4a7356ea21854bd6e1642) -<EMAIL_ADDRESS>(Timothy C. May)_
  + 1994-07-22 (Thu, 21 Jul 94 20:33:00 PDT) - [Re: Voice/Fax Checks](/archive/1994/07/120fab014ed5ec88aa0ecb42189cc53078a5f554b14a37b4250e37543f453679) -<EMAIL_ADDRESS>(James A. Donald)_


text:
---
layout: post
title: "Ruby Casts Episode 1: Sinatra"
date: 2012-01-22 21:35
comments: true
categories: rubycasts
---
I just uploaded Sinatra 101 to my YouTube channel. Take a look, leave a comment, etc. [Source code is available on Github](https://github.com/jrgifford/rubycasts/tree/master/episode1).
<!--more-->
<iframe width="560" height="315" src="http://www.youtube.com/embed/qF9eF7uZYPE" frameborder="0" allowfullscreen></iframe>

*Yes, I know about the horrible aspect ratio. I promise I'll fix it in new ones. Ok, I promise to try and fix them.*

repository: schaary/blog

extension: markdown

repo_name: schaary/blog


text:
# solar-calc [![npm](https://img.shields.io/npm/v/solar-calc.svg)](https://www.npmjs.com/package/solar-calc) [![Build Status](https://travis-ci.org/jonhester/solar-calc.svg)](https://travis-ci.org/jonhester/solar-calc/builds)
A sunrise and sunset calculator for npm based on the NOAA Solar Calculator.

Gladly accepting pull requests!

```js
var SolarCalc = require('solar-calc');

// SolarCalc(date,lat,long)
var solar = new SolarCalc(new Date('Mar 8 2015'),35.78,-78.649999);

solar.sunrise // 2015-03-08T11:35:30.000Z
```
## Properties
All properties are `Date` objects unless otherwise noted

- `sunrise` When the upper edge of the Sun appears over the eastern horizon in the morning (0.833 degrees)

- `sunset` When the upper edge of the Sun disappears below the horizon

- `civilDawn` when there is enough light for objects to be distinguishable. This occurs when the sun is 6 degrees below the horizon in the morning

- `nauticalDawn` When there is enough sunlight for the horizon and some objects to be distinguishable. This occurs when the Sun is 12 degrees below the horizon in the morning

- `astronomicalDawn` when the sky is no longer completely dark. This occurs when the Sun is 18 degrees below the horizon in the morning

- `civilDusk` When the sun is 6 degrees below the horizon in the evening. At this time objects are distinguishable and some stars and planets are visible to the naked eye.

- `nauticalDusk` When the sun is 12 degrees below the horizon in the evening. At this time, objects are no longer distinguishable, and the horizon is no longer visible to the naked eye

- `astronomicalDusk` When the sun is 18 degrees below the horizon in the evening. At this time the sun no longer illuminates the sky, and thus no longer interferes with astronomical observations

- `solarNoon` When the sun transits the celestial meridian – roughly the time when it is highest above the horizon

- `lunarDistance` (integer) the distance from the center of the eart to the center of the moon in kilometers

- `luminosty` (number) the percentage of the moon that is illuminated in decimal form

repository: mjradwin/solar-calc

repo_name: mjradwin/solar-calc


text:
# python_lol_elo

for the sake of simplicity Master, Grandmaster and Challenger tiers are omitted

Division UP -> 140 (Platinum III -> Platinum II)

League UP -> 160 (Silver I -> Gold IV)

**LolLpCalculator.calculate_lp(league_from, division_from, league_to, division_to):**

  calculates LP needed to go from given league and division to given league and division


text:
## Vim / Terminal Configuration Files

### New Installation..?

`mkdir -p ~/.config && git clone <repo> ~/.config/`

### Installation

Running `install.sh` is simple but may move around pre-existing configurations. Best for setting up a new machine.

Otherwise, manually copying files as noted in `install.sh` will work fine. Use vim/install.sh to just install Vim. **This does not install init.vim at present.**

Before running Vim, install vim-plug:

```
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
```

Now run `nvim`, then call `:PlugInstall`.

Note: There's a weird bug in the version we currently have to use of Catppuccin. Remove the print statements in:
`~/.vim/bundle/catppuccin/lua/lib/ui.lua`

More things to install:

#### Coc plugins

(Inside NeoVim)
```
:CocInstall coc-cmake
```

### Terminal / Shell Configuration

Use a package manager to install zsh (`sudo apt install zsh`, `brew install zsh`, etc)

Install oh-my-zsh via curl:

`sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"`

Install Powerline fonts (for theme Agnoster):

```
git clone https://github.com/powerline/fonts
cd fonts
./install.sh
```

repository: MJJBennett/dotfiles

gha_language: Python

repo_name: MJJBennett/dotfiles


text:
# XYZ-ecomm-market
ecommerce back end services

XYZ B2C ecommerce market place is working on building a solution to search an online product catalogue.

This is a fully functional spring-boot web service with pagination (20 results at a time) and data caching (conditional and time interval, 2 hrs).
It uses H2 embedded RDMS database.

## Information

URLS exposed  >>

GET : /products/pageNum/{pageNum} :  Api for fetching all products with details \
GET : /products/brand/{brand}/pageNum/{pageNum} :  Api for fetching products details by brand \
GET : /products/price/min/{min}/max/{max}/pageNum/{pageNum} : Api for fetching products details by price range  \
GET : /products/{sku}  : Api for fetching product details by SKU  \
GET : /products/seller/{supplier} :  Api for fetching product count by SKU and seller  \
GET : /products/type/{type}/size/{size}/pageNum/{pageNum}  : Api for fetching products details by type and size \
GET : /products/type/{type}/color/{color}/pageNum/{pageNum} : Api for fetching products details by type and color \

### Prerequisites
```
java 8+
maven
```

### App Setup
```
In the root dir run ->
mvn spring-boot:run

You will be able to access the application through:
http://localhost:8081/products/<api-relative-url>

URL to access embedded H2 Database console :
http://localhost:8081/h2-console/

JDBC URL : jdbc:h2:mem:testdb
username: admin
password : admin
```
H2 DB schema setup file :
```
src/main/resources/schema.sql
```
H2 DB data setup file :
```
src/main/resources/data.sql
```

Sample Product json response :
```
[
  {
    "id": 1,
    "name": "Adidas Shirt-1",
    "brand": "Adidas",
    "type": "Shirt",
    "supplier": "MukherjeeSuppliers",
    "availableCount": 1000,
    "price": 500.5,
    "size": 40,
    "color": "Green"
  },
  {
    "id": 2,
    "name": "Nike Cap-1",
    "brand": "Nike",
    "type": "Cap",
    "supplier": "AniruddhaRetail",
    "availableCount": 5000,
    "price": 200.25,
    "size": 36,
    "color": "Yellow"
  }
  ]
  ```
## Running the tests
In the root dir run ->
```
mvn test
```

## Deployment
No need of separate deployment to server. Embedded Tomcat takes care of it.

repository: himankbatra/xyz-ecomm-market

branch_name: refs/heads/main

repo_name: himankbatra/xyz-ecomm-market


text:
# Changelog

All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.

### [4.0.2](https://github.com/RxSwiftCommunity/RxRealm/branches/compare/v4.0.2%0Dv4.0.1) (2020-12-05)

### 4.0.1 (2020-12-05)

Changelog
=========

3.1.0
_____

- Bump minimum iOS version to 9.0 to sync with realm-cocoa

3.0.0
_____

- added support for Realm 5
- added `queue` optional parameter to `changeset`, `array` and `collection` to specify realm notifications queue

repository: clementleroy/RxRealm

repo_name: clementleroy/RxRealm


text:
# Jumping-into-C++

  This repository contains codes from the book "Jumping Into C++" by Allex Allain.

  Each chapter folder with code examples and exercises in the book's chapter.

repository: HemantharajM/Jumping-into-C-

repo_name: HemantharajM/Jumping-into-C-


text:
---
id: 60fbcc05-df2a-44a2-aa0e-cdd62c2557b6
title: Qa
desc: ''
updated:<PHONE_NUMBER>174
created:<PHONE_NUMBER>185
---

## Local

### Debug

Use `Launch Task` and run `Debug One Test (engine-test-utils)` on a `spec` file that you want to test. This will run the test in `debug` mode which will enable breakpoints.

### Test:Unit

#### Engine
Engine tests use the presets in `common-test-utils/src/presets/engine-server/index.ts` to run through a wide range of scenarios.

In order to narrow the test case to a single preset, use `getPreset`.

```ts
test.only("bond", async () => {
  const preset = getPreset({key: "BASIC", nodeType: "NOTES", presetName: "render", presets: ENGINE_PRESETS})
  const { testFunc, ...opts } = preset;
  await runEngineTestV5(testFunc, { ...opts, createEngine, expect });
});
```

### Test:Integration

## Remote

### Debug

### Test:Unit

### Test:Integration

## Topics

### Unified Tests
These tests cover everything related to `unified` plugins. This refers to anything in packages/engine-server/src/markdown/utils.ts

- plugin tests are located in `packages/engine-test-utils/src/__tests__/engine-server/markdown/`
- [terminology](https://www.kevinslin.com/notes/09b6c659-3fe3-4a7d-98f9-47e7167cca5b.html) to understand
- when testing `transformers`, `process` will run over the node that is passed in to the processor
- when testing `parsers` and `compilers`, `process` will run over the text that you pass into it

repository: SR--/dendron-site

repo_name: SR--/dendron-site


text:
protectedblob
=============

[![Build Status](https://travis-ci.org/lukhnos/protectedblob-go.svg?branch=master)](https://travis-ci.org/lukhnos/protectedblob-go)

Package protectedblob can create passphrase-protected wrappers for binary
blobs (any non-empty arbitary byte arrays).

The wrapper, called an envelop, uses a randomly-generated key to encrypt the
given byte array. The key is then encrypted with another key that's derived
from user-supplied passphrase. The integrity of the encrypted blob is checked
with an HMAC (hash-based message authentication code). The HMAC is computed
with the encrypted data and another key derived from the passphrase.  To install the command line tool:

    go get github.com/lukhnos/protectedblob-go
    go install github.com/lukhnos/protectedblob-go/...

This is a Go port of [protectedblob-py](https://github.com/lukhnos/protectedblob-py).

repository: lukhnos/protectedblob-go

repo_name: lukhnos/protectedblob-go


text:
# aws_k8s_fpga_plugin

## Note

The FPGA plugin in this folder is only for AWS running XRT prior 2019.2. In XRT 2019.2,
the normal plugin in the parent folder works also for AWS, and there is no limitation
mentioned below for this plugin.

## About

This kubernetes FPGA device plugin is created for cluster running on aws F1 nodes.

The FPGA cards in F1 are different to those Xilinx ones. The differences are in both hardware
and software, so the plugin created for Xilinx FPGA & XRT doesn't work for AWS.

In this dedicated plugin,

* Shell version is hard-coded in XRT for aws, and it is not exported to sysfs. so the
plugin also hard-codes the shell version as "xilinx_aws-vu9p-f1-04261818_dynamic_5_0"
* Shell timestamp is not being used. To keep the same FPGA resource format, the shell
timestamp info is set as "0"

## Limitations on user pods

The plugin itself only relies on a readonly sysfs, so the same to the plugin for Xilinx
FPGAs, this aws plugin is also deployed as normal container in which the sysfs is mounted
as readonly. While for user pods, in order to run awssak scan/list and/or aws specific
fpga- commands, root access has to be granted within the container, which means, in addtion
to the install of xrt/aws-xrt and aws fpga tools from https://github.com/aws/aws-fpga.git,
the user pods have to be deployed in 'privileged' mode.

## Quick start

Once the kubernetes cluster is setup,

### Deploy the plugin as daemonset
```
$kubectl create -f aws-fpga-device-plugin.yaml
```
### Example to deploy a user pod
```
$kubectl create -f mypod.yaml
```

More details, please refer to the README file of the Xilinx FPGA plugin

## Build plugin binary

```
#./build
```

The output is the binary 'aws-fpga-device-plugin' in the current folder

## Build plugin docker image

```
#docker build -t name_of_the_image .
```
There is a docker image built already and pushed to dockerhub

```
xilinxatg/aws_k8s_fpga_plugin:06272019
```


text:
# Issues

If you encounter an issue with the Java SDK, you are welcome to submit a [bug report](https://github.com/watson-developer-cloud/java-sdk/issues).
Before that, please search for similar issues. It's possible somebody has encountered this issue already.

# Building and testing
This project uses [Maven] as the build tool (> v1.x). Here are some helpful commands:
```sh
cd java-sdk
mvn clean  # Delete target directory.
mvn test # Run tests
mvn package # Take the compiled code and package it in its distributable format, e.g. JAR.
mvn verify # Run any checks to verify the MVN package is valid and meets quality criteria.
mvn verify -fae -DskipITs=false # Run Integration tests to verify the MVN package is valid and meets quality criteria.
mvn install # Install the package into the local maven repository cache.
```

# Pull Requests

If you want to contribute to the repository, here's a quick guide:
  1. Fork the repository
  1. Edit the [`config.properties`](../common/src/test/resources/config.properties) file to add your service credentials to the appropriate fields.
  2. develop and test your code changes: `mvn verify -fae -DskipITs=false`.
    * Run `checkstyle`: `mvn checkstyle:check`. 🏁
    * Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
    * Check for unnecessary whitespace with git diff --check before committing.
  3. Make the test pass
  4. Commit your changes:
    * Commits should follow the [Angular commit message guidelines](https://github.com/angular/angular/blob/master/CONTRIBUTING.md#-commit-message-guidelines). This is because our release tool uses this format for determining release versions and generating changelogs. To make this easier, we recommend using the [Commitizen CLI](https://github.com/commitizen/cz-cli) with the `cz-conventional-changelog` adapter.
  5. Push to your fork and submit a pull request to the **master** branch

# Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
   have the right to submit it under the open source license
   indicated in the file; or

(b) The contribution is based upon previous work that, to the best
   of my knowledge, is covered under an appropriate open source
   license and I have the right under that license to submit that
   work with modifications, whether created in whole or in part
   by me, under the same open source license (unless I am
   permitted to submit under a different license), as indicated
   in the file; or

(c) The contribution was provided directly to me by some other
   person who certified (a), (b) or (c) and I have not modified
   it.

(d) I understand and agree that this project and the contribution
   are public and that a record of the contribution (including all
   personal information I submit with it, including my sign-off) is
   maintained indefinitely and may be redistributed consistent with
   this project or the open source license(s) involved.

## Additional Resources
+ [General GitHub documentation](https://help.github.com/)
+ [GitHub pull request documentation](https://help.github.com/send-pull-requests/)

[dw]: https://developer.ibm.com/answers/questions/ask/?topics=watson
[stackoverflow]: http://stackoverflow.com/questions/ask?tags=ibm-watson
[Maven]: https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
[Gradle]: https://docs.gradle.org/current/userguide/installation.html

repository: watson-developer-cloud/java-sdk

gha_language: Java

repo_name: watson-developer-cloud/java-sdk


text:
oVirt environment shutdown
=========

The `oVirt.shutdown-env` role iterates through all the entities (vms and hosts) in an oVirt/RHV cluster and performs a clean and ordered shutdown.
It also handles an Hosted-Engine and hyper-converged GlusterFS environment as a special case automatically detecting it.
The role is intended to be run only against the engine machine.

If on an Hosted-Engine environment, global maintenance mode will be set:
the user has to manually exit it in order to get the engine VM automatically powered up once needed.

A startup mode is also available:
in the startup mode the role will bring up all the IPMI configured hosts and it
will unset the global maintenance mode if on an hosted-engine environment.
The startup mode will be executed only if the 'startup' tag is applied; shutdown mode is the default.
The startup mode requires the engine to be already up.

Requirements
------------

 * Ansible version 2.6 or higher
 * Python SDK version 4.2 or higher

Dependencies
------------

No.

Example Playbook
----------------

```yaml
---
- name: oVirt shutdown environment
  hosts: localhost
  connection: local
  gather_facts: false

  vars:
    engine_url: https://ovirt-engine.example.com/ovirt-engine/api
    engine_user: admin@internal
    engine_password: 123456
    engine_cafile: /etc/pki/ovirt-engine/ca.pem

  roles:
    - oVirt.shutdown-env
```

Demo
----
 Here a demo showing a clean and ordered shutdown of an hyper-converged hosted-engine environment with 3 hosts, 3 regular VMs plus the HE one.
[![asciicast](https://asciinema.org/a/vZJ6xFEU1POYyS8mEKF9lcV63.png)](https://asciinema.org/a/vZJ6xFEU1POYyS8mEKF9lcV63)

License
-------

Apache License 2.0

repository: gobindadas/ovirt-ansible-shutdown-env

repo_name: gobindadas/ovirt-ansible-shutdown-env


text:
# edison-arduino101-iot

Edison + Arduino 101 IoT demo

This demo illustrates a simple IoT example by displaying an Arduino 101's IMU (accelerometer / gyroscope) data on a web page. In order to do this, an Intel Edison module is used to receive the data from the Arduino 101 via BLE (Bluetooth Low Energy), then sends it to a web server via WebSockets.

Here's a picture that describes the overall architecture:

![Archiecture](https://raw.githubusercontent.com/drejkim/edison-arduino101-iot/master/images/edison-arduino101-iot.png)

Arduino 101 uses the [CurieBLE library](https://www.arduino.cc/en/Reference/CurieBLE) to broadcast the IMU data via BLE. Edison is responsible for receiving this data using [noble](https://github.com/sandeepmistry/noble), a Node.js BLE central module, and sending it to a separate web server using [socket.io-client](https://github.com/socketio/socket.io-client). The web server—which also uses Node.js and [socket.io](http://socket.io/)—is responsible for receiving data from Edison and hosting a web page that displays the IMU data. For more details, see this [blog post](http://drejkim.com/blog/2016/04/08/using-edison-and-arduino-101-together).

## Setting up the demo

### Edison

#### Installing software using opkg

Add [AlexT's unofficial opkg repository](http://alextgalileo.altervista.org/edison-package-repo-configuration-instructions.html). It contains many precompiled packages that can be installed by simply typing `opkg install <package name>`.

To configure the repository, add the following lines to `/etc/opkg/base-feeds.conf`:

```bash
src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison
src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
```

Update the package manager and install the required packages:

```bash
opkg update
opkg install git systemd-dev
```

#### Setting up Node.js

* Install `async` globally: `npm -g install async`
* Navigate to `edison/` and type `npm install`
* Modify the `socket` variable in `edison/sensors.js` with your web server's URL—see note below

### Web server

Note: Your web server should NOT be running on the Edison that's running `sensors.js`. It can run on a personal computer, or even on a different Edison.

* Navigate to `web/server/` and type `npm install`
* Modify the `socket variable` in `web/client/app.js` with your web server's URL

## Running the demo

### Arduino 101

Upload the sketch located in `arduino/imu/imu.ino` to your Arduino 101. After a few seconds, it should be ready to go.

### Edison

Navigate to `edison/` and type `node sensors.js` to start the program. The Edison console should look similar to this:

```bash
root@myedison:~# node sensors.js
Start BLE scan...
Connected to peripheral: 984fee0f3980
Discovered IMU service
ax:edison
ay:edison
az:edison
gx:edison
gy:edison
gz:edison
```
If the output only goes up to "Connected to peripheral...", try restarting the program after a few seconds. This can help in discovering the BLE service.

### Web server & client

* Start the web server by navigating to `web/server/` and typing `node server.js`
* Open a browser window and navigate to the web server's URL

You should now see the accelerometer / gyroscope data from your Arduino 101 streaming to the web page!

### Troubleshooting

If you're not seeing the data change on the webpage, first check that the web server console looks something like this:

```bash
HTTP server listening on port 8080
Client connected
```

Also, check that the Edison console (where `sensors.js` is running) outputs a new line, **Connected to server**, and looks similar to this:

```bash
root@myedison:~# node sensors.js
Start BLE scan...
Connected to peripheral: 984fee0f3980
Discovered IMU service
ax:edison
ay:edison
az:edison
gx:edison
gy:edison
gz:edison
Connected to server
```

On the Arduino 101, go to **Tools -> Serial Monitor**. The data should be outputting to the serial monitor and look something like this:

![Arduino 101 Serial Monitor](https://raw.githubusercontent.com/drejkim/edison-arduino101-iot/master/images/arduino101-serial-monitor.png)

repository: CamiloLourenco/Raspserver

repo_name: CamiloLourenco/Raspserver


text:
### [CVE-2020-11179](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-11179)
![](https://img.shields.io/static/v1?label=Product&message=Snapdragon%20Auto%2C%20Snapdragon%20Compute%2C%20Snapdragon%20Connectivity%2C%20Snapdragon%20Consumer%20IOT%2C%20Snapdragon%20Industrial%20IOT%2C%20Snapdragon%20Mobile%2C%20Snapdragon%20Voice%20%26%20Music%2C%20Snapdragon%20Wearables&color=blue)
![](https://img.shields.io/static/v1?label=Version&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Vulnerability&message=Arbitrary%20Read%20and%20Write%20Access%20in%20Kernel&color=brighgreen)

### Description

Arbitrary read and write to kernel addresses by temporarily overwriting ring buffer pointer and creating a race condition. in Snapdragon Auto, Snapdragon Compute, Snapdragon Connectivity, Snapdragon Consumer IOT, Snapdragon Industrial IOT, Snapdragon Mobile, Snapdragon Voice & Music, Snapdragon Wearables

### POC

#### Reference
- https://www.qualcomm.com/company/product-security/bulletins/december-2020-bulletin

#### Github
- https://github.com/ARPSyndicate/cvemon
- https://github.com/TinyNiko/android_bulletin_notes
- https://github.com/kdn111/linux-kernel-exploitation
- https://github.com/khanhdn111/linux-kernel-exploitation
- https://github.com/khanhdz-06/linux-kernel-exploitation
- https://github.com/khanhdz191/linux-kernel-exploitation
- https://github.com/khanhhdz/linux-kernel-exploitation
- https://github.com/khanhhdz06/linux-kernel-exploitation
- https://github.com/khanhnd123/linux-kernel-exploitation
- https://github.com/ssr-111/linux-kernel-exploitation
- https://github.com/xairy/linux-kernel-exploitation

repository: trickest/cve

gha_language: HTML

repo_name: trickest/cve


text:
---
layout: page
title: Middle Brother
permalink: /middle-brother/
description: A cat couldn't scratch
---
**Original Artist**: Middle Brother

**Covering Artist**: Peter Berens (vocals); Paul Berens (guitar, vocals)

**Recording location**: Mpls., Minn.

<audio id="player" controls>
  <source src="/assets/songs/middle.brother.mp3" type="audio/mp3" />
</audio>

## Lyrics

Stay hydrated from a double shot

Get my nourishment from a punch in the gut

Never really felt I had the best of luck

I got a big, big mouth that just a won't shut up

Hop in the car, turn the radio on

Out from the speakers, a familiar song

Head down the road, start to hum a long

I made it all the way home and left the TV on

But I'ma learn to fly an airplane

And it's gonna make my mama proud

I'm gonna get my dad to notice me

Even if I have to fly it into the ground

I know my days are numbered but I'm bad at math

I got a [life][^1] so hard that a cat couldn't scratch

Made some bad decisions, I shouldn't go back

I can't see her, it's just-a not like that

You see I had this lovin' baby but I [messed it][^1] up

There's a little ounce of pain behind every grunt

All the noise that I make, I shouldn't complain

Regrets, Tourettes, I guess it's the same

But I'ma learn to fly an airplane

I'm gonna make my children proud

I'm gonna make them all respect me

Like when I first showed up in town, oooo!


text:
# Sales Engineer Test
Hello you lovely folk at Datadog. Below is a collection of my responses for the the technical exercise.
I've kept the headings and most of the text for the original readme file so as to easily place the screenshots and code snippets.

## Prerequisites - Setup the environment
Nothing really to do here. And further, various of the following screenshots will imply the environment.
For completeness, however, I'll note that an Ubuntu 18.4 image was spun up on _vagrant_, inside a VirtualBox VM.

## Collecting Metrics
* Add tags in the Agent config file and show us a screenshot of your host and its tags on the Host Map page in Datadog.
![metric tags](./Metrics-Tags.JPG)

* Install a database on your machine (MongoDB, MySQL, or PostgreSQL) and then install the respective Datadog integration for that database.
![mongo install](./Metrics-Mongo.JPG)

* Create a custom Agent check that submits a metric named my_metric with a random value between 0 and 1000.
Here is the relevant code for this. I did not include the YAML as there is little there of note.
``` python
import random

# the following try/except block will make the custom check compatible with any Agent version
try:
    # first, try to import the base class from new versions of the Agent...
    from datadog_checks.base import AgentCheck
except ImportError:
    # ...if the above failed, the check is running in Agent version < 6.6.0
    from checks import AgentCheck

# content of the special variable __version__ will be shown in the Agent status page
__version__ = "0.0.1"

class TestChecks(AgentCheck):
    def check(self, instance):
        self.gauge('my_metric ',random.randint(1, 1000))

```

* Change your check's collection interval so that it only submits the metric once every 45 seconds.
![45 second metric](./Metrics-45second-Graph.JPG)

* **Bonus Question** Can you change the collection interval without modifying the Python check file you created?
yes, I'm sure you can.

## Visualizing Data
Utilize the Datadog API to create a Timeboard that contains:
* Your custom metric scoped over your host.
* Any metric from the Integration on your Database with the anomaly function applied.
* Your custom metric with the rollup function applied to sum up all the points for the past hour into one bucket

Please be sure, when submitting your hiring challenge, to include the script that you've used to create this Timeboard.

What this Alert checks is to see if the sum of the 'my_metric' value is less than 500, when checked each five minutes.
(and if it is, that we should alert about it). However, given it is based upon a pseudo-random number, this should not happen. If it did, we'd definitely want to check our number generator).

********************
## Monitoring Data
Since you’ve already caught your test metric going above 800 once, you don’t want to have to continually watch this dashboard to be alerted when it goes above 800 again. So let’s make life easier by creating a monitor.

Create a new Metric Monitor that watches the average of your custom metric (my_metric) and will alert if it’s above the following values over the past 5 minutes:
![metric outside ](./Metrics-outside-bounds-snapshot.JPG)

And also ensure that it will notify you if there is No Data for this query over the past 10m.
Please configure the monitor’s message so that it will:
* Send you an email whenever the monitor triggers.
* Create different messages based on whether the monitor is in an Alert, Warning, or No Data state.
* Include the metric value that caused the monitor to trigger and host ip when the Monitor triggers an Alert state.

When this monitor sends you an email notification, take a screenshot of the email that it sends you.
![monitor alert](./Monitoring-Email-alert-test.JPG)
![monitor no-data](./Monitoring-Email-no-data-test.JPG)
![monitor summary](./Monitoring-Email-summary.JPG)
![monitor warning]./Monitoring-Email-warning.JPG

**Bonus Question:** Since this monitor is going to alert pretty often, you don’t want to be alerted when you are out of the office. Set up two scheduled downtimes for this monitor:
* One that silences it from 7pm to 9am daily on M-F,
* And one that silences it all day on Sat-Sun.
* Make sure that your email is notified when you schedule the downtime and take a screenshot of that notification.
![down weekday](./Downtime-weekday.JPG)
![down weekend](./Downtime-weekend.JPG)

## APM Data
Given the following Flask app (or any Python/Ruby/Go app of your choice) instrument this using Datadog’s APM solution:
``` python
FLASK CODE
```

* Bonus Question: What is the difference between a Service and a Resource?
According to the online docs, "Services are the building blocks of modern microservice architectures - broadly a service groups together endpoints, queries, or jobs for the purposes of scaling instances"  while Resources "represent a particular domain of a customer application".

Provide a link and a screenshot of a Dashboard with both APM and Infrastructure Metrics.
* Fully instrumented app for this submission can be found at https://github.com/Barbog/hiring-engineers/blob/master/apm_flask.py
* the python flask file used can be found at https://github.com/Barbog/hiring-engineers/blob/master/apm_flask.py
APM dashboard ![apm dashboard](./APM-dashboard.JPG)

A listing of logged APM endpoints: ![APM endpoints](./APM-endpoints.JPG)

### Final Question:
_Datadog has been used in a lot of creative ways in the past. We’ve written some blog posts about using Datadog to monitor the NYC Subway System, Pokemon Go, and even office restroom availability!_
_Is there anything creative you would use Datadog for?_

* Given I have a background in games development, the main area which would most interest me for use with Datadog's capabilities would be in the monitoring of use actions in first person games, such as heatmaps, weapon changes, and testing times. At BioWare we made a custom system to moniter these things, but I have the feeling that such metrics could be more elegantly harvested with Datadog tech.

repository: Barbog/hiring-engineers

repo_name: Barbog/hiring-engineers


text:
---
title: Loading ODBC drivers from the Microsoft Data Access Pack
author: Steve Simon
date: 2001-01-24
categories:
- Blog post
tags:
- Being updated
- Data management
- SPSS software
output: html_document
---

This page is obsolete, but I am keeping it here for sentimental reasons.

Here are excerpts from some emails posted to the SPSSX-L listserver on September 10-11, 2000. These emails describe how to load special drivers for ODBC - especially the driver for Access 97.

#### First message

If the application is ODBC compliant - which would include most modern database programs - then you can use the SPSS Data Driver 32.

The SPSS Data Driver allows ODBC compliant applications to read SPSS system files directly - via ODBC.

The SPSS Data Driver 32 is included in the SPSS Data Access Pack on the SPSS 10.0 CD-ROM. To install the driver - insert your SPSS CD-ROM.

The autoplay screen should appear. Click on Install SPSS Data Access Pack. At the first screen - click Next - and then accept the license agreement.

At the next screen- you can select the location where you want the files to be installed. Then click Next.

At the Select Components screen - check the box next to SPSS Data Driver 32. Then - click Next and follow the remaining steps in the wizard.

This will install the SPSS Data Driver into your ODBC Data Sources Control panel.

To configure the driver - go to Start->Settings->Control Panel.

Double click on Data Sources (ODBC). On the User DSN tab - click Add.

Scroll down until you see SPSS Data Access 32 (*.sav) - and select it.

Click Finish. A small dialog box will appear - named Setup.

In the box next to Data Source: type in a name for the Data Source. In the box next to Database: type in the full path to the directory where your SPSS data file is located. Then click OK. Click OK again on the Database Administrator. When you use the data source within your  application - the driver will display each SPSS data file in the directory as a separate table.

In general - ODBC can only read in 255 variables at a time.

#### Second message

On the SPSS 9.0 CD-ROM - the Microsoft Data Access Pack (which includes the Microsoft Access ODBC Driver) is in the folder called "ODBC Drivers". Double click on the file called dataacc.exe to install.

You can also download the Microsoft Data Access Pack directly from Microsoft's webpage at [www.microsoft.com/data](http://www.microsoft.com/data). They call it the Microsoft Data Access Components - or MDAC.

#### Third message

I also found a copy on the Access 97 CD. I knew it had to be somewhere on the SPSS CD but after searching the SPSS web site to no avail I then tried Microsoft's site (no luck) and then the Access disc. I told it to reload Access using the Add/Remove feature and found the driver that way. The trick seems to be know what to call something (like "data access pack") when roaming around discs & web sites.

#### Fourth message

You need the driver for the application that contains the data. Since the data are in Access 97 - you will need the Access ODBC driver. (If the data were in SPSS - you would need the SPSS ODBC driver.) Microsoft ODBC drivers are located in the system subdirectory of your windows directory. The file names begin with ODBC and have a .DLL extension. If they have been wiped out or corrupted, you can reinstall them by reinstalling Access. The following technical note contains related information that may be useful.

+ [support.microsoft.com/support/kb/articles/Q237/5/75.ASP](http://support.microsoft.com/support/kb/articles/Q237/5/75.ASP).

You can find an [earlier version][sim1] of this page on my [original website][sim2].

[sim1]: http://www.pmean.com/01/mdac.html
[sim2]: http://www.pmean.com/original_site.html

repository: pmean/build-website

repo_name: pmean/build-website


text:
# Diplodia veratri Earle SPECIES

#### Status
ACCEPTED

#### According to
Index Fungorum

#### Published in
Bulletin of the New York Botanical Garden 296 (1904)

#### Original name
Diplodia veratri Earle

### Remarks
null

repository: mdoering/backbone

repo_name: mdoering/backbone


text:
# Access OSS with a temporary access credential provided by STS

You can use Alibaba Cloud Security Token Service \(STS\) to authorize temporary access to OSS. You can use STS to grant a third-party application or your RAM user an access credential that has custom permissions and a custom validity period.

## Operation

Users managed by your local identity system are referred to as federated users, such as the users of your applications, local accounts owned by your enterprise, or users of third-party applications. In addition, federated users can also be users that are created by you and who have access to your applications and resources in Alibaba Cloud. Federated users may need to access your OSS resources directly.

For these users, you can use STS to manage the temporary access credentials for their Alibaba Cloud accounts or RAM users. You can create temporary access credentials to grant OSS access permissions to federated users without providing your long-term keys \(such as logon passwords and AccessKey pairs\) of your Alibaba Cloud accounts or RAM users. You can customize the access permissions and validity period of the credential. The temporary access credential becomes invalid when it expires.

Temporary access credentials generated by STS include security tokens \(SecurityToken\) and temporary AccessKey pairs composed of AccessKey ID and AccessKey secret. You can use a temporary AccessKey pair to access OSS in the same way as you use an AccessKey pair of an Alibaba Cloud account or a RAM user to send a request. Each request sent to OSS must carry a security token.

## Implementation

A mobile app is used as an example. If you are a mobile app developer and plan to use Alibaba Cloud OSS to store user data for your app, you must keep the data of each app user isolated to prevent an app user from obtaining data of other app users. You can use STS to authorize users so that they can directly access your OSS resources.

The following figure shows how to use STS to grant OSS access permissions to users.

![](https://static-aliyun-doc.oss-accelerate.aliyuncs.com/assets/img/en-US/7495688951/p983.png)

1.  Log on as the app user. An app user is a user of the app and is irrelevant to an Alibaba Cloud account. An app user can log on to the app server. The app server must be capable of defining the minimum access permissions for each valid app user.
2.  The application server requests a security token from STS. Before the app calls STS, the app server must determine the minimum access permissions for each app user \(described in the policy syntax\) and the expiration time of the credential. Then, the app server uses AssumeRole to obtain a security token which indicates a role.
3.  STS returns a temporary access credential to the app server. The credential includes a security token, a temporary AccessKey pair, and the expiration time.
4.  The app server returns the temporary access credential to the app client. The app client can cache the credential. After the credential expires, the app client must apply for a new temporary access credential from the app server. For example, if the temporary access credential is valid for one hour, the app client can send a request to the app server to update the credential every 30 minutes.
5.  The app client uses the cached temporary access credential to initiate a request to call OSS API operations. After OSS receives the request, OSS uses STS to verify the access credential in the request and responds to the request.

## Procedures

After you combine OSS SDKs and STS SDKs, you can access OSS by using a temporary access credential provided by STS. For example, a bucket named ram-test is used to store user data. STS is used to grant permissions to a RAM user so that the user can access OSS buckets.

1.  Create a RAM user.
    1.  Log on to the [RAM console](https://ram.console.aliyun.com/) by using an Alibaba Cloud account.
    2.  In the left-side navigation pane, click **Users** under **Identities**.
    3.  Click **Create User**.

        **Note:** To create multiple RAM users at a time, click **Add User**.

    4.  Specify the **Logon Name** and **Display Name** parameters.
    5.  Under **Access Mode**, select **Programmatic Access**.
    6.  Click **OK**. Click **Copy** in the Actions column that corresponds to the created RAM user and save the AccessKey pair.
    7.  Select the created RAM user. Click **Add Permissions**.
    8.  In the Add Permissions panel, add the **AliyunSTSAssumeRoleAccess** policy to the RAM user.

        ![](https://static-aliyun-doc.oss-accelerate.aliyuncs.com/assets/img/en-US/7495688951/p35411.jpg)

        **Note:** Do not grant other permissions to the RAM user because it automatically obtains all permissions of a role when it assumes the role.

    9.  Click **OK**.
2.  Create a RAM policy.
    1.  Log on to the [RAM console](https://ram.console.aliyun.com/) by using an Alibaba Cloud account.
    2.  In the left-side navigation pane, click **Policies** under **Permissions**.
    3.  On the page that appears, click **Create Policy**.
    4.  On the Create Custom Policy page, specify the **Policy Name** and **Note** parameters.
    5.  Select **Visualized** or **Script** for Configuration Mode.

        For example, to authorize users to upload objects to the ram-test/examplefolder folder, you can select Script and add the following script in the **Policy Document** section.

        **Warning:** The following script is for reference only. You must configure fine-grained RAM policies based on your requirements to avoid granting excessive permissions to users. For more information about how to configure fine-grained RAM policies, see the [Example 5: Use RAM or STS to grant other users permissions to access OSS resources](/intl.en-US/Developer Guide/Data security/Access and control/RAM Policy/Implement access control based on RAM policies.mdsection_lda_vgc_p09) section in the *Implement access control based on RAM policies* topic.

        ```
        {
            "Version": "1",
            "Statement": [
             {
                   "Effect": "Allow",
                   "Action": [
                     "oss:PutObject"
                   ],
                   "Resource": [
                     "acs:oss:*:*:ram-test/examplefolder",
                     "acs:oss:*:*:ram-test/examplefolder/*"// Authorize users to access the lowest-level folders under the examplefolder folder.
                   ]
             }
            ]
        }
        ```

3.  Create a role and record the role ARN.
    1.  Log on to the [RAM console](https://ram.console.aliyun.com/) by using an Alibaba Cloud account.
    2.  In the left-side navigation pane, click **RAM Roles**.
    3.  Click **Create RAM Role**, select **Alibaba Cloud Account**, and then click **Next**.
    4.  In the Create RAM Role panel, enter a RAM role name in the **RAM Role Name** field and a note in the **Note** field. In this example, the RAM role name is RamOssTest.
    5.  under **Select Trusted Alibaba Cloud Account**, select **Current Alibaba Cloud Account**.
    6.  Click **OK**. Then, click **Add Permissions to RAM role**.
    7.  In the Add Permissions panel, select **Custom Policy** and add the policy that you created in Step 2.

        After the policy is added, the following page appears.

        ![](https://static-aliyun-doc.oss-accelerate.aliyuncs.com/assets/img/en-US/8495688951/p35437.jpg)

    8.  Copy the **ARN** of the created role, which is the ID of the role.
4.  Obtain an STS AccessKey pair and a security token.

    You can call the [AssumeRole](/intl.en-US/API Reference/API Reference (STS)/Operation interfaces/AssumeRole.md) operation or use [STS SDKs for various programming languages](/intl.en-US/SDK Reference/STS SDK Reference/STS SDK overview.md) to obtain the temporary access credential.

    The following code provides an example on how to use OSS SDK for Java to obtain a temporary access credential:

    ```
    package com.aliyun.sts.sample;
    import com.aliyuncs.DefaultAcsClient;
    import com.aliyuncs.exceptions.ClientException;
    import com.aliyuncs.http.MethodType;
    import com.aliyuncs.profile.DefaultProfile;
    import com.aliyuncs.profile.IClientProfile;
    import com.aliyuncs.sts.model.v20150401.AssumeRoleRequest;
    import com.aliyuncs.sts.model.v20150401.AssumeRoleResponse;
    public class StsServiceSample {
        public static void main(String[] args) {
            String endpoint = "<sts-endpoint>";
            String AccessKeyId = "<access-key-id>";
            String accessKeySecret = "<access-key-secret>";
            String roleArn = "<role-arn>";
            String roleSessionName = "<session-name>";
            String policy = "{\n" +
                    "    \"Version\": \"1\", \n" +
                    "    \"Statement\": [\n" +
                    "        {\n" +
                    "            \"Action\": [\n" +
                    "                \"oss:*\"\n" +
                    "            ], \n" +
                    "            \"Resource\": [\n" +
                    "                \"acs:oss:*:*:*\" \n" +
                    "            ], \n" +
                    "            \"Effect\": \"Allow\"\n" +
                    "        }\n" +
                    "    ]\n" +
                    "}";
            try {
                // Add an endpoint. The STS endpoint is used. The first two parameters are not specified, which indicates that the region ID is not required.
                DefaultProfile.addEndpoint("", "", "Sts", endpoint);
                // Construct a default profile. The first parameter is not specified, which indicates that the region ID is not required.
                IClientProfile profile = DefaultProfile.getProfile("", AccessKeyId, accessKeySecret);
                // Use the constructed profile to construct a client.
                DefaultAcsClient client = new DefaultAcsClient(profile);
                final AssumeRoleRequest request = new AssumeRoleRequest();
                request.setMethod(MethodType.POST);
                request.setRoleArn(roleArn);
                request.setRoleSessionName(roleSessionName);
                request.setPolicy(policy); // If the policy is not specified, the user obtains all permissions of the role.
                request.setDurationSeconds(1000L); // Set the validity period of the credential.
                final AssumeRoleResponse response = client.getAcsResponse(request);
                System.out.println("Expiration: " + response.getCredentials().getExpiration());
                System.out.println("Access Key Id: " + response.getCredentials().getAccessKeyId());
                System.out.println("Access Key Secret: " + response.getCredentials().getAccessKeySecret());
                System.out.println("Security Token: " + response.getCredentials().getSecurityToken());
                System.out.println("RequestId: " + response.getRequestId());
            } catch (ClientException e) {
                System.out.println("Failed:");
                System.out.println("Error code: " + e.getErrCode());
                System.out.println("Error message: " + e.getErrMsg());
                System.out.println("RequestId: " + e.getRequestId());
            }
        }
    }
    ```

    The following parameters are used in the preceding code:

    -   endpoint: the endpoint used to access STS, such as sts.cn-hangzhou.aliyuncs.com. For more information about the endpoints to access STS in different regions, see [Endpoints](/intl.en-US/API Reference/API Reference (STS)/Endpoints.md).
    -   AccessKeyId and AccessKeySecret: the AccessKey pair saved in Step 1.
    -   RoleArn: the role ARN saved in Step 3.
    -   RoleSessionName: the name of the temporary access credential. We recommend that you use different application user names to distinguish the credentials.
    -   Policy: the permission limits added when the user assumes a role. For more information, see [Implement access control based on RAM policies](/intl.en-US/Developer Guide/Data security/Access and control/RAM Policy/Implement access control based on RAM policies.md).

        **Note:** The added policy is used to control the permissions of the temporary access credential after the user assumes a role. The permissions obtained by the temporary credential are restricted by both the role and the added policy. When a role is assumed, a policy can be added to further control the permissions. For example, when you upload objects, you can add a policy to control upload paths for different users.

    -   DurationSeconds: the validity period of the temporary access credential. The minimum value is 900. The maximum value is the maximum session duration that the current role specifies. Unit: seconds. For more information, see [Set the maximum session duration for a RAM role](/intl.en-US/RAM Role Management/Set the maximum session duration for a RAM role.md).
5.  Access OSS by using the temporary access credentials.

    The following code provides an example on how to use OSS SDK for Java to upload a local file to OSS:

    ```
    // The endpoint of the China (Hangzhou) region is used in this example. Specify the actual endpoint.
    String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
    // Security risks may arise if you log on with the AccessKey pair of an Alibaba Cloud account because the account has permissions on all API operations. We recommend that you use your RAM user's credentials to call API operations or perform routine operations and maintenance. To create a RAM user, log on to the RAM console.
    String AccessKeyId = "<yourAccessKeyId>";
    String accessKeySecret = "<yourAccessKeySecret>";
    String securityToken = "<yourSecurityToken>";

    // After you obtain a temporary STS credential for your OSSClient, an OSSClient instance is created based on the security token and temporary AccessKey pair (AccessKey ID and AccessKey secret) that are contained in the credential.
    // Create an OSSClient instance. Note that the STS access credential generated in the preceding step is used.
    OSSClient ossClient = new OSSClient(endpoint, AccessKeyId, accessKeySecret, securityToken);
    // Create a PutObjectRequest object.
    PutObjectRequest putObjectRequest = new PutObjectRequest("<yourBucketName>", "<yourObjectName>", new File("<yourLocalFile>"));

    // Optional. Specify the storage class and ACL of the object.
    // ObjectMetadata metadata = new ObjectMetadata();
    // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
    // metadata.setObjectAcl(CannedAccessControlList.Private);
    // putObjectRequest.setMetadata(metadata);

    // Upload the local file.
    ossClient.putObject(putObjectRequest);

    // Shut down the OSSClient instance.
    ossClient.shutdown();
    ```

    For more examples of OSS SDKs for other programming languages, see the following topics:

    -   [Java SDK](/intl.en-US/SDK Reference/Java/Authorized access.md)
    -   [Python SDK](/intl.en-US/SDK Reference/Python/Authorized access.md)
    -   [Go SDK](/intl.en-US/SDK Reference/Go/Authorized access.md)
    -   [C++ SDK](/intl.en-US/SDK Reference/C++/Authorized access.md)
    -   [PHP SDK](/intl.en-US/SDK Reference/PHP/Authorized access.md)
    -   [C SDK](/intl.en-US/SDK Reference/C/Authorized access.md)
    -   [.NET SDK](/intl.en-US/SDK Reference/. NET/Authorized access.md)
    -   [Node.js SDK](/intl.en-US/SDK Reference/Node. js/Authorized access.md)
    -   [Browser.js SDK](/intl.en-US/SDK Reference/Browser.js/Authorized access.md)
    -   [Android SDK](/intl.en-US/SDK Reference/Android/Authorized access.md)
    -   [iOS SDK](/intl.en-US/SDK Reference/iOS/Authorized access.md)

## FAQ

What do I do if the NoSuchBucket error is reported when I obtain an access credential from STS?

The error message returned because the specified STS `endpoint` is invalid. Enter a valid STS endpoint based on your region. For more information about the endpoints to access STS in different regions, see [Endpoints](/intl.en-US/API Reference/API Reference (STS)/Endpoints.md).

url: https://raw.githubusercontent.com/Quanyu666/oss/15268d71ed5de8e842cf852de821986e66747c9c/intl.en-US/Developer Guide/Data security/Access and control/Access OSS with a temporary access credential provided by STS.md


text:
## Click Bot

This bot demonstrates how to use the functionality provided by the `mouse-tracking` script.
After being moved to the task room the user is shown a button that they can use to start the game.
While the game is running an image is displayed on the right side of the page. This image contains different objects that are described to the user one at a time. The user will only hear each audio once. They then have to click on the described object. They may also choose to skip this item by clicking the button at the top of the page. If the user has answered correctly this same button will also bring them to the next item.

To run the bot, you can run a command in a similar fashion as:
```bash
docker run -e SLURK_TOKEN=ad6f2c73-95c3-478f-977f-bc25edcd8c5e -e SLURK_USER=170 -e CLICK_DATA="test_items/shape-colors.json" -e CLICK_TASK_ID=2 -e SLURK_PORT=5000 --net="host" slurk/click-bot
```

The token has to be linked to a permissions entry that gives the bot at least the following rights: `api` and `send_message`
A user in this task has to be given the rights: `send_command`
Please refer to [the documentation](https://clp-research.github.io/slurk/slurk_multibots.html) for more detailed information.

## Setting up and running

### Setup

1. Install [Docker](https://docs.docker.com/get-docker/). You might also need the [jq package](https://stedolan.github.io/jq/download/) too.
2. Clone the [slurk](https://github.com/clp-research/slurk) repository.
3. Before running the bot, several environmental variables would need to be generated and assigned. This process is detailed in the [documentation](https://clp-research.github.io/slurk/slurk_gettingstarted.html), which details both the general preparation and the [bot specific initialisations](https://clp-research.github.io/slurk/slurk_gettingstarted.html#chatting-with-a-bot). The bot also needs to have specific permissions, listed below this paragraph. The above permissions can be found in [this example permissions file](https://github.com/clp-research/slurk-bots/blob/master/clickbot/click_bot_permissions.json) already.
    ```
    {
        "api": true,
        "send_message": true
    }
    ```
 4. Make sure that the [slurk](https://github.com/clp-research/slurk) and slurk-bots repositories live next to each other on the same level.
 5. Navigate to the base directory of the slurk-bots repository and run the script to launch this bot, your command should look like this:
 ```$ python start_bot.py clickbot/ --users 1 --tokens --dev --extra-args clickbot/args.json```.
 This script will build and run the docker images, it will initialise all the env variables with the right permissions and it will set everything up for testing locally on your computer. The bot will appear in your containers list as ```slurk/clickbot```.

### Running and playing the bot
If you have everything already set up, you can run the bot using the following command (take notice of the right env variable names):
```bash
docker run \
    --net="host" \
    -e BOT_TOKEN=$CLICK_BOT_TOKEN \
    -e BOT_ID=$CLICK_BOT \
    -e CLICK_DATA="test_items/shape-colors.json" \
    -e TASK_ID=$TASK_ID \
    -e SLURK_PORT=5000 \
    -d slurk/clickbot
```

To access the waiting rooms, you will need to input the saved tokes as well as any string as username. If you ran the setup script, there will be a token towards the end that will look something like this: `2f42a98e-0a29-43c2-9f94-97b38f25c30f`

repository: clp-research/slurk-bots

repo_name: clp-research/slurk-bots


text:
## `ns_jwt`: JSON Web Tokens for Notary Service

We will use RS256 (public/private key) variant of JWT signing. (Source: [https://pyjwt.readthedocs.io/en/latest/usage.html#encoding-decoding-tokens-with-rs256-rsa](https://pyjwt.readthedocs.io/en/latest/usage.html#encoding-decoding-tokens-with-rs256-rsa)). For signing, , NS is assumed to be in possession of a public-private keypair. Presidio can access the public key through static configuration or, possibly, by querying an endpoint on NS, that is specified in the token.

NS tokens carry the following claims:

| name | description | type |
| --- | --- | --- |
|data-set | SAFE Token that points to the dataset. Presidio is able to synthesize a token with linked assertions based on data-set, project-id and user id | String, Private |
| project-id | CoManage/NS name of the project, universally unique and distinct. | String, Private |
| ns-token | SAFE Token of the NS generated from its public key | String, Private |
| ns-name | Human-readable NS name | String, Private |
| iss | NS FQDN | String, Registered |
| sub | OSF DCE rendering of DN attributes from user’s X.509 cert | String, Public |
| exp | Expiration date | Date, Registered |
| iat | Issued at date | Date, Registered |
| name | Full name of subject | String, Public |

For dates, a JSON numeric value representing the number of seconds from `1970-01-01T00:00:00Z UTC` until the specified UTC date/time, ignoring leap seconds.  This is equivalent to the IEEE Std 1003.1, 2013 Edition definition "Seconds Since the Epoch", in which each day is accounted for by exactly 86400 seconds, other than that non-integer values can be represented.  See RFC 3339 for details regarding date/times in general and UTC in particular.

### Setup and configuration

No external configuration except for dependencies (PyJWT, cryptography, python-dateutil).

As above, use a virtual environment

```
virtualenv -p $(which python3) venv
source venv/bin/activate
pip install --editable ns_jwt
pip install pytest
```

### Testing

Simply execute the command below. The test relies on having `public.pem` and `private.pem` (public and private portions of an RSA key) to be present in the `tests/` directory. You can generate new pairs using `tests/gen-keypair.sh` (relies on openssl installation).

```
pytest -v ns_jwt
```

### Teardown and Cleanup

None needed.

### Troubleshooting

CI Logon or other JWTs may not decode outright using PyJWT due to `binascii.Error: Incorrect padding` and `jwt.exceptions.DecodeError: Invalid crypto padding`. This is due to lack of base64 padding at the end of the token. Read it in as a string, then add the padding prior to decoding:

```
import jwt

with open('token_file.jwt') as f:
  token_string = f.read()

jwt.decode(token_string + "==", verify=False)
```
Any number of `=` can be added (at least 2) to fix the padding. If token is read in as a byte string, convert to `utf-8` first: `jwt_str = str(jwt_bin, 'utf-8')`, then add padding (Source: https://gist.github.com/perrygeo/ee7c65bb1541ff6ac770)

repository: RENCI-NRIG/notary-service

repo_name: RENCI-NRIG/notary-service