text:
# ansible-docker-swarm

Setup Docker Swarm with Ansible.

In this setup I have a client node, which will be my jump box, as it will be used to ssh with the docker user to my swarm nodes with passwordless ssh access.

## Pre-Check

Hosts file:

```
$ cat /etc/hosts
<IP_ADDRESS> client
<IP_ADDRESS> swarm-manager
<IP_ADDRESS> swarm-worker-1
<IP_ADDRESS> swarm-worker-2
```

SSH Config:

```
$ cat ~/.ssh/config
Host client
  Hostname client
  User root
  IdentityFile /tmp/key.pem
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null

Host swarm-manager
  Hostname swarm-manager
  User root
  IdentityFile /tmp/key.pem
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null

Host swarm-worker-1
  Hostname swarm-worker-1
  User root
  IdentityFile /tmp/key.pem
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null

Host swarm-worker-2
  Hostname swarm-worker-2
  User root
  IdentityFile /tmp/key.pem
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null
```

Install Ansible:

```
$ apt install python-setuptools -y
$ easy_install pip
$ pip install ansible
```

Ensure passwordless ssh is working:

```
$ ansible -i inventory.ini -u root -m ping all
client | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
swarm-manager | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
swarm-worker-2 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
swarm-worker-1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
```

## Deploy Docker Swarm

```
$ ansible-playbook -i inventory.ini -u root deploy-swarm.yml
PLAY RECAP

client                     : ok=11   changed=3    unreachable=0    failed=0
swarm-manager              : ok=18   changed=4    unreachable=0    failed=0
swarm-worker-1             : ok=15   changed=1    unreachable=0    failed=0
swarm-worker-2             : ok=15   changed=1    unreachable=0    failed=0
```

SSH to the Swarm Manager and List the Nodes:

```
$ docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
0ead0jshzkpyrw7livudrzq9o *   swarm-manager       Ready               Active              Leader              18.03.1-ce
iwyp6t3wcjdww0r797kwwkvvy     swarm-worker-1      Ready               Active                                  18.03.1-ce
ytcc86ixi0kuuw5mq5xxqamt1     swarm-worker-2      Ready               Active                                  18.03.1-ce
```

Create a Nginx Demo Service:

```
$ docker network create --driver overlay appnet
$ docker service create --name nginx --publish 80:80 --network appnet --replicas 6 nginx
$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
k3vwvhmiqbfk        nginx               replicated          6/6                 nginx:latest        *:80->80/tcp

$ docker service ps nginx
ID                  NAME                IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
tspsypgis3qe        nginx.1             nginx:latest        swarm-manager       Running             Running 34 seconds ago
g2f0ytwb2jjg        nginx.2             nginx:latest        swarm-worker-1      Running             Running 34 seconds ago
clcmew8bcvom        nginx.3             nginx:latest        swarm-manager       Running             Running 34 seconds ago
q293r8zwu692        nginx.4             nginx:latest        swarm-worker-2      Running             Running 34 seconds ago
sv7bqa5e08zw        nginx.5             nginx:latest        swarm-worker-1      Running             Running 34 seconds ago
r7qg9nk0a9o2        nginx.6             nginx:latest        swarm-worker-2      Running             Running 34 seconds ago
```

Test the Application:

```
$ curl -i http://<IP_ADDRESS>
HTTP/1.1 200 OK
Server: nginx/1.15.0
Date: Thu, 14 Jun 2018 10:01:34 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 05 Jun 2018 12:00:18 GMT
Connection: keep-alive
ETag: "5b167b52-264"
Accept-Ranges: bytes
```

## Delete the Swarm:

```
$ ansible-playbook -i inventory.ini -u root delete-swarm.yml

PLAY RECAP
swarm-manager              : ok=2    changed=1    unreachable=0    failed=0
swarm-worker-1             : ok=2    changed=1    unreachable=0    failed=0
swarm-worker-2             : ok=2    changed=1    unreachable=0    failed=0
```

Ensure the Nodes is removed from the Swarm, SSH to your Swarm Manager:

```
$ docker node ls
Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.
```

Thanks a lot to [lucj](https://github.com/lucj/swarm-rexray-ceph), make sure to checkout his repo.

repository: HimmelreichMarcel/shaperConfig

gha_language: Python

repo_name: HimmelreichMarcel/shaperConfig


text:
# RSHS810
Small script to process the RSHS 810 oscilliscope logs

RS Pro RSHS800 Series Handheld Digital Oscilloscopes

RS Pro RSHS800 Series handheld digital oscilloscopes provide oscilloscope, multimeter and recorder (including trends and waveform) functions all in one package. The choice of model is between 60 MHz ( 123-6454 ), 100 MHz ( 123-6455 ), 150 MHz ( 123-6456 ) & 200 MHz ( 123-6457 ) bandwidths. These instruments offer stable performance combined with high performance. They have the flexibility in use for both workbench and field applications.

Features and Benefits

Dual-input oscilloscope, multimeter and recorder (including TrendPlot and waveform) in one instrument
Input voltage through BNC up to CATⅡ 300V and CAT Ⅲ 150V
Standard probe 10X CATⅡ 400 V
Oscilloscope and multimeter safety grade up to CATⅡ 600 V and CAT Ⅲ 300 V
5.7 inch TFT colour LCD display
1GSa/s real-time sampling rate single channel, up to 50GSa/s equivalent sampling rate, 2 Mpts memory depth
With 6000 dots display resolution multimeter provides measurements of DCV, ACV, DCI, ACI, Resistance, Diode, Capacitance, Continuity
Supports Scope TrendPlot, Meter TrendPlot, Scope Recorder
Trigger modes Automatic , Normal and Single Trigger types: Edge, Pulse, Video, Slope, Alternative
32 automatic measurements, 3 cursor measure modes
4 digital filter mode - Low pass, High pass, Band pass, Band limit
Math functions +, - , ´, ÷, FFT operations
Multiple language user interface
Standard configuration interface USB Device, USB Host
Supports USB storage and update, supports PC remote control and PictBridge print
Rechargeable battery pack (compact, portable fit for outdoor operation)
Dimensions 259.5 x 163.2 x 53.3 mm
Weight 1.5 kg

license: MIT

branch_name: refs/heads/master

extension: md

license_type: permissive


text:
---
layout: post
title: "Grapespot Letter on Licensing Hearing Withdrawal"
permalink: /archives/2006/12/grapespot_lette.html
commentfile: 2006-12-09-grapespot_lette
category: news
date: 2006-12-09 09:26:27
---

The directors of Grapespot, the company planning to build Par Vinu has asked this site to publish the following note regarding the [letter from Harry Jacobs](/archives/2006/12/licensing_subco_1.html) on the 8th December.

> We write with reference to Mr Harry Jacob's note of December 8th on this website. The Directors of Grapespot Ltd feel that it might be useful for readers to be aware of the facts regarding the contents of the only communication between Grapespot and Mr Jacobs on the subject of his Complaint to the Richmond Magistrates' Court. That communication was in the form of the attached letter dated November 10th from our Licensing Solicitor, Mr Neil MacDonald, to Mr Jacobs:

> Readers may also wish to be aware that we were advised three weeks ago on November 17th, by Richmond Magistrates' Court, that the Complaint had been withdrawn, as per attached.

> The Directors
> Grapespot Limited

The letters.

Letter to Harry Jacobs from Grapespot's lawyers (page 1)

Letter stating the appeal has been withdrawn.

repository: pmahnke/stmgrts

gha_language: HTML

repo_name: pmahnke/stmgrts


text:
---
layout: post
title: Project 5
description: Real-time subject-independent classification of brain states
date: 2021-01-02T15:30:30-04:00
img: /img/sic.jpg
categories:
  - projects
tags:
  - Neurotechnology
  - Machine Learning
---

The ability to classify brain-states online is crucial for any real-time neuro-rehabilitation application. Although most studies focus on EEG-based paradigms, the results for online, single-trial classifications in such a paradigm are nominal, given the large non-stationarity of features in EEG data. We turned our attention to fNIRS, another non-invasive method to record neural activity non-invasively.

We implemented a simple SVM-based classifier to classify left vs right hand movements (clenching the fist) from the NIRS signal. To our surprise, the classifier could also detect "imagined" movements (the subject imagined clenching their fist *without actually moving*). Furthermore, the classifier could generalize across subjects owing to a novel bias-correction that was implemented on a trial-by-trial basis. This means that we could train a classifier on a group of subjects based on their motor execution, and we could classify imagined movements from a new group of subjects! Cross subject, cross-modality classification.

You can read my paper (the first report of online, multi-channel subject-independent classification of movement intentions!) [here](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0159959).


text:
---
title: Help Page
description: Help page
---
How to test

1. Install Waves Keeper (a browser extension that allows users to manage their private keys and interact with our platform) switch to operation in Test Network

2. At the moment our smart  contract is deployed in Test Network. This network allows user to acquire test WAVES tokens with help of built in Faucet tool.

 Relax and wait for your 10 waves to be dropped in your wallet within few minutes.

3. Feel free to send waves to a project which appeals to you.

repository: paveli/e-Rise-frontend

gha_language: JavaScript

repo_name: paveli/e-Rise-frontend


text:
# Keycloak PHP SDK

This package aims to wrap the Keycloak API and provide an easy and consistent layer
for managing your keycloak realms.

![License](https://img.shields.io/badge/license-MIT-brightgreen)
[![PHP](https://img.shields.io/badge/%3C%2F%3E-PHP%207.3-blue)](https://www.php.net/)
[![Code Style](https://img.shields.io/badge/code%20style-psr--2-darkgreen)](https://www.php-fig.org/psr/psr-2/)

## Documentation

### Quick start

First create a KeycloakClient with your credentials.
```php
$kcClient = new Keycloak\KeycloakClient(
    'my-client-id',
    'my-client-secret',
    'my-realm',
    'https://my-keycloak-base-url.com'
);
```
Or use a admin user credentials.
```php
$kcClient = new Keycloak\KeycloakPasswordClient(
    'my-realm',
    'https://my-keycloak-base-url.com',
    'username',
    'password'
);
```
Then you can pass the client to any of the APIs.

```php
$userApi = new Keycloak\User\Api($kcClient);
$allUsers = $userApi->findAll();
```

### Tested platforms

These are the platforms which are officially supported by this package. Any other versions will probably work but is not guaranteed.

| Platform | Version |
| --- | ---: |
| PHP | 7.3 |
| Keycloak | 11 |

### Contributing

Please read our [contribution guidelines](./CONTRIBUTING.md) before contributing.

repository: logicpanel/keycloak-php-sdk

branch_name: refs/heads/main

repo_name: logicpanel/keycloak-php-sdk


text:
---
layout: post
title: Java Flip Tile
---

A simple tile-based game built in JavaFX.  The complexity comes with the fact that flipping a single tile will also flip all adjacent ones.
The Java Flip Tile project can be found [here](https://github.com/okinskas/FlipTile).

First, Download/clone the repository.

```bash
git clone git@github.com:okinskas/FlipTile.git
```

From the home directory, build the jar via Maven.

```bash
$ mvn clean install
```

Start the game using the newly created jar.

```bash
$ java --jar target/fliptile-1.0-SNAPSHOT.jar
```

You will see the game with a blank board of tiles.

![_config.yml]({{ site.baseurl }}/images/fliptile/blank-board.png)

Click on tiles to flip the colour of each tile along with the tiles touching each side.

![_config.yml]({{ site.baseurl }}/images/fliptile/in-game-board.png)

Once all tiles have been flipped to black -- you win! Click OK to start again.

![_config.yml]({{ site.baseurl }}/images/fliptile/complete-message.png)

_Source code for the project can be found [here](https://github.com/okinskas/FlipTile)_.

gha_language: CSS

gha_license_id: MIT


text:
---
title: Notices
---

### Privacy Statement

The AAC demonstration application does not collect data about individual users. General usage analytics are collected for the site, for the purposes of understanding patterns of use and addressing technical performance issues. This data is not associated with individual users.

### Links to Other Sites
This site contains links to partner websites. The American Art Collaborative project is not responsible for the privacy practices or the content of those websites.

### Liability and Disclaimer

The American Art Collaborative provides this prototype website as a service to its grant partners in the development of their linked data for the project, and as a demonstration to others in the cultural heritage community.

The AAC, and Design for Context as the developer of this application, are not responsible for, and expressly disclaims all liability for, damages of any kind arising out of use, reference to, or reliance on any information contained within the site. While the information contained within the site is periodically updated, no guarantee is given that the information provided in this web site is correct, complete, reliable and up-to-date. Please check with each partner institution for the latest data related to the works displayed on this website - links to the partner websites are provided on each object page.

### Rights Statements for Data and Images

Information about rights for data and images found on this site are specific to each institutional contributor. Links will be found on each art/archival object page, and general information can be found on the [Data and Image Licensing](/licensing.html) page.

repository: designforcontext/museumbrowse

repo_name: designforcontext/museumbrowse


text:
---
title: UltraTech Machine - Writeup
author: Sujit Suryawanshi
date: 2020-11-28 15:10:00 +0800
categories: [TryHackMe]
tags: [tryhackme, thm, ultratech]
---

![Desktop View]({{ "/assets/img/thm-machines/ultratech-main.png" | relative_url }})

---

Introduction

---

Hello InfoSec Folks, Today I did UltraTech machine from TryHackMe. It was medium level machine in which there are two webservers in which one is for API running on NodeJs and another is for frontend. The initial shell can get by doing Os Command Injection on webserver's API running on port 8081. For User there is MD5 hash saved in sqlite database and root can be owned with exploiting misconfigured docker.

Let's pawn this box.

This blog is meant for educational purposes only.

---

Port & Service Enumeration

---

Starting with Nmap,
As you can see below, The nmap scan revealed 4 port in which two are webserver running http on port 8081 and 31331 respectively.

```
root@kali:/tmp/ultratech# nmap -sC -sV -p- -T4 <IP_ADDRESS>
Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-28 23:49 IST
Nmap scan report for <IP_ADDRESS>
Host is up (0.17s latency).
Not shown: 65531 closed ports
PORT      STATE SERVICE VERSION
21/tcp    open  ftp     vsftpd 3.0.3
22/tcp    open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 dc:66:89:85:e7:05:c2:a5:da:7f:01:20:3a:13:fc:27 (RSA)
|   256 c3:67:dd:26:fa:0c:56:92:f3:5b:a0:b3:8d:6d:20:ab (ECDSA)
|_  256 11:9b:5a:d6:ff:2f:e4:49:d2:b5:17:36:0e:2f:1d:2f (ED25519)
8081/tcp  open  http    Node.js Express framework
|_http-cors: HEAD GET POST PUT DELETE PATCH
|_http-title: Site doesn't have a title (text/html; charset=utf-8).
31331/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-title: UltraTech - The best of technology (AI, FinTech, Big Data)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1021.01 seconds
```

We tried to do anonymous login on port 21 but it wasn't configured for anonymous login and also there were no exploit or CVE available for this particular version of ftp.

---

Web Enumeration

---

For further enumeration, I moved to Port 8081 to check which kind of web application is running.
It was API server. Next I checked webserver running on port 31331 and There I got web application.

I started directory fuzzing on this web application to find something fruitful and I got one directory as /js/ which has directory listing enabled.

![Desktop View]({{ "/assets/img/thm-machines/ultratech-dirsearch.png" | relative_url }})

![Desktop View]({{ "/assets/img/thm-machines/ultratech-dir-listing.png" | relative_url }})

There I found one Javascript file named api.js which contains below code.

```
function checkAPIStatus() {
        const req = new XMLHttpRequest();
        try {
            const url = `http://${getAPIURL()}/ping?ip=${window.location.hostname}`
            req.open('GET', url, true);
            req.onload = function(e) {
                if (req.readyState === 4) {
                    if (req.status === 200) {
                        console.log('The api seems to be running')
                    } else {
                        console.error(req.statusText);
                    }
                }
            };
```
So here the web application calling one api with endpoint as /ping?ip= which looks vulnerable for OS Command Injection.

For confirmation I tested the functionality.

![Desktop View]({{ "/assets/img/thm-machines/ultratech-bash-error.gif" | relative_url }})

As you can see in above GIF, When I inserted ' (single quote) then it gave syntax error as gives in bash.

---

Initial Shell

---

For initial shell we used ` (backtick) to insert our command and with this we got out initial shell.

![Desktop View]({{ "/assets/img/thm-machines/ultratech-initial-shell.gif" | relative_url }})

Here we got initial shell of this machine. Now let's do some enumeration to get user.

---

Privilege Escalation: User

---

After getting initial shell, First I checked /home directory to see what users are there and I found three users there (lp1, r00t, www)

After visiting to /home/www/api/ directory, We found one sqlite file which contains r00t user's hash.
As it was MD5 hash, We cracked it using john.

![Desktop View]({{ "/assets/img/thm-machines/ultratech-md5-hash.png" | relative_url }})

```
john --format=Raw-MD5 hash.txt
```

![Desktop View]({{ "/assets/img/thm-machines/ultratech-md5-hash-crack.png" | relative_url }})

We got password as n100906 after cracking r00t user's md5 hash.
Now let's login into r00t with SSH using above password.

---

Privilege Escalation: Root

---

After doing login with r00t I ran linpeas.sh to check for Privilege Escalation Vulnerabilities.

![Desktop View]({{ "/assets/img/thm-machines/ultratech-linpeas.png" | relative_url }})

As you can see in screenshot, The current user is in docker group so I just did some google for Privilege Escalation using Docker and got [GTFOBins](https://gtfobins.github.io/gtfobins/docker/).

To get root using docker, We first need to check containers of docker.

```
docker images
docker run -v /:/mnt --rm -it bash chroot /mnt sh
```

![Desktop View]({{ "/assets/img/thm-machines/ultratech-root.png" | relative_url }})

**Thanks for reading this writeup and all suggestions are welcome.**


text:
1. Generate changelog: Run `loghub spyder-ide/spyder-unittest --milestone vx.y.z`
1. Edit changelog and commit
1. Bump version number in `spyder_unittest/__init__.py`
1. Remove non-versioned files: Run `git clean -xfdi`
1. Create source distribution: Run `python setup.py sdist` in root
1. Check that source distribution does not contain any unnecessary files (e.g., cache, `.pyc`)
1. Create wheel: Run `python setup.py bdist_wheel`
1. Test wheel: Uninstall current plugin and run `pip install dist/spyder_unittest-xxx.whl`
1. Check that `dist/` contains only the source distribution and wheel that you want to upload
1. Upload to PyPI: Run `twine upload dist/*`
1. Test: Uninstall current plugin and run `pip install spyder-unittest`
1. Commit `spyder_unittest/__init__.py`
1. Create a version tag on above commit: Run `git tag -a vx.y.z`
1. Change version number in `spyder_unittest/__init__.py` to `....dev0` and commit and push
1. If building conda package:
    1. Wait for bot to submit PR **or** edit `meta.yaml` in fork of `spyder-unittest-feedstock`, changing version number and hash computed with `sha256sum dist/spyder_unittest-x.y.z.tar.gz`, test with `conda build conda.recipe`, and submit PR
    1. When automatic tests on PR finish successfully, merge PR
    1. Wait for CI to build Conda package
    1. Copy: `anaconda copy conda-forge/spyder-unittest/x.y.z --to-owner spyder-ide`
    1. Test Conda package: Uninstall current plugin and run `conda install -c spuder-ide spyder-unittest`
1. Push commits and version tag  to `spyder-ide` repo: Run `git push remote_name vx.y.z`
1. Use GitHub to edit tag and publish release
1. Announce release on Google Groups

repository: spyder-ide/spyder-unittest

repo_name: spyder-ide/spyder-unittest


text:
---
layout:     post
title:      A Markdown Notebook app - Part 1 Introduction and Setup
# date:       2022-03-19 18:00:00
summary:    TBD...
categories: typescript react electron markdown
---

## Table of Contents

- Part 1 - Introduction and setup (current)
- Part 2 - Creating a File Tree
- Part 3 - Previewing Files
- Part 3 - Creating and Updating Files
- Part 4 - Deleting Files

## Initializing with electron-forge

- electron forge docs: https://www.electronforge.io/templates/typescript-+-webpack-template
  - Use the `TypeScript + Webpack` template:

```
npx create-electron-app file-explorer-demo --template=typescript-webpack
cd file-explorer-demo
```

### Why TypeScript and Webpack?

**TypeScript** is JavaScript with added features for static typing. Languages that are statically require that variable types are known at compile time instead of discovered at run time, like in dynamically typed languages. This makes it perfect for mission-critical software applications, though the trade-off is that it often adds complexity to projects. However with that complexity comes:

- an easier time catching type errors
- easier to refactor code
- an easier time building more stable large and complex projects

This makes it a great choice for larger and complex JavaScript projects like desktop applications. With Typescript you also get:

- Bleeding edge JavaScript features that can be transpiled back to a version of JavaScript supported by most versions
- Tight editor integration and tooling like linting and IntelliSense
- Self documenting code and data
- Gradual adoption, plain JavaScript is still valid TypeScript

There are some drawbacks, the main two so far being:

- Added complexity and setup, so it might be suited for smaller projects
- Not all JavaScript libraries have created TypeScript types, but most popular ones have and can be found in the DefinitelyTypes repository on GitHub

**Webpack** is a JavaScript static module bundler. It combines all a website's javascript and its dependencies (libraries, images, styles, etc.) and combines them into a single, or small number of, static file(s) speeding up website load times. Bundling by itself is not so important for desktop applications because the dependencies will most likely be packaged with the rest of the application. But webpack also comes with:

- Tree-shaking: removes unused library code which shrinking the size of your application.
- Hot module replacement: drastically speeds up development time by updating views as you are developing.

### Add React

```
npm install --save react react-dom
npm install --save-dev @types/react @types/react-dom
```

By following the [framework integration guide](https://www.electronforge.io/guides/framework-integration/react-with-typescript) on the electron-forge wwbsite, we are told we need two things:
1. `src/App.tsx` file (I made some updates to the recommendation to make it feel more react-y)
2. updated `src/render.tsx` file

```typescript
// src/App.tsx
import * as React from 'react';
import * as ReactDOM from 'react-dom';

function App() {
    return(
        <h2>Hello from React!</h2>
    )
}

ReactDOM.render(, document.body);
```

```typescript
// src/renderer.ts
import './app';
```

---

Source code for this post: [GitHub Repository - tag: setup]

repository: frankolson/pixyll

repo_name: frankolson/pixyll


text:
---
external help file: TeamsFunctions-help.xml
Module Name: TeamsFunctions
online version: https://github.com/DEberhardt/TeamsFunctions/tree/master/docs/Assert-AzureAdConnection.md
schema: 2.0.0
---

# Assert-AzureADConnection

## SYNOPSIS
Asserts an established Connection to AzureAD

## SYNTAX

```
Assert-AzureADConnection [<CommonParameters>]
```

## DESCRIPTION
Tests a connection to AzureAd is established.

## EXAMPLES

### EXAMPLE 1
```
Assert-AzureADConnection
```

Will run Test-AzureADConnection and, if successful, stops.
If unsuccessful, displays request to create a new session and stops.

## PARAMETERS

### CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).

## INPUTS

### None
## OUTPUTS

### System.Void - If called directly; On-Screen output only
### Boolean - If called by other CmdLets, On-Screen output for the first call only
## NOTES
None

## RELATED LINKS

[https://github.com/DEberhardt/TeamsFunctions/tree/master/docs/Assert-AzureAdConnection.md](https://github.com/DEberhardt/TeamsFunctions/tree/master/docs/Assert-AzureAdConnection.md)

[https://github.com/DEberhardt/TeamsFunctions/tree/master/docs/about_TeamsSession.md](https://github.com/DEberhardt/TeamsFunctions/tree/master/docs/about_TeamsSession.md)

[https://github.com/DEberhardt/TeamsFunctions/tree/master/docs/](https://github.com/DEberhardt/TeamsFunctions/tree/master/docs/)

repository: heintonny/TeamsFunctions

repo_name: heintonny/TeamsFunctions


text:
# Yet another Brainfuck

My own little Brainfuck implementation in Python.

## References

* [Introduction to Brainfuck by the inventor, Urban Müller](https://www.youtube.com/watch?v=gjm9irBs96U&feature=youtu.be&t=8722) (16′ video)
* [Archive of mirror of original distribution](https://web.archive.org/web/20080501062856/http://www.hevanet.com/cristofd/brainfuck/brainfuckorigdistro/) ([local copy](origdistro/))
* [Brainfuck on Wikipedia](https://en.wikipedia.org/wiki/Brainfuck)

license: Unlicense

repository: alperbek/brainfuck

repo_name: alperbek/brainfuck


text:
# Issue States

[![Version](https://img.shields.io/npm/v/issue-states.svg?colorB=007EC6)](https://www.npmjs.com/package/issue-states)

> This project is no longer maintained, please migrate to [Issue States](https://github.com/dessant/issue-states).

Issue States is a GitHub App built with [Probot](https://github.com/probot/probot)
that opens or closes issues when they are moved to a project column.

![](assets/screenshot.png)

## Usage

1. **[Install the GitHub App]()**
   for the intended repositories
2. Start adding or moving issues to the project columns defined
   in `openIssueColumns` and `closedIssueColumns`

Issues which were already in the respective columns before the app was installed
will not be processed. To process these issues, move them to a different column,
then move them back.

Care must be taken during the use of the app to not conflict with project
automation presets on GitHub.

**If possible, install the app only for select repositories.
Do not leave the `All repositories` option selected, unless you intend
to use the app for all current and future repositories.**

#### Configuration

Optionally, create `.github/issue-states.yml` in the default branch
of the repository or add it at the same file path to a repository
named `.github` to override any of these default settings:

```yaml
# Configuration for Issue States - https://github.com/dessant/issue-states-app

# Open issues that are moved to these project columns. Set to `[]` to disable
openIssueColumns: []

# Close issues that are moved to these project columns. Set to `[]` to disable
closedIssueColumns:
  - Closed
  - Done

# Repository to extend settings from
# _extends: repo
```

## Deployment

See [docs/deploy.md](docs/deploy.md) if you would like to run your own
instance of this app.

## License

Copyright (c) 2018-2021 Armin Sebastian

This software is released under the terms of the MIT License.
See the [LICENSE](LICENSE) file for further information.

repository: dessant/issue-states-app

repo_name: dessant/issue-states-app


text:
# Image Factory Utility

## Automate Creation of WIM Files

For full change log and more information, [visit my site.](https://gal.vin/utils/image-factory-utility/)

Image Factory Utility is available from:

* [GitHub](https://github.com/Digressive/Image-Factory)
* [The Microsoft PowerShell Gallery](https://www.powershellgallery.com/packages/Image-Factory)

Please consider supporting my work:

* Sign up using [Patreon](https://www.patreon.com/mikegalvin).
* Support with a one-time donation using [PayPal](https://www.paypal.me/digressive).

Please report any problems via the ‘issues’ tab on GitHub.

Thanks
-Mike

## Features and Requirements

* This utility is designed to run on a computer with Microsoft Deployment Toolkit installed.
* The computer must have either the Hyper-V management PowerShell modules installed, or Virtual Box.
* The primary function of this utility is to automate the creation of wim files from MDT task sequences.
* The utility requires at least PowerShell 5.0.
* This utility has been tested on Windows 11, Windows 10, Windows Server 2019, Windows Server 2016 and Windows Server 2012 R2.

## Virtual Box Support

This utility expects Oracle Virtual Box to be installed in the default location of: ```C:\Program Files\Oracle\VirtualBox```

## Important Information

The utility will make changes to your customsettings.ini file, although it will make a backup first. These changes are necessary so that the build process runs automated. Depending on your environment, you may need to make additional changes to your customsettings.ini.

## Separating your build and deployment shares

I would recommend running with a separate build share so that:

* The Image Factory Utility doesn't tie up the main deployment share whilst running.
* The build environment can be configured separately.
* The boot media for the build share can be configured to automatically log into the deployment environment.

Here are the settings you'll need to add to your Bootstrap.ini to automatically log into the build share. Don't forget to update your build share in MDT and regenerate the boot images.

```txt
[Settings]
Priority=Default

[Default]
DeployRoot=[path\]BuildShare$
UserDomain=contoso.com
UserID=mdt_admin
UserPassword=P@ssw0rd
SkipBDDWelcome=YES
```

## Generating A Password File For SMTP Authentication

The password used for SMTP server authentication must be in an encrypted text file. To generate the password file, run the following command in PowerShell on the computer and logged in with the user that will be running the utility. When you run the command, you will be prompted for a username and password. Enter the username and password you want to use to authenticate to your SMTP server.

Please note: This is only required if you need to authenticate to the SMTP server when send the log via e-mail.

``` powershell
$creds = Get-Credential
$creds.Password | ConvertFrom-SecureString | Set-Content c:\scripts\ps-script-pwd.txt
```

After running the commands, you will have a text file containing the encrypted password. When configuring the -Pwd switch enter the path and file name of this file.

## Configuration

Here’s a list of all the command line switches and example configurations.

| Command Line Switch | Description | Example |
| ------------------- | ----------- | ------- |
| -Build | Location of the build share. It can be the same as the deployment share, and it can be a local or UNC path. | [path\] |
| -Deploy | Location of the deployment share. It can be the same as the deployment share, and it can be a local or UNC path. | [path\] |
| -Vh | Hyper-V Only - Name of the Hyper-V host if remote. If not set it will default to local. | [hostname] |
| -Vhd | The path to store the virtual hard disk file(s). If using a remote Hyper-V server the path should be relative for that server. | [path\] |
| -Boot | The path to the iso file to boot from. If using a remote Hyper-V server the path should be relative for that server. | [path\]LiteTouchPE_x64.iso |
| -Vnic | Hyper-V Only - Name of the virtual switch that the VM should use to communicate. | "'virtual NIC name'" |
| -Ts | The comma-separated list of task sequence ID's to build. | [W11-21H2,W10-21H2] |
| -VBox | Use this switch to use Oracle Virtual Box instead of Hyper-V | N/A |
| -Compat | Legacy Hyper-V Only - Use this switch if the Hyper-V host is Windows Server 2012 R2 and the script is running on Windows 10 or Windows Server 2016/2019. This loads the older version of the Hyper-V module, so it can manage WS2012 R2 Hyper-V VMs. | N/A |
| -Remote | Hyper-V Only - Use this switch if the Hyper-V server is a remote device. | N/A |
| -L | The path to output the log file to. | [path\] |
| -LogRotate | Remove logs produced by the utility older than X days | [number] |
| -NoBanner | Use this option to hide the ASCII art title in the console. | N/A |
| -Help | Display usage information. No arguments also displays help. | N/A |
| -Subject | Specify a subject line. If you leave this blank the default subject will be used | "'[Server: Notification]'" |
| -SendTo | The e-mail address the log should be sent to. For multiple address, separate with a comma. |<EMAIL_ADDRESS>|
| -From | The e-mail address the log should be sent from. |<EMAIL_ADDRESS>|
| -Smtp | The DNS name or IP address of the SMTP server. | [smtp server address] |
| -Port | The Port that should be used for the SMTP server. If none is specified then the default of 25 will be used. | [port number] |
| -User | The user account to authenticate to the SMTP server. |<EMAIL_ADDRESS>|
| -Pwd | The txt file containing the encrypted password for SMTP authentication. | [path\]ps-script-pwd.txt |
| -UseSsl | Configures the utility to connect to the SMTP server using SSL. | N/A |

## Example

``` txt
[path\]Image-Factory.ps1 -Build [path\] -Deploy [path\] -Boot [path\]LiteTouchPE_x64.iso -Vnic [virtual NIC name] -Ts W11-21H2,W10-21H2
```

This will use Hyper-V VMs on the local machine to build wim files from the task sequences W11-21H2 and W10-21H2. The wim files will be imported to the deployment share specified.

## Change Log

### 2023-04-28: Version 23.04.28

* Removed specific SMTP config info from config report.
* Added script update checker - shows if an update is available in the log and console. If the internet is not reachable it silently errors out.

### 2022-06-18: Version 22.06.18

* Fixed Get-Service check outputting to console.

### 2022-06-17: Version 22.06.17

* Fixed an issue with Windows Server 2012 R2 when checking for the Hyper-V service to be installed and running.

### 2022-06-14: Version 22.06.07

* Added new feature: log can now be emailed to multiple addresses.
* Added checks and balances to help with configuration as I'm very aware that the initial configuration can be troublesome. Running the utility manually is a lot more friendly and step-by-step now.
* Added -Help to give usage instructions in the terminal. Running the script with no options will also trigger the -help switch.
* Cleaned user entered paths so that trailing slashes no longer break things or have otherwise unintended results.
* Added -LogRotate [days] to removed old logs created by the utility.
* Streamlined config report so non configured options are not shown.
* Added donation link to the ASCII banner.
* Cleaned up code, removed unneeded log noise.

### 2021-12-02: Version 21.12.01

* Added option to use Oracle Virtual Box instead of Hyper-V.
* Configured logs path now is created, if it does not exist.
* Added OS version info.
* Added an option to specify the Port for SMTP communication.

### 2021-06-22: Version 21.06.22

* Added a progression bar display.
* Changed a variable to prevent conflicts with future PowerShell versions.

### 2020-02-27: Version 20.02.24 ‘Robot’

New features:

* Refactored code.
* Fully backwards compatible.
* Added ASCII banner art when run in the console.
* Added option to disable the ASCII banner art.

### 2019-09-04 v2.9

* Added custom subject line for e-mail.

### 2018-12-17 v2.8

* The script will now set automatic checkpoints to 'disabled' on the VM's. This is to help with VM disk management and clean up.

### 2017-10-16 v2.7

* Changed SMTP authentication to require an encrypted password file.
* Added instructions on how to generate an encrypted password file.

### 2017-10-09 v2.6

* Added necessary information to add the script to the PowerShell Gallery.

### 2017-09-18 v2.5

* Added a sanity check of the MDT deployment share. The script now checks for an existing CustomSettings-backup.ini file. If it exists, it reports that the deployment share is not clean.
* Added extra line breaks when editing the CustomSettings.ini as previously it was adding the required configuration on the last line of the ini file and causing the deployment to fail. Many thanks to Twitter user [@thestardawg](https://twitter.com/thestardawg) for reporting this bug.

### 2017-08-26 v2.4

* Improved logging so that the log file and console output is now more readable.

### 2017-07-22 v2.3

* Improved commenting on the code for documentation purposes.
* Added authentication and SSL options for e-mail notification.

### 2017-05-11 v2.2

* Added command line configuration options so the script itself does not need to be edited.
* Added code to manage the Virtual Machines without the need for extra configuration options.
* Removed some unnecessary extra configuration options and variables.

### 2017-04-25 v2.1

I've added logging to the script and the ability to email the log on completion. I've also added a variable to configure the Virtual Switch that the VM's Network Adaptor should use. This was an oversight on the previous version.

### 2017-04-17 Minor update

I've added hour and minutes to the WIM file creation name as I have been running multiple images of the same Task Sequence within a day and needed some extra data to prevent the image from over writing the previous one. I've also made another script, using this one as a base so I can generate VMs to test the deployment of the captured images after I've manually renamed them in MDT and added to the task sequences. The VMs are named after the Task Sequence ID and do not delete after the Task Sequence completes.

repository: Digressive/Image-Factory

repo_name: Digressive/Image-Factory


text:
# A flexible temporal velocity model for fast contaminant
<!-- transport simulations in porous media # -->

<!-- ### What is this repository for? ### -->

This repository is for modeling macro-dispersion in continuum scale porous media
with Gaussian and exponential correlation structures using the discrete time Markov velocity process (DTMVP).

<!-- For details about the ideas and models used in this code please refer to -->
<!-- [Temporal Markov Processes for Transport in Porous Media: Random Lattice Networks](https://arxiv.org/abs/1708.04173) -->
### Setup ###

* First clone this repository.
* Add the parent directory of py_dp to your Python path. In linux you will need to
add a line similar to `export PYTHONPATH=$PYTHONPATH:/PATH_TO_PARENT_OF_py_dp` to your `~/.bashrc` file.
* All dependencies for this repository are listed in the `environment.yml` file in the root directory.
Using Conda, you can create a new environment will all required dependencies by running
`conda env create -f environment.yml
`
<!-- Make sure you have Python2.7 along with Matplotlib, Numpy, Scipy, Cython and pyamg. -->
<!-- All of these packages can be installed using pip. (e.g. `pip install numpy`). -->
* Complete Cython installations:
    - go to the dispersion directory: `cd py_dp/dispersion/`
    - compile the cython files using these commands:
        * `python setup_count.py build_ext --inplace`
        * `python setup_convert.py build_ext --inplace`

### Getting started with the code ###

After the setup steps you can run `sample_scripts/workflow_dispersion_in_continua.py`.
This file includes all the steps necessary to generate Monte Carlo simulations and
extract the DTMVP model for a small test case.

The plots for the WRR publication can be generated by running the scripts in the
`continua_paper/plot_scripts` directory.

license: ISC

repository: amirdel/dispersion-continua

repo_name: amirdel/dispersion-continua


text:
# Project status
| Statistics        |
| ------------- |
| ![GitHub release](https://img.shields.io/github/v/release/shoshins/prevent-tab-closing?label=Latest%20Release&sort=semver&style=for-the-badge)      |
| ![Users](https://img.shields.io/chrome-web-store/users/jilanldohabpfcpgihdcadeffoopefbb?label=ACTIVE%20INSTALLS&style=for-the-badge)      |
| ![Rating](https://img.shields.io/chrome-web-store/stars/jilanldohabpfcpgihdcadeffoopefbb?label=Chrome%20Rating&style=for-the-badge)      |
| ![Build Status](https://img.shields.io/github/workflow/status/shoshins/prevent-tab-closing/CI%20Build?label=Build%20Status&style=for-the-badge)      |
| ![Last Commit](https://img.shields.io/github/last-commit/shoshins/prevent-tab-closing?label=Last%20Commit&style=for-the-badge)      |

# What is it?
This extension allows to prevent unexpected browser tabs closing.

It asks before leave the page / close the tab.

- You can disable / enable it when you want.
- You can specify on which websites logic should be applied.
- It's OpenSource.

# How to install
Google Chrome Extenstions store:

https://chrome.google.com/webstore/detail/prevent-tab-closing/jilanldohabpfcpgihdcadeffoopefbb

# Screenshots:

# Video Example

https://drive.google.com/file/d/1z94MbSk5zt6HdXDB9YgKLnAK9efxVldg/view

# Regex Examples
- Example #1. Ask on all websites
`".*"`
- Example #2. Ask only on specific website, for example google.com:
`".*google.com.*"`

More info about Regex: https://regexr.com

repository: shoshins/prevent-tab-closing

repo_name: shoshins/prevent-tab-closing


text:
# XWhatsit/CommonSense-Compatible IBM 3277 PCB

A replacement capsense PCB for the IBM 3277 beam spring keyboards, compatible with the Xwhatsit and CommonSense controllers.

See more here: https://deskthority.net/workshop-f7/xwhatsit-cs-compatible-ibm-3277-pcb-t16867.html

## PCB Dimensions

**78-Key:** 418.50 x 142.25 mm

**66-Key and variants:** 351.75 x 142.25 mm

**PCB Specifications (as used on EasyEDA):**

* Layers: 2
* PCB Dimension Width (mm): 142.25
* PCB Dimension Length (mm): 418.50 (78-key) or 351.75 (66-key variants)
* PCB Quantity: X
* PCB Thickness: 1.2mm
* PCB Color: Green
* Surface Finish: HASL (with lead)
* Copper Weight: 1 oz.
* Material Details: FR4 - Standard Tg 140C
* Gold Fingers: No


text:
TAC Sticky Controls
================

Another mod by Thunder Aerospace Corporation, Sticky Controls makes attitude control inputs persist over time rather than being instantaneous.

For use with the Kerbal Space Program, http://kerbalspaceprogram.com/

Licensed under the Apache License Version 2.0.  See the LICENSE.txt and NOTICE.txt files.

Source code can be found at https://github.com/taraniselsu/TacStickyControls

### Flavor text
Someone -- _Bill?_ -- got a little too excited during his last flight and spilled his drink on the control panel. Now the control stick won't return to neutral when released! The weird thing is, some pilots are saying planes are now _easier_ to fly.

### Features
- Each attitude control input (the WASD keys) moves the controls by a small amount and the controls do not return to neutral when released. Works kind of like trim, but more adjustable and easier to work with. May be familiar to players of the Microsoft Flight Simulator series.
- Fully adjustable: easy to change the amount the controls move per key press.
- Immediately center the controls by pressing Z.
- Toggle on/off whenever desired by pressing Alt+Z.
- Displays a small window showing the current control positions, along with the configurable settings.
- The window can be shown or hidden by clicking the button in the stock toolbar.
- Configurable settings:
  - Speed: how fast the controls move while pressing the key
  - Step: the minimum amount the controls are moved per key press. It also snaps the controls to multiples of this value, so larger values cause it to change in large discreet steps.
  - PrecisionControlsModifier: scales both Speed and Step by this amount when "precision controls" is turned on (the Caps Lock key in KSP's default key bindings).
  - ZeroControlsKey: the key bound to zeroing the controls. The default is 'z'. Note that toggling on/off is always Alt plus this key **(will need to change Alt to support Mac/Linux)**

### Notice
Includes the [KSP Add-on Version Checker's MiniAVC](http://forum.kerbalspaceprogram.com/threads/79745). It does a GET request to http://ksp-avc.cybutek.net/ to find the latest release number. It is **opt-in** and **no information is sent to the server**. I recommend downloading the [full KSP-AVC Plugin](http://forum.kerbalspaceprogram.com/threads/79745) to get the most out of it. Also encourage other mod creators to support it.

### Installation instructions
- Unzip to the KSP directory.

The following files should be in these locations:
{KSP}/GameData/TacStickyControls/Plugins/TacStickyControls.dll

The following file will be created after launching your first spacecraft:
{KSP}/GameData/TacStickyControls/PluginData/StickyControls.cfg

Note that Thunder Aerospace Corporation is a ficticious entity created for entertainment
purposes. It is in no way meant to represent a real entity. Any similarity to a real entity
is purely coincidental.

repository: linuxgurugamer/TacStickyControls

repo_name: linuxgurugamer/TacStickyControls


text:
[![img](https://img.shields.io/badge/Lifecycle-Dormant-ff7f2a)](https://github.com/bcgov/repomountie/blob/master/doc/lifecycle-badges.md)

# Shiny Server Development Template

***Note: While it likely still works, this repository is now out of date.
A project with a newer implementation that can be used as a template can be found [here](https://github.com/bcgov/land-designations-shinyapp)***

## Introduction

This repo is intended to be forked and used as a development repo for R applications that use [Shiny](http://shiny.rstudio.com/) as a visualization server.  The code is designed to run locally in development using Docker, and can be productionized using your github repo through OpenShift.

### Where do I put my code?

All of your code goes into the `app` directory. Data goes into the `app/data` directory and web resources such as css and images go into `app/www` directory. If you need to write data to the server, ensure that the data gets written to the `output` folder as shown [here](https://github.com/bcgov/simple-R-shiny/blob/master/app/app.R#L52).
If you have a README for your project, please also put it here.  Your Shiny code can go into one file (`app.R`) as per the example, or you can split it into seperate `ui.R` and `server.R` files as you wish.

To keep the shiny app as lightweight as possible, don't put anything extra or unnecesary into the `app` directory.

## Getting Started

There are several steps you must complete in order to begin:

### 1. Install Docker

Instructions for installing docker on your local OS are [provided here](https://docs.docker.com/engine/installation/ "Yeah! Install Docker").

While not directly related to this project, there is a tutorial on using Docker with R [here](http://ropenscilabs.github.io/r-docker-tutorial/), which you may find helpful.

### 2. Fork this repo and clone to your machine

This repo is already set up to work with Docker and Openshift, so it is simplest to fork this repo into your own, and thereby take advatage of any future changes to the tools provided.
Instructions for forking into your own github repo are [provided here](https://help.github.com/articles/fork-a-repo/ "Fork Repo in Github").

You next need to clone the new repo onto your local machine so that you can start entering your code and developing.  There are many graphical tools available that can help manage this, some of which can be found [here](https://git-scm.com/download/gui/linux "Github GUI").  Or you can simply use the command line, instructions for which can be found [here](https://git-scm.com/book/en/v2/Git-Basics-Getting-a-Git-Repository "git command line").

#### Forking within the **bcgov** GitHub organization:

If you want to fork the repo *within* the **bcgov** organization, you can't use GitHub's forking feature, however you can achive the same result with a few simple steps:

1. Go to the [Import Repository](https://github.com/new/import) page on GitHub. In the *'Old Repository URL'* field, put the url of this repository (`https://github.com/bcgov/simple-r-shiny`). Set the *Owner* to **bcgov**, and choose a unique name (say, 'my-new-fancy-shinyapp'). Click **Begin Import** and a new repository will be created at **github.com/bcgov/my-new-fancy-shinyapp** based on **github.com/bcgov/bcgov/simple-R-shiny**:

![](README-files/import-old-repo-shadow.png)

2. Using the command line, clone your new repository to your computer:
```sh
$ git clone https://github.com/bcgov/my-new-fancy-shinyapp
```

3. Next you need to establish a link between your new repo and this repo, so that if anything changes in the **bcgov/simple-R-shiny** repo you can pull those changes in easily. You do this be setting **bcgov/simple-R-shiny** as new remote called `upstream` (based on instructions [here](https://help.github.com/articles/configuring-a-remote-for-a-fork/)):

    i. Make sure you are in the new repo folder:
      ```sh
      $ cd my-new-fancy-shinyapp
      ```

    ii. List current remotes (probably just 'origin' pointing to `github.com/bcgov/my-new-fancy-shinyapp`)
      ```sh
      $ git remote -v
      ```

    iii. Add **bcgov/simple-r-shiny** as a remote called `upstream` and verify it has been created properly:
      ```sh
      $ git remote add upstream https://github.com/bcgov/simple-r-shiny
      $ git remote -v
      ```

4. To get updates in your repo from the *upstream* **bcgov/simple-r-shiny** repo, follow these instructions on [syncing a fork](https://help.github.com/articles/syncing-a-fork/).

### 3. Edit the packages.txt file

The packages.txt file contains an array of strings that indicate the packages you will be using in your R program.  This list is used when building your local Dockerfile so that the build process runs as fast as possible.  If you are familiar with Docker you know that you can also set environment variables that import this information, however this prevents the build process from using the cached layer for this step.  Therefore the packages.txt file is used to build an explicit local Dockerfile that ensures fast repeated builds.

The packages.txt file should look something like this (package names separated by a space, no quotation marks):
```
package1 package2 package3
```
with all packages on the same line.

Do not include 'shiny' or 'rmarkdown' in packages.txt as they are installed automatically.

### 4. Edit the system-libraries.txt file

If any of the R packages you need to install require special system libraries (to be installed with `apt-get install`; eg. `libgdal-dev` and `libproj-dev` for the [`rgdal`](https://cran.rstudio.com/web/packages/rgdal/) package, or `libxml2-dev` for the [`xml2`](https://cran.rstudio.com/web/packages/xml2/) package), list them in this file. It works similarly to packages.txt to build an explicit local Dockerfile that ensures fast repeated builds.

The system-libraries.txt should look something like this (libraries separated by a space, no quotation marks):

```
lib1 lib2
```

### 5. GitHub-hosted Packages

Many times you will build a Shiny App that requires R Packages (or versions) that are only available from GitHub. These are installed using `devtools::install_github`. List them in the `gh-packages.txt` file,
as space-separated strings made up of the GitHub user/organization and repository name.
It's also recommended to specify a the `SHA` of a specific commit or release tag.

The file should look something like this (separated by a space, no quotation marks):

```
ropensci/plotly@a1613b3e225 <EMAIL_ADDRESS>```

### 6. Run / Develop

With all your packages listed in the packages.txt file, and your code in the app directory you should be able to run `./dev.sh` at the command line (on Windows use the *Docker Quickstart Terminal*) in the root of your project to initiate Docker.

```
$ ./dev.sh
```

This command will build a local Dockerfile and run it for you.  All of your code will be added to the container and run.  Especially important is that new directories will appear in the root of your project under the '_mount' directory:

- **_mount/bookmarks** : This is where shiny will write its bookmarks
- **_mount/logs**      : Pretty much what you  might expect
- **_mount/output**    : In your program, if you write to '/srv/shiny-server-output' it will show up here
- **_mount/tmp**       : The /tmp directory if you need to debug the temporary files created by shiny

**Note to Windows users:** If you are on Windows and using Docker with VirtualBox, it unfortunately won't be able to mount the logs and bookmarks folders locally (i.e., `_mount` directory won't be created), but it will build and lanch the app.

The first time you run dev.sh you will see a lot of output where docker is building the container image for the first time and installing all the dependencies.
On each successive run as you modify your code and run dev.sh, you will see that only your new code gets placed into the image and run.  If you add new packages *do not forget to update the packages.txt file* or you will see the missing packages errors in your R program logs.

If you want to rebuild the image from scratch, you can run:

```
$ ./dev.sh --no-cache
```

and the `docker build` command will run with the `--no-cache` flag. You might also want to first delete `.packages.txt`, `.gh-packages.txt`, `.system-libraries.txt`, and `Dockerfile.local` to ensure everything runs smoothly.

#### Troubleshooting

1. If the Docker image builds properly but the app isn't working as expected, sometimes it is necessary to enter the running Docker container to see what's going on. You will first need to get the id of the running container:

Run the following to get a list of running containers:
```
$ docker ps
```

Copy the `ID` of the container, then run:

```
$ docker exec -it [your container id] bash
```

This will drop you into a bash shell so you can poke around in the container.

2. If you're running this in **Docker Toolbox** for Windows, you may get a cryptic error that looks like this:

```
Running Shiny App...
standard_init_linux.go:175: exec user process caused "no such file or directory"
```

This is likely because `tools/run-server.sh` has Windows line-endings (`\r\n`) instead of Unix line-endings (`\n`). You can use the `dos2unix` command-line tool to fix this:

```sh
$ dos2unix tools/run-server.sh
```

## Deploying to OpenShift the first time.

You will first need a project set up in OpenShift - you will need an OpenShift administrator to do this for you.

### Creating a new app from the OpenShift Web Console

1. Open your project in the OpenShift Web Console

2. Click 'Add to Project'

3. Search for "shiny" in the search box, and click on the "shiny-server" template

4. Fill in the parameter fields, replacing the defaults if required.

    Fields you will definitely need to edit:
      - Name (what you want to call it)
      - Git Repository URL (the GitHub repository where your dockerized app is hosted)
      - R Packages (same as `packages.txt`)
      - System Libraries (same as `system-libraries.txt`)
      - R GitHub Packages (same as `gh-pacakges.txt`)

5. Add some [labels](https://docs.openshift.com/container-platform/3.4/dev_guide/application_lifecycle/new_app.html#specifying-labels), at least one, to be able to uniquely identify all of the components of your app.

6. Click Create. Your app should build and deploy.

### Creating a new app using Command Line Tools

*An introduction to the OpenShift command line tools is [here](https://docs.openshift.com/container-platform/3.3/cli_reference/index.html)*

- First, ensure you are in the project in which you want your app to appear:

```
$ oc project shiny-server
```

- Create a new app with `oc new-app`. (Generic instructions for creating an app are [here](https://docs.openshift.com/container-platform/3.3/dev_guide/application_lifecycle/new_app.html#dev-guide-new-app))

- Specify that you want to use the `shiny-server` template with `--template="shiny-server"`

- Set parameters with the `--param` argument. You can list the parameters that you can override with:
    ```
    $ oc process --parameters -n openshift shiny-server
    ```

    You will want to set:
      - `NAME` (what you want to call it)
      - `SOURCE_REPOSITORY_URL` (the GitHub repository where your dockerized app is hosted)
      - `R_PACKAGES` (same as `packages.txt`)
      - `SYS_LIBRARIES` (same as `system-libraries.txt`)
      - `R_GH_PACKAGES` (same as `gh-pacakges.txt`)

- Add [labels](https://docs.openshift.com/container-platform/3.3/dev_guide/application_lifecycle/new_app.html#specifying-labels) with the `-l` flag. Set at least one, to be able to uniquely identify all of the components of your app.

- Although you are (probably) already in the project in which you want the app to appear, it's a good idea to specify the project's namespace with `-n my-project`

Example:

```
$ oc new-app --template="shiny-server" --param NAME="rshiny-test" --param SOURCE_REPOSITORY_URL="https://github.com/bcgov/simple-R-shiny" --param R_PACKAGES="ggplot2 dplyr" --param R_GH_PACKAGES="ropensci/plotly@a1613b3e225" -l id=rshiny-test -n shiny-server
```

This may fail the first time due to a [known issue](https://github.com/openshift/origin/issues/4518). If you start another build it should work:

```
$ oc start-build rshiny-test -n shiny-server
```

## Updating the app in OpenShift (after it's been created)

If you push modifications of your app to GitHub, updating it in OpenShift is as simple as starting a new build. On the command line it is:

```
$ oc start-build rshiny-test -n shiny-server
```

Or click the 'Start Build' button in the OpenShift Web Console 'Builds' section.

repository: NicJC/simple-R-shiny

repo_name: NicJC/simple-R-shiny


text:
# Proxide
### HTTP2/gRPC Debugging Proxy

[![crates.io](https://img.shields.io/crates/v/proxide.svg)](https://crates.io/crates/proxide)
[![CI](https://github.com/Rantanen/proxide/workflows/CI/badge.svg)](https://github.com/Rantanen/proxide/actions?query=workflow%3ACI+branch%3Amaster)

![Demo](images/proxide.gif)

## Installation

See the [releases](https://github.com/Rantanen/proxide/releases) page for
binary releases for Windows and Linux.

Proxide can also be installed directly from `crates.io` with:

```
cargo install proxide
```

## Getting started

*In addition to the instructions below, Proxide provides (hopefully)
comprehensive help through the `--help` command line argument.*

There are few different ways to use Proxide to monitor client traffic. The big
choices are in how Proxide intercepts the client traffic and whether the user
wants to monitor the traffic in real time or record it for later analysis.

The examples below are written considering the case where the user wants to
monitor traffic in real time using the Proxide UI. Replacing `monitor` with
`capture -f output_file` allows the user to capture the traffic directly into a
file for later analysis.

### Direct connection to Proxide

The most straight forward way to run Proxide is to use it to have the clients
connect directly to Proxide and have Proxide redirect these connections to a
remote server.

> ```
> proxide monitor -l 5555 -t example.com:8080
> ```

Proxide will automatically rewrite outgoing `authority` information with that
of the target server, making the redirection transparent on the HTTP/2 protocol
level. However if the client includes the server address in the actual payload
or if the server includes its address in the responses, these are not altered,
making the presence of the proxy visible to the parties and possibly breaking
the communication.

### CONNECT proxy

In case where it's important that the client is able to use the real server
address, but still route the traffic through Proxide, Proxide can be used as a
CONNECT proxy. This happens automatically if a target server is not specified.

> ```
> proxide monitor -l 5555
> ```

When acting as a CONNECT proxy, the client needs to be configured to route its
traffic through the proxy. The exact way in which this configuration is made
depends on the client. Many clients support `http_proxy` environment variable
for this.

> ```
> http_proxy=http://localhost:5555 ./grpc_application
> ```

### Viewing captured traffic

Previously captured files (and exported sessions) can be viewed with `proxide
view`.

> ```
> proxide view capture.bin
> ```

### Decoding gRPC

When Proxide is used to analyze gRPC traffic, it helps to be able to decode the
messages. Proxide requires the service and message definitions to be able to do
this.  These definitions can be given to Proxide with the `--grpc` option. The
option works with both the `monitor` and `view` commands.

> ```
> proxide view capture.bin --grpc /project/src/*.proto
> ```

### Decoding TLS

*Note that trusting CA certificates may compromise the system security. Please
take your time to understand the full implications of this.*

Intercepting and decoding TLS traffic requires Proxide to perform a
man-in-the-middle attack on the client. This is something TLS is designed to
protect against so the user needs to perform some setup to allow this.

First, Proxide needs a *CA certificate*. This certificate is used for
generating *server certificates* served to the client. The server certificates
are generated on the fly as Proxide intercepts client connections, but all of
them are signed by the CA certificate. The easiest way to generate such CA
certificate is through the `config ca` command.

> ```
> proxide config ca --create
> ```

This command creates a `proxide_ca.crt` and `proxide_ca.key` pair. If these
files exist, Proxide will automatically use them when monitoring or capturing
traffic.

The second obstacle is ensuring the client won't reject the server certificates
Proxide creates. This can be done by having the client ignore certificate
issues or specifying the Proxide CA certificate as a trusted root CA
certificate for the client.

The exact details on how this is done depend on the client and platform. For
example on Windows many clients use the Windows certificate store. Proxide is
able to add the root CA to this store with the `--trust` option. If a
certificate is aded to the platform certificate store, it is recommended to
remove it from that store when the debugging session is over. This can be done
with the `--revoke` option.

> ```
> proxide config ca --trust
> ```

(This can be combined with the `--create` flag when creating the certificate in
the first place.)

## Status

**Proxide is currently under development**

The basic decoding works, but there are still few "production quality" features
missing.

- [ ] Better TUI tooling.
  - [ ] Search/highlight support.
  - [ ] Switch between different encoders manually (Raw, Headers, gRPC).
- [ ] Support streaming JSON/Protobuf/etc. output for graphical UI integration.
  - [x] There's _some_ support for this used in integration tests.
- [ ] Support for acquiring stacktraces from local requests with thread-id
  headers.
- [ ] Support HTTP/1.x upgrades
- [ ] HTTP/1.x support

gha_license_id: NOASSERTION


text:
TELE integration/staging repository
=====================================

[![Build Status](https://travis-ci.org/TELE-Project/TELE.svg?branch=master)](https://travis-ci.org/TELE-Project/TELE) [![GitHub version](https://badge.fury.io/gh/tele-Project%2FTELE.svg)](https://badge.fury.io/gh/tele-Project%2FTELE)

Tele is a cutting edge cryptocurrency, with many features not available in most other cryptocurrencies.
- Anonymized transactions using coin mixing technology, we call it _Obfuscation_.
- Fast transactions featuring guaranteed zero confirmation transactions, we call it _SwiftTX_.
- Decentralized blockchain voting providing for consensus based advancement of the current Masternode
  technology used to secure the network and provide the above features, each Masternode is secured
  with collateral of 10000 TELE

### Coin Specs

Algo	Quark

Block Time	120 Seconds

Difficulty Retargeting	Every Block

repository: TeleCoinOfficial/TELE

repo_name: TeleCoinOfficial/TELE


text:
CONTRIBUTING
============

1. Fork the repo.

2. `npm install`

3. Run the build: `npm run build:full`
    - builds dist/ng-table.js and associated files

4. Run the tests: `npm test`
    - ie prove existing code before making your changes

5. Make changes in source folder (`src`)

6. Make the test pass: `npm test`

7. Commit changes:
    - include ONLY source files ie do NOT commit files under the dist/ folder
    - use a commit message that follows [conventions](https://github.com/ajoslin/conventional-changelog/blob/master/conventions/angular.md)

8. Push your changes to your fork and submit a pull request

repository: SumTotalSystems/ng-table

branch_name: refs/heads/sumt-master

gha_language: TypeScript

repo_name: SumTotalSystems/ng-table


text:
---
title: Kubernetes policy, advanced tutorial
description: Learn how to create more advanced Kubernetes network policies (namespace, allow and deny all ingress and egress).
canonical_url: '/security/tutorials/kubernetes-policy-advanced'
---

The Kubernetes `NetworkPolicy` API allows users to express ingress and egress policies (starting with Kubernetes 1.8.0) to Kubernetes pods
based on labels and ports.

This guide walks through using Kubernetes `NetworkPolicy` to define more complex network policies.

### Requirements

- Calico v2.6.1+ with Kubernetes 1.8+
- A working Kubernetes cluster and access to it using kubectl
- Your Kubernetes nodes have connectivity to the public internet
- You are familiar with [Kubernetes NetworkPolicy](kubernetes-policy-basic)

### Tutorial flow

1. Create the Namespace and Nginx Service
1. Deny all ingress traffic
1. Allow ingress traffic to Nginx
1. Deny all egress traffic
1. Allow egress traffic to kube-dns
1. Cleanup Namespace

### 1. Create the namespace and nginx service

We'll use a new namespace for this guide.  Run the following commands to create it and a plain nginx service listening on port 80.

```bash
kubectl create ns advanced-policy-demo
kubectl run --namespace=advanced-policy-demo nginx --replicas=2 --image=nginx
kubectl expose --namespace=advanced-policy-demo deployment nginx --port=80
```

#### Verify access - allowed all ingress and egress

Open up a second shell session which has `kubectl` connectivity to the Kubernetes cluster and create a busybox pod to test policy access.  This pod will be used throughout this tutorial to test policy access.

```bash
kubectl run --namespace=advanced-policy-demo access --rm -ti --image busybox /bin/sh
```

This should open up a shell session inside the `access` pod, as shown below.

```
Waiting for pod advanced-policy-demo/access-472357175-y0m47 to be running, status is Pending, pod ready: false

If you don't see a command prompt, try pressing enter.
/ #
```
{: .no-select-button}

Now from within the busybox "access" pod execute the following command to test access to the nginx service.

```bash
wget -q --timeout=5 nginx -O -
```
It should return the HTML of the nginx welcome page.

Still within the busybox "access" pod, issue the following command to test access to google.com.

```bash
wget -q --timeout=5 google.com -O -
```

It should return the HTML of the google.com home page.

### 2. Deny all ingress traffic

Enable ingress isolation on the namespace by deploying a [default deny all ingress traffic policy](https://kubernetes.io/docs/concepts/services-networking/network-policies/#default-deny-all-ingress-traffic).

```bash
kubectl create -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-ingress
  namespace: advanced-policy-demo
spec:
  podSelector:
    matchLabels: {}
  policyTypes:
  - Ingress
EOF
```

#### Verify access - denied all ingress and allowed all egress

Because all pods in the namespace are now selected, any ingress traffic which is not explicitly allowed by a policy will be denied.

We can see that this is the case by switching over to our "access" pod in the namespace and attempting to access the nginx service.

```bash
wget -q --timeout=5 nginx -O -
```

It should return:

```bash
wget: download timed out
```
{: .no-select-button}

Next, try to access google.com.

```bash
wget -q --timeout=5 google.com -O -
```

It should return:

```
<!doctype html><html itemscope="" item....
```
{: .no-select-button}

We can see that the ingress access to the nginx service is denied while egress access to outbound internet is still allowed.

### 3. Allow ingress traffic to Nginx

Run the following to create a `NetworkPolicy` which allows traffic to nginx pods from any pods in the `advanced-policy-demo` namespace.

```bash
kubectl create -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: access-nginx
  namespace: advanced-policy-demo
spec:
  podSelector:
    matchLabels:
      run: nginx
  ingress:
    - from:
      - podSelector:
          matchLabels: {}
EOF
```

#### Verify access - allowed nginx ingress

Now ingress traffic to nginx will be allowed.  We can see that this is the case by switching over to our "access" pod in the namespace and attempting to access the nginx service.

```bash
wget -q --timeout=5 nginx -O -
```

It should return:

```
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>...
```
{: .no-select-button}

After creating the policy, we can now access the nginx Service.

### 4. Deny all egress traffic

Enable egress isolation on the namespace by deploying a [default deny all egress traffic policy](https://kubernetes.io/docs/concepts/services-networking/network-policies/#4-deny-all-egress-traffic).

```bash
kubectl create -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-egress
  namespace: advanced-policy-demo
spec:
  podSelector:
    matchLabels: {}
  policyTypes:
  - Egress
EOF
```

#### Verify access - denied all egress

Now any ingress or egress traffic which is not explicitly allowed by a policy will be denied.

We can see that this is the case by switching over to our "access" pod in the
namespace and attempting to `nslookup` nginx or `wget` google.com.

```bash
nslookup nginx
```

It should return something like the following.

```
Server:    <IP_ADDRESS>
Address 1: <IP_ADDRESS>

nslookup: can't resolve 'nginx'
```
{: .no-select-button}

Next, try to access google.com.

```bash
wget -q --timeout=5 google.com -O -
```

It should return:

```
wget: bad address 'google.com'
```
{: .no-select-button}

> **Note**: The `nslookup` command can take a minute or more to timeout.
{: .alert .alert-info}

### 5. Allow DNS egress traffic

Run the following to create a label of `name: kube-system` on the `kube-system` namespace and a `NetworkPolicy` which allows DNS egress traffic
from any pods in the `advanced-policy-demo` namespace to the `kube-system` namespace.

```bash
kubectl label namespace kube-system name=kube-system
kubectl create -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-dns-access
  namespace: advanced-policy-demo
spec:
  podSelector:
    matchLabels: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - namespaceSelector:
        matchLabels:
          name: kube-system
    ports:
    - protocol: UDP
      port: 53

EOF
```

#### Verify access - allowed DNS access

Now egress traffic to DNS will be allowed.

We can see that this is the case by switching over to our "access" pod in the namespace and attempting to lookup nginx and google.com.

```bash
nslookup nginx
```

It should return something like the following.

```
Server:    <IP_ADDRESS>
Address 1: <IP_ADDRESS> kube-dns.kube-system.svc.cluster.local
```
{: .no-select-button}

Next, try to look up google.com.

```bash
nslookup google.com
```

It should return something like the following.

```
Name:      google.com
Address 1: 2607:f8b0:4005:807::200e sfo07s16-in-x0e.1e100.net
Address 2: <IP_ADDRESS> sfo07s16-in-f14.1e100.net
```
{: .no-select-button}

Even though DNS egress traffic is now working, all other egress traffic from all pods in the advanced-policy-demo namespace is still blocked.  Therefore the HTTP egress traffic from the `wget` calls will still fail.

### 6. Allow egress traffic to nginx

Run the following to create a `NetworkPolicy` which allows egress traffic from any pods in the `advanced-policy-demo` namespace to pods with labels matching `run: nginx` in the same namespace.

```bash
kubectl create -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-egress-to-advance-policy-ns
  namespace: advanced-policy-demo
spec:
  podSelector:
    matchLabels: {}
  policyTypes:
  - Egress
  egress:
  - to:
    - podSelector:
        matchLabels:
          run: nginx
EOF
```

#### Verify access - allowed egress access to nginx

We can see that this is the case by switching over to our "access" pod in the
namespace and attempting to access `nginx`.

```bash
wget -q --timeout=5 nginx -O -
```

It should return the HTML of the nginx welcome page.

```
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>...
```
{: .no-select-button}

Next, try to retrieve the home page of google.com.

```bash
wget -q --timeout=5 google.com -O -
```

It should return:

```
wget: download timed out
```
{: .no-select-button}

Access to `google.com` times out because it can resolve DNS but has no egress access to anything other than pods with labels matching `run: nginx` in the `advanced-policy-demo` namespace.

## 7. Clean up namespace

You can clean up after this tutorial by deleting the advanced policy demo namespace.

```bash
kubectl delete ns advanced-policy-demo
```

repository: jsabo/calico

repo_name: jsabo/calico


text:
# angular-groupoffice — A simple GroupOffice client with AngularJS and Bootstrap

This project is an example of how to build a [Group-Office](https://www.group-office.com) client with [AngularJS](http://angularjs.org/)

It uses [Bootstrap](http://getbootstrap.com) for styling.

It currently only features a Notes app.

## Development notes

Get all the required NPM modules my navigating to the project directory and run:

$ npm install

I used [grunt](http://gruntjs.com/) to maintain the scripts in index.html. It
automatically puts all javascript and css files in the index.html file.
Additionally it can build a distribution with minified scripts.

Run:

$ grunt watch

to keep the CSS up to date with SASS and to update the index.html with newly
added scripts.

Run grunt with no command to create a distribution release:

$ grunt

repository: xgrommx/angular-groupoffice

repo_name: xgrommx/angular-groupoffice


text:
---
layout: default
order:  3
title:  Contribute
---

As many other open-source projects Steam Condenser benefits from the
participation of its community. Any contribution will help to make Steam
Condenser better.

## How to contribute?

1. **Find bugs and report them**

   Just use Steam Condenser and find bugs or other issues. Report them at the
   [issue tracker][1] and they *will* be fixed.
2. **Request new features**

   Do you have a cool new idea that would fit well into Steam Condenser's
   functionality? Or do you have a nice little feature that would make Steam
   Condenser's features even better? Don't hesitate to propose them at the
   [issue tracker][1].
3. **Write patches**

   Don't want to wait for bugs to be fixed and features to be added? Just start
   your own [fork][2] of Steam Condenser at [GitHub][3], make your own changes
   to the code and they will most likely find their way into the main
   library.
4. **Start an implementation for another language**

   You think Steam Condenser is a great library? But you want to code in another
   language?

repository: koraktor/steam-condenser

branch_name: refs/heads/gh-pages

extension: markdown

repo_name: koraktor/steam-condenser


text:
Log test
==================

The purpose of this is just to keep track of issues or checks that need to be accounted for.

Issues
------------------

- AI should be able to make moves without running into a single error.
- Game should run without errors

Checks
------------------

- Switch mechanics
	- Volt Switch/U-Turn
	- Arena Trap/Shadow Tag
	- Magnet Pull
	- Pursuit (in the event it kills the target Pokemon)
- Move mechanics
	- Cursed Body/Disabled
	- Choice items
	- Multi-turn moves (Solar Beam, Geomancy, Outrage, etc.)
	- Encore
- Incorrect input checks
	- Choosing an illegal move
	- Choosing an illegal player
	- Choosing an illegal switch (fainted already handled)
	- Trying to make a move when you need to switch
- End mechanics
	- Closing game after win or loss
	- Play again option?

repository: ultrasanity/Pokemon-Showdown

repo_name: ultrasanity/Pokemon-Showdown


text:
---
author: kevinmontrose
comments: true
date: 2012-02-03 21:15:43+00:00
layout: post
redirect_from: /2012/02/stack-exchange-api-v2-0-no-longer-beta
hero:
slug: stack-exchange-api-v2-0-no-longer-beta
title: Stack Exchange API V2.0 No Longer Beta
wordpress_id: 10936
tags:
- company
- API
---

We've spent the last month polishing V2.0 of the Stack Exchange API in a [public beta](http://blog.stackoverflow.com/2011/12/stack-exchange-api-v2-0-public-beta/), and I'm happy to announce its final release.  Kudos to those who have [reported bugs](http://stackapps.com/questions/tagged/bug+status-completed), and[ made quality suggestions](http://stackapps.com/questions/tagged/feature-request+status-completed) during the beta.

At this point the interface to V2.0 is frozen, only bug fixes and performance improvements will be deployed until the next revision.  As always, if you build on our platform we _will support you_ so V2.0 will be around as long as it sees significant use.

You'll find our revamped documentation portal at:

## [api.stackexchange.com](https://api.stackexchange.com/)

[![](http://blog.stackoverflow.com/wp-content/uploads/documentation1.png)](https://api.stackexchange.com/)

Alongside the documentation for every method, you'll also find a test console for rapid experimentation.  Try out the console by finding [Jon Skeet's most recent comment](https://api.stackexchange.com/docs/comments-on-users#pagesize=1&order=desc&sort=creation&ids=22656&filter=!-q2Raa_L&site=stackoverflow&run=true).

We've also thrown together a minimalist [Javascript SDK](https://api.stackexchange.com/docs/js-lib) for consumers that just want to use the new [authentication features](https://api.stackexchange.com/docs/authentication).

Although the beta is over, the [contest continues](http://blog.stackoverflow.com/2011/12/stack-exchange-api-v2-0-public-beta/).  You have until the end of February to list any application or library on [Stack Apps](http://stackapps.com/) to be eligible, and you can continue to hunt the (now rather elusive) bugs left in the API.

  It's a good example of filling a gap, rather like [StackPrinter](http://www.stackprinter.com/) from V1.0.

[![](http://blog.stackoverflow.com/wp-content/uploads/stackalert.png)](http://stackapps.com/questions/2874/stack-alert-google-chrome-extension-keep-tabs-on-your-inbox-without-needing)

[Stack Alert](http://stackapps.com/questions/2874/stack-alert-google-chrome-extension-keep-tabs-on-your-inbox-without-needing), created by [George Edison](http://stackexchange.com/users/65895), takes advantage of the headlining authentication feature of V2.0 to give you access to your Stack Exchange inbox right in your browser.  While decidedly utilitarian, it is already available for [Firefox](http://stackapps.com/questions/2909/stack-alert-mozilla-firefox-add-on-keep-tabs-on-your-inbox-without-needing-t), [Opera](http://stackapps.com/questions/2948/stack-alert-opera-keep-tabs-on-your-inbox-without-needing-to-have-a-stack-ex), and [Chrome](http://stackapps.com/questions/2874/stack-alert-google-chrome-extension-keep-tabs-on-your-inbox-without-needing).

[![](http://blog.stackoverflow.com/wp-content/uploads/stackgeography.png)](http://stackapps.com/questions/2913/stackgeography-a-stack-exchange-question-mapping-site)

[StackGeography](http://stackapps.com/questions/2913/stackgeography-a-stack-exchange-question-mapping-site), created by [patridge](http://stackexchange.com/users/20388), plots where on the globe new questions are being asked.  Not entirely unlike our [own monitor wall](http://blog.stackoverflow.com/2011/12/the-stack-big-board/), but built on top of the public API.

While it's only half-way through the contest, I'm pretty pleased with what I've seen thus far.

**Of course, there's plenty of time left to create an application.**

If you're interested go read the [read the documentation](http://api.stackexchange.com/) and [register your application](http://stackapps.com/apps/oauth/register).

repository: rcartaino/stack-blog

repo_name: rcartaino/stack-blog


text:
---
title: "The JUNO project"
date: "2017-10-11 07:34:37 +0000 UTC"
lastmod: "2018-01-05 09:16:44 +0000 UTC"
path: "recherche/neutrino/juno-experiment.en.md"
joomlaid: 411
category: "neutrino"
asides: ["neutrino.+menu+"]
layout: "recherche"
---
![JUNO logo](images/JUNO/JUNO_logo.png)

The **Jiangmen Underground Neutrino Observatory (JUNO)**, under construction in Jiangmen (in the South of China), is a multipurpose neutrino experiment aiming at the determination of the _neutrino mass hierarchy_ in vacuum oscillation and the precise measurement of _oscillation parameters_. The mass hierarchy measurement requires an unprecedented resolution on the energy (at the level of 3%!a(MISSING)t 1 MeV) and an absolute energy scale uncertainty better than 1%! (MISSING)Because of its design and its large detection volume, JUNO is also an observatory for _supernova neutrinos, geo-neutrinos_, and to perform exotic neutrino searches.

![juno detector](images/JUNO/juno_detector.jpg "Detecteur design: a sphere of 35 m diameter is filled with 20 000 tonnes of liquid scintillators and is immerse in a water pool. A total of 43000 photomultipliers are employed")

* * *

**The detector**

JUNO is a medium-baseline neutrinos detector, placed at 53 km from the Yangjiang and Taishan nuclear power plants, in a tunnel 700m underground. It consists of a 35.4 m diameter acrylic glass sphere filled with 20.000 tonnes of liquid scintillator. The sphere is surrounded by 17000 photo-multipliers having a diameter of 20-inches (51 cm, called Large PMTs or LPMT) and 25000 photo-multipliers (called Small PMT or SPMT) of 3-inches (7.6 cm). The central detector is submerged in a water pool instrumented with 2000 LPMT, which acts as muon veto.

![JUNO doublecalorimetry](images/JUNO/JUNO_doublecalorimetry.png "double calorimetry concept (right) with SPMT inserted in the interspaces between and LPMTs.")

A top tracker system, made of plastic scintillators, covers the top of the detector and can provide additional informations for muon-induced background.

The \`\`stereo'' design is motivated by the need of a precise control of the uncertainties: the LPMT will collect a large amount of the light and will ensure a stochastic error within the requirements for the scientific goals, and the SPMT will provide additional informations for the control of the systematic uncertainties.

![TestBench JUNO Subatech](images/JUNO/TestBench_JUNO_Subatech.png " Test-bench installed in SUBATECH for the validation of the electronics and the SPMT.")**Activities**

Our group is involved in **construction and simulations** activities. We have the responsibility of the _data acquisition_ of the 3-inches PMT system and we  participates to the _validation tests of the electronics and the PMTs_, in strict collaboration with the other laboratories in France, Europe, Asia and South America and with the support of the electronics workshop of our laboratory.

**Collaboration**

This ambitious project is the result of an big international effort, supported by around 450 collaborators, 66 institutions and 14 countries. In France the groups participating to the experiment are APC-Paris, OMEGA-Paris, CENBG-Bordeaux.

**Contact: **

Mariangela Settimo ([mariangela.settimo@subatech.in2p3.fr](mailto:Thiago.Sogo-Bezerra@subatech.in2p3.fr))

Frederic Yermia ([yermia@subatech.in2p3.fr](mailto:yermia@subatech.in2p3.fr))

**References:**

[JUNO official website](http://juno.ihep.cas.cn)

The JUNO collaboration, "Neutrino physics with JUNO",  J. Phys. G 43 (2016) 030401, [arXiv: 1507.05613](https://arxiv.org/abs/1507.05613)

M. He for the JUNO Collaboration, "Double Calorimetry System in JUNO", [arXiv:1706.08761](https://arxiv.org/pdf/1706.08761.pdf)

repository: aphecetche/gatsby-subatest

repo_name: aphecetche/gatsby-subatest


text:
# Zabbix V5 Vagrant

## Contents

Default:
Zabbix 5, MariaDB (mysql), Apache, CentOS 8

## Alternatives

* CentOS: 7 or 8
* Database: MariaDB (mysql) or PostgreSQL+TimescaleDB
* Webserver: Apache or NGinx

NOTES:

* MariaDB is V5.5 with CentOS 7 and V10.3 with CentOS 8
* PostgreSQL V12 including TimescaleDB is used on CentOS 7 and 8

## Howto

Checkout repo, cd to it and run `vagrant up`

Create `.env` file for alternatives and options:

```ruby
BOX='centos/7'
DB='postgresql'
WEBSERVER='nginx'
#MEM = 1024
#CPUS = 2
#BOOTSTRAP = 'bootstrap.sh'
#NETWORK_MASK = 24
#NETWORK_BASE = '<IP_ADDRESS>'
ZABBIXPORT = 9090
#TIMEZONE = 'Europe/Berlin'
```

Zabbix is reachable over the URLs that Vagrant spits out in the end. Credentials are the Zabbix defaults `Admin/zabbix`

NOTE: The database password is generated randomly and stored under `/root/.DBPASSWORD` - if you remove/edit the file, contents will be regenerated/distributed.

## Using without Vagrant

You could run `bootstrap.sh` standalone on CentOS 7 or 8 and it will install Zabbiv 5 with MariaDB and Apache by default. The script accepts three parameters. The first is the database variant (`mysql` or `postgresql`), the second is the webserver variant (`apache` or `nginx`) and the last is the timezone - default `Europe/Berlin`. The script hasn't been tested on RHEL, so it might need some additional adjustments for that.


text:
Here are the test files from my tutorial on how to write tests for SailsJS. These tests wont actually run because it's missing all of Sails, and are mostly for reference.

If you haven't read my tutorial and are interested, you can check it out [here](http://natethepirate.wordpress.com/2014/06/20/how-to-get-started-writing-tests-for-sailsjs/)

test.js is the test file made in the tutorial.

HelloTest.js is another example of a test not covered in the tutorial.

test.coffee and HelloTest.coffee are what the test could look like. I tested to make sure they'd work if compiled, but the compiled version of them is not the normal Javascript files.

FooController.js is the controller that I was using when writing the tests.

##License

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.

In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.

IN NO EVENT SHALL THE AUTHORS 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.

For more information, please refer to <http://unlicense.org>

repository: tegandbiscuits/Testing-SailsJS

repo_name: tegandbiscuits/Testing-SailsJS


text:
# dotfiles

[![Build Status](https://travis-ci.com/craighurley/dotfiles.svg?branch=master)](https://travis-ci.com/craighurley/dotfiles)

## Introduction

A collection of scripts to bootstrap a clean install of macOS.

## Installation

1. Install xcode command line tools:

    ```sh
    xcode-select --install
    ```

1. Install macOS SDK headers:

    ```sh
    sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
    ```

1. Clone this repository by running the following commands:

    ```sh
    mkdir ~/Projects
    git clone https://github.com/craighurley/dotfiles.git ~/Projects/dotfiles
    ```

1. Install homebrew by running the following command:

    ```sh
    ~/Projects/dotfiles/.brew_install
    ```

1. Run the following command to do everything.  _Note: you will be prompted for your password a number of times during script execution._

    ```sh
    ~/Projects/dotfiles/bootstrap.sh
    ```

    Essentially, `bootstrap.sh` executes the following commands:

    ```sh
    # Create useful directories.
    ~/Projects/dotfiles/.directories

    # Backup existing dotfiles and symlink to the dotfiles in this project.
    ~/Projects/dotfiles/.dotfiles

    # Copy templates to ~. These files don't really belong in version control, hence they are not symlinked.
    ~/Projects/dotfiles/.templates

    # Configure sensible defaults in macOS.
    ~/Projects/dotfiles/.macos

    # Install command line package manager and additional command line tools.
    ~/Projects/dotfiles/.brew

    # Install command line package manager and additional applications.
    ~/Projects/dotfiles/.cask

    # Apply preferences to applications.
    ~/Projects/dotfiles/.preferences
    ```

1. Restart your computer.

1. If you want to automatically install applications from the _App Store_, open the _App Store_ and sign in, then run the following command:

    ```sh
    ~/Projects/dotfiles/.mas
    ```

## Post Install Tasks

1. Import Terminal config.
1. Import iTerm config.
1. Import gpg keys.
1. Import ssh keys.
1. Update exports in the `~/.extra` file:
    - github
    - homebrew
1. Sign into Firefox account to sync settings.
1. Download VS Code settings from gist.

## Update

Run the following commands to get the latest version of this project:

```sh
cd ~/Projects/dotfiles/
git pull origin master
```

## Feedback

Suggestions/improvements [welcome](https://github.com/craighurley/dotfiles/issues)!

repository: leoundercover/dotfiles

repo_name: leoundercover/dotfiles


text:
---
title: Salvatore Sanfilippo
summary: Software developer (Redis)
date: 2010-08-27
categories:
- developer
- linux
- mac
---

### Who are you, and what do you do?

Hello! I'm [Salvatore Sanfilippo](http://antirez.com/ "Salvatore's website."), 33, and I'm a programmer working for VMware developing [Redis][], a NoSQL open source database. In my past life I was a computer security guy developing [HPing][] and researching TCP/IP vulnerabilities.

### What hardware do you use?

I mostly use the following three computers:

A [MacBook Pro][macbook-pro] 13" running [Mac OS X][macos], as my desktop and primary development computer. No additional monitors or keyboards, I feel well with the 13" display.

A Linux [Ubuntu][] system running on a [Dell T3500][precision-t3500] with 24 GB of RAM. Most of the times I use this other computer from ssh.

An [iPhone 3G][iphone-3g] with a flat internet plan.

### And what software?

Development tools: [zsh][], [vim][], [git][].

Clients: [Google Chrome][chrome], [Adium][], [TweetDeck][], [uTorrent][], [Colloquy][].

Web applications: [Gmail][], [Github][], [Flickr][], [search.twitter.com](http://search.twitter.com/ "Twitter's search engine.").

My search engine is currently [duck duck go][duckduckgo], using !google very often when the result page I get via DDG is not what I expected.

Backups: [Time Machine][time-machine].

In the past my desktop was running Linux as well, I used [fvwm2][fvwm], for more than 10 years, with [this minimalistic setup](http://antirez.com/blogdata/119/desktop.png "A screenshot of Salvatore's minimal desktop."). Now I miss it a bit... but switched to Mac OS as it delivers a much better "just works" experience for me, every time I want to do Skype, print a document, or alike.

### What would be your dream setup?

For me user experience is all about speed. I love 2D-games alike interfaces where you click and things appear with zero-delay (do you remember Fast Tracker?). Everything should be instantaneous, loading web pages, checking the email, compiling code, and so forth. With simple graphics.

I would love a much faster gmail client: a resident client similar to the current web interface but with vi / emacs bindings, and zero latency.

I hope to get an SSD disk ASAP in order to improve my MacBook Pro latency. What I don't like is that Macbook with smaller displays have slower CPUs and less memory, I want a 13" computer with tons of speed (this is possibly hard for battery size concerns).

I'm looking for a search engine designed for skilled users, I hate that Google is starting to abandon the "strictly AND" approach. If I search for "foo bla zap" I want to get pages where foo AND bla AND zap are present.

I wish browsers had a better way to handle bookmarks, much more similar to delicious, but resident (I know you can use tags with new browsers, but the bookmarking experience for me is a pain with the current interface provided by Chrome/Firefox).

I would love the ability to transfer all the context of a computer I'm using into another computer in a matter of seconds. Time Machine makes this feasible on hardware upgrades, but we are nowhere near to an experience where switching device will lead to the same environment, applications, user data. Computers should be just like "white" devices where you load your environment. Web apps are fixing this in some way but at the cost of more latency.

[adium]: https://en.wikipedia.org/wiki/Adium "A multi-protocol chat application for the Mac."
[chrome]: https://www.google.com/intl/en/chrome/ "A WebKit-based browser, where each tab runs in its own thread."
[colloquy]: https://colloquy.app/ "An IRC client for the Mac."
[duckduckgo]: https://duckduckgo.com/ "A new search engine."
[flickr]: https://www.flickr.com/ "A photo sharing website."
[fvwm]: https://www.fvwm.org/ "A window manager for X."
[git]: https://git-scm.com/ "A version control system."
[github]: https://github.com/ "A Git code repository service."
[gmail]: https://mail.google.com/mail/u/0/ "Web-based email."
[hping]: https://en.wikipedia.org/wiki/Hping "A command-line packet analyser."
[iphone-3g]: https://en.wikipedia.org/wiki/IPhone_3G "A smartphone."
[macbook-pro]: https://www.apple.com/macbook-pro/ "A laptop."
[macos]: https://en.wikipedia.org/wiki/MacOS "An operating system for Mac hardware."
[precision-t3500]: http://web.archive.org/web/20220528234835/https://www.dell.com/en-us/work/shop/cty/pdp/spd/precision-t3500 "A tower desktop PC."
[redis]: https://redis.io/ "A key-value data store and more."
[time-machine]: https://en.wikipedia.org/wiki/Time_Machine_(Mac_OS) "Backup software for the masses, included with Mac OS X 10.5."
[tweetdeck]: https://about.twitter.com/en/products/tweetdeck "A multi-column Twitter client."
[ubuntu]: https://ubuntu.com/ "A Unix distribution."
[utorrent]: http://web.archive.org/web/20230524080606/https://www.utorrent.com/ "A BitTorrent client."
[vim]: https://www.vim.org/ "A command-line text editor."
[zsh]: https://www.zsh.org/ "An interactive shell and scripting language."

repository: waferbaby/usesthis

repo_name: waferbaby/usesthis


text:
# ferroMenu-amd
A modified ferroMenu jquery plugin based on Alessandro Ferrini beautiful ferroMenu plugin.

http://www.alessandroferrini.it/lab/jQueryPlugins/ferroMenu/

NOTICES

According to the Apache 2.0 License

Modifications to the ferroMenu application include:
	adding a amd function wrapper with necessary jquery dependencies.
	adding relative menu locations according to nav parent's location, height and width
	modifies dom directly by removing then appending nav with nav items to ferroMenu anchor as children
	specific changes are detailed in the git deltas

## Example

	$("#nav").ferroMenu({
	    position    : "left-top",
	    delay       : 50,
	    rotation    : 720,
	    margin      : 20,
	    relative: true
	});

Above will create a ferroMenu from the passed in ul with child li's as menu items:
* `relative` option will calculate the 9 ferroMenu anchor points according to the `# nav` ul's container or parentNode
* on menu drag, ferroMenu will snap to closest relative anchor point
* `relative` false, or `relative` option not supplied will allow for original plugin's behaviour, snapping to window anchor points

repository: andrsnn/ferroMenu-amd

repo_name: andrsnn/ferroMenu-amd