text:
EventDispatcher
===============

This module is old, crappy and unmaintained, so please don't use it :)
======================================================================

Easily attach listeners to ZF2's MVC events.

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

1. Add ```"mikemix/eventdispatcher": "1.*"``` to your composer.json file
2. Run ```php composer.phar self-update && php composer.phar update```
3. Add module ```EventDispatcher``` to your application modules in the ```application.config.php``` file
4. Copy file ```vendor/mikemix/eventdispatcher/config/event_dispatcher.global.php.dist``` to the ```config/autoload/event_dispatcher.global.php```

Congratulations. You are done and the library has been successfully installed (hope so). To subscribe to a mvc event, it is as simple as adding a name of your listener service name to the ```event_dispatcher.global.php``` file. The name must be recognized by the service manager.

Example configuration
---------------------

File ```config/autoload/event_dispatcher.config.php```

```php
return array(
    'event_dispatcher' => array(
        'dispatch' => array(
            // dispatch listeners here
            'myDispatchListener'       # <----------------- NOTICE
        ),
        'dispatch.error' => array(
            // dispatch.error listeners here
        ),
        'finish' => array(
            // finish listeners here
        ),
        'render' => array(
            // render listeners here
        ),
        'render.error' => array(
            // render.error listeners here
        ),
        'route' => array(
            // route listeners here
        ),
    ),
);
```

File ```module/Application/config/module.config.php```

```php
// ...
'service_manager' => array(
    // ...

    'invokables' => array(
        'myDispatchListener' => 'Application\Listener\DispatchListener',
    ),
),
```

File ```module/Application/src/Application/Listener/DispatchListener.php```. For your convienience and type hinting in the editor of your choice, you can make listener implement the ListenerInterface interface, but you are not obliged to. Just make sure an ```onEvent()``` method is callable.

```php
<?php
namespace Application\Listener;

use EventDispatcher\Listener\ListenerInterface;

class DispatchListener implements ListenerInterface
{
    public function onEvent(EventInterface $event)
    {
        printf('Well hello, a %s event was called', $event->getName());
    }
}
```

Valuable resources about ZF2 events on the net
----------------------------------------------

   * http://framework.zend.com/manual/2.3/en/modules/zend.mvc.mvc-event.html
   * http://www.michaelgallego.fr/blog/2013/05/12/understanding-the-zend-framework-2-event-manager/
   * http://mwop.net/blog/266-Using-the-ZF2-EventManager.html

repository: mikemix/eventdispatcher

repo_name: mikemix/eventdispatcher


text:
### [Check if There is a Valid Path in a Grid](https://leetcode.com/problems/check-if-there-is-a-valid-path-in-a-grid)

You are given an m x n grid. Each cell of grid represents a street. The street of grid[i][j] can be:

1 which means a street connecting the left cell and the right cell.

2 which means a street connecting the upper cell and the lower cell.

3 which means a street connecting the left cell and the lower cell.

4 which means a street connecting the right cell and the lower cell.

5 which means a street connecting the left cell and the upper cell.

6 which means a street connecting the right cell and the upper cell.

You will initially start at the street of the upper-left cell (0, 0). A valid path in the grid is a path that starts from the upper left cell (0, 0) and ends at the bottom-right cell (m - 1, n - 1). The path should only follow the streets.

Notice that you are not allowed to change any street.

Return true if there is a valid path in the grid or false otherwise.

Example 1:

Input: grid = [[2,4,3],[6,5,2]]
Output: true
Explanation: As shown you can start at cell (0, 0) and visit all the cells of the grid to reach (m - 1, n - 1).

Example 2:

Input: grid = [[1,2,1],[1,2,1]]
Output: false
Explanation: As shown you the street at cell (0, 0) is not connected with any street of any other cell and you will get stuck at cell (0, 0)

Example 3:

Input: grid = [[1,1,2]]
Output: false
Explanation: You will get stuck at cell (0, 1) and you cannot reach cell (0, 2).

Constraints:

m == grid.length

n == grid[i].length

1 <= m, n <= 300

1 <= grid[i][j] <= 6

license: MIT

url: https://raw.githubusercontent.com/6leetcode/6leetcode/0c0973c634c881bd874bad5a0526b91a2d83f1a0/questions/Algorithms/1391. Check if There is a Valid Path in a Grid/README.md

branch_name: refs/heads/main

extension: md

gha_language: C

gha_license_id: MIT

license_type: permissive


text:
r-package-utilization-rate
==========================

This is going to be a package for the evaluation of utilization rates.

The basic premis of this package will be to evaluate how changes to the utilization rate of an indpendant variable effect the value of a dependent variable over time. At the end of each period the significance of the change will be evaluated.

### Inputs

1. Source of Data
  * This will be columnar data including at least: date, independant variable, dependant variable
  * An optional column will allow grouping of data
2. Period of oberservation
  * The period of observation will determine how the time is divided
  * Initial options will be day, week, month
3. P Value
  * Default value will be 0.05
  * There will be an option to have actual P values reported

#### During exection of the routine the following inputs will be requested

1. Select Baseline from list of all values in indepent variable column
2. Select Variable of Interest from list of all values in indepent variable column
3. Utilization as % of all data or baseline only
4. Check significance of change against original baseline period or current period
5. Generate table or graph
  * if graph, select type

### Outputs
There will be two main output categories: tables and graphs

1. Tables
  1. Summary of Entire Dataset
  2. Summary of Group Data
  3. Periodic Changes in Dependent Variable
    * P-Values marked
2. Graphs
  1. % Utilization and Dependent Variable by Period
    * P-Values marked
  2.  % Utilization or Dependent Variable and Groups by Period
    * P-Values marked

```
Not sure where to put these ideas:
Calculation of number of days to reach significance
Best to Worst perfomers on siginicance of utilization
```

##### Sample dataset summary
This is a summary of the sample dataset to feed into the routine to test how it works.

| Sites | Number of Days | Independent Vars | Dependent Vars | Notes|
|----|----|----|----|----|
|Miami |180 days| Home / Restarant | Cost of 3 meals per day| No eating out in the first 30 days |
|Charleston | 270 days | Home / Resturant / Farm Coop| Cost of 3 meals per day| Restaurant at 30 days, Farms at 60 |

branch_name: refs/heads/master


text:
---
layout: post
title:  "CLI Gem Project"
date:   2017-09-25 04:03:31 +0000
---

I have now finished my first project on my path of learning to code; and I have to say it was a valuable experience to have.  Looking back the main problem I had will on this project was coming up with an idea for what I wanted my program to do. For me this turned out to be making a program about something I have been hearing a lot about lately. With the recent hurricanes hitting Texas and Florida there has been a focus on the weather. Which is how I decided to make my gem about weather. Once I had decided to make a gem about the weather the rest of the set up seemed straight forward. Every time I need to check the weather I go to weather.com; so that was the first site I looked at scraping and it turned out to be perfect. Next up was to start coding.
	Setting up the gem was easy thanks to the CLi Data Gem Walkthrough video. I would highly recommend watching at least the part of the video that shows exactly how to start a gem, where to require your files and how to run your program from the bin folder. I’m sure that part alone saved me a an hours or two of searching around on google.
After setting up the basic skeleton of a gem I started programming the CLI and almost immediately ran into the hardest part of my entire program. Which was to ask for someone’s zip code. The weather_finder gem([GitHub](hhttps://github.com/jstooley/weather_finder.gitttp://),[RubyGems](https://rubygems.org/gems/weather_finderhttp://)) I programed uses a zip code to find the weather in the US, but if an invalid US zip code is given the program would crash. To solve the problem of getting an invalid zip code I decided to get a text file of all valid US zip codes and use it to check the zip code that is entered by the user. I first used the code below to read the file.
```
def zip_code?(zip_code)
    valid = false
    File.open("lib/weather_finder/all_usa_zip.txt").each do |zip| #read from file to test valid zip
      if zip.to_i == zip_code.to_i
        valid = true
      end
    end
    valid
  end
```
Notice that in the code above I have hard coded the path to the text file. When I tried to release this program as a gem this became a problem. When run as a gem a hard coded path will not find the file. This caused me a lot of confusion at first and because I had no idea why my gem would not work. I did some searching and found out that you need to use a relative path. How to do this is represented in the code below.

```
def zip_code?(zip_code)
    valid = false
    zip_path = File.join(File.dirname(__FILE__), '/all_usa_zip.txt')
    File.open(zip_path).each do |zip|
      if zip.to_i == zip_code.to_i
        valid = true
      end
    end
    valid
  end
```

Such a small change but it was the largest problem I had while making the gem.
	After the zip code validation problem the rest of programming the gem was straight forward. I made my prompts to the user and a class for scrapping the information from weather.com. All things that I have practiced in labs up to this point.  The only place in the lab that gave me trouble besides the file path was sending my gem to RubyGems.com. This was caused by some code in the gemspec file created by the gem bundler. The code below will stop you from pushing your gem to RubyGems.
```
Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
  to allow pushing to a single host or delete this section to allow pushing to any host.
  if spec.respond_to?(:metadata)
    spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
  else
    raise "RubyGems 2.0 or newer is required to protect against " \
      "public gem pushes."
  End
```
The problem can be easily fixed if you know what is causing it; just commenting the code out.
	At the end of this project I am left with a sense of accomplishment and have learned some valuable lessons about programing. I am already looking forward to my next project.

extension: markdown


text:
# Auther - PHP

**Auther** documentation for PHP.

## Installation

Auther is available on [Packagist](https://packagist.org/packages/) (using semantic versioning), and installation via [Composer](https://getcomposer.org) is the recommended way to install Auther. Just add this line to your `composer.json` file:

```json
"auther/auther": "~1.0"
```

or run

```sh
composer require auther/auther
```

Note that the `vendor` folder and the `vendor/autoload.php` script are generated by Composer; they are not part of Auther.

## Getting Started

If you do not already have your database setup start with the [beginners guide](beginners_guide.md)

```php
// Instantiate the Auther class
$auther = new Auther();

// Authenticate a user
$authenticate = $auther->authenticate($user, $password);

// Get authenticated user
$authenticated = $Auther->getAuthenticated();
```

## Methods List

| Methods | Description |
| --- | --- |
| [authenticate()](methods/authenticate.md) | Authenticates a user. |
| [unauthenticate()](methods/unauthenticate.md) | Unauthenticates a user |
| [getAuthenticated()](methods/getAuthenticated.md) | Returns currently authenticated user information. |
| [startSession()](methods/startSession.md) | Starts a new session. |
| [endSession()](methods/endSession.md) | Ends current session. |
| [addUser()](methods/addUser.md) | Adds a new user to the database table specified. |
| [deleteUser()](methods/deleteUser.md) | Deletes a user from the database table specified. |

## Support

**Auther** supports PHP *version* `5.6` and up.

license: Unlicense

repository: CloudBranch/Auther

repo_name: CloudBranch/Auther


text:
Epic CMS
========================================
[![CircleCI](https://circleci.com/gh/EpicComputerRepair/epiccms/tree/master.svg?style=svg)](https://circleci.com/gh/EpicComputerRepair/epiccms/tree/master) [![Grunt](https://cdn.rawgit.com/aleen42/badges/master/src/grunt.svg)](http://gruntjs.com/) [![Bower](https://cdn.rawgit.com/aleen42/badges/master/src/bower.svg)](https://bower.io/) [![Webpack](https://cdn.rawgit.com/aleen42/badges/master/src/webpack.svg)](https://webpack.js.org/)
![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=103) [![MIT Licence](https://badges.frapsoft.com/os/mit/mit.svg?v=103)](https://opensource.org/licenses/mit-license.php)

Static website generation from markdown built for [Amazon S3](https://aws.amazon.com/s3/). Forked originally from the project [dodgercms](https://github.com/ChrisZieba/dodgercms).
This branch is deployed to [cms.epic-computer-repair.com](https://cms.epic-computer-repair.com)

Epic CMS is a clean and simple alternative to heavy content management systems. There are no databases to manage, deployments to monitor, or massive configuration files. Just focus on writing your content and the results are live immediately.

The only requirement for Epic CMS is an account with [Amazon Web Services](http://aws.amazon.com/). Content is uploaded into the manager and then converted to `HTML` each time the document is updated. Epic CMS also keeps a data `JSON` file with up to date with information used by the application.

Epic CMS Features
-------------
* Can be ran locally `file:///`
    * Open `./build/index.html`
* Federated token with access just to requested S3 buckets
    * Token renews every 36 hours, if the access key and secret are stored in local browser storage
* Can be deployed to S3 or other hosting solutions
    * S3 use `grunt deployProd`
        * Edit creds in `grunt-aws.json` or use env vars
  * Other hosting copy `./build`
* Markdown syntax and editor
    * Preview changes
* Asset uploads
* Responsive
    * Edit websites on an mobile device

Generated Website Features
-------------
* Site templates
* Saved changes are live immediately
    * No deployments needed
* No Backend needed
    * Everything should be handled on build or on the client

Planned Features
-------------
* Tags
* Categories
* Search
* Authors

Install Dependencies
-------------
***npm for build***
`npm install`
***bower for browser***
`npm run bower install`

Grunt
-------------
* `npm run grunt` to build local copy
* list of commands `npm run grunt --help`

Code Documentation
-------------
1. `npm run grunt groc`
2. Open `./build/doc/index.html` in browser

Running Locally
-------------
***Rebuilds Bower, HTML, LESS, Images, Fonts, JS***
1. `npm run grunt local`
2. Open `./build/index.html` in browser

Updating Local JS Changes
-------------
***Must have local already built***
1. `npm run grunt localJS`
2. Open `./build/index.html` in browser

Unit Tests
-------------
`npm test`

## Release History
0.1.0: Initial release - [epiccms](https://github.com/EpicComputerRepair/epiccms) - Feature parity with 0.0.1
0.0.1: Initial release - [dodgercms](https://github.com/ChrisZieba/dodgercms)

repository: EpicComputerRepair/epiccms

gha_language: JavaScript

repo_name: EpicComputerRepair/epiccms


text:
# Heroku + Platform Events Quick Start for Salesforce ISV's
# Business Org Component

This example is to demonstrate and serve as a quick start for how large-scale processing can be moved from Salesforce to Heroku.  It consists of four components, each with its own git repository:

1. [Business org](https://github.com/sfisv-heroku/pe-quickstart-bizorg) **(this project)**: A Salesforce application that keeps track of the activity happening in the Customer org and on Heroku
1. [Customer org](https://github.com/sfisv-heroku/pe-quickstart-custorg): A Salesforce application that generates Platform Events
1. [Listener](https://github.com/sfisv-heroku/pe-quickstart-listener): A Heroku application that consumes events and dispatches them to the worker
1. [Worker](https://github.com/sfisv-heroku/pe-quickstart-worker): A Heroku application that receives work from the listener and performs processing on data retrieved from the Customer org

They must be configured in the listed order, due to dependencies (Customer Org and Listener dependent on Business Org and Worker dependent on Listener).

This is an experimental project, which means that:

1. It's work in progress
1. We need your feedback
1. Code contributions are welcome

For more information, please go to the Salesforce Partner Community and view the ["Heroku for ISV's - Quick Start" Chatter Group](https://sfdc.co/herokuisvquickstart "https://sfdc.co/herokuisvquickstart")

## Table of Contents

*   Installation(#installation)
    *   [Installing Heroku Platform Events Quick Start Business Org using Salesforce DX](#installing-heroku-platform-events-quick-start-business-org-using-salesforce-dx)
    *   [Installing Heroku Platform Events Quick Start Business Org using an unlocked package](#installing-heroku-platform-events-quick-start-business-org-using-an-unlocked-package)

## Installation

There are two ways to install the Platform Events Example ISV Business Org App:

*   Using Salesforce DX
*   Using an unlocked package

### Installing Heroku Platform Events Quick Start Business Org using Salesforce DX

This is the recommended installation option for developers who want to experience the app and the code.

1.  Authenticate with your SFDX hub org (if not already done):

    ```
    sfdx force:auth:web:login -d -a myhuborg
    ```

1.  Clone this repository:

    ```
    git clone https://github.com/sfisv-heroku/pe-quickstart-bizorg
    cd pe-quickstart-bizorg
    ```

1.  Create a scratch org, push the app, and open the org:

    ```
    ./scripts/orgInit.sh
    ```

1.  Change the access policy to permit access to the Connected App

    1. Select **CustomerOrgInformation** in the App list and click "Edit"

    2. Change the "Permitted Users" setting to "Admin approved users are pre-authorized" and click Save.

1.  Collect the Client ID and Client Secret for your Connected App:

    1. Go the the App Manager page (from Setup, enter App Manager in the Quick Find box).

    2. Click on the arrow to the right of the **CustomerOrgInformation** row, to reveal the drop-down list and select **View**

    3. Take down the **Consumer Key** for later use (will be called **BIZ_CLIENT_ID**).

    4. Click on **Click to Reveal** next to the **Consumer Secret** and take down the revealed value for later use (will be called **BIZ_CLIENT_SECRET**).

1.  Reset the security token for the current user:

    1. From your personal settings, enter Reset in the Quick Find box, then select **Reset My Security Token**.

    2. Click **Reset Security Token**. The new security token is sent to the email address in your Salesforce personal settings (the one associated with your SFDX hub org)

    3. From the email that is sent, note the security token, as it will be required when configuring the related components (will be called **BIZ_TOKEN**).

1.  Collect remaining access information, that will be required for configuring the other components to access the business org:

    1. To get the username and password, execute:
    ```
    sfdx force:user:display
    ```
    2. Take down the following and hold onto them for later use:

    Key in Display | Config Var Name (Future)
    -------------- | -------------
    Org Id         | BIZ_ORG_ID
    Instance Url   | BIZ_URL
    Username       | BIZ_USERNAME
    Password       | BIZ_PASSWORD

### Installing Heroku Platform Events Quick Start Business Org using an unlocked package

This is the recommended option for non developers. Use this option if you want to experience the sample app but do not plan to modify the code.

1.  [Sign up](https://developer.salesforce.com/signup) for a developer edition.

1.  Enable My Domain. Follow the instructions to enable My Domain [here](https://trailhead.salesforce.com/en/modules/identity_login/units/identity_login_my_domain).

1.  Click [this link](https://login.salesforce.com/packaging/installPackage.apexp?p0=xxx) to install the Heroku Platform Events Quick Start Business Org App unlocked package into your developer edition org.

1.  Select **Install for All Users**. When prompted, make sure you grant access to the external sites.

repository: sfisv-heroku/pe-quickstart-bizorg

repo_name: sfisv-heroku/pe-quickstart-bizorg


text:
##  Cli Mobile Number Validator  (Uk and Channels Island)

A sample mobile number validator using Laravel Cli command and Google's libphonenumber package.

### Usage

Ability to validate numbers as a "List" or "CSV" file:

##### Validate as a List of numbers

Pass a list of mobile numbers to the validator.

Note: change sample numbers to real numbers for effective usage.

```bash
$ php mobilenumbervalidator-cli validate:number "0740000000" "07200000000"
```

##### Validate numbers in a CSV file

Pass csv file with a mobile number per line.

07400000000,

07200000000

```bash
$ php mobilenumbervalidator-cli validate:number /path/to/file --file
```

repository: fujahgabriel/mobilenumbervalidator-cli

repo_name: fujahgabriel/mobilenumbervalidator-cli


text:
## Check the Health and Balance of etcd Clusters

Check to see if all of the etcd clusters have healthy pods, are balanced, and have a healthy cluster database. There needs to be the same number of pods running on each worker node for the etcd clusters to be balanced. If the number of pods is not the same for each worker node, the cluster is not balanced.

Any clusters that do not have healthy pods will need to be rebuilt. Kubernetes cluster data will not be stored as efficiently when etcd clusters are not balanced.

### Prerequisites

This procedure requires root privileges.

### Procedure

1.  Check the health of the clusters.

    To check the health of the etcd clusters in the services namespace without TLS authentication:

    ```bash
    ncn-w001# for pod in $(kubectl get pods -l app=etcd -n services \
    -o jsonpath='{.items[*].metadata.name}'); do echo "### ${pod} ###"; \
    kubectl -n services exec ${pod} -- /bin/sh -c "ETCDCTL_API=3 etcdctl endpoint health"; done

    ### cray-bos-etcd-6nkn6dzhv7 ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.670457ms
    ### cray-bos-etcd-6xtp2gqs64 ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 954.462µs
    ### cray-bos-etcd-gnt9rxcbvl ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.313505ms
    ### cray-bss-etcd-4jsn7p49rj ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 2.054509ms
    ### cray-bss-etcd-9q6xf5wl5q ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.174929ms
    ### cray-bss-etcd-ncwkjmlq8b ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.632738ms
    ### cray-cps-etcd-8ml5whzhjh ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.792795ms
    ### cray-cps-etcd-9xh5dbvgvp ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.952686ms
    ### cray-cps-etcd-cmjb9hvfgb ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.132689ms
    ### cray-crus-etcd-4ccjwq9g2g ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.000064ms
    ### cray-crus-etcd-5p7xgk9fj4 ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.415419ms
    ### cray-crus-etcd-qmdcb6xvjg ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.383509ms
    ### cray-externaldns-etcd-2b2rkfgj6s ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.39374ms
    ### cray-externaldns-etcd-7frkfnbncx ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.405028ms
    ### cray-externaldns-etcd-7gwlgc47pf ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 974.093µs
    ### cray-fw-update-etcd-brplp6r44r ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.030956ms
    ### cray-fw-update-etcd-qzwf2k4ccs ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 8.40234ms
    ### cray-fw-update-etcd-wp29sfq25j ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.740369ms
    ### cray-hbtd-etcd-b5lsrllglj ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.639258ms
    ### cray-hbtd-etcd-dnsgsr4xqb ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.761431ms
    ### cray-hbtd-etcd-zzbrp6hmdv ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.437008ms
    ### cray-hmnfd-etcd-4fp999tl7c ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.200601ms
    ### cray-hmnfd-etcd-5k9nw25pdc ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.75563ms
    ### cray-hmnfd-etcd-8tzmz869gx ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.1993ms
    ### cray-reds-etcd-mmnqnd45bw ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.034105ms
    ### cray-reds-etcd-swkghllr6n ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.456472ms
    ### cray-reds-etcd-wspl4fbt97 ###
    <IP_ADDRESS>:2379 is healthy: successfully committed proposal: took = 1.351777ms
    ```

    If any of the etcd clusters are not healthy, refer to [Rebuild Unhealthy etcd Clusters](Rebuild_Unhealthy_etcd_Clusters.md).

2.  Check the number of pods in each cluster and verify they are balanced.

    Each cluster should contain at least three pods, but may contain more. Ensure that no two pods in a given cluster exist on the same worker node.

    ```bash
    ncn-w001# kubectl get pod -n services -o wide | head -n 1; for cluster in \
    $(kubectl get etcdclusters.etcd.database.coreos.com -n services | grep -v NAME | \
    awk '{print $1}'); do kubectl get pod -n services -o wide | grep $cluster; echo ""; done

    NAME                                    READY   STATUS    RESTARTS AGE   IP            NODE       NOMINATED NODE  READINESS GATE
    cray-bos-etcd-7gl9dccmrq                1/1     Running   0        8d    <IP_ADDRESS>    ncn-w003   <none>          <none>
    cray-bos-etcd-g65fjhhlbg                1/1     Running   0        8d    <IP_ADDRESS>    ncn-w002   <none>          <none>
    cray-bos-etcd-lbsppj5kt7                1/1     Running   0        20h   <IP_ADDRESS>    ncn-w001   <none>          <none>

    cray-bss-etcd-dbhxvz824w                1/1     Running   0        8d    <IP_ADDRESS>    ncn-w002   <none>          <none>
    cray-bss-etcd-hzpbrcn2pb                1/1     Running   0        20h   <IP_ADDRESS>    ncn-w001   <none>          <none>
    cray-bss-etcd-kpc64v64wd                1/1     Running   0        8d    <IP_ADDRESS>    ncn-w003   <none>          <none>

    cray-cps-etcd-8ndvn4dlx4                1/1     Running   0        20h   <IP_ADDRESS>   ncn-w001   <none>          <none>
    cray-cps-etcd-gvlql48gwk                1/1     Running   0        8d    <IP_ADDRESS>    ncn-w003   <none>          <none>
    cray-cps-etcd-wsvhmp4f7p                1/1     Running   0        8d    <IP_ADDRESS>    ncn-w002   <none>          <none>

    cray-crus-etcd-2wvb2bpczb               1/1     Running   0        20h   <IP_ADDRESS>   ncn-w001   <none>          <none>
    cray-crus-etcd-fhbcvknghh               1/1     Running   0        8d    <IP_ADDRESS>    ncn-w002   <none>          <none>
    cray-crus-etcd-nrxqzftrzr               1/1     Running   0        8d    <IP_ADDRESS>    ncn-w003   <none>          <none>

    cray-externaldns-etcd-7skqmr825d        1/1     Running   0        20h   <IP_ADDRESS>   ncn-w001   <none>          <none>
    cray-externaldns-etcd-gm2s7nkjgl        1/1     Running   0        8d    <IP_ADDRESS>    ncn-w002   <none>          <none>
    cray-externaldns-etcd-ttnchdrwjl        1/1     Running   0        8d    <IP_ADDRESS>    ncn-w003   <none>          <none>

    cray-fas-etcd-29qcrd8qdt                1/1     Running   0        20h   <IP_ADDRESS>   ncn-w001   <none>          <none>
    cray-fas-etcd-987c87m4mv                1/1     Running   0        8d    <IP_ADDRESS>    ncn-w003   <none>          <none>
    cray-fas-etcd-9fxbzkzrsv                1/1     Running   0        8d    <IP_ADDRESS>    ncn-w002   <none>          <none>

    cray-hbtd-etcd-2sf24nw5zs               1/1     Running   0        8d    <IP_ADDRESS>    ncn-w003   <none>          <none>
    cray-hbtd-etcd-5r6mgvjct8               1/1     Running   0        20h   <IP_ADDRESS>   ncn-w001   <none>          <none>
    cray-hbtd-etcd-t78x5wqkjt               1/1     Running   0        8d    <IP_ADDRESS>    ncn-w002   <none>          <none>

    cray-hmnfd-etcd-99j5zt5ln6              1/1     Running   0        8d    <IP_ADDRESS>    ncn-w003   <none>          <none>
    cray-hmnfd-etcd-h9gnvvs7rs              1/1     Running   0        8d    <IP_ADDRESS>    ncn-w002   <none>          <none>
    cray-hmnfd-etcd-lj72f8xjkv              1/1     Running   0        20h   <IP_ADDRESS>   ncn-w001   <none>          <none>

    cray-reds-etcd-97wr66d4pj               1/1     Running   0        20h   <IP_ADDRESS>   ncn-w001   <none>          <none>
    cray-reds-etcd-kmggscpzrf               1/1     Running   0        8d    <IP_ADDRESS>    ncn-w003   <none>          <none>
    cray-reds-etcd-zcwrhm884l               1/1     Running   0        8d    <IP_ADDRESS>    ncn-w002   <none>          <none>

    cray-uas-mgr-etcd-7gmh92t2hx            1/1     Running   0        20h   <IP_ADDRESS>    ncn-w001   <none>          <none>
    cray-uas-mgr-etcd-7m4qmtgp6t            1/1     Running   0        8d    <IP_ADDRESS>    ncn-w002   <none>          <none>
    cray-uas-mgr-etcd-pldlkpr48w            1/1     Running   0        8d    <IP_ADDRESS>    ncn-w003   <none>          <none>
    ```

    If the etcd clusters are not balanced, see [Rebalance Healthy etcd Clusters](Rebalance_Healthy_etcd_Clusters.md).

3.  Check the health of an etcd cluster database.

    -   To check the health of an etcd cluster's database in the services namespace:

        ```bash
        for pod in $(kubectl get pods -l app=etcd -n services \
                             -o jsonpath='{.items[*].metadata.name}')
        do
            echo "### ${pod} Etcd Database Check: ###"
            dbc=$(kubectl -n services exec ${pod} -- /bin/sh \
                          -c "ETCDCTL_API=3 etcdctl put foo fooCheck && \
                          ETCDCTL_API=3 etcdctl get foo && \
                          ETCDCTL_API=3 etcdctl del foo && \
                          ETCDCTL_API=3 etcdctl get foo" 2>&1)
            echo $dbc | awk '{ if ( $1=="OK" && $2=="foo" && \
                               $3=="fooCheck" && $4=="1" && $5=="" ) print \
            "PASS:  " PRINT $0;
            else \
            print "FAILED DATABASE CHECK - EXPECTED: OK foo fooCheck 1 \
            GOT: " PRINT $0 }'
        done
        ```

        For example:

        ```bash
        ncn-w001# for pod in $(kubectl get pods -l app=etcd -n services -o \
        jsonpath='{.items[*].metadata.name}'); do echo "### ${pod} \
        Etcd Database Check: ###"; dbc=$(kubectl -n services exec ${pod} \
        -- /bin/sh -c "ETCDCTL_API=3 etcdctl put foo fooCheck && ETCDCTL_API=3 \
        etcdctl get foo && ETCDCTL_API=3 etcdctl del foo && ETCDCTL_API=3 \
        etcdctl get foo" 2>&1); echo $dbc | awk '{ if ( $1=="OK" && \
        $2=="foo" && $3=="fooCheck" && $4=="1" && $5=="" ) print "PASS:  \
        " PRINT $0; else print "FAILED DATABASE CHECK - \
        EXPECTED: OK foo fooCheck 1   GOT: " PRINT $0 \}'; done
        ### cray-bos-etcd-7cxq6qrhz5 Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-bos-etcd-b9m4k5qfrd Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-bos-etcd-tnpv8x6cxv Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-bss-etcd-q4k54rbbfj Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-bss-etcd-r75mlv6ffd Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-bss-etcd-xprv5ht5d4 Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-cps-etcd-8hpztfkjdp Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-cps-etcd-fp4kfsf799 Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-cps-etcd-g6gz9vmmdn Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-crus-etcd-6z9zskl6cr Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-crus-etcd-krp255f97q Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-crus-etcd-tpclqfln67 Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-externaldns-etcd-2vnb5t4657 Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-externaldns-etcd-sc4b88ptg2 Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-externaldns-etcd-smhxd9mb8n Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-fas-etcd-j9qmtrxnhh Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-fas-etcd-w8xl7vbn84 Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-fas-etcd-zr2vnvhdwk Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-hbtd-etcd-jcxl65xwwd Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-hbtd-etcd-rpwx7qdtxb Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-hbtd-etcd-vswmwrmhpl Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-hmnfd-etcd-2rpvswtpd2 Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-hmnfd-etcd-6pm4tm5d6x Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-hmnfd-etcd-776b2g5d4l Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-reds-etcd-m8wgp24k9p Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-reds-etcd-wghvvfbnjp Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-reds-etcd-zpzw8mpkfk Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-uas-mgr-etcd-4xq5swfsr2 Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-uas-mgr-etcd-kfd64zwpbz Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-uas-mgr-etcd-nmqkdh8n2d Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ```

    -   To check one cluster:

        ```bash
        for pod in $(kubectl get pods -l etcd_cluster=cray-bos-etcd -n services \
                             -o jsonpath='{.items[*].metadata.name}')
        do
            echo "### ${pod} Etcd Database Check: ###"
            dbc=$(kubectl -n services exec ${pod} -- /bin/sh \
                          -c "ETCDCTL_API=3 etcdctl put foo fooCheck && \
                          ETCDCTL_API=3 etcdctl get foo && \
                          ETCDCTL_API=3 etcdctl del foo && \
                          ETCDCTL_API=3 etcdctl get foo" 2>&1)
            echo $dbc | awk '{ if ( $1=="OK" && $2=="foo" && \
                               $3=="fooCheck" && $4=="1" && $5=="" ) print \
            "PASS:  " PRINT $0;
            else \
            print "FAILED DATABASE CHECK - EXPECTED: OK foo fooCheck 1 \
            GOT: " PRINT $0 }'
        done
        ```

        For example:

        ```bash
        ncn-w001# for pod in $(kubectl get pods -l etcd_cluster=cray-bos-etcd \
        -n services -o jsonpath='{.items[*].metadata.name}'); do echo \
        "### ${pod} Etcd Database Check: ###";  dbc=$(kubectl -n \
        services exec ${pod} -- /bin/sh -c "ETCDCTL_API=3 etcdctl \
        put foo fooCheck && ETCDCTL_API=3 etcdctl get foo && \
        ETCDCTL_API=3 etcdctl del foo && ETCDCTL_API=3 etcdctl get \
        foo" 2>&1); echo $dbc | awk '{ if ( $1=="OK" && $2=="foo" && \
        $3=="fooCheck" && $4=="1" && $5=="" ) print "PASS:  " PRINT $0; \
        else print "FAILED DATABASE CHECK - EXPECTED: \
        OK foo fooCheck 1   GOT: " PRINT $0 }'; done
        ### cray-bos-etcd-7cxq6qrhz5 Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-bos-etcd-b9m4k5qfrd Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ### cray-bos-etcd-tnpv8x6cxv Etcd Database Check: ###
        PASS:  OK foo fooCheck 1
        ```

    If any of the etcd cluster databases are not healthy, refer to the following procedures:

    -   Refer to [Check for and Clear etcd Cluster Alarms](Check_for_and_Clear_etcd_Cluster_Alarms.md)
    -   Refer to [Clear Space in an etcd Cluster Database](Clear_Space_in_an_etcd_Cluster_Database.md)


text:
# wpIonic

## This project has not been maintained or updated in a while, it's probably best not to use it.

*Completely rewritten and updated for Ionic 3.9.2 Feb 2018*

A demo mobile app that uses the Ionic Framework, and integrates with WordPress through the WP-API.

Features:

- Gets posts through WP-API v2
- WordPress login - needs SB App Integration plugin https://github.com/scottopolis/sb-app-integration
- WooCommerce REST API v2 integration
- Stripe payments
- Pull to refresh
- Infinite scroll
- Lots more

## Demo

## How to setup

Blog post and tutorial here: http://scottbolinger.com/ionic-wordpress-app/

- Install Ionic CLI tools https://ionicframework.com/docs/cli/
- Clone this repository, and run npm install
- Open providers/configure/configure.ts and enter your WordPress site url
- If using WooCommerce, enter your auth key in configure.ts as described
- To use Stripe payments, add your publishable key in app.module.ts
- Install the SB App Integration plugin https://github.com/scottopolis/sb-app-integration
- run ionic serve to see it in your browser

## WooCommerce

This app uses basic authentication over SSL to pull products from the WooCommerce REST API.

To use the WooCommerce module, you must create a REST API key in WooCommerce: http://woocommerce.github.io/woocommerce-rest-api-docs/#authentication

In the app, go to providers/configure/configure.ts and change the Authorization header. This is a base64 encoded string of your consumer key and secret. You can generate these using btoa(key:secret), but keep in mind these are discoverable in your app files even in a signed native app package.

Example getting your auth header

consumer key: ck_7af7efdb4ef8708b5f8d5ccdacbd1d8e8ce0f8d5
consumer secret: cs_8777f8b0de8435162162daf22f7e6944ab2bec40

Visit an online base64 encoder and enter your key and secret separated by a semi-colon:

ck_7af7efdb4ef8708b5f8d5ccdacbd1d8e8ce0f8d5:cs_8777f8b0de8435162162daf22f7e6944ab2bec40

Click encode. Copy the encoded string that looks like this:

Y2tfN2FmN2VmZGI0ZWY4NzA4YjVmOGQ1Y2NkYWNiZDFkOGU4Y2UwZjhkNTpjc184Nzc3ZjhiMGRlODQzNTE2MjE2MmRhZjIyZjdlNjk0NGFiMmJlYzQw

Visit providers/configure/configure.ts and change the return string in getAuth to:

return 'Basic Y2tfN2FmN2VmZGI0ZWY4NzA4YjVmOGQ1Y2NkYWNiZDFkOGU4Y2UwZjhkNTpjc184Nzc3ZjhiMGRlODQzNTE2MjE2MmRhZjIyZjdlNjk0NGFiMmJlYzQw';

Included features:

- WP-API v2 and WooCommerce REST API v2 integration
- Product list
- Single product pages
- Add to cart
- Cart modal
- Basic multi-step checkout
- Stripe payments

repository: EhiAyoko/glmpiapp

repo_name: EhiAyoko/glmpiapp


text:
# SuperITMan/fail2ban

## About

Available on Docker Hub: [superitman/fail2ban](https://hub.docker.com/r/superitman/fail2ban/)

A simple container with Fail2Ban installed inside to use in docker environment.

This is compatible with docker web hosts.


text:
# Outrigger Homebrew

Homebrew Tap (a.k.a. repository) for Outrigger

## How to use this tap

To get access to all this Tap has to offer, you need to, well, tap it.

  `brew tap phase2/outrigger`

Once tapped, you can use the formula here to install `rig` and the required
Docker dependencies.

## To install rig

  `brew install outrigger-cli`

This will get you the `rig` binary and includes dependencies on Docker, Docker Compose,
and Docker Machine.

## Upgrading rig

If a new version of `rig` is released you need to do the following to upgrade.

  ```
  brew update
  brew upgrade outrigger-cli
  ```

## Troubleshooting

To help troubleshoot your `rig` installation run the following command:

  `rig doctor`


text:
###TeX-Utilities

This repository contains my LaTeX preamble and the script(s) that I wrote to assist in LaTeX projects. In has several useful macros including a condensed integration syntax and a new scientific notation macro that uses the small E notation. The Lua file contains a set of functions that I wrote to convert a separated value file (CSV, TSV, ...) into a Lua table so that the data can be manipulated or converted to a different format. Currently, I only have a function that converts it to the LaTeX tabular format, but it would be very easy to write a function that can transform it into almost any other text format (such as JSON or HTML). My intent is to use it in LuaTeX documents so that I can conveniently make tabulars from spreadsheets.

###Sample Usage of csv.lua
This code contains an example of how to use csv.lua to convert a CSV file to a LaTeX tabular when the project is built. More information about the functions used can be found in csv.lua.

```TeX
\documentclass[12pt,letterpaper]{article}
\usepackage[utf8x]{luainputenc}
\usepackage{luacode} %\luaexec macro: allows for '\\hline' in inline code
\directlua{require('csv.lua')}

\def\arraystretch{2} %Give tabular environments internal padding

\begin{document}
	\begin{tabular}{|c|c|c|}
	    \hline
	    \luaexec{
		    t = dataToTable('test.csv')
		    tex.sprint(tableToTeX(t, '\\hline'))
	    } \\
	    \hline
	\end{tabular}
	\hspace{2cm}
	\begin{tabular}{c|c|c}
	    \luaexec{
		    tex.sprint(tableToTeX(t, '\\hline', {2})) % Add hline only below title row
	    }
	\end{tabular}
	\hspace{2cm}
	\begin{tabular}{c|cc}
	    \luaexec{
		    tex.sprint(tableToTeX(t, '\\hline', {2, 4, 6, 8})) % Add hline to rows 2, 4, 6, and 8
	    }
	\end{tabular}
\end{document}
```

repository: calebreister/TeX-Utilities

repo_name: calebreister/TeX-Utilities


text:
## 2016-12-05: Initial ingestion

File received by mail from Matt: `XMM-LSS-specz-v2.5.csv`.

## 2016-12-05: DM2 validation

See report. The updated file is `XMM-LSS-specz-v2.5_helpid_20160512.fits`.

## 2017-02-02: Update

File received from Matt: `XMM-LSS-specz-v2.6.csv`.
Update to version v2.6 catalogue. Add readme.
Modified catalogue ingested in HeDaM: `XMM-LSS-specz-v2.6_hedam.csv`.

## 2017-06-01: Update

See report.

## 2017-08-19: Updated data

Validation on 2017-10-24, see report.


text:
---
layout: post
title:  "What is Solution Development Engineer?"
date:   2020-02-13 17:55:00 +0200
categories: blog
comments: false
---
What is Solution Development Engineer? This is a first question I ask myself when I joint DIGI-TEXX Company. As you know, I am a Embedded Software Test Engineer, my daily work is focusing on Quality of Software, code, code, and code.

<!--more-->

It is an oppotunity for me, I have change myself everyday for adapt this position.

Jekyll also offers powerful support for code snippets:

Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].

[jekyll-docs]: http://jekyllrb.com/docs/home
[jekyll-gh]:   https://github.com/jekyll/jekyll
[jekyll-talk]: http://talk.jekyllrb.com/

{% highlight ruby %}
Kien Tran
<EMAIL_ADDRESS>{% endhighlight %}

gha_language: HTML


text:
Cloud4RPi Examples for [Onion Omega2](https://onion.io/omega2/)
===============================================================

[![Build Status](https://travis-ci.org/cloud4rpi/cloud4rpi-omega2-python.svg?branch=master)](https://travis-ci.org/cloud4rpi/cloud4rpi-omega2-python)

## Running the Sample Code

1. Update your system and make sure you have the latest versions of all required software:
    ```sh
    opkg update
    opkg install wget python3 python3-pip
    pip3 install --upgrade setuptools pip
    ```
2. Install the Cloud4RPi client library:
    ```sh
    pip3 install cloud4rpi
    ```
3. Download examples:
    ```sh
    mkdir cloud4rpi-omega2-python && cd cloud4rpi-omega2-python
    repo="https://raw.githubusercontent.com/cloud4rpi/cloud4rpi-omega2-python/master"
    wget "$repo/omega2.py" "$repo/control.py"
    ```

    > You can install **git** if your board has sufficient memory and you prefer using it, and clone this repository with the `opkg install git git-http ca-bundle && git clone https://github.com/cloud4rpi/cloud4rpi-omega2-python.git && cd cloud4rpi-omega2-python` command.

4. [Log into your Cloud4RPi account](https://cloud4rpi.io/signin) or [create a new one](https://cloud4rpi.io/register).
5. Copy [your device](https://cloud4rpi.io/devices)'s **Device Token**. If you have no devices, create one on the [Devices](https://cloud4rpi.io/devices) page and copy its **Device Token**.
6. Replace the `__YOUR_DEVICE_TOKEN__` string in the [control.py](https://github.com/cloud4rpi/cloud4rpi-omega2-python/blob/master/control.py) file with your device token using any text editor (**vim**, **sed** or other):
    ```sh
    sed -i 's/__YOUR_DEVICE_TOKEN__/replace-this-text-with-your-real-device-token/' control.py
    ```
7. Run the `control.py` example:
    ```sh
    python3 control.py
    ```
8. Notice that the [device](https://cloud4rpi.io/devices) went online and started sending data.
9. Go to the [Control Panels](https://cloud4rpi.io/control-panels/) page and add a new control panel.
10. Add a new **Switch** widget and bind it to the `Omega LED` variable.

You can use this control panel to switch the [onboard LED](https://docs.onion.io/omega2-docs/the-omega-led.html)'s state.

![](https://github.com/cloud4rpi/docs/raw/master/example-img/omega_led.png)

> If you have an [Expansion Dock](https://docs.onion.io/omega2-docs/expansion-dock.html), bind three **Slider** widgets (from 0 fo 255) to `RGB LED` variables to control the dock's RGB LED color.

![](https://github.com/cloud4rpi/docs/raw/master/example-img/omega_rgb.png)

## See Also

* [Examples for Raspberry Pi](https://github.com/cloud4rpi/cloud4rpi-raspberrypi-python)
* [Examples for Next Thing Co. C.H.I.P.](https://github.com/cloud4rpi/cloud4rpi-chip-python)
* [Examples for ESP8266](https://github.com/cloud4rpi/cloud4rpi-esp8266-micropython)
* [Client Library](https://github.com/cloud4rpi/cloud4rpi)
* [Documentation Repository](https://github.com/cloud4rpi/docs)

gha_language: Python


text:
## Project Title
  #Employee Tracker

## Description

A Node.js application which allows users to view, add and update employee information to database.

## Installation Instructions

You will need node.js installed
* [Node.js](https://en.wikipedia.org/wiki/Node.js)

* [figlet](https://www.npmjs.com/package/figlet)

* Use the [MySQL](https://www.npmjs.com/package/mysql) NPM package to connect to your MySQL database and perform queries.

* Use [InquirerJs](https://www.npmjs.com/package/inquirer/v/0.2.3) NPM package to interact with the user via the command-line.

* Use [console.table](https://www.npmjs.com/package/console.table) to print MySQL rows to the console. There is a built-in version of `console.table`, but the NPM package formats the data a little better for our purposes.

To install the required dependencies, please run the following command:

```
npm init -y
npm i mysql
npm i inquirer
npm i console.table
npm i figlet

```

## Usage
Walthrough of for Employee Tracker

[Video](https://drive.google.com/file/d/1E4FXourUAFd5kcEAlWltRv84kZcfP7Mx/view)

## Mock-up

## Contribution Guidelines
Link to Contributor's Covenant: https://www.contributor-covenant.org/version/2/0/code_of_conduct/

## License
![badge](https://img.shields.io/badge/license-MIT-blueviolet)

*This project uses the [MIT](https://spdx.org/licenses/MIT.html) license.*

## Questions
Github Profile : [Creator]:(https://github.com/bhavipatel21)

If you have any questions please email me at<EMAIL_ADDRESS>


text:
# TAG Security & Privacy Questionnaire Answers #

* **Author:**<EMAIL_ADDRESS>* **Questionnaire Source:** https://www.w3.org/TR/security-privacy-questionnaire/#questions

## Questions ##

* **What information might this feature expose to Web sites or other parties, and for what purposes is that exposure necessary?**
  * None.  The proposal relates to matching client URLs that are already exposed to sites.
* **Is this specification exposing the minimum amount of information necessary to power the feature?**
  * Yes.  It does not expose any new information.
* **How does this specification deal with personal information or personally-identifiable information or information derived thereof?**
  * This proposal does not deal with PII.
* **How does this specification deal with sensitive information?**
  * No.
* **Does this specification introduce new state for an origin that persists across browsing sessions?**
  * No.  It allows a pattern to be stored in the existing service worker scope persistent state.  Sites could previously store arbitrary data in this field using URL encoding.
* **What information from the underlying platform, e.g. configuration data, is exposed by this specification to an origin?**
  * None.
* **Does this specification allow an origin access to sensors on a user’s device**
  * No.
* **What data does this specification expose to an origin? Please also document what data is identical to data exposed by other features, in the same or different contexts.**
  * None.
* **Does this specification enable new script execution/loading mechanisms?**
  * It allows service worker scopes to match more restrictive URL patterns.  It also supports matching URL search parameters regardless of order.  This allows a service worker to be reliably spawned in cases where it could not before.
* **Does this specification allow an origin to access other devices?**
  * No.
* **Does this specification allow an origin some measure of control over a user agent’s native UI?**
  * No.
* **What temporary identifiers might this this specification create or expose to the web?**
  * None.
* **How does this specification distinguish between behavior in first-party and third-party contexts?**
  * Service workers operate differently in first-party and third-party contexts in some browsers; e.g. double-keying, etc.  This proposal does not change that behavior or create new differences.
* **How does this specification work in the context of a user agent’s Private \ Browsing or "incognito" mode?**
  * Service workers operate differently in private browser modes in some browsers; e.g. firefox does not support SW in private browsing.  This proposal does not change that behavior or create new differences.
* **Does this specification have a "Security Considerations" and "Privacy Considerations" section?**
  * Yes.
* **Does this specification allow downgrading default security characteristics?**
  * No.

repository: wanderview/urlpattern

gha_license_id: NOASSERTION

repo_name: wanderview/urlpattern


text:
---
layout: default
---

# 1997-01-20 - Too much week at the end of your paycheck?

## Header Data

From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: 7d7a38c892e454243684560e1136cadad0de4a5ccf884402d7f6ab8ac39e8493

Message ID: \<Ready Aim Fire!_1/20/97 6:23:05<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1997-01-20 11:23:16 UTC

Raw Date: Mon, 20 Jan 1997 03:23:16 -0800 (PST)

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>Date: Mon, 20 Jan 1997 03:23:16 -0800 (PST)
To<EMAIL_ADDRESS>Subject: Too much week at the end of your paycheck?
Message-ID: <Ready Aim Fire!_1/20/97 6:23:05<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

Do you need to supplement your income? Are you paying out in bills more than you make? Have you thought about a second job but wondered when you would have time?

What if you could supplement your income in only 5-6 hours a week and if you could do it in the privacy of your own home at your computer? Would you try it?

Find out how you can supplement and eventually replace your current job. We are looking for 6 new people willing to take a new opportunity and make it their goldmine. If you are open-minded, have internet access at home, and are ready to change your life don't pass on this opportunity. Help us change families financial futures for the better.

Get more info from our autoresponder -<EMAIL_ADDRESS>or from our website - http://www.structuremg.com (signup here too!)

**************************************************************
If you wish to be removed from our future mailings simply
reply with "REMOVE" in the subject and place your email
address in the body. You must do this correctly to be removed.
**************************************************************

{% endraw %}
```

## Thread

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

+ Return to "[remove@structuremg.com](/authors/remove_at_structuremg_com)"

+ 1997-01-20 (Mon, 20 Jan 1997 03:23:16 -0800 (PST)) - Too much week at the end of your paycheck? -<EMAIL_ADDRESS>


text:
# Web Applications

There are a variety of ways to support web applications and attack surface varies by configuration as well the mitigations used to support the configuration.

In this section, we collect and evaluate the attack surface for common web application configurations with the intention to make this system available for reference in other ATTACKS.md files.  The following attack model components have been defined:

1. [E6-001 Basic 3-Tier Website / Same Subnet](001-Basic-3Tier-Website-Same-Subnet.md)
2. [E6-002 Basic 3-Tier Website / Different Subnets]()
3.

repository: Scoggin/raindance

repo_name: Scoggin/raindance


text:
# Local Add-on: Terminal Open

Provides a simple button that will open iTerm into the sites current webroot.

## Manual Installation

### Clone

Clone the repository into the following directory depending on your platform:

- macOS: `~/Library/Application Support/Local/addons`

Currently only works on macOS

### Install Dependencies
- `yarn install`

### Build
- `yarn build`

## Development

### Folder Structure
All files in `/src` will be transpiled to `/lib` using [TypeScript](http://www.typescriptlang.org/). Anything in `/lib` will be overwritten.

## License

MIT

repository: timnashcouk/open-terminal

repo_name: timnashcouk/open-terminal


text:
@parent bitcentive
@module {can.Component} bitcentive/components/page-dashboard/payouts <bit-payouts>

Displays a table of payout amounts for the current month, by contributor.

@signature `<bit-payouts contribution-month="{ ContributionMonth }">`

@body
The component will request all contribution months previous to the "current contributionMonth" (assigned as an attribute) and run calculate and display payout amounts for each contributor.

## Use
```
<bit-payouts {contribution-month}="selectedContributionMonth" />
```

repository: donejs/bitcentive

branch_name: refs/heads/staging

repo_name: donejs/bitcentive


text:
# dropboxfs

A [FUSE](https://github.com/libfuse/libfuse) for seamlessly interacting with Dropbox written in Go. Dropboxfs allows you to mount your Dropbox and use it as if it was a local filesystem. All changes made through dropboxfs will be sync'ed with Dropbox. The Dropbox [linux daemon](https://www.dropbox.com/install-linux) synchronizes your entire Dropbox folder before you can use it, but dropboxfs is smarter and only loads your data when it needs to.

### How to run it

[Register an app with Dropbox](https://www.dropbox.com/developers/apps) and generate an access token for dropboxfs to use. Make sure your system has [FUSE](https://github.com/libfuse/libfuse) installed.

```
git clone https://github.com/Melinysh/dropboxfs.git
cd dropboxfs
go get .
go build
./dropboxfs -m <MountPoint>
```

### TODO's
- [x] Read directories
- [x] Creating directories
- [x] Removing directories
- [x] Moving directories
- [x] Read files
- [x] Write files
- [x] Create files
- [x] Delete files
- [x] Copy files
- [x] Rename files
- [ ] Add backgrounding option
- [ ] Stop spitting out so much debug info (make my own logger package)
- [x] Add verbose flag
- [ ] Cleanup code
- [x] Better caching mechanism
- [ ] Time based cache eviction?
- [x] Detect off-machine Dropbox changes ([~Webhooks~](https://www.dropbox.com/developers/reference/webhooks), [Longpoll](https://www.dropbox.com/developers/documentation/http/documentation#files-list_folder-longpoll))
- [ ] Finer grain control to sync only whats changed, once change detected (might not be able to with longpoll API)
- [x] Add in better mechanism for getting/generating access tokens
- [x] Add tests
- [ ] Allow for changing of permissions

### License
MIT License

Copyright (c) 2018 Stephen Melinyshyn

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

repository: Cloudxtreme/dropboxfs

repo_name: Cloudxtreme/dropboxfs


text:
# Transferability of spectral Graph Neural Networks

This private repository regroups the efforts to be able to study the transferability of graph neural networks by learning a laplacian transformation

## Python Files:

* None for the moment

## Support Notebooks
Notebooks made to visualise, measure of develop different scripts.

- Training

- Testing

gha_language: Jupyter Notebook


text:
# Kate's Scheduler project

This repository represents a code challenge based *extremely* loosely on the [code challenge] (https://github.com/wheniwork/standards/blob/master/project.md) proposed by When I Work; for instance, as of the first commit, it's not even written using an API! It's really just an opportunity for me to mess around while teaching myself Laravel. It is most definitely a work in progress. Consider yourself duly warned.

To do:
 - ~~user authentication (get it to work!)~~
 - ~~comments, comments, comments...~~
 - sound design ;)
 - page permissions
 - form validation
 - fix styles for mobile - better responsive
 - ~~link to add shift~~
 - tweaks to calendar layout
 - edit shift
 - edit user
 - contact modals
 - time card
 - ~~link to add user~~
 - separate backend into a RESTful API
 - unit testing

## Laravel PHP Framework

Laravel is accessible, yet powerful, providing powerful tools needed for large, robust applications. A superb inversion of control container, expressive migration system, and tightly integrated unit testing support give you the tools you need to build any application with which you are tasked.

## Official Documentation

Documentation for the framework can be found on the [Laravel website](http://laravel.com/docs).

## Contributing

Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](http://laravel.com/docs/contributions).

## Security Vulnerabilities

If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell at<EMAIL_ADDRESS>All security vulnerabilities will be promptly addressed.

## License

The Laravel framework is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT)

repository: katedhanson/snpp-scheduler

repo_name: katedhanson/snpp-scheduler


text:
<img src="https://grantwinney.com/content/images/2017/12/15-apis-in-15-days---NOAA.jpg" width="500">

Continuing my search for [15 APIs in 15 Days](https://grantwinney.com/a-new-challenge-15-apis-in-15-days/), I came across the [NOAA API](https://www.ncdc.noaa.gov/cdo-web/webservices/v2/). [NOAA](http://www.noaa.gov/) is an American agency that studies and charts various conditions in the oceans and atmosphere.

First though, two things to consider:

* If you're unfamiliar with APIs, you might want to [read this first](https://grantwinney.com/what-is-an-api/) to familiarize yourself.
* Install [Postman](https://www.getpostman.com/), which allows you to access API endpoints without having to write an app, as well as save the calls you make and sync them online.

---

## Authorization

First things first... we need an access token. NOAA does it a little differently than the other ones I've seen so far. You need to provide an email address and they'll email you a unique token. You can [request an API token](https://www.ncdc.noaa.gov/cdo-web/token) here. I got the email within seconds.

![noaa-api---request-token-1](https://grantwinney.com/content/images/2017/12/noaa-api---request-token-1.png)

The limits are very generous if you're using it for a small project for yourself or  a team - *"each token will be limited to five requests per second and 10,000 requests per day"*.

For any request you make, include the access token as a header named "token".

![noaa-api---token-header](https://grantwinney.com/content/images/2017/12/noaa-api---token-header.png)

## Requesting Data

Their [web services documentation](https://www.ncdc.noaa.gov/cdo-web/webservices/v2) is pretty straight-forward. It follows a simple format, and each endpoint you can hit is in a tab along the top of that page.

### Get All Stations

Try requesting all stations using:

    GET https://www.ncdc.noaa.gov/cdo-web/api/v2/stations

You'll get the first 25 results. Check out the metadata section that tells you the offset, the number of records returned (limit), and the total records (count). You can adjust the results using "offset" and "limit" parameters.

```json
{
    "metadata": {
        "resultset": {
            "offset": 1,
            "count": 128495,
            "limit": 25
        }
    },
    "results": [
        {
            "elevation": 139,
            "mindate": "1948-01-01",
            "maxdate": "2014-01-01",
            "latitude": 31.5702,
            "name": "ABBEVILLE, AL US",
            "datacoverage": 0.8813,
            "id": "COOP:010008",
            "elevationUnit": "METERS",
            "longitude": -85.2482
        },
        {
            "elevation": 249.3,
            "mindate": "1938-01-01",
            "maxdate": "2015-11-01",
            "latitude": 34.2553,
            "name": "ADDISON, AL US",
            "datacoverage": 0.5059,
            "id": "COOP:010063",
            "elevationUnit": "METERS",
            "longitude": -87.1814
        },
        ...
        ...
    ]
}
````

### Get a Subset of Stations

There are certain filters that can be applied. You can limit stations to a certain geographical location using a FIPS (Federal Information Processing System) code. I don't know if there's a central source for these codes, but [here are some](https://census.gov/geographies/reference-files/2016/demo/popest/2016-fips.html).

Since it's an excel sheet and not everyone can open it, here's a portion of it reproduced:

    09 - Connecticut
    23 - Maine
    25 - Massachusetts
    33 - New Hampshire
    44 - Rhode Island
    50 - Vermont
    34 - New Jersey
    36 - New York
    42 - Pennsylvania
    17 - Illinois
    18 - Indiana
    26 - Michigan
    39 - Ohio
    55 - Wisconsin
    19 - Iowa
    20 - Kansas
    27 - Minnesota
    29 - Missouri
    31 - Nebraska
    38 - North Dakota
    46 - South Dakota
    10 - Delaware
    11 - District of Columbia
    12 - Florida
    13 - Georgia
    24 - Maryland
    37 - North Carolina
    45 - South Carolina
    51 - Virginia
    54 - West Virginia
    01 - Alabama
    21 - Kentucky
    28 - Mississippi
    47 - Tennessee
    05 - Arkansas
    22 - Louisiana
    40 - Oklahoma
    48 - Texas
    04 - Arizona
    08 - Colorado
    16 - Idaho
    30 - Montana
    32 - Nevada
    35 - New Mexico
    49 - Utah
    56 - Wyoming
    02 - Alaska
    06 - California
    15 - Hawaii
    41 - Oregon
    53 - Washington

I made the same call as previously, but used the FIPS code for Maine, limited the result to 5 records, and sorted by oldest `mindate` first:

    GET https://www.ncdc.noaa.gov/cdo-web/api/v2/stations?locationid=FIPS:23&limit=5&sortfield=mindate

Here are the results. Not sure what the dates mean.

```json
{
    "metadata": {
        "resultset": {
            "offset": 1,
            "count": 670,
            "limit": 5
        }
    },
    "results": [
        {
            "elevation": 88.1,
            "mindate": "1885-05-01",
            "maxdate": "1886-08-31",
            "latitude": 43.760911,
            "name": "SEBAGO LAKE, ME US",
            "datacoverage": 0.998,
            "id": "GHCND:USC00177630",
            "elevationUnit": "METERS",
            "longitude": -70.52561
        },
        {
            "elevation": 304.8,
            "mindate": "1885-06-01",
            "maxdate": "1908-01-31",
            "latitude": 45.133333,
            "name": "MAYFIELD, ME US",
            "datacoverage": 0.933,
            "id": "GHCND:USC00175070",
            "elevationUnit": "METERS",
            "longitude": -69.683333
        },
        {
            "elevation": 152.4,
            "mindate": "1885-10-01",
            "maxdate": "1894-02-28",
            "latitude": 44.416667,
            "name": "KENTS HILL, ME US",
            "datacoverage": 0.8617,
            "id": "GHCND:USC00174230",
            "elevationUnit": "METERS",
            "longitude": -70.083333
        },
        {
            "elevation": 27.4,
            "mindate": "1886-02-01",
            "maxdate": "1914-12-31",
            "latitude": 44.583333,
            "name": "FAIRFIELD, ME US",
            "datacoverage": 0.9829,
            "id": "GHCND:USC00172740",
            "elevationUnit": "METERS",
            "longitude": -69.583333
        },
        {
            "elevation": 40.5,
            "mindate": "1886-09-01",
            "maxdate": "2017-10-31",
            "latitude": 44.2202,
            "name": "GARDINER, ME US",
            "datacoverage": 1,
            "id": "GHCND:USC00173046",
            "elevationUnit": "METERS",
            "longitude": -69.789
        }
    ]
}
```

### Get Available Datasets for a Station

Once you've got a list of stations, you can get data for a station. But what set of data do you want? In order to determine that, you'll need to query to see what datasets are available. I selected the last one from the results of the previous query.

    GET https://www.ncdc.noaa.gov/cdo-web/api/v2/datasets?stationid=GHCND:USC00173046

At first glance, it appears I can choose from daily, monthly, and yearly summaries.

```json
{
    "metadata": {
        "resultset": {
            "offset": 1,
            "count": 6,
            "limit": 25
        }
    },
    "results": [
        {
            "uid": "gov.noaa.ncdc:C00861",
            "mindate": "1763-01-01",
            "maxdate": "2017-12-20",
            "name": "Daily Summaries",
            "datacoverage": 1,
            "id": "GHCND"
        },
        {
            "uid": "gov.noaa.ncdc:C00946",
            "mindate": "1763-01-01",
            "maxdate": "2017-11-01",
            "name": "Global Summary of the Month",
            "datacoverage": 1,
            "id": "GSOM"
        },
        {
            "uid": "gov.noaa.ncdc:C00947",
            "mindate": "1763-01-01",
            "maxdate": "2017-01-01",
            "name": "Global Summary of the Year",
            "datacoverage": 1,
            "id": "GSOY"
        },
        {
            "uid": "gov.noaa.ncdc:C00821",
            "mindate": "2010-01-01",
            "maxdate": "2010-01-01",
            "name": "Normals Annual/Seasonal",
            "datacoverage": 1,
            "id": "NORMAL_ANN"
        },
        {
            "uid": "gov.noaa.ncdc:C00823",
            "mindate": "2010-01-01",
            "maxdate": "2010-12-31",
            "name": "Normals Daily",
            "datacoverage": 1,
            "id": "NORMAL_DLY"
        },
        {
            "uid": "gov.noaa.ncdc:C00822",
            "mindate": "2010-01-01",
            "maxdate": "2010-12-01",
            "name": "Normals Monthly",
            "datacoverage": 1,
            "id": "NORMAL_MLY"
        }
    ]
}
```

## Get Data for a Station

You've got a station you're interested in, and the dataset for that station, so all that's left is querying for the actual data. Unfortunately, I have no clue what the returned data *means*.

Oh well, let's get the data first, then try figuring out what it means.

### Get Daily Summary

This request gets the daily summary for the same station we looked up previously. I limited it to the month of January because trying to get the entire year didn't finish after waiting several minutes.

    GET https://www.ncdc.noaa.gov/cdo-web/api/v2/data?stationid=GHCND:USC00173046&datasetid=GHCND&startdate=2017-01-01&enddate=2017-01-31

```json
{
    "metadata": {
        "resultset": {
            "offset": 1,
            "count": 186,
            "limit": 25
        }
    },
    "results": [
        {
            "date": "2017-01-01T00:00:00",
            "datatype": "PRCP",
            "station": "GHCND:USC00173046",
            "attributes": ",,7,0700",
            "value": 61
        },
        {
            "date": "2017-01-01T00:00:00",
            "datatype": "SNOW",
            "station": "GHCND:USC00173046",
            "attributes": ",,7,",
            "value": 76
        },
        {
            "date": "2017-01-01T00:00:00",
            "datatype": "SNWD",
            "station": "GHCND:USC00173046",
            "attributes": ",,7,",
            "value": 279
        },
        {
            "date": "2017-01-01T00:00:00",
            "datatype": "TMAX",
            "station": "GHCND:USC00173046",
            "attributes": ",,7,0700",
            "value": 6
        },
        {
            "date": "2017-01-01T00:00:00",
            "datatype": "TMIN",
            "station": "GHCND:USC00173046",
            "attributes": ",,7,0700",
            "value": -133
        },
        {
            "date": "2017-01-01T00:00:00",
            "datatype": "TOBS",
            "station": "GHCND:USC00173046",
            "attributes": ",,7,0700",
            "value": 6
        },
        ...
        ...
    ]
}
```

The above is just a portion of the results. The "station" is the one I specified, and the "date" falls within the range I specified. The "datatype" is a code that indicates what the record refers to.

I don't feel like going into codes too deeply - you can [find more here](ftp://ftp.ncdc.noaa.gov/pub/data/ghcn/daily/readme.txt), under the header "III. FORMAT OF DATA FILES" - but here are a few to match the results above:

    PRCP = Precipitation (tenths of mm)
   	SNOW = Snowfall (mm)
	SNWD = Snow depth (mm)
    TMAX = Maximum temperature (tenths of degrees C)
    TMIN = Minimum temperature (tenths of degrees C)
    TOBS = Temperature at the time of observation (tenths of degrees C)

I'm guessing that "value" is self-explanatory - like 279 for SNWD is 279mm or about 11" of snow; and 6 for TOBS means .6°C, or about 33°F. The "attributes" though - not sure what those mean.

### Get Yearly Summary

Here's one last one - same station as before, but using the "yearly" dataset filtered to about a 7 year period.

    GET https://www.ncdc.noaa.gov/cdo-web/api/v2/data?stationid=GHCND:USC00173046&datasetid=GSOY&startdate=2010-01-01&enddate=2017-01-31

The results contain different codes than before, but I couldn't find definitions for them this time... so I'm not even sure what to make of this but here it is anyway.

```json
{
    "metadata": {
        "resultset": {
            "offset": 1,
            "count": 214,
            "limit": 25
        }
    },
    "results": [
        {
            "date": "2010-01-01T00:00:00",
            "datatype": "CDSD",
            "station": "GHCND:USC00173046",
            "value": 248.6
        },
        {
            "date": "2010-01-01T00:00:00",
            "datatype": "CLDD",
            "station": "GHCND:USC00173046",
            "attributes": "0",
            "value": 248.6
        },
        {
            "date": "2010-01-01T00:00:00",
            "datatype": "DP01",
            "station": "GHCND:USC00173046",
            "attributes": "0",
            "value": 118
        },
        {
            "date": "2010-01-01T00:00:00",
            "datatype": "DP10",
            "station": "GHCND:USC00173046",
            "attributes": "0",
            "value": 90
        },
        {
            "date": "2010-01-01T00:00:00",
            "datatype": "DP1X",
            "station": "GHCND:USC00173046",
            "attributes": "0",
            "value": 19
        },
        {
            "date": "2010-01-01T00:00:00",
            "datatype": "DSND",
            "station": "GHCND:USC00173046",
            "value": 78
        },
        {
            "date": "2010-01-01T00:00:00",
            "datatype": "DSNW",
            "station": "GHCND:USC00173046",
            "attributes": "0",
            "value": 16
        },
        {
            "date": "2010-01-01T00:00:00",
            "datatype": "DT00",
            "station": "GHCND:USC00173046",
            "attributes": "0",
            "value": 9
        },
        ...
        ...
    ]
}
```

## Thoughts

Emailing an API token, with no apparent way to reset it (maybe there is and I didn't see it), is a little like emailing a password. It wouldn't be my first choice. I wish they did like many other APIs and either let you generate it through the secure website itself, or make a separate API call to return the token.

Each of the endpoints has some examples you can try online without an API token, which is nice for verifying they work, but it's an incredibly limited tool since you can't modify them through the website itself.

I wish there were more detail about what the codes in the results mean. When it got to the point of returning data, there are a lot of codes and numbers that don't seem to be defined at all. Maybe this is only meant to be used by someone with a meteorological background?

I'd love to use this in a project, maybe on the Raspberry Pi. I was thinking maybe query the station closest to my house and have a simple LED light up depending on the weather - green for rain, white for snow, blue for sleet, unlit if no precipitation. It seems like it'd take more research though.

url: https://raw.githubusercontent.com/vinayreddy100/15-apis-in-15-days/b92bc96939f6373462b629b5a19a557ff9a5aa63/Day 07 - NOAA API.md

path: /Day 07 - NOAA API.md

filename: Day 07 - NOAA API.md


text:
# formsy-blueprintjs

This library is a wrapper for [BlueprintJS](http://blueprintjs.com/) form components to allow them to be used
with [formsy-react](https://github.com/christianalfoni/formsy-react), a form validation component for React forms.

## Installation

To and install formsy-blueprintjs and add it to your `package.json`, run:

```
$ npm install --save formsy-blueprintjs
```

You will also need to add formsy-react if not already installed:

```
$ npm install --save formsy-react
```

## Usage

The package should work just fine, but it's largly untested and there could be bugs. Feel free to contribute and submit PR's.

### ES6 Imports

```js
import FormsyCheckbox from 'formsy-blueprintjs/lib/formsyCheckbox';
import FormsyDateInput from 'formsy-blueprintjs/lib/formsyDateInput';
import FormsyDateInputPicker from 'formsy-blueprintjs/lib/formsyDateInputPicker';
import FormsySelect from 'formsy-blueprintjs/lib/formsySelectField';
import FormsyRadioGroup from 'formsy-blueprintjs/lib/formsyRadioGroup';
import FormsyText from 'formsy-blueprintjs/lib/formsyTextField';
import FormsySwitch from 'formsy-blueprintjs/lib/formsySwitch';
```

### Examples
Short examples on how it can be used.

#### Checkbox
```jsx
<FormsyCheckbox required name='isAdmin' label='Administrator' />
```

#### Date Input
```jsx
<FormsyDateInput required name='expireDate' label='Expire Date' />
```

#### Selects
```jsx
const movies = [{title: 'Gladiator', value: 0}, {title: 'The Matrix', value: 1}];

<FormsySelect required initialValue={0} name='movieId' label='Movies'>
  {movies}
</FormsySelect>
```

#### Radio Groups
```jsx
const movies = [{title: 'Gladiator', value: 0}, {title: 'The Matrix', value: 1}];

<FormsyRadioGroup required initialValue={1337} name='movieId' label='Movies'>
  {movies}
</FormsyRadioGroup>
```

#### Text Field Input
```jsx
<FormsyText required name='email' validations='isEmail' validationError='This is not an email' placeholder='Example<EMAIL_ADDRESS>label='Email' />
```

#### Switch
```jsx
<FormsySwitch required name='updateMovies' label='Update Movies' />
```

### Available Props
Most of these components share props, these are available.

```
Common Props
  label:            string    The label/text of the component.
  inline:           bool      Controls if the input should be inline, or not.
  fill:             bool      The component tries to fill it's parent width.
  disabled:         bool      Controls if the component is disabled or not.
  name:             string    Used by formsy-react.
  value:            varies    For an controlled component.

FormsyCheckbox
  initialValue:     string    Controls if the checkbox is checked by default.

FormsyDateInput
  initialValue:     string    The default value of the component, should be a valid date.
  placeholder:      string    The placeholder text or value.
  maxDate:          string    The maxdate available for selection, should be a valid date.
  minDate:          string    The maxdate available for selection, should be a valid date.

FormsySelect
  initialValue:     number    The initial selected option in the select input.
  placeholder:      string    The placeholder text or value.
  leftIconName:     string    A valid BlueprintJS icon name.

FormsyRadioGroup
  initialValue:     number    The initial selected option in the radio group.
  placeholder:      string    The placeholder text or value.
  leftIconName:     string    A valid BlueprintJS icon name.
  style:            object

FormsyText
  initialValue:     number    The initial text of the component.
  type:             string    The input type, for example 'text' or 'password'.
  placeholder:      string    The placeholder text or value.
  leftIconName:     string    A valid BlueprintJS icon name.
  rightElement:     element   A valid component to display, for example an <Button />
  inputRef:         element

FormsySwitch
  initialValue:     string    Controls if the switch is checked by default.

```

## Known Issues

See [issues](https://github.com/orecus/formsy-blueprintjs/issues).

## Release History

See [CHANGELOG.md](https://github.com/orecus/formsy-blueprintjs/blob/master/CHANGELOG.md)

## Acknowledgements

Based on [Formsy-Material-UI](https://github.com/mbrookes/formsy-material-ui).

## Contribute

Yes please. :)

repository: orecus/formsy-blueprintjs

repo_name: orecus/formsy-blueprintjs


text:
    Star

    Download

    Issue

## About
The NodeMCU is an open-source firmware and development kit which allows us to use a low-cost ESP8266 WiFi MCU to provide “the best platform for IOT application development at the lowest cost” [NodeMCU homepage](https://www.nodemcu.com/index_en.html).

ESPHome is the software and firmware flasher we’ll be using; it’s a “system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems” [ESPHome homepage](https://esphome.io).

# Local Control (via ESPHome)

## Upon Completion
By completing this project you will have a device which can wave 👋 when its virtual button is pressed via its website.

## Components
- NodeMCU WiFi development board *1
- Servo motor (with three types of arm) *1
- Enclosure box (MDF sheet) *6
- Waving sign *1

---
## Hardware Setup
1. Assemble the box
> Please follow the marks on the parts, match each paired marks. The marks should be facing inside the box.

2. Plug servo to NodeMCU ( Yellow/Light Orange-D4, Red-3.3v, Brown-GND )

---
## Software Setup

To make the process easier, you don't need to assemble everything while you set up the software. **You just need to plug your servo to the NodeMCU.** After the software is setup successfully you can then attach them to the box.

*Prerequisites*
- working WiFi, you know the SSID(name) & password
- computer or phone

We've already flashed the basic program, all you need to do is follow the below steps and connect it to your WiFi.

### What We're Gonna Do - The Overall Process
This is just a high level walkthrough, detail steps to follow are in the next section.
- Connect to NodeMCU WiFi
- Tell it your own WiFi name and password
- Let it connect to your WiFi
- Connect your phone back to your own WiFi
- Use your own WiFi to browse to the device's web server to control it

### Detailed Steps
1. Plug in the micro USB cable for the NodeMCU (just for providing power, don't need to connect to a computer)
2. Use your device (PC/phone) and connect to the WiFi netowrk: "gix_iot"
3. Password: "gixmkrspc"
4. Wait for the webpage to popup, you will see this:
![ap_screenshot](./assets/ap_screenshot.png)
> (If the page didn't show up after you connected to the WiFi, try to go to http://<IP_ADDRESS>/)
>
> An iPhone or Android device may change the WiFi network back to your home network, since the NodeMCU doesn't have an Internet connection. You may need to ensure that "Auto Join" is turned off for your other WiFi (iPhone) or forget the other network (Android); this step is only to get the NodeMCU onto your home network and then you can re-join and/or turn on "Auto Join" for your home WiFi again.
5. Enter your **own WiFi's** SSID(name) & password,
 you can use your home WiFi, phone hotspot, etc.
6. After you see this message, **Press RST button on the NodeMCU**, let the NodeMCU reboot and connect to your own WiFi
![wifi_setup](./assets/wifisetup_screenshot.png)
7. Disconnect your device from "gix_iot" and **reconnect your device to your own WiFi**
8. Open your browser and go to [http://servo_test.local](http://servo_test.local) you will see this page:
![control_screenshot](./assets/control_screenshot.png)
> If you can't see this page, try refreshing the page several times in 1-2 minutes. After 1-2 minutes, if you still can't see this page. Go back to step **2.** and connect to "gix_iot" again. This time you might get a WiFi list in your popup page, connect to the WiFi you want.

9. Click Toggle, you can move the servo now 👋!

### Congratulations! 👏👏👏
Now that the WiFi connection is configured, your NodeMCU will automatically connect to your WiFi every time it boots up.

10. You can attach the servo and board to the enclosure

> If you want to connect to another WiFi, turn off or get away from the WiFi signal you previously connected to. Once the NodeMCU failed to connect to WiFi, it will start "ap mode" and you can reset it from step **2.**

> In the future we will have other activities involving this device! Please see the section below, tinker and bring any ideas or changes up so we can bring that functionality to other cohort members!

## Extensibility
As the microcontroller is easily reprogrammable, the hand wave can be triggered, or its action changed by possibilities only limited by your imagination! For instance, you can easily hook ESPHome into an automation platform called Home Assistant, which will allow you to wave the hand for all sorts of triggers; for instance, if someone opens your door, you can use the ESPHome to wave. You can also change the hand itself to become an indicator; since we’re using a servo, you can control the state, or how much, the servo rotates. You can make the hand move to different positions depending on whether it’s cloudy or sunny and make the servo rotate to that predefined position when the weather changes.

## Custom Development Setup
In order to customize the microcontroller, you have to re-flash the NodeMCU again. Below are the steps that you need to do.

### For Windows:
1. Set up a new virtual environment in Python
- make sure you have python installed (open Command Prompt and type in `python`; if it opens python shell then you've confirmed Python is accessible in your Path; otherwise reinstall Python and ensure you check the box to add it to your system's path environment variable)
- locate the directory you want the virtual environment to be installed in
- in the Windows Command Prompt, enter "python -m venv venv"
  - This command invokes the python module *venv* (first parameter) and creates it inside a directory named *venv* (second parameter)
- then run `.\venv\Scripts\Activate.bat`
  - This command activates the virtual environment; you should now see your command prompt prepended with **(venv)**
- IF using Power Shell (instead of command prompt), use `.\venv\Scripts\Activate.ps1`
  - This command activates the virtual environment; you should now see your command prompt prepended with **(venv)**
- ⚠ensure that servo is not connected to the NodeMCU before next step
2. Installing esphome
- enter `pip install esphome`
1. Download or `git clone` the [repo](https://github.com/codycodes/gix-mkrfridays-iot/archive/master.zip) and extract it anywhere (best is to put it in same folder as your venv)
- in the standalone folder, right-click and create new text document.
- copy and paste these into it.
    ap_ssid: "Servo Test Fallback Hotspot"
    ap_pass: "test12341234"
    ota_pass: "test12341234"
- rename file name to "secrets.yaml" (ensure the file extension is `.yaml` and **not** `.txt`)
4. Run!
- in Command Prompt, type and run `cd *path to the standalone folder*`
- then `esphome servo.yaml run`
- it should start installing
- DONE!
5. You can now develop your own custom esphome components! Get started on [esphome.io](http://esphome.io)
### For macOS/Linux
1. Ensure you have python3 [installed](https://docs.python-guide.org/starting/install3/osx/)
2. Open your favorite terminal app
3. run `./install.sh`
4. run `./run.sh`
    - You can replace the `servo.yaml` file here with your own configuration!
5. You can now develop your own custom esphome components! Get started on [esphome.io](http://esphome.io)

repository: JoeyWangTW/gix-mkrfridays-iot

repo_name: JoeyWangTW/gix-mkrfridays-iot


text:
canjs
=====

Contacts with CanJS and Flask backend

Requirements:

Flask (sudo pip install flask)

Pymongo (sudo pip install pymongo)

MongoDB (see [here](https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-12-04) for details)

How to run
=====
python app.py

go to localhost:9999

repository: no-glue/canjs-test

repo_name: no-glue/canjs-test


text:
---
template: page
title: Sequence to Sequence Modeling
permalink: 08/seq2seq/
mathjax: true
---

# Literature

We'll cover three of the seminal papers in sequence to sequence learning:

- _Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks_ by Alex Graves et al. (<https://dl.acm.org/citation.cfm?id=1143891>, [author's copy](https://www.cs.toronto.edu/~graves/icml_2006.pdf))
- _Listen, Attend and Spell_ by William Chan et al. (<https://ieeexplore.ieee.org/document/7472621/>, <https://arxiv.org/abs/1508.01211>)
- _Neural Machine Translation by Jointly Learning to Align and Translate_ by Dzmitry Bahdanau et al. (<https://arxiv.org/abs/1409.0473>).

As well as [_Attention and Augmented Recurrent Neural Networks_](https://distill.pub/2016/augmented-rnns/) by Chris Olah and Shan Carter.

# Exercise

There is a basic [TensorFlow tutorial on seq2seq](https://www.tensorflow.org/tutorials/seq2seq).

For this week, let's get a smaller example going: synthesis of handwriting using [rnnlib](https://github.com/szcom/rnnlib) and the Uni Bern [IAM On-Line Handwriting Database](http://www.fki.inf.unibe.ch/databases/iam-on-line-handwriting-database).

## Remarks

- You can either register for the dataset, or obtain a copy during class.
- If you run into trouble building openblas (as a submodule of rnnlib), you may need to specify the target CPU architecture (eg. Macbook Pro 2017: HASWELL, see [example diff file](08-seq2seq/patch-cmake.diff)).
- It's recommended to add the rnnlib directory to your path (eg. `export PATH=$(pwd):$PATH`).
- You will need the python packages `ScientificPython` and `scipy`
- On a mac, use `brew` to install the packages `netcdf`, `nco` and `ncview` (more on netcdf [here](https://www.unidata.ucar.edu/software/netcdf/docs/tutorial_8dox.html) or [here](http://pro.arcgis.com/en/pro-app/help/data/imagery/fundamentals-of-netcdf.htm))
- It seems that the current `master` branch is broken for recent netcfd/python2; use [this patch](08-seq2seq/patch-ncf4.diff) to fix the NCF generation.
- The recipe will take a few hours to compute -- it's best to let it run over night!

repository: bdqnghi/sequence-learning

repo_name: bdqnghi/sequence-learning


text:
# Malware-Image-Analysis
Extract image features from "transformed malware binary" then analyze.

### Dataset: Malimg (https://www.kaggle.com/afagarap/malimg-dataset)
    Family name: C2LOP and Lolyda.AT

repository: skycckk/Malware-Image-Analysis

repo_name: skycckk/Malware-Image-Analysis


text:
## Git/GitHub Lab

We'll work in pairs: **User A** and **User B**

### User A

- Set up a new repository, locally

        mkdir [directory]
        cd [directory]
        git init

- Create or copy over a file or two and add them to the repository.

        [create/copy files]
        git add [filenames]
        git commit

- Go to your GitHub account and create a new repository

- Connect and push your local repository to GitHub

        git remote add origin git@github.com:[userA]/[repo]

  or

        git remote add origin https://github.com/[userA]/[repo]

  add then

        git push -u origin master

### User B

- Fork user A's repository on GitHub: go to
  `http://github.com/[UserA]/[repo]` and click the "Fork" button.

- Clone _your_ version of that repository locally

        git clone git@github.com:[userB]/[repo]

  or

        git clone https://github.com/[userB]/[repo]

- Change a file, and another file

        [change/copy files]
        git add [filenames]
        git commit

- Push the changes to GitHub

        git push

- Make a pull request:

  - Go to _your_ version of the repository on GitHub
  (`http://github.com/[userB]/[repo]`)
  - Click "Pull requests"
  - Click "New pull request"
  - Click "Create pull request"
  - Optionally add a comment
  - Click "Send pull request"

### User A

- Connect to User B's repository

        git remote add [userB] git://github.com/[userB]/[repo]

- Fetch the changes from User B

        git fetch [userB]

- Checkout their version of the repo as a local branch

        git checkout -b [userB] [userB]/master

- Check that you like the changes

- Use `git branch` to see your branches; the asterisk indicates the
  one you're currently on.

- Switch back to ("`checkout`") your master branch

        git checkout master

- Note that the files are in the state that _you_ left them.

- Merge their work into your master branch.

        git merge userB

- Push the work to github.

        git push

- Make another change to the file; then `add`, `commit`, and `push`.

### User B

- Add a connection to User A's repo

        git remote add userA git://github.com/[userA]/[repo]

- Fetch User A's latest

        git fetch userA

- Check it out as a local branch

        git checkout -b userA userA/master

- Test things

- Checkout your master, merge the change from User A, and push to
  github.

        git checkout master
        git merge userA
        git push

### Users A and B

- Make simulateneous changes, then `add`, `commit`, and `push`.

### User B

- Pull User A's change

        git checkout userA
        git pull

- Go back to your master branch and merge the change from User A.

        git checkout master
        git merge userA

- Fix the merge conflict; then `add`, `commit`, `push`.

- Make another pull request

### User A

- Fetch User B's repo

        git checkout [userB]
        git pull

- Merge into your master branch

        git checkout master
        git merge [userB]

- Push back to github

        git push


text:
# Fibonacci

Using a BPMN to calculate Fibonacci numbers.

![BPMN](fibonacci.png)

* no job workers - only FEEL expressions in variable mappings
* using a sequential multi-instance sub-process to calucate the numbers
* modify the list to iterate over while iterating in the output mapping of the sub-process
```
source: =fibs[loopCounter]+fibs[loopCounter+1]
target: nextFib

source: =append(fibs,nextFib)
target: fibs
```
* the list is initialized using an output mapping on the start event
```
source: =[1,1]
target: fibs
```

## Usage
* deploy the [workflow](fibonacci.bpmn) to a Zeebe broker (>= 0.23.0)
* create a new workflow instance with
  * a numberic variable `x` that defines the amount of numbers to calculate


text:
Overview
========
This is a Cython wrapper for codec2 library. More about codec2 can be found
[here](http://www.rowetel.com/blog/?page_id=452).

Installation
============
Run:

    python setup.py install

to install the library.

Documentation
=============
pycodec2 uses sphinx for documentation generation. To generate pydocs run:

    cd docs
    make html

This will create HTML documentation in docs/_build/html/

Remarks
=======

This library is considered complete. Please notify me or send a pull request on
Github if you notice any bugs.


text:
# RandomScripts
Just random scripts i make when im bored, mainly useless

# Areas
External Links [{JUMP}](#external_links)

jQuery:
- [Itself](#jquery_link)

HTML:
- [Base]()

CSS:
- [Base]()

---

#  Q&A

Why Did i make this?

I made this for showing off what i make, otherwise it whould have no use.

---

# References
[jQuery]()

---
#  External Links
My Website:
 - [Hire](https://www.darkeyegod.com/hire)
 - [About](https://www.darkeyegod.com/about)
 - [Homepage](https://www.darkeyegod.com)
 - [Images](https://www.darkeyegod.com/images)
 - [Code](#external_links)
 - [Examples](#external_links)

repository: DarkeyeGod/RandomScripts

repo_name: DarkeyeGod/RandomScripts


text:
---
title: Accessing Client Changes on the Server Side
page_title: Accessing Client Changes on the Server Side - RadTreeView
description: Check our Web Forms article about Accessing Client Changes on the Server Side.
slug: treeview/client-side-programming/accessing-client-changes-on-the-server-side
tags: accessing,client,changes,on,the,server,side
published: True
position: 1
---

# Accessing Client Changes on the Server Side

Client side changes are available on the server side after postback. You can use the **ClientChanges** property of **RadTreeView** to access them. The **ClientChanges** property of **RadTreeView** returns a collection of objects of type **ClientOperation**. An operation has two properties:

* **Item** - the item which has been affected by the client operation;

* **Type** - the type of the operation which is one of the following four cases:

	* **Update** - when a property is set on the the client through methods such as **set_text**(), **set_value**(), **enable**(), **disable**(), etc.: treeNode.disable();

	* **Remove** - when the **remove** client method is called: *treeview.get_nodes().remove(treeNode);*

	* **Insert** - when the **add**client method is called: *treeview.get_nodes().add(treeNode);*

	* **Clear** - when a node with child nodes calls the **clear**() method: *parentNode.get_nodes().clear()*. If the parent node has no child nodes, the **ClientChanges** collection is not altered.

>note Note that you need to call the **trackChanges**() and **commitChanges**() client methods of **RadTreeView** in order to be able to access the changes on the server via the **ClientChanges** property.
>

## Example:

The code snippet below enumerates through all operations in the **ClientChanges** collection and utilizes both the **Item** and **Type** properties. For a complete demo, please see the client-side [Add/Remove/Disable Items](https://demos.telerik.com/aspnet-ajax/treeview/examples/programming/clientsideapi/defaultcs.aspx) example.

````C#
foreach (ClientOperation<RadTreeNode> operation in RadTreeView1.ClientChanges)
{
    RadTreeNode node = operation.Item;

    switch (operation.Type)
    {
        case ClientOperationType.Insert:
            break;
        case ClientOperationType.Remove:
            break;
        case ClientOperationType.Update:
            UpdateClientOperation<RadTreeNode> update = operation as UpdateClientOperation<RadTreeNode>;
            break;
        case ClientOperationType.Clear:
            break;
    }
}
````
````VB.NET
For Each operation As ClientOperation(Of RadTreeNode) In RadTreeView1.ClientChanges

Dim node As RadTreeNode = operation.Item

 Select Case operation.Type
  Case ClientOperationType.Insert
   Exit Select
  Case ClientOperationType.Remove
   Exit Select
  Case ClientOperationType.Update
    Dim update As UpdateClientOperation(Of RadTreeNode) =
        TryCast(operation, UpdateClientOperation(Of RadTreeNode))
   Exit Select
  Case ClientOperationType.Clear
   Exit Select
 End Select
Next
````

# See Also

 * [RadTreeView]({%slug treeview/client-side-programming/objects/radtreeview%})

repository: telerik/ajax-docs

gha_language: C#

repo_name: telerik/ajax-docs