text:
# Redux Awaiter
Redux Awaiter is a Redux middleware for giving opportunities to await and receive actions in anywhere.

It's tiny (gzip < 1kB, no dependencies).

[![build status](https://img.shields.io/travis/yenshih/redux-awaiter/master.svg?style=flat-square)](https://travis-ci.org/yenshih/redux-awaiter)
[![Coverage Status](https://img.shields.io/coveralls/yenshih/redux-awaiter/master.svg?style=flat)](https://coveralls.io/github/yenshih/redux-awaiter?branch=master)
[![npm version](https://img.shields.io/npm/v/redux-awaiter.svg?style=flat-square)](https://www.npmjs.com/package/redux-awaiter)
[![npm downloads](https://img.shields.io/npm/dm/redux-awaiter.svg?style=flat-square)](https://www.npmjs.com/package/redux-awaiter)

## Motivation

*[Local state is fine](https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367)*.

Redux Awaiter is designed to help us manage local state conveniently.

It's inspired by [Redux Saga](https://github.com/redux-saga/redux-saga/), but the problems they solve are totally different.

## Example

We can use Redux Awaiter and `async/await` to pause execution until an expected action has been dispatched.

```javascript
class UserListView extends React.PureComponent {
    state = { loading: false };

    async componentDidMount() {
        const { actions: { fetchUserList } } = this.props;
        fetchUserList();
        this.setState(state => ({ ...state, loading: true }));
        // start loading, until RECEIVE_USER_LIST has been dispatched
        await take('RECEIVE_USER_LIST');
        // reducers may update `users` in redux store, stop loading
        this.setState(state => ({ ...state, loading: false }));
    }

    render() {
        const { users } = this.props; // `users` is mapped from redux store
        const { loading } = this.state;
        return (
            <Spin loading={loading}>
                <ul>
                    {users.map(({ id, name }) => <li key={id}>{name}</li>)}
                </ul>
            </Spin>
        );
    }
}
```

## Installation

```
npm i redux-awaiter
```

## Documentation

### Type Definition

Redux Awaiter is written in [TypeScript](http://www.typescriptlang.org/).

The internal type definition is based on [flux standard action](https://github.com/acdlite/flux-standard-action).

```typescript
type ActionType = string;

interface BaseAction {
    type: ActionType;
}

interface Action<P, M = {}> extends BaseAction {
    payload: P;
    meta?: M;
    error?: true;
}
```

A pattern determines whether an action is matching.

```typescript
type Pattern<P = {}, M = {}> = string | RegExp | ((action: Action<P, M>) => boolean);
```

`object` pattern is not supported, use a function instead.

### API

#### createAwaiterMiddleware

```javascript
import { createStore, applyMiddleware } from 'redux';
import { createAwaiterMiddleware } from 'redux-awaiter';

const awaiterMiddleware = createAwaiterMiddleware();

const store = createStore(rootReducer, applyMiddleware(
    // other middlewares (e.g. routerMiddleware)
    awaiterMiddleware,
));
```

#### take

```typescript
const take: <P = {}, M = {}>(pattern: Pattern<P, M>) => Promise<Action<P, M>>;
```

`take` receives a pattern as its single argument, and returns a Promise which contains the first matching action.

```javascript
const action = await take('RECEIVE_DATA'); // action.type should be RECEIVE_DATA
```

#### takeAllOf

```typescript
const takeAllOf: <P = {}, M = {}>(patterns: Pattern<P, M>[]) => Promise<Action<P, M>[]>;
```

`takeAllOf` receives an array of patterns as its single argument, and returns a Promise which contains an array of actions corresponding to patterns.

Internally, `takeAllOf(patterns)` is the same with `Promise.all(patterns.map(take))`.

If you need to await and receive multiple actions in specific order, use multiple `await take()` instead.

```javascript
const [{ payload: articles }, { payload: users }] = await takeAllOf(['RECEIVE_ARTICLES', 'RECEIVE_USERS']);
```

#### takeOneOf

```typescript
const takeOneOf: <P = {}, M = {}>(patterns: Pattern<P, M>[]) => Promise<Action<P, M>>;
```

`takeOneOf` receives an array of patterns as its single argument, and returns a Promise which contains the first action matching with one of patterns.

Internally, `takeOneOf(patterns)` is the same with `Promise.race(patterns.map(take))`.

```javascript
const { type } = await takeOneOf(['FETCH_USER_SUCCESS', 'FETCH_USER_FAILURE']);
if (type === 'FETCH_USER_SUCCESS') {
    // success
} else {
    // failure
}
```

You might not need `takeOneOf`.
```javascript
const { type } = await take(/^FETCH_USER/);
```

### DO NOT OVERUSE

Avoid relying on props MUTATION!

This may cause unexpected behaviors, or make your components difficult to maintain.

```javascript
async componentDidMount() {
    const { data } = this.props // this.props.data is mapped from redux store.
    // dispatch an action and do some async call (e.g. xhr, fetch)
    await take('RECEIVE_DATA'); // receive new data and update redux store by reducer
    // DANGER: this.props.data is MUTATED!
    console.assert(this.props.data === data); // Assertion failed!
}
```

repository: yenshih/redux-awaiter

repo_name: yenshih/redux-awaiter


text:
# Cal

A low level calendar engine.

[![Build Status](https://secure.travis-ci.org/austinthecoder/cal.png?branch=master)](http://travis-ci.org/austinthecoder/cal)

## Installation

Add this line to your application's Gemfile:

    gem 'cal'

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install cal

## Usage

Cal is a simple calendar structure. It **does not** render a calendar. It **does not** handle events.

See the Rails app [https://github.com/austinthecoder/cal-app](https://github.com/austinthecoder/cal-app) for an example.

### API

``` ruby
calendar = Cal.new_monthly_calendar 2012, 11, :start_week_on => :monday

calendar.month # a Cal::Month

calendar.first_day # a Cal::Day representing the first day on the calendar, might be in the previous month

calendar.last_day # a Cal::Day representing the last day on the calendar, might be in the next month

calendar.days # a Range of Cal::Day's from the first day to the last

calendar.weeks # an Array of Cal::Day Arrays

calendar.previous # the calendar for the previous month

calendar.next # the calendar for the next month

calendar.day_names # an Array of the day names, e.g. [:sunday, :monday, ...], depends on the `:start_week_on` option
```

### Rails example

``` ruby
# routes
root :to => redirect("/calendars/#{Date.today.year}-#{Date.today.month}")
resources :calendars, :only => :show

# controller
@calendar = Cal.new_monthly_calendar *params[:id].split('-')

# view
%h3
  = link_to 'Previous month'<EMAIL_ADDRESS>  |
  =<EMAIL_ADDRESS>"%B"}<EMAIL_ADDRESS>  |
  = link_to 'Next month'<EMAIL_ADDRESS>
%table
  %thead
    %tr
      - @calendar.day_names.each do |name|
        %th= name
  %tbody
    - @calendar.weeks.each do |week|
      %tr
        - week.each do |day|
          %td{:class => ('today' if day.today?)}
            = day.number
```

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Added some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

license: MIT

repository: phoffer/cal

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: phoffer/cal


text:
# The curl bug bounty

The curl project runs a bug bounty program in association with
[HackerOne](https://www.hackerone.com) and the [Internet Bug
Bounty](https://internetbugbounty.org).

## How does it work?

Start out by posting your suspected security vulnerability directly to [curl's
HackerOne program](https://hackerone.com/curl).

After you have reported a security issue, it has been deemed credible, and a
patch and advisory has been made public, you may be eligible for a bounty from
this program. See the [SECURITY-PROCESS](SECURITY-PROCESS.md) document for how
we work with security issues.

## What are the reward amounts?

The curl project offers monetary compensation for reported and published
security vulnerabilities. The amount of money that is rewarded depends on how
serious the flaw is determined to be.

Since 2021, the Bug Bounty is managed in association with the Internet Bug
Bounty and they will set the reward amounts. If it would turn out that they
set amounts that are way lower than we can accept, the curl project intends to
"top up" rewards.

In 2022, typical "Medium" rated vulnerabilities have been rewarded 2,400 USD
each.

## Who is eligible for a reward?

Everyone and anyone who reports a security problem in a released curl version
that has not already been reported can ask for a bounty.

Dedicated - paid for - security audits that are performed in collaboration
with curl developers are not eligible for bounties.

Vulnerabilities in features that are off by default and documented as
experimental are not eligible for a reward.

The vulnerability has to be fixed and publicly announced (by the curl project)
before a bug bounty will be considered.

Once the vulnerability has been published by curl, the researcher can request
their bounty from the [Internet Bug Bounty](https://hackerone.com/ibb).

Bounties need to be requested within twelve months from the publication of the
vulnerability.

## Product vulnerabilities only

This bug bounty only concerns the curl and libcurl products and thus their
respective source codes - when running on existing hardware. It does not
include curl documentation, curl websites, or other curl related
infrastructure.

The curl security team is the sole arbiter if a reported flaw is subject to a
bounty or not.

## How are vulnerabilities graded?

The grading of each reported vulnerability that makes a reward claim will be
performed by the curl security team. The grading will be based on the CVSS
(Common Vulnerability Scoring System) 3.0.

## How are reward amounts determined?

The curl security team gives the vulnerability a score or severity level, as
mentioned above. The actual monetary reward amount is decided and paid by the
Internet Bug Bounty..

## Regarding taxes, etc. on the bounties

In the event that the individual receiving a bug bounty needs to pay taxes on
the reward money, the responsibility lies with the receiver. The curl project
or its security team never actually receive any of this money, hold the money,
or pay out the money.

license: curl

branch_name: refs/heads/main


text:
# Professional README Generator

  ## Description
  To make it easier to write a professional README for any given project and give the project a license and badge along with them

  ## Installation
  to install you use npm install(npm i) and then run the generator by node index.js

  ## Usage
  To use the application you simply run the node and answer the given questions and after all questions are answered a README.md will generate

  ## Credits
  Chris Condreay

  ## License
  MIT
  (https://opensource.org/licenses/MIT)

  ## Badges
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)]

  ## Uploaded demo watch here,
  https://youtu.be/vOVuK-NbLZs

gha_language: JavaScript


text:
# CHANGELOG

## [1.0.1] - 2021/09/23

### Added

- [x] Commit `src/`

## [1.0.0] - 2021/09/22

### Added

- [x] Init Project

## Contact & Support

If any question & request, please contact following information

| Name        | Email                | Skype            | Facebook      |
| ----------- | -------------------- | ---------------- | ------------- |
| Hung Nguyen |<EMAIL_ADDRESS>| nguyenanhung5891 | @nguyenanhung |

repository: nguyenanhung/google-recaptcha-helper

repo_name: nguyenanhung/google-recaptcha-helper


text:
# Fit a line to 2D noisy data

## Requirements

```bash
sudo apt-get install -y cmake libeigen3-dev libqt5charts5-dev python-numpy qt5-default
pip3 install matplotlib numpy
```

## Build

```bash
mkdir build
cmake ..
make -j4
```

## Try

```bash
./fit_noisy_data_2d [ARGS]
```

![Example](docs/cholesky.png)

### Arguments

* `--noise`: { `linear`, `quadratic`, `cholesky` }
* `--solver`: { `least_squares` }

## Testing

A simple unit test was made to debug the `linear_fitting` library.

```bash
sudo apt-get install libgtest-dev
./linear_fitting/linear_fitting_test
```

## Third party libraries

Two third party libraries were used in the project:

* [`matplotlib_cpp`](https://github.com/Cryoris/matplotlib-cpp): For plotting the data with Eigen. License MIT.
* [Lightweight Parsing Command Line Arguments](https://www.codeproject.com/Tips/5261900/Cplusplus-Lightweight-Parsing-Command-Line-Argumen): License CPOL.


text:
---
# Documentation: https://sourcethemes.com/academic/docs/managing-content/

title: "Scala Fundamentals the Type System"
authors: ["vikash-sharma"]
date: 2020-06-05T18:31:35+08:00
doi: ""

# Schedule page publish date (NOT publication's date).
publishDate: 2020-06-05T18:31:35+08:00

# Publication type.
# Legend: 0 = Uncategorized; 1 = Conference paper; 2 = Journal article;
# 3 = Preprint / Working Paper; 4 = Report; 5 = Book; 6 = Book section;
# 7 = Thesis; 8 = Patent
publication_types: ["0"]

# Publication name and optional abbreviated publication name.
publication: "Pluralsight"
publication_short: ""

summary: "From introducing a simple class to writing a typeclass, this course explains the required concepts to leverage Scala's beautiful static type system. It'll help in achieving code abstraction and enable you to write less code and achieve more."

# Summary. An optional shortened abstract.
abstract: "Writing software is fun, it gets easier when types drive your software development, this is called Type-driven Development. In this course, Scala Fundamentals: The Type System, you’ll learn to use Scala's extensive type system to write type-safe, easy to understand, abstract and concise code. First, you’ll explore the ways to write constructs like classes, objects, case classes, and traits, which work as types. Then, you’ll learn how to make them generic. Next, you'll discover concepts of type bounds and variance. Finally, you’ll delve into writing typeclasses. When you’re finished with this course, you’ll have the skills and knowledge of Scala's extensive type system needed to write easy to understand and editor-friendly code."

tags:
  ["scala", "pluralsight", "pluralsight-scala", "type-system", "programming"]
categories: ["Course"]
featured: false

# Custom links (optional).
#   Uncomment and edit lines below to show custom links.
# links:
# - name: Follow
#   url: https://twitter.com
#   icon_pack: fab
#   icon: twitter

url_pdf:
url_code:
url_dataset:
url_poster:
url_project:
url_slides:
url_source:
url_video: "https://www.pluralsight.com/courses/scala-fundamentals-type-system"

# Featured image
# To use, add an image named `featured.jpg/png` to your page's folder.
# Focal points: Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight.
image:
  caption: ""
  focal_point: ""
  preview_only: false

# Associated Projects (optional).
#   Associate this publication with one or more of your projects.
#   Simply enter your project's folder or file name without extension.
#   E.g. `internal-project` references `content/project/internal-project/index.md`.
#   Otherwise, set `projects: []`.
projects: []

# Slides (optional).
#   Associate this publication with Markdown slides.
#   Simply enter your slide deck's filename without extension.
#   E.g. `slides: "example"` references `content/slides/example/index.md`.
#   Otherwise, set `slides: ""`.
slides: ""
---

repository: vi-kas/academic-kickstart

gha_license_id: MIT

repo_name: vi-kas/academic-kickstart


text:
# Author:
- cranie
# Link:
- https://github.com/0507spc/ScriptStore/blob/main/Widgets/CovidCheckerUk/lockDownStatus.js
# Version:
- 1.0
# Description:
- Shows a simple status of Covid details for an area by postcode. Set postcode in script or as parameter.
# Changes:
- none
# Screenshot:
![Small Widget](https://github.com/0507spc/ScriptStore/blob/main/Widgets/CovidCheckerUk/Small.jpg?raw=true)
# View Code:
- https://github.com/0507spc/ScriptStore/blob/main/Widgets/CovidCheckerUk/lockDownStatus.js


text:
As such the stickers all have nonsens aphorisms such as:

{% include image.html path="stickers/data.png" path-detail="stickers/data.png" alt="" %}

{% include image.html path="stickers/epicenter.png" path-detail="stickers/epicenter.png" alt="" %}

I found a wholesaler on Alibaba who would sell me 1,000 of these for a reasonable price and then made my own website to sell them around campus and it's been fun to see the way that they have circulated around independent of me. The website can be found here at [stickersforthebored.com](http://www.stickersforthebored.com/).

{% include image.html path="stickers/stickers.png" path-detail="stickers/stickers.png" alt="" %}

repository: Ryan-Sheehan/projects

repo_name: Ryan-Sheehan/projects


text:
# Infrastructure as Code with AWS Cloud Formation

## Creating Custom VPCs

### Prerequisites:

Install Python, pip, and the AWS Command Line Interface on Linux

After the AWS CLI is installed, configured aws credentials of specific account

$ aws configure

| aws configuration                                                                                |
| ---                                                                                |
| AWS Access Key ID [None]:                                                                                |
| AWS Secret Access Key [None]:                                                                                |
| Default region name [None]: us-east-1                                                                                |
| Default output format [None]:                                                                                |

### Cloud Formation template:
csye6225-cf-networking.json defines the template for custom VPC and othe networking components.

### Shell Scripts:
csye6225-aws-cf-create-stack.sh to create and configure required networking resources using AWS CLI
csye6225-aws-cf-terminate-stack.sh to delete networking resources using AWS CLI

### Creating a stack

Step 1 : chmod +x csye6225-aws-cf-create-stack.sh        --> to give execute rights

Step 2 : sh csye6225-aws-cf-create-stack.sh              --> to run the file
         Input the stack name which you want to create   --> enter a stack name of your choice.
         {
             "StackId": "XXXX"                           --> Output
         }
Step 3 : Verify succesful creation by navigating to https://console.aws.amazon.com/cloudformation/

### Creating a stack

Step 1 : chmod +x csye6225-aws-cf-terminate-stack.sh        --> to give execute rights

Step 2 : sh csye6225-aws-cf-terminate-stack.sh              --> to run the file
         Input the stack name which you want to create      --> enter a stack name of your choice.

Step 3 : Verify succesful deletion by navigating to https://console.aws.amazon.com/cloudformation/

gha_language: Java


text:
# Section 10: Managing state and data with stores

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
**Table of Contents**

- [102. Creating a writable store and subscribing](#102-creating-a-writable-store-and-subscribing)
- [103. Updating store data](#103-updating-store-data)
- [105. Managing store subscriptions](#105-managing-store-subscriptions)
- [106. Using autosubscriptions](#106-using-autosubscriptions)
- [107. A second store](#107-a-second-store)
- [108. Subscribing for a short period](#108-subscribing-for-a-short-period)
- [109. Understanding readable stores](#109-understanding-readable-stores)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

## 102. Creating a writable store and subscribing

```bash
$ npm run dev --prefix ./102-creating-a-writable-store-and-subscribing
```

[App.svelte](./102-creating-a-writable-store-and-subscribing/src/App.svelte)

- Svelte allows for state to be abstracted out of components via stores
- a store can be writable or readable
- any component can import a store
- all stores are subscribable
- writable stores allow for state to be `set` or `update`d via methods on the
    store of the same name
- writable stores accept a default value for the store
- stores are subscribed to, either explicitly, or implicitly. Implicit
    subcriptions will be shown in subsequent lessons. To subscribe to a store,
    we do the following:

    ```svelte
    // store.js
    import {writable} from 'svelte/store'

    const store = writable(0)

    // component.svelte

    <script>
      import {store} from './store.js'

      let value;

      store.subscribe(val => value = val)
    </script>

    <div>
      value is {value}
    </div>
    ```

## 103. Updating store data

```bash
$ npm run dev --prefix ./103-updating-store-data
```

[App.svelte](./103-updating-store-data/src/App.svelte)

- the values in writable stores can be updated in 2 ways, either through
    `store.set`, or `store.update`
- `store.set` accepts a single value that replaces the value in the store
- `store.update` works in a similar way to React's `setState(callback)` callback
    syntax - it accepts a function which has the current value of the store as
    an argument, and expects a new value to be returned to update the store's
    value with

## 105. Managing store subscriptions

```bash
$ npm run dev --prefix ./105-managing-store-subscriptions
```

[App.svelte](./105-managing-store-subscriptions/src/App.svelte)

- every store that is subscribed to should be unsubscribed from when the
    component is destroyed
- this can be done using Svelte's `onDestroy` export

    ```svelte
    <script>
      import {onDestroy} from 'svelte';

      import {myStore} from './store'

      const unsubscribe = myStore.subscribe(//...)

      onDestroy(unsubscribe)
    </script>
    ```

## 106. Using autosubscriptions

```bash
$ npm run dev --prefix ./106-using-autosubscriptions
```

[App.svelte](./106-using-autosubscriptions/src/App.svelte)

- instead of manually subscribing to a store using `store.subscribe`, Svelte
    allows one to automatically subscribe by prepending the store with a `$`

    ```svelte
    <script>
      import {myStore} from './store'
    </script>

    <div>
      {$myStore}
    </div>
    ```
- this also automatically unsubscribes the store when the component is destroyed

## 107. A second store

```bash
$ npm run dev --prefix ./107-a-second-store
```

[App.svelte](./107-a-second-store/src/App.svelte)

## 108. Subscribing for a short period

```bash
$ npm run dev --prefix ./108-subscribing-for-a-short-period
```

[CartItem.svelte](./108-subscribing-for-a-short-period/src/Cart/CartItem.svelte)

- for components where we only need to retrieve a value from the store once, we
    may want to unsubscribe from the store immediately. We could manually handle
    this inside Svelte's `onMount` lifecycle hook:

    ```svelte
    <script>
      import {onMount} from 'svelte'

      import {myStore} from './store'

      let val;

      onMount(() => {
        const unsubscribe = myStore.subscribe(value => {
          val = value
        })

        unsubscribe()
      })
    </script>
    ```

    This is a lot of boilerplate every time we want a value from a store, but
    Svelte provides a convenience function to recreate this behaviour...
- we can import `get` from Svelte's `store` export. `get` does the following:

    - accepts a store as an argument
    - subscribes to that store
    - returns the value inside that store
    - unsubscribes from the store

    ```svelte
    <script>
      import {onMount} from 'svelte'
      import {get} from 'svelte/store'

      import {myStore} from './store'

      let val;

      onMount(() => {
        val = get(myStore)
      })
    </script>
    ```

## 109. Understanding readable stores

```bash
$ npm run dev --prefix ./109-understanding-readable-stores
```

[App.svelte](./109-understanding-readable-stores/src/App.svelte)

- readable stores are useful for values that should or can only be read by
    components
    - timer values
    - mouse positions
    - browser dimensions
- a readable store accepts two arguments
  1. the initial value of the store
  2. a callback with a `set` function
    - the `set` function is what is responsible for updating the value of the
        store

##. 110. Unlimited power with custom stores

```bash
$ npm run dev --prefix ./110-unlimited-power-with-custom-stores
```

[App.svelte](./110-unlimited-power-with-custom-stores/src/App.svelte)

- when creating a writable store, the object returned provides `set`,
    `update`, and `subscribe` methods. The only method required here is
    `subscribe`
- with this knowledge, we can create custom stores that need only adhere to
    returning an object that has a `subscribe` method
- we can then abstract other logic that would have to be done inside components
    using the `set` and `update` methods to the store itself:

    ```javascript
    import {writable} from 'svelte/store'

    const counterStore = writable(0)

    return {
      subscribe: counterStore.subscribe,
      increment: () => {counterStore.update(n => n + 1)},
      decrement: () => {counterStore.update(n => n - 1)},
    }
    ```

##. 112. Derived store and store bindings

```bash
$ npm run dev --prefix ./112-derived-store-and-store-bindings
```

[App.svelte](./112-derived-store-and-store-bindings/src/App.svelte)

- derived stores accept an existing arbitrary number of stores, and allow one to
    create a new store derived from those values
- this is much the same as with creating a simple observable from which more
    complex observables can be derived
- one can use the `bind:[attribute]={$store}` syntax to bind a store's value to
    an attribute

license: Unlicense

repository: larrybotha/sveltejs-the-complete-guide

gha_language: Svelte

gha_license_id: Unlicense

repo_name: larrybotha/sveltejs-the-complete-guide


text:
# 【注意：本篇文档未翻译完成】使用 语言服务API

[原文链接，戳我前往](https://github.com/microsoft/TypeScript/wiki/Using-the-Language-Service-API)

------

翻译 by [赫雯勒莉特翡翠](https://github.com/HeveraletLaidCenx)

## 术语~的对照表

|中文（常用英文表述）|英文|
|----|----|
|解耦、分离|decoupling|
|解耦编译器流水线阶段|decoupling compiler pipeline phases|

表中部分：

* 在中文表述中常直接用英文替代的
* 认为直译并不合适的

在中文之后的括号中说明了直接使用对应的英文。

------

> 有关 通用 TypeScript 编译器架构 和 分层的概述，请参阅 [架构概述](https://github.com/microsoft/TypeScript/wiki/Architectural-Overview)

## 概述

语言服务对象 可以被简单地看作一个 长期存在的程序，或者编译环境。

## 设计目的

设计 语言服务 时，主要想实现两个目标：

1：**按需处理**

语言服务 被设计用于实现 不论程序大小的快速响应。实现这一点的唯一方法就是 只做所需的最少的工作。所有 语言服务接口 都仅计算回答查询所需要的必要信息。

比如：

* 一个对 `getSyntacticDiagnostics`（获取语法诊断） 的调用，只需要解析对应的文件，而不需要执行 绑定 或者 类型检查。
* 一个对 `getCompletionsAtPosition`（获取指定位置的自动补全） 的调用，只会尝试解析 和对应的类型有关的声明，而不会处理其它无关的声明。

2：**解耦编译器流水线阶段**

语言服务 设计了 对于 编译器流水线 的 解耦不同阶段，这些阶段通常在 命令行编译 期间，按顺序发生；它允许 语言服务 灵活安排这些不同阶段的顺序。

For instance, the language service reports diagnostics on a file per file basis, all while making a distinction between syntactic and semantic errors of each file. This ensures that the host can supply an optimal experience by retrieving syntax errors for a given file without having to pay the cost of querying other files, or performing a full semantic check. It also allows the host to skip querying for syntax errors for files that have not changed. Similarly, the language service allows for emitting a single file (`getEmitOutput`) without having to emit or even type check the whole program.

## Language Service Host

The host is described by the LanguageServiceHost API, and it abstracts all interactions between the language service and the external world. The language service host defers managing, monitoring and maintaining input files to the host.

The language service will only ask the host for information as part of host calls. No asynchronous events or background processing are expected. The host is expected to manage threading if needed.

The host is expected to supply the full set of files comprising the context. Refer to [reference resolution in the language service](https://github.com/microsoft/TypeScript/wiki/Using-the-Language-Service-API#reference-resolution-in-the-language-service) for more details.

## ScriptSnapshot

A `ScriptSnapshot` represents the state of the text of an input file to the language service at a given point of time. The ScriptSnapshot is mainly used to allow for an efficient incremental parsing. A `ScriptSnapshot` is meant to answer two questions:

1. What is the current text?
2. Given a previous snapshot, what are the change ranges?

Incremental parsing asks the second question to ensure it only re-parses changed regions.

> For users who do not want to opt into incremental parsing, use `ts.ScriptSnapshot.fromString()`.

## Reference resolution in the language service

There are two means of declaring dependencies in TypeScript: import statements, and triple-slash reference comments (`/// <reference path="..." />`). Reference resolution for a program is the process of walking the dependency graph between files, and generating a sorted list of files comprising the program.

In the command-line compiler (`tsc`) this happens as part of building the program. A `createProgram` call starts with a set of root files, parses them in order, and walks their dependency declaration (both imports and triple-slash references) resolving references to actual files on disk and then pulling them into the compilation process.

This work flow is decoupled in the language service into two phases, allowing the host to interject at any point and change the resolution logic if needed. It also allows the host to fully manage program structure and optimize file state change.

> To resolve references originating from a file, use `ts.preProcessFile`. This method will resolve both imports and triple-slash references from a given file. Also worth noting is that this relies solely on the scanner, and does not require a full parse, so as to allow for fast context resolution which is suited to editor interactions.

## Document Registry

A language service object corresponds to a single project. So if the host is handling multiple projects it will need to maintain multiple instances of the LanguageService objects; each instance of the language service holds state about the files in the context. Most of the state that a language service object holds is syntactic (text + AST). The projects can share files (at minimum, the library file `lib.d.ts`).

The document registry is simply a store of SourceFile objects. If multiple language service instances share the same `DocumentRegistry` instance they will be able to share `SourceFile` objects, allowing for more efficient memory utilization.

A more advanced use of the document registry is to serialize `SourceFile` objects to disk and re-hydrate them when needed.

The Language service comes with a default `DocumentRegistry` implementation allowing for sharing SourceFiles between different `LanguageService` instances. Use `createDocumentRegistry` to create one, and pass it to all your `createLanguageService` calls.


text:
# Luminator

A script that takes RGB hex codes like `a0df00` and prints a luminance value
for them.  Like the Y in YIQ.

## luminator-rs

I did this in Python centuries ago, for determining accessibility of contrast
on a long-dead theme for my website.  _This_ version is rewritten in Rust.

## Standards

This uses the [luma](https://en.wikipedia.org/wiki/Luma_(video)) coefficients
from Rec. 601 (CCIR 601), that is:

    Y'[601] = 0.299*R' + 0.587*G' + 0.114*B'

I did not know about BT. 709 at the time, and there are no plans to support
it.

# License

Apache 2.

repository: sapphirecat/luminator-rs

repo_name: sapphirecat/luminator-rs


text:
# <img<EMAIL_ADDRESS>width="48" height="48"/> [Videoder](https://chocolatey.org/packages/videoder)

Videoder is a free and easy-to-use tool downloading videos from various sites.
It is capable of downloading and converting into different video and audio formats in a single click.
It is especially useful for people with limited internet connections or who are frequently on the go
and want to preserve their mobile data for more precious moments in te future.

## Features

 - Download from various sites including YouTube, Instagram, Twitter, Facebook and SoundCloud...
 - Download complete playlists.
 - Download audio and video in the specified resolution/quality in a single click.

repository: abejenaru/chocolatey-coreteampackages

repo_name: abejenaru/chocolatey-coreteampackages


text:
*By the way ... this text will be italic*
_Also another by the way, this will also be italic_

**Strongly I say this text will be bold**
__Of course, this will also be bold__

_You **can** combine them_


text:
<!-- README.md is generated from README.Rmd. Please edit that file -->

# ZooGVT

<!-- badges: start -->
<!-- badges: end -->

The goal of ZooGVT is to visualize and understand what genes give rise
or contribute to what anatomical features. The user is able to see what
adjective they use as a feature for a animals in the BgeeDB database
that have phenotype descriptions in Ensemble.

## Description

ZooGVT allows users to visualize the various anatomical features related
to a set of genes. This gives a better map of how certain genes
translate into the animal features. These Genes can alter be extracted
to compare differences between species. THis package allows easier
access to the Uberon Ontolgy and aids in its use.

## Installation

The development version from [GitHub](https://github.com/) with:

``` r
# install.packages("devtools")
devtools::install_github("Tsmnbx/ZooGVT")
#> Downloading GitHub repo Tsmnbx/ZooGVT@HEAD
#> Skipping 3 packages not available: topGO, biomaRt, BgeeDB
#>      checking for file ‘/private/var/folders/mh/gcs_71797dx5nslkdhs3dnw00000gn/T/RtmpkriehO/remotese164f25e6d1/Tsmnbx-ZooGVT-847cccb/DESCRIPTION’ ...  ✓  checking for file ‘/private/var/folders/mh/gcs_71797dx5nslkdhs3dnw00000gn/T/RtmpkriehO/remotese164f25e6d1/Tsmnbx-ZooGVT-847cccb/DESCRIPTION’
#>   ─  preparing ‘ZooGVT’:
#>      checking DESCRIPTION meta-information ...  ✓  checking DESCRIPTION meta-information
#>   ─  checking for LF line-endings in source and make files and shell scripts
#>   ─  checking for empty or unneeded directories
#>        NB: this package now depends on R (>= 3.5.0)
#>        WARNING: Added dependency on R >= 3.5.0 because serialized objects in  serialize/load version 3 cannot be read in older versions of R.  File(s) containing such objects: ‘ZooGVT/data/Species.rda’  ‘ZooGVT/data/phyenotypeDescriptions.rda’
#>   ─  building ‘ZooGVT_<IP_ADDRESS>00.tar.gz’
#>
#>
#> Installing package into '/private/var/folders/mh/gcs_71797dx5nslkdhs3dnw00000gn/T/Rtmp4lmxK3/temp_libpath79d77767e809'
#> (as 'lib' is unspecified)

#May also need to do the below
#if (!requireNamespace("BiocManager", quietly = TRUE))
#  install.packages("BiocManager")

#BiocManager::install("topGO")

#if (!requireNamespace("BiocManager", quietly = TRUE))
#  install.packages("BiocManager")

#BiocManager::install("biomaRt")

#if (!requireNamespace("BiocManager", quietly = TRUE))
#  install.packages("BiocManager")

#BiocManager::install("BgeeDB")

#library(topGO)
#library(biomaRt)
#library(BgeeDB)
```

## Example

This is a basic example which shows the UBERONids on could get for a
Zebra fish with the descriptor “pectoral fin”:

``` r
library(ZooGVT)
#>

IdDataFrame<-ZooGVT::GetUberonIds("Danio_rerio","Zebrafish","pectoral fin")
#>
#> NOTE: You did not specify any data type. The argument dataType will be set to c("rna_seq","affymetrix","est","in_situ") for the next steps.
#>
#> Querying Bgee to get release information...
#>
#> NOTE: the file describing Bgee species information for release 14_2 was found in the download directory /Users/joshuaefe/Documents/tempZOO/ZooGVT. Data will not be redownloaded.
#>
#> API key built: 38de08b817d9692a0b7b6af33a0f4d41f7e6d7a932742446063b9e181664fe25b6274fd73369b6db4dca591449aa87168475489061073e776aa104c47ea0b90f
#>
#> NOTE: an organ relationships file was found in the download directory /Users/joshuaefe/Documents/tempZOO/ZooGVT/Danio_rerio_Bgee_14_2. Data will not be redownloaded.
#>
#> NOTE: an organ names file was found in the download directory /Users/joshuaefe/Documents/tempZOO/ZooGVT/Danio_rerio_Bgee_14_2. Data will not be redownloaded.
#>
#> NOTE: a gene to organs mapping file was found in the download directory /Users/joshuaefe/Documents/tempZOO/ZooGVT/Danio_rerio_Bgee_14_2. Data will not be redownloaded.
#>
#> Parsing the results.............................................
#>
#> Adding BGEE:0 as unique root of all terms of the ontology.......
#>
#> Done.
#> [1] "Danio_rerio"
#> [1] "drerio_gene_ensembl"
#> Ensembl site unresponsive, trying useast mirror
#> Ensembl site unresponsive, trying asia mirror
#> Ensembl site unresponsive, trying asia mirror
#> ENSDARG00000020201 ENSDARG00000012892 ENSDARG00000008788 ENSDARG00000013174
#>                  0                  0                  0                  0
#> ENSDARG00000021899 ENSDARG00000022045
#>                  0                  0
#> Levels: 0 1
#>
#> Checking topAnatData object.............
#>
#> Checking gene list......................
#>
#> WARNING: Some genes in your gene list have no expression data in Bgee, and will not be included in the analysis. 4329 genes in background will be kept.
#>
#> Building most specific Ontology terms...  (  1199  Ontology terms found. )
#>
#> Building DAG topology...................  (  2064  Ontology terms and  3955  relations. )
#>
#> Attaching package: 'SparseM'
#> The following object is masked from 'package:base':
#>
#>     backsolve
#>
#> Annotating nodes (Can be long)..........  (  4329  genes annotated to the Ontology terms. )
#> [1] "After topObj"
#>
#>           -- Weight Algorithm --
#>
#>       The algorithm is scoring 1027 nontrivial nodes
#>       parameters:
#>           test statistic: fisher : ratio
#>
#>   Level 27:  1 nodes to be scored.
#>
#>   Level 26:  2 nodes to be scored.
#>
#>   Level 25:  2 nodes to be scored.
#>
#>   Level 24:  4 nodes to be scored.
#>
#>   Level 23:  4 nodes to be scored.
#>
#>   Level 22:  6 nodes to be scored.
#>
#>   Level 21:  4 nodes to be scored.
#>
#>   Level 20:  8 nodes to be scored.
#>
#>   Level 19:  24 nodes to be scored.
#>
#>   Level 18:  22 nodes to be scored.
#>
#>   Level 17:  27 nodes to be scored.
#>
#>   Level 16:  43 nodes to be scored.
#>
#>   Level 15:  70 nodes to be scored.
#>
#>   Level 14:  64 nodes to be scored.
#>
#>   Level 13:  77 nodes to be scored.
#>
#>   Level 12:  99 nodes to be scored.
#>
#>   Level 11:  121 nodes to be scored.
#>
#>   Level 10:  114 nodes to be scored.
#>
#>   Level 9:   91 nodes to be scored.
#>
#>   Level 8:   75 nodes to be scored.
#>
#>   Level 7:   67 nodes to be scored.
#>
#>   Level 6:   44 nodes to be scored.
#>
#>   Level 5:   29 nodes to be scored.
#>
#>   Level 4:   20 nodes to be scored.
#>
#>   Level 3:   6 nodes to be scored.
#>
#>   Level 2:   2 nodes to be scored.
#>
#>   Level 1:   1 nodes to be scored.
#>
#> Building the results table for the 33 significant terms at FDR threshold of 0.01...
#> Ordering results by pValue column in increasing order...
#> Done
IdDataFrame
#>       UBERONids        AnatFeature
#>  [1,] "UBERON:0000151" "pectoral fin"
#>  [2,] "UBERON:0004357" "paired limb/fin bud"
#>  [3,] "UBERON:0003051" "ear vesicle"
#>  [4,] "UBERON:2000040" "median fin fold"
#>  [5,] "UBERON:0003933" "cranial cartilage"
#>  [6,] "UBERON:0005729" "pectoral appendage field"
#>  [7,] "UBERON:0003406" "cartilage of respiratory system"
#>  [8,] "UBERON:0001042" "chordate pharynx"
#>  [9,] "UBERON:0003108" "suspensorium"
#> [10,] "UBERON:0002539" "pharyngeal arch"
#> [11,] "UBERON:0004376" "fin bone"
#> [12,] "UBERON:0004756" "dermal skeletal element"
#> [13,] "UBERON:0003128" "cranium"
#> [14,] "UBERON:0001003" "skin epidermis"
#> [15,] "UBERON:0006068" "bone of tail"
#> [16,] "UBERON:0004750" "blastoderm"
#> [17,] "UBERON:0004375" "bone of free limb or fin"
#> [18,] "UBERON:0008895" "splanchnocranium"
#> [19,] "UBERON:0000926" "mesoderm"
#> [20,] "UBERON:0010312" "immature eye"
#> [21,] "UBERON:0002541" "germ ring"
#> [22,] "UBERON:0002514" "intramembranous bone"
#> [23,] "UBERON:0013754" "integumentary system layer"
#> [24,] "UBERON:4000163" "anal fin"
#> [25,] "UBERON:0010363" "endochondral element"
#> [26,] "UBERON:0012275" "meso-epithelium"
#> [27,] "UBERON:0002616" "regional part of brain"
#> [28,] "UBERON:2000555" "opercular flap"
#> [29,] "UBERON:4000170" "median fin skeleton"
#> [30,] "UBERON:0002533" "post-anal tail bud"
#> [31,] "UBERON:2007029" "hindbrain neural keel"
#> [32,] "UBERON:2007031" "anterior neural rod"
#> [33,] "UBERON:0003055" "periderm"
```

This is a function that allows puts species wwritten in the correct
format for this package:

``` r
library(ZooGVT)
NameVec<-GetNamesVec("Danio_rerio")
```

To run the Shiny app

``` r
runZooGVT()
```

If you get the following error “\[1\]”is it here" Warning: Error in
GetNamesVec: could not find function “GetNamesVec”" run this code to run
the shiney app

``` r
GetNamesVec<-function(name){
  indexComm<-match(name,ZooGVT::Species$Common_Name)
  indexSci<-match(name,ZooGVT::Species$Scientific_Name)
  names<-c()

  if(is.na(indexComm)== FALSE){
    index<-indexComm
    names<-append(names,ZooGVT::Species$Common_Name[index])
    names<-append(names,ZooGVT::Species$Scientific_Name[index])
    return(names)
  }

  if(is.na(indexSci)== FALSE){
    index<-indexSci
    names<-append(names,ZooGVT::Species$Common_Name[index])
    names<-append(names,ZooGVT::Species$Scientific_Name[index])
    return(names)
  }

}
```

Here is the package structure

``` r
print("├── DESCRIPTION
├── Danio_rerio_Bgee_14_1
│   ├── topAnat_AnatEntitiesNames_7955.tsv
│   ├── topAnat_AnatEntitiesRelationships_7955.tsv
│   └── topAnat_GeneToAnatEntities_7955_PRESENCESILVER.tsv
├── LICENSE
├── LICENSE.md
├── NAMESPACE
├── R
│   ├── GenesFromAnatomy.R
│   ├── GetUberonIds.R
│   ├── ListSpecies.R
│   └── data.R
├── README.Rmd
├── README.md
├── ZooGVT.Rproj
├── data
│   └── phyenotypeDescriptions.rda
├── inst
│   └── shiny-scripts
│       └── app.R
├── man
│   ├── GenesFromAnatomy.Rd
│   ├── GetUberonIds.Rd
│   ├── ListSpecies.Rd
│   ├── figures
│   │   └── README-pressure-1.png
│   └── phyenotypeDescriptions.Rd
├── release.tsv
├── species_Bgee_14_1.tsv
├── tests
│   ├── testthat
│   │   ├── release.tsv.tmp
│   │   └── test-ListSpecies.R
│   └── testthat.R
└── vignettes
    └── Introduction_ZooGVT.Rmd"
)
#> [1] "├── DESCRIPTION\n├── Danio_rerio_Bgee_14_1\n│   ├── topAnat_AnatEntitiesNames_7955.tsv\n│   ├── topAnat_AnatEntitiesRelationships_7955.tsv\n│   └── topAnat_GeneToAnatEntities_7955_PRESENCESILVER.tsv\n├── LICENSE\n├── LICENSE.md\n├── NAMESPACE\n├── R\n│   ├── GenesFromAnatomy.R\n│   ├── GetUberonIds.R\n│   ├── ListSpecies.R\n│   └── data.R\n├── README.Rmd\n├── README.md\n├── ZooGVT.Rproj\n├── data\n│   └── phyenotypeDescriptions.rda\n├── inst\n│   └── shiny-scripts\n│       └── app.R\n├── man\n│   ├── GenesFromAnatomy.Rd\n│   ├── GetUberonIds.Rd\n│   ├── ListSpecies.Rd\n│   ├── figures\n│   │   └── README-pressure-1.png\n│   └── phyenotypeDescriptions.Rd\n├── release.tsv\n├── species_Bgee_14_1.tsv\n├── tests\n│   ├── testthat\n│   │   ├── release.tsv.tmp\n│   │   └── test-ListSpecies.R\n│   └── testthat.R\n└── vignettes\n    └── Introduction_ZooGVT.Rmd"
```

## Contributions

The *ListSpecies* Function uses the BgeeDB package. The *GetUberonIds*
function also made use of the BgeeDB package which uses topGO as well as
the biomaRt for access to Ensembl. *GenesFromAnatomy* used all of these
plus fmsb to produce a radar graph.

## References

Komljenovic A, Roux J, Robinson-Rechavi M, and Bastian F (2016). BgeeDB,
an R package for retrieval of curated expression datasets and for gene
list enrichment tests. F1000Research

Bastian F et al. (2008). Bgee: Integrating and Comparing Heterogeneous
Transcriptome Data Among Species. Data Integration Life Sci. Lecture
Notes in Computer Science, 5109, 124-31

Charif, D. and Lobry, J.R. (2007)

Martin Morgan (2019). BiocManager: Access the Bioconductor Project
Package Repository. R package version 1.30.10.
<https://CRAN.R-project.org/package=BiocManager>

Mapping identifiers for the integration of genomic datasets with the
R/Bioconductor package biomaRt. Steffen Durinck, Paul T. Spellman, Ewan
Birney and Wolfgang Huber, Nature Protocols 4, 1184-1191 (2009).

BioMart and Bioconductor: a powerful link between biological databases
and microarray data analysis. Steffen Durinck, Yves Moreau, Arek
Kasprzyk, Sean Davis, Bart De Moor, Alvis Brazma and Wolfgang Huber,
Bioinformatics 21, 3439-3440 (2005).

Minato Nakazawa (2019). fmsb: Functions for Medical Statistics Book with
some Demographic Data. R package version 0.7.0.
<https://CRAN.R-project.org/package=fmsb>

Adrian Alexa and Jorg Rahnenfuhrer (2020). topGO: Enrichment Analysis
for Gene Ontology. R package version 2.42.0.

R Core Team (2020). R: A language and environment for statistical
computing. R Foundation for Statistical Computing, Vienna, Austria. URL
<https://www.R-project.org/>.

“Learn Shiny.” Shiny, shiny.rstudio.com/tutorial/.

Holtz, Yan. “Basic Radar Chart.” – The R Graph Gallery,
www.r-graph-gallery.com/142-basic-radar-chart.html.

Andrea Komljenovic, Julien Roux. BgeeDB, an R Package for Retrieval of
Curated Expression Datasets and for Gene List Enrichment Tests, 27
Oct. 2020,
bioconductor.org/packages/release/bioc/vignettes/BgeeDB/inst/doc/BgeeDB\_Manual.html.

## Acknowledgements

This package was developed as part of an assessment for 2020 BCB410H:
Applied Bioinformatics, University of Toronto, Toronto,CANADA.

repository: Tsmnbx/ZooGVT

repo_name: Tsmnbx/ZooGVT


text:
# IDE Setup Tips

This document describes useful set-up tips for contributors to this repository. Feel free to suggest more useful changes to this.

## VS Code

Create a `.vscode` directory and add the following files to it:

_.vscode/extension.json_
```json
{
    // See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
	// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
	// List of extensions which should be recommended for users of this workspace.
	"recommendations": [
		"stateful.runme"
	],
	// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
	"unwantedRecommendations": []
}
```

_.vscode/launch.json_
```json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "GX Docusarus Docs",
            "type": "node-terminal",
            "request": "launch",
            "command": "invoke docs"
        },
        {
            "name": "GX Start MySQL Container",
            "type": "node-terminal",
            "request": "launch",
            "command": "docker-compose up -d",
            "cwd": "${workspaceFolder}/assets/docker/mysql"
        },
        {
            "name": "GX Start PostgreSQL Container",
            "type": "node-terminal",
            "request": "launch",
            "command": "docker-compose up -d",
            "cwd": "${workspaceFolder}/assets/docker/postgresql"
        }
    ]
}
```

_.vscode/settings.json_
```json
{
    "workbench.editorAssociations": {
        "CONTRIBUTING_WORKFLOWS.md": "runme",
        "CONTRIBUTING_CODE.md": "runme"
    }
}
```

## PyCharm

tbd.

branch_name: refs/heads/develop

gha_language: Python


text:
# Oligopoly

Go back to the [[Economic_Glossary]]

When a few FIRMS dominate a market. Often they can together behave as if they were a single MONOPOLY, perhaps by forming a CARTEL. Or they may collude informally, by preferring gentle NON-PRICE COMPETITION to a bloody PRICE war. Because what one firm can do depends on what the other firms do, the behaviour of oligopolists is hard to predict. When they do compete on price, they may produce as much and charge as little as if they were in a market with PERFECT COMPETITION.


text:
# Changes

[Keep a Changelog](https://keepachangelog.com/en/1.0.0/) specification.

### 2.0.1 - 2023-05-28

* remove old wiki-copy from docs folder
* minor updates to integration test code
* deprecation messages for deprecated parameters

### 2.0.0 - 2023-05-21

### changed

* minimum Java version is now Java 11
* fix dependencies to silence Apache Maven 3.9.x warnings

### removed

* `quiet` option no longer does anything
* `includeBootClasspath` and `bootClasspathProperty` were only supported up to Java 8 and the plugin now supports only Java 11 and up, so they are deprecated and no longer do anything.

### 1.5.1 - 2021-01-06

This version is identical to 1.5.0 except that it now uses the native maven 3.x logging.

### removed

Removed log4j 1.x dependency. While this was not vulnerable to the log4shell attack, it is outdated and should no longer be used.

### 1.5.0 - 2020-09-13

This version is functionally (almost) unchanged from 1.4.0 except that it is using a newer build system and is built with the JDK11 compiler for JDK8 target.

The only substantial change over 1.4.0 is an additional ignored pattern (changelog.txt, #44).

#### added

* ignore changelog.txt (#44) (Thanks @adamzr)

#### changed

* use github actions for CI, remove travis
* use maven wrapper
* build with JDK9+ only, still support JDK8 as runtime
  * CI build with JDK 11, 14
  * CI run integration tests on JDK 8, 11, 14

### 1.4.0 - 2019-10-27

#### changed

* Build with basepom 30
* use slf4j 1.7.28 (from 1.7.21)
* update plugin plugin to 3.6.0 (from 3.4)
* update groovy to 3.0.0-beta-3 (from 2.4.12)
* changed Travis Build to use OpenJDK 8 and 11
* Clarify much more what is a resource and what is considered a class. This changes a lot of things that used to be matched as classes to be matched as resources. Especially all path elements (directories, jar file folders etc.) now must match the Java identifier specification. This e.g. rejects classes in Multi-release jars that are located in `META-INF/versions/<version>` because `META-INF` or the version number are not valid Java identifiers. An exception is made for `package-info` and `module-info` class files, whose names are not valid Java identifiers but are still loaded as classes from the class path.

#### fixed

* Do not crash if more than one artifact reference points to the same file (#25, #29, #35)
* Fix Java 9+ module-version problems with multi-release jars (#31, #33)
* Triage and fix outdated bugs (#23, #20, #17)

#### security

* Update Guava dependency to 28.1-jre (#36)
* Use plexus 2.0.0 to build (#37)

### 1.3.0 - 2018-02-20

__Starting with 1.3.0, JDK8 will be required to run the plugin.__

* Removed deprecated `<ignoredResources>` configuration option.
* Use correct path separator for classpath splitting, fixes #28 (Thanks @arxes-tolina)
* Fix typo in warning message (Thanks @gaul)

### 1.2.1 - 2015-09-18

* Add support for ignoring classes by use of a regular expression, #16 (Thanks @mbellomo)
* Allow turning off default class ignore list, #16 (Thanks @mbellomo)
* Add `includePomProjects` attribute in result file.

### 1.2.0 - 2015-06-18

* Add `includePomProjects` configuration setting to allow projects
with POM packaging to be checked. Suggested by #11. Thanks @camshoff.
* Allow inclusion of multiple artifacts that may map to the same local
project. This fixes issue #10 (thanks @jakub-bochenski).

### 1.1.2 - 2015-06-16

__1.1.2 will be the last release that works with JDK 6! With Maven having moved to JDK 7, there
is no reason anymore for plugins to stick to an old JDK version.__

* Fix a bug where an exception is ignored if more conflicts are listed in the exception than
actually conflicting jars are present.

### 1.1.1 - 2015-01-18

* Issue #9. Ignore project references that are not on the dependency list. Thanks @victornoel.
* Add maven properties for all simple (boolean, int, string) configuration settings.
* Ning Issue #44: Allow duplicate checking against elements from the boot classpath
  (this includes rt.jar).
* Ning Issue #19: Report a defined message if plugin skips execution.

### 1.1.0 - 2014-12-27

* Full rewrite from the old Ning plugin

repository: basepom/duplicate-finder-maven-plugin

repo_name: basepom/duplicate-finder-maven-plugin


text:
[![Build Status](https://github.com/baxtree/wiki2ssml/actions/workflows/ci-pipeline.yml/badge.svg?branch=master)](https://github.com/baxtree/wiki2ssml/actions/workflows/ci-pipeline.yml?query=branch%3Amaster) ![Codecov](https://img.shields.io/codecov/c/github/baxtree/wiki2ssml) ![Node](https://img.shields.io/static/v1?label=node.js&message=≥6.4.0&color=green) [![GitHub license](https://img.shields.io/github/license/baxtree/wiki2ssml)](https://github.com/baxtree/wiki2ssml/blob/master/LICENSE)

# Wiki2SSML

`wiki2ssml` can transform the `WikiVoice` markups into the W3C SSML widely supported by various text-to-speech services as an interchange format for synthesised voice tuning.

# Install
```sh
$ npm install wiki2ssml
```
or
```sh
$ yarn add wiki2ssml
```

# Introduction
`wiki2ssml` eases the burden of editors preparing scripts in SSML, widely understood by modern speech synthesisers including but not limited to Amazon Polly, Google TTS, IBM Watson TTS and Microsoft Azure TTS. It has been developed in Vanilla JavaScript and powered by `WikiVoice` which provides an unobtrusive solution of blending voice-tuning markups with free texts and creates seamless experiences of editing scripts and voices in one go.
#

# Format
```
[[attribute(:value)?(,attribute:value)*(|target)?]]
```
# Supported Markups
| Expressions        | Operations|
| ------------- |-------------|
| [[volume:SCALE|TEXT]] | Speaking volume |
| [[speed:SCALE|TEXT]] | Speaking rate |
| [[pitch:SCALE|TEXT]] | Speaking pitch |
| [[silence:DURATION,strength:STRENGTH]] | Pause with duration and strength |
| [[emphasis:LEVEL|TEXT]] | Emphasis with LEVEL |
| [[audio:AUDIO_URI]] | Audio embedded into speech|
| [[lang:LANGUAGE|TEXT]] | Language indicator |
| [[paragraph|TEXT]] | Paragraph indicator |
| [[sentence|TEXT]] | Sentence indicator |
| [[type:TYPE|TEXT]] | Type it should be said as |
| [[voice:NAME|TEXT]] | Voice name it should be said with |
| [[pos:POS|TEXT]] | Part of speech it should be prounouced as |
| [[substitute:TEXT1|TEXT2]] | Replace TEXT2 with TEXT1 as substitution |
| [[alphabet:ALPHABET,pronunciation:PRONUNCIATION|TEXT]] | Phonetic pronunciation |
| [[volume:SCALE,speed:SCALE,pitch:SCALE|TEXT]] | Speaking volume, rate and pitch |
| [[type:TYPE,format:FORMAT,detail:DETAIL|TEXT]] | Type it should be said as |
| [[mark:NAME]] | Mark referencing a location |
| [[seeAlso:URI] | URI providing additional information about marked-up content]
| [[cacheControl:no-cache]] | No caching on marked-up content |
| [[lexicon:URI,type:TEXT]] | Location of the lexicon document and its media type |
| *[[...]][[...]]...[[...]]* | <par> time container with one or more markups|
| #[[...]][[...]]...[[...]]# | <seq> time container with one or more markups|

# Vendor-Specific Markups
| Expressions        | Operations|
| ------------- |-------------|
| [[amzWhispered|TEXT]] | Whispering |
| [[amzPhonation:PHONATION|TEXT]] | Speaking Softly |
| [[amzTimbre:SCALE|TEXT]] | Controlling Timbre |
| [[amzDRC|TEXT]] | Dynamic Range Compression |
| [[amzBreathDuration:SCALE,amzBreathVolume:SCALE]] | Breathing based on the manual model |
| [[amzDefaultBreath]] | Default breathing based on the manual model |
| [[amzAutoBreathsVolume:SCALE,amzAutoBreathsFrequency:SCALE,amzAutoBreathsDuration:SCALE|TEXT]] | Breathing based on the automated model |
| [[amzDefaultAutoBreaths]] | Default breathing based on the automated model |
| [[amzSpeakingStyle:STYLE|TEXT]] | Speaking style |
| [[amzEmotion:EMOTION,amzIntensity:SCALE|TEXT]] | Speaking emotionally |
| [[amzMaxDuration:DURATION#124;TEXT]] | Maximum Speech duration |
| [[gglMediaSpeak|TEXT]] | Media container for speech |
| [[gglMediaSpeakEnd:DURATION|TEXT]] | Media container for speech with the ending time |
| [[gglMediaSpeakFadeIn:DURATION,gglMediaSpeakFadeOut:DURATION|TEXT]] | Media container for speach with fade |
| [[gglMediaAudio:URI]] | Media container for audio |
| [[gglMediaAudioFadeIn:DURATION,gglMediaAudioFadeOut:DURATION,gglMediaAudio:URI]] | Media container for audio with fade |
| [[ibmExprType:TYPE|TEXT]] | Expressiveness type |
| [[ibmTransType:TYPE,ibmTransStrength:SCALE|TEXT]] | Voice transformation |
| [[ibmTransBreathiness:SCALE,ibmTransPitchRange:SCALE,ibmTransTimbre:SCALE|TEXT]] | Voice custom transformation |
| [[voice:NAME|[[mstExprType:TYPE|TEXT]]]] | Voice-specific speaking style |
| [[mstBackgroundAudio:URI,mstBackgroundAudioVolume:SCALE]] | Background audio and its volume |
| [[mstBackgroundAudio:URI,mstBackgroundAudioFadeIn:SCALE,mstBackgroundAudioFadeOut:SCALE]] | Background audio with fade-in and fade-out |
| [[mstExprStyle:STYLE,mstExprDegree:SCALE|TEXT]] | Speaking style and its intensity |

More details on canonical attribute values can be found at [Speech Synthesis Markup Language (SSML)](https://www.w3.org/TR/speech-synthesis/). For ranges of vendor-specific values please refer to their online documents. Each attribute name in camel case can be rewritten in kebab case (e.g., firstSecondThird <=> first-second-third). Non-vendor-specific attributes can be abbreviated into their first three letters.

# parseToSsml(input, languageCode, options)
- input `<string>` (required)
- languageCode `<string>` (required: [RFC 1766](https://tools.ietf.org/html/rfc1766))
- options `<object>` (optional)
  - version `<string>` (default: "1.1")
  - pretty `<boolean>` (default: false)
  - encoding `<string>` (default: "UTF-8")

# Example
```js
var parser = require("wiki2ssml");
try {
    var input = "[[volume:+2dB,speed:50%|Speak this with the volume increased by 2dB at half the default speech rate.]]";
    var ssml = parser.parseToSsml(input, "en-GB", {pretty: true});
    console.log(ssml);
} catch (e) {
    if (e instanceof parser.SyntaxError) {
        // The input does not have valid WikiVoice markups
    } else if (e instanceof parser.ArgumentError) {
        // Either the input or the language code is missing
    } else {
        // Handle any unspecified exceptions
    }
}
```
will print out:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2001/10/synthesis http://www.w3.org/TR/speech-synthesis/synthesis.xsd" xml:lang="en-GB">
  <prosody rate="50%" volume="+2dB">Speak this with the volume increased by 2dB at half the default speech rate.</prosody>
</speak>
```


text:
---
layout: documentation
title: Rendering a scene
type: Docs
excerpt: Rendering a scene using MNPRX
tags: [Docs, MNPRX]
comments: true
schema:
redirect_from:
  - /projects/MNPRX/docs/rendering-scene/
---

**Rendering with _MNPRX_ is a breeze** compared to rendering with offline renderers, as every frame is calculated in real-time! In fact, computers normally **take longer to save image files** to disk **than to render them**.
{: .top2}

There are many ways to get images out of _Maya_, but we strongly recommend the **tools that we have developed** to get the best and most consistent results, the [**_Viewport Renderer_**](../rendering/#viewport-renderer) (`rendr` icon in the _[MNPRX shelf](../shelf)_) and the [**_Target Sequence Renderer_**](../rendering/#target-sequence-renderer) (`tSeq` icon  in the _[MNPRX shelf](../shelf)_).

In the following **tutorial**, we give a **brief introduction** into **using these tools**.

{% include responsive-embed url="https://www.youtube.com/embed/XF9iIDzUT54?rel=0" width="90%" %}

If you wish to do some **compositing on the rendered image sequences**, make sure to also **[watch the Compositing in Nuke](../compositing-nuke/)** examples.

gha_language: SCSS


text:
irc-bot.rs
===

[![Docs.rs][b-docs]][docs]
[![Crates.io][b-crate]][crate]
[![GitLab CI status][b-CI-GitLab]][CI-GitLab]
[![Travis CI status][b-CI-Travis]][CI-Travis]

`irc-bot` is a library for writing [Internet Relay Chat (IRC) bots] in the
programming language [Rust], additionally providing a pre-configured bot for
immediate use.

This project is hosted both [on GitHub] and [on GitLab]; the repositories are
synchronized automatically.

If you use, or are interested in using, this library, you may post in one of
the support tickets that have been opened [on GitHub][users-ticket-GH] and [on
GitLab][users-ticket-GL] in which for people to note their interest in this
library so that this library's maintainers can survey them as to, notify them
of, and/or help them adjust to changes in the API of this library, and perhaps
provide other support.

[CI-GitLab]: <https://gitlab.com/c74d/irc-bot.rs/pipelines>
[CI-Travis]: <https://travis-ci.org/8573/irc-bot.rs>
[Internet Relay Chat (IRC) bots]: <https://en.wikipedia.org/wiki/IRC_bot>
[Rust]: <https://www.rust-lang.org>
[b-CI-GitLab]: <https://gitlab.com/c74d/irc-bot.rs/badges/dev/pipeline.svg>
[b-CI-Travis]: <https://api.travis-ci.org/8573/irc-bot.rs.svg?branch=dev>
[b-crate]: <https://img.shields.io/crates/v/irc-bot.svg>
[b-docs]: <https://docs.rs/irc-bot/badge.svg>
[crate]: <https://crates.io/crates/irc-bot>
[docs]: <https://docs.rs/irc-bot>
[on GitHub]: <https://github.com/8573/irc-bot.rs>
[on GitLab]: <https://gitlab.com/c74d/irc-bot.rs>
[users-ticket-GH]: <https://github.com/8573/irc-bot.rs/issues/50>
[users-ticket-GL]: <https://gitlab.com/c74d/irc-bot.rs/issues/1>

Documentation
---

What documentation there is for the versions of this crate published to
Crates.io should be available [on Docs.rs][docs]. Also available is
[documentation for the development version][docs-dev] of this crate, i.e., for
the latest build of this crate from the Git branch `dev`.

[docs-dev]: <https://c74d.gitlab.io/irc-bot.rs/dev/doc/irc_bot/>

Contributing
---

Please see the file [`CONTRIBUTING.md`]. Please note that the said file
contains some terms, particularly concerning licensing of contributions, to
which one must agree to contribute to this project.

[`CONTRIBUTING.md`]: <https://github.com/8573/irc-bot.rs/blob/dev/CONTRIBUTING.md>

Licensing
---

All parts of this crate are available under the standard open-source software
licence or licences specified in the file [`Cargo.toml`]. From the earliest
release of this crate, this has been [the Apache License, version 2.0].

Some portions of this crate may be available under other licences in addition,
but, in any such case, one may opt to accept such portions solely under the
crate-wide licence (or any of the crate-wide licences, if there are multiple
crate-wide licences).

[`Cargo.toml`]: <https://github.com/8573/irc-bot.rs/blob/dev/Cargo.toml>
[the Apache License, version 2.0]: <https://spdx.org/licenses/Apache-2.0.html>

Quick-start
---

To use this library without writing one's own bot with it, one can run the
provided program `src/bin/egbot.rs`:

    $ # For most people:
    $ cargo run
    $ # For NixOS users:
    $ make run

The name `egbot` is derived from ["e.g."], which means "for example", and is
also a pun on the name of [Eggdrop], an old IRC bot.

["e.g."]: <https://en.wiktionary.org/wiki/e.g.>
[Eggdrop]: <https://en.wikipedia.org/wiki/Eggdrop>

The bot can be configured by editing the [YAML] file `config.yaml`. One at
least should put one's IRC nickname ("nick") in the `admins` field — e.g., if
one's nick is ["Ferris"]:

    admins:
      - nick: Ferris

Configuration fields currently supported are as follows (with values given for
example only) (TODO: Document these in rustdoc, with rich text):

    # A string to be used as the bot's IRC nickname. This field is required.
    nickname: egbot

    # A string to be used as the bot's IRC username (which has little effect
    # in most cases). Defaults to the nickname.
    username: egbot

    # A string to be used as the bot's IRC "realname" or "GECOS string", which
    # has still less effect and is often used to display information about a
    # bot's software. Defaults to displaying information about the bot's
    # software.
    realname: 'Built with `irc-bot.rs`.'

    # A list of servers to which the bot should connect on start-up.
    # Currently, only the first server will be used, and the bot will crash if
    # no servers are listed; both of these issues should be fixed at some
    # future point.
    servers:
      - name: Mozilla
        host: irc.mozilla.org
        port: 6697
        # Whether to use Transport Layer Security. Defaults to `true`.
        TLS: true
        # A list of channels that the bot should join after connecting. Note
        # that each channel's name should be wrapped in quotation marks or
        # otherwise escaped so that the '#' is not taken as the start of a
        # comment.
        channels:
          - name: '#rust-irc'

    # A list of IRC users who will be authorized to direct the bot to run
    # certain priviledged commands. For each listed user, the fields `nick`,
    # `user`, and `host` may be specified; for each of which that is
    # specified, a user will need to have a matching nickname, username, or
    # hostname (respectively) to be authorized. All the specified fields must
    # match for a user to be authorized.
    admins:
      # To be authorized as an administrator of the bot, this user will need
      # to have the nickname "Ferris", the username "~crab", and the hostname
      # "rustacean.net":
      - nick: Ferris
        user: '~crab'
        host: rustacean.net
      # To be authorized as an administrator of the bot, this user will only
      # need have the nickname "c74d":
      - nick: c74d

[YAML]: <https://en.wikipedia.org/wiki/YAML>
["Ferris"]: <http://www.rustacean.net>

Building
---

For most users, it should suffice simply to use **[Cargo]**:

    $ cargo build

[Cargo]: <http://doc.crates.io>

Users of the Linux distribution **[NixOS]** may prefer to use the provided
[`Makefile`], which wraps the tool `nix-shell`:

    $ make build

[NixOS]: <https://nixos.org>
[`Makefile`]: <https://github.com/8573/irc-bot.rs/blob/dev/Makefile>

Supported Rust versions
---

This package supports the Rust version noted in the file [`RUST_VERSION.yaml`]
and any Rust versions backwards-compatible therewith. This minimum supported
Rust version may be increased at any time to the latest release of Rust
understood by the maintainer(s) of this package to fix or to mitigate one or
more security vulnerabilities in the standard library or compiler output. The
minimum supported Rust version may not be increased for reasons unrelated to
security.

Although increases in the minimum supported Rust version are breaking changes,
they are also, under this policy, bug-fixes, and for the purposes of [SemVer]
they will be treated as bug-fixes and not as breaking changes. The idea here
is that not upgrading Rust when a security fix is available is an
irresponsible course of (in)action that the maintainer(s) of this package wish
not to support, as confessedly doctrinairely as such a denial of support may
ignore users' reasons for not updating.

[SemVer]: <https://semver.org>
[`RUST_VERSION.yaml`]: <https://github.com/8573/irc-bot.rs/blob/dev/RUST_VERSION.yaml>

branch_name: refs/heads/dev

gha_language: Rust

gha_license_id: NOASSERTION


text:
Links
--------------------------------------------------------------------------------

Atom Flight Manual: http://flight-manual.atom.io/

C:\Users\Theo\.atom\snippets.cson

To do
--------------------------------------------------------------------------------
Get Lint working properly ~ https://atom.io/packages/linter-eslint
Theme with darker text
Count number of lines in the code in a folder

Tips
--------------------------------------------------------------------------------

Basic Customization: http://flight-manual.atom.io/using-atom/sections/basic-customization/ )

Editing: http://flight-manual.atom.io/using-atom/sections/editing-and-deleting-text/#multiple-cursors-and-selections
* Ctrl+Click - Add a new cursor at the clicked location
* Alt+Ctrl+Up/Down - Add another cursor above/below the current cursor
* Ctrl+D - Select the next word in the document that is the same as the currently selected word
* Alt+F3 - Select all words in the document that are the same as the currently selected word

Control-Alt-I > JavaScript console

No files open at start-up < make sure 'welcome...' is unchecked

Packages
--------------------------------------------------------------------------------

### Installed
https://atom.io/packages/command-toolbar
    * Press ctrl or alt and tap the touchpad to edit
https://github.com/gstack/atom-browser-webview
https://github.com/jcouyang/glist

### Of interest
https://github.com/mark-hahn/line-count

Open projects
--------------------------------------------------------------------------------
Currently using this:
C:\Users\Theo\AppData\Local\atom\app-1.11.2\resources\cli\atom.cmd C:\Users\Theo\Dropbox\Public\git-repos\jaanga.github.io\gubgub  C:\Users\Theo\Dropbox\Public\snippets

Change Log
--------------------------------------------------------------------------------

### 2016-11-02

* tab font-size is mow medium - and legible

### 2016-10-30

* Generally settling into Atom usage. Nice stuff
* Added atom-browser-webview
* command toolbar: can show unicode chars
    * Added more 'icons'
* See: https://github.com/jcouyang/glist/issues/22
* Figure out Cut/Copy/Paste and control keys < Glist uses Control C - ;-(
* Figure out right slide bar < Ditto

### 2016-10-29

* Created batch file
* Using this: cmd /c "C:\Users\Theo\Desktop\atom.bat", created 'Pin to Taskbar' W10 shortcut
* Default projects open at start-up < fixed


text:
---
title: Reduce bandwidth usage
---

# Reduce bandwidth usage

In order to provide users with essential information about their devices, the {{ $names.company.lower }} Supervisor on the device regularly keeps the API informed about the device's state. Upon receiving a target device state which differs from the current device state, the Supervisor applies changes, such as downloading new application updates or setting environment variables. While a quick response to actions is great during development, it also leads to of increased data usage.

In order to give our power users control over data flow, we enabled a few `BALENA_` variables in the [configuration][configuration] tab.

| Variable                               | Allowed Value      |   Action                                             | Default | Available with Supervisor Version |
|----------------------------------------|--------------------|------------------------------------------------------|---------|-----------------------------------|
| `BALENA_SUPERVISOR_VPN_CONTROL`        | true/false         |  Enable / Disable VPN                                |  true   |  v1.1.0                           |
| `BALENA_SUPERVISOR_CONNECTIVITY_CHECK` | true/false         |  Enable / Disable VPN connectivity check             |  true   |  v1.3.0                           |
| `BALENA_SUPERVISOR_POLL_INTERVAL`      | 600000 to 86400000 |  API Poll interval in milliseconds                   |  900000 |  v1.3.0                           |
| `BALENA_SUPERVISOR_LOG_CONTROL`        | true/false         |  Enable / Disable logs from being sent to API        |  true   |  v1.3.0                           |
| `BALENA_SUPERVISOR_HARDWARE_METRICS`   | true/false         |  Enable / Disable device hardware metrics reporting  |  true   |  v12.8.0                          |

Side Effects / Warnings
-------------------

`BALENA_SUPERVISOR_VPN_CONTROL`: This defines the ability to send instantaneous updates to the device. Turning off the VPN means that any configuration or variable update is reflected only when the device polls for these changes. The Web Terminal does not function when the VPN is disabled. This also disables the public URL functionality.

`BALENA_SUPERVISOR_CONNECTIVITY_CHECK`: Defines the device's ability to test and indicate (via an LED when available) that it has issues with connectivity.

`BALENA_SUPERVISOR_POLL_INTERVAL`: This defines the time interval when any changes made to the fleet, i.e either new code pushes or environment variables changes or VPN control changes are propagated to the device. Think of it as the interval when the device checks in with {{ $names.company.lower }} API to ask for new updates. Making this interval long, would mean that any change is only reflected in the device after this interval, if the VPN is not operational. (We suggest limiting this to less than 24 hours.)

`BALENA_SUPERVISOR_LOG_CONTROL`: Any logs written by the user container or the device Agent are not sent to the dashboard when this variable is set to false.

`BALENA_SUPERVISOR_HARDWARE_METRICS`: [Device metrics][device-metrics] such as CPU temperature and memory usage won't be reported to the API, and won't be displayed on the summary page of the device dashboard.

Data usage impact
-----------------

| Service                                                                 | Usage (Including DNS overhead)                          | Related Configuration Variable       |
|-------------------------------------------------------------------------|---------------------------------------------------------|--------------------------------------|
| API poll (Once per 15min)                                               | 6650 Bytes per request                                  | BALENA_SUPERVISOR_POLL_INTERVAL      |
| {{ $names.company.lower }} Supervisor update poll (Once every 24 hours) | 6693 Bytes per request                                  | Not configurable via variables       |
| VPN enabled                                                             | 43 Bytes / second                                       | BALENA_SUPERVISOR_VPN_CONTROL        |
| TCP check cost (When VPN disabled)                                      | 47.36 Bytes / second                                    | BALENA_SUPERVISOR_CONNECTIVITY_CHECK |
| Hardware metrics reporting                                              | ~66 Bytes every 10 seconds when there have been changes | BALENA_SUPERVISOR_HARDWARE_METRICS   |

Example minimum bandwidth settings
----------------------------------

The following settings lead to data usage of approximately 1.3MB per month:

* Disable `BALENA_SUPERVISOR_VPN_CONTROL`
* Disable `BALENA_SUPERVISOR_CONNECTIVITY_CHECK`
* Change `BALENA_SUPERVISOR_POLL_INTERVAL` to 24 hours (86400000 ms)
* Disable `BALENA_SUPERVISOR_LOG_CONTROL`
* Disable `BALENA_SUPERVISOR_HARDWARE_METRICS`

[device-metrics]:/reference/supervisor/device-metrics
[configuration]:/learn/manage/configuration

repository: mre/docs

gha_language: HTML

repo_name: mre/docs


text:
# react-redux-local

[![Build Status][build-badge]][build]
[![Code Coverage][coverage-badge]][coverage]
[![version][version-badge]][package]
[![downloads][downloads-badge]][npmtrends]
[![MIT License][license-badge]][license]

[![PRs Welcome][prs-badge]][prs]

[![Watch on GitHub][github-watch-badge]][github-watch]
[![Star on GitHub][github-star-badge]][github-star]
[![Tweet][twitter-badge]][twitter]

Adding a local reducer can be very verbose with libraries like [recompose](https://github.com/acdlite/recompose), the goal of this library is to reduce boilerplate when creating a local reducer.

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
- [Inspiration](#inspiration)
- [Other Solutions](#other-solutions)
- [LICENSE](#license)

## Installation

This module is distributed via [npm][npm] which is bundled with [node][node] and
should be installed as one of your project's `dependencies`:

```
npm install --save react-redux-local
yarn add react-redux-local
```

## Usage

```javascript
import LocalReducer from 'react-redux-local'

const actions = {
  doSomething: () => ({ type: 'SOMETHING' })
}

// https://github.com/redux-saga/redux-saga
function * saga () {
  yield takeEvery('SOMETHING', () => console.log('Action with type SOMETHING was triggered'))
}

// https://github.com/zalmoxisus/redux-devtools-extension/blob/master/docs/API/Arguments.md#windowdevtoolsextensionconfig
const devToolsOptions = {}

const MyComponent = () => (
  <LocalReducer
    reducer={reducer}
    actions={actions}
    devToolsOptions={devToolsOptions}
    saga={saga}
    render={(state, actions, dispatch) => {
      // state = redux state
      // actions = binded actions (no need to dispatch)
      // dispatch = optional dispatch function, if you need a more complex workflow
    }}
  />
)
```

## Inspiration

Michael Jackson - Never Write Another HoC

[![Michael Jackson - Never Write Another HoC](https://img.youtube.com/vi/BcVAq3YFiuc/0.jpg)](https://www.youtube.com/watch?v=BcVAq3YFiuc)

## Other Solutions

[local-react-redux](https://github.com/HansDP/local-react-redux)

[local-react-redux-saga](https://github.com/HansDP/local-react-redux-saga)

[react-local-reducer](https://github.com/troch/react-local-reducer)

This project follows the [all-contributors][all-contributors] specification.
Contributions of any kind welcome!

## LICENSE

MIT

[npm]: https://www.npmjs.com/
[node]: https://nodejs.org
[build-badge]: https://img.shields.io/travis/imflavio/react-redux-local.svg?style=flat-square
[build]: https://travis-ci.org/imflavio/react-redux-local
[coverage-badge]: https://img.shields.io/codecov/c/github/imflavio/react-redux-local.svg?style=flat-square
[coverage]: https://codecov.io/github/imflavio/react-redux-local
[version-badge]: https://img.shields.io/npm/v/react-redux-local.svg?style=flat-square
[package]: https://www.npmjs.com/package/react-redux-local
[downloads-badge]: https://img.shields.io/npm/dm/react-redux-local.svg?style=flat-square
[npmtrends]: http://www.npmtrends.com/react-redux-local
[license-badge]: https://img.shields.io/npm/l/react-redux-local.svg?style=flat-square
[license]: https://github.com/imflavio/react-redux-local/blob/master/LICENSE
[prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
[prs]: http://makeapullrequest.com
[donate-badge]: https://img.shields.io/badge/$-support-green.svg?style=flat-square
[coc-badge]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square
[coc]: https://github.com/imflavio/react-redux-local/blob/master/other/CODE_OF_CONDUCT.md
[github-watch-badge]: https://img.shields.io/github/watchers/imflavio/react-redux-local.svg?style=social
[github-watch]: https://github.com/imflavio/react-redux-local/watchers
[github-star-badge]: https://img.shields.io/github/stars/imflavio/react-redux-local.svg?style=social
[github-star]: https://github.com/imflavio/react-redux-local/stargazers
[twitter]: https://twitter.com/intent/tweet?text=Check%20out%20react-redux-local%20by%20%40imflavio_%20https%3A%2F%2Fgithub.com%2Fimflavio%2Freact-redux-local%20%F0%9F%91%8D
[twitter-badge]: https://img.shields.io/twitter/url/https/github.com/imflavio/react-redux-local.svg?style=social


text:
[![Build Status](https://travis-ci.org/cloudinary/cloudinary_js.svg)](https://travis-ci.org/cloudinary/cloudinary_js) [![npm](https://img.shields.io/npm/v/cloudinary_js.svg?maxAge=2592000)]() [![license](https://img.shields.io/github/license/cloudinary/cloudinary_js.svg?maxAge=2592000)]()

# Cloudinary Client Side JavaScript Library

Cloudinary is a cloud service that offers a solution to a web application's entire image management pipeline.

Easily upload images to the cloud. Automatically perform smart image resizing, cropping and conversion without installing any complex software. Integrate Facebook or Twitter profile image extraction in a snap, in any dimension and style to match your website’s graphics requirements. Images are seamlessly delivered through a fast CDN, and much much more.

Cloudinary offers comprehensive APIs and administration capabilities and is easy to integrate with any web application, existing or new.

Cloudinary provides URL and HTTP based APIs that can be easily integrated with any Web development framework.

# About this repository
This repository is the home for three distinct packages
- [cloudinary-core](https://github.com/cloudinary/pkg-cloudinary-core#installation)
- [cloudinary-jquery](https://github.com/cloudinary/cloudinary_js/tree/master/pkg/cloudinary-jquery)
- [cloudinary-jquery-file-upload](https://github.com/cloudinary/cloudinary-jquery-file-upload#installation)

# Cloudinary Core
Cloudinary-Core is a cross-platform library for Cloudinary.

The library provides URL generation capabilities as well as other utlity functions useful when working with Media.

This SDK does not contain API methods, for that please refer to our [Node SDK](https://github.com/cloudinary/cloudinary_npm)

[cloudinary-core readme](https://github.com/cloudinary/pkg-cloudinary-core)
### Quick start

```javascript
var cl = cloudinary.Cloudinary.new( { cloud_name: "demo"});
```

```javascript
// Using the config function
var cl = cloudinary.Cloudinary.new();
cl.config( "cloud_name", "demo");
```

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

# Cloudinary jQuery
[cloudinary-jquery readme](https://github.com/cloudinary/cloudinary_js/tree/master/pkg/cloudinary-jquery)
[Getting started guide for jQuery](http://cloudinary.com/documentation/jquery_integration#getting_started_guide)

------------------------------
# Cloudinary jQuery File Upload
[cloudinary-jquery-file-upload readme](https://github.com/cloudinary/cloudinary-jquery-file-upload)

# Additional Resources
* [Website](http://cloudinary.com)
* [Documentation](http://cloudinary.com/documentation)
* [Knowledge Base](http://support.cloudinary.com/forums)
* [Documentation for jQuery integration](http://cloudinary.com/documentation/jquery_integration)
* [jQuery image upload documentation](http://cloudinary.com/documentation/jquery_image_upload)
* [jQuery image manipulation documentation](http://cloudinary.com/documentation/jquery_image_manipulation)
* [Image transformations documentation](http://cloudinary.com/documentation/image_transformations)
* [Setting up a jQuery based file upload](http://cloudinary.com/blog/direct_image_uploads_from_the_browser_to_the_cloud_with_jquery).

# Other SDKs
- [Official Angular SDK](https://github.com/cloudinary/cloudinary_angular)
- [Official React SDK](https://github.com/cloudinary/cloudinary-react)
- [Official Vue SDK](https://github.com/cloudinary/cloudinary-vue)
- [Official Node SDK](https://github.com/cloudinary/cloudinary_npm)

## Support
You can [open an issue through GitHub](https://github.com/cloudinary/cloudinary_js/issues).

Contact us at [http://cloudinary.com/contact](http://cloudinary.com/contact).

Stay tuned for updates, tips and tutorials: [Blog](http://cloudinary.com/blog), [Twitter](https://twitter.com/cloudinary), [Facebook](http://www.facebook.com/Cloudinary).

## Join the Community
Impact the product, hear updates, test drive new features and more! Join [here](https://www.facebook.com/groups/CloudinaryCommunity).

## License
Released under the MIT license.

The direct image upload feature of the plugin is based on https://github.com/blueimp/jQuery-File-Upload


text:
Simple OAuth
=========

#### Helper Library for Signing OAuth Requests ####

OAuth 1.0 requires that requests made to an OAuth compliant API service
be signed using specific attributes from the request and the different keys
registered to the consumer/owner.  This library provides a simple means to
sign those requests by simply providing it with the keys and necessary parameters
involved in the signing process.  It will produce either the header or query
string necessary to send with the request to the API.

The library is modeled after a [Ruby Gem implementation](https://github.com/laserlemon/simple_oauth/blob/master/lib/simple_oauth/header.rb)
of the same name and the test cases were compared to the output produced by the Ruby version.
UnderscoreJS made the most sense to replicate some the features of the Ruby language.  Some gaps remained
like a SHA1-HMAC signing function and various URI handling functions.

Usage
---------------

To use SimpleOAuthJS in your application, either download the
[Minified](https://raw.github.com/bseth99/simple-oauth-js/master/simple-oauth.min.js) or
[Full](https://raw.github.com/bseth99/simple-oauth-js/master/simple-oauth.js) version and copy it to a suitable location.
Then include it in your HTML like so:

    <script type="text/javascript" src="/path/to/simple-oauth.js"></script>

The library does depend on UnderscoreJS (http://underscorejs.org) so make sure to include that as well.

### Basics ###

The basic usage is fairly straight forward.

      var header = new SimpleOAuth.Header(method, path, params, options);

      var auth = header.build();

`method` is the type of request (ie GET/POST).

`path` is the full URL to the resource (review <IP_ADDRESS>. Base String URI of the [RFC](http://tools.ietf.org/html/rfc5849))

`params`, for form posts, is a key/value hash of the post vars.  This should be null for
everything except when content type is application/x-www-form-urlencoded

`options` is a key/value hash of valid OAuth header variables without the oauth_ prefix.
Generally, these are the consumer/owner keys but the other values can be specified (like callback,
verifier, nonce, etc).

### Alternatives ###

By default `build` will output the Authorization header string which will include the OAuth and comma
separated variables.  Alternatively, you can pass "query" to the `build` function which will return the
string such that it could be used in the query string of a request.  Some APIs allow/require this approach
to validating requests.

Example
---------------

This is a basic example using jQuery to make an AJAX request to a remote API.  An important
point to keep in mind is the path must be the full URL to the resource.  If you are using
a reverse proxy to avoid cross-site calls, you may have to tweak what you use here.  It
has to match what the server will see or it will fail.

        var keys = {
               consumer_key: 'R1Y3QW1L15uw8X0t5ddJbQ',
               consumer_secret: '7xKJvmTCKm97WBQQllji9Oz8DRQHJoN1svhiY8vo'
          },

          base = location.protocol + '//' + location.host + (location.port ? ':' + location.port : ''),
          url = '/do_something',

          oauth = new SimpleOAuth.Header('get', base+url, null, keys);

        /**
        *  Map requests to /api path for reverse proxy
        *  They must be signed using the path the server will
        *  see when checking the signature.
        */
        $.ajax({
                url: '/api' + url,
                type: "GET",
                processData: false,
                headers: { 'Authorization' : oauth.build() }
              })
             .done( function (data, textStatus, jqXHR) {
                     console.log('Success: ' + data);
                })
             .fail( function (jqXHR, textStatus, errorThrown) {
                     console.log('Fail: ' + jqXHR.status);
                });

License
---------------

Copyright (c) 2013, Ben Olson
Licensed under the MIT license


text:
![](https://s.gravatar.com/avatar/f105de3decfafc734b8eabe9a960b25d?size=64) AssemblyScript NEXT
=================

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

**AssemblyScript** compiles strictly typed [TypeScript](http://www.typescriptlang.org) to [WebAssembly](http://webassembly.org) using [Binaryen](https://github.com/WebAssembly/binaryen). Unlike other toolchains, `asc` generates minimal WebAssembly modules while being just an `npm install` away.

Examples
--------

A few early examples to get an idea:

* **[Conway's Game of Life](./examples/game-of-life)**

  Continuously updates the cellular automaton and visualizes its state on a canvas.

* **[i64 polyfill](./examples/i64-polyfill)**

  Exposes WebAssembly's i64 operations to JavaScript using 32-bit integers (low and high bits).

* **[PSON decoder](./examples/pson)**

  A PSON decoder implemented in AssemblyScript.

* **[TLSF memory allocator](./examples/tlsf)**

  A port of TLSF to AssemblyScript.

* **[μgc garbage collector](./examples/ugc)**

  A port of μgc to AssemblyScript.

Or browse the [compiler tests](./tests/compiler) for a more in-depth overview of what's supported already. One of them is a [showcase](./tests/compiler/showcase.ts).

Getting started
---------------

Note that this version of the compiler is relatively new and does not yet support some features a TypeScript programmer might expect, e.g., strings, arrays and classes. It is not on [npm](https://www.npmjs.com/package/assemblyscript), yet, but you can already try it out today:

```
$> git clone https://github.com/AssemblyScript/assemblyscript.git
$> cd assemblyscript
$> npm install
$> npm link
```

Author your module using either

* the [assembly definitions](./std/assembly.d.ts) ([base config](./std/assembly.json)) if all you care about is targeting WebAssembly/asm.js or
* the [portable definitions](./std/portable.d.ts) ([base config](./std/portable.json)) if you also want to compile to JavaScript using `tsc`

and run:

```
$> asc yourModule.ts
```

See [the AssemblyScript wiki](https://github.com/AssemblyScript/assemblyscript/wiki) for additional documentation.

Building
--------

Building an UMD bundle to `dist/assemblyscript.js` ([binaryen.js](https://github.com/AssemblyScript/binaryen.js) remains an external dependency):

```
$> npm run build
```

Running the [tests](./tests):

```
$> npm test
```

repository: nickfujita/assemblyscript

repo_name: nickfujita/assemblyscript


text:
# Freeboard

This is a port of Freeboard (http://www.42.co.nz/freeboard) which can access CA Cruising Rreports and  uses the Signal K communication protocols and utilise Signal K server features.
It should be used in conjunction woth the ca-reports Node Server plugin.

## Features:

#### Chart Display:

    - OpenStreetMap, OpenSeaMap, and WORLD chart outline (online only)
    - Charts hosted on Signal K server via `/resources/charts` path

#### Resources:  Routes and Waypoints
    - List / Select resources hosted on Signal K server via `/resources/routes`, `/resources/waypoints` paths
    - Set an active Route
    - Select destination point along and Active Route
    - Select Waypoint as course destination
    - Edit Route / Waypoint properties (Name, Description)
    - Draw Route
    - Add Waypoint at: Cursor or Vessel position
    - Delete Waypoint(s) / Route(s)
    - Import Routes and Waypoints from GPX files
    - View and Add CA CRs

**Note:** Server requests to update data values *e.g. the creation, updating or deletion of resources* requires is can be done via either PUT requests *(default / recommended)* or web socket UPDATES.

This can be selected by the **Use PUT Requests** checkbox in **Settings**.

#### Map Display:

    - North-up or Vessel-up
    - Moving Map or Moving Vessel
    - Vessel Heading / Bearing lines
    - Wind true direction / apparent angle lines
    - Measure distance

#### Alarms:

    Displays both visual and audio alarm indication as specified by the received *Notification* message.

    - Anchor Watch: set radius and raise / drop anchor
    - Depth Notifications.

#### Integration:

Freeboard allows you to select installed *Applications* to use for the following:

- **Instrument panel**: *(default: `@SignalK/InstrumentPanel`)*

Selected application will be displayed in the Instrument panel drawer.

## System Requirements:

For all Freeboard features to be fully functional, it requires that the Signal K server in use be able to provide the necessary services for the following paths:

1. `reources/routes` and `resources/waypoints` - Serve resources as well as accept and persist resource data submitted to these paths.

2. `resources/charts` - Serve chart resources.

3. `navigation/anchor`, `notifications/navigation/anchor` - Serve and accept `position`, `maxRadius` values as well as calculate `currentRadius` and serve notifications.

4. `notifications/environment/depth` - Serve notifications for `belowKeel`, `belowSurface` `belowTransducer`.

5. `navigation/courseGreatCircle/activeRoute` - Serve and accept `href` & `startTime` values to allow a route to be set as active. It is expected that the server will initiate any subsequent calculations and related value updates.

6. `navigation/courseGreatCircle/nextPoint` - Serve and accept `position` values to allow a waypoint to be set as a destination. It is expected that the server will initiate any subsequent calculations and related value updates.

7. **Playback History** - Implement the Signal K Playback api (`/signalk/v1/playback`)

This function may be provided natively by the server or through the use of *plugins*.

For example the following plugins installed on the *Signal K node server* will enable full functionality:
- @signalk/charts-plugin *(Charts provider)*
- GPXLoad (v1.1.1 or later) *(Routes & Waypoints provider)*
- signalk-anchoralarm-plugin *(anchor alarm settings & notifications)*
- signalk-simple-notifications *(depth alarm notifications)*
- ca-reports *(Cruising Association cruising reports)*

### Integrated Apps on Server
![Server Instruments](https://user-images.githubusercontent.com/38519157/46716813-00d27080-ccad-11e8-98a3-ab4b4f47df11.png)

### Vessel up
![Vessel Up](https://user-images.githubusercontent.com/38519157/46716759-cf59a500-ccac-11e8-9ac5-68a7f3429f4a.png)

### North up
![North Up](https://user-images.githubusercontent.com/38519157/46716737-bc46d500-ccac-11e8-9d31-87cfffb1ad3b.PNG)

## Development:

This is an Angular project generated with [Angular CLI](https://github.com/angular/angular-cli).
It is recommended that the Angular CLI be installed globally `npm i -g @angular/cli@latest` prior to following the steps below.

1. Clone this repository.

2. Run `npm i` to install Angular CLI and project dependencies. *Note: this will also build the project placing the deployable application files in the `public` folder.*

3. Run `npm start` or `ng serve` to start a development web server and then navigate to `http://localhost:4200/` to load the application. The application will automatically reload once you save changes to any of the source files.

### Note:

The Freeboard application will look to connect to a Signal K server at the *ip address:port* contained in the url of your browser.

During development, if a Signal K server is not running on your development device, you are able to specify the Signal K server you wish to connect to as follows:

**In Development Mode** where application is served using:
- `npm start`
- `ng serve`
- Files generated by `ng build`

the `DEV_SERVER { host, port, ssl }` object in the `src/app.info.ts` file determines where the application looks to find the Signal K server in devleopment mode.

If `DEV_SERVER { host, port, ssl }` values are:

- **Defined:** The application will look to connect to a Signal K server at the defined `host & port` values and using a secure protocol if `ssl=true`.

- **NOT Defined:** The served application will look to connect to a Signal K server at the *ip address:port* contained in the url of yuor browser *(e.g. `localhost:4200`)*.

**Production Mode** is where the application is served using:
- `ng serve --prod`
- Files generated by `ng build --prod`

The served application will look to connect to a Signal K server at the *ip address:port* of the url hosting the application.

## Build:

#### Angular Build

To build the Freeboard application use the `ng build --prod` command.

Built application files are placed in the `/public` folder.

#### NPM package

To build the NPM package use `npm pack` command which will:
1. Build the application using `ng build --prod`.
2. Create the NPM package `*.tgz` file.

Built `*.tgz` file is placed in the `/` root folder.

repository: irandrews/freeboard-sk

repo_name: irandrews/freeboard-sk


text:
# Mun Runtime Experiment

[![Build Status][s1]][ci] [![docs page][docs-badge]][docs] [![MIT/Apache][licence-badge]][li]
[![Join us on Discord][s4]][di] ![Lines of Code][s6]

[s1]: https://travis-ci.org/mun-lang/mun.svg?branch=master
[docs-badge]: https://img.shields.io/badge/docs-website-blue.svg
[docs]: https://docs.mun-lang.org/
[licence-badge]: https://img.shields.io/badge/license-MIT%2FApache-blue.svg
[s4]: https://img.shields.io/discord/602227728480993281.svg?logo=discord
[s6]: https://tokei.rs/b1/github/mun-lang/mun?category=code
[ci]: https://travis-ci.org/mun-lang/mun
[li]: COPYRIGHT
[di]: https://discord.gg/SfvvcCU

An experiment to:

* Detect file changes
* Hot reload Rust shared libraries upon file changes
* Design an API for describing a shared library's symbols
- Reflect type and function information at runtime
* Compare run-time types between different compilation units

## Used resources

- C# Reflection API: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/reflection

## Choices

### Hot reloading

For code to be hot reloadable the main project's dependencies need to be compiled as shared
libraries. All necessary information for matching file changes to their corresponding shared
library can be found using the [cargo](https://github.com/rust-lang/cargo) package manager.

### File changes

[cargo-watch](https://github.com/passcod/cargo-watch) can be used to trigger a process upon file
changes, but as the runtime needs to be running continuously it'd require inter-process
communication. To simplify the experiment, it was opted to integrate a file watcher into the
runtime.

### Reflection

Rust's `Any` trait only generates unique `TypeId`s for types included in a single compilation unit.
Hot reloading also requires comparisons between multiple compilation units, i.e. the main
executable and shared libraries. To that end, the `TypeInfo` struct also contains a `Uuid` that is
shared among all compilation units. For performance, one could still opt to use the `TypeId` (`u64`)
within a single compilation unit. A release build (not consisting of shared libaries) can remove
the `Uuid`s altogether to reduce the memory footprint and improve performance.

## License

The Mun Runtime is licensed under either of

 * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
 * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

 at your option.

repository: triptych/mun

repo_name: triptych/mun