text:
---
title: Asset Management
---
# Asset Management

To learn about assets, go to the [Stellar section](./02-stellar-guide.html#assets)

## Add EURT/USD/CNY

1. Select any assets on your wallet.

![null](/images/screen-shot-2019-09-20-at-17.25.24.png)

2. Click “Add Asset To Your Account”.

![null](/images/screen-shot-2019-09-20-at-17.30.06.png)

3. Choose the asset you would like to add.
4. Click "ADD ASSET", type in your password (if necessary) and click "CONFIRM" to finalize.

You are now ready to trade the asset which you have trusted.

## Add Custom Assets

1. Follow step 1 to 2 of "Add EURT/USD/CNY".
2. Select "Add Custom Asset" (on desktop device) or "+ CUSTOM" (on a mobile device).
3. Put in the code, issuer (issuing account public key) and limit (maximum balance to hold). Select "Trust Asset" (on desktop device) or "+ TRUST" (on a mobile device) to confirm.

![null](/images/screen-shot-2019-09-20-at-17.34.39.png)

You are now ready to receive/send/trade the asset which you have trusted.

repository: satoshipay/solar-faq

repo_name: satoshipay/solar-faq


text:
Bambu
===========

![](https://travis-ci.com/leonardocouy/bambu.svg?token=bxrKZyktZHisKxWszFGt&branch=master)
[![codecov](https://codecov.io/gh/leonardocouy/bambu/branch/master/graph/badge.svg?token=NDnmdZomct)](https://codecov.io/gh/leonardocouy/bambu)

![](https://giphy.com/embed/LE5bApm6m0HrG)

## Bambu? What the fuck???

Bambu has been **inspired in Pandas** (Python package). But, Bambu **aims only** for provide a flexible, manipulable and nice structure **like DataFrame** in Pandas, for an unstructured data.

This project was thought during Kata practice to improve my Ruby programming skills. At this Kata session, I had developed a Data Munging (clean and transform data to a readable and manipulable format) solution for two unstructured datasets. So, when I solved these problems, I saw both solutions and I reached a conclusion! I could make a gem that can read any unstructured data on condition that that user tells how he wants to manipulate this file.

Gem name is how it is pronounced in Brazilian Portuguese and another motive for this name it is a way to refer to Pandas (Python package) and panda likes to eat bamboo. We can compare a bamboo plantation with a structured data and realize that you have data without structure imbalance equal a bamboo plantation that has a regular plantation, in other words, the bamboo plantation is a structured plantation that contains bamboos with regular height and width, and spacing between them. As a result, bamboos get arranged like data structured.

#### Keep calm, Bambu hasn't released yet

![](http://media.giphy.com/media/LE5bApm6m0HrG/200.gif)

## Bambu's goals

- Provides a good way to read and manipulate unstructured data;
- Modularize and isolate whenever possible;
- No dependencies (avoid ActiveSupport, etc.);
- Following ruby best practices;
- TDD (Test first!).

## Bambu's modules

- **Reader** (in progress)
  - **Responsibility** for reading raw unstructured data based on user's condition and transform to **Bambu readable format structure**.
- **Mapper** (not developed yet)
  - This module hopes that data has a structure preferably a **Bambu Structure**, but, **might support** other **structures like ActiveRecord::Relation, Struct and etc**.
  - Gives Bambu's power to structure.
- **ResultSet (not an official name, suggestions plzzz)**
  - Should have as input a Bambu structured format (provided by Bambu Reader and Mapper).
  - Bambu's ResultSet implements functions for end-use, if you want to show some data from your Bambu structured format in your Rails application, for example, you may provide through ResultSet.

## Roadmap

Bambu isn't my main focus, but intention is that this roadmap should be followed whenever possible

- Refactor Bambu::Reader;
- Read-only CSV file in Reader module;
- Mapper modeling;
- Initialize Mapper module;
- Mapper reads different source types, but, priorize ActiveRecord::Relation;
- Mapper should provide ways to change column names;
- Mapper should provide ways to infer column types;
- Mapper should provide ways to deal with missing data;
- ResultSet modeling;
- Initialize ResultSet module;
- ResultSet should provide ways to get min value of a column.
- ResultSet should provide ways to get max value of a column.
- ResultSet should provide ways to get the sum of all values of a column.
- ResultSet should provide ways to get avg value of a column.
- ResultSet should provide ways to get descriptive statistics of a column or all.
- Release beta version
- Create demo example
- Create webapp demonstrating use of Bambu
- My **P.O side** will be thinking about more features :D...;

## Developing

**Assuming that you are using RVM**

1. Clone the repo

```bash
git clone https://github.com/leonardocouy/bambu
```

2. Make sure you run ruby 2.4.2

```bash
rvm install ruby-2.4.2
```

3. Go to Bambu's project folder and ensure that you are using specified Ruby version.

```bash
rvm use ruby-2.4.2
```

4. Run!

#### How to run tests?

```bash
rake test
```

## May the Bambu with you!

Contribute to Bambu through pull requests!

If you have a suggestion, creates an issue!

## License

This project is available under the MIT license. See the [LICENSE](LICENSE) file for more info.

license: MIT

repository: leonardocouy/bambu

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: leonardocouy/bambu


text:
# IBM Cloud App ID Android SDK

[![IBM Cloud powered][img-ibmcloud-powered]][url-ibmcloud]
[![Travis][img-travis-master]][url-travis-master]
[![Coverage Status][img-coveralls-master]][url-coveralls-master]
[![Codacy Badge][img-codacy]][url-codacy]
[![Release](https://jitpack.io/v/ibm-cloud-security/appid-clientsdk-android.svg)](https://jitpack.io/#ibm-cloud-security/appid-clientsdk-android)
[![License][img-license]][url-bintray]

[![GithubWatch][img-github-watchers]][url-github-watchers]
[![GithubStars][img-github-stars]][url-github-stars]
[![GithubForks][img-github-forks]][url-github-forks]

## Requirements
* API 27 or above
* Java 8.x
* Android SDK Tools 26.1.1+
* Android SDK Platform Tools 27.0.1+
* Android Build Tools version 27.0.0+

## Installing the SDK:
1.  Add the JitPack repository to the your root `build.gradle` file at the end of the repository.

```gradle
allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
```

2. Add the dependency for the App ID client SDK:
```gradle
dependencies {
        compile 'com.github.ibm-cloud-security:appid-clientsdk-android:6.+'
}
```

3. Within your Android project in Android Studio, open the build.gradle file of your app module (not the project build.gradle), and add the following line to the defaultConfig:
```
defaultConfig {
    ...
    manifestPlaceholders = ['appIdRedirectScheme': android.defaultConfig.applicationId]
}
```

## Initializing the App ID Client SDK

Initialize the client SDK by passing the context, tenantId and region parameters to the initialize method. A common, though not mandatory, place to put the initialization code is in the `onCreate` method of the main activity in your Android application.
```java
AppID.getInstance().initialize(getApplicationContext(), <tenantId>, AppID.REGION_UK);
```
* Replace "tenantId" with the App ID service tenantId.
* Replace the AppID.REGION_UK with your App ID region (AppID.REGION_US_SOUTH, AppID.REGION_SYDNEY).

## Using the Login Widget
Use the `LoginWidget` class to start the authorization flow.

```java
LoginWidget loginWidget = AppID.getInstance().getLoginWidget();
loginWidget.launch(this, new AuthorizationListener() {
    @Override
    public void onAuthorizationFailure (AuthorizationException exception) {
        //Exception occurred
    }

    @Override
    public void onAuthorizationCanceled () {
        //Authentication canceled by the user
    }

    @Override
    public void onAuthorizationSuccess (AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) {
        //User authenticated
    }
});
```
**Note**:

* By default, App ID is configured to use Facebook, Google, and Cloud Directory as identity providers. If you change your identity provider settings to provide only one option, then the Login Widget is not needed and will not display. The user is directed to your chosen identity provider's authentication screen.
* When using Cloud Directory, and "Email verification" is configured to *not* allow users to sign-in without email verification, then the "onAuthorizationSuccess" of the "AuthorizationListener" will be invoked without tokens.

## Managing Cloud Directory with the Android SDK

 Make sure to set Cloud Directory identity provider to ON in AppID dashboard, when using the following APIs.

### Sign in using Resource Owner Password
 You can obtain access token, id token and refresh token by supplying the end user's username and password.
```java
AppID.getInstance().signinWithResourceOwnerPassword(getApplicationContext(), username, password, new TokenResponseListener() {
    @Override
    public void onAuthorizationFailure (AuthorizationException exception) {
        //Exception occurred
    }

    @Override
    public void onAuthorizationSuccess (AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) {
        //User authenticated
    }
});
```

### Sign Up
Make sure to set **Allow users to sign up and reset their password** to **ON**, in the settings for Cloud Directory.
Use the LoginWidget class to start the sign up flow.

```java
LoginWidget loginWidget = AppID.getInstance().getLoginWidget();
loginWidget.launchSignUp(this, new AuthorizationListener() {
    @Override
    public void onAuthorizationFailure (AuthorizationException exception) {
        //Exception occurred
    }

    @Override
    public void onAuthorizationCanceled () {
        //Sign up canceled by the user
    }

    @Override
    public void onAuthorizationSuccess (AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) {
        if (accessToken != null && identityToken != null) {
            //User authenticated
        } else {
            //email verification is required
        }
    }
});
```
### Forgot Password
  Make sure to set **Allow users to sign up and reset their password** and **Forgot password email** to **ON**, in the settings for Cloud Directory

 Use LoginWidget class to start the forgot password flow.
```java
LoginWidget loginWidget = AppID.getInstance().getLoginWidget();
loginWidget.launchForgotPassword(this, new AuthorizationListener() {
    @Override
 	public void onAuthorizationFailure (AuthorizationException exception) {
        //Exception occurred
    }

    @Override
    public void onAuthorizationCanceled () {
        // Forogt password canceled by the user
    }

    @Override
    public void onAuthorizationSuccess (AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) {
        // Forgot password finished, in this case accessToken and identityToken will be null.
    }
});
```
### Change Details
  Make sure to set **Allow users to sign up and reset their password** to **ON**, in Cloud Directory settings that are in AppID dashboard. Use LoginWidget class to start the change details flow. This API can be used only when the user is logged in using Cloud Directory identity provider.

```java
LoginWidget loginWidget = AppID.getInstance().getLoginWidget();
loginWidget.launchChangeDetails(this, new AuthorizationListener() {
    @Override
    public void onAuthorizationFailure (AuthorizationException exception) {
        // Exception occurred
    }

    @Override
    public void onAuthorizationCanceled () {
        // Changed details canceled by the user
    }

    @Override
    public void onAuthorizationSuccess (AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) {
        // User authenticated, and fresh tokens received
    }
});
```
### Change Password
   Make sure to set **Allow users to sign up and reset their password** to **ON**, in the settings for Cloud Directory.

   Use LoginWidget class to start the change password flow. This API can be used only when the user logged in by using Cloud Directory as their identity provider.

```java
LoginWidget loginWidget = AppID.getInstance().getLoginWidget();
loginWidget.launchChangePassword(this, new AuthorizationListener() {
    @Override
    public void onAuthorizationFailure (AuthorizationException exception) {
        // Exception occurred
    }

    @Override
    public void onAuthorizationCanceled () {
        // Change password canceled by the user
    }

    @Override
    public void onAuthorizationSuccess (AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) {
        // User authenticated, and fresh tokens received
    }
});
```

## Anonymous Sign in
```java
AppID.getInstance().signinAnonymously(getApplicationContext(), new AuthorizationListener() {
    @Override
    public void onAuthorizationFailure(AuthorizationException exception) {
        //Exception occurred
    }

    @Override
    public void onAuthorizationCanceled() {
        //Authentication canceled by the user
    }

    @Override
    public void onAuthorizationSuccess(AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) {
        //User authenticated
    }
});
```

## Sign in with refresh token
It is recommended to store the refresh token locally such that it will be possible to sign in with the refresh token without requiring the user to type his credentials again.

```java
AppID.getInstance().signinWithRefreshToken(getApplicationContext(), refreshTokenString, new AuthorizationListener() {
    @Override
    public void onAuthorizationFailure(AuthorizationException exception) {
        //Exception occurred
    }

    @Override
    public void onAuthorizationCanceled() {
        //Authentication canceled by the user
    }

    @Override
    public void onAuthorizationSuccess(AccessToken accessToken, IdentityToken identityToken, RefreshToken refreshToken) {
        //User authenticated
    }
});
```

## Logout
Call the logout function in order to clear the stored tokens.
```java
AppID.getInstance().logout();
```

## Manage User Profiles

Using the App ID UserProfileManager, you are able to create, delete, and retrieve user profile attributes as well as get additional info about a user.

```java
AppID appId = AppID.getInstance();
String name = "name";
String value = "value";

appId.getUserProfileManager().setAttribute(name, value, new UserProfileResponseListener() {
    @Override
    public void onSuccess(JSONObject attributes) {
        // Set attribute "name" to "value" successfully
    }

    @Override
    public void onFailure(UserAttributesException e) {
        // Exception occurred
    }
});

appId.getUserProfileManager().getAttribute(name, new UserProfileResponseListener() {
    @Override
    public void onSuccess(JSONObject attributes) {
        // Got attribute "name" successfully
    }

    @Override
    public void onFailure(UserAttributesException e) {
        // Exception occurred
    }
});

appId.getUserProfileManager().getAllAttributes(new UserProfileResponseListener() {
    @Override
    public void onSuccess(JSONObject attributes) {
        // Got all attributes successfully
    }

    @Override
    public void onFailure(UserAttributesException e) {
        // Exception occurred
    }
});

appId.getUserProfileManager().deleteAttribute(name, new UserProfileResponseListener() {
    @Override
    public void onSuccess(JSONObject attributes) {
        // Attribute "name" deleted successfully
    }

    @Override
    public void onFailure(UserAttributesException e) {
        // Exception occurred
    }
});

// Retrieve user info using the latest stores access and identity tokens
appId.getUserProfileManager().getUserInfo(new UserProfileResponseListener() {
    @Override
    public void onSuccess(JSONObject userInfo) {
        // retrieved user info successfully
    }

    @Override
    public void onFailure(UserInfoException e) {
        // Exception occurred
    }
});

// Retrieve user info using your own accessToken.
// Optionally, pass an identityToken for response verification. (recommended)
appId.getUserProfileManager().getUserInfo(accessToken, identityToken, new UserProfileResponseListener() {
    @Override
    public void onSuccess(JSONObject userInfo) {
        // retrieved user info successfully
    }

    @Override
    public void onFailure(UserInfoException e) {
        // Exception occurred
    }
});
```

## Invoking protected resources
```java
BMSClient bmsClient = BMSClient.getInstance();
bmsClient.initialize(getApplicationContext(), AppID.REGION_UK);

AppIDAuthorizationManager appIdAuthMgr = new AppIDAuthorizationManager(AppID.getInstance())
bmsClient.setAuthorizationManager(appIdAuthMgr);

Request request = new Request("http://my-mobile-backend.mybluemix.net/protected", Request.GET);
request.send(this, new ResponseListener() {

@Override
public void onSuccess (Response response) {
    Log.d("Myapp", "onRegistrationSuccess :: " + response.getResponseText());
}

@Override
public void onFailure (Response response, Throwable t, JSONObject extendedInfo) {
    if (null != t) {
        Log.d("Myapp", "onRegistrationFailure :: " + t.getMessage());
    } else if (null != extendedInfo) {
        Log.d("Myapp", "onRegistrationFailure :: " + extendedInfo.toString());
    } else {
        Log.d("Myapp", "onRegistrationFailure :: " + response.getResponseText());
        }
    }
});
```

## Got Questions?
Join us on [Slack](https://www.ibm.com/cloud/blog/announcements/get-help-with-ibm-cloud-app-id-related-questions-on-slack) and chat with our dev team.

## License
This package contains code licensed under the Apache License, Version 2.0 (the "License"). You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 and may also view the License in the LICENSE file within this package.

[img-ibmcloud-powered]: https://img.shields.io/badge/ibm%20cloud-powered-blue.svg
[url-ibmcloud]: https://www.ibm.com/cloud/
[url-bintray]: https://bintray.com/ibmcloudsecurity/appid-clientsdk-android
[img-license]: https://img.shields.io/github/license/ibm-cloud-security/appid-clientsdk-android.svg
[img-version]: https://img.shields.io/bintray/v/ibmcloudsecurity/maven/appid-clientsdk-android.svg

[img-github-watchers]: https://img.shields.io/github/watchers/ibm-cloud-security/appid-clientsdk-android.svg?style=social&label=Watch
[url-github-watchers]: https://github.com/ibm-cloud-security/appid-clientsdk-android/watchers
[img-github-stars]: https://img.shields.io/github/stars/ibm-cloud-security/appid-clientsdk-android.svg?style=social&label=Star
[url-github-stars]: https://github.com/ibm-cloud-security/appid-clientsdk-android/stargazers
[img-github-forks]: https://img.shields.io/github/forks/ibm-cloud-security/appid-clientsdk-android.svg?style=social&label=Fork
[url-github-forks]: https://github.com/ibm-cloud-security/appid-clientsdk-android/network

[img-travis-master]: https://travis-ci.org/ibm-cloud-security/appid-clientsdk-android.svg
[url-travis-master]: https://travis-ci.org/ibm-cloud-security/appid-clientsdk-android

[img-coveralls-master]: https://coveralls.io/repos/github/ibm-cloud-security/appid-clientsdk-android/badge.svg?branch=master
[url-coveralls-master]: https://coveralls.io/github/ibm-cloud-security/appid-clientsdk-android?branch=master

[img-codacy]: https://api.codacy.com/project/badge/Grade/be6f5f4cdae446909279d014bc650b1b
[url-codacy]: https://www.codacy.com/app/rotembr/appid-clientsdk-android?utm_source=github.com&utm_medium=referral&utm_content=ibm-cloud-security/appid-clientsdk-android&utm_campaign=Badge_Grad

repository: yousufshawon/appid-clientsdk-android

repo_name: yousufshawon/appid-clientsdk-android


text:
# iframe-based Wallet

## Overview
This is a sample Wallet that expects an Aepp to be loaded into its iframe.

### How it works
1. Start this Wallet, which will start on port `9000`
2. Start the [sample Contract Aepp](../aepp), which will start on port `9001`
3. Visit [localhost:9000](http://localhost:9000) to see the Aepp included into this Wallet

## Installation and running
1. Install required dependencies with `npm install`
1. Start the application `npm run start:dev`

license: ISC

repository: hackbg/aepp-sdk-js

repo_name: hackbg/aepp-sdk-js


text:
# react-native-layout-constants

## Getting Started

- [Installation](#installation)

### Installation

```bash
$ npm install react-native-layout-constants
```


text:
---
layout: post
title: DesignPattern - Interpreter
tags:
- DesignPattern
---
Interpreter

 - A component that processes structured text data.

 - Does so by turning it into separate lexical tokens(lexing)

 - interpreting sequences of said tokens(parsing)

[Basic idea]

 - Textual input needs to be processed.

 : E.g., turned into OOP structures

 - Some examples

 : Programming language compilers, interpreters and IDEs

 : HTML, XML and similar

 : Numeric expressions (3+4/5)

 : Regular expressions

 - Turning strings into OOP based structures in a complicated process.

[Summary]

 - Barring simple class, an interpreter acts in two stages

 - Lexing turns text into a set of tokens

 : E.g., 3*(4+5) -> Lit[3] Star Lparen Lit[4] Plus Lit[5] Rparen

 - Parsing tokens into meaningful constructs

 : MultiplicationExpression[Integer[3], AdditionExpression[Integer[4], Integer[5]]]

 - Parsed data can then be traversed.

Here is sample code about Interpreter pattern

View Interpreter Sample

branch_name: refs/heads/main


text:
# Perseus

Perseus is a WIP **in-browser Python-to-JavaScript compiler**.

The goal is to have standalone cross-browser pretty-printed JavaScript output.  In the far future, additional support for translation to [Node.js][] modules will be implemented as well.

You can look over the code on [github](http://github.com/onurkaraman/perseus), or the annotated source [here](http://onurkaraman.github.com/perseus/docs/bool.html).

## Why use it?

- Translate server-side Python code into server-side JavaScript/[Node.js][], for a free performance boost and natural interfacing between server and clients.
- If you just want Python to work in the browser.

##  How it works

The syntactic translation consists of two steps:

- **Parse the Python code into an [Abstract Syntax Tree](http://en.wikipedia.org/wiki/Abstract_syntax_tree) (AST).**

- **Translate each AST node into equivalent Javascript code.**

  By following the Python abstract grammar, we can translate the lowest level nodes, and *recursively* translate their parents, and those parents' parents, etc. in a bottom-up translation scheme.

The semantic translation consists of one step:

- **Load a JavaScript translation of the Python 'built-in' types, functions, etc.**

  We need to do this because these are Python-implementation-dependent.  In CPython (the default implementation of Python), these are written in C (no kidding!), so we *can't* translate these over using Perseus.

## What's left

Work-in-progress is no exaggeration.  While we have the basic functionality down enough for a proof-of-concept, there are lots of things we still need to do:

- **Translate the AST parser into JavaScript**

  We're using the Python standard library [ast](http://docs.python.org/library/ast.html) module right now, but in order for Perseus to completely work in the browser, we need to convert this to JavaScript.
  We should be able to do this using Perseus itself, but as a fallback we could generate a Python parser in JavaScript using [Jison][].

- **Finish AST node translations**

  A brief skim through `src/nodes` will show that there are still a few that haven't been implemented yet, which includes classes, variable/keyword arguments, and import statements.

- **Translate AST node translator into JavaScript**

  As soon as we translate the built-in dependencies, we can translate our translator, using Perseus itself once again.

- **Finish translation of Python's built-ins**

  Only a small subset of the built-in functions have been complete so far, but a quick look through the source code shows that their implementations are mostly trivial.
  Some of Python's built-in types, such as strings, have additional [methods](http://docs.python.org/library/stdtypes.html#string-methods) that need need further translation.

- **Resolve packing/unpacking issue**

  Perseus-translated functions currently take Perseus objects (such as `Int`, `Num`, `Tuple`) as input, and produce them as output.  This is undesirable because the user can't natively use the translated functions without knowing how to convert
  their arguments into Perseus classes, as in the case of built-in JavaScript primitives.  This should be solvable using `Perseus.pack()` and `Perseus.unpack()` functions and some ingenuity.

- **Miscellaneous**
  - Optimize JavaScript translation of Python built-ins to only include those necessary to run the translated Python code.
  - Ensure compatibility with [JSLint][], and add cross-browser support for JavaScript translation of Python built-ins (e.g. `String.indexOf()` in IE before version 9)
  - Command line tool for some niceties such as concatenating different Python files before translation.

## Credits

- [CoffeeScript][] - CoffeeScript is a little language that compiles into JavaScript.
- [Docco][] - Docco is a quick-and-dirty, hundred-line-long, literate-programming-style documentation generator.
- [Jison][] - Jison generates bottom-up parsers in JavaScript.
- [JSLint][] - The JavaScript Code Quality Tool
- [Markdown][] - Markdown is a text-to-HTML conversion tool for web writers.
- [Node.js][] - Node.js is a server-side JavaScript environment that uses an asynchronous event-driven model.

[CoffeeScript]: http://coffeescript.org
[Docco]: https://github.com/jashkenas/docco
[Jison]: https://github.com/zaach/jison
[JSLint]: http://www.jslint.com/
[Markdown]: http://daringfireball.net/projects/markdown/
[Node.js]: http://nodejs.org/

repository: gvsurenderreddy/perseus

repo_name: gvsurenderreddy/perseus


text:
---
layout: default
---

# 1995-01-11 - Re: Remailer traffic loads?

## Header Data

From: "L. McCarthy"<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: 124f8e74be3fe919a348b1fd2dc42e3bd8cf237987c96e697c53ba34b49422f1

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1995-01-11 23:50:04 UTC

Raw Date: Wed, 11 Jan 95 15:50:04 PST

## Raw message

```
{% raw  %}From: "L. McCarthy"<EMAIL_ADDRESS>Date: Wed, 11 Jan 95 15:50:04 PST
To<EMAIL_ADDRESS>Subject: Re: Remailer traffic loads?
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

-----BEGIN PGP SIGNED MESSAGE-----

> Is there someplace that remailer operators routinely post information
> about traffic load?

Remailers operating Matt Ghio's or Lance Cottrell's software should autoreply
to a message with "Subject: remailer-stats" with a bar chart indicating the
number of messages remailed in each of the past 24 hours.
- ---
[This message has been signed by an auto-signing service.  A valid signature
means only that it has been received at the address corresponding to the
signature and forwarded.]

-----BEGIN PGP SIGNATURE-----
Version: 2.6.2
Comment: Gratis auto-signing service

iQBFAwUBLxRvwioZzwIn1bdtAQFdEQF/dTXM3ii1pAHUV108kMx8N3urhv/HAHQc
IZHLEqfOcNTDaV6ZrDxuT+0AZzhdu8rL
=ZKwP
-----END PGP SIGNATURE-----

{% endraw %}
```

## Thread

+ Return to [January 1995](/archive/1995/01)

+ Return to "["L. McCarthy" <lmccarth@ducie.cs.umass.edu>](/authors/l_mccarthy_lmccarth_at_ducie_cs_umass_edu_)"

+ 1995-01-11 (Wed, 11 Jan 95 15:50:04 PST) - Re: Remailer traffic loads? - _"L. McCarthy"<EMAIL_ADDRESS>

gha_license_id: MIT


text:
Nick presented the visualization to Andrew's colleagues on Fri, Aug 21st. The demo was well receievd and people offered good constructive feedback.

#Short term TODO:
 - [x] Fix buttons for Entopy and Mismatch; confusing because they look like column headings
 - [x] Fix color for a matched AA; currently its the same as the residue R (gray) and should be different
 - [x] Add back the option to display AA frequencies colored by physico chemical properties
 - [x] Display amino acid resiude in sequence map when the bars are zoomed wide enough so that it fits
 - [x] Fix data loading to match the new file specifciation (see `file_spec.md`)
 - [x] Replace "Mismatch" with "Distance" in the table.
 - [x] Add ability to display q-value
 - [x] Substitue letters V and P for Vaccine and Placebo to make more space for AA frequency bars on the right side
 - [x] Overlay dots on the box plot
 - [x] Add visit counter
 - [x] Selection through URL (?sites=347...) using HXB2 site references. Allows sharing of a viz (w/ a selection) via a link.
 - [x] Change all references of "patients" to "participants"
 - [x] Live demo thats quickly show basic functionality
 - [x] Remove bar plot for non-discrete distances
 - [x] Implementation and server space at FHCRC (address is http://sieve.fhcrc.org/viz)
 - [ ] Download link for a zip file of all the data in the visualization
 - [ ] Link and citation of the primary sieve analysis as well as the primary study manuscripts
 - [ ] Check and recheck (and recheck...) that only pubIDs and publicly available data is shared
 - [x] Add jitter to the boxplot
 - [x] Fix bug with table sorting
 - [ ] Fix bug with overview bars for sieve statistic encoding - HLA, MBS, DVE not centered vertically
 - [ ] Alphabetically sort entries in distance and y-stat dropdown
 - [ ] Rotate box plot (make vertical)
 - [ ] Increase opacity of unselected overview bars
 - [ ] Text that says "Hold shift and drag to select sites". Add to site selector large grayed text that reads “Hold Shift-key and drag to select” when the user first lands on the page; disappears after selection is made

#Long term TODO:
 - [ ] Use database instead of files to hold all sieve analysis results. This will also help with generalizing to kmers and other distances. (will also help with staging data prior to publication)
 - [ ] Allow switching between different genetic distances
 - [ ] Generalize to k-mers (where a site is equivalent to a 1mer). This means changing the xlabel to HXB2 start position, when k>1. Also the sites that get displayed at the right would include a unique list of all sites included in the k-mer with the associated start positions (e.g. selecting one start position in a 9mer-based analysis would highlight 9 sites n the right, but only show a distance for 1)
 - [ ] Dynamic multiplicity adjustment: compute q-values for selected sites using a standard method (could be simply Bonferroni at first, but FDR would be nice)
 - [ ] Highlight significant sites and add ability to select based on significance threshold
 - [ ] Computational backend with [pysieve](https://github.com/agartland/pysieve) that allows user to upload data

#No longer TODO:
- [x] Add link to LANL tool for highlighting sites on an HIV Envelope 3D structure (when applicable)
- [x] Logo plots by treatment group instead of the sequence map (but would be very busy, so should not be default option). See this [code snippet](http://jsfiddle.net/QcPZ9/) for help.

repository: domoritz/SIEVE

repo_name: domoritz/SIEVE


text:
<img src="https://assets.datacamp.com/production/course_58/shields/original/shield_image_course_58_20171014-212-smydbp?1507963258" alt="Introduction to R" width="250x" height="250x">

# [DataCamp - Introduction to R](https://www.datacamp.com/courses/free-introduction-to-r/)

## Course Description

In this introduction to R, you will master the basics of this beautiful open source language, including factors, lists and data frames. With the knowledge gained in this course, you will be ready to undertake your first very own data analysis. With over 2 million users worldwide R is rapidly becoming the leading programming language in statistics and data science. Every year, the number of R users grows by 40% and an increasing number of organizations are using it in their day-to-day activities. Leverage the power of R by completing this free R online course today!

#### Chapters

1) Intro to basics
2) Vectors
3) Matrices
4) Factors
5) Data frames
6) Lists

### Prerequisites

[R](https://cran.r-project.org/bin/) - R is an open source programming language and software environment for statistical computing and graphics that is supported by the R Foundation for Statistical Computing.
[RStudio](https://www.rstudio.com/products/rstudio/download/) - RStudio is a set of integrated tools designed to help you be more productive with R. It includes a console, syntax-highlighting editor that supports direct code execution, and a variety of robust tools for plotting, viewing history, debugging and managing your workspace.

### Built with

[R Markdown](http://rmarkdown.rstudio.com/) - R Markdown is a lightweight markup language with plain text formatting syntax. It is designed so that it can be converted to HTML and many other formats.

## Authors

* [**Luka Ignjatović**](https://www.linkedin.com/in/lukaignjatovic/) - [GitHub](https://github.com/LukaIgnjatovic)

## Acknowledgments

* The course is taught by [Jonathan Cornelissen](https://www.datacamp.com/instructors/jonathanauthor).
* All the initial code from this course is the property of respective authors and DataCamp.

### License

This project is licensed under the MIT License - see the [LICENSE](LICENSE.md) file for details.


text:
BWS-iOS
=========

BWS iOS CaptureViewController for app integration
---------------------------------------------------

The **BioID Web Service** (BWS) is a cloud-based online service providing a powerful multimodal biometric technology with liveness detection
to application developers. But often developers have some trouble writing a user interface for collecting the data required to perform the biometric tasks,
notably face images. Therefore we want to provide some sample code that might be used in iOS to interact with the BWS.

The **captureView** folder contains everything you typically need to run a biometric task from your iOS app. To see how to implement this source code into your app please take a look at [GUIDE] (GUIDE.md).

### Example:
Complete sample for biometric enrollment and verification is provided in the **sample** folder.

To successfully run the sample iOS app, you need to have access to an existing BWS installation. If you don't have this access you can [register for a trial instance](https://playground.bioid.com/BioIDWebService/TrialInstanceRequisition).

You can also try out the BioID [facial recognition app](https://mobile.bioid.com/) with identity management using BioID Connect - available via [iTunes App Store] (https://itunes.apple.com/us/app/bioid-facial-recognition-authenticator/id1054317153).

repository: beaubol/BWS-iOS

repo_name: beaubol/BWS-iOS


text:
# display-Store-Items

## Feature

Displays the store items category wise

## Acceptance Criteria

### Scenario 1 : Player clicks on "Paddles" category on store

Given player is on store page which displays item categories

When player clicks on one of "Paddles" category

Then the display-Store-Items displays various paddles with features like
different colors, sizes, hardness and styles and require game coins to
purchase

### Scenario 2 : Player clicks on "Pong Balls" category on store

Given player is on store page which displays item categories

When player clicks on one of "Pong Balls" category

Then the display-Store-Items displays various pong balls with features like
different colors and designs and require game coins to purchase

### Scenario 3 : Player clicks on "Game Arenas" category on store

Given player is on store page which displays item categories

When player clicks on one of "Game Arenas" category

Then the display-Store-Items displays various game arenas with features like
different themes, effects and music and require game coins to purchase

repository: Engin-Boot/pong-stage-aditiambadkar

repo_name: Engin-Boot/pong-stage-aditiambadkar


text:
LogoMOTION
==========

## Commands

- *fd [NUMBER]* - moves forward
- *lt [ANGLE]* - rotates left
- *rt [ANGLE]* - rotates right
- *penDown* - hides the pen
- *penUp* - lowers the pen
- *clear* - clears screen
- *example* - shows example drawing


text:
---
widget: featurette
headless: true
active: true
weight: 20

title: Ministries
subtitle: What We Do

feature:
  - icon: cross
    icon_pack: fas
    name: Evangelism
    description: We believe everyone has the right to hear the good news about Jesus and our prayer is to see fellowships of believers worshipping and following Jesus in every nation, tribe and tongue.

We use music, performing arts, sports, and Bible distribution to connect with people of all ages. YWAM also starts discipleship groups in places where there may be no church at all.
  - icon: bible
    icon_pack: fas
    name: Training
    description: YWAM's introductory course, the Discipleship Training School (YWAM DTS), is offered in many nations and languages. It’s an intensive six months of growing more like Jesus and serving Him in the world.

Through our training programs and YWAM’s University of the Nations we aim to equip Christians to grow in their relationship with God and to serve others. Our courses focus on subjects like healthcare, the Bible, business development and biblical counselling.
  - icon: heart
    icon_pack: fas
    name: Mercy
    description: YWAM’s mercy ministry teams follow Jesus’ example of compassion to those in need. We operate relief and development programs in over 100 countries, working among people living in desperate circumstances.

Our staff serve in areas such as agricultural assistance, the prevention of human trafficking, ship-based dental care, and micro-enterprise development.

---


text:
NodeJS with Socket.io
============

  If you ever want to create a real time web interface, you probably should learn about web sockets.
  A very good javascript library is Socket.io. It starts off with websockets and if the browser doesn't support that technology,
  it will switch to long polling or another technology. It is extremely simple to implement.

Installation

```shell
# ### in terminal ###
npm install --save socket.io

# look at my bower guide
npm install --save bower
bower install --save socket.io-client
bower install --save jquery
```

CLIENT

  Add jquery and socket.io to your html page

```html
<!-- ### in views/index.ejs or an html file ### -->
<script type='text/javascript' src='/bower_components/socket.io-client/socket.io.js'></script>
<script type='text/javascript' src='/bower_components/jquery/dist/jquery.min.js'></script>
<script type='text/javascript' src='/javascripts/index.js'></script>
```

  Now that you have the libraries, you have to use them. Lets first do the client side.

```javascript
// ### in public/javascripts/index.js ###
(function($){
  // initialize socket.io
  var socket = io();

  // Send a message to the server
  socket.emit('chat message', 'I\'m saying things from client');

  // Receive message
  socket.on('chat message', function(msg) {
    console.log(msg);
  });
})(jQuery);
```

SERVER

  Now we need to setup the server.

```javascript
// ### in app.js ###

// at the end of the file
var io = require('socket.io')(server);
routes.init(io);
```

  We need to tell socket.io on the server side what to do, so create a function to handle that.
  I put that method in routes/index.js but you can put it anywhere.

```javascript
// ### in routes/index.js ###

exports.init = function(io) {
  // Connect
  io.on('connection', function(socket){
    console.log('user connected ' + socket.id);

    // Disconnect
    socket.on('disconnect', function(){
      console.log('user disconnected ' + socket.id);
    });

    // Chat Message event handler
    socket.on('chat message', function(msg){
      console.log('user ' + socket.id + ': ' + msg);
      // Send to everyone except for this socket
      socket.broadcast.emit('chat message', msg);

      // Send to everyone including this socket
      socket.emit('chat message',msg);
    });
  });
};
```

repository: GabrielGhe/NodePractice

gha_language: JavaScript

repo_name: GabrielGhe/NodePractice


text:
![](https://i.imgur.com/5LYYO2j.png)

## Background

[Measurecamp](https://measurecamp.org/) is a open, free-to-attend unconference founded in 2012. In 2018 it is expected 17 or more Measurecamps will be hosted across the world. Anyone is welcome and invited to talk at a Measurecamp and talk sessions are organised around a set number of rooms (usually 4-6) and a given number of talk slots (typically 20-30 minutes).

The time and location of a talk is written down and organised on a physical board (e.g., a pinboard) in a common area during the unconference. Talks may be added, removed, moved and edited throughout the course of the day.

## Philosophy

Measureboard is designed to *augment* rather than replace the physical Measurecamp board. It's quite often useful when you can't or aren't able to see the sessions on the physical board. Measureboard is heavily inspired by the original Measurecamp board first used in Columbus implemented by [Vitaliy](https://github.com/vitaluha/measurecampboard).

This board was first trialled at [Measurecamp Auckland](http://auckland.measurecamp.org/) in 2018.

Measureboard is released under the permissive MIT License. To contribute please first create an issue for the repository and open a pull request.

## Technology

The frontend to the software is a simple [Vue](https://vuejs.org/) application with a small amount of state handling for favourites and room filtering. The Semantic UI Vue plugin is used to provide Semantic UI components to render.

The backend data source for the application is a Google Sheet using the following [template](https://docs.google.com/spreadsheets/d/1NnJroBAvuceVG3nRrYKySbXVRd5rez9gP0qiF7lKCrc). This is currently been refactored to use Firestore (Firebase) instead.

Updates to the Google Sheet (e.g., room changes, talk title changes) are pushed to the front end in real time using [Pusher](https://pusher.com/) which acts as a simple pubsub messaging interface over websockets. Updates to the Google Sheet are typically reflected in the interface within 2-5 seconds and do not require the client to refresh the web page.

## Setup

Configure the `index.html` file and fill in the relevant Google Sheet URL, Pusher credentials and GTM container ID. You will need a free (or paid) Pusher account in order to use the sync. A free Pusher account allows for 100 concurrent connections and 200k messages per day.

### Google Tag Manager

You'll need to set up a container for GTM and update `index.html` with that container in two places. Then set up the container to do the tagging.

1. Set up a variable for dataLayer variable `title` to take the session title when pushed to the dataLayer.
2. Set up triggers for custom events `Add favourite`, `Board update` and `Removed favourite`.
3. Set up tags for `All pages` and then custom events for the other triggers.

## Hosting

As the app is a single HTML file serving static assets it can be hosted on any service that allows access to static files publically. Instructions are included below for deployment on AWS and GCP.

### Amazon Web Services (AWS)
1. Create a new bucket on Amazon S3 and enable public access.
2. Define the name of your bucket in `deploy_aws.sh` and run `./deploy_aws.sh`
3. Visit your page at https://s3-REGION.amazonaws.com/BUCKET/index.html

### Google Cloud Platform (GCP)
1. Create a new bucket using Google Cloud Storage and enable public access.
2. Define the name of your bucket in `deploy_gcp.sh` and run `./deploy_gcp.sh`
3. Visit your page at https://storage.googleapis.com/BUCKET/index.html

## Limitations

- Doesn't render text that well on low DPI (e.g., large LED displays)
- Data has to be manually entered into the Google Spreadsheet and modified if changes occur
- Can't yet be hosted on Wordpress using *.measurecamp.org (Wordpress doesn't render iframes without plugins)

## Future improvements

- Add fiducial markers (likely QR codes) to each physical Measurecamp board card and use to sync with the Google Sheet instead of manually data entry.
- Multiple display mode options (mobile device, tablet device, television screen, LED display)
- Use consistent branding (colour scheme, iconography) with the Measurecamp brand
- Use favourites/RSVPs to gauge talk interest and use to dynamically reassign rooms based on predicted session popularity
- Display real time visualisations of what is occurring on the board (basic version exist of this)

repository: miike/measureboard

gha_language: HTML

repo_name: miike/measureboard


text:
Cross-site scripting (or XSS) is #3 on the 2013 [OWASP Top Ten](https://www.owasp.org/index.php/Top_10_2013-A3-Cross-Site_Scripting_(XSS\)) web security risks and it pops up nearly everywhere.

XSS occurs when a user-controlled value is displayed on a web page without properly escaping it, allowing someone to inject Javascript or HTML into the page which will be interpreted and executed by the browser..

In Rails 2.x, values need to be explicitly escaped (e.g., by using the `h` method). Since Rails 3.x, auto-escaping in views is enabled by default. However, one can still use the `raw` or `html_safe` methods to output a value directly.

See [the Ruby Security Guide](http://guides.rubyonrails.org/security.html#cross-site-scripting-xss) for more details.

### Query Parameters and Cookies

ERB example:

    <%= params[:query].html_safe %>

Railroader looks for several situations that can allow XSS. The simplest is like the example above: a value from the `params` or `cookies` is being directly output to a view. In such cases, it will issue a warning like:

    Unescaped parameter value near line 3: params[:query]

By default, Railroader will also warn when a parameter or cookie value is used as an argument to a method, the result of which is output unescaped to a view.

For example:

    <%= raw some_method(cookie[:name]) %>

This raises a warning like:

    Unescaped cookie value near line 5: some_method(cookies[:oreo])

However, the confidence level for this warning will be weak, because it is not directly outputting the cookie value.

Some methods are known to Railroader to either be dangerous (`link_to` is one) or safe (`escape_once`). Users can specify safe methods using the `--safe-methods` option. Alternatively, Railroader can be set to _only_ warn when values are used directly with the `--report-direct` option.

### Model Attributes

Because (many) models come from database values, Railroader mistrusts them by default.

For example, if `@user` is an instance of a model set in an action like

    def set_user
      @user = User.first
    end

and there is a view with

    <%= @user.name.html_safe %>

Railroader will raise a warning like

    Unescaped model attribute near line 3: User.first.name

If you trust all your data (although you probably shouldn't), this can be disabled with `--ignore-model-output`.

repository: david-a-wheeler/railroader

extension: markdown

gha_language: Ruby

repo_name: david-a-wheeler/railroader


text:
# Returning response body in middleware

#### Why This Error Occurred

Your [`middleware`](https://nextjs.org/docs/advanced-features/middleware) function returns a response body, which is not supported.

Letting middleware respond to incoming requests would bypass Next.js routing mechanism, creating an unnecessary escape hatch.

#### Possible Ways to Fix It

Next.js middleware gives you a great opportunity to run code and adjust to the requesting user.

It is intended for use cases like:

- A/B testing, where you **_rewrite_** to a different page based on external data (User agent, user location, a custom header or cookie...)

  ```js
  export function middleware(req: NextRequest) {
    let res = NextResponse.next()
    // reuses cookie, or builds a new one.
    const cookie = req.cookies.get(COOKIE_NAME) ?? buildABTestingCookie()

    // the cookie contains the displayed variant, 0 being default
    const [, variantId] = cookie.split('.')
    if (variantId !== '0') {
      const url = req.nextUrl.clone()
      url.pathname = url.pathname.replace('/', `/${variantId}/`)
      // rewrites the response to display desired variant
      res = NextResponse.rewrite(url)
    }

    // don't forget to set cookie if not set yet
    if (!req.cookies.has(COOKIE_NAME)) {
      res.cookies.set(COOKIE_NAME, cookie)
    }
    return res
  }
  ```

- authentication, where you **_redirect_** to your log-in/sign-in page any un-authenticated request

  ```js
  export function middleware(req: NextRequest) {
    const basicAuth = req.headers.get('authorization')

    if (basicAuth) {
      const auth = basicAuth.split(' ')[1]
      const [user, pwd] = atob(auth).split(':')
      if (areCredentialsValid(user, pwd)) {
        return NextResponse.next()
      }
    }

    return NextResponse.redirect(
      new URL(`/login?from=${req.nextUrl.pathname}`, req.url)
    )
  }
  ```

- detecting bots and **_rewrite_** response to display to some sink

  ```js
  export function middleware(req: NextRequest) {
    if (isABotRequest(req)) {
      // Bot detected! rewrite to the sink
      const url = req.nextUrl.clone()
      url.pathname = '/bot-detected'
      return NextResponse.rewrite(url)
    }
    return NextResponse.next()
  }
  ```

- programmatically adding **_headers_** to the response, like cookies.

  ```js
  export function middleware(req: NextRequest) {
    const res = NextResponse.next(null, {
      // sets a custom response header
      headers: { 'response-greetings': 'Hej!' },
    })
    // configures cookies
    res.cookies.set('hello', 'world')
    return res
  }
  ```

branch_name: refs/heads/canary


text:
# ☘ Lucky Jumpstart

This is a template project for web applications using [Lucky](https://luckyframework.org).

![Lucky Jumpstart CI](https://github.com/stephendolan/lucky_jumpstart/workflows/Lucky%20Jumpstart%20CI/badge.svg)

### How to use it?

1. Click [this link](https://github.com/stephendolan/lucky_jumpstart/generate)
1. Run `./script/setup`
1. Run `crystal run .jumpstart/init.cr`
1. Run `lucky dev`

### Why use a template?

There are quite a few things I find myself adding to every Lucky application out of the box, and this serves as a bit of a better starting point than the default generated application.

### What's in the box?

#### Development

- 🐳   A [DockerCompose](https://docs.docker.com/compose/) file for running your application database, included in `Procfile.dev`

#### Dependencies

- 💎   Up-to-date Crystal dependencies
- 🧶   Up-to-date Yarn dependencies

#### Tooling

- 💨   [TailwindCSS 2.0](https://tailwindcss.com) for better styling
- 🖋   [Tailwind Typography](https://tailwindcss.com/docs/typography-plugin) for prose
- 📝   [Tailwind Forms](https://github.com/tailwindlabs/tailwindcss-forms) to make styling forms easier
- 🖥   [Tailwind Aspect Ratio](https://github.com/tailwindlabs/tailwindcss-aspect-ratio) for setting fixed aspect ratios
- 🎉   [StimulusJS](https://stimulusjs.org) for JavaScript sprinkles
- 🚀   [TypeScript](https://typescript.org) for keeping JavaScript cleaner

#### Functionality

- 📧   Email confirmation of users

#### CI/CD

- 🤖   A handy dandy [Dependabot](https://dependabot.com/) configuration file, and a workflow to handle auto-merging

- A working GitHub Actions workflow with:
  - 💃   [Prettier](https://prettier.io/)
  - 💎   [Crystal Format](https://crystal-lang.org/reference/using_the_compiler/#crystal-tool-format)
  - 🦠   [Ameba](https://github.com/crystal-ameba/ameba)
  - 👓   [Crystal Spec](https://crystal-lang.org/api/latest/Spec.html)

#### Deployment options

- 🐳   [Docker](https://www.docker.com), which enables any Dockerfile-based deployment like:
  - [Render](https://render.com)
  - [Digital Ocean Apps Platform](https://www.digitalocean.com/products/app-platform)
- 🟩   [Render](https://render.com) with a built-in `render.yaml` file
- 👾   [Heroku](https://luckyframework.org/guides/deploying/heroku) with a built-in `Procfile` file

repository: LuckyCastsVideos/basic-file-uploads

gha_language: Crystal

repo_name: LuckyCastsVideos/basic-file-uploads


text:
# JSL: JAX State-Space models (SSM) Library

JSL is a JAX library for Bayesian inference in state space models.
As of 2022-06-28, JSL is **deprecated**. You should use  [ssm-jax](https://github.com/probml/ssm-jax).

# Installation

We assume you have already installed [JAX](https://github.com/google/jax#installation) and
[Tensorflow](https://www.tensorflow.org/install),
since the details on how to do this depend on whether you have a CPU, GPU, etc.
(This step is not necessary in Colab.)

Now install these packages:

```
!pip install --upgrade git+https://github.com/google/flax.git
!pip install --upgrade tensorflow-probability
!pip install git+https://github.com/blackjax-devs/blackjax.git
!pip install git+https://github.com/deepmind/distrax.git
```

Then install JSL:
```
!pip install git+https://github.com/probml/jsl
```
Alternatively, you can clone the repo locally, into say `~/github/JSL`, and then install it as a package, as follows:
```
!git clone https://github.com/probml/JSL.git
cd JSL
!pip install -e .
```

# Running the demos

You can see how to use the library by looking at some of the demos.
You can run the demos from inside a notebook like this
```
%run JSL/jsl/demos/kf_tracking.py
%run JSL/jsl/demos/hmm_casino_em_train.py
```

Or from inside an ipython shell like this
```
from jsl.demos import kf_tracking
figdict = kf_tracking.main()
```

Most of the demos create figures. If you want to save them (in both png and pdf format),
you need to specify the FIGDIR environment variable, like this:
```
import os
os.environ["FIGDIR"]='/Users/kpmurphy/figures'

from jsl.demos.plot_utils import savefig
savefig(figdict)
```

# Authors

Gerardo Durán-Martín ([@gerdm](https://github.com/gerdm)), Aleyna Kara([@karalleyna](https://github.com/karalleyna)), Kevin Murphy ([@murphyk](https://github.com/murphyk)), Giles Harper-Donnelly ([@gileshd](https://github.com/gileshd)), Peter Chang ([@petergchang](https://github.com/petergchang)).

repository: probml/JSL

gha_language: Python

repo_name: probml/JSL


text:
# Jovian Docker

[Jovian](https://github.com/DennisSchmitz/Jovian) Jovian is a Viromics toolkit to automatically process raw NGS data from human clinical samples into clinically relevant information.

```
docker build -t jovian-docker .
docker run -it jovian-docker
```

repository: rmwthorne/jovian-docker

repo_name: rmwthorne/jovian-docker


text:
---
permalink: /1.3/nogroup/v1beta1/issuer/
---

# nogroup.v1beta1.issuer

An Issuer represents a certificate issuing authority which can be referenced as part of `issuerRef` fields. It is scoped to a single namespace and can therefore only be referenced by resources within the same namespace.

## Index

* [`fn new(name)`](#fn-new)
* [`obj metadata`](#obj-metadata)
  * [`fn withAnnotations(annotations)`](#fn-metadatawithannotations)
  * [`fn withAnnotationsMixin(annotations)`](#fn-metadatawithannotationsmixin)
  * [`fn withClusterName(clusterName)`](#fn-metadatawithclustername)
  * [`fn withCreationTimestamp(creationTimestamp)`](#fn-metadatawithcreationtimestamp)
  * [`fn withDeletionGracePeriodSeconds(deletionGracePeriodSeconds)`](#fn-metadatawithdeletiongraceperiodseconds)
  * [`fn withDeletionTimestamp(deletionTimestamp)`](#fn-metadatawithdeletiontimestamp)
  * [`fn withFinalizers(finalizers)`](#fn-metadatawithfinalizers)
  * [`fn withFinalizersMixin(finalizers)`](#fn-metadatawithfinalizersmixin)
  * [`fn withGenerateName(generateName)`](#fn-metadatawithgeneratename)
  * [`fn withGeneration(generation)`](#fn-metadatawithgeneration)
  * [`fn withLabels(labels)`](#fn-metadatawithlabels)
  * [`fn withLabelsMixin(labels)`](#fn-metadatawithlabelsmixin)
  * [`fn withManagedFields(managedFields)`](#fn-metadatawithmanagedfields)
  * [`fn withManagedFieldsMixin(managedFields)`](#fn-metadatawithmanagedfieldsmixin)
  * [`fn withName(name)`](#fn-metadatawithname)
  * [`fn withNamespace(namespace)`](#fn-metadatawithnamespace)
  * [`fn withOwnerReferences(ownerReferences)`](#fn-metadatawithownerreferences)
  * [`fn withOwnerReferencesMixin(ownerReferences)`](#fn-metadatawithownerreferencesmixin)
  * [`fn withResourceVersion(resourceVersion)`](#fn-metadatawithresourceversion)
  * [`fn withSelfLink(selfLink)`](#fn-metadatawithselflink)
  * [`fn withUid(uid)`](#fn-metadatawithuid)
* [`obj spec`](#obj-spec)
  * [`obj spec.acme`](#obj-specacme)
    * [`fn withDisableAccountKeyGeneration(disableAccountKeyGeneration)`](#fn-specacmewithdisableaccountkeygeneration)
    * [`fn withEmail(email)`](#fn-specacmewithemail)
    * [`fn withEnableDurationFeature(enableDurationFeature)`](#fn-specacmewithenabledurationfeature)
    * [`fn withPreferredChain(preferredChain)`](#fn-specacmewithpreferredchain)
    * [`fn withServer(server)`](#fn-specacmewithserver)
    * [`fn withSkipTLSVerify(skipTLSVerify)`](#fn-specacmewithskiptlsverify)
    * [`fn withSolvers(solvers)`](#fn-specacmewithsolvers)
    * [`fn withSolversMixin(solvers)`](#fn-specacmewithsolversmixin)
    * [`obj spec.acme.externalAccountBinding`](#obj-specacmeexternalaccountbinding)
      * [`fn withKeyAlgorithm(keyAlgorithm)`](#fn-specacmeexternalaccountbindingwithkeyalgorithm)
      * [`fn withKeyID(keyID)`](#fn-specacmeexternalaccountbindingwithkeyid)
      * [`obj spec.acme.externalAccountBinding.keySecretRef`](#obj-specacmeexternalaccountbindingkeysecretref)
        * [`fn withKey(key)`](#fn-specacmeexternalaccountbindingkeysecretrefwithkey)
        * [`fn withName(name)`](#fn-specacmeexternalaccountbindingkeysecretrefwithname)
    * [`obj spec.acme.privateKeySecretRef`](#obj-specacmeprivatekeysecretref)
      * [`fn withKey(key)`](#fn-specacmeprivatekeysecretrefwithkey)
      * [`fn withName(name)`](#fn-specacmeprivatekeysecretrefwithname)
  * [`obj spec.ca`](#obj-specca)
    * [`fn withCrlDistributionPoints(crlDistributionPoints)`](#fn-speccawithcrldistributionpoints)
    * [`fn withCrlDistributionPointsMixin(crlDistributionPoints)`](#fn-speccawithcrldistributionpointsmixin)
    * [`fn withOcspServers(ocspServers)`](#fn-speccawithocspservers)
    * [`fn withOcspServersMixin(ocspServers)`](#fn-speccawithocspserversmixin)
    * [`fn withSecretName(secretName)`](#fn-speccawithsecretname)
  * [`obj spec.selfSigned`](#obj-specselfsigned)
    * [`fn withCrlDistributionPoints(crlDistributionPoints)`](#fn-specselfsignedwithcrldistributionpoints)
    * [`fn withCrlDistributionPointsMixin(crlDistributionPoints)`](#fn-specselfsignedwithcrldistributionpointsmixin)
  * [`obj spec.vault`](#obj-specvault)
    * [`fn withCaBundle(caBundle)`](#fn-specvaultwithcabundle)
    * [`fn withNamespace(namespace)`](#fn-specvaultwithnamespace)
    * [`fn withPath(path)`](#fn-specvaultwithpath)
    * [`fn withServer(server)`](#fn-specvaultwithserver)
    * [`obj spec.vault.auth`](#obj-specvaultauth)
      * [`obj spec.vault.auth.appRole`](#obj-specvaultauthapprole)
        * [`fn withPath(path)`](#fn-specvaultauthapprolewithpath)
        * [`fn withRoleId(roleId)`](#fn-specvaultauthapprolewithroleid)
        * [`obj spec.vault.auth.appRole.secretRef`](#obj-specvaultauthapprolesecretref)
          * [`fn withKey(key)`](#fn-specvaultauthapprolesecretrefwithkey)
          * [`fn withName(name)`](#fn-specvaultauthapprolesecretrefwithname)
      * [`obj spec.vault.auth.kubernetes`](#obj-specvaultauthkubernetes)
        * [`fn withMountPath(mountPath)`](#fn-specvaultauthkuberneteswithmountpath)
        * [`fn withRole(role)`](#fn-specvaultauthkuberneteswithrole)
        * [`obj spec.vault.auth.kubernetes.secretRef`](#obj-specvaultauthkubernetessecretref)
          * [`fn withKey(key)`](#fn-specvaultauthkubernetessecretrefwithkey)
          * [`fn withName(name)`](#fn-specvaultauthkubernetessecretrefwithname)
      * [`obj spec.vault.auth.tokenSecretRef`](#obj-specvaultauthtokensecretref)
        * [`fn withKey(key)`](#fn-specvaultauthtokensecretrefwithkey)
        * [`fn withName(name)`](#fn-specvaultauthtokensecretrefwithname)
  * [`obj spec.venafi`](#obj-specvenafi)
    * [`fn withZone(zone)`](#fn-specvenafiwithzone)
    * [`obj spec.venafi.cloud`](#obj-specvenaficloud)
      * [`fn withUrl(url)`](#fn-specvenaficloudwithurl)
      * [`obj spec.venafi.cloud.apiTokenSecretRef`](#obj-specvenaficloudapitokensecretref)
        * [`fn withKey(key)`](#fn-specvenaficloudapitokensecretrefwithkey)
        * [`fn withName(name)`](#fn-specvenaficloudapitokensecretrefwithname)
    * [`obj spec.venafi.tpp`](#obj-specvenafitpp)
      * [`fn withCaBundle(caBundle)`](#fn-specvenafitppwithcabundle)
      * [`fn withUrl(url)`](#fn-specvenafitppwithurl)
      * [`obj spec.venafi.tpp.credentialsRef`](#obj-specvenafitppcredentialsref)
        * [`fn withName(name)`](#fn-specvenafitppcredentialsrefwithname)

## Fields

### fn new

```ts
new(name)
```

new returns an instance of Issuer

## obj metadata

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

### fn metadata.withAnnotations

```ts
withAnnotations(annotations)
```

Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations

### fn metadata.withAnnotationsMixin

```ts
withAnnotationsMixin(annotations)
```

Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations

**Note:** This function appends passed data to existing values

### fn metadata.withClusterName

```ts
withClusterName(clusterName)
```

The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.

### fn metadata.withCreationTimestamp

```ts
withCreationTimestamp(creationTimestamp)
```

Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON.  Wrappers are provided for many of the factory methods that the time package offers.

### fn metadata.withDeletionGracePeriodSeconds

```ts
withDeletionGracePeriodSeconds(deletionGracePeriodSeconds)
```

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

### fn metadata.withDeletionTimestamp

```ts
withDeletionTimestamp(deletionTimestamp)
```

Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON.  Wrappers are provided for many of the factory methods that the time package offers.

### fn metadata.withFinalizers

```ts
withFinalizers(finalizers)
```

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

### fn metadata.withFinalizersMixin

```ts
withFinalizersMixin(finalizers)
```

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed. Finalizers may be processed and removed in any order.  Order is NOT enforced because it introduces significant risk of stuck finalizers. finalizers is a shared field, any actor with permission can reorder it. If the finalizer list is processed in order, then this can lead to a situation in which the component responsible for the first finalizer in the list is waiting for a signal (field value, external system, or other) produced by a component responsible for a finalizer later in the list, resulting in a deadlock. Without enforced ordering finalizers are free to order amongst themselves and are not vulnerable to ordering changes in the list.

**Note:** This function appends passed data to existing values

### fn metadata.withGenerateName

```ts
withGenerateName(generateName)
```

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.

If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).

Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#idempotency

### fn metadata.withGeneration

```ts
withGeneration(generation)
```

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

### fn metadata.withLabels

```ts
withLabels(labels)
```

Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels

### fn metadata.withLabelsMixin

```ts
withLabelsMixin(labels)
```

Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels

**Note:** This function appends passed data to existing values

### fn metadata.withManagedFields

```ts
withManagedFields(managedFields)
```

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like 'ci-cd'. The set of fields is always in the version that the workflow used when modifying the object.

### fn metadata.withManagedFieldsMixin

```ts
withManagedFieldsMixin(managedFields)
```

ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn't need to set or understand this field. A workflow can be the user's name, a controller's name, or the name of a specific apply path like 'ci-cd'. The set of fields is always in the version that the workflow used when modifying the object.

**Note:** This function appends passed data to existing values

### fn metadata.withName

```ts
withName(name)
```

Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names

### fn metadata.withNamespace

```ts
withNamespace(namespace)
```

Namespace defines the space within which each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.

Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

### fn metadata.withOwnerReferences

```ts
withOwnerReferences(ownerReferences)
```

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

### fn metadata.withOwnerReferencesMixin

```ts
withOwnerReferencesMixin(ownerReferences)
```

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

**Note:** This function appends passed data to existing values

### fn metadata.withResourceVersion

```ts
withResourceVersion(resourceVersion)
```

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency

### fn metadata.withSelfLink

```ts
withSelfLink(selfLink)
```

SelfLink is a URL representing this object. Populated by the system. Read-only.

DEPRECATED Kubernetes will stop propagating this field in 1.20 release and the field is planned to be removed in 1.21 release.

### fn metadata.withUid

```ts
withUid(uid)
```

UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.

Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

## obj spec

Desired state of the Issuer resource.

## obj spec.acme

ACME configures this issuer to communicate with a RFC8555 (ACME) server to obtain signed x509 certificates.

### fn spec.acme.withDisableAccountKeyGeneration

```ts
withDisableAccountKeyGeneration(disableAccountKeyGeneration)
```

Enables or disables generating a new ACME account key. If true, the Issuer resource will *not* request a new account but will expect the account key to be supplied via an existing secret. If false, the cert-manager system will generate a new ACME account key for the Issuer. Defaults to false.

### fn spec.acme.withEmail

```ts
withEmail(email)
```

Email is the email address to be associated with the ACME account. This field is optional, but it is strongly recommended to be set. It will be used to contact you in case of issues with your account or certificates, including expiry notification emails. This field may be updated after the account is initially registered.

### fn spec.acme.withEnableDurationFeature

```ts
withEnableDurationFeature(enableDurationFeature)
```

Enables requesting a Not After date on certificates that matches the duration of the certificate. This is not supported by all ACME servers like Let's Encrypt. If set to true when the ACME server does not support it it will create an error on the Order. Defaults to false.

### fn spec.acme.withPreferredChain

```ts
withPreferredChain(preferredChain)
```

PreferredChain is the chain to use if the ACME server outputs multiple. PreferredChain is no guarantee that this one gets delivered by the ACME endpoint. For example, for Let's Encrypt's DST crosssign you would use: 'DST Root CA X3' or 'ISRG Root X1' for the newer Let's Encrypt root CA. This value picks the first certificate bundle in the ACME alternative chains that has a certificate with this value as its issuer's CN

### fn spec.acme.withServer

```ts
withServer(server)
```

Server is the URL used to access the ACME server's 'directory' endpoint. For example, for Let's Encrypt's staging endpoint, you would use: 'https://acme-staging-v02.api.letsencrypt.org/directory'. Only ACME v2 endpoints (i.e. RFC 8555) are supported.

### fn spec.acme.withSkipTLSVerify

```ts
withSkipTLSVerify(skipTLSVerify)
```

Enables or disables validation of the ACME server TLS certificate. If true, requests to the ACME server will not have their TLS certificate validated (i.e. insecure connections will be allowed). Only enable this option in development environments. The cert-manager system installed roots will be used to verify connections to the ACME server if this is false. Defaults to false.

### fn spec.acme.withSolvers

```ts
withSolvers(solvers)
```

Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/

### fn spec.acme.withSolversMixin

```ts
withSolversMixin(solvers)
```

Solvers is a list of challenge solvers that will be used to solve ACME challenges for the matching domains. Solver configurations must be provided in order to obtain certificates from an ACME server. For more information, see: https://cert-manager.io/docs/configuration/acme/

**Note:** This function appends passed data to existing values

## obj spec.acme.externalAccountBinding

ExternalAccountBinding is a reference to a CA external account of the ACME server. If set, upon registration cert-manager will attempt to associate the given external account credentials with the registered ACME account.

### fn spec.acme.externalAccountBinding.withKeyAlgorithm

```ts
withKeyAlgorithm(keyAlgorithm)
```

keyAlgorithm is the MAC key algorithm that the key is used for. Valid values are "HS256", "HS384" and "HS512".

### fn spec.acme.externalAccountBinding.withKeyID

```ts
withKeyID(keyID)
```

keyID is the ID of the CA key that the External Account is bound to.

## obj spec.acme.externalAccountBinding.keySecretRef

keySecretRef is a Secret Key Selector referencing a data item in a Kubernetes Secret which holds the symmetric MAC key of the External Account Binding. The `key` is the index string that is paired with the key data in the Secret and should not be confused with the key data itself, or indeed with the External Account Binding keyID above. The secret key stored in the Secret **must** be un-padded, base64 URL encoded data.

### fn spec.acme.externalAccountBinding.keySecretRef.withKey

```ts
withKey(key)
```

The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.

### fn spec.acme.externalAccountBinding.keySecretRef.withName

```ts
withName(name)
```

Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

## obj spec.acme.privateKeySecretRef

PrivateKey is the name of a Kubernetes Secret resource that will be used to store the automatically generated ACME account private key. Optionally, a `key` may be specified to select a specific entry within the named Secret resource. If `key` is not specified, a default of `tls.key` will be used.

### fn spec.acme.privateKeySecretRef.withKey

```ts
withKey(key)
```

The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.

### fn spec.acme.privateKeySecretRef.withName

```ts
withName(name)
```

Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

## obj spec.ca

CA configures this issuer to sign certificates using a signing CA keypair stored in a Secret resource. This is used to build internal PKIs that are managed by cert-manager.

### fn spec.ca.withCrlDistributionPoints

```ts
withCrlDistributionPoints(crlDistributionPoints)
```

The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.

### fn spec.ca.withCrlDistributionPointsMixin

```ts
withCrlDistributionPointsMixin(crlDistributionPoints)
```

The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set, certificates will be issued without distribution points set.

**Note:** This function appends passed data to existing values

### fn spec.ca.withOcspServers

```ts
withOcspServers(ocspServers)
```

The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".

### fn spec.ca.withOcspServersMixin

```ts
withOcspServersMixin(ocspServers)
```

The OCSP server list is an X.509 v3 extension that defines a list of URLs of OCSP responders. The OCSP responders can be queried for the revocation status of an issued certificate. If not set, the certificate will be issued with no OCSP servers set. For example, an OCSP server URL could be "http://ocsp.int-x3.letsencrypt.org".

**Note:** This function appends passed data to existing values

### fn spec.ca.withSecretName

```ts
withSecretName(secretName)
```

SecretName is the name of the secret used to sign Certificates issued by this Issuer.

## obj spec.selfSigned

SelfSigned configures this issuer to 'self sign' certificates using the private key used to create the CertificateRequest object.

### fn spec.selfSigned.withCrlDistributionPoints

```ts
withCrlDistributionPoints(crlDistributionPoints)
```

The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.

### fn spec.selfSigned.withCrlDistributionPointsMixin

```ts
withCrlDistributionPointsMixin(crlDistributionPoints)
```

The CRL distribution points is an X.509 v3 certificate extension which identifies the location of the CRL from which the revocation of this certificate can be checked. If not set certificate will be issued without CDP. Values are strings.

**Note:** This function appends passed data to existing values

## obj spec.vault

Vault configures this issuer to sign certificates using a HashiCorp Vault PKI backend.

### fn spec.vault.withCaBundle

```ts
withCaBundle(caBundle)
```

PEM encoded CA bundle used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection.

### fn spec.vault.withNamespace

```ts
withNamespace(namespace)
```

Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: "ns1" More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces

### fn spec.vault.withPath

```ts
withPath(path)
```

Path is the mount path of the Vault PKI backend's `sign` endpoint, e.g: 'my_pki_mount/sign/my-role-name'.

### fn spec.vault.withServer

```ts
withServer(server)
```

Server is the connection address for the Vault server, e.g: "https://vault.example.com:8200".

## obj spec.vault.auth

Auth configures how cert-manager authenticates with the Vault server.

## obj spec.vault.auth.appRole

AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.

### fn spec.vault.auth.appRole.withPath

```ts
withPath(path)
```

Path where the App Role authentication backend is mounted in Vault, e.g: "approle"

### fn spec.vault.auth.appRole.withRoleId

```ts
withRoleId(roleId)
```

RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.

## obj spec.vault.auth.appRole.secretRef

Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The `key` field must be specified and denotes which entry within the Secret resource is used as the app role secret.

### fn spec.vault.auth.appRole.secretRef.withKey

```ts
withKey(key)
```

The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.

### fn spec.vault.auth.appRole.secretRef.withName

```ts
withName(name)
```

Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

## obj spec.vault.auth.kubernetes

Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.

### fn spec.vault.auth.kubernetes.withMountPath

```ts
withMountPath(mountPath)
```

The Vault mountPath here is the mount path to use when authenticating with Vault. For example, setting a value to `/v1/auth/foo`, will use the path `/v1/auth/foo/login` to authenticate with Vault. If unspecified, the default value "/v1/auth/kubernetes" will be used.

### fn spec.vault.auth.kubernetes.withRole

```ts
withRole(role)
```

A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.

## obj spec.vault.auth.kubernetes.secretRef

The required Secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. Use of 'ambient credentials' is not supported.

### fn spec.vault.auth.kubernetes.secretRef.withKey

```ts
withKey(key)
```

The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.

### fn spec.vault.auth.kubernetes.secretRef.withName

```ts
withName(name)
```

Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

## obj spec.vault.auth.tokenSecretRef

TokenSecretRef authenticates with Vault by presenting a token.

### fn spec.vault.auth.tokenSecretRef.withKey

```ts
withKey(key)
```

The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.

### fn spec.vault.auth.tokenSecretRef.withName

```ts
withName(name)
```

Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

## obj spec.venafi

Venafi configures this issuer to sign certificates using a Venafi TPP or Venafi Cloud policy zone.

### fn spec.venafi.withZone

```ts
withZone(zone)
```

Zone is the Venafi Policy Zone to use for this issuer. All requests made to the Venafi platform will be restricted by the named zone policy. This field is required.

## obj spec.venafi.cloud

Cloud specifies the Venafi cloud configuration settings. Only one of TPP or Cloud may be specified.

### fn spec.venafi.cloud.withUrl

```ts
withUrl(url)
```

URL is the base URL for Venafi Cloud. Defaults to "https://api.venafi.cloud/v1".

## obj spec.venafi.cloud.apiTokenSecretRef

APITokenSecretRef is a secret key selector for the Venafi Cloud API token.

### fn spec.venafi.cloud.apiTokenSecretRef.withKey

```ts
withKey(key)
```

The key of the entry in the Secret resource's `data` field to be used. Some instances of this field may be defaulted, in others it may be required.

### fn spec.venafi.cloud.apiTokenSecretRef.withName

```ts
withName(name)
```

Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

## obj spec.venafi.tpp

TPP specifies Trust Protection Platform configuration settings. Only one of TPP or Cloud may be specified.

### fn spec.venafi.tpp.withCaBundle

```ts
withCaBundle(caBundle)
```

CABundle is a PEM encoded TLS certificate to use to verify connections to the TPP instance. If specified, system roots will not be used and the issuing CA for the TPP instance must be verifiable using the provided root. If not specified, the connection will be verified using the cert-manager system root certificates.

### fn spec.venafi.tpp.withUrl

```ts
withUrl(url)
```

URL is the base URL for the vedsdk endpoint of the Venafi TPP instance, for example: "https://tpp.example.com/vedsdk".

## obj spec.venafi.tpp.credentialsRef

CredentialsRef is a reference to a Secret containing the username and password for the TPP server. The secret must contain two keys, 'username' and 'password'.

### fn spec.venafi.tpp.credentialsRef.withName

```ts
withName(name)
```

Name of the resource being referred to. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

repository: jsonnet-libs/cert-manager-lib

gha_language: Jsonnet

repo_name: jsonnet-libs/cert-manager-lib


text:
# TimeWarp

| `develop` |
|-----------|
| [![codecov](https://codecov.io/gh/Innmind/TimeWarp/branch/develop/graph/badge.svg)](https://codecov.io/gh/Innmind/TimeWarp) |
| [![Build Status](https://github.com/Innmind/TimeWarp/workflows/CI/badge.svg)](https://github.com/Innmind/TimeWarp/actions?query=workflow%3ACI) |

Small lib to abstract the way to halt the program.

Currently this library is only usable on Earth, **DO NOT** use it on Mars or anywhere else in the universe.

## Installation

```sh
composer require innmind/time-warp
```

## Usage

```php
use Innmind\TimeWarp\{
    Halt\Usleep,
    Halt,
};
use Innmind\TimeContinuum\{
    Clock,
    Earth,
    Earth\Period\Minute,
};

function yourApp(
    Clock $clock,
    Halt $halt
): void {
    // do something
    $halt($clock, new Minute(42));
    // do some more
}

yourApp(new Earth\Clock, new Usleep);
```

This example will halt your program for 42 minutes.

repository: open-source-contributions/TimeWarp

repo_name: open-source-contributions/TimeWarp


text:
Most of the inspiration for this gem came from [Savon](http://savonrb.com/) and [HTTParty](http://httparty.rubyforge.org/),
thanks Daniel Harrington (a.k.a. rubiii) and John Nunemaker!

## Work in Progress

This gem is still in early development. It's only working for some very basic cases. Any contribution and feedback is welcome.

### Roadmap

* Add more tests;
* Add support for SOAP 1.2;
* Add cleaner integration on Rails and Sinatra (Rack middleware?).

## Installation

Shapewear is available through [Rubygems](http://rubygems.org/gems/shapewear) and can be installed via:

```
$ gem install shapewear
```

Introduction
------------

First, describe your SOAP service:

``` ruby
require "shapewear"

class MyFirstService
  include Shapewear

  wsdl_namespace 'http://services.example.com/v1'

  endpoint_url 'http://localhost:3000/my_first_service'

  operation :hello, :parameters => [[:name, String]], :returns => String
  def hello(name)
    "hello, #{name}"
  end

  operation :sum, :parameters => [[:x, Fixnum], [:y, Fixnum]], :returns => Fixnum
  def sum(x, y)
    x + y
  end

  operation :get_user_info, :parameters => [[:email, String]], :returns => { :name => String, :birthday => DateTime }
  def get_user_info(email)
    User.find_by_email(email)
  end
end
```

Then bind to your web application in a non-intrusive way.

Rails example:

``` ruby
# don't forget to write the appropriate routes
class MyFirstServiceController < ApplicationController
  def wsdl
    render :xml => MyHelloService.to_wsdl
  end

  def serve
    render :xml => MyHelloService.serve(request)
  end
end
```

Sinatra example:

``` ruby
class MySinatraApp < Sinatra::App
  get "my_first_service/wsdl" do
    content_type "application/xml"
    MyHelloService.to_wsdl
  end

  post "my_first_service" do
    content_type "application/xml"
    MyHelloService.serve(request)
  end
end
```

repository: elementar/shapewear

repo_name: elementar/shapewear


text:
---
path: empty-tag-react
title: Empty Tag in React
date: '2018-12-22T16:57:37.121Z'
tags: [react, til]
---
When you need to return more than one element you have few solutions.
## Wrap with an element
```html
<div>
  <span>1</span>
  <span>2</span>
</div>
```
## Return a list (requires a key)
```javascript
function List() {
    return [<span key='1'>1</span>, <span key='2'>2</span>]
}
```
## Use Fragment (16.2.0+)
```html
<Fragment>
  <span>1</span>
  <span>2</span>
</Fragment>
```
## Use empty tag (some kind of alias for Fragment)
```html
<>
  <span>1</span>
  <span>2</span>
</>
```

repository: roine/Roine

repo_name: roine/Roine


text:
[@codearts/plugin](../README.md) / ["@codearts/plugin"](../modules/_codearts_plugin_.md) / HoverProvider

# Interface: HoverProvider

["@codearts/plugin"](../modules/_codearts_plugin_.md).HoverProvider

The hover provider interface defines the contract between extensions and
the [hover](https://code.visualstudio.com/docs/editor/intellisense)-feature.

## Table of contents

### Methods

- [provideHover](codearts_plugin_.HoverProvider.md#providehover)

## Methods

### provideHover

▸ **provideHover**(`document`, `position`, `token`): [`ProviderResult`](../modules/_codearts_plugin_.md#providerresult)<[`Hover`](../classes/codearts_plugin_.Hover.md)\>

Provide a hover for the given position and document. Multiple hovers at the same
position will be merged by the editor. A hover can have a range which defaults
to the word range at the position when omitted.

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `document` | [`TextDocument`](codearts_plugin_.TextDocument.md) | The document in which the command was invoked. |
| `position` | [`Position`](../classes/codearts_plugin_.Position.md) | The position at which the command was invoked. |
| `token` | [`CancellationToken`](codearts_plugin_.CancellationToken.md) | A cancellation token. |

#### Returns

[`ProviderResult`](../modules/_codearts_plugin_.md#providerresult)<[`Hover`](../classes/codearts_plugin_.Hover.md)\>

A hover or a thenable that resolves to such. The lack of a result can be
signaled by returning `undefined` or `null`.

#### Defined in

[index.d.ts:2874](https://github.com/shuyaqian/cloudide-plugin-api/blob/3fbdd11/index.d.ts#L2874)

repository: huaweicloud/cloudide-plugin-api

branch_name: refs/heads/codearts

repo_name: huaweicloud/cloudide-plugin-api


text:
## Script for building Windows PHP packages

The script need to be ran on Linux.
Dependencies: bsdtar, curl

## Script for building and installing PHP on Linux

Run this to build and install PHP configure to match your environment.
You need build dependencies and curl, sudo, tar.
* For Debian-based distros: `apt install libssl-dev autoconf pkg-config curl libedit-dev libsqlite3-dev libxml2-dev libcurl4-openssl-dev libyaml-dev`
* For RPM-based-distros: `yum install autoconf pkg-config curl libedit-devel libsqlite3-devel libxml2-devel libyaml-devel libcurl-devel`
Note that you probably want dnf instead on Fedora.

Environment variable "$PREFIX" can be set to install to other locations.


text:
dulwichPorcelain
================

common bathroom fixtures to use with your dulwich plumbing

Attribution
-----------

`checkout.py` was inspired by this [question](http://stackoverflow.com/q/6640546/1020470) & [answer](http://stackoverflow.com/a/6640755/1020470) [1] on [stack**overflow**](http://www.stackoverflow.com) posted by [CharlesB](http://stackoverflow.com/users/11343/charlesb) [2].

[1] http://stackoverflow.com/questions/6640546
[2] http://stackoverflow.com/users/11343/charlesb

repository: mikofski/dulwichPorcelain

repo_name: mikofski/dulwichPorcelain


text:
# acbuild isolator

_Note: this only applies when in build mode appc_

Isolators can be specified on an ACI. They represent a list of isolation steps
that should be performed when the ACI is run.

## Subcommands

* `acbuild isolator add NAME FILE`

  Updates the ACI to contain an isolator with the given name, and the value of
  the contents of the given file. If an isolator with the name already exists,
  its value will be changed.

  If `-` is used for FILE, the value for the isolator is read in from stdin.

* `acbuild isolator remove NAME`

  Removes the isolator with the given name from the ACI.

## Linux Capabilities

One very common usage of isolators is to grant a container a Linux capability.
This is done with an isolator named `os/linux/capabilities-retain-set`.

```
echo '{ "set": ["CAP_IPC_LOCK"] }' | acbuild isolator add "os/linux/capabilities-retain-set" -
```

repository: beleo/build

repo_name: beleo/build


text:
# Campfire
### An esoteric programming language which is just a heap of branches
##### and you'll want to set them on fire
<hr/>
We all know that the standard flow of execution is so dull and boring, that's why every code anyone writes after "Hello world" has at least a conditional branch or a loop in it. With this in mind, I present you the most interesting language ever produced! In campfire every instruction doubles up as a (possibly conditional) branch, and since instructions are composed by a single byte this gives us an incredible 100% score on the branches per byte executed category!

### How it works

The instruction pointer starts from the first byte moving forward, but after every instruction:

 - If the instruction just executed occurs only once in the code, terminate.
 - If the top of the main stack is not 0, invert the direction
 - Jump to just after the next occurrence of the just executed instruction

The code is considered to be cyclic (the first and last characters are next to each other). Whats the _next_ occurrence of an instruction and what's the instruction _after_ that depend on the current direction.

The memory is composed by two stacks (main and auxiliary) which can contain an unlimited amount of arbitrary integers: most commands operate on the main stack, but every time a value is popped from a stack it is automatically pushed on the other one. Every stack has an infinite amount of implicit 0s on the bottom.

### Instructions

Lines starting with `#` are considered comments. Any newline is ignored.

Character|Instruction|Notes
--------------------|-----------------|----------------
0-9|Push the corresponding int on the main stack
\- + \* / % |b=pop(),a=pop(),push(a op b)| / is integer division
\> < = |b=pop(),a=pop(),push(a compare b)| 1 for True, 0 for False
!|push(not(pop()))| Pushes 1 if popped value was 0, pushes 0 otherwise
\_|pop()| Pushes on auxiliary stack
^|pop() from auxiliary stack| Pushes on main stack
;|clear auxiliary stack| The only way to erase data
$|swap top two values on main stack| Doesn't use pop-push
&|push(integer from input)|
~|push(char from input)| Pushes 0 on EOF
.|print((pop() as int)+newline)|
,|print(pop() as char)|
"|start/end string mode| Any other char encountered while in string mode pushes its value instead of executing normally.
Anything else|noop|

Instruction pointer jumps on noops as it does on any other command. Even during string mode branches are performed after every character pushed.

### Example of program flow:

    ab1dabc1ca
    1 36 24  5
(First line is the code, second line the order of execution)

In this code, all letters are noops, while the `1` pushes a 1 on the stack. After executing the first `a`, the top of stack is still 0 (an empty stack is considered as full of 0s), so the direction doesn't change and the next instruction to be executed is the one after the next `a`. We reach `b`, and then jump again in the same way (while wrapping from the end to the start of the code). The `1` then puts a 1 to the top of the stack, so now we need to switch direction and execute the instruction before the previous `1` (wrapping again). In the same way, we execute `c` and `a`, changing direction every time (there's still a 1 on top of the stack). We finally execute `d` then, since it's the only `d` in the whole code, the program terminates.

repository: barbuz/campfire

repo_name: barbuz/campfire