text:
# Demo

A small demo of this search engine is available [here](https://midnight-cms.com/search.php).
This demo is made with a dataset of 1000 movies from 2006 and 2016. The results are provided as you type.

# Installation

install this library via Composer :

```
composer require vfou/php-search 0.6
```

# Quick start

The search engine is packaged with an example schema that allow you to take hand quickly on the library.

at first you need to load the search engine.

```php
use VFou\Search\Engine;

$engine = new Engine();
```

You can give an array in parameter of the class constructor, see [the wiki's configuration page](https://github.com/VincentFoulon80/php-search/wiki/Configuration) for more informations.

By constructing the engine, there'll be some directory that appeared next to your index file :
- var/engine/index
- var/engine/documents
- var/engine/cache

(All these directories can be changed with the configuration array)

At first, you have to give to the engine something to search for. We'll create some documents and ask the engine to index them.

```php
$doc = [
    "id" => 1,
    "type" => "example-post",
    "title" => "this is my first blog post !",
    "content" => "I am very happy to post this first post in my blog !",
    "categories" => [
        "party",
        "misc."
    ],
    "date" => "2018/01/01",
    "comments" => [
        [
            "author" => "vincent",
            "date" => "2018/01/01",
            "message" => "Hello world!"
        ],
        [
            "author" => "someone",
            "date" => "2018/01/02",
            "message" => "Welcome !"
        ]
    ]
];
$engine->update($doc);
$doc = [
    "id" => 2,
    "type" => "example-post",
    "title" => "This is the second blog post",
    "content" => "a second one for fun",
    "date" => "2018/01/05",
    "categories" => [
        "misc."
    ],
    "comments" => [
        [
            "author" => "someone",
            "date" => "2018/01/05",
            "message" => "Another one ?!"
        ]
    ]
];
$engine->update($doc);
```

Note : you can also put these two documents in one array and use the updateMultiple() function for indexing multiple documents at once.

Now that you documents are indexed, you can use the search function and fetch results :

```php
$response = $engine->search('second post');
var_dump($response);

$response = $engine->search('post');
var_dump($response);
```

For more informations about this library, go to [the wiki page of this repository](https://github.com/VincentFoulon80/php-search/wiki)

# License

This library is under the MIT license. [See the complete license](LICENSE)

repository: singeryo/php-search

repo_name: singeryo/php-search


text:
Webstrates
=========

Webstrates is a research prototype enabling collaborative editing of websites through DOM manipulations realized by [Operational Transformation](http://en.wikipedia.org/wiki/Operational_transformation) using [ShareJS](https://github.com/share/ShareJS). Webstrates observes changes to the DOM using [MutationObservers](https://developer.mozilla.org/en/docs/Web/API/MutationObserver).

Webstrates itself is a webserver and transparent web client  that persists and synchronizes any changes done to the Document Object Model (DOM) of any page served between clients of the same page, including changes to inlined JavaScript or CSS. By using [transclusions](https://en.wikipedia.org/wiki/Transclusion) through iFrames we achieve an application-to-document like relationship between two webstrates. The 'application', however, is a malleable and collaborative object as well, as any change to its DOM will persist and be shared between clients. With examples built upon Webstrates we have demonstrated how transclusion combined with the use of CSS injection and the principles of [instrumental interaction](https://www.lri.fr/~mbl/INSTR/eintroduction.html) can allow multiple users to collaborate same webstrate through highly personalized and extensible editors. You can find the academic paper and videos of Webstrates in action at [webstrates.net](http://www.webstrates.net).

Installation
============
Requirements:
 * [MongoDB](http://www.mongodb.org)
 * [NodeJS](http://nodejs.org)
 * [CoffeeScript](http://coffeescript.org)

To install:
 * Clone this repository
 * From the repository root do:
    * npm install
    * cake build
    * coffee webstrates.coffee

Alternatively [use Vagrant](utils/vagrant) to create and run a VM configured with Webstrates.

Basic Usage
===========
Webstrates serves (and creates) any named webpage you ask for.

Simply navigate your browser* to http://localhost:7007/[some_page_name].

Now any changes you make to the DOM either through JavaScript or the developer tools will be persisted and distributed to any other clients that may have the page open.

See the [tutorial](tutorial) for an introduction to developing with Webstrates.

\* Webstrates is currently only tested under Chrome

jQuery
------

The Webstrates client includes jQuery (currently version 1.7.2). It is therefore possible to use jQuery directly (i.e. by using *$*) without having to include jQuery in a webstrate it self.

Advanced Use
============

Advanced creation of webstrates
-------------------------------
 * GET on *http://localhost:7007/new* will create a new webstrate with a random id
 * GET on *http://localhost:7007/new?prototype=foo* will create a new webstrate with a random id using the webstrate *foo* as prototype
 * GET on *http://localhost:7007/new?prototype=foo&id=bar* will create a new webstrate with id *bar* using the webstrate *foo* as prototype
 * GET on *http://localhost:7007/new?prototype=foo&v=10&id=bar* will create a new webstrate with id *bar* using version 10 of the webstrate *foo* as prototype

Accessing the history of a webstrate
------------------------------------
 * GET on *http://localhost:7007/some\_webstrate?v* will return the version number of *some\_webstrate*
 * GET on *http://localhost:7007/some\_webstrate?v=10* will return the raw HTML of version 10 of *some\_webstrate*
 * GET on *http://localhost:7007/some\_webstrate?v=head* will return the raw HTML of the current version of *some\_webstrate*
 * GET on *http://localhost:7007/some\_webstrate?ops* will return a list of all operations applied to *some\_webstrate* (beware: can be a huge list)

DOM events
----------
Webstrates triggers a few events on the DOM.

###Events when a webstrate has finished loading
When the Webstrates client has finished loading a webstrate it will trigger a *loaded* event on the *document*.

```javascript
document.addEventListener('loaded', function(e) {
	//The Webstrates client has now finished loading data from the server
});
````

If the webstrate is transcluded in an iframe the webstrate will trigger a *transcluded* event on the *iframe* element in the parent webstrate.

```javascript
some_iframe.addEventListener('transcluded', function(e) {
	//The transcluded webstrate has finished loading data from the server
});
```

###Events on text nodes
Webstrates does finegrained synchronization on text nodes, however to update a textnode in the browser, the whole text is replaces. To allow more finegrained interaction with text Webstrates raises the following two events on textnodes:

```javascript
textNode.addEventListener("insertText", function(e) {
	e.detail.value; //Stores the inserted text
	e.detail.position; //Stores the position of the insert
});
textNode.addEventListener("deleteText", function(e) {
	e.detail.value; //Stores the deleted text
	e.detail.position; //Stores the position of the delete
});
```

###Authentication

####Server level basic authentication
To enable basic authentication on the Webstrates server add the following to *config.json*:
```javascript
"basic_auth": {
	"realm": "Webstrates",
	"username": "some_username",
	"password": "some_password"
}
```

####Per webstrate access rights (VERY EXPERIMENTAL)
It is possible to enable per webstrate access rights using [GitHub](https://github.com) as authentication provider.
This requires registering an OAuth application with GitHub [here](https://github.com/settings/applications/new).

Add the following to your *config.json*:

```javascript
"auth": {
	"secret": "This is a secrret",
	"cookieDuration":<PHONE_NUMBER>0,
	"providers": {
		"github": {
            "node_module": "passport-github",
            "config": {
                "clientID": "GITHUB CLIENT ID",
                "clientSecret": "GITHUB SECRET",
                "callbackURL": "http://<your server>/auth/github/callback"
            }
		}
	}
}
```

Access rights are added to a webstrate as an attribute on the *HTML* tag.

```html
<html data-auth="[{"username": "cklokmose", "provider": "github", "permissions": "rw"}, {"username": "anonymous", "provider": "", "permissions": "r"}]">
...
</html>
```

The above example provides the user *cklokmose* authenticated using GitHub permissions to read and write, while anonymous users only have read access.

Users can log in through http://localhost:7007/auth/github

In the future more authentication providers will be supported.

Disclaimer
==========
Webstrates is work-in-progress and the mapping between the DOM to a ShareJS document is not 100% water proof yet.
After each set of DOM manipulations Webstrate checks the integrity of the mapping between DOM and ShareJS document, and may throw an exception if something is off. If this happens just reload the page.

License
=======

This work is licenced under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)

repository: bouvin/Webstrates

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: bouvin/Webstrates


text:
# ManagedFiles

The pipeline library supports the loading of Jenkins managed files
references from json files by using the [Pipeline Utility Steps Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Utility+Steps+Plugin)

These references can be used to auto lookup ManageFile ids based on
patterns. This can be useful to provide maven settings based on the `scm` url.

Based on the rules for writing libraries these json files must be places
below the resources folder.

:bulb: The library only works with references/ids so your config files
remain safe in the Jenkins instance.

:bulb: See also [`execMaven`](../vars/execMaven.md) step

:bulb: See
[Extending with Shared Libraries](https://jenkins.io/doc/book/pipeline/shared-libraries/)
for more information

# Table of contents
* [JSON Format](#json-format)
* [Using managed files](#using-managed-files)
* [Step examples](#step-examples)

* [Related classes](credentials.md#related-classes)

## JSON Format

In order to parse the files correctly they must be in the following format:

```json
[
  {
    "pattern": "git\.yourcompany\.tld\/group1\/project1",
    "id": "group1-project1-managed-file",
    "name": "Local maven settings group1/project1",
    "comment": "Deploy maven setttings for project1 from group1 for nexus.yourcompany.tld"
  },
  {
      "pattern": "github\.com\/wcm-io",
      "id": "wcm-io-maven-global-settings",
      "name": "global maven settings wcm-io",
      "comment": "Global maven settings to build wcm-io projects"
  }
]
```

The properties `pattern` and `id` are mandatory, the `comment` and `name` properties
are optional and can be omitted.

## Using managed files

In order to use managed files inside your pipeline script you have to
* load
* parse and
* search for a managed file based on a pattern

:bulb: The pattern is treated as regular expression

The Example is based on the `execMaven` step.
This step loads a json and matches the incoming scm url against the entries to find matching settings ids to provide for the maven `shell` call.

```groovy
import io.wcm.devops.jenkins.pipeline.managedfiles.ManagedFile

ManagedFile autoLookupMavenSettings(String jsonPath, String scmUrl) {
    // load and parse the json
    JsonLibraryResource jsonLibraryResource = new JsonLibraryResource(steps, jsonPath)
    JSON managedFilesJson = jsonLibraryResource.load()
    ManagedFileParser parser = new ManagedFileParser()
    List<PatternMatchable> managedFiles = parser.parse(managedFilesJson)

    // match the scmUrl against the parsed mangedFiles and get the best match
    PatternMatcher matcher = new PatternMatcher()
    return (ManagedFile) matcher.getBestMatch(scmUrl, managedFiles)
}

void getGlobalMavenSettings() {
    ManagedFile managedFile = autoLookupMavenSettings('resources/managedfiles/maven/global-settings.json', 'git@git.yourcompany.tld:group1/project1')
    echo "Managed file id: '${managedFile.id}'"
}
```
The result in this example would be a output in the log like:

    Managed file id: 'group1-project1-managed-file'

:bulb: Refer to [PatternMatching](https://github.com/wcm-io-devops/jenkins-pipeline-library/blob/master/docs/pattern-matching.md) for more
information on how the `getBestMatch` algorithm works

### Step examples

#### configFileProvider
```groovy
// load and parse the json
JsonLibraryResource jsonLibraryResource = new JsonLibraryResource(steps, 'resources/path/to/config.json')
JSON managedFilesJson = jsonLibraryResource.load()

ManagedFileParser parser = new ManagedFileParser()
List<PatternMatchable> managedFiles = parser.parse(managedFilesJson)

// match the scmUrl against the parsed mangedFiles and get the best match
PatternMatcher matcher = new PatternMatcher()
ManagedFile managedFile = matcher.getBestMatch('git@git.yourcompany.tld:group1/project1', managedFiles)

List configFiles = []
if (managedFile) {
    configFiles.push(configFile(fileId: managedFile.getId(), targetLocation: "", variable: 'MY_VARIABLE'))
}

configFileProvider(configFiles) {
    // some block
}
```

repository: wcm-io-devops/jenkins-pipeline-library

gha_language: Groovy

repo_name: wcm-io-devops/jenkins-pipeline-library


text:
---
category: Virtual Assistant
subcategory: Handbook
title: Testing
description: Your Virtual Assistant can be tested just like any other Bot Framework Bot; the most common tools are the [Bot Framework Emulator](https://aka.ms/botframework-emulator) and [Web Chat](https://aka.ms/botframework-webchat).
order: 6
toc: true
---

# {{ page.title }}
{:.no_toc}
{{ page.description }}

## Unit Testing

Take advantage of the Test project that is available when you [Create a New Skill]({{site.baseurl}}/skills/tutorials/create-skill/csharp/1-intro).
Follow along with the Flow tests to see a basic usage of how to mock activities from a user and validate the bot responses.
If you'd like to take this further, you can explore the tests of a published skill for a deep dive on APIs, mocking LUIS, and more.

## Client Testing

### Bot Framework Emulator
{:.no_toc}

The Bot Framework Emulator can be used by opening the .bot file provided within the Project directory. You must have completed the [deployment steps]({{site.baseurl}}/virtual-assistant/tutorials/create-assistant/csharp/4-provision-your-azure-resources) first and should ensure you have the [latest emulator](https://aka.ms/botframework-emulator) installed.

> Authentication scenarios cannot be fully tested within the Emulator at this time. The Web Test Harness provides a workaround for this.

### Direct Line Configuration
{:.no_toc}

For device integration and use of the test harnesses below you need to publish your assistant to your Azure subscription and then configure the [Direct Line](https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-directline?view=azure-bot-service-3.0) channel.

- Start with deploying your assistant to Azure
- Then use the following CLI tool shown below, the key will be shown in the `key` field. This will not be accessible again so ensure you keep this securely and for the steps below.

```shell
az bot directline create -g YOUR_RESOURCE_GROUP_NAME --name YOUR_BOT_NAME
```

### Direct Line Sample
{:.no_toc}

A simple Console App is provided to demonstrate the base communication interaction required with a Virtual Assistant and highlights how a device can interact with a Virtual Assistant. The Sample enables you to conduct a conversation with a Virtual Assistant and demonstrates how responses can be processed including Adaptive Cards along with retrieving the **Speak** property which is the Speech friendly variation of the response.

Examples are also provided on how events can be sent (device activation for example) as well as receiving responses to perform an action locally (e.g. change the navigation system or radio station).

Update the code to reflect the Direct Line secret you created previously.

license: MIT

repository: gamontal/botframework-solutions

gha_license_id: MIT

repo_name: gamontal/botframework-solutions


text:
# xpatest_components

Table xpatest_components contains a list of required components, system properties and optional or mandarory packages / 3'rd party software. It's used for checking the installation / configuration.

## Fields
### id
unique id of the component (numeric)

### name
(unique) name of the component, used as identifier as well in certain contexts

### type
component type with one of the following values:
+ DB := database file
+ L  := Magic logical name
+ X  := Executable / Binary.

### location relative
### location absolute
In case its a file-type component like one with a type=X for executables the location will get stored here. There's functionality in XPATEST which will try to find required components if the absolute path here is invalid or empty. Check [](../Samples/XpaTUtils/ OUTIL003_Components.md) for more information regarding that feature

### description
brief description of the component entry

### existing
Used in the configuration program's. Will be set to Y there if the component exists and is configured properly so that it actually can be used in the application.

repository: asedl/XpaDemo

repo_name: asedl/XpaDemo


text:
# Website Classification for identifying illicit markets

This repository contains the project for classifying websites in collaboration with the ESC. It is an optional semester project in Data Science COM-508.

## Google tutorial
https://developers.google.com/machine-learning/guides/text-classification/

## Result
The analysis resulted in 652 suspected illicit websites. The csv file containing the domain links of these websites can be found under /data/suspected.csv.

## Dependencies
- pandas 0.24.1
- scikit-learn 0.20.2
- numpy 1.15.4
- pytorch 1.0.1
- matplotlib 3.0.2
- seaborn 0.9.0
- jupyterlab 0.35.4

## How to run
- Install dependencies
- put original google.json file in folder /data/
- Open and run /src/webshop_classification.ipynb
- /data/labelled_unique.csv can be replaced with other labelled data

## Possible further work
- There are roughly 650 display names labelled with 1. These could further be investigated by hand
- The resulting adapted dataset could then be used to retrain the multilayer perceptron
- In a next step the actual html code of the websites could be analyzed instead of just the snippet

repository: miallema/ESC

repo_name: miallema/ESC


text:
# Tools for the shell bash

## List of the commands

-   `lsbin` list all binaries (executables) found in `$PATH`.
-   `clean-hs` clean history files, per example, `~/.bash_history`.
-   `run` run or (compile and run) any file.
-   `parse` tools for parser paths in the terminal.
-   `color` Command for display text with colors and styles.
-   `yon` Script for parser desition like yes/no.
-   `repocheck` Script for check if some git repository have dirty (unstaged & uncommited).

## Installation:

```shell
mkdir .shell-tools
git clone https://github.com/rich-97/shell-tools ~/.shell-tools
```

Write in your `.bashrc` file.

```shell
export PATH=${PATH}:~/.shell-tools/bin
```

## Usage:

For each command you can view the usage with the paramater `-h`.

## LICENSE

[MIT](https://github.com/rich-97/shell-tools/blob/master/LICENSE)


text:
# [anagno/gandi-ddns](https://github.com/anagno/gandi-ddns)

This is a simple container for updating a single zone recond using the Gandi`s LiveDNS.

Live dns is available on www.gandi.net

Obtaining your API Key: http://doc.livedns.gandi.net/#step-1-get-your-api-key

## Usage

Here are some example snippets to help you get started creating a container.

To start the container type:

```
docker run -e DOMAIN=example.com -e SUBDOMAIN=subdomain -e APIKEY=YOURAPIKEY anagno/gandi-ddns
```

It is compatible with docker-compose v3 and can be run on a docker swarm cluster:

```
---
version: '3.4'

services:

  gandi:
    image: anagno/gandi-ddns:latest
    environment:
      DOMAIN: "example.com"
      SUBDOMAIN: "subdomain"
      APIKEY_FILE: /run/secrets/gandi_api_key
    secrets:
      - gandi_api_key

    deploy:
      mode: replicated
      replicas: 1
      resources:
        limits:
         cpus: '0.2'
         memory: 20M
        reservations:
         cpus: '0.1'
         memory: 10M

secrets:
  gandi_api_key:
    external: true

```

# Configuration via environment variables

The available configuration variables are:

| Parameter | Function |
| :----: | --- |
| `-e DOMAIN=example.com`  | the main domain name register in Gandi.net |
| `-e SUBDOMAIN=subdomain` | the subdomain for which you want to update the ip |
| `-e APIKEY=YOURAPIKEY`   | your API key retrieved from Gandi.net |

As an alternative to passing sensitive information via environmental variables, _FILE may be appended to the listed variables,
causing the entrypoint.sh script to load the values for those values from files presented in the container. This is particular
usefull for loading passwords using the [Docker secrets](https://docs.docker.com/engine/swarm/secrets/) mechanism.

# Building the image

Just type:

```
docker build -t anagno/gandi .
```
and you are ready.

repository: llajas/gandi-ddns

repo_name: llajas/gandi-ddns


text:
# XNAT 1.7 LDAP Plugin #

This is a small plugin for XNAT 1.7 which provides properties files for ldap/localdb login credentials.

You can either configure the ldap1-provider.properties file [manually](https://wiki.xnat.org/display/XNAT16/Services.Properties+Configuration)
or you set the values from the commandline.

# Building #

To build the LDAP plugin:

1. If you haven't already, clone this repository and cd to the newly cloned folder.
1. Build the plugin: `./gradlew jar` (on Windows, you can use the batch file: `gradlew.bat jar`). This should build the plugin in the file **build/libs/LdapBiomedia-1.0.0.jar** (the version may differ based on updates to the code). You can configure the property file's parameters like so `./gradlew clean jar -Ppassword=secret -Paddress="ldap://ldapurl:389/dc=my,dc=domain" -Puserdn="cn=MyServiceAccount,ou=MyGroup,dc=my,dc=domain" -Psearch.filter="(uid={0})" -Psearch.base=""`
1. Copy the plugin jar to your plugins folder: `cp build/libs/LdapBiomedia-1.0.0.jar /data/xnat/home/plugins`

# Deploying #

Deploying your XNAT plugin just requires copying it to the **plugins** folder for your XNAT installation.
Once you've copied the plugin jar into your XNAT's **plugins** folder, you need to restart the Tomcat server. Your new plugin will be available as soon as the restart and initialization process is completed.

repository: jianlianggao/xnat-plugins

repo_name: jianlianggao/xnat-plugins


text:
{{{
"title": "Give Admin Access to ElasticBox",
"date": "09-01-2016",
"author": "",
"attachments": [],
"contentIsHTML": false
}}}

### Give Admin Access to ElasticBox
When you sign up for the ElasticBox Enterprise Edition, you get a default administrator account that lets you globally manage settings for all ElasticBox users in your organization. Besides the default account, you can give any ElasticBox user administrator access through the admin console under Organization > Administrators.

**To Give Admin Access**
1. Log in to ElasticBox as the default administrator.
2. Go to the Admin Console located in menu drop-down at the top right corner of your workspace.
   ![admin-access1.png](../images/ElasticBox/admin-access1.png)

3. Under **Organization > Administrators**, type the user’s name in the search field and select to add them.<br>
   ![admin-access2.png](../images/ElasticBox/admin-access2.png)

To revoke administrator privileges for a user, click X against their name under **Organization > Administrators**.

Administrators can manage several org-wide settings that include [user authentication](../ElasticBox/user-authentication.md), the [ElasticBox appliance](../ElasticBox/appliance-overview.md), [provider access](../ElasticBox/provider-access.md), [admin boxes](../ElasticBox/deploymentpolicy-box.md), [webhooks](../ElasticBox/webhooks.md), and [instance tags](../ElasticBox/resource-tags.md). To get a good idea of things you can do, see [Overview](../ElasticBox/admin-overview.md).

### Contacting ElasticBox Support
We’re sorry you’re having an issue in [ElasticBox](//www.ctl.io/elasticbox/). Please review the [troubleshooting tips](./troubleshooting-tips.md), or contact [ElasticBox<EMAIL_ADDRESS>with details and screen shots where possible.

For issues related to API calls, send the request body along with details related to the issue. In the case of a box error, share the box in the workspace that your organization and ElasticBox can access and attach the logs.
* Linux: SSH and locate the log at /var/log/elasticbox/elasticbox-agent.log
* Windows: RDP into the instance to locate the log at ProgramDataElasticBoxLogselasticbox-agent.log

repository: StephanieWong/PublicKB

gha_language: Shell

repo_name: StephanieWong/PublicKB


text:
# Boilerplate

Boilerplate express js

## Installation

Use the package manager [npm](https://www.npmjs.com/) to install this repo.

```bash
npm install
```

or you can use [yarn](https://yarnpkg.com/) to doing installation.

```bash
yarn install
```

## Usage

run program using terminal.

```bash
npm start

```

You can test the endpoint using postman or other software

## Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

## License

[MIT](https://choosealicense.com/licenses/mit/)

repository: biFebriansyah/ExpressBoilerplate

gha_language: JavaScript

repo_name: biFebriansyah/ExpressBoilerplate


text:
# OpenVINO Execution Provider

OpenVINO Execution Provider enables deep learning inference on Intel CPUs, Intel integrated GPUs and Intel® MovidiusTM Vision Processing Units (VPUs). Please refer to [this](https://software.intel.com/en-us/openvino-toolkit/hardware) page for details on the Intel hardware supported.

## Build
For build instructions, please see the [BUILD page](../../BUILD.md#openvino).

## Onnxruntime Graph Optimization level
OpenVINO backend performs both hardware dependent as well as independent optimizations to the graph to infer it with on the target hardware with best possible performance. In most of the cases it has been observed that passing in the graph from the input model as is would lead to best possible optimizations by OpenVINO. For this reason, it is advised to turn off high level optimizations performed by ONNX Runtime before handing the graph over to OpenVINO backend. This can be done using Session options as shown below:-

1. Python API
```
options = onnxruntime.SessionOptions()
options.graph_optimization_level = onnxruntime.GraphOptimizationLevel.ORT_DISABLE_ALL
sess = onnxruntime.InferenceSession(<path_to_model_file>, options)
```

2. C++ API
```
SessionOptions::SetGraphOptimizationLevel(ORT_DISABLE_ALL);
```

## Dynamic device selection
When ONNX Runtime is built with OpenVINO Execution Provider, a target hardware option needs to be provided. This build time option becomes the default target harware the EP schedules inference on. However, this target may be overriden at runtime to schedule inference on a different hardware as shown below.

Note. This dynamic hardware selection is optional. The EP falls back to the build-time default selection if no dynamic hardware option value is specified.
1. Python API
```
import onnxruntime
onnxruntime.capi._pybind_state.set_openvino_device("<harware_option>")
# Create session after this
```
2. C/C++ API
```
Ort::ThrowOnError(OrtSessionOptionsAppendExecutionProvider_OpenVINO(sf, "<hardware_option>"));
```

## ONNX Layers supported using OpenVINO

The table below shows the ONNX layers supported and validated using OpenVINO Execution Provider.The below table also lists the Intel hardware support for each of the layers. CPU refers to Intel®
Atom, Core, and Xeon processors. GPU refers to the Intel Integrated Graphics. VPU refers to USB based Intel® MovidiusTM
VPUs as well as Intel® Vision accelerator Design with Intel Movidius TM MyriadX VPU.

| **ONNX Layers** | **CPU** | **GPU** | **VPU** |
| --- | --- | --- | --- |
| Add | Yes | Yes | Yes |
| ArgMax | Yes | Yes | Yes |
| AveragePool | Yes | Yes | Yes |
| BatchNormalization | Yes | Yes | Yes |
| Cast | Yes | Yes | Yes |
| Clip | Yes | Yes | Yes |
| Concat | Yes | Yes | Yes |
| Constant | Yes | Yes | Yes |
| Conv | Yes | Yes | Yes |
| ConvTranspose | Yes | Yes | Yes |
| Div | Yes | Yes | Yes |
| Dropout | Yes | Yes | Yes |
| Flatten | Yes | Yes | Yes |
| Floor | Yes | Yes | Yes |
| Gather | Yes | Yes | Yes |
| GatherND | Yes | Yes | Yes |
| Gemm | Yes | Yes | Yes |
| GlobalAveragePool | Yes | Yes | Yes |
| Identity | Yes | Yes | Yes |
| LeakyRelu | Yes | Yes | Yes |
| Log | Yes | Yes | Yes |
| LRN | Yes | Yes | Yes |
| LSTM | Yes | Yes | Yes |
| MatMul | Yes | Yes | Yes |
| Max | Yes | Yes | Yes |
| MaxPool | Yes | Yes | Yes |
| Min | Yes | Yes | Yes |
| Mul | Yes | Yes | Yes |
| Pad | Yes | Yes | Yes |
| Pow | Yes | Yes | Yes |
| PRelu | Yes | Yes | Yes |
| ReduceMax | Yes | Yes | Yes |
| ReduceMean | Yes | Yes | Yes |
| ReduceMin | Yes | Yes | Yes |
| ReduceSum | Yes | Yes | Yes |
| Relu | Yes | Yes | Yes |
| Reshape | Yes | Yes | Yes |
| Sigmoid | Yes | Yes | Yes |
| Slice | Yes | Yes | Yes |
| Softmax | Yes | Yes | Yes |
| Squeeze | Yes | Yes | Yes |
| Sub | Yes | Yes | Yes |
| Sum | Yes | Yes | Yes |
| Tanh | Yes | Yes | Yes |
| TopK | Yes | Yes | Yes |
| Transpose | Yes | Yes | Yes |
| Unsqueeze | Yes | Yes | Yes |

## Topology Support

Below topologies from ONNX open model zoo are fully supported on OpenVINO Execution Provider and many more are supported through sub-graph partitioning

## Image Classification Networks

| **MODEL NAME** | **CPU** | **GPU** | **VPU** | **FPGA** |
| --- | --- | --- | --- | --- |
| bvlc_alexnet | Yes | Yes | Yes | Yes* |
| bvlc_googlenet | Yes | Yes | Yes | Yes* |
| bvlc_reference_caffenet | Yes | Yes | Yes | Yes* |
| bvlc_reference_rcnn_ilsvrc13 | Yes | Yes | Yes | Yes* |
| emotion ferplus | Yes | Yes | Yes | Yes* |
| densenet121 | Yes | Yes | Yes | Yes* |
| inception_v1 | Yes | Yes | Yes | Yes* |
| inception_v2 | Yes | Yes | Yes | Yes* |
| mobilenetv2 | Yes | Yes | Yes | Yes* |
| resnet18v1 | Yes | Yes | Yes | Yes* |
| resnet34v1 | Yes | Yes | Yes | Yes* |
| resnet101v1 | Yes | Yes | Yes | Yes* |
| resnet152v1 | Yes | Yes | Yes | Yes* |
| resnet18v2 | Yes | Yes | Yes | Yes* |
| resnet34v2 | Yes | Yes | Yes | Yes* |
| resnet101v2 | Yes | Yes | Yes | Yes* |
| resnet152v2 | Yes | Yes | Yes | Yes* |
| resnet50 | Yes | Yes | Yes | Yes* |
| resnet50v2 | Yes | Yes | Yes | Yes* |
| shufflenet | Yes | Yes | Yes | Yes* |
| squeezenet1.1 | Yes | Yes | Yes | Yes* |
| vgg19 | Yes | Yes | Yes | Yes* |
| vgg16 | Yes | Yes | Yes | Yes* |
| zfnet512 | Yes | Yes | Yes | Yes* |
| arcface | Yes | Yes | Yes | Yes* |

## Image Recognition Networks
| **MODEL NAME** | **CPU** | **GPU** | **VPU** | **FPGA** |
| --- | --- | --- | --- | --- |
| mnist | Yes | Yes | Yes | Yes* |

## Object Detection Networks
| **MODEL NAME** | **CPU** | **GPU** | **VPU** | **FPGA** |
| --- | --- | --- | --- | --- |
| tiny_yolov2 | Yes | Yes | Yes | Yes* |

*FPGA only runs in HETERO mode wherein the layers that are not supported on FPGA fall back to OpenVINO CPU.

repository: microsoft/onnxruntime-openenclave

branch_name: refs/heads/openenclave-public

repo_name: microsoft/onnxruntime-openenclave


text:
[![New Relic Experimental header](https://github.com/newrelic/opensource-website/raw/master/src/images/categories/Experimental.png)](https://opensource.newrelic.com/oss-category/#new-relic-experimental)

# New Relic Prebid Tracker

New Relic monitoring for Prebid.

## Requirements

This solution works on top of New Relic's **Browser Pro + SPA Agent**.

## Build

Install dependencies:

```
$ npm install
```

And build:

```
$ npm run build:dev
```

Or if you need a production build:

```
$ npm run build
```

## Usage

Include the scripts inside `dist` folder to your page. See `sample` folder for examples.

To initialize the tracker, call method `init()` just when the prebid objejct is ready:

```
  var pbjs = pbjs || {};
  pbjs.que = pbjs.que || [];

  pbjs.que.push(function() {
    // Init Prebid tracker
    nrvideo.PrebidTracker.init(pbjs)

    pbjs.addAdUnits(adUnits);
    pbjs.requestBids({
      bidsBackHandler: initAdserver,
      timeout: PREBID_TIMEOUT
    });
  });
```

## Data Model

### Actions

The following event names are sent by the tracker as Browser Agent `Custom Events`.

| Action Name | Description | Prebid Event |
|---|---|---|
| `BID_AUCTION_INIT` | The auction has started. | *auctionInit* |
| `BID_AUCTION_END` | The auction has ended. | *auctionEnd* |
| `BID_TIMEOUT` | A bid timed out. | *bidTimeout* |
| `BID_REQUESTED` | A bid was requested. | *bidRequested* |
| `BID_RESPONSE` | A bid response has arrived. | *bidResponse* |
| `BID_WON` | A bid has won. | *bidWon* |
| `BID_SET_TARGETING` | Targeting has been set. | *setTargeting* |
| `BID_REQUEST_BIDS` | Bids have been requested from adapters. | *requestBids* |
| `BID_ADD_AD_UNITS` | Ad units have been added to the auction. | *addAdUnits* |
| `BID_AD_RENDER_FAILED` | Ad rendering failed. | *adRenderFailed* |
| `BID_BIDDER_DONE` | A bidder has signaled they are done responding. | *bidderDone* |

Check out the following link for more information on [Prebid events](http://prebid.org/dev-docs/publisher-api-reference.html#module_pbjs.onEvent).

### Common Attributes

This is the list of attributes sent along with all `BID_` actions.

| Attribute | Description | Example |
|---|---|---|
| `libVersion` | Prebid version. | *v3.4.0* |
| `timeSinceBidAddAdUnits` | Time since last `BID_ADD_AD_UNITS`. | *12356784* |
| `timeSinceBidRequestBids` | Time since last `BID_REQUEST_BIDS`. | *12356784* |
| `timeSinceBidAuctionInit` | Time since last `BID_AUCTION_INIT`. | *12356784* |
| `timeSinceBidAuctionEnd` | Time since last `BID_AUCTION_END`. | *12356784* |
| `timeSinceBidSetTargeting` | Time since last `BID_SET_TARGETING`. | *12356784* |

### Slot Specific Attributes

This attributes are sent along with `BID_RESPONSE` and `BID_WON` actions.

| Attribute | Description | Example |
|---|---|---|
| `bidderCode` | Bidder code. | *appnexus* |
| `mediaType` | Media type. | *banner* |
| `adUnitCode` | Ad Unit Code. | */19968336/header-bid-tag-0* |
| `size` | Media size. | *100x200* |
| `hbBidder` | Bidder code. | *appnexus* |
| `hbFormat` | Media format. | *banner* |
| `hbPb` | Price bucket. | *0.50* |
| `hbSize` | Media size. | *100x200* |
| `placementId` | Placement ID. | *13144370* |

### Bidder Specific Attributes

This attributes are sent along with `BID_REQUESTED` and `BID_BIDDER_DONE` actions.

| Attribute | Description | Example |
|---|---|---|
| `bidderCode` | Bidder code. | *appnexus* |
| `referer` | Bid referer. | *https://www.example.com/page.html* |

### Slot Specific Time Attributes

These timers are generated per `adUnitCode` and only sent along with the actions having the same slot code. Sent with actions `BID_RESONSE` and `BID_WON`.

| Attribute | Description |
|---|---|
| `timeSinceBidResponse` | Time since last `BID_RESPONSE` with the same `adUnitCode`. |
| `timeSinceBidWon` | Time since last `BID_WON` with the same `adUnitCode`. |

### Bidder Specific Time Attributes

These timers are generated per `bidderCode` and only sent along with the actions having the same bidder. Sent with actions `BID_REQUESTED`, `BID_RESONSE`, `BID_WON` and `BID_BIDDER_DONE`.

| Attribute | Description |
|---|---|
| `timeSinceBidRequested` | Time since last `BID_REQUESTED` with the same `bidderCode`. |
| `timeSinceBidResponse` | Time since last `BID_RESPONSE` with the same `bidderCode`. |
| `timeSinceBidWon` | Time since last `BID_WON` with the same `bidderCode`. |
| `timeSinceBidBidderDone` | Time since last `BID_BIDDER_DONE` with the same `bidderCode`. |

## Support

New Relic has open-sourced this project. This project is provided AS-IS WITHOUT WARRANTY OR DEDICATED SUPPORT. Issues and contributions should be reported to the project here on GitHub.

We encourage you to bring your experiences and questions to the [Explorers Hub](https://discuss.newrelic.com) where our community members collaborate on solutions and new ideas.

## Contributing

We encourage your contributions to improve New Relic Prebid Tracker! Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project. If you have any questions, or to execute our corporate CLA, required if your contribution is on behalf of a company, please drop us an email at<EMAIL_ADDRESS>
**A note about vulnerabilities**

As noted in our [security policy](../../security/policy), New Relic is committed to the privacy and security of our customers and their data. We believe that providing coordinated disclosure by security researchers and engaging with the security community are important means to achieve our security goals.

If you believe you have found a security vulnerability in this project or any of New Relic's products or websites, we welcome and greatly appreciate you reporting it to New Relic through [HackerOne](https://hackerone.com/newrelic).

## License

New Relic Prebid Tracker is licensed under the [Apache 2.0](http://apache.org/licenses/LICENSE-2.0.txt) License.


text:
# Tyrrrz Extensions Library

[![Build](https://img.shields.io/appveyor/ci/Tyrrrz/Extensions/master.svg)](https://ci.appveyor.com/project/Tyrrrz/Extensions)
[![Tests](https://img.shields.io/appveyor/tests/Tyrrrz/Extensions/master.svg)](https://ci.appveyor.com/project/Tyrrrz/Extensions)
[![NuGet](https://img.shields.io/nuget/v/Tyrrrz.Extensions.svg)](https://nuget.org/packages/Tyrrrz.Extensions)
[![NuGet](https://img.shields.io/nuget/dt/Tyrrrz.Extensions.svg)](https://nuget.org/packages/Tyrrrz.Extensions)

My extensions for rapid development

## Download

- Using nuget: `Install-Package Tyrrrz.Extensions`

repository: exnius/Extensions

repo_name: exnius/Extensions


text:
---
app_id: io.elementary.switchboard.keyboard
type: addon
extends: io.elementary.switchboard
compulsory: false
title: "Keyboard Settings"
summary: "Configure keyboard behavior, layouts, and shortcuts"
developer: "Keyboard Settings Developers"
homepage: https://elementary.io
help_page: false
bugtracker: false
dist: odin
icons:
  "64": https://github.com/elementary/appstream-data/raw/master/pantheon-data/main/icons/64x64/switchboard-plug-keyboard_preferences-desktop-keyboard.png
color:
  primary: "#485a6c"
  primary-text: "#fff"
price: false
releases:
- version: 2.7.0
  unix-timestamp:<PHONE_NUMBER>
  description: |-

New features:

Open Multitasking View with Super

Minor updates:

Updated translations

- version: 2.6.0
  unix-timestamp:<PHONE_NUMBER>
  description: |-

New features:

Redesigned custom shortcuts view

On-screen keyboard switch in Layouts tab

Minor updates:

Updated translations

- version: 2.5.1
  unix-timestamp:<PHONE_NUMBER>
  description: |-

Minor updates:

Ensure IBus automatically starts on login when needed

Updated translations

- version: 2.5.0
  unix-timestamp:<PHONE_NUMBER>
  description: |-

Minor updates:

Add Layout popover is now a dialog

Guarantee we always have at least one layout

Improvements to ibus and xkb layouts

Updated translations

- version: 2.4.1
  unix-timestamp:<PHONE_NUMBER>
  description: |-

Shortcut description for "Play" is now "Play/Pause"

Fix an issue where some shortcuts would incorrectly show as disabled

Updated translations

- version: 2.4.0
  unix-timestamp:<PHONE_NUMBER>
  description: |-

Add a view to configure input methods

Updated translations

- version: 2.3.6
  unix-timestamp:<PHONE_NUMBER>
  description: |-

New "Workspaces" icon

Exclude Space from single-key shortcuts

Updated translations

redirect_from: /io.elementary.switchboard.keyboard.desktop/
---

license: Unlicense

repository: elementary/appcenter-web

branch_name: refs/heads/main

gha_language: Ruby

gha_license_id: Unlicense

repo_name: elementary/appcenter-web


text:
# Running a shared notebook as a service

This directory contains two examples of running a shared notebook server as a service,
one as a 'managed' service, and one as an external service with supervisor.

These examples require jupyterhub >= 0.7.2.

A single-user notebook server is run as a service,
and uses groups to authenticate a collection of users with the Hub.

In these examples, a JupyterHub group `'shared'` is created,
and a notebook server is spawned at `/services/shared-notebook`.
Any user in the `'shared'` group will be able to access the notebook server at `/services/shared-notebook/`.

In both examples, you will want to select the name of the group,
and the name of the shared-notebook service.

In the external example, some extra steps are required to set up supervisor:

1. select a system user to run the service. This is a user on the system, and does not need to be a Hub user. Add this to the user field in `shared-notebook.conf`, replacing `someuser`.
2. generate a secret token for authentication, and replace the `super-secret` fields in `shared-notebook-service` and `jupyterhub_config.py`
3. install `shared-notebook-service` somewhere on your system, and update `/path/to/shared-notebook-service` to the absolute path of this destination
4. copy `shared-notebook.conf` to `/etc/supervisor/conf.d/`
5. `supervisorctl reload`

repository: jupyterhub/jupyterhub

gha_language: Python

gha_license_id: NOASSERTION

repo_name: jupyterhub/jupyterhub


text:
# 外貌

## 总

- look
  - （可数名词）样子；外观；相貌；外表 the way sb/sth looks; the appearance of sb/sth

It's going to rain today by the **look** of it(= judging by appearances) .
看样子今天要下雨了。

**Looks can be deceptive**.
外表有时是靠不住的。

I don't like the **look** of that guy(= I don't trust him, judging by his appearance) .
我不喜欢他那副样子。

- appearance
  - 外貌；外观；外表 the way that sb/sth looks on the outside; what sb/sth seems to be

the physical/outward/external appearance of sth
某物的外观（这是“物”的外观）

She had never been greatly concerned about her appearance.
她从来不怎么注重外貌。（这是“人”的外貌）

He gave every appearance of(= seemed very much to be) enjoying himself.
他处处表现得很快活。

**Judging by appearances can be misleading**.
单凭外表判断可能出错。

To all appearances(= as far as people could tell) he was dead.
从一切**迹象**来看，他已经死了。

When she lost all her money, she was determined to keep up **appearances**(= hide the true situation and pretend that everything was going well) .
她把钱全亏光时，决意佯装若无其事。

repository: lsieun/learn-english

repo_name: lsieun/learn-english


text:
---
title:              "Fourth PHP Lab"
url:
name:               "Fourth PHP Lab"
description:        "This lab covers further interactions with the database, including prompting a user for username/password and confirming they match entries stored in users table."
short-description:  "PHP, prompt user, confirm stored data"
resource-link:      "/assets/courses/c50141/fourth-php-lab"
resource-hash:      "fourth-php-lab"
img-src-dir:        /img/50141/
---


text:
# Bug: fl create ignores initial lane.

## Description

If initial lane in the config file differs from "backlog"
then "fl create" ignores that folder and recreates "backlog" one.

## Acceptance criteria

* fl create creates and puts task into the initial folder, not the
  hardcoded "backlog" one.

repository: norefle/facil

repo_name: norefle/facil


text:
# kfd-node

A simple Node.js application for the second edition of Kubernetes for Developers.
This is just about the simplest possible Node/Express application you can build. The point
here, of course, is to show you how to package this code in a container image and then
deploy that container image to Kubernetes.

repository: DougTidwell/kfd-node

gha_language: Dockerfile

repo_name: DougTidwell/kfd-node


text:
# doctosql
Javascript Document to Relational Database Integration

## Release

1.0.0 Only support for SQL Server. Added unit tests using AVA

## Configuration

Environment Variables

DOCTOSQL_LOG_LEVEL=a bunyan log level: trace | debug | info | warn | error | fatal

DOCTOSQL_RDBMS='a tedious connection document'

For example:
```
  {
    "userName":"myUsername",
    "password":"myPassword",
    "server":"myServer.database.windows.net",
    "database":"myDatabase"
  }
```

## Installation

Using npm:
```shell
$ npm i --save doctosql
```

In Node.js:
```js
var doctosql = require('doctosql');
var entityName = 'TABLE_NAME';
var docs = [
  <one or more similar documents...>,
]

// To insert, or update, all
doctosql.load(tablePrefix, docs);
// or
// To insert, or update, skipping those with same revision
doctosql.incr(tablePrefix, docs);
```

NOTE: Each document must have an id or _id, and a rev or _rev attributes.

## Support

Supports Node versions 8 - 12. Node version 14 breaks one of the dependent packages.

Feel free to email<EMAIL_ADDRESS>with and complaints and questions.

Look at the todo.txt docu,ment for what I'm working on next.

repository: donaldbales/doctosql

gha_language: TypeScript

repo_name: donaldbales/doctosql


text:
#Why boost::process is here
We need to control the environment for spawned child processes to remove any MPI
variables, in case the child process itself is an MPI application (e.g. Xyce).
job_stream was using libexecstream before, but that does not allow environment
control.

We embed this library here as it is not part of the official boost distribution.

2014-8-26 - Also, added poll() method to child.


text:
# cert-issuer-identity

Blockchain certificate identity service

## Quick Start with Docker

1. First ensure you have Docker installed. [See our Docker installation help](https://github.com/blockchain-certificates/developer-common-docs/blob/master/docker_install.md).

2. Git clone the repository

    ```
    git clone https://github.com/blockchain-certificates/cert-issuer-identity.git
    ```

3. From a command line in the cert-issuer-identity dir, run docker-compose

    ```
    cd cert-issuer-identity
    docker-compose build
    ```

4. Start the container

    ```
    docker-compose up
    ```

5. Access cert-issuer-identity at `http://localhost:5002`.

## Running the CLI locally

1. Ensure you have an python environment. [Recommendations](https://github.com/blockchain-certificates/developer-common-docs/blob/master/virtualenv.md)

2. Install [mongodb](https://docs.mongodb.com/v3.0/installation/)

3. Install the dependencies
    ```bash
    pip install -r requirements.txt
    ```

4. Setup your config.py file

5. To run the server, please execute the following:
    ```bash
    python cert-issuer-identity/app.py
    ```

You can see the Swagger API specification at this URL:

```
http://localhost:5002/ui/
```

## API Documentation

The API documentation is currently hosted here:

[http://cert-issuer-identity.herokuapp.com/ui/](http://cert-issuer-identity.herokuapp.com/ui/)

Updates coming soon!

## Unit tests

This project uses tox to validate against several python environments.

1. Ensure you have an python environment. [Recommendations](https://github.com/blockchain-certificates/developer-common-docs/blob/master/virtualenv.md)

2. Run tests
    ```
    ./run_tests.sh
    ```

## Release Docker image

```
docker build -t blockcerts/certissueridentity_web:<version> .
docker login
docker push blockcerts/certissueridentity_web:<version>
```

## Contact

Contact [certs<EMAIL_ADDRESS>with questions

repository: SeanFxs/cert-issuer-identity

repo_name: SeanFxs/cert-issuer-identity


text:
# Advanced State in Jetpack Compose Codelab

This folder contains the source code for the
[Advanced State in Jetpack Compose Codelab](https://developer.android.com/codelabs/jetpack-compose-advanced-state-side-effects)
codelab.

The project is built in multiple git branches:
* `main` – the starter code for this project, you will make changes to this to complete the codelab
* `end` – contains the solution to this codelab

## [Optional] Google Maps SDK setup

Seeing the city on the MapView is not necessary to complete the codelab. However, if you want
to get the MapView to render on the screen, you need to get an API key as
the [documentation says](https://developers.google.com/maps/documentation/android-sdk/get-api-key),
and include it in the `local.properties` file as follows:

```
google.maps.key={insert_your_api_key_here}
```

When restricting the Key to Android apps, use `androidx.compose.samples.crane` as package name, and
`A0:BD:B3:B6:F0:C4:BE:90:C6:9D:5F:4C:1D:F0:90:80:7F:D7:FE:1F` as SHA-1 certificate fingerprint.

## License
```
Copyright 2021 The Android Open Source Project

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

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

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

repository: ParkChan/android-compose-codelabs

repo_name: ParkChan/android-compose-codelabs


text:
# Sorting Algorithms

 - :mega: application with visualization of sorting algorithms
 - :wrench: React + TypeScript, Bootstrap, Pose, React Select
 - :date: Mid-2019

 ## Getting started

Preparation
```
npm install
```

Run
```
npm start
```

Build
```
npm run build
```

repository: wroclawianka/sorting

repo_name: wroclawianka/sorting


text:
# Reload test

For this test, we will have a requirements test that we can trigger via Didact link, then make sure that the resulting HTML gets cached between reloads.

[Check to see if `echo` is accessible at the command line by checking that the return code from the command is 0. If it is non-zero, it will fail.)](didact://?commandId=vscode.didact.cliCommandSuccessful&text=echo-cli-return-status$$echo "Tests to see if `echo` returns a return code of zero"){.didact}

*Status: unknown*{#echo-cli-return-status}

repository: redhat-developer/vscode-didact

repo_name: redhat-developer/vscode-didact


text:
---
title: Cubes
permalink: /cube
scope: cubejs
category: Reference
---

A `cube` represents a table of data in Cube.js. Cubes are typically declared in separate files with one cube per file. Within each cube are definitions of measures, dimensions and joins between cubes. Cube should always be declared with capital letter.

```javascript
cube(`Users`, {
  sql: `select * from users`,

  joins: {
    Organizations: {
      relationship: `belongsTo`,
      sql: `${Users}.organization_id = ${Organizations}.id`
    }
  },

  measures: {
    count: {
      type: `count`,
      sql: `id`
    }
  },

  dimensions: {
    createdAt: {
      type: `time`,
      sql: `created_at`
    },

    country: {
      type: `string`,
      sql: `country`
    }
  }
});
```

## Parameters

### sql

The `sql` parameter specifies the SQL that will be used to generate a table that
will be queried by cube.  It can be any valid SQL query, but usually it takes
form of `select * from my_table` query. Please note, that you don't need to use
`GROUP BY` in SQL query on cube level. This query should return a plain table,
without aggregations.

```javascript
cube(`Orders`, {
  sql: `SELECT * FROM orders`
});
```

You can reference other's cubes SQL statement for code reuse.
```javascript
cube(`Companies`, {
  sql: `SELECT users.company_name, users.company_id FROM ${Users.sql()} AS users`
});
```

### title
Use `title` to change display name of the cube.
By default Cube.js will humanize the cube's name, so for instance, `UsersOrder`
would become `Users Orders`. If default humanizing doesn't work in you case please use title parameter. It is highly recommended to give human readable names for your cubes.
It would help everyone on a team better understand data structure and will help maintain consistent set of definitions across organization.

```javascript
cube(`Orders`, {
  sql: `SELECT * FROM orders`,

  title: `Product Orders`,
});
```

### description
Use description in your cubes to allow your team better understand what this cube is about. It is very simple and yet useful tool that gives a hint to everyone and makes sure data is interpreted correctly by users.

```javascript
cube(`Orders`, {
  sql: `SELECT * FROM orders`,

  title: `Product Orders`,
  description: `All orders related information`,
});
```

### extends

You can extend cubes in order to reuse all declared members of a cube.
In the example below `ExtendedOrderFacts` will reuse `sql` and `count` measure from `OrderFacts`:

```javascript
cube(`OrderFacts`, {
  sql: `SELECT * FROM orders`

  measures: {
    count: {
      type: `count`,
      sql: `id`
    }
  }
});

cube(`ExtendedOrderFacts`, {
  extends: OrderFacts,

  measure: {
    doubleCount: {
      type: `number`,
      sql: `${count} * 2`
    }
  }
});
```

### refreshKey

Cube.js caching layer uses `refreshKey` queries to get current version of content for specific cube.
If query result changes Cube.js will invalidate all queries that rely on that cube.
If `refreshKey` is not set Cube.js will try to use time dimension which have `'updated'` substring in name,
then will check if any other time dimension exists.
If time dimension is found then `max` value of this time dimension will be used as `refreshKey`.
Otherwise count of rows for this cube will be used as a `refreshKey` by default.

You can use existing timestamp from your tables. Make sure to select max
timestamp in that case.

```javascript
cube(`OrderFacts`, {
  sql: `SELECT * FROM orders`

  refreshKey: {
    sql: `SELECT MAX(created_at) FROM orders`
  }
});
```

Or you can set it to be refreshed for example every hour.

```javascript
cube(`OrderFacts`, {
  sql: `SELECT * FROM orders`

  refreshKey: {
    sql: `SELECT date_trunc('hour', NOW())`
  }
});
```

## Context Variables

### Filter Params

Filter params allows you to use filter values selected by user during SQL generation.

You can add it for any valid SQL expression as in case of dimension.

```javascript
cube(`OrderFacts`, {
  sql: `SELECT * FROM orders WHERE ${FILTER_PARAMS.OrderFacts.date.filter('date')}`,

  dimensions: {
    date: {
      sql: `date`,
      type: `time`
    }
  }
});
```

It'll generate the following SQL

```sql
SELECT * FROM orders WHERE date >= '2018-01-01 00:00:00' and date <= '2018-12-31 23:59:59'
```

for `['2018-01-01', '2018-12-31']` date range passed for `OrderFacts.date` dimension.

You can also pass function instead of SQL expression as `filter()` argument.
This way you can add BigQuery sharding filtering for events which will reduce your billing cost.

```javascript
cube(`Events`, {
  sql: `
  SELECT * FROM schema.\`events*\`
  WHERE ${FILTER_PARAMS.Events.date.filter((from, to) =>
    `_TABLE_SUFFIX >= FORMAT_TIMESTAMP('%Y%m%d', TIMESTAMP(${from})) AND _TABLE_SUFFIX <= FORMAT_TIMESTAMP('%Y%m%d', TIMESTAMP(${to}))`
  )}
  `,

  dimensions: {
    date: {
      sql: `date`,
      type: `time`
    }
  }
});
```

### User Context

User context is user security object that passed by Cube.js Client.

User context is suitable for the row level security implementation.
For example if you have `orders` table which contains `email` field you can restrict all queries to render results that belong only to current user as following:

```javascript
cube(`Oreders`, {
  sql: `SELECT * FROM orders WHERE ${USER_CONTEXT.email.filter('email')}`,

  dimensions: {
    date: {
      sql: `date`,
      type: `time`
    }
  }
});
```

detected_licenses: Apache-2.0 MIT Cube


text:
*Tertiary education does not include High School; Secondary does*
"Indicator 8: Educational Attainment of the Youth Labour Force." _Youth Labour Market Indicators_. Youth Employment Network. http://www.ilo.org/public/english/employment/yen/whatwedo/projects/indicators/8.htm

*Manufacturing will be contained in Industry statistics*
Sangram Singh, et al. "What is the difference between the manufacturing sector and the industrial sector?" Quora. http://www.quora.com/What-is-the-difference-between-the-manufacturing-sector-and-the-industrial-sector

*Definition of Unemployment may vary by country*
"Unemployment, total (% of total labor force) (national estimate)." The World Bank. http://data.worldbank.org/indicator/SL.UEM.TOTL.NE.ZS

*Definition of Unemployment by ILO is standard, which is why we use it instead.*
"Main statistics (annual) - Unemployment" _LABORSTA Internet_ http://laborsta.ilo.org/applv8/data/c3e.html


text:
# R2C_C2R with Scratch Sharing Sample

This sample shows how to compute a distributed R2C-C2R transform and how to share scratch between plans.
It is otherwise identical to the other, simpler R2C-C2R sample.

To build and run, type `make run`:
```
$ MPI_HOME=/usr/lib/x86_64-linux-gnu/openmpi/ make run
Hello from rank 0/2 using GPU 0
Hello from rank 1/2 using GPU 1
Allocated 48 B of user scratch at 0x7f6ae1d88600 on rank 0/2
Allocated 48 B of user scratch at 0x7f4b41d88600 on rank 1/2
Shuffled (Y-Slabs) GPU data, global 3D index [0 0 0], local index 0, rank 0 is (3.783546,0.000000)
Shuffled (Y-Slabs) GPU data, global 3D index [0 0 1], local index 1, rank 0 is (-0.385746,-1.599692)
Shuffled (Y-Slabs) GPU data, global 3D index [0 0 2], local index 2, rank 0 is (-4.507643,0.000000)
Shuffled (Y-Slabs) GPU data, global 3D index [1 0 0], local index 3, rank 0 is (0.778320,0.000000)
Shuffled (Y-Slabs) GPU data, global 3D index [1 0 1], local index 4, rank 0 is (0.205157,1.710624)
Shuffled (Y-Slabs) GPU data, global 3D index [1 0 2], local index 5, rank 0 is (1.806104,0.000000)
Shuffled (Y-Slabs) GPU data, global 3D index [0 1 0], local index 0, rank 1 is (3.289261,0.000000)
Shuffled (Y-Slabs) GPU data, global 3D index [0 1 1], local index 1, rank 1 is (-1.492967,2.346867)
Shuffled (Y-Slabs) GPU data, global 3D index [0 1 2], local index 2, rank 1 is (0.645631,0.000000)
Shuffled (Y-Slabs) GPU data, global 3D index [1 1 0], local index 3, rank 1 is (-2.242222,0.000000)
Shuffled (Y-Slabs) GPU data, global 3D index [1 1 1], local index 4, rank 1 is (0.342550,-0.446430)
Shuffled (Y-Slabs) GPU data, global 3D index [1 1 2], local index 5, rank 1 is (0.671049,0.000000)
Relative Linf error on rank 0, 8.582340e-08
Relative Linf error on rank 1, 5.971924e-08
PASSED on rank 1
PASSED on rank 0
```

repository: NVIDIA/CUDALibrarySamples

gha_language: Cuda

repo_name: NVIDIA/CUDALibrarySamples


text:
---
title: "Search for us, newbies"
publishDate: 2018-12-19
draft: true
description: "Supercharge your movement through the buffer"
slug: "searches-for-us-newbies"
author:
  name: "plitter"
  github: "plitter"
---

## Search in Vim for newbies

Now that we've seen [moving across files][moving-across-files] I think it is time to get back to the current buffer and see what is possible here as well.

One thing that seems to happen consistently on the way from beginning newbie to not-so-much newbie is that moment when you realize that mashing `hjkl` or holding `w`/`b` is not the most efficient way to move around. Personally, I don't think counting words is any efficient either. To take an example (where I use `^` as indicator for the cursor position):

```vim
String result = new String(anotherString + "hello");
^
```

What count do you need for `w` to get to `hello`? The answer might surprise you. Go ahead, I'll wait.

OK, so we all came to the conclusion of `9w` to get to `hello`? Vim has the interestingly decided that `=`, `(`, `)`, `+`, and `"` started words so we had to add 4 to our initial count, which makes it hard count correctly and, if we were wrong, there isn't a "repeat" command for `[count]w`.

There is another line-wise search in vim that is slightly more efficient, even if slightly less precise. Consider our former example, but this time we want to get to the `e` of `hello`: we can type `fe` and repeat the search with `;`. Since this is a line-wise search and `e` happens to be the last `e` you could just hold down `;` and you will hit the correct spot. That's not nearly as precise, but I don't have to count the `e`'s to get to where I want to go. This, in my counting deficient brain, is a plus as holding `w` will certainly overshoot the target. But what happens when you have something like the following and you want to move to `apply`?

```vim
var oldUnload = window.onbeforeunload;
^
window.onbeforeunload = function() {
    saveCoverage();
    if (oldUnload) {
        return oldUnload.apply(this, arguments);
    }
};
```

Should you count to get down 4 lines, then `4w` to get to `apply`? Or use relative numbers to move down and then `fa;`?

There is a better way and it is simply to search. You look at where you want to go, press `/` and start typing the word. To make this more user-friendly, we want to see where we would end up if we pressed enter now.  So we enable incremental search with `:set incsearch` and  we try again, with our previous example:

<script id="asciicast-218011" src="https://asciinema.org/a/218011.js" async></script>

Four keystrokes and we knew at the third keystrokes that we had hit the correct spot. This is the closest I've come to point and click, and it is super fast.

### Addendum for previous motions

So, I covered `f`, `w` and `/`, and I think it is worth mentioning some opposites, additions, and silly mnemonics.

#### Opposites and additions

So `f` searches forward on the line, but how should you move back? Well, there is `F<char>` which allows you to search backwards but that might be more work than we're willing to do if we simply overshot our target. So if we are at the `e` in `hello` and we really wanted the `e` in `anotherString`, we can simply press `,` to repeat the last move in the opposite direction.

Another complementary search for `f` is `t` which searches *until* the character, and its opposite `F` which moves backward.

`w` is another story, though. `w` moves you to the start of the next word and we might expect `W` to move to the previous word. Instead, it does... the exact same thing as `w`, at first glance. I'll leave the specifics up to [the manual][the-manual] (which you should read), but an easy example of the difference is this:

```vim
public void importantFunction(Type1 t1);
            ^
```

`W` will not care about the `(` or `)` and jump straight to `t1`.

`/something` will search forward for the first `something` that it finds. To find the next `something`, press `n`. To find the previous `something`, press `N`. Just like `F` for `f` there's `?` for `/` which searches backward, with `n` moving to the previous `something` and `N` moving to the next. Remember that all of these motions can be preceded with a count.

#### Mnemonic

Here are the mnemonic tricks I use to remember what those motions do:

Command | Mnemonic
---|---
`f` | forward search (see [:help f][:help-f])
`t` | 'til, as in until (see [:help t][:help-t])
`w` | word (see [:help w][:help-w])
`/` | forward search, if you draw the slash from bottom then the slash goes from left to right (see [:help /][:help-/])
`?` | backward search, if you draw the question mark from the bottom it points backward (see [:help /][:help-/])

I hope you weren't expecting anything fancy...

## `/` is one of the supreme features (IMHO)

Imagine that you have:

```vim
String result1 = new String(anotherString + "hello");
String result2 = new String(anotherString + "hello");
^
String result3 = new String(anotherString + "hello");
String result4 = new String(anotherString + "hello");
String result5 = new String(anotherString + "hello");
String result6 = new String(anotherString + "hello");
String result7 = new String(anotherString + "hello");
String result8 = new String(anotherString + "hello");
```

Say you don't need `result2-8`. One easy way to remove those lines is to just hold `d` and after a while it will all be deleted. But as vimmers we should try to do most things in one go, since it is easier to undo or put somewhere. One fun and intuitive way is to use visual mode:

```vim
V/8<cr>
```

and you have marked all the lines that you want to delete and you can press `d` knowing that this is exactly what you wanted. A more direct approach could be to do:

```vim
d/8<cr>dd
```

but this is not removing everything at once. Luckily we can just search again in the same query:

```vim
d/8/;/;/e<cr>
```

and you have done exactly what you wanted. Let's break that one down

- `d` accepts a motion and luckily `/` is a motion
- `/8` is a normal search for `8`
- `/` marks the end of the pattern
- `;` shows that the next part is a new search
- `/;` searches for the next `;`
- `/e` leaves the cursor at the end of the match

For fun, and to illustrate our point rather than be a good vimmer, you can do something like:

```vim
d/result/;//;//;//;//;//;//;/;/e
```

to obtain the exact same result.

For more information checkout [:help /][:help-/], especially the section on offset.

Still for fun, but this time to be a good vimmer, one could use visual-line mode to cast whatever motion follows to a linewise motion:

```vim
dV/8<CR>
```
<<<< STOPPED HERE >>>>
Another thing that makes / very easy to use is that you have history which you can access with the up and down button when you have the / on the commandline. So d/ and you can go through your previous searches. Which is nice if you have a search with a lot of regex.

## Repeat last search

Something else that is fun with / is that you can repeat the last search with //. Now this is probably completely useless right? I can just press n or N do the exact search again. True, but you can do it in other commands! So imagine that we have the text as above. Result might not be the best name for it so we want to change it to something else. We do /result<cr>, to see that we're hitting the correct things. (if you haven't done it, do :set hlsearch and you'll see exactly the words we hit). That looks fine, so we substitute out the meaningless name. :%s//shouldBeArray/<cr> and suddenly we've renamed it to something that that conveys more meaning.

## Ranges

Now you might be thinking "That last command is nice and all, but what happens if that is in the middle of a 5000 lines of code? I can't be held accountable for what happens with the other 4992 lines of code!". Well luckily you wont have to, you can use search to choose the range of lines that you want to hit!  :/result1/,/result8/s/<ctrl+r>//shouldBeArray/<cr> and your done. The ctrl+r / adds the last search into your command. But what happens if your code has multiple result1 or result8? Basically the same as when you do a normal search.  So from where your cursor currently is until you hit the first result1 and then until you hit the first result8 after result1. An interesting behaviour I found here is that if your doing the same command again a second time and you have 1 result1 above your current cursor it will still find your result1 and do the substitute and if for some reason result8 is before result1 it will ask you if you want to switch the backward range.

## Obvious(?) other uses of search and some tips

I mentioned briefly (very briefly) that / allows regexes. Regexes should be allowed its own article. But quick example would be to search for result1-8 in 1 go instead of just result. /result\d, /re.ult\d, /res\wlt\d f.ex. Read the manual and also checkout bash regexes, their super useful and remember that you can call shellcommands inside vim.

You can use :g/<search here>/d to delete all lines that contain pattern or you can use :v/<search here>/d to delete all lines that don't contain pattern. You can also use ranges on those 2 command and the ranges can use search. And don't get me started on what can come after v/.../ or g/.../ because I don't know that much about and would like someone to do an article or send me a message on irc to plitter in #vim explaining it in detail for me :)

After doing d/<search>, you can repeat it with dot.

After doing c/<search>, you can repeat it with dot.

I think you can begin to see a pattern where if the command changes text and accepts a motion you can repeat it with `.`. For example, a cheap substitute for:

```vim
:%s/foo/bar/gc
```

could actually be to do:

```vim
/foo<cr>cgnbar<Esc>
```

then `n` to get to the next match and `.` to repeat the change. See [`:help gn`][`:help-gn`].

\* and # searches the current word forwards and backwards respectively and you can use that as a substitute in :s//<something>/, :g//<something fancy>, c//, and d//.

I like to use `/` to move around or visually selecting. But when I've gotten to where I want to work I'll go to insert mode to insert text, change text with `ct;` (I usually come to where I want to assign a variable and remove the text from: `<text to remove>;`), or when I change a function signature I'll let my [quickfix list][quickfix-list] get populated with the problematic method calls, go to those locations, do `/something` to get to the offending parameter and follow up with any of the following:

* `df,x`,
* `d2w`,
* `dw.`,
* `d/<the next parameter>` to remove the parameter,
* `ct`,
* `c/<the next parameter>` to change the parameter,
* etc.

### Checkout the following manuals

- :help /
- :help c_CTRL-R
- :help :g
- :help :s
- :help search-offset
- :help cmdline-ranges

[:help-f]: #
[:help-t]: #
[:help-w]: #
[:help-/]: #
[:help-/]: #
[:help-/]: #

[//]: # ( Vim: set spell spelllang=en: )
[`:help-gn`]: #
[quickfix-list]: #
[moving-across-files]: #
[the-manual]: #


text:
# Facebook Connector

The Facebook connector allows you to access the [Facebook Graph API](https://developers.facebook.com/docs/graph-api) through Ballerina. You can invoke this connector's actions within a Ballerina `main()` function. The following sections provide details on the connector actions and the sample you can use to invoke them.

## Create post
The createPost action creates a post for a user, page, event, or group.

#### Properties

  * id    - The identifier of the user, page, event, or group for which you are creating the post
  * msg   - The main body of the post
  * link  - The URL of a link to attach to the post
  * place - Page ID of a location associated with this post

#### Related Facebook documentation
<https://developers.facebook.com/docs/graph-api/reference/v2.8/page/feed#publish>

## Retrieve a post
The retrievePost action retrieves the post specified by the ID.

#### Properties

  * postId - The post ID
  * fields - The fields to retrieve

#### Related Facebook documentation
<https://developers.facebook.com/docs/graph-api/reference/v2.8/post#read>

## Delete a post
The deletePost action deletes the post specified by the ID.

#### Properties

* postId - The post ID

#### Related Facebook documentation
<https://developers.facebook.com/docs/graph-api/reference/v2.8/post#deleting>

## Update a post
The updatePost action updates the post specified by the ID.

#### Properties

* postId  - The post ID
* msg     - The main body of the post
* tags    - Comma-separated list of user IDs of people tagged in this post
* privacy - Privacy settings of the post

#### Related Facebook documentation
<https://developers.facebook.com/docs/graph-api/reference/v2.8/post#updating>

## Add likes
The addLikes action adds a like for a video, post, status, note, photo, album, or comment.

#### Properties

* objectId - The object ID to like

#### Related Facebook documentation
<https://developers.facebook.com/docs/graph-api/reference/v2.8/object/likes>

## Get likes
The getLikesDetails action retrieves details of the likes for a specified object.

#### Properties

 * objectId - The ID of the object whose likes you want to retrieve
 * fields   - The details to retrieve

#### Related Facebook documentation
<https://developers.facebook.com/docs/graph-api/reference/v2.8/object/likes>

## Delete likes
The deleteLikes action deletes a like for a video, post, status, note, photo, album, or comment.

#### Properties

  * objectId - The ID of the object whose like you want to delete.

#### Related Facebook documentation
<https://developers.facebook.com/docs/graph-api/reference/v2.8/object/likes>

## Add comments
The addComments action adds new comments for a photo, picture, etc.

#### Properties

  * objectId      - The ID of the object, such as a page, video, etc.
  * msg           - The comment text
  * attachmentId  - An ID of an unpublished photo
  * attachmentUrl - The URL of an image to include as a photo comment

#### Related Facebook documentation
<https://developers.facebook.com/docs/graph-api/reference/v2.8/object/comments>

## Get comments
The getComments action retrieves comments for an object such as a video, post, status, note, photo, or album.

#### Properties

  * objectId - The ID of the object such as a page, video, etc.
  * fields   - The fields to retrieve

#### Related Facebook documentation
<https://developers.facebook.com/docs/graph-api/reference/v2.8/object/comments>

## Sample
1. Get the access_token from: <https://developers.facebook.com/tools/explorer/>

 > **IMPORTANT:** This access token can be used to make API requests on your own account's behalf. Do not share your access token with anyone.

1. Copy the `facebook/sample/facebook/samples.bal` file into the `<ballerina_home>/bin` folder.
1. Run the following commands to execute the relevant actions:
  *  createPost:
  `bin$ ./ballerina run main samples.bal createPost <token> <id> <message> <link> <place>`
  *  retrievePost:
  `bin$ ./ballerina run main samples.bal retrievePost <token> <postId> <fields>`
  * deletePost:
  `bin$ ./ballerina run main samples.bal deletePost <token> <postId>`
  * updatePost:
  `bin$ ./ballerina run main samples.bal updatePost <token> <postId> <message> <tags> <privacy>`
  * addLikes:
  `bin$ ./ballerina run main samples.bal addLikes <token> <objectId>`
  * getLikesDetails:
  `bin$ ./ballerina run main samples.bal getLikesDetails <token> <objectId> <fields>`
  * deleteLikes:
  `bin$ ./ballerina run main samples.bal deleteLikes <token> <objectId>`
  * addComments:
  `bin$ ./ballerina run main samples.bal addComments <token> <objectId> <message> <attachmentId> <attachmentUrl>`
  * getComments:
  `bin$ ./ballerina run main samples.bal getComments <token> <objectId> <fields>`

repository: irunika/connectors

repo_name: irunika/connectors


text:
---

title: Productive cooking of AngularJS Plugins with ice cream – TGIF (43)
author: Lena
layout: blog-post-tgif

---

Thank Grohl, Gauss, Glob, Galileo and Science it’s Friday! The week’s (almost) over, and these are our reading recommendations, curated for you by Julia and Lena, for your weekend or a lazy afternoon. Enjoy!

## Open Source
On the business value of open source: "If you said 20 years ago, that there would be this huge thing and everybody would work for free and they would give things away for free, you wouldn't have believed it."

Sascha Brink is writing an AngularJS Cookbook to help you speed up your work process when using the framework. 85 percent are already done and ready to be read and you yourself decide, what you want to pay.

Our amazing Hoodie-Community-Member Stephan wrote a grunt-semantic-release plugin this week, and you should check it out (you can also find it on GitHub).

PouchDB 3.0.4: Night of the Living Attachments

Apache CouchDB 1.6.1 is out. This and more news in the new issue of the CouchDB Weekly News, September 04, 2014

## Design
Not exactly useless, but not really practical either: "The uncomfortable" plays with the semiotics of original items while re-imagining them in an uncomfortable way.

What to keep in mind when designing responsive logos and icons for web applications.

Interesting and useful web design statistics, nicely put together in an infographic.

## The Web and Development
The story behind a new picture element, that shall make the web faster.

Don't have plugins installed you don't use, hide your login and limit login attempts are just a few of the vital wordpress security tips.

"I think I realised after a while that what I saw in other people who I thought had a plan was passion. Perhaps the passion I didn’t know how to direct earlier on." – Plans

>
Just like we're flexible in the tools and processes we pick to get our work done, personal productivity should be subject to review regularly. –
10 Things I do every day to stay productive

A minimal, ui-focused programming language for web designers: uilang

## The Tech World and Culture
Researchers at Indiana University analyze in project Truthy the way, in which information and misinformation spreads on Twitter and becomes viral. Last week, they could do their work on stories about themselves.

"You can’t build an inclusive, friendly place on exclusionary, insulting language."

The behaviour of some readers while commenting on articles about women's issues makes some editors wonder, whether online anonymity should be an option rather than the default.

>
The problem with 'I’m entitled to my opinion' is that, all too often, it’s used to shelter beliefs that should have been abandoned. It becomes shorthand for 'I can say or think whatever I like' – and by extension, continuing to argue is somehow disrespectful. –
No, you're not entitled to your opinion

>
I have to decide what’s more important: sharing my opinion and putting my family at risk, or staying quiet and keeping safe; making a point or letting my silence speak for me. –
Followers

## The Business
At AirConf 2014, a panel of people talked about engineering vs. entrepreneurship and if you can be a boss and keep on coding.

>
Somebody who is good for your team is not necessarily somebody you want to be friends with. It’s tempting to look for both, but it’s the wrong metric for the success of your company and is ultimately unsustainable. –
This is why you never end up hiring good developers

>
This is important: people shouldn't have to be forced into 'outing' themselves as having a mental illness to avoid team building rituals. –
Hidden dangers of Team Building Rituals

>
This post is really aimed at any Alice Bartletts out there who are waiting for someone to give them permission to fix their own workplace" –
Tampon Club

## We <3
The best of knowledge still comes from childrens books.

Hatching baby ice cream sandwiches are just a part of the summer of ice cream sandwiches.

Who says comics aren't good to learn anything? Not us! But in case you need some more convincing: "Textbooks can explain science, but comics can make readers care about it."

Zaria Forman makes quite amazing pastel drawings of nature scenes to make us believe, that every little action makes a difference.

10 ways to be a better male feminist

Optimizers, latecomers, no-shows: Since smartphones became more and more common, it seems impossible to make plans and stick to them.

>
writing is a way 'to think through what it means to be in this world. I definitely write to reach other people, but I write for myself first.'–
Roxane Gay: Meet the Bad Feminist

branch_name: refs/heads/gh-pages

gha_language: HTML


text:
SNIFFER EXTENSION
=================

This loadable extension allows users to capture network traffic on a target.

Loading the Sniffer
-------------------

Once you've established a connection to Mettle, you can load the sniffer extension with the following command in your msfconsole terminal:

`load sniffer`

If things go according to plan, you should get a message that the extension was successfully loaded:

```
meterpreter > load sniffer
Loading extension sniffer...Success.
```

Using the Sniffer
-----------------

The sniffer commands operate on a similar paradigm as the keylogger extension commands do.  You can see the available commands with `help` in your msfconsole terminal:

```
Sniffer Commands
================

    Command             Description
    -------             -----------
    sniffer_dump        Retrieve captured packet data to PCAP file
    sniffer_interfaces  Enumerate all sniffable network interfaces
    sniffer_release     Free captured packets on a specific interface instead of downloading them
    sniffer_start       Start packet capture on a specific interface
    sniffer_stats       View statistics of an active capture
    sniffer_stop        Stop packet capture on a specific interface
```

An Example
----------

In this example, I will load the sniffer extension on my target MacBook and then do the following:

* list the available network interfaces
* start sniffing on an interface
* on the target, the user will initiate the folloing actions which use the network interface the sniffer estension is monitoring:
  * ping Google's DNS server at <IP_ADDRESS>
  * run curl to load the `archive.org` webpage
* stop sniffing
* dump the sniffed data from my target as a pcap file in my MSF instance

```
meterpreter > load sniffer
Loading extension sniffer...Success.
meterpreter > sniffer_interfaces

1 - 'enp0s3' ( usable:true )
2 - 'enp0s8' ( usable:true )
3 - 'Pseudo-device that captures on all interfaces' ( usable:true )
4 - 'lo' ( usable:true )
5 - 'docker0' ( usable:false )
6 - 'USB bus number 1' ( usable:false )

meterpreter > sniffer_start 1 2000
[*] Capture started on interface 1 (2000 packet buffer)
meterpreter > sniffer_stats 1
[*] Capture statistics for interface 1
	packets: 133
	bytes: 162537
meterpreter > sniffer_stop 1
[*] Capture stopped on interface 1
[*] There are 133 packets (162537 bytes) remaining
[*] Download or release them using 'sniffer_dump' or 'sniffer_release'
meterpreter > sniffer_dump 1 mycap.pcap
[*] Flushing packet capture buffer for interface 1...
[*] Flushed 133 packets (165197 bytes)
[*] Download completed, converting to PCAP...
[*] PCAP file written to mycap.pcap
```

gha_language: C


text:
Partitions of Unity Extension (PUX)
Extends function, given on 2D domain, to the plane. Extension has compact support and high regularity. Based on the paper https://arxiv.org/abs/1712.08461.

Tests are located in the test directory. DEMOextension shows how to use PUX. In the DEMOextension.m file the user can choose between different cases: different geometries and functions to extend. The demos example2 and example3 are example 2 and example 3 from paper https://arxiv.org/abs/1712.08461. They show how to incorporate PUX in a Poisson solver. It is recommended to save BIMstruct, xe and idxbO if the domain is to be reused.

Prerequisites
RBF-QR for the 2D case: http://www.it.uu.se/research/scientific_computing/software/rbf_qr
Non-uniform Fast Fourier Transform for 2D (NUFFT): https://cims.nyu.edu/cmcl/nufft/nufft.html

Store both in src directory.
The  NUFFT is called from the function callNUFFT.m and RBF-QR is called from setupPUX.

Tests:
The tests and demos are run by executing DEMO_extension.m, exmaple2.m and example3.m.

Remark: This code is intended to show the structure of PUX and the Poisson solver from https://arxiv.org/abs/1712.08461. Optimization has not been the main focus.

Authors

Fredrik Fryklund
Erik Lehto.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

repository: fryklund/PUXdemo

repo_name: fryklund/PUXdemo


text:
# File Download Manager

[![expr](https://img.shields.io/badge/go-reference-blue.svg?style=flat)](https://pkg.go.dev/github.com/muktihari/x/fdm)

IDM-like, just in terminal and without pause/resume capability :)

![Alt Text](./preview.gif)

It's all about working with bytes, splitting request using "range" header and writing the bytes of response to at certain point of a file's bytes (as it satisfies io.Seeker). Exploring io.Writer and io.Reader and how we can intercept the interface to print the progress. That's it!

repository: muktihari/x

repo_name: muktihari/x


text:
# Limitless Container Space

This is a mod for **The Long Dark** by Hinterland Games Studio, Inc. It raises the capacity on all containers to 10000 kilograms.

## [Patreon](https://www.patreon.com/ds5678)

I know many people might skip over this, but I hope you don't. You are so special, and I would appreciate your support. Modding takes lots of time, and I have expenses like food, internet, and rent. If you feel that I have improved your playing experience, please consider supporting me on my [Patreon](https://www.patreon.com/ds5678). Your support helps to ensure that I can continue making mods for you at the pace I am :)

## Installation

1. If you haven't done so already, install MelonLoader by downloading and running [MelonLoader.Installer.exe](https://github.com/HerpDerpinstine/MelonLoader/releases/latest/download/MelonLoader.Installer.exe).
2. Download the latest version of `LimitlessContainerSpace.dll` from the [releases page](https://github.com/ds5678/LimitlessContainerSpace/releases).
3. Move `LimitlessContainerSpace.dll` into the Mods folder in your TLD install directory.


text:
---
layout: page
title: What's New
include_in_header: false
---

# Changelog
Here is the changelog for Election Meme Maker.

### `Latest`
# **Version 2.0**
2020 election got you thinking? Say it with a meme with the Election Meme Maker app, updated for 2020!

Create your own hilarious election memes with the top presidential candidates using our library of candidate photos., or even use your own photos to create hilarious memes!

#### What's New
- Completely Rebuilt
- Updated for 2020 Election

#### Bug Fixes
- font display error
- sharing

________

### `Initial Release`
# **Version 1.0**
Take Part in the Crazy 2016 Presidential Election by Making Your Own Funny Memes to Share!

Create your own hilarious election memes using your photos or choose from our candidate photos.

repository: eikliw/ememes

repo_name: eikliw/ememes


text:
## Aspose.CAD for .NET

[Aspose.CAD for .NET](https://products.aspose.com/cad/net) allows developers to convert AutoCAD DWG and DXF files to PDF and Raster images. It is a native API and does not require AutoCAD or any other software to be installed. You can also convert the selected layers and layouts from the AutoCAD files. The conversion to PDF and Raster images is of very high quality.

This repository contains [Demos](Demos), [Examples](Examples), Plugins and Showcases for [Aspose.CAD for .NET](https://products.aspose.com/cad/net) to help you learn and write your own applications.

Directory | Description
--------- | -----------
[Demos](Demos)  | Aspose.CAD for .NET Live Demos Source Code
[Examples](Examples)  | A collection of .NET examples that help you learn and explore the API features

## How to Run the Examples
+ You can either clone the repository using your favorite GitHub client or download the ZIP file from here.
+ Extract the contents of ZIP file to any folder on your computer. All the examples are located in the **Examples** folder.
+ There is a Visual Studio solution file for C#.
+ The projects are created in Visual Studio 2013, but the solution files are compatible with Visual Studio 2010 SP1 and higher.
+ Open the solution file in Visual Studio and build the project.
+ On first run the dependencies will automatically be downloaded via NuGet.
+ **Data** folder at the root folder of **Examples** contains input files which CSharp examples used. It is mandatory that you download the **Data** folder along with the examples project.
+ Open RunExamples.cs file, all the examples are called from here.
+ Uncomment the examples you want to run from within the project.

Please find more details for how to run the examples [here](https://docs.aspose.com/display/cadnet/How+to+Run+the+Examples).

## Resources

+ **Website:** [www.aspose.com](http://www.aspose.com)
+ **Product Home:** [Aspose.CAD for .NET](https://products.aspose.com/cad/net)
+ **Download:** [Download Aspose.CAD for .NET](https://www.nuget.org/packages/Aspose.CAD/)
+ **Documentation:** [Aspose.CAD for .NET Documentation](https://docs.aspose.com/display/cadnet/Home)
+ **Forum:** [Aspose.CAD for .NET Forum](https://forum.aspose.com/c/cad)
+ **Blog:** [Aspose.CAD for .NET Blog](https://blog.aspose.com/category/aspose-products/aspose.cad-product-family/)


text:
dwm - dynamic window manager
============================
dwm is an extremely fast, small, and dynamic window manager for X. Current version: v6.0

Usage
-----
Note: this customized version might be Ubuntu-specific. Please make changes as necessary.
* Refer to original installation guide as necessary (included below);
* Customize config.h;
* (optional) Enable system tray by applying attached systray.diff patch;
* Create dwm starter script (eg. dwm_start as attached, with status-bar enabled) in your PATH (eg. /usr/local/bin/). Make sure it's executable;
* Create GDM login option (eg. dwm.desktop as attached) in directory /usr/share/xsessions/ ;
* Install tools of your preference (remember to modify your config.h)
    - termianl: sakura
    - screen lock: slock (or xlock, but it sometimes has problem in wake-up), xautolock (use in combination with slock to auto lock when inactive for certain time)
    - GUI for network management: wicd (start it with wicd-client -n), etc.
    - file manager: pcmanfm

Know Issues
-----
* No support for UTF-8 in title bar

Original README in dwm package below
-------

Requirements
------------
In order to build dwm you need the Xlib header files.

Installation
------------
Edit config.mk to match your local setup (dwm is installed into
the /usr/local namespace by default).

Afterwards enter the following command to build and install dwm (if
necessary as root):

    make clean install

If you are going to use the default bluegray color scheme it is highly
recommended to also install the bluegray files shipped in the dextra package.

Running dwm
-----------
Add the following line to your .xinitrc to start dwm using startx:

    exec dwm

In order to connect dwm to a specific display, make sure that
the DISPLAY environment variable is set correctly, e.g.:

    DISPLAY=foo.bar:1 exec dwm

(This will start dwm on display :1 of the host foo.bar.)

In order to display status info in the bar, you can do something
like this in your .xinitrc:

    while xsetroot -name "`date` `uptime | sed 's/.*,//'`"
    do
    	sleep 1
    done &
    exec dwm

Configuration
-------------
The configuration of dwm is done by creating a custom config.h
and (re)compiling the source code.

repository: XieConnect/dwm

repo_name: XieConnect/dwm


text:
---
title: Scroll Item into View
page_title: Scroll Item into View
description: This article demonstrates the ScrollIntoView suppport of RadNavigationView.
slug: radnavigationview-how-to-scrollintoview
tags: scroll,item,into,view
published: True
position: 0
---

# Scroll Item into View

The __RadNavigationView API__ offers __ScrollIntoView__ support through the following method: __ScrollIntoView__. This method allows you to programmatically scroll an item into view when there are many RadNavigationViewItems.

## ScrollIntoView

The ScrollIntoView method has two overloads. One of them accepts an item and the other one accepts an index. __Examples 1, 2__ setup a RadNavigationView in a databinding scenario to demonstrate this method.

#### __[C#] Example 1: Setting up the model and viewmodel__
{{region cs-radnavigationview-how-to-scrollintoview-0}}
    public class NavigationItemModel
    {
        public string Title { get; set; }
    }

    public class MainViewModel
    {
        public ObservableCollection<NavigationItemModel> Items { get; set; }

        public MainViewModel()
        {
            this.Items = new ObservableCollection<NavigationItemModel>();

            for (int i = 1; i <= 50; i++)
            {
                this.Items.Add(new NavigationItemModel() { Title = "Item " + i });
            }
        }
    }
{{endregion}}

#### __[VB.NET] Example 1: Setting up the model and viewmodel__
{{region vb-radnavigationview-how-to-scrollintoview-1}}
    Public Class NavigationItemModel
		Public Property Title() As String
    End Class

    Public Class MainViewModel
		Public Property Items() As ObservableCollection(Of NavigationItemModel)

		Public Sub New()
			Me.Items = New ObservableCollection(Of NavigationItemModel)()

			For i As Integer = 1 To 50
				Me.Items.Add(New NavigationItemModel() With {.Title = "Item " & i})
			Next i
		End Sub
    End Class
{{endregion}}

#### __[XAML] Example 2: Setting up the xaml__
{{region xaml-radnavigationview-how-to-scrollintoview-2}}
    <Grid>
        <Grid.Resources>
            <!-- If you are using the NoXaml binaries, you will have to base the style on the default one for the theme like so:
            <Style TargetType="telerik:RadNavigationViewItem" BasedOn="{StaticResource RadNavigationViewItemStyle}">-->

            <Style TargetType="telerik:RadNavigationViewItem" >
                <Setter Property="Content" Value="{Binding Title}" />
            </Style>
        </Grid.Resources>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>

        <telerik:RadNavigationView x:Name="navigationView" DataContext="{StaticResource ViewModel}" ItemsSource="{Binding Items}" PaneHeader="Header" />

        <Button Click="ScrollItemIntoView" Content="Scroll Into View" Grid.Row="1" />
    </Grid>
{{endregion}}

__Example 3__ demonstrates how the ScrollIntoView method can be used, in the Button's Click event handler, by passing it either an item, or an index.

#### __[C#] Example 3: Scrolling an item/index into View__
{{region cs-radnavigationview-how-to-scrollintoview-3}}
    private void ScrollItemIntoView(object sender, RoutedEventArgs e)
    {
        //this.navigationView.ScrollIntoView(this.navigationView.Items[15]);
        this.navigationView.ScrollIntoView(15);
    }
{{endregion}}

#### __[VB.NET] Example 3: Scrolling an item/index into View__
{{region vb-radnavigationview-how-to-scrollintoview-4}}
    Private Sub ScrollItemIntoView(ByVal sender As Object, ByVal e As RoutedEventArgs)
		'this.navigationView.ScrollIntoView(this.navigationView.Items[15]);
		Me.navigationView.ScrollIntoView(15)
    End Sub
{{endregion}}

## See Also

 * [Getting Started]({%slug radnavigationview-getting-started%})
 * [Selection]({%slug radnavigationview-features-selection%})
 * [DataBinding]({%slug radnavigationview-populating-with-data-databinding%})

repository: telerik/xaml-docs

repo_name: telerik/xaml-docs


text:
# Antrodia cervina (Schwein.) Kotl. & Pouzar, 1983 SPECIES

#### Status
SYNONYM

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
Ceská Mykol. 37(1): 50 (1983)

#### Original name
Boletus cervinus Schwein., 1822

### Remarks
null

repository: mdoering/backbone

path: /life/Fungi/Basidiomycota/Agaricomycetes/Polyporales/Polyporaceae/Trametopsis/Trametopsis cervina/ Syn. Antrodia cervina/README.md

repo_name: mdoering/backbone