text:
# YoutubePlaylistHandler

## Description

The `YoutubePlaylistHandler` class and functions are used to add or remove a video to or from Youtube playlist.

Client authentication credentials and redirect URL have to be configured. Default playlist ID can be configured optionally.

## Configuration

Configuration file is `yph_config.json` in root directory.
These parameters have to be set:

1. `clientId` - Google OAuth2 client ID *
2. `clientSecret` - Google OAuth2 client secret *
3. `redirectUrl` - Redirect URL for Google OAuth2 *
4. `playlistId` - Default playlist ID

*\* required parameters*

## Usage

Usage has two parts:

1. Client authentication
2. Add/remove video to/from playlist

The authentication has to be done first. It has to be done only once. The resulting auth token is saved to file and used from then on. If the token expires, it's refreshed automatically when used.

It is recommended to call client authentication in a separate script.

Functions and methods from adding/removing accept **playlist ID** as an optional parameter. When no playlist ID is given, value from config file will be used.

**Include the YoutubePlaylistHandler main file first** before using any of it's functions:

```php
// Include YoutubePlaylistHandler
require_once('./YoutubePlaylistHandler.php');
```

### Using functions

#### Authentication

Function `yph_auth()` will check authentication token and redirect user to Google Auth page if token is invalid or no token is found. New auth token will be created upon returning from Google Auth page. The resulting token will be saved to file and used from now on.

```php
// Throws an exception and dies if error occured
yph_auth();
```

#### Add video to playlist

```php
// Returns false if error occured
$success = yph_add_to_playlist('video ID', 'optional playlist ID');
```

#### Remove from playlist

```php
// Returns false if error occured
$success = yph_remove_from_playlist('video ID', 'optional playlist ID');
```

### Using class methods

#### Authentication

Method `auth()` with parameter `true` will check authentication token and redirect user to Google Auth page if token is invalid or no token is found. New auth token will be created upon returning from Google Auth page. The resulting token will be saved to file and used from now on.

```php
$youtube = new YoutubePlaylistHandler();
$youtube->auth(true);
```

#### Add video to playlist

```php
$youtube = new YoutubePlaylistHandler();
$youtube->addToPlaylist('video ID', 'optional playlist ID');
```

#### Remove video from playlist

```php
$youtube = new YoutubePlaylistHandler();
$youtube->removeFromPlaylist('video ID', 'optional playlist ID');
```

#### Method chaining

Object method calls can be chained.

```php
$youtube = new YoutubePlaylistHandler();
$youtube
    ->removeFromPlaylist('1st video ID', 'optional playlist ID')
    ->addToPlaylist('2nd video ID', 'optional playlist ID')
    ->addToPlaylist('3rd video ID', 'different optional playlist ID')
    ->addToPlaylist('4th video ID', 'optional playlist ID');
```

## Logging

Default log file is `log/yph.log`. Logging is verbose, log file is rotated once a day and 14 past rotations are kept.

repository: tichopad/YoutubePlaylistHandler

repo_name: tichopad/YoutubePlaylistHandler


text:
Machine Status
====
Packages I need for setting up my development virtual machines.

https://serversforhackers.com/

[有哪些命令行的软件堪称神器？ - 知乎](https://www.zhihu.com/question/59227720/answer/578875058)

[#开发者]([https://sspai.com/tag/开发者) -> [写给工程师的 Ubuntu 20.04 最佳配置指南 - 少数派](https://sspai.com/post/60411)

#### Dev3

2020-12-20: Linuxmint-dev3

A newly installed Linuxmint 20.

* build on my new AMD Ryzen 3700x
* set 'Display' to VboxSVGA.
* no python 3.9, no syncthing, no htop.

2020-12-20: dev environment preparation
Installed:

* python3.9.1
* syncthing
----

### Dev2

2020-03-16:

Linux Mint 19.3 Cinnamon 64-bit (from Linux Mint's official website)

Boot in: EFI

    + set keyboard layout to DVORAK
    + add an user "Aaron"
(This is a VM Image made by VirtualBox, for running EFI in VirtualBox.)

Remarks: aaron, 42stephanxxxxxxx0693

2020-03-23:

Install: git, Django, python3.8 (`sudo apt install python3.8`)

Install: `tmux` (终端复用工具，替代 `screen`, `nohup`)

Install:  `htop`, `glances`[#](https://nicolargo.github.io/glances/),  `nmon`, `bmon`,  `syncthing`, `curl`, `tree`, `cloc`
Install: `goaccess`, `iotop`, `iptraf-ng`[#](https://www.linuxtechi.com/command-line-tools-to-monitor-linux/)
Install: `theFuck` [#](https://github.com/nvbn/thefuck), `bat`, `prettyping`, `fzf`[#](https://github.com/junegunn/fzf), `htop`, `diff-so-fancy`, `fd`, `ncdu`, `tldr`, `cheat`[#](https://github.com/cheat/cheat), `cheat.sh`[#](https://github.com/chubin/cheat.sh), `jq`,

Install:  `SpaceVim`[#](https://github.com/SpaceVim/SpaceVim), `NeoVim`[#](https://neovim.io/), `tig`, `mycli`[#](https://www.mycli.net/)[#](https://github.com/dbcli/mycli), `cloc`[#](http://cloc.sourceforge.net/)[#](https://github.com/AlDanial/cloc)

2020-04-06:
Install: `system-config-lvm`, `kvmp`, `partitionmanager` (Google: linux mount lvm2 partition -> linux mount lvm2 partition same name -> linux create lvm2 (https://linuxconfig.org/linux-lvm-logical-volume-manager) -> lvm2 gui)

2020-04-13: To determiner the speed of distro: `systemctl list-unit-files --state=enabled --no-pager`: Manjaro >> Ubuntu

2020-06-01:

Install: `openssh-server` for remote access.

config: `sudo apt install ssh openssh-server`, `sudo systemctl status ssh` (Google: linux ssh server -> https://linuxize.com/post/how-to-enable-ssh-on-ubuntu-18-04/) (VSCode: https://code.visualstudio.com/docs/remote/ssh#_getting-started)

2020-10-05:
config: monitoring linux: (& `top`,  `vmstat`,  `lsof`, `tcpdump`, `netstat`, `htop`,  `iotop`, `iostat`, `goaccess`, `glances`, `iptraf`, `lftop`,)

----

### Dev

2016-02-10:
Linux Mint 17.3 Cinnamon 64-bit -> 18.1 (from Linux Mint's official website)

Boot in: EFI

    + set keyboard layout to DVORAK
    + add an user "Aaron"
(This is a VM Image made by VMWare Player 12, for running EFI in VirtualBox. A startup.nsh is prepared, and the bootx64.efi is copied to /BOOT/EFI/ too.)

Remarks: aaron, stephanxxxxxxx

----

2016-02-11:
Install: python-dev, python 3.5.1, virtualenv, virtualenvwrapper

2016-02-12:
Install: git, django, htop, nmon, syncthing, curl, tree

2016-02-15:
Install: awesome, GVim, build-essential

2016-02-18:
Install: Sublime

2016-02-22:
Install: Docker-engine 1.10 (Ref: https://docs.docker.com/engine/installation/linux/ubuntulinux/)
Install: MariaDB-server 10.1 (Ref: Google: how to install MariaDB on Linux mint 17 -> https://downloads.mariadb.org/mariadb/repositories/ ->  `/etc/apt/sources.list.d/`)

2016-04-27:
Docker-engine doesn't work, due to an `sudo apt-get update` error caused by an invalid address in `/etc/apt/sources.list.d/`, when I install MariaDB.
Fix: The address list in `/etc/apt/sources.list.d/`

2016-04-28:
Install: Docker-engine 1.10

2016-07: update 2
Upgrade: upgrade to [Linuxmint 18 "Sarah"](http://blog.linuxmint.com/?p=3068) , as it is released on 2016-06-30

2016-10-10:
Install: rcconf, VSCode
Stop: MariaDB
Upgrade: [Docker-engine 1.12.1 build 23cf638](https://docs.docker.com/engine/installation/linux/ubuntulinux/),
Install: then install [Docker Compose](https://docs.docker.com/compose/install/), install [Docker Machine](https://docs.docker.com/machine/install-machine/)

2017-02-09:
Install: zlib1g-dev, re-compile python 3.5.1 with zlib (Google: python missing zlib -> http://stackoverflow.com/questions/17899291/should-i-re-install-python-again-for-zlib-module)

2017-02-12:
Upgrade: to [Linux mint 18.1 "Sarah"](http://blog.linuxmint.com/?p=3181) , as it is released on 2016-12-16:
Install:` mintupgrade` (Google: how to upgrade Linux mint 17.3 to 18 -> https://community.linuxmint.com/tutorial/view/2316)
Install: virtualenv, virtualenvwrapper

2019-07-27:
Install: Compile Python 3.8b2 (Google: how to compile python on linux -> https://solarianprogrammer.com/2017/06/30/building-python-ubuntu-wsl-debian/)

----
Optional to install:  PyCharm, VSCode, ansible, traceroute, mtr, nmon, rcconf / chkconfig, cpanel / [vestacp](https://vestacp.com/)

Optional to stop: MariaDB (when using docker for db)

after build-essential, before system-wide update

Ref:
* https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04
* https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04
* https://www.digitalocean.com/community/tutorials/automating-initial-server-setup-with-ubuntu-18-04
*  https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-ansible-on-ubuntu-18-04-quickstart -> https://www.digitalocean.com/community/tutorials/how-to-use-ansible-to-automate-initial-server-setup-on-ubuntu-18-04
* https://www.digitalocean.com/community/tutorials/initial-server-setup-with-centos-7
* [DevOps 资讯 | 是时候升级你的命令行了 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/43776780) TLDR.sh
  * bat > cat
  * prettyping > ping
  * fzf > ctrl+r
  * htop > top
  * diff-so-fancy > diff
  * fd > find
  * tldr > man
  * ack || ag > grep
  * jq > grep et al
  * theFuck

Monitor Linux
* [Top 12 Command Line Tools to Monitor Linux - LinuxTechi](https://www.linuxtechi.com/command-line-tools-to-monitor-linux/)
* [How to Use htop to Monitor Linux System Processes - LinuxTechi](https://www.linuxtechi.com/htop-monitor-linux-system-processes/)

----

license: MIT

repository: AaronLaw/my-setting

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: AaronLaw/my-setting


text:
# Stratiteq.Microservices.WebApiClient
Contains code to more easily make authenticated requests from one Web Api to another, when the APIs require jwt tokens issued from Azure Active Directory (and role based authentication / RBAC).
Optimized for use in .NET Core 2.2 or later.

Usage:

1. Add the Nuget `Stratiteq.Microservices.WebApiClient` from nuget.org.
2. Create a client class that handles all communication with a specific Web Api (preferably one class for every Web Api you need to call). E.g. if ServiceA calls ServiceB, create a class in ServiceA called ServiceBClient. Inherit from the base class `WebApiClientBase` that is accessible through the Nuget package. The following example shows one system making a call to another:

```
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Stratiteq.Microservices.WebApiClient;

namespace ServiceA
{
    public class ServiceBClient : WebApiClientBase
    {
        public ServiceBClient(HttpClient httpClient, AzureADConfiguration azureADConfiguration, IConfidentialClientApplication confidentialClientApplication)
            : base(httpClient, azureADConfiguration, confidentialClientApplication)
        {
        }

        public async Task<CreateServiceBResourceResponse> CreateResourceAsync(CreateServiceBResourceRequest createServiceBResourceRequest)
        {
            HttpClient.DefaultRequestHeaders.Authorization = await GetAuthHeaderValueAsync();

            var response = await HttpClient.PostAsJsonAsync("/v1/resource", createServiceBResourceRequest);

            return JsonConvert.DeserializeObject<CreateServiceBResourceResponse>(await response.Content.ReadAsStringAsync());
        }
    }
}
```
The base class `WebApiClientBase` will help you get the token you need with `GetAuthHeaderValueAsync()` in order to successfully authenticate with ServiceB.

3. In order to hook up your clients, first create a singleton instance of the `AzureADConfiguration` class and an instance of a IConfidentialClientApplication during startup (typically in Startup.cs where you configure your services), e.g:
```
var azureADConfiguration = new AzureADConfiguration
{
    TenantId = config["Security:AzureAD:TenantId"],
    ClientId = config["Security:AzureAD:ClientId"],
    CertificateSubjectName = config["Security:AzureAD:CertificateSubjectName"],
    AADAppIdentifiers =
    {
        { typeof(ServiceBClient), config["ServiceBClient:AADAppIdentifier"] }
    }
}

Services.AddSingleton<AzureADConfiguration>(azureADConfiguration);
Services.AddSingleton<IConfidentialClientApplication>(azureADConfiguration.CreateConfidentialClientApplication(config["Security:AzureAD:CertificateSubjectName"]));
```
(The configuration naming is an example only)
Note that AADAppIdentifiers is a list, this is because a given service might need to call several different Web Apis. The `WebApiClientBase` base class knows how to pick the correct identifier based on your typed client class.

4. The last step is to register your typed client class. Place this code close to (e.g. right under) the above code, e.g.:

```
Services.AddHttpClient<ServiceBClient>(c =>
{
    c.BaseAddress = new Uri(config["ServiceBClient:BaseUrl"]);
    c.DefaultRequestHeaders.Add(HeaderNames.Accept, "application/json");
});
```
Here you specify both the base address and accept header, this is to avoid having to repeat this configuration in every method in your client class. This makes it as clean and simple as in the above ServiceBClient example.

repository: stratiteq/stratiteq-microservice-utils

gha_language: C#

gha_license_id: MIT

repo_name: stratiteq/stratiteq-microservice-utils


text:
# Spotify - Add to Playlist

This is a simple macOS app that when launched, attempts to add the currently playing song in Spotify to a specified playlist. It then swiftly exits, presenting a success/failure notification. This was designed to be used as a service (w/ Automator) so you can quickly save a song, no matter what app you're in.

## Configuration

To use this, you'll need to set the keys in the configuration.plist file in the app bundle. You'll need your Spotify username, the playlist id to save songs to, and a Spotify application client ID + secret.

repository: atfinke/Spotify-Add-to-Playlist

repo_name: atfinke/Spotify-Add-to-Playlist


text:
<!--
 Copyright 2021 Crunchy Data Solutions, Inc.
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

# pgBackRest Configuration Overview

The initial pgBackRest configuration for the Postgres Clusters is designed to stand up a
minimal configuration for use by the various pgBackRest functions needed by the Postgres
cluster. These settings are meant to be the minimally required settings, with other
settings supported through the use of custom configurations.

During initial cluster creation, four pgBackRest use cases are involved.

These settings are configured in either the [global] or [stanza] sections of the
pgBackRest configuration based on their designation in the pgBackRest code.
For more information on the above, and other settings, please see
https://github.com/pgbackrest/pgbackrest/blob/master/src/config/parse.auto.c

As shown, the settings with the `cfgSectionGlobal` designation are

`log-path`: The log path provides a location for pgBackRest to store log files.

`repo-path`: Path where backups and archive are stored.
             The repository is where pgBackRest stores backups and archives WAL segments.

`repo-host`: Repository host when operating remotely via SSH.

The settings with the `cfgSectionStanza` designation are

`pg-host`: PostgreSQL host for operating remotely via SSH.

`pg-path`: The path of the PostgreSQL data directory.
		       This should be the same as the data_directory setting in postgresql.conf.

`pg-port`: The port that PostgreSQL is running on.

`pg-socket-path`: The unix socket directory that is specified when PostgreSQL is started.

For more information on these and other configuration settings, please see
`https://pgbackrest.org/configuration.html`.

# Configuration Per Function

Below, each of the four configuration sets is outlined by use case. Please note that certain
settings have acceptable defaults for the cluster's usage (such as for `repo1-type` which
defaults to `posix`), so those settings are not included.

1. Primary Database Pod

[global]
log-path
repo1-host
repo1-path

[stanza]
pg1-path
pg1-port
pg1-socket-path

2. pgBackRest Repo Pod

[global]
log-path
repo1-path

[stanza]
pg1-host
pg1-path
pg1-port
pg1-socket-path

3. pgBackRest Stanza Job Pod

[global]
log-path

4. pgBackRest Backup Job Pod

[global]
log-path

# Initial pgBackRest Configuration

In order to be used by the Postgres cluster, these default configurations are stored in
a configmap. This configmap is named with the following convention `<clustername>-pgbackrest-config`,
such that a cluster named 'mycluster' would have a configuration configmap named
`mycluster-pgbackrest-config`.

As noted above, there are three distinct default configurations, each of which is referenced
by a key value in the configmap's data section. For the primary database pod, the key is
`pgbackrest_primary.conf`. For the pgBackRest repo pod, the key is `pgbackrest_repo.conf`.
Finally, for the pgBackRest stanza job pod and the initial pgBackRest backup job pod, the
key is `pgbackrest_job.conf`.

For each pod, the relevant configuration file is mounted as a projected volume named
`pgbackrest-config-vol`. The configuration file will be found in the `/etc/pgbackrest` directory
of the relevant container and is named `pgbackrest.conf`, matching the default pgBackRest location.
For more information, please see
`https://pgbackrest.org/configuration.html#introduction`

# Custom Configuration Support

TODO(tjmoore4): Document custom configuration solution once implemented

Custom pgBackRest configurations is supported by using the `--config-include-path`
flag with the desired pgBackRest command. This should point to the directory path
where the `*.conf` file with the custom configuration is located.

This file will be added as a projected volume and must be formatted in the standard
pgBackRest INI convention. Please note that any of the configuration settings listed
above MUST BE CONFIGURED VIA THE POSTGRESCLUSTER SPEC so as to avoid errors.

For more information, please see
`https://pgbackrest.org/user-guide.html#quickstart/configure-stanza`.

repository: edenkoveshi/postgres-operator

repo_name: edenkoveshi/postgres-operator


text:
# ansiescape

ansiescape provides to use the ANSI Escape sequence with the Go easily.

## Install

```cmd
go get github.com/yasukotelin/ansiescape
```

repository: yasukotelin/ansiescape

repo_name: yasukotelin/ansiescape


text:
Welcome to Mathematically
=========================

Mathematically is just a collection of mathematical algorithms I've implemented as I work through the exercises on [Khan Academy](http://khanacademy.org).

This library is not meant at all to be used in a production environment. I'm sure, if you went looking, you'd find much better implementations of the algorithms I've written. The algorithms have been implemented just how you'd perform them by hand.

To see what functions are available, and example usage of each, look in `spec/mathematically_spec.rb`

This library is released under the MIT License

repository: jtanium/mathematically

repo_name: jtanium/mathematically


text:
# Movie Roulette 📽 (work-in-progress 👨💻👩💻)

Movie Roulette is a **work-in-progress** movie suggestion Android app which connects to themoviedb.org.
 It just passed first release state. Currently, only MVP functionality implemented.

## Android development

Movie Roulette is an app which attempts to use the latest cutting edge libraries and tools. As a summary:

 * Entirely written in [Kotlin](https://kotlinlang.org/)
 * Uses [Kotlin coroutines](https://github.com/Kotlin/kotlinx.coroutines)
 * Uses part of the [Architecture Components](https://developer.android.com/topic/libraries/architecture/): LiveData and Lifecycle-components
 * Uses [Glide v4](https://github.com/bumptech/glide)

## Build Status

[![Build Status](https://app.bitrise.io/app/9c64947803dc134c/status.svg?token=t-Upyml36NELxtWra5vOhg&branch=develop)](https://app.bitrise.io/app/9c64947803dc134c)

## Try it on Play Store

## Screenshots

## Development setup

First off, you require the latest Android Studio 3.2 (or newer) to be able to build the app.

### API keys

You need to supply API / client key for
[TMDb](https://developers.themoviedb.org/4/getting-started)

Add it to `local.properties` file like below
```
tmdb_api_key=YOUR_API_KEY
```

## Contributions

If you've found an error in this sample, please file an issue.

Patches are encouraged and may be submitted by forking this project and
submitting a pull request. Since this project is still in its very early stages,
if your change is substantial, please raise an issue first to discuss it.

## License

```
Copyright (c) 2018 Temirlan Nurdinov

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

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

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

repository: tnurdinov/MovieRoulette

branch_name: refs/heads/develop

gha_language: Kotlin

repo_name: tnurdinov/MovieRoulette


text:
# ScreamURITemplate

A robust and performant Swift 5 implementation of [RFC6570](https://tools.ietf.org/html/rfc6570) URI Template.  Full Level 4 support is provided.

[![CI](https://github.com/SwiftScream/URITemplate/actions/workflows/ci.yml/badge.svg)](https://github.com/SwiftScream/URITemplate/actions/workflows/ci.yml)
[![Codecov branch](https://img.shields.io/codecov/c/github/SwiftScream/URITemplate/master.svg)](https://codecov.io/gh/SwiftScream/URITemplate/branch/master)

[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FSwiftScream%2FURITemplate%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/SwiftScream/URITemplate)
[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FSwiftScream%2FURITemplate%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/SwiftScream/URITemplate)

[![license](https://img.shields.io/github/license/SwiftScream/URITemplate.svg)](https://raw.githubusercontent.com/SwiftScream/URITemplate/master/LICENSE) [![GitHub release](https://img.shields.io/github/release/SwiftScream/URITemplate.svg)](https://github.com/SwiftScream/URITemplate/releases/latest)

## Getting Started

### Swift Package Manager
Add `.package(url: "https://github.com/SwiftScream/URITemplate.git", from: "3.0.0")` to your Package.swift dependencies

## Usage

### Template Processing

```swift
import ScreamURITemplate

let template = try URITemplate(string:"https://api.github.com/repos/{owner}/{repository}/traffic/views")
let variables = ["owner":"SwiftScream", "repository":"URITemplate"]
let urlString = try template.process(variables)
// https://api.github.com/repos/SwiftScream/URITemplate/traffic/views
```

#### When Things Go Wrong
Both template initialization and processing can fail; throwing a `URITemplate.Error`
The error cases contain associated values specifying a string reason for the error and the index into the template string that the error occurred.

```swift
do {
    _ = try URITemplate(string: "https://api.github.com/repos/{}/{repository}")
} catch URITemplate.Error.malformedTemplate(let position, let reason) {
    // reason = "Empty Variable Name"
    // position = 29th character
}
```

### Get variable names used in a template

```swift
let template = try URITemplate(string:"https://api.github.com/repos/{owner}/{repository}/traffic/views")
let variableNames = template.variableNames
// ["owner", "repository"]
```

### Codable Support
`URITemplate` implements the `Codable` protocol, enabling easy serialization to or from JSON objects.

```swift
struct HALObject : Codable {
    let _links : [String:URITemplate]
}
```

## Tests
The library is tested against the [standard test suite](https://github.com/uri-templates/uritemplate-test), as well as some additional tests for behavior specific to this implementation. It is intended to keep test coverage as high as possible.

repository: SwiftScream/URITemplate

gha_language: Swift

repo_name: SwiftScream/URITemplate


text:
Project Title

New Project by<EMAIL_ADDRESS>

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

What things you need to install the software and how to install them
Nginx 1.+

Running the tests

Run the automated tests for this system

Built With

Dropwizard - The web framework used
Maven - Dependency Management
ROME - Used to generate RSS Feeds

Versioning

v0.1

Authors

Terentev Vsevolod

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the [LICENSE.md](https://github.com/JuliaLang/julia/blob/master/LICENSE.md) file for details


text:
Arête - A Collaborative Energy Performance Standard for Buildings
======================================================================

Principals
----------

-	The required level of energy performance to comply with the standard for the particular building being
designed would be based on the design performance of similar buildings already built using the standard.
This would be a ratchet mechanism that increased energy efficiency with time.

-	Early during the design process of the building, enough of the building requirements are made public so
that vendors and other organizations can propose alternative designs (presumably using automated systems)
so that the building owner gets to consider options that do not cost much more but save additional energy.

- Focus the requirements on inspectable and modelable portions of the building design and for uninspectable
portions fix the modeling requirements so that no energy benefit can be assumed.

- Include, or reference, content in the standard for everything needed to support the the ecosystem to achieve
use of and compliance with the standard.

- Contain options so that various jursidictions or incentive programs can adopt the standard in a way that is
consistent with their goals but keep many portions common to sustain a single ecosystem.

Requirements for Building Design Team
-------------------------------------
After the building requirements are settled but prior to any detailed design work, a file in the format of the
Schema for Design Requirements will be provided to one or more Clearinghouse Providers.

The final building design shall meet the Energy Target.

A building energy model the corresponds with the final design in either native simulation program files or in files
based on an accepted industry schema shall be provided to one or more ClearingHouse Providers. If many identical or nearly
identical buildings are based on the same design, a single building energy model shall be provided. Final energy building
models shall clearly identify the type of space for each room or group of adjacent rooms in the building model. The final
building energy model shall be complete enough that the Clearinghouse Providers can run simulations and recreate the
exact energy predicted to be used by the building. For each type of space in the building, the total energy for each utility
as well as the area, volume, and the number of occupants, and other indices of usage for the type of space shall be described
in the building energy model and in a file in the format of the Schema for Final Building Energy Model Results.

Computing the Energy Target
---------------------------
The Energy Target for a specific building is based on the population of the buildings designed under the standard in
recent years. The Energy Target shall be based on the sum of the energy usage for each type of space within the building.

Requirements for Clearinghouse Providers
----------------------------------------
The clearinghouse will accept files in the schema for design requirements for the building from the building
design team and provide them publicly for measure providers. These public models can either be anonymous or
identified.

Building energy models that describe common layouts
for the building will be accepted by the measure providers and provided publicly to other measure providers in
either native simulation files or industry schemas.

The clearinghouse will accept final building energy design models

Requirements for Measure Providers
----------------------------------
Measure providers must agree not to initiate contact with building owners or the building design team and shall
provide their results via clearinghouse providers.

Requirements for Adopters of the Standard
-----------------------------------------

Requirements for Inspectors
---------------------------

Requirements for Building Operators
-----------------------------------

Requirements for Utilities
--------------------------
Monthly energy consumption for a building will be provided to the clearinghouse each year on the anniversary
of the first day of the first billing cycle.

Schema for Design Requirements
------------------------------

Schema for Final Building Energy Model Results
---------------------------------------------

Schema for Building Inspectors
------------------------------

Option for Computing Source Energy Metric
-----------------------------------------

Option for Computing CO2 Metric
-------------------------------

repository: JasonGlazer/Arete

repo_name: JasonGlazer/Arete


text:
---
title: This page is used for style
published_on: 2015-10-19
updated_on: 2015-10-27
tags:
 - 样式
 - style
 - test
---
## List

### Unordered List

 * [Google][google]
 * [Apple][apple]
 * [Twitter][twitter]

### Ordered List

 1. one
 2. two
 3. three

### Links

This page is generated using [mdnotes][mdnotes].

### Quote

> Here’s to the crazy ones. The rebels. The troublemakers. The ones who see things differently. While some may see them as the crazy ones, we see genius. Because the people who are crazy enough to think they can change the world, are the ones who do.

### Code

Some python code

```python
def hello():
    print('Hello')

if __name__ == '__main__':
    hello()
```

Some javascript code

```js
var http = require('http');

var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("Hello World\n");
}).listen(8000);
```

### Inline code

Test `inline` code.

`close` `together`

### Image

Text above

![](http://7fva40.com1.z0.glb.clouddn.com/carlog-404-sprite.jpg)

### Some keyboard

CTRL + SPACE

### 中文

我能吞下玻璃而不伤害身体。

### This is simply a long heading to test table of content on the left

nothing here

### Admonition

!!! note "This is a note"
    Hello I'm a note.

[twitter]: https://twitter.com
[apple]: http://apple.com
[google]: http://google.com
[mdnotes]: http://github.com

repository: haishanh/notedown

repo_name: haishanh/notedown


text:
[![Build Status](https://travis-ci.org/ashwanthkumar/suuchi.svg?branch=master)](https://travis-ci.org/ashwanthkumar/suuchi)
[![codecov](https://codecov.io/gh/ashwanthkumar/suuchi/branch/master/graph/badge.svg)](https://codecov.io/gh/ashwanthkumar/suuchi)

# Suuchi - सूचि

Having inspired from tools like [Uber's Ringpop](https://ringpop.readthedocs.io/) and a strong desire to understand how distributed systems work - Suuchi was born.

Suuchi is toolkit to build distributed data systems, that uses [gRPC](http://www.grpc.io/) under the hood as the communication medium. The overall goal of this project is to build pluggable components that can be easily composed by the developer to build a data system of desired characteristics.

> This project is in beta quality and it's currently running couple of systems in production setting [@indix](https://twitter.com/indix). We welcome all kinds of feedback to help improve the library.

Read the Documentation at [http://ashwanthkumar.github.io/suuchi](http://ashwanthkumar.github.io/suuchi).

Suuchi in sanskrit means an Index<sup>[1](http://spokensanskrit.de/index.php?tinput=sUci&direction=SE&script=HK&link=yes&beginning=0)</sup>.

## Presentations
Following presentations / videos explain motivation behind Suuchi

- [Why we built a distributed system](https://speakerdeck.com/ashwanthkumar/why-we-built-a-distributed-system-dsconf-2018) at DSConf 2018.
- Video by [@brewkode](https://twitter.com/brewkode) on [Suuchi - Toolkit to build distributed systems](https://www.youtube.com/watch?v=GK0-ICFvIGw) at Fifth Elephant, 2017.
- [Suuchi - Distributed Systems Primitives](https://speakerdeck.com/ashwanthkumar/suuchi-distributed-system-primitives)
- [Suuchi - Application Layer Sharding](https://speakerdeck.com/ashwanthkumar/suuchi-application-layer-sharding)
- [Suuchi - Distributed Data Systems Toolkit](https://speakerdeck.com/ashwanthkumar/suuchi-distributed-data-systems-toolkit/)

## Notes
If you're getting `ClassNotFound` exception, please run `mvn clean compile` once to generate from the java classes from protoc files. Also, if you're using IntelliJ it helps to close the project when running the above command. It seems to auto-detect sources in `target/` at startup but not afterwards.

## Release workflow
Suuchi and it's modules follow a git commit message based release workflow. Use the script `make-release.sh` to push an empty commit to the repository which would trigger a release workflow on travis-ci. More information can be found at [docs](https://ashwanthkumar.github.io/suuchi/developer/workflow/).

## License
https://www.apache.org/licenses/LICENSE-2.0

repository: ashwanthkumar/suuchi

gha_language: Scala

repo_name: ashwanthkumar/suuchi


text:
<!-- BEGIN MUNGE: UNVERSIONED_WARNING -->

<!-- END MUNGE: UNVERSIONED_WARNING -->

# Testing guide

Updated: 5/3/2016

**Table of Contents**
<!-- BEGIN MUNGE: GENERATED_TOC -->

- [Testing guide](#testing-guide)
  - [Unit tests](#unit-tests)
    - [Run all unit tests](#run-all-unit-tests)
    - [Run some unit tests](#run-some-unit-tests)
    - [Stress running unit tests](#stress-running-unit-tests)
    - [Unit test coverage](#unit-test-coverage)
    - [Benchmark unit tests](#benchmark-unit-tests)
  - [Integration tests](#integration-tests)
    - [Install etcd dependency](#install-etcd-dependency)
    - [Run integration tests](#run-integration-tests)
  - [End-to-End tests](#end-to-end-tests)

<!-- END MUNGE: GENERATED_TOC -->

This assumes you already read the [development guide](development.md) to
install go, godeps, and configure your git client.

Before sending pull requests you should at least make sure your changes have
passed both unit and integration tests.

Kubernetes only merges pull requests when unit, integration, and e2e tests are
passing, so it is often a good idea to make sure the e2e tests work as well.

## Unit tests

* Unit tests should be fully hermetic
  - Only access resources in the test binary.
* All packages and any significant files require unit tests.
* The preferred method of testing multiple scenarios or inputs
is [table driven testing](https://github.com/golang/go/wiki/TableDrivenTests)
  - Example: [TestNamespaceAuthorization](../../test/integration/auth_test.go)
* Unit tests must pass on OS X and Windows platforms.
  - Tests using linux-specific features must be skipped or compiled out.
  - Skipped is better, compiled out is required when it won't compile.
* Concurrent unit test runs must pass.
* See [coding conventions](coding-conventions.md).

### Run all unit tests

```sh
cd kubernetes
hack/test-go.sh  # Run all unit tests.
```

### Run some unit tests

```sh
cd kubernetes

# Run all tests under pkg (requires client to be in $GOPATH/src/k8s.io)
go test ./pkg/...

# Run all tests in the pkg/api (but not subpackages)
go test ./pkg/api
```

### Stress running unit tests

Running the same tests repeatedly is one way to root out flakes.
You can do this efficiently.

```sh
cd kubernetes

# Have 2 workers run all tests 5 times each (10 total iterations).
hack/test-go.sh -p 2 -i 5
```

For more advanced ideas please see [flaky-tests.md](flaky-tests.md).

### Unit test coverage

Currently, collecting coverage is only supported for the Go unit tests.

To run all unit tests and generate an HTML coverage report, run the following:

```sh
cd kubernetes
KUBE_COVER=y hack/test-go.sh
```

At the end of the run, an the HTML report will be generated with the path printed to stdout.

To run tests and collect coverage in only one package, pass its relative path under the `kubernetes` directory as an argument, for example:

```sh
cd kubernetes
KUBE_COVER=y hack/test-go.sh pkg/kubectl
```

Multiple arguments can be passed, in which case the coverage results will be combined for all tests run.

Coverage results for the project can also be viewed on [Coveralls](https://coveralls.io/r/kubernetes/kubernetes), and are continuously updated as commits are merged. Additionally, all pull requests which spawn a Travis build will report unit test coverage results to Coveralls. Coverage reports from before the Kubernetes Github organization was created can be found [here](https://coveralls.io/r/GoogleCloudPlatform/kubernetes).

### Benchmark unit tests

To run benchmark tests, you'll typically use something like:

```sh
cd kubernetes
go test ./pkg/apiserver -benchmem -run=XXX -bench=BenchmarkWatch
```

This will do the following:

1. `-run=XXX` will turn off regular unit tests
  * Technically it will run test methods with XXX in the name.
2. `-bench=BenchmarkWatch` will run test methods with BenchmarkWatch in the name
  * See `grep -nr BenchmarkWatch .` for examples
3. `-benchmem` enables memory allocation stats

See `go help test` and `go help testflag` for additional info.

## Integration tests

* Integration tests should only access other resources on the local machine
  - Most commonly etcd or a service listening on localhost.
* All significant features require integration tests.
  - This includes kubectl commands
* The preferred method of testing multiple scenarios or inputs
is [table driven testing](https://github.com/golang/go/wiki/TableDrivenTests)
  - Example: [TestNamespaceAuthorization](../../test/integration/auth_test.go)
* Integration tests must run in parallel
  - Each test should create its own master, httpserver and config.
  - Example: [TestPodUpdateActiveDeadlineSeconds](../../test/integration/pods_test.go)
* See [coding conventions](coding-conventions.md).

### Install etcd dependency

Kubernetes integration tests require your PATH to include an [etcd](https://github.com/coreos/etcd/releases) installation.
Kubernetes includes a script to help install etcd on your machine.

```sh
# Install etcd and add to PATH

# Option a) install inside kubernetes root
cd kubernetes
hack/install-etcd.sh  # Installs in ./third_party/etcd
echo export PATH="$PATH:$(pwd)/third_party/etcd" >> ~/.profile  # Add to PATH

# Option b) install manually
cd kubernetes
grep -E "image.*etcd" cluster/saltbase/etcd/etcd.manifest  # Find version
# Install that version using yum/apt-get/etc
echo export PATH="$PATH:<LOCATION>" >> ~/.profile  # Add to PATH
```

### Run integration tests

```sh
cd kubernetes
hack/test-integration.sh  # Run all integration tests.
```

## End-to-End tests

Please refer to [End-to-End Testing in Kubernetes](e2e-tests.md).

<!-- BEGIN MUNGE: IS_VERSIONED -->
<!-- TAG IS_VERSIONED -->
<!-- END MUNGE: IS_VERSIONED -->

<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/devel/testing.md?pixel)]()
<!-- END MUNGE: GENERATED_ANALYTICS -->

repository: wmangano/kubernetes

repo_name: wmangano/kubernetes


text:
Forked from <https://github.com/svengiebel/atom-compile-less> and rewritten in ES6 with additional features.

# Atom Compile Less

LESS to CSS compiler for the Atom.io Editor.

Configurable Less to CSS on save. Optionally generates sourcemaps and creates visual notifications on success or error.

repository: svengiebel/atom-compile-less

gha_language: JavaScript

repo_name: svengiebel/atom-compile-less


text:
# ἀνα-θεματίζω

<!-- Status: S2=NeedsEdits -->
<!-- Lexica used for edits:   -->

## Word data

* Strongs: G03320

* Alternate spellings:

†

* Principle Parts:

* Part of speech:

* Instances in Scripture: 4

* All Scriptures cited: Yes

## Etymology:

[ἀνίθεμα]()),

* LXX/Hebrew glosses:

* Time Period/Ancient Authors:

* Related words:

* Antonyms for all senses

* Synonyms for all senses:

## Senses

### Sense  1.0:

#### Definition:

#### Glosses:

to devote to destruction;

#### Explanation:

declare;
invoke anathema;
to bind oneself under a curse;

#### Citations:

to devote to destruction, declare or invoke anathema: absol., [Mk [14](Act 23:14):71](Mrk 14:71); [ἐαντόν](), to bind oneself under a curse: [Ac 23:12](Act 23:12), 14 [23:21](Act 23:21) (cf. [καταναθεματίζω](), and on the occurrence of the word in [π.](), v. Deiss., LAE, 92 f.; MM, VGT, s.v.).†

repository: mandolyte/uw-obsidian

branch_name: refs/heads/main

repo_name: mandolyte/uw-obsidian


text:
* Build and deployment pipeline

  create a repeatable build and deployment process that emphasizes one-button builds and deployment to any environment in you organizatoin

* Infrastructure as code

  treat the provisioning of your services as code that can be executed and manged under source control

* Immutable servers

 once a microservice image is created, ensure that it's never changed after it has been deployed

* Phoenix servers

  ensure that servers that run microservices get torn down on a regular basis and recreated off an immutable image.


text:
## ktunnel version

Print the version number of Ktunnel

### Synopsis

All software has versions. This is Ktunnel's

```
ktunnel version [flags]
```

### Options

```
  -h, --help   help for version
```

### Options inherited from parent commands

```
  -p, --port int   The port to use to establish the tunnel (default 28688)
  -t, --tls        Connection uses tls if true, else plain TCP
  -v, --verbose    verbose mode
```

### SEE ALSO

* [ktunnel](ktunnel.md)	 - Ktunnel is a network tunneling tool for kubernetes

###### Auto generated by spf13/cobra on 28-May-2021

repository: awesomekubernetes/ktunnel

repo_name: awesomekubernetes/ktunnel


text:
---
title: Full Stack Quality Engineering Above & Beyond
author: Nadeesha Gnanaratne
linkedin: https://www.linkedin.com/in/nadeeshapra/
description : Quality Engineering, Full Stack, Agile
---

In the field of software engineering “full-stack developer” is a known term used for a software engineer who is dealing with various layers of software and performs diverse technical tasks. Designing and developing backend, front-end, build & deployment, DevOps & monitoring are few of them to mention.

This kind of concept is required for QA Engineers as well…...!

Once Upon a time we had a segregation like functional testers, performance testers, security testers & test automation specialists etc. Gone are those days, the fast moving industry trends require QA Engineers who expand their abilities and play different roles to deliver a quality product. Ultimately deal with various stacks related to quality engineering and help to release product faster with quality. In full stack quality engineering, the tester should be able to perform functional testing, performance testing, back-end(API)testing etc.
Simply full stack quality engineers should have the capability of working on all aspects of quality across all the application layers using different testing methods. They should think about different aspects of software quality such as usability, functionality, performance, security and automation strategies.

**Why full stack quality engineering?**

With the adoption of Agile & DevOps culture, a story is not complete without testing. Moreover, the full stack quality engineering focus on proactively looking for defects throughout planning, design & development stages of the software. Ultimately testing becomes a process which focuses on defect prevention rather than defect detection.
Apart from the product quality, it provides with efficiency which means there’ll be less wait time between testing cycles. Reason is, a full stack quality engineers take care of every aspect of the quality scattered across different layers of the software.

 **Full stack quality engineering concerns**

* Test design
* Systems thinking
* End user thinking
* Performance Engineering
-Service level performance
-Client side profiling
-DB performance
* CI/CD (DevOps mindset)
* Product expertise
* Exploratory testing
* Understand system architecture & design
* Unit testing & test driven development
* Code quality & coverage
* UI & Service level functional & end to end testing
* Effective communication & leadership

Full stack quality engineering comes with the diversification depend on the application to be tested. Assume the application to be tested has been developed based on the microservices architecture. In order to assure the quality, the tester needs to identify the architecture of the system, dependencies between different services, APIs etc.

**Looking out of the window**

In a recent article I have seen a quote “Testers aren’t judged by the progress of quality of the digital product, instead they are judged by the amount of bug issues they produce.”   I don’t want to argue about the above fact but if someone asks me how would you like to be judged as a tester, obviously it should be based on the quality of the digital product. Then the full stack quality engineering is the way to go. We live in the year 2019, agile methodologies have been around for quite some time, many companies have understood by now, that a product is a holistic thing. Security, functionality, service design, performance, localization etc.- these are integral parts of a product which should be considered from the beginning. This concept matters for a full stack tester. Not only from the initial product design to deployment but also after the deployment, the full stack tester has the responsibility towards the system quality.

**Anything that can go wrong will go wrong ???**

If you ask ‘who is the natural enemy of a full stack tester’? the answer would be the Murphy & his infamous law “Anything that can go wrong will go wrong”. Someone who is truly dedicated and responsible for the quality of a software product doesn’t want everything that can go wrong to actually go wrong!!! This is exactly what he/she tries to prevent. Each and every stage of the product life cycle & and each and every layer of the application as well as the system infrastructure, (simply every nook and corner of the project), the full stack tester keeps assuring the quality. You’d say, “Definitely a nosy guy…!!”  :D

**Priorities of a full stack tester**

Full stack QA Engineers should have straight priorities.

* Prevention > Finding
* Advising > Criticizing
* Draft checks > Result checks
* Early on > Later on
* Perfection > Good enough

Now it's time to explore new ventures of quality engineering by embracing the concept of full stack quality engineering. Please remember this is not about mastering only the breadth but also explore the depth.
And happy testing!! :)

repository: GeveoAu/blog

branch_name: refs/heads/gh-pages

gha_language: CSS

repo_name: GeveoAu/blog


text:
# simple-web-server
A simple web server I made for my cloud computing course.

### Usage
A docker image can be built by running the command `docker build -t web-app .` in the directory containing the Dockerfile.

The user can then run `docker run --name web-server -dP web-app` to run the container. This will
start the web server on the host machine under a port that can be found by running `docker ps -a`.

The web server can then be viewed by opening up a web browser and typing `localhost:[port]`

repository: EngineerFaunce/simple-web-server

repo_name: EngineerFaunce/simple-web-server


text:
---
layout: post
title: Boolean Research
---

According to my online research,
I found that there are six logical,
or boolean, operators.
They are:
* AND ( & ) Returns true if both of the operands
evaluate to true. Both operands are
evaluated before the And operator is applied.

* conditional AND ( && ) Same as &, but if the operand on
the left returns false, it returns false without evaluating the operand on the
right.

* OR ( | ) Returns true if at least one of the
operands evaluates to true. Both operands
are evaluated before the Or operator is applied.

* conditional OR ( || ) Same as |, but if the operand on the
left returns true, it returns true without evaluating the operand on the
right.

* exclusive OR ( ^ ) Returns true if one — and only
one — of the operands evaluates to true. Returns false
if both operands evaluate to true or if
both operands evaluate to false.

* NOT ( ! ) Returns true if the operand to the
right evaluates to false. Returns false if the operand to the right is true.

## Truth Table

The truth table shows all possible combinations of the
variables showing the relation between the values that
variables may take and the result of the operation.
![_config.yml]({{ site.baseurl }}/images/truth-table.png)

## Boolean Operators

![_config.yml]({{ site.baseurl }}/images/operatortable.png)

[Source for truth table](https://introcs.cs.princeton.edu/java/71boolean/)

[Source for Boolean Operators](https://en.m.wikipedia.org/wiki/Truth_table)

[Source for details](https://www.dummies.com/programming/java/logical-operators-in-java/)


text:
._. mutilities
--------------
Mutilities is an app for Google+ Hangout.

It provides a few nice utilities to manage muting yourself and everyone else
on the hangout.

![mutilities screenshot](http://skitch.ubermajestix.com/Google%2B_Hangouts-20130207-200935.jpg)

When you hold down the "push to mute" button, you will be muted until
you release it. You can change this button to "push to talk" by clicking
on the gear button. You can also press the "m" key instead of clicking
this button.

Sometimes on a hangout its useful to mute everyone else, and that is
what the "mute everyone" button does. This is helpful in reducing noise
or feedback from an unknown participant while you are talking.

repository: ubermajestix/mutilities

repo_name: ubermajestix/mutilities


text:
# node-libs-react-native

This package provides React Native compatible implementations of Node core modules like `stream` and `http`. This is a fork of [node-libs-browser][] with a few packages swapped to be compatible in React Native.

[node-libs-browser]: https://www.npmjs.com/package/node-libs-browser

## Installation

```
npm install --save node-libs-react-native
```

## Usage

This package exports a mapping of absolute paths to each module implementation, keyed by module name. Modules without React Native compatible implementations are `null`.

These modules can be used with React Native Packager's `metro.config.js` or Webpack's `resolve.alias`.

### Usage with React Native Packager

Add a `metro.config.js` file in the root directory of your React Native project and set `resolver.extraNodeModules`:

```js
// metro.config.js
module.exports = {
  resolver: {
    extraNodeModules: require('node-libs-react-native'),
  },
};
```

For more information, see this post on [Node core modules in React Native][post].

[post]: https://gist.github.com/parshap/e3063d9bf6058041b34b26b7166fd6bd

### Globals

Node has certain globals that modules may expect, such as `Buffer` or `process`. React Native does not provide these globals. The [`node-libs-react-native/globals`][globals] module in this package will shim the global environment to add these globals. Just require (or import) this module in your app before anything else.

[globals]: ./globals.js

```js
require('node-libs-react-native/globals');
// ...
require('./app.js');
```

## Modules

The following are the module implementations provided by this package. Some modules also have a "mock" implementation provided in the `mock` directory. These are replacements with minimal functionality.

| Module | RN-compatible | Mock |
|:--------:|:----------------------:|:-------------------:|
| assert | [defunctzombie/commonjs-assert](https://github.com/defunctzombie/commonjs-assert) | --- |
| buffer | [feross/buffer](https://github.com/feross/buffer) | [buffer.js](./mock/buffer.js) |
| child_process | --- | --- |
| cluster | --- | --- |
| console | [Raynos/console-browserify](https://github.com/Raynos/console-browserify) | [console.js](./mock/console.js) |
| constants | [juliangruber/constants-browserify](https://github.com/juliangruber/constants-browserify) | --- |
| crypto | [mvayngrib/react-native-crypto](https://github.com/mvayngrib/react-native-crypto) | --- |
| dgram | --- | --- |
| dns | --- | [dns.js](./mock/dns.js) |
| domain | [bevry/domain-browser](https://github.com/bevry/domain-browser) | --- |
| events | [Gozala/events](https://github.com/Gozala/events) | --- |
| fs | --- | --- |
| http | [jhiesey/stream-http](https://github.com/jhiesey/stream-http) | --- |
| https | [substack/https-browserify](https://github.com/substack/https-browserify) | --- |
| module | --- | --- |
| net | --- | [net.js](./mock/net.js) |
| os | [CoderPuppy/os-browserify](https://github.com/CoderPuppy/os-browserify) | --- |
| path | [substack/path-browserify](https://github.com/substack/path-browserify) | --- |
| process | [shtylman/node-process](https://github.com/shtylman/node-process) | [process.js](./mock/process.js) |
| punycode | [bestiejs/punycode.js](https://github.com/bestiejs/punycode.js) | --- |
| querystring | [mike-spainhower/querystring](https://github.com/mike-spainhower/querystring) | --- |
| readline | --- | --- |
| repl | --- | --- |
| stream | [nodejs/readable-stream](https://github.com/nodejs/readable-stream) | --- |
| string_decoder | [rvagg/string_decoder](https://github.com/rvagg/string_decoder) | --- |
| sys | [defunctzombie/node-util](https://github.com/defunctzombie/node-util) | --- |
| timers | [jryans/timers-browserify](https://github.com/jryans/timers-browserify) | --- |
| tls | --- | [tls.js](./mock/tls.js) |
| tty | [substack/tty-browserify](https://github.com/substack/tty-browserify) | [tty.js](./mock/tty.js) |
| url | [defunctzombie/node-url](https://github.com/defunctzombie/node-url) | --- |
| util | [defunctzombie/node-util](https://github.com/defunctzombie/node-util) | --- |
| vm | --- | [vm.js](./mock/vm.js) |
| zlib | [devongovett/browserify-zlib](https://github.com/devongovett/browserify-zlib) | --- |

## Other React Native Modules

These are other React Native packages that implement Node core related
modules. They are not included in node-libs-react-native, but you may
find them useful separately.

### `dgram`

[react-native-udp][] implements Node's `dgram` API, but is not included
here due to its native implementation and need to use `react-native
link`.

[react-native-udp]: https://github.com/tradle/react-native-udp

### `fs`

[react-native-fs][] implement's Node's `fs` API, but is not included
here due to its native implementation and need to use `react-native
link`.

[react-native-fs]: https://github.com/itinance/react-native-fs

[react-native-level-fs][] provides an alternative pure JavaScript
implementation, using AsyncStorage as the underlying storage mechanism.

[react-native-level-fs]: https://github.com/tradle/react-native-level-fs

### `net`

[react-native-tcp][] implement's Node's `net` API, but is not included
here due to its native implementation and need to use `react-native
link`.

[react-native-tcp]: https://github.com/PeelTechnologies/react-native-tcp

## Credit

This is a fork of [node-libs-browser][] with minor modifications and packages swapped out for React Native implementations. Thanks to those package authors for doing the hard work.

## License

MIT

repository: parshap/node-libs-react-native

repo_name: parshap/node-libs-react-native


text:
# Sudan-bot
**Due to the [discontinuation of Discord.py](https://gist.github.com/Rapptz/4a2f62751b9600a31a0d3c78100287f1), this is being rewriten in a [new repository](https://github.com/emc-sudan/Sudan-Bot).**
## Installation
1. Clone this repo.
2. In `bot/` rename `.env.sample` to `.env`.
3. Again in `bot/` edit `.env`.
4. Install requirements from `requirements.txt`. This can be done by passing the `-r` flag to pip followed by the requirements file.
5. Run `setup.py`
6. Run the commands in `Setup_DB.sql` to create the tables in the database.
7. `cd bot` and run `core.py`. If you are on linux and want to use the auto updating cog you will have to run it with `start.sh`.
8. `cd slash` and run `gunicorn app:app`

Or push this button
[![Deploy to Heroku](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)

For more info look at the [Wiki](https://github.com/TheSuperGamer20578/Sudan-bot/wiki)

gha_language: Python


text:
# Change Log

## [v1.0.1](https://github.com/Robdel12/ember-dropkick/tree/v1.0.1) (2016-09-03)
[Full Changelog](https://github.com/Robdel12/ember-dropkick/compare/v1.0.0...v1.0.1)

**Merged pull requests:**

- Update addon [\#5](https://github.com/Robdel12/ember-dropkick/pull/5) ([Robdel12](https://github.com/Robdel12))
- Add GH-pages addon [\#4](https://github.com/Robdel12/ember-dropkick/pull/4) ([Robdel12](https://github.com/Robdel12))

## [v1.0.0](https://github.com/Robdel12/ember-dropkick/tree/v1.0.0) (2015-10-20)
[Full Changelog](https://github.com/Robdel12/ember-dropkick/compare/v0.1.1...v1.0.0)

**Merged pull requests:**

- Ember 2.0 compatibility [\#3](https://github.com/Robdel12/ember-dropkick/pull/3) ([Robdel12](https://github.com/Robdel12))
- Add Ember Try [\#2](https://github.com/Robdel12/ember-dropkick/pull/2) ([Robdel12](https://github.com/Robdel12))

## [v0.1.1](https://github.com/Robdel12/ember-dropkick/tree/v0.1.1) (2015-04-01)
[Full Changelog](https://github.com/Robdel12/ember-dropkick/compare/v0.1.0...v0.1.1)

## [v0.1.0](https://github.com/Robdel12/ember-dropkick/tree/v0.1.0) (2015-02-20)
[Full Changelog](https://github.com/Robdel12/ember-dropkick/compare/v0.0.6...v0.1.0)

## [v0.0.6](https://github.com/Robdel12/ember-dropkick/tree/v0.0.6) (2015-02-17)
[Full Changelog](https://github.com/Robdel12/ember-dropkick/compare/v0.0.4...v0.0.6)

**Fixed bugs:**

- TypeError: undefined is not an object on iOS [\#1](https://github.com/Robdel12/ember-dropkick/issues/1)

## [v0.0.4](https://github.com/Robdel12/ember-dropkick/tree/v0.0.4) (2015-02-01)

\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*


text:
# Change Log
All notable changes to `ncollide`, starting with the version 0.8.0 will be
documented here.

This project adheres to [Semantic Versioning](http://semver.org/).

## [0.12.0] - WIP
### Modified
    * The `ShapeHandle` is now a `Arc<Shape<P, M>>` instead of `Arc<Box<Shape<P, M>>>`
    (this removes one allocation indirection).
    * Update to nalgebra 0.12.

## [0.11.0]
    * Update to nalgebra 0.11.0.

## [0.10.0]
### Added
    * Re-export `Ray2`, `Ray3`, `RayIntersection2`, and `RayIntersection3` on
      the `query` module.
### Modified
    * Rename `.perform_removals_and_broad_phase()` -> `.perform_additions_removals_and_broad_phase()`.
    * Rename the collision world method `.add()` to `.deferred_add()`.
    * The collision world `.deferred_set_position()` now fails with a
      meaningful error when the user attempts to set the position of an object
      not actually added (including those that have been `.deferred_add()`-ed
      without a subsequent `.update()`.

## [0.9.0]
### Added
    * Added 2D and 3D testbeds (available on crates.io as `ncollide_testbed2d` and `ncollide_testbed3d`).
    * Added a method to the narrow phase to retrieve all the proximity pairs.
    * Added a method to the collision world to retrieve all the proximity pairs.
    * Added a method to the collision world to retrieve the collision object
    from its identifier.
### Modified
    * Merge the `ncollide_queries` and `ncollide_entities` crates into
      `ncollide_geometry`.
    * Rename the `geometry` module to `query`.
    * `::implicit_shape_aabb(...)` becomes `::support_map_aabb(...)`
    * `CompositeShape::aabb_at(...)` now returns an AABB by-value (instead of
      by-ref).
    * `PointQuery::distance_to_point(...)` now has a `solid` flag as well.
    * Point queries result now indicates if the point was inside of the object
      or not by returning a `PointProjection` structure instead of just the
      point.
    * Rename `CollisionGroups::can_collide_with` to `CollisionGroups::can_interact_with`.
    * Rename `NarrowPhase::handle_proximity` to `NarrowPhase::handle_interaction`.
    * Rename all `.*CollisionDetector` to `.*ContactGenerator`. Methods have
      been renamed as well (e.g. `.get_collision_algorithm` becomes
      `.get_contact_algorithm`, `.colls` becomes `.contacts`, etc.)
    * Rename `CollisionQueryType` to `GeometricQueryType`.
    * Moved the `ray` and `point` modules into the `query` module. Also, they
      are renamed `ray_internal` and `point_internal`.
### Removed
    * Removed the `CompositeShape::len()` method.

## [0.8.0]
### Added
    * Added proximity queries, including persistant proximity detector and
      algorithm dispatcher.
    * Added methods to set directly collision group membership/whitelist/blacklist.
### Modified
    * The last type parameter of the `BVTCostFn` trait (the user-defined data
      return by leaves) is now an associated type.
    * The shape handles `Arc<Box<Repr<P, M>>>` are now wrapped into a structure
      with a more explicit name: `ShapeHandle<P, M>`.
    * Renamed `Convex` to `ConvexHull`
    * Swapped the first two arguments of `CompositeShape::map_transformed_part_at`.
    * All fields of `Polyline` are now private. Added corresponding accessors.

repository: mkubala/ncollide

repo_name: mkubala/ncollide


text:
PineappleCAS

PineappleCAS is a computer algebra system for the TI-84 Plus CE calculators. It is designed as a faster, cleaner, more useful, memory-leak-free alternative to the SymbolicDerivative project.

repository: adriweb/PineappleCAS

gha_language: C

repo_name: adriweb/PineappleCAS


text:
![](images/title.png)

A simple ascii terminal integrated into bevy's ecs framework.

## What Is It

bevy_ascii_terminal is a utility to easily render colorful ascii in bevy. It was made  with "[traditional roguelikes](http://roguebasin.com/index.php/Main_Page)" in mind, but should serve effectively as a simple, no fuss UI tool if needed. The API is designed to be as simple and straightforward as possible.

## What Can It Do

 It can set a single tile or group of tiles to any ascii character that's been mapped, and can set foreground and background colors per tile.

 As far as what it can render, it currently supports a fixed size tileset and by default expects a [code page 437 layout](https://en.wikipedia.org/wiki/Code_page_437) on the textures, though this can be changed via a configuration file. There are [plenty more fonts available](https://dwarffortresswiki.org/Tileset_repository) around the internet, and [changing fonts](#changing-fonts) is as simple as setting a string.

## Dependencies

This project is fully integrated with [bevy](https://bevyengine.org/) and depends on it for rendering.

While not a direct dependency, I would *highly* recommend importing [bevy_pixel_camera](https://crates.io/crates/bevy_pixel_camera) when you use this terminal. Bevy's default camera isn't set up to properly handle scaling up very low resolution pixel art (like terminal glyphs) without noticable artifacts due to pixels being misaligned. All the examples from this crate use bevy_pixel_camera.

## Getting Started

Include [bevy_ascii_terminal](https://crates.io/crates/bevy_ascii_terminal) as a dependency in your `Cargo.toml`, then add the plugin and spawn a bundle with a camera:

```rust
fn spawn_terminal(mut commands: Commands) {
    let (w, h) = (80, 25);
    let mut term_bundle = TerminalBundle::with_size(w, h);
    term_bundle.terminal.put_string(1,1, "Hello, world!");
    commands.spawn_bundle(term_bundle);

    // 8 is the size of the default terminal font. This setting
    // will ensure the camera scales up the viewport so the
    // terminal takes up as much space as possible on the screen
    // given it's current size, while still remaining pixel-perfect
    commands.spawn_bundle(PixelCameraBundle::from_resolution(
        w as i32 * 8,
        h as i32 * 8,
    ));
}

fn main() {
    App::build()
    .add_plugins(DefaultPlugins)
    .add_plugin(TerminalPlugin)
    .add_plugin(PixelCameraPlugin)
    .insert_resource(ClearColor(Color::BLACK))
    .add_startup_system(spawn_terminal.system())
    .run()
}
```

And that's it. You can write to the terminal when you create it, or from a query:

```rust
fn write_to_terminal(mut q: Query<&mut Terminal>) {
    let term = q.single_mut().unwrap();
    term.clear();
    term.draw_border_single();
    term.put_char(1,1, '☺');
    term.put_string(2,1, "451");
}
```

You can check the [examples](examples) for more.

**Note:** For all terminal functions the y coordinate is flipped in the terminal, so `put_char(0,0,'x')` refers to the top left corner of the terminal, and `put_char(width - 1, height - 1, 'x')` refers to the bottom right corner. This was done because the terminal is meant to display readable text from left to right, top to bottom.

## Changing Fonts

The terminal comes with several fonts built in, or you could [find one online](https://dwarffortresswiki.org/Tileset_repository) or make one yourself. If you add a font you must put it in the "assets/textures" folder. To load a font you just need to modify the `TerminalFont` component attached to the terminal:

```rust
fn change_font(
    keys: Res<Input<KeyCode>>,
    mut q: Query<&mut TerminalRendererFont>,
) {
    if keys.just_pressed(KeyCode::Space) {
        for mut font in q.iter_mut() {
            font.font_name = FONT_TAFFER_10X10.name.to_string();
            font.clip_color = Color::BLACK;
        }
    }
}
```

Assuming the name you set is a valid filename from the built in fonts or your own "assets/textures" folder, the terminal will swap to the new font. Notice the `clip_color` field above - this refers to the "background" color of the texture. The shader will swap this color out for whatever background color you set for a given tile in the terminal. For the included fonts this can remain at the default black. Many fonts you'll find online use magenta as the background color.

## Other Features

There are several other components you can modify to alter how the terminal is drawn. To name a few:

`Transform`: The terminal is a normal bevy entity, you can move and transform it at will.

`TerminalTileScaling`: Alters how tiles are sized when building the mesh.

`TerminalPivot`: Determines how the terminal mesh is aligned. Defaults to (0.5,0.5) which will nicely center the terminal mesh regardless of size.

`TilePivot`: Similar to `TerminalPivot` but for tiles - this defaults to (0.0,0.0), so a tile's bottom left corner sits on the pivot.

## Feedback

This is my first real rust project - I'm open to any and all [feedback and suggestions](https://github.com/sarkahn/bevy_ascii_terminal/issues), particularly with regards to improving the api or project structure. Thanks!


text:
# Many Things as a Service
Welcome to the official repo for [Many-Things-as-a-Service](http://mtaas.www-dev-01.nydus.eu).

**MTaaS** is a community effort to bring those pesky overfunded startups offering overpriced microservices to an end.

## Microservices
  * Random
  * Left Pad
  * Right Pad
  * Loading Bar
  * [Codename Generator](http://codenamegenerator.com)
  * [BOFH Excuses](http://pages.cs.wisc.edu/~ballard/bofh/)

## Contribution
**MTaaS** strives to provide the largest amount of high-quality microservices. If you feel like one is missing, feel free to open a pull request.

repository: Vultour/many-things-as-a-service

repo_name: Vultour/many-things-as-a-service


text:
---
layout: post
title: "CheXNet: Radiologist-Level Pneumonia Detection on Chest X-Rays with Deep Learning"
date: 2017-11-25 04:21:27
categories: arXiv_CV
tags: arXiv_CV CNN Deep_Learning Detection
author: Pranav Rajpurkar, Jeremy Irvin, Kaylie Zhu, Brandon Yang, Hershel Mehta, Tony Duan, Daisy Ding, Aarti Bagul, Curtis Langlotz, Katie Shpanskaya, Matthew P. Lungren, Andrew Y. Ng
mathjax: true
---

* content
{:toc}

##### Abstract
We develop an algorithm that can detect pneumonia from chest X-rays at a level exceeding practicing radiologists. Our algorithm, CheXNet, is a 121-layer convolutional neural network trained on ChestX-ray14, currently the largest publicly available chest X-ray dataset, containing over 100,000 frontal-view X-ray images with 14 diseases. Four practicing academic radiologists annotate a test set, on which we compare the performance of CheXNet to that of radiologists. We find that CheXNet exceeds average radiologist performance on pneumonia detection on both sensitivity and specificity. We extend CheXNet to detect all 14 diseases in ChestX-ray14 and achieve state of the art results on all 14 diseases.

##### Abstract (translated by Google)
我们开发了一种算法，可以在超过放射科医师的水平上检测胸部X射线的肺炎。我们的算法CheXNet是一个121层的卷积神经网络，在ChestX-ray14上进行训练，该网络是目前最大的公开胸部X射线数据库，包含超过10万个14种疾病的正面X射线图像。四位执业的学术放射学家对一套测试集进行了注释，我们将CheXNet的性能与放射科医师的性能进行比较。我们发现，CheXNet在敏感性和特异性方面均超过普通放射科医师在肺炎检测方面的表现。我们扩展了CheXNet来检测ChestX-ray14中的所有14种疾病，并在所有14种疾病中取得了最先进的成果。

##### URL
[https://arxiv.org/abs/1711.05225](https://arxiv.org/abs/1711.05225)

##### PDF
[https://arxiv.org/pdf/1711.05225](https://arxiv.org/pdf/1711.05225)


text:
# Barrel Maintainer

[![npm version](https://badge.fury.io/js/barrel-maintainer.svg)](https://badge.fury.io/js/barrel-maintainer)

Automatically maintains [barrels](https://basarat.gitbooks.io/typescript/docs/tips/barrel.html) in real-time.

[![Automated real-time barrel maintenance](https://github.com/dsherret/barrel-maintainer/raw/master/demo.gif)](https://youtu.be/gFi7kQnD69k)

[Video Overview](https://youtu.be/gFi7kQnD69k)

## Installation

```bash
npm install -g barrel-maintainer
```

## Usage

```bash
barrel-maintainer [options] [path]
```

Options:

- `--includeRootDir` - Create a barrel in the root directory.
- Quote type (specify one)
  - Defaults to the quote type used in the first found import declaration in your project.
  - `--singleQuotes` - Use single quotes.
  - `--doubleQuotes` - Use double quotes.
- File extension for barrel (specify one)
  - Defaults to whichever file type your project has more of.
  - `--ts` - Create index.ts files.
  - `--js` - Create index.js files.
- New lines (specify one)
  - `--crlf` - Use carriage return line feed newlines (default on windows)
  - `--lf` - Use line feed newlines (default elsewhere)

## Ignoring Files

Add a `/* barrel:ignore */` statement to the file:

```ts
/* barrel:ignore */
export function log(message: string) {
    console.log(message);
}
```

## Exporting a Subset of a File's Exports

Given the following setup:

```js
// classes.js
export ClassA {}
export ClassB {}

// index.js
export * from "./classes";
```

If you want the barrel to export a subset of the exports from _classes.js_, then edit the barrel to say so:

```js
// index.js
export { ClassA } from "./classes";
```

These kind of changes won't be overwritten by the code manipulation.

## Api

```ts
import BarrelMaintainer from "barrel-maintainer";

const maintainer = new BarrelMaintainer("myProject/src/", {
    includeRootDir: false,
    fileExtension: "js", // or "ts" (extension for barrel)
    quoteType: "'", // or "\""
    newLineType: "\r\n", // or "\n"
});

await maintainer.updateDirectory("myProject/src/subdir");
const watcher = maintainer.watchDirectory("myProject/src");

// then later (if necessary)
watcher.stop();
```

## About

This project uses [ts-morph](https://github.com/dsherret/ts-morph) to navigate and manipulate source code.

## Disclaimer

This library will modify and delete source code. I am not responsible for any of its modifications or deletions!

Always use version control to verify and to be able to easily revert the changes it makes!

repository: jordiup/barrel-maintainer

repo_name: jordiup/barrel-maintainer


text:
# Getting Started

This document provides basic tutorials for the usage of MMAction.
For installation, please refer to [INSTALL.md](https://github.com/open-mmlab/mmaction/blob/master/INSTALL.md).
For data deployment, please refer to [DATASET.md](https://github.com/open-mmlab/mmaction/blob/master/DATASET.md).

## An example on UCF-101
We first give an example of testing and training action recognition models on UCF101.
### Prepare data
First of all, please follow [PREPARING_UCF101.md](https://github.com/open-mmlab/mmaction/blob/master/data_tools/ucf101/PREPARING_UCF101.md) for data preparation.

### Test a reference model
Reference models are stored in [MODEL_ZOO.md](https://github.com/open-mmlab/mmaction/blob/master/MODEL_ZOO.md).
We download a reference model spatial stream BN-Inception at `$MMACTION/modelzoo` using:
```shell
wget -c https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/ucf101/tsn_2d_rgb_bninception_seg3_f1s1_b32_g8-98160339.pth -P ./modelzoo/
```
Then, together with provided configs files, we run the following code to test with multiple GPUs:
```shell
python tools/test_recognizer.py configs/ucf101/tsn_rgb_bninception.py tsn_2d_rgb_bninception_seg3_f1s1_b32_g8-98160339.pth --gpus 8
```

### Train a model with multiple GPUs
To reproduce the model, we provide training scripts as follows:
```shell
./tools/dist_train_recognizer.sh configs/ucf101/tsn_rgb_bninception.py 8 --validate
```
- `--validate`: performs evaluation every k (default=1) epochs during the training, which help diagnose training process.

## More examples
The procedure is not limited to action recognition in UCF101.
To perform spatial-temporal detection on AVA, we can train a baseline model by running
```shell
./tools/dist_train_detector.sh configs/ava/ava_fast_rcnn_nl_r50_c4_1x_kinetics_pretrain_crop.py 8 --validate
```
and evaluate a reference model by running
```shell
wget -c wget -c https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/ava/fast_rcnn_ava2.1_nl_r50_c4_1x_f32s2_kin-e2495b48.pth -P modelzoo/
python tools/test_detector.py ava_fast_rcnn_nl_r50_c4_1x_kinetics_pretrain_crop.py modelzoo/fast_rcnn_ava2.1_nl_r50_c4_1x_f32s2_kin-e2495b48.pth --out ava_fast_rcnn_nl_r50_multiscale.pkl --gpus 8 --eval bbox
```

To perform temporal action detection on THUMOS14, we can training a baseline model by running
```shell
./tools/dist_train_localizer.sh configs/thumos14/ssn_thumos14_rgb_bn_inception.py 8
```
and evaluate a reference model by running
```shell
wget -c wget -c https://open-mmlab.s3.ap-northeast-2.amazonaws.com/mmaction/models/thumos14/ssn_thumos14_rgb_bn_inception_tag-dac9ddb0.pth -P modelzoo/
python tools/test_detector.py configs/thumos14/ssn_thumos14_rgb_bn_inception.py modelzoo/ssn_thumos14_rgb_bn_inception_tag-dac9ddb0.pth --gpus 8 --out ssn_thumos14_rgb_bn_inception.pkl --eval thumos14
```

## More Abstract Usage

## Inference with pretrained models
We provide testing scripts to evaluate a whole dataset.

### Test a dataset
```shell
python tools/test_${ARCH}.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [other task-specific arguments]
```
Arguments:
- `${ARCH}` could be
    - "recognizer" for action recognition (TSN, I3D, ...)
    - "localizer" for temporal action detection/localization (SSN)
    - "detector" for spatial-temporal action detection (a re-implmented Fast-RCNN baseline)
- `${CONFIG_FILE}` is the config file stored in `$MMACTION/configs`.
- `${CHECKPOINT_FILE}` is the checkpoint file.
    Please refer to [MODEL_ZOO.md](https://github.com/open-mmlab/mmaction/blob/master/MODEL_ZOO.md) for more details.

## Train a model
MMAction implements distributed training and non-distributed training, powered by the same engine of [mmdetection](https://github.com/open-mmlab/mmdetection).

### Train with multiple GPUs (Recommended)
Training with multiple GPUs follows the rules below:

```shell
./tools/dist_train_${ARCH}.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]
```
- ${ARCH} could be
    - "recognizer" for action recognition (TSN, I3D, ...)
    - "localizer" for temporal action detection/localization (SSN)
    - "detector" for spatial-temporal action detection (a re-implmented Fast-RCNN baseline)
- ${CONFIG_FILE} is the config file stored in `$MMACTION/configs`.
- ${GPU_NUM} is the number of GPU (default: 8). If you are using number other than 8, please adjust the learning rate in the config file linearly.


text:
# Enhancing Graph Representations Learning with Decorrelated Propagation

```
@inproceedings{deprop_kdd23,
title = {Enhancing Graph Representations Learning with Decorrelated Propagation},
author = {Liu, Hua and Han, Haoyu and Jin, Wei and Liu, Xiaorui and Liu, Hui},
booktitle = {Proceedings of the 29th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD)},
pages = {1466--1476},
year = {2023}
}
```

links
- [acm](https://dl.acm.org/doi/10.1145/3580305.3599334)

gha_language: Jupyter Notebook


text:
# asbplayer

A browser-based media player intended to assist subtitle sentence mining.

- Can sync subtitle files with HTML5 video elements as long as the Chrome [extension](https://github.com/killergerbah/asbplayer/releases/latest) is installed.
- A best-effort is made to ensure that subtitles displayed in video elements are text-selectable and can be scanned by
  popup dictionary extensions like Yomi-chan.
- Local media can be played in "condensed mode," skipping sections without subtitles.
- Supports creation of audio/screenshot Anki flashcards from both streaming video and local media through AnkiConnect.

asbplayer is hosted at [https://killergerbah.github.io/asbplayer/](https://killergerbah.github.io/asbplayer/).

## Usage
The below information can also be found in asbplayer by clicking on the question mark button in the top right.

### Loading files
- Drag and drop mkv, srt, ass, or mp3 files into the player.
- Multiple files can be dragged and dropped simultaneously e.g. mkv+srt, mp3+ass, etc.
- Multiple subtitle files can loaded simultaneously. When multiple subtitle files are loaded, they can be toggled on and off in-video using `S+1`, `S+2`, etc.

### Syncing with streaming video in another tab
- Install the Chrome [extension](https://github.com/killergerbah/asbplayer/releases/latest).
- Drag-and-drop a subtitle file into the video element you want to sync.
- Or, load a subtitle file into asbplayer and use the camera button in the bottom right.
- It is recommended to use an extension keyboard shortcut (`Ctrl+Shift+X` by default) to mine subtitles since that will include audio/screenshots.

### Anki
- Synchronous workflow:
    - For synced streaming video, open the Anki dialog during playback by using `Ctrl+Shift+X`.
    - For local file playback, open the Anki dialog during playback by using `Ctrl+Shift+Q`.
- Asynchronous workflow:
    - For synced streaming video, copy the current subtitle by using `Ctrl+Shift+Z`.
    - For local file playback, copy the current subtitle by using `Ctrl+Shift+A`.
    - Use the star button in the copy history of asbplayer to open the Anki dialog.
- For synced streaming video, an audio/image will only be available if an extension keyboard shortcut was used (`Ctrl+Shift+X` or `Ctrl+Shift+Z` by default).
- Configure Anki settings with the settings button in the top right. See this [video](https://youtu.be/Mv7fEVb6PHo?t=44) for how to configure AnkiConnect so that asbplayer can connect to Anki.

### Changing subtitle offset
- Use `Ctrl+Left/Right` to cause the previous/next subtitle to appear at the current timestamp.
- Use `Ctrl+Shift+Left/Right` to adjust timing further by 100 ms increments.
- Or, click on the subtitle offset input field in the controls, type a number, and hit `Enter`.

### Condensed playback of local media files
- Load an audio/video file with a subtitle file.
- Use the speed gauge button in the bottom right.

### Keyboard shortcuts
|Keys        | Action              |
|------------|---------------------|
|Ctrl+Shift+A|Copy current subtitle|
|Ctrl+Shift+Q|Copy current subtitle and open Anki export dialog|
|Ctrl+Shift+Z|Copy current subtitle (streaming video in another tab)|
|Ctrl+Shift+X|Copy current subtitle and open Anki export dialog (streaming video in another tab)|
|Ctrl+Shift+F|Select video element to mine with no subtitle file (streaming video in another tab)|
|Space|Play/pause|
|S|Toggle subtitles|
|S+1, S+2...|Toggle subtitle track 1, 2... in video|
|D+1, D+2...|Toggle subtitle track 1, 2... in asbplayer|
|Left/Right|Seek to previous/next subtitle|
|Ctrl+Left/Right or Shift+Left/Right|Adjust offset to previous/next subtitle
|Ctrl+Shift+Left/Right|Adjust offset by +/- 100ms|

### Common issues
- asbplayer isn't detecting streaming video.
    - Try refreshing both the asbplayer tab and the video in the other tab.
    - Make sure that in the extension details, the extension has access to all sites.
      A lot of video players are loaded inside of iframes, so it's difficult to
      list every single URL that the extension might need access to.
- The extension keyboard shortcuts aren't working.
    - Try uninstalling and reinstalling the extension and restarting Chrome.
    - Make sure the extension isn't installed twice.
    - Verify the keyboard shortcut is bound as in this [video](https://youtu.be/wYWbgovfNlI).
- asbplayer can't connect to Anki. It shows an error message e.g. 'Failed to fetch.'
    - If you're using Brave, make sure asbplayer isn't being blocked by Shield.
    - Make sure that asbplayer is allowed by AnkiConnect, as in this [video](https://youtu.be/Mv7fEVb6PHo?t=44).
    - Check that your browser or an ad blocker isn't blocking the request. A good place to start is by opening your browser's developer console and looking for errors.
- asbplayer isn't including audio/screenshot in flashcards.
    - If you're mining streaming video make sure you use an extension keyboard shortcut (`Ctrl+Shift+X` by default).
### Demos

- [Sentence mining streaming video with asbplayer (synchronous workflow)](https://www.youtube.com/watch?v=W9Lf3C7sRzc)
- [Sentence mining streaming video with asbplayer (asynchronous workflow)](https://www.youtube.com/watch?v=kJXVVixD8H8)
- [Sentence mining streaming video with asbplayer (no subtitle file)](https://www.youtube.com/watch?v=sgrJF99WX-Q)
- [Sentence mining video files with asbplayer (synchronous workflow)](https://www.youtube.com/watch?v=J3E82spYqIk)
- [Sentence mining video files with asbplayer (asynchronous workflow)](https://www.youtube.com/watch?v=HsrrpnfM4pI)

### Browser compatibility

- The asbplayer application and extension have only been tested on Chrome 91 and later and likely work on other Chromium-based browsers.
- Local video file playback is supported only for codecs supported by the browser. The [animebook](https://github.com/animebook/animebook.github.io#video-format-support) readme has a detailed explanation of this and links
  to browsers that have good compatibility. Personally, I use Microsoft Edge and paid one dollar for HEVC support.
- Audio track selection for `mkv` files is available if experimental web platform features are enabled from [chrome://flags](chrome://flags).

## Building and running
```
# Install yarn
npm install --global yarn

# Install dependencies
yarn

# Starts the development server
yarn workspace @project/client run start

# Build the extension to extension/dist
yarn workspace @project/extension buildDev
```

repository: AsuraAce/asbplayer

repo_name: AsuraAce/asbplayer


text:
Welcome to Sbire project
========================

Introduction
------------

Sbire is a set of scripts whose aim is to help deploy, modify and maintain remote NRPE scripts.

Sbire at a glance
-----------------

(History : Sbire-server has been installed and setup on a Linux machine called `master`. Nrpe and Sbire-client has been installed on several Linux and Windows servers, called `Venus`, `Mars`, `Saturn`, `Neptun` and so on...)

    # This command will "connect" to all the known remote servers

    user@master:~$ connect all
    VENUS    sbire.pl Version 0.9.26   (linux, RSA:pub=)
    MARS     sbire.pl Version 0.9.26   (linux, RSA:pub=)
    SATURN   sbire.pl Version 0.9.26   (Win32, RSA:pub=)
    ...

    # This will ask for the version of a NRPE check

    user@master:~$ c info -n my_nagios_plugin.pl --csv
    VENUS    my_nagios_plugin.pl    70426 bytes     Version 1.2    Signature : dbb3e5d3ca5c21788f9bb1e47e409fcc
    MARS     my_nagios_plugin.pl    72340 bytes     Version 1.3    Signature : 0cc45e8ec072b0187c5b7dad0761d3d9
    SATURN   my_nagios_plugin.pl    70426 bytes     Version 1.2    Signature : dbb3e5d3ca5c21788f9bb1e47e409fcc

    # Ok, the plugin seems more recent on MARS, lets take it locally...

    user@master:~$ connect MARS
    MARS     sbire.pl Version 0.9.26   (linux, RSA:pub=)
    user@master:~$ c download -n my_nagios_plugin.pl > /tmp/my_nagios_plugin.pl

    # ... then push it to the other servers.

    user@master:~$ connect all
    (...)
    user@master:~$ c upload --csv -n my_nagios_plugin.pl -f /tmp/my_nagios_plugin.pl
    VENUS   OK. 72340 bytes uploaded.
    MARS    Skipped. Files are identical
    SATURN  OK. 72340 bytes uploaded.
    (...)

    # By the way, would you be able to run a command on several server at once ?

    user@master:~$ r ls -l
    VENUS  total 8
    VENUS  -rwxrwsr-x 2 nagios nagios 72340 May 19 10:30 my_nagios_plugin.pl
    VENUS  -rwxrwsr-x 2 nagios nagios 12668 May 12 11:02 check_fs.pl
    VENUS  -rwxrwsr-x 2 nagios nagios 14611 May 11 11:35 check_disk.pl
    VENUS  -rwxrwsr-x 2 nagios nagios 24587 May 15 16:48 sbire.pl
    MARS   total 8
    MARS   -rwxrwsr-x 2 nagios nagios 72340 May 19 10:20 my_nagios_plugin.pl
    MARS   -rwxrwsr-x 2 nagios nagios 12668 May 19 10:20 check_fs.pl
    MARS   -rwxrwsr-x 2 nagios nagios 14655 May 19 10:22 check_disk.pl
    MARS   -rwxrwsr-x 2 nagios nagios 24587 May 16 10:22 sbire.pl
    (...)

    # Or launch an NRPE script for testing ?

    user@master:~$ r nrpe -a check_disk -- -n /tmp
    -----------------------
    | VENUS (<IP_ADDRESS>) |
    -----------------------
    OK | /tmp=62%,80,90

    ----------------------
    | MARS (<IP_ADDRESS>) |
    ----------------------
    OK | /tmp=35%,80,90

    (...)

    # Or even modify your NRPE configuration file ...

    user@master:~$ c config -n /etc/nagios/nrpe.cfg -- 'command[new_check] /usr/bin/perl my_new_check.pl \$ARG1\$'
    -----------------------
    | VENUS (<IP_ADDRESS>) |
    -----------------------
    OK (Added '/usr/bin/perl my_new_check.pl $ARG1$')

    ----------------------
    | MARS (<IP_ADDRESS>) |
    ----------------------
    OK (Added '/usr/bin/perl my_new_check.pl $ARG1$')

    (...)

    # ... upload the check script ...

    user@master:~$ c upload -n my_new_check.pl -f ./DEV/new_script/my_new_check.pl
    (...)

    # ... And finally restart the NRPE service ?

    user@master:~$ r sudo /etc/init.d/nagios-nrpe-service restart
    (...)

    # Did you notice you just deployed a brand new check on several servers with only 3 command lines ?

Install
-------

* Server side :

NRPE plugin must be present on server-side. To install check_nrpe plugin, there is an install script that you can launch with :

    (TODO : sbire domain is not more valid)

To install sbire_master (which is the server-side of sbire), just type

    curl -sSL (TODO : sbire domain is not more valid) | sudo bash

* Client side *(Where you will type your commands)* :

**TODO : Find a Linux expert who could tell me if there's a better place for this**

Extract this repository to /opt/adm/sbire

	mkdir -p /opt/adm
    git clone https://github.com/Orabig/Sbire.git sbire

Add the following into your `.bashrc` file

    if [ -f /opt/adm/sbire/etc/.bash_aliases ]; then
            source /opt/adm/sbire/etc/.bash_aliases
    fi

Presentation
------------

Atm, there are 3 scripts :

* *sbire.pl*

  It's the main script, which must be placed on remote NRPE servers (usually inside the folder
  containing the plugins).

* *sbire_master.pl*

  It's the command script, which is supposed to be run on a command line. It's controls `sbire.pl`
  remotely, whith the help of a standard `check_nrpe` call.

* *sbire_rsa_keygen.pl*

  It's an utility which generates a couple of private/public keys, which can be used when RSA security-based
  transfert protocol are activated between `sbire.pl` and `sbire_master.pl`.

Usage
-----

You should create /opt/adm/sbire/etc/server_list.txt (there's a sample file) and add you servers IP adresses and aliases.

To check if configuration is correct, just type :

    $ connect all

It should return :

    $ connect all
	ALIAS1     sbire.pl Version 0.9.29  (linux, RSA:pub=/opt/nagios/etc/sbire_rsa.pub)
	ALIAS2     sbire.pl Version 0.9.29  (linux, RSA:pub=/opt/nagios/etc/sbire_rsa.pub)
	...

To run sbire commands on a specific server, type

    $ connect ALIAS1
	ALIAS1     sbire.pl Version 0.9.29  (linux, RSA:pub=/opt/nagios/etc/sbire_rsa.pub)
	$ r pwd
	ALIAS1     /usr/lib/nagios/plugins

You may also connect to serveral server at once with

    $ connect ALIAS1,ALIAS3,(...)

Or build a server list in a file 'aliaslist', and use

    $ connect @aliaslist

* The following aliases are available :

Alias              | Description
------------------ | ------------------------------
s  | Run sbire on every connected servers
s -c <command> ... | Run a sbire command among upload, download, run, info, config, nrpe
c <command> ... | Alias to `s -c <command> ...`
r <cmdline> -- ... | Alias to `s -c run -n <cmdline> -- ...` : will launch the given cmdline on servers

* Some common arguments may be used

Argument         |  Description
---------------- | --------------
--csv | Output the result in CSV like (no server info blocks and each line is prefixed by the server alias)
--split <file> | Each unique output is saved in a separate `file.1.out`, `file.2.out`... file, and the aliases are stored in `file.1.lst`....
--local (with `info` command) | run sbire locally to get the version info about a local file
--local (with `run` command) | run a command line locally **for each connected server**. Useful with the following macros : `__NAME__` and `__TARGET__` (the alias name and IP adress resp.)

Examples :

    $ r --local echo __NAME__ IP is __TARGET__
	$ c download -n myplugin -f myplugin.__NAME__
	$ c download -n myplugin --split myplugin
    $ r --local ping __TARGET__ -c 1

Commands
--------

To transfert or update a NRPE plugin, write :

> c upload -n <remote> -f <local>

Where : <remote> is the name of the NRPE script (in the remote folder)
        <local> is the filename of the script to transfert

This will do the following :

1. If <remote> and <local> are identical, nothing is done (an MD5 comparison is performed)
2. <local> is sent to the NRPE server in a temporary folder (SESSION_FOLDER)
3. If a <remote> file already exist, then it's archived
4. The new <remote> file is written/replaced.

repository: Orabig/Sbire

gha_language: Perl

repo_name: Orabig/Sbire