text:
# Dataworks AWS Manifest Comparison

This page details the manifest comparison process which is used for data reconciliation in the ingestion components between the Kafka stream and the imported data dump.

## Data reconciliation

The data reconciliation process compares the individual records across the timespan that have been imported from the data dump to the individual records that are exported to Crown. This provides very high confidence in the data quality and that no records are missing from the Kafka stream or have gone missing during the ingestion process.

The data reconciliation works together with the rest of the [AWS DataWorks Test Strategy](aws_dataworks_test_strategy.md) to provide high levels of confidence in the overall product and data quality.

## Manifest creation

There are two manifests that are produced:

1. The Historic Data Importer (HDI) produces a manifest when it is run in "Manifest mode", which is a switch in the message that kicks it off
2. The HBase-to-Mongo Exporter (HTME) produces a manfest every time it runs

### Contents

The manifests contains the following:

* One row in a CSV format for each record:
* * For HDI, this is every valid record that is decrypted and imported
* * For HTME, this is every valid record that is written to a snapshot file successfully
* Each row contains the following information for a record:
* * The "id" field for the record which is used as HBase record key, pre-formatted
* * The timestamp that is against the record in epoch format
* * The database the record is from
* * The collection the record is from
* * The type of record (i.e. IMPORT or EXPORT)
* * The source of the record (either "HDI" or the "@type" field from Kafka messages)

### Test data

In development and QA environments, static manifest data is used. This data is in the repository in the `src/manifest-comparison/fixture-data` folder. It contains two import manifest files and two export ones and attempts to generate data scenarios for all the report scenarios that exist.

This data is uploaded to S3 in the concourse pipeline for this repository called `dataworks-behavioural-framework` after PRs merge successfully.

## CI

There is a concourse pipeline called "manifest-comparison" which compares the latest versions of the two manifest file sets. The code for the pipeline is in the aws-ingestion repository.

The pipeline runs through dev and qa first with a set of test data, produces a manifest against this static data and then checks the results against expected values.

Then it runs in production against the real manifest data and generates a report.

This pipeline is automatically kicked off when any code is changed in this repository in the `src/manifest-comparison` folder only. It can be kicked off manually when required also.

## Manifest comparison code

The manifest comparison is a feature in this E2E repo. This is the feature that the CI pipeline executes when it runs.

### Steps

There are a number of steps that the manifest comparison feature executes.

#### Before

Before the test runs, any local temporary locations or S3 locations for query outcomes are cleared.

#### Given The manifest generation tables have been created

This step executes three SQL scripts against [AWS Athena](https://aws.amazon.com/athena/):

1. drop-table.sql -> this runs twice and drops any existing tables for both import data and export data in order to start with a fresh table each time, this allows for schema changes
2. create-table.sql -> this creates two empty externals tables in Athena to represent the manifest data from the import set and the manifest data from the export set. The columns match the data in the files as described above.
3. create-parquet-table.sql -> this creates a big table with extra columns in [AWS Glue](https://aws.amazon.com/glue/) which will be populated later on. This table is in a columnar format called Parquet which is easier for large scale data analysis to be performed on.

#### And The manifest generation tables have been populated

This steps executes the AWS Glue job for the manifest etl. This job is deployed by the aws-ingestion repository and is a hive job running pyspark functions. This glue job uses the non parquet tables created earlier to quickly read the manifest files in the import and export s3 locations (which are passed in by CI to the comparison). It then performs logic decisions and data manipulations to work out the majority of the outcomes needed for the manifest comparison report. It uses the outcomes to populate the parquet table created in the first step.

#### When I generate the manifest comparison queries

This step generates temporary queries locally which will run in [AWS Athena](https://aws.amazon.com/athena/). These queries are executed against the now populated parquet table and will use simple select statements to produce their output. As the [AWS Glue](https://aws.amazon.com/glue/) job does the majority of the business logic, this enables these queries to be fairly simple. This is important so that [AWS Athena](https://aws.amazon.com/athena/) does not run out of resources when running the queries or time out.

The queries are written as templates which are modified at runtime with specific passed in data from CI and then written as temporary queries locally.

#### And I run the manifest comparison queries and upload the result to S3

This step executes the locally generated queries and the result is uploaded to S3 (location passed in by S3). The query results are also analysed by the code and formatted in to a report. This report is also saved as a local file and the report is uploaded to another location on S3 (this location is NOT cleared by the tests and so reports are stored indefinitely).

Each query has three files locally:

1. The template SQL file
2. A json file which provides data about the query, this is useful for the report and standardising output
3. A CSV file with expected results for the dev and qa environments (see the step below)

As well as uploading the report to S3, it is printed to stdout as well.

#### Then The query results match the expected results

On the development and QA environments, this step checks the outcome of each query against a local set of CSV files. Because the data in dev and QA is static and uploaded by the CI pipeline from this repository, then the queries in these environments have known outcomes. This step helps to verify the manifest comparison itself is working correctly.

On integration, preprod and prod, this step does nothing. This is achieved by an override environment variable passed in by CI telling it not to do anything here.

### Failures

If any query fails to execute, this will not stop the execution of the other queries. This is useful for debugging and seeing all issues upfront. Instead, the query execution step will complete, then it will log all the ones that failed and exit at that point with a failure.

If the expected results step has an assertion mismatch the run will fail (only applicable in dev and qa).


text:
# kodi-amvnews
Unofficial Kodi plugin to watch anime music video from [AmvNews](http://amvnews.ru).

## Features
* Obtain list of featured, evaluated and favourite AMV
![Lists of AMV](resources/media/readme_01.png)
* Obtain brief AMV info; Watched AMV are marked
![Brief Info](resources/media/readme_02.png)
* Obtain detailed AMV info
![Detailed Info](resources/media/readme_04.png)
![Plot](resources/media/readme_03.png)
* Evaluate AMV or add it to favourites
![Evaluate](resources/media/readme_05.png)
![Add to Favourites](resources/media/readme_06.png)
* Watch AMV (subtitles are supported)
![Played AMV](resources/media/readme_07.png)

## Installation
1. Download [the latest release](https://github.com/pvantonov/kodi-amvnews/releases) (file should be named plugin.video.amvnews-x.x.x.zip)
2. Install it through System > Settings > Add-ons > Install from zip file

## Configuration
1. One should specify his username and password for [AmvNews](http://amvnews.ru) to be able to evaluate AMV and add it to favourites. It also allows one to watch his lists of favourite and evaluated AMV.
![Configure Account](resources/media/readme_08.png)
2. One can specify preferable subtitles language. If subtitles for specified language isn't available the first attached subtitles will be used.
![Configure Subtitles](resources/media/readme_09.png)

license: MIT

repository: pvantonov/kodi-amvnews

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: pvantonov/kodi-amvnews


text:
# BillClin

BillClin is a command-line BillPin clone for geeks that like their shared billing to be reliable.

The way it works is pretty simple: one input file (the history), one output (the current debt/credit state).

## Usage

1. Write and maintain a history file (specs below).
2. `python billpin.py HISTORYFILE`.
3. Read output to know the current credit/debt status.

## Installation

Depends on xtermcolor for color management.

## The history file

The history file is a YAML formatted file that contains details of the various transactions. It is designed to be easily readable, flexible, yet formal.

Example: Alex has spent 15 $, shared between himself, Barbara and Charlie, for a sushi dinner. Later Barbara shared a taxi with Alex and she paid 20$.

	- description: Sushi Dinner
	  payer: Alex
	  date: 16/07/2014
	  amount: 15
	  people:
	    - Alex
	    - Barbara
	    - Charlie
	- description: Taxi
	  payer: Barbara
	  date: 16/07/2014
	  amount: 20
	  people:
	    - Alex
	    - Barbara

The BillClin output for this history file will be:

	Alex owes Barbara 5.00
	Charlie owes Alex 5.00

## Unevenly shared bills

You have the possibility to share bills unevenly, by specifying a weight for one or more people in the history file.

For example, at the next `Spanish tapas` dinner, Barbara is bringing her boyfriend Dan, and will offer him a dinner. Therefore, she would pay two quotes. Dan won't appear in the list of people, as he is not involved in the billing.

	- description: Spanish tapas
	  payer: Alex
	  date: 24/07/2014
	  amount: 50
	  people:
	    - Alex
	    - Barbara: 2
	    - Charlie

Alex and Charlie are implicited given a weight of `1`, by default.

The weight mechanism can be used also to indicate the exact amount spent by everyone. For instance, we could rewrite the last example as follows:

	- description: Spanish tapas
	  payer: Alex
	  date: 24/07/2014
	  amount: 50
	  people:
	    - Alex: 12.50
	    - Barbara: 25
	    - Charlie: 12.50

Note that BillClin **neither checks nor requires** that weights total and the amount are the same. Every weight will be treated as a relative weight, w.r.t. the weights indicated for the other people.

## Caveats

- You need to ensure that that each person has a unique name in the same history file.
- The fields `payer`, `amount` and `people` are required. BillClin will raise an error if you forgot one, it will skip that transaction and proceed as if it had not seen it.
- The fields `date` and `description` are not required, but it's a good thing that you keep history neat. BillClin will raise a warning in case you just forgot or mispelled a field.

## Motivation

The library was created because BillPin had a serious history/totals inconsistency bug and they ignored emails/tweets reporting the issue. Hence, we needed a reliable yet simple alternative that by design doesn't make inconsistencies possible.

## Possible improvements

- Minimize number of transaction / amount of money exchanged.
- Merge of multiple history files, with deduplication of transactions.
- Helper script to append bills to the history file.
- Support for multiple currencies.
- Output coloring.

repository: themiurgo/billclin

repo_name: themiurgo/billclin


text:
# pint

pint is a Prometheus rule linter.

## Usage

There are two modes it works in:

- CI PR linting
- Ad-hoc linting of a selected files or directories

### Pull Requests

It currently supports git for which it will find all commits on the current branch that are not
present in parent branch and scan all modified files included in those changes.

Results can optionally be reported using
[BitBucket API](https://docs.atlassian.com/bitbucket-server/rest/7.8.0/bitbucket-code-insights-rest.html)
or [GitHub API](https://docs.github.com/en/rest) to generate a report with any found issues.
If you are using BitBucket API then each issue will create an inline annotation in BitBucket with a description of
the issue. If you are using GitHub API then each issue with appear as a comment on your pull request.

Exit code will be one (1) if any issues were detected with severity `Bug` or higher. This permits running
`pint` in your CI system whilst at the same you will get detailed reports on your source control system.

### Ad-hoc

Lint specified files and report any found issue.

You can lint selected files:

```SHELL
pint lint rules.yml
```

or directories:

```SHELL
pint lint path/to/dir
```

or both:

```SHELL
pint lint path/to/dir file.yml path/file.yml path/dir
```

## Quick start

Requirements:

- [Git](https://git-scm.com/)
- [Go](https://golang.org/) >=1.17

1. Build the binary:

   ```SHELL
   git clone https://github.com/cloudflare/pint.git
   cd pint
   make build
   ```

2. Run a simple syntax check on Prometheus
   [alerting](https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/)
   or [recording](https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/)
   rules file(s).

   ```SHELL
   ./pint lint /etc/prometheus/*.rules.yml
   ```

3. Configuration file is optional, but without it pint will only run very basic
   syntax checks. See [CONFIGURATION.md](/docs/CONFIGURATION.md) for details on
   config syntax. Check [examples](/docs/examples) dir for sample config files.
   By default pint will try to load configuration from `.pint.hcl`, you can
   specify a different path using `--config` flag:

   ```SHELL
   ./pint --config /etc/pint.hcl lint /etc/prometheus/rules/*.yml
   ```

repository: isgasho/pint

branch_name: refs/heads/main

repo_name: isgasho/pint


text:
# diypowerflow
DIY Powerflow V2 (Esperyd edition)

I forked this to change it to 3 outputs. I will also add some custom things to it.

This a DIY version of the powerflow screen on the Tesla powerwall app.

You can check a running example at:

https://powerflow.romer.se
Above link uses my data live from my house. In progress so dont expect it always to be online

## Legacy text below

This example uses (for now) mine hardcoded userid of emoncms.

I will include in the next version, configuration to allow your own emoncms userid and the names for the feeds to be stored
in the browser. That way you can use this deployed app with your own emoncms values and not needing to host your own version of code.

Currently it pools the values from emoncms.org API feeds.

I will make it more flexible in the future to allow other options and not only being forced and dependent on emoncms,
like for example if you want to host the code in your system and maybe use values directly from your gear.

## How to post the values from your own components to emoncms:

Depending on your own gear/components you have for solar charging, inverters, powerwall shunt BMS and house/grid meters,
how you can get the values into emoncms is very specific to your own situation.

I currently use MPP PCM60x charger (Solar), [Batrium BMS](https://www.batrium.com/) with a Shunt (Powerwall) and two SDM120 meters (House & Grid),
and a raspberry PI to get the values from all those components and post them to emoncms API.

I will include more documentation (maybe some videos) explaining better how to do this exactly for people who need it.

If you have the same or similar components (like other MPP inverters) I suggest you check out the ISO for the raspberry that
Daniel Römer from [DIY Tech and Repairs](http://diytechandrepairs.nu/raspberry-solar/) has prepared,
since it includes already a lot of scripts which you can use and adapt for your own specific situation.

## TODO/ROADMAP:
* make configuration stored in browser for userid, API key, feed names
* improve dots animations, to better reflect current flowing
* make additional energy sources, like generator and wind turbines.
* ...? what ideas/suggestions do you have? join in!

repository: pzolko/diypowerflow

repo_name: pzolko/diypowerflow


text:
# DataDisclosed Schema

```txt
#/properties/dataDisclosed#/properties/dataDisclosed
```

A detailed explanation about which data is disclosed in the processing tasks.

| Abstract            | Extensible | Status         | Identifiable            | Custom Properties | Additional Properties | Access Restrictions | Defined In                                                           |
| :------------------ | ---------- | -------------- | ----------------------- | :---------------- | --------------------- | ------------------- | -------------------------------------------------------------------- |
| Can be instantiated | No         | Unknown status | Unknown identifiability | Forbidden         | Allowed               | none                | [tilt-schema.json\*](../out/tilt-schema.json "open original schema") |

## dataDisclosed Type

an array of merged types ([Details](tilt-schema-properties-datadisclosed-items.md))

## dataDisclosed Examples

```json
[
  {
    "_id": "f1424f86-ca0f-4f0c-9438-43cc00509931",
    "category": "E-mail address",
    "purposes": [
      {
        "purpose": "Marketing",
        "description": "Newsletter will be sent out once a month."
      }
    ],
    "legalBases": [
      {
        "reference": "GDPR-99-1-a",
        "description": "The data are processed on the basis of Art. 99 GDPR which states..."
      },
      {
        "reference": "BDSG-42-5",
        "description": "BDSG-42-5 refers to the processing of personal data within..."
      }
    ],
    "legitimateInterests": [
      {
        "exists": true,
        "reasoning": "There is an legitimate interest based on ... and is not overwritten because ..."
      }
    ],
    "recipients": [
      {
        "name": "Yellow Company AG",
        "division": "Product line e-mobility",
        "address": "Triana 123, 9999 Seville",
        "country": "ES",
        "representative": {
          "name": "Jane Super",
          "email"<EMAIL_ADDRESS>          "phone": "0049 151 1234 9876"
        },
        "category": "Marketing content provider"
      },
      {
        "category": "Responsible Statistical Institutes"
      }
    ],
    "storage": [
      {
        "temporal": [
          {
            "description": "Creating backups.",
            "ttl": "2005-08-09T18:31:42P3Y6M4DT12H30M17S"
          },
          {
            "description": "Finishing ordering process.",
            "ttl": "2020-07-12T18:31:42P3Y6M4DT12H30M17S"
          }
        ],
        "purposeConditional": [
          "Data is stored until the end of the ordering process."
        ],
        "legalBasisConditional": [
          "SGB-100-42"
        ],
        "aggregationFunction": "max"
      }
    ],
    "nonDisclosure": {
      "legalRequirement": false,
      "contractualRegulation": false,
      "obligationToProvide": false,
      "consequences": "If the data is not disclosed, the shipment cannot be delivered."
    }
  }
]
```


text:
+++
title = "Deploy the cluster"
chapter = false
weight = 20
+++

We will first deploy our CloudFormation template which configures our ECS VPC, Task Definition, Container Definition, and Service. First, let's change to this modules directory by running:

```bash
cd ~/environment/aws-atlassian-connect/content/50_ecs/
```

Deploy the CloudFormation template to create your new VPC by running the following command:

```bash
aws cloudformation create-stack \
  --stack-name "atlassian-connect-ecs" \
  --template-body file://ecs.yaml \
  --parameters ParameterKey=ProjectName,ParameterValue=atlassian-connect \
  ParameterKey=ECRImageURI,ParameterValue=$ECRImageURI \
  ParameterKey=JiraUser,ParameterValue=$JiraUser \
  ParameterKey=JiraPass,ParameterValue=$JiraPass \
  ParameterKey=JiraServerPort,ParameterValue=8080 \
  --capabilities CAPABILITY_NAMED_IAM
```

Wait for the Template to finish deploying by typing the following command:

```bash
until [[ `aws cloudformation describe-stacks --stack-name "atlassian-connect-ecs" --query "Stacks[0].[StackStatus]" --output text` == "CREATE_COMPLETE" ]]; do  echo "The stack is NOT in a state of CREATE_COMPLETE at `date`";   sleep 30; done && echo "The Stack is built at `date` - Please proceed"
```

Once successfully deployed, let's query the stack for outputs. Specifically, we are interested in the network load balancer's public DNS name. In our CloudFormation template, we thought ahead and constructed this into a properly formatted URL in order to make things easier. From your Cloud9 IDE, run the following command:

```bash
aws cloudformation describe-stacks --stack-name atlassian-connect-ecs \
--query Stacks[0].Outputs[5].OutputValue --output text
```

{{% notice info %}}
Your result should look similar to this:
{{% /notice %}}

<pre>
http://atlas-Publi-1NU0KBFFQU8GU-46285272d2eb179d.elb.us-west-2.amazonaws.com:8080
</pre>

Now, we simply copy and paste this into a new tab on your browser and you should see a JSON formatted response in the body.

gha_language: HTML


text:
Laravel Google Shopping
==============

[![Latest Stable Version](https://poser.pugx.org/deniztezcan/laravel-google-shopping/v/stable)](https://packagist.org/packages/deniztezcan/laravel-google-shopping)
[![Total Downloads](https://poser.pugx.org/deniztezcan/laravel-google-shopping/downloads)](https://packagist.org/packages/deniztezcan/laravel-google-shopping)
[![Latest Unstable Version](https://poser.pugx.org/deniztezcan/laravel-google-shopping/v/unstable)](https://packagist.org/packages/deniztezcan/laravel-google-shopping)
[![License](https://poser.pugx.org/deniztezcan/laravel-google-shopping/license)](https://packagist.org/packages/deniztezcan/laravel-google-shopping)

## Installation

```
composer require deniztezcan/laravel-google-shopping
```

## Example
```php
use DenizTezcan\LaravelGoogleShopping\LaravelGoogleShopping;

LaravelGoogleShopping::setTitle('Example feed');
LaravelGoogleShopping::setDescription('Example feed of the Example shop');
LaravelGoogleShopping::setLink('https://example.shop');

LaravelGoogleShopping::addItem(
	"https://example.shop/p/foo-bar",
	"SKU123",
	"Foo bar",
	"https://example.shop/images/foo-bar.png",
	"Foo bar best product",
	'new',
	99.99,
	'Foo brand',
	'6387712293758',
	[
		'country' => 'NL',
		'service' => 'PostNL - Gratis',
		'price'	  => 0
	]
);

return LaravelGoogleShopping::display();
```

repository: deniztezcan/laravel-google-shopping

repo_name: deniztezcan/laravel-google-shopping


text:
> Some authors define $\Omega$ in a slightly different way than we do; let's use ${\Omega}^{\infty}$ (read "omega infinity") for this alternative definition. We say that $f(n) = {\Omega}^{\infty}(g(n))$ if there exists a positive constant $c$ such that $f(n) \ge cg(n) \ge 0$ for infinitely many integers $n$.
>
> **a.** Show that for any two functions $f(n)$ and $g(n)$ that are asymptotically nonnegative, either $f(n) = O(g(n))$ or $f(n) = {\Omega}^{\infty}(g(n))$ or both, whereas this is not true if we use $\Omega$ in place of ${\Omega}^{\infty}$.
>
> **b.** Describe the potential advantages and disadvantages of using ${\Omega}^{\infty}$ instead of $\Omega$ to characterize the running times of programs.
>
> Some authors also define $O$ in a slightly different manner; let's use $O'$ for the alternative definition. We say that $f(n) = O'(g(n))$ if and only if $|f(n)| = O(g(n))$.
>
> **c.** What happens to each direction of the "if and only if" in Theorem 3.1 if we substitute $O'$ for $O$ but we still use $\Omega$?
>
> Some authors define $\tilde O$ (read "soft-oh") to mean $O$ with logarithmic factors ignored:
>
> $$
> \begin{aligned}
> \tilde{O}(g(n)) =
>  \\{f(n): & \text{ there exist positive constants $c$, $k$, and $n_0$ such that } \\\\
>           & \text{ $0 \le f(n) \le cg(n) \lg^k(n)$ for all $n \ge n_0$ }.\\}
> \end{aligned}
> $$
>
> **d.** Define $\tilde\Omega$ and $\tilde\Theta$ in a similar manner. Prove the corresponding analog to Theorem 3.1.

**a.** We have

$$
f(n) =
\begin{cases}
O(g(n)) \text{ and } {\Omega}^{\infty}(g(n)) & \text{if $f(n) = \Theta(g(n))$}, \\\\
                                     O(g(n)) & \text{if $0 \le f(n) \le cg(n)$}, \\\\
                     {\Omega}^{\infty}(g(n)) & \text{if $0 \le cg(n) \le f(n)$, for infinitely many integers $n$}.
\end{cases}
$$

If there are only finite $n$ such that $f(n) \ge cg(n) \ge 0$. When $n \to \infty$, $0 \le f(n) \le cg(n)$, i.e., $f(n) = O(g(n))$.

Obviously, it's not hold when we use $\Omega$ in place of ${\Omega}^{\infty}$.

**b.**

- Advantages: We can characterize all the relationships between all functions.
- Disadvantages: We cannot characterize precisely.

**c.** For any two functions $f(n)$ and $g(n)$, we have if $f(n) = \Theta(g(n))$ then $f(n) = O'(g(n))$ and $f(n) = \Omega(g(n))$ and $f(n) = \Omega(g(n))$.

But the conversion is not true.

**d.** We have

$$
\begin{aligned}
\tilde\Omega(g(n)) = \\{f(n):
    & \text{ there exist positive constants $c$, $k$, and $n_0$ such that } \\\\
    & \text{ $0 \le cg(n)\lg^k(n) \le f(n)$ for all $n \ge n_0$}.\\}
\end{aligned}
$$

$$
\begin{aligned}
\tilde{\Theta}(g(n)) = \\{f(n):
  & \text{ there exist positive constants $c_1$, $c_2$, $k_1$, $k_2$, and $n_0$ such that } \\\\
  & \text{ $0\le c_1 g(n) \lg^{k_1}(n) \le f(n)\le c_2g (n) \lg^{k_2}(n)$ for all $n\ge n_0$.}\\}
\end{aligned}
$$

For any two functions $f(n)$ and $g(n)$, we have $f(n) = \tilde\Theta(g(n))$ if and only if $f(n) = \tilde O(g(n))$ and $f(n) = \tilde\Omega(g(n))$.

repository: walkccc/CLRS

gha_language: Markdown

gha_license_id: MIT

repo_name: walkccc/CLRS


text:
---
layout: page
show_meta: false
title: "Development of Lessons"
redirect_to:
   - https://carpentries.org/involved-lessons/
header:
   image_fullwidth: "wood_plank.jpg"
permalink: "/involved-lessons/"

---

To learn more about how The Carpentries develops its lessons, please refer to the [Curriculum Development Handbook](https://carpentries.github.io/curriculum-development/).

We are always in the process of developing content for new domains and topics.
If you are interested in participating, please apply for a hackathon,
help develop on line, [get in touch](https://carpentries.org/contact/) or see our [lessons under
development](/lessons/#materials-in-early-development).

All of our lessons are collaboratively developed and distributed under the
[CC-BY](https://creativecommons.org/licenses/by/2.0/) license. We welcome
contributions!

Fix a typo, suggest a new module or add features to topics. We have a
[discussion forum](https://carpentries.topicbox.com/) and a [Slack organization](http://slack-invite.carpentries.org/) for discussion of
topics or teaching strategies. If comments or suggestions are directly
related to lesson content, please also feel free to file a GitHub issue.

### Information on how to contribute

We are currently developing lessons on GitHub.

[Information on how to contribute to lesson development](https://github.com/carpentries/lesson-example/blob/gh-pages/CONTRIBUTING.md)

If you are interested in contributing, and haven't worked with GitHub, we are developing other strategies for participation, so please [get in touch](mailto:{{ site.dc_email }}).

gha_language: SCSS


text:
Bash+(1) - Modern Bash Programming
==================================

[![Build Status](https://travis-ci.org/ingydotnet/bashplus.png?branch=master)](https://travis-ci.org/ingydotnet/bashplus)

## Synopsis

    source bash+ :std :array

    use Foo::Bar this that

    Array.new args "$@"

    if args.empty?; then
        die "I need args!"
    fi

    Foo::Bar.new foo args

    this is awesome     # <= this is a real command! (You just imported it)

## Description

Bash+ is just Bash... *plus* some libraries that can make Bash programming a
lot nicer.

## Installation

Get the source code from GitHub:

    git clone git@github.com:bpan-org/bashplus

Then run:

    make test
    make install        # Possibly with 'sudo'

## Usage

For now look at some libraries the use Bash+:

* https://github.com/bpan-org/git-hub
* https://github.com/bpan-org/json-bash
* https://github.com/bpan-org/test-more-bash

## Status

This stuff is really new. Watch the https://github.com/bpan-org/ for
developments.

If you are interested in chatting about this, `/join #bpan` on
irc.freenode.net.

## Author

Written by Ingy döt Net<EMAIL_ADDRESS>
## Copyright

Copyright 2013 Ingy döt Net

repository: ingydotnet/git-hub

gha_language: Shell

repo_name: ingydotnet/git-hub


text:
# shutdown

Helps you release system or shared resources during unexpected application shutdown.

## Usage

A simple usage example:

````dart
import 'dart:async';

import 'package:shutdown/shutdown.dart' as shutdown;

Future main() async {
  shutdown.triggerOnSigInt();
  shutdown.triggerOnSigHup();

  final db = await _acquireDB();
  shutdown.addHandler(() async => db.close());

  // [do your stuff]

  // call it at the end, this is a successful exit
  await shutdown.shutdown();
}

Future _acquireDB() async => null; // TODO: implement
````

## Tip

Combine this library with [package:stack_trace](https://pub.dartlang.org/packages/stack_trace):

````dart
import 'package:shutdown/shutdown.dart' as shutdown;
import 'package:stack_trace/stack_trace.dart';

Future main() async {
  shutdown.triggerOnSigInt();
  shutdown.triggerOnSigHup();
  return Chain.capture(() async {
    // TODO: initialize, register shutdown handlers
    // do your stuff
    await shutdown.shutdown();
  }, onError: (error, Chain chain) async {
    // TODO: report/log error and stack
    await shutdown.shutdown(exitCode: -1);
  });
}
````

repository: isoos/shutdown

gha_language: Dart

repo_name: isoos/shutdown


text:
# django-zarinpal documentation
##### django-zarinpal is built to makes transactions zarinpal very simple.

## Instalation
* ### from pypi
```
pip install django-zarinpal
```

* ### from github
```
git submodule add https://github.com/glyphack/djano-zarinpal
git submodule init
git submodule upadte
```
it will creates a folder in your project you can import zarinpal from django-zarinpal/zarinpal

## Configuration
 Add zarinpal to your installed apps
```
INSTALLED_APPS = [
...
"zarinpal",
...
```

repository: Glyphack/django-zarinpal

gha_language: Python

repo_name: Glyphack/django-zarinpal


text:
## Logic Programming 03: Efficient Arithmetic, Non deterministic Search and Belgian Snake Problem

- [Rahul Nalawade](https://github.com/rahul1947)
- 2018-Feb-18

**Problems:** [Problems](https://github.com/rahul1947/Logic-Programming/blob/master/LP03-Efficient-Arithmetic-Non-Deterministic-Search-and-Belgian-Snake-Problem/Problems.txt)

**Solution:** [Report](https://github.com/rahul1947/Logic-Programming/blob/master/LP03-Efficient-Arithmetic-Non-Deterministic-Search-and-Belgian-Snake-Problem/CS6374-HW03-rsn170330.pdf)

All the images/ screenshots are saved in [img](https://github.com/rahul1947/Logic-Programming/tree/master/LP03-Efficient-Arithmetic-Non-Deterministic-Search-and-Belgian-Snake-Problem/img) directory, containing demo of few predicates.

repository: surajkothawade/Logic-Programming

repo_name: surajkothawade/Logic-Programming


text:
---
layout: post
title: "[Telephone English] Learning English by phone #028"
comments: true
author: dorbae
date: 2019-05-25 +0900
categories : [English,Telephone]
tags: [english,telephone,telephone english]
sitemap :
  changefreq : weekly
---

# 전화영어 - Day 028 (20190525)

## Part 2
* Question
    * Describe a time you borrowed something from your friends or family
    * You should say:
        * What it was
        * When you borrowed it
        * Whom you borrowed it from
        * What you did with it
        * And why you borrowed it

* Answer (In my case)
    * Back in my high school, I loved to play video game which named Winnin eleven and was soccer game. So, I used to go to video game room with my friends to play that game. And I borrowed video game console from my friend. Because he had it, but he didn't play the game in his house. So, I asked him to borrow it. I trained my gaming skill in my home playing that game. Because I was not good at the game. So, I wanted to be more good game player. So, I borrowed it from my friend.

* Answer (Correction)
    * I borrowed video game console from my friend because he had video gamee console but he didnt play the game in his house so I asked him to borrow it and I train my gaming skill at my home playing tha game because I was not good at the game so I wanted to be a good player so I borrowd it from my friend. Luckily he lent it to me without any hesitations/with a second thought and used it to train my gaming skill at home. I think his game console was with me for approximately one month. I needed to borrow it because I really wanted to be a good gamer just like the other kids in the game room. However, after a month, I returned it to him because I lost interst in the playing video games, nevertheless I was thankful to my friend.

    > borrow 발음 주의

------

## Part 3
* Question
    * Why do some people like to borrow things intead of buy them?

* Answer (In my case)
    * Because they can reduce the risk. Because if they buy something new, they may not satisfied with it. So, they borrow it at first, and they can know how it is good at them. And if it is good at them, they can buy it. Sometimes some stuff is too expensive to buy it. They sometimes borrow it from their friends or co-workers.

* Answer (Correction)
    * Some people choose to borrow something to avoid risk of wasting money. By borrowing, they can have an idea whether the item works well. In addition, some people have no choice but to borrow something from others because they still do not have enough money to buy for themselves. If they know that they will only use it once, ~~~

* Question
    * What would you do if people do not return money you borrowed?

* Answer (Correction)
    * It depends on the kind of relationship I have with someone. If the person is really my close friend, I will just remind him again and again about it. However, if we aren't very close, I would probably file a legal complaint against him.

------

## Correction Others
* mock test : 모의 시험


text:
Dark Facebook
=============

A dark theme for facebook

Installation
------------

Install in the Chrome web store

https://chrome.google.com/webstore/detail/dark-facebook/bcolnhgechlnfgmpbamdceojbeaiocec

You can optionally install this by enabling developer mode in Chrome/Chromium.

    git clone git://github.com/bahamas10/chrome-dark-facebook.git

Then, in Chrome, navigate to [chrome://extensions](chrome://extensions).
Check `Developer mode`, click `Load unpacked extension...`, and then
navigate to the newly cloned repository.

License
-------

MIT


text:
# Font Veil
Font Veil is a short python script that takes in a normal font and outputs a blank font with the same width and kerning for each letter. You can hide portions of text by applying your blank font, while retaining the overall layout of the text.

# Setup
`sudo apt-get install python-fontforge`

# Roadmap
## Version 2.0
* Let users specify their input font at runtime, rather than in the code.
* Let users specify their output font file at runtime, rather than in the code.

# Developed By
* Connor Brinton -<EMAIL_ADDRESS>
# License
This project is licensed under the Apache License, Version 2.0. For more information, see the `LICENSE` file.

repository: connorbrinton/font-veil

repo_name: connorbrinton/font-veil


text:
# Eterna Refresh

The site rewrite of [Eterna](eternagame.org).

The rewrite is based on the design present [here](https://github.com/eternagame/design).

## Project setup

```
npm install
```

If you want to modify any of the parameters in `.env`, create a file named `.env.local` and include any overrides there

> If you're running this on Windows and run into 'binary not found' errors, you need to install Windows Build Tools: https://github.com/nodejs/node-gyp#option-1

### Run locally

```
npm run serve
```

For now, please add `VUE_APP_ENV="client"` into your `.env.local` file.

### Recommended dev tools

- VS Code: Free code editor with good support for Vue and Typescript
- Prettier: Automatic code formatter
  - After installing the VS Code extension, configure autoformat on save:
    Add `"editor.formatOnSave": true,` to your .vscode/settings.json

## Contributing

If you want to contribute, please post a bug report, post a feature report, or work on one of the existing github issues.

Our work happens on the `dev` branch; please pull and submit PRs against that branch. Thanks!


text:
# Javascript-playground ![visitors](https://visitor-badge.laobi.icu/badge?page_id=ayush8010720467_Javascript-playground)
[For Demo Please Click here](https://ayush8010720467.github.io/Javascript-playground/)
<img src='./Screenshot.png'/>
This is a basic javascript playground developed in Javascript. CodeMirror package is used in implementing the code editor for the plaground.

## Contributing
Pull requests are welcome. For major changes, please open an [issue](https://github.com/ayush8010720467/Javascript-playground/issues) first to discuss what you would like to change.

## License
[MIT](https://choosealicense.com/licenses/mit/)

gha_language: JavaScript


text:
FzyCommon Module
===

Services
--
* `FzyCommon\Service\EntityToForm`: accepts doctrine entity and returns a ZF2 form class (\Zend\Form\Form) bound to the entity and hydrated with its information.
* `FzyCommon\EntityToForm`: alias for `FzyCommon\Service\EntityToForm`
* `FzyCommon\Service\Search\Result`: accepts a result provider interface and formats the search result in a standard way
* `FzyCommon\Search\Result`: alias for `FzyCommon\Service\Search\Result`
* `FzyCommon\Service\Url`: service to create URLs from ZF2 route names or from an AWS S3 key
* `FzyCommon\Url`: alias for `FzyCommon\Service\Url`
* `FzyCommon\Service\Render`: service to render a View Model or string path to a view file into HTML
* `FzyCommon\Render`: alias for `FzyCommon\Service\Render`
* `FzyCommon\Config`: returns the ZF2 application's configuration wrapped in a `\FzyCommon\Util\Params` container.
* `FzyCommon\ModuleConfig`: returns config data specific to this module (`\FzyCommon\Service\Base::MODULE_CONFIG_KEY`) wrapped in a `\FzyCommon\Util\Params` container.
* `FzyCommon\Service\Aws\Config`: returns the `aws` key from `FzyCommon\ModuleConfig` wrapped in a `\FzyCommon\Util\Params` container.
* `FzyCommon\Service\Aws\S3\Config`: returns the `s3` key from `FzyCommon\Service\Aws\Config` wrapped in a `\FzyCommon\Util\Params` container.
* `FzyCommon\Service\Aws\S3`: returns configured `\Aws\S3\S3Client` object (using `FzyCommon\Service\Aws\S3\Config`)
* `FzyCommon\Factory\DoctrineCache`: returns configured `Doctrine\Common\Cache` class based on environment.

View Helpers
--
* `fzyFlashMessages`: returns an array of arrays of messages in the flash messenger, indexed by their type.
 e.g. ```[
   "success": [
     "Your settings have been saved"
   ],
   "warning": [],
   "danger": [],
   "info": []
 ]```
* `fzyEntityToForm`: provides shortcut to the `FzyCommon\Service\EntityToForm` service
* `fzyNgInit`: handles json encoding and escaping literals, objects and doctrine entities for injection into an angular scope.
* `fzyRequest`: accessor for the view to query the current request

Controller Plugins
--
* `fzySearchResult`: plugin to standardize the response format for a search.
* `fzyUpdateResult`: plugin to standardize the response format for an update.
* `fzyEntityToForm`: provides shortcut to the `FzyCommon\Service\EntityToForm` service

Controllers
--

Options
--
* `debug`: used as a flag to indicate this code should expose errors and exceptions for debugging.
* `production`: used as a flag to indicate this code is running in a production environment.
* `doctrine_cache`: the service key to be used for generating the doctrine cache object. (default: `FzyCommon\Factory\DoctrineCache` which is a Redis service)
* `doctrine_cache_config`: configuration for setting up the doctrine_cache service. (default: the Redis connection credentials)
* `aws`: configuration for connecting to AWS services (should contain credentials indexed by service like:
 ```
 "aws": [
   "s3": [
     "key": "your-aws-key",
     "secret": "your-aws-secret"
   ]
 ]
 ```

repository: atlanticbt/common

repo_name: atlanticbt/common


text:
---
title: Structure
page_title: Structure - RadGridView
description: Get familiar with the internal elements structure of the WinForms GridView control.
slug: gridview-structure
tags: gridview, structure
published: True
position: 1
---

# Structure

This section defines terms and concepts used in the scope of RadGridView that you have to get familiar with prior to continue reading this help.

RadGridView is an essential user interface control used to display data in tabular format. The represented data is organized in rows and columns and can be additionally sorted, filtered, or structured in groups and sub-groups. Below you can see snapshots and explanations of the main visual elements of the control organized in logical groups.

![WinForms RadGridView Structure](images/gridview-structure001.png)

* __Columns__: Essential building block, represented by the base class __GridViewColumn__. There is a lot of functionality coming out-of-the-box for the grid columns. They can be data bound, pinned (frozen), reordered, hidden, renamed, or auto-generated based on the underlying data source. Moreover, you can sort, filter, or group your data by one or more of the columns. You can customize their look and feel in numerous ways. [Read more]({%slug winforms/gridview/columns/generating-columns%}).

* __Pinned Columns__: By using the pinned (frozen) columns you will be able to stop your columns from horizontally  scrolling. Just right-click the column header and select the left or right pin option. [Read more]({%slug winforms/gridview/columns/pinning-and-unpinning-columns%}).

* __Rows__: Another essential building block of the control, represented by __GridViewRow__ objects. Improve the way your data is presented using Row Details inside the grid or outside it using Details Presenter. Moreover, you can control the data editing using the methods and events exposed by the GridViewRow object. [Read more]({%slug winforms/gridview/rows/gridviewrowinfo%}).

* __Cells__: Cells are the visual elements that do the actual representation of your data. They are represented by the __GridViewCellInfo__ object. They are also responsible for validating the data entered by the user against the underlying data type.

* __Header Row__: This is a special row where all column headers are displayed. It is represented by the __GridViewHeaderRowInfo__ object.

* __Row Indicators__: Each row has its own row indicator, placed on its left end. A small arrow inside the row indicator marks the current row. A pencil indicates an ongoing editing operation.

* __Scroll bars__: RadGridView will automatically show and hide scrollbars when needed. Choose between two types of scrolling: __Real time and Deferred__. Every hierarchical level has its own scrollbars.

* __New Row__: The new row element can be displayed on top or bottom of the data grid and allows you to easily add a new row by simply clicking on the element. Read more about this in the [New Row]({%slug winforms/gridview/rows/new-row%}) article.

* __Sort Indicator__: The sort indicator is shown in the column header when it is sorted.

* __Edit Indicator__: This is a type of row indicator shown when the row is in edit mode.

![WinForms RadGridView Grouping Filtering Structure](images/gridview-structure002.png)

* __Filter Icon__: You can see the filter icon placed inside the column header of each column that allows filtering or in the filtering row.

* __Filtering Dialog__: Clicking the filtering icon in the column headers opens a menu with the distinct values for the current column and the user can select which of those values to be displayed.

>tip Read more about the filtering feature in the [Filtering]({%slug winforms/gridview/filtering/basic-filtering%}) article.

* __Group Item__: Represents the column, by which the data is being grouped.

* __Group Header__: This represents the group header.

* __Group Expander__: Using this button, you can expand/collapse the groups.

* __Group Row__: This is the UI element that hosts and displays group records. The group row allows for expanding and collapsing the records in the group.

* __Indent Cell__: The indent cell appears when the grid data is grouped or has a hierarchical structure, to facilitate the expand/collapse functionality. The expanded cell is always placed in front of all other grid content columns and cannot be moved.

>tip Read more about the grouping feature in the [Grouping]({%slug winforms/gridview/grouping/basic-grouping%}) article.

## See Also

 * [Getting started]({%slug winforms/gridview/getting-started%})
 * [Key features]({%slug winforms/gridview/fundamentals/key-features%})
 * [Element Hierarchy]({%slug winforms/gridview/fundamentals/element-hierarchy%})

repository: telerik/winforms-docs

repo_name: telerik/winforms-docs


text:
# Ari's Python links and tips

My Python links and tips.

## Links

Links to pages I've found interesting. I don't necessarily recommend anything,
this is partly a list for things to check.

The most important site is obviously python.org. From there one can find
tutorials for absolute beginners and programmers alike.

- [Python](https://www.python.org/)
    - [Documentation](https://www.python.org/doc/)

- [Awesome Python](https://awesome-python.com/)
- [Python's filter(): Extract Values From Iterables](https://realpython.com/python-filter-function/)

### WWW

- [Django](https://www.djangoproject.com/)


text:
# Customer Segmentation

Unsupervised learning techniques applied to see if any similarities appears between customers, and how to best segment customers into distinct categories.

## Project Purpose

In this project, we applied unsupervised learning techniques on product spending data collected for customers of a wholesale distributor to identify customer segments hidden in the data. We first investigated the data by selecting a small portion of it to sample and identify if there is a correlation between product categories. Next, we preprocessed the data by measuring each product category and then identifying outliers to remove them. We then applied PCA transform and enforce clustering algorithms to segment the transformed customer data. Finally, we matched the cluster segmentation meet with an extra labeling and conceived ways this information might assist the distributor in the future.

## Files

This project contains 3 files:

customer_segments.ipynb: The main file where our contribution for the project.

customers.csv: The project dataset.

visuals.py: This Python file includes helper functions to create the required visualizations.

## Execution

This project uses the following software and Python libraries:

NumPy

pandas

scikit-learn (v0.17)

matplotlib

You will also need to have software installed to run and execute a Jupyter Notebook.

If you do not have Python installed yet, it is highly recommended that you install the Anaconda distribution of Python, which already has the above packages and more included. Make sure that you select the Python 3.x installer and not the Python 2.7 installer.

Yo can view the results once you click on the file "customer_segments.ipynb" and if you wat to contribute as wellgo to Terminal or Command Prompt, navigate to the folder containing the project files, and then use the command jupyter notebook customer_segments.ipynb to open up a browser window or tab to work with your notebook.


text:
Basepress
=========

A semi-sane boilerplate for [WordPress] sites where you don't need to, or can't use something like [Bedrock] or [Varying Vagrant Vagrants].

## Directory Structure
```
  /config      # base configuration
  /public      # public webroot
  /public/wp   # wordpress core
```

## Getting Started
  - Fork / Clone
  - Rename example /config files to match your host names
  - Update example /config files with the right database settings etc
  - (Optional) Update /config/defaults.php environments array with the correct environment urls

[WordPress]: http://www.wordpress.org
[Bedrock]: https://roots.io/bedrock/
[Varying Vagrant Vagrants]: https://github.com/Varying-Vagrant-Vagrants/VVV

repository: jppferguson/basepress

repo_name: jppferguson/basepress


text:
Troubleshooting
===============

How to debug and solve common issue related to the bundle.

## Logout redirects back to the two-factor authentication form

### Problem

When the two-factor authentication form is shown, you want to cancel the two-factor authentication process. You click
the "cancel" link, which should execute a logout. It does not execute the logout, but redirects back to the two-factor
authentication form.

### Solution

If you see such behavior, the `access_control` rules from the security configuration don't allow accessing the logout
path. Your logout path must be accessible to user with any authentication state, which is usually done by allowing it
for `IS_AUTHENTICATED_ANONYMOUSLY`. You're most likely missing a rule under `access_control` in the security
configuration.

The configuration should look similar to this:

```
# config/packages/security.yaml
security:
    access_control:
        - { path: ^/logout, role: IS_AUTHENTICATED_ANONYMOUSLY }
        # More rules here ...
```

Make sure the rule comes first in the list, since access control rules are evaluated in order.

If you have such a rule and it still doesn't work, for some reason the rule is not matching. Make absolutely sure the
`path` regular expression matches your logout path. If you have additional options, such as `host` or `ip`, check that
they're matching too.

## Not logged in after completing two-factor authentication

### Problem

After you logged in and have successfully passed the two-factor authentication process, you're not logged in. Either you
are redirected back to the login page or the page is shown with the authenticated user missing.

### Troubleshooting

1) Disable two-factor authentication by commenting out all `two_factor` settings in the security firewall configuration.
   Try to login. Does it work?

   - Yes, it works -> Continue with 2)
   - No, it does not work -> Your login process is broken.
       - **Solution:** Can't exactly tell what's wrong. Continue debugging the login issue. Solve this issue first,
         before you re-enable two-factor authentication.

2) Revert the changes from 1). Debug the security token on the two-factor authentication form page by `var_dump`-ing it
   or any other suitable method.

   The token should be of type `TwoFactorToken` and the field `authenticatedToken` should contain an authenticated
   security token. Does that authenticated token have `authenticated`=`false` set?

   - Yes -> Your authenticated token was flagged as invalid. Follow solution below.
   - No -> Continue with 3)

3) After completing two-factor authentication, when you end up in the unauthenticated state, check the last request few
   requests in the Symfony profiler.

   For each of the requests, go to Logs -> Debug.

   Does it say `Cannot refresh token because user has changed` or `Token was deauthenticated after trying to refresh
   it`?

   - Yes -> Your authenticated token was flagged as invalid. Follow solution below.
   - No -> Unknown issue. Try to reach out for help by
     [creating an issue](https://github.com/scheb/two-factor-bundle/issues/new) and let us know what you've already
     tested.

**Solution to: Your authenticated token was flagged as invalid**

Most likely your user entity implements the `\Serializable` interface and not all of the field relevant to the
authentication process are taken by serialize/unserialize. Check which fields are used in methods `serialize()` and
`deserialize()`.

It must be at least the fields that are used in the methods from `Symfony\Component\Security\Core\User\UserInterface`.

If your user entity implements `Symfony\Component\Security\Core\User\AdvancedUserInterface`, you also need the fields
that are used in `isAccountNonExpired()`, `isAccountNonLocked()`, `isCredentialsNonExpired()` and `isEnabled()`.

## Two-factor authentication form is not shown after login

### Problem

After successful login, the two-factor authentication form is not shown. Instead you're either logged in or you see
a different page from your application.

### Troubleshooting

Basic checks:
- Your login page belongs to the firewall, which has two-factor authentication configured.
- The paths of login page, login check, 2fa and 2fa check are all located with the firewall's path pattern.
- Your user entity has the interfaces implemented, which are necessary for the two-factor authentication method.
- Your user entity fulfills the requirements of at least one two-factor authentication method.

1) Is a `TwoFactorToken` present after the login?

   - Yes -> Continue with 2)
   - No -> Continue with 3)

2) Try accessing a page that requires the user to be authenticated. Does it redirect to the two-factor authentication
   form?

   - Yes:
       - **Solution:** The page you've seen after login doesn't require a fully authenticated user. Most likely that
         path is accessible to `IS_AUTHENTICATED_ANONYMOUSLY` via your security `access_control` configuration. Either
         change your `access_control` configuration or after login force-redirect to user to a page that requires full
         authentication.
   - No -> Unknown issue. Try to reach out for help by
     [creating an issue](https://github.com/scheb/two-factor-bundle/issues/new) and let us know what you've already
     tested.

3) On login, do you reach the end (return statement) of method
   `Scheb\TwoFactorBundle\Security\Authentication\Provider\AuthenticationProviderDecorator::authenticate()`?

   - Yes -> Continue with 4)
   - No -> Something is wrong with the integration of the bundle. Try to reach out for help by
     [creating an issue](https://github.com/scheb/two-factor-bundle/issues/new) and let us know what you've already
     tested.

4) On login, is method
   `Scheb\TwoFactorBundle\Security\TwoFactor\Handler\TwoFactorProviderHandler::getActiveTwoFactorProviders()` called?

   - Yes, it's called -> Continue with 5)
   - No it's not called:
      - **Solution:** Two-factor authentication is skipped, either because of the IP whitelist or because of a trusted
        device token. IP whitelist is part of the bundle's configuration. Maybe you have whitelisted "localhost" or
        "<IP_ADDRESS>"? The trusted device cookie can be removed with your browser's developer tools.

5) Does `Scheb\TwoFactorBundle\Security\TwoFactor\Handler\TwoFactorProviderHandler::getActiveTwoFactorProviders()`
   return any values?

   - Yes, it returns an array of strings -> Unknown issue. Try to reach out for help by
     [creating an issue](https://github.com/scheb/two-factor-bundle/issues/new) and let us know what you've already
     tested.
   - No, it returns an empty array:
       - **Solution:** our user doesn't have an active two-factor authentication method. Either the `is*Enabled` method
         returns `false` or an essential piece of data (e.g. Google Authenticator secret) is missing.

repository: philomather/two-factor-bundle

repo_name: philomather/two-factor-bundle


text:
# bulk ATAC-seq pipeline

NOTE: several files necessary for the pipeline are in the etc/ directory.  An indexed reference genome is another necessary file but due to size not supplied here

Tools that need to be installed in order to run pipeline:
> BWA:  http://bio-bwa.sourceforge.net/
> samtools:  http://www.htslib.org/
> Trim galore: https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/
> MACS:  https://github.com/taoliu/MACS
> ataqv: https://github.com/ParkerLab/ataqv
> deepTools:  https://deeptools.readthedocs.io/en/develop/content/installation.html

Primary output files from the pipeline:
> *Peak calls*: output_peaks.narrowPeak
> *Filtered, sorted alignment*: output.sort.filt.rmdup.bam
> *Read depth track*: output_treat_pileup.bdg
> *Poisson-normalized read depth track*: output.ppois.bdg
> *RPKM-normalized genome browser read depth track*: output.rpkm.bw

Usage:
```
bulk_ATAC-seq_pipeline.py [-h] [-p1 PAIRED1] [-p2 PAIRED2] -o OUTPUT
                                 [-n NAME] [-t THREADS] [-m MEMORY]
                                 [-q QUALITY] [-ref REFERENCE]
                                 [--picard_mark_dup PICARD_MARK_DUP]
                                 [--tss TSS] [--blacklist BLACKLIST]
                                 [--skip_trim] [--skip_align] [--skip_peaks]
                                 [--skip_bdg] [--skip_qc] [--skip_cleanup]

Pipeline for ATAC-seq to trim reads, align them to a reference genome, call
peaks, and generate a genome browser signal track.

optional arguments:
  -h, --help            show this help message and exit

I/O arguments:
  -p1 PAIRED1, --paired1 PAIRED1
                        Path to paired reads (1)
  -p2 PAIRED2, --paired2 PAIRED2
                        Path to paired reads (2)
  -o OUTPUT, --output OUTPUT
                        Output directory for processed files
  -n NAME, --name NAME  Output sample name to prepend

Alignment arguments:
  -t THREADS, --threads THREADS
                        Number of threads to use [4]
  -m MEMORY, --memory MEMORY
                        Maximum memory (in Gb) per thread for samtools sort
                        [8]
  -q QUALITY, --quality QUALITY
                        Mapping quality cutoff for samtools [30]
  -ref REFERENCE, --reference REFERENCE
                        Path to reference genome
                        [ucsc.hg19.fasta]
  --picard_mark_dup PICARD_MARK_DUP
                        Path to picard MarkDuplicates.jar
                        [etc/MarkDuplicates.jar]

QC arguments:
  --tss TSS             Path to TSS definitions for calculating ATAC signal
                        enrichment around TSS [etc/gencode_tss_unique.bed]
  --blacklist BLACKLIST
                        Path to blacklist BED file to ignore ENCODE high
                        signal regions
                        [etc/ENCODE.hg19.blacklist.bed]

Bedgraph track arguments:
  --macs2_genome MACS2_GENOME
                        MACS2 genome (e.g. hs or mm) for peak calling
  --bdg_color BDG_COLOR
                        Color for genome browser signal track in R,G,B [0,0,0]

Normalized signal track arguments:
  --genomeSize GENOMESIZE
                        Effective genome size for RPKM normalization (default:
<PHONE_NUMBER> for hg19)

Skip processing steps:
  --skip_trim           Skip adapter trimming step [OFF]
  --skip_align          Skip read alignment step [OFF]
  --skip_peaks          Skip calling peaks step [OFF]
  --skip_bdg            Skip making genome browser track [OFF]
  --skip_rpkm           Skip making RPKM normalized signal track [OFF]
  --skip_qc             Skip ATAC qc step using ataqv [OFF]
  --skip_cleanup        Skip cleanup operations [OFF]

```

repository: kjgaulton/epigenomics

repo_name: kjgaulton/epigenomics


text:
# Inverted-Index-Search-Engine
Implementation of a search engine using the inverted index method.

In the GUI interface, you can choose your preferred data structure from Trie, Hash, Balanced BST and Balanced TST to start searching.

You can also add, delete, or update a file from the list of searching files.

When you search your desired word or sentence, list of all files including your search will be shown on the screen.

By clicking on the History button all of the past activities will be printed.

Data Structures Project1, December 2016.

repository: Negfir/Inverted-Index-Search-Engine

repo_name: Negfir/Inverted-Index-Search-Engine


text:
Omnipay is installed via [Composer](http://getcomposer.org/). To install, simply add it
to your `composer.json` file:

```json
{
    "require": {
        "jannza/safecharge": "^1.0@dev"
    }
}
```

And run composer to update your dependencies:

    $ curl -s http://getcomposer.org/installer | php
    $ php composer.phar update

## Basic Usage

The following gateways are provided by this package:

* Safecharge

For general usage instructions, please see the main [Omnipay](https://github.com/omnipay/omnipay)
repository.

repository: jannza/safecharge

repo_name: jannza/safecharge


text:
# LDSDBHelper

[![CI Status](https://img.shields.io/travis/LoveSky9527/LDSDBHelper.svg?style=flat)](https://travis-ci.org/LoveSky9527/LDSDBHelper)
[![Version](https://img.shields.io/cocoapods/v/LDSDBHelper.svg?style=flat)](https://cocoapods.org/pods/LDSDBHelper)
[![License](https://img.shields.io/cocoapods/l/LDSDBHelper.svg?style=flat)](https://cocoapods.org/pods/LDSDBHelper)
[![Platform](https://img.shields.io/cocoapods/p/LDSDBHelper.svg?style=flat)](https://cocoapods.org/pods/LDSDBHelper)

## Example

To run the example project, clone the repo, and run `pod install` from the Example directory first.

## Requirements

## Installation

LDSDBHelper is available through [CocoaPods](https://cocoapods.org). To install
it, simply add the following line to your Podfile:

```ruby
pod 'LDSDBHelper'
```

## Author

LoveSky9527<EMAIL_ADDRESS>
## License

LDSDBHelper is available under the MIT license. See the LICENSE file for more info.


text:
---
layout: post
title: RHEL6 system hardening script
tag: shell
---

We wrote a script to perform RHEL6 Health checking, I will make it better if I have more time in the future!
 Tasks
1. ID management : Auto ID creation and Initial ID labelling                                  done

2. Initial OS health check and Deviation fixing                                               done

3. SSH/SUDO deployment and SUDO second logging /logging retention                             done

5. IBM Standard tools installation:ntp/tscm/tsm/srm                                           done

6. final patch  (It's depend on patch server ,It's my next plan in the future)                done

RHEL6 system hardening script


text:
# Change Log

## [v0.2.0](https://github.com/questbeat/capistrano-mackerel/tree/v0.2.0) (2017-03-06)
[Full Changelog](https://github.com/questbeat/capistrano-mackerel/compare/v0.1.0...v0.2.0)

### Added
- Output processing time to log
- Abort when the task in `:mackerel_annotate_tasks` is not defined
- Automatically remove duplication from `:mackerel_annotate_tasks`

### Changed
- Skip creating annotation when `:mackerel_api_key` is not defined

### Fixed
- Fix it doesn't work when multiple tasks are specified to `:mackerel_annotate_tasks`

## [v0.1.0](https://github.com/questbeat/capistrano-mackerel/tree/v0.1.0) (2017-03-02)
- Initial release


text:
## intent:greet
- hello
- hi
- good morning
- good evening
- hey

## lookup:cluster_element
   data/tests/element.txt
## intent:retrieve
 - I wanted to see my [CR](cluster_element)
 - Can I see the [custom resource](cluster_element)
 - Can I see the qliksense operator [CRD](cluster_element)
 - Can I see a [list](cluster_element) of my contexts
 - I want to see [all](cluster_element) my contexts
 - Show me [all](cluster_element) my configs
 - Can I see the [spec](cluster_element)
 - show me the [deployment spec](cluster_element)
 - show me the qliksense operator [custom resource definition](cluster_element)
 - want to see the [CR](cluster_element)
 - show me the [custom resource](cluster_element)
 - I want to see the [spec](cluster_element)
 - show the [CR](cluster_element)
 - display the [CR](cluster_element)
 - display the [spec](cluster_element)
 - show the [custom resource](cluster_element)

## intent:tutorial
 - Can I know more about [kubernetes] (technology)
 - I want some resources to learn more about [gke] (technology)
 - what is a [custom resource] (technology)
 - How can I learn more about

## intent: inputKey
 - [ManifestsRoot](key)
 - [RotateKeys](key)
 - [StorageClass](key)
 - [NameSpace](key)
 - [Profile](key)
 - Change attribute [ManifestsRoot](key)
 - Change attribute [RotateKeys](key)
 - Change attribute [StorageClass](key)
 - Change attribute [NameSpace](key)
 - Change attribute [Profile](key)

 ## intent: inputValue
 - [gcp](value)
 - [aws](value)
 - [eks](value)

## intent: setConfig
 - I wish to add to my spec
 - I want to set an attribute in the custom resource
 - add to my cr spec
 - set an attribute
 - i want to change my cr
 - i want to edit my cr
 - i want to change to my spec
 - i want to edit my spec

## intent: doPreflight
 - check all preflight
 - do all preflight checks
 - do all checks before deployment
 - will qliksense deploy properly?
 - check application before deploying
 - check qliksense before deploying
 - do the [deployments](preflight) preflight check
 - check [deployment](preflight) preflight

## intent:goodbye
- bye
- goodbye
- see you around
- see you later

## intent:affirm
- yes
- indeed
- of course
- that sounds good
- correct

## intent:deny
- no
- never
- I don't think so
- don't like that
- no way
- not really

## intent:bot_challenge
- are you a bot?
- are you a human?
- am I talking to a bot?
- am I talking to a human?

## regex:value
- (.*?)

## synonym:deployments
- Dep
- Deployment
- deployment
- dep

## synonym:CRD
- custom resource definition
- Operator CRD
- operator custom resource definition

## synonym:CR
- custom resource
- spec
- qliksense spec
- deployment custom resource
- deployment spec
- cr

## synonym:all
- list

## intent: notifications
- give me updates on cluster every [5](name) minutes
- update me every [10](name) minutes
- cluster updates every [1](name) minute
- give updates every [20](name) minutes

## intent: EXTERNAL_reminder
- EXTERNAL_reminder
  triggers: action_react_to_reminder

## regex:name
- ([0-9]|[1-5][0-9]|60)

## intent: cancel_notif
- cancel notifications
- please stop the updates
- stop showing logs

repository: sanatnayar/QlikSense-Slack-Bot

repo_name: sanatnayar/QlikSense-Slack-Bot


text:
# Aurras-SO

Server-Client communication for processing a sound/music file by a sequence of filters such as high, low, echo, fast and slow.
Requires: ffmpeg

Compile with `make` and run the server followed by each client you want.
`bin/aurras` and `bin/aurrasd` will both give you instructions.


text:
# aws-advent-config-sets
default Configset examples to accompany my [AWS Advent 2016 article](https://www.awsadvent.com/2016/12/13/modular-cfn-init-configsets-with-sparkleformation/).

This repo is not intended to demonstrate general SparkleFormation patterns. I've taken shortcuts to focus on the registry entries. For a more complete SparkleFormation primer, checkout [the Workshop repo](https://github.com/reverseskate/sparkleformation-workshops) and, of course, [read the docs](http://www.sparkleformation.io/docs/).

## Setup
export the following environment variables to use this repo:
```sh
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_REGION
```

## Template
This repo contains a single template (`template.rb`) that demonstrates the default behavior of the included registry entries on an Ubuntu 14.04 instance. Feel free to manipulate it as needed to experiment, or copy the registry entries into your project and use them with your own compute templates.

This template requires a public subnet. Please note that all ports are open to the world. This is not meant for production use. It is just an example. :)

## Registry Entries
This repo has 3 registry entries to demonstrate default Configset usage:
* `github_ssh_user` - Retrieves a Github user's public keys and adds them to the `ubuntu` or `ec2-user`, depending on the platform.
* `lamp` - Installs packages for a LAMP stack on Ubuntu (Linux, Apache, MySQL, PHP). Also accepts config to allow installing other packages.

* `wordpress` - Downloads and unpacks [Wordpress](https://wordpress.org/).

## Questions
Feel free to ask questions about the pattern via the Issues. If you encounter an error, please let me know. If you have other relevant Configset examples, PRs are welcome.

repository: luckymike/aws-advent-config-sets

repo_name: luckymike/aws-advent-config-sets


text:
php-redis-lock
==============

## Connecting to Redis:
    RedisLock::connect('tcp://host:port');
Or to just connect to localhost and default port:

    RedisLock::connect();

## Acquiring a Lock:
    $lock = RedisLock::lock('resource');
    if($lock) {
        doSomething();
    }

This will attempt to acquire a lock for the named resource. If successful,
the return value is a RedisLock object. If the resource was already locked,
the return value will be +false+.

## Releasing the Lock:
    RedisLock::release($lock);
Make sure to release the lock once you're done with it, so another client can
acquire it.

## Lock Expiration
If your client acquires a lock and then dies before releasing it, the lock will
expire after a certain amount of time (default 5 minutes). You can set your own
lock expiration when acquiring the lock like so:
    $lock = RedisLock::lock('resource', $expiration_in_seconds);

repository: denheck/php-redis-lock

repo_name: denheck/php-redis-lock


text:
---

🚀 ReactXP-CLI is a tool to create and manage ReactXP projects, allowing you to get started within minutes.

## Features:
  - 🚧 Note - Coming Soon!
  - Supports generating ReactXP projects for:
    - Android
    - iOS
    - Web
    - Windows (UWP)
  - Allows fine-grained control on library versions used to create project
  - Allows choosing NPM or Yarn

## Installation
This project has not been published to NPM yet. Once it is, you can install it by:
```sh
$ npm i -g reactxp-cli
# OR
$ yarn global add reactxp-cli
```

## Usage
To run ReactXP-CLI, type the command `reactxp` followed by any of the following subcommands:

```sh
reactxp <command> [options]

Commands:
  reactxp init [project-name]  Create a new ReactXP project.
  reactxp upgrade              Upgrade an existing ReactXP project.

Options:
  --help     Show help            [boolean]
  --version  Show version number  [boolean]
```

### Creating a new project

Run `reactxp init` followed by any of the following options to create a new project:

```
reactxp init [project-name]

Positionals:
  project-name  The name or path of the project to create.

Options:
  --help               Show help                                     [boolean]
  --version            Show version number                           [boolean]
  --npm                Use NPM even if Yarn is present.              [boolean] [default: false]
  --verbose            Enable verbose logging.                       [boolean] [default: false]
  --rxp-version        The version of ReactXP to use.                [string]
  --rn-version         The version of React Native to use.           [string]
  --windows-version    The version of React Native Windows to use.   [string]
  --windows-namespace  The namespace that will be used in the generated Windows C# code.   [string]
  --skip-init          Skip adding React Native                      [boolean] [default: false]
  --skip-windows       Skip adding Windows UWP support.              [boolean] [default: false]
  --skip-rxp           Skip adding ReactXP                           [boolean] [default: false]
```

### Upgrading an existing project

_This feature has not been built yet.  Stay tuned!_

## Contributing
To run this project locally:

1. Run `yarn` to install the dependencies.
2. Run `yarn run build` to build the project or `yarn run watch` to watch and rebuild on file changes
4. Run `yarn run cli [options]` to build & run the CLI
3. Run `yarn run lint [--fix]` to lint the project using TSLint

All contributions are welcome. Please open an issue or submit a PR to help improve this project.

## License

This project is licensed under the MIT license.

repository: madhavarshney/reactxp-cli

gha_language: TypeScript

repo_name: madhavarshney/reactxp-cli


text:
# PowerflowsDmnUiComponent

This project was created to develop, test and deliver `powerflows` library. Project comes with a testing app under name `powerflows-testing-app` (standard Angular project) is located in `project/powerflows-testing-app` folder.
`powerflows` library is located in `projects/powerflows` folder.

## Development server

Run `ng serve` for a dev server. This will lunch `powerflows-testing-app` site under `http://localhost:4200/` address.

## Build

Run `ng build` to build `powerflows` library. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
More information about building and distributing library you can find under address: `https://github.com/angular/angular-cli/wiki/stories-create-library`

repository: powerflows/powerflows-dmn-ui-component

repo_name: powerflows/powerflows-dmn-ui-component


text:
count-trailing-zeros
====================
Counts the number of trailing zeros for an integer in binary.

# Example

```javascript
var ctz = require('count-trailing-zeros')

for(var i=1; i<=16; ++i) {
  console.log(i+' (bin '+i.toString(2)+') has '+ctz(i)+' trailing zeros')
}
```

#### Output

```
1 (bin 1) has 0 trailing zeros
2 (bin 10) has 1 trailing zeros
3 (bin 11) has 0 trailing zeros
4 (bin 100) has 2 trailing zeros
5 (bin 101) has 0 trailing zeros
6 (bin 110) has 1 trailing zeros
7 (bin 111) has 0 trailing zeros
8 (bin 1000) has 3 trailing zeros
9 (bin 1001) has 0 trailing zeros
10 (bin 1010) has 1 trailing zeros
11 (bin 1011) has 0 trailing zeros
12 (bin 1100) has 2 trailing zeros
13 (bin 1101) has 0 trailing zeros
14 (bin 1110) has 1 trailing zeros
15 (bin 1111) has 0 trailing zeros
16 (bin 10000) has 4 trailing zeros
```

# Install

```
npm i count-trailing-zeros
```

# API

#### `require('count-trailing-zeros')(v)`
Count the number of trailing zeros.

* `v` is an integer

**Returns** The number of trailing zeros of `v`

**Note** For a full balanced binary tree with 2^n elements arranged in order, this is the trailing zeros the index of an element is the same as its height in the tree.

# License
(c) 2015 Mikola Lysenko. MIT License

repository: DistributedWeb/dweb-cli

gha_license_id: NOASSERTION

repo_name: DistributedWeb/dweb-cli


text:
# Word Definer

#### Object-Oriented Ruby Independent Project for Epicodus, 4/30/2017

#### By Monique St. Laurent

## Description

This is a website that allows the user to create their own dictionary of words and definitions

## Installation Requirements

* Clone the repository: https://github.com/moinstla/word-definer.git
* In the terminal, go to the project directory and run "ruby app.rb"
* In browser, got to localhost:4567
* Or view the app on Heroku: https://guarded-refuge-22833.herokuapp.com

## Known Bugs

There are no known bugs

## Support and contact details

Email<EMAIL_ADDRESS>for support

## Technologies Used

* Ruby
* Sinatra
* html
* Bootstrap

### License

This software is available under the MIT License Copyright (c) 2017 Monique St. Laurent

repository: moinstla/word-definer

repo_name: moinstla/word-definer


text:
# Progress Report 24-Sept-2019
## Overview
Kevin
* Worked on developing diagrams for Milestone 2

Lauren
* Worked with Kevin on developing a plan for the web application.
Dylan
* Started work on looking at how to flash a custom ROM to an emulator

Aaron
* Started looking at the AOSP repository on source.android.com

## Outcomes
Kevin:
* Created a logical diagram and discussed with MLHale and team

Lauren
* Ended with a plan for the goal of our web app and a plan of where to begin.

Dylan
* Learned that the compiled ROM must be made for the correct device

Aaron
* Found the WifiMonitor and NetworkMonitor classes
* Found case handling for DHCP requests

## Hindrances
Kevin -

Lauren -

Dylan -

Aaron -

## Ongoing Risks

|Risk name (value)  | Impact     | Likelihood | Description |
|-------------------|------------|------------|-------------|
|Issue with pushing updated firmware | 8 | 2 | If we can't flash the updated firmware on an emulator we will have to try it on another device |
|Issue communicating the information from the device to the WebApp | 6 | 3 | The firmware that we update will have to communicate the MAC address to the application |
|Issue understanding AOSP and how everything works | 4 | 6 | Our team has little knowledge of the AOSP and will have to learn how it works |

# Progress Report 01-Oct-2019
## Overview
Kevin
* Created Mockups of the website in LucidCharts and uploaded to Invision environment

Lauren -
* Woked on developing the structure of the app.

Dylan -
* Looked into flashing a ROM to a physical device (Old Pixel XL)and caught up with Aaron on the AOSP info

Aaron
* Looked into the process for pulling the android source tree and importing the source into Android Studio.
## Outcomes
Kevin:
* Created mockups showing the 4 different screens required for our website to be operational
* Uploaded mockups to Invision and created links to the mockups to show functionality

Lauren
* Built the base structure of the app and broke out the react components.

Dylan
* Pulled the android 10 release 3 source tree
* Started documenting the Android Studios environment

Aaron
* Pulled the android 10 release 3 source tree
* imported the root folder of the local source into android studio

## Hinderances
Kevin
* Need to get a better understanding of HTML to create renderings of mockups

Lauren
* Had webpack issues that took time to debug.

Dylan
* Ran out of space on my laptop while I was pulling the repo, and learned that it must be run on a Linux machine

Aaron
* using repo (the source control system) to pull the code took roughly 6 hours
* Indexing the folder in android studio took roughly 2 hours

## Ongoing Risks
|Risk name (value)  | Impact     | Likelihood | Description |
|-------------------|------------|------------|-------------|
|Issue with pushing updated firmware | 8 | 2 | If we can't flash the updated firmware on an emulator we will have to try it on another device |
|Issue communicating the information from the device to the WebApp | 6 | 3 | The firmware that we update will have to communicate the MAC address to the application |
|Issue understanding AOSP and how everything works | 7 | 8 | Our team has little knowledge of the AOSP and will have to learn how it works |

# Progress Report 08-Oct-2019
## Overview
Kevin
* Learned some HTML and began turning mockups into usable web pages

Lauren
* Worked on building out the react components.

Dylan
* Started looking taking a deeper look at AOSP repo and determined the requirements needed to develop a custom ROM

Aaron
* Discovered that you are supposed to build a file and import that into android studio and that the build process was unsupported on my machine. So I created a virtual machine, pulled the source again, and used a tutorial to build the file for android studio.

## Outcomes
Kevin
* Created three of the four HTML documents necessary for the website.
* Examined Bootstrap CSS and added design elements

Lauren
* Got all of the react components connected to each other.

Dylan
* Set up a Linux virtual machine to start building and developing a custom ROM
* Looked into the android connectivity manager as a place to implement our code

Aaron
* Started assembling documentation on how to get working on our android side of the project
* Pulled a copy of the source repository
* Imported the file into android studio

## Hinderances
Kevin
* Need to examine CSS documentation and make HTML documents more appealing

Lauren
*

Dylan
* Similarly to Aaron, I had several problems while trying to build the repo. I spent a good amount of time after I had pulled on my windows machine realizing we had to build on Linux
* I had to spend 3 hours pulling the repo on my Linux VM

Aaron
* I didn’t find documentation regarding dependencies, so I spent hours debugging the build process
* The original tutorial I used was wrong and basically instructed me to build the entire source, which took 3.5 hours each time. I did this twice before finding a different tutorial that informed me of an idegen section of the makefile.
* Even after generating the file for the IDE, indexing took over an hour.

## Ongoing Risks
|Risk name (value)  | Impact     | Likelihood | Description |
|-------------------|------------|------------|-------------|
|Issue with pushing updated firmware | 8 | 2 | If we can't flash the updated firmware on an emulator we will have to try it on another device |
|Issue communicating the information from the device to the WebApp | 6 | 3 | The firmware that we update will have to communicate the MAC address to the application |
|Issue understanding AOSP and how everything works | 7 | 8 | Our team has little knowledge of the AOSP and will have to learn how it works |

# Progress Report 15-Oct-2019
## Overview
Kevin
* Created container that holds information about the device and missing devices for users to see

Lauren
* Worked on adding Kevin's HTML work into the react components and started adding CSS.

Dylan
* Started the process for setting up the Pixel XL for development

Aaron
* Found the ConnectivityManager class and the nested NetworkCallback class, which has an onAvailable function.
* Made the file for our DeviceFinder class on GitHub.
* Found the documentation with all of the dependencies
* Started looking into ways to run the proof-of-concept code in an emulator or in android studio

## Outcomes
Kevin
* The Container was created using HTML and Bootstrap CSS libraries

Lauren
* Our react components started to take real shape and got some styles.

Dylan
* Unlocked the bootloader for the device
* Flashed TWRP Recovery to the device allowing for the custom ROM to easily be flashed once compiled.
* Started documentation on the phone set up

Aaron
* Continued updating the documentation.
* Found the ConnectivityManager NetworkCallback class and the onAvailable function, where we will drop our code.
* Created new documentation for compiling the source code for emulation and testing.

## Hinderances
Kevin
* Needed to examine Bootstrap libraries and learn as I went in order to create what was needed

Lauren
* The android app for registering the devices cant be used on emulators because it requires the IMEI. This made testing more challenging.

Dylan
* Many of the tutorials for flashing devices are from 2012 or 2013, so they aren’t always up to date

Aaron
* I never seem to find the official documentation for processes and such until the week after I spend a significant amount of time working on it (examples: the build process and dependencies), this creates a scenario where I have to revisit previously completed work to make sure it was done correctly and fix it if it was not.

## Ongoing Risks
|Risk name (value)  | Impact     | Likelihood | Description |
|-------------------|------------|------------|-------------|
|Issue with pushing updated firmware | 8 | 2 | If we can't flash the updated firmware on an emulator we will have to try it on another device |
|Issue communicating the information from the device to the WebApp | 6 | 3 | The firmware that we update will have to communicate the MAC address to the application |
|Issue understanding AOSP and how everything works | 4 | 6 | Our team has little knowledge of the AOSP and will have to learn how it works |
|Issue running the proof-of-concept code in Android emulator | 7 | 9 | Our team has little knowledge or experience working with AOSP or its emulator and there have been many errors |

# Progress Report 5-Nov-2019
## Overview
Kevin
* Met with Dr. Hale and discussed Docker and discussed diagrams

Lauren
* Worked on docker setup

Dylan
* Continued to work on research for flashing a custom ROM to a device and emulator
* Installed a Ubuntu on a hard drive to allow for proper AOSP development, due to the high spec requirements

Aaron
* Worked on getting the Android Emulator to work as a means of seeing the modified log statements from logcat and looked over the log statements to determine where to insert our final endpoint code.

## Outcomes
Kevin
* Gained a better understanding of how to set up our environment
* Gained a more in-depth idea of what is required for the diagrams

Lauren
* Got a base setup for docker running

Dylan
* Set up a development environment to work on writing custom ROMs
* Gained a better understanding of flashing custom ROMs to emulators and physical devices

Aaron
* Successfully booted the custom ROM on the android emulator, found (what I believe is) the correct place to put our endpoint code based on the logcat output, and finished the compile source and android emulator documentation.

## Hinderances
Kevin
* N/A

Lauren
* Learning docker at the same time as adding added some extra time to the setup.

Dylan
* Setting up the environment for AOSP development is somewhat of a hassle because it requires such high specs to successfully be able to develop
* When I was adding the AOSP to Android Studio I ran into some indexing errors due to the source code being so large

Aaron
* Building AVD’s in Android Studio modifies an environment variable, which prevented me from running it on the general AVD. I was initially struggling to determine what was making the emulator go into a perpetual boot loop, but after reading through some large logs, I realized the emulator was set to run a different architecture than what I had compiled.

# Progress Report 12-Nov-2019
## Overview
Kevin
* Broke lifecycle diagram into two new diagrams and updated progress reports

Lauren
* Implemented map view for website when missing locations are added.

Dylan
* Working on research for how to get a GPS coordinate for the DeviceFinder class - Started looking at the android.location.Location class to gain an understanding of where long and lat can be accessed

Aaron
* Created the Device Finder hook in the ConnectivityService class, specifically the makeDefault function
* Created the DeviceFinder class and inserted the call to it at the end of ConnectivityService.makeDefault()
* Started the code to get a device's IMEI/MEID
* Started researching how to get a device's GPS coordinates

## Outcomes
Kevin
*  Created an Account Creation diagram showing the steps needed for the user to go from landing at the landing page to create an account and terminating when the user gains access to their home page
* Created a Register Device diagram showing steps needed for a user to register a new device on the webpage and terminating when the user has the device added
* Added a few more weeks to this document to assist teammates in keeping track of their updates

Lauren
* Missing locations now have a map view to display found coordinates.

Dylan
* Gained an understanding of how android applications can gain longitude and latitude from the android class

Aaron
* Created the functionality to pull a device's IMEI and started trying to get the device's GPS coordinates.

## Hinderances
Kevin
* N/A

Lauren
* N/A

Dylan
* Most of the examples for gaining the GPS data are on the user application level and not at the firmware level of where we are writing our code, so it is hard to get an example that fits our case well

Aaron
* There was a massive learning curve related to pulling information from system services and requesting system services.

# Progress Report 19-Nov-2019
## Overview
Kevin
* Discussed design documents with the group.
* Developed a plan for doing a security evaluation of our environment.

Lauren
* Worked on UI updates for web app and got advice from Dr. Hale on possible UI improvements.

Dylan
* Developed basic skeleton code for handling GPS data from the device

Aaron
* Testing the post request code
* Testing the existing GPS code
* Writing new GPS code
* Debugging the Post Request code
* Testing the GPS functionality

## Outcomes
Kevin
* Updated design documents to more accurately show what is being done with the processes.
* Ran Nmap scan against our network.

Lauren
* UI was improved from initial concept.

Dylan
* We now have a basic outline of code to return the latitude and longitude of the device, this still needs work to function properly

Aaron
* Finished debugging the Post request code and successfully sent a post request to the web application.

## Hinderances
Kevin
* N/A

Lauren
* Was not sure how to make the UI better.

Dylan
* The examples for getting GPS data from devices is often written in the application level, not in the firmware level. Thus the code must be fitted and arranged  to work at a lower level.

Aaron
* No experience or knowledge about post requests or how to implement it.

# Progress Report 26-Nov-2019
## Overview
Kevin
* Added information to the design documents.

Lauren
* Continued work on UI and updated authentication.

Dylan
* I Started to take a look at the Device Registration Application that is linked to account creation for our web app.
* I Started to gain a basic understanding of the Kotlin programming language

Aaron
* I fixed the GPS code and started looking into a race condition.

## Outcomes
Kevin
*  An improved visual guide for process flow.

Lauren
* Further improvement on UI and  better authentication in place.

Dylan
* Gaining a better understanding and trying to help the error reporting for our device registration Application
* Added error handling for if the user tries to enter a NULL registration code

Aaron
* Rewrote the getGPS function
* Debugged issues relating to the sending of NULL coordinate values in the post requests
* Discovered and started investigating a race condition

## Hinderances
Kevin
* N/A

Lauren
* N/A

Dylan
* I have never done development in Kotlin so that is a learning process
* I have a limited understanding of Android development, to begin with, and was given an application that I didn't initially develop so I have to decipher how all of the code works

Aaron
* Fighting a self-created race condition

# Progress Report 3-Dec-2019
## Overview
Kevin
* Examined Metasploit to find what we can use to attack our environment.

Lauren
* Fixed docker puma issue and continued UI work.

Dylan
* Determined what the issue was for our error handling for device registration and started to learn about handlers and loopers to try and fix the problem

Aaron
* Debugged the GPS and POST request code
* Fixed a race condition in the GPS and POST Request code that resulted in the sending of NULL coordinate values
* Cleaned up code -- getting rid of unnecessary code and optimizing the functions

## Outcomes
Kevin
* There are numerous apache and PostgreSQL modules in Metasploit that can be used.

Lauren
* Docker was running again and ui improved.

Dylan
* Gain an understanding of why the code is crashing and now have an idea of where to start looking on how to fix it

Aaron
* Fixed the race condition that resulted in NULL coordinate values being sent in the POST request.

## Hinderances
Kevin
* Not sure how to use Metasploit. I Will use this week to work on getting these to work.

Lauren
* N/A

Dylan
* Again, I have little understanding of Android application development and have only been using Kotlin for half a week now so I have to learn how handlers and loopers work

Aaron
* N/A

# Progress Report 10-Dec-2019
## Overview
Kevin
* Ran Burpsuite against the environment and examined findings.
* Worked on final deliverables.

Lauren
* Added DNS nad security certificate to website.

Dylan
* Added fixes for error handling in the device registration application.
* Gained better knowledge of Kotlin

Aaron
* Created an installation script that installs dependencies, pulls the AOSP repository, pulls the modified/added files (ConnectivityService.java and DeviceFinder.java), places those files in the correct directory, and makes the custom image.
* Create user documentation on how to "install" and run DeviceFinder for Android Emulator
* Changed the code to utilize HTTPS

## Outcomes
Kevin
*  Found routes path and used that to find publicly facing user information. Sent information to the team for remediation.

Lauren
* Website is now accesible through www.device_finder.com with https.

Dylan
* Fixed NULL value codes being sent in the device registration application
* Watched several videos and read articles on handlers trying to gain knowledge on passing information from background thread to UI thread.

Aaron
* Created user documentation for the Android endpoint code and created an installation script for users.
* Changed the code to utilize HTTPS

## Hinderances
Kevin
* Needed to update Burpsuite as it was not visually appealing.

Lauren
* Was not familar with adding security certificates so took some extra time in learning.

Dylan
* Most of the documentation and videos are in Java, not Kotlin so I have to try and fit the code to the other language
* After working several hours, asking for help from a friend who does Kotlin development I am still running into errors about running processes on the background thread.

Aaron
* N/A


text:
# Booktrip Testing

---

## Title.

Function Name: go_to_booktrip_page()

This Function is checking and testing the '/booktrip' page.

## Store booktrip info from User Through Form.

Function Name: tripInfo_can_be_added_through_form()

Manually Entering all booktrip forms fields data in '/booktrip/store' page using, ('/booktrip/store');


text:
# The Quantum Blockchain Project
The Quantum Blockchain Project's repository

## Setup to Work on Quantum Circuits and Simulation
* We use Python 3.6+ version and some specific libraries such as QuTiP and SimulaQron
* First it is recommended to install Anaconda distribution (Python 3.7+ version) [[link](https://www.anaconda.com/distribution/)]
* After installing, it will be needed to configure the environment to work on and install the QuTiP library [[link](http://qutip.org/)] following the steps:
* Open the terminal (or powershell in Windows) and setup an environment for the quantum projects by typing:
```
conda create -n _choose-a-name-for-the-env-here_
```
* Then you have to install the recommended libraries by typing on terminal:
```
conda install -c conda-forge numpy scipy cython matplotlib nose jupyter notebook spyder
```
* Update your conda
```
conda update conda
```
* Install qutip
```
conda install -c conda-forge qutip
```
* This should be enough to start programming in Python

## Additional Notes
* To work on a new terminal or to open the environment after restarting the computer, type:
```
source activate _the-name-you-gave-for-the-env_
```
* To work on Jupyter, open the terminal and type:
```
source activate _the-name-you-gave-for-the-env_
jupyter notebook
```
* A tab will open on your default browser

repository: Doomsk/thequantumblockchainproject

repo_name: Doomsk/thequantumblockchainproject


text:
[@redhat-cloud-services/vulnerabilities-client](../README.md) > [Links](../interfaces/links.md)

# Interface: Links

*__export__*:

*__interface__*: Links

## Hierarchy

**Links**

## Index

### Properties

* [first](links.md#first)
* [last](links.md#last)
* [next](links.md#next)
* [previous](links.md#previous)

---

## Properties

###  first

**● first**: *`string`*

*Defined in [api.ts:435](https://github.com/RedHatInsights/javascript-clients/blob/master/packages/vulnerabilities/api.ts#L435)*

Link to first page.

*__type__*: {string}

*__memberof__*: Links

___

###  last

**● last**: *`string`*

*Defined in [api.ts:441](https://github.com/RedHatInsights/javascript-clients/blob/master/packages/vulnerabilities/api.ts#L441)*

Link to last page.

*__type__*: {string}

*__memberof__*: Links

___

###  next

**● next**: *`string` \| `null`*

*Defined in [api.ts:447](https://github.com/RedHatInsights/javascript-clients/blob/master/packages/vulnerabilities/api.ts#L447)*

Link to next page.

*__type__*: {string}

*__memberof__*: Links

___

###  previous

**● previous**: *`string` \| `null`*

*Defined in [api.ts:453](https://github.com/RedHatInsights/javascript-clients/blob/master/packages/vulnerabilities/api.ts#L453)*

Link to next page.

*__type__*: {string}

*__memberof__*: Links

___

repository: rvsia/javascript-clients

repo_name: rvsia/javascript-clients