text:
---
aliases:
- /2012/05/07/book-chat-with-richard-wolin-author-of-the-wind-from-the-east
- /2012/04/25/book-chat-with-richard-wolin
title: Book Chat with Richard Wolin, author of The Wind from the East
date: 2012-05-07
media-type:
- audio
- video
tags:
- 1960s
- French theory
- Maoism
- The Cultural Revolution
speakers:
- Richard Wolin
---

_A discussion with [Richard Wolin](/speakers/richard-wolin/), distinguished Professor of History at the City University of New York Graduate Center, on his recent book The Wind from the East: French Intellectuals, the Cultural Revolution, and the Legacy of the 1960s, held on May 7, 2012, at New York University._

## Video Recording

{{< vimeo 41818483 >}}


text:
---
title: "COPT"
category: solver
layout: single-solver
tags: [Linear programming solver, Quadratic programming solver, Second-order cone programming solver, Semidefinite programming solver, Mixed-integer linear programming solver, Mixed-integer quadratic programming solver,Mixed-integer second-order cone programming solver, Mixed-integer conic programming solver]
excerpt: "Solver for mixed-integer conic programs"
available: "https://www.shanshu.ai/copt"
sidebar:
  nav: "solvers"
---

The solver is interfaced via [COPT-MATLAB](https://github.com/leavesgrp/COPT-MATLAB/releases) developed by the Research Institute for Interdisciplinary Sciences at Shanghai University of Finance and Economics.

Note that you have to install both the solver, and the MATLAB interface to the solver.

license: MIT

branch_name: refs/heads/master

extension: md

gha_language: HTML

gha_license_id: MIT

license_type: permissive


text:
+++
title = "Provider"
date = 2020-04-20T23:34:03-04:00
weight = 10
chapter = false
pre = ""
+++

## Databricks Provider

The Databricks provider is what is used to interact with the Databricks resources. This needs to be configured so that
terraform can provision resources in your Databricks workspace on your behalf.

## Example Usages

{{< tabs groupId="providerConfigs" >}}
 {{% tab name="Token" %}}
``` hcl
provider "databricks" {
  host  = "http://databricks.domain.com"
  token = "dapitokenhere"
}

resource "databricks_scim_user" "my-user" {
  user_name     =<EMAIL_ADDRESS>  display_name  = "Test User"
}
```
 {{% /tab %}}
 {{% tab name="Basic Auth" %}}
``` hcl
provider "databricks" {
  host          = "http://databricks.domain.com"
  basic_auth {
    username = var.user
    password = var.password
  }
}

resource "databricks_scim_user" "my-user" {
  user_name     =<EMAIL_ADDRESS>  display_name  = "Test User"
}
```
{{% /tab %}}
 {{% tab name="Profile" %}}
``` hcl
provider "databricks" {
  config_file = "~/.databrickscfg"
  profile     = "DEFAULT"
}

resource "databricks_scim_user" "my-user" {
  user_name     =<EMAIL_ADDRESS>  display_name  = "Test User"
}
```
 {{% /tab %}}
 {{% tab name="Azure SP Auth" %}}
``` hcl
provider "azurerm" {
  client_id         = var.client_id
  client_secret     = var.client_secret
  tenant_id         = var.tenant_id
  subscription_id   = var.subscription_id
}

resource "azurerm_databricks_workspace" "demo_test_workspace" {
  location                      = "centralus"
  name                          = "my-workspace-name"
  resource_group_name           = var.resource_group
  managed_resource_group_name   = var.managed_resource_group_name
  sku                           = "premium"
}

provider "databricks" {
  azure_auth = {
    managed_resource_group     = azurerm_databricks_workspace.demo_test_workspace.managed_resource_group_name
    azure_region               = azurerm_databricks_workspace.demo_test_workspace.location
    workspace_name             = azurerm_databricks_workspace.demo_test_workspace.name
    resource_group             = azurerm_databricks_workspace.demo_test_workspace.resource_group_name
    client_id                  = var.client_id
    client_secret              = var.client_secret
    tenant_id                  = var.tenant_id
    subscription_id            = var.subscription_id
    pat_token_duration_seconds = 3600
  }
}

resource "databricks_scim_user" "my-user" {
  user_name     =<EMAIL_ADDRESS>  display_name  = "Test User"
}
```
{{% /tab %}}
{{< /tabs >}}

{{% notice warning %}}
Please be aware that hard coding credentials is not something that is recommended.
It may be best if you store the credentials environment variables or use tfvars file.
{{% /notice %}}

## Authentication

There are currently two supported methods to authenticate into the Databricks platform to create resources.

* **API Token**
* **Azure Service Principal Authentication**

{{% notice note %}}
**Azure Service Principal Authentication** will only work on Azure Databricks where as the API Token
authentication will work on both **Azure** and **AWS**
{{% /notice %}}

### API Token

Databricks hostname for the workspace and api token can be provided here. This configuration is very similar to the
Databricks CLI

``` hcl
provider "databricks" {
  host = "http://databricks.domain.com"
  token = "dapitokenhere"
}
```
{{% notice warning %}}
Please be aware that hard coding credentials is not something that is recommended.
It may be best if you store the credentials environment variables or use tfvars file.
{{% /notice %}}

### Azure Service Principal Auth

``` hcl
provider "databricks" {
  azure_auth = {
    managed_resource_group = "${azurerm_databricks_workspace.sri_test_workspace.managed_resource_group_name}"
    azure_region = "${azurerm_databricks_workspace.sri_test_workspace.location}"
    workspace_name = "${azurerm_databricks_workspace.sri_test_workspace.name}"
    resource_group = "${azurerm_databricks_workspace.sri_test_workspace.resource_group_name}"
    client_id = "${var.client_id}"
    client_secret = "${var.client_secret}"
    tenant_id = "${var.tenant_id}"
    subscription_id = var.subscription_id
    pat_token_duration_seconds = 3600
  }
}
```

### Environment variables

The following variables can be passed via environment variables:

* `host` → `DATABRICKS_HOST`
* `token` → `DATABRICKS_TOKEN`
* `basic_auth.username` → `DATABRICKS_USERNAME`
* `basic_auth.password` → `DATABRICKS_PASSWORD`
* `config_file` → `DATABRICKS_CONFIG_FILE`
* `managed_resource_group` → `DATABRICKS_AZURE_MANAGED_RESOURCE_GROUP`
* `azure_region` → `AZURE_REGION`
* `workspace_name` → `DATABRICKS_AZURE_WORKSPACE_NAME`
* `resource_group` → `DATABRICKS_AZURE_RESOURCE_GROUP`
* `subscription_id` → `DATABRICKS_AZURE_SUBSCRIPTION_ID` or `ARM_SUBSCRIPTION_ID`
* `client_secret` → `DATABRICKS_AZURE_CLIENT_SECRET` or `ARM_CLIENT_SECRET`
* `client_id` → `DATABRICKS_AZURE_CLIENT_ID` or `ARM_CLIENT_ID`
* `tenant_id` → `DATABRICKS_AZURE_TENANT_ID` or `ARM_TENANT_ID`

For example you can have the following provider definition:

``` hcl
provider "databricks" {}
```

Then run the following code and the following environment variables will be injected into the provider.

``` bash
$ export HOST="http://databricks.domain.com"
$ export TOKEN="dapitokenhere"
$ terraform plan
```

## Provider Argument Reference

The following arguments are supported by the db provider block:

#### `host`
> This is the host of the Databricks workspace. This is will be a url that you use to login to your workspace.
Alternatively you can provide this value as an environment variable `DATABRICKS_HOST`.

#### `token`:
> This is the api token to authenticate into the workspace. Alternatively you can provide this value as an
environment variable `DATABRICKS_TOKEN`.

#### `basic_auth`:
> #### **Usage**
>```hcl
>basic_auth = {
>    username = "user"
>    password = "mypass-123"
>}
>```
> {{%chevron default=`This is the authentication required to authenticate to the Databricks via basic auth through a user
 that has access to the workspace. This is optional as you can use the api token based auth.
The basic_auth block contains the following arguments:` display="true" %}}

* `username` - This is the username of the user that can log into the workspace.
Alternatively you can provide this value as an environment variable `DATABRICKS_USERNAME`.

* `password` - This is the password of the user that can log into the workspace.
Alternatively you can provide this value as an environment variable `DATABRICKS_PASSWORD`.
{{% /chevron %}}

#### `config_file`:
> Location of the Databricks CLI credentials file, that is created, by `databricks configure --token` command.
>By default, it is located in ~/.databrickscfg. Check https://docs.databricks.com/dev-tools/cli/index.html#set-up-authentication
>for docs. Config file credentials will only be used when host/token/basic_auth/azure_auth are not provided.
>Alternatively you can provide this value as an environment variable `DATABRICKS_CONFIG_FILE`. This field defaults to
>`~/.databrickscfg`.

#### `profile`:
> Connection profile specified within ~/.databrickscfg. Please check
>https://docs.databricks.com/dev-tools/cli/index.html#connection-profiles for documentation. This field defaults to
>`DEFAULT`.

#### `azure_auth`:
> #### **Usage**
>```hcl
>azure_auth = {
>    azure_region = "centralus"
>    managed_resource_group = "my-databricks-managed-rg"
>    workspace_name = "test-managed-workspace"
>    resource_group = "1-test-rg"
>    client_id = var.client_id
>    client_secret = var.client_secret
>    tenant_id = var.tenant_id
>    subscription_id = var.subscription_id
>}
>```
> {{%chevron default=`This is the authentication required to authenticate to the Databricks via an azure service
principal that has access to the workspace. This is optional as you can use the api token based auth.
The azure_auth block contains the following arguments:` display="true" %}}

* `managed_resource_group` - This is the managed workgroup id when the Databricks workspace is provisioned.
Alternatively you can provide this value as an environment variable `DATABRICKS_AZURE_MANAGED_RESOURCE_GROUP`.

* `azure_region` - This is the azure region in which your workspace is deployed.
Alternatively you can provide this value as an environment variable `AZURE_REGION`.

* `workspace_name` - This is the name of your Azure Databricks Workspace.
Alternatively you can provide this value as an environment variable `DATABRICKS_AZURE_WORKSPACE_NAME`.

* `resource_group` - This is the resource group in which your Azure Databricks Workspace resides in.
Alternatively you can provide this value as an environment variable `DATABRICKS_AZURE_RESOURCE_GROUP`.

* `subscription_id` - This is the Azure Subscription id in which your Azure Databricks Workspace resides in.
Alternatively you can provide this value as an environment variable `DATABRICKS_AZURE_SUBSCRIPTION_ID` or `ARM_SUBSCRIPTION_ID`.

* `client_secret` - This is the Azure Enterprise Application (Service principal) client secret. This service
principal requires contributor access to your Azure Databricks deployment. Alternatively you can provide this
value as an environment variable `DATABRICKS_AZURE_CLIENT_SECRET` or `ARM_CLIENT_SECRET`.

* `client_id` - This is the Azure Enterprise Application (Service principal) client id. This service principal
requires contributor access to your Azure Databricks deployment. Alternatively you can provide this value as an
environment variable `DATABRICKS_AZURE_CLIENT_ID` or `ARM_CLIENT_ID`.

* `tenant_id` - This is the Azure Active Directory Tenant id in which the Enterprise Application (Service Principal)
resides in. Alternatively you can provide this value as an environment variable `DATABRICKS_AZURE_TENANT_ID` or `ARM_TENANT_ID`.

* `pat_token_duration_seconds` - The current implementation of the azure auth via sp requires the provider to create a temporary
personal access token within Databricks. The current AAD implementation does not cover all the APIs for Authentication. This
field determines the duration in which that temporary PAT token is alive for. It is measured in seconds and will default to
`3600` seconds.

Where there are multiple environment variable options, the `DATABRICKS_AZURE_*` environment variables takes precedence and the `ARM_*` environment variables provide a way to share authentication configuration when using the `databricks-terraform` provider alongside the `azurerm` provider.
{{% /chevron %}}

repository: joewiden/terraform-provider-databricks

repo_name: joewiden/terraform-provider-databricks


text:
# Implementation Requirements

general:
* MUST provide server-side validation
* MUST be easy to author (declarative)
* SHOULD support offline editing
* MAY support server push

for instances:
* MUST provide an implementation of an XForms instance
* MUST support multiple instances (XML documents)
* SHOULD support JSON
* MAY support CSV

for binds:
* MUST provide an implementation of an XForms bind
* MUST allow binding XML via XPath 2.x or up
* MUST allow for data-typing
* SHOULD allow full XSD datatpyes
* SHOULD support custom XSD types
* SHOULD allow definition of dependencies between data nodes
* MUST support alerts

for submissions:

* MUST provide an implementation of an XForms submission
* SHOULD use XML:DB API to access data
* SHOULD support submission chaining
* SHALL support http submissions
* MAY support other protocols

repository: JoernT/Fore

branch_name: refs/heads/dev

gha_language: JavaScript

repo_name: JoernT/Fore


text:
Blocking Pipes (CL)
======================

This is simple example of vector addition to demonstrate OpenCL Pipe Memory usage. OpenCL PIPE memory functionality allows user to achieve kernel-to-kernel data transfer without using global memory.

***KEY CONCEPTS:*** Dataflow, kernel to kernel pipes

***KEYWORDS:*** pipe, xcl_reqd_pipe_depth, read_pipe_block(), write_pipe_block()

## SUPPORTED PLATFORMS
Platform | Board             | Software Version
---------|-------------------|-----------------
xilinx_u200_qdma|Xilinx Alveo U200|SDx 2019.1
xilinx_u50_xdma|Xilinx Alveo U50|SDx 2019.1
xilinx_u250_qdma|Xilinx Alveo U250|SDx 2019.1
xilinx_u200_xdma|Xilinx Alveo U200|SDx 2019.1
xilinx_u280_xdma|Xilinx Alveo U280|SDx 2019.1
xilinx_u250_xdma|Xilinx Alveo U250|SDx 2019.1

##  DESIGN FILES
Application code is located in the src directory. Accelerator binary files will be compiled to the xclbin directory. The xclbin directory is required by the Makefile and its contents will be filled during compilation. A listing of all the files in this example is shown below

```
src/adder.cl
src/host.cpp
```

##  COMMAND LINE ARGUMENTS
Once the environment has been configured, the application can be executed by
```
./host <adder XCLBIN>
```

repository: abejgonzalez/firesim-aws-fpga-temp

repo_name: abejgonzalez/firesim-aws-fpga-temp


text:
# Introduction
Consider a sample of daily asset returns ``\{r_t\}_{t\in\{1,\ldots,T\}}``. All models covered in this package share the same basic structure, in that they decompose the return into a conditional mean and a mean-zero innovation. In the univariate case,
```math
r_t=\mu_t+a_t,\quad \mu_t\equiv\mathbb{E}[r_t\mid\mathcal{F}_{t-1}],\quad \sigma_t^2\equiv\mathbb{E}[a_t^2\mid\mathcal{F}_{t-1}],
```
``z_t\equiv a_t/\sigma_t`` is identically and independently distributed according to some law with mean zero and unit variance, and ``\\{\mathcal{F}_t\\}`` is the natural filtration of ``\\{r_t\\}`` (i.e., it encodes information about past returns). In the multivariate case, ``r_t\in\mathbb{R}^d``, and the general model structure is

```math
r_t=\mu_t+a_t,\quad \mu_t\equiv\mathbb{E}[r_t\mid\mathcal{F}_{t-1}],\quad \Sigma_t\equiv\mathbb{E}[a_ta_t^\mathrm{\scriptsize T}]\mid\mathcal{F}_{t-1}].
```

ARCH models specify the conditional volatility ``\sigma_t`` (or in the multivariate case, the conditional covariance matrix ``\Sigma_t``) in terms of past returns, conditional (co)variances, and potentially other variables.

This package represents an ARCH model as an instance of either [`UnivariateARCHModel`](@ref) or [`MultivariateARCHModel`](@ref). These are subtypes [`ARCHModel`](@ref) and implement the interface of `StatisticalModel` from [`StatsBase`](http://juliastats.github.io/StatsBase.jl/stable/statmodels.html).

gha_language: Julia

gha_license_id: NOASSERTION


text:
Max
===

A growing library of patches that detail how to work with Livid controllers and Cycling74's Max6 software.

An overview of contents:

CNTRL:R folder

01_CNTRLR_simple.maxpat - This patch provides a system for generating names for groups of controls, and attaching MIDI notes and ccs to those names. The result is MIDI input converted to symbols, which we can use to more intuitively control our patch. In a way, this is "MIDI learn" for Max.
02_CNTRLR_toUI.maxpat - Here we use the names we generated in "CNTRLR_simple" to create a UI and control the UI with MIDI.
03_LEDcontrols.maxpat - This patch describes how to control LEDs on the CNTRL:R, and how to configure some things with the 'settings channel'
04_SimpleStep.maxpat - We put everything we've learned together and make a simple step sequencer using the bottom two rows of 16 buttons on the CNTRL:R
05_UItoCNTRLR.maxpat - UI data in the max patch (in this case, on-off states of toggles) is polled and sent to the CNTRL:R to illuminate LEDs. The challenge here is to blink an LED with red, but reset the LED with it's previous color.

Abstractions folder

2coll - takes a stream of data and prepares it to store into a coll object, it in order received.
mtxbtn.png - image for the matrixctl object
polystep16 - used in a poly~ in the StepApp.maxpat for 16 sequences
zeroseq.json - can be read into "dict seqs" to clear all sequences
listinterp.maxpat - a utility patch used to create a lookup table of interpolations between lists.
scaleinterp.json
scales.json - json file of different scales
zeroenc.json - used for dict to reset all encoder values
zeroseq.json - used for dict to reset all sequences

BEAP folder
Various synthesizers built with the BEAP virtual analog system from stretta: https://github.com/stretta/BEAP

examples folder

scriptingName_example.maxpat - a simple example of how to use thispatcher and an objects "Scripting Name" to control and object. The patches in this collection make heavy use of this practice, so a simple example seemed worthwhile for those unfamiliar with this feature in Max.

license: Unlicense

repository: oni-shogun/Max

repo_name: oni-shogun/Max


text:
# IntersightClient::MetaAccessPrivilegeAllOf

## Properties

| Name | Type | Description | Notes |
| ---- | ---- | ----------- | ----- |
| **class_id** | **String** | The fully-qualified name of the instantiated, concrete type. This property is used as a discriminator to identify the type of the payload when marshaling and unmarshaling data. | [default to 'meta.AccessPrivilege'] |
| **object_type** | **String** | The fully-qualified name of the instantiated, concrete type. The value should be the same as the 'ClassId' property. | [default to 'meta.AccessPrivilege'] |
| **method** | **String** | The type of CRUD operation (create, read, update, delete) for which an access privilege is required. * `Update` - The 'update' operation/state. * `Create` - The 'create' operation/state. * `Read` - The 'read' operation/state. * `Delete` - The 'delete' operation/state. | [optional][readonly][default to 'Update'] |
| **privilege** | **String** | The name of the privilege which is required to invoke the specified CRUD method. | [optional][readonly] |

## Example

```ruby
require 'intersight_client'

instance = IntersightClient::MetaAccessPrivilegeAllOf.new(
  class_id: null,
  object_type: null,
  method: null,
  privilege: null
)
```

repository: xlab-si/intersight-sdk-ruby

branch_name: refs/heads/main

gha_language: Ruby

repo_name: xlab-si/intersight-sdk-ruby


text:
#

[![PyPI version](https://badge.fury.io/py/pyleecan.svg)](https://badge.fury.io/py/pyleecan)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

## Presentation
PYLEECAN objective is to provide a **user-friendly, unified, flexible simulation framework for the multiphysic design and optimization of electrical machines and drives** based on fully open-source software.

It is meant to be used by researchers, R&D engineers and teachers in electrical engineering, both on standard topologies of electrical machines and on novel topologies (e.g. during a PhD work).
An objective of PYLEECAN is that **every PhD student should start with PYLEECAN instead of implementing his own scripts (e.g. coupling Scilab or Matlab with Femm)**.

## Scope
The initial scope of the project is to simulate the electromagnetic performances of the following 2D radial flux machines:
* Interior, Surface and Surface Inset Permanent Magnet Synchronous Machines (IPMSM, SPMSM, SIPMSM) with inner or outer rotor
* Squirrel Cage Induction Machines (SCIM) and Doubly Fed Induction Machines (DFIM)
* Synchro Reluctant Machines (SyRM)
* Switched Reluctance Machines (SRM).

The project should then address 3D topologies (axial flux machines, claw-pole synchronous machines) and linear machines.
On a longer term, PYLEECAN should also include the following five physics with different model granularity (e.g. analytic, semi-analytic, finite element):
* Electrical
* Electromagnetics
* Heat Transfer
* Structural Mechanics
* Acoustics

## Origin and status of the project (06th October 2020)
EOMYS initiated in 2018 the open-source project named PYLEECAN (Python Library for Electrical Engineering Computational Analysis) under Apache license by releasing a part of [MANATEE](https://eomys.com/produits/manatee/article/logiciel-manatee?lang=en) commercial software scripts. These initial scripts included a fully **object-oriented modelling** of main radial flux electrical machines, with parameterized geometry. However, PYLEECAN is not an EOMYS-only project, the initial maintainers includes other companies and universities and all contributors are welcome.

Main Features:
* PYLEECAN is fully coupled to [FEMM](http://www.femm.info) to carry **non-linear magnetostatic** analysis including sliding band and symmetries. For now this coupling is available only on Windows.
* PYLEECAN includes an electrical model to solve the equivalent circuit of PMSM machine by using the FEMM coupling
* PYLEECAN includes a **Graphical User Interface** to define main 2D radial flux topologies parametrized geometries (PMSM, IM, SRM, SyRM) including material library.
* PYLEECAN is coupled to [Gmsh](http://gmsh.info/) **2D/3D finite element mesh generator** to run third-party multiphysic solvers.
* PYLEECAN is coupled to a **multiobjective optimization** library to carry design optimization of electrical machines.

If you are interested by a topology or a specific model, you can [open an issue](https://github.com/Eomys/pyleecan/issues) on this Github repository to talk about it. We will gladly explain how to add it yourself or we will add it to the development list for further release.

## Webinar
Three public and free webinars will be organized by [Green Forge Coop](https://www.linkedin.com/company/greenforgecoop/about/) and UNICAS University:

- Friday 16th October 15h-17h (GMT+2): How to use pyleecan (basics)? Pyleecan basics, call of FEMM, use of the GUI
- Friday 30th October 15h-17h (GMT+1): How to use pyleecan (advanced)? Optimization tools, meshing, plot commands
- Friday 6th November 15h-17h (GMT+1): How to contribute to pyleecan? Github projects, Object Oriented Programming

The webinar will be based on the tutorials. [The registration form is available here](https://us02web.zoom.us/meeting/register/tZYsc-mppz8pE9UYGaTYWe6m8117qgi44EKi)

## Documentation / Website
For now all the information on the project are available on [www.pyleecan.org](http://www.pyleecan.org). At this link, you will find the ICEM 2018 publication and the architecture documentation.

## Contact
You can contact us on Github by opening an issue (to request a feature, ask a question or report a bug) or at<EMAIL_ADDRESS>that redirect to all the maintainers.

repository: BonneelP/pyleecan

repo_name: BonneelP/pyleecan


text:
# Error in config example

> see https://aka.ms/autorest

## Settings

```yaml
# this is not nested correctly
some:
    nested:
  this_is_not_indented_correctly # Error line should be this one.
```

repository: Azure/autorest

gha_language: TypeScript

repo_name: Azure/autorest


text:
# QML Translator

Class for translations strings in C++/Qml code.

## Usage

```cpp

#include "qmltranslator.h"

...

// Qml translation manager
QmlTranslator qmlTranslator;
qmlTranslator.initFromSettings(SETTINGS);
engine.rootContext()->setContextProperty("qmlTranslator", &qmlTranslator);
```

SETTINGS - object of class QSettings

settings.ini fail example:

```ini
[Main]
language=ru_RU
```

In QML code:

```qml
qmlTranslator.setTranslation("ru_RU");
qmlTranslator.setTranslation("en_US");
qmlTranslator.setTranslation("de_DE");
qmlTranslator.setTranslation("kz_KZ");
```

## language resources

Add them to your resources with the prefix ``/translations``.

## Install

Just include it as submodule to your project or use ``qpm`` manager:

```bash
$ qpm install com.github.uralbash.qmltranslator
```

repository: Mahmuttalemdar/qmltranslator

repo_name: Mahmuttalemdar/qmltranslator


text:
### [Quassel](http://www.quassel-irc.org/)

#### Install using Git

If you are a git user, you can install the theme and keep up to date by cloning the repo:

    git clone https://github.com/dracula/quassel.git

#### Install manually

Download using the [GitHub .zip download](https://github.com/dracula/quassel/archive/master.zip) option and unzip them.

#### Activating theme

1.  Place the `Dracula.qss` file in your `~/.config/quassel-irc.org` folder
2.  Select and apply this theme via _Interface Settings_

repository: dracula/quassel

repo_name: dracula/quassel


text:
---
title: Pandoc - About pandoc
date: 2011-10-15 19:24
comments: true
layout: post

categories: [notes, external, latex]
---

 If you need to convert files from one markup format into another, pandoc is your swiss-army knife. Need to generate a man page from a markdown file? No problem. LaTeX to Docbook? Sure. HTML to MediaWiki? Yes, that too. Pandoc can read markdown and (subsets of) reStructuredText, textile, HTML, and LaTeX, and it can write plain text, markdown, reStructuredText, HTML, LaTeX, ConTeXt, PDF, RTF, DocBook XML, OpenDocument XML, ODT, GNU Texinfo, MediaWiki markup, textile, groff man pages, Emacs org-mode, EPUB ebooks, and S5 and Slidy HTML slide shows. PDF output (via LaTeX) is also supported with the included markdown2pdf wrapper script.

---
Reposted from notes.it-jobs-und-stellen.de

extension: markdown


text:
# RecipeShare
![recipeshare_frontpage](https://user-images.githubusercontent.com/89054252/137150446-2568b9a1-1577-4175-a7ea-8c4ef70616b8.png)

Link to application - https://recipeshare-app.herokuapp.com/

# Technologies used:

Node.js, PostgreSQL, JavaScript, CSS (Bootstrap), Embedded JavaScript, Sequelize ORM, JSON Web Tokens

# Approach:
The RecipeShare project started out with an entitity relationship diagram (ERD) and a few user stories. I initially focused on user authentication functionality to allow user persistence and hashed passwords. Once authentication was completed I moved on to building out the recipe views, functionality, and used a Boostrap default theme to allow for some styling as I continued to build out the application. After minimal viable project was met I started adding additional functionality (favorites, user restrictions on edit/delete recipe, etc.) and made adjustment to styling by migrating from a table format to card based format.

ERD:

![recipeshare_erd](https://user-images.githubusercontent.com/89054252/137154588-dee3790d-13ff-4fd1-9454-48c28060f61e.png)

User Stories:
- As a User I would like the ability to view a list of recipes.
- As a User I would like the ability to view individual recipes with ingredients and instructions.
- As a User I would like the ability to create recipes.
- As a User I would like the ability to edit my recipes.
- As a User I would like the ability to delete my recipes.
- As a User I would like the ability to save recipes as favorites.
- As a User I would like the ability to easily view and access my favorites.
- As a User I would like the ability to easily view and access recipes I have created.
- As an Admin I would like to require Users to create accounts for the application.
- As an Admin I would like to require Users to login the application.
- As a User I would like the ability to change my password.
- As a User I would like the ability to edit my account.
- As a User I would like the ability to delete my account.
- As an Admin I would like the ability to delete any recipes.

# Main features:
- User profile page showing created and favorited recipes
- Somewhat dynamic step creation for recipe instructions
- Dynamic recipe interaction options based on user/recipe relationship status

User profile (contributed/favorite) sample:

![recipeshare_profile](https://user-images.githubusercontent.com/89054252/137161720-098786b3-b8fe-487f-aed3-28a6fbe44a62.png)

Code snippet of dynamic Favorite, Edit, and Delete button creation:
```js
      <% if (!isFavorite) { %>
        <form action="/recipes/<%=recipe.id%>/favorites?_method=PUT" method="POST">
        <input class="btn btn-primary" type="submit" value="Add to Favorites" />
        </form>
        <%}%>
      <% if (recipe.author === amAuthor || amAdmin === 'admin') { %>
    <a href='/recipes/<%=recipe.id%>/edit'><input class="btn btn-primary" type="button" value='Edit Recipe'/></a>
    <form action="/recipes/<%=recipe.id%>?_method=DELETE" method="POST">
      <input class="btn btn-primary" type="submit" value="Delete Recipe" />
  </form>
  <% } %>
  ```
  Code snippets of dynamic step creation of recipes (users are asked to press enter after each step when creating/editing a recipe):
  ```js
    let instruction = recipe.instructions.split('\n');
	let ingredient = recipe.ingredients.split('\n');
	res.render('recipes/show.ejs', {
		recipe,
		instruction,
		ingredient,
 ```
 ```js
 <h2>Ingredients:</h2>
<hr style="max-width:600px;">
<div>
  <ul>
  <% for (i=0; i<ingredient.length; i++) { %>
    <li style='list-style-type:none'><%= ingredient[i] %></li>
    <% } %>
    </ul>
</div>
<h2>Instructions:</h2>
<hr style="max-width:600px;">
<div>
  <% for (i=0; i<instruction.length; i++) { %>
    <p><span style="font-weight: bold">Step <%=i+1%> :</span><%= instruction[i] %></p>
    <% } %>
</div>
```

# Known issues:
- When working with a recipe that has text, but no link (missing \ or http:\\ at beginning) get a strange error in server console where a sequel statement ends with recipe.id = image field text. This does not occur when the text in image field begins with \ or http:\\ even if it is not a valid link. In this case the recipe.id = the actual integer recipe UID. All items continue to function fine in either instance.

# What's left:
- Allow users to logout of application.
- Allow admin to edit/delete users.
- Allow filtering by cuisine and recipe author.
- Add search functionality
- Add recipe rating system
- Replace password entry with asterisks on relative fields

This website may contain copyrighted material, the use of which may not have been specifically authorized by the copyright owner. The material contained in this website is distributed without profit for research and educational purposes.
This should constitute a ‘fair use’ of any such copyrighted material (referenced and provided for in section 107 of the US Copyright Law).
If you wish to use any copyrighted material from this site for purposes of your own that go beyond ‘fair use’, you must obtain expressed permission from the copyright owner.

repository: CajunTech/recipeshare

repo_name: CajunTech/recipeshare


text:
FontHelper
==========

(Work in progress).

A small utility (providing an OS X framework and an iOS library) for
obtaining system font data on OS X and iOS devices.  Will provide
methods to obtain a dictionary of font tables (i.e., for truetype
fonts).  Will cache contents of (large) table of glyphs to the
filesystem and indicate the cache filename in the returned dictionary.

Purpose: access (non-embedded) system font data on iOS for use with
non-Apple graphics libraries needing direct access to font data (e.g.,
zpb-ttf).

repository: zerth/FontHelper

repo_name: zerth/FontHelper


text:
# Spacy Youtube Material

![](images/spacy.png)

This repository contains notebooks used in the youtube series found [here](https://www.youtube.com/watch?v=WnGPv6HnBok&list=PLBmcuObd5An559HbDr_alBnwVsGq-7uTF).

Before playing with the notebooks is would be good to download the stackoverflow dataset first. This can be found [here](https://www.kaggle.com/stackoverflow/stacksample).

- Here's [the notebook](https://github.com/koaning/spacy-youtube-material/blob/master/01-intro-to-spacy.ipynb) for [the first video](https://www.youtube.com/watch?v=WnGPv6HnBok&list=PLBmcuObd5An559HbDr_alBnwVsGq-7uTF).
- Here's [the notebook](https://github.com/koaning/spacy-youtube-material/blob/master/02-match-more-languages.ipynb) for [the second video](https://www.youtube.com/watch?v=KL4-Mpgbahw&list=PLBmcuObd5An559HbDr_alBnwVsGq-7uTF).
- Here's [the notebook](https://github.com/koaning/spacy-youtube-material/blob/master/03-labelling-evaluation.ipynb) for [the third video](https://www.youtube.com/watch?v=4V0JDdohxAk).
- Here's [the notebook](https://github.com/koaning/spacy-youtube-material/blob/master/04-statistical-model.ipynb) for [the fourth video](https://www.youtube.com/watch?v=IqOJU1-_Fi0).

If you're interested in the content for spaCy 3.0 then you'll find the project on [this github repository](https://github.com/koaning/proglang-project).

repository: callebalik/spacy-youtube-material

repo_name: callebalik/spacy-youtube-material


text:
---
layout: default
---

# 1996-01-07 - Re: please stop the Mitnick stuff

## Header Data

From: John Young<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: c0ff420eadc01de6e8b95adc9aa43636c6ead3d11930754d8253c70bc4900121

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1996-01-07 05:13:03 UTC

Raw Date: Sun, 7 Jan 1996 13:13:03 +0800

## Raw message

```
{% raw  %}From: John Young<EMAIL_ADDRESS>Date: Sun, 7 Jan 1996 13:13:03 +0800
To<EMAIL_ADDRESS>Subject: Re: please stop the Mitnick stuff
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

Littman mentions toad.com twice -- that site, a character says,
suspiciously, "run by one of the founders of Sun." Used,
allegedly by the perp, to get into the drawers of, Well, you
know.

BTW, Littman says, and that Markoff agrees, that it was not
Mitnick who got into Shimomura's underware, but, more than
likely, the "Israeli." Apparently, an incident occurred after
Kevin's bust.

Agree with Tim that the Markoff/Shimomura book is needed to see
both sides.

For now, Mitnick seems to be a hapless pawn. Me too, about
stuff I only read about.

{% endraw %}
```

## Thread

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

+ Return to "[John Young <jya@pipeline.com>](/authors/john_young_jya_at_pipeline_com_)"

+ 1996-01-07 (Sun, 7 Jan 1996 13:13:03 +0800) - Re: please stop the Mitnick stuff - _John Young<EMAIL_ADDRESS>


text:
## Setup Sonarqube - Continuous Code Quality

The CI/CD process will include a Code Quality Gate: [Sonarqube](https://www.sonarqube.org/)

## Configure SonarQube

By default you can login as `admin` with password `admin` at [http://<IP_ADDRESS>:9000/](http://<IP_ADDRESS>:9000/)

One first login we need to create a token which we'll use in Jenkins.

**Generate a Token for Jenkins to use**

You can use any name, but a good one is `jenkins` for the **Generate Token** input

One:

![Sonarqube](images/sonarqube-1.png)

Two:

**Copy the token, we'll use it for Jenkins configuration**

![Sonarqube](images/sonarqube-2.png)

Click continue, then skip tutorial, should be at an empty dashboard.

![Sonarqube](images/sonarqube-dashboard.png)

**Add a web-hook for Jenkins**

Configure a webhook in your SonarQube server pointing to `http://jenkins:8080/sonarqube-webhook/` (The trailing slash is mandatory)

Click >> Administration >> Webhooks

![Sonar](images/sonarqube-config-3.png)

**Add a Quality Gate rule that we can use to toggle Pass or Fail when building**

Note the first rule **Coverage** is the one we add.

We can change the Error value to higher or lower than 10, for example, to make the Quality Gate Pass or Fail.

![Sonar](images/sonarqube-config-4.png)

Sonarqube is very powerful, this is just out of the box defaults.

Explore it more at the Docs [https://docs.sonarqube.org/](https://docs.sonarqube.org/)

## Configure Jenkins

**Add the Sonarqube Plugin**

![Sonar](images/sonarqube-plugin.png)

**Configure the Sonarqube plugin**

Jenkins > Manage Jenkins > Configure System >

- Name: sonarqube
- Server URL: http://sonarqube:9000
- Server Authentication Token: <TOKEN_FROM_SONARQUBE_INSTALL_STEP>

![Sonar](images/sonarqube-config-1.png)

Jenkins > Manage Jenkins > Global Tool Configuration >

![Sonar](images/sonarqube-config-2.png)


text:
# README

Repo for experimenting with data preparation and upload for the BDCat project.

## Setup Instructions for Ubuntu 20.04 LTS

In version 1.0, files on cloud services are downloaded before having their checksum
calculated and uploaded. Please ensure that your VM has enough disk storage space for
the largest file in your manifest file.

    sudo apt update
    sudo apt -y install python3-pip awscli gcc python-dev python-setuptools libffi-dev

    sudo pip3 install boto3
    sudo pip3 install google-cloud-storage
    sudo pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
    sudo pip3 install --no-cache-dir -U crcmod
    sudo pip3 install gsutil
    echo export PATH=${PATH}:$HOME/gsutil >> ~/.bashrc

    # load credentials for google cloud, if necessary
    export GOOGLE_APPLICATION_CREDENTIALS="<path to credentials .json file>"
    gsutil config

    # load credentials for aws, if necesary
    aws configure

## Setup Instructions for MacOS

    conda create -n python_3_7_4_20200619 python=3.7.4
    conda create --name nimbus--data-ingest python=3.7.4
    conda activate nimbus--data-ingest
    pip install awscli
    pip install boto3
    pip install google-cloud-storage
    pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
    conda activate nimbus--data-ingest

1. Create large file called big_binary.MOV in current directory (should be > 8 MB)

2. Run `aws configure` / set up google cloud credentials

3. For testing, update study\_id fields in sample.tsv. Then create aws/gs s3 buckets with the name `<study_id>--<consent_code>`

## Running Code

    python3 process.py --aws --tsv sample.multifile.tsv
    or
    python3 process.py --gs --tsv sample.multifile.tsv

The output manifest file will be located at sample.mulifile.<timestamp>manifest.tsv

## Design Doc

See [20200608 - Data Ingest Brainstorming](https://docs.google.com/document/d/1bZHUKZPL7Q7onKLSdR3YBrM7oeREC54yf1g_Dpc2yVI/edit) for design information.

## Issues

See our [Project Board](https://github.com/orgs/NimbusInformatics/projects/5) for tracking issues.

## Input manifest file format

The input manifest file is a TSV file with the following fields. See [sample.multifile.tsv](https://raw.githubusercontent.com/NimbusInformatics/bdcat-ingest-prototype/master/sample.multifile.tsv) for examples:

* study\_id - required field, see naming restrictions below
* dbgap\_study\_id
* consent_group - required field, see naming restrictions below
* study\_id
* specimen\_id
* experimental\_strategy
* input\_file\_path - required field. Either the local file, s3:// path, or gs:// path to be transferred

### Naming restrictions for study\_id and consent\_group
* study\_id and consent\_group should consist of only lowercase letters and numbers.
* No special character are allowed, except for single hyphens (-). study\_id and consent\_group must not begin or end with a hyphen.
* The total number of characters for the study\_id and consent\_group combined shall not exceed 61 characters.
* The study\_id and consent\_group combination must be globally unique.

## Output manifest file format

The output manifest file is a TSV file with the following fields:

* study\_id
* dbgap\_study\_id
* consent_group
* study\_id
* specimen\_id
* experimental\_strategy
* input\_file\_path
* drs\_uri - unique identifier for resource based on standards listed at https://ga4gh.github.io/data-repository-service-schemas/preview/release/drs-1.1.0/docs/#_drs_uris
* md5sum
* gs\_gs_crc32c - checksum provided by google storage in base64 format. Note that all gs\* fields will be empty if google storage was not selected
* gs\_path - path to google storage file. Note that the path includes the checksum to ensure that files are unique. It is not using the base64 format, which might lead to illegal key names, but instead the unsigned 32-bit integer value
* gs\_modified\_date - the date that the file was last uploaded or modified
* gs\_file\_size - the file size reported by google storage
* s3\_md5sum - checksum provided by aws. Note that all aws\* fields will be empty if google storage was not selected
* s3\_path - path to aws file. Note that the path includes the checksum to ensure that files are unique.
* s3\_modified\_date - the date that the file was last uploaded or modified
* s3\_file\_size - the file size reported by aws

repository: alubneuski/bdcat-ingest-prototype

repo_name: alubneuski/bdcat-ingest-prototype


text:
---
layout: single
title:  "Maven Artifact"
sidebar:
  nav: reference
---

{% include toc %}

[Maven](https://maven.apache.org) is a build automation tool, and a Spinnaker Maven artifact is a reference to a Maven artifact stored in a Maven repository. These artifacts are generally consumed by stages that deploy application artifacts, such as a Deploy stage.

> The files stored in a Maven repository are typically called "artifacts", so on this page, "Maven artifact" may refer to a Spinnaker artifact of type `maven/file` or to a file (e.g. a JAR file) stored in a Maven repository.

## Maven artifact in the UI

The pipeline UI exposes the following fields for the Maven artifact:

| Field                | Explanation                                                                                |
|----------------------|---------------------------------------------------------------------------------------------------|
| **Account**          | A Maven artifact account.                                                                         |
| **Maven Coordinate** | The Maven coordinates for the artifact (in the standard Maven form `groupId:artifactId:version`). |

### In a trigger

When configuring certain triggers (such as an Artifactory trigger), you can use a Maven artifact as an expected artifact.

{%
  include
  figure
  image_path="./expected-artifact-maven-artifact.png"
  caption="Configuring Maven artifact fields in a pipeline trigger's expected
           artifact settings."
%}

### In a pipeline stage

When configuring a Deploy stage, you can use a Maven artifact as an application
artifact. You can either use a previously-defined artifact (for example, an
artifact defined in a trigger) or define an artifact inline.

{%
  include
  figure
  image_path="./deploy-stage-maven-artifact.png"
  caption="Configuring a Deploy stage to use a Maven artifact as an
           application artifact."
%}

## Maven artifact in a pipeline definition

The following are the fields that make up a Maven artifact:

| Field | Explanation |
|-|-----------|
| `type` | Always `maven/file`. |
| `reference` | The Maven coordinates for the Maven artifact, in the standard Maven form `groupId:artifactId:version`. |

The following is an example JSON representation of a Maven artifact, as it
would appear in a pipeline definition:

```json
{
	"reference": "io.pivotal.spinnaker:multifoundationmetrics:.*",
	"type": "maven/file"
}
```


text:
### [CVE-2021-3144](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3144)
![](https://img.shields.io/static/v1?label=Product&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Version&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Vulnerability&message=n%2Fa&color=brighgreen)

### Description

In SaltStack Salt before 3002.5, eauth tokens can be used once after expiration. (They might be used to run command against the salt master or minions.)

### POC

#### Reference
- https://github.com/saltstack/salt/releases

#### Github
No PoCs found on GitHub currently.

repository: trickest/cve

repo_name: trickest/cve


text:
# Digital Humanities Library Lab: Exploring digital collections, 24 May 2017

## Activity: Image searching in a collection of pre-20th century ballads
We will have a look at [Broadside Ballads Online](http://ballads.bodleian.ox.ac.uk/){:target="_blank"} from the Bodleian Libraries. Broadside Ballads Online presents a digital collection of English printed ballad-sheets from between the 16th and 20th centuries, linked to other resources for the study of the English ballad tradition.

![Broadside Ballads Online homepage](img/bal-110.png)

This activity follows on from a research project by Dr Giles Bergel titled '_British Woodcut Printing in Transition_'. The project was conducted in part with the [John Rylands Research Institute](http://www.jrri.manchester.ac.uk/), using ballads and chapbook collections from John Rylands Library, Bodleian Libraries ([Broadside Ballads](http://ballads.bodleian.ox.ac.uk/)), Manchester Central Library, Chetham's Library and others. Some of these books were printed with Thomas Bewick's more refined and robust school of woodcut printing.

Bergel used software developed at the University of Oxford with these collections to establish whether Bewick's woodblocks we re-used by less illustrious print shops and answer other research questions that depend on knowing which images are similar to one another.

_Objective_: We will use Broadside Ballads Online to observe the values of creating and hosting a new digital image collection, for example by conducting image searches on it.

### Woodcut portrait prints
The scribed text is supported by many illustrations or portraits, printed using woodcut blocks. The specific people depicted can be seen many times throughout the collection, and the same printing block may be used each time.

This collection includes an image search feature. It lets you draw a box around a portrait, and the database will search for any other images which include a similar matching portrait.

This feature can help you to find all occurrences of that person within the collection, analogous to a text search for a known individual's name.
![One portrait reoccurring](img/bal-115.png)

### Tasks
1. Launch the [ImageMatch](http://imagematch.bodleian.ox.ac.uk:8000/){:target="_blank"} page of Broadside Ballads Online. This will give you a list of all searchable images in the database, preceded by four representative examples.
![ImageMatch start page](img/bal-120.png)

2. Click on the [first example image, name: MS. Wood E 25(13)](http://imagematch.bodleian.ox.ac.uk:8000/search?docID=774). Use your mouse to drag a box around the third person from the left (a man with long wavy hair in an oval-shaped outset). Click on the Search button.
![Draw a box and search](img/bal-130.png)

3. The results page will display your query image and any search results (there should be 12 matches for this person). Clicking on any of the results will take you to the full-page view of that impression. How similar do the matches appear to you? Do the results look like they were printed with the same block?
![Search results](img/bal-140.png)

4. Try this on other figures. Do you get any results? Try matching part of a figure, perhaps just the person's head, and see if there is a difference on results.

### Discussion points

- How successful was this search?
- Would it help if it were easier to [compare two images side-by-side](http://imagematch.bodleian.ox.ac.uk:8000/register?docID1=857&docID2=611&xl=382.00&xu=477.00&yl=255.00&yu=389.00)?
- What collections do you know of that could be enhanced with this kind of tool?
- What other uses could there be for visual searching or identification?
- Do you have any experience of using computer vision with library collections that you might like to share?
- What might the challenges of building a system like this be, and where might you need help?

[:arrow_up_small: Back to top](#activity-image-searching-in-a-collection-of-pre-20th-century-ballads) | [:arrow_double_up: Parent](index.html) | [:arrow_backward: Prev](welcome.html) | [:arrow_forward: Next](jstorta.html)

[:house: Home](/)

gha_language: ApacheConf


text:
---
title: "Connect your AWS Cloud Account to Colony"
date: 2020-10-16T10:35:57+03:00
weight: 04
draft: false
---

1\. Create an AWS account.

Note: If you already have an AWS account, and with a role that has IAM Administrator access, you can skip this step.

If you do not already have an AWS account with Administrator access: [create one now] (https://portal.aws.amazon.com/billing/signup#/start)
Once you have an AWS account, ensure you are following the remaining workshop steps as an IAM user with administrator access to the AWS account: [Create a new IAM user for the workshop] (https://console.aws.amazon.com/iam/home?region=us-east-1#/users$new)

2\. Follow the following process to link your AWS account to CloudShell Colony:

 ![04_page](/images/prerequisite/04_page.png)
 ![04_page](/images/prerequisite/05_page.png)
 ![04_page](/images/prerequisite/06_page.png)
 ![04_page](/images/prerequisite/07_page.png)
 ![04_page](/images/prerequisite/08_page.png)
 ![04_page](/images/prerequisite/09_page.png)
 ![04_page](/images/prerequisite/10_page.png)
 ![04_page](/images/prerequisite/11_page.png)
 ![04_page](/images/prerequisite/12_page.png)

repository: aharontwizer/colony-workshop

repo_name: aharontwizer/colony-workshop


text:
# Alloy MVC Template  (CMS 11, .NET Framework 4.x)

## Setup the Development Environment
1. Run `setup.cmd`
2. Build the solution in Visual Studio

Once the environment is setup, you can press `CTRL-F5` in Visual Studio to start the sample site.

repository: vungdv/alloy-mvc-template

repo_name: vungdv/alloy-mvc-template


text:
---
title: "Identity Linking"
---

Identity linking is the process required to link a GitHub, Google, Microsoft, ORCID, or University account with an ACCESS ID so that you can log on to ACCESS services using the linked account. Please review the instructions below to link or unlink an account.

## Link

To link an account:
1. Log in to <https://registry.access-ci.org/>.
2. Click on your name in the upper right corner of the page.
3. Click "Link another account" and authenticate using the identity provider for the account that you want to link to your ACCESS ID.

## Unlink

TBD

repository: cilogon/access-identity

repo_name: cilogon/access-identity


text:
# :alembic: Clibgit2

Clibgit2 wraps libgit2 into SPM to be used in Swift code.

## Example

Check the usage below or look through the repositories tests.

## Installation

### Swift Package Manager

Clibgit2 is compatible with Swift Package Manager v4 (Swift 4 and above). Simply add it to the dependencies in your `Package.swift`.

```Swift
dependencies: [
    .package(url: "https://github.com/Boilertalk/Clibgit2.git", from: "0.1.0")
]
```

After which you can import it in your `.swift` files.

```Swift
import Clibgit2
```

## Usage

> TODO: Add usage examples

## Author

The awesome guys at Boilertalk :alembic:

## License

Clibgit2 is available under the MIT license. See the LICENSE file for more info.


text:
### Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

#### [Unreleased](https://github.com/StoneCypher/is_a_ts/compare/v1.0.0...HEAD)

### [v1.0.0](https://github.com/StoneCypher/is_a_ts/compare/0.14.1...v1.0.0)

> 28 July 2021

- overloads [`#38`](https://github.com/StoneCypher/is_a_ts/pull/38)
- type aliases [`#37`](https://github.com/StoneCypher/is_a_ts/pull/37)
- Declare 1.0.0; improve readme [`0872c6e`](https://github.com/StoneCypher/is_a_ts/commit/0872c6ef086532b24bcf8c7ef1c07773b317fed4)
- add some readme badges [`7158add`](https://github.com/StoneCypher/is_a_ts/commit/7158add05a01173ec09d016c744b5e07db35db31)

#### [0.14.1](https://github.com/StoneCypher/is_a_ts/compare/v0.12.0...0.14.1)

> 26 July 2021

- npmignore fixes #29; prerelease [`#29`](https://github.com/StoneCypher/is_a_ts/issues/29)
- Remove ls debug stubs that were harming Windows users (sloppy).  Add is_a/2 alias. [`0ed4232`](https://github.com/StoneCypher/is_a_ts/commit/0ed4232b7451b9cc81eb0bc18f894e425e40bd40)

#### [v0.12.0](https://github.com/StoneCypher/is_a_ts/compare/v0.11.0...v0.12.0)

> 25 July 2021

- npmignore; prerelease [`382097e`](https://github.com/StoneCypher/is_a_ts/commit/382097e63b57e9f8ee022791ee74262676b22c2b)
- Restore coverage.  Fix testing in pipeline; restore node ci version. [`209c7c6`](https://github.com/StoneCypher/is_a_ts/commit/209c7c6b825c9fe0312ee98ce6117728b3ff6ef4)
- Clean was running after test, removing coverage after running it instead of before [`ee06876`](https://github.com/StoneCypher/is_a_ts/commit/ee0687689843266d76f49ac58f885fa4c61ec1ad)
- Temporarily disable stochastic tests for CI [`51f5e7c`](https://github.com/StoneCypher/is_a_ts/commit/51f5e7c4095f811a239792918f85afdbc62ffc34)
- debug step adding ls to build step to diagnose why coveralls can't see lcov [`28f6a84`](https://github.com/StoneCypher/is_a_ts/commit/28f6a846fecd2b361881df6fe4e75824aee0051b)
- could ... could regressing the node setup version restore coveralls? [`0bfd31d`](https://github.com/StoneCypher/is_a_ts/commit/0bfd31d53ec43610335455eff428e5a6db391ba5)

#### [v0.11.0](https://github.com/StoneCypher/is_a_ts/compare/v0.10.3...v0.11.0)

> 25 July 2021

- Add original article to documentation as tutorial [`2f07a62`](https://github.com/StoneCypher/is_a_ts/commit/2f07a621a6bb3ca8ab6a2f0a3911bb1f8f5dc369)

#### [v0.10.3](https://github.com/StoneCypher/is_a_ts/compare/v0.10.2...v0.10.3)

> 25 July 2021

- Coveralls [`e3d482f`](https://github.com/StoneCypher/is_a_ts/commit/e3d482f495a292037b98375bd571eee6573ae73a)

#### [v0.10.2](https://github.com/StoneCypher/is_a_ts/compare/v0.10.1...v0.10.2)

> 25 July 2021

- Add CI, fixes #30 [`#30`](https://github.com/StoneCypher/is_a_ts/issues/30)

#### [v0.10.1](https://github.com/StoneCypher/is_a_ts/compare/v0.10.0...v0.10.1)

> 25 July 2021

- 100% spec coverage, fixes #33 [`#33`](https://github.com/StoneCypher/is_a_ts/issues/33)
- blog claims achieve 100/100/40/100% coverage [`09fd5d6`](https://github.com/StoneCypher/is_a_ts/commit/09fd5d62bc17ff6951270d09f79691f5819ca374)

#### [v0.10.0](https://github.com/StoneCypher/is_a_ts/compare/v0.9.2...v0.10.0)

> 25 July 2021

- working jest [`d647648`](https://github.com/StoneCypher/is_a_ts/commit/d6476485b8eb88063592ec7c9c939313699f5fcd)
- Update README.md [`e26e182`](https://github.com/StoneCypher/is_a_ts/commit/e26e1829211b3cbaf02bd246e1a86e09d5c2c947)

#### [v0.9.2](https://github.com/StoneCypher/is_a_ts/compare/v0.9.1...v0.9.2)

> 25 July 2021

- Add authors file, fixes #2; downgrade self to contributor, fixes #32; add krumpet to keywords, fixes #4 [`#2`](https://github.com/StoneCypher/is_a_ts/issues/2) [`#32`](https://github.com/StoneCypher/is_a_ts/issues/32) [`#4`](https://github.com/StoneCypher/is_a_ts/issues/4)

#### [v0.9.1](https://github.com/StoneCypher/is_a_ts/compare/v0.9.0...v0.9.1)

> 24 July 2021

- Backdate tags, actual changelog [`5401020`](https://github.com/StoneCypher/is_a_ts/commit/5401020dd03dfc4446f10836fa49ecc7ab04fa4f)

#### [v0.9.0](https://github.com/StoneCypher/is_a_ts/compare/v0.8.0...v0.9.0)

> 24 July 2021

- Changelog, fixes #27 [`#27`](https://github.com/StoneCypher/is_a_ts/issues/27)

#### [v0.8.0](https://github.com/StoneCypher/is_a_ts/compare/v0.7.0...v0.8.0)

> 24 July 2021

- Improve outbound links, start giving credit due, fixes #24 [`#24`](https://github.com/StoneCypher/is_a_ts/issues/24)

#### [v0.7.0](https://github.com/StoneCypher/is_a_ts/compare/v0.6.0...v0.7.0)

> 24 July 2021

- Sets up docs directory, fixes #25; sets up documentation extraction, fixes #11 [`#25`](https://github.com/StoneCypher/is_a_ts/issues/25) [`#11`](https://github.com/StoneCypher/is_a_ts/issues/11)

#### [v0.6.0](https://github.com/StoneCypher/is_a_ts/compare/v0.5.0...v0.6.0)

> 24 July 2021

- implement minification, fixes #10, fixes #23.  split rollup to esm, cjs, fixes #22.  sets types and module, fixes #21, fixes #20. [`#10`](https://github.com/StoneCypher/is_a_ts/issues/10) [`#23`](https://github.com/StoneCypher/is_a_ts/issues/23) [`#22`](https://github.com/StoneCypher/is_a_ts/issues/22) [`#21`](https://github.com/StoneCypher/is_a_ts/issues/21) [`#20`](https://github.com/StoneCypher/is_a_ts/issues/20)

#### [v0.5.0](https://github.com/StoneCypher/is_a_ts/compare/v0.4.0...v0.5.0)

> 24 July 2021

- commit initial copy pasta, fixes #16.  repair rollup plugins, fixes #19.  upgrade to unknown, fixes #18. [`#16`](https://github.com/StoneCypher/is_a_ts/issues/16) [`#19`](https://github.com/StoneCypher/is_a_ts/issues/19) [`#18`](https://github.com/StoneCypher/is_a_ts/issues/18)

#### [v0.4.0](https://github.com/StoneCypher/is_a_ts/compare/v0.3.0...v0.4.0)

> 24 July 2021

- Version system, fixes #14 [`#14`](https://github.com/StoneCypher/is_a_ts/issues/14)

#### [v0.3.0](https://github.com/StoneCypher/is_a_ts/compare/v0.2.0...v0.3.0)

> 24 July 2021

- Working rollup, fixes #9 [`#9`](https://github.com/StoneCypher/is_a_ts/issues/9)

#### v0.2.0

> 24 July 2021

- working ts, working clean, fixes #7, fixes #8 [`#7`](https://github.com/StoneCypher/is_a_ts/issues/7) [`#8`](https://github.com/StoneCypher/is_a_ts/issues/8)
- Initial commit [`97eb361`](https://github.com/StoneCypher/is_a_ts/commit/97eb361929172757af2e9e91a80d9db3d09fb5c6)


text:
JJSONV
======

_This project is no longer maintained and part of my source code "attic". Feel free to use it though, works fine._

[![Build Status](https://travis-ci.org/Rogwel/JJSONV.png?branch=master)](https://travis-ci.org/Rogwel/JJSONV)

The easy to use and extendable Java JSON Validator library, JJSONV. Contains functionalities for debugging such as object tracing that can be used in a browser, and actually useful exception messages. The schemas and validators are designed as to be fast to write. Schemas are in a yaml-like format, and custom validators just have to return a boolean flag and extend one class. Adding your validators to JJSONV only takes one call. JJSONV has Maven support too, and currenly has a Jackson implementation only.
You can find the source code at the Github Repository. Feel free to contribute!- JJSONV is Licensed under the Apache License 2.0

## Usage

It simply speaks for itself, the schemas are easy to write.
Object content is detected by tabs, do not use more tabs than you should use.

	model:object
		name:string
		data:boolean[][][][]
		members:object[]
			name:string
			size:int
	pages:object[]
		design:string

You can nest arrays and objects as deep as you want!

### Validating

	SchemaFactory factory = new SchemaFactory();
	NodeParser parser = new JacksonNodeParser();
	Schema schema = factory.create(new File("schema.jsons"));
	try {
		schema.validate(parser.read(new File("data.json")));
	} catch(ValidationException e) {
		// Invalid JSON!
	}

### Tracing

You can see where validation errors happen, this is incredibly useful when sending it back to a JavaScript web application.

	SchemaFactory factory = new SchemaFactory();
	NodeParser parser = new JacksonNodeParser();
	Schema schema = factory.create(new File("schema.jsons"));
	try {
		schema.validate(parser.read(new File("false-data.json")));
	} catch(ValidationException e) {
		// Will print something like "object.members[0][1].inner[4].size"
		// Depends on what you're validating of course.
		System.out.println(e);
		// You can use e.getElements() for even deeper inspection
	}

### Custom Element Validators

A SchemaFactory has the following standard validators preregistered;

	public SchemaFactory() {
		validators = new HashMap<String, Class<? extends Validator>>();
		validators.put("string", StringValidator.class);
		validators.put("bool", BooleanValidator.class);
		validators.put("boolean", BooleanValidator.class);
		validators.put("int", IntValidator.class);
		validators.put("integer", IntValidator.class);
		validators.put("object", PlainObjectValidator.class);
	}

You can register your own custom validators at a SchemaFactory, the SchemaFactory will then create instances of these validators when they are used in a schema file. Here’s a simple example of a validator that accepts JSON values that are integers or strings

	public class IntOrStringValidator extends ElementValidator {

		@Override
		public boolean ok(Node node, ValidationContext context) {
			return node.isInt() || node.isTextual();
		}

	}

And this is how you can regiser it!

	SchemaFactory factory = new SchemaFactory();
	factory.add("thing", IntOrStringValidator.class);

_You should extend either com.pseudocoding.jjsonv.validators.ElementValidator or com.pseudocoding.jjsonv.validators.ObjectValidator_

### Validation Context

ValidationContext is data that is passed to every Validator, the Validators can read from it and add more data to it – It’s very useful for expensive loads such as a custom “UserValidator”, so that after checking if your User objects exists in the database, and obtaining a reference to it; You can then store that already loaded data into the ValidationContext. The ValidationContext is returned by Schema.validate(Node), you can then read all your data from the ValidationContext.
Here’s an example of a validator that only accepts existing “members” — See also: test/tests/TestValidator.java ( This validator will create a map to store data it’s data in – note that it doesn’t check wether or not the “member” was already loaded into the ValidationContext )

	public class TestValidator extends ElementValidator {

		private final Map<String, String> existingMembers;

		public TestValidator() {
			existingMembers = new HashMap<String, String>();
			existingMembers.put("Member1", "Data1");
			existingMembers.put("Member2", "Data2");
		}

		@Override
		public boolean ok(Node node, ValidationContext context) {
			// Check for valid data
			if (node.isTextual() == false)
				return false;
			// Load up our existing member
			String key = node.getTextValue();
			String value = existingMembers.get(key);
			if (value == null)
				return false;
			// Get or create our map
			@SuppressWarnings("unchecked")
			Map<String, String> members = (Map<String, String>) context
					.get("Members");
			if (members == null)
				members = new HashMap<String, String>();
			// Add our member which we know exists
			members.put(key, value);
			// Store our members again
			context.put("Members", members);
			return true;
		}

	}

Example on how to use the ValidationContext — See also: test/tests/Tests.java

	// Load custom schema
	Schema schema = factory.create(basicCustomSchema);
	NodeParser parser = new JacksonNodeParser();
	// Get the result of validation
	ValidationContext context = schema.validate(parser.read(basicJson));
	@SuppressWarnings("unchecked")
	Map<String, String> members = (Map<String, String>) context.get("Members");
	for(Map.Entry<String, String> entry : members.entrySet()){
		// Do something with loaded data
	}

repository: rmoorman/JJSONV

repo_name: rmoorman/JJSONV


text:
---
layout: default
---

# 1996-09-22 - Re: Snake-Oil FAQ

## Header Data

From: Dale Thorn<EMAIL_ADDRESS>To: "William H. Geiger III"<EMAIL_ADDRESS>Message Hash: 2c9b4709997028da09603997585210bf7694d655dff29bacd2356cea023552fc

Message ID<EMAIL_ADDRESS>Reply To<EMAIL_ADDRESS>UTC Datetime: 1996-09-22 19:25:53 UTC

Raw Date: Mon, 23 Sep 1996 03:25:53 +0800

## Raw message

```
{% raw  %}From: Dale Thorn<EMAIL_ADDRESS>Date: Mon, 23 Sep 1996 03:25:53 +0800
To: "William H. Geiger III"<EMAIL_ADDRESS>Subject: Re: Snake-Oil FAQ
In-Reply-To<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

William H. Geiger III wrote:
> In<EMAIL_ADDRESS>on 09/21/96 at 04:47 PM,
>    Lance Cottrell<EMAIL_ADDRESS>said:
> >I am setting up just such a list. I plan to award products for both
> >excellent and lousy crypto. This really should be a committee (yuch)
> >effort, so if you would like to participate, please let me know.
> I would be intrested in this. I would like to see the following
> information made available for any product that made it on to the
> list:
> Detailed listings of pro/cons of the product.
> Contact with the authors & listing of any rebutials they may have for
> the cons.
> A appendix to the list explaining why the individule points are a pro
> or a con for crypto products.

When you get right down to it, this calls for a mini-encyclopedia of
crypto products (or even sub-products such as pre-processors or
"encryption engines").

The basic outline for any products included (and don't forget, just
getting included is some sort of endorsement, if you know what I mean)
could be a feature/bug listing, using common crypto terminology, and
could be followed by side-by-side argument paragraphs from the author
and from a reputable review panel.

The usefulness of the list would probably depend on:
1. The participation of all those names people like to name-drop on this
   forum.
2. And/or the quality of the list itself if done without (1.) above.
   In this latter case, it could still be useful, but the variances in
   evaluation owing to personal bias would be difficult to overcome.

{% endraw %}
```

## Thread

+ Return to [September 1996](/archive/1996/09)

+ Return to "[Dale Thorn <dthorn@gte.net>](/authors/dale_thorn_dthorn_at_gte_net_)"
+ Return to "[Krenn <krenn@nym.alias.net>](/authors/krenn_krenn_at_nym_alias_net_)"
+ Return to "[Lance Cottrell <loki@infonex.com>](/authors/lance_cottrell_loki_at_infonex_com_)"
+ Return to "[Mark Rogaski <wendigo@pobox.com>](/authors/mark_rogaski_wendigo_at_pobox_com_)"
+ Return to "["William H. Geiger III" <whgiii@amaranth.com>](/authors/william_h_geiger_iii_whgiii_at_amaranth_com_)"

+ 1996-09-18 (Wed, 18 Sep 1996 13:10:29 +0800) - [Re: Snake-Oil FAQ](/archive/1996/09/6a2c2dd03ad250ae6102edf4783317547b134e436c17e68fd4af0e61044e60cb) - _Krenn<EMAIL_ADDRESS>  + 1996-09-18 (Wed, 18 Sep 1996 19:27:52 +0800) - [Re: Snake-Oil FAQ](/archive/1996/09/a0ed6f77d6abd532b5cd18e51f753259f8c853921ee0568d51b9d37a20b54912) - _Dale Thorn<EMAIL_ADDRESS>  + 1996-09-18 (Thu, 19 Sep 1996 04:59:13 +0800) - [Re: Snake-Oil FAQ](/archive/1996/09/a0fe209f970c5f1b2d8cdf75edb125f2f7f064b73d0ec7e08f9f18ac149c90bd) - _Mark Rogaski<EMAIL_ADDRESS>  + 1996-09-22 (Sun, 22 Sep 1996 09:59:31 +0800) - [Re: Snake-Oil FAQ](/archive/1996/09/39579f42533a253bdf52e179c2b7b2dbf30a2c4236c350116a753e2119df71aa) - _Lance Cottrell<EMAIL_ADDRESS>    + 1996-09-22 (Sun, 22 Sep 1996 18:53:18 +0800) - [Re: Snake-Oil FAQ](/archive/1996/09/4a91d4b2a3748a2b1a015ef90f5a2afc9e59a86a070cb4fc739ee68800c0577b) - _"William H. Geiger III"<EMAIL_ADDRESS>      + 1996-09-22 (Mon, 23 Sep 1996 03:25:53 +0800) - Re: Snake-Oil FAQ - _Dale Thorn<EMAIL_ADDRESS>      + 1996-09-23 (Mon, 23 Sep 1996 12:00:38 +0800) - [Re: Snake-Oil FAQ](/archive/1996/09/d574e4a0d7bcf0338a5d6c1150437e695b404f95572a13e27051753603ff9d5c) - _Lance Cottrell<EMAIL_ADDRESS>  + 1996-09-22 (Sun, 22 Sep 1996 10:22:17 +0800) - [Re: Snake-Oil FAQ](/archive/1996/09/186c37f22fbe6e14a12a2b2bce523e7f69153f82f084c6443961ffb5c01d7b30) - _Lance Cottrell<EMAIL_ADDRESS>    + 1996-09-23 (Tue, 24 Sep 1996 06:55:26 +0800) - [Re: Snake-Oil FAQ](/archive/1996/09/a4ca4ee433b9bae29df9e1ea166c4306a4c5fa9a6190f8b4b40bb281b40f7637) - _Mark Rogaski<EMAIL_ADDRESS>


text:
# Documentation for Test Kitchen

The Getting Started guide is written in [Markdown](https://daringfireball.net/projects/markdown/) and rendered using [Hugo](https://gohugo.io).

## Hosting

All documentation will be hosted on the official Kitchen website <https://kitchen.ci/>, which is a static site stored in an S3 bucket and fronted by CloudFront.

## Running Locally

### Install Hugo

- On macOS run: `brew install hugo`
- On Windows run: `choco install hugo`
- On Ubuntu run: `apt install -y build-essential; snap install hugo --channel=extended`

### Run Hugo

Run `hugo serve` and browse the the URL presented

## Style Guide

There are four elements that may be used for "styling" the docs content: in-line code highlighting, code blocks, blockquotes, and a special hack around markdown tables that we'll use for what we call "Pro-Tips".

### In-line Code Highlighting

To highlight `some code` inline with other content, just "quote" the text using backtick characters (`).

### Fenced Code Blocks

To highlight a block of code, start and finish the block with three or more tilde characters (`~`). To enable syntax-highlighting, just indicate the code language after the tildes on the first line.

For example, this code:

```yaml
---
title: "KitchenCI Overview"
next:
  url: installing-kitchen
  text: "Installing KitchenCI"
---
```

...yields this output:

```yaml
---
title: "KitchenCI Overview"
next:
  url: installing-kitchen
  text: "Installing KitchenCI"
---
```

See [the kramdown documentation](http://kramdown.gettalong.org/syntax.html#fenced-code-blocks) for more information.

### Blockquotes

To draw attention to some content with a blockquote, just start the line(s) with a `>` (right angle bracket / greater than symbol). See [the kramdown documentation](http://kramdown.gettalong.org/syntax.html#blockquotes) for more information.

## License

The Kitchen Documentation is released under the [MIT license][mit-license].

[markdown]: http://daringfireball.net/projects/markdown/syntax
[kitchenci]: https://kitchen.ci/
[mit-license]: MIT-LICENSE.txt

repository: mailchannels/test-kitchen

repo_name: mailchannels/test-kitchen


text:
       Marker is the easiest way to match and mark strings for colorful terminal outputs.

# marker

Marker is built for easily match and mark strings for colorful terminal outputs. You can match your strings with built-in matchers or easily implement a custom matcher for your usecase. Marker uses [fatih/color](https://github.com/fatih/color)
for colorizing terminal output.

## Installation

`go get github.com/cyucelen/marker`

## Basic Usage

Marker has very simple and extensible way to get your strings colorful and brilliant!

### Example

```go
aristotleQuote := "The more you know, the more you realize you don't know."
emphasized := marker.Mark(aristotleQuote, marker.MatchAll("know"), color.New(color.FgRed))
fmt.Println(emphasized)
```

## Table of Contents

- [Mark Your Log Stream](#mark-your-log-stream)
- [Custom `io.Writer` out for log interface](#custom-iowriter-out-for-log-interface)
- [Matchers](#matchers)
  - [MatchAll](#matchall)
  - [MatchN](#matchn)
  - [MatchRegexp](#matchregexp)
  - [MatchSurrounded](#matchsurrounded)
  - [MatchBracketSurrounded](#matchbracketsurrounded)
  - [MatchParensSurrounded](#matchparenssurrounded)
  - [MatchTimestamp](#matchtimestamp)
  - [Builder way](#builder-way)
  - [Writing your custom Matcher](#writing-your-custom-matcher)
- [Contribution](#contribution)

---

## Mark Your Log Stream

You may want to instrument a logger such that any output coming from it is colorized in the expected manner. `marker` contains functionality which can be easily integrated with Golang's `log` or any interface that supports `io.Writer`.

```go
stdoutMarker := marker.NewStdoutMarker()
markRules := []marker.MarkRule{
  {marker.MatchBracketSurrounded(), color.New(color.FgBlue)},
  {marker.MatchAll("marker"), color.New(color.FgRed)},
}

stdoutMarker.AddRules(markRules)
logger := log.New(stdoutMarker, "", 0)

logger.Println("[INFO] marker is working as expected")
```

### Custom `io.Writer` out for log interface

`marker` also allows you to specify the `io.Writer` that you want to send output to. This is useful if the logger is writing to somewhere other than `stdout` like a file.

```go
f, _ := os.Create("/tmp/awesome.log")
w := bufio.NewWriter(f)

writeMarker := marker.NewWriteMarker(w)

markRules := []marker.MarkRule{
  {marker.MatchBracketSurrounded(), blueFg},
  {marker.MatchAll("marker"), magentaFg},
}

writeMarker.AddRules(markRules)

logger := log.New(writeMarker, "", 0)
logger.Println("[INFO] colorful logs even in files, marker to mark them all!")

w.Flush()
f.Close()

output := catFile("/tmp/awesome.log") // $ cat /tmp/awesome.log
fmt.Print(output)
```

---

## Matchers

#### MatchAll

```go
aristotleQuote := "The more you know, the more you realize you don't know."
emphasized := marker.Mark(aristotleQuote, marker.MatchAll("know"), color.New(color.FgRed))
fmt.Println(emphasized)
```

#### MatchN

```go
boringLog := "[INFO] Nobody wants to read pale [INFO] tags."
brilliantLog := marker.Mark(boringLog, marker.MatchN("[INFO]", 1), color.New(color.FgBlue))
fmt.Println(brilliantLog)
```

#### MatchRegexp

```go
rhyme := "I scream, you all scream, we all scream for ice cream."
r, _ := regexp.Compile("([a-z]?cream)")
careAboutCream := marker.Mark(rhyme, marker.MatchRegexp(r), color.New(color.FgYellow))
fmt.Println(careAboutCream)
```

#### MatchSurrounded

```go
sentence := "I pull out things surrounded by abcWHOA COLORSdef"
markedSurrounded := marker.Mark(sentence, marker.MatchSurrounded("abc", "def"), color.New(color.FgMagenta))
fmt.Println(markedSurrounded)
```

#### MatchBracketSurrounded

```go
sentence = "[INFO] This is what log lines look like"
markedSurrounded = marker.Mark(sentence, marker.MatchBracketSurrounded(), color.New(color.FgRed))
fmt.Println(markedSurrounded)
```

#### MatchParensSurrounded

```go
sentence = "[ERROR] This is what (parens) lines look like"
markedSurrounded = marker.Mark(sentence, marker.MatchParensSurrounded(), color.New(color.FgBlue))
fmt.Println(markedSurrounded)
```

#### MatchTimestamp

`MatchTimestamp` can be used for matching the timestamps fits the layouts in Golang's `time`.

All possible formats can be found [here](https://github.com/golang/go/blob/8de0bb77ebc3408a586ad96a3c9ae9c231fd15a3/src/time/format.go#L73).

```go
  goodOldTimes := "2006-01-02T15:04:05Z07:00 [INFO] Loading King of Fighters '97 ROM"
  timestampMarked := marker.Mark(goodOldTimes, marker.MatchTimestamp(time.RFC3339), color.New(color.FgBlue))
  fmt.Println(timestampMarked)
```

---

## Builder way

If you want to mark different patterns in the same string, marker builder is neater way to do this.

```go
rhyme := "I scream, you all scream, we all scream for ice cream."
b := &marker.MarkBuilder{}
r, _ := regexp.Compile("([a-z]?cream)")

markedWithBuilder := b.SetString(rhyme).
  Mark(marker.MatchN("for ice", 1), color.New(color.FgRed)).
  Mark(marker.MatchAll("all"), color.New(color.FgMagenta)).
  Mark(marker.MatchRegexp(r), color.New(color.FgYellow)).
  Build()

fmt.Println(markedWithBuilder)
```

---

## Writing your custom `Matcher`

As you see in above examples, **Mark** function takes an **MatcherFunc** to match the patterns in given string and colorize them.
A **Matcher** is a simple closure that returns a **MatcherFunc** to be called by **Mark** function to get **Match** information to put colorized versions of patterns into template.

Lets write our own custom Matcher that matches first encounter of given pattern.

### Example

```go

  func MatchFirst(pattern string) marker.MatcherFunc {
    return func(str string) marker.Match {
      return marker.Match{
        // replace first matching pattern with %s
        Template: strings.Replace(str, pattern, "%s", 1),
        // patterns to be colorized by Mark, in order
        Patterns: []string{pattern},
      }
    }
  }
```

You can also check built-in [matchers](https://github.com/cyucelen/marker/blob/master/matcher.go) for inspiration.

# Contribution

I would like to accept any contributions to make Marker better and feature rich. So feel free to contribute your features(i.e. more **Matcher**s!), improvements and fixes.

## Have fun!

repository: cyucelen/marker

gha_language: Go

repo_name: cyucelen/marker


text:
# double-slash-comment-whitespace-inside

Require or disallow whitespace after the `//` in `//`-comments

```scss
a {
  width: 10px; // inline-comment
/*               ↑
 * Such whitespace */
```

This rule only works with SCSS-like [single-line comments](https://sass-lang.com/documentation/syntax/comments) and ignores CSS comments (`/* */`).

Any number of slases are allowed at the beginning of the comment. So `/// comment` is treated the same way as `// comment`.

Note that a newline is not possible as a whitespace in terms of this rule as `//`-comments are intended to be single-line.

## Options

`string`: `"always"|"never"`

### `"always"`

There *must always* be whitespace after the `//` inside `//`-comments.

The following patterns are considered warnings:

```scss
//comment
```

The following patterns are *not* considered warnings:

```scss
// comment
```

```scss
///   comment
```

### `"never"`

There *must never* be whitespace after the `//` inside `//`-comments.

The following patterns are considered warnings:

```scss
// comment
```

The following patterns are *not* considered warnings:

```scss
//comment
```

```scss
///comment
```

repository: kyleterry/sufr

repo_name: kyleterry/sufr


text:
# CHANGELOG

This file is a manually maintained list of changes for each release. Feel free
to add your changes here when sending pull requests. Also send corrections if
you spot any mistakes.

## 0.3.0 (2014-12-03)

* Implement [json-query-language specification v0.4](https://github.com/clue/json-query-language/releases/tag/v0.4.0):

  * Feature: Add new `$contains` comparator
    (#10 by @clu and #6 by @ludmillaZ)

  * Feature: Support root matching
    (#13)

  * Feature: Support multiple operators
    (#14)

  * BC break: An empty `$or` combinator should never match
    (#9)

* Feature: Support matching objects in place of assoc arrays
  (#7)

* Refactor all operators into a map in order to ease extending
  (#12)

## 0.2.0 (2014-11-04)

* Feature: Support dotted notation for nested attributes
  (#5 by @maximkou)

* Remove: Remove boolean filters (dropped from spec v0.3)
  (#8)

## 0.1.0 (2014-08-21)

* First tagged release

## 0.0.0 (2014-08-20)

* Initial concept

repository: dcarbone/php-json-query

repo_name: dcarbone/php-json-query


text:
# vim-svelte

Vim syntax highlighting for [svelte](https://svelte.dev/).

This was initially forked from
[posva/vim-vue](https://github.com/posva/vim-vue).

## Installation

### Install with [Vundle](https://github.com/VundleVim/Vundle.vim)

```viml
Plugin 'burner/vim-svelte'
```

### Install with [Plug](https://github.com/junegunn/vim-plug)

```viml
Plug 'burner/vim-svelte'
```

### Install with [Pathogen](https://github.com/tpope/vim-pathogen)

```bash
cd ~/.vim/bundle && \
git clone https://github.com/burner/vim-svelte.git
```

### Install without a plugin manager (Vim 8)

```bash
git clone https://github.com/burner/vim-svelte.git ~/.vim/pack/plugins/start/vim-svelte
```

## Contributing

If your language is not getting highlighted open an issue or a PR with the fix.
You only need to add a line to the `syntax/svelte.vim` file.

Don't forget to write [Vader](https://github.com/junegunn/vader.vim) tests for
the code you write. You can run the tests by executing `make test` in the
terminal.

repository: burner/vim-svelte

gha_language: Vim script

repo_name: burner/vim-svelte


text:
# Beer song

99 Bottles of Beer is an algorithmic children's song which has just enough complexity to teach you deep truths about object oriented programming.

Our goal is to produce the lyrics to that beloved classic, that field-trip favorite. You can find them @ [`dcarral/99bottles-polyglot/SONG_LYRICS.md`](https://github.com/dcarral/99bottles-polyglot/blob/master/SONG_LYRICS.md).

## Running the Test Suite

1. Get [PHPUnit].

        % wget --no-check-certificate https://phar.phpunit.de/phpunit.phar
        % chmod +x phpunit.phar

2. Execute the tests.

        % phpunit.phar beer-song_test.php

[PHPUnit]: http://phpunit.de


text:
+++
title = "aws_network_firewall_logging_configuration Resource"
platform = "aws"
draft = false
gh_repo = "inspec-aws"

[menu.inspec]
title = "aws_network_firewall_logging_configuration"
identifier = "inspec/resources/aws/aws_network_firewall_logging_configuration Resource"
parent = "inspec/resources/aws"
+++

Use the `aws_network_firewall_logging_configuration` InSpec audit resource to test properties of a single specific AWS Network Firewall Logging Configuration.

The `AWS::NetworkFirewall::LoggingConfiguration` resource defines the destinations and logging options for an [`AWS::NetworkFirewall::Firewall`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html).

For additional information, including details on parameters and properties, see the [AWS documentation on AWS Network Firewall Logging Configuration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-loggingconfiguration.html).

## Installation

{{% inspec_aws_install %}}

## Syntax

Ensure that the firewall exists.

```ruby
describe aws_network_firewall_logging_configuration(firewall_name: 'FIREWALL_NAME') do
  it { should exist }
end
```

## Parameters

`firewall_name` _(required)_

: The Amazon Resource Name (ARN) of the firewall.

## Properties

`firewall_arn`
: The Amazon Resource Name (ARN) of the firewall.

`logging_configuration_log_destination_configs_log_type`
: The type of log to send.

`logging_configuration_log_destination_configs_log_destination_type`
: The type of storage destination to send these logs to.

`logging_configuration_log_destination_configs_log_destination`
: The named location for the logs, provided in a key:value mapping that is specific to the chosen destination type.

## Examples

**Ensure a firewall ARN is available.**

```ruby
describe aws_network_firewall_logging_configuration(firewall_name: 'FIREWALL_NAME') do
  its('firewall_arn') { should eq 'FIREWALL_ARN' }
end
```

**Ensure that the log type is available.**

```ruby
describe aws_network_firewall_logging_configuration(firewall_name: 'FIREWALL_NAME') do
    its('logging_configuration_log_destination_configs_log_type') { should eq 'LOG_TYPE' }
end
```

## Matchers

{{% inspec_matchers_link %}}

The controls will pass if the `describe` method returns at least one result.

### exist

Use `should` to test that the entity exists.

```ruby
describe aws_network_firewall_logging_configuration(firewall_name: 'FIREWALL_NAME') do
  it { should exist }
end
```

Use `should_not` to test the entity does not exist.

```ruby
describe aws_network_firewall_logging_configuration(firewall_name: 'FIREWALL_NAME') do
  it { should_not exist }
end
```

### be_available

Use `should` to check if the entity is available.

```ruby
describe aws_network_firewall_logging_configuration(firewall_name: 'FIREWALL_NAME') do
  it { should be_available }
end
```

## AWS Permissions

{{% aws_permissions_principal action="NetworkFirewall:Client:DescribeFirewallResponse" %}}

repository: inspec/inspec-aws

repo_name: inspec/inspec-aws


text:
# Build Process

This module is built using Apache Maven.

The build steps are defined in `pom.xml` and the entire build process is initiated through a simple
`mvn -e install`.

## Maven Script

As of now, this is largely based on other existing modules' `pom.xml`. There appear to be a few
efforts to standardize versioning of the sub-components (ref FOLSPRINGB-8, FOLSPRINGB-3), however,
none have produced results.

## Module Descriptor

This is used by Okapi to get information about the module.

### `provides`

The main block (besides the meta `_tenant` present in all module) is the `mod-calendar` block
(`@artifactId@`). This block contains the schema of what API calls are allowed and all the
information about them. API versioning here is inconsistent with the package version itself,
however, should be consistent with the OpenAPI YAML in `src/resources/api`.

### `permissionSets`

This defines the permissions applicable to the module. These should not be used directly and instead
inherited based on UI-level permissions (declared in that `package.json`).

### `launchDescriptor`

This defines how Okapi should configure an environment in which to run the module. In our case, that
is done through a Docker image (configuration for this not yet created).

The environment variables provide credentials and database information and are further explained in
the main [README.md](../README.md)

## Deployment Descriptor

The deployment descriptor is much more straightforward -- all this does is run the JAR produced by
Maven. The `exec` key found in many of these descriptors is ignored and pointless -- at some point
they hope to replace the majority of this declare/deploy process with a single install step.

## Compilation Step

`mvn -e clean install` will fully compile the actual module code from scratch, generating the
classes as well as other boilerplate (from Lombok, OpenAPI, etc.). Maven is also responsible for
generating the deployment and module descriptors.

## Dockerization

To build the docker module, use:

```sh
docker build -t docker.ci.folio.org/mod-calendar .
```

Docker will automatically expand the tag's version to `mod-calendar:latest`, therefore, this does
not need to be manually specified. The `docker.ci.folio.org` path is required as Okapi will _only_
search this repository when the module is deployed.

repository: folio-org/mod-calendar

gha_language: Java

repo_name: folio-org/mod-calendar


text:
## Advanced Lane Finding Project

---

The goals / steps of this project are the following:

* Compute the camera calibration matrix and distortion coefficients given a set of chessboard images.
* Apply a distortion correction to raw images.
* Use color transforms, gradients, to create a thresholded binary image.
* Apply a perspective transform to rectify binary image ("birds-eye view").
* Detect lane pixels and fit to find the lane boundary.
* Determine the curvature of the lane and vehicle position with respect to center.
* Warp the detected lane boundaries back onto the original image.
* Output visual display of the lane boundaries and numerical estimation of lane curvature and vehicle position.

### Here I will consider the [rubric points](https://review.udacity.com/#!/rubrics/571/view) individually and describe how I addressed each point in my implementation.

---

### Camera Calibration

#### 1. Briefly state how you computed the camera matrix and distortion coefficients. Provide an example of a distortion corrected calibration image.

I calculated using chess board images(images in '../camera_cal/').
First, I find chess board corners using cv2.findChessboardCorners(). Add this found corners to 'imgpoints' array.
I checked it with cv2.drawChessboardCorners() to see if it was actually found. One example is the following image. This code is implemented with `findPoints()` of class FindLane of `py_code/find_lane.py`.

Next, I calculate the camera distortion using 'imgpoints' array. At that time, I use cv2.calibrateCamera(). With this function, parameters(mtx, dist) necessary for camera distortion correction will be returned. This code is implemented with `calcDistort()` of class FindLane in `py_code/find_lane.py`.
Also, once this is done, the parameters required for camera distortion correction are given to the FindLane class.

Finally, cv2.undistort() is executed on the image using the parameters(mtx, dist) to correct distortion.
This code is implemented with `undistImage()` of class FindLane in `py_code/find_lane.py`.
One example is the following image.

### Pipeline (single images) (in `py_code/image_main.py`)

#### 1. Provide an example of a distortion-corrected image.

I apply `undistImage()` to 'test_images / test1.jpg'.
To demonstrate this step, I will describe how I apply the distortion correction to one of the test images like this one:

#### 2. Describe how (and identify where in your code) you used color transforms, gradients or other methods to create a thresholded binary image.  Provide an example of a binary image result.

I used a combination of color and gradient thresholds to generate a binary image (thresholding steps at lines 215 through 263 in `color_gradient.py`).  Here's an example of my output for this step. The blue part is taken out from the color space information. The green part is taken from the gradient.

#### 3. Describe how (and identify where in your code) you performed a perspective transform and provide an example of a transformed image.

I use `birdsEye()` class `WarpRegionMask` to do the perspective transform. `birdsEye()` appears in lines 29 through 39 in the file `py_code/warp_and_region_mask.py`. In order to do perspective transform, you need to create the class `WarpRegionMask` by giving the parameters source(`src`) and destination (`dst`) points.
I find the source and destination points by try-and-error. The points are below.
The points are for project_video.mp4. It must be changed in the challenge video or harder challenge video.
```python
src = np.float32(
    [[685, 450],
     [1120, 720],
     [190, 720],
     [595, 450]])
dst = np.float32(
    [[900, 0],
    [900, 720],
    [320, 720],
    [595, 450]])
```

I verified that my perspective transform was working as expected by drawing the `src` and `dst` points onto a test image and its warped counterpart to verify that the lines appear parallel in the warped image.

#### 4. Describe how (and identify where in your code) you identified lane-line pixels and fit their positions with a polynomial?

I perform a perspective transform to binary image of color and gradient thresholds. And add the place where the pixel is 1 in the column direction. Then below the middle of the histogram, the place with the largest value is recognized as the left lane. Also above the middle of the histogram, the place with the largest value is recognized as the right lane.
Here's an example of my output for this step.

Next, based on the index of the left lane and right lane found in the histogram, execute the sliding window and find the pixels of the left lane and the right lane respectively. This code is in `FindLane.find_lane_pixels()` of `py_code/find_lane.py`.
Here's an example of my output for this step.　The pixel inside this green window is the lane pixel.

Finally, apply `np.polyfit()` to this pixels and approximate as a curve of a quadratic function of the left lane and the right lane respectively. This function calculate A, B and C below the equation.

$$ f(y) = Ay^2 + By + C $$

This code is in `FindLane.fit_polynomial()` of `py_code/find_lane.py`.
Here's an example of my output for this step. The inside of the recognized lane is colored in green.

#### 5. Describe how (and identify where in your code) you calculated the radius of curvature of the lane and the position of the vehicle with respect to center.

The curvature is calculated using coefficients of the quadratic function obtained above. The curvature formula is as follows:

$$ R_{curve} = \frac{(1+(2A + B)^2)^{\frac{3}{2}}}{|2A|} $$

This is obtained for each of the left and right lanes, and the average is the curvature. Also, this code is in `FindLane.measure_curvature_real()` of `py_code/find_lane.py`.

The ideal car position is the middle of the recognized left lane and right lane, and the actual car position is the position of the center of the image. Then, I calculate this difference. This code is in `FindLane.calcDiffCarPosition()` of `py_code/find_lane.py`.

Finally, I insert this curvature and the position of the car in the image. Here's an example of my output for this step.

#### 6. Provide an example image of your result plotted back down onto the road such that the lane area is identified clearly.

I implemented this step in `WarpRegionMask.returnBirdsEye()` of `py_code/warp_and_region_mask.py`. Then, I insert this curvature and the position of the car in the image. Here's an example of my output for this step.

---

### Pipeline (video)

#### 1. Provide a link to your final video output.  Your pipeline should perform reasonably well on the entire project video (wobbly lines are ok but no catastrophic failures that would cause the car to drive off the road!).

Here's a [link to my video result](./test_videos_output/project_video.mp4)

---

### Discussion

#### 1. Briefly discuss any problems / issues you faced in your implementation of this project.  Where will your pipeline likely fail?  What could you do to make it more robust?

- In pipeline(single image) perspective transform, `src` is statically determined. If we can find this dynamically, we believe that recognition accuracy will improve.
- When executing a pipeline with challenge video, it fails like the following picture. This is because it responds to the black line by the gradient thresholds. So it may improved by subtracting the place where the black in the grayscale.

- In harder_challenge_video, there is a problem that the sun light is reflected on the windshield of the car and the line can not be recognized. This implies that it is the limit when recognizing a lne by a camera.

repository: Ryuta-S/CarND-Advanced-Lane-Lines

repo_name: Ryuta-S/CarND-Advanced-Lane-Lines


text:
General advice
==============

Look for garbage collection bottlenecks.
If you are not getting speedups, set ridiculous large nursery size, more than you'll need.
Otherwise, a good nursery size should (usually) not be larger than L2 cache (256 Kb per core on intel Haswell).

Coding
======

Low-level: `par` and `pseq`
---------------------------

Import `Control.Parallel` and use `par` to create parallel sparks, and `pseq` to force sequences (don't use `seq`, as the optimizer may do some reordering that ruins your parallelism).

Often becomes messy, with structuring code and sematnic code mixed everywhere.

You can use Strategies to separate concerns.

Mid-level: Strategies
---------------------

High-level: `Par` monad
-----------------------

Compiling and running
=====================

[Using Symmetric Multiprocessor](https://downloads.haskell.org/~ghc/7.0.4/docs/html/users_guide/using-smp.html)

In short:

```sh
ghc -O2                  \ # When running for performance, always optimize.
    --threaded           \ # Allow threading.
    --rtsopts            \ # Enable run-time system flags.
    --eventlog           \ # Enable profiling, ThreadScope uses this log.
    --feager-blackholing \ # See below
    MyHaskellProgram.hs
```

Run with

```sh
./MyHaskellProgram +RTS -N[x] -s
```

where `x` is the number of cores (usually actual cores, not hyperthreads, but do experiment), minus 1 (leave one for the OS).
The `-s` flag gives statistics.
On my Intel Haswell CPU, it would be

```sh
./MyHaskellProgram +RTS -N3 -s
```

In the statistics output, look at `Total time`, which gives total time on all cores and total time elapsed in the real world.

The stats include information about the sparks:
 - `converted` are the ones that were actually useful.
 - `overflowed` means the spark pool overflowed and some sparks were discarded.
 - `GC'd` where just garbage collected, never even touched.
 - `dud` first argument to `rpar` was already evaluated.
 - `fizzled` means the spark was stolen by another processor than the one that created it.

Blackholing
-----------

Paper: "Haskell on a Shared-Memory Multiprocessor."

Blackholing means that when a thread starts evaluating a thunk, it will mark it as in progress.
It's a bit like a lock, except other threads don't have to respect it, it's just a suggestion.
It helps threads avoid doing duplicated work (even though it can happen, if two threads grab the same piece of work at the same time).
The flag `-feager-blackholing` is sensible and usually increases performance.

The tools
=========

ThreadScope
-----------

Under the hood (GHC)
====================

An unevaluated thunk is a a header pointing to relevant data to evaluate a thunk, and bindings for free variables.
When the thunk has been evaluated, the free variables part is replaced by the actual result, and the header uses the `IND` instruction to point into it.
In parallel GHC, there is a result word added between header and free variable bindings so the written result is not accidentally interpreted as part of the free variable bindings by another thread.

![thunks](thunks.png)

Papers:
- "Haskell on a Shared-Memory Multiprocessor" (multiproc05) <http://community.haskell.org/~simonmar/papers/multiproc.pdf>

Greyholing
----------

Also called eager blackholing.
Means blackholing without obtaining a lock on the header.
This leaves a very short window for two Haskell threads to enter the same thunk and cause duplicated work.
For some reason, this window is only between two instructions, but I don't get why [multiproc05, Sect. 4.4].

repository: hjorthjort/wiki

path: /wiki/Computer Science/Programming Languages/Haskell/Parallel Haskell.md

filename: Parallel Haskell.md

repo_name: hjorthjort/wiki