text:
# CLI Installation

With brainlife CLI, you can ..

* Upload/download data from your computer.
* Upload data stored in BIDS format.
* Submit Apps, and monitor (you can fully script data processing through brainlife)
* Query projects, data, datatypes, etc.

Brainlife CLI is distributed through [npm](https://www.npmjs.com/){target=_blank} (node package manager) which is a part of nodejs. You will need to have nodejs/npm installed on your machine before you can install brainlife CLI command. Most operation systems support nodejs through their software distribution systems. You can find the nodejs installation document [here](https://nodejs.org/en/download/package-manager/){target=_blank}.

On ubuntu/debian machines, you can run the following command to install nodejs 14 (current LTS).

```
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
```

!!! Installation For "Mac OSX users"
    The following command can install node.js if you have `homebrew` et up:

 ```
 brew install node
 ```

!!! For other OSs, please see [Installing node.js](https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions){target=_blank} page.

!!! Info "For Windows Users"
    In order to use brainlife CLI on Windows, you will first need to install [WSL (Windows Subsyste for Linux)](https://docs.microsoft.com/en-us/windows/wsl/install-win10){target=_blank} and run all commands inside the Ubuntu terminal.

    Apart from WSL, we recommend the following software packages installed on Windows systems.

    * [7-zip](https://www.7-zip.org/){target=_blank} for uncompressing downloaded data (.tar.gz)
    * [MRIcron](https://www.nitrc.org/projects/mricron){target=_blank} for visualizing brainimaging data

!!! note
    On IU Karst / Carbonate / RED, brainlife CLI is already installed as part of nodejs module. Please run `module load nodejs` and skip this installation step.

Once you have nodejs/npm installed, you can then run the following command to install brainlife CLI on your environment.

```
$ sudo npm install -g brainlife
```

You can then check the installation by

```
$ bl --version
1.3.7

$ bl -h
Usage: bl [options] [command]

Options:

  -V, --version  output the version number
  -h, --help     output usage information

Commands:

  login          login to brainlife and generate a temporary access token
  profile        query the available list of profiles
  resource       query the available list of resources
  datatype       query the available list of datatypes
  project        create and view brainlife projects
  data           view and utilize stored data
  app            query and run brainlife apps
  help [cmd]     display help for [cmd]

```

## Updating the CLI

We are making a lot of bug fixes/updates. If you run into any problem, please try updating the CLI by running the following.

```
$ sudo npm update -g brainlife
```

## Login

Before you can start using bl tool, you should login to brainlife by running the following command.

!!! note
    If you don't have a brainlife account, please [Sign Up](https://brainlife.io/auth/#!/signup){target=_blank} before proceeding.

```
$ bl login --ttl 7
username:  hayashis
password:
Successfully logged in for 6 days, 23 hours, 59 minutes, 59 seconds
```

The `--ttl 7` will request brainlife to keep you logged in for 7 days. Please adjust this number if necessary.

### Signout

`bl login` command will store your access token under the following path

```
~/.config/brainlife.io/.jwt
```

brainlife CLI itself does not provide a capability to sign out natively, but you can remove this file if you wish to sign out before your token expires.

### Docker container
You can use [brainlife CLI](https://hub.docker.com/repository/docker/brainlife/cli){target=_blank} hosted as a docker container via Singularity by running the following command.
```
$ singularity run docker://brainlife/cli login
```
You can then use any of the functionality of the CLI without needing to install all of the dependencies on your local machine!

If you don't want to type `singularity run docker://brainlife/cli` every time you run brainlife CLI, you could add something like this to your `~/.bashrc`

```
function bl {
    singularity run docker://brainlife/cli $@
}
```

!!! note
    depending on how your environment is configured, you might need to add this on each bash script you are executing (or do `source ~/.bashrc` in your script)

### Google Colab

You can install brainlife CLI on Google Colab by running `!npm install brainlife -g` with a code block. All brainlife CLI should work, except for the`bl login` command.
The login command will not work as it requires TTY to prompt for password and Colab does not support it.
For now, please copy and paste the following python snippet to perform the login operation
and issue JWT token used by other `bl` CLI.

```python
import getpass
import requests
import json
import os

username = str(input("Enter brainlife username: "))
password = getpass.getpass("Enter brainlife password: ")

#issue jwt
res = requests.post('https://brainlife.io/api/auth/local/auth', data={'username': username, 'password': password})
body = json.loads(res.content)
print(body["message"], res.status_code)

#store jwt
if res.status_code == 200:
  if not os.path.exists('/root/.config'):
    os.mkdir("/root/.config")
  if not os.path.exists('/root/.config/brainlife.io'):
    os.mkdir("/root/.config/brainlife.io")
  with open("/root/.config/brainlife.io/.jwt", "w") as f:
    f.write(body["jwt"])
    print("stored jwt")
```

!!! note
    The issued token will be stored on `/root/.config/brainlife.io/.jwt`. This directory is no persisted,
    so each user will need to run the code above to login, or each time the VM used to host your notebook
    is initialized.

repository: brainlife/docs

repo_name: brainlife/docs


text:
# Slow Cooker French Wine and Mustard Chicken

## Overview

- Yield:
- Prep Time:
- Cook Time:
- Total Time:

## Ingredients

## Method

## References and Acknowledgments

[Slow Cooker French Wine and Mustard Chicken](https://www.halfbakedharvest.com/slow-cooker-french-wine-and-mustard-chicken/#bo-recipe)

## Tags

license: MIT

branch_name: refs/heads/master

extension: md

license_type: permissive


text:
# Download file to disk

Example that shows how to work with disk access and how to link several Wasm modules into a service.

# Build & deploy it

```shell
./deploy.sh
```

# Call it

```shell
fldist run_air -p download.air -d '{"service": "f7db6966-2d75-4424-812e-85e2ec5cb61b"}'
```

repository: amrosaeed/Fluence-Service

branch_name: refs/heads/main

repo_name: amrosaeed/Fluence-Service


text:
# Sync Phases and Waves

>v1.1

<iframe width="560" height="315" src="https://www.youtube.com/embed/zIHe3EVp528" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Argo CD executes a sync operation in a number of steps. At a high-level, there are three phases *pre-sync*, *sync* and *post-sync*.

Within each phase you can have one or more waves, that allows you to ensure certain resources are healthy before subsequent resources are synced.

## How Do I Configure Phases?

Pre-sync and post-sync can only contain hooks. Apply the hook annotation:

```yaml
metadata:
  annotations:
    argocd.argoproj.io/hook: PreSync
```

[Read more about hooks](resource_hooks.md).

## How Do I Configure Waves?

Specify the wave using the following annotation:

```yaml
metadata:
  annotations:
    argocd.argoproj.io/sync-wave: "5"
```

Hooks and resources are assigned to wave zero by default. The wave can be negative, so you can create a wave that runs before all other resources.

## How Does It Work?

When Argo CD starts a sync, it orders the resources in the following precedence:

* The phase
* The wave they are in (lower values first)
* By kind (e.g. [namespaces first and then other Kubernetes resources, followed by custom resources](https://github.com/argoproj/gitops-engine/blob/bc9ce5764fa306f58cf59199a94f6c968c775a2d/pkg/sync/sync_tasks.go#L27-L66))
* By name

It then determines the number of the next wave to apply. This is the first number where any resource is out-of-sync or unhealthy.

It applies resources in that wave.

It repeats this process until all phases and waves are in-sync and healthy.

Because an application can have resources that are unhealthy in the first wave, it may be that the app can never get to healthy.

Note that there's currently a delay between each sync wave in order give other controllers a chance to react to the spec change
that we just applied. This also prevent Argo CD from assessing resource health too quickly (against the stale object), causing
hooks to fire prematurely. The current delay between each sync wave is 2 seconds and can be configured via environment
variable `ARGOCD_SYNC_WAVE_DELAY`.

repository: argoproj/argo-cd

gha_language: Go

repo_name: argoproj/argo-cd


text:
+++
date = "2015-03-19T12:53:35-04:00"
title = "What's New"
[menu.main]
  identifier = "Whats New"
  weight = 10
  pre = "<i class='fa fa-cog'></i>"
+++

# What's New in 2.0

Key features of the 2.0 driver include:

- Adherence to the SDAM (Server Discovery and Monitoring Specification).
- Implementation of the CRUD Specification.
- Performance improvements.
- New JS-BSON parser that supplants the C++ extension.
- A new core driver on top of which you can build alternative or experimental driver APIs
- APM (Application Performance Monitoring) API.

# What's New in 2.1

Key features of the 2.1 driver include:

- Implements the new GridFS specification
- Implements support for the new 3.2 wireprotocol level find, getMore and killCursor commands.
- A growing/shrinking connection pool.
- A worker based connection pool minimizing the impact of slow operations on throughput and latency when the number of slow operations < the number of connections in the pool.
- Topology monitoring specification implementation allowing applications to monitor the view of the topology as it changes.

[Driver revision history](https://github.com/mongodb/node-mongodb-native/blob/2.1/HISTORY.md).

## Upgrading

See the [upgrading guide]({{<ref "whats-new/upgrading.md">}}) on how to upgrade to 2.0

repository: zcjGitHub/node-mongodb-native

repo_name: zcjGitHub/node-mongodb-native


text:
---
layout: page
title:  "Simulated annealing"
subheadline:  "by Brian Busemeyer"
teaser: "Simulated annealing is a method for optimizing noisy, high-dimensional objective functions using ideas from materials science."

categories:
    - algorithm
tags:
    - optimization
    - numerical method
image:
   thumb: "real_annealing.png"
header:
    image_fullwidth: "annealing_diagram.png"
    caption: own work.
---
<!-- Page Content Starts Here -->

## Presentation Summary
In [this presentation][1], I present:

  * Describe the physical annealing process.
  * Show how simulating that process can act as an optimization algorithm.
  * Apply the approach to a simple noisy optimization problem.

## Examples
Simulated annealing code [code][2].

### All optimization.
{: .t60 }

{% include list-posts tag='optimization' %}

[1]: {{ site.url }}/assets/slides/simulated_annealing.pdf
[2]: {{ site.url }}/assets/codes/AnnealingSimulation.py

repository: Paul-St-Young/algorithms

branch_name: refs/heads/gh-pages

gha_language: HTML

gha_license_id: MIT

repo_name: Paul-St-Young/algorithms


text:
# Camellia reticulata var. rosea (Makino) Makino VARIETY

#### Status
SYNONYM

#### According to
GRIN Taxonomy for Plants

#### Published in
J. Jap. Bot. 1:39. 1918

#### Original name
null

### Remarks
null

repository: mdoering/backbone

path: /life/Plantae/Magnoliophyta/Magnoliopsida/Ericales/Theaceae/Camellia/Camellia uraku/ Syn. Camellia reticulata rosea/README.md

repo_name: mdoering/backbone


text:
## Deploy

https://jguiro09.github.io/Weather-Dashboard/

## How it works

Utilizing the open weather API, you are able to look up a city and find its weather conditions.

# Weather Dashboard

  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Table of Contents

[Usage](#Usage)
[License](#License)
[Contributing](#Contribution-Guidelines)
[Questions](#Questions)

## Usage

Simply go to the deployed site and type any city you would like and see the weeks weather!

## License

  This project is licensed by: MIT License
  The link to this license is: https://opensource.org/licenses/MIT

## Contribution Guidelines

This project is currently a solo project and will not accept help!

## Questions

[github](https://github.com/jguiro09)
<EMAIL_ADDRESS>


text:
# Sphaerodes micropertusa Y. Horie, Udagawa & P.F. Cannon, 1986 SPECIES

#### Status
ACCEPTED

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

#### Published in
Mycotaxon 25(1): 236 (1986)

#### Original name
Sphaerodes micropertusa Y. Horie, Udagawa & P.F. Cannon, 1986

### Remarks
null


text:
# Baphia leptobotrys subsp. silvatica (Harms) Soladoye SUBSPECIES

#### Status
ACCEPTED

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

#### Published in
null

#### Original name
Baphia silvatica Harms

### Remarks
null


text:
# vcloud-auth-issue

Reproducing vCloud authentication issue

## Steps

Clone repository

```bash
git clone https://github.com/reisbel/vcloud-auth-issue.git
```

Update app.config credentials

```xml
 <add key="vcloud.user" value="user@org"/>
 <add key="vcloud.pass" value="REPLACE WITH PASSWORD"/>
 <add key="vcloud.url" value="https://cloud.ussignalcom.net"/>
 ```

Open solution using Visual Studio and execute the application, see error below:

```output
Error: The given key was not present in the dictionary.
```

## Dependencies

Visual Studio
<https://visualstudio.microsoft.com/vs/>

vCloud SDK for .Net, version 5.5.0-1294396
<https://code.vmware.com/web/sdk/5.5.0-1294396/vcloud-dotnet>

## License

MIT - See [LICENSE](LICENSE) for more information.

repository: reisbel/vcloud-auth-issue

repo_name: reisbel/vcloud-auth-issue


text:
# Bind GitHub WebHooks to actions

    Usage:
      hookit [--scripts=<dir>] [--listen=<address>] [--port=<port>]

    Options:
      -v --version        Show version
      --scripts=<dir>     Where to look for hook scripts [default: .]
      --listen=<address>  Server address to listen on [default: <IP_ADDRESS>]
      --port=<port>       Server port to listen on [default: 8000]

## Execute scripts in any language

On recieving a webhook the server will try to execute a script located
at  `.../<owner>/<repository>/<branch>`, hookit will pass some arguments
with useful data. An example script may look like:

    #!/usr/bin/env python

    import argparse
    from subprocess import call

    parser = argparse.ArgumentParser(description='Hook some hooks.')
    parser.add_argument('--repository')
    parser.add_argument('--branch')
    args = parser.parse_args()

    message = 'You have changes in the %s branch of %s' % (args.branch, args.repository)
    call(['/usr/bin/say', message])

## Catch all events

It's also possible to listen for all push events in an organisation
or repository. Just place your hook script at the level you are
interested of (eg. `.../<owner>/<repository>` or `.../<owner>`).

## Script arguments

Here is a complete list of all arguments passed to scripts:

    .../tiwilliam/hookit
        --owner=tiwilliam
        --branch=master
        --repository=hookit
        --commit=a3a707700d845919178c72cd266ffc28d882c380

## Installation

This package is availiable on Python Package Index

    pip install hookit

## Security

The server will only accept requests from GitHub's trusted servers and
run scripts from an jailed directory.

GitHub's trusted servers will be updated on start using
their [meta endpoint](https://api.github.com/meta).

repository: tiwilliam/hookit

gha_language: Python

repo_name: tiwilliam/hookit


text:
# Data Visualisation for Data Science

Visualisation plays a key component during the entire data science process - in exploratory data analysis, model visualisation as well as in communicating the results through a narrative or a dashboard. The goal of this workshop is to help you gain a deeper understanding on the art and science of data visualisation.

**Structure of the workshop**

- Intro to visualization
  - Understand Exploratory Data Analysis (EDA)
  - Role of model visualisation
  - Communicating insights using visualisation
- The Grammar of Graphics
  - Visualizing single & dual variables
  - Visualizing categorical data
- Visualizing Multi-Dimensional Data
  - Using aesthetics and facets for more than two variables
  - Using matrix view, parallel coordinates for more than two variables
- Communicating with graphs
  - Graphical perception and critique
  - Understand color, scales, labeling and annotation
  - Theming and publication ready graphics
- Interactive graphics
  - Creating interactive graphs for the web
  - Allowing interactive data-model manipulation
- Visualizing geo-spatial data
- Creating Interactive Data Dashboards
- Model Visualization

**Broad Schedule for the workshop**

0930 - 1000: Installation
1000 - 1130: Session 1: Grammar of Graphs, 1D & 2D Vis
1130 - 1145: Tea Break
1145 - 1330: Session 2: Multi Dimensional Visualisation
1330 - 1415: Lunch
1415 - 1500: Project Discussion
1500 - 1600: Session 3: Interactive Data Visualisation
1600 - 1615: TeaBreak
1615 - 1800: Session 4: Model Visualisation

repository: nblakhani/dsVis

repo_name: nblakhani/dsVis


text:
    fast, cute, and-of-course, roundy prompt theme for zsh

# 📺 Preview
![preview-of-roundy-theme](preview.png)
> Preview with alacritty using [cherry colorscheme](https://github.com/nullxception/dotfiles/blob/main/alacritty/colors/cherry.yml) and [JetBrains Mono Nerd Font](https://github.com/ryanoasis/nerd-fonts/releases/latest)

# 🧪 Required
* [Nerd-patched](https://github.com/ryanoasis/nerd-fonts)'s Fonts
* Terminal with unicode support.

To check whether your terminal ready to using this theme, use this command :
```sh
echo -e '\ue0b6\ue0b4'
```
if it returns a circle, then we can go to the next step 🥳

# 🔌 Installation
* antigen
```zsh
antigen bundle nullxception/roundy
```

* zplug
```zsh
zplug nullxception/roundy, use:roundy.zsh, from:github, as:theme
```

* zinit
```zsh
zinit light nullxception/roundy
```

# 🛠 Prompt options
Options in roundy are configured in a regular variable, you can override it on your `.zshrc`.
Here's Default Options that currently available to override:

```sh
# Icon definition for Command's Exit Status
# Note: If your custom symbol overlaps the background or didn't have enough width,
#       you can add space at the end of your defined symbol.
ROUNDY_EXITSTATUS_GOOD="﫟"
# You can also using hex code like this
ROUNDY_EXITSTATUS_BAD=$'\uf658 '

# Minimal time (in ms) for the Time Execution of Command is displayed in prompt
# Set to 0 to disable it
ROUNDY_TEXC_MIN_MS=5

# Overriding username info
ROUNDY_USER_CONTENT_NORMAL=" %n "
ROUNDY_USER_CONTENT_ROOT=" %n "

# Working Directory Info Mode
# Valid choice are : "full", "short", or "dir-only"
# Example Output
#   full     : /etc/httpd/conf/extra
#   short    : /e/h/c/extra
#   dir-only : extra
ROUNDY_DIR_MODE="dir-only"

# Whether drawing a gap between a prompt
ROUNDY_PROMPT_HAS_GAP=true
```

## 🎨 Colors
By nature of Zsh, colors can be specified using :
- a decimal integer (0-15, or 0-255 if `$TERM` supported)
- alias of the eight colors provided by zsh
- or, as a regular #FFFFFF color hex (if `$TERM` supported, or with the help of `zsh/nearcolor` module)

```sh
# Command Exit Status
ROUNDY_COLORS_BG_EXITSTATUS=4
ROUNDY_COLORS_FG_EXITSTATUS=0

# Time Execution of Command
ROUNDY_COLORS_BG_TEXC=0
ROUNDY_COLORS_FG_TEXC=2

# User Display
ROUNDY_COLORS_BG_USER=8
ROUNDY_COLORS_FG_USER=7

# Directory Info
ROUNDY_COLORS_BG_DIR=8
ROUNDY_COLORS_FG_DIR=4

# Git Info
ROUNDY_COLORS_BG_GITINFO=5
ROUNDY_COLORS_FG_GITINFO=0
```

# 😇 Credits
* Inspired by [Harry Elric](https://github.com/owl4ce)'s [Joyful Desktop v3](https://github.com/owl4ce/dotfiles/tree/3.0) prompt
* [ryanoasis](https://github.com/ryanoasis)'s [Nerd Fonts](https://github.com/ryanoasis/nerd-fonts) for half-circle and most of the awesome additional glyphs on Nerd Fonts

# 📄 License
Copyright © 2020 [Nauval Rizky](https://github.com/nullxception). This project is [BSD 3-Clause License](LICENSE) licensed.

repository: withfig/plugins

gha_language: TypeScript

repo_name: withfig/plugins


text:
# ChinoRuby

Official Ruby wrapper of the Chino.io API

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'chino_ruby'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install chino_ruby

## Usage

Initialize a Chino.io client variable as follow

```ruby
@client = ChinoAPI.new("<your-customer-id>", "<your-customer-key>", "<server-url>")
```
The server-url parameter must be `https://api.test.chino.io/v1` or `https://api.chino.io/v1`.
Once you created your client variable, you can use it to call functions and communicate with the server.
The creation of a basic document is as follow:
- First, create the Repository
```ruby
@repo = @client.repositories.create_repository("test repo description")
```
- Then create the Schema
```ruby
fields = []
fields.push(Field.new("string", "test_string", true))
fields.push(Field.new("integer", "test_integer", true))

@schema =<EMAIL_ADDRESS>"test schema description", fields)
```
- Finally, create the Document
```ruby
content = Hash.new
content["test_string"] = "sample value ruby"
content["test_integer"] = 123

@doc =<EMAIL_ADDRESS>content)
```
## Running the Tests
You have to run the following commands in the terminal in order to run the tests:
```
$ gem install bundler
```
```
$ bundle install
```
```
$ cd test
```
```
$ bundle exec ruby sdk_test.rb
```
## Development

After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).

## License

The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).

repository: Uqido/chino-ruby

gha_language: Ruby

repo_name: Uqido/chino-ruby


text:
# Structure of a bubble

Improving:

SHORTEN - Remove unnecessary words

UNDERSTAND - Highlight important concepts (clickable links)

What where how when why

### CONCEPT - What?

Name, components, contexts, explanations, examples, generalized versions, special cases

http://mathworld.wolfram.com/Triangle.html

Ex 1:

Name: Triangle

Components: a size, 3 points, 3 edges, a center, 3 angles, inradius, perimeter, semiperimeter

Contexts: Mathematics, Euclidean Geometry, Shapes, Fictional

Explanations:
[A shape made by drawing straight lines to outline three points]

Examples: {Picture} Several triangles.

### CHOICE - When what why?

When: condition

What: concept

Why:  reason

Ex: ...

### CONDITION Where when what

Where

REASON

Pros:

Cons:

# Concept V 0.0.1

All lists ordered by upvote popularity (by default at least).

#### Names
- Triangle

#### Minimal representations
- 3 points (most popular)
- 3 endpoint-connected line segments (less popular suggestion)

#### One sentence explanations
- A triangle is the shape made by taking 3 different points and connecting them by straight lines.
- Three different points with straight lines between them.

#### Examples
See images ?

#### Images
A triangle

![alt text][tri1]

A light blue triangle with black edges on a white background.

![alt text][tri2]

#### Generalised versions
- Simplex
- N-gon

#### Specialised versions
- Equilateral Triangle
- Right Triangle
- Isosceles Triangle
- Scalene Triangle
  - Acute Scalene Triangle
  - Obtuse Scalene Triangle

[tri1]: http://i.infopls.com/images/equilateral.gif "A triangle"
[tri2]: https://www.mathsisfun.com/images/triangle-scalene.gif "A light blue triangle with black edges on a white background."

repository: team-evolute/Bubbles

repo_name: team-evolute/Bubbles


text:
React Banner does not provide any built-in "sticky-ness" but can easily be integrated with things like [React Headroom][1] to achieve this behavior. In fact, that's exactly what we're using to implement the behavior on this site -- try scrolling on any page and notice how the banner fixes and unfixes itself to and from the top of the page.

## Basic Setup

Going forward with our original example, you would `npm install react-headroom --save` and update the code as such:

```javascript
import React from 'react'
import Banner from 'react-banner'
import Headroom from 'react-headroom' // Import it
import 'react-banner/dist/style.css'

export default props => {
    // Wrap it around your banner
    return (
        <Headroom>
            <Banner
                logo="My Logo"
                url={ window.location.pathname }
                links={[
                    { "title": "Example Link", "url": "/example" },
                    { "title": "Another", "url": "/another" },
                    { "title": "Link w/ Children", "url": "/children", "children": [
                        { "title": "John", "url": "/children/john" },
                        { "title": "Jill", "url": "/children/jill" },
                        { "title": "Jack", "url": "/children/jack" }
                    ]}
                ]} />
        </Headroom>
    )
}
```

## Configuration with React Sidebar

Making this component play nicely with [react-sidebar][2] is a bit trickier but can still be done. You'll need to store your main content element and pass it as the `parent` prop to `<Headroom>`. See the [main component][3] used to generate this documentation for an example.

For more details please see the headroom component's [documentation][1].

[1]: https://github.com/KyleAMathews/react-headroom
[2]: ./integration/sidebar
[3]: https://github.com/skipjack/react-banner/blob/master/src/site/site.jsx

repository: craigyu/react-banner

repo_name: craigyu/react-banner


text:
# QIK+

QIK+ is an extension of QIK for video retrieval on everyday scenes. For more details, refer to the below publication.

## Publications
1. Arun Zachariah and Praveen Rao - Video Retrieval for Everyday Scences With Common Objects. In the Annual ACM International Conference on Multimedia Retrieval (ICMR 2023), 6 pages, Thessaloniki, Greece, 2023. (to appear)

## Contributors

***Faculty:*** Praveen Rao (PI)

***PhD Students:*** Arun Zachariah

## Acknowledgments
This work was supported by the National Science Foundation under Grant No. 1747751. ([NSF IUCRC Center for Big Learning](http://nsfcbl.org))

repository: MU-Data-Science/QIK

repo_name: MU-Data-Science/QIK


text:
# kurye_app
Bitaksi Getir Semih Ozturk 2018 Hackathon

Add description (requirements), features and screenshots (or gifs) here.

## Dependencies
- [redis](https://github.com/NodeRedis/node_redis)
- [mongoose](https://github.com/Automattic/mongoose)
- [nodemon](https://github.com/remy/nodemon)


text:
# conventional-changelog-eslint

[![NPM version][npm]][npm-url]
[![Node version][node]][node-url]
[![Dependencies status][deps]][deps-url]
[![Build status][build]][build-url]
[![Coverage status][coverage]][coverage-url]

[npm]: https://img.shields.io/npm/v/conventional-changelog-eslint.svg
[npm-url]: https://npmjs.com/package/conventional-changelog-eslint

[node]: https://img.shields.io/node/v/conventional-changelog-eslint.svg
[node-url]: https://nodejs.org

[deps]: https://img.shields.io/librariesio/release/npm/conventional-changelog-eslint
[deps-url]: https://libraries.io/npm/conventional-changelog-eslint/tree

[build]: https://img.shields.io/github/actions/workflow/status/conventional-changelog/conventional-changelog/ci.yaml?branch=master
[build-url]: https://github.com/conventional-changelog/conventional-changelog/actions

[coverage]: https://coveralls.io/repos/github/conventional-changelog/conventional-changelog/badge.svg?branch=master
[coverage-url]: https://coveralls.io/github/conventional-changelog/conventional-changelog?branch=master

[conventional-changelog](https://github.com/conventional-changelog/conventional-changelog) [eslint](https://github.com/eslint/eslint) preset.

**Issues with the convention itself should be reported on the ESLint issue tracker.**

## Install

```bash
# yarn
yarn add -D conventional-changelog-eslint
# pnpm
pnpm add -D conventional-changelog-eslint
# npm
npm i -D conventional-changelog-eslint
```

## ESLint Convention

Our commit message format is as follows:

```
Tag: Short description (fixes #1234)

Longer description here if necessary
```

The first line of the commit message (the summary) must have a specific format. This format is checked by our build tools.

The `Tag` is one of the following:

* `Fix` - for a bug fix.
* `Update` - either for a backwards-compatible enhancement or for a rule change that adds reported problems.
* `New` - implemented a new feature.
* `Breaking` - for a backwards-incompatible enhancement or feature.
* `Docs` - changes to documentation only.
* `Build` - changes to build process only.
* `Upgrade` - for a dependency upgrade.
* `Chore` - for refactoring, adding tests, etc. (anything that isn't user-facing).

Use the [labels of the issue you are working on](working-on-issues.md#issue-labels) to determine the best tag.

The message summary should be a one-sentence description of the change, and it must be 72 characters in length or shorter. If the pull request addresses an issue, then the issue number should be mentioned at the end. If the commit doesn't completely fix the issue, then use `(refs #1234)` instead of `(fixes #1234)`.

Here are some good commit message summary examples:

```
Build: Update Travis to only test Node 0.10 (refs #734)
Fix: Semi rule incorrectly flagging extra semicolon (fixes #840)
Upgrade: Esprima to 1.2, switch to using comment attachment (fixes #730)
```

The commit message format is important because these messages are used to create a changelog for each release. The tag and issue number help to create more consistent and useful changelogs.

Based on https://eslint.org/docs/developer-guide/contributing/pull-requests#step2

license: ISC

gha_language: JavaScript

gha_license_id: ISC


text:
# tensorflow-vgg
Re-implementation of VGG Network in tensorflow

# setup

```
pip install pyyaml skimage skdata tensorflow-gpu
```

# training

```
python train_model_simple.py experiment.yaml
```

# training on multiple gpus

```
python train_model_parallel.py experiment.yaml
```

# prediction

```
python predict.py dog.jpg
```

repository: ddikbayir/tensorflow-vgg

repo_name: ddikbayir/tensorflow-vgg


text:
# [leafy-clickbait](http://ChildishGiant.github.io/leafy-clickbait/)
A website that generate titles for LeafyIsHere's new videos. Made with real quotes.

Credits
--
[github-corners](https://github.com/tholman/github-corners) (MIT License)

[seedrandom](https://github.com/davidbau/seedrandom) (MIT License)

repository: ChildishGiant/leafy-clickbait

repo_name: ChildishGiant/leafy-clickbait


text:
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/PabRod/pdes/master)
[![codecov](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

# Solving PDEs with Jupyter

Examples of numerical schemes for solving classical partial differential equations such as:

- 1D
    - Heat
- 2D
    - Heat
    - Laplace
    - Poisson

repository: PabRod/pdes

repo_name: PabRod/pdes


text:
# verySimpleContact
This is a very simple command line contact mangement utility. It allows the user to track people's name, addresses, phone numbers, and emails.

# Installation
Simply clone the project to the location where you would like to store the contact informations. Ensure that you have python 3.x installed on your computer.

# Running
Run:

`python contact.py` to view all operations

`python contact.py add firstname=Charle middlename=T. lastname=Root addresses=123 example DR phone_numbers=1111111111 emails=test<EMAIL_ADDRESS>to add record

`python contact.py update [entry_number] lastname=Updated` to update record

`python contact.py get 0 1 2 [entry_numbers]...` to get records

`python contact.py keyword name "keyword1" "keyword2"...` to find by name

`python contact.py remove 0 1 2 [entry_numbers]...` to remove records

No spaces are allowed next to equal signs

repository: shilongdai/verySimpleContact

repo_name: shilongdai/verySimpleContact


text:
# [Loan Approve or No Loan?](https://dphi.tech/practice/challenge/54#problem)

Predict if the applicant should be granted a loan or not.

### **Content**

A loan application is used by borrowers to apply for a loan. Through the loan application, borrowers reveal key details about their finances to the lender. The loan application is crucial to determining whether the lender will grant the request for funds or credit.

![img](https://github.com/AnilKumarTeegala/My-Learnings/blob/master/DPhi_Datathon/img/loan.png)

------

### **Problem Statement**

The director of SZE bank identified that going through the loan applications to filter the people who can be granted loans or need to be rejected is a tedious and time-consuming process. He wants to automate it and increase his bank’s efficiency. After talking around a bit, your name pops up as one of the few data scientists who can make this possible within a limited time. Will you help the director out?

------

### **Objective**

The idea behind this ML project is to build an ML model and web application that the bank can use to classify if a user can be granted a loan or not.

------

### **Evaluation Criteria**

Submissions are evaluated using F1 Score.

How do we do it?

Once we release the data, anyone can download it, build a model, and make a submission. We give competitors a set of data (training data) with both the independent and dependent variables.

We also release another set of data (test dataset) with just the independent variables, and we hide the dependent variable that corresponds with this set. You submit the predicted values of the dependent variable for this set and we compare it against the actual values.

The predictions are evaluated based on the evaluation metric defined in the datathon.

### **About the Data**

The dataset contains information about Loan Applicants. There are 12 independent columns and 1 dependent column. This dataset includes attributes like Loan ID, gender, if the loan applicant is married or not, the level of education, applicant’s income etc.

#### **Data Description**

- **Loan_ID**: A unique ID assigned to every loan applicant
- **Gender**: Gender of the applicant (Male, Female)
- **Married**: The marital status of the applicant (Yes, No)
- **Dependents**: No. of people dependent on the applicant (0,1,2,3+)
- **Education**: Education level of the applicant (Graduated, Not Graduated)
- **Self_Employed**: If the applicant is self-employed or not (Yes, No)
- **ApplicantIncome**: The amount of income the applicant earns
- **CoapplicantIncome**: The amount of income the co-applicant earns
- **LoanAmount**: The amount of loan the applicant has requested for
- **Loan_Amount_Term**: The no. of days over which the loan will be paid
- **Credit_History**: A record of a borrower's responsible repayment of debts (1- has all debts paid, 0- not paid)
- **Property_Area** : The type of location where the applicant’s property lies (Rural, Semiurban, Urban)
- **Loan_Status**: Loan granted or not (Y, N)

repository: AnilKumarTeegala/My-Learnings

gha_language: Jupyter Notebook

repo_name: AnilKumarTeegala/My-Learnings


text:
# Kafka module for Puppet

[![Build Status](https://github.com/voxpupuli/puppet-kafka/workflows/CI/badge.svg)](https://github.com/voxpupuli/puppet-kafka/actions?query=workflow%3ACI)
[![Release](https://github.com/voxpupuli/puppet-kafka/actions/workflows/release.yml/badge.svg)](https://github.com/voxpupuli/puppet-kafka/actions/workflows/release.yml)
[![Puppet Forge](https://img.shields.io/puppetforge/v/puppet/kafka.svg)](https://forge.puppetlabs.com/puppet/kafka)
[![Puppet Forge - downloads](https://img.shields.io/puppetforge/dt/puppet/kafka.svg)](https://forge.puppetlabs.com/puppet/kafka)
[![Puppet Forge - endorsement](https://img.shields.io/puppetforge/e/puppet/kafka.svg)](https://forge.puppetlabs.com/puppet/kafka)
[![Puppet Forge - scores](https://img.shields.io/puppetforge/f/puppet/kafka.svg)](https://forge.puppetlabs.com/puppet/kafka)
[![puppetmodule.info docs](http://www.puppetmodule.info/images/badge.png)](http://www.puppetmodule.info/m/puppet-kafka)
[![MIT License](https://img.shields.io/github/license/voxpupuli/puppet-kafka.svg)](LICENSE)
[![Donated by Liam Bennett](https://img.shields.io/badge/donated%20by-Liam%20Bennett-fb7047.svg)](#Author)

## Table of Contents

1. [Overview](#overview)
1. [Module Description - What the module does and why it is useful](#module-description)
1. [Setup - The basics of getting started with Kafka](#setup)
    * [What Kafka affects](#what-kafka-affects)
    * [Setup requirements](#setup-requirements)
    * [Beginning with Kafka](#beginning-with-kafka)
1. [Usage - Configuration options and additional functionality](#usage)
1. [Reference - An under-the-hood peek at what the module is doing and how](#reference)
1. [Limitations - OS compatibility, etc.](#limitations)
1. [Development - Guide for contributing to the module](#development)

## Overview

The Kafka module for managing the installation and configuration of [Apache Kafka](http://kafka.apache.org).

## Module Description

The Kafka module for managing the installation and configuration of Apache Kafka:
it's brokers, producers and consumers.

## Setup

### What Kafka affects

Installs the Kafka package and creates a new service.

### Setup requirements

This module has the following dependencies:

* [deric/zookeeper](https://github.com/deric/puppet-zookeeper)
* [camptocamp/systemd](https://github.com/camptocamp/puppet-systemd)
* [puppet/archive](https://github.com/voxpupuli/puppet-archive)
* [puppetlabs/java](https://github.com/puppetlabs/puppetlabs-java)
* [puppetlabs/stdlib](https://github.com/puppetlabs/puppetlabs-stdlib)

### Beginning with Kafka

To successfully install Kafka using this module you need to have Apache ZooKeeper
already running at localhost:2181. You can specify another ZooKeeper host:port
configuration using the config hash of the kafka::broker class.

The default configuration installs Kafka <IP_ADDRESS> binaries with Scala 2.11:

```puppet
  class { 'kafka': }
```

If you want a Kafka broker server that connects to ZooKeeper listening on port 2181:

```puppet
  class { 'kafka::broker':
    config => {
      'broker.id'         => '0',
      'zookeeper.connect' => 'localhost:2181'
    }
  }
```

## Usage

You can specify different Kafka binaries packages versions to install. Please
take a look at the different Scala and Kafka versions combinations at the
[Apache Kafka Website](http://kafka.apache.org/downloads.html)

### Installing Kafka version 1.1.0 with scala 2.12

We first install the binary package with:

```puppet
  class { 'kafka':
    version => '1.1.0',
    scala_version => '2.12'
  }
```

Then we set a minimal Kafka broker configuration with:

```puppet
  class { 'kafka::broker':
    config => {
      'broker.id'         => '0',
      'zookeeper.connect' => 'localhost:2181'
    }
  }
```

## Reference

The [reference][1] documentation of this module is generated using [puppetlabs/puppetlabs-strings][2].

## Limitations

This module only supports Kafka >= <IP_ADDRESS>.

This module is tested on the following platforms:

* Debian 8
* Debian 9
* Debian 10
* Ubuntu 16.04
* Ubuntu 18.04
* CentOS 7

It is tested with the OSS version of Puppet (>= 5.5) only.

## Development

This module has grown over time based on a range of contributions from people
using it. If you follow these [contributing][3] guidelines your patch will
likely make it into a release a little more quickly.

## Author

This module is maintained by [Vox Pupuli][4]. It was originally written and
maintained by [Liam Bennett][5].

[1]: https://github.com/voxpupuli/puppet-kafka/blob/master/REFERENCE.md
[2]: https://github.com/puppetlabs/puppetlabs-strings
[3]: https://github.com/voxpupuli/puppet-kafka/blob/master/.github/CONTRIBUTING.md
[4]: https://voxpupuli.org
[5]: https://www.opentable.com

repository: voxpupuli/puppet-kafka

gha_language: Puppet

repo_name: voxpupuli/puppet-kafka


text:
### [CVE-2019-0205](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-0205)
![](https://img.shields.io/static/v1?label=Product&message=Apache%20Thrift&color=blue)
![](https://img.shields.io/static/v1?label=Version&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Vulnerability&message=Potential%20DoS%20when%20processing%20untrusted%20Thrift%20payloads&color=brighgreen)

### Description

In Apache Thrift all versions up to and including 0.12.0, a server or client may run into an endless loop when feed with specific input data. Because the issue had already been partially fixed in version 0.11.0, depending on the installed version it affects only certain language bindings.

### POC

#### Reference
- https://www.oracle.com//security-alerts/cpujul2021.html

#### Github
- https://github.com/k1LoW/oshka

repository: trickest/cve

repo_name: trickest/cve


text:
Original README please check [here](https://github.com/xinthink/react-native-material-kit).

## What's fixed

### Text Fields

- Correct floating label initial progress and offsetX if the textfield is initialized with a value
- Fix valued underlines will disappear when focused

repository: chechunhsu/react-native-material-kit

repo_name: chechunhsu/react-native-material-kit


text:
# Changelog

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

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

- `Added` for new features.
- `Changed` for changes in existing functionality.
- `Deprecated` for soon-to-be removed features.
- `Removed` for now removed features.
- `Fixed` for any bug fixes.
- `Security` in case of vulnerabilities

## [2.0.0] - 2023.01.26

### Added

- Added support for PHP 8.

## [1.1.1] - 2022.01.25

### Changed

- Fixed bug in `humanArray` method.
- Minor documentation updates.

## [1.1.0] - 2020.09.08

### Added

- Added the `stopwatch` method.

## [1.0.0] - 2020.07.27

### Added

- Initial release.

repository: bayfrontmedia/php-time-helpers

repo_name: bayfrontmedia/php-time-helpers


text:
# How it works

gogen works by using the Abstract Syntax Tree (AST) by reading the existing code as a schema to generate the other one
Some code is depend on the other code in different level
for example, in order to create the gateway implementation,
gogen will read all the outport codem filter only the unexisted method and add it into the gateway files
gogen also support the code injection using the special character

### domain
```text
just create all the basic file and folder needed
```

### entity
```text
create a folder and file [your_domain]/model/entity/[your_entity_name].go

create a folder and file [your_domain]/model/vo/[your_entity_id_name].go

```

### usecase
```text
create a folder [your_domain]/usecase/[your_usecase_name]/
and 4 file
    inport.go
    interactor.go
    outport.go
    README.md

also adjust the package name, usecase name in every generated files
```

### gateway
```text
read the Outport interface in every usecase
    it does not depend on filename
    Outport name can be change in config file (next feature)

read all import in the file

read the method list in the interface

if we met interface composition,
  then go through int that interface by looking into the package

if we directly met the method then
  add it into some list

if the gateway.go file is not exist

read all the method name existed in the gateway

compare it with the method list we already have

add the only unexisted method in the gateway file
```

test
```text
almost as same as gateway
```

### controller
```text
read the Inport, InportRequest and InportResponse in all usecases
create an handler file for every usecase
create a router file if not exist
read all the existed handler in router
find out the latest line of code in router
compare then add unexisted handler into router
inject the new handler into router based on latest line of code
inject the inportrequest and inportresponse
```

### application
```text
read all the usecase
read all the controller
read all the gateway
read existing application
create application file if not exist
create main.go if not exist
inject the usecase into application file
inject the application into main.go file
```


text:
# Node.js Website Translation Policy

Node.js is a global platform and so this site has many translations. We use [Crowdin](https://crowdin.com) to translate the Node.js Website

The translation of the site into languages other than English is handled by [Crowdin translators](https://support.crowdin.com/translation-process-overview/).

## How to translate

1. Request to join the [Nodejs-Website in Crowdin](https://crowdin.com/project/nodejs-website)
2. [Select the language you want to translate](https://support.crowdin.com/joining-translation-project/#starting-translation)
3. [Start translating](https://support.crowdin.com/online-editor/)

### Any questions or feedbacks on Translations

If you have any questions or feedbacks on current translations, you can [start a discussion](https://crowdin.com/project/nodejs-website/discussions) by choosing the "New Topic" and your language from the right dropdown, or a [conversation](https://support.crowdin.com/conversations/) by adding your translators.

## How to add a new language

Go on `/i18n/config.json` and add the new language to the `locales` array.

Fill the language object with the following fields:

```json
{
  "code": "fr",
  "localName": "Français",
  "name": "French",
  "langDir": "ltr",
  "dateFormat": "DD.MM.YYYY",
  "hrefLang": "fr",
  "enabled": true
}
```

| Field Name   | Description                                                                                | Examples     |
| ------------ | ------------------------------------------------------------------------------------------------------ | ------------ |
| `code`       | The language code. It must be the same as the folder name                                              | `fr`         |
| `localName`  | The language name in its own language (it's use in language selector)                                  | `Français`   |
| `name`       | The language name in English                                                                           | `French`     |
| `langDir`    | The direction of the language. `ltr` for left to right, `rtl` for right to left                        | `ltr`        |
| `dateFormat` | The date format. It must be a valid [moment.js format](https://momentjs.com/docs/#/displaying/format/) | `DD.MM.YYYY` |
| `hrefLang`   | The language code in [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format         | `fr`         |
| `enabled`    | If the language is enabled or not                                                                      | `true`       |

Please also add the new locale file to the locales folder `/i18n/locales` and import it in the `/i18n/locales/index.mjs` file.

## Adding new Translation Keys

If you're making a new Component and adding Translation Keys for your Component, they should follow these guidelines:

- Only add the new translation keys on the `i18n/locales/en.json` file. Crowdin will handle on syncing the files and letting translators know there are new keys to be translated
- The translation keys should have the prefix as the canonical path of your Component. If your Component is `components/Common/MyComponent` the prefix key should be `components.common.myComponent`
  - The Translation Key suffix should be easy to understand and semantic. For example, if the key is about "the text of a button that when interacted it copies content to the clipboard", the suffix should probably be `copyButton.title`. The final translation key would be `components.common.myComponent.copyButton.title`
  - Translation Keys should be in Camel Case only.
  - The values of each Translation Key should follow the [ICU Message Syntax](https://formatjs.io/docs/core-concepts/icu-syntax/)
- All new Translation keys should be added at the bottom of the `i18n/locales/en.json` file. Since this makes it easier for Translators to notice that there are new Translation keys to be translated.

### Translations and Unit Testing

Translation Keys should not be translated during Unit Testing. If your Component uses, for example `FormattedMessage`, you should provide the `<IntlProvider>` surrounding your `testing-library` render logic, or you can create a wrapper for your test. Note that you should not import the English messages to your Unit Test as:

- Unit Testing should test a Component functionality.
- Unit Tests should not rely on text, titles, or string bags, as these texts will change arbitrarily and make the test suite fail.
  - In this case, you should test your component by aria-text, or other `aria-*` attributes or even by class names or other artifacts.
- If you want to test how different languages and text appear within a Component, Visual Regression Testing is recommended.

gha_license_id: NOASSERTION


text:
![image](assets/hydro_black_wider.png)

***

[Hydro Protocol](https://hydroprotocol.io) is an open source framework for building decentralized exchanges.

More detailed information can be found in our [developer documentation](https://developer.hydroprotocol.io/docs/overview/getting-started.html).

Building on Hydro? Come chat with our team on our [Hydro Relayer Slack Channel](https://join.slack.com/t/hydrorelayer/shared_invite/enQtNTc1Mjc3MDUyNTkzLWNmZjI0YmFhNTg4OTU4NTI5ZWE1MzY1ZTc1MDMyYmE1YzkwYWUwYzQ2MTNhMTRjNmVjMmEyOTRkMjFlNzAyMTQ).

***

# Standard DEX Scaffold

This repository provides a basic template for building a Decentralized Exchange (DEX) on the Ethereum blockchain. When you finish the steps outlined in this guide, you will have:

- Setup a fully functioning DEX (or "Hydro Relayer") on your local server
- Leveraged Hydro Protocol smart contracts on Ethereum to securely exchange tokens
- Performed some trades on your DEX
- Learned how to customize your DEX: change fees, add markets, etc.

![web-screen-shot](./assets/hydro_dex_scaffold_screenshot.png)

It should take less than 10 minutes to get your DEX running.

## Launching Your DEX

### Prerequisites

The only required software that you must have installed are `docker` and `docker-compose`.

If you don't already have them installed, you can follow [this link](https://docs.docker.com/compose/install/) to install them (free).

### Initial Setup

1.  **Clone this repo**

        git clone https://github.com/hydroprotocol/hydro-scaffold-dex.git

1.  **Change your working directory**

        cd hydro-scaffold-dex

1.  **Build and launch your hydro relayer**

        docker-compose pull && docker-compose up -d

    This step may takes a few minutes.
    When complete, it will start all necessary services.

    It will use ports `3000`, `3001`, `3002`, `6379`, `8043`, and `8545` on your computer. Please make sure theses ports are available.

1.  **Check out your relayer**

    Open http://localhost:3000/ on your browser to see your exchange in action!

## Testdrive Your DEX

Now that your DEX is up on your local server, let's try it out a bit.

1. **Connect a wallet**

   You can connect to a wallet by clicking the button at right-top corner. We have already prepared an address for you.

   You can find it under the `Browser Wallet` type. The address is:
- public key: `0x31ebd457b999bf99759602f5ece5aa5033cb56b3`
- private key: `0xb7a0c9d2786fc4dd080ea5d619d36771aeb0c8c26c290afd3451b92ba2b7bc2c`

2. **Test out the trading flow**

   You might have noticed that we setup a simple market making bot on the HOT-DAI market. Try to make some trades on this active market.

1. **Login to the CLI**

        docker-compose exec admin sh

2. **View the CLI manual to see a list of functions you can perform**

    See [admin cli manual](./manual/admin-api-and-cli.md#cli-guide-admin-cli)

3. **Try creating a new market**

        hydro-dex-ctl market new HOT-WWW \
          --baseTokenAddress=0x4c4fa7e8ea4cfcfc93deae2c0cff142a1dd3a218 \
          --quoteTokenAddress=0xbc3524faa62d0763818636d5e400f112279d6cc0

- The base token is the first symbol (HOT above), the quote token is the second symbol (WWW above).
- You could try this with different token symbols and contract addresses.
- This creates a market with "default parameters" for fees, decimals, etc.

        hydro-dex-ctl market publish HOT-WWW

- This makes the market viewable on the frontend

4. **Exit the CLI**

        exit

    This will exit out of the CLI and go back to the original terminal.

### Questions?

1. **Support Channels**

   We're happy to help you through the setup process at anytime. Our [Hydro Relayer Slack Channel](https://join.slack.com/t/hydrorelayer/shared_invite/enQtNTc1Mjc3MDUyNTkzLWNmZjI0YmFhNTg4OTU4NTI5ZWE1MzY1ZTc1MDMyYmE1YzkwYWUwYzQ2MTNhMTRjNmVjMmEyOTRkMjFlNzAyMTQ) is designed specifically for this. Come say hi and show off your DEX!

   Our team has thorough exchange experience and would be happy to talk over details of what it takes to operate a successful relayer.

2. **Deploying your DEX**

   Check out our [Developer Documentation](https://developer.hydroprotocol.io/docs/overview/getting-started.html#deploying-your-dex) or come chat with us on our [slack]((https://join.slack.com/t/hydrorelayer/shared_invite/enQtNTc1Mjc3MDUyNTkzLWNmZjI0YmFhNTg4OTU4NTI5ZWE1MzY1ZTc1MDMyYmE1YzkwYWUwYzQ2MTNhMTRjNmVjMmEyOTRkMjFlNzAyMTQ)).

***

# Additional Info

## Useful Docker Commands

1. **Display the status of all services running**

        docker-compose ps

   This command displays the status of all services running in docker. It's helpful for troubleshooting and for understanding the combination of components that goes into running your DEX.

2. **Stopping your DEX**

        docker-compose stop

   This command will stop all of the current services running in docker.

3. **Restarting your DEX**

        docker-compose pull && docker-compose up -d

   The same command that you ran to start it the first time can be used for subsequent restarts. Always run the pull command first, as the docker-compose up command will not run without an image.

4. **View logs**

        # view logs of the service that defined in docker-compose.yml services
        # e.g. view watcher log
        docker-compose logs --tail=20 -f watcher
        # e.g. view api log
        docker-compose logs --tail=20 -f api

    Much like the status, viewing the logs can give you an idea of the specific details involved in each service.

5.  **Update this repo**

        git pull origin master

6.  **Completely clean the old state (data will be deleted)**

        docker-compose down -v

## What all comes in this Scaffold?

- Frontend:
  - A Basic Exchange Web UI
- Backend:
  - Http Server to serve API data
  - Websocket Server to handle keepalive connections and serve realtime data
  - Matching Engine to send matching orders to the hydro smart contracts
  - Blockchain Monitor to watch for transaction changes on the blockchain
- [PostgresSQL](https://www.postgresql.org) database
- [ganache-cli](https://github.com/trufflesuite/ganache-cli) to run a local ethereum node and support for ropsten and mainnet

## F&Q

- [How to run on other network and run from source?](./manual/change-network-and-run-from-source.md)
- [How to configure for external access?](./manual/config-nginx.md)

## How to setup environment for local development

See [setup dev env manual](./manual/setup-dev-env.md).

## License

This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details


text:
See [PS5](PS5) for legacy scripts, [syscfg](syscfg) for single-use system config scripts.

PowerShell Scripts
------------------

![script dependencies](dependencies.svg)

### Clipboard

- **[Convert-ClipboardTsvToHtml.ps1](Convert-ClipboardTsvToHtml.ps1)**: Parses TSV clipboard data into HTML table data which is copied back to the clipboard.
- **[Import-ClipboardTsv.ps1](Import-ClipboardTsv.ps1)**: Parses TSV clipboard data into objects.

### Comics

- :up: **[Find-Comics.ps1](Find-Comics.ps1)**: Finds comics.
- **[Get-Comics.ps1](Get-Comics.ps1)**: Returns a cached list of comics from the Shortboxed API.
- **[Open-Comic.ps1](Open-Comic.ps1)**: Opens a comic's PreviewsWorld page.

### Command

- :up: **[Get-CommandParameters.ps1](Get-CommandParameters.ps1)**: Returns the parameters of the specified cmdlet.
- :up: **[Get-CommandPath.ps1](Get-CommandPath.ps1)**: Locates a command.
- **[Hide-Command.ps1](Hide-Command.ps1)**: Make a command unavailable.
- **[Invoke-CommandWithParams.ps1](Invoke-CommandWithParams.ps1)**: Execute a command by using matching dictionary entries as parameters.
- :up: **[Use-Command.ps1](Use-Command.ps1)**: Checks for the existence of the given command, and adds if missing and a source is defined.

### Configuration

- :up: **[Get-ConfigConnectionStringBuilders.ps1](Get-ConfigConnectionStringBuilders.ps1)**: Return named connection string builders for connection strings in a config file.
- :up: **[Get-NuGetConfigs.ps1](Get-NuGetConfigs.ps1)**: Returns the available NuGet configuration files, in order of preference.
- **[Use-NetMailConfig.ps1](Use-NetMailConfig.ps1)**: Use .NET configuration to set defaults for Send-MailMessage.

### Console

- **[Disable-AnsiColor.ps1](Disable-AnsiColor.ps1)**: Disables ANSI terminal colors.
- **[Enable-AnsiColor.ps1](Enable-AnsiColor.ps1)**: Enables ANSI terminal colors.
- :up: **[Get-ConsoleHistory.ps1](Get-ConsoleHistory.ps1)**: Returns the DOSKey-style console command history (up arrow or F8).
- **[Set-ConsoleColorTheme.ps1](Set-ConsoleColorTheme.ps1)**: Overrides ConsoleClass window color palette entries with a preset color theme.

### Credential

- **[Export-SecretVault.ps1](Export-SecretVault.ps1)**: Exports secret vault content.
- **[Get-CachedCredential.ps1](Get-CachedCredential.ps1)**: Return a credential from secure storage, or prompt the user for it if not found.
- **[Import-SecretVault.ps1](Import-SecretVault.ps1)**: Imports secrets into secret vaults.
- **[Remove-CachedCredential.ps1](Remove-CachedCredential.ps1)**: Removes a credential from secure storage.

### Data encoding

- **[ConvertFrom-Base64.ps1](ConvertFrom-Base64.ps1)**: Converts base64-encoded text to bytes or text.
- **[ConvertFrom-Hex.ps1](ConvertFrom-Hex.ps1)**: Convert a string of hexadecimal digits into a byte array.
- **[ConvertTo-Base64.ps1](ConvertTo-Base64.ps1)**: Converts bytes or text to base64-encoded text.

### Data formats

- :up: **[ConvertTo-PowerShell.ps1](ConvertTo-PowerShell.ps1)**: Serializes complex content into PowerShell literals.
- **[Format-EscapedUrl.ps1](Format-EscapedUrl.ps1)**: Escape URLs more aggressively.
- **[New-Jwt.ps1](New-Jwt.ps1)**: Generates a JSON Web Token (JWT)
- :up: **[Test-FileTypeMagicNumber.ps1](Test-FileTypeMagicNumber.ps1)**: Tests for a given common file type by magic number.
- **[Test-Jwt.ps1](Test-Jwt.ps1)**: Determines whether a string is a valid JWT.
- :up: **[Test-MagicNumber.ps1](Test-MagicNumber.ps1)**: Tests a file for a "magic number" (identifying sequence of bytes) at a given location.
- **[Test-Uri.ps1](Test-Uri.ps1)**: Determines whether a string is a valid URI.
- **[Test-Windows1252.ps1](Test-Windows1252.ps1)**: Determines whether a file contains Windows-1252 bytes that are invalid UTF-8 bytes.

### Database

- **[ConvertFrom-DataRow.ps1](ConvertFrom-DataRow.ps1)**: Converts a DataRow object to a PSObject, Hashtable, or single value.
- :up: **[Export-DatabaseScripts.ps1](Export-DatabaseScripts.ps1)**: Exports MS SQL database objects from the given server and database as files, into a consistent folder structure.
- :up: **[Export-TableMerge.ps1](Export-TableMerge.ps1)**: Exports table data as a T-SQL MERGE statement.
- :up: **[Find-DatabaseValue.ps1](Find-DatabaseValue.ps1)**: Searches an entire database for a field value.
- :up: **[Find-DbColumn.ps1](Find-DbColumn.ps1)**: Searches for database columns.
- **[Find-Indexes.ps1](Find-Indexes.ps1)**: Returns indexes using a column with the given name.
- :up: **[Find-SqlDeprecatedLargeValueTypes.ps1](Find-SqlDeprecatedLargeValueTypes.ps1)**: Reports text, ntext, and image datatypes found in a given database.
- :up: **[Measure-DbColumn.ps1](Measure-DbColumn.ps1)**: Provides statistics about SQL Server column data.
- :up: **[Measure-DbColumnValues.ps1](Measure-DbColumnValues.ps1)**: Provides sorted counts of SQL Server column values.
- :up: **[Measure-DbTable.ps1](Measure-DbTable.ps1)**: Provides frequency details about SQL Server table data.
- :up: **[New-DbProviderObject.ps1](New-DbProviderObject.ps1)**: Create a common database object.
- :up: **[Repair-DatabaseConstraintNames.ps1](Repair-DatabaseConstraintNames.ps1)**: Finds database constraints with system-generated names and gives them deterministic names.
- :up: **[Repair-DatabaseUntrustedConstraints.ps1](Repair-DatabaseUntrustedConstraints.ps1)**: Finds database constraints that have been incompletely re-enabled.
- :up: **[Send-SqlReport.ps1](Send-SqlReport.ps1)**: Execute a SQL statement and email the results.
- :up: **[Use-SqlcmdParams.ps1](Use-SqlcmdParams.ps1)**: Use the calling script parameters to set Invoke-Sqlcmd defaults.

### Date and time

- **[Add-TimeSpan.ps1](Add-TimeSpan.ps1)**: Adds a timespan to DateTime values.
- **[ConvertFrom-Duration.ps1](ConvertFrom-Duration.ps1)**: Parses a Timespan from a ISO8601 duration string.
- **[ConvertTo-EpochTime.ps1](ConvertTo-EpochTime.ps1)**: Converts a DateTime value into an integer Unix (POSIX) time, seconds since Jan 1, 1970.
- **[ConvertTo-LogParserTimestamp.ps1](ConvertTo-LogParserTimestamp.ps1)**: Formats a datetime as a LogParser literal.
- **[Format-Date.ps1](Format-Date.ps1)**: Returns a date/time as a named format.
- :up: **[Get-FrenchRepublicanDate.ps1](Get-FrenchRepublicanDate.ps1)**: Returns a date and time converted to the French Republican Calendar.
- :up: **[Show-Time.ps1](Show-Time.ps1)**: Displays a formatted date using powerline font characters.
- :up: **[Test-DateTime.ps1](Test-DateTime.ps1)**: Tests whether the given string can be parsed as a date.
- **[Test-USFederalHoliday.ps1](Test-USFederalHoliday.ps1)**: Returns true if the given date is a U.S. federal holiday.

### Dictionary

- **[Compare-Keys.ps1](Compare-Keys.ps1)**: Returns the differences between two dictionaries.
- :up: **[ConvertTo-OrderedDictionary.ps1](ConvertTo-OrderedDictionary.ps1)**: Converts an object to an ordered dictionary of properties and values.
- **[Join-Keys.ps1](Join-Keys.ps1)**: Combines dictionaries together into a single dictionary.
- :up: **[Remove-NullValues.ps1](Remove-NullValues.ps1)**: Removes dictionary entries with null vaules.
- :up: **[Split-Keys.ps1](Split-Keys.ps1)**: Clones a dictionary keeping only the specified keys.

### DotNet

- :up: **[Find-DotNetGlobalTools.ps1](Find-DotNetGlobalTools.ps1)**: Returns a list of global dotnet tools.
- :up: **[Get-AssemblyFramework.ps1](Get-AssemblyFramework.ps1)**: Gets the framework version an assembly was compiled for.
- :up: **[Get-DotNetFrameworkVersions.ps1](Get-DotNetFrameworkVersions.ps1)**: Determine which .NET Frameworks are installed on the requested system.
- :up: **[Get-DotNetGlobalTools.ps1](Get-DotNetGlobalTools.ps1)**: Returns a list of global dotnet tools.
- **[Get-DotNetVersions.ps1](Get-DotNetVersions.ps1)**: Determine which .NET Core & Framework versions are installed.

### EnvironmentVariables

- **[Compress-EnvironmentVariables.ps1](Compress-EnvironmentVariables.ps1)**: Replaces each of the longest matching parts of a string with an embedded environment variable with that value.
- **[Expand-EnvironmentVariables.ps1](Expand-EnvironmentVariables.ps1)**: Replaces the name of each environment variable embedded in the specified string with the string equivalent of the value of the variable, then returns the resulting string.

### Files

- **[Backup-File.ps1](Backup-File.ps1)**: Create a backup as a sibling to a file, with date and time values in the name.
- :up: **[Find-DuplicateFiles.ps1](Find-DuplicateFiles.ps1)**: Removes duplicates from a list of files.
- :up: **[Find-NewestFile.ps1](Find-NewestFile.ps1)**: Finds the most recent file.
- **[Join-FileName.ps1](Join-FileName.ps1)**: Combines a filename with a string.
- **[New-Shortcut.ps1](New-Shortcut.ps1)**: Create a Windows shortcut.
- **[Remove-LockyFile.ps1](Remove-LockyFile.ps1)**: Removes a file that may be prone to locking.
- **[Split-FileName.ps1](Split-FileName.ps1)**: Returns the specified part of the filename.
- **[Test-LockedFile.ps1](Test-LockedFile.ps1)**: Returns true if the specified file is locked.
- :up: **[Test-NewerFile.ps1](Test-NewerFile.ps1)**: Returns true if the difference file is newer than the reference file.
- :up: **[Update-Files.ps1](Update-Files.ps1)**: Copies specified source files that exist in the destination directory.

### Git and GitHub

- :up: **[Add-GitHubMetadata.ps1](Add-GitHubMetadata.ps1)**: Adds GitHub Linguist overrides to a repo's .gitattributes.
- **[Copy-GitHubLabels.ps1](Copy-GitHubLabels.ps1)**: Copies configured issue labels from one repo to another.
- :up: **[Get-GitFileMetadata.ps1](Get-GitFileMetadata.ps1)**: Returns the creation and last modification metadata for a file in a git repo.
- **[Get-GitFirstCommit.ps1](Get-GitFirstCommit.ps1)**: Gets the SHA-1 hash of the first commit of the current repo.
- :up: **[Get-GitHubRepoChildItem.ps1](Get-GitHubRepoChildItem.ps1)**: Adds any missing topics based on repo content.
- :up: **[Get-RepoName.ps1](Get-RepoName.ps1)**: Gets the name of the repo.
- **[Rename-GitHubLocalBranch.ps1](Rename-GitHubLocalBranch.ps1)**: Rename a git repository branch.
- **[Trace-GitRepoTest.ps1](Trace-GitRepoTest.ps1)**: Uses git bisect to search for the point in the repo history that the test script starts returning true.

### HTTP

- **[ConvertTo-BasicAuthentication.ps1](ConvertTo-BasicAuthentication.ps1)**: Produces a basic authentication header string from a credential.
- **[ConvertTo-MultipartFormData.ps1](ConvertTo-MultipartFormData.ps1)**: Creates multipart/form-data to send as a request body.
- :up: **[Get-ContentSecurityPolicy.ps1](Get-ContentSecurityPolicy.ps1)**: Returns the content security policy at from the given URL.
- :up: **[Get-SslDetails.ps1](Get-SslDetails.ps1)**: Enumerates the SSL protocols that the client is able to successfully use to connect to a server.
- **[Save-WebRequest.ps1](Save-WebRequest.ps1)**: Downloads a given URL to a file, automatically determining the filename.
- **[Show-HttpStatus.ps1](Show-HttpStatus.ps1)**: Displays the HTTP status code info.

### Json

- **[Merge-Json.ps1](Merge-Json.ps1)**: Create a new JSON string by recursively combining the properties of JSON strings.
- **[Set-JsonProperty.ps1](Set-JsonProperty.ps1)**: Sets a property of arbitrary depth in a JSON string.

### Packages and libraries

- :up: **[Find-ProjectPackages.ps1](Find-ProjectPackages.ps1)**: Find modules used in projects.
- :up: **[Get-LibraryVulnerabilityInfo.ps1](Get-LibraryVulnerabilityInfo.ps1)**: Get the list of module/package/library vulnerabilities from the RetireJS or SafeNuGet projects.

### Parameters

- **[Add-ParameterDefault.ps1](Add-ParameterDefault.ps1)**: Appends or creates a value to use for the specified cmdlet parameter to use when one is not specified.
- **[Remove-ParameterDefault.ps1](Remove-ParameterDefault.ps1)**: Removes a value that would have been used for a parameter if none was specified, if one existed.
- **[Set-ParameterDefault.ps1](Set-ParameterDefault.ps1)**: Assigns a value to use for the specified cmdlet parameter to use when one is not specified.

### PowerShell

- **[Add-Counter.ps1](Add-Counter.ps1)**: Adds an incrementing integer property to each pipeline object.
- **[Add-DynamicParam.ps1](Add-DynamicParam.ps1)**: Adds a dynamic parameter to a script, within a DynamicParam block.
- **[Add-ScopeLevel.ps1](Add-ScopeLevel.ps1)**: Convert a scope level to account for another call stack level.
- :up: **[ForEach-Progress.ps1](ForEach-Progress.ps1)**: Performs an operation against each item in a collection of input objects, with a progress bar.
- **[Format-ByteUnits.ps1](Format-ByteUnits.ps1)**: Converts bytes to largest possible units, to improve readability.
- :up: **[Format-Permutations.ps1](Format-Permutations.ps1)**: Builds format strings using every combination of elements from multiple arrays.
- :up: **[Get-EnumValues.ps1](Get-EnumValues.ps1)**: Returns the possible values of the specified enumeration.
- **[Get-TypeAccelerators.ps1](Get-TypeAccelerators.ps1)**: Returns the list of PowerShell type accelerators.
- :up: **[Import-Variables.ps1](Import-Variables.ps1)**: Creates local variables from a data row or dictionary (hashtable).
- **[Invoke-WindowsPowerShell.ps1](Invoke-WindowsPowerShell.ps1)**: Runs commands in Windows PowerShell (typically from PowerShell Core).
- **[Merge-PSObject.ps1](Merge-PSObject.ps1)**: Create a new PSObject by recursively combining the properties of PSObjects.
- :up: **[Read-Choice.ps1](Read-Choice.ps1)**: Returns choice selected from a list of options.
- :up: **[Stop-ThrowError.ps1](Stop-ThrowError.ps1)**: Throws a better error than "throw".
- **[Test-Administrator.ps1](Test-Administrator.ps1)**: Checks whether the current session has administrator privileges.
- :up: **[Test-Interactive.ps1](Test-Interactive.ps1)**: Determines whether both the user and process are interactive.
- **[Test-Range.ps1](Test-Range.ps1)**: Returns true from an initial condition until a terminating condition; a latching test.
- **[Test-Variable.ps1](Test-Variable.ps1)**: Indicates whether a variable has been defined.
- **[Use-ProgressView.ps1](Use-ProgressView.ps1)**: Sets the progress bar display view.
- :up: **[Use-ReasonableDefaults.ps1](Use-ReasonableDefaults.ps1)**: Sets certain cmdlet parameter defaults to rational, useful values.
- **[Write-Info.ps1](Write-Info.ps1)**: Writes to the information stream, with color support and more.

### PowerShell Modules

- :up: **[Uninstall-OldModules.ps1](Uninstall-OldModules.ps1)**: Uninstalls old module versions.
- **[Update-Modules.ps1](Update-Modules.ps1)**: Cleans up old modules.

### Properties

- **[Add-NoteProperty.ps1](Add-NoteProperty.ps1)**: Adds a NoteProperty to a PSObject, calculating the value with the object in context.
- :up: **[Compare-Properties.ps1](Compare-Properties.ps1)**: Compares the properties of two objects.
- **[Test-NoteProperty.ps1](Test-NoteProperty.ps1)**: Looks for any matching NoteProperties on an object.

### Scheduled Tasks

- **[Backup-SchTasks.ps1](Backup-SchTasks.ps1)**: Exports the local list of Scheduled Tasks into a single XML file.
- **[ConvertFrom-CimInstance.ps1](ConvertFrom-CimInstance.ps1)**: Convert a CimInstance object to a PSObject.
- :up: **[ConvertTo-ICalendar.ps1](ConvertTo-ICalendar.ps1)**: Converts supported objects (Scheduled Tasks) to the RFC 5545 iCalendar format.
- **[Copy-SchTasks.ps1](Copy-SchTasks.ps1)**: Copy scheduled jobs from another computer to this one, using a GUI list to choose jobs.
- **[Restore-SchTasks.ps1](Restore-SchTasks.ps1)**: Imports from a single XML file into the local Scheduled Tasks.

### Scripts

- :up: **[New-PesterTests.ps1](New-PesterTests.ps1)**: Creates a new Pester testing script from a script's examples and parameter sets.
- :up: **[New-Script.ps1](New-Script.ps1)**: Creates a simple boilerplate script.
- :up: **[Optimize-Help.ps1](Optimize-Help.ps1)**: Cleans up comment-based help blocks by fully unindenting and capitalizing dot keywords.
- :up: **[Rename-Script.ps1](Rename-Script.ps1)**: Renames all instances of a script, and updates any usage of it.
- **[Repair-ScriptStyle.ps1](Repair-ScriptStyle.ps1)**: Accepts justifications for script analysis rule violations, fixing the rest using Invoke-ScriptAnalysis.

### Search and replace

- **[Add-CapturesToMatches.ps1](Add-CapturesToMatches.ps1)**: Adds named capture group values as note properties to Select-String MatchInfo objects.
- :up: **[Find-Lines.ps1](Find-Lines.ps1)**: Searches a specific subset of files for lines matching a pattern.
- :up: **[Select-CapturesFromMatches.ps1](Select-CapturesFromMatches.ps1)**: Selects named capture group values as note properties from Select-String MatchInfo objects.
- **[Set-RegexReplace.ps1](Set-RegexReplace.ps1)**: Updates text found with Select-String, using a regular expression replacement template.

### Seq

- :up: **[Send-SeqEvent.ps1](Send-SeqEvent.ps1)**: Send an event to a Seq server.
- **[Send-SeqScriptEvent.ps1](Send-SeqScriptEvent.ps1)**: Sends an event (often an error) from a script to a Seq server, including script info.
- :up: **[Use-SeqServer.ps1](Use-SeqServer.ps1)**: Set the default Server and ApiKey for Send-SeqEvent.ps1

### System and updates

- **[Convert-ChocolateyToWinget.ps1](Convert-ChocolateyToWinget.ps1)**: Change from managing various packages with Chocolatey to WinGet.
- **[Export-EdgeKeywords.ps1](Export-EdgeKeywords.ps1)**: Returns the configured search keywords from an Edge SQLite file.
- **[Export-InstalledPackages.ps1](Export-InstalledPackages.ps1)**: Exports the list of packages installed by various tools.
- **[Find-InstalledPrograms.ps1](Find-InstalledPrograms.ps1)**: Searches installed programs.
- :up: **[Get-SystemDetails.ps1](Get-SystemDetails.ps1)**: Collects some useful system hardware and operating system details via CIM.
- :up: **[Import-EdgeKeywords.ps1](Import-EdgeKeywords.ps1)**: Adds search keywords to an Edge SQLite profile configuration.
- **[Read-ChocolateySummary.ps1](Read-ChocolateySummary.ps1)**: Retrieves the a summary from the Chocolatey log.
- :up: **[Update-Everything.ps1](Update-Everything.ps1)**: Updates everything it can on the system.
- :up: **[Use-Java.ps1](Use-Java.ps1)**: Switch the Java version for the current process by modifying environment variables.

### Unicode

- **[ConvertTo-SafeEntities.ps1](ConvertTo-SafeEntities.ps1)**: Encode text as XML/HTML, escaping all characters outside 7-bit ASCII.
- :up: **[Get-CharacterDetails.ps1](Get-CharacterDetails.ps1)**: Returns filterable categorical information about characters in the Unicode Basic Multilingual Plane.
- :up: **[Get-Unicode.ps1](Get-Unicode.ps1)**: Returns the (UTF-16) .NET string for a given Unicode codepoint, which may be a surrogate pair.
- :new: **[Get-UnicodeByName.ps1](Get-UnicodeByName.ps1)**: Returns characters based on Unicode code point name, GitHub short code, or HTML entity.
- :up: **[Get-UnicodeData.ps1](Get-UnicodeData.ps1)**: Returns the current (cached) Unicode character data.
- :up: **[Get-UnicodeName.ps1](Get-UnicodeName.ps1)**: Returns the name of a Unicode code point.

### VSCode

- **[Add-VsCodeDatabaseConnection.ps1](Add-VsCodeDatabaseConnection.ps1)**: Adds a VS Code MSSQL database connection to the repo.
- **[Get-VSCodeSetting.ps1](Get-VSCodeSetting.ps1)**: Sets a VSCode setting.
- **[Get-VSCodeSettingsFile.ps1](Get-VSCodeSettingsFile.ps1)**: Gets the path of the VSCode settings.config file.
- :up: **[Import-VsCodeDatabaseConnections.ps1](Import-VsCodeDatabaseConnections.ps1)**: Adds config XDT connection strings to VSCode settings.
- **[Push-WorkspaceLocation.ps1](Push-WorkspaceLocation.ps1)**: Pushes the current VS Code editor workspace location to the location stack.
- **[Set-VSCodeSetting.ps1](Set-VSCodeSetting.ps1)**: Sets a VSCode setting.

### XML

- :up: **[Compare-Xml.ps1](Compare-Xml.ps1)**: Compares two XML documents and returns the differences.
- **[Convert-Xml.ps1](Convert-Xml.ps1)**: Transform XML using an XSLT template.
- **[ConvertFrom-EscapedXml.ps1](ConvertFrom-EscapedXml.ps1)**: Parse escaped XML into XML and serialize it.
- **[ConvertFrom-XmlElement.ps1](ConvertFrom-XmlElement.ps1)**: Converts named nodes of an element to properties of a PSObject, recursively.
- :up: **[ConvertTo-XmlElements.ps1](ConvertTo-XmlElements.ps1)**: Serializes complex content into XML elements.
- **[Format-Xml.ps1](Format-Xml.ps1)**: Pretty-print XML.
- **[Get-XmlNamespaces.ps1](Get-XmlNamespaces.ps1)**: Gets the namespaces from a document as a dictionary.
- **[Merge-XmlSelections.ps1](Merge-XmlSelections.ps1)**: Builds an object using the named XPath selections as properties.
- **[New-NamespaceManager.ps1](New-NamespaceManager.ps1)**: Creates an object to lookup XML namespace prefixes.
- :up: **[Resolve-XmlSchemaLocation.ps1](Resolve-XmlSchemaLocation.ps1)**: Gets the namespaces and their URIs and URLs from a document.
- :up: **[Resolve-XPath.ps1](Resolve-XPath.ps1)**: Returns the XPath of the location of an XML node.
- :up: **[Show-DataRef.ps1](Show-DataRef.ps1)**: Display an HTML view of an XML schema or WSDL using Saxon.
- :up: **[Test-Xml.ps1](Test-Xml.ps1)**: Try parsing text as XML, and validating it if a schema is provided.

### Other

- :up: **[Backup-Workstation.ps1](Backup-Workstation.ps1)**: Adds various configuration files and exported settings to a ZIP file.
- **[Connect-SshKey.ps1](Connect-SshKey.ps1)**: Uses OpenSSH to generate a key and connect it to an ssh server.
- **[ConvertTo-RomanNumeral.ps1](ConvertTo-RomanNumeral.ps1)**: Convert a number to a Roman numeral.
- **[Copy-Html.ps1](Copy-Html.ps1)**: Copies objects as an HTML table.
- :up: **[Export-MermaidER.ps1](Export-MermaidER.ps1)**: Generates a Mermaid entity relation diagram for database tables.
- **[Export-Readme.ps1](Export-Readme.ps1)**: Generate README.md file for the scripts repo.
- **[Format-HtmlDataTable.ps1](Format-HtmlDataTable.ps1)**: Right-aligns numeric data in an HTML table for emailing, and optionally zebra-stripes &c.
- :up: **[Get-AspNetEvents.ps1](Get-AspNetEvents.ps1)**: Parses ASP.NET errors from the event log on the given server.
- :up: **[Get-Dns.ps1](Get-Dns.ps1)**: Looks up DNS info, given a hostname or address.
- :up: **[Get-IisLog.ps1](Get-IisLog.ps1)**: Easily query IIS logs.
- :up: **[Get-PocketArticles.ps1](Get-PocketArticles.ps1)**: Retrieves a list of saved articles from a Pocket account.
- **[Get-RandomBytes.ps1](Get-RandomBytes.ps1)**: Returns random bytes.
- :up: **[Get-Todos.ps1](Get-Todos.ps1)**: Returns the TODOs for the current git repo, which can help document technical debt.
- :up: **[Measure-Indents.ps1](Measure-Indents.ps1)**: Measures the indentation characters used in a text file.
- :up: **[Measure-StandardDeviation.ps1](Measure-StandardDeviation.ps1)**: Calculate the standard deviation of numeric values.
- :up: **[Measure-TextFile.ps1](Measure-TextFile.ps1)**: Counts each type of indent and line ending.
- :up: **[New-RandomVehicle.ps1](New-RandomVehicle.ps1)**: Generates random vehicle details with a valid VIN.
- :up: **[Optimize-Path.ps1](Optimize-Path.ps1)**: Sorts, prunes, and normalizes both user and system Path entries.
- **[Repair-AppxPackages.ps1](Repair-AppxPackages.ps1)**: Re-registers all installed Appx packages.
- **[Restore-Workstation.ps1](Restore-Workstation.ps1)**: Restores various configuration files and exported settings from a ZIP file.
- :up: **[Save-PodcastEpisodes.ps1](Save-PodcastEpisodes.ps1)**: Saves enclosures from a podcast feed.
- :up: **[Send-MailMessageFile.ps1](Send-MailMessageFile.ps1)**: Sends emails from a drop folder using .NET config defaults.
- :up: **[Test-HttpSecurity.ps1](Test-HttpSecurity.ps1)**: Scan sites using Mozilla's Observatory.
- **[Write-VisibleString.ps1](Write-VisibleString.ps1)**: Displays a string, showing nonprintable characters.

F# Scripts
----------
- **[NCrontab Schedule Test](https://webcoder.info/scripts/Test-NCrontab.html)**: Returns a sampling of the next several date & times scheduled by an NCrontab string.
- **[US Federal Holiday Detection](https://webcoder.info/scripts/USFederalHolidays.html)**: Here's how to determine whether a date is a US federal holiday using F#.

Office VBA Scripts
------------------
- **[OutlookExpireTag.vba](OutlookExpireTag.vba)**: Too many emails remain beyond their period of relevance: daily personnel schedule changes, found item notices, office food notices, server reboot notices, weather/traffic warnings, &c. This Outlook script will allow specifying an expiration date as a hashtag in the subject of outgoing emails, since Outlook does such a good job of hiding the UI for that field. -BL
- **[OutlookPasteFormattedIndented.vba](OutlookPasteFormattedIndented.vba)**: Outlook will strip single-space indents when displaying emails. If you've got, for example, syntax highlighted source code that employs any indentation of only one space, you'll want to add two spaces to the each line (adding one will not appear for text that isn't indented). This Outlook script will paste formatted text, and indent it. Requires Tools -> References -> Microsoft Word 14.0 Object Library (later versions may also work)
- **[OutlookPasteTsvTable.vba](OutlookPasteTsvTable.vba)**: This Outlook VBA Sub can be connected to a toolbar button for pasting TSV data as an attractive, formatted table. -BL Requires Tools -> References -> Microsoft Word 14.0 Object Library (later versions may also work)

<!-- generated 05/06/2023 20:23:48 -->

repository: mattsw/scripts

repo_name: mattsw/scripts


text:
# Digit Sequence Detector

## Getting Started

The main goal of this project is, thanks to Deep Learning techniques, to be able **to detect and identify sequences of digits in a random picture**. Specifically in this project, the images correspond to houses and the number sequences correspond to their house numbers.

The data used to train the model is part of the [SVHN](http://ufldl.stanford.edu/housenumbers/) dataset, which is a real-world image dataset for developing machine learning and object recognition problems and it is obtained from house numbers in Google Street View images.

It is available a full document which explains the followed process in this project. [Document](https://github.com/archelogos/sequence-detector/blob/master/project/docs/Sequence_Detector-MLDN_Capstone_Project.pdf)

There is also a public Web Application where can be seen the simplified goal of this project. [https://sequence-detector.herokuapp.com](https://sequence-detector.herokuapp.com)

## Install

This project requires **Python 2.7**, **[Conda](http://conda.pydata.org/docs/intro.html)** and the following Python libraries:

- [TensorFlow](http://www.tensorflow.org/)
- [NumPy](http://www.numpy.org/)
- [matplotlib](http://matplotlib.org/)

The most relevant parts of this project are developed in [iPython Notebooks](http://ipython.org/notebook.html)

## Code

The structure of the project is divided in three different parts:

 - **notebooks**: this part contains all the developed notebooks along the process building from a **Logistic Regression** to a **Multilayer ConvNet**.
 - **train-scripts**: a series of python scripts that allow to train the final model on [Google Cloud Platform](https://cloud.google.com/).
 - **app**: a web app coded in Python and "vanilla" Javascript, and all the necessary code to deploy it on [Heroku](https://www.heroku.com/).

## Run

How to train the model on GCP:

 - Create VM instances on Google Compute Engine
 - Access to the instances from shell
 - Run a background training process: `nohup python svhn_train.py &`

How to run and deploy the Web App on Heroku:

 - Create a Virtual Environment: `virtualenv env`
 - `source env/bin/activate`
 - Install the dependencies: `pip install -r requirements.txt`
 - Push the repo to Heroku remote: `git push heroku master`

## Data

The used datasets in this project are:

 - [MNIST data](http://yann.lecun.com/exdb/mnist/)
 - [SVHN data](http://ufldl.stanford.edu/housenumbers/)

## Others

About:

 - [Linkedin](https://es.linkedin.com/in/sgordillo)
 - [Twitter](https://twitter.com/Sergio_Gordillo)

## License

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

		https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License

repository: archelogos/sequence-detector

repo_name: archelogos/sequence-detector


text:
# Appointments

#### _An app for booking appointments, 08.09.2017_

## Setup and Installation Instructions
_This project was an attempt to experiment with the Datepicker plugin. It is not functional at the moment._

_Run the following commands in Terminal:_

1. `$ git clone` [this repository](https://github.com/codemargaret/appointments.git)
2. `$ cd appointments`
3. _Open in your preferred text editor for a closer look at the code._

## Project Goals
* _Practice jQuery effects._

## Bugs
_There are no known bugs at this time._

## Technologies Used
* _HTML_
* _Bootstrap_
* _JavaScript_
* _jQuery_

## Support and contact details
_If you have any updates, questions, or suggestions please contact [Margaret] or make a contribution._

[Margaret]<EMAIL_ADDRESS>
### License
This software is licensed under the MIT License.

Copyright (c) 2017 Margaret Berry

repository: codemargaret/appointments

repo_name: codemargaret/appointments


text:
# Vaults in Smapp

This document describes the main flows of creating and working with vaults in smapp.

Vaults is the only app which users can create and use in the first version of the Spacemesh mainnet.

Vaults is an advanced feature which showcase the power of the Spacemesh VM and smart contracts. It is designed to provide enhance security and capabilities for working with coins on the Spacemesh platform use cases.

Vaults also work with Ledger hardware wallet.

## Definitions

### Vault
A Spacemesh vault smart contract instance which is deployed from the vault's code template. The code template will be automatically deployed at genesis time of the Spacemesh network.

### A Simple Vault
A vault with one master account is fully controlled by the master account owner and he doesn't need authorization from anyone else to perform any operation such as withdraw, set daily spending limit and set daily spending account.

### A Multi Sig Vault
A vault configured with 3 master accounts. Operations are initiated by one master account owner and require approval of additional one master account owner on the following operations: withdraw, set daily spending limit and set daily spending account. A 3 master accounts vaults is similar to the concept of 2 out of 3 multi-sig wallet.

### Genesis Deployed Vaults
These vaults are deployed at genesis time to a Spacemesh network from data in the network's genesis config file. These vaults provide vesting capabilities.

### User Created Vaults
These vaults are created by users using a create transaction. Vesting features are not supported for user-created vaults. A new vault is created via a special transaction called `spawn-app` transaction. The user which creates and submits this transaction specifies his new vault's configuration and funding amount using the flow described below in smapp or in any other Spacemesh wallet app.

## Creating a Vault In Smapp - User Interactions

From a user-perspective a vault is a special account that is added to an existing wallet. The wallet can be a hot-wallet or a ledger hardware device wallet. When a vault is added to a hot-wallet, it is created by a wallet's hot address and operations on the vault in the basic use-case also use the wallet's hot addresses. When a vault is added to a ledger wallet, it is created using a hardware-wallet secured address and transaction and operations in the simple use case are performed by the user using a hardware wallet address.

### Step 1 - Set Vault Name
![](./resources/smart_wallet_mocks2/new_vault_step1.png)

1. User starts the new vault interaction by clicking new vault from his wallet's addresses drop down or from the wallet's settings.

2. App displays the new vault screen.

3. User names the vault and clicks next.

### Step 2 - Set Vault Type

![](./resources/smart_wallet_mocks2/new_vault_step2.png)

1. User selects `simple vault` or `multi-sig vault` and clicks `next`.

A simple vault is a vault which is controlled by one master account. A multi-sig vault is a vault which requires 2 signatures from 3 master accounts.

### Step 3 - Set Simple Vault Master Account

![](./resources/smart_wallet_mocks2/new_vault_step3.png)

- User's goal to specify the vault's master account.
- The dropdown should display all the accounts which were created in the wallet as well as an entry for each of the wallet's contacts.
- User should be able to paste any address. This allows users to create a vault which is controlled by any address - not just addresses in his wallet.

### Step 3 - Set Multi-sig Vault Master Accounts

![](./resources/smart_wallet_mocks2/new_vault_step3_rev1.png)

- User's goal to specify the vault's 3 master accounts.
- The drop-down should include all the wallet's accounts as well as contacts accounts.
- User should be able to paste an address into each of the 3 addresses fields.
- User should be able to save the vault information and continue the setup at a later time. This is needed as he may need to gather addresses from other uses that he wishes to setup the vault together with.
- User clicks `Next` when 3 accounts have been set.

### Step 4 - Set Daily Spending

![](./resources/smart_wallet_mocks2/new_vault_step4.png)
- User can set a daily spending limit and account and should be able to skip this optional step.
- User should be able to select any of his wallet's account or a contact account as the daily spending account. He should also be able to paste any address to set it as the daily spending account.
- User should be able to set the daily spending limit in coin units.
- User clicks `Next` after providing an address and a daily spending limit.

### Step 5 - Prepare New Vault Transaction

![](./resources/smart_wallet_mocks2/new_vault_step5.png)

- User should be able to provide the vault creation transaction required information.
- User selects one of the accounts with non-zero balance in his wallet.
- User should be able to set an optional funding amount to be transferred to the vault from the transaction's account.
- User should be able to set the transaction fee.
- User clicks 'Review' when he provided the 3 required data items.

### Step 6 - Review Simple Vault Setup

![](./resources/smart_wallet_mocks2/new_vault_step6.png)

- User reviews the new vault configuration, can go back and edit any configuration item, cancel the new vault creation process or click `Create Vault` to create it.
- When the user clicks on `Create Vault` the app should prepare, sign and submit the spawn-app transaction to the network.
- When the transaction is set from an account that is on a ledger device, the app should prompts the user to connect his device and sign the transaction on it.

### Step 6 - Review Multi Sig Vault Setup

![](./resources/smart_wallet_mocks2/new_vault_step6_rev1.png)

### Step 7 - New Vault Confirmation

![](./resources/smart_wallet_mocks2/new_vault_step7.png)
This screen is displayed when the new vault transaction has been successfully submitted to the network.

-----

## Working with Vaults

### Accessing a Vault
- Vaults are accessed in Smapp in a similar way to how an account is accessed.
- A vault always belongs to a specific smapp wallet and user views a vault by making it the current wallet's account in Smapp.
- To access a vault in a different wallet, user is expected to switch smapp to access that wallet and select to make the vault the active account.

### Working with Vaults

#### Vault Main Screen
![](./resources/smart_wallet_mocks2/simple_vault_main_screen.png)

- In the mock above, a simple vault called `My Vault` is displayed in `My Wallet`.
- A visual indicator next to the vault's name indicates that this is a vault account.
- Vault total balance is displayed on the bottom-left under `balance` - similar to the balance of a standard address.
- User can set up or modify daily spending limit or daily spending account by clicking on `Setup daily spending` button.
- On the right side, a list of recent vault transactions is displayed and user can click on `All Transactions` to view the vault's transactions. See vault transactions below.
- In the main area, 3 main buttons are displayed with the main simple vault commands.
- A vault can be funded by sending coin via a simple coin transaction from another account to the vault. Clicking on 'Fund' should display a transaction screen with the receiver address set to the vault's app instance account address. User should be able to select any account in the current wallet with a non-zero balance to prepare a fund transaction.
- Clicking on 'Request' should display a screen which includes instructions on how to request anyone to send money to the vault via a simple coin transaction.
- Clicking on 'Send' should trigger the `Send Coins from Vault` interaction.

#### Vault With Daily Spending and Vesting Screen

![](./resources/smart_wallet_mocks2/multi_sig_vault_main_screen.png)

#### Vault With Daily Spending and Vesting Screen - Vesting Details

![](./resources/smart_wallet_mocks2/multi_sig_vault_main_screen_vesting.png)

---

### Sending Coin from a Vault
There are 2 main cases to consider here:
- Case 1: Daily spending is not setup for the vault.
- Case 2: Daily spending is setup in the vault.

#### Case 1 - Single Vault
When user clicks on 'Send' the app should display a new transaction screen to enable the user to send coin using the vault's master account(s).

![](./resources/smart_wallet_mocks2/send_smh.png)

#### Case 1 - Multi Sig Vault

If the vault is a Multi Sig Vault, the transaction screen should include a note instructing the user to tell one of the 2 other master account holders to approve the transaction.

![](./resources/smart_wallet_mocks2/send_smh_multi.png)

Once the transaction was executed, the 2 other master accounts wallets will display a `pending approval request` that any of the owners can approve by executing a transaction from a master account.

----

#### Case 2 - Spend or Withdraw?
The app should display the following dialog where the user selects which account he wants to use to send coin from the vault - via the spending account or via the master account(s):

![](./resources/smart_wallet_mocks2/send_smh_spend_or_withdraw.png)

After the user selected how to spend, present the send smh screen:

![](./resources/smart_wallet_mocks2/send_smh_multi.png)

- The `From` field displays the account used to spend or withdraw. In case of withdraw it should display `My vault master account`. In case of spend, it should display 'Daily Spending Account' following with the account short string.
- If spending from daily spending account then limit the amount to the daily spending amount.

---

### Approving a Pending Withdraw Transaction

![](./resources/smart_wallet_mocks2/approve_withdraw_request.png)

---

### Viewing Vault's Transactions

> TODO: add screen shot here.

The transaction screen for a vault should display the following transactions:
1. The spwan-app transaction which created the vault (unless it is a genesis deployed vault)
2. Every call-app transaction sent to the vault.
3. Every fund transaction from another account which sent coin to the vault.

- Transactions should be clearly label to clarify their type.
- Transaction details for spawn-app should display the construction arguments - for each argument - name, and value.
- Transaction details for a call-app transaction should display the arguments names and values.

---

### Setting Daily Spending Limit Amount - Simple Vault

> Similar screen to the set daily spending limit amount in the new vault setup flow. User sets the amount. No approval is required.

---

### Setting Daily Spending Limit Amount - Multi Sig Vault

![](./resources/smart_wallet_mocks2/change_spend_amount_multi.png)

### Approving Daily Spending Limit Amount Change Request - Multi Sig Vault

![](./resources/smart_wallet_mocks2/change_spend_amount.png)

---

### Setting Daily Spending Limit Account - Simple Vault

> Similar screen to the setting daily spending amount in the new vault setup flow. User sets the amount. No approval is required.

---

### Setting Daily Spending Limit Account - Multi Sig Vault

![](./resources/smart_wallet_mocks2/change_spend_account_multi.png)

### Approving Daily Spending Limit Account Change Request - Multi Sig Vault

![](./resources/smart_wallet_mocks2/change_spend_account.png)

---

### Adding an Existing Vault

Users should be able to add any vault to their wallet. They will want to do it when the wallet includes one or more accounts that can execute vault transactions. e.g. the wallet includes the vault's master account or the wallet includes a vault's spending account.

Adding a vault to a wallet is done by specifying the vault's account address. Once added, the vault appears as an account in that wallet. A vault can be added to any wallet.

When attempting to withdraw, daily spend or execute another transaction which requires a vault master key such change daily spending amount or account and the wallet doesn't include the account required for such an operation, the app should notify the user about this condition and recommend the user to add the vault to a wallet which has this address.

![](./resources/smart_wallet_mocks2/add_existing_vault.png)

---

repository: spacemeshos/product

gha_language: CSS

repo_name: spacemeshos/product