text:
To build the C++ example (assuming you are running from the example directory):
```
pip install cmake                   # if you don't already have CMake
cmake .
make
```
to run:
```
./game_example
```

gha_language: Python


text:
# Changelog - [Package name]

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.0]

### Added

[commit description]

[package-boilerplate]: https://github.com/pvds/package-boilerplate
[0.1.0]: https://github.com/pvds/package-boilerplate/tree/0.1.0

license: ISC

branch_name: refs/heads/master

extension: md

license_type: permissive


text:
# Blazored Video

The easiest html5 `video` implementation for [Blazor](https://blazor.net) applications.

![Build Status](https://github.com/Blazored/Video/workflows/Build%20&%20Test%20Main/badge.svg)

![Nuget](https://img.shields.io/nuget/v/blazored.video.svg)

![Screenshot of the component in action](screenshot.png)

## Getting Setup

You can install the package via the nuget package manager - just search for *Blazored.Video*. You can also install via powershell using the following command.

``` powershell
Install-Package Blazored.Video
```

Or via the dotnet CLI.

``` bash
dotnet add package Blazored.Video
```

#### Internet Explorer 11
This package can be used with Internet Explorer 11, but some special care should to be taken.

- Only Blazor Server works with IE11. Blazor WebAssembly does not work with any IE version. See [this](https://docs.microsoft.com/en-us/aspnet/core/blazor/supported-platforms?view=aspnetcore-3.1)
- A [polyfill](https://github.com/Daddoon/Blazor.Polyfill) is necessary for this component to work. See [this](https://github.com/Daddoon/Blazor.Polyfill) page for an explanation on how to install and use it. The sample project for Blazor Server uses the polyfill and thus should work on IE11

Taking these things into account, `Blazored.Video` will work on IE11.

_Note: The [sample projects](https://github.com/Blazored/Video/tree/main/samples) in this repo have IE11 support baked in._
### Add Imports

Add the following to your *_Imports.razor*

``` CSharp
@using Blazored.Video
@using Blazored.Video.Support
```

## Usage
Please checkout the [sample projects](https://github.com/Blazored/Video/tree/main/samples) in this repo to see working examples of the features in the Video component.

### Displaying a Video

Just use BlazoredVideo in place of any `video` tags.

``` html
<BlazoredVideo Play="OnPlay"
        class="w-100"
        style="max-width:800px;"
        controls="controls">
    <source src="https://res.cloudinary.com/blazoredgitter/video/upload/v1557015491/samples/elephants.mp4" type="video/mp4" />
</BlazoredVideo>
```

This will render the html
``` html
<video class="w-100" id="361044add13e438cb3de299cd74272a6" style="max-width: 800px;" controls="controls" _bl_796fa517-712e-4cf5-b8d6-7a4d940f2947=""><!--!-->
    <source src="https://res.cloudinary.com/blazoredgitter/video/upload/v1557015491/samples/elephants.mp4" type="video/mp4">
</video>
```
### Media Events

This component maps **every media event** on the video tag using either an Action or an EventCallback - depending on your preference.

_Note: `EventCallback` events will automatically call `StateHasChanged` on the parent component, while `Action` events do not - it is your choice which you use for any event_

| Action | EventCallback | Description |
| ------ | ------------- | ----------- |
| Abort | AbortEvent | Fires when the loading of an audio/video is aborted |
| CanPlay | CanPlayEvent | Fires when the browser can start playing the audio/video |
| CanPlayThrough | CanPlayThroughEvent | Fires when the browser can play through the audio/video without stopping for buffering |
| DurationChange | DurationChangeEvent | Fires when the duration of the audio/video is changed |
| Emptied | EmptiedEvent | Fires when the current playlist is empty |
| Ended | EndedEvent | Fires when the current playlist is ended |
| Error | ErrorEvent | Fires when an error occurred during the loading of an audio/video |
| LoadedData | LoadedDataEvent | Fires when the browser has loaded the current frame of the audio/video |
| LoadedMetadata | LoadedMetadataEvent | Fires when the browser has loaded meta data for the audio/video |
| LoadStart | LoadStartEvent | Fires when the browser starts looking for the audio/video |
| Pause | PauseEvent | Fires when the audio/video has been paused |
| Play | PlayEvent | Fires when the audio/video has been started or is no longer paused |
| Playing | PlayingEvent | Fires when the audio/video is playing after having been paused or stopped for buffering |
| Progress | ProgressEvent | Fires when the browser is downloading the audio/video |
| RateChange | RateChangeEvent | Fires when the playing speed of the audio/video is changed |
| Seeked | SeekedEvent | Fires when the user is finished moving/skipping to a new position in the audio/video |
| Seeking | SeekingEvent | Fires when the user starts moving/skipping to a new position in the audio/video |
| Stalled | StalledEvent | Fires when the browser is trying to get media data, but data is not available |
| Suspend | SuspendEvent | Fires when the browser is intentionally not getting media data |
| TimeUpdate | TimeUpdateEvent | Fires when the current playback position has changed |
| VolumeChange | VolumeChangeEvent | Fires when the volume has been changed |
| Waiting | WaitingEvent | Fires when the video stops because it needs to buffer the next frame |

#### Event Data

You are in control of the data sent with every event, if the `video` element you have on your page has the data, you can request it for any event.

Event data is requested by supplying a dictionary to the VideoEventOptions parameter.

``` CSharp
[Parameter] public Dictionary<VideoEvents, VideoStateOptions> VideoEventOptions { get; set; }
```

Each entry defines the `VideoStateOptions` you require to be populated for any `VideoEvents` value.

`VideoEvents` is an enum of the Media Event names (see table above).

`VideoStateOptions` is a struct listing all the properties of the `video` element.

| Property | Description | Notes |
| --- | --- | --- |
| AudioTracks | Returns a List<AudioTrack> object representing available audio tracks | This is not exactly obsolete, but not yet implemented, sorry
| Autoplay | Returns whether the audio/video should start playing as soon as it is loaded |  |
| Buffered | Returns a TimeRanges object representing the buffered parts of the audio/video | This is not exactly obsolete, but not yet implemented, sorry
| Controls | Returns whether the audio/video should display controls (like play/pause etc.) |  |
| CrossOrigin | Returns the CORS settings of the audio/video |  |
| CurrentSrc | Returns the URL of the current audio/video |  |
| CurrentTime | Returns the current playback position in the audio/video (in seconds) |  |
| DefaultMuted | Returns whether the audio/video should be muted by default |  |
| DefaultPlaybackRate | Returns the default speed of the audio/video playback |  |
| Duration | Returns the length of the current audio/video (in seconds) |  |
| Ended | Returns whether the playback of the audio/video has ended or not |  |
| Error | Returns a MediaError object representing the error state of the audio/video |  |
| Loop | Returns whether the audio/video should start over again when finished |  |
| MediaGroup | Returns the group the audio/video belongs to (used to link multiple audio/video elements) |  |
| Muted | Returns whether the audio/video is muted or not |  |
| NetworkState | Returns the current network state of the audio/video |  |
| Paused | Returns whether the audio/video is paused or not |  |
| PlaybackRate | Returns the speed of the audio/video playback |  |
| Played | Returns a TimeRanges object representing the played parts of the audio/video |  |
| Preload | Returns whether the audio/video should be loaded when the page loads |  |
| ReadyState | Returns the current ready state of the audio/video |  |
| Seekable | Returns a TimeRanges object representing the seekable parts of the audio/video |  |
| Seeking | Returns whether the user is currently seeking in the audio/video |  |
| Src | Returns the current source of the audio/video element |  |
| StartDate | Returns a Date object representing the current time offset |  |
| TextTracks | Returns a TextTrackList object representing the available text tracks | This is not exactly obsolete, but not yet implemented, sorry
| VideoTracks | Returns a List<VideoTrack> object representing the available video tracks | This is not exactly obsolete, but not yet implemented, sorry
| Volume | Returns the volume of the audio/video |  |

Let's look at an example.

Suppose you want to subscribe to the `Play` and `TimeUpdate` events so that you can remember the position in the video and restore it when the user comes back to this video.

There are two pieces of information we might want from the `video`

1. The name/url of the video file
2. The current timeline position

So, we create a dictionary and populate it with those options

``` csharp
Dictionary<VideoEvents, VideoStateOptions> options = new Dictionary<VideoEvents, VideoStateOptions>();

options[VideoEvents.TimeUpdate] = new VideoStateOptions { CurrentTime = true, CurrentSrc = true };

options[VideoEvents.Play] = new VideoStateOptions { CurrentSrc = true };
```

_Note: I don't really need the CurrentSrc property in both events - it's just to show having more than one selected._

Now, we can pass that to the `BlazoredVideo` component.

``` html
<BlazoredVideo PlayEvent="OnPlay" TimeUpate="OnTimeUpdate"
        VideoStateOptions="options"
        class="w-100"
        style="max-width:800px;"
        controls="controls">
    <source src="https://res.cloudinary.com/blazoredgitter/video/upload/v1557015491/samples/elephants.mp4" type="video/mp4" />
</BlazoredVideo>
```
_Notice: I have use an EventCallback for the `play` event and an action for the `timeupdate` event - because in this case I don't want a re-render every time the `timeupdate` fires_

This will render the html
``` html
<video class="w-100" id="361044add13e438cb3de299cd74272a6" style="max-width: 800px;" controls="controls" _bl_796fa517-712e-4cf5-b8d6-7a4d940f2947=""><!--!-->
    <source src="https://res.cloudinary.com/blazoredgitter/video/upload/v1557015491/samples/elephants.mp4" type="video/mp4">
</video>
```

Now, every time the `play` or `timeupdate` media events fire,
they will retrieve the `currentSrc`
and/or `currentTime` properties from the `video` element and pass that data in a `VideoState` struct.

``` csharp
void OnPlay(VideoState state)
{
    var url = state.CurrentSrc;
    // do something with this
}
void OnTimeUpdate(VideoState state)
{
    var url = state.CurrentSrc;
    var currentTime = state.CurrentTime;
    // do something with this
}
```

### Customising the html

The Video can be customised using standard CSS techniques.

All attributes are passed straight through to the HTML.

license: MIT

repository: Trifoia/Video

branch_name: refs/heads/main

repo_name: Trifoia/Video


text:
# WebAssembly for Proxies (GoLang host implementation)

The GoLang implementation for [proxy-wasm](https://github.com/proxy-wasm/spec), enabling developer to run proxy-wasm extensions in Go.

## Run Example

- build and run host
```bash
cd example
go run .
```

- send http request
```bash
curl http://<IP_ADDRESS>:2045/
```

- host log
```text
receive request /
print header from server host, User-Agent -> [curl/7.64.1]
print header from server host, Accept -> [*/*]
[http_wasm_example.cc:33]::onRequestHeaders() print from wasm, onRequestHeaders, context id: 2
[http_wasm_example.cc:38]::onRequestHeaders() print from wasm, Accept -> */*
[http_wasm_example.cc:38]::onRequestHeaders() print from wasm, User-Agent -> curl/7.64.1
```

## references

- https://github.com/proxy-wasm/spec
- https://github.com/proxy-wasm/proxy-wasm-cpp-sdk
- https://github.com/proxy-wasm/proxy-wasm-rust-sdk
- https://github.com/tetratelabs/envoy-wasm-rust-sdk
- https://github.com/tetratelabs/proxy-wasm-go-sdk

repository: startime-h/proxy-wasm-go-host

repo_name: startime-h/proxy-wasm-go-host


text:
**widgets_listview**

Shows usage of ListView, Card, ListTile and CircleAvatar widgets.

Reference:
https://api.flutter.dev/flutter/widgets/ListView-class.html
https://api.flutter.dev/flutter/material/Card-class.html
https://api.flutter.dev/flutter/material/CircleAvatar-class.html
https://api.flutter.dev/flutter/material/ListTile-class.html

repository: aldoestebanpaz/flutter-samples

repo_name: aldoestebanpaz/flutter-samples


text:
mandelbrot
=========

A Mandelbrot Set ([Wikipedia](http://en.wikipedia.org/wiki/Mandelbrot_set)) visualizer. Uses basic SDL and C to allow the user to pan and zoom in the window. Uses a basic escape time algorithm to color points not in the Mandelbrot Set.

### Controls

Pan the view with the arrow keys. Zoom in with pagedown and zoom out with pageup.

repository: kesslern/sdl-demos

repo_name: kesslern/sdl-demos


text:
Forked from https://github.com/kinok/google-pubsub-emulator. This container will not try to update the Cloud SDK each time it starts, but instead the SDK version is commited at build time, with a new tag created with the version name. This makes it much quicker to start up.

# Docker Container for Google PubSub emulator

The gcloud suite has an emulator for Google PubSub, which is great for testing locally how to run code against their APIs.

However, it is not very useful if you want to run in a containerized environment, and want to test how the whole thing behaves. Hence this container.

# How to use

```
$ docker pull andrewrjones/google-pubsub-emulator:latest
$ docker run -it --name pubsub-emulator -p 8042:8042 andrewrjones/google-pubsub-emulator:latest
```

Now you need to run the equivalent of the ```$(gcloud beta emulators pubsub env-init)``` command

```
$ export PUBSUB_EMULATOR_HOST=localhost:8042
```

Now you can use the standard APIs such as [gcloud-python](https://github.com/googlecloudplatform/gcloud-python) to interact with it.

# ENV VARIABLES / TWEAKS
## Data Store

You can bind a volume to /data in the container to get resilient data.

```
$ docker run -it --name pubsub-emulator -p 8042:8042 -v /path/to/my/data/folder:/data andrewrjones/google-pubsub-emulator:latest
```

## Port

You can also change the port where the emulator runs by editing the HOST_PORT environment variable.

## Logs

The emulator logs in container stout.

repository: andrewrjones/google-pubsub-emulator

repo_name: andrewrjones/google-pubsub-emulator


text:
---
title: Install Velero
type: Installation
---

Install and configure [Velero](https://github.com/heptio/velero/) to back up and restore your Kyma cluster.

>**NOTE**: To successfully set up Velero, define a supported storage location and credentials to access it. Currently, you can install Velero on GCP and Azure. AWS is not supported.

Follow the instructions to set up Velero:

1. Override the default backup configuration provided by the `backup` and `backup-init` components by creating a Secret containing the [required parameters](/components/backup/#configuration-configuration) for a chosen provider.

    See examples of such Secrets:

    >**NOTE**: The values are provided in plain text for illustrative purposes only. Remember to set them as base64-encoded strings. For details on Kyma overrides, see [this](/root/kyma/#configuration-helm-overrides-for-kyma-installation) document.

    <div tabs name="override-configuration">
      <details>
      <summary label="google-cloud-platform">
      Google Cloud Platform
      </summary>

      ```yaml
      apiVersion: v1
      kind: Secret
      metadata:
        name: velero-credentials-overrides
        namespace: kyma-installer
        labels:
          kyma-project.io/installation: ""
          installer: overrides
          component: backup
      type: Opaque
      stringData:
        configuration.provider: "gcp"
        configuration.volumeSnapshotLocation.name: "gcp"
        configuration.volumeSnapshotLocation.bucket: "my-gcp-bucket"
        configuration.backupStorageLocation.name: "gcp"
        configuration.backupStorageLocation.bucket: "my-gcp-bucket"
        credentials.secretContents.cloud: |
                    {
                        "type": "service_account",
                        "project_id": "my-project",
                        "private_key_id": "KEY_UUID",
                        "private_key": "<REDACTED_PRIVATE_KEY>\n",
                        "client_email"<EMAIL_ADDRESS>                        "client_id": "MY_CLIENT_ID",
                        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
                        "token_uri": "https://oauth2.googleapis.com/token",
                        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
                        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/sample%40fake.iam.gserviceaccount.com"
                    }
      ```

      >**NOTE:** For details on configuring and installing Velero on GCP, see [this](https://github.com/vmware-tanzu/velero-plugin-for-gcp) repo.
      </details>
      <details>
      <summary label="azure">
      Azure
      </summary>

      ```yaml
      apiVersion: v1
      kind: Secret
      metadata:
        name: velero-credentials-overrides
        namespace: kyma-installer
        labels:
          kyma-project.io/installation: ""
          installer: overrides
          component: backup
      type: Opaque
      stringData:
        initContainers.pluginContainer.image: "velero/velero-plugin-for-microsoft-azure:v1.0.0"
        configuration.provider: "azure"
        configuration.volumeSnapshotLocation.name: "azure"
        configuration.volumeSnapshotLocation.bucket: "my-storage-container"
        configuration.volumeSnapshotLocation.config.apitimeout: "3m0s"
        configuration.backupStorageLocation.name: "azure"
        configuration.backupStorageLocation.bucket: "my-storage-container"
        configuration.backupStorageLocation.config.resourceGroup: "my-resource-group"
        configuration.backupStorageLocation.config.storageAccount: "my-storage-account"
        credentials.secretContents.cloud: |
                        AZURE_SUBSCRIPTION_ID=my-subscription-ID
                        AZURE_TENANT_ID=my-tenant-ID
                        AZURE_CLIENT_ID=my-client-ID
                        AZURE_CLIENT_SECRET=my-client-secret
                        AZURE_RESOURCE_GROUP=my-resource-group
      ```

      >**NOTE:** For details on configuring and installing Velero in Azure, see [this](https://github.com/vmware-tanzu/velero-plugin-for-microsoft-azure) repo.

      </details>
    </div>

2. Run the Kyma installation with Velero overrides:

    <div tabs name="run-velero">
      <details>
      <summary label="local-installation">
      Local installation
      </summary>

      1. Apply the overrides to your local installation:

      ```bash
      kyma install -o {overrides_file_path}
      ```

      </details>
      <details>
      <summary label="cluster-installation">
      Cluster installation
      </summary>

      1. Apply the overrides to your cluster:

      ```bash
      kubectl apply -f {overrides_file_path}
      ```

      2. [Install](/root/kyma/#installation-installation) Kyma or [update](/root/kyma/#installation-update-kyma) it if it is already installed on your cluster.

      </details>
    </div>

repository: rasyidmujahid/kyma

repo_name: rasyidmujahid/kyma


text:
# Temperature And Humidity Data Logger

In this project, we have made a temperature and relative humidity data logger.  DHT22 sensor is used for sensing temperature and relative humidity. Arduino Uno is programmed to read temperature, humidity values from DHT22 sensor and save it to a file in an SD Card. So whenever required we can take the SD Card for viewing data. Here we will take data from SD card and import it to excel to plot graphs.

## Components Required

1. Arduino Uno
2. SD Card Module
3. DHT22 Temperature and Humidity Sensor
4. SD Card (Higher than 8GB)
5. Breadboard
6. Connecting wires

## Circuit Diagram

## Micro SD Card Reader Module – Pinout

## Explanation

First of all, we will connect the SD Card module to the Arduino. Arduino can do read write operations on SD Card via SPI protocol. So we need to connect the SD card module to SPI pins of Arduino, which are pins 13, 12, 11 and 10. Since it is using SPI protocol, it won’t work if we connect SD card module to normal digital IO pins. So make connections as below.

1. SD Card Module Ground to Arduino Ground
2. VCC of the module to 5V output of Arduino
3. MISO of module to pin 12 of Arduino
4. MOSI of module to pin 11 of Arduino
5. SCK of module to pin 13 of Arduino
6. CS of module to pin 10 of Arduino
7. Then we can connect the DHT22 to the Arduino.
8. Connect VCC of DHT22 to 5V output of Arduino
9. Ground to ground of Arduino
10. Data pin of DHT22 to pin 8 of Arduino


text:
---
tags:
  - extremes
  - concepts
  - notions
  - dichotomies
  - middle way
---
# extremes

## 8 extremes

- arising
- ceasing
- being non-existent
- being permanent
- coming
- going
- being multiple
- being single

## 8 no’s of the middle way

- no birth
- no death
- no permanence
- no dissolution
- no coming
- no going
- no one
- no many

## 8 opposites

- impermanence
- non-self
- Interdependent Co-Arising
- emptiness

- Middle Way <https://www.rigpawiki.org/index.php?title=Eight_extremes>

- arising
- ceasing
- being non-existent
- being permanent
- coming
- going
- being multiple
- being single

## 8 concepts

In Buddhism we talk about the Eight Concepts:

- birth
- death
- permanence
- dissolution
- coming
- going
- one
- and many

The practice to end attachment to these eight ideas is called the Eight No’s of the Middle Way

- no birth
- no death
- no permanence
- no dissolution
- no coming
- no going
- no one
- no many

In the thirteenth century in Vietnam, someone asked Master Tue Trung a question following a Dharma talk, and he replied, “Having offered complete release from the Eight Concepts, what further explanation could I possibly give?”

Once these eight ideas have been destroyed, we touch nirvana.

Nirvana is release from the Eight Concepts, and also from their opposites

- impermanence
- nonself
- Interdependent Co-Arising
- emptiness
- Middle Way

    Excerpt From
    The Heart Of The Buddha’s Teaching
    Hanh, Thich Nhat

gha_language: Shell

gha_license_id: MIT


text:
## Trigger Location

`triggerLocation()` - This method fetches last known location from OS (can be null) and delivers it to APP through CTLocationUpdatesListener. This also synchronises geofences based on location passed to CleverTap servers with throttling limit of minimum `30 minutes` and minimum displacement of `200 meters` between two syncs.

**Note:** Geofence SDK must be initialised before this method call or else `IllegalStateException` will be thrown

Below are two main use cases where this method can be used:

* Apps need last known location for their own use without implementing location feature in their app
* Apps can use it to maintain a tradeoff between location update interval and geofence synchronisation, For example.
If an app sets a location update interval of 6 hours and displacement of 2 km due to some reasons like battery optimisations but before the next location update also wants to sync geofences dynamically based on some smart logic then this can be handy. Note that throttling limit of 30 minutes and displacement of 200 meters between two syncs will be applied here.

![trigger_location_syncs](https://github.com/CleverTap/clevertap-android-sdk/blob/master/static/trigger_location.png)

repository: CleverTap/clevertap-android-sdk

gha_language: Java

repo_name: CleverTap/clevertap-android-sdk


text:
- [Deploying Oracle Database Sharding on Oracle Cloud Marketplace](#deploying-oracle-database-sharding-on-oracle-cloud-marketplace)
  * [Finding Oracle Database Sharding on Oracle Cloud (OCI) Marketplace](#finding-oracle-database-sharding-on-oracle-cloud--oci--marketplace)
    + [Finding Oracle Database Sharding  on Public cloud marketplace](#finding-oracle-database-sharding--on-public-cloud-marketplace)
    + [Finding Oracle Database Sharding on OCI console](#finding-oracle-database-sharding-on-oci-console)
  * [Pre-Requisites for creating an Oracle Database Sharding instance on OCI marketplace](#pre-requisites-for-creating-an-oracle-database-sharding-instance-on-oci-marketplace)
  * [Fill in the required Stack information](#fill-in-the-required-stack-information)
  * [Fill in the Sharding configuration details](#fill-in-the-sharding-configuration-details)
  * [Oracle Database Sharding Deployment job](#oracle-database-sharding-deployment-job)
    + [Oracle Database Sharding Deployment job status](#oracle-database-sharding-deployment-job-status)
    + [Oracle Database Sharding Deployment job outputs](#oracle-database-sharding-deployment-job-outputs)
    + [Oracle Database Sharding Deployment job associated resources](#oracle-database-sharding-deployment-job-associated-resources)
      - [Navigating to a Shard Director from associated resources](#navigating-to-a-shard-director-from-associated-resources)
      - [Navigating to a Shard from associated resources](#navigating-to-a-shard-from-associated-resources)
    + [Oracle Database Sharding initial random credentials](#oracle-database-sharding-initial-random-credentials)
- [Managing Oracle Database Sharding previously created from OCI Marketplace](#managing-oracle-database-sharding-previously-created-from-oci-marketplace)
  * [Scaling Shards](#scaling-shards)
    + [Oracle Database Sharding edit stack apply job](#oracle-database-sharding-edit-stack-apply-job)
      - [Oracle Database Sharding edit stack job running](#oracle-database-sharding-edit-stack-job-running)
      - [Oracle Database Sharding edit stack job completion](#oracle-database-sharding-edit-stack-job-completion)
      - [Oracle Database Sharding edit stack job outputs](#oracle-database-sharding-edit-stack-job-outputs)
  * [Scaling Shard Directors](#scaling-shard-directors)
- [Terminating Oracle Database Sharding created from Oracle Cloud Marketplace](#terminating-oracle-database-sharding-created-from-oracle-cloud-marketplace)
- [Oracle Database Sharding Resources](#oracle-database-sharding-resources)

# Deploying Oracle Database Sharding on Oracle Cloud Marketplace

## Finding Oracle Database Sharding on Oracle Cloud (OCI) Marketplace

### Finding Oracle Database Sharding  on Public cloud marketplace

* Choose IaaS
* Choose Oracle Cloud Infrastructure
* Select Oracle Database Sharding from the list of Featured Apps.

Oracle Database Sharding can be found on the featured list right at the top of the OCI applications on Oracle public marketplace.

![Oracle Database Sharding on OCI Public Marketplace](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Featured-App-on-Public-Marketplace.png
      )

![Oracle Database Sharding on OCI Public Marketplace Featured Applications](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/Oracle-Database-Sharding-on-OCI-Public-Marketplace-featured.png
      )

2. Go directly to the following listing link at :
[Oracle Database Sharding Listing on Oracle Cloud Public Marketplace ](https://cloudmarketplace.oracle.com/marketplace/en_US/listing/74654105)

### Finding Oracle Database Sharding on OCI console

1. Once you login to the OCI console, Click on the left hamburger navigation menu.
2. Next, select OCI marketplace under solutions & marketplace section in the left navigation menu.
3. Next, you should be able to immediately find Oracle Database Sharding in the Featured Apps.
4. If you don't find Oracle Database Sharding for some reason, then search for it in the marketplace search bar.
5. Click on the Oracle Database Sharding Tile which will bring up the listing for Oracle Database Sharding.

![Oracle Database Sharding on OCI console marketplace ](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/OracleDatabaseSharding-Featured-Marketplace-App-on-OCI-Console.png
      )

Oracle Database Sharding Listing

![Oracle Database Sharding Listing](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Listing-page-1.png
      )

## Pre-Requisites for creating an Oracle Database Sharding instance on OCI marketplace

As specified in the system requirements section of the Oracle Database Sharding listing, the following pre-requisites are recommended to be checked before deploying sharded database.

Since automatic and uniform distribution of Sharded database resources within a region is employed, users are recommended to check if they have sufficient number of the below listed resources/services in each availability domain within the region selected, before initial deployment/scaling of Sharded Database.

The resources/services to check for limits, quotas and availability in the Governance section of the hamburger menu on the left navigation pane are :

1. Database service for Shard and Catalog databases (based on the shape that user wants to select).

2. Compute service for Shard Directors (based on the shape that user wants to select).

## Fill in the required Stack information

After clicking on Launch instance on the Oracle Database Sharding Marketplace product page, Fill in the required Stack information.

![Oracle Database Sharding Fill in Stack Info - part 1](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Fill-in-stack-Info.png
      )

![Oracle Database Sharding Fill in Stack Info - part 2](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Fill-in-Stack-Info-part2.png
      )

* Name - Name of the Stack. It has a default name and provides a date time stamp. You can edit this detail, if required.
* Description - Description that you provide while creating the Stack.
* Create In Compartment – It defaults to the compartment you had selected on the Oracle Database Sharding Marketplace page before clicking on Launch stack.
* Terraform Version - It defaults to 0.12x.
* Tags (optional) – Tags are a convenient way to assign a tracking mechanism but are not mandatory. You can assign a tag of your choice for easy tracking. You have to assign a tag for some environments for cost analysis purposes.

Click Next.

## Fill in the Sharding configuration details

**Oracle Sharded Database General Configuration**

![Oracle Sharded Database General Configuration - part 1](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-General-config-part-1.png
      )

![Oracle Sharded Database General Configuration - part 2](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-General-config-part-2.png
      )

* SHARDED DATABASE NAME - The name is used as the sharded database name as well as a prefix for all sharded database resource display names. The name specified must be unique within the subnet.
* SHARDING METHOD
* DATABASE SOFTWARE EDITION
* CHOOSE STORAGE MANAGEMENT SOFTWARE
* CHOOSE A LICENSE TYPE
* DATABASE VERSION

**Shard configuration**

![Oracle Sharded Database Shard Configuration](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Shard-config.png
      )

* SHARD SHAPE
* NUMBER OF PRIMARY SHARDS - The number of primary shard catalog databases. The total number of Shard catalog databases provisioned is determined by the value of the Replication Factor chosen. Shard Catalogs will be uniformly distributed across all availability domains in the current region and across fault domains within each availability domain.
* SHARD DATABASE AVAILABLE STORAGE SIZE IN GB

**Shard Catalog configuration**

![Oracle Sharded Database Shard Catalog Configuration](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Shard-catalog-config.png
      )

* SHARD CATALOG SHAPE
* NUMBER OF PRIMARY SHARD CATALOGS
* SHARD CATALOG DATABASE AVAILABLE STORAGE SIZE IN GB

**Replication configuration**

![Oracle Sharded Database Replication Configuration](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Replication-Config.png
      )

* REPLICATION FACTOR - Choose a replicaton factor. The total number of shard databases provisioned will be equal to the number of primary shards selected above multiplied by the chosen Replication Factor. The total number of primary catalog databases that will be provisioned will be equal to the Replication Factor chosen.

**Shard Director configuration**

![Oracle Sharded Database Shard Director Configuration](
        https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Shard-Director-Config.png
      )

* SHARD DIRECTOR SHAPE
* NUMBER OF SHARD DIRECTORS - Choose the number of shard directors to be deployed.

**Network Settings**

![Oracle Sharded Database Network Configuration - part 1](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Create-new-network.png
      )

![Oracle Sharded Database Network Configuration - part 2](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Create-new-network-part-2.png
      )

* CREATE NEW NETWORK - Check this to create a new regional network (recommended if this is your first sharded database) or Uncheck to use an existing regional network from a previously created sharded database
* VCN NETWORK COMPARTMENT- Compartment for new or existing Virtual Cloud Network (VCN)
* VCN - Existing VCN to use for sharded database if not creating a new network
* SUBNET NETWORK COMPARTMENT - Compartment for new or existing Subnet
* CHOOSE A REGIONAL SUBNET - Existing Regional Subnet to use for sharded database if not creating a new network.

**ssh configuration**

![Oracle Sharded Database SSH Configuration](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-ssh-config.png
      )

* SSH PUBLIC KEY - Public key for allowing SSH access to the sharded database hosts.

![Oracle Sharded Database SSH Configuration](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-config-review.png
      )

![Oracle Sharded Database SSH Configuration](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-config-review-part-2.png
      )

* On the Review page, review the information you provided and then click Create.
* After clicking Create, you will be navigated to the Stacks Job Details page. You can monitor the creation of the Oracle Database Sharding using this page.
* Upon completion, you can now view the output pane on the left for connection information to Oracle Sharded Database.

## Oracle Database Sharding Deployment job

Once you click create on the review page show above, an Oracle Resource Manager (ORM) job is automatically created which starts deploying Oracle Sharded Database.

![Oracle Sharded Database deployment job](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-post-clicking-Create-ORM-job.png
      )

### Oracle Database Sharding Deployment job status

After, about 15 minutes for deployments with Replication Factor set to 1 or 45 minutes for deployments with Replication Factor set to 2, the Oracle Sharded Database deployment job would have succeeded as show below.

![Oracle Sharded Database Deployment success](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-stack-orm-job-success.png
      )

![Oracle Sharded Database Deployment orm job success details](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-orm-job-success-details.png
      )

### Oracle Database Sharding Deployment job outputs

![Oracle Sharded Database Deployment orm job success details](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-orm-job-outputs.png
      )

### Oracle Database Sharding Deployment job associated resources

All resources that are provisioned for the successful deployment of Oracle Sharded Database are listed in the associated resources pane on the left menu within the job page, as shown below.

![Oracle Sharded Database Deployment orm job associated resources](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-associated-resources.png
      )

#### Navigating to a Shard Director from associated resources

Shard Director which is a compute can be directly accessed by clicking on the *sd* resource link.

1. Click on the shard director resource selected below.

![Oracle Sharded Database Deployment orm job associated resource shard director selection](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-associated-resource-shard-director-compute.png
      )
2. A new tab opens up with the details of the compute on which the Shard Director runs and is as shown below

![Oracle Sharded Database Deployment orm job associated resource shard director compute details](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-associated-compute-details-for-shard-director.png
      )

#### Navigating to a Shard from associated resources

Shard which is a Oracle database can be directly accessed by clicking on the *sh* resource link.

1. Click on the shard resource selected below.

![Oracle Sharded Database Deployment orm job associated resource shard database selection](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Associated-resource-Select-shard.png
      )

2. A new tab opens up with the details of the database db system on which the Shard lives and is as shown below

![Oracle Sharded Database Deployment orm job associated resource shard database details](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-dbvm.png
      )

### Oracle Database Sharding initial random credentials

The initial random credentials for Oracle Database Sharding is available in the view state which is securely stored within Oracle Resource Manager. Users are recommended to change this on their first attempt to use these initial random passwords.

![Oracle Sharded Database Deployment orm job associated resource shard database details](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Default-initial-random-passwords.png
      )

# Managing Oracle Database Sharding previously created from OCI Marketplace

* Click on the left hamburger navigation Menu. Choose Resource Manager under Solutions and Marketplace.
* Select the stack that you created from marketplace.
* Click on Edit Stack.

## Scaling Shards

![Oracle Sharded Database Edit stack select Configuration](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Edit-Stack-select.png
      )

![Oracle Sharded Database Scaling Configuration](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Stack-scale-both.png
      )

![Oracle Sharded Database Edit stack toggling Configuration](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-edit-stack-after-toggling.png
      )

Shards can be scaled in (decreased) or out (decreased)  based on user requirements and as needed without affecting performance of queries per second(qps) or transactions per second (tps) and with zero downtime.

* _Update the number of Shard Directors_

* Review and Save changes

![Oracle Sharded Database Review Edit Configuration](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Edit-stack-review.png
      )

* Next click on Terraform Actions → Apply

![Oracle Sharded Database Review Edit Configuration](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Apply-after-edit-stack.png
      )

### Oracle Database Sharding edit stack apply job

After clicking on apply job, a confirmation dialog pops up to make sure that the user wants to indeed apply the changes to the existing sharded database deployment.

![Oracle Sharded Database edit stack apply job approve dialog](
       https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Apply-dialog-post-edit-stack.png
      )

#### Oracle Database Sharding edit stack job running

![Oracle Sharded Database edit stack apply job running](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-post-apply-job-running.png
      )

#### Oracle Database Sharding edit stack job completion

Depending upon the changes requested in the sharding edit stack, the apply job will make the necessary changes in the sharded database resources. Once the changes are successfully applied, the job status would be as shown below :

![Oracle Sharded Database edit stack apply job completed](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Edit-stack-apply-job-completed.png
      )

The apply job details which is responsible for making the changes to the sharded database is as shown below :

![Oracle Sharded Database edit stack apply job details completed](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Edit-stack-apply-job-drill-down.png
      )

#### Oracle Database Sharding edit stack job outputs

Once the edit stack apply job has completed successfully, the outputs section on the left pane of the apply job page would contain the details on how to access the sharded database as show below :

![Oracle Sharded Database edit stack job outputs](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-edit-stack-job-output.png
      )

## Scaling Shard Directors

Shard directors can be scaled in (decreased) or out (decreased) based on user requirements and as needed without affecting performance and with zero downtime.

The steps for scaling are the same as scaling shards as shown in the previous section. Change the shard director configuration as show below before saving changes and running an apply job to deploy the changes.

![Oracle Sharded Database edit stack for shard directors](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-edit-stack-after-toggling.png
      )

# Terminating Oracle Database Sharding created from Oracle Cloud Marketplace

To terminate an Oracle Sharded Database created from OCI marketplace in the past, follow the steps below :

* Click on the left hamburger Menu. Choose Resource Manager under Solutions and Marketplace.
* Select the stack that you created from marketplace.
* Click on Terraform Actions → Destroy. Once you click this all Sharded database resources including any user data will be deleted from OCI.
* Once the destroy has completed the jobs section will show that the destroy job has been successfully completed.

![Oracle Sharded Database Destroy selection](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Destroy-select.png
      )

![Oracle Sharded Database Destroy job approve](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Destroy-Dialog.png
      )

![Oracle Sharded Database Destroy job running](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Destroy-job-running.png
      )

![Oracle Sharded Database Destroy job completed](
      https://github.com/oracle/db-sharding/blob/master/database-sharding-on-oci-marketplace/static-assets/ODS-Destroy-job-completed-stack-view.png
      )

# Oracle Database Sharding Resources

For more details on Oracle Database Sharding and usage please refer to the [Product page](https://www.oracle.com/database/technologies/high-availability/sharding.html).

For product documentation, please refer to the [product release documentation](https://docs.oracle.com/en/database/oracle/oracle-database/19/shard/sharding-overview.html)

For GDSCTL CLI commands to manage sharded database manually once deployed on OCI, please refer to the [Sharding GDSCTL CLI command reference](https://docs.oracle.com/en/database/oracle/oracle-database/19/gsmug/gdsctl-sharding-env.html)

repository: oracle/db-sharding

gha_license_id: NOASSERTION

repo_name: oracle/db-sharding


text:
# Assignment report
---
Thu Jan 14 19:14:13 2016

## task1.c

**File compiled with error or warnings**

```
/tmp/ccdDEOZY.o: In function `main':
task1.c:(.text+0x2d8): undefined reference to `pow'
collect2: error: ld returned 1 exit status
```

## task3.c

**File successfully compiled**

### Task details

Name: Task: Rudolph

Description: https://docs.google.com/document/d/1B-ZN-pwSB-dur0p8-I6wCR30YU9-cazD3RDD0xIHM-8/edit

Points: 15

#### Test cases
Test case 0 passed ✔
Test case 1 passed ✔
---
#### Final points: 15
## task2.c

**File successfully compiled**

### Task details

Name: Task: Nokia 3310

Description: https://docs.google.com/document/d/1B-ZN-pwSB-dur0p8-I6wCR30YU9-cazD3RDD0xIHM-8/edit

Points: 5

#### Test cases
Test case 0 passed ✔
---
#### Final points: 5

repository: VelislavVelikov/po-homework

repo_name: VelislavVelikov/po-homework


text:
---
layout: post
title: "Couch to 5K"
excerpt: "Am I a Runner Now?"
tags:
- Fitness
- Away from the Keyboard
image:
  thumb: /couch-to-5k/couch-to-5k-01.png
comments: true
date: 2023-04-01T00:00:00+00:00
---

We all know about new year's resolutions. The idea that a new year would provide the impetus to start/stop/try/whatever something.

Like [30% of respondents to a 2020 survey](https://www.forbes.com/health/mind/new-years-resolutions-statistics/#:~:text=19%25%20lasting%20at%20least%20one%20month%20and%20just%2011%25%20lasting%20less%20than%20a%20month.){:target="_blank"}, I'm not good at keeping new year's resolutions for even a month... Let alone a year.

Therefore to everyone's surprise on 1 February 2023 - which is way too late for new year's resolutions - I settled on two things:

1. Start Couch to 5K
2. Give up alcohol for a month
{% include _toc.html %}
## Why?
Let's start with 2. Give up alcohol for a month. Well, February *is* the shortest month:

Clever a? I thought so! :wink:

Traditionally the first couple of weeks of February are when the south of the UK is likely to see snow. *"No good starting to run in January when one would have to stop because of snow in February"* is what I thought sat on the couch between Christmas 2022 and 2023 new year's. Made perfect sense to me!

So when checking the weather on 1st February I saw that there was no snow in the weather forecast for the foreseeable, that added to the aforementioned February being the shortest month, I felt like it was now or never.

## Couch to 5K
For those not aware of the Couch to 5K program, the aim is exactly that: Get up from the couch and run for 5 Kilometres without stopping.

The program comes in the form of a 100% free (no paid add-ons etc) app for Android / IOS:

|:---:|:---:|
|  |  |

It takes nine weeks to complete the plan, with three runs each week.

The very first run of week one lasts just 60 seconds with the last run of week nine lasting 30 minutes. Take a look at [this page on the NHS UK website](https://www.nhs.uk/live-well/exercise/running-and-aerobic-exercises/get-running-with-couch-to-5k/){:target="_blank"} for further details.

In my case, I had originally downloaded the Couch to 5K app in the summer of 2020. Which means - embarrassingly - I had spent two and a half years working on the couch part of the plan... :anguished:

...yeah, probably time to start then...

## Finished!
Yep, after 9 weeks, this morning I finished the plan:

|:---:|:---:|
|  |  |
|  |  |

### Was It Easy?
**NO.** :disappointed:

There were times when I didn't want to run.

There were times when I didn't continuously run the required time.

There were times when I didn't think I'd make it to the end of the plan.

I repeated one of the runs.

### Are You Glad You Finished?
**YES!** :relaxed:

I made it.

All of the above was worth it.

What's more is that I ran the full 30 minutes without stopping for all three of my week 9 runs!
### How Do You Feel?
**GOOD!** :smile:

My level of general fitness has increased - I don't think I've ever been this fit in my life before. Certainly not this century or ever - yes I'm old!

My stamina has increased too.

Since starting running that feeling has completely gone. An example of this is completing a four hour drive starting after work at 5PM, arriving home at 9PM and still feeling able to fully function in the brain department. Previously I would have needed to switch off the second I got home.

Not so any more!
### Will You Keep The Running Up?
**YES - DEFINITELY!**

As previously mentioned, my fitness and stamina are better than ever!

My next run will be without the "safety net" of the Couch to 5K app.

No more words of encouragement in my ears from [Sanjeev Kohli](https://speakout.uk/speaker/sanjeev-kohli-navid/){:target="_blank"}.

I'm looking forward to it! :smile:
### Wait - You Gave up Alcohol too... How did you do?
Really good! - I'm still off of it! February was harder, March was a breeze.

In all honesty, I could not have done it without assistance from these three alcohol free friends:

|:---:|:---:|:---:|
|  |  |  |

Although when all said and done, of the two resolutions, I can see alcohol returning at some point in the distant future.

Just as long as the alcohol doesn't affect my running! :running: :running: :running:

It's easy to avoid - just keep buying the alcohol free beer and I'm good!

## Thank You!
Thank you to family, friends, everyone for the kind words of encouragement over the last 9 weeks. I could not have done it without your help!

Now, who fancies an alcohol free beer? :beers:

Cheers!

-Chris

gha_language: HTML


text:
---
title: "Run Plus"
excerpt: "A web application for runners looking to train for their next big event."
sidebar:
  - title: "Institute"
    text: "General Assembly"
    image: /assets/images/general_assembly_logo.png
  - title: "Role"
    image_alt: "General Assembly logo"
    text: "Web Development Immersive Student"
  - title: "Tech Stack"
    text: "AngularJS, Ruby on Rails, Postgres, integrated with Strava API"
gallery:
  - url: /assets/images/run-plus.png
    image_path: assets/images/run-plus.png
    alt: "Run Plus"
---

A web application for runners looking to train for their next big event.  Built using AngularJS, Ruby on Rails & Postgres, the app is fully integrated with Strava for easy syncing with wearable tracking devices.

{% include gallery %}

https://run-plus.herokuapp.com/

https://github.com/carolinewilson/run-plus-frontend

gha_language: JavaScript


text:
# Part1

- Nouns: Course; Instructor; Lecture Hall; Student; AdminStaff; People; University; capacity; identifier; id; email; major; list of courses; final GPA; salary;
- Verbs: To enroll a student; to assign a lecture hall; to assign an instructor; to assign one's cumulative semester GPA; to retrieve a list of courses to which one is assigned

# Part2

## Course

| Responsibilities | Collaborators |
|:----------------:|:-------------:|
|                  |               |

## Lecture Hall

| Responsibilities | Collaborators |
|:----------------:|:-------------:|
|                  |               |

## University

|     Responsibilities     | Collaborators |
|:------------------------:|:-------------:|
|    To employ a Person    |               |
|    To offer a Course     |               |

## Person

| Responsibilities | Collaborators |
|:----------------:|:-------------:|
|                  |               |

## Instructor

|                       Responsibilities                       | Collaborators |
|:------------------------------------------------------------:|:-------------:|
|            To assign one’s cumulative semester GPA           |    Student    |
|    To retrieve a list of courses to which one is assigned    |               |

## Student

| Responsibilities | Collaborators |
|:----------------:|:-------------:|
|                  |               |

## Admin Staff

|        Responsibilities        | Collaborators |
|:------------------------------:|:-------------:|
|       To enroll a student      |     Course    |
|    To assign a lecture hall    |               |
|    To assign an instructor     |               |

url: https://raw.githubusercontent.com/0x326/academic-code-portfolio/c2248aa287a07abbb9e5548107ec87aa7632f247/2016-2021 Miami University/CSE 271 Introduction to Object-Oriented Programming/Lab07-08/OOP-Planning.md


text:
# ServoMotor
Adjust SG90 ServoMotor
Initial Load 12/28/2019
modified 1/12/2020

Modified the code to have a menu to go to left, right, center, set own angle
and quit.
This code will move the servo to the middle position, then the right position
then to the left and finally to the center again and stop.

![show connection](/images/ServoConnection.jpg)


text:
# Node Todo App

A Node app built with MongoDB and Angular. For demonstration purposes and a tutorial.

Node provides the RESTful API. Angular provides the frontend and accesses the API. MongoDB stores like a hoarder.

## Installation

1. Clone the repository: `git clone git@github.com:marat00/Node-todo`
2. Install the application: `npm install`
3. Start the server: `node server.js`
4. View in browser at `http://localhost:8080`

## Tutorial Series

This repo corresponds to the Node Todo Tutorial Series on [scotch.io](http://scotch.io)

Happy Todo-ing!

![Todo-aholic](http://i.imgur.com/ikyqgrn.png)


text:
# TL;DR

Build CTDS Jenkins image

## Notes

* The build context should be the root of the repo, so:

```
docker build -t jenkins:reuben -f ./Dockerfile ../../
```

* Periodically update the base image with the latest tagged release from https://hub.docker.com/r/jenkins/jenkins

repository: uc-cdis/cloud-automation

repo_name: uc-cdis/cloud-automation


text:
---
layout: post
title: Higher Order Functions
---

[Higher Order Functions](http://eloquentjavascript.net/05_higher_order.html) gives
an introduction to the usage of higher order of functions in JS. Importantly,
mentioning `map`, `forEach`, `filter`, `reduce`

The introduction also points out to slightly uneasy notions that I am not used to.
In the absence of types, when a function returns another function with some
binding. For example
{% highlight javascript %}
function greaterThan(m) {
  return function(n) {
    return (n > m );
  }
}
var greaterThan10 = greaterThan(10);
{% endhighlight %}
It creates a confusion given that somehow it mixes up binding `m` within
the anonymous function which is returned from within `greaterThan`.
The other highlights were
* The usage of `apply` which allows argument passing between wrapper function
and the function which it calls into. The `null` argument is right now unexplained.
It would have been better to describe the difference with `f(arguments)` as well.
{% highlight javascript %}
function transparentWrapping(f) {
  return function() {
    return f.apply(null, arguments);
  };
}
{% endhighlight %}
* JSON is officially introduced. `JSON.stringify` and `JSON.parse` are friends.
* A custom reduce function was written to handle a specific case where the
family tree needs to be simplified without making a mistake in the Math. Important
points to note are that none of the standard higher order functions listed above
seemed to work out in this usecase. The usage of `valueFor` could have been done
away by recursively calling `reduceAncestors`, but this is much more convenient.
Value for a person would be a function of his value, and parents' value combined
by the reducing function f.
{% highlight javascript %}
function reduceAncestors(person, f, defaultValue) {
  function valueFor(person) {
    if (person == null)
      return defaultValue;
    else
      return f(person, valueFor(byName[person.mother]),
                       valueFor(byName[person.father]));
  }
  return valueFor(person);
}
{% endhighlight %}
* `bind` is a magic function which can be used instead of writing wrapper
functions to bind values and return them. Instead just calling bind on the function
followed by arguments seems to do the trick. There is a `null` being passed
to bind, which is the similar guy to the one in `apply`.


text:
# Setup Steps for HTTPS Connections to AWS CodeCommit Repositories on Windows with the AWS CLI Credential Helper.

Before you can connect to AWS CodeCommit for the first time, you must complete the initial configuration steps . Here we are using CodeCommit root account, federated access, or temporary credentials, you can use the credential helper that is included in the AWS CLI.

   ## Step 1: install and configure the AWS CLI  : -

   On your local machine, download and install the AWS CLI. This is a prerequisite for interacting with CodeCommit from the command line.CodeCommit works only with **AWS CLI versions 1.7.38** and later. As a best practice, install or upgrade the AWS CLI to the latest version available. To determine which version of the AWS CLI you have installed, run the **aws --version command**.

   ## Step 2: Install Git

To work with files, commits, and other information in CodeCommit repositories, you must install Git on your local machine. CodeCommit supports **Git versions 1.7.9**  and later. We recommend using a recent version of Git.To install Git we recommend websites such as
Git for Windows. If you use this link to install Git, you can accept all of the installation default settings except for the following:
When prompted during the Adjusting your PATH environment step, choose the option to use Git from the command line.

(Optional) If you intend to use HTTPS with the credential helper that is included in the AWS CLI instead of configuring Git credentials for CodeCommit, on the Configuring extra options page, make sure the **Disable Git Credential Manager option** . The Git Credential Manager is only compatible with CodeCommit if IAM users configure Git credentials

## Step 3: Set Up the Credential Helper

The AWS CLI includes a Git credential helper you can use with CodeCommit. The Git credential helper requires an AWS credential profile, which stores a copy of an IAM user's AWS access key ID and AWS secret access key (along with a default AWS Region name and default output format). The Git credential helper uses this information to automatically authenticate with CodeCommit so you don't need to enter this information every time you use Git to interact with CodeCommit.

Open a command prompt and use Git to run **git config**, specifying the use of the Git credential helper with the AWS credential profile, which enables the Git credential helper to send the path to repositories:

> **git config --global credential.helper "!aws codecommit credential-helper $@"**

> **git config --global credential.UseHttpPath true**

The Git credential helper writes the following to the .gitconfig file:

**[credential]
    helper = !aws codecommit credential-helper $@
    UseHttpPath = true**

## Step 4: Configure AWS CLI With your SSO Credential

We need to bookmark our sso signup link .  following  below  Example is just example link .

 **https://my-sso-portal.awsapps.com/start**

Copy paste the link in your browser and select your account .Then select your account it will give you two option management Console and programmatic  access . Here we need to click on programmatic access . agin it will give you two options like MAC/Linux and windows .Here we need to select windows,  because we are using windows . copy environment credential and paste it on CMD

## Step 5: Connect to the CodeCommit Console and Clone the Repository

If an administrator has already sent you the name and connection details for the CodeCommit repository, you can skip this step and clone the repository directly.

Open the CodeCommit console at **https://console.aws.amazon.com/codesuite/codecommit/home.**

In the region selector, choose the AWS Region where the repository was created. Repositories are specific to an AWS Region.Find the repository you want to connect to from the list and choose it. Choose Clone URL, and then choose the protocol you want to use when cloning or connecting to the repository. This copies the clone URL.

**git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo**

---
___

# Setup Steps for HTTPS Connections to AWS CodeCommit with git-remote-codecommit

If you want to connect to CodeCommit using a root account, federated access, or temporary credentials, you should set up access using git-remote-codecommit. This utility provides a simple method for pushing and pulling code from CodeCommit repositories by extending
Git. It is the recommended method for supporting connections made with federated access, identity providers, and temporary credentials.  Instead of creating an IAM user, you can use existing identities from AWS Directory Service, your enterprise user directory, or a web identity provider. These are known as federated users. AWS assigns a role to a federated user when access is requested through an identity provider. For more information about federated users

You can also use git-remote-codecommit with an IAM user. Unlike other HTTPS connection methods, git-remote-codecommit does not require setting up Git credentials for the user Some IDEs do not support the clone URL format used by git-remote-codecommit. You might have to manually clone repositories to your local computer before you can work with them in your preferred IDE

## Step 1: Install Prerequisites for git-remote-codecommit

Before you can use git-remote-codecommit, you must install some prerequisites on your local computer. These include:Python **(version 3 or later)** and its package manager, pip, if they are not already installed. To download and install the latest version of Python, visit the Python website.When you install Python on Windows, make sure that you choose the option to add Python to the path.git-remote-codecommit requires **pip version 9.0.3** or later.

Installing Pip

Once you’ve confirmed that Python is correctly installed, you can proceed with installing Pip.

Download **get-pip.py** to a folder on your computer.
Open a command prompt and navigate to the folder containing **get-pip.py.**
Run the following command:
> python get-pip.py

Pip is now installed!

To check your version of pip, open a terminal or command line and run the following command:

> pip --version

## Step 2: Install git-remote-codecommit
Follow these steps to install git-remote-codecommit.
To install git-remote-codecommit At the terminal or command line, run the following command:

> pip install git-remote-codecommit

Monitor the installation process until you see a success message similar to the following:
Successfully built git-remote-codecommit

 ## Step 3: Set Up the Credential Helper

The AWS CLI includes a Git credential helper you can use with CodeCommit. The Git credential helper requires an AWS credential profile, which stores a copy of an IAM user's AWS access key ID and AWS secret access key (along with a default AWS Region name and default output format). The Git credential helper uses this information to automatically authenticate with CodeCommit so you don't need to enter this information every time you use Git to interact with CodeCommit.

Open a command prompt and use Git to run **git config**, specifying the use of the Git credential helper with the AWS credential profile, which enables the Git credential helper to send the path to repositories:

> git config --global credential.helper "!aws codecommit credential-helper $@"

> git config --global credential.UseHttpPath true

The Git credential helper writes the following to the .gitconfig file:

**[credential]
    helper = !aws codecommit credential-helper $@
    UseHttpPath = true**

## Step 4 :- To install and configure the AWS CLI

On your local machine, download and install the AWS CLI. This is a prerequisite for interacting with CodeCommit from the command line. CodeCommit works only with **AWS CLI versions 1.7.38** and later. As a best practice, install or upgrade the AWS CLI to the latest version available. To determine which version of the AWS CLI you have installed, run the aws --version command.

## Step 5 :- Configure AWS CLI With your SSO Credential

We need to bookmark our sso signup link . Example is  following  below .

 **https://my-sso-portal.awsapps.com/start**

Copy paste the link in your browser and select your account .Then select your account it will give you two option management Console and programmatic  access . Here we need to click on programmatic access . agin it will give you two options like MAC/Linux and windows . Here we need to select windows,  because we are using windows . copy environment credential and paste it on CMD

## Step 6: Connect to the CodeCommit Console and Clone the Repository

If an administrator has already sent you the name and connection details for the CodeCommit repository, you can skip this step and clone the repository directly.

Open the CodeCommit console at **https://console.aws.amazon.com/codesuite/codecommit/home.**

In the region selector, choose the AWS Region where the repository was created. Repositories are specific to an AWS Region.Find the repository you want to connect to from the list and choose it. Choose Clone URL, and then choose the protocol you want to use when cloning or connecting to the repository. This copies the clone URL.

> git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo

repository: bbsahoobyndr/aws-hub

repo_name: bbsahoobyndr/aws-hub


text:
## General info

Portfolio

## Technologies and tools

Project is created with:

- HTML5
- React.js v16.13.0
- Styled Components v5.1.0
- MobileFirst
- RWD
- Yarn v1.22.4
- Webpack v4.38.0
- ESLint v6.8.0
- Prettier v2.0.5

## Status

finieshed

## Setup

To run this project, install it locally using yarn:

```
$ cd ../lorem
$ yarn install
$ yarn dev
```

repository: krystianbialy/portfolio

repo_name: krystianbialy/portfolio


text:
## Advanced Controller Specs

Once you uncomment the `before_action` to authenticate ContactsController, everything will break. We need a way to mimic the authorization process in the controller specs to continue.

We also need to detect the logged-in user's role. We test this at the controller level.

#### Testing the admin and user roles

First, create a new factory for users.

> spec/factories/users.rb

    FactoryGirl.define do
      factory :user do
        email { Faker::Internet.email }
        password 'secret'
        password_confirmation 'secret'

> Child factory for admin access.

        factory :admin do
          admin true
        end
      end
    end

> Test controller via spec/controllers/contacts_controller_spec.rb. Wrap all the existing spec examples inside a `describe` and mimic logging in as an administratrao.

    describe "administrator access" do
      before :each do
        user = create(:admin)
        session[:user_id] = user.id
      end

      describe "GET #index" do
        it "populates an array of contacts"
          get :index
          expect(assigns(:contacts)).to match_array [@contact]
        end

        it "renders the :index template" do
          get :index
          expect(response).to render_template :index
        end
      end

      describe "GET #show" do
        it "assigns the requested contact to @contact" do
          get :show, id: @contact
          expect(assigns(:contact)).to eq @contact
        end

        it "renders the :show template" do
          get :show, id: @contact
          expect(response).to render_template :show
        end
      end
    end

> Simulating a user login is essentially the same as an admin

    before :each do
      user = create(:user)
      session[:user_id] = user.id
    end

#### Testing the guest role

    describe "guest access" do

      describe "GET #new do
        it "requires login"
          get :new
          expect(response).to redirect_to login_url
        end
      end

      describe "GET #edit" do
        it "requires login"
          contact = create(:contact)
          get :edit, id: contact
          expect(response).to redirect_to login_url
        end
      end

      describe "POST #create" do
        it "requires login"
          post :create, id: create(:contact), contact: attributes_for(:contact)
          expect(response).to redirect_to login_url
        end
      end

      describe "PUT #update" do
        it "requires login"
          post :update, id: create(:contact), contact: attributes_for(:contact)
          expect(response).to redirect_to login_url
        end
      end

      describe "DELETE #destroy" do
        it "requires login"
          delete :destroy, id: create(:contact)
          expect(response).to redirect_to login_url
        end
      end

#### Controller spec cleanup

> spec/controllers/contacts_controller_spec.rb: RSpec shared examples.

    shared_examples("public access to contacts") do
      describe "GET #index" do

        it "populates an array of contacts"
          get :index
          expect(assigns(:contacts)).to match_array [@contact]
        end

        it "renders the :index template" do
          get :index
          expect(response).to render_template :index
        end
      end

      describe "GET #show" do
        it "assigns the requested contact to @contact" do
          get :show, id: @contact
          expect(assigns(:contact)).to eq @contact
        end

        it "renders the :show template" do
          get :show, id: @contact
          expect(response).to render_template :show
        end
      end
    end

Then include them in any describe or contact block.

    describe "guest_access" do
      it_behaves_like "public access to contacts"
    end

    describe "admin access to contacts" do
      before :each do
        set_user_session(create(:admin))
      end

      it_behaves_like "public access to contacts"
      it_behaves_like "full access to contacts"
    end

#### Helper Macros

> spec/support/login_macros.rb

    module LoginMacros
      def set_user_session(user)
        session[:user_id] = user.id
      end
    end

> Automatically include it in spec_helper.rb

    Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }

    RSpec.configure do |config|
      ...

      config.include LoginMacros
    end

> Example test

    describe "admin access" do
      before :each do
        set_user_session create(:admin)
      end
      ...

#### Custom RSpec matcher

> spec/support/matchers/require_login.rb

    RSpec::Matchers.define :require_login do |expected|

> This is what we expect to happen when you replace to expect(something). Need to load full path.

      match do |actual|
        expect(actual).to redirect_to Rails.application.routes.url_helpers.login_path
      end

> Write helper messags for both matching and non-matching.

      failure_message_for_should do |actual|
        "expected to require login to access the method"
      end

      failure_message_for_should_not do |actual|
        "expected not to reqire login to access the method"
      end

      description do
        "redirect to the login form"
      end
    end

> spec/controllers/contacts_controller_spec.rb

    describe "GET #new" do
      it "requires login"
        get :new
        expect(response).to require_login
      end
    end

## Feature specs

Dependencies: `faker`, `capybara`, `database_cleaner`, `launchy`.

> spec/features/uses_spec.rb

    feature "User management" do
      scenario "adds a new user" do
        admin = create(:admin)

        visit_root_path
        click_link "Log In"
        fill_in "Email" with admin.email
        fill_in "Password" with admin.password
        click_button "Log In"

        visit root_path
        expect{
          click_link "Users"
          click_link "New User"
          fill_in "Email", with<EMAIL_ADDRESS>          find("#password").fill_in "Password", with: "secret123"
          find("#password_confirmation").fill_in "Password confirmation", with: "secret123"
          click_button "Create User"
        }.to change (User, :count).by(1)

        expect(current_path).to eq users_path
        expect(page).to have_content "New user created"
        within "h1" do
          expect(page).to have_content "Users"
        end
        expect(page).to have_content<EMAIL_ADDRESS>      end
    end

#### Refactoring

> spec/support/login_macros.rb

    module LoginMacros
      def sign_in(user)
        visit_root_path
        click_link "Log In"
        fill_in "Email" with admin.email
        fill_in "Password" with admin.password
        click_button "Log In"
      end
    end

> spec/features/users_spec.rb

    feature "User management" do
      scenario "adds a new user" do
        admin = create(:admin)
        sign_in :admin
        ...
      end
    end

### Including JS implementations

> spec/features/about_us_spec.rb. Include Selenium for JS stuff.

    feature "About BigCo modal" do

> add js: true

      scenario "toggles display of the modal about display", js: true do
        ...

> Simulate a modal

        click_link "About Us"
        expect(page).to have_content "About BigCo"
        expect(pag).to have_content "BigCo bla bla"

        within "#about_us" do
          click_button "Close"
        end

        expect(page).to_not have_content "About BigCo"
        expect(page).to_not have_content "BigCo bla bla"

      end
    end

Fix Database using Database cleaner and AR [TODO].

Capybara drivers: Poltergeist, capybara-webkit.

## Speeding up specs

#### let() and it()

`let()` caches the value without assigning it to an instance variable, and it is lazily evaluated (doesn't get assigned until a spec calls upon it.)

> spec/controllers/contacts_controllers_spec.rb

    describe ContactsController do
      let (:contact) do
        create(:contact, firstname: "Lawrench", lastname: "Smith")
      end
      ...

`let!` also forces contact to be assigned to each example.

`subject {}` and `it {} ` and `specify {} ` lets you declare a subject to reuse implicitly.

    subject { build(:user, firstname: "John", lastname: "Doe") }
    is { should_be_named "John Doe" }

#### Shoulda

Use `shoulda-matchers` gem in the `:test` group of the Gemfile, you get new matchers.

    subject { Contact.new }
    specify { should validate_presence_of :firstname }

#### Mocks and stubs

A *mock* is a some object that represents a real object, for testing purposes. Test doubles. They are like Factory Girl, except they don't touch the DB.

A *stub* overrides a method call on a given object and returns a predetermined value for it. It is a fake method which will return a real result for the tests.

[TODO]

#### Automation with Guard and Spork

Guard is a filewatcher `bundle exec guard init rspec` to set it up.

- `notification: false`. Specs run on a terminal window instead of receiving pop-ups.
- `all_on_start: false` and `all_on_pass: false`. Run tests before committing changes.
- Run feature specs upon changes to views.
- `bundle exec guard` to start Guard.

> Guardfile

    guard 'rspec', version: 2, cli: '--color --format documentation', all_on_start: false, all_after_pass: false

Guard is not just for watching and running your specs. It can streamline CSS compilation, run Cucumber features, run code metrics, reboot dev servers.

Gemz: Guard, Spork, Zeus, Commands, Spring.

#### Tags

    it "processes a credit card", focus: true do
      ...
    end

    $ bundle exec rspec . --tag focus

> spec_helper

    RSpec.configure do |c|
      c.filter_run focus: true
      c.filter_run_excluding_slow: true
    end

Other speedy solution: Mark a test as `pending` instead of commenting it.

## Testing the Rest

#### Email Delivery: `emailspec`

> spec_helper

    require "email_spec"
    config.include(EmailSpec::Helpers)
    config.include(EmailSpec::Matchers)

    expect(open_last_email).to be_delivered_from sender.email
    expect(open_last_email).to have_reply_to sender.email
    expect(open_last_email).to be_delivered_to recipient.email
    expect(open_last_email).to have_subject message.subject
    expect(open_last_email).to have_body_text message.message

#### File uploads

Rails provides a means of uploading files from `fixtures`, but you can place a dummy file into the `spec/factories` directory.

    FactoryGirl.define do
      factory :user do
        sequence(:username) { |n| "user#{n}" }
        password "secret"
        avatar { File.new("#{Rails.root}/spec/factories/avatar.png") }
      end
    end

[TODO]

##### Testing the time: `timecop` [TODO]

#### Testing web services: Railscasts Fakeweb/VCR

#### Testing rake [TODO]

## Towards TDD

#### Defining a feature: scenarios
- As a user, I want to add a news release so that the world can see how great our company is.
- As a site visitor (guest), I want to read news articles so I can learn more about the company.

> spec/features/news_releases_spec.rb

    feature "News releases" do
      context "as a user" do
        scenario "adds a news release"
      end

      context "as a guest" do
        scenario "reads a news release"
      end
    end

Add content.

> spec/features/news_releases_spec.rb

    feature "News releases" do
      context "as a user" do
        scenario "adds a news release" do
          ... sign in

          expect(page).to_not have_content "BigCo switches to Rails"
          click_link "Add News Release"
          fill_in "Date", with: "2013-07-29"
          fill_in "Title", with "BigCo switches to Rails"
          fill_in "Body", with "BigCo has released ..."
          click_button "Create News Release"

          expect(current_path).to eq news_release _path
          expect(page).to have_content "Successfully created news release."
          expect(page).to have_content "2013-07-29: BigCo switches to Rails"

        end
      end

Then, you can edit spec_helper to run only the focused tests.

    Spork.prefork do
      RSpec.configure do |config|
        config.filter_run focus: true
      end
    end

    feature "News releases", focus: true do

Rails should then complain about not having the path.

Refactor model and add testing expectations in it.

## Parting Advice
- Practice testing the small things. Test low hanging fruit first.
- Be aware of what you're doing.
- Short spikes are ok: Write production code only after you've written the specs.
- Write a little, test a little is also ok.
- Feature specs first then move to the inner levels.
- Make time for testing
- Use tests to make the code better via the Refactor phase.

license: Unlicense

repository: daryllxd/lifelong-learning

gha_language: Elixir

gha_license_id: Unlicense

repo_name: daryllxd/lifelong-learning


text:
React Searchkit based search developed as open source project for city of Turku and later for wider use. It is intented to be used as event calendar search and will be integrated to Drupal.

Installation:

- Install Node.js / NPM 3.x or newer with your preferred package manager or with the official binaries (https://nodejs.org/en/download/).
- Install TSD(Yes, it's deprecated. Will be fixed later.):
	- `npm install tsd -g`
- `tsd install`
- `npm install`
- `cp kada-config.example.js kada-config.js`
  - Edit the kada-config.js file, enter your Elasticsearch server url(and port if necessary)
- `npm start`
- visit http://localhost:3000 (This is current default, will change later).

Also installation of Elastic Search 2.x(for now, later 5.x) is recommended if using the Kadasearch-Drupal module for indexing(not published yet).

## Packing a new dist

- Make sure you have run `npm install` so webpack is installed and `npm run build`

repository: City-of-Turku/kada-elastic-events

gha_language: TypeScript

repo_name: City-of-Turku/kada-elastic-events


text:
# Contributing

We'd love for you to contribute to gitlint. Thanks for your interest!
The [source-code and issue tracker](https://github.com/jorisroovers/gitlint) are hosted on Github.

Often it takes a while for us (well, actually just [me](https://github.com/jorisroovers)) to get back to you
(sometimes up to a few months, this is a hobby project), but rest assured that we read your message and appreciate
your interest!
We maintain a [loose roadmap on our wiki](https://github.com/jorisroovers/gitlint/wiki/Roadmap), but
that's open to a lot of change and input.

## Guidelines

When contributing code, please consider all the parts that are typically required:

- [Unit tests](https://github.com/jorisroovers/gitlint/tree/main/gitlint/tests) (automatically
  [enforced by CI](https://github.com/jorisroovers/gitlint/actions)). Please consider writing
  new ones for your functionality, not only updating existing ones to make the build pass.
- [Integration tests](https://github.com/jorisroovers/gitlint/tree/main/qa) (also automatically
  [enforced by CI](https://github.com/jorisroovers/gitlint/actions)). Again, please consider writing new ones
  for your functionality, not only updating existing ones to make the build pass.
- [Documentation](https://github.com/jorisroovers/gitlint/tree/main/docs)

Since we want to maintain a high standard of quality, all of these things will have to be done regardless before code
can make it as part of a release. If you can already include them as part of your PR, it's a huge timesaver for us
and it's likely that your PR will be merged and released a lot sooner. Thanks!

!!! Important
    **On the topic of releases**: Gitlint releases typically go out when there's either enough new features and fixes
    to make it worthwhile or when there's a critical fix for a bug that fundamentally breaks gitlint. While the amount
    of overhead of doing a release isn't huge, it's also not zero. In practice this means that it might take weeks
    or months before merged code actually gets released - we know that can be frustrating but please understand it's
    a well-considered trade-off based on available time.

## Development

There is a Vagrantfile (Ubuntu) in this repository that can be used for development.
It comes pre-installed with all Python versions that gitlint supports.
```sh
vagrant up
vagrant ssh
```

Or you can choose to use your local environment:

```sh
python -m venv .venv
. .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt -r test-requirements.txt -r doc-requirements.txt
python setup.py develop
```

To run tests:
```sh
./run_tests.sh                       # run unit tests and print test coverage
./run_tests.sh gitlint/tests/rules/test_body_rules.py::BodyRuleTests::test_body_missing # run a single test
./run_tests.sh --no-coverage         # run unit tests without test coverage
./run_tests.sh --collect-only --no-coverage  # Only collect, don't run unit tests
./run_tests.sh --integration         # Run integration tests (requires that you have gitlint installed)
./run_tests.sh --build               # Run build tests (=build python package)
./run_tests.sh --pep8                # pep8 checks
./run_tests.sh --stats               # print some code stats
./run_tests.sh --git                 # inception: run gitlint against itself
./run_tests.sh --lint                # run pylint checks
./run_tests.sh --all                 # Run unit, integration, pep8 and gitlint checks
```

The `Vagrantfile` comes with `virtualenv`s for python 3.6, 3.7, 3.8, 3.9 and pypy3.6.
You can easily run tests against specific python environments by using the following commands *inside* of the Vagrant VM:
```sh
./run_tests.sh --envs 36               # Run the unit tests against Python 3.6
./run_tests.sh --envs 36,37,pypy36     # Run the unit tests against Python 3.6, Python 3.7 and Pypy3.6
./run_tests.sh --envs 36,37 --pep8     # Run pep8 checks against Python 3.6 and Python 3.7 (also works for --git, --integration, --pep8, --stats and --lint.
./run_tests.sh --envs all --all        # Run all tests against all environments
./run_tests.sh --all-env --all         # Idem: Run all tests against all environments
```

!!! important
    Gitlint commits and pull requests are gated on all of our tests and checks.

## Packaging

To see the package description in HTML format
```sh
pip install docutils
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
python setup.py --long-description | rst2html.py > output.html
```

## Documentation
We use [mkdocs](https://www.mkdocs.org/) for generating our documentation from markdown.

To use it, do the following outside of the vagrant box (on your host machine):
```sh
pip install -r doc-requirements.txt # install doc requirements
mkdocs serve
```

Then access the documentation website on your host machine on [http://localhost:8000]().

## Tools
We keep a small set of scripts in the `tools/` directory:

```sh
tools/create-test-repo.sh            # Create a test git repo in your /tmp directory
tools/windows/create-test-repo.bat   # Windows: create git test repo
tools/windows/run_tests.bat          # Windows run unit tests
```

## Contrib rules
Since gitlint 0.12.0, we support [Contrib rules](../contrib_rules): community contributed rules that are part of gitlint
itself. Thanks for considering to add a new one to gitlint!

Before starting, please read all the other documentation on this page about contributing first.
Then, we suggest taking the following approach to add a Contrib rule:

1. **Write your rule as a [user-defined rule](../user_defined_rules)**. In terms of code, Contrib rules are identical to
   user-defined rules, they just happen to have their code sit within the gitlint codebase itself.
2. **Add your user-defined rule to gitlint**. You should put your file(s) in the [gitlint/contrib/rules](https://github.com/jorisroovers/gitlint/tree/main/gitlint/contrib/rules) directory.
3. **Write unit tests**. The gitlint codebase contains [Contrib rule test files you can copy and modify](https://github.com/jorisroovers/gitlint/tree/main/gitlint/tests/contrib/rules).
4. **Write documentation**. In particular, you should update the [gitlint/docs/contrib_rules.md](https://github.com/jorisroovers/gitlint/blob/main/docs/contrib_rules.md) file with details on your Contrib rule.
5. **Create a Pull Request**: code review typically requires a bit of back and forth. Thanks for your contribution!

### Contrib rule requirements
If you follow the steps above and follow the existing gitlint conventions wrt naming things, you should already be fairly close to done.

In case you're looking for a slightly more formal spec, here's what gitlint requires of Contrib rules.

- Since Contrib rules are really just user-defined rules that live within the gitlint code-base, all the [user-rule requirements](../user_defined_rules/#rule-requirements) also apply to Contrib rules.
- All contrib rules **must** have associated unit tests. We *sort of* enforce this by a unit test that verifies that there's a
  test file for each contrib file.
- All contrib rules **must** have names that start with `contrib-`. This is to easily distinguish them from default gitlint rules.
- All contrib rule ids **must** start with `CT` (for LineRules targeting the title), `CB` (for LineRules targeting the body) or `CC` (for CommitRules). Again, this is to easily distinguish them from default gitlint rules.
- All contrib rules **must** have unique names and ids.
- You **can** add multiple rule classes to the same file, but classes **should** be logically grouped together in a single file that implements related rules.
- Contrib rules **should** be meaningfully different from one another. If a behavior change or tweak can be added to an existing rule by adding options, that should be considered first. However, large [god classes](https://en.wikipedia.org/wiki/God_object) that implement multiple rules in a single class should obviously also be avoided.
- Contrib rules **should** use [options](../user_defined_rules/#options) to make rules configurable.

repository: Minipada/gitlint

repo_name: Minipada/gitlint


text:
<IP_ADDRESS>
======

- @mossprescott
    - Re-uploading to clean up an extraneous file in the bundle.

<IP_ADDRESS>
======

- @mossprescott
    - Improved usability of generated record types by stripping common prefixes when deriving
      type parameter names from field names.

1.1.0
======

- @mossprescott
    - Added Template Haskell splices to generate polymorphic types and "simple" and "Uninterpolated"
      synonyms: `withUninterpolated`, `withPolymorphic`, and `deriveUninterpolated`.
- Note: this release does not contain any breaking changes, and should have been only a minor
  version bump (i.e. 1.0.1).

1.0.0
=======

- @asariley
    - Removed internal symbols `noEnv`, `varNameAllowed`, `maybeGen` from `Data.Interpolation`
    - Added `instance Arbitrary1 Uninterpolated`

0.1.2
=======

- @asariley
    - Updated `TemplateKey` arbitrary instance to only include alpha-numeric and underscore characters.

repository: tvision-insights/interpolator

gha_language: Haskell

repo_name: tvision-insights/interpolator


text:
## How to contribute to FabricElements

* Fork the repository and clone it locally.
* Install dependencies with `npm install` or `yarn install`.
* Create your feature branch running `git checkout -b my-new-feature`.
* Check that tests are passing running `polymer test`.
* Update types `npm run update-types`
* Commit your changes running `git commit -m 'Add some feature'`.
* Push to the branch running `git push origin my-new-feature`.
* Submit a pull request.
* Wait for response from one of the team members.

## Filing Issues

**If you are filing an issue to request a feature**, please provide a clear description of the feature. It can be helpful to describe answers to the following questions:

* Who will use the feature?
* When will they use the feature?
* What is the user’s goal?

Or... If you are filing an issue to report a bug, be sure to provide:

* A clear description of the bug and related expectations.
* A reduced test case that demonstrates the problem.

## Submitting Pull Requests

**Before creating a pull request**, ensure that an issue exists for the corresponding change in the PR that you intend to make. If an issue does not exist, please create one providing:

* A reference to the corresponding issue or issues that will be closed by the pull request.
* A succinct description of the design used to fix any related issues.
* At least one test for each bug fixed or feature added as part of the pull request.

If a proposed change contains multiple commits, please **squash commits to as few as is necessary** to succinctly express the change.

We really appreciate your interest in contributing and improving the project.

repository: FabricElements/skeleton-carousel

repo_name: FabricElements/skeleton-carousel


text:
## U.S. Opiate Prescriptions/Overdoses [[view code]](http://nbviewer.jupyter.org/github/marcotav/machine-learning-classification-projects/blob/master/analysis-of-opioid-prescription-problem/notebooks/opioid-prescription-problem.ipynb)
![image title](https://img.shields.io/badge/work-in%20progress-blue.svg) ![image title](https://img.shields.io/badge/python-v3.6-green.svg) ![Image title](https://img.shields.io/badge/sklearn-0.19.1-orange.svg)

**The code is available [here](http://nbviewer.jupyter.org/github/marcotav/machine-learning-classification-projects/blob/master/analysis-of-opioid-prescription-problem/notebooks/opioid-prescription-problem.ipynb) or by clicking on the.**

  Brief Introduction  •
   Dataset  •
   Project Goal

## Brief Introduction

Accidental death by fatal drug overdose is a rising trend in the United States. What can you do to help? (From Kaggle)

## Dataset

This dataset contains:
- Summaries of prescription records for 250 common **opioid** and ***non-opioid*** drugs written by 25,000 unique licensed medical professionals in 2014 in the United States for citizens covered under Class D Medicare
- Metadata about the doctors themselves.
- This data here is in a format with 1 row per prescriber and 25,000 unique prescribers down to 25,000 to keep it manageable.
- The main data is in `prescriber-info.csv`.
- There is also `opioids.csv` that contains the names of all opioid drugs included in the data
- There is the file `overdoses.csv` that contains information on opioid related drug overdose fatalities.

The data consists of the following characteristics for each prescriber:
- NPI – unique National Provider Identifier number
- Gender - (M/F)
- State - U.S. State by abbreviation
- Credentials - set of initials indicative of medical degree
- Specialty - description of type of medicinal practice
- A long list of drugs with numeric values indicating the total number of prescriptions written for the year by that individual
- `Opioid.Prescriber` - a boolean label indicating whether or not that individual prescribed opiate drugs more than 10 times in the yearr

## Project Goal

The increase in overdose fatalities is a well-known problem, and the search for possible solutions is an ongoing effort. This dataset is can be used to detect sources of significant quantities of opiate prescriptions.


text:
# BatchUpsertInstrumentPropertiesResponse

## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**values** | **dict(str, list[ModelProperty])** | The properties that have been successfully upserted |
**failed** | [**dict(str, ErrorDetail)**](ErrorDetail.md) | The properties that could not be upserted along with a reason for their failure. |
**as_at_date** | **datetime** | The as-at datetime at which properties were created or updated. |
**links** | [**list[Link]**](Link.md) |  | [optional]

[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

repository: finbourne/lusid-sdk-python

repo_name: finbourne/lusid-sdk-python


text:
# HTMLViewer

[![PyPI version shields.io](https://img.shields.io/pypi/v/htmlviewer.svg)](https://pypi.python.org/pypi/htmlviewer/)
[![PyPI license](https://img.shields.io/pypi/l/htmlviewer.svg)](https://pypi.python.org/pypi/htmlviewer/)

Table viewer for relational databases, without using HandsOnTable.

Actually, any list of JSON-serializable dictionaries can be viewed.

This is the remake of [pyhandsontable](https://github.com/patarapolw/pyhandsontable).

## Installation

```
pip install htmlviewer
```

## Usage

In Jupyter Notebook,

```python
>>> from htmlviewer import PagedViewer
>>> viewer = PagedViewer(LIST_OF_RECORDS, **kwargs)
>>> viewer
'A table is shown on Jupyter Notebook.'
>>> viewer.view(-1)
'The last page is shown.'
>>> viewer.previous()
'The previous page (i-1) is shown.'
>>> viewer.next()
'The next page (i+1) is shown.
```

Acceptable kwargs are,

```python
{
    'maxColWidth': 200,  # Maximum column width for all columns.
    'minColWidth': '8em',
    'maxRowHeight': 500,  # Maximum row height for all rows.,
    'colWidth': {
        'imageField': 500
    },
    'renderer': {
        'imageField': 'html'  # Set the field to allow HTML.
    }
    'rowHeader': 'id'  # Selecting a custom column to be the first row, aka rowHeader.
}
```

## Embedding images, markdown and HTML.

This can be done in Python side, by converting everything to HTML. Just use [any markdown for Python library](https://github.com/Python-Markdown/markdown).

```python
from markdown import markdown
import base64
image_html = f'<img src="{image_url}" width=100 />'
image_html2 = f'<img src="data:image/png;base64,{base64.b64encode(image_bytes).decode()}" />'
markdown_html = markdown(markdown_raw)
```

Any then,

```python
PagedViewer(LIST_OF_RECORDS, renderers={
    "image_field": "html",
    "html_field": "html",
    "markdown_field": "html"
})
```

## Screenshots

![0.png](/screenshots/0.png)

## Related projects

- [pyhandsontable](https://github.com/patarapolw/pyhandsontable) - View a list of JSON-serializable dictionaries or a 2-D array, in HandsOnTable, in Jupyter Notebook.

repository: patarapolw/htmlviewer

repo_name: patarapolw/htmlviewer


text:
![image](images/AddUserToGroup/EC-WLSAddUserToGroupStatus2.png)

### Output

After the job runs, you can view the results on the Job Details page in CloudBees CD. The status of the page was checked successfully.

![image](images/AddUserToGroup/EC-WLSAddUserToGroupStatus3.png)

In the **AddUserToGroup** step, click the Log button to see the diagnostic information:

![image](images/AddUserToGroup/EC-WLSAddUserToGroupStatus4.png)

**Note:** In the URL, the protocol is http. For this procedure, CloudBees CD uses an internal method to test the status of the page URLs with the original http protocol used in the web browsers.

repository: electric-cloud/EC-WebLogic

gha_language: Perl

repo_name: electric-cloud/EC-WebLogic


text:
View compartments
=================

Add support for grouping views.
See [GRAILS-1243](http://jira.codehaus.org/browse/GRAILS-1243) for background information.

Example
-------

    class UserAdminController {

        static compartment = "admin"

        // The view should be placed in grails-app/views/admin/userAdmin/index.gsp
        def index = {
            // ...
        }

    }

repository: kimble/grails-view-compartments

repo_name: kimble/grails-view-compartments


text:
# Fusarium equiseti (Corda) Sacc., 1886 SPECIES

#### Status
SYNONYM

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
Syll. fung. (Abellini) 4: 707 (1886)

#### Original name
Selenosporium equiseti Corda, 1838

### Remarks
null

repository: mdoering/backbone

path: /life/Fungi/Ascomycota/Sordariomycetes/Hypocreales/Nectriaceae/Gibberella/Gibberella intricans/ Syn. Fusarium equiseti/README.md

repo_name: mdoering/backbone