text:
Computing diff
==============

Even if git is a diff-less storage engine, it's possible to compute
them.

To compute a diff in git, you need to specify a *revision*. This
revision can be a commit (*2bc7a8*) or a range (*2bc7a8..ff4c21b*).

For more informations about git revisions: *man gitrevisions*.

When you have decided the revision you want and have your *Repository*
object, you can call the *getDiff* method on the repository:

```php
$diff = $repository->getDiff('master@{2 days ago}..master');
```

You can also access it from a *Log* object:

```php
$log  = $repository->getLog('master@{2 days ago}..master');
$diff = $log->getDiff();
```

Iterating a diff
----------------

When you have a *Diff* object, you can iterate over files using method
*getFiles()*. This method returns a list of *File* objects, who
represents the modifications for a single file.

```php
$files = $diff->getFiles();
echo sprintf('%s files modified%s', count($files), PHP_EOL);

foreach ($files as $fileDiff) {
    echo sprintf('Old name: (%s) %s%s', $fileDiff->getOldMode(), $fileDiff->getOldName(), PHP_EOL);
    echo sprintf('New name: (%s) %s%s', $fileDiff->getNewMode(), $fileDiff->getNewName(), PHP_EOL);
}
```

The File object
---------------

Here is an exhaustive list of the *File* class methods:

```php
$file->getOldName();
$file->getNewName();
$file->getOldDiff();
$file->getNewDiff();

$file->isCreation();
$file->isDeletion();
$file->isModification();

$file->isRename();
$file->isChangeMode();

$file->getAdditions(); // Number of added lines
$file->getDeletions(); // Number of deleted lines

$file->isBinary(); // Binary files have no "lines"

$file->getChanges(); // See next chapter
```

The FileChange object
---------------------

> **note**
>
> This part of API is not very clean, very consistent. If you have any
> idea or suggestion on how to enhance this, your comment would be
> appreciated.

A *File* object is composed of many changes. For each of those changes,
a *FileChange* object is associated.

To access changes from a file, use the *getChanges* method:

```php
$changes = $file->getChanges();
foreach ($changes as $change) {
    foreach ($lines as $data) {
        list ($type, $line) = $data;
        if ($type === FileChange::LINE_CONTEXT) {
            echo ' '.$line.PHP_EOL;
        } elseif ($type === FileChange::LINE_ADD) {
            echo '+'.$line.PHP_EOL;
        } else {
            echo '-'.$line.PHP_EOL;
        }
    }
}
```

To get line numbers, use the range methods:

```php
echo sprintf('Previously from line %s to %s%s', $change->getOldRangeStart(), $change->getOldRangeEnd(), PHP_EOL);
echo sprintf('Now from line %s to %s%s', $change->getNewRangeStart(), $change->getNewRangeEnd(), PHP_EOL);
```

repository: gitonomy/gitlib

repo_name: gitonomy/gitlib


text:
# Monolog data redaction
[![Build Status](https://travis-ci.org/andybeak/monolog-redact-sensitive.svg?branch=master)](https://travis-ci.org/andybeak/monolog-redact-sensitive)
[![Maintainability](https://api.codeclimate.com/v1/badges/c6df2bff64c356f48bcd/maintainability)](https://codeclimate.com/github/andybeak/monolog-redact-sensitive/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/c6df2bff64c356f48bcd/test_coverage)](https://codeclimate.com/github/andybeak/monolog-redact-sensitive/test_coverage)

These [Monolog](https://github.com/Seldaek/monolog/blob/master/README.md) processors will identify and strip out emails and credit cards respectively.

WARNING: These processors will json serialise your $context. This may cause some undesired side-effects.

## Installation

Install the latest version with

    composer require andybeak/monolog-redact-sensitive

## Usage

Here is example usage:

    <?php
    require('vendor/autoload.php');
    use AndyBeak\Monolog\Redact\Processor\RedactCreditCardProcessor;
    use Monolog\Logger;
    use Monolog\Handler\StreamHandler;

    $generalLogger = new Logger('general');
    $streamHandler = new StreamHandler(__DIR__ . DIRECTORY_SEPARATOR . 'example.log', Logger::DEBUG);
    $generalLogger->pushHandler($streamHandler);

    $processor = new RedactCreditCardProcessor();
    $generalLogger->pushProcessor($processor);

    $generalLogger->debug('Visa test:<PHONE_NUMBER>111111 is a test card number');

The credit card number will be removed in the file

## Credit card stripper

The code looks for potential credit cards by using regex to identify strings of numbers that are the right length.  These numbers may contain spaces or dashes between them.

The regex is not perfect

The numbers are validated and if they are valid credit card numbers they are redacted.

## Email stripper

Identifying email addresses with regex is tricky.

By default the processor uses a good regex pattern, but you might find that it is too
expensive to use.

You can call the `setRegex` function to replace the regex with something less complicated if you find your performance slipping.

The signature of this function is:

    public function setRegex(string $regex): RedactEmailProcessor

license: MIT

repository: andybeak/monolog-redact-sensitive

branch_name: refs/heads/master

extension: md

gha_language: PHP

gha_license_id: MIT

license_type: permissive

repo_name: andybeak/monolog-redact-sensitive


text:
---
title: How to obtain full IPsec VPN configuration via the Cloud Director API
description: Describes how to obtain full IPsec VPN configuration when migrating edge configuration data to another edge
services: enablement
author: brees
reviewer: brees
lastreviewed: 07/10/2021
toc_rootlink: How To
toc_sub1:
toc_sub2:
toc_sub3:
toc_sub4:
toc_title: Obtain full IPsec VPN configuration
toc_fullpath: How To/enbl-how-obtain-vpn-config.md
toc_mdlink: enbl-how-obtain-vpn-config.md
---

**UKCloud Limited (“UKC”) and Virtual Infrastructure Group Limited (“VIG”) (together “the Companies”) – in Compulsory Liquidation**

On 25 October 2022, the Companies were placed into Liquidation with the Official Receiver appointed as Liquidator and J Robinson and A M Hudson simultaneously appointed as Special Managers to manage the liquidation process on behalf of the Official Receiver.

Further information regarding the Liquidations can be found here: <https://www.gov.uk/government/news/virtual-infrastructure-group-limited-and-ukcloud-limited-information-for-creditors-and-interested-parties>

Contact details:

For any general queries relating to the Liquidations please email<EMAIL_ADDRESS>For customer related queries please email<EMAIL_ADDRESS>For supplier related queries please email<EMAIL_ADDRESS>
# How to obtain full IPsec VPN configuration via the Cloud Director API

## Overview

Due to changes in VMware Cloud Director and how edge configuration is stored and retrieved, the current documented process for retrieving the edge gateway configuration does not include the full IPsec VPN configuration, specifically the Pre-Shared Key (PSK).

Through testing, UKCloud has identified how to obtain the full IPsec configuration, but unfortunately not as a single configuration file. You must obtain and query the IPsec VPN configuration separately.

This article provides instructions on how to obtain the PSK of your configured IPsec VPNs on an edge gateway via the Cloud Director API. This can also be achieved via the VMware Cloud Director GUI.

The PSK is not necessarily required when updating edge or VPN configuration. Changes in configuration to an existing VPN can be applied to an edge via the API without the PSK being present in the XML body. In this case, the PSK will remain unaltered. If you're configuring a new VPN or updating the PSK, then this information will need to be present in the XML body.

For instructions on how to export, amend and post the configuration from one edge gateway to another, see [*How to migrate edge configuration data to another edge*](enbl-how-migrate-edge-config.md).

## Retrieving the edge gateway API endpoint

Follow the instructions in [*How to migrate edge configuration data to another edge*](enbl-how-migrate-edge-config.md), up to and including *Retrieving edge gateway configuration via the API*. As per this section of the article, you should be able to retrieve the API endpoint of your edge gateway.

For example:

`https://<api_url>/api/admin/edgeGateway/<edge_id>`

The endpoint you need to obtain the full IPsec configuration is slightly different to this, however, following this method you'll be able to retrieve the edge ID that you need. Append the edge ID to the following endpoint:

`https://<api_url>/network/edges/<edge_id>`

## Obtaining edge gateway configuration

Performing a GET request against the API endpoint shown in the previous section will return a more detailed configuration of your edge gateway, including additional parameters for your IPsec VPNs that weren't previously returned. However, the PSK will be obfuscated.

To display the PSK, you need to amend the endpoint to only obtain the IPsec configuration and append an additional switch to display the sensitive data:

`https://<api_url>/network/edges/<edge_id>/ipsec/config?showSensitiveData=true`

A GET request against this endpoint should now return the full IPsec configuration, along with the PSK in plain text.

## Applying the new configuration

Unfortunately, you cannot post this XML configuration back to an edge, and will also be unable to modify the edge via this API endpoint. You'll need to format your XML configuration and apply it as documented in the *Modifying the IPsec VPN configuration* and *Applying the new configuration* sections of [*How to change IPsec VPN settings via the Cloud Director API*](../vmware/vmw-how-change-ipsec-vpn-api.md).

As mentioned earlier in this article, you can post the VPN configuration to the edge without the PSK being present in the XML configuration. The PSK will remain the same. However, if you need to amend the PSK or configure a new VPN, you can find instructions for this in the *Amending the shared secret* section of the article linked above.

## Next steps

If you need any further assistance, or if you want to discuss any aspect of this service or settings specific to your domain, log a support ticket via the [My Calls](https://portal.skyscapecloud.com/support/ivanti) section of the UKCloud Portal.

## Feedback

If you find a problem with this article, click **Improve this Doc** to make the change yourself or raise an [issue](https://github.com/UKCloud/documentation/issues) in GitHub. If you have an idea for how we could improve any of our services, send an email to<EMAIL_ADDRESS>

repository: UKCloud/documentation

gha_language: JavaScript

repo_name: UKCloud/documentation


text:
# NBPInvestor
## Install

    $ cd [path_to_app]
    $ composer install
## Run

    $ php bin/console nbp:best-investment <start> <end> <value>

start is date of start in YYYY-MM-DD format

end is date of end in YYYY-MM-DD format

value is investment value

repository: grzonu/NBPInvestor

repo_name: grzonu/NBPInvestor


text:
# api.gov.au Key Manager

Runs on localhost:5003/keys/producer

This is a prototype of registration management for API keys used to manage api.gov.au content

# Bootstraping the initial key

1. add this environment variable, with the user:pass combination of your choosing.
Eg: 'BootstrapCredentials=abcd:1234'

2. run the service

3. request a new key using the bootstraped credential. Something like:
$ curl http://localhost:5000/keys/producer/api/new\?email\=admin@localhost\&spaces\=admin --user abcd:1234

repository: apigovau/key-manager

gha_language: Kotlin

repo_name: apigovau/key-manager


text:
# Opencart Language Compare
Compares CMS opencart language files and generates one mixed file

## When to use:
If you need to add a language pack to your existing online store on Opencart.
Compares language arrays in files and based on them creates a language pack, with partially translated strings.
The rest of the lines can be translated manually, thereby saving your time on adding the translation to the site

### How to use
The script was written and tested on php 7.1.2.

To run you need:
1) Place the original language pack in the original folder (the one used on the site)
2) Place the translation in the translate folder.
3) Open a console and run the following command,
4) After the script is executed, the new files will be located in the result folder

> php brain.php TRANSLATION_Language_Code SOURCE_Language_Code


text:
# EatUp README

This project contains a game-like web application that requires
participants to view a series of photos of arthropods, and decide, for
each one, whether or not it is an ant.  While this game is complete
(except for Firebase database credentials), it is highly likely that
changes to the game will be required for other uses, which will
require web programming skills.

The game starts with an introductory page, `index.html`. It introduces
the game and takes the player to an online consent form,
`consent.html`. If the player consents, they are taken to `start.html`
and have to state whether they have played the game before.  The game
itself is `trial.html`. Once the game is complete, the
page `finish.html` is displayed.

The game will not work if viewed from a file (due to browser security
restrictions). For development purposes, you can obtain a basic free
web server such as [Mongoose](https://cesanta.com/). Simply copy it
into this directory and run it. However, for people to play the game,
you will need to use an Internet accessible web server.

The game is implemented using HTML, CSS and JavaScript. User responses
are stored in a Google Firebase database. Images of animals are in the
`images` subdirectory. To run the game using Firebase as your
database, you will need to obtain an account and enter its information
in `mfb.js`. If you use some other database or mechanism to store user
responses, you will need to implement and initialise a new logger (see
`logger.js` and `setup.js`).

Many parts of this directory are specific to an implementation,
however they have been left here to serve as an example or a starting
point for future implementations. As an absolute minimum, it would be
necessary to change (or remove) all of the pages except `trial.html`,
replace the photos in `images`, and set up a Firebase account.

Our particular configuration, with static web pages stored on Github
and a Google Firebase database, suffers from a security
problem. Either the database must be publically writable, or else the
credentials must be publically accessable on Github. This is clearly
risky, so should be avoided.

repository: JimMcL/measuring-mimicry

repo_name: JimMcL/measuring-mimicry


text:
mdx-table-of-contents
==========

[![npm version](https://img.shields.io/npm/v/mdx-table-of-contents.svg)](https://www.npmjs.com/package/mdx-table-of-contents)

An MDX plugin that exports a `tableOfContents` object, along with the exported component.

This plugin is used by [mdx-loader](../mdx-loader) and [mdx.macro](../mdx.macro).

repository: mxck/mdx-util

repo_name: mxck/mdx-util


text:
---
title: "OpenBazaar Shopping and Selling Survival Guide - Last Minute Holiday Edition"
layout: post
date: '2018-12-06 06:30:00 -0300'
social_title: 'OpenBazaar Shopping and Selling Survival Guide - Last Minute Holiday Edition'
social_description: 'Staying ahead of the holiday season can be a challenge for shoppers and sellers alike. Here is how to navigate both—last minute—on OpenBazaar.'
---

Staying ahead of the holiday season can be a challenge for shoppers and sellers alike. What’s an [OpenBazaar](https://openbazaar.org/download) user to do when they find themselves already in December and they still need to buy some gifts and/or squeeze in a few more sales?

Thankfully, disaster can still be avoided with a quick pause to regroup.

![OpenBazaar Shopping and Selling Survival Guide Gift](OpenBazaar_Shopping_and_Selling_Survival_Guide_Gift.png "OpenBazaar Shopping and Selling Survival Guide Gift")

> **Buyers:** are you running a little behind and still need a great gift for the other cryptocurrency lovers in your life? Make a _real_ statement by using your coins to buy their gifts on OpenBazaar.

**Get shopping**

If you haven’t already, start browsing now! [OpenBazaar.com](https://openbazaar.com) makes this incredibly easy for you to do anywhere you have an internet-connected device. When you are ready to buy your gifts, just open the same listings with your desktop app to pay.

**Remember production and shipping times**

Most vendors on OpenBazaar are individuals or small businesses who run everything themselves. You may have just fallen in love with an item but if you need it by a specific time, make sure the vendor can deliver it by then. For custom or handmade goods, be sure to check with the vendor about what they have ready to ship and their current production & shipping times. Also note where in the world they are shipping from to estimate how long it will take to arrive.

**Look for deals**

Lots of OpenBazaar vendors are still offering promotions right now like this one:

use coupon code "xmas" to get %15 off any shirts for your super normal presents for people this holiday season. https://t.co/bZImpRezxp
if btc, use @openbazaar discount already included in price ob://QmTwutUrwXS3bh5rfSXriJCNayToD44VpWJbm6DwKuVc2U/store
— YOUR HYDRA (@BraveTheWorld) December 6, 2018

There are still some nice deals to be had out there so keep an eye out for them. We will be sharing any great deals we find on our social media, too!

> **Sellers:** Do you still want to earn a few more cryptocoins this month? Here are some tips to do so and not run yourself ragged.

**Check in with yourself and your business**

Sure, a bit more Bitcoin is always great but make sure you are realistic about what it will take you to get through any additional orders this month so that you don’t overextend yourself. Account for how long it takes you to make, acquire, package and send your items and about how long it takes to arrive in different locations so that you can advise your buyers well.

**Know your cutoff time**

Make sure you know the last day you can accept orders in order to get them to buyers before the holiday they are celebrating. This is especially important if you do handmade or other custom work. Also, do you want to take some time off this month? Make sure you aren’t chasing orders into your own holiday and [set your OpenBazaar store to “off”](https://openbazaar.zendesk.com/hc/en-us/articles/115002765331-How-do-I-turn-my-store-off-or-go-on-vacation-mode-) a few days prior.

**Promote & offer incentives**

A great way to promote yourself and encourage a little sales push is to use social media to talk about special offers you have. Vendors are still offering incentives for buyers like discounts and bonus gifts right now. If your capacity allows for it, give your potential buyers some extra reasons to give their business to _you_ over the hundreds of other vendors competing for their attention.

> **Tip:** You can easily add coupon codes to your items on OpenBazaar following [these steps](https://openbazaar.zendesk.com/hc/en-us/articles/360018728172-How-do-I-add-a-discount-or-coupon-code-to-my-items-).

We all still have some work left to do if we celebrate holidays in December so while this may not _eliminate_ stress, hopefully thinking through these things can help you minimize it.

#### Happy holidays!

extension: markdown

gha_language: HTML


text:
# acquit, acquitted

## Definition:

The term “acquit” means to formally declare someone to be not guilty of an unlawful or immoral behavior he was accused of.

* This term is sometimes used in the Bible to talk about forgiving sinners.
* Often the context is about wrongly acquitting people who are wicked and rebel against God.
* This could be translated as “declare innocent” or “judge to be not guilty.”

(See also: [forgive](../kt/forgive.md), [guilt](../kt/guilt.md), [sin](../kt/sin.md))

## Bible References:

* [Deuteronomy 25:1-2](rc://en/tn/help/deu/25/01)
* [Exodus 21:28](rc://en/tn/help/exo/21/28)
* [Exodus 23:7](rc://en/tn/help/exo/23/07)
* [Isaiah 5:23](rc://en/tn/help/isa/05/23)
* [Job 10:12-14](rc://en/tn/help/job/10/12)

## Word Data:

* Strong’s: [[H3444]], [[H5352]], [[H5355]], [[H6403]], [[H6663]]

repository: mandolyte/uw-obsidian

branch_name: refs/heads/main

repo_name: mandolyte/uw-obsidian


text:
# Install IHaskell (Haskell in the Jupyter Notebook)

A nix expression to install
[IHaskell][IHaskell].

## Install

Follow the [Nix notes](../NIX-NOTES.md) for installing Nix. After
installing Nix and cloning this repository, run

    $ nix-env -if default.nix

in this directory. This will install [IHaskell][IHaskell] in your
local profile.

## Usage

Run

    $ ihaskell-notebook

to launch the notebook with a Haskell capability.

[IHaskell]: https://github.com/gibiansky/IHaskell

gha_language: Nix


text:
# Dihlab.com - Desserts Online Store

### Installation

```
pip install -r requirements.txt

cp dihlab/settings.example.py dihlab/settings.py
```

### Starting app

```
python manage.py runserver
```


text:
# node-cache-manager-fs
Node Cache Manager store for Filesystem
=======================================

The Filesystem store for the [node-cache-manager](https://github.com/BryanDonovan/node-cache-manager) module.

Installation
------------

```sh
npm install cache-manager-fs --save
```

Usage examples
--------------

Here are examples that demonstrate how to implement the Filesystem cache store.

## Features

* limit maximum size on disk
* refill cache on startup (in case of application restart)

## Single store

```javascript
// node cachemanager
var cacheManager = require('cache-manager');
// storage for the cachemanager
var fsStore = require('cache-manager-fs');
// initialize caching on disk
var diskCache = cacheManager.caching({store: fsStore, options: {ttl: 60*60 /* seconds */, maxsize: 1000*1000*1000 /* max size in bytes on disk */, path:'diskcache', preventfill:true}});
```

### Options

options for store initialization

```javascript

options.ttl = 60; // time to life in seconds
options.path = 'cache/'; // path for cached files
options.preventfill = false; // prevent filling of the cache with the files from the cache-directory
options.fillcallback = null; // callback fired after the initial cache filling is completed
options.zip = false; // if true the cached files will be zipped to save diskspace
options.reviveBuffers = true; // if true buffers are returned from cache as buffers, not objects

```
## Installation

    npm install cache-manager-fs

## Tests

To run tests:

npm test

## Code Coverage

To run Coverage:

npm run coverage

## License

cache-manager-fs is licensed under the MIT license.


text:
---
name: "Feature request"
about: Suggest new functionality or an enhancement of existing functionality.
---

## New Feature Request

### Checklist

<!--
    Check every following box [x] before submitting your issue.
    Click the "Preview" tab for better readability.
    Thanks for contributing to Moralis!
-->

- [ ] I am not disclosing a [vulnerability](https://github.com/MoralisWeb3/react-moralis/blob/main/SECURITY.md).
- [ ] I have searched through [existing issues](https://github.com/MoralisWeb3/react-moralis/issues?q=is%3Aissue) and the [Moralis Forum](https://forum.moralis.io/).

### Current Limitation

<!-- Which current limitation is the feature or enhancement addressing? -->

### Feature / Enhancement Description

<!-- What is the concept of the functionality and how should it be implemented? -->

### Example Use Case

<!-- What is an example use case in steps (1. / 2. / 3. / etc.) that describes the functionality? -->

### Alternatives / Workarounds

<!-- Which alternatives or workarounds exist currently? -->

### 3rd Party References

<!-- Have you seen a similar functionality provided somewhere else? -->

repository: hellonathanchung/react-moralis

repo_name: hellonathanchung/react-moralis


text:
# [Snow Report for Arapahoe Basin](http://alexa.amazon.com/#skills/amzn1.ask.skill.8765f7e8-583a-4b84-b2b0-e6004285088d)
![5 stars](../../images/ic_star_black_18dp_1x.png)![5 stars](../../images/ic_star_black_18dp_1x.png)![5 stars](../../images/ic_star_black_18dp_1x.png)![5 stars](../../images/ic_star_black_18dp_1x.png)![5 stars](../../images/ic_star_black_18dp_1x.png) 1

To use the Snow Report for Arapahoe Basin skill, try saying...

* *Alexa, open Arapahoe Basin*

* *Alexa, ask Arapahoe Basin for the snow report*

* *Alexa, ask Arapahoe Basin for latest conditions*

The Arapahoe Basin Snow Report brought to you by SnoCountry brings you the latest snow fall, snow surface conditions,  base depth, trail, and lift operations information.

***

### Skill Details

* **Invocation Name:** arapahoe basin
* **Category:** null
* **ID:** amzn1.ask.skill.8765f7e8-583a-4b84-b2b0-e6004285088d
* **ASIN:** B01N0GUIDC
* **Author:** SnoCountry
* **Release Date:** November 22, 2016 @ 08:36:03
* **In-App Purchasing:** No


text:
# Magento 2 module for New Relic
================================
Homepage: http://www.yireo.com/software/magento-extensions/newrelic2

Requirements:
* Magento 2.0.0 Stable

### Instructions for using composer
Use composer to install this extension. First make sure that Magento is installed via composer, and that there is a valid `composer.json` file present.

Next, install our module using the following command:

    composer require yireo/magento2-newrelic2

Next, install the new module into Magento itself:

    ./bin/magento module:enable Yireo_NewRelic2
    ./bin/magento setup:upgrade

Check whether the module is succesfully installed in **Admin > Stores >
Configuration > Advanced > Advanced**.

Done.

### Instructions for manual copy
We recommend `composer` to install this package. However, if you want a manual copy instead, these are the steps:
* Make sure to install New Relic on your server first
* Make sure to have New Relics PHP module installed and active
* Upload the files in the `source/` folder to the folder `app/code/Yireo/NewRelic2` of your site
* Run `php -f bin/magento module:enable Yireo_NewRelic2`
* Run `php -f bin/magento setup:upgrade`
* Flush the Magento cache
* Configure settings under `Stores > Configuration > Advanced > Yireo New Relic`
* Done

## Unit testing
This extension ships with PHPUnit tests. The generic PHPUnit configuration in Magento 2 will pick up on these tests. To only
test Yireo extensions, copy the file `phpunit.xml.yireo` to your Magento folder `dev/tests/unit`. Next, from within that folder run PHPUnit. For instance:

    phpunit -c phpunit.xml.yireo --bootstrap PATH_TO_MAGENTO/dev/tests/unit/framework/bootstrap.php


text:
Everything this software does is possible with a more fully-featured mail
server like Postfix but requires setting up Postfix (which is complicated) and,
if following best practices, rotating credentials every 90 days (which is
annoying). Because this integrates with the AWS SDK it can be configured
through the normal SDK configuration channels such as the instance metadata
service which provides dynamic credentials or environment variables, in which
case you should still manually rotate credentials but have one choke-point to
do that.

## Usage
By default the command takes no arguments and will listen on port 2500 on all
interfaces. The listen interfaces and port can be specified as the only
argument separated with a colon like so:

```
./ses-smtpd-proxy <IP_ADDRESS>:2600
```

## Security Warning
This server speaks plain unauthenticated SMTP (no TLS) so it's not suitable for
use in an untrusted environment nor on the public internet. I don't have these
use-cases but I would accept pull requests implementing these features if you
do have the use-case and want to add them.

## Building
To build the binary run `make ses-smtpd-proxy`.

To build a Docker image, which is based on Alpine Latest, run `make docker` or
`make publish`. The later command will build and push the image. To override
the defaults specify `DOCKER_REGISTRY`, `DOCKER_IMAGE_NAME`, and `DOCKER_TAG`
in the make command like so:

```
make DOCKER_REGISTRY=reg.example.com DOCKER_IMAGE_NAME=ses-proxy DOCKER_TAG=foo docker
```
## Contributing
If you would like to contribute please visit the project's GitHub page and open
a pull request with your changes. To have the best experience contributing,
please:

* Don't break backwards compatibility of public interfaces
* Update the readme, if necessary
* Follow the coding style of the current code-base
* Ensure that your code is formatted by gofmt
* Validate that your changes work with Go 1.11+

All code is reviewed before acceptance and changes may be requested to better
follow the conventions of the existing API.

## Contributors
* Mike Crute (@mcrute)
* Thomas Dupas (@thomasdupas)
* Quentin Loos (@Kent1)

repository: DNSBelgium/ses-smtpd-proxy

repo_name: DNSBelgium/ses-smtpd-proxy


text:
Sexplib - S-Expressions with Type Converters for OCaml
======================================================

---------------------------------------------------------------------------

What is Sexplib?
----------------

This [OCaml](http://www.ocaml.org) library contains functionality for
parsing and pretty-printing S-expressions.  In addition to that it contains a
preprocessing module for Camlp4 which can be used to automatically generate
code from type definitions for efficiently converting OCaml-values to
S-expressions and vice versa.

In combination with the parsing and pretty-printing functionality this
frees users from having to write their own I/O-routines for data structures
they define.  The tight integration with the OCaml type system also allows
for automatically verifying complex semantic properties when converting from
S-expressions to OCaml values.  Possible errors during automatic conversions
from S-expressions to OCaml-values are reported in human-readable ways
with exact location information.  The library also offers functionality for
extracting and replacing sub-expressions in S-expressions.

Usage
-----

Make sure you have installed the required `type_conv` package on your
system, too.  It should be obtainable at the same site as `sexplib`.

The API (`.mli`-files) in the `sexplib` library directory (`lib`)
is fully documented, and HTML-documentation can be built from it on
installation.  The documentation for the latest release can also be found
[online](http://mmottl.bitbucket.org/projects/sexplib/api/).

Module `Sexp` contains all I/O-functions for S-expressions, module
`Conv` helper functions for converting OCaml-values of standard types
to S-expressions.  Module `Path` supports sub-expression extraction and
substitution.

Module `syntax/pa_sexp_conv.ml` contains the extensions for the
Camlp4-preprocessor.  It adds the following three new constructs to the
language:

    :::ocaml
    with sexp
    with sexp_of
    with of_sexp

The first one implies the last two statements.  When using these constructs
right after a type definition, function definitions will be automatically
generated which perform S-expression conversions.  For example, consider
the following type definition:

    :::ocaml
    type t = A | B with sexp

The above will generate the functions `sexp_of_t` and `t_of_sexp`.
The preprocessor also supports automatic addition of conversion functions
to signatures.  Just add "`with sexp`" to the type in a signature, and the
appropriate function signatures will be generated.

Converters for standard types (`int`, `list`, `Hashtbl.t`, etc.) become
visible to the macro-generated code by opening the standard module before
their first use in a type definition.  Users will therefore usually want to
place the following at the top of their files:

    :::ocaml
    open Sexplib.Std

See the file `lib_test/conv_test.ml` for an example application.  It also
demonstrates how to extract and substitute sub-expressions.

### Compiling and linking

To compile a file you will have to add preprocessing flags to the compiler
invocation.  For example for file `foo.ml`:

    :::sh
    ocamlc -pp "camlp4o -I {path to type_conv} \
      -I {path to sexplib} pa_type_conv.cmo pa_sexp_conv.cmo" \
      -I {path to sexplib} foo.ml

If you are using [OCamlMakefile](http://bitbucket.org/mmottl/ocaml-makefile),
just put the following line at the top of the file, assuming you have installed
both `type_conv` and `sexplib` with ocamlfind.  The comment must start at
the beginning of the line, and you must not break lines (here broken for
readability only):

    :::ocaml
    (*pp camlp4o -I `ocamlfind query type_conv` \
      -I `ocamlfind query sexplib` \
      pa_type_conv.cmo pa_sexp_conv.cmo *)

In the linking stage you will only have to link with `sexplib`.  E.g. when
using `OCamlMakefile`, just add `sexplib` to the `PACKS`-variable.

Users of the OCaml tool
[findlib](http://projects.camlcity.org/projects/findlib.html) for compiling
and linking OCaml files have an easier time: they just need to add `sexplib`
to the list of packages to make S-expression functionality available.
Adding `sexplib.syntax`, too, will make sure that files that use the type
conversion feature will be preprocessed correctly.

You may choose to place the macro `TYPE_CONV_PATH`, which takes a string
argument, at the top of files to be preprocessed if you want to force a
particular module path for error messages generated by `sexplib`.  This may
become necessary if modules are packed into a library at a later stage and
if error messages generated by Sexplib need to refer to this location to
help pinpoint the associated type.

Syntax Specification of S-expressions
-------------------------------------

### Lexical conventions of S-expression

Whitespace, which consists of space, newline, horizontal tab, and form feed,
is ignored unless within an OCaml-string, where it is treated according
to OCaml-conventions.  The left parenthesis opens a new list, the right one
closes it again.  Lists can be empty.  The double quote denotes the beginning
and end of a string following the lexical conventions of OCaml (see the
[OCaml-manual](http://www.ocaml.org/pub/docs/manual-ocaml) for details).
All characters other than double quotes, left- and right parentheses,
whitespace, carriage return, and comment-introducing characters or sequences
(see next paragraph) are considered part of a contiguous string.

A line comment is introduced using a semicolon, which comments out all
text up to the end of the next newline character.  The sequence "`#;`"
introduces an S-expression comment.  This means that the next S-expression,
which must be syntactically correct and may be an atom (quoted or unquoted)
or list, following this two-character sequence will be ignored.  Whitespace
or other comments between this sequence and the subsequent S-expression
are ignored.  Block comments are opened with "`#|`" and closed with "`|#`".
They can be nested and require that double-quotes within the block balance
and contain syntactically correct OCaml-strings, similar to quoted atoms.
These OCaml-strings may contain comment characters without causing parsing
problems.

### Grammar of S-expressions

S-expressions are either strings (= atoms) or lists.  The lists can
recursively contain further S-expressions or be empty, and must be balanced,
i.e. parentheses must match.

### Examples

    :::scheme
    this_is_an_atom_123'&^%!  ; this is a comment
    "another atom in an OCaml-string \"string in a string\" \123"

    ; empty list follows below
    ()

    ; a more complex example
    (
      (
        list in a list  ; comment within a list
        (list in a list in a list)
        42 is the answer to all questions
        #; (this S-expression
             (has been commented out)
           )
        #| Block comments #| can be "nested" |# |#
      )
    )

### Conversion of basic OCaml-values

Basic OCaml-values like the unit-value, integers (in all representations),
floats, strings, and booleans are represented in S-expression syntax the
same way as in OCaml.  Strings may also appear without quotes if this does
not clash with the lexical conventions for S-expressions.

### Conversion of OCaml-tuples

OCaml-tuples are simple lists of values in the same order as in the tuple.
E.g. (OCaml representation followed by S-expression after arrow):

    :::ocaml
    (3.14, "foo", "bar bla", 27)  <===>  (3.14 foo "bar bla" 27)

### Conversion of OCaml-records

OCaml-records are represented as lists of pairs in S-expression syntax.
Each pair consists of the name of the record field (first element), and its
value (second element).  E.g.:

    :::ocaml
    {
      foo = 3;
      bar = "some string";
    }
    <===>
    (
      (foo 3)
      (bar "some string")
    )

Type specifications of records allow the use of a special type `sexp_option`
which indicates that a record field should be optional.  E.g.:

    :::ocaml
    type t =
      {
        x : int option;
        y : int sexp_option;
      } with sexp

The type `sexp_option` is equivalent to ordinary options, but is treated
specially by the code generator.  The above would lead to the following
equivalences of values and S-expressions:

    :::ocaml
    {
      x = Some 1;
      y = Some 2;
    }
    <===>
    (
      (x (some 1))
      (y 2)
    )

And:

    :::ocaml
    {
      x = None;
      y = None;
    }
    <===>
    (
      (x none)
    )
>>

  Note how `sexp_option` allows you to leave away record fields that should
default to `None`.  It is also unnecessary (and actually wrong) now to write
down such a value as an option, i.e. the `some`-tag must be dropped if the
field should be defined.

The types `sexp_list`, `sexp_array`, and `sexp_bool` can be used in ways
similar to the type `sexp_option`.  They assume the empty list, empty array,
and false value respectively as default values.

More complex default values can be specified explicitly using several
constructs, e.g.:

    :::ocaml
    let z_test v = v > 42

    type t =
      {
        x : int with default(42);
        y : int with default(3), sexp_drop_default;
        z : int with default(3), sexp_drop_if(z_test);
      } with sexp

The `default` record field extension above is supported by the underlying
preprocessor library `type_conv` and specifies the intended default value for
a record field in its argument.  Sexplib will use this information to generate
code which will set this record field to the default value if an S-expression
omits this field.  If a record is converted to an S-expression, record fields
with default values will be emitted as usual.  Specifying `sexp_drop_default`
will add a test for polymorphic equality to the generated code such that a
record field containing its default value will be suppressed in the resulting
S-expression.  This option requires the presence of a default value.

`sexp_drop_if` on the other hand does not require a default.  Its argument
must be a function, which will receive the current record value.  If the
result of this function is `true`, then the record field will be suppressed
in the resulting S-expression.

The above extensions can be quite creatively used together with manifest
types, functors, and first-class modules to make the emission of record
fields or the definition of their default values configurable at runtime.

### Conversion of sum types

Constant constructors in sum types are represented as strings.  Constructors
with arguments are represented as lists, the first element being the
constructor name, the rest being its arguments.  Constructors may also
be started in lowercase in S-expressions, but will always be converted to
uppercase when converting from OCaml-values.

For example:

    :::ocaml
    type t = A | B of int * float * t with sexp

    B (42, 3.14, B (-1, 2.72, A))  <===>  (B 42 3.14 (B -1 2.72 A))

The above example also demonstrates recursion in data structures.

### Conversion of variant types

The conversion of polymorphic variants is almost the same as with sum types.
The notable difference is that variant constructors must always start with
an either lower- or uppercase character, matching the way it was specified
in the type definition.  This is because OCaml also distinguishes between
upper- and lowercase variant constructors.  Note that type specifications
containing unions of variant types are also supported by the S-expression
converter, for example as in:

    :::ocaml
    type ab = [ `A | `B ] with sexp
    type cd = [ `C | `D ] with sexp
    type abcd = [ ab | cd ] with sexp

### Conversion of OCaml-lists and arrays

OCaml-lists and arrays are straightforwardly represented as S-expression lists.

### Conversion of option types

The option type is converted like ordinary polymorphic sum types, i.e.:

    :::ocaml
    None        <===>  none
    Some value  <===>  (some value)

There is a deprecated version of the syntax in which values of option type
are represented as lists in S-expressions:

    :::ocaml
    None        <===>  ()
    Some value  <===>  (value)

Reading of the old-style S-expression syntax for option values is
only supported if the reference `Conv.read_old_option_format` is set
to `true` (currently the default, which may change).  A conversion
exception is raised otherwise.  The old format will be written only if
`Conv.write_old_option_format` is true (also currently the default).
Reading of the new format is always supported.

### Conversion of polymorphic values

There is nothing special about polymorphic values as long as there are
conversion functions for the type parameters.  E.g.:

    :::ocaml
    type 'a t = A | B of 'a with sexp
    type foo = int t with sexp

In the above case the conversion functions will behave as if `foo` had been
defined as a monomorphic version of `t` with `'a` replaced by `int` on the
right hand side.

If a data structure is indeed polymorphic and you want to convert it, you will
have to supply the conversion functions for the type parameters at runtime.
If you wanted to convert a value of type `'a t` as in the above example,
you would have to write something like this:

    :::ocaml
    sexp_of_t sexp_of_a v

where `sexp_of_a`, which may also be named differently in this particular
case, is a function that converts values of type `'a` to an S-expression.
Types with more than one parameter require passing conversion functions for
those parameters in the order of their appearance on the left hand side of
the type definition.

### Conversion of abstract data types

If you want to convert an abstract data type to an S-expression, you will
have to roll your own conversion functions, which should produce or accept
values of type `Sexp.t`.  If you want to make use of your abstract type
within definitions of other types, make sure that you call your conversion
function appropriately: it should be in the same scope as the typename,
and must be named `sexp_of_{typename}`.

It is possible to make use of internal representations, too, of course.
In that case you may need to shadow the generated `*_of_sexp` function with a
version that calls the generated one, but performs required semantic checks
on the resulting value to guarantee that it does not violate properties of
the abstract data type.  For example:

    :::ocaml
    type pos_int = int with sexp

    let pos_int_of_sexp sexp =
      let n = pos_int_of_sexp sexp in
      if n >= 0 then n
      else raise (Of_sexp_error (Failure "pos_int: number not positive", sexp))

A nice perk of `sexplib` is that using the `Of_sexp_error`-exception
will allow you to accurately pinpoint type errors in large S-expressions.
The file loading functions described further below will exploit this feature.

### Conversion of hash tables

Hash tables, which are abstract values in OCaml, are represented as association
lists, i.e. lists of key-value pairs, e.g.:

    :::scheme
    ((foo 42) (bar 3))

Reading in the above S-expression as hash table mapping strings to integers
(`(string, int) Hashtbl.t`) will map `foo` to `42` and `bar` to `3`.

Note that the order of elements in the list may matter, because the
OCaml-implementation of hash tables keeps duplicates.  Bindings will be
inserted into the hash table in the order of appearance.  Therefore, the
last binding of a key will be the "visible" one, the others are "hidden".
See the OCaml-documentation on hash tables for details.

Note, too, that polymorphic equality may not hold between conversions.
You will have to use a function implementing logical equality for that purpose.

### Conversion of opaque values

Opaque values are ones for which we do not want to perform conversions.
This may be, because we do not have S-expression converters for them, or
because we do not want to apply them in a particular type context. e.g. to
hide large, unimportant parts of configurations.  To prevent the preprocessor
from generating calls to converters, simply apply the qualifier `sexp_opaque`
as if it were a type constructor, e.g.:

    :::ocaml
    type foo = int * stuff sexp_opaque with sexp

Thus, there is no need to specify converters for type `stuff`, and if there
are any, they will not be used in this particular context.  Needless to say,
it is not possible to convert such an S-expression back to the original value.
Here is an example conversion:

    :::ocaml
    (42, some_stuff)  ===>  (42 <opaque>)

### Conversion of exceptions

S-expression converters for exceptions can be automatically registered using
the "`with sexp`" macro, e.g.:

    :::ocaml
    module M = struct
      exception Foo of int with sexp
    end

Such exceptions will be translated in a similar way as sum types, but their
constructor will be prefixed with the fully qualified module path (here:
`M.Foo`) so as to be able to discriminate between them without problems.

The user can then easily convert an exception matching the above one to
an S-expression using `sexp_of_exn`.  User-defined conversion functions
can be registered, too, by calling `add_exn_converter`.  This should make
it very convenient for users to catch arbitrary exceptions escaping their
program and pretty-printing them, including all arguments, as S-expressions.
The library already contains mappings for all known exceptions that can
escape functions in the OCaml standard library.

I/O and Type Conversions
------------------------

There are multiple ways of performing I/O with S-expressions.  If exact
error locations are required when type conversions fail, S-expressions need
to be parsed with location annotations.  The associated parser is slower,
however, and needs more memory.  In most cases users may therefore want to
use functions like `load_sexp_conv` or `load_sexp_conv_exn`, which load
S-expressions from files and convert them.  They initially read the file
without location annotations for performance reasons.  Only if conversions
fail, the file will be reparsed with location annotations.  Type errors
can then be reported accurately with file name, line number, column, and
file position.

---------------------------------------------------------------------------

Contact Information and Contributing
------------------------------------

In the case of bugs, feature requests, contributions and similar, please
contact the maintainers:

  * Jane Street Capital, LLC<EMAIL_ADDRESS>
Up-to-date information should be available at:
* <https://github.com/janestreet/sexplib>
* <https://bitbucket.org/janestreet/sexplib>

repository: samoht/sexplib

repo_name: samoht/sexplib


text:
# Cardpay Java SDK

You can sign up for a Cardpay account at https://cardpay.com.

## Requirements

Building the API client library requires:
1. Java 1.8+
2. Maven

## Installation

To install the API client library to your local Maven repository, simply execute:

```shell
mvn clean install
```

To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:

```shell
mvn clean deploy
```

Refer to the [OSSRH Guide](http://central.sonatype.org/pages/ossrh-guide.html) for more information.

### Maven users

Add this dependency to your project's POM:

```xml
<dependency>
  <groupId>com.cardpay</groupId>
  <artifactId>java-sdk</artifactId>
  <version><IP_ADDRESS></version>
  <scope>compile</scope>
</dependency>
```

### Gradle users

Add this dependency to your project's build file:

```groovy
compile "com.cardpay:java-sdk:<IP_ADDRESS>"
```

### Others

At first generate the JAR by executing:

```shell
mvn clean package
```

Then manually install the following JARs:

* `target/java-sdk-<IP_ADDRESS>.jar`

## Getting Started

Please follow the [installation](#installation) instruction and visit [https://integration.cardpay.com](https://integration.cardpay.com).

repository: scalpovich/cardpay-java

repo_name: scalpovich/cardpay-java


text:
This folder provides the implementation of database migrations based on [Flyway](https://flywaydb.org/). For development
convenience, a `docker-compose.yml` file is included to bring up a PostgreSQL database.

## Docker Compose

The docker compose file will start a Postgres 12 database. Run it with the command: `docker-compose up -d`

The file supports environment variables, which can be override with a `.env` file in the local directory.

| Environment Variable | Default | Description |
| -------------------- | ------- | ----------- |
| `DB_NAME` | `hello` | The name of the database. |
| `DB_USER` | `hello_user` | The name of the primary user of the database. |
| `DB_PASSWORD` | `hello_pw` | The password of the primary user of the database. |

## Migration Configuration

The database migration application requires some configured values to run correctly. An `application.yml` file is
available for a quick reference and includes default values for working with the default docker-compose settings. For
local development, Spring Boot has the `default` profile enabled by default, so an `application-default.yml` can be
added to the `database` folder to override the values for those settings. Alternatively, environment variables may also
be used to override settings.

See [Externalized Configuration](https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config)
for complete details on configuring Spring Boot.

| Property | Environment Variable | Default | Description |
| -------- | -------------------- | ------- | ----------- |
| `spring.datasource.url` | `SPRING_DATASOURCE_URL` | `jdbc:postgresql://localhost:5432/hello` | The URL of the target database. |
| `spring.datasource.username` | `SPRING_DATASOURCE_USERNAME` | `hello_user` | The audience value an Auth0 API. |
| `spring.datasource.password` | `SPRING_DATASOURCE_PASSWORD` | `hello_pw` | The issuer of the JWT. |

## Available Scripts

In the `database` folder, you can run:

### `./gradlew bootRun`

Runs the migrations then shuts down.

If you use another method to run the application, ensure `database` is the working directory so that local
configuration is used.

### `./gradlew test`

Runs any tests that exist.

### `./gradlew bootJar`

Builds the app for production to the `build/libs` folder.

Your app is ready to be deployed!

repository: vituary-solutions/hello-template

repo_name: vituary-solutions/hello-template


text:
# TTR Launcher
A simple CLI launcher for Toontown Rewritten.

## About
Originally written by [Omeryl](https://github.com/Omeryl), it's been
extensively rewritten by me ([loganswartz](https://github.com/loganswartz))
Supports macOS, Linux (snap package and regular version), and Windows, without
all the weird crashes or behavior of the official launcher.

## Usage
Assuming the `ttr_launcher` folder is in your PYTHONPATH:
```bash
~ $ python3 -m ttr_launcher
```

repository: loganswartz/TTR-Launcher

repo_name: loganswartz/TTR-Launcher


text:
---
layout: post
title: 3 Basic Rules in C
---

Credits to ![Mark Davis](https://news.ycombinator.com/item?id=11561946)
  1. Functions should do 1 thing and only 1 thing.  The minute a function tries to do 2 or 3 things, or it goes over 50-60 lines (with a few exceptions around conditionals) it is trying to do to much.

  2. Check all parameters for validity before doing anything else in the function.

  3. Check all return values.

gha_language: SCSS


text:
---
# basics
title     		 : "4 of Pentacles"
token					 : 'coins-04'
card_type			 : '' # major, minor, court
layout				 : "tarot-card"
author    		 : 'me'
one_liner 		 : "Protection, conservation, preservation, safety"
alt_names			 : ['Power', 'Preservation']
images				 : ['/assets/images/tarot/rws/rw-coins-04.jpg']
keywords			 : ['protection', 'conservation', 'preservation', 'safety']
url						 : 'tarot/cards/coins-04'
aliases				 : []

# password: 'foolish journey'
dropbox				 : 'https://www.dropbox.com/sh/1j8d4s7p222zxcx/AAAVvmgVPto-D_mO-zFW3TFpa?dl=0'

meaning_light  : "Putting the long-term ahead of the short term. Practicing self-restraint. Saving for a rainy day. Fasting as part of a spiritual practice. Abstaining from sex as a way of honoring a spiritual tradition or personal promise. Putting money away into savings. Going to the gym."

meaning_shadow : "Being stingy. Refusing to spend money that needs to be spent. Withholding sex from your partner. Taking care of your own needs exclusively, without regard for the needs of others. Spending a dollar to save a penny. Failing to be a good manager of the blessings you’ve been given."

# more detail
correspondence_planet 			: "Sun"
correspondence_astrological : "Capricorn"
correspondence_affirmation  : "I use my resources wisely."
correspondence_story 				: "The main character must carefully manage a resource -- time, money, people -- in order to succeed."

advice_relationships 	 : "Seek balance in both physical and financial matters.   The healthier the relationship, the more generous the spirits of those involved."

advice_work 					 : "Conservation makes sense—and can keep an effort afloat, even in difficult times. Taken to extremes, though, short-sighted savings can alienate customers and shatter opportunities. Every short-cut and every opportunity to save has a cost. Be sure your approach is appropriate for the time."

advice_spirituality 	 : "A stingy spirit hampers growth. You simply cannot give more than the Universe can return! Let love, compassion, and interest in others flow freely. Share insights and personal stories. Open yourself to new experiences, new companions, and new points of view. Review your charitable contributions; is it possible to give more?"

advice_personal_growth : "A mature person elects to be responsible for both the body and the bottom line. Try to understand better how your actions impact both your health and your wealth. Rather than obsess on restriction, think in terms of your goal. With it in mind, what actions are appropriate?"

advice_fortune_telling : "A rainy day is coming—it’s time to save."

questions	: ["Sometimes we’re so intent on preserving what we have, we miss opportunities to have more. How might a blind dedication to protection be limiting your life?", "What factors determine how conservative or generous you are?", "What kinds of things must be preserved at all costs?", "When is greediness or stinginess a good trait to have? When might generosity work against you?"]

# referenced in the symbols.toml data file
symbols	  : ['4', 'coins', 'stingy-king', 'distant-village']

# metadata
suppress_topnav : true
related_cards 	: []

---

repository: YetAnotherFork/notes

repo_name: YetAnotherFork/notes


text:
FaizPay PHP Payment SDK
=======
SDK for working with FaizPay payment APIs.

Documentation
------------
Full documentation can be found at: https://documentation.faizpay.com

Requirements
------------
PHP 7.0.0 and later.

Installation
------------

You can install the bindings via Composer. Run the following command:

```bash
composer require faizpay/php-payment-sdk
```

To use the bindings, use Composer's autoload:

```php
require_once('vendor/autoload.php');
```

Dependencies
------------
-   [`json`](https://secure.php.net/manual/en/book.json.php)
-   [`mbstring`](https://secure.php.net/manual/en/book.mbstring.php) (Multibyte String)

Getting Started
------------
Simple new payment looks like:

```php
use FaizPay\PaymentSDK\Connection;
use FaizPay\PaymentSDK\Payment;

$connection = Connection::createConnection(
    $terminalId = '8afa74ae-6ef9-48bb-93b2-9fe8be53db50',
    $terminalSecret = '55d7d5ed-be22-4321-bb3f-aec8524d8be2'
);

$payment = Payment::createPayment(
    $connection,
    $orderId = 'AA-11',
    $amount = '10.00'
);

$payment->process();
```

__Webhook / Notification Handling__

```php
use FaizPay\PaymentSDK\Connection;
use FaizPay\PaymentSDK\NotificationHandler;

$connection = Connection::createConnection($terminalId, $terminalSecret);
$notificationHandler = NotificationHandler::createNotificationHandler($connection, $token = $_POST['token']);

// extract the order id
$orderId = $notificationHandler->getOrderID();

// fetch the order from your database
$data = findFromDatabase($orderId);

// if order is not found in system
if (checkIfEntryFound($data)) {
    echo "Invalid Token";
    die();
}

// validate if the requested payment matches with token
if (!$notificationHandler->validateAmount($data['amount'])) {
    echo "Invalid Token";
    die();
}

// all checks are passed - update the database to mark payment complete
updateDatabase($orderId, ['completed' => true]);
```

__Optional: Set User or Pre Selected Provider For New Payment__

```php
use FaizPay\PaymentSDK\Connection;
use FaizPay\PaymentSDK\Payment;
use FaizPay\PaymentSDK\Provider;
use FaizPay\PaymentSDK\User;

$connection = Connection::createConnection($terminalId, $terminalSecret);
$payment = Payment::createPayment(
    $connection,
    $orderId = 'AA-11',
    $amount = '10.00'
);

$user = User::createUser(
    $email =<EMAIL_ADDRESS>    $firstName = 'John',
    $lastName = 'Doe',
    $contactNumber = '07000845953'
);
$payment->setUser($user);

$provider = Provider::createProvider(
    $providerId = 'lloyds-bank',
    $sortCode = '123456',
    $accountNumber = '12345678'
);
$payment->setProvider($provider);
```

repository: fena-co/faizpay-php-payment-sdk

repo_name: fena-co/faizpay-php-payment-sdk


text:
# TV_Advertising_vs_Sales
Use the advertising dataset given in ISLR and analyse the relationship between 'TV advertising' and 'sales' using a simple linear regression model.


text:
# React Flux App

## React App build with flux

### How to install

* Clone repo with command `https://github.com/manishsaraan/react-flux-demo.git`.
* Move to app directory with command `cd react-flux-demo`.
* Install node modules with command `npm install`.
* Start app with gulp command `gulp`.
* Visit `http://localhost:8000` to view the app.

repository: manishsaraan/react-flux-demo

repo_name: manishsaraan/react-flux-demo


text:
# TimerInterceptorExe
Windows application to forward command line arguments to real application to measure the execution time

## Why?

I wrote this application because I needed a way to measure the time of all invocations of a windows application. This application generates a log file that contains
the measured runtimes for each call of the application.

## Usage

At the moment this is only usable for windows applications. To use this the following example is used. Say there is an application called `timeburner.exe`. Before
measurement there are several steps needed:

1. Rename `timeburner.exe` to `timeburner_real.exe`
2. Copy `TimeInterceptor.exe` in the same directory as `timeburner_real.exe`
3. Rename `TimeInterceptor.exe` to `timeburner.exe`

As soon as someone tries to exeute timeburner.exe the measurement exeutable gets executed and starts the __real__ process timeburner_real.exe and
measures the time in milliseconds. The result is stored in a log file called `timeburner.log`

Log file
```
2021/07/06 08:28:31	2974	ms	 Arguments
2021/07/06 08:28:34	1978	ms	 Arguments
2021/07/06 08:28:40	2904	ms	 Arguments
2021/07/06 08:28:46	1692	ms	 Arguments
2021/07/06 08:28:49	1646	ms	 Arguments
2021/07/06 08:28:49	1645	ms	 Arguments
2021/07/06 08:28:50	1668	ms	 Arguments
2021/07/06 08:28:55	1056	ms	 Arguments
2021/07/06 08:28:58	1628	ms	 Arguments
2021/07/06 08:28:58	1592	ms	 Arguments
2021/07/06 08:28:59	1427	ms	 Arguments
2021/07/06 08:29:01	1502	ms	 Arguments
2021/07/06 08:29:02	1686	ms	 Arguments
2021/07/06 08:29:05	1939	ms	 Arguments
```

repository: schoetbi/TimerInterceptorExe

repo_name: schoetbi/TimerInterceptorExe


text:
# Prerequisites

You need to fulfill some requirements before being able to start using the module:

- Powershell 5 is mandatory
- You need an EMC Unity array !

### Powershell 5

This module is only compatible with the 5th version of Powershell. The reason is that the module is built around classes taht are pnly available in Powershell 5.
Please consider to upgrade to the latest version in order to avoid some bugs.

### EMC Unity array

The module can manage all the EMC Unity portfolio (physical and virtual, hybrid and full-flash).
You'll need to have a valid account to connect to the array.

repository: equelin/Unity-Powershell

gha_language: PowerShell

repo_name: equelin/Unity-Powershell


text:
# VERSION 0.2.9

## Plugins

### Changes
* Fix rendering of page with "Tables managed by ..."

# VERSION 0.2.8

## Plugins

### Changes
* Streaming tab now shows the lag of stream consumption on time-based graph (last day/week/month)

# VERSION 0.2.7

## Base

### Fixes

* Fixed Firefox autorefresh issue on Table Descriptions and S3 Usage tabs
* Favicon added

# VERSION 0.2.6

## Plugins

### Changes
* New plugin added: Athena Usage [(documentation)](dashboard/plugins/athena_usage/README.md)

# VERSION 0.2.5

## Base

### Changes

* Plugin manifest is changed to include the `init` fnction
* New utils: `Timer` for external system call measurment and `sizeof_fmt` for formatting human readable object sizes [(source)](https://stackoverflow.com/a/1094933/7098262)

## Plugins

### Changes
* New plugin added: S3 Usage [(documentation)](dashboard/plugins/s3_usage/README.md)

### Fixes
* Auto-refresh disabled on Table descriptions tab

# VERSION 0.2.4

This is a version with tiny changes to layout and functionality as some bugfixes. It does not introduce new features.

## Base

#### Changes

* The labels on main site are no longer `button` type so the cursor does not suggest they are clickable
* The help button on top bar with breadcrumbs now reacts to `click` event rather than `hover` event
* Changed hover behaviour when clicking clear button in search field (also changed color on hover)

#### Fixes

* Fixed link to github documentation on help button

## Plugins

### Tables descriptions

#### Changes

* By default all table details are now hidden when opening the tab

repository: szczeles/discreETLy

repo_name: szczeles/discreETLy


text:
---
title: 'The Goon Illustration'
date: Fri, 26 Feb 2016 17:02:59 +0000
draft: false
image: /img/the-goon.jpg
---

I did an illustration of The Goon for an online art competition

![](/img/the-goon.jpg)

I'm still teaching myself how to use Procreate effectively, so this one had a pretty good amount of trial and error as I was figuring things out. I also used a [modified old dutch painting technique](http://frenden.com/post/126700246437/ive-been-using-a-flemish-dead-color-technique-for) Ray Frenden blogged about, and I like it a LOT. I also have a process video if anyone is interested.
{{< youtube yRV8GeZwAF4 >}}

repository: clayyount/hugo-comic

repo_name: clayyount/hugo-comic


text:
# C-Sharp SDK Changelog

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

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

## [Unreleased]

None

## [4.5.2] 2023-08-07

### Changed

- Added Unit Testing for C# SDK

## [4.5.1] 2023-07-26

### Changed

- Changed AddToConference CallId property type from boolean to string

## [4.5.0] 2023-06-07

### Added

- Number management feature for csharp sdk including methods, properties, and testing

## [4.4.0] 2023-04-27

### Changed

- Introduce application ID filtering for list calls method

## [4.3.0] 2023-04-03

### Added

- Introduce signing secret verification class (RequestVerifier) - https://docs.freeclimb.com/docs/validating-requests-from-freeclimb#how-to-verify-requests-manually

## [4.2.3] 2023-03-13

### Changed

- callStatus variable of CallResult is now processing and returning correct data back

## [4.2.2] 2023-02-21

### Changed

- OutDial PerCL command callingNumber and destination types fixed

## [4.2.1] 2023-02-14

### Changed

- Application Request model allows for null values

## [4.2.0] 2023-01-06

### Changed

- Enums have been implemented in the csharp sdk
- Updated README for enum implementation and testing

## [4.1.1] 2022-12-01

### Changed

- Changed `QueueResult` property `currentSize` from string to int
- Renamed `QueueResult` property `averageWaitTime` to `averageQueueRemovalTime`

## [4.1.0] 2022-11-02

### Changed

- Account ID is no longer needed for every api request/model creation
- Updated README for accountId and apiKey setting

## [4.0.2] 2022-11-01

### Added

- Add `offnet` property in IncomingNumber resource
- Add `offnet` query parameter for listIncomingNumbers

## [4.0.1] 2022-08-19

### Added

- Add `Park` PerCL command
- Add `Unpark` PerCL command

## [3.0.5] 2021-12-6

### Changed

- Replaced Auth Token -> API Key

## [3.0.4] 2021-11-2

### Added

- Added `applicationId`, `country`, `hasApplication`, `region`, `smsEnabled`, `voiceEnabled` optional filters to `IncomingPhoneNumbersSearchFilters` interface
- Added `country`, `region`, `smsEnabled`, `voiceEnabled` optional filters to `AvailablePhoneNumbersSearchFilters` interface

## [3.0.3] 2021-11-4

### Added

- 1 new param `active` for CallSearchFilters

## [3.0.1] 2021-08-03

### Added

- 4 new properties for GetSpeechActionCallback

## [3.0.0] - 2021-05-06

### Added

- Add new `Utils` file
- Add API to verify a signature

## [2.1.2] - 2020-12-16

### Added

- Add `privacyMode` option to RecordUtterance PerCL command

## [2.1.1] - 2020-12-16

### Added

- Additional message statuses for TFN functionality

## [1.2.1] - 2020-10-14

### Added

- Add `Reject` PerCL command
- Add `privacyMode` option

### Changed

- Rename `setPersyUrl` to `setUrl`

### Fixed

- Properly handle empty response bodies
- Other Minor bug fixes

## [1.2] - 2019-10-16

### Changed

- Persephony is now FreeClimb
- Code cleanup
- Documentation Updates
- Test Update

### Fixed

- Update common response handler to not use bodu twice

## [1.1.1] - 2019-06-27

### Changed

- Minor updates to docs and code cleanup

## [1.1.0] - 2019-06-07

### Pull Requests

- Merge pull request [#22](https://gitlab.vailsys.com/vail-cloud-services/fc-boilerplates/javascript-sdk/issues/22) from PersephonyAPI/maintenance

## [1.0.0] - 2019-06-04

### Changed

- Change default api target

## [0.1.0] - 2019-05-30

### Added

- `PlayEarlyMedia` PerCL Command

## [0.0.2] - 2018-11-29

### Remove

- Remove `callConnectUrl` and `statusCallbackUrl` from api.calls#create

## [0.0.1] - 2018-11-13

### Added

- PerCL Support
- FreeClimb API Support
- README, LICENSE
- docs

### Changed

- Initial Release

[unreleased]: https://github.com/FreeClimbAPI/csharp-sdk/compare/v1.0.1...HEAD

repository: FreeClimbAPI/csharp-sdk

gha_language: C#

repo_name: FreeClimbAPI/csharp-sdk


text:
hmd-editor is A Hybrid Markdown editor
=====================================

hmd-editor is A hybrid Markdown editor which can easily be used on your own site where you use textarea's now.
The editor has 3 modes:

  1.   Normal textarea, only when the user has no javascript
  2.   Wymiwyg (What you mean is what you get) Their is a list of buttons, but the textarea has Markdown in it, much like whay you get on Wikipedia.
  3.   Wysiwyg (Whay you see is whay you get) Same list of buttons, but now with rendering inside the textarea, much like TinyMCE.

One can easily switch between 2 and 3.

Support
-----------
We aim for

  *   Firefox 3.0+
  *   Webkit based browsers
  *   Opera 9+
*   IE 7+

repository: nathansamson/hmd-editor

repo_name: nathansamson/hmd-editor


text:
# Fungeoneering!

This is is powered by [Jekyll](https://github.com/jekyll/jekyll)

## Quick Start

All changes committed to this repository will automatically compile and be pushed to a live server thanks to [Github Pages](https://pages.github.com/). Feel free to click around inside of this repository and make any edits you'd like. If you don't have permission, then make a Pull Request and I'll take a look for you!

### Publishing new posts

Posts live inside of `_posts/{CATEGORY_NAME}/`. To create a new post, add a new file to your desired category using the name structure of `YYYY-MM-DD-Post-Name.md`, then inside the post add the folder name as a category in the post's meta-data.

For example, if you wanted to make a new "update", add a new file to `_posts/posts/` named `2017-03-21-New-Update.md` then add the following meta-information at the top of the post before beginning to write markdown:

![Category Example](http://i.imgur.com/mAsWDVu.png "Category Example")

## Local Development

1. Install Jekyll and plug-ins in one fell swoop. `gem install github-pages` This mirrors the plug-ins used by GitHub Pages on your local machine including Jekyll, Sass, etc.
	a. If you run into an error (most like something like `jekyll-sitemap is missing!` then add that gem to your local environment by typing `gem install missing-gem-name-here`).
2. Clone down your fork.
3. Serve the site and watch for markup/sass changes `jekyll serve`.
4. View your website at `http://<IP_ADDRESS>:4000/`.
5. Commit any changes and push everything to the master branch of your GitHub user repository. GitHub Pages will then rebuild and serve your website.


text:
# Thor FoodCritic

FoodCritic Thor tasks for your Cookbook projects

# Installation

    gem install thor-foodcritic

# Usage

To add the FoodCritic tasks to any Thorfile just require this gem

    require 'thor/foodcritic'

And then get a list of your thor tasks

    $ thor list

    foodcritic
    ----------
    thor foodcritic:lint  # Run a lint test against the Cookbook in your current working directory.

Run the lint task to get a review

    $ thor foodcritic:lint

    FC002: Avoid string interpolation where not required: ...
    FC003: Check whether you are running with chef server before using server-specific features: ...
    FC011: Missing README in markdown format: ...

If any epic failure tags are specified with the `-f` flag, Thor will exit with a status code of `100`.

# License and Author

Author:: Jamie Winsor<EMAIL_ADDRESS>
Copyright 2012, Jamie Winsor

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.

repository: woohgit/thor-foodcritic

repo_name: woohgit/thor-foodcritic


text:
# ArcBlock Engineering Weekly Digest (07-08 ~ 07-15)

> Generated on 2018-07-18 06:58

## Summary

* Pushed **73** commits, which are all merge commits
* Added **308187** lines of code, and deleted **5194**
* Created **49** pull requests, merged **47**
* Resolved and closed **49** issues
* Crafted and deployed **30** internal releases

## Repo Details

| Repo Name                       | Commits | Code Changes  | Pull Requests            | Issues    |
| ------------------------------- | ------- | ------------- | ------------------------ | --------- |
| ArcBlock/arc-ocap-service       | 8       | +298143, -855 | 13 (13 merged, 0 active) | closed 13 |
| ArcBlock/arc-ocap-playground    | 7       | +1224, -357   | 6 (6 merged, 0 active)   | closed 8  |
| ArcBlock/arcblock-android-sdk   | 18      | +3415, -1757  | 6 (6 merged, 0 active)   | closed 6  |
| ArcBlock/arcli                  | 3       | +29, -4       | 5 (3 merged, 2 active)   | closed 3  |
| ArcBlock/arcblock-ios-sdk       | 22      | +2515, -1712  | 5 (5 merged, 0 active)   | closed 5  |
| ArcBlock/arc-infra-ansible      | 3       | +37, -17      | 4 (4 merged, 0 active)   | closed 4  |
| ArcBlock/arc-data               | 3       | +483, -107    | 3 (3 merged, 0 active)   | closed 3  |
| ArcBlock/arc-infra-staging      | 3       | +69, -28      | 2 (2 merged, 0 active)   | closed 2  |
| ArcBlock/arc-api-service        | 3       | +1640, -109   | 2 (2 merged, 0 active)   | closed 2  |
| ArcBlock/Whitepaper             | 1       | +472, -240    | 1 (1 merged, 0 active)   | closed 1  |
| ArcBlock/arc-infra-modules      | 1       | +152, -1      | 1 (1 merged, 0 active)   | closed 1  |
| ArcBlock/arcblock_website_theme | 1       | +8, -7        | 1 (1 merged, 0 active)   | closed 1  |

## Activity Details

### Merged Pull Requests

- [arc-ocap-service] Enable more fields in queries: miner, reward, medianTime and so on.(#55) 07-14
- [arc-ocap-service] Feature/ch530/fix account query issue(#54) 07-12
- [arc-ocap-service] fix from_height, from_index query order issue(#53) 07-10
- [arc-ocap-service] use SCALAR type for datetime(#52) 07-10
- [arc-ocap-service] fix fees_overweight(#51) 07-09
- [arc-ocap-service] fix type issue and lint errors(#50) 07-09
- [arc-ocap-service] use rpm2cpio(#49) 07-09
- [arc-ocap-service] starting from 0.18.0, github release shall be usable(#48) 07-09
- [arc-ocap-service] fix concache name(#47) 07-08
- [arc-ocap-service] fix goldorin version(#46) 07-08
- [arc-ocap-service] send query metrics to datadog(#45) 07-08
- [arc-ocap-service] fix input/output issue(#44) 07-08
- [arc-ocap-service] use goldorin for all queries.(#43) 07-08
- [arc-ocap-playground] fix browser tab frozen bug(#47) 07-11
- [arc-ocap-playground] disable raven error reporting temporaly for debugging(#46) 07-11
- [arc-ocap-playground] Improve chart view interactity and sizing(#45) 07-11
- [arc-ocap-playground] visualize transactions using sankey diagram(#44) 07-10
- [arc-ocap-playground] bump version(#43) 07-09
- [arc-ocap-playground] improve tableview/tooltip basic block list visual(#41) 07-09
- [arcblock-android-sdk] query support page.(#16) 07-12
- [arcblock-android-sdk] fix make doc breaks.(#15) 07-12
- [arcblock-android-sdk] add more page for android sdk demo.(#14) 07-12
- [arcblock-android-sdk] add coverage report for android.(#13) 07-09
- [arcblock-android-sdk] add ui test for android.(#12) 07-09
- [arcblock-android-sdk] enable ssl for android https request.(#11) 07-09
- [arcli] added prompt to arcli deploy:service(#33) 07-10
- [arcli] added basic set-up to bootstrap(#32) 07-10
- [arcli] fixed special characters issue in start:story(#31) 07-10
- [arcblock-ios-sdk] more pagination support in demo(#17) 07-13
- [arcblock-ios-sdk] fix paged data source bugs(#16) 07-12
- [arcblock-ios-sdk] add pagination support(#15) 07-12
- [arcblock-ios-sdk] add block detail and transaction detail page to demo(#14) 07-11
- [arcblock-ios-sdk] migrate data sources to depend on ABSDKClient(#13) 07-09
- [arc-infra-ansible] use when rather than run_once(#41) 07-10
- [arc-infra-ansible] create sentry release(#40) 07-09
- [arc-infra-ansible] do not build from source, use the github release assets after v0.18.1 for ocap_service(#39) 07-09
- [arc-infra-ansible] support pre_build hook(#38) 07-08
- [arc-data] Fix inconsistency in data examples(#5) 07-14
- [arc-data] add more events(#4) 07-10
- [arc-data] Data event definition and examples(#3) 07-10
- [arc-infra-staging] use correct airflow ami(#27) 07-13
- [arc-infra-staging] support airflow(#26) 07-13
- [arc-api-service] support auth api(#2) 07-14
- [arc-api-service] design event.yml(#1) 07-14
- [Whitepaper] content-chinese in latest(#14) 07-11
- [arc-infra-modules] provision airflow service(#28) 07-13
- [arcblock_website_theme] single event template added(#88) 07-11

### Closed Issues

- [arc-ocap-service] Enable more fields in queries: miner, reward, medianTime and so on.(#55) 07-14
- [arc-ocap-service] Feature/ch530/fix account query issue(#54) 07-12
- [arc-ocap-service] fix from_height, from_index query order issue(#53) 07-10
- [arc-ocap-service] use SCALAR type for datetime(#52) 07-10
- [arc-ocap-service] fix fees_overweight(#51) 07-09
- [arc-ocap-service] fix type issue and lint errors(#50) 07-09
- [arc-ocap-service] use rpm2cpio(#49) 07-09
- [arc-ocap-service] starting from 0.18.0, github release shall be usable(#48) 07-09
- [arc-ocap-service] fix concache name(#47) 07-08
- [arc-ocap-service] fix goldorin version(#46) 07-08
- [arc-ocap-service] send query metrics to datadog(#45) 07-08
- [arc-ocap-service] fix input/output issue(#44) 07-08
- [arc-ocap-service] use goldorin for all queries.(#43) 07-08
- [arc-ocap-playground] fix browser tab frozen bug(#47) 07-11
- [arc-ocap-playground] disable raven error reporting temporaly for debugging(#46) 07-11
- [arc-ocap-playground] Improve chart view interactity and sizing(#45) 07-11
- [arc-ocap-playground] visualize transactions using sankey diagram(#44) 07-10
- [arc-ocap-playground] bump version(#43) 07-09
- [arc-ocap-playground] Revert "improve tableview/tooltip basic block list visual"(#42) 07-09
- [arc-ocap-playground] improve tableview/tooltip basic block list visual(#41) 07-09
- [arc-ocap-playground] wrong input will cause Javascript error in JSON area(#40) 07-10
- [arcblock-android-sdk] query support page.(#16) 07-12
- [arcblock-android-sdk] fix make doc breaks.(#15) 07-12
- [arcblock-android-sdk] add more page for android sdk demo.(#14) 07-12
- [arcblock-android-sdk] add coverage report for android.(#13) 07-09
- [arcblock-android-sdk] add ui test for android.(#12) 07-09
- [arcblock-android-sdk] enable ssl for android https request.(#11) 07-09
- [arcli] added prompt to arcli deploy:service(#33) 07-10
- [arcli] added basic set-up to bootstrap(#32) 07-10
- [arcli] fixed special characters issue in start:story(#31) 07-10
- [arcblock-ios-sdk] more pagination support in demo(#17) 07-13
- [arcblock-ios-sdk] fix paged data source bugs(#16) 07-12
- [arcblock-ios-sdk] add pagination support(#15) 07-12
- [arcblock-ios-sdk] add block detail and transaction detail page to demo(#14) 07-11
- [arcblock-ios-sdk] migrate data sources to depend on ABSDKClient(#13) 07-09
- [arc-infra-ansible] use when rather than run_once(#41) 07-10
- [arc-infra-ansible] create sentry release(#40) 07-09
- [arc-infra-ansible] do not build from source, use the github release assets after v0.18.1 for ocap_service(#39) 07-09
- [arc-infra-ansible] support pre_build hook(#38) 07-08
- [arc-data] Fix inconsistency in data examples(#5) 07-14
- [arc-data] add more events(#4) 07-10
- [arc-data] Data event definition and examples(#3) 07-10
- [arc-infra-staging] use correct airflow ami(#27) 07-13
- [arc-infra-staging] support airflow(#26) 07-13
- [arc-api-service] support auth api(#2) 07-14
- [arc-api-service] design event.yml(#1) 07-14
- [Whitepaper] content-chinese in latest(#14) 07-11
- [arc-infra-modules] provision airflow service(#28) 07-13
- [arcblock_website_theme] single event template added(#88) 07-11


text:
---
title: K19 Proposals
date: 2018-12-02
layout: post
---
Below are my K19 proposal's to speak.  I'd like to develop these points into posts at some point so I have an embedded survey below the details of these talks

   Create your own user feedback survey

[Results](https://www.surveymonkey.com/results/SM-MR75LCJ9V/)

# Integrate repeatably faster by following these steps

## Session Abstract

### Introduction and Problem Statement
My company is a company like many others, with data in a lot of places.  In this session, we'll look at how having a consistent integration policy can help make development of those integrations easier.

### Approach and Results
In this session, I will share how we've;

 - Improved device tracking (azure intune) for compliance, and security reasons.
 - Solarwinds import to improve discovery
 - Crashplan import to drive compliance of legalholds and status in a central system

### Attendees will learn how to:
 - Make a import set from a script
 - Make import set rows from a script
 - Run many transform maps against a import set from a script

## What is the objective of your session?

  To show, how and why using some consistent practices around integrations can save you a lot of time and trouble.

## What are the three key takeaways you will want your audience to leave with?

  1. You can follow a common import pattern to drive most integrations to simplify development and further customizations
  2. Rest API integrations that Servicenow has to ask for data from can follow this pattern
  3. After you do it once or twice you can easily do it for other integrations

# Open Sourcing ATF tests with Github and hacktoberfest

## Session Abstract

### Introduction and Problem Statement
My company is a company like many others, we want to upgrade quickly but due to testing are slowed sometimes. In this session, we'll talk about how I started a repo to open source OOB Test Suites to give us a baseline for future upgrades.

### Approach and Results
In this session, I will share how I started to maintain a repo for test suites in Servicnow. I found I was participating in my second #hacktoberfest and a thought occured. How can I get other people to build tests so I don't have to? And it was simple. Make a repo, share it and spread the word.

## Attendees will learn how to:
- Contribute to an open source project for scoped applications
- Avoid nuiances for servicenow's repos branches
- Accept and Reject Pull Requests without breaking and losing data.
- Make a project site for the project with Netlify

## What is the objective of your session?
To show, how and why open sourcing some scoped applications can save you time.

## What are the three key takeaways you will want your audience to leave with?
1. You can open source scoped applications to share with the community work managed on git
2. Doing so can get other to contribute to help drive the progression of the project
3. It can help everyone, so, try to share in the future.

# Learn by supporting or starting your own local Developer Meetup

## Session Abstract

### Introduction and Problem Statement

Two years ago I started a Developer Meetup for servicenow talent to do ad-hoc labs and have happy hours.  I didn't want what happened to the SNUG's happening to this event so I volunteered.

### Approach and Results

Running the event has been a ride and I would do it all over again.  In this session I'll go over what it takes to run these events.

## Attendees will learn how to:
 - Identify how often and about what the meetup should meet about.
 - Finding content to use for labs and / or for happy hour discussions.
 - Finding hosting locations in your area.

## What is the objective of your session?
  To share what it takes to run developer meetups to give attendees information to form their own OR assist their local meetup.

## What are the three key takeaways you will want your audience to leave with?

  1.  You don't have to host or run the event to help.  There are lot's of opportunity to help out.
  2.  Attend it, it's smaller and less formal then your servicenow user groups.
  3.  Provide feedback, it's always useful.

repository: pulliam/blog

repo_name: pulliam/blog


text:
# Employee-Tracker

   ## Description

  This Project is a Content Managment System using node.js, mysql database, and the inquirer node package. You are able to create, view, and update data.

  here is a link to my project.

  * [Link to the Project](https://github.com/0Blockaye0/Employee-Tracker)

  ## Table of Contents

  * [Installation](#installation)
  * [Usage](#usage)
  * [Credits](#credits)
  * [License](#license)
  * [features](#features)
  * [tests](#tests)
  * [contributing](#contributing)
  * [questions](#questions)

  ## Installation

  To get all set up, open the terminal and run 'npm insatll' to install the dependencies. Be sure to create a .env file (for more info please see the dotenv documentation) in the root directory with your mysql login credentials and include it in your .gitignore file. You will then want to login to your mysql using the terminal and run the command 'SOURCE db/db.sql;' to set up the database, then run 'SOURCE db/schema.sql;' to define the tables. If you woould like mock entries, run the 'SOURCE db/seeds.sql' command to run the seeds file. 'quit' mysql and enter 'npm start' to begin the application.

  ## Usage

![/assets/images/Employee_TrackerScreenShot.png](/assets/images/Employee_TrackerScreenShot.png)

VIDEO WALKTHROUGH:

https://drive.google.com/file/d/1jYAfd1ifTtHCz9rO3f-VgQPjXw80-ldU/view

  ## Credits

  No Collaborators

  ## License

  * MIT
  *

  ## Badges

  ![https://img.shields.io/github/languages/top/0Blockaye0/Employee-Tracker?style=flat-square](https://img.shields.io/github/languages/top/0Blockaye0/Employee-Tracker?style=flat-square)
  ![https://img.shields.io/bitbucket/issues/0Blockaye0/Employee-Tracker?style=flat-square](https://img.shields.io/bitbucket/issues/0Blockaye0/Employee-Tracker?style=flat-square)

  ## Features

  ## Tests

  ## Contributing

  ## Questions

  If you have any questions about the app,
  please feel free to contact me via email,
  or checkout my Github account for more
  great projects!

  *<EMAIL_ADDRESS>  * [Github](https://github.com/0Blockaye0)


text:
## docker autoheal

Monitors and restarts unhealthy docker containers. Built with docker-compose in mind.

NOTE: Requires implemented health checks on your containers. [Docker Docs - HEALTHCHECK](https://docs.docker.com/engine/reference/builder/#healthcheck)

### Usage
#### docker

```sh
docker run -d \
    --name autoheal \
    --restart=always \
    -e COMPOSE_MODE=true \
    -e AUTOHEAL_LABEL=PHOENIX \
    -e AUTOHEAL_LABEL_VALUE=true \
    -e AUTOHEAL_DELAY=0 \
    -e AUTOHEAL_INTERVAL=5 \
    -e RPC_TIMEOUT=30 \
    -e STOP_TIMEOUT=10 \
    -v /var/run/docker.sock:/var/run/docker.sock \
    cryi/autoheal
```

#### docker-compose

```yml
  autoheal:
    restart: always
    image: cryi/autoheal
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - COMPOSE_MODE=true
      - AUTOHEAL_LABEL=PHOENIX
      - AUTOHEAL_LABEL_VALUE=true
      - AUTOHEAL_DELAY=0
      - AUTOHEAL_INTERVAL=5
      - RPC_TIMEOUT=30
      - STOP_TIMEOUT=10
```

### Configuration

Configuration is possible through env variables. Container supports these env variables:

```conf
# values defined here are default ones
AUTOHEAL_DELAY=0                    # Sets time to wait before first check for unhealthy containers
AUTOHEAL_INTERVAL=5                 # Interval between checks
AUTOHEAL_LABEL=autoheal             # Label used to filter out containers (only containers with this label are going to be auto healed)
AUTOHEAL_LABEL_VALUE=true           # Required value of AUTOHEAL_LABEL value to perform auto heal

DOCKER_SOCKET=/var/run/docker.sock  # Path to docker socket
RPC_TIMEOUT=30                      # Timeout for call to docker daemon
STOP_TIMEOUT=10                     # Timeout for container to stop on restart (useful when you need more time for container to finish shutdown)
COMPOSE_MODE=false                  # If auto heals containers with matching compose project name as this container carries
                                    # COMPOSE_MODE + AUTOHEAL_LABEL can be combined to auto heal specific containers in compose project

# shims to provide compatibility with willfarrell/autoheal
# shims are always overwritten byt above variables if defined
AUTOHEAL_CONTAINER_LABEL=autoheal   # Same as AUTOHEAL_LABEL
AUTOHEAL_START_PERIOD=0             # Same as AUTOHEAL_DELAY
DOCKER_SOCK=/var/run/docker.sock    # Same as DOCKER_SOCKET
```

### Testing

```sh
docker build -t autoheal .

docker run -d \
    -e COMPOSE_MODE=true \
    -e AUTOHEAL_LABEL=PHOENIX \
    -e AUTOHEAL_LABEL_VALUE=true \
    -e AUTOHEAL_DELAY=0 \
    -e AUTOHEAL_INTERVAL=5 \
    -e RPC_TIMEOUT=30 \
    -e STOP_TIMEOUT=10 \
    -v /var/run/docker.sock:/var/run/docker.sock \
    autoheal
```

repository: cryi/docker-autoheal

repo_name: cryi/docker-autoheal


text:
**wikibugs** is a project on Wikimedia Tool Labs which took other an old Perl based script to relay Bugzilla notifications to IRC.

The bot is currently alpha stage, being tested in a few IRC channels on freenode.net.

The entire project is Python 3.4 / asyncio based.

### Steps from change to IRC ###

1. User makes a change on [https://bugzilla.wikimedia.org/](Wikimedia Bugzilla)
2. Bugzilla sends an e-mail to the list<EMAIL_ADDRESS>3. Tools mail server receives the e-mail. `.forward` pipes it to [/toredis.py](toredis.py)
4. toredis.py sends the e-mail to Redis ('PUBLISH')

The Redis step is useful because the mail and exec hosts are not necessarily the
same. Making them find eachother is also not completely trivial.

5. The IRC bot listens to events on Redis ('SUBSCRIBE')
6. The IRC bot receives the new e-mail
7. `bzparser.py` parses the e-mail into a dict
8. Asynchronously, `bzparser.py` retrieves real names for e-mail addresses.
   If no response is received within 30 seconds, the request is stopped. (`pywikibugs.parse_email.fixup_future`)
9. For each channel, `pywikibugs.send_messages` builds a message (via build_message) and dispatches it to the IRC channel

### Deploying ###

    cd src/pywikibugs && git pull && cd ~ && ./start.bash

This will kill the current SGE job and start a new one.

Please log this using ``!log tools.wikibugs <message>`` in #wikimedia-labs.

#### Emergency fixes ####
If you need to make any emergency adjustments, please remember to git commit & git review those.
git review is set up to ask for username and password -- please use your shell username and
the password at https://gerrit.wikimedia.org/r/#/settings/http-password to submit the change to
gerrit. Don't forget to +2/+2 & merge it!

### Adding a new channel ###

Adapt the `pywikibugs.channels` dict. The format is:

    <channel name> => (filter function, parameters for build_message)

The filter function gets the bug change dict passed as parameter.

e.g.

    {"#pywikipediabot": (lambda x: x.get("X-Bugzilla-Product", None) == "Pywikibot", {})}

will filter all Pywikibot bugs, without sending any special parameters to build_message.

    {"#somechannel": (lambda x: True, {'hide_product': True})}

would send all bugs to #somechannel, but hides the product names.

repository: wikimedia/labs-tools-pywikibugs

repo_name: wikimedia/labs-tools-pywikibugs


text:
# mock-20

Mock community generated by Gohl et al., composed of even amounts of purified genomic DNA from 20 bacterial strains.

Listed in NCBI SRA as 16S rRNA gene V4 region sequencing of HM_276D sample: Sample HM_276D(SRR3163887).

Source: [BEI](https://www.beiresources.org/Catalog/otherProducts/HM-276D.aspx).

EMP(Taq), even mock community in original publication.

# Known Issues / Notes

No barcodes. Treat this dataset as already demultiplexed, but not quality controlled.

repository: beiko-lab/mockrobiota

repo_name: beiko-lab/mockrobiota


text:
Flask-WTF-Polyglot Changelog
============================

Release 0.4 (Mar 13, 2023)
--------------------------

  * Make Flask-WTF-Polyglot compatible with WTForms 3.x

  * Drop support for outdated Python versions

  * Use Markdown for README and CHANGELOG

  * Use Poetry instead of Setuptools

Release 0.3 (Nov 12, 2017)
--------------------------

  * Export WTF-Polyglot’s SubmitField for convenience

Release 0.2 (Jun 6, 2017)
-------------------------

  * Use `flask_wtf.FlaskForm` as base form class instead of the deprecated
    `flask_wtf.Form`

Release 0.1 (Mar 31, 2015)
--------------------------

  * Initial release

gha_language: Python

gha_license_id: NOASSERTION


text:
Getting started
===============

##### Training

```python
from tensorforce.agents import Agent
from tensorforce.environments import Environment

# Setup environment
# (Tensorforce or custom implementation, ideally using the Environment interface)
environment = Environment.create(environment='environment.json')

# Create and initialize agent
agent = Agent.create(agent='agent.json', environment=environment)
agent.initialize()

# Reset agent and environment at the beginning of a new episode
agent.reset()
states = environment.reset()
terminal = False

# Agent-environment interaction training loop
while not terminal:
    actions = agent.act(states=states)
    states, terminal, reward = environment.execute(actions=actions)
    agent.observe(terminal=terminal, reward=reward)

# Close agent and environment
agent.close()
environment.close()
```

##### Evaluation / application

```python
# Agent-environment interaction evaluation loop
while not terminal:
    actions = agent.act(states=states, evaluation=True)
    states, terminal, reward = environment.execute(actions=actions)
```

##### Runner utility

```python
from tensorforce.execution import Runner

# Tensorforce runner utility
runner = Runner(agent='agent.json', environment='environment.json')

# Run training
runner.run(num_episodes=500)

# Close runner
runner.close()
```

repository: codeninja/tensorforce

repo_name: codeninja/tensorforce