text:
# Virtual folder

## Introduction
This "Virtual Folder" provides a unified access mechanism to files stored in a variety of locations including the local file system, and B2DROP and other cloud storage facilities. It is developed in work package WP6 by the [West-Life H2020 project](https://west-life.eu), which is running from 2015 to 2018. It provides application level services usable for structural biology use cases and follows [the structural biology data lifecycle](http://internal-wiki.west-life.eu/w/images/9/9c/Assessment_of_the_life_cycle_of_structural_data_and_comparison_with_other_scientific_data.docx). Data management work package WP6 build on existing infrastructure for storing and accessing data to create a "Virtual Folder".
Full documentation is rendered in [HTML docs](https://h2020-westlife-eu.gitbooks.io/virtual-folder-docs/content/) or [PDF docs](https://www.gitbook.com/download/pdf/book/h2020-westlife-eu/virtual-folder-docs)

## Usage

A public installation of the  Virtual Folder is available at [West-Life portal](https://portal.west-life.eu/virtualfolder).
Follow [User's guide](doc/users-guide.md) for further details how to use it.

## Installation

Virtual Folder can be installed:
1. from source codes
2. from binaries at cernvm-fs
3. from cloud template, contextualized to binaries at cernvm-fs

For all the installation options follow: [Installation guide](doc/installation-guide.md).

### Brief installation instruction from source codes
Requirement: VirtualBox (5.1.22 recommended, newer not guaranteed to work), Vagrant (1.9.6 recommended, newer not guaranteed to work)
Minimal: 1 CPU, 2 GB RAM, 50GB disk space.
OS: Any which supported by VirtualBox or Vagrant (Windows 7 and Ubuntu 16.04 tested)

```bash
git clone https://github.com/h2020-westlife-eu/west-life-wp6

cd west-life-wp6

vagrant up
```

The new virtual machine can be accessed via web browser `http://[vm.ip.address]:[port]/`
By default, `http://localhost:8080`
Virtual folder provides WEBDAV API at `http://[vm.ip.address]:[port]/webdav` e.g. `http://localhost:8080/webdav`

Inside VM, the files of the current working directory of host are mounted into /vagrant
and the repositories of virtual folder are accessible at /srv/virtualfolder

## Integration

The functionality of the Virtual Folder can be integrated into other portal or web application.
The recommended method is to link the existing component using cross-document messaging mechanism - e.g.
for picking a file from Virtual Folder by using the File Picker component.

Follow [Integration guide](doc/integration-guide.md) for further details.

## Development

In order to test, contribute to source codes and prepare  virtual machine environment with source codes, follow [Development installation](doc/installation-guide/development-installation.md). Documents are maintained inside /docs folder and built from dev-docs branch, occasionally merged to master branch; in sync with [Gitbook](https://www.gitbook.com/book/h2020-westlife-eu/virtual-folder-docs/details)
## Releases
[![DOI](https://zenodo.org/badge/55687671.svg)](https://zenodo.org/badge/latestdoi/55687671)
## Release Notes
  * 18.02 - docs move to new repository https://github.com/h2020-westlife-eu/westlife-docs
  * 17.08 - UI animated GIF indicator, CERIF prototype implementation
  * 28/06/2017 - UI improvement, docs in sync with gitbook and /doc folder in dev-docs branch
  * 23/06/2017 - added support for source code installation/binary installation
  * 01/05/2017 - Added Dataset demo integrates some web PDB components to visualize features of PDB and UniProt entries
  * 01/04/2017 - Added Upload Dir Picker component and updated integration guide
  * 07/03/2017 - public deployment integrated with SSO authentication ARIA at www.structuralbiology.eu
  * 25/11/2016 - Updated vagrant boxes to use uCernVM 2.7.7 bootloader, updated OVA images in https://appdb.egi.eu/store/vappliance/d6.1.virtualfoldervm/vaversion/latest and vagrant boxes, do "vagrant box update", bug fixes, consolidated initial web page and design, fixed/added background services
  * 26/10/2016 - moved VagrantFile to new repository https://github.com/h2020-westlife-eu/wp6-vm, updated base box with uCernVM2.7.4 bootloader for CernVM 4 fixes security bug 'dirty COW' and aufs bug in kernel, https://atlas.hashicorp.com/westlife-eu,
  * tested on Windows 7 64 bit, vagrant 1.8.6 + VirtualBox 5.1.6, vagrant 1.8.1, 1.8.4 + VirtualBox 5.0.26, note vagrant < 1.8.6 requires VirtualBox 5.0.x, doesn't require VirtualBox extension pack, download from https://www.virtualbox.org/wiki/Download_Old_Builds_5_0
  * tested on  Ubuntu 14.04 LTS, default vagrant 1.4.3 needs to be updated to 1.8.6), default VirtualBox 4.3.36 works


text:
# Amazon SNS

## SNS-Amazon Simple Notification Service

 a managed service that provides message delivery from publishers to subscribers

## Features
SNS provides the following features:

- Application-to-application messaging
- Application-to-person notifications
- Standard and FIFO topics
- Message durability
- Message archiving and analytics
- Message attributes
- Message filtering
- Message security

##  Amazon SNS services:
- `Amazon SQS`
a secure, durable, and available hosted queue that lets you integrate and decouple distributed software systems and components.
1. Amazon SNS provides dead-letter queues powered by Amazon SQS for undeliverable messages.
2. You can subscribe an Amazon SQS queue to an SNS topic.
3. You can subscribe an Amazon SQS FIFO queue to an Amazon SNS FIFO topic to receive messages in order and with no duplicates.
- `AWS Lambda`
 enables you to build applications that respond quickly to new information.
- `AWS Identity and Access Management (IAM)`
securely control access to AWS resources for your users. Use IAM to control who can use your Amazon SNS topics (authentication)
- `AWS CloudFormation`
model and set up your AWS resources. Create a template that describes the AWS resources that you want, including Amazon SNS topics and subscriptions.

## Accessing Amazon SNS
configure and manage SNS topics and subscriptions using:
- Amazon SNS console
provides a convenient user interface for creating topics and subscriptions, sending and receiving messages, and monitoring events and logs.
-  command line tools
The AWS Command Line Interface (AWS CLI) gives you direct access to the Amazon SNS API for advanced configuration and automation use cases.
 - AWS SDKs.

license: MIT

branch_name: refs/heads/main

extension: md

license_type: permissive


text:
# mlp

A somewhat simple [Multilayer perceptron](https://en.wikipedia.org/wiki/Multilayer_perceptron) written in Kotlin I did for college.

It has one hidden layer with a configurable amount of neurons. It learns csv data in the `resources` folder, the one to learn can be changed in the `Main` class.

It can either learn until a certain error is reached or if a predefined amount of time has passed. After that a graph of the error function is shown.

I do not intend to work on this project any further. Use it however you like.

repository: rubengees/mlp

branch_name: refs/heads/master

repo_name: rubengees/mlp


text:
<!--~ Do not edit this derived file! See gatein-portal-quickstarts-parent/src/main/freemarker/gatein-sample-portal/README.md.ftl ~-->

gatein-sample-portal: Sample Portal
============================
Author: Thomas Heute, Peter Palaga
Level: Beginner
Technologies: GateIn Portal, Portal Container
Summary: Sample Portal
Target Product: GateIn Portal 3.6
Source: <https://github.com/gatein/gatein-portal-quickstart>

What is it?
-----------

This project demonstrates a how to create a new Portal Container from scratch. It covers many aspects of new Portal Container
creation, such as:

* Custom Home Page Portlet
* Translation resource bundles
* Pages and Site Layouts
* Navigation Definitions
* Custom Sign In Page

For more details, see [Portal Containers](https://docs.jboss.org/author/display/GTNPORTAL36/GDG-Portal+Containers+and+Extensions) page of
GateIn Portal Developer Guide.

<!--~ Included from gatein-portal-quickstarts-parent/src/main/freemarker/include/system-requirements.md.ftl ~-->
System Requirements
-------------------

All you need to build this example project is Java 6.0 (Java SDK 1.6) or newer and Maven 3.0 or newer.

The project is designed to be deployed on GateIn Portal 3.6 running on JBoss AS.

<!--~ Included from gatein-portal-quickstarts-parent/src/main/freemarker/include/configure-maven.md.ftl ~-->
Configure Maven
---------------

You do not need to touch your settings.xml because of this quickstart. All necessary artifacts are available in public
repositories.

<!--~ Included from gatein-portal-quickstarts-parent/src/main/freemarker/include/build-and-deploy-portal-container-or-extension.md.ftl ~-->
Build and Deploy
----------------

Portal Extensions and Portal Containers are not hot-deployable. Therefore, it is not possible to deploy them using
`mvn jboss-as:deploy` or copying to the default JBoss AS deployment folder when
GateIn Portal is running. Instead of that you will need to:

1. Make sure that the Portal is not running, e.g. by running

        $JBOSS_HOME/bin/jboss-cli.sh --connect controller=<IP_ADDRESS>:9999 command=:shutdown

2. Open a command line and navigate to the root directory of this quickstart.
3. Run the following command to build the archive:

        mvn clean package

    This will create `ear/target/gatein-sample-portal.ear`.
4. Copy this file into the GateIn Portal extension deployment folder: `$JBOSS_HOME/gatein/extensions`

Setup JBoss Datasources and Security Policies
---------------------------------------------

In JBoss, Datasources and Security Policies need to be defined on the level of Application Server and they
cannot[*] be defined within EARs because otherwise centralized management would not be possible. This is
the reason why it is not enough just to deploy `gatein-sample-portal.ear`. You also need to define the
Datasources and Security Policies e.g. in `$BOSS_HOME/standalone/configuration/standalone.xml`.

The `standalone.xml` available in the out-of-the-box GateIn Portal 3.6 installation contains the needed pieces
of XML commented out. Please search for `Uncommented this when deploying gatein-sample-portal` in the file and uncomment the
necessary XML code blocks. Note that you should uncomment two `datasource`s and one `security-policy`.

> Except for editting standalone.xml, JBoss Datasources and Security Policies can be defined using CLI or JBoss Web Console as
> described in [JBoss AS 7.1 Admin Guide](https://docs.jboss.org/author/display/AS71/Admin+Guide#AdminGuide-Datasources)

[*] Datasources can be defined in EARs but such ones are not managed, see
[JBoss AS 7.1 Admin Guide](https://docs.jboss.org/author/display/AS71/Admin+Guide#AdminGuide-Deploymentof%5Cds.xmlfiles).

Access the Sample Portal
------------------------

To ensure that the Sample Portal has been deployed successfully visit
[http://<IP_ADDRESS>:8080/sample-portal](http://<IP_ADDRESS>:8080/sample-portal/)) with your web browser.

<!--~ Included from gatein-portal-quickstarts-parent/src/main/freemarker/include/start-the-portal.md.ftl ~-->
Start the Portal
----------------

1. Open a command line and navigate to the root of the JBoss server directory.
2. The following shows the command line to start the server with the web profile:

        For Linux:   JBOSS_HOME/bin/standalone.sh
        For Windows: JBOSS_HOME\bin\standalone.bat

Undeploy the Archive
--------------------

To delete a Portal Extension or Portal Container:

1. Delete `JBOSS_HOME/gatein/extensions/gatein-sample-portal.ear`
2. Restart GateIn Portal

Please note that the content written to the database by the Extension or Portal Container (such as adding new pages) is not
reversible.

Use JBoss Developer Studio or Eclipse to Run this Quickstart
------------------------------------------------------------

Portal Extensions and Portal Containers are not directly deployable from JBoss Developer Studio nor Eclipse at this time.
See Build and Deploy section above for an alternative.

<!--~ Included from gatein-portal-quickstarts-parent/src/main/freemarker/include/debug.md.ftl ~-->
Debug the Application
---------------------

If you want to debug the source code or look at the Javadocs of any library in the project, run either of the following
commands to pull them into your local repository. The IDE should then detect them.

    mvn dependency:sources
    mvn dependency:resolve -Dclassifier=javadoc

<!--~ Included from gatein-portal-quickstarts-parent/src/main/freemarker/include/feedback.md.ftl ~-->
Feedback
--------

Please post feedback on this quickstart or GateIn Portal on [GateIn Forums](https://community.jboss.org/en/gatein?view=discussions).

repository: rafabene/gatein-portal-quickstart

repo_name: rafabene/gatein-portal-quickstart


text:
---
layout: post
title: imgur
subtitle: Retrieve pictures from Imgur.
categories: image
tags: [imgur]
---

`Syntax: shisa imgur`

`<keywords...>`: The keywords used to search Giphy.

```
Type shisa help <command> for more info on a command. You can also type shisa help <category> for more info on a category.
```


text:
[![Build Status](https://github.com/SciML/ReservoirComputing.jl/workflows/CI/badge.svg)](https://github.com/SciML/ReservoirComputing.jl/actions?query=workflow%3ACI)
[![codecov](https://codecov.io/gh/SciML/ReservoirComputing.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/SciML/ReservoirComputing.jl)
[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](http://reservoir.sciml.ai/stable/)
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](http://reservoir.sciml.ai/dev/)

# ReservoirComputing.jl
Reservoir computing utilities
## Installation
Usual Julia package installation. Run on the Julia terminal:
```julia
julia> using Pkg
julia> Pkg.add("ReservoirComputing")
```
## Echo State Network example

This example and others are contained in the examples folder, which will be updated whenever I find new examples.
To show how to use some of the functions contained in ReservoirComputing.jl, we will illustrate it by means of an example also shown in the literature: reproducing the Lorenz attractor.
First, we have to define the Lorenz system and the parameters we are going to use:
```julia
using ParameterizedFunctions
using OrdinaryDiffEq
using ReservoirComputing

#lorenz system parameters
u0 = [1.0,0.0,0.0]
tspan = (0.0,200.0)
p = [10.0,28.0,8/3]
#define lorenz system
function lorenz(du,u,p,t)
    du[1] = p[1]*(u[2]-u[1])
    du[2] = u[1]*(p[2]-u[3]) - u[2]
    du[3] = u[1]*u[2] - p[3]*u[3]
end
#solve and take data
prob = ODEProblem(lorenz, u0, tspan, p)
sol = solve(prob, ABM54(), dt=0.02)
v = sol.u
data = Matrix(hcat(v...))
shift = 300
train_len = 5000
predict_len = 1250
train = data[:, shift:shift+train_len-1]
test = data[:, shift+train_len:shift+train_len+predict_len-1]
```
Now that we have the datam we can initialize the parameters for the echo state network:
```julia
approx_res_size = 300
radius = 1.2
degree = 6
activation = tanh
sigma = 0.1
beta = 0.0
alpha = 1.0
nla_type = NLAT2()
extended_states = false
```
Now it's time to initiate the echo state network:
```julia
esn = ESN(approx_res_size,
    train,
    degree,
    radius,
    activation = activation, #default = tanh
    alpha = alpha, #default = 1.0
    sigma = sigma, #default = 0.1
    nla_type = nla_type, #default = NLADefault()
    extended_states = extended_states #default = false
    )
```
The echo state network can now be trained and tested:
```julia
W_out = ESNtrain(esn, beta)
output = ESNpredict(esn, predict_len, W_out)
```
ouput is the matrix with the predicted trajectories that can be easily plotted
```julia
using Plots
plot(transpose(output),layout=(3,1), label="predicted")
plot!(transpose(test),layout=(3,1), label="actual")
```
![lorenz_coord](https://user-images.githubusercontent.com/10376688/81470264-42f5c800-91ea-11ea-98a2-a8a8d7d96155.png)

One can also visualize the phase space of the attractor and the comparison with the actual one:
```julia
plot(transpose(output)[:,1], transpose(output)[:,2], transpose(output)[:,3], label="predicted")
plot!(transpose(test)[:,1], transpose(test)[:,2], transpose(test)[:,3], label="actual")
```
![lorenz_attractor](https://user-images.githubusercontent.com/10376688/81470281-5a34b580-91ea-11ea-9eea-d2b266da19f4.png)

The results are in line with the literature.

The code is partly based on the original [paper](http://www.scholarpedia.org/article/Echo_state_network) by Jaeger, with a few construction changes found in the literature. The reservoir implementation is based on the code used in the following [paper](https://arxiv.org/pdf/1906.08829.pdf), as well as the non-linear transformation algorithms T1, T2, and T3, the first of which was introduced [here](https://www.researchgate.net/publication/322457145_Model-Free_Prediction_of_Large_Spatiotemporally_Chaotic_Systems_from_Data_A_Reservoir_Computing_Approach).

## To do list
* Documentation
* Implement variable number of outputs as in [this](https://aip.scitation.org/doi/10.1063/1.4979665) paper
* Implement different systems for the reservoir (like [this](https://arxiv.org/pdf/1410.0162.pdf) paper)


text:
# Middleware Chain

  Chain your node.js functions.

  Middleware Chain allows you to simply chain your syncronous / asyncronous middleware functions. It works in a very similar way to how express handles middleware.

  Works really well using the [consign](https://www.npmjs.com/package/consign) module to autoload your scripts.

## Usage

```
chain([context], chain);
```

```js
var chain = require('middleware-chain');

chain([ one, two, three ]);

// Optionally pass in context
var app = { hello: 'world' };
chain(app, [ one, two, three ]);
```

Please check out the [examples](examples) or [test folder](test) for more!

## Installation

```bash
$ npm install middleware-chain
```

## Features

  * Chain functions / middleware
  * Works with both asyncronous and syncronous functions
  * Brings structure to scripts with a lot of callbacks
  * Allows modifiable flow
  * Ability to pass in initial context
  * Chains are nestable
  * Ability for parrallel chains
  * Test driven
  * Fast, Light-weight with no external dependencies

## Context parameter

  The optional context object is passed in as the first parameter, it can be an object containing anything you'd like to access throughout your middleware chain.

## Chain parameter

  The chain parameter is required, it's an array containing functions to be called in order.

## Tests

  To run the test suite, first install the dependencies, then run `npm test`:

  ```bash
  $ npm install
  $ npm test
  ```

## Full Example

```js
var chain = require('middleware-chain');

function one(context, next) {
  setTimeout(function() {
    context.one = 'Hello';
    console.log('Hello from one', context);
    return next();
  }, 1000);
}

function two(context, next) {
  setTimeout(function() {
    context.two = 'Hello';
    console.log('Hello from two', context);
    return next();
  }, 1000);
}

function three(context, next) {
  setTimeout(function() {
    context.three = 'Hello';
    console.log('Hello from three', context);
  }, 1000);
}

chain([ one, two, three ]);
```

### Output

```bash
Hello from one
Hello from two
Hello from three
```

## License

  [MIT](LICENSE)

repository: tharlestsa/edu-go

repo_name: tharlestsa/edu-go


text:
# Helm push artifactory plugin

A Helm plugin to push helm charts to artifactory:

 * A version for artifactory of helm-push: https://github.com/chartmuseum/helm-push
 * Using a couple of things from Jfrog-cli-go: https://github.com/jfrog/jfrog-cli-go
 * And a bit of makefile magic from: https://github.com/helm/helm

## Install

__IMPORTANT: by default `helm plugin install` will install the version from the master branch, and that version is for Helm v2, if you are using Helm v3 please add `--version 1.0.1` (or the version you want to use) to your `helm plugin install` command. Also please always use the flag `--version` in your CI/CD system to avoid surprises when new changes are merged to master!__

Based on the version in `plugin.yaml`, release binary will be downloaded from GitHub:

```
$ helm plugin install https://github.com/belitre/helm-push-artifactory-plugin
Downloading and installing helm-push-artifactory v0.4.2 ...
https://github.com/belitre/helm-push-artifactory-plugin/releases/download/v0.4.2/helm-push-artifactory_v0.4.2_darwin_amd64.tar.gz
Installed plugin: push-artifactory
```

You can specify an specific version:
```
$ helm plugin install https://github.com/belitre/helm-push-artifactory-plugin --version v0.3.0
Downloading and installing helm-push-artifactory v0.3.0 ...
https://github.com/belitre/helm-push-artifactory-plugin/releases/download/v0.3.0/helm-push-artifactory_v0.3.0_darwin_amd64.tar.gz
Installed plugin: push-artifactory
```

You can also download on one of the compressed files from [here](https://github.com/belitre/helm-push-artifactory-plugin/releases) and just extract it in your `$HELM_HOME/plugins/`

__Important for windows users: I really don't know how to make the `helm plugin install` command work on Windows :D so please just download the zip and extract it on your `$HELM_HOME/plugins/ folder :)__

## Uninstall

```
helm plugin remove push-artifactory
Removed plugin: push-artifactory
```

## Local and virtual repositories

Artifactory has two types of repositories: local and virtual. Local repositories are the ones where you push the charts, but to get a chart you'll need to use a virtual repository!

__This plugin works with local repositories__, you can add them through the Helm CLI like a virtual repository and use it later instead of the URL. But remember: __you won't be able to get charts from a local repository__

Example:

* We can add our local repository with helm CLI:

    ```bash
    $ helm repo add --username myuser --password mypass my-local-repo https://artifactoryhost/my-local-repo
    "my-local-repo" has been added to your repositories
    ```

* We can use this repository later to push charts:

    ```bash
    $ helm push-artifactory mychart-0.3.2.tgz my-local-repo
    Pushing mychart-0.3.2.tgz to https://artifactoryhost/my-local-repo/mychart/mychart-0.3.2.tgz...
    Done.
    Reindex helm repository my-local-repo...
    Reindex of helm repo my-local-repo was scheduled to run.
    ```

* __We can't get the helm chart from a local repo:__

    ```bash
    $ helm fetch my-local-repo/mychart
    Error: Get local://mychart/mychart-0.3.2.tgz: unsupported protocol scheme "local"
    ```

* We can add the virtual repo and get the chart:

    ```bash
    $ helm repo add --username myuser --password mypass my-virtual-repo https://artifactoryhost/my-virtual-repo
    "my-virtual-repo" has been added to your repositories
    $ helm repo update
    Hang tight while we grab the latest from your chart repositories...
    ...Skip local chart repository
    ...Successfully got an update from the "my-local-repo" chart repository
    ...Successfully got an update from the "my-virtual-repo" chart repository
    Update Complete. ⎈ Happy Helming!⎈
    $ helm fetch my-virtual-repo/mychart
    $ ls
    mychart-0.3.2.tgz
    ```

## Usage

Example using URL:

```bash
$ helm push-artifactory /my/chart/folder https://my-artifactory/my-local-repo --username username --password password
```

Example using helm repo added through CLI:
```bash
$ helm push-artifactory /my/chart/folder my-local-repo
```

For all available plugin options, please run:
```bash
$ helm push-artifactory --help
```

### Pushing a directory
Point to a directory containing a valid `Chart.yaml` and the chart will be packaged and uploaded:
```bash
$ cat mychart/Chart.yaml
name: mychart
version: 0.3.2
```
```bash
$ helm push-artifactory mychart/ https://my-artifactory/my-local-repo
Pushing mychart-0.3.2.tgz to https://my-artifactory/my-local-repo/mychart/mychart-0.3.2.tgz...
Done.
Reindex helm repository my-local-repo...
Reindex of helm repo my-local-repo was scheduled to run.
```

### Pushing with a custom version
The `--version` or `-v` flag can be provided, which will push the package with a custom version.

Here is an example using the last git commit id as the version:
```bash
$ helm push-artifactory mychart/ --version="$(git log -1 --pretty=format:%h)" https://my-artifactory/my-local-repo
Pushing mychart-5abbbf28.tgz to https://my-artifactory/my-local-repo/mychart/mychart-5abbbf28.tgz...
Done.
Reindex helm repository my-local-repo...
Reindex of helm repo my-local-repo was scheduled to run.
```

### Pushing overriding values
The `--set` or `-s` flag can be provided, which will push the package overriding values in the values.yaml file.

Here is an example using a custom version and default image tag:
```bash
$ helm push-artifactory mychart/ -v="0.5.1" -s image.tag="0.5.1" https://my-artifactory/my-local-repo
Pushing mychart-0.5.1.tgz to https://my-artifactory/my-local-repo/mychart/mychart-0.5.1.tgz...
Done.
Reindex helm repository my-local-repo...
Reindex of helm repo my-local-repo was scheduled to run.
```

If we check the values.yaml of the chart we'll find:
```
image:
  tag: 0.5.1
```

We can override multiple values:
```bash
$ helm push-artifactory mychart/ -v="0.5.1" -s image.tag="0.5.1" -s service.name="my-custom-name" https://my-artifactory/my-local-repo
Pushing mychart-0.5.1.tgz to https://my-artifactory/my-local-repo/mychart/mychart-0.5.1.tgz...
Done.
Reindex helm repository my-local-repo...
Reindex of helm repo my-local-repo was scheduled to run.
```

This will set in values.yaml:
```
image:
  tag: 0.5.1
service:
  name: my-custom-name
```

### Push .tgz package
This workflow does not require the use of `helm package`, but pushing .tgz is still supported:
```bash
$ helm push-artifactory mychart-0.3.2.tgz https://my-artifactory/my-local-repo
Pushing mychart-0.3.2.tgz to https://my-artifactory/my-local-repo/mychart/mychart-0.3.2.tgz...
Done.
Reindex helm repository my-local-repo...
Reindex of helm repo my-local-repo was scheduled to run.
```

### Push with path
You can set a path to push your chart in your Artifactory local repository:
```bash
$ helm push-artifactory mychart/ https://my-artifactory/my-local-repo --path organization
Pushing mychart-0.3.2.tgz to https://my-artifactory/my-local-repo/organization/mychart/mychart-0.3.2.tgz...
Done.
Reindex helm repository my-local-repo...
Reindex of helm repo my-local-repo was scheduled to run.
```

### Skip repository reindex
You can skip triggering the repository reindex:
```bash
$ helm push-artifactory mychart/ https://my-artifactory/my-local-repo --skip-reindex
Pushing mychart-0.3.2.tgz to https://my-artifactory/my-local-repo/mychart/mychart-0.3.2.tgz...
Done.
```

## Authentication
### Basic Auth
__The plugin will not use the auth info located in `~/.helm/repository/repositories.yaml` in order to authenticate.__

You can provide username and password through commmand line with `--username username --password password` or use the following environment variables for basic auth on push operations:
```bash
$ export HELM_REPO_USERNAME="myuser"
$ export HELM_REPO_PASSWORD="mypass"
```

### Access Token
You can provide an access token through command line with `--access-token my-token` or use the following env var:
```bash
$ export HELM_REPO_ACCESS_TOKEN="<token>"
```

If only the access token is supplied without any username, the plugin will send the token in the header:
```
Authorization: Bearer <token>
```

If a username is supplied with an access token, the plugin will use basic authentication, using the access token as password for the user.

### Api Key
You can provide an api key through command line with `--api-key my-key` or use the following env var:
```bash
$ export HELM_REPO_API_KEY="<api-key>"
```

If only the api key is supplied without any username, the plugin will send the api key in the header:
```
X-JFrog-Art-Api: <api-key>
```

If a username is supplied with an api key, the plugin will use basic authentication, using the api key as password for the user.

### TLS Client Cert Auth

If you need to setup your TLS cert authentication, the following options are available:

```
--ca-file string    Verify certificates of HTTPS-enabled servers using this CA bundle [$HELM_REPO_CA_FILE]
--cert-file string  Identify HTTPS client using this SSL certificate file [$HELM_REPO_CERT_FILE]
--key-file string   Identify HTTPS client using this SSL key file [$HELM_REPO_KEY_FILE]
--insecure          Connect to server with an insecure way by skipping certificate verification [$HELM_REPO_INSECURE]
```

repository: marespane/helm-push-artifactory-plugin

repo_name: marespane/helm-push-artifactory-plugin


text:
# ember-casper-template

This project is designed to be a fully-functional, static site implementation of the official Ghost
[Casper Template](https://github.com/TryGhost/Casper) built on EmberJS with fully working out of the
box SEO friendly output. It supports being hosted on AWS S3 or any other static site hosting
solution.

If you want an example of the this "in production" then check out the [Stone Circle
Blog](https://blog.stonecircle.io). If you use this in production let us know [on Twitter](https://twitter.com/stonecircle_co) and we can add a
"built with ember-casper-template" wiki.

You do not need to be a web developer to be able to use this system. You just write markdown files
and the rest of the work is performed by EmberJS' build system.

## Getting Started

First you need to generate an ember app:

```sh
npm install -g ember-cli

ember new super-blog
```

then install this Ember Addon:

```sh
cd super-blog

ember install ember-casper-template
```

If you want to see the blog system running on your local machine just run `npm start` and you will
be able to navigate to  [http://localhost:4200](http://localhost:4200) to see the blog in action.

## Important steps to get it working
Currently there are 2 extra steps that are required to get this working. We are tying to make it so
you don't have to do these but if you want to get started quickly it is required.

1. Create the following folders:

```sh
mkdir content page author
```

2. Add the following to your config/environment.js at the end of the ENV object definition at the top
of the file

```javascript
fastboot: {
  hostWhitelist: ["localhost:4200"]
}
```

3. install the `ember-cli-cjs-transform` Ember addon

```sh
ember install ember-cli-cjs-transform
```

### Creating Content

This addon comes with helpful blueprints to generate posts and authors for you in the structure it
expects. The first thing you should do is generate an author as follows:

```sh
ember g author your-name
```

Then you should be able to edit the file `author/your-name.md` to update the details.

Next you will want to generate some posts. If you only have one author generated (in a single user
blog) you can generate a post as simply as running:

```sh
ember g post "this is a post I want to write"
```

### Configuring

If you have already generated some content (see above) you will know that you are able to configure certain details about your posts. If you want to edit the global configuration you will need to provide a section in the Environment config file for your host Ember app (located in `config/environment.js`). You will see a `let ENV = {` declaration near the top of the file, you will need to add a `blog` key to that object with your configuration. Here is an example with the exact contents of that `blog` config object from [the Stone Circle blog](https://blog.stonecircle.io)

```javascript
let ENV = {

  // leave all the other config in tact and add the following key

  blog: {
    title: "The Stone Circle",
    description: "The Stone Circle perspective on Software Development, Business and more.",
    logo: "/images/logo-white.png",
    rssLogo: '/images/logo.png',
    coverImage: "/images/cover-image.jpg",
    coverMeta: {
      attribution: "by Conor Luddy",
      attributionLink: "https://unsplash.com/photos/QkQXTxJ7TLg"
    },
    twitter: "stonecircle_co",
    navigation: [
      { label: 'Software Consulting', link: 'https://stonecircle.io' },
      { label: 'Blog Home', route: 'index' },
    ]
  },
}
```

This example config shows you how to set a title and general description for your blog, have a logo and a cover image, a link to your twitter account and how to add some navigation to your blog.

**Note:** the images like `/images/logo.png` will need to be in your `public` folder in your host app.

### Configuring your host & enabling RSS
The above configuration allows you to make your blog look a lot better but there is one piece of configuration that will enable some awesome features like automatically creating an RSS feed for you 🎉

Although because of the nature of some RSS aggregators you need to be *very* careful with this because it can mess up a cache that you have no control over, this is why it's dealt with differently than the above.

If you're not familiar with Ember configuration, you are able to specific some environment config *depending on what environment you are targeting*. This allows you to have some config only available in production (like Google Analytics for example).

If you go to the end of your `config/environment.js` file you will see something that is checking if the environment is `production`. You can add your host config to the blog config object as follows:

```javascript
if (environment === 'production') {

  // ... any other production config you might have ...

  ENV.blog.host = 'https://blog.stonecircle.io';
}
```

when ember-casper-template sees that you have host defined it will start generating the rss feed.

repository: progand/ember-casper-template

repo_name: progand/ember-casper-template


text:
# DAT Course Project

## Due Dates and Links

* **September 1:** Discuss project ideas with instructional team
    * [Past student projects](https://github.com/justmarkham/DAT-project-examples)
    * [Public data sources](public_data.md)
    * Data science competitions: [Kaggle](http://www.kaggle.com/), [DrivenData](http://www.drivendata.org/competitions/), [CrowdANALYTIX](https://www.crowdanalytix.com/community), [TunedIT](http://tunedit.org/challenges), [InnoCentive](https://www.innocentive.com/ar/challenge/browse)
* **September 3:** Project question and dataset
    * [Project question](https://github.com/justmarkham/DAT4-students/blob/master/jason/jk_project_idea.md) by Jason Knobloch
    * [Project question](https://github.com/justmarkham/DAT4-students/blob/master/jennifer/project_description.md) by Jennifer Lambert
    * [Project question](https://github.com/ckf2102/DAT7-Coursework/blob/master/Project/Archive/ProjectQuestion.md) by Corinne Fukayama
    * [Project question](https://github.com/wandergram/datsci/blob/master/UN/question.md) by Alex Kapitanskaya
* **September 22:** First project presentation
    * [First presentation](https://github.com/justmarkham/DAT-project-examples/blob/master/pdf/army_draft_presentation.pdf) by Chandler McCann
    * [First presentation](https://github.com/justmarkham/DAT-project-examples/blob/master/pdf/media_draft_presentation.pdf) by Nathan Danielsen
    * [First presentation](https://github.com/ckf2102/DAT7-Coursework/blob/master/Project/Archive/20150713-Presentation.pdf) by Corinne Fukayama
* **October 8:** Draft paper
* **October 20:** Peer review
    * [Peer review guidelines](peer_review.md)
* **October 27/29:** Final project presentation and paper
    * [Final presentation](https://github.com/justmarkham/DAT-project-examples/blob/master/pdf/bus_presentation.pdf) by Austin Brown
    * [Final presentation](https://github.com/justmarkham/DAT-project-examples/blob/master/pdf/crime_presentation.pdf) by Debbie Yu
    * [Final presentation](https://github.com/justmarkham/DAT-project-examples/blob/master/pdf/dota_presentation.pdf) and [final paper](https://github.com/justmarkham/DAT-project-examples/blob/master/pdf/dota_paper.pdf) by Kyle Pomerleau
    * [Final paper](https://github.com/justmarkham/DAT-project-examples/blob/master/pdf/nba_paper.pdf) by Kerry Jones
    * [Final paper](https://github.com/mikeyea/DAT7_project/blob/master/final%20project/Class%20Project.ipynb) by Mike Yea

## Overview

The final project should represent significant original work applying data science techniques to an interesting problem. Final projects are individual attainments, but you should be talking frequently with your instructor and classmates about them.

Address a data-related problem in your professional field or a field you're passionate about. If you have a strong interest in the subject matter, you'll create a better project and it will be a lot more fun for you!

Here's a collection of [past projects](https://github.com/justmarkham/DAT-project-examples) from GA Data Science students that may help to stimulate your thinking. You're welcome to use [public data](public_data.md) or private data, though with private data, you'll have to be careful about what you release. Competing in a [Kaggle competition](http://www.kaggle.com/) (including past competitions) is also a project option, in which case the data will be provided for you.

## Milestones

### September 1: Discuss your project ideas

By September 1, you should talk with a member of the instructional team about your project idea(s). We can help you to choose between different ideas, advise you on the appropriate scope for your project, and ensure that your project question might reasonably be answerable using the data science tools and techniques taught in the course. (There is nothing you have to turn in for this milestone.)

### September 3: Project question and dataset

Create a GitHub repository for your project. It should include a **short write-up** that answers these questions:

* What is the question you hope to answer?
* What data are you planning to use to answer that question?
* What do you know about the data so far?
* Why did you choose this topic?

##### Characteristics of a good project question

* Clearly defined: The question can easily be summarized in a single statement ("Can we predict A based on B?").
* As simple as possible: The question has a narrow focus rather than broad goals.
* Reasonably available data: The question depends on data that is likely to be available in a "meaningful" quantity.
* Reasonable hypothesis: The question examines factors (B) that might actually be predictive of the outcome (A).

### September 22: First project presentation

You'll be giving a short presentation to the class about the work you have done so far, as well as your plans for the project going forward. Your presentation should use slides (or a similar format). Your **slides, code, data, and visualizations** should be included in your GitHub repository. Here are some questions that you should address in your presentation:

* What data have you gathered, and how did you gather it?
* Which areas of the data have you cleaned, and which areas still need cleaning?
* What steps have you taken to explore the data?
* What insights have you gained from your exploration?
* Will you be able to answer your question with this data, or do you need to gather more data (or adjust your question)?
* How might you use modeling to answer your question?

##### Logistics and tips for success

* Please submit a link to your repository (with slides) no later than 6pm on Tuesday. I'll be copying your slides to my computer before class begins. Please don't Slack your materials to me unless you are having problems with GitHub.
* Everyone will be presenting from my computer, so your slides should be in a format that can be easily read on any computer (PDF, PowerPoint, Google Slides, IPython Notebook).
* You will have exactly 5 minutes to present, followed by 1 minute of questions.
* Make sure your project question is crystal clear to every person in the room in the first minute.
* Tell your story in an engaging fashion. Come up with a story or example that will help the audience to relate to your topic.
* It is critical that you practice delivering your presentation and time yourself.
* If you find that your presentation is longer than 5 minutes, the solution is not to speak more quickly. Instead, focus your presentation around the most interesting aspects of your project.

##### Note on including your data

If it's not practical to include your entire dataset in your GitHub repository, you should link to your data source and provide a sample of the data. (GitHub has a [size limit](https://help.github.com/articles/what-is-my-disk-quota/) of 100 MB per file and 1 GB per repository.) If your data is private, you can either include an "anonymized" version of your data or create a private GitHub repository.

### October 8: Draft paper due

A draft of your **project paper** is due, along with the **data, well-commented code, and visualizations**. It should be written with a technical audience in mind. Your paper should include the following components:

* Problem statement and hypothesis
* Description of your data set and how it was obtained
* Description of any pre-processing steps you took
* What you learned from exploring the data, including visualizations
* How you chose which features to use in your analysis
* Details of your modeling process, including how you selected your models and validated them
* Your challenges and successes
* Possible extensions or business applications of your project
* Conclusions and key learnings

Your peers and instructional team will be providing feedback. However, the paper should stand "on its own", and should not depend upon the reader remembering your first presentation. The easier your paper is to follow, the more useful feedback you will receive! As well, if your reviewers can actually run your code on the provided data, they will be able to give you better feedback on your code.

### October 20: Peer review due

You will provide project feedback to two of your peers, according to the [peer review guidelines](peer_review.md).

### October 27/29: Final project presentation (and final paper due)

Your project repository on GitHub should contain the following:

* **Project paper:** any format (PDF, Markdown, etc.)
* **Presentation slides:** any format except for Keynote (PDF, PowerPoint, Google Slides, IPython Notebook, etc.)
* **Code:** commented Python scripts, and any other code you used in the project
* **Visualizations:** integrated into your paper and/or slides
* **Data:** data files in "raw" or "processed" format
* **Data dictionary (aka "code book"):** description of each variable, including units

##### Logistics and tips for success (similar to last time)

* Please submit a link to your repository (with slides) by 6pm on the day you are presenting.
* Regardless of which day you are presenting, your repository should also contain the other required project components by 6pm on the last day of class.
* You will have exactly 12 minutes to present, followed by 2 minutes of questions. Practice your presentation and time yourself!
* Your presentation should start with a recap of the key information from the previous presentation (including your project question), but you should spend the majority of your presentation discussing what has happened since then.
* If your presentation is too long, focus it around the most interesting aspects of your project, rather than trying to include every last detail.
* Tell your story in an engaging fashion.
* You are welcome to invite your friends and family members to attend.

repository: praveenpmin/Python

gha_language: Python

gha_license_id: MIT

repo_name: praveenpmin/Python


text:
# Creating physical constraints

This module has a couple of methods that simplify the creation of constraints between two copies, or a copy and a position in space. These constraints create a spring, or a rope, that limits a copy's movement.

> Note that you have several options in the template editor that allow making simple joints without using code!

## `ct.matter.pin(copy)`

Pins a copy in place, making it spin around its center of mass but preventing any other movement.

## `ct.matter.tie(copy, position, stiffness = 0.05, damping = 0.05)`

Ties a copy to a specific position in space, making it swing around it.

## `ct.matter.rope(copy, length, stiffness = 0.05, damping = 0.05)`

Puts a copy on a rope. It is similar to `ct.matter.tie`, but the length of a rope is defined explicitly, and starts from the copy's current position.

## `ct.matter.tieTogether(copy1, copy2, stiffness, damping)`

Ties two copies together with a rope.

repository: ct-js/ct-js

branch_name: refs/heads/develop

filename: Creating constraints.md

gha_language: JavaScript

repo_name: ct-js/ct-js


text:
# [3.16.0](https://github.com/americanexpress/earlybird/compare/v3.15.0...v3.16.0) (2023-07-10)

### Features

* **config:** not exiting process after update and reloading config ([#74](https://github.com/americanexpress/earlybird/issues/74)) ([a96d2a2](https://github.com/americanexpress/earlybird/commit/a96d2a2567ab3cf186e3309da20031dc749e241f))

# [3.15.0](https://github.com/americanexpress/earlybird/compare/v3.14.0...v3.15.0) (2023-06-01)

### Features

* **file-with-console:** updated code based to broadcast and write it… ([#60](https://github.com/americanexpress/earlybird/issues/60)) ([92e6123](https://github.com/americanexpress/earlybird/commit/92e6123fec5a7d6046f8c5914796550050522df5))

# [3.14.0](https://github.com/americanexpress/earlybird/compare/v3.13.2...v3.14.0) (2023-03-16)

### Features

* add arm64 binary for use on M1 hardware ([23c4ff0](https://github.com/americanexpress/earlybird/commit/23c4ff0b79180f8cff141c7e5c38101de5958e31))

## [3.13.2](https://github.com/americanexpress/earlybird/compare/v3.13.1...v3.13.2) (2023-02-23)

### Bug Fixes

* **config:** updated config based display and failure ([#55](https://github.com/americanexpress/earlybird/issues/55)) ([5247ccf](https://github.com/americanexpress/earlybird/commit/5247ccf4f438f9b3086ff7c16e70f2e46d0ff9a6))

## [3.13.1](https://github.com/americanexpress/earlybird/compare/v3.13.0...v3.13.1) (2022-10-03)

### Bug Fixes

* scan failure provision for info level hits ([1174e45](https://github.com/americanexpress/earlybird/commit/1174e45400dd375d0f6555e042d8ce7959b52e61))

# [3.13.0](https://github.com/americanexpress/earlybird/compare/v3.12.0...v3.13.0) (2022-09-07)

### Bug Fixes

* release branch set to main ([fcdba6f](https://github.com/americanexpress/earlybird/commit/fcdba6f995c3e699e21cffe8fa33d132771c7c70))
* remove the default ignore with .gitignore to avoid missing scans on the repo. ([2e6255d](https://github.com/americanexpress/earlybird/commit/2e6255d0aaa79821902ede4e90a41e2e10cdd4d4))

### Features

* add keepAlive flag and fix worker flag read ([#47](https://github.com/americanexpress/earlybird/issues/47)) ([549081d](https://github.com/americanexpress/earlybird/commit/549081d257a0d2de4a9f256e1d9a948d2a670c30))
* add ldflags for version injection during artifacts build ([32fc145](https://github.com/americanexpress/earlybird/commit/32fc14532597334c6b99900d4b092cd100768632))
* use semantic versioning to create semantic releases and changelog.md file ([2e8a2e9](https://github.com/americanexpress/earlybird/commit/2e8a2e91cf0f1f8ccd4b96d01c9a5f5db0c06cd8))

repository: americanexpress/earlybird

gha_language: Go

repo_name: americanexpress/earlybird


text:
---
layout: post101
title:  Direct Persistency
categories: XAP101
parent: space-persistency-overview.html
weight: 100
---

{% summary %} {% endsummary %}

When running in direct persistency mode (i.e. Read-Write Through) the IMDG interacts with the data source to persist its data where the client application would get the acknowledge for the IMDG operation only after **both** the IMDG and the `SpaceDataSource` acknowledged the operation. With this persistency mode, the IMDG operations performance would be heavily depended on the speed of the `SpaceSynchronizationEndpoint` to commit the data and provide acknowledge back to the IMDG for the successful operation of the transaction. When having a mapping layer in between the IMDG and the data source that converts the IMDG objects to relational database tables data (i.e. [Hibernate](http://www.hibernate.org)), the time which takes to perform the conversion would also impact the acknowledge time and the application overall performance.

The above means you should be careful when using this persistency mode in case your application have the requirement to respond quickly (low latency) and scale in linear manner.

{% refer %}See the [Asynchronous Persistency](./asynchronous-persistency-with-the-mirror.html) mode that allows you to delegate the IMDG operation to the data storage as a background activity without impacting the application performance.{% endrefer %}

When the application reading data from the IMDG there are two operational modes you should consider:

- Having **All** Application Data within the IMDG - Enabled when running in `ALL_IN_CACHE` Cache policy mode.  This more provides the most deterministic performance.
- Having a **subset** of the Application Data within the IMDG - Enabled when running in `LRU` Cache policy mode.  Lazy load might impact the performance and the scalability of the application.

{% refer %}See the [Memory Management Facilities]({%currentadmurl%}/memory-management-facilities.html) for details about the differences between `ALL_IN_CACHE` and the `LRU` cache policies.{% endrefer %}

The Cache policy mode impacts also the initialization of the IMDG instance and the way it is reading data from the data source to bootstrap itself.

- With **`ALL_IN_CACHE`** Cache policy - Each IMDG instance iterating through the database and loading all the relevant data.
- With **`LRU`** Cache policy - Each IMDG instance iterating through the database and loading only partial amount of data (based on the Initial-load , memory-usage and Cache Size settings).

{% refer %}See the [Space Persistency Initial Load](./space-persistency-initial-load.html) for details how you can change the default behavior of the IMDG bootstrapping process once started.{% endrefer %}

Direct persistency mode supports the following database topologies:

- [A central database](#central)

{% indent %}
![data-grid-sync-persistNew.jpg](/attachment_files/data-grid-sync-persistNew.jpg)
{% endindent %}

- [Distributed databases](#distributed)

{% indent %}
![data-grid-sync-persist_non_central_dbNew.jpg](/attachment_files/data-grid-sync-persist_non_central_dbNew.jpg)
{% endindent %}

{% anchor central %}

# Central Database

With the central database topology, a single database instance is used to store all the IMDG data. In this case only the primary IMDG instance will update the database. The backup IMDG instance will not update the database. The backup IMDG instance will update the database only once it will turn to be a primary in case of a failure or shutdown of the primary IMDG instance.

A Data-Grid running in Direct persistency mode using central database topology, having all data within the IMDG would have the following configuration:

{% highlight xml %}
<bean id="hibernateSpaceDataSource" class="org.openspaces.persistency.hibernate.DefaultHibernateSpaceDataSource">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="hibernateSpaceSynchronizationEndpoint" class="org.openspaces.persistency.hibernate.DefaultHibernateSpaceSynchronizationEndpoint">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>

 <os-core:embedded-space id="space" name="space" schema="persistent" space-data-source="hibernateSpaceDataSource"
         space-sync-endpoint="hibernateSpaceSynchronizationEndpoint">
    <os-core:properties>
        <props>
            <!-- Use ALL IN CACHE - No Read Performed from the database in lazy manner-->
            <prop key="space-config.engine.cache_policy">1</prop>
            <prop key="cluster-config.cache-loader.external-data-source">true</prop>
            <prop key="cluster-config.cache-loader.central-data-source">true</prop>
        </props>
    </os-core:properties>
</os-core:embedded-space>
{% endhighlight %}

{% anchor distributed %}

# Distributed Databases

With the distributed databases topology, each IMDG instance uses its own database instance to store its data. In this case both the primary and the backup IMDG instances will update the database once IMDG operation is called or being replicated (to the backup).

A Data-Grid running in Direct persistency mode using distributed databases topology (non-central), having all the data within the IMDG would have the following configuration:

{% highlight xml %}
<bean id="hibernateDataSource" class="org.openspaces.persistency.hibernate.DefaultHibernateSpaceDataSource">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="hibernateSpaceSynchronizationEndpoint" class="org.openspaces.persistency.hibernate.DefaultHibernateSpaceSynchronizationEndpoint">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>

<os-core:embedded-space id="space" name="space" schema="persistent" space-data-source="hibernateSpaceDataSource">
         space-sync-endpoint="hibernateSpaceSynchronizationEndpoint">
    <os-core:properties>
        <props>
            <!-- Use ALL IN CACHE - No Read Performed from the database in lazy manner-->
            <prop key="space-config.engine.cache_policy">1</prop>
            <prop key="cluster-config.cache-loader.external-data-source">true</prop>
            <prop key="cluster-config.cache-loader.central-data-source">false</prop>
        </props>
    </os-core:properties>
</os-core:embedded-space>
{% endhighlight %}

{% refer %}See the [Space Persistency](./space-persistency.html) section for full details about the properties you may configure.{% endrefer %}

# Supported Options

The following table lists the supported options:

{: .table .table-bordered .table-condensed}
|**Cache Policy**|**Central Data Source**|**Replication Recovery enabled**|**Amount of data loaded via the initial load**|**Data filtering at the initial load enabled**|
|:---------------|:----------------------|:-------------------------------|:---------------------------------------------|:-----------------------------------------------|
|LRU|YES|NO|Up to amount of initial load percentage value `*`|YES|
|ALL\_IN\_CACHE|YES|YES|All database data |YES|
|LRU|NO|YES|Up to amount of initial load percentage value `*`|NO|
|ALL\_IN\_CACHE|NO|YES|All database data |NO |

`*` Up to amount of initial load percentage value (50%) that is the percentage of `cache_size` value.

When running with LRU cache policy and `SpaceDataSource`/`SpaceSynchronizationEndpoint` setup:

- Lazily loaded objects (as a result of a cache miss) and objects loaded via initial data load are not replicated to the backup or replica space.
- Write operations and update operations are not replicated when running in distributed DB mode.
- Evicted objects are replicated when using the take operation with the `EVICT_ONLY` modifier.

repository: barakb/gigaspaces-wiki-jekyll

extension: markdown

gha_language: HTML

repo_name: barakb/gigaspaces-wiki-jekyll


text:
---
id: iam-RDS Data API
title: RDS Data API
desc: ''
updated: '0'
created: '0'
stub: false
toc: true
sources:
  - name: Policy Sentry
    url: 'https://github.com/salesforce/policy_sentry'
    license: MIT
---
# RDS Data API
- prefix: rds-data

## Table of Contents

## Privileges
### BatchExecuteStatement
- description: Runs a batch SQL statement over an array of data.
- access level: Write
- resource types
```
{
    "": {
        "resource_type": "",
        "required": false,
        "condition_keys": [],
        "dependent_actions": []
    }
}
```
### BeginTransaction
- description: Starts a SQL transaction.
- access level: Write
- resource types
```
{
    "": {
        "resource_type": "",
        "required": false,
        "condition_keys": [],
        "dependent_actions": []
    }
}
```
### CommitTransaction
- description: Ends a SQL transaction started with the BeginTransaction operation and commits the changes.
- access level: Write
- resource types
```
{
    "": {
        "resource_type": "",
        "required": false,
        "condition_keys": [],
        "dependent_actions": [
            "rds-data:BeginTransaction"
        ]
    }
}
```
### ExecuteSql
- description: Runs one or more SQL statements. This operation is deprecated. Use the BatchExecuteStatement or ExecuteStatement operation.
- access level: Write
- resource types
```
{
    "": {
        "resource_type": "",
        "required": false,
        "condition_keys": [],
        "dependent_actions": []
    }
}
```
### ExecuteStatement
- description: Runs a SQL statement against a database.
- access level: Write
- resource types
```
{
    "": {
        "resource_type": "",
        "required": false,
        "condition_keys": [],
        "dependent_actions": []
    }
}
```
### RollbackTransaction
- description: Performs a rollback of a transaction. Rolling back a transaction cancels its changes.
- access level: Write
- resource types
```
{
    "": {
        "resource_type": "",
        "required": false,
        "condition_keys": [],
        "dependent_actions": [
            "rds-data:BeginTransaction"
        ]
    }
}
```

repository: dendronhq/dendron-vault-aws

repo_name: dendronhq/dendron-vault-aws


text:
---
title: 'Drupal Video Tutorials: The Basics'
templateKey: blog-post
date: 2011-07-25T14:50:53.000Z
category:
  -Clients, Drupal, Video
alias: drupal-video-tutorials-basics
summary: >
 We love using Drupal at Digett because it’s open source, flexible, and has a great community built around it. But as someone who came into web marketing with no knowledge of Drupal, I can understand our clients’ occasional frustration at not being able to immediately take charge of their website and make the updates and changes they want.
author: Amy Peveto
image: /assets/drupal-tutorial-videos.png
---

We love using Drupal at Digett because it’s open source, flexible, and has a great community built around it. But as someone who came into web marketing with no knowledge of Drupal, I can understand our clients’ occasional frustration at not being able to immediately take charge of their website and make the updates and changes they want.

It is with this in mind that Digett has created a series of Drupal content management video tutorials. This series covers the most common content management actions in Drupal, and is intended to help Drupal beginners in the management of their websites.

Things to keep in mind
----------------------

*   These tutorials were developed with Drupal 6 websites in mind, although many elements may also apply to earlier and later versions of Drupal.
*   While many Drupal websites function in similar ways, no two sites are exactly alike: some functions described in these tutorials may not be available on your website, your user account may not have the appropriate permissions, or the processes may look just a bit different.
*   These tutorials are available publicly, both in these blog articles and on [Digett’s YouTube page](https://www.youtube.com/user/digettvideo). If you are a Drupal developer or firm, please feel free to share these tutorials with your clients.

First, the basics
-----------------

These tutorials cover the most basic aspects of content management on a Drupal website.

*   How to Log In
*   How to Edit a Page
*   How to Create a Page
*   See All Content
*   Removing Content
*   How to Log Out

### Here’s a first taste:

And stay tuned
--------------

In the coming weeks we’ll be showcasing our series on using the text editor, as well as some more slightly advanced content management tasks.

repository: alexander-digett/digett

repo_name: alexander-digett/digett


text:
# pharo-non-cryptographic-hashes

[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active)
[![Build Status](https://travis-ci.org/osoco/pharo-non-cryptographic-hashes.svg?branch=master)](https://travis-ci.org/osoco/pharo-non-cryptographic-hashes)
[![Coverage Status](https://coveralls.io/repos/github/osoco/pharo-non-cryptographic-hashes/badge.svg?branch=master)](https://coveralls.io/github/osoco/pharo-non-cryptographic-hashes?branch=master)
[![Pharo version](https://img.shields.io/badge/Pharo-7.0-%23aac9ff.svg)](https://pharo.org/download)
[![Pharo version](https://img.shields.io/badge/Pharo-8.0-%23aac9ff.svg)](https://pharo.org/download)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/osoco/PharoPDS/master/LICENSE)

Collection of non-cryptographic hash functions for Pharo Smalltalk.

It includes the following hash functions:

  * MurmurHash3 32-bits x86 variant.
  * MurmurHash3 128-bits x64 variant.

## Installation

To install `pharo-non-cryptographic-hashes` on your Pharo image you can just find it in the **Pharo Project Catalog** (`World menu` > `Tools` > `Catalog Browser`) and click in the *green mark* icon in the upper right corner to install the latest stable version:

![Pharo Project Catalog with the project selected](doc/images/pharo-project-catalog.png)

Or, you can also execute the following script:

```Smalltalk
    Metacello new
      baseline: #NonCryptographicHashes;
    	repository: 'github://osoco/pharo-non-cryptographic-hashes:master/src';
    	load
```

To add this project to your own project's baseline just add this:

```Smalltalk
    spec
    	baseline: #NonCryptographicHashes
    	with: [ spec repository: 'github://osoco/pharo-non-cryptographic-hashes:master/src' ]
```

Note that you can replace the *master* by another branch or a tag.

## License

This project is written and supported by developers at **[OSOCO](https://osococo.es)** and published as **free and open source** software  under an **[MIT license](LICENSE)**.


text:
# WR_RFID_RaspberryPi
This is the RFID code for Raspberry PI

To allow non-root users to run this access

```
sudo cp etc/98-rfid.rules /etc/udev/rules.d/
```


text:
# Streaming an existing single bitrate MP4 file with HLS or Dash

This sample demonstrates how to dynamically package VOD content from an existing pre-encoded MP4 file (or set of ABR encoded Mp4s) and stream with HLS/DASH.
It shows how you can create the required server manifest (.ism) and client manifest (.ismc) files needed for the Azure Media Services origin server to stream a pre-encoded file to HLS or DASH formats.
Once the server and client manifest are available, the streaming server understands how to dynamically generate HLS and DASH format.
Keep in mind that this can be slightly less performant and heavier on the CPU of the Streaming Endpoint than generating the content directly through the Standard encoder presets for adaptive streaming (AdaptiveStreaming or Content Aware Encoding presets)
due to the fact that the .mpi index binary files are not included.  When using this method, be sure to check with the AMS team when you are considering scaling the solution up to production level usage.

It performs the following tasks:

1. Uploads an existing Mp4 file that is encoded with 2-second GOPs, CBR rate control, max 2 second key frame and min 2 second key frame distances.
1. Creates a .ism manifest to point to the files uploaded and saves the .ism (server manifest) file back to the Asset container
1. Generates a request to create the .ismc file (client manifest) and saves it back into the Asset container.
1. Publishes output asset for HLS and DASH streaming.
1. Provides the HLS manifest URL for use in iOS, or any HLS supported player framework (i.e. Shaka, Hls.js, Video.js, Theo Player, Bitmovin, etc.)
1. Provides the DASH link and a clickable URL to launch the Azure Media Player with the DASH manifest using the "QuickStart" heuristics mode.

This sample only shows how to upload a single bitrate, but this sample can easily be extended to show how to upload a full adaptive bitrate (ABR) set of Mp4 files for streaming in Azure Media Services.

## Prerequisites

Required Assemblies:

* Azure.Identity
* Azure.ResourceManager.Media
* Azure.Storage.Blobs
* System.Linq.Async

An Azure Media Services account. See the steps described in [Create a Media Services account](https://learn.microsoft.com/azure/media-services/latest/account-create-how-to).

## Build and run

Update the settings in **appsettings.json** in the root folder of the repository to match your Azure subscription, resource group and Media Services account.
Then build and run the sample in Visual Studio or VS Code.

## Key concepts

* [Dynamic packaging](https://learn.microsoft.com/azure/media-services/latest/dynamic-packaging-overview)
* [Streaming Policies](https://learn.microsoft.com/azure/media-services/latest/streaming-policy-concept)

## Next steps

* [Azure Media Services pricing](https://azure.microsoft.com/pricing/details/media-services/)
* [Azure Media Services v3 Documentation](https://learn.microsoft.com/azure/media-services/latest/)

gha_language: C#


text:
# Observing objects
In order for the view to get notified about changes to the view model, the view model should implement
`INotifiedPropertyChanged`. In fact, if the view model does not implement this, it [could lead to memory leaks.](https://onewindowsdev.com/2016/09/22/a-memory-leak-may-occur-when-you-use-data-binding-in-windows-presentation-foundation/)

With a [``BaseViewModel``](BaseViewModel.cs) we can abstract this out and reuse it when creating new view models.

A typical case when dealing with notification is when changing a property. With this base view model you could do the following:

```csharp
namespace observingobjects
{
    public class FooBarViewModel : BaseViewModel
    {
        private string m_bar;

        public string Bar
        {
            get => m_bar;
            set => SetProperty(ref m_bar, value);
        }

        public void Foo()
        {
            Bar = "New value";
        }
    }
}
````

Code explanation:
- We have created a field to store the value of ``Bar`` in.
- When we call ``Foo()`` we change the value of ``m_bar`` through ``Bar`` by calling ``SetProperty()``.
- ``SetProperty()`` is a method that comes from ``BaseViewModel`` and that does a equality comparing.
- If the value has been changed, it will notify property changed. That way, the UI will update its value.

> The code for ``FooBarViewModel`` can be found [here](FooBarViewModel.cs).

> The code for ``BaseViewModel`` can be found [here](BaseViewModel.cs)

repository: haavamoa/xaml-code-experiences

repo_name: haavamoa/xaml-code-experiences


text:
[Website](https://www.bitcoinunlimited.info)  | [Download](https://www.bitcoinunlimited.info/download) | [Setup](doc/README.md)  |  [Xthin](doc/bu-xthin.md)  |  [Xpedited](doc/bu-xpedited-forwarding.md)  |   [Miner](doc/miner.md)

[![Build Status](https://travis-ci.org/BitcoinUnlimited/BitcoinUnlimited.svg?branch=dev)](https://travis-ci.org/BitcoinUnlimited/BitcoinUnlimited)

What is Bitcoin?
=====================================

Bitcoin is an experimental new digital currency that enables instant payments to
anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate
with no central authority: managing transactions and issuing money are carried
out collectively by the network. Bitcoin Unlimited is the name of open source
software which enables the use of this currency.

For more information, as well as an immediately useable, binary version of
the Bitcoin Unlimited software, see https://www.bitcoinunlimited.info/download, or read the
[original whitepaper](https://www.bitcoinunlimited.info/resources/bitcoin.pdf).

License
-------

Bitcoin Unlimited is released under the terms of the MIT license. See [COPYING](COPYING) for more
information or see https://opensource.org/licenses/MIT.

What is Bitcoin Unlimited?
=====================================

Bitcoin Unlimited is an implementation of the Bitcoin client software that is based on Bitcoin Core.
However, Bitcoin Unlimited has a very different philosophy than Core.

It follows a philosophy and is administered by a formal process described in the [Articles of Federation](https://www.bitcoinunlimited.info/resources/BUarticles.pdf).
In short, we believe in market-driven decision making, emergent consensus, and giving our users choices.

Quick installation Instructions
====================================

If you're running an Ubuntu system:

```sh
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:bitcoin-unlimited/bu-ppa
sudo apt-get update
sudo apt-get install bitcoind bitcoin-qt
```
If you're compiling from source:

```sh
sudo apt-get install git build-essential libtool autotools-dev automake pkg-config libssl-dev libevent-dev bsdmainutils libboost-all-dev
## optional: only needed if you want bitcoin-qt
sudo apt-get install qttools5-dev-tools qttools5-dev libprotobuf-dev protobuf-compiler libqrencode-dev
## optional: only needed if your wallet use the old format
sudo apt-get install software-properties-common

## this not needed if your wallet will use the new
## format, or if you're not going to use a wallet at all
sudo add-apt-repository ppa:bitcoin-unlimited/bu-ppa
sudo apt-get update
sudo apt-get install libdb4.8-dev libdb4.8++-dev

mkdir -p ~/src
cd ~/src
git clone https://github.com/BitcoinUnlimited/BitcoinUnlimited.git bu-src
cd bu-src
git checkout release
./autogen.sh
./configure
make
sudo make install
```

For more detailed explanations on how compile from source just look at doc/build-*.md files (e.g. [here](doc/quick-install.md))

Quick Startup and Initial Node operation
========================================

### QT or the command line:

There are two modes of operation, one uses the QT UI and the other runs as a daemon from the command line.  The QT version is bitcoin-qt or bitcoin-qt.exe, the command line version is bitcoind or bitcoind.exe. No matter which version you run, when you launch for the first time you will have to complete the intial blockchain sync.

### Initial Sync of the blockchain:

When you first run the node it must first sync the current blockchain.  All block headers are first retrieved and then each block is downloaded, checked and the UTXO finally updated.  This process can take from hours to `weeks` depending on the node configuration, and therefore, node configuration is crucial.

The most important configuration which impacts the speed of the initial sync is the `dbcache` setting.  The larger the dbcache the faster the initial sync will be, therefore, it is vital to make this setting as high as possible.  If you are running on a Windows machine there is an automatically adjusting dbcache setting built in; it will size the dbcache in such a way as to leave only 10% of the physical memory free for other uses.  On Linux and other OS's the sizing is such that one half the physical RAM will be used as dbcache. While these settings, particularly on non Windows setups, are not ideal they will help to improve the initial sync dramatically.

However, even with the automatic configuration of the dbcache setting it is recommended to set one manually if you haven't already done so (see the section below on Startup Configuration). This gives the node operator more control over memory use and in particular for non Windows setups, can further improve the performance of the initial sync.

### Startup configuration:

There are dozens of configuration and node policy options available but the two most important for the initial blockchain sync are as follows.

##### dbcache: As stated above, this setting is crucial to a fast initial sync.  You can set this value from the command line by running
`bitcoind -dbcache=<your size in MB>`, for example, a 1GB dbcache would be `bitcoind -dbcache=1000`.  Similarly you can also add the setting to the bitcoin.conf file located in your installation folder. In the config file a simlilar entry would be `dbcache=1000`.  When entering the size
try to give it the maximum that your system can afford while still leaving enough memory for other processes.

##### maxoutconnections: It is generally fine to leave the default outbound connection settings for doing a sync, however, at times some users
have reported issues with not being able to find enough useful connections. If that happens you can change this setting to override the default.
For instance `bitcoind -maxoutconnections=30` will give you 30 outbound connections and should be more than enough in the event that the
node is having difficulty.

repository: bchlabs/SmartDAG

branch_name: refs/heads/release

repo_name: bchlabs/SmartDAG


text:
[![GitHub license](https://img.shields.io/github/license/hadessama1994/chat_app)](https://github.com/hadessama1994/chat_app)

# An Tinder inspired app using RIOT League of Legends API

This app was made based on TinDev from Rocketseat's Omnisack, original app use GitHub API to make a "Tinder Clone",
instead I used RIOT League of Legends API to fetch players, I made some changes in design and code.

### ScreenShot in Progres...

---

<!-- TABLE OF CONTENTS -->

## Table of Contents

* [Features](#features)
* [Soon](#soon)
* [Setup](#setup)
* [Built With](#built-with)
* [License](#license)

## Features

- Sing up using your League of Legends Nickname.
- Show players name, ranking, LOL Icon and level.
- Like or Dislike players on APP.

## Soon

- Implement Socket.IO to give a match.
- Implement a Chat to Matched player.
- Make a security Sing Up, since the login is only made by typing Nickname, no password required.
- Implement Avatar Change Feature.

---

## Setup
- Clone this repo to your desktop and run `npm install` to install all the dependencies.
---

## Built With
Major Features:
- [NodeJS](https://nodejs.org/)
- [React-Native](https://reactnative.dev/)
- [React JS](https://pt-br.reactjs.org/)
- [Bootstrap](https://getbootstrap.com/)

## License
>You can check out the full license [here](https://github.com/IgorAntun/node-chat/blob/master/LICENSE)

This project is licensed under the terms of the **MIT** license.

<3


text:
# JSON for Modern C++ (Homebrew formula)

[![Build Status](https://travis-ci.org/nlohmann/homebrew-json.svg?branch=master)](https://travis-ci.org/nlohmann/homebrew-json)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/nlohmann/homebrew-json/master/LICENSE.MIT)

This [Homebrew](http://brew.sh) formula installs the header-only [JSON for Modern C++](https://github.com/nlohmann/json) library to your system.

TL;DR: Just execute `brew tap nlohmann/json` and `brew install nlohmann_json`.

## Usage

To use the JSON library, add

```cpp
#include <json.hpp>
```

to your code and add

```
-I/usr/local/homebrew/Cellar/nlohmann_json/1.1.0/include
```

to your compiler flags.

## Tests

With `brew test nlohmann_json` you can check if the formula is working properly. Note the formula needs to be installed before it can be tested.

repository: nsabovic/homebrew-json

repo_name: nsabovic/homebrew-json


text:
# RGSColorSlider

[![Version](https://img.shields.io/cocoapods/v/RGSColorSlider.svg?style=flat)](http://cocoapods.org/pods/RGSColorSlider)
[![License](https://img.shields.io/cocoapods/l/RGSColorSlider.svg?style=flat)](http://cocoapods.org/pods/RGSColorSlider)
[![Platform](https://img.shields.io/cocoapods/p/RGSColorSlider.svg?style=flat)](http://cocoapods.org/pods/RGSColorSlider)

A simple color slider for iOS.

<img src="https://github.com/RGSSoftware/RGSColorSlider/blob/master/screenshots/screenshot.gif" alt="iPhone 5" width="396" />

## Example

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

## Requirements

## Installation

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

```ruby
pod "RGSColorSlider"
```

## Using RGSColorSlider
```objc
-(IBAction)sliderDidChange:(RGSColorSlider *)sender{
    self.colorView.backgroundColor = sender.color;
}
```

## Customization

`RGSColorSlider` can be customized via the following @properties

```objective-c
@property (nonatomic, strong)UIColor *color;

@property (nonatomic)int previewOffset; //negative moves up, positive moves down
@property (nonatomic)BOOL showPreview;

@property (nonatomic, )float previewAppearAnimateDuration;
@property (nonatomic, )float previewDismissAnimateDuration;

@property (nonatomic)int colorTrackHeight;
```

##Limitation

RGSColorSlider only supports hue, therefor it doesn't support saturation and brightness viewing or picking.

## License

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

repository: RGSSoftware/RGSColorSlider

repo_name: RGSSoftware/RGSColorSlider


text:
---
layout: default
---

# 1995-02-09 - Coming to a newsserver near you alt.defeat.s314

## Header Data

From<EMAIL_ADDRESS>(Name Withheld)

To<EMAIL_ADDRESS>Message Hash: 59810e838ed24a3e38fd88693d3f678cf6f389415d4958e5e903087d6ccc3195

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1995-02-09 06:28:07 UTC

Raw Date: Wed, 8 Feb 95 22:28:07 PST

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>(Name Withheld)
Date: Wed, 8 Feb 95 22:28:07 PST
To<EMAIL_ADDRESS>Subject: Coming to a newsserver near you alt.defeat.s314
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

Psychic Flash...This group will be up on auto-subscribing news server's
VERY soon.

{% endraw %}
```

## Thread

+ Return to [February 1995](/archive/1995/02)

+ Return to<EMAIL_ADDRESS>(Name Withheld)](/authors/nobody_at_tower_techwood_org_name_withheld_)"
+ Return to "[Rick Busdiecker <rfb@lehman.com>](/authors/rick_busdiecker_rfb_at_lehman_com_)"

+ 1995-02-09 (Wed, 8 Feb 95 22:28:07 PST) - Coming to a newsserver near you alt.defeat.s314 -<EMAIL_ADDRESS>(Name Withheld)_
  + 1995-02-10 (Fri, 10 Feb 95 13:02:58 PST) - [Re: Coming to a newsserver near you alt.defeat.s314](/archive/1995/02/9daddaa64593ac1181c85f8276983881f42a5bf753ec3abb3bb8418bce8bc2b6) - _Rick Busdiecker<EMAIL_ADDRESS>


text:
Velero Restore Hooks - PRD (Product Requirements Document)

MVP Feature Set

Relates to:  [https://github.com/vmware-tanzu/velero/issues/2116](https://github.com/vmware-tanzu/velero/issues/2116)

# **Change tracking**

_This is a live document, you can reach me on the following channels for more information or for any questions:_

*   _Email:  [bstephanie@vmware.com](mailto:bstephanie@vmware.com)_
*   _Kubernetes slack:  _
    *   _Channel:  #velero_
    *   _@Stephanie Bauman_
*   _VMware internal slack:_
    *   _@bstephanie_

# **Relates to Git Issues:**

*   [https://app.zenhub.com/workspaces/velero-5c59c15e39d47b774b5864e3/issues/vmware-tanzu/velero/2465](https://app.zenhub.com/workspaces/velero-5c59c15e39d47b774b5864e3/issues/vmware-tanzu/velero/2465)
    *   [https://github.com/vmware-tanzu/velero/pull/2465/files?short_path=140e0c6#diff-140e0c6b370f250ee97f6ecafc8dbb7a](https://github.com/vmware-tanzu/velero/pull/2465/files?short_path=140e0c6#diff-140e0c6b370f250ee97f6ecafc8dbb7a)
*   [https://github.com/vmware-tanzu/velero/issues/1150](https://github.com/vmware-tanzu/velero/issues/1150)

Background

Velero supports restore operations but there are gaps in the process.  Gaps in the restore process require users to manually carry out steps to start, clean up, and end the restore process. Other gaps in the restore process can cause issues with application performance for applications running in a pod when a restore operation is carried out.

On a restore, Velero currently does not include hooks to execute a pre- or -post restore script. As a result, users are required to perform additional actions following a velero restore operation. Some gaps that currently exist in the Velero restore process are:

*   Users can create a restore operation but has no option to customize or automate commands during the start of the restore operation
*   Users can perform post restore operations but have no option to customize or automate commands during the end of the restore operation

Strategic Fit

Adding a restore hook action today would allow Velero to unpack the data that was backed up in an automated way by enabling Velero to execute commands in containers during a restore. This will also improve the restore operations on a container and mitigate against any negative performance impacts of apps running in the container during restore.

Purpose / Goal

The purpose of this feature is to improve the extensibility and user experience of pre and post restore operations for Velero users.

Goals for this feature include:

*   Enhance application performance during and following restore events
*   Provide pre-restore hooks for customizing start restore operations
*   Provide actions for things like retry actions, event logging, etc... during restore operations
*   Provide observability/status of restore commands run in restored pods
*   Extend restore logs to include status, error codes and necessary metadata for restore commands run during restore operations for enhanced troubleshooting capabilities
*   Provide post-restore hooks for customizing end of restore operations
*   Include pre-populated data that has been serialized by a Velero backup hook into a container or external service prior to allowing a restore to be marked as completed.

Non-goals

Feature Description

This feature will automate the restore operations/processes in Velero, and will provide restore hook actions in Velero that allows users to execute restore commands on a container. Restore hooks include pre-hook actions and post-hook actions.

This feature will mirror the actions of a Velero backup by allowing Velero to check for any restore hooks specified for a pod.

Assumptions

*   Restore operations will be run at the pod level instead of at the volume level. Some databases require the pod to be running and in some cases a user cannot manipulate a volume without the pod running. We need to support more than one type of database for this feature and so we need to ensure that this works broadly as opposed to providing support only for specific dbs.
*   Velero will be responsible for invoking the restore hook.

MVP Use Cases

The following use cases must be included as part of the Velero restore hooks MVP (minimum viable product).

**Note: **Processing of concurrent vs sequential workloads is slated later in the Velero roadmap (see [https://github.com/vmware-tanzu/velero/pull/2548/files](https://github.com/vmware-tanzu/velero/pull/2548/files)). The MVP for this feature set will align with restore of single workloads vs concurrent workload restores. A second epic will be created to address the concurrent restore operations and will be added to the backlog for priority visibility.

**Note: **Please refer to the Requirements section of this document for more details on what items are P0 (must have in the MVP), P1 (should not ship without for the MVP), P2 (nice to haves).

**USE CASE 1**

    **Title:** Run restore hook before pod restart.

    **Description:  **As a user, I would like to run a restore hook before the applications in my pod are restarted.

**______________________________________________________________**

**USE CASE 2**

    **Title: **Allow restore hook to run on non-kubernetes databases

    **Description: **As a user, I would like to run restore hook operations even on databases that are external to Kubernetes (such as postgres, elastic, etc…).

**______________________________________________________________**

**USE CASE 3**

    **Title: **Run restore at pod level.

    **Description: **As a user, I would like to make sure that I can run the restore hook at the pod level. And, I would like the option to run this with an annotation flag in line or using an init container.** **The restore pre-hook should allow the user to run the command on the container where the pre-hook should be executed. Similar to the backup hooks, this hook should run to default to run on the first container in the pod.

**______________________________________________________________**

**USE CASE 4**

    **Title:** Specify container in which to run pre-hook

    **Description: **As a user, if I do not want to run the pre-hook command on the first container in the pod (default container), I would like the option to annotate the specific container that i would like the hook to run in.

**______________________________________________________________**

**USE CASE 5**

    **Title: **Check for latest snapshot

    **Description: **As a user, I would like Velero to run a check for the latest snapshot in object storage prior to starting restore operations on a pod.

**______________________________________________________________**

**USE CASE 6**

    **Title: **Display/surface output from restore hooks/restore status

    **Description:** As a user, I would like to see the output of the restore hooks/status of my restore surfaced from the pod volume restore status. Including statuses:  Pending, Running/In Progress, Succeeded, Failed, Unknown.

**______________________________________________________________**

**USE CASE 7**

    **Title: **Restore metadata

    **Description: **As a user, I would like to have the metadata of the contents of what was restored using Velero.

    _Note: Kubernetes patterns may result in some snapshot metadata being overwritten during restore operations._

**______________________________________________________________**

**USE CASE 8*

    **Title: **Increase default restore and retry limits.

    **Description: **As a user, I would like to increase the default restore retry and timeout limits from the default values to some other value I would like to specify.

    _Note: See use case 11 for the default value specifications. _

**______________________________________________________________**

User Experience

The following is representative of what the user experience could look like for Velero restore pre-hooks and post-hooks.

**_Note: These examples are representative and are not to be considered for use in pre- and post- restore hook operations until the technical design is complete._**

**Restore Pre-Hooks**

Container Command

```
pre.hook.restore.velero.io/container

kubectl patch backupstoragelocation <STORAGE LOCATION NAME> \
    --namespace velero \
    --type merge \
    --patch '{"spec":{"accessMode":"ReadOnly"}}'
```

Command Execute

```
pre.hook.restore.velero.io/command
```

Includes commands for:

*   Create
    *   Create from most recent backup
    *   Create from specific backup - allow user to list backups
*   Set backup storage location to read only

    ```
    kubectl patch backupstoragelocation <STORAGE LOCATION NAME> \
        --namespace velero \
        --type merge \
        --patch '{"spec":{"accessMode":"ReadOnly"}}
    ```

*   Set backup storage location to read-write

    ```
    kubectl patch backupstoragelocation <STORAGE LOCATION NAME> \
        --namespace velero \
        --type merge \
        --patch '{"spec":{"accessMode":"ReadWrite"}}'

    ```

Error handling

```
pre.hook.restore.velero.io/on-error
```

Timeout

```
pre.hook.restore.velero.io/retry
```

Requirements

**_P0_** = must not ship without

    (absolute requirement for MVP, engineering requirements for long term viability usually fall in here for ex., and incompletion nearing or by deadline means delaying code freeze and GA date)

**_P1_** = should not ship without

    (required for feature to achieve general adoption, should be scoped into feature but can be pushed back to later iterations if needed)

**_P2_** = nice to have

    (opportunistic, should not be scoped into the overall feature if it has dependencies and could cause delay)

**P0 Requirements**
P0. Use Case 1 - Run restore hook before pod restart.

P0.  Use Case 3- Run restore at pod level.

P0. Use Case 5 - Check for latest snapshot

P0. Use Case 9 - ** **Display/surface restore status

P0. Use Case 10 - Restore metadata

P0. Use Case 11 - Retry restore upon restore failure/error/timeout

P0. Use Case 12 - Increase default restore and retry limits.

**P1 Requirements**
P1.  Use Case 2 - Allow restore hook to run on non-kubernetes databases

P1. Use Case 4 - Specify container in which to run pre-hook

P1. Use Case 6 - Specify backup snapshot to use for restore

P1. Use Case 7 - ** **Include or exclude namespaces from restore

**P2 Requirements**
P2.

**Out of scope**

The following requirements are out of scope for the Velero Restore Hooks MVP:

1. Verifying the integrity of a backup, resource, or other artifact will not be included in the scope of this effort.
2. Verifying the integrity of a snapshot using Kubernetes hash checks.
3. Running concurrent restore operations (for the MVP) a secondary epic will be opened to align better with the concurrent workload operations currently set on the Velero roadmap for Q4 timeframe.

**Questions**

1. For USE CASE 1:  Init vs app containers - if multiple containers are specified for a pod kubelet will run each init container sequentially - does this have an impact on things like concurrent workload processing?
2. Can velero allow a user to specify a specific backup if the most recent backup is not desired in a restore?
3. If a backup specified for a restore operation fails, can velero retry and pick up the next most recent backup in the restore?
4. Can velero provide a delta between the two backups if a different backup needs to be picked up (other than the most recent because the most recent backup cannot be accessed?)
5. What types of errors can velero surface about backups, namespaces, pods, resources, if a backup has an issue with it preventing a restore from being done?

For questions, please contact<EMAIL_ADDRESS> [bstephanie<EMAIL_ADDRESS>

repository: vmware-tanzu/velero

repo_name: vmware-tanzu/velero


text:
---
layout: page
title: Lab Members
description: the folks in microbma lab
background: '/img/bg-members.jpg'
form: true
---

## *Huan Li*

<img src="members/lh.jpg" height="400" align="center">

**Barren Spring**

Huan Li graduated from Hefei University of Technology in June 2021. She majored in environmental engineering as an undergraduate and was eager to study soil pollution and microbes. It’s a great honor to be following in BMA Lab as a researcher after graduation.
Currently, her primary focus lies in analyzing typical iron-reducing bacteria Geobacter and finding out its global distribution. Next step is studying interspecific interaction between geobacter and methanogens.


text:
# Datakick

Ruby client for [Datakick](https://www.datakick.org/) - the open product database

## Get Started

Add this line to your application’s Gemfile:

```ruby
gem 'datakick'
```

Create a client

```ruby
datakick = Datakick.new
```

Get an item

```ruby
item = datakick.item("013562610020") # or nil if not found
item.gtin14
item.brand_name
item.name
item.size
```

Create or update an item

```ruby
datakick.update_item("000000000000", {name: "Test"})
```

List items

```ruby
datakick.items
```

Returns the first 100 items.

To get all items, use:

```ruby
datakick.paginated_items do |item|
  item.gtin14
end
```

Search items

```ruby
datakick.items(query: "peanut butter")
```

Add an image

```ruby
image = Faraday::UploadIO.new("ice_cream.jpg", "image/jpeg")
image_type = "scan" # or "photo"
datakick.add_image("000000000000", image, image_type)
```

## Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

- [Report bugs](https://github.com/ankane/datakick/issues)
- Fix bugs and [submit pull requests](https://github.com/ankane/datakick/pulls)
- Write, clarify, or fix documentation
- Suggest or add new features

To get started with development:

```sh
git clone https://github.com/ankane/datakick.git
cd datakick
bundle install
```

repository: ankane/datakick

repo_name: ankane/datakick


text:
Styles
======

This directory contains multiple styles of Summernote.

Each style directory becomes an entrypoint of Webpack build process.
(e.g. The files within `bs5` would be transpiled `summernote-bs5.js` and `summernote-bs5.css`.)

If you put a html file named `summernote-<style>.html`, it would be good for development and debugging processes.
By running `yarn dev`, you can test styles manually on web browsers via those files.

Also, please don't forget to add `summernote-<style>.json` which contains additional information will be used in building processes.

repository: summernote/summernote

repo_name: summernote/summernote


text:
# iafisher/drill
A command-line tool to learn information through spaced repetition.

## Installation and usage
Installation requires [Rust](https://www.rust-lang.org/) and [Cargo](https://doc.rust-lang.org/stable/cargo/).

```shell
$ cargo install --git https://github.com/iafisher/drill.git
```

Make a directory for your quizzes and create a quiz for yourself following the format in `sample.quiz`.

Now, run

```shell
$ drill path/to/quiz
```

to take your quiz! The program will create a `results` directory alongside your quiz to keep track of your results over time.

drill is configurable with command-line flags. Run `drill --help` for details. For convenience, you can set an environment variable called `DRILL_HOME` to the directory containing your quizzes, and drill will read from this directory regardless of where it is invoked.

### In-quiz commands
If a question is erroneously marked incorrect (e.g., because you made a typo), you can mark it correct by entering `!!` at the next question prompt. On the next question, you can enter `!!` to mark the previous answer correct. You can also enter `!e` or `!edit` to open up the previous question in a text editor, e.g. in case there is a typo in the question text.

## Development
Run the test suite with `./t`. Any arguments provided to `./t` will be passed on to `cargo test`.

repository: iafisher/drill

gha_language: Rust

repo_name: iafisher/drill