text:
# This package has been deprecated in favour of [DiscretePersistentHomologyTransform.jl](https://github.com/yossibokor/DiscretePersistentHomologyTransform.jl)
# PersistentHomologyTransfer.jl

Persistent Homology Transform is produced and maintained by \
Yossi Bokor and Katharine Turner \
<EMAIL_ADDRESS>and<EMAIL_ADDRESS>
This package provides an implementation of the Persistent Homology Transform, as defined in [Persistent Homology Transform for Modeling Shapes and Surfaces](https://arxiv.org/abs/1310.1030). It also does Rank Functions of Persistence Diagrams, and implements [Principal Component Analysis of Rank functions](https://www.sciencedirect.com/science/article/pii/S0167278916000476).

## Installation
Currently, the best way to install PersistentHomologyTransfer is to run the following in `Julia`:
```julia
using Pkg
Pkg.add("PersistentHomologyTransfer")
```
## Functionality
- PersistentHomologyTransfer computes the Persistent Homology Transform of simple, closed curves in $\mathbb{R}^2$.
- Rank functions of persistence diagrams.
- Principal Component Analysis of Rank Functions.

### Persistent Homology Transform
Given an $m \times 2$ matrix of ordered points sampled from a simple, closed curve $C \subset \mathbb{R}^2$ (in either a clockwise or anti-clockwise direction), calculate the Persistent Homology Transform for a set of directions. You can either specify the directions explicity as a $n \times 2$ array (`directions::Array{Float64}(n,2)`), or specify an integer (`directions::Int64`) and then the directions used will be generated by
```julia
angles = [n*pi/(directions/2) for n in 1:directions]
directions = [[cos(x), sin(x)] for x in angles]
```
To perform the Persistent Homology Transfer for the directions, run
```julia
PHT(points, directions)
```

This outputs an array of [Eirene](https://github.com/Eetion/Eirene.jl) Persistence Diagrams, one for each direction.

### Rank Functions
Given an [Eirene](https://github.com/Eetion/Eirene.jl) Persistence Diagram $D$, PersistentHomologyTransfer can calculate the Rank Function $r_D$ either exactly, or given a grid of points, calculate a discretised version. Recall that $D$ is an $n \times 2$ array of points, and hence the function `Total_Rank_Exact` accepts an $n \times 2$ array of points, and returns a list of points critical points of the Rank function and the value at each of these points. Running

```julia
rk = Total_Rank_Exact(barcode)
```
we obtain the critical points via
```julia
rk[1]
```
which returns an array of points in $\mathbb{R}^2$, and the values through
```julia
rk[2]
```
wich returns an array of integers.

To obtain a discrete approximation of a Rank Function over a persistence diagram $D$, use `Total_Rank_Grid`, which acceps as input an [Eirene](https://github.com/Eetion/Eirene.jl) Persistence Diagram $D$, an increasing `StepRange` for $x$-coordinates `x_g`, and a decreasing `StepRange` for $y$-coordinates `y_g`. The `StepRanges` are obtained by running

```julia
x_g = lb:delta:ub
x_g = ub:-delta:lb
```
with `lb` being the lower bound so that $(lb, lb)$ is the lower left corner of the grid, and `ub` being the upper bound so that $(ub,ub)$ is the top right corner of the grid, and $delta$ is the step size.

Finally, the rank is obtained by

```julia
rk = Total_Rank_Grid(D, x_g, y_g)
```
which returns an array or values.

### PCA of Rank Functions

Given a set of rank functions, we can perform principal component analysis on them. The easiest way to do this is to use the wrapper function `PCA` which has inputs an array of rank functions evaluated at the same points (best to use `Total_Rank_Grid` to obtain them), an dimension $d$ and an array of weights `weights`, where the weights correspond to the grid points used in `Total_Rank_Grid`.

To perform Principal Component Analysis and obtain the scores run

```julia
scores = PCA(ranks, d, weights)
```
which returns the scores in $d$-dimensions.

## Examples
### Persistent Homology Transfer
We will go through an example using a random [shape](https://github.com/yossibokor/PersistentHomologyTransfer.jl/Example/Example1.png) and 20 directions. You can download the CSV file from [here](https://github.com/yossibokor/PersistentHomologyTransfer.jl/Example/Example1.csv)

To begin, load the CSV file into an array in Julia

```julia
Boundary = CSV.read("<path/to/file>")
Persistence_Diagrams = PHT(Boundary, 20)
```

You can then access the persistence diagram corresponding to the $i^{th}$ direction as

```julia
Persistence_Diagrams[i]
```
<!---### Rank Functions -->


text:
+++
title = "ChatOps Extravaganza with Jason Hand, Sasha Rosenbaum, and Peter Burkholder"
Description = "Matt & Trevor sit down with Jason Hand (VictorOps), Sasha Rosenbaum (10th Magnitude), and Peter Burkholder (Chef) to discuss ChatOps."
Date = 2015-09-10T13:00:13-05:00
PublishDate = 2015-09-10T13:00:13-05:00
podcast_file = "arrested-devops-podcast-episode042.mp3"
episode_image = "/episode/img/chatops.png"
episode_banner = "/episode/img/chatops-banner.jpg"
guests = ["jhand","srosenbaum","pburkholder",] # The names of your guests, based on the filename without extension.
sponsors = ["victorops","datadog",]
episode = "42"
images = ["/img/social/fb/chatops.png"]
hosts = ["mstratton", "thess"] # The names of your hosts, based on the filename without extension.
aliases = ["/42",]
explicit = "yes" # values are "yes" or "no"
transcript = "/static/transcripts/chatops.txt"
+++

#### Recording Live from DevOpsDays Chicago!

ChatOps is used by many teams and companies as the main communication tool for day to day chat, and their most important activities. In fact, ChatOps may be taking the place of email in the workplace for internal communication for tech teams as it helps communication during DevOps activities like deploys, code pushes, etc. This episode discusses best practices (if there are any) of ChatOps and how to make sure you are getting the most from your team communication tools.
#### Asynchronous vs. Synchronous Communication
- 25% of the work week is spent managing your inbox. You can actually increase productivity by moving to Sync communication…we think.
- Sasha: ChatOps creates an enormous amount of noise while at the same time makes communication grouped and searchable.
- Discussion suggests it is up to the user to mediate that noise, but is it the user, the culture, or the conversation itself that dictates the role of chat?

The panel comes to the conclusion that important decisions should lean away from ChatOps, and into a more formal, permanent form of communication. “Important things will ‘re-bubble’ again,” but the chatroom is not the place if a team consensus is needed, especially if the team is remote.
- Create a culture where ChatOps is used in the way you need.
- Risky to go "Super Pendulum Swing" in one direction or the other.

#### What is ChatOps good at?

- Solving the communication problem.
  - Brings everybody into the same experience. Even if you are across Europe, or accross the room, you are having the same experience.
- Great for in the moment Q & A.
  - Even with one on one questions, if the answer is shared in a public channel, the information is given to all on the team which moderates the need for repeated questions, and increases team efficiency. You need to be constantly pairing. If you direct message someone, you are keeping that information from the team. "If you are not working in your chat tool, you are not collaborating."
- Shared History
  - Makes communication searchable, and organized by topic, or at least team.
- Rooms should be broken down to their smallest parts. Topics, Meetings, Projects, they should all be open spaces for all departments.
- Getting messages/alerts from integrated tools is perhaps one of the most important features of ChatOps in DevOps: Jenkins, Github, Travis, etc.

#### What’s the Problem?
- There are just too many messages. But they are necessary messages.
- Internal ChatOps tool is almost useless when you are a consultant and you are all working on different clients.

#### Problems with Adoption?
- In your organization, if you are considering chat tools for different purposes, use benchmarking and measurements to monitor your usage and data in each tool (in this case, chat vs. email)
- Matt uses RescueTime (https://www.rescuetime.com/) religiously. His current rate of email vs Slack: 4 Hours in Slack, 48 minutes in email.
- Sales, Support, etc. prefer email, but that will not change until their tools are integrated with Slack as well.

#### How to make use for permanent communication?
- Have you adopted ChatOps for sustained messages and conversations that need to be kept?
- Pinned Items are like the refrigerator...it's emptied at the end of the week.
- If it should live longer than a week, then it gets moved to the wiki, google doc, or the most appropriate space for the info.

#### How do you practice Chat-Zero? (Comment with your answer)
- How do you go through every message in your chat?
- How do you know what is important?

#### Last Thoughts:
- Peter can’t wait for computers to be smart enough to interrupt us only when appropriate. “Who is the least invested in their work right now? Let’s notify that person.”
- If you are considering it, do it. But be careful what you use, and how you use it.
- Jason: It's new tech, but its the old problem. ChatOps is just the newest efficiency on the line.

###### Sign up for the [Banana Stand](https://www.arresteddevops.com/bananastand) for the latest ADO news.

repository: arresteddevops/ado-hugo

branch_name: refs/heads/main

extension: md

gha_language: CSS

gha_license_id: NOASSERTION

license_type: permissive

repo_name: arresteddevops/ado-hugo


text:
# WordPress development

Develop WordPress themes and plugins:

1. Run `docker-compose up` to launch MySQL and WordPress containers (this will take several minutes the first time it's run).
1. Open <http://localhost:8001/> in a browser and install WordPress. Log on to the administration panels as instructed.
1. Add, edit, or remove files in the `wp-content` folder. The `docker-basic` theme can be copied to `wp-content/themes/` and applied in the WordPress **Appearance** menu.
1. Refresh the browser to view changes.

Press `Ctrl|Cmd + C` to stop Docker Compose.

license: MIT

repository: craigbuckler/docker-web

branch_name: refs/heads/master

gha_language: JavaScript

gha_license_id: MIT

repo_name: craigbuckler/docker-web


text:
## Short URL Generator

Python module for generating tiny URLs.

### Sample Usage

    >>> import short_url
    >>> short_url.encode_url(123)
    '9epgb'
    >>> short_url.decode_url('9epgb')
    123
    >>> short_url.encode_url(124)
    '2yy2m'
    >>> short_url.decode_url('2yy2m')
    124

### Implementation Details

A bit-shuffling approach is used to avoid generating URLs in a consecutive,
predictable order. However, the algorithm is deterministic and guarantees that
no collisions will occur.

The URL alphabet is fully customizable and may contain any number of
characters. By default, digits and lower-case letters are used, with some
removed to avoid confusion between characters like o, O and 0. The default
alphabet is shuffled and has a prime number of characters to further improve
the results of the algorithm.

The block size specifies how many bits will be shuffled. The lower BLOCK_SIZE
bits are reversed. Any bits higher than BLOCK_SIZE will remain as is.
BLOCK_SIZE of 0 will leave all bits unaffected and the algorithm will simply
be converting your integer to a different base. BLOCK_SIZE is necessary to
establish an upper-bound for the bit reversal and to generate the URLs at an
appropriate length.

The intended use is that incrementing, consecutive integers will be used as
keys to generate the short URLs. For example, when creating a new URL, the
unique integer ID assigned by a database could be used to generate the URL
by using this module. Or a simple counter may be used. As long as the same
integer is not used twice, the same short URL will not be generated twice.

The module supports both encoding and decoding of URLs. The min_length
parameter allows you to pad the URL if you want it to be a specific length.

Use the functions in the top-level of the module to use the default encoder.
Otherwise, you may create your own UrlEncoder object and use its encode_url
and decode_url methods.

repository: fogleman/ShortUrl

repo_name: fogleman/ShortUrl


text:
# Kafka Schema Configuration Data Source

The Kafka Schema Configuration data source provides information about the existing Aiven
Kafka Schema Configuration.

## Example Usage

```hcl
data "aiven_kafka_schema_configuration" "config" {
    project = aiven_project.kafka-schemas-project1.project
    service_name = aiven_service.kafka-service1.service_name
}
```

## Argument Reference

* `project` and `service_name` - (Required) define the project and service the Kafka Schemas belongs to.
They should be defined using reference as shown above to set up dependencies correctly.

## Attribute Reference

In addition to all arguments above, the following attributes are exported:

* `compatibility_level` - is the Global Kafka Schema configuration compatibility level when defined
for `aiven_kafka_schema_configuration` resource. Also, Kafka Schema configuration
compatibility level can be overridden for a specific subject when used in `aiven_kafka_schema`
resource. If the compatibility level not specified for the individual subject by default,
it takes a global value. Allowed values: `BACKWARD`, `BACKWARD_TRANSITIVE`, `FORWARD`,
`FORWARD_TRANSITIVE`, `FULL`, `FULL_TRANSITIVE`, `NONE`.

repository: ravindrasinghh/terraform-provider-aiven

repo_name: ravindrasinghh/terraform-provider-aiven


text:
# Pokedex.Api [![Demo live](https://img.shields.io/badge/demo-live-green)](https://mim-pokedex-api.herokuapp.com/) [![GitHub license](https://img.shields.io/github/license/Blazevarjo/Pokedex.Api)](https://github.com/Blazevarjo/Pokedex.Api/blob/master/LICENSE)

[Pokedex.Api](https://github.com/Blazevarjo/Pokedex.Api) is a REST Api that was built to serve data for [Pokedex](https://github.com/MKamil99/Pokedex) to reduce the amount of calls to [PokeApi](https://pokeapi.co/). This app has only one endpoint which shares the list of pokemons with basic info to easily display cards of each pokemon. The data is periodically updated once a day with data fetched from [PokeApi](https://pokeapi.co/). It is deployed on [heroku](https://mim-pokedex-api.herokuapp.com/).

# Table of contents
- [Technologies](#technologies)
- [Installation](#installation)
- [Usage](#usage)
- [Status](#status)
- [License](#license)

# Technologies

- Python 3.9.5
- Django REST framework 3.12.4
- Django celery beat 2.2.0
- Celery 5.0.5
- PostgreSQL latest (13.3)
- Redis latest (6.2.3)
- Gunicorn 20.1.0

[Here](requirements.txt) you can check all dependencies.

## Installation
### Prerequisites

Docker is required to run the app locally.

### Setup

1. Create .env file in the root directory with the config of environment variables. [Here](.env-example) you can check the example of the configuration.
2. Build and run the docker container.
```bash
docker-compose up
```
App is now available at http://<IP_ADDRESS>:8000/.

## Usage
1. Root endpoint: http://<IP_ADDRESS>:8000/

2. Pokemons endpoint: http://<IP_ADDRESS>:8000/pokemons

## Status

Currently, the app is considered as finished and there are no plans to do any updates on it.

## License

[MIT](LICENSE)


text:
# Xloit Bridge Doctrine DBAL Library

This is the Bridge Doctrine DBAL Library for Xloit.

- File issues at [https://github.com/xloit/xloit-bridge-doctrine-dbal/issues](https://github.com/xloit/xloit-bridge-doctrine-dbal/issues)
- Create pull requests against [https://github.com/xloit/xloit-bridge-doctrine-dbal](https://github.com/xloit/xloit-bridge-doctrine-dbal)

## Installation

Install this library using composer:

```
$ composer require xloit/xloit-bridge-doctrine-dbal
```

## Resources

You can run the unit tests with the following command:

```
$ cd path/to/xloit-bridge-doctrine-dbal/
$ composer install
$ ./bin/phpunit
```

## LICENSE

The files in this archive are released under MIT License.
You can find a copy of this license in [LICENSE](LICENSE).

repository: xloit/xloit-bridge-doctrine-dbal

repo_name: xloit/xloit-bridge-doctrine-dbal


text:
# tslice
Create time-slice photos with Python

Prerequisites:
- Python Imaging Library ('PIL')

The class 'TimeSlice' in 'tslice.py' is constructed with a directory path which should contain a sequence of photos in name-order.  Other options are explained within the code itself.

You can create time-slices from all or some of your photos (skipping every so many photos if you decide there are too many)  Linear slices running left-to-right, top-to-bottom, right-to-left, and bottom-to-top are all possible.  Again, see the comments in the code.

A full example ('example.py') is included which, if you simply run it, should make things fairly clear.

Please feel free to get in touch with your time-slices.  I'd love to see what people come up with.

repository: dataaa/tslice

repo_name: dataaa/tslice


text:
# Description
A pytorch implementation of the "In Defense of the Triplet Loss for Person Re-Identification" paper (https://arxiv.org/abs/1703.07737).

This repository also contains also a implementation of the MGN network from the paper:
["Learning Discriminative Features with Multiple Granularities for Person Re-Identification"](https://arxiv.org/abs/1804.01438)

It is built from scratch with ease in experimenting, modification and reproducability.
However, it still work in progress.

# Requirements

- numpy
- Pillow
- h5py
- scipy
- torch
- torchvision

This repository depends for evaluation on the original repository:
https://github.com/VisualComputingInstitute/triplet-reid

For evaluation:
- tensorflow
- scikit-learn
- scipy
- h5py

# Installation
git clone https://github.com/kilsenp/triplet-reid-pytorch.git
pip install -r requirements.txt (for training)

# Train
```
python3 train.py --csv_file path/to/
                 --data_dir path/to/image/base/directory
                 --loss BatchHard
                 --model trinet
```
The script looks for the image files by joining the data_dir and image path given in the csv file.
The csv file should be a two column file with pids, fids.

For market, you can find them [here](https://github.com/VisualComputingInstitute/triplet-reid/tree/master/data):

If you would like to train using the MGN network, use the following command:
```
python3 train.py --csv_file path/to/
                 --data_dir path/to/image/base/directory
                 --loss BatchHardSingleWithSoftmax
                 --model mgn
                 --mgn branches 1 2 3
                 --dim 256
```

# Evaluation

You can use embed.py to write out embeddings that are compatible with the
evaluation script.

```
python3 embed.py --csv_file path/to/gallery/or/query/csv
                 --data_dir path/to/image/base/directory
                 --model path/to/model/file
```
To calculate the final scores, please use the evaluation script from
[here](https://github.com/VisualComputingInstitute/triplet-reid#evaluating-embeddings)!

# Scores without Re-rank (and pretrained models)
### Market-1501
#### Trinet
Settings:
- P=18
- K=4
- dim=128

Download Model ([GoogleDrive](https://drive.google.com/open?id=1eNJuLxRz3dJ0MkVjoLP6vshxZUn_NLn0))

|Test time augmentation| mAP | top-1 | top-5| top-10|
|---|---:|---:|---:|---:|
| None | 65.06% | 80.31% | 92.25% | 94.71% |
| With TenCrop |  69.44% | 83.40% | 93.59% | 96.17% |

#### MGN

Settings:

```
  "K": 4,
  "P": 16,
  "checkpoint_frequency": 1000,
  "commit": "c1c1a27",
  "csv_file": "data/market1501_train.csv",
  "data_dir": "datasets/Market-1501",
  "decay_start_iteration": 15000,
  "dim": 256,
  "experiment": "new_mgn_123_single",
  "image_height": 384,
  "image_width": 128,
  "log_level": 1,
  "loss": "BatchHardSingleWithSoftmax",
  "lr": 0.0003,
  "margin": "1.2",
  "mgn_branches": [
    1,
    2,
    3
  ],
  "model": "mgn",
  "no_multi_gpu": false,
  "num_classes": 751,
  "output_path": "training",
  "restore_checkpoint": null,
  "sampler": "TripletBatchSampler",
  "scale": 1.0,
  "train_iterations": 25000
```

| Test time augmentation | mAP | top-1 | top-5| top-10|
|---|---:|---:|---:|---:|
| With Horizontal Flip | 83.17% | 93.62% | 97.86% | 98.66% |

# TODO
- [x] Evaluate current MGN
- [ ] Upload MGN model
- [ ] Improve logging (Use tensorboard or similar)
- [ ] Clean up CPU GPU mess


text:
# https-jared-portfolio-github.io# {Jared Amima}
#### {Brief description of application}, {Date of current version}
#### By **{Jared Amima.}**
## Description
{Web portfolio is used to showcase once work and great progress towards improving web development.}
## Technologies Used
{HTML, CSS}
*{MIT}*
Copyright (c) {2020} **{Jared Amima.}**

gha_language: HTML


text:
---
title: Adding your locale to Moment.js
---

To add your locale to Moment.js, submit a pull request with both a locale file and a test file. You can find examples in `moment/src/locale/fr.js` and `moment/src/test/locale/fr.js`.

To run the tests in Node.js, do `npm install`, then `grunt`.

If all the tests pass, submit a pull request, and thank you for contributing!


text:
# Development Phases

## Initial Instructions

Today you will be building a Node / Express based web applications for handling reservation requests.

Your application will be made up of two parts:
1) A front-end set of HTML/CSS/JS pages for entering and viewing data and
2) A back-end composed of Node/Express and basic JS for storing, updating, and relaying reservation data.

Spend the time necessary to map this application out. Consider the concepts we've covered in class so far:

* Servers
* Routing
* APIs
* AJAX (GET and POST Requests)

You should be referencing the code from the previous Star Wars application.

Feel encouraged to use the following application as a reference: <http://hot-restaurant-fsf.herokuapp.com/>

Note: We know this is a hard activity. We know you aren't yet comfortable with Node or Express. But push yourself. The best way to learn is to push through the discomfort and BUILD! Ask for help when you need it. We're here to help you through the process.

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

## Phase I - For this first phase, aim to write out the pieces that will need to be programmed to create the functionality of your application. Try to break it into 6-7 pieces

* Create the front-end (visuals) for home page, reservation form, and reservation views.

* Create a basic server using Express.JS

* Create a few array variables that will hold the data

* Create a set of routes for getting and posting table data

* Create a set of routes for displaying the HTML pages

* Use jQuery to run AJAX calls to GET and POST data from users to the Express server

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

## Phase II - For this second phase, aim to complete the following

* Backend Team:

Create a basic Express server.

Your server at this point should do the BARE MINIMUM. (Effectively, it should just say: "Listening at PORT 3000" when the command node server.js is run.)

* Frontend Team:

Create three HTML files one called home.html, another called tables.html, and another called reserve.html. Use dummy data and create pages similar to the one shown to you on the sample Hot Reservation webpage.
All: If you finish early, begin thinking about how the Data, API, and Routes should look.

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

## Phase III - For this third phase, aim to complete the following

* Backend Team:

Create a set of variables (hint: arrays of objects) for holding the reservation and waitlist data

Create a set of routes that then display this data as JSONs. Users should be given these JSONs if they visit the appropriate page (i.e. if a user visits localhost:3000/api/tables they should see a JSON of table data).

* Frontend Team:

Temporarily join the backend team. Your task will be to create Express routes that display your HTML pages when a user visits the appropriate page. (i.e. if a user visits localhost:3000/tables... they should be shown the table.html page.)

If you finish early begin creating the code necessary to convert your form data into JSON objects.

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

## Phase IV - For this fourth phase, aim to complete the following

* Backend Team:

Create the logic that handles reservation requests. Your code should work such that POST requests take in JSON objects, checks if there is any space left, then adds the JSON object to either the reservation array or the waitlist array. Your POST route should also respond to requests with a confirmation (true or false) of whether or not the requestor has a reservation (or is on the waiting list).

You should be using Postman to do all your testing at this point.

* Frontend Team:

Begin to do serious research on AJAX. Specifically, focus your attention on how AJAX can be used to do both GET and POST requests.

Then create the necessary code on your tables.html page such that it can retrieve data from the Backend Team's API. In essence you will be creating an AJAX GET request to retrieve the data.

Then create the necessary code on your reserve.html page such that it can send data to the Backend Team's API. In essence you will be creating an AJAX POST request to send the data.

All: This is the most challenging part of today's activity. Be persistent! You can do this!

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

## Phase V - For the fifth and final phase, aim to complete the following

All:
Complete any remaining functionality from the previous phase if you need more time.

Then, thoroughly test your application for bugs. Check if there are any obvious ways to crash the application.

Then, if you have more time -- begin to tackle any bonus of your choice:

* Add buttons for "checking off" individuals from the reservation list. Once this happens, the next person on the waitlist should be addd to the main reservation list.

* Add code to your server so that it "counts" every time a person visits any of the pages. Display a running count on the website.

* Add a button for sending emails to individuals on the wait-list letting them know they have a table ready. You will need to use node-mailer or a similar npm package to make this work. (A hard task, but very cool).

* Add a button for sending text messages to individuals on the wait-list letting them know they have a table ready. You will need to use the Twilio library to make this work. (A hard task, but very cool).

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

repository: Dethrelkeld/waitinglist

repo_name: Dethrelkeld/waitinglist


text:
# Logfmt

The **logfmt** parser allows to parse the logfmt format described in [https://brandur.org/logfmt](https://brandur.org/logfmt) . A more formal description is in [https://godoc.org/github.com/kr/logfmt](https://godoc.org/github.com/kr/logfmt) .

Here is an example configuration:

```python
[PARSER]
    Name        logfmt
    Format      logfmt
```

The following log entry is a valid content for the parser defined above:

```text
key1=val1 key2=val2 key3
```

After processing, it internal representation will be:

```text
[1540936693, {"key1"=>"val1",
              "key2"=>"val2"
              "key3"=>true}]
```

If you want to be more strict than the logfmt standard and not parse lines where some attributes do
not have values (such as `key3`) in the example above, you can configure the parser as follows:

```python
[PARSER]
    Name        logfmt
    Format      logfmt
    Logfmt_No_Bare_Keys true
```

repository: fluent/fluent-bit-docs

gha_language: Shell

repo_name: fluent/fluent-bit-docs


text:
# BOSH Release for logsearch

An easily-deployable stack of [Elasticsearch](http://www.elasticsearch.org/overview/elasticsearch/),
[Logstash](http://www.elasticsearch.org/overview/logstash/), and
[Kibana](http://www.elasticsearch.org/overview/kibana/) which can scale on your
own [BOSH](http://docs.cloudfoundry.org/bosh/)-managed infrastructure.

## Getting Started

First make sure you have properly targeted your existing BOSH director. Then
you can upload the latest logsearch release...

    git clone https://github.com/cloudfoundry-community/logsearch-boshrelease.git
    cd logsearch-boshrelease
    bosh upload release releases/logsearch-latest.yml

Next you'll need to create your own deployment manifest. Right now the easiest
way to do that is by using one of the [`examples`](./examples) as a starting
point.

Then you can run the deploy...

    bosh deployment my_manifest.yml
    bosh deploy

### Shipping Logs

Logsearch can currently receive logs over three different protocols:

 * [Syslog, Syslog TLS](./jobs/ingestor_syslog/spec),
 * [RELP](./jobs/ingestor_relp/spec), and
 * [Lumberjack](./jobs/ingestor_lumberjack/spec).

Depending on the protocol, you may need to configure additional properties in
your deployment manifest (e.g. add certificates for Syslog TLS and Lumberjack).

If you need help getting your logs into the logsearch stack, you may find these
tools useful:

 * [nxlog](http://nxlog.org/) - multi-platform log collector and forwarder
 * [rsyslog](http://www.rsyslog.com/) - log collector and forwarder
 * [logstash-forwarder](https://github.com/elasticsearch/logstash-forwarder) - log forwarder (using lumberjack)

### Customizing Filters

By default, [some filters](https://github.com/logsearch/logsearch-boshrelease/blob/develop/jobs/log_parser/templates/config/filters_default.conf)
are pre-installed for common log formats, but eventually, you'll want to change
them or add your own application-specific log formats. Take a look at the
[`logsearch/logsearch-filters-common`](https://github.com/logsearch/logsearch-filters-common)
repository for [instructions](https://github.com/logsearch/logsearch-filters-common#reuse)
on setting up an environment for writing and testing your filters. Once written,
include your filters through the `logstash_parser.filters` property.

## Testing

```
RESTCLIENT_LOG=stdout API_URL="http://<IP_ADDRESS>" INGESTOR_HOST="<IP_ADDRESS>" bundle exec rspec
```

## License

[Apache License 2.0](./LICENSE)

repository: markstokan/logsearch-boshrelease

branch_name: refs/heads/develop

repo_name: markstokan/logsearch-boshrelease


text:
---
layout: page
title: Research Projects
subtitle: What keeps me busy at school
comments: true
---

This is a collection of some my research projects.

---

## Eye tracking

- **[PyViewX](http://ryanhope.github.io/research_projects/pyviewx)** - a Twisted based Python package for communicating with SMI eye trackers.
- **[Gazetools](http://ryanhope.github.io/resaerch_projects/gazetools)** - an R package for classifying and analyzing raw eye tracking data.
- **[Gazetools-CL](http://ryanhope.github.io/research_projects/gazetoolsCL)** - OpenCL kernels with Python wrappers for classifying raw eye tracking data.

## ACT-R

- **[JSON Network Interface](http://ryanhope.github.io/research_projects/json-network-interface)** - a module for ACT-R that allows for models to interact with external task environments via JSON over TCP/IP.


text:
**[Home](Home)**

This HTTP interface deals with methods for managing assets. Browsing functionalities are implemented by a different [one]()

Specifications:

- [Asset]()
- [REST API]()

**NOTE: Only assets version 1.1.0 are supported by this API**

### GET | Retrieve api description

**/assetmanager**

The api description is accessible from the above base url. The representation is organized like this:
```javascript
{
    name: "Asset manager",
    version: "0.1.0",
    workspaces_url: "/workspaces/"
}
```

Response:

| Code | Mimetype | Data type | Data |
|------|--------|--------|----------------------|
| 200 | application/json | Object | { api description } |

### POST | Create a workspace

Create a workspace by cloning a project.

**/assetmanager/workspaces**

Request:

    Headers

    Content-Type
    This is a json so the content type is "application/json"

    Body

    Workspace meta information
    { file_uri: workspace file uri in client fs, name: workspace name, organization: organization name, project_name: project name, branch: OPTIONAL - specific branch to checkout from project (master if not specified), description: OPTIONAL - description of the created workspace }

    Path

    /workspaces
    Path that routes to workspaces services

Response:

| Code | Mimetype | Data type | Data |
|------|--------|--------|----------------------|
| 200 | application/json | String | { workspace metadata } |

### DELETE | Delete a workspace

Delete workspace in client file system.

**/assetmanager/workspaces/{workspace_name}**

Request:

    Headers

    Content-Type
    This is a json so the content type is "application/json"

    Path

    /workspaces/
    Is a fixed string that routes to workspace module

    {workspace_name}
    Workspace name can be used instead of the ids.  Example: "feat/test/new", "hello-world". It can be capitalized, but it is not allowed to have two workspace names that only differentiate in their capitalization. It must match "/^[[\w\/\.-]{0,100}$/" regular expression.

Response:

| Code | Mimetype | Data type | Data |
|------|--------|--------|----------------------|
| 200 | application/json | String | "Ok" |
***

### POST | Add a workspace to favorite list

Add workspace reference in the favorite list cf([/contentbrowser/workspaces]()] indexed by our [setting file]().

**/assetmanager/workspaces/favorites**

Request:

    Headers

    Content-Type
    This is a json so the content type is "application/json"

    Body

    Workspace meta information
    { file_uri: workspace file uri in client fs }

    Path

    /workspaces
    Path that routes to workspaces services

Response:

| Code | Mimetype | Data type | Data |
|------|--------|--------|----------------------|
| 200 | application/json | String | { workspace metadata } |

Example answer:

```
{
    name: 'feat/test-workspace',
    description: 'This is your first workspace cloned from DLC_1 branch !',
    type: 'application/vnd.bilrost.workspace+json'
}
```

### DELETE | Forget a workspace from favorite list

Forget a project from the [setting file]() where are stored favorite workspaces.

**/assetmanager/workspaces/{workspace_name}/favorites**

Request:

    Headers

    Content-Type
    This is a json so the content type is "application/json"

    Path

    /workspaces/
    Is a fixed string that routes to workspace module

    {workspace_name}
    Workspace name can be used instead of the ids.  Example: "feat/test/new", "hello-world". It can be capitalized, but it is not allowed to have two workspace names that only differentiate in their capitalization. It must match "/^[[\w\/\.-]{0,100}$/" regular expression.

Response:

| Code | Mimetype | Data type | Data |
|------|--------|--------|----------------------|
| 200 | application/json | String | "Ok" |

***

### GET | Retrieve Workspace Status

**/assetmanager/workspaces/{workspace_name}/status**

A Workspace has statuses for multiple specific contexts. The result of this request is VALID if, and only if, all the contexts' statuses are not "INVALID".

Response:

| Code | Mimetype | Data type | Data |
|------|--------|--------|----------------------|
| 200 | application/json | Object | { state : "status_name", context : "context_name", info : {guilty_status: {Status}, guilty_ref: "context_name"} } |

### GET | Retrieve Workspace Status List

**/assetmanager/workspaces/{workspace_name}/statuses**

A Workspace has statuses for multiple specific contexts. The result of this request is a list relating each context to it's respective status.

Response:

| Code | Mimetype | Data type | Data |
|------|--------|--------|----------------------|
| 200 | application/json | Object | [{ state : "status_name", context : "context_name", info : {...} }, ...] |

### PUT | Create and update an asset

**/assetmanager/workspaces/{workspace_name}{asset_ref}**

![](images/asset_manager/PUT.png)

Request:

    Headers

    Content-Type*
    The asset type. eg application/json

    Last-modified
    The date under ISO format when the asset has been latest modified. eg 2016-08-16T07:29:11.695Z

    Body

    Asset resource without meta information
    {
    tags: Array of Strings,
    comment: String,
    main: String,
    dependencies: Array of String,
    semantics: Array of String or Object
}

    Path

    /workspaces/
    Is a fixed string that routes to workspaces module

    {asset_ref}
     It must start with "assets/" keyword. Example: "assets/test/example.level", "assets/test/" and "assets/". Asset refs can be capitalized, but it is not allowed to have two asset refs that only differentiate in their capitalization. it must match "/^(assets|resources)\/.*/" regular expression.

Response:

| Code | Mime-type | Data type | Data |
|------|--------|--------|----------------------|
| 200 | application/json | Object | { asset metadata } |
| 201 | application/json | Object | { asset metadata } |

##### Examples

* /assetmanager/workspaces/example/assets/new_asset
returns 201 as it creates the new asset
* /assetmanager/workspaces/example/assets/new_asset
returns 200 as it updates the new asset previously created

### POST | Rename an asset

**/assetmanager/workspaces/{workspace_name}/rename{asset_ref}**

![](images/asset_manager/POST.png)

Request:

    Headers

    Content-Type
    The asset type. eg application/json

    Last-modified
    The date under ISO format when the asset has been latest modified. eg 2016-08-16T07:29:11.695Z

    Body

    New asset reference
    {
    new: assets/new_ref
}

    Path

    /workspaces/
    Is a fixed string that routes to workspaces module

    /rename/
    Is a fixed string that informs the action to perform. In this case the route is asking for renaming

    {asset_ref}
     It must start with "assets/" keyword. Example: "assets/test/example.level", "assets/test/" and "assets/". Asset refs can be capitalized, but it is not allowed to have two asset refs that only differentiate in their capitalization. it must match "/^(assets|resources)\/.*/" regular expression.

Response:

| Code | Mime-type | Data type | Data |
|------|--------|--------|----------------------|
| 200 | application/json | Object | { asset metadata } |

##### Examples

* /assetmanager/workspaces/example/assets/new_asset
returns 200 as it renames the asset with the ref informed in the body message

### DELETE | Delete an asset

**/assetmanager/workspaces/{workspace_name}{asset_ref}**

![](images/asset_manager/DELETE.png)

Request:

    Path

    /workspaces/
    Is a fixed string that routes to workspaces module

    {asset_ref}
     It must start with "assets/" keyword. Example: "assets/test/example.level", "assets/test/" and "assets/". Asset refs can be capitalized, but it is not allowed to have two asset refs that only differentiate in their capitalization. it must match "/^(assets|resources)\/.*/" regular expression.

Response:

| Code | Mime-type | Data type | Data |
|------|--------|--------|----------------------|
| 204 | application/json | Object | No content |

### ERROR PROTOCOL

| Code | Mimetype | Data type | Message | Example |
|------|--------|--------|----------------------|----------------------|
| 403 | application/json | Error | [object] already exist | [PUT] /contentbrowser/workspaces an already existing worskpace in favorite list. |
| 404 | application/json | Error | [api name] not found, [element_not_found] | [GET] /contentbrowser/workspaces/ an unknown workspace. |
| 400 | application/json | Error | [api name] corrupted, [element_not_valid] cannot be found or is invalid | [GET] /contentbrowser/workspaces/{workspace_identifier} where workspace_identifier points to an invalid workspace resource. |
| 500 | application/json | Error | [api name] programms encoutered an unexpected failure: [error] | [GET] /contentbrowser/workspaces/{workspace_identifier} and the server couldn't read the workspace content as the server doesn't have read access. The error paramater will output then the related internal error from the server. |
| 501 | application/json | Error | [api name] not found, [element_not_supported] is not supported yet' | [GET] /contentbrowser/projects informs that this route isn't fully implemented yet. |
| | | | |  |

#### All other trademarks are the property of their respective owners
#### Copyright (C) 2015-2018 Starbreeze AB All Rights Reserved


text:
# Vacation Planner [![Build Status](https://travis-ci.org/agrippa1994/vacation-planner.svg?branch=master)](https://travis-ci.org/agrippa1994/vacation-planner)

## Overview
This is a simple vacation planner based on NodeJS and the Ionic framework.

## Screenshots
![](doc/assets/map.png)
![](doc/assets/cashbox.png)
![](doc/assets/notes.png)
![](doc/assets/settings.png)

### Features
* Map
* Cashbox
* Notes

### Requirements by the professor
```
Topic-E "Vacation-App"
    Problem:
    You intend to plan a journey with friends. You need to keep all data together and you want access it from everywhere (travel partner, timetable, emails, booking information, money keeping)

    Solution:
    Your app manages the journey, track information and provide information to all participants. Handle the money (with a common holiday cash  box).

    Main-Features:
    Managing information
    Managing money in 2 currencies
    and more - define in advance
```

## Initial Setup
* Install NodeJS and NPM
* Install Ionic with ```npm```
    ```
    npm install -g ionic
    ```

## Development Guide

### Installing Dependencies
* Open a terminal and navigate to the project directory
* Execute ```npm install```. This installs the dependencies for the client and the server

### Starting the Server
* Open a terminal and navigate to the project directory
* Execute ```npm run server```

### Starting the Client
* Open a terminal and navigate to the project directory
* Execute ```npm run client```

### Executing All Tests
* Open a terminal and navigate to the project directory
* Execute ```npm test```

### Create Documentation
* Open a terminal and navigate to the ```client``` directory
* Execute ```npm run compodoc``` to generate the documentation

## Testing

### Client-Side Testing

#### Automatic UI Testing
The automatic UI tests are located in the ```client/e2e/src``` directory. Each ```.e2e-spec.ts``` file represents one UI test that consists of several test suites and test cases. The ```.po.ts``` file represents [Page Objects](https://martinfowler.com/bliki/PageObject.html). Each Page Object encapsulates all operation that can be triggered on a page. However, use these Page Objects in the tests and do not access UI elements by css or id selectors.

##### Executing Automatic UI Tests
* Open a terminal and navigate to the ```client``` directory. Execute ```npm run e2e``` in this directory.

This command downloads the Chrome Driver and runs all ```.e2e-spec.ts``` files. The test starts the browser and communicates with the browser via the Chrome Driver.

### Documentation
Documentation is available on GitHub, please check the [GitHub Page](https://agrippa1994.github.io/vacation-planner).

## Server API

### Notes
__notes object:__
```
{
    "id": 1,
    "timestamp": "2019-06-22 16:31:41",
    "username": "John Doe",
    "note": "HI"
}
```

| Method    | Url           | Action                                   |
| --------- |---------------| ---------------------------------------- |
| GET       | `/api/notes`      | Returns all notes                    |
| POST      | `/api/notes`      | Add new Note                         |
| DELETE    | `/api/notes/{id}` | Delete the note with the given id    |
| PUT       | `/api/notes/{id}` | Update the note with the given id    |

### Positions
```
{
    "username": "Kim",
    "position": {
        "timestamp":<PHONE_NUMBER>306,
        "coords": {
            "longitude": 39.021724,
            "latitude": 125.743610
        }
    }
}
```

| Method    | Url           | Action                               |
| --------- |---------------| ------------------------------------ |
| GET       | `/api/positions`  | Returns all positions            |
| POST      | `/api/position`   | Add new positions                |

### Cashbox
__invoice object:__
```
{
    "id": 1,
    "timestamp": "2019-06-22 09:36:39",
    "title": "Invoice 1",
    "cost": 12.34,
    "currency": "EUR",
    "description": "describing describtion"
}
```

#### CRUD
| Method    | Url                | Action                                      |
| --------- |--------------------| ------------------------------------------- |
| GET       | `/api/cashbox`         | Returns all Invoices                    |
| GET       | `/api/cashbox/id/{id}` | Returns all Invoices                    |
| POST      | `/api/cashbox`         | Add new Invoice                         |
| DELETE    | `/api/cashbox/{id}`    | Delete the Invoice with the given id    |
| PUT       | `/api/cashbox/{id}`    | Update the Invoice with the given id    |
#### Sums and Exchange Rates
| Method    | Url                             | Action                                                                                |
| --------- |---------------------------------| ---------------------------------------------------------------------------------------------- |
| GET       | `/api/cashbox/sum/{currency}`       | Returns the sum of the costs of all invoices converted to the given currency (default EUR) |
| GET       | `/api/cashbox/converted/{currency}` | Returns all Invoices with the costs converted to the given currency                        |

## Progressive Web App

The last step was to turn the application into a progressive web app. (=PWA), to add mobile devices and offline support.
The first step was to create `manifest.json` file and add this and other infos in the `index.html` file.
This manifest inculudes information about the app. (name, color, icons). The service worker (`sw.js`) supports the offline functionality.

#### Problems
A big problem was the compatibility between the internet-guides and our angular application, because if you use angular you must also
extend the `angular.json` file. If you don't extend this file you will get errors. (404, fetching errors).
So you must add this do your angular configuration file:

 `"src/manifest.json",
 "src/sw.js"`

 In newer angular versions it is also possible to create the manifest.json automatically with the command
 `ng add @angular/pwa`. (https://angular.io/guide/service-worker-getting-started).
 It is also possible to add the service worker in the `index.html` file. (commented out)

 #### Affort
 The main affort includes researches, reading guides and turn the current angular/ionic application in a PWA.
 (extend and add files, search errors)

gha_language: TypeScript


text:
---
authors:
- Helene Hahn
date: 2017-03-09 09:00:00
picture:
  src: /files/blog/2017/03/isis.jpg
  title: Isis Reis
  license: "CC-BY 3.0, Isis Reis, Datenschule, Foto: Helene Hahn"
  license_url: "https://creativecommons.org/licenses/by/3.0/"
tags:
  - interview
  - community
  - learning
title: "Working with data - Interview #4"
---

What does it mean to become ‘data literate’? Where do you start and how can you use data within your work and projects? To explore these questions, we would like to introduce some of our community members and data activists from around the world, who ended up working with data at some point in their lives. We were curious about how they actually got started and - looking back now - what they would recommend to data newbies.

Each month we will publish a new interview, this is no. #3. Got feedback? Have questions? Feel free to get in touch: [info<EMAIL_ADDRESS>

### Isis Reis
**Who:** Data trainer and journalist at School of Data and Data Lab, from Brazil

**Topics:** data driven journalism, datastories

**Tweets:** [@Isisrf](http://twitter.com/Isisrf)

**Hi Isis, please introduce yourself.**

I’m Isis and I’am working at the Data Lab and with School of Data in Brazil. We are working towards a more data-savvy society and are promoting data literacy skills especially among young people living in rural areas in Rio de Janeiro, the favelas and in the outskirts of Rio.

**When was the first time you came across data and when did you start to use data in your work?**

I used to work with a large NGO in Brazil, that was founded in the 80s after the re-democratisation period. Our organisation was fighting inequality and did research on societal issues to help improve living conditions of local people. We used to have a huge amount of quantitative data from our research and surveys, but no one knew how to work with the data and how to make sense of what we gathered over a long period of time. With the improvement of the freedom of information act in Brazil, we quickly realised that data will soon be playing a very important part in our every-day work.

Me and my colleague Natalia Mazotte, a data journalist with whom I used to work with, got in touch with another NGO called Transparencia Hacker, a hacktivist group based in Brazil. They taught us basic data skills, such as how to work with data, how to make visualisations and what open data means. I started working with html and css, supported different projects and helped building indexes based on data. Later I started working with School of Data.

**How would you explain data literacy?**

Data literacy skills include at least a basic understand of informational, statistical and technical knowledge. Data literacy in practice means to me, that people know where to get data they need and are able to work with tools that can help answer their questions.

**What benefits do you see for a data-savvy society?**

Data could help understand complex issues that we as a society need to work on, like global warming. Data also helps us to establish more transparency in the political sphere. By having the facts, we help people to better understand social issues and engage in decisions made by the governments. We need data to formulate arguments and ask the right questions. In other words, we need data to better understand the reality we live in.

For us, data about living conditions in favelas is very hard to find, the national institutes don’t collect that kind of data. This means that so many people remain invisible to the society, which makes it hard to improve and provide the right services to help people in need.

**What would you recommend to someone interested in data, but who does not know where to start?**

Start reading articles about data and look out for existing data-driven projects, it’s great for your inspiration. I also recommend the School of Data tutorials, that I’m a huge fan of and that helped me to improve my data skills. If you’re based in Brazil, don’t hesitate to contact the Data Lab and get in touch with us. Also there are many data driven communities in Brazil, that can help you start your project or join an existing one.

####Links:
[Blog posts by Isis and her team at School of Data Brazil](https://escoladedados.org/tag/curso/)

[Data Lab in Brazil](datalabe.org/)

[Transparencia Hacker Brazil](https://br.okfn.org/tag/transparencia-hacker/)


text:
---
title: "Create channel"
description: "Create new channel in a team, as specified in the request body."
ms.localizationpriority: medium
author: "nkramer"
ms.prod: "microsoft-teams"
doc_type: apiPageType
---

# Create channel

Namespace: microsoft.graph

Create a new [channel](../resources/channel.md) in a team, as specified in the request body.  When you create a channel, the maximum length of the channel's `displayName` is 50 characters. This is the name that appears to the user in Microsoft Teams.

If you're creating a private channel, you can add a maximum of 200 members.

> [!NOTE]
> Some special characters in the channel name will cause the [Get filesFolder](/graph/api/channel-get-filesfolder) API to return an error. For details, see [Known issues](/graph/known-issues#create-channel).

## Permissions

One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Permissions](/graph/permissions-reference).

|Permission type      | Permissions (from least to most privileged)              |
|:--------------------|:---------------------------------------------------------|
|Delegated (work or school account) | Channel.Create, Group.ReadWrite.All**, Directory.ReadWrite.All** |
|Delegated (personal Microsoft account) | Not supported.    |
|Application | Channel.Create.Group*, Channel.Create, Teamwork.Migrate.All, Group.ReadWrite.All**, Directory.ReadWrite.All** |

> **Notes**:
> Permissions marked with ** are supported only for backward compatibility. We recommend that you update your solutions to use an alternative permission listed in the previous table and avoid using these permissions going forward. Permissions marked with * use [resource-specific consent](/microsoftteams/platform/graph-api/rsc/resource-specific-consent).
>
> This API supports admin permissions. Global admins and Microsoft Teams service admins can access teams that they are not a member of.
>
> In the future, Microsoft may require you or your customers to pay additional fees based on the amount of data imported
using Teamwork.Migrate.All and/or [migration APIs](/microsoftteams/platform/graph-api/import-messages/import-external-messages-to-teams).

## HTTP request
<!-- { "blockType": "ignored" } -->
```http
POST /teams/{team-id}/channels
```

## Request headers

| Header       | Value |
|:---------------|:--------|
| Authorization  | Bearer {token}. Required.  |
| Content-Type  | application/json. Required.  |

## Request body

In the request body, supply a JSON representation of [channel](../resources/channel.md) object.

## Response

If successful, this method returns a `201 Created` response code and a [channel](../resources/channel.md) object in the response body for a channel with a **membershipType** value of `standard` or `private`. For a channel with a **membershipType** value of `shared`, this method returns a `202 Accepted` response code and a link to the [teamsAsyncOperation](../resources/teamsasyncoperation.md).

## Examples

### Example 1: Create a standard channel
#### Request

The following example shows a request to create a standard channel.

# [HTTP](#tab/http)
<!-- {
  "blockType": "request",
  "name": "create_channel_from_group"
}-->

```http
POST https://graph.microsoft.com/v1.0/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-type: application/json

{
  "displayName": "Architecture Discussion",
  "description": "This channel is where we debate all future architecture plans",
  "membershipType": "standard"
}
```

# [C#](#tab/csharp)

```csharp

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var channel = new Channel
{
	DisplayName = "Architecture Discussion",
	Description = "This channel is where we debate all future architecture plans",
	MembershipType = ChannelMembershipType.Standard
};

await graphClient.Teams["{team-id}"].Channels
	.Request()
	.AddAsync(channel);

```

 For details about how to [add the SDK](/graph/sdks/sdk-installation) to your project and [create an authProvider](/graph/sdks/choose-authentication-providers) instance, see the [SDK documentation](/graph/sdks/sdks-overview).

#### Response

The following is an example of the response.

> **Note:** The response object shown here might be shortened for readability.

<!-- {
  "blockType": "response",
  "truncated": true,
<EMAIL_ADDRESS>"microsoft.graph.channel"
}-->

```http
HTTP/1.1 201 Created
Content-type: application/json

{
  "id"<EMAIL_ADDRESS>  "displayName": "Architecture Discussion",
  "description": "This channel is where we debate all future architecture plans"
}
```

### Example 2: Create private channel on behalf of user

#### Request

The following example shows a request to create a private channel and add a user as an team owner.

# [HTTP](#tab/http)
<!-- {
  "blockType": "request",
  "name": "create_channel_from_user"
}-->
```http
POST https://graph.microsoft.com/v1.0/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-type: application/json

{
<EMAIL_ADDRESS>"#Microsoft.Graph.channel",
  "membershipType": "private",
  "displayName": "My First Private Channel",
  "description": "This is my first private channels",
  "members":
     [
        {
           "@odata.type":"#microsoft.graph.aadUserConversationMember",
           "user@odata.bind":"https://graph.microsoft.com/v1.0/users('62855810-484b-4823-9e01-60667f8b12ae')",
           "roles":["owner"]
        }
     ]
}
```

# [C#](#tab/csharp)

```csharp

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var channel = new Channel
{
	MembershipType = ChannelMembershipType.Private,
	DisplayName = "My First Private Channel",
	Description = "This is my first private channels",
	Members = new ChannelMembersCollectionPage()
	{
		new AadUserConversationMember
		{
			Roles = new List<String>()
			{
				"owner"
			},
			AdditionalData = new Dictionary<string, object>()
			{
<EMAIL_ADDRESS>"https://graph.microsoft.com/v1.0/users('62855810-484b-4823-9e01-60667f8b12ae')"}
			}
		}
	}
};

await graphClient.Teams["{team-id}"].Channels
	.Request()
	.AddAsync(channel);

```

 For details about how to [add the SDK](/graph/sdks/sdk-installation) to your project and [create an authProvider](/graph/sdks/choose-authentication-providers) instance, see the [SDK documentation](/graph/sdks/sdks-overview).

#### Response

The following is an example of the response.

<!-- {
  "blockType": "response",
  "truncated": true,
<EMAIL_ADDRESS>"microsoft.graph.channel"
}-->

```http
HTTP/1.1 201 Created
Content-type: application/json

{
<EMAIL_ADDRESS>"https://graph.microsoft.com/v1.0/$metadata#teams('57fb72d0-d811-46f4-8947-305e6072eaa5')/channels/$entity",
    "id"<EMAIL_ADDRESS>    "displayName": "My First Private Channel",
    "description": "This is my first private channels",
    "isFavoriteByDefault": null,
    "email": "",
    "webUrl": "https://teams.microsoft.com/l/channel/19:33b76eea88574bd1969dca37e2b7a819@thread.skype/My%20First%20Private%20Channel?groupId=57fb72d0-d811-46f4-8947-305e6072eaa5&tenantId=0fddfdc5-f319-491f-a514-be1bc1bf9ddc",
    "membershipType": "private"
}
```

### Example 3: Create a channel in migration mode

#### Request

The following example shows how to create a channel that will be used for importing messages.

# [HTTP](#tab/http)
<!-- {
  "blockType": "request",
  "name": "create_channel_for_migration"
}-->

```http
POST https://graph.microsoft.com/v1.0/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-Type: application/json

{
<EMAIL_ADDRESS>"migration",
  "displayName": "Import_150958_99z",
  "description": "Import_150958_99z",
  "createdDateTime": "2020-03-14T11:22:17.067Z"
}
```

# [C#](#tab/csharp)

```csharp

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var channel = new Channel
{
	DisplayName = "Import_150958_99z",
	Description = "Import_150958_99z",
	CreatedDateTime = DateTimeOffset.Parse("2020-03-14T11:22:17.067Z"),
	AdditionalData = new Dictionary<string, object>()
	{
<EMAIL_ADDRESS>"migration"}
	}
};

await graphClient.Teams["{team-id}"].Channels
	.Request()
	.AddAsync(channel);

```

 For details about how to [add the SDK](/graph/sdks/sdk-installation) to your project and [create an authProvider](/graph/sdks/choose-authentication-providers) instance, see the [SDK documentation](/graph/sdks/sdks-overview).

#### Response

The following example shows the response. The Content-Location header in the response specifies the path to the channel that is being provisioned.
Once provisioned, this channel can be used for [importing messages](/microsoftteams/platform/graph-api/import-messages/import-external-messages-to-teams).
<!-- {
  "blockType": "response",
  "truncated": true,
  "name": "create_channel_for_migration",
<EMAIL_ADDRESS>"microsoft.graph.channel"
} -->

```http
HTTP/1.1 201 Created
Location<EMAIL_ADDRESS>
{
<EMAIL_ADDRESS>"https://graph.microsoft.com/v1.0/$metadata#teams('57fb72d0-d811-46f4-8947-305e6072eaa5')/channels/$entity",
    "id"<EMAIL_ADDRESS>    "createdDateTime": null,
    "displayName": "Import_150958_99z",
    "description": "Import_150958_99z",
    "isFavoriteByDefault": null,
    "email": null,
    "webUrl": null,
    "membershipType": null,
    "moderationSettings": null
}
```

### Example 4: Create private channel on behalf of user using user principal name

#### Request

The following example shows a request to create a private channel and add a user as an team owner.

# [HTTP](#tab/http)
<!-- {
  "blockType": "request",
  "name": "create_private_channel_upn"
}-->

```http
POST https://graph.microsoft.com/v1.0/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-type: application/json

{
<EMAIL_ADDRESS>"#Microsoft.Graph.channel",
  "membershipType": "private",
  "displayName": "My First Private Channel",
  "description": "This is my first private channels",
  "members":
     [
        {
           "@odata.type":"#microsoft.graph.aadUserConversationMember",
           "user@odata.bind":"https://graph.microsoft.com/v1.0/users('jacob@contoso.com')",
           "roles":["owner"]
        }
     ]
}
```

# [C#](#tab/csharp)

```csharp

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var channel = new Channel
{
	MembershipType = ChannelMembershipType.Private,
	DisplayName = "My First Private Channel",
	Description = "This is my first private channels",
	Members = new ChannelMembersCollectionPage()
	{
		new AadUserConversationMember
		{
			Roles = new List<String>()
			{
				"owner"
			},
			AdditionalData = new Dictionary<string, object>()
			{
<EMAIL_ADDRESS>"https://graph.microsoft.com/v1.0/users('jacob@contoso.com')"}
			}
		}
	}
};

await graphClient.Teams["{team-id}"].Channels
	.Request()
	.AddAsync(channel);

```

 For details about how to [add the SDK](/graph/sdks/sdk-installation) to your project and [create an authProvider](/graph/sdks/choose-authentication-providers) instance, see the [SDK documentation](/graph/sdks/sdks-overview).

#### Response

The following is an example of the response.

<!-- {
  "blockType": "response",
  "truncated": true,
  "name": "create_private_channel_upn",
<EMAIL_ADDRESS>"microsoft.graph.channel"
} -->

```http
HTTP/1.1 201 Created
Content-type: application/json

{
<EMAIL_ADDRESS>"https://graph.microsoft.com/v1.0/$metadata#teams('57fb72d0-d811-46f4-8947-305e6072eaa5')/channels/$entity",
    "id"<EMAIL_ADDRESS>    "displayName": "My First Private Channel",
    "description": "This is my first private channels",
    "isFavoriteByDefault": null,
    "email": "",
    "webUrl": "https://teams.microsoft.com/l/channel/19:33b76eea88574bd1969dca37e2b7a819@thread.skype/My%20First%20Private%20Channel?groupId=57fb72d0-d811-46f4-8947-305e6072eaa5&tenantId=0fddfdc5-f319-491f-a514-be1bc1bf9ddc",
    "membershipType": "private"
}
```

### Example 5: Create a shared channel on behalf of a user

#### Request

The following example shows how to create a shared channel.

# [HTTP](#tab/http)
<!-- {
  "blockType": "request",
  "name": "create_shared_channel"
}-->

```http
POST https://graph.microsoft.com/v1.0/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-type: application/json

{
  "displayName": "My First Shared Channel",
  "description": "This is my first shared channel",
  "membershipType": "shared",
  "members": [
    {
<EMAIL_ADDRESS>"#microsoft.graph.aadUserConversationMember",
<EMAIL_ADDRESS>"https://graph.microsoft.com/v1.0/users('7640023f-fe43-573f-9ff4-84a9efe4acd6')",
      "roles": [
        "owner"
      ]
    }
  ]
}
```

# [C#](#tab/csharp)

```csharp

GraphServiceClient graphClient = new GraphServiceClient( authProvider );

var channel = new Channel
{
	DisplayName = "My First Shared Channel",
	Description = "This is my first shared channel",
	MembershipType = ChannelMembershipType.Shared,
	Members = new ChannelMembersCollectionPage()
	{
		new AadUserConversationMember
		{
			Roles = new List<String>()
			{
				"owner"
			},
			AdditionalData = new Dictionary<string, object>()
			{
<EMAIL_ADDRESS>"https://graph.microsoft.com/v1.0/users('7640023f-fe43-573f-9ff4-84a9efe4acd6')"}
			}
		}
	}
};

await graphClient.Teams["{team-id}"].Channels
	.Request()
	.AddAsync(channel);

```

 For details about how to [add the SDK](/graph/sdks/sdk-installation) to your project and [create an authProvider](/graph/sdks/choose-authentication-providers) instance, see the [SDK documentation](/graph/sdks/sdks-overview).

#### Response

The following is an example of the response.
<!-- {
  "blockType": "response"
} -->

```http
HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Location: /teams/7640023f-fe43-4cc7-9bd3-84a9efe4acd6/operations/359d75f6-2bb8-4785-ab2d-377bf3d573fa
Content-Length: 0
```

<!-- uuid: 8fcb5dbc-d5aa-4681-8e31-b001d5168d79
2015-10-25 14:57:30 UTC -->
<!--
{
  "type": "#page.annotation",
  "description": "Create Channel",
  "keywords": "",
  "section": "documentation",
  "tocPath": "",
  "suppressions": [
  ]
}
-->

repository: microsoftgraph/msgraph-sdk-dotnet

branch_name: refs/heads/dev

gha_language: C#

repo_name: microsoftgraph/msgraph-sdk-dotnet


text:
---
title: Update Docker Hub repo description with GitHub Actions
keywords: ci, github actions, gha, buildkit, buildx, docker hub
---

You can update the Docker Hub repository description using a third party action
called [Docker Hub Description](https://github.com/peter-evans/dockerhub-description)
with this action:

```yaml
name: ci

on:
  push:
    branches:
      - "main"

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      -
        name: Checkout
        uses: actions/checkout@v3
      -
        name: Set up QEMU
        uses: docker/setup-qemu-action@v2
      -
        name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2
      -
        name: Login to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
      -
        name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          push: true
          tags: user/app:latest
      -
        name: Update repo description
        uses: peter-evans/dockerhub-description@v3
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}
          repository: user/app
```

repository: docker/docs

repo_name: docker/docs


text:
### Plover

Plover is a capistrano script that let's you spin up and shutdown ec2 servers on the fly, and will handle mapping the roles for you.  We use it at RailsMachine to spin up staging servers for client code testing.  It relies on cloud-init from Ubuntu, the fog gem, and capistrano to do the heavy lifting.

### Installing Plover

Plover is a capistrano plugin, so just install it like any other rails plugin and be sure to load the recipe in your rake file.

`script/plugin install git@github.com:railsmachine/plover.git`

### Configuring Plover

Plover uses a simple yaml file (config/plover.yml) to configure options, here is a quick example:

    aws_access_key_id: XXXXXXXXXX
    aws_secret_access_key: XXXXXXXXXXXXXXXXXXX
    groups:
      - my_app
      - ssh
    servers:
    - flavor_id: m1.small
      image_id: ami-2d4aa444
      role: db
      name: db1.staging.railsmachine.com
      group: db
      options:
        primary: true
    - flavor_id: m1.small
      image_id: ami-2d4aa444
      role: db
      name: db2.staging.railsmachine.com
      group: db
      options:
        slave: true
    - flavor_id: m1.small
      image_id: ami-2d4aa444
      role: app
      name: app1.staging.railsmachine.com
      groups:
        - app
        - web

Plover will use this configuration to spin up and write out the config/plover_servers.yml file, which contains the server id and dns name of the instance.  Plover also uses cloud-init to configure the instance on boot, here is an example cloud-init to run apt-get upgrade and do a custom command:

    #cloud-config
    apt_upgrade: true
    runcmd:
     - [ wget, "http://slashdot.org", -O, /tmp/index.html ]

[Learn more about Ubuntu cloud-init](https://help.ubuntu.com/community/CloudInit)

### Using Plover

Once it is configured, Plover is very easy to use.

`cap plover:provision`

and

`cap plover:shutdown`

### License

Plover is released under the MIT license.

***

Unless otherwise specified, all content copyright © 2014, [Rails Machine, LLC](http://railsmachine.com)

repository: railsmachine/plover

repo_name: railsmachine/plover


text:
# Performer a linear attention mechanism developed by Deepmind, Google, Cambridge, ATI
This repository is implementention of Performer by tensorflow 2.x [See Paper](https://arxiv.org/abs/2009.14794)

![performer.png](./images/performer.png)

This repo provides a layer which computes source-target attention in O(L) time and space by utilizing kernel trick where L is the length of the input sequence.

This layer can easily be used for traditional transformer mechanism instead of existing softmax attention layer which needs O(L^2) time and space.
See paper for detailed mechanism.

repository: yotaro-shimose/performer

repo_name: yotaro-shimose/performer


text:
---
order: 2
---

# Data Model

Django Data Wizard provides a number of Django models that help track the import process, and preserve data mapping decisions for future reuse.  The most important models are the *source model*, which usually includes a file or URL attributr, and a *target* model, which is any model from your existing application that you want to integrate with Data Wizard.  The wizard provides several additional models for tracking how source data is mapped to columns and rows.

Specifically, when [using Django Data Wizard][workflow], the following models are leveraged:

step | api | description | model
-----|-------------|--------
0 | [admin] or [wq framework] | Upload **source** file | Create `FileSource` (or custom source model)
1 | [create] | Start data wizard run | Create `Run`
2 | [serializers][api-serializers] | Select serializer (& target model) | Update `Run`
3 | [columns] | Map columns to database field names | Create or update `Identifier`; Map `Identifer` to `Run` via `Range`
4 | [ids] | Map cell values to foreign keys | Create or update `Identifier`; Map `Identifer` to `Run` via `Range`
5 | [data] | Import data into **target** model | Create one `Record` + one target model instance per row

The `Run` model includes a [generic foreign key] pointing to the source model (e.g. `FileSource`.)  Each row in the source spreadsheet will be mapped to a `Record`.  If the row was successfully imported, a new instance of the target data model will be created, and the `Record` will have a generic foreign key pointing to it.  The `Identifier` model contains no foreign keys, since identifier mappings are reused for subsequent imports.  Instead, a separate `Range` model tracks the location(s) (rows/columns) of each `Identifier` in each `Run`.

The `FileSource`, `Run`, and `Identifier` models are registered with the [Django admin][admin] by default.

Note that the above workflow just describes the most common use case.  You can create [custom serializers][serializers] that update more than one target data model per spreadsheet row, [custom data sources][sources] that might not be a spreadsheet or even a file, and [custom tasks][tasks] that make other arbitrary changes to your database.

> Source: [`data_wizard.models`](https://github.com/wq/django-data-wizard/blob/main/data_wizard/models.py) and [`data_wizard.sources.models`](https://github.com/wq/django-data-wizard/blob/main/data_wizard/sources/models.py)

[workflow]: ../guides/using-django-data-wizard.md
[admin]: ../api/admin.md
[wq framework]: ../guides/integrate-with-wq-framework.md
[create]: ../api/create.md
[api-serializers]: ../api/serializers.md
[columns]: ../api/columns.md
[ids]: ../api/ids.md
[data]: ../api/data.md
[generic foreign key]: https://docs.djangoproject.com/en/1.11/ref/contrib/contenttypes/
[serializers]: ./serializers.md
[sources]: ./sources.md
[tasks]: ./tasks.md

repository: wq/django-data-wizard

gha_language: Python

repo_name: wq/django-data-wizard


text:
---
# Course title, summary, and position.
linktitle: "com.snc.teamdev.flush_cache"
summary: ""
weight: 1
# Page metadata.
title: "com.snc.teamdev.flush_cache"
date: "2018-09-09T00:00:00Z"
lastmod: "2018-09-09T00:00:00Z"
draft: false  # Is this a draft? true/false
toc: true  # Show table of contents? true/false
type: docs  # Do not modify.

# Add menu entry to sidebar.
# - name: Declare this menu item as a parent with ID name.
# - weight: Position of link in menu.
menu:
  properties:
    parent: Properties
    name: "com.snc.teamdev.flush_cache"
    weight: 1
---

Description: When the following UI actions are executed within Team Development, if this flag is set then the caches will be flushed at the end of the action. Turning this flag off may improve performance, but flushing caches if necessary on the correct instances after the UI actions becomes the responsibility of the operator. The UI actions are: Back Out, Back Out All, Load Change, Load This Change, Pull, Push, and Revert to this version.

Value: `true`

repository: akhiltony/sn

repo_name: akhiltony/sn