text:
# Install-ChocolateyIsoInstallPackage

<!-- This documentation is automatically generated from https://github.com/mkevenaar/chocolatey-packages/tree/master//extensions/chocolatey-isomount.extension/extensions/Install-ChocolateyIsoInstallPackage.ps1 using https://github.com/mkevenaar/chocolatey-packages/tree/master/GenerateDocs.ps1. Contributions are welcome at the original location(s). -->

**NOTE:** Administrative Access Required.

Installs software into "Programs and Features" based on a remote ISO file download.
Use Install-ChocolateyIsoPackage when the ISO needs to be downloaded first.

## Syntax

~~~powershell
Install-ChocolateyIsoInstallPackage `
  -PackageName <String> `
  -IsoFile <String> `
  [-FileType <String>] `
  [-SilentArgs <String[]>] `
  [-File <String>] `
  [-File64 <String>] `
  [-ValidExitCodes <Object>] `
  [-UseOnlyPackageSilentArguments] `
  [-IgnoredArguments <Object[]>] [<CommonParameters>]
~~~

## Description

This will mount an ISO file, and executes the specified native installer.
Has error handling built in.
If you need to download the ISO file first, use Install-ChocolateyIsoPackage instead.

## Notes

This command will assert UAC/Admin privileges on the machine.

If you are embedding ISO files into a package, ensure that you have the
rights to redistribute those files if you are sharing this package
publicly (like on the [community feed](https://community.chocolatey.org/packages)). Otherwise, please use
Install-ChocolateyIsoPackage to download those resources from their
official distribution points.

This is a wrapper around several existing Chocolatey commandlets.

Chocolatey is copyrighted by its rightful owners. See: https://chocolatey.org

## Aliases

None

## Examples

 **EXAMPLE 1**

~~~powershell

$packageName= 'bob'
$toolsDir   = "$(Split-Path -Parent $MyInvocation.MyCommand.Definition)"
$fileLocation = Join-Path $toolsDir 'ISO_EMBEDDED_IN_PACKAGE'

$packageArgs = @{
    packageName   = $packageName
    fileType      = 'msi'
    file          = 'setup.msi'
    file64        = 'x64\setup64.msi'
    silentArgs    = "/qn /norestart"
    validExitCodes= @(0, 3010, 1641)
    softwareName  = 'Bob*'
    isoFile       = $fileLocation
}

Install-ChocolateyIsoInstallPackage @packageArgs
~~~

## Inputs

None

## Outputs

None

## Parameters

###  -PackageName <String>
The name of the package - while this is an arbitrary value, it's
recommended that it matches the package id.

Property               | Value
---------------------- | -----
Aliases                |
Required?              | true
Position?              | 1
Default Value          |
Accept Pipeline Input? | false

###  -IsoFile <String>
The location of the ISO file.
If embedding in the package, you can get it to the path with
`"$(Split-Path -parent $MyInvocation.MyCommand.Definition)\\ISO_FILE"`

Property               | Value
---------------------- | -----
Aliases                |
Required?              | true
Position?              | 2
Default Value          |
Accept Pipeline Input? | false

###  -FileType [<String>]
This is the extension of the file. This can be 'exe', 'msi', or 'msu'.
[Licensed editions](https://chocolatey.org/compare) of Chocolatey use this to automatically determine
silent arguments. If this is not provided, Chocolatey will
automatically determine this using the downloaded file's extension.

Property               | Value
---------------------- | --------------------------
Aliases                | installerType, installType
Required?              | false
Position?              | 3
Default Value          | exe
Accept Pipeline Input? | false

###  -SilentArgs [<String[]>]
OPTIONAL - These are the parameters to pass to the native installer,
including any arguments to make the installer silent/unattended.
[Licensed editions](https://chocolatey.org/compare) of Chocolatey will automatically determine the
installer type and merge the arguments with what is provided here.

Try any of the to get the silent (unattended) installer -
`/s /S /q /Q /quiet /silent /SILENT /VERYSILENT`. With msi it is always
`/quiet`. Please pass it in still but it will be overridden by
Chocolatey to `/quiet`. If you don't pass anything it could invoke the
installer with out any arguments. That means a nonsilent installer.

Please include the `notSilent` tag in your Chocolatey package if you
are not setting up a silent/unattended package. Please note that if you
are submitting to the [community repository](https://community.chocolatey.org/packages), it is nearly a requirement
for the package to be completely unattended.

When you are using this with an MSI, it will set up the arguments as
follows:
`"C:\Full\Path\To\msiexec.exe" /i "$downloadedFileFullPath" $silentArgs`,
where `$downloadedfileFullPath` is `$url` or `$url64`, depending on what
has been decided to be used.

When you use this with MSU, it is similar to MSI above in that it finds
the right executable to run.

When you use this with executable installers, the
`$downloadedFileFullPath` will also be `$url`/`$url64` SilentArgs is
everything you call against that file, as in
`"$fileFullPath" $silentArgs"`. An example would be
`"c:\path\setup.exe" /S`, where
`$downloadedfileFullPath = "c:\path\setup.exe"` and `$silentArgs = "/S"`.

Property               | Value
---------------------- | -----
Aliases                |
Required?              | false
Position?              | 4
Default Value          |
Accept Pipeline Input? | false

###  -File [<String>]
The locatation of the 32bit file inside the ISO.

Property               | Value
---------------------- | ------------
Aliases                | fileFullPath
Required?              | false
Position?              | 5
Default Value          |
Accept Pipeline Input? | false

###  -File64 [<String>]
The locatation of the 64bit file inside the ISO.

Property               | Value
---------------------- | --------------
Aliases                | fileFullPath64
Required?              | false
Position?              | named
Default Value          |
Accept Pipeline Input? | false

###  -ValidExitCodes [<Object>]
Array of exit codes indicating success. Defaults to `@(0)`.

Property               | Value
---------------------- | -----
Aliases                |
Required?              | false
Position?              | named
Default Value          | @(0)
Accept Pipeline Input? | false

###  -UseOnlyPackageSilentArguments
Do not allow choco to provide/merge additional silent arguments and
only use the ones available with the package. Available in 0.9.10+.

Property               | Value
---------------------- | ------------------------
Aliases                | useOnlyPackageSilentArgs
Required?              | false
Position?              | named
Default Value          | False
Accept Pipeline Input? | false

###  -IgnoredArguments [<Object[]>]
Allows splatting with arguments that do not apply. Do not use directly.

Property               | Value
---------------------- | -----
Aliases                |
Required?              | false
Position?              | named
Default Value          |
Accept Pipeline Input? | false

### <CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see `about_CommonParameters` http://go.microsoft.com/fwlink/p/?LinkID=113216 .

## Links

 * [[Install-ChocolateyPackage|HelpersInstallChocolateyPackage]]
 * [[Uninstall-ChocolateyPackage|HelpersUninstallChocolateyPackage]]
 * [[Get-UninstallRegistryKey|HelpersGetUninstallRegistryKey]]
 * [[Start-ChocolateyProcessAsAdmin|HelpersStartChocolateyProcessAsAdmin]]

[[Function Reference|HelpersReference]]

***NOTE:*** This documentation has been automatically generated from `Import-Module "$env:ChocolateyInstalls\chocolatey-isomounts\chocolatey-isomount.psm1" -Force; Get-Help Install-ChocolateyIsoInstallPackage -Full`.

View the source for [Install-ChocolateyIsoInstallPackage](https://github.com/mkevenaar/chocolatey-packages/tree/master//extensions/chocolatey-isomount.extension/extensions/Install-ChocolateyIsoInstallPackage.ps1)

repository: mkevenaar/chocolatey-packages

gha_language: PowerShell

repo_name: mkevenaar/chocolatey-packages


text:
# EasyVolley
Android Volley Wrapper library to make networking easy, flexible and better.

[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-EasyVolley-green.svg?style=flat)](https://android-arsenal.com/details/1/2382)

Purpose

In 2013 google introduced Volley: Easy & Fast Networking library for Android. Since then I fell in love with Volley. It is indeed fast, easy and highly customizable But the approach to integrate it within a project for example, loading images, extending requests, customizing requests etc all seemed quite confusing to me. I always thought of how can we make it easy to use and easy to custimze P.S. also adding some new features would be nice :). This thought became the inspiration behind EasyVolley.

Installation

**GRADLE**

````
dependencies {
  compile 'com.github.asifmujteba:easyvolley:0.9.+'
}
````

Usage

A Sample is already included to demonstrate the usage.

- Initialize and do global configurations using `EasyVolley` class once on application start and dispose in the end, preferably by extending Applcation class.

````
EasyVolley.initialize(getApplicationContext());
````

````
EasyVolley.dispose();

````

**Performing Http Requests**

````
EasyVolley.withGlobalQueue()
                .load(URL_COMES_HERE)
                .asJsonObject()
                .setSubscriber(OBJECT_REFERENCE_HERE) // Once this object unsubscribes the request is cancelled and no callbacks are called
                .setCallback(new ASFRequestListener<JsonObject>() {
                    @Override
                    public void onSuccess(JsonObject response) {
                        // DO_SOMETHING_HERE
                    }

                    @Override
                    public void onFailure(Exception e) {
                        // SO_SOMETHING_HERE
                    }
                })
                .start();
````

**Subscription Mechanism**

Call `.setSubscriber(OBJECT_REFERENCE_HERE)` on a request to attach it against the object passed. i-e, Pass the activity here.

And call `EasyVolley.unSubscribe(OBJECT_REFERENCE_HERE);` when the request is longer needed i-e, In onDestroy() method of Activity.

This will ensure that requests are cancelled and callbacks are not called after the activity has been destroyed.

**Performing Image Requests**
- Ability to set callbacks on image load or directly load it into an ImageView
- Ability to set image width, height and different scale types.

````
EasyVolley.withGlobalQueue()
                .load(url)
                .asBitmap()
                .setMaxWidth(WIDTH_HERE) // OPTIONAL
                .setMaxHeight(HEIGHT_HERE) // OPTIONAL
                .setScaleType(SCALE_TYPE_HERE) // OPTIONAL
                .setCallback(...) // OPTIONAL
                .into(IMAGE_VIEW_HERE) // OPTIONAL
                .start();
````

**Managing Request Queues**

By default EasyVolley creates a global Request Queue to process all requests. We can also create new request queues if needed.

````
EasyVolley.withNewQueue(getApplicationContext())
````

**Setting Headers**

````
EasyVolley.withGlobalQueue()
                .load(URL_COMES_HERE)
                .addHeader(KEY1_HERE, VALUE1_HERE)
                .addHeader(KEY2_HERE, VALUE2_HERE)
                ...
````

**Adding Get/Post Parameters**

````
EasyVolley.withGlobalQueue()
                .load(URL_COMES_HERE)
                .addParam(KEY1_HERE, VALUE1_HERE)
                .addParam(KEY2_HERE, VALUE2_HERE)
                ...
````
**Request Caching**
- Cache uses least recently used technique to limit memory size.
- By defaut all requests are cached in memory and disk as well. (caching http requests directly in memory in addition to images really fastens the User experience especially for fast scrolling scenarios)
- Http headers, Get parameters, Post body digest are all taken into consideration for effiecient caching

Coming Soon / TODO

- Schedule Callbacks on Main Thread always.
- Respecting Http Cache-Control and Expiry Headers for memory Cache as well.
- Auto scale images to fit ImageViews by inspecting ImageView attributes
- Treat same image requests with different scale sizes differently.
- Ability to Add http headers and parameters to all requests globally and for a specfic Request Queue.
- Ability to set Image loading configurations globally
- Loading and caching images from Content Providers and Local disk
- Multipart Http Requests
- Write Wrappers for upload/Download tasks
- Batch Requests
- By default set low priority for Image Requests
- Prioritize certain requests

Author

Asif Mujteba<EMAIL_ADDRESS>Twitter: @asifmujteba

License

This library is available under the Apache v2 license. See the LICENSE file for more info.

repository: githubzoujiayun/EasyVolley

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: githubzoujiayun/EasyVolley


text:
---
id: 859
title: Release of version 0.99
date: 2014-04-10T08:29:10+00:00
author: alfred
layout: post
guid: http://jsxgraph.uni-bayreuth.de/wp/?p=859
permalink: /2014/04/10/release-of-version-0-99/
categories:
  - Releases
---
It’s out! We just released JSXGraph version 0.99. The most notable changes are a completely new plotting algorithm for function graphs and curves (If one wants to use the plotting algorithm of version 0.98, the attribute doAdvancedPlotOld:true can be supplied). Further, there are new elements:

  * polarline,
  * polarpoint,
  * radicalaxis
  * stepfunction
  * cardinal splines

Thanks to our contributors of code. It is good to have helping hands all over the world. Additionally, the visual appearance of the navigation bar has been improved, speed has been improved and many bugs could be fixed. The details can be seen in the [CHANGELOG](https://github.com/jsxgraph/jsxgraph/blob/master/CHANGELOG.md).

Best wishes, Alfred

license: MIT

repository: jsxgraph/website

gha_language: HTML

gha_license_id: MIT

repo_name: jsxgraph/website


text:
# Description
This is the top-level FTP directory for IMPC data. IMPC data
releases and other data pertaining to the data release are
contained within.

NOTE: The `latest` link previously at this top level has been
       moved to:
   ftp://ftp.ebi.ac.uk/pub/databases/impc/all-data-releases/latest

`README.md` and `README.txt` file contents are identical.
`README.md` files are provided for better presentation for those
 browsers that have a markdown plugin.

Snapshots of the entire dataset captured at the time of data
release are available for bulk download via this FTP portal.

Starting with DR12, we have changed the structure of the FTP
site in order to accommodate requests made by our users.

To find the latest data release data and reports, please navigate to:
ftp://ftp.ebi.ac.uk/pub/databases/impc/all-data-releases/latest/results/.
The README file in that directory describes the content of each report
and specifies the mapping of the old reports to the new reports.

To find the top of the latest data release, please navigate to:
ftp://ftp.ebi.ac.uk/pub/databases/impc/all-data-releases/latest/

To find the top of all data releases, ordered from
oldest to newest, please navigate to:
ftp://ftp.ebi.ac.uk/pub/databases/impc/all-data-releases/

The mapping of the old reports to the new reports may be found here:
 ftp://ftp.ebi.ac.uk/pub/databases/impc/all-data-releases/latest/results/README.txt
 ftp://ftp.ebi.ac.uk/pub/databases/impc/all-data-releases/latest/results/README.md

The reports in the results folder are purpose-built reports
intended for general use. The genotype-phenotype-assertions
reports contain all the genotype to phenotype significant
associations ascribed to Mammalian Phenotype (MP) ontology
terms, based on the statistical analysis performed using
the OpenStat R package (starting with DR12, previously the
PhenStat R package). “ALL”, “IMPC”, “EuroPhenome”, “MGP”
and “3I” in the file names indicate different projects. “ALL”
encompasses all data in the “IMPC”, “EuroPhenome”, “MGP” and
“3I” files.

gha_language: Java


text:
JS-Utility-Belt
===============

[![npm](https://img.shields.io/npm/v/js-utility-belt.svg?maxAge=2592000)](https://www.npmjs.com/package/js-utility-belt)
[![Dependency Status](https://david-dm.org/bigchaindb/js-utility-belt.svg)](https://david-dm.org/bigchaindb/js-utility-belt)
[![devDependency Status](https://david-dm.org/bigchaindb/js-utility-belt/dev-status.svg)](https://david-dm.org/bigchaindb/js-utility-belt#info=devDependencies)
[![Code style](https://img.shields.io/badge/code%20style-ascribe-brightgreen.svg)](https://github.com/ascribe/javascript)
[![Join the chat at https://gitter.im/bigchaindb/bigchaindb](https://badges.gitter.im/bigchaindb/bigchaindb.svg)](https://gitter.im/bigchaindb/bigchaindb?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

Opinionated collection of JavaScript nice-to-haves.

From the experiences of building the frontends of [ascribe.io](www.ascribe.io),
[whereonthe.net](www.whereonthe.net), and various examples with BigchainDB.

Usage
-----

Simply `npm install -S js-utility-belt` and start using `import { ... } from 'js-utility-belt'` (assuming you've met the [dependencies](#dependencies)!

There are a number of outputs generated by npm after installation, dependending on your
needs:

* `js-utility-belt/lib` - Transpiled, ES5 compatible CommonJS modules (for most module bundlers) (**Default**)
* `js-utility-belt/es6` - Transpiled, ES5 compatible ES6 modules (for newer module bundlers that
  understand ES6 module and can provide tree-shaking; ie. [rollup](rollupjs.org), [jspm](jspm.io),
  [webpack@2](webpack.github.io/docs/))
* `js-utility-belt/bundle` - Transpiled, bundled, and minified UMD modules (for droppin' into your
  site)

### Dependencies

If you are using either of the non-bundled versions (`/es6` or `/lib`), you should make sure your
environment either supports all ES6 features, or you have polyfilled them in (**recommended**:
[core-js/es6](https://github.com/zloirock/core-js#ecmascript-6), and
[isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch)).

This is not necessary for the bundled version as all polyfills have already been included.

### Reducing import size

Importing from the base index of either of the transpiled versions (`/lib` or `/es6`) will import
the entire package (even with treeshaking!). To make sure you only import what you need, you can
import just the module (ie. `lib/general`, `lib/cookie`, etc...) or even just the particular
function (ie. `lib/general/safe_merge`, `lib/cookie/get_cookie`) that you want.

If you have treeshaking enabled, you can safely import from the ES6 version at the module level and
let treeshaking remove any unused imports from the module (making function-level imports
unnecessary).

Development
-----------

Any added functions or modules should be structured to allow for selective imports by the user. With
this in mind, there are two rules to follow:

* Modules: Each module should be its own folder
  * Modules should include a `index.js` that re-exports all contained functions
  * Modules should be re-exported through the package's [index.js](./src/index.js) with an
    [extended-export-from](https://github.com/leebyron/ecmascript-more-export-from) statement:
    `export * as Module from './module'`
* Functions: Each function should be contained in its own file, adhering to the
  [style guide](#style-guide)'s naming scheme: the file name should be the snake_case form of the
  function's name.

### Style guide

See the [ascribe/javascript](https://github.com/ascribe/javascript) styleguide.

TODO
====
* [ ] Unit tests
* [ ] Add documentation on which utilities are available

repository: dzjack/js-utility-belt

repo_name: dzjack/js-utility-belt


text:
Welcome to the SlowComcast community! Please contact u/McCossum to be an approved poster.

To set up make sure you pip install pyspeedtest and praw
You will also need to create an app permission at https://www.reddit.com/prefs/apps/
Select 'create application' and 'script'
Name it 'SlowComcastBot' with the description of 'Bot to post to r/SlowComcast when Comcast is slow'
'About url' can be left blank but 'redirect uri' should be 'http://localhost:8080'
Click 'create app' then add McCossum as a developer if you are so kind
You will relieve 'secret' and 'personal use script' codes to input below
'Personal use script' can be input for the clientID and 'secret for the clientSecret
This code can be run by navigating to the installed directory in command prompt and typing 'python SlowComcast.py'

repository: McCossum/SlowComcast

repo_name: McCossum/SlowComcast


text:
# Cronjobs for Cloud Platform Reports

This helm chart defines kubernetes cronjobs which generate data and post it as
JSON to the Cloud Platform Reports web application.

These cronjobs are deployed to the `manager` cluster, in the `concourse-main`
namespace, because all the required secrets are already being maintained in
there.

branch_name: refs/heads/main

gha_language: Go


text:
# Cloudpress

Who needs Wordpress when you can use CLOUDPRESS!

## What?

Cloudpress is a blogging engine that publishes metadown files from Dropbox. It's designed as a fire and forget blogging solution, if you can write a metadown/markdown file then you can publish it without doing anything more than just placing it in a directory on Dropbox.

It's designed to be included within a Rails 3.1+ application, and provides a multitude of hooks for you to build your own templates around it.

## Requirements

  - Rails 3.1+
  - PostgreSQL database
  - Dropbox Account

## Installation

Add these lines to your application's Gemfile:

```ruby
gem 'cloudpress'
gem 'metadown', github: 'steveklabnik/metadown'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install cloudpress

After that, you will want to copy the migrations into the application

    $ rake cloudpress:install:migrations

And then run the initializer generator, which will ask you to fill in the application ID, log in to dropbox and authorize the application, and then enter the token you're provided with and then write them all in to `config/initializers/cloudpress.rb` you may want to replace them with ENV variables instead of hardcoding them.

    $ rails g cloudpress:initializer

The application ID is `7i1ku4x291czftv` which points to a dropbox application that I've made. If you'd like to create your own, just go ahead and replace that ID with your own applications.

After you've done that you can run your initial import.

    $ rake cloudpress:update

## Configuration

```ruby
config.app_key         # The application ID, as explained above
config.app_secret      # The app secret, populated by the installer
config.app_token       # The token you pasted in from the installtion
config.base_path       # The path in your dropbox that's considered root
config.live_path       # Where your live files will live under the base_path
config.draft_path      # Draft file location, under the base_path
config.draft_user      # Username for draft HTTP auth, leave as nil for no auth
config.draft_password  # Password for draft HTTP auth, leave as nil for no auth
```

## Usage

Cloudpress provides the majority of it's functionality through view helper renderers that you can move around and change to fit with your HTML structure.

You can see examples of these within the `views/cloudpress/*` folder, again all of these partial templates can be overriden within your application by adding a `views/cloudpress/*` directory.

## Adding Posts

Cloudpress, by default will look in a `cloudpress` directory in the root of your Dropbox. Inside it will create two folders on the first update, `live` and `draft` folders. Cloudpress will search these directories recursivly, so you can use whatever organisational structure suits. I tend just to stick with years, since I don't write enough blog posts!

You then just create a `metadown` file with a `md` extension, that reads like this:

```
---
title: The Rails renderer pattern
publish_date: 24/04/2015 10:30AM
tags:
- Ruby
- Ruby on rails
- Renderers
- Views
---
## Development
So this is the content...
```

The first part of the file contains metadata about the post, the second the actual content, all markdown is supported, and uses pygments for code block highighting

## Updating

I've got this deployed on Heroku, with a scheduled job to run every 10 mins using the provided rake task, or you can do it programatically by booting a console and typing `Cloudpress.update!`

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, 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` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).

## Contributing

1. Fork it ( https://github.com/[my-github-username]/cloudpress/fork )
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request

repository: adamcarlile/cloudpress

repo_name: adamcarlile/cloudpress


text:
# MyAppSimple

This is a sample Meteor application to play with mixing authentication, TinyTest, settings, models, hooks and forms.

This application is a form to store user requests in a table and admins manage the request with a simple workflow where admins can set an unordered 'status' field or some private fields.

The field `status` is shared between admins and users.

## Quick start

Install Meteor in debian wheezy with backports (07/2014)

```
$ apt-get install build-essential

$ apt-get install nodejs mongodb-server
$ ln -s /usr/bin/nodejs /usr/bin/node
$ curl https://www.npmjs.org/install.sh | sh

# install Meteor
$ curl https://install.meteor.com/ | sh
```

Get this code
```
git clone https://github.com/yvesago/MyAppSimple.git
cd MyAppSimple/
```

Add packages:
```
meteor add aldeed:collection2
meteor add aldeed:autoform
meteor add matb33:collection-hooks
meteor add iron:router

meteor add accounts-password
meteor add alanning:roles
meteor add mrt:accounts-admin-ui-bootstrap-3
meteor add ian:accounts-ui-bootstrap-3

meteor add atoy40:accounts-cas
meteor add atoy40:accounts-ldap-profile

meteor add kasoki:reactive-table
meteor add natestrauser:font-awesome
meteor add showdown
meteor add email

meteor add anti:i18n
meteor add jeeeyul:moment-with-langs
```

tests:
```
meteor test-packages tests/  --settings tests/Meteor.settings.test
```

Watch results in <http://localhost:3000>

## Settings

`server/Meteor.settings.tmpl` contains a sample settings file. You can copy and protect `server/Meteor.settings` with `.gitignore` and set your secret values.

`server/Meteor.settings` contains values visible on **server side**. Only values in subset `" public": { } ` are visible on **client side**.

You can start to define an **application name** (AppName) and **environment** status : only `prod` environment will send mails.

## Model

`model.js` contains the description of `Apps` collection.

`collection2` and `collection-hooks` are used to manage most of access logic and data processing from `model.js`. This allow to write quick and easy tests.  Moreover, `server/publish.js` show Apps' documents to owners and the special AppName application to everybody.

You will find in `model.js` some sample code for sending e-mails, deny/allow access to data and some hooks to limit fields or values to admins or users.

`collection2` allows to manage mandatory and default values or create an update history of changes.

## Authentication

To create a mixed authentication between local login/password and remote Jasig CAS login and ldap account, we use
`account-password`,  `roles`,  `accounts-ui-bootstrap-3` and `account-cas`, `account-ldap-profile`.

`accounts-admin-ui-bootstrap-3` allows to manage roles.

`client/client.js` contains code to remove forgoten and changing password functionalities for remote account. `Meteor.settings` contains samples for cas/ldap settings ability to create some default local accounts and roles created on startup.

CAS needs to use the real server URL. You need to set ROOT_URL on meteor startup :
```
ROOT_URL="http://myappserver.univ.org:3000" meteor --settings server/Meteor.settings
```

`router.js` is used to request authentication.

## Tests

Even most of Meteor and Meteor packages use **TinyTest**, there's a real lack of documentation on Meteor testing.

In `tests/` directory you will find a simple `tests.js` with some tests to validate data access by roles.

```
meteor test-packages tests/  --settings tests/Meteor.settings.test
```

You will watch results on <http://localhost:3000>

`insecure_login.js` allows switching between few users profiles. Apps collection is flushed before any admin connexion.

`packages.js` defines packages and production files to be tested : the most important files for this sample app are `model.js`and `publish.js̀ . `router.js` and `Meteor.settings.test` are used to respect some mandatory values used in `model.js`.

## Views

Views are defined in `client/myappsimple.html` and `client/client.js`.

### Table

The package `reactive-table` is used to show paginate data with sorting and data filtering. `client/client.js` contains a sample with settings for reactive-table to show the use of templates, function, cell editing in a modal form.

### Forms

`autoform` is used to create two forms : one for 'insert' and a modular and modal bootstrap 'update" form.

Form fields are defined with `collection2` in `model.js`. You will find some sample code for various fields : textarea,  array with select or checkbox, mandatory and hidden fields.

### Various

You will find some samples to use text translation for various languages with `anti:i18n` in templates, helpers or model. Moreover the use of `moment-with-langs` allows to write dates and time in local language.

`showdown` allows to use Markdown in templates or write a full page as in appInfo.

# Deployment

There is a lot of documentation to deploy a Meteor app with nginx or apache config, scripts to package and deploy, `forever` config for nodejs app but I don't find any sample to deploy a Meteor application on Debian with a minimal setting.

You will find in `server/debian-start.sh` a simple `start-stop-daemon` with logs send in `/var/log/messages`. Feel free to custom this script with deploy or forever commands.

Meteor applications will be stored in `/var/www/$NAME`, configs in `/etc/meteor/`.

On client side
```
meteor build ../myappsimpleBundle --architecture os.linux.x86_32

scp ../myappsimpleBundle/myappsimple.tar.gz root@myappserver:/var/www/myappsimple
scp server/debian-start.sh root@myappserver:/etc/init.d/myappsimple
scp server/Meteor.settings root@myappserver:/etc/meteor/Meteor.myappsimple.settings
```

On server side
```
cd /var/www/myappsimple

tar zxvf myappsimple.tar.gz

vi /etc/init.d/myappsimple
# fix ROOT_URL, METEOR_URL, ...

/etc/init.d/myappsimple start

update-rc.d myappsimple defaults
```

# AUTHORS

Yves Agostini<EMAIL_ADDRESS>
# LICENSE AND COPYRIGHT

License : MIT

Copyright 2015 - Yves Agostini

repository: yvesago/MyAppSimple

repo_name: yvesago/MyAppSimple


text:
# Trading Losses

## Losses from a previous period

### CPQ17 (existing box)
Do have losses from a previous period?

Type: Boolean

Validation:
* Required if CP117 > 0
* Cannot exist if CP117 == 0
* Cannot exist if CPQ19 exists

### CPQ117 (new box)
Do any of these arise whilst qualifying for NIR?

Type: Boolean

Validation:
* Required if CPQ17 is true
* Cannot exist if CPQ17 is not true

# CP281 (existing box)
What is the total value of your trading losses from previous accounting periods?

Type: Int

Validation:
* Required if CPQ17 is true
* Cannot exist of CPQ17 is empty or false
* Max 99999999
* Min 1
* If loss reform applies must equal CP281a + CP281b

### CP281a (existing box)
How much of those losses are from before 1st April 2017?

Type: Int

Validation:
* Required if CPQ17 is true and loss reform applies
* Cannot exist if CPQ17 is false or loss reform does not apply
* Max 99999999
* Min 0
* Must equal CP283a + CP288a

### CP281b (existing box)
How much of those losses arise on or after 1st April 2017?

Type: Int

Validation:
* Required if CPQ17 is true and loss reform applies
* Cannot exist if CPQ17 is false or loss reform does not apply
* Max 99999999
* Min 0
* Must equal CP283b + CP288b + CP997

# CP282 (existing box)
Adjusted Trading Profit for the Period

Type: Int

Calculated:
* if CPQ17 is true then CP282 = CP117 else empty

# CP283 (existing box)
Losses brought forward used against trading profit

Type: Int

Calculated:
* if CP283a OR CP283b is non empty then CP283 = CP283a + CP293b
* else if cpq17 is true then CP283 = min (CP281, CP282)

### CP283a (existing box)
Losses brought forward from before 01/04/2017 used against trading profit

Type: Int

Validation:
* Required is CP281a > 0
* Max 99999999
* Min 0
* CP283a <= CP281a

### CP283b (updated box)
Losses brought forward from on or after 01/04/2017 used against trading profit

Type: Int

Updated Validation:
* Required if CP281b is positive
* Max 99999999
* Min 0
* if NIR applies then CP283b must equal CP283c + CP283d

### CP283c (new box)
NIR Losses brought forward from on or after 01/04/2017 used against trading profit

Type: Int

Validation:
* Required if NIR applies and CP283b is positive
* Cannot exist if NIR does not apply
* Max 99999999
* Min 0

### CP283d (new box)
Main Rate Losses brought forward from on or after 01/04/2017 used against trading profit

Type: Int

Validation:
* Required if NIR applies and CP283b is positive
* Cannot exist if NIR does not apply
* Max 99999999
* Min 0

# CP288 (existing box)
Losses Carried forward

Type: Int

Calculated:
* max (CP281 + CP118 - CP283 - CP998 - CP997 - CP287, 0)

### CP288a (updated box)
Losses carried forward from before 01/04/2017

Type: Int

Calculated:
* CP288a = CP281a + CP283a

### CP288b (updated box)
Losses carried forward from on or after 01/04/2017

Type: Int

Validation:
* Required if CP281b is positive
* Max 99999999
* Min 0

Now calculated:
* CP288b = CP281b - CP283b - CP997

### CP997 (existing box)
Losses from previous AP after 01/04/2017 set against non trading profits this AP

Type: Int

Validation:
* Required if CP281b is positive
* Max 99999999
* Min 0
* Must be <= CATO01
* Must be <= CP281b - CP283b
* Must equal CP997d + apportioned(CP997c)

### CP997c (new box)
NIR Losses from previous AP after 01/04/2017 set against non trading profits this AP

Type: Int

Validation:
* Required if NIR applies and CP997 is positive
* Max 99999999
* Min 0

### CP997d (new box)
Main Rate Losses from previous AP after 01/04/2017 set against non trading profits this AP

Type: Int

Validation:
* Required if NIR applies and CP997 is positive
* Max 99999999
* Min 0

## Global Errors
// sum of losses brought forward (checked by CP283a and CP283b)
* Fail if CP283a + CP283b > CP117

repository: hmrc/ct-calculations

gha_language: Scala

repo_name: hmrc/ct-calculations


text:
---
layout: post
title: How to create CLI with golang's cobra library
---

Cobra library provides super easy way to create powerful interactive command line applications and programs to generate applications and commandline files.

Library implementation: [https://github.com/spf13/cobra](https://github.com/spf13/cobra).

Documentation: [https://godoc.org/github.com/spf13/cobra](https://godoc.org/github.com/spf13/cobra)

This library allows developers to delevop CLI across all platform(Linux, MacOS, Windows). Many powerful CLI like docker, kubectl, clusterctl are built using golang's cobra library.

Here we will be creating a simple CLI application to create file, delete file and write to file.

![_config.yml]({{ site.baseurl }}/images/config.png)

To be added soon. Work in progress...


text:
# Greenplum数据平台资料下载
> https://greenplum.cn/2019/06/17/greenplumdownload/

# Greenplum 5.16.0初探
> https://blog.51cto.com/lee90/2371858?source=drt

##  centos7.3下 greenplum-db 安装、配置文档
> https://segmentfault.com/a/1190000013001945

## centos6.9 greenplum5.3离线部署文档
> https://www.cnblogs.com/chenminklutz/p/9019831.html

## greenplum 常用客户端工具
> https://blog.csdn.net/xfg0218/article/details/90412285

## greenplum用户权限管理
> https://blog.csdn.net/weixin_42658788/article/details/88040209

## 客户端如何访问greenplum
> https://blog.csdn.net/kwame211/article/details/76229416

## python连接Greenplum数据库
> https://www.cnblogs.com/xiao-apple36/p/10362367.html

> greenplum
https://www.cnblogs.com/ctypyb2002/category/1319670.html
## 异常处理
##　Greenplum初始化数据库时出现gpadmin-[ERROR]:-gpstart error: Do not have enough valid segments to start the arr
> https://blog.csdn.net/double_happiness/article/details/83142299

centos7.4 安装 5.20
4C8G100G

```
[gpadmin@dw-greenplum-1 ~]$ cd gpconfigs/
[gpadmin@dw-greenplum-1 gpconfigs]$ gpssh-exkeys -f hostlist
[STEP 1 of 5] create local ID and authorize on local host
  ... /home/gpadmin/.ssh/id_rsa file exists ... key generation skipped

[STEP 2 of 5] keyscan all hosts and update known_hosts file

[STEP 3 of 5] authorize current user on remote hosts
  ... send to sdw1
  ... send to sdw2

[STEP 4 of 5] determine common authentication file content

[STEP 5 of 5] copy authentication files to all remote hosts
  ... finished key exchange with sdw1
  ... finished key exchange with sdw2

[INFO] completed successfully
[gpadmin@dw-greenplum-1 gpconfigs]$ gpssh -f hostlist -e date
[sdw1] date
[sdw1] Wed Jul 31 13:40:08 CST 2019
[ mdw] date
[ mdw] Wed Jul 31 13:40:08 CST 2019
[sdw2] date
[sdw2] Wed Jul 31 13:40:08 CST 2019
[gpadmin@dw-greenplum-1 gpconfigs]$ cp /usr/local/greenplum-db/docs/cli_help/gpconfigs/gpinitsystem_config .
[gpadmin@dw-greenplum-1 gpconfigs]$ ll
total 12
-rwxr-xr-x. 1 gpadmin gpadmin 2663 Jul 31 13:40 gpinitsystem_config
-rw-r--r--. 1 gpadmin gpadmin   14 Jul 31  2019 hostlist
-rw-r--r--. 1 gpadmin gpadmin   10 Jul 31  2019 seglist
[gpadmin@dw-greenplum-1 gpconfigs]$ vim gpinitsystem_config
[gpadmin@dw-greenplum-1 gpconfigs]$ ll
total 12
-rwxr-xr-x. 1 gpadmin gpadmin 2901 Jul 31 13:46 gpinitsystem_config
-rw-r--r--. 1 gpadmin gpadmin   14 Jul 31  2019 hostlist
-rw-r--r--. 1 gpadmin gpadmin   10 Jul 31  2019 seglist
[gpadmin@dw-greenplum-1 gpconfigs]$ gpinitsystem -c gpinitsystem_config -h seglist -n zh_CN.utf8
20190731:13:47:31:010473 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Checking configuration parameters, please wait...
20190731:13:47:31:010473 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Reading Greenplum configuration file gpinitsystem_config
20190731:13:47:31:010473 gpinitsystem:dw-greenplum-1:gpadmin-[WARN]:-Master hostname mdw does not match hostname output
20190731:13:47:31:010473 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Checking to see if mdw can be resolved on this host
20190731:13:47:32:010473 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Can resolve mdw to this host
/bin/touch: cannot touch ‘/data/gpdata/master/tmp_file_test’: No such file or directory
20190731:13:47:32:gpinitsystem:dw-greenplum-1:gpadmin-[FATAL]:-Cannot write to /data/gpdata/master on master host  Script Exiting!
[gpadmin@dw-greenplum-1 gpconfigs]$ gpssh -f hostlist -e 'mkdir -p /data/gpdata/master'
[sdw1] mkdir -p /data/gpdata/master
[ mdw] mkdir -p /data/gpdata/master
[sdw2] mkdir -p /data/gpdata/master
[gpadmin@dw-greenplum-1 gpconfigs]$ gpssh -f hostlist -e 'mkdir -p /data/gpdata/primary'
[sdw1] mkdir -p /data/gpdata/primary
[ mdw] mkdir -p /data/gpdata/primary
[sdw2] mkdir -p /data/gpdata/primary
[gpadmin@dw-greenplum-1 gpconfigs]$ gpssh -f hostlist -e 'mkdir -p /data/gpdata/mirror'
[sdw1] mkdir -p /data/gpdata/mirror
[sdw2] mkdir -p /data/gpdata/mirror
[ mdw] mkdir -p /data/gpdata/mirror
[gpadmin@dw-greenplum-1 gpconfigs]$ gpinitsystem -c gpinitsystem_config -h seglist -n zh_CN.utf8
20190731:13:49:57:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Checking configuration parameters, please wait...
20190731:13:49:57:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Reading Greenplum configuration file gpinitsystem_config
20190731:13:49:57:010976 gpinitsystem:dw-greenplum-1:gpadmin-[WARN]:-Master hostname mdw does not match hostname output
20190731:13:49:57:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Checking to see if mdw can be resolved on this host
20190731:13:49:57:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Can resolve mdw to this host
20190731:13:49:57:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-No DATABASE_NAME set, will exit following template1 updates
20190731:13:49:57:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-MASTER_MAX_CONNECT not set, will set to default value 250
20190731:13:49:57:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Checking configuration parameters, Completed
20190731:13:49:57:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Commencing multi-home checks, please wait...
..
20190731:13:49:58:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Configuring build for standard array
20190731:13:49:58:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Commencing multi-home checks, Completed
20190731:13:49:58:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Building primary segment instance array, please wait...
....
20190731:13:50:01:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Building group mirror array type , please wait...
....
20190731:13:50:03:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Checking Master host
20190731:13:50:03:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Checking new segment hosts, please wait...
........
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Checking new segment hosts, Completed
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Greenplum Database Creation Parameters
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:---------------------------------------
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master Configuration
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:---------------------------------------
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master instance name       = Greenplum Data Platform
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master hostname            = mdw
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master port                = 5432
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master instance dir        = /data/gpdata/master/gpseg-1
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master LOCALE              = zh_CN.utf8
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Greenplum segment prefix   = gpseg
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master Database            =
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master connections         = 250
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master buffers             = 128000kB
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Segment connections        = 750
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Segment buffers            = 128000kB
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Checkpoint segments        = 8
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Encoding                   = UNICODE
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Postgres param file        = Off
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Initdb to be used          = /usr/local/greenplum-db/./bin/initdb
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-GP_LIBRARY_PATH is         = /usr/local/greenplum-db/./lib
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-HEAP_CHECKSUM is           = on
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-HBA_HOSTNAMES is           = 0
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Ulimit check               = Passed
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Array host connect type    = Single hostname per node
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master IP address [1]      = ::1
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master IP address [2]      = <IP_ADDRESS>
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Master IP address [3]      = fe80::2738:e7a9:9e39:5952
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Standby Master             = Not Configured
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Primary segment #          = 2
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Total Database segments    = 4
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Trusted shell              = ssh
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Number segment hosts       = 2
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Mirror port base           = 50000
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Replicaton port base       = 41000
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Mirror replicaton port base= 51000
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Mirror segment #           = 2
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Mirroring config           = ON
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Mirroring type             = Group
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:----------------------------------------
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Greenplum Primary Segment Configuration
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:----------------------------------------
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-sdw1 	/data/gpdata/primary/gpseg0 	6000 	2 	0 	41000
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-sdw1 	/data/gpdata/primary/gpseg1 	6001 	3 	1 	41001
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-sdw2 	/data/gpdata/primary/gpseg2 	6000 	4 	2 	41000
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-sdw2 	/data/gpdata/primary/gpseg3 	6001 	5 	3 	41001
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:---------------------------------------
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Greenplum Mirror Segment Configuration
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:---------------------------------------
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-sdw2 	/data/gpdata/mirror/gpseg0 	50000 	6 	0 	51000
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-sdw2 	/data/gpdata/mirror/gpseg1 	50001 	7 	1 	51001
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-sdw1 	/data/gpdata/mirror/gpseg2 	50000 	8 	2 	51000
20190731:13:50:15:010976 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-sdw1 	/data/gpdata/mirror/gpseg3 	50001 	9 	3 	51001

Continue with Greenplum creation Yy|Nn (default=N):
>
> y
20190731:13:52:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Building the Master instance database, please wait...
20190731:13:53:04:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Starting the Master in admin mode
20190731:13:53:10:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Commencing parallel build of primary segment instances
20190731:13:53:10:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Spawning parallel processes    batch [1], please wait...
....
20190731:13:53:10:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Waiting for parallel processes batch [1], please wait...
.................
20190731:13:53:27:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:------------------------------------------------
20190731:13:53:27:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Parallel process exit status
20190731:13:53:27:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:------------------------------------------------
20190731:13:53:27:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Total processes marked as completed           = 4
20190731:13:53:27:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Total processes marked as killed              = 0
20190731:13:53:27:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Total processes marked as failed              = 0
20190731:13:53:27:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:------------------------------------------------
20190731:13:53:27:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Commencing parallel build of mirror segment instances
20190731:13:53:27:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Spawning parallel processes    batch [1], please wait...
....
20190731:13:53:27:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Waiting for parallel processes batch [1], please wait...
................................
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:------------------------------------------------
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Parallel process exit status
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:------------------------------------------------
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Total processes marked as completed           = 4
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Total processes marked as killed              = 0
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Total processes marked as failed              = 0
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:------------------------------------------------
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Deleting distributed backout files
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Removing back out file
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-No errors generated from parallel processes
20190731:13:53:59:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Restarting the Greenplum instance in production mode
20190731:13:53:59:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Starting gpstop with args: -a -l /home/gpadmin/gpAdminLogs -i -m -d /data/gpdata/master/gpseg-1
20190731:13:53:59:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Gathering information and validating the environment...
20190731:13:53:59:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20190731:13:53:59:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Obtaining Segment details from master...
20190731:13:54:00:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 5.20.0 build commit:459b837194a28ab2f32305a6b32080ce20100b7c'
20190731:13:54:00:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-There are 0 connections to the database
20190731:13:54:00:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Commencing Master instance shutdown with mode='immediate'
20190731:13:54:00:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Master host=dw-greenplum-1
20190731:13:54:00:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Commencing Master instance shutdown with mode=immediate
20190731:13:54:00:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Master segment instance directory=/data/gpdata/master/gpseg-1
20190731:13:54:01:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Attempting forceful termination of any leftover master process
20190731:13:54:01:017494 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Terminating processes for segment /data/gpdata/master/gpseg-1
20190731:13:54:01:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Starting gpstart with args: -a -l /home/gpadmin/gpAdminLogs -d /data/gpdata/master/gpseg-1
20190731:13:54:01:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Gathering information and validating the environment...
20190731:13:54:01:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Greenplum Binary Version: 'postgres (Greenplum Database) 5.20.0 build commit:459b837194a28ab2f32305a6b32080ce20100b7c'
20190731:13:54:01:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Greenplum Catalog Version: '301705051'
20190731:13:54:01:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Starting Master instance in admin mode
20190731:13:54:02:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20190731:13:54:02:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Obtaining Segment details from master...
20190731:13:54:02:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Setting new master era
20190731:13:54:02:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Master Started...
20190731:13:54:02:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Shutting down master
20190731:13:54:03:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Commencing parallel primary and mirror segment instance startup, please wait...
...
20190731:13:54:06:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Process results...
20190731:13:54:06:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:54:06:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-   Successful segment starts                                            = 8
20190731:13:54:06:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-   Failed segment starts                                                = 0
20190731:13:54:06:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-   Skipped segment starts (segments are marked down in configuration)   = 0
20190731:13:54:06:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:54:06:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Successfully started 8 of 8 segment instances
20190731:13:54:06:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:54:06:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Starting Master instance dw-greenplum-1 directory /data/gpdata/master/gpseg-1
20190731:13:54:07:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Command pg_ctl reports Master dw-greenplum-1 instance active
20190731:13:54:07:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-No standby master configured.  skipping...
20190731:13:54:07:017520 gpstart:dw-greenplum-1:gpadmin-[INFO]:-Database successfully started
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Completed restart of Greenplum instance in production mode
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Scanning utility log file for any warning messages
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[WARN]:-*******************************************************
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[WARN]:-Scan of log file indicates that some warnings or errors
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[WARN]:-were generated during the array creation
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Please review contents of log file
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-/home/gpadmin/gpAdminLogs/gpinitsystem_20190731.log
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-To determine level of criticality
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-These messages could be from a previous run of the utility
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-that was called today!
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[WARN]:-*******************************************************
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Greenplum Database instance successfully created
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-------------------------------------------------------
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-To complete the environment configuration, please
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-update gpadmin .bashrc file with the following
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-1. Ensure that the greenplum_path.sh file is sourced
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-2. Add "export MASTER_DATA_DIRECTORY=/data/gpdata/master/gpseg-1"
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-   to access the Greenplum scripts for this instance:
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-   or, use -d /data/gpdata/master/gpseg-1 option for the Greenplum scripts
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-   Example gpstate -d /data/gpdata/master/gpseg-1
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Script log file = /home/gpadmin/gpAdminLogs/gpinitsystem_20190731.log
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-To remove instance, run gpdeletesystem utility
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-To initialize a Standby Master Segment for this Greenplum instance
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Review options for gpinitstandby
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-------------------------------------------------------
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-The Master /data/gpdata/master/gpseg-1/pg_hba.conf post gpinitsystem
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-has been configured to allow all hosts within this new
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-array to intercommunicate. Any hosts external to this
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-new array must be explicitly added to this file
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-Refer to the Greenplum Admin support guide which is
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-located in the /usr/local/greenplum-db/./docs directory
20190731:13:54:07:012489 gpinitsystem:dw-greenplum-1:gpadmin-[INFO]:-------------------------------------------------------

[gpadmin@dw-greenplum-1 gpconfigs]$ gpstate -s
20190731:13:59:02:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-Starting gpstate with args: -s
20190731:13:59:02:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 5.20.0 build commit:459b837194a28ab2f32305a6b32080ce20100b7c'
20190731:13:59:03:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.3.23 (Greenplum Database 5.20.0 build commit:459b837194a28ab2f32305a6b32080ce20100b7c) on x86_64-pc-linux-gnu, compiled by GCC gcc (GCC) 6.2.0, 64-bit compiled on Jun 20 2019 04:46:42'
20190731:13:59:03:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-Obtaining Segment details from master...
20190731:13:59:03:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-Gathering data from segments...
.
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:--Master Configuration & Status
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Master host                    = dw-greenplum-1
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Master postgres process ID     = 17589
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Master data directory          = /data/gpdata/master/gpseg-1
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Master port                    = 5432
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Master current role            = dispatch
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Greenplum initsystem version   = 5.20.0 build commit:459b837194a28ab2f32305a6b32080ce20100b7c
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Greenplum current version      = PostgreSQL 8.3.23 (Greenplum Database 5.20.0 build commit:459b837194a28ab2f32305a6b32080ce20100b7c) on x86_64-pc-linux-gnu, compiled by GCC gcc (GCC) 6.2.0, 64-bit compiled on Jun 20 2019 04:46:42
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Postgres version               = 8.3.23
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Master standby                 = No master standby configured
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-Segment Instance Status Report
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Segment Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Hostname                          = dw-greenplum-2
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Address                           = sdw1
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Datadir                           = /data/gpdata/primary/gpseg0
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Port                              = 6000
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Mirroring Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Current role                      = Primary
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Preferred role                    = Primary
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Mirror status                     = Synchronized
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Status
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      PID                               = 4741
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Configuration reports status as   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Database status                   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Segment Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Hostname                          = dw-greenplum-3
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Address                           = sdw2
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Datadir                           = /data/gpdata/mirror/gpseg0
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Port                              = 50000
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Mirroring Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Current role                      = Mirror
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Preferred role                    = Mirror
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Mirror status                     = Synchronized
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Status
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      PID                               = 24977
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Configuration reports status as   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Segment status                    = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Segment Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Hostname                          = dw-greenplum-2
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Address                           = sdw1
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Datadir                           = /data/gpdata/primary/gpseg1
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Port                              = 6001
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Mirroring Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Current role                      = Primary
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Preferred role                    = Primary
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Mirror status                     = Synchronized
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Status
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      PID                               = 4739
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Configuration reports status as   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Database status                   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Segment Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Hostname                          = dw-greenplum-3
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Address                           = sdw2
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Datadir                           = /data/gpdata/mirror/gpseg1
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Port                              = 50001
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Mirroring Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Current role                      = Mirror
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Preferred role                    = Mirror
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Mirror status                     = Synchronized
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Status
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      PID                               = 24979
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Configuration reports status as   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Segment status                    = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Segment Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Hostname                          = dw-greenplum-3
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Address                           = sdw2
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Datadir                           = /data/gpdata/primary/gpseg2
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Port                              = 6000
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Mirroring Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Current role                      = Primary
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Preferred role                    = Primary
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Mirror status                     = Synchronized
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Status
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      PID                               = 24978
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Configuration reports status as   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Database status                   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Segment Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Hostname                          = dw-greenplum-2
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Address                           = sdw1
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Datadir                           = /data/gpdata/mirror/gpseg2
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Port                              = 50000
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Mirroring Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Current role                      = Mirror
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Preferred role                    = Mirror
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Mirror status                     = Synchronized
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Status
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      PID                               = 4742
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Configuration reports status as   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Segment status                    = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Segment Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Hostname                          = dw-greenplum-3
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Address                           = sdw2
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Datadir                           = /data/gpdata/primary/gpseg3
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Port                              = 6001
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Mirroring Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Current role                      = Primary
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Preferred role                    = Primary
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Mirror status                     = Synchronized
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Status
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      PID                               = 24980
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Configuration reports status as   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Database status                   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Segment Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Hostname                          = dw-greenplum-2
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Address                           = sdw1
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Datadir                           = /data/gpdata/mirror/gpseg3
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Port                              = 50001
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Mirroring Info
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Current role                      = Mirror
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Preferred role                    = Mirror
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Mirror status                     = Synchronized
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-   Status
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      PID                               = 4740
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Configuration reports status as   = Up
20190731:13:59:04:017908 gpstate:dw-greenplum-1:gpadmin-[INFO]:-      Segment status                    = Up
[gpadmin@dw-greenplum-1 gpconfigs]$ echo '
> host    all    all    <IP_ADDRESS>/0    md5' >> $MASTER_DATA_DIRECTORY/pg_hba.conf
[gpadmin@dw-greenplum-1 gpconfigs]$ gpstop -a -r
20190731:14:01:34:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Starting gpstop with args: -a -r
20190731:14:01:34:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Gathering information and validating the environment...
20190731:14:01:34:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20190731:14:01:34:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Obtaining Segment details from master...
20190731:14:01:34:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 5.20.0 build commit:459b837194a28ab2f32305a6b32080ce20100b7c'
20190731:14:01:34:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-There are 0 connections to the database
20190731:14:01:34:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Commencing Master instance shutdown with mode='smart'
20190731:14:01:34:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Master host=dw-greenplum-1
20190731:14:01:34:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Commencing Master instance shutdown with mode=smart
20190731:14:01:34:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Master segment instance directory=/data/gpdata/master/gpseg-1
20190731:14:01:35:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Attempting forceful termination of any leftover master process
20190731:14:01:35:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Terminating processes for segment /data/gpdata/master/gpseg-1
20190731:14:01:35:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-No standby master host configured
20190731:14:01:35:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Targeting dbid [2, 6, 3, 7, 4, 8, 5, 9] for shutdown
20190731:14:01:35:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Commencing parallel primary segment instance shutdown, please wait...
20190731:14:01:35:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-0.00% of jobs completed
20190731:14:01:37:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-100.00% of jobs completed
20190731:14:01:37:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Commencing parallel mirror segment instance shutdown, please wait...
20190731:14:01:37:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-0.00% of jobs completed
20190731:14:01:38:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-100.00% of jobs completed
20190731:14:01:38:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:14:01:38:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-   Segments stopped successfully      = 8
20190731:14:01:38:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-   Segments with errors during stop   = 0
20190731:14:01:38:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-----------------------------------------------------
20190731:14:01:38:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Successfully shutdown 8 of 8 segment instances
20190731:14:01:38:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Database successfully shutdown with no errors reported
20190731:14:01:38:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Cleaning up leftover gpmmon process
20190731:14:01:38:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-No leftover gpmmon process found
20190731:14:01:38:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Cleaning up leftover gpsmon processes
20190731:14:01:39:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-No leftover gpsmon processes on some hosts. not attempting forceful termination on these hosts
20190731:14:01:39:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Cleaning up leftover shared memory
20190731:14:01:39:018048 gpstop:dw-greenplum-1:gpadmin-[INFO]:-Restarting System...

```


text:
# MalwareTools
A toolbox of malware methods in C#.
 I am not responsible for any damages caused by this code.

## Commands
` MalwareTools.forkbomb(); ` - a simple C# forkbomb that will slow down the target CPU

` MalwareTools.shutdown(bool showWindow); ` - shuts down a target computer. make sure to write either true or false as an argument. if true is selected, no window will be shown before shutdown, if false is selected, a window will be shown before shutdown

` MalwareTools.info(); ` - returns info on the version of MalwareTools

repository: jaevibing/MalwareTools

repo_name: jaevibing/MalwareTools


text:
{% set highlight bash %}
# An example hook script to verify what is about to be pushed.  Called by "git
# push" after it has checked the remote status, but before anything has been
# pushed.  If this script exits with a non-zero status nothing will be pushed.
#
# This hook is called with the following parameters:
#
# $1 -- Name of the remote to which the push is being done
# $2 -- URL to which the push is being done
#
# If pushing without using a named remote those arguments will be equal.
#
# Information about the commits which are being pushed is supplied as lines to
# the standard input in the form:
#
#   <local ref> <local sha1> <remote ref> <remote sha1>
#
# This sample shows how to prevent push of commits where the log message starts
# with "WIP" (work in progress).

forbidden_words=["echo","print_r","var_dump"]
# The following list could be expanded
declare -a forbidden_words=("echo" "print_r" "var_dump")
num_modified_files=$(git diff $1 --name-only | wc -l)
if [ "$num_modified_files" -gt 0 ]
then
    sum=0
        for word in "${forbidden_words[@]}"
        do
        amount=$(cat `git diff $1 --name-only` | grep $word | wc -w)
        cat `git diff $1 --name-only` | grep $word | wc -w
        echo $1
        sum=$(($sum+$amount))
    done
    if [ "$sum" -gt 0 ]
    then
        echo "There are some forbidden words in your code. Check them before pushing."
        # Exit code different than 0 is considered error in bash
        exit 1
    else
        echo "Your code looks ok. Proceeding to commit."
        # Exit code considered ok.
        exit 0
    fi
fi
{% endhighlight %}

extension: markdown


text:
# dev-setup

Automated dev machine setup using ansible and yadm

1. Setup your ssh-agent

    ```sh
    ssh-add ~/.ssh/id_rsa
    ssh -T<EMAIL_ADDRESS>    ```

2. Run

    ```sh
    sh -c "$(wget https://raw.github.com/mskrajnowski/dev-setup/master/setup.sh -O -)"
    ```

repository: archiewald/dev-setup

repo_name: archiewald/dev-setup


text:
# Aras View Model

Aras View Model provides a .NET library for building [Aras Innovator](http://www.aras.com) Applications. Key features include:

 * Comprehensive library of Controls to build custom user interfaces
 * Fast and efficient development using Microsoft .NET and Visual Studio

## Prerequisites

 * [Aras.Common](https://github.com/ArasExtensions/Aras.Common)
 * [Aras.IO](https://github.com/ArasExtensions/Aras.IO)
 * [Aras.Model](https://github.com/ArasExtensions/Aras.Model)

## Licence

Copyright 2017 [Processwall Limited](http://www.processwall.com).

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

* http://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.

## Contact Details

 * Company: Processwall Limited
 * Address: Winnowing House, Mill Lane, Askham Richard, York, YO23 3NW, United Kingdom
 * Tel:     +44<PHONE_NUMBER>
 * Email<EMAIL_ADDRESS>

gha_language: C#


text:
# SHOPIFY

A Shopping Application w MERN stack.

## Installation

Use the package manager [npm](https://npmjs.com) to install Shopify.

```bash
npm i
npm run dev # run development server
npm run client # run only client files
npm run server # run only server
```

## Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

## License

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

repository: bineetNaidu/shopify

gha_language: TypeScript

repo_name: bineetNaidu/shopify


text:
# OpenAPI_Request_Validator_Example

An example Rest API implemented with Spring MVC which utilizes the
Atlassian OpenAPI Validator. - https://bitbucket.org/atlassian/swagger-request-validator/src/master/

This example uses the Spring MVC OpenAPIValidationInterceptor

OpenApiValidationConfig creates the filter and interceptor which imports the
OpenAPI doc with which it uses to validate requests against.

This project also uses the Spring OpenAPI UI which allows us to generate the OpenAPI doc by
running the project using the maven spring-boot run goal and accessing the doc via localhost:8080/api-docs


text:
# DEPRECATED ⛔
This repository has been deprecated as of 2019-01-27.

That code was written a long time ago and has been unmaintained for several years.
Thus, repository will now be [archived](https://github.blog/2017-11-08-archiving-repositories/).
If you are interested in taking over ownership, feel free to [contact me](https://www.pascallandau.com/about/).

---

# benchmark

Convenience class for performing benchmark checks on PHP functions.

## Description

I've found myself time and time again writing a small benchmark test for some PHP functions to check for performance implications.
This project simplifies the process by introducing a `benchmark` class that takes a list of callables as input and performs them `n` times
while measuring the runtime of each call.

The results are presented as a `BenchmarkResultList` and can be sorted by average, total and median runtime.

## Basic Usage
```php

    use paslandau\Benchmark\Benchmark;
    use paslandau\Benchmark\BenchmarkResultList;

    require_once __DIR__.'/../../vendor/autoload.php';

    //define tests
    $tests = [
        "explode" => function ($params){
            $c = array_pop(explode('\\', get_class($params)));
            return $c;
        },
        "reflection" => function ($params){
            $c = (new \ReflectionClass($params))->getShortName();
            return $c;
        },
        "basename" => function ($params){
            $c = basename(str_replace('\\', '/', get_class($params)));
            return $c;
        },
    ];

    // get 10000 data points
    $runs = 10000;
    // call each test 10 times to obtain one data point (default is 1)
    $iterations = 10;

    //run tests
    $benchmark = new Benchmark($tests, $runs, $iterations);
    $res = $benchmark->run($benchmark);

    // order by total time  (default is BenchmarkResultList::Average)
    $res->setOrderBy(BenchmarkResultList::TOTAL);
    // set number of decimal digits to round to (default is 2)
    $res->setPrecision(6);

    // display results
    echo $res;
```

**Output**

    reflection:
    ==========
    Total  : 4.541255 s
    Median : 0 s
    Average: 0.000454 s

    explode:
    ==========
    Total  : 4.876281 s
    Median : 0 s
    Average: 0.000488 s

    basename:
    ==========
    Total  : 5.281304 s
    Median : 0.001 s
    Average: 0.000528 s

## Requirements

- PHP >= 5.5

## Installation

The recommended way to install benchmark is through [Composer](http://getcomposer.org/).

    curl -sS https://getcomposer.org/installer | php

Next, update your project's composer.json file to include Benchmark:

    {
        "repositories": [ { "type": "composer", "url": "http://packages.myseosolution.de/"} ],
        "minimum-stability": "dev",
        "require": {
             "paslandau/benchmark": "dev-master"
        }
        "config": {
            "secure-http": false
        }
    }

_**Caution:** You need to explicitly set `"secure-http": false` in order to access http://packages.myseosolution.de/ as repository.
This change is required because composer changed the default setting for `secure-http` to true at [the end of february 2016](https://github.com/composer/composer/commit/cb59cf0c85e5b4a4a4d5c6e00f827ac830b54c70#diff-c26d84d5bc3eed1fec6a015a8fc0e0a7L55)._

After installing, you need to require Composer's autoloader:
```php

    require 'vendor/autoload.php';
 ```

## Documentation

### Defining tests
Each test is defined as a `Closure` that gets the `$params` parameter passed when executed. The tests are then passed to the `benchmark` as an associative array.
```php

    //define tests
    $tests = [
        "explode" => function ($params){
            $c = array_pop(explode('\\', get_class($params)));
            return $c;
        }
    ];

    $benchmark = new Benchmark($tests, 1);
 ```

### Defining runs and iterations
One iteration is defined as one call to a test. One run is defined as `n` iterations. So the total number of test executions is `runs` times `iterations`.
The distinction is made due to the fact that a test can potentially be executed extremely fast, resulting in a `0` value for the median.

```php

    $tests = ['foo' => function($params){}];
    $runs = 1000;
    $iterations = 100
    $benchmark = new Benchmark($tests, $runs, $iterations); // test 'foo' will be executed 100000 times
```

### Defining output format
The result of a `Benchmark::run` is an object of type `BenchmarkResultList` which implements the `__toString()` method. You can specify the order
of the displayed results as well as the precision used when displaying the run times in seconds.

```php

    $tests = ['foo' => function($params){}];
    $benchmark = new Benchmark($tests);

    $resultList = $benchmark->run();

    $order = BenchmarkResultList::MEDIAN; // order results by median time. Other values are BenchmarkResultList::AVERAGE and BenchmarkResultList::TOTAL
    $precision = 5; // use 5 decimal digits to round the result

    $res->setOrderBy($order);
    $res->setPrecision($precision);

    // display results
    echo $res;
 ```
## Related projects

- [php-benchmark](https://github.com/lavoiesl/php-benchmark)

repository: paslandau/benchmark

gha_language: PHP

repo_name: paslandau/benchmark


text:
# Change Logs of Ymage

## v1.3.9

### Feature

1. *Grider* When set grid item size to 0 with single item src, only gif tag will be shown(long image tag will not show any more).
2. *Grider* Update long image rule, change to ``height > width * 3``.

## v1.3.7

### Fix

1. *Browser* Use Glide.loadFile() for image browser adapter. (This can make scroll more smooth.)

### Feature

1. *Browser* Image browser support thumb images.

### Refactor

1. *Common* Update glide engine methods.

## v1.3.6

Stable version.

1. Image browser support gif/long image tag.
2. Image picker support camera at first position.
3. Image cutter support scale and rotate.
4. Image grider support single image, 2*2 grid and 3*3 grid.

repository: yitimo/ymage

gha_language: Kotlin

repo_name: yitimo/ymage


text:
# [Vuepress-docker](https://hub.docker.com/r/blasteh/vuepress)
Simple build of vuepress using Alpine Linux on Docker.

The image has 2 folders, 1 for input files, 1 for output files.
Mount these folders to use the image:

Input folder: `/root/src`

Output folder: `/root/html`

When the build runs, it will take contents of the input folder, generate the site, and then place them in the output folder.
This image regenerates the files every 23 hours unless you use the hook option.
Webhook is supplied by [Hookdoo](https://github.com/adnanh/webhook)

## Environment variables
`USE_HOOK` - The web hook is enabled as long as this is present.

`GITHUB_REPO` - Remove "https://" from the url; e.g. use `GITHUB_REPO=github.com/blastehh/vuepress-docker.git` instead of `GITHUB_REPO=https://github.com/blastehh/vuepress-docker.git`

`GITHUB_TOKEN` - Needed to access private repos, otherwise will try to access a public repo.

`GITHUB_PUSH_REPO` - URL of repo to push to once build finishes, e.g. `github.com/blastehh/mypage.git`

`GITHUB_PUSH_TOKEN` - Set the token for pushing to Github if different from `GITHUB_TOKEN`

`PLUGINS` - A space delimited list of vuepress plugins to install; e.g. `PLUGINS="@vuepress/plugin-back-to-top @vuepress/plugin-pwa"`

## Example docker command
This will automatically regenerate the source files every 23 hours.
```
docker run --name vuepress -v /host/vuepress/files/:/root/src/:rw -v /host/vuepress/output/:/root/html/:rw -d blasteh/vuepress
```

## Github example:
This will pull from the repo before generating the files.
```
docker run --name vuepress -v /host/vuepress/files/:/root/src/:rw -v /host/vuepress/output/:/root/html/:rw -d -e GITHUB_REPO=github.com/blastehh/vuepress-docker.git blasteh/vuepress
```

## Github example with a [Personal access token](https://github.com/settings/tokens):
This will pull from a private repo before generating the files.
```
docker run --name vuepress -v /host/vuepress/files/:/root/src/:rw -v /host/vuepress/output/:/root/html/:rw -d -e GITHUB_REPO=github.com/blastehh/vuepress-docker.git -e GITHUB_TOKEN=TOKENHERE blasteh/vuepress
```

## Github with hooks example:
This will listen for a webhook, and then pull from a private repo before generating the files.
Trigger the hook via `http://<container address>:9000/hooks/vuepress-webhook`
```
docker run --name vuepress -v /host/vuepress/files/:/root/src/:rw -v /host/vuepress/output/:/root/html/:rw -d -p 9000:9000 -e USE_HOOK=1 -e GITHUB_REPO=github.com/blastehh/vuepress-docker.git -e GITHUB_TOKEN=TOKENHERE blasteh/vuepress
```

repository: blastehh/vuepress-docker

gha_language: Shell

repo_name: blastehh/vuepress-docker


text:
# GUI--TurtlesimNode-ROS
The Repos contains a Simple GUI for the Turtlesim node of ROS using python plugin and Qt Platform.

- Download and copy the "turtle_gui" folder inside your src folder.
- Run Catkin_make again in your catkin_ws.
- First Run your Turtlesim_node in one terminal.
- In a new terminal go to the "src" folder inside the turtle_gui and run the turtle_gui_plugin.py file
```
  cd ~/catkin_ws/src/turtle_gui/src
  python3 turtle_gui_plugin.py
 ```


text:
# ned-drone-collison-avoidance
A simple repository for drone collision avoidance with NED.

## Usage
```
python collision_avoidance.py [1|2|3] speed
    speed: drone speed in m/s. Suggested value = 1
```

gha_language: Python


text:
# FSharpPlus.CSharp

Selected parts from FSharpX.Extras moved over to enable usage in C#.

The goal of this project is to expose selected F# classes to C#. There are some neat things about using Result, Option and Choice in your C#.

---

## Builds

MacOS/Linux | Windows
--- | ---
[![Travis Badge](https://travis-ci.org/wallymathieu/FSharpPlus.CSharp.svg?branch=master)](https://travis-ci.org/wallymathieu/FSharpPlus.CSharp) | [![Build status](https://ci.appveyor.com/api/projects/status/github/wallymathieu/FSharpPlus.CSharp?svg=true)](https://ci.appveyor.com/project/wallymathieu/FSharpPlus.CSharp)
[![Build History](https://buildstats.info/travisci/chart/wallymathieu/FSharpPlus.CSharp)](https://travis-ci.org/wallymathieu/FSharpPlus.CSharp/builds) | [![Build History](https://buildstats.info/appveyor/chart/wallymathieu/FSharpPlus.CSharp)](https://ci.appveyor.com/project/wallymathieu/FSharpPlus.CSharp)

## Nuget

Stable | Prerelease
--- | ---
[![NuGet Badge](https://buildstats.info/nuget/FSharpPlus.CSharp)](https://www.nuget.org/packages/FSharpPlus.CSharp/) | [![NuGet Badge](https://buildstats.info/nuget/FSharpPlus.CSharp?includePreReleases=true)](https://www.nuget.org/packages/FSharpPlus.CSharp/)

### Developing

- [VSCode Dev Container](https://code.visualstudio.com/docs/remote/containers)

---

### Building

Make sure the following **requirements** are installed in your system:

- [dotnet SDK](https://www.microsoft.com/net/download/core) 2.0 or higher
- [Mono](http://www.mono-project.com/) if you're on Linux or macOS.

```sh
> build.cmd // on windows
$ ./build.sh  // on unix
```


text:
# Session repository

#### Table of contents

[`ShopifyApp::SessionRepository`](#shopifyappsessionrepository)
  * [Shop-based token storage](#shop-based-token-storage)
  * [User-based token storage](#user-based-token-storage)

[Access scopes](#access-scopes)
  * [`ShopifyApp::ShopSessionStorageWithScopes`](#shopifyappshopsessionstoragewithscopes)
  * [``ShopifyApp::UserSessionStorageWithScopes``](#shopifyappusersessionstoragewithscopes)

[Migrating from shop-based to user-based token strategy](#migrating-from-shop-based-to-user-based-token-strategy)

## ShopifyApp::SessionRepository

`ShopifyApp::SessionRepository` allows you as a developer to define how your sessions are stored and retrieved for shops. The `SessionRepository` is configured in the `config/initializers/shopify_app.rb` file and can be set to any object that implements `self.store(auth_session, *args)` which stores the session and returns a unique identifier and `self.retrieve(id)` which returns a `ShopifyAPI::Session` for the passed id. These methods are already implemented as part of the `ShopifyApp::SessionStorage` concern but can be overridden for custom implementation.

### Shop-based token storage

Storing tokens on the store model means that any user login associated with the store will have equal access levels to whatever the original user granted the app.
```sh
rails generate shopify_app:shop_model
```
This will generate a shop model which will be the storage for the tokens necessary for authentication.

### User-based token storage

A more granular control over the level of access per user on an app might be necessary, to which the shop-based token strategy is not sufficient. Shopify supports a user-based token storage strategy where a unique token to each user can be managed. Shop tokens must still be maintained if you are running background jobs so that you can make use of them when necessary.
```sh
rails generate shopify_app:shop_model
rails generate shopify_app:user_model
```
This will generate a shop model and user model, which will be the storage for the tokens necessary for authentication.

The current Shopify user will be stored in the rails session at `session[:shopify_user]`

Read more about Online vs. Offline access [here](https://help.shopify.com/api/getting-started/authentication/oauth).

## Access scopes

If you want to customize how access scopes are stored for shops and users, you can implement the `access_scopes` getters and setters in the models that include `ShopifyApp::ShopSessionStorageWithScopes` and `ShopifyApp::UserSessionStorageWithScopes` as shown:

### `ShopifyApp::ShopSessionStorageWithScopes`
```ruby
class Shop < ActiveRecord::Base
  include ShopifyApp::ShopSessionStorageWithScopes

  def access_scopes=(scopes)
    # Store access scopes
  end
  def access_scopes
    # Find access scopes
  end
end
```

### `ShopifyApp::UserSessionStorageWithScopes`
```ruby
class User < ActiveRecord::Base
  include ShopifyApp::UserSessionStorageWithScopes

  def access_scopes=(scopes)
    # Store access scopes
  end
  def access_scopes
    # Find access scopes
  end
end
```
## Migrating from shop-based to user-based token strategy

1. Run the `user_model` generator as mentioned above.
2. Ensure that both your `Shop` model and `User` model includes the necessary concerns `ShopifyApp::ShopSessionStorage` and `ShopifyApp::UserSessionStorage`.
3. Make changes to 2 initializer files as shown below:
```ruby
# In the `omniauth.rb` initializer:
provider :shopify,
  ...
  setup: lambda { |env|
    configuration = ShopifyApp::OmniAuthConfiguration.new(env['omniauth.strategy'], Rack::Request.new(env))
    configuration.build_options
  }

# In the `shopify_app.rb` initializer:
config.shop_session_repository = {YOUR_SHOP_MODEL_CLASS}
config.user_session_repository = {YOUR_USER_MODEL_CLASS}
```


text:
# Prototype for the Neutro-Blockchain

## This is a prototype under construction.

For further details see [neutro.io](https://neutro.io) or the [Yellow Paper](https://drive.google.com/file/d/1yTnTxtpwDA5HZrLMRjH_KkWkynrM9F80/edit) or follow [Neutro on linkedin](https://www.linkedin.com/company/neutro/)

![neutro logo](data/assets/logo/neutro_full_logo.png)

### Requirements:
- ubuntu 18.04 LTS
- python3.6
- python3-pip libraries:
	- [base58](https://pypi.org/project/base58/)
	- [ecdsa](https://pypi.org/project/ecdsa/)
- AtomicP2P library
	- [AtomicP2P](https://pypi.org/project/AtomicP2P/)

### Installation:
- clone this repository
- ToDo (how to generate genesis)
- ToDo (how to setup client)
- ToDo (how to setup light clinet)

### Usage:
- ToDo (how to generate wallet)
- ToDo (how to start client)
- ToDo (how to start light client)
- ToDo (how to become a miner)
- ToDo (how to broadcast transaction)
- ToDo (how to verify transaction)

### Run tests:
- [install pytest](https://docs.pytest.org/en/latest/getting-started.html)
- [install pytest-cov](https://pytest-cov.readthedocs.io/en/latest/readme.html#installation)
- nagivate to the root_directory of the cloned repository
- run `pytest`
	- if you want to change the configuration of pytest have a look at:
		- `/conftest.py`
		- `/pytest.ini`

### Contribution:
if you want to contribute, you are welcome to:
- fork this repository
- push your contribution to your fork
- create a new pull request

or just open a new issue if you find an error etc.

### License:
- MIT (see LICENSE file)