text:
---
Title: "Chaos in a long-term experiment with a plankton community"
Author:
  - name: Owen Petchey
    affiliation: 1
  - name: Marco Plebani
    affiliation: 1
  - name: Frank Pennekamp
    affiliation: 1
Address:
  - code:    1
    address: Department of Evolutionary Biology and Environmental Studies, University of Zurich, Zurich, Switzerland
Contact:
  -<EMAIL_ADDRESS>Editor:
  - Timothée Poisot
Reviewer:
  - Yoav Ram
  - Federico Vaggi
Publication:
  received:  Feb, 23, 2016
  accepted:  Apr, 13, 2016
  published: Apr, 22, 2016
  volume:    "**2**"
  issue:     "**1**"
  date:      Apr 2016
Repository:
  article: "https://github.com/ReScience-Archives/Petchey-Plebani-Pennekamp-2016/tree/master/article"
  code:    "https://github.com/ReScience-Archives/Petchey-Plebani-Pennekamp-2016/tree/master/code"
  data:    "https://github.com/ReScience-Archives/Petchey-Plebani-Pennekamp-2016/tree/master/data"
  notebook:
Reproduction:
  - "Benincà, E., Huisman, J., Heerkloss, R., Jöhnk, K.D., Branco, P., Van Nes, E.H., Scheffer, M. & Ellner, S.P. (2008) Chaos in a long-term experiment with a plankton community. Nature, 451, 822–825 DOI: 10.1038/nature06512"
Bibliography:
  article.bib

---

# Introduction

The original paper describes analyses of fluctuations in the abundance of organisms in a plankton community derived from the Baltic Sea, housed in a laboratory environment. The length of the time series (samples every few days for 2,300 days) allowed for analyses revealing that the observed dynamics exhibited characteristics consistent with chaos produced by non-linear species interactions. The article concludes that stability is not required for persistence of complex food webs, and that long-term prediction of abundances may be fundamentally impossible. The demonstration of chaotic dynamics and limited forecast horizons (sensu @Petchey2015) is important in the field of ecology, since the ability to predict dynamics is an open question with considerable applied importance (@Petchey2015 @Mouquet2015.)

# Methods

This reproduction started with the raw data (source given below) and used information from the original paper, [the supplement to the original paper](http://www.nature.com/nature/journal/v451/n7180/extref/nature06512-s1.pdf), and communications with Elisa Benincà, who provided for comparison digitised data from the original article, and Stephen Ellner, who provided code and data used to produce results in the original paper. Use of this data and code in this reproduction is indicated below.

## Scope of the reproduction

An attempt was made to reproduce the majority of the results in the original article. Instances where we did not attempt to reproduce a result are detailed below.

## The data

The data are available as an Excel file supplement to [an Ecology Letters publication](http://onlinelibrary.wiley.com/doi/10.1111/j.1461-0248.2009.01391.x/abstract) (@Beninca2009). The Excel file contains several datasheets. Two were particularly important, as they were the source of the raw data (one contains original species abundances, the other the nutrient concentrations). We saved these two datasheets, without any alteration, as comma separated value (csv) text files. In the code associated with this reproduction, these data files are read from the associated github repository. Another datasheet contained transformed data (we also saved this as csv file, in order to use it in this reproduction). We also received a dataset direct from Steve Ellner, see below for details.

The original abundance dataset contains a duplicated date: 28/10/1996 (row 709 and 710 in excel sheet). We changed this (in R) to 26/10/1996, making the observation occur half way between the two surrounding dates. The Protozoa variable in the original dataset contains some numbers with a comma (instead of period) as the decimal separator; these were changed to periods.

## Reproduction environment

The R language and environment for statistical computing and graphics (@R) was used to make the reproduction. Additional R packages required are specified in the code associated with this reproduction. The code for making the analyses and figures presented in this reproduction resides in an R markdown document, as well as a source file containing some required functions. Some of the code takes several minutes to run, so an intermediate data file is provided with results from this code.

# Results

## Population dynamics

The reproduced populations dynamics (figure @fig:dynamics) were very similar to those in figure 1b-g of the original publication. As most analyses were performed on fourth root transformed values, we plot these, rather than raw abundances with a y-axis break as in the original article.

![Observed population dynamics.](figures/obs_pop_dyn.pdf){#fig:dynamics}

## Data transformations

The original publication states that long sequences of zeros were removed from time series prior to transformation and further analysis. We removed zeros by matching the removals to those in the transformed version of the data in the published Excel file mentioned above. Subsequent transformation steps were:

1. Interpolation to create equally spaced observations in time series.
2. Fourth root transformation.
3. Detrending of five of the time series.
4. Rescaling to zero mean and unit standard deviation.

The reproduced transformed data closely matched the published transformed data (figure @fig:trans_comp1).

![Comparison of published transformed data with reproduced transformed data. The red line is the 1:1 line.](figures/zero_rem_trans_comparison.pdf){#fig:trans_comp1}

## Correlations among species abundances

Correlations among species abundances presented in Table 1 of the original article closely matched our reproduced correlations, calculated from the transformed data with zeros removed (figure @fig:corr_comp). Deviations between the original and reproduced correlations are relatively small and infrequent.

![Comparison of calculated correlations among species abundances in the original article and this reproduction.](figures/correlation_comparison.pdf){#fig:corr_comp}

Highlighted in the text of the original paper were: negative correlations of picophytoplankton with protozoa, and of nanophytoplankton both with rotifers and calanoid copepods, positive correlation of picophytoplankton with calanoid copepods, negative correlation between bacteria and ostracods, and positive correlation between bacteria and phosphorus. All of these correlations were at least qualitatively reproduced.

## Spectral analyses

Spectral analyses in the original paper were presented graphically in figures S3 (raw spectrograms) and S4 (Welch periodograms). The original article states: "fluctuations covered a range of different periodicities", and "picophytoplankton, rotifers and calanoid copepods seemed to fluctuate predominantly with a periodicity of about 30 days." Our reproduced spectra (not shown here, but code provided) were a reasonably close match to the spectra in the original article.

## Lyapunov exponents by direct method

The original article states: "the distance between initially nearby trajectories increased over time, and reached a plateau after about 20–30 days". The reproduced results (figure @fig:divergence) are consistent with this statement. The original article also stated that the analyses "yielded significantly positive Lyapunov exponents of strikingly similar value for all species (Fig. 3; mean exponent = 0.057 per day, s.d. = 0.005 per day, n = 9)". Reproduced exponents had very similar mean value, but had larger standard deviation (mean = 0.060 and s.d. = 0.014), resulting from quantitative differences in reproduced divergence rates (figure @fig:divergence) and therefore Lyapunov exponents (figure @fig:LE_comparison).

![Reproduced divergence rates and Lyapunov exponents (equivalent to figure 3 in the original article).](figures/div_rate.pdf){#fig:divergence}

<div style="width:400px; height=400px">
![Comparison of original and reproduced directly estimated Lyapunov exponents.](figures/LE_comparison.pdf){#fig:LE_comparison}
</div>

## Lyapunov exponents by indirect method

The data received directly from Stephen Ellner (file 'interp_short_allsystem_newnames.csv' in the reproduction repository) was interpolated, but without zeros removed. The reproduced interpolated data, without zeros removed, matched closely this data (figure @fig:trans_comp2).

![Comparison of interpolated data provided by Ellner with reproduced interpolated data (no removal of zeros). The red line is the 1:1 line.](figures/repro_ellner_comp.pdf){#fig:trans_comp2}

The original paper reported a global Lyapunov exponent calculated via two modelling approaches (neural network and generalised additive models [GAMs]). Only the GAM approach was reproduced, with the assistance of code donated by Stephen Ellner. The original article obtained
a global Lyapunov exponent of 0.08 per day. The reproduced value was 0.04. We did not reproduce the bootstrapping used to give confidence intervals around this estimate.

## Predictability decay

The article stated: "For short-term forecasts of only a few days, most species had a high predictability of R2 = 0.70 – 0.90 (Fig. 2). However, the predictability of the species was much reduced when prediction times were extended to 15–30 days." The reproduced predictabilities, which were calculated from the GAMs, were consistent with these qualitative statements, and were most often quantitatively similar (@fig:prediction_distance). We did not reproduce the predictability estimates for linear models.

![Predictability (correlation between predicted and observed abundances) and prediction distance (days) (figure 2 in the original article). Reproducted data in red, and data from original publication in black.](figures/prediction_distance.pdf){#fig:prediction_distance}

# Conclusion

The reproduced results were qualitatively identical to those in the original article, and therefore support the conclusion of chaotic dynamics. For example, all Lyapunov exponents estimated by direct method were positive, as in the original article. Quantitative differences may have resulted from difference in algorithms used. For example, the original used the [Tisean software](http://www.mpipks-dresden.mpg.de/~tisean/) to calculate Lyapunov exponents. As this was available from CRAN [until mid 2014](http://cran.r-project.org/web/packages/RTisean/index.html) and since it is a bit less well integrated with R, we instead used the tseriesChaos package (@tseriesChaos), which in any case was largely inspired by the TISEAN project. In addition, there may have been some difference in algorithm parameters, as not all parameters required by the function we used were reported in the original ms.

Quantitative differences in predictability decay (figure @fig:prediction_distance) remain unexplained, though could result from original analyses using neural networks, and the reproduction using GAMs. The difference in estimate of the global Lyapunov exponent (0.08 in the original article and 0.04 here) appears to be due to difference in data used (illustrated in figure @fig:trans_comp2).

In conclusion, this reproduction supports the general scientific conclusions of the original article, but also shows how difficult can be an accurate quantitative reproduction, even in the presence of the extensive methodological details provided alongside the original article.

# Acknowledgements

This reproduction was made as part of the Reproducible Research in Ecology, Evolution, Behaviour, and Environmental Studies (RREEBES) Course, lead by Owen Petchey at the University of Zurich. More information about the course [here](https://github.com/opetchey/RREEBES/blob/master/README.md) on github. Many thanks to Elisa Benincà, Stephen Ellner and Jef Huisman for assistance, and to Stephen Ellner for providing unpublished data and code.

# References


text:
# Change log

## [2.6.0](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v2.6.0)
#### 15/05/2019

### Updated

* Wepback configuration - use `path.resolve` in all file system references.
* Package dependencies
  * Downgraded `clean-webpack-plugin` from `2.0.1` to `1.0.1` (breaking changes, see the updated `webpack.config.js`) due to strange behaviour during `watch` mode.
* Package dependencies trees
* README - _added additional note for NFS and containerized development environments_

## [2.5.0](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v2.5.0)
#### 22/04/2019

### Updated

* Switched to using `npm ci` instead of `npm install` for initial install.
  * Updated README
  * More on the clean install npm command can be read yere [`npm ci`](https://docs.npmjs.com/cli/ci.html)
* NPM audit review and dependency packages updates due to reverting them accidentally
  * Updated `tar` to `4.4.2` dependency path `node-sass > node-gyp > tar` - [more info](https://npmjs.com/advisories/803)
  * Updated `braces` to `2.3.2` dependency path `browser-sync > micromatch > braces` - [more info](https://npmjs.com/advisories/786)

## [2.4.3](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v2.4.3)
#### 22/04/2019

### Updated

* NPM audit review and dependency packages updates
  * Updated `tar` to `4.4.2` dependency path `node-sass > node-gyp > tar` - [more info](https://npmjs.com/advisories/803)
  * Updated `braces` to `2.3.2` dependency path `browser-sync > micromatch > braces` - [more info](https://npmjs.com/advisories/786)

## [2.4.2](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v2.4.2)
#### 17/04/2019

### Added

* Issue Template
* Pull Request Template

### Updated

* Package dependencies
  * `clean-webpack-plugin` from `1.0.1` to `2.0.1` (breaking changes, see the updated `webpack.config.js`)
  * `copy-webpack-plugin` from `4.6.0` to `5.0.2`
  * `mini-css-extract-plugin` from `0.5.0` to `0.6.0`
* Package dependencies trees
* README

## [2.4.1](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v2.4.1)
#### 14/04/2019

### Updated

* NPM audit review and dependency packages updates
  * Auto fixing with `npm audit fix`
  * Manually updated
    * updated `tar` to `4.4.2` dependency path `node-sass > node-gyp > tar` - [more info](https://npmjs.com/advisories/803)
    * updated `braces` to `2.3.2` dependency path `browser-sync > micromatch > braces` - [more info](https://npmjs.com/advisories/786)
* _README_ file updated
  * Added instructions hot to update/migrate to newer version of this setup.

## [2.4.0](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v2.4.0)
#### 08/01/2019

### Added

* [`copy-webpack-plugin`](https://github.com/webpack-contrib/copy-webpack-plugin) to copy images that are part of the content (_referenced by `<img>` tags_)
* [`terser-webpack-plugin`](https://github.com/webpack-contrib/terser-webpack-plugin) to optimize JavaScript files for production
  * This plugin is dependency of `webpack` itself
* Support for favicon in the produced HTML

### Updated

* README
* Dependencies

### Removed

* `uglifyjs-webpack-plugin` - in favor of the webpack included `terser-webpack-plugin`

## [2.3.0](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v2.3.0)
#### 03/01/2019

### Added

* NPM package `bundle` script which runs `install` and `watch` tasks in a single call.

### Updated

* README file
* Packages
  *<EMAIL_ADDRESS>  *<EMAIL_ADDRESS>
## [2.2.0](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v2.2.0)
#### 02/01/2019

### Added

* _Minify_ and _Uglify_ js `webpack` plugin - [uglifyjs-webpack-plugin](https://www.npmjs.com/package/uglifyjs-webpack-plugin) due to not consistent behavuour of the built-in webpack
js minimization features

### Updated

* `autoprefixer` package

### Removed

* `uglify-es` package

## [2.1.0](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v2.1.0)
#### 31/12/2018

### Added

* [MIT](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/blob/master/LICENSE) License

### Updated

* [README](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/blob/master/README.md) - more detailed setup and usage instructions
* Webpack `4.28.3`
* NPM Audit fixed packages, after running `npm audit fix`

> fixed 35 of 35 vulnerabilities in 9452 scanned packages

## [2.0.0](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v2.0.0)
#### 14/12/2018

### Added

* Support for HTML template loading
  * Default template included that illustrates custom font and image loaders

### Updated

* Support for `Webpack 4`
* Support for `Babel 7`
  * Added `.babelrc` file for preset definitions
* Cleanup of dist directory upon build

### Removed

* `jQuery` - it can be added per project basis if needed;

## [1.2.0](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v1.2.0)
#### 14/12/2018

### Updated

* Package dependencies
* _README_ file with information how to run js/css code linters
* Code style changes
* Package dependencies divided to dev and non-dev packages
* Default package name

## [1.1.0](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v1.1.0)
#### 10/07/2017

### Added

* Support for jQuery

## [1.0.0](https://github.com/WeAreAthlon/frontend-webpack-boilerplate/releases/tag/v1.0.0)
#### 03/07/2017

* Initial Release

license: MIT

branch_name: refs/heads/master

extension: md

gha_language: JavaScript

gha_license_id: MIT

license_type: permissive


text:
# GenerateProposals {#openvino_docs_ops_detection_GenerateProposals_9}

@sphinxdirective

.. meta::
  :description: Learn about GenerateProposals-9 - an object detection operation,
                which can be performed on four required input tensors.

**Versioned name**: *GenerateProposals-9*

**Category**: *Object detection*

**Short description**: The *GenerateProposals* operation proposes ROIs and their scores
based on input data for each image in the batch.

**Detailed description**: The operation performs the following steps for each image:

1. Transposes and reshapes predicted bounding boxes deltas and scores to get them into the same dimension order as the
   anchors.
2. Transforms anchors and deltas into proposal bboxes and clips proposal bboxes to an image. The attribute *normalized*
   indicates whether the proposal bboxes are normalized or not.
3. Sorts all ``(proposal, score)`` pairs by score from highest to lowest; order of pairs with equal scores is undefined.
4. Takes top *pre_nms_count* proposals, if total number of proposals is less than *pre_nms_count* takes all proposals.
5. Removes predicted boxes with either height or width < *min_size*.
6. Applies non-maximum suppression with *adaptive_nms_threshold*. The initial value of *adaptive_nms_threshold* is
   *nms_threshold*. If ``nms_eta < 1`` and ``adaptive_threshold > 0.5``, update ``adaptive_threshold *= nms_eta``.
7. Takes and returns top proposals after nms operation. The number of returned proposals in each image is dynamic
   and is specified by output port 3 ``rpnroisnum``. And the max number of proposals in each image is specified
   by attribute *post_nms_count*.

All proposals of the whole batch are concatenated image by image, and distinguishable through outputs.

**Attributes**:

* *min_size*

    * **Description**: The *min_size* attribute specifies minimum box width and height.
    * **Range of values**: non-negative floating-point number
    * **Type**: float
    * **Required**: *yes*

* *nms_threshold*

    * **Description**: The *nms_threshold* attribute specifies threshold to be used in the NMS stage.
    * **Range of values**: non-negative floating-point number
    * **Type**: float
    * **Required**: *yes*

* *pre_nms_count*

    * **Description**: The *pre_nms_count* attribute specifies number of top-n proposals before NMS.
    * **Range of values**: non-negative integer number
    * **Type**: int
    * **Required**: *yes*

* *post_nms_count*

    * **Description**: The *post_nms_count* attribute specifies number of top-n proposals after NMS.
    * **Range of values**: non-negative integer number
    * **Type**: int
    * **Required**: *yes*

* *normalized*

    * **Description**: *normalized* is a flag that indicates whether proposal bboxes are normalized or not.
    * **Range of values**: true or false
      * *true* - the bbox coordinates are normalized.
      * *false* - the bbox coordinates are not normalized.
    * **Type**: boolean
    * **Default value**: True
    * **Required**: *no*

* *nms_eta*

    * **Description**: eta parameter for adaptive NMS.
    * **Range of values**: a floating-point number in closed range ``[0, 1.0]``.
    * **Type**: float
    * **Default value**: ``1.0``
    * **Required**: *no*

* *roi_num_type*

    * **Description**: the type of element of output 3 ``rpnroisnum``.
    * **Range of values**: i32, i64
    * **Type**: string
    * **Default value**: ``i64``
    * **Required**: *no*

**Inputs**

* **1**: ``im_info`` - tensor of type *T* and shape ``[num_batches, 3]`` or ``[num_batches, 4]`` providing
  input image info. The image info is layout as ``[image_height, image_width, scale_height_and_width]`` or as
  ``[image_height, image_width, scale_height, scale_width]``. **Required.**
* **2**: ``anchors`` - tensor of type *T* with shape ``[height, width, number_of_anchors, 4]`` providing anchors.
  Each anchor is layouted as ``[xmin, ymin, xmax, ymax]``. **Required.**
* **3**: ``boxesdeltas`` - tensor of type *T* with shape ``[num_batches, number_of_anchors * 4, height, width]``
  providing deltas for anchors. The delta consists of 4 element tuples with layout ``[dx, dy, log(dw), log(dh)]``. **Required.**
* **4**: ``scores`` - tensor of type *T* with shape ``[num_batches, number_of_anchors, height, width]`` providing proposals scores. **Required.**

The ``height`` and ``width`` from inputs ``anchors``, ``boxesdeltas`` and ``scores`` are the height and width of feature maps.

**Outputs**

* **1**: ``rpnrois`` - tensor of type *T* with shape ``[num_rois, 4]`` providing proposed ROIs.
  The proposals are layouted as ``[xmin, ymin, xmax, ymax]``. The ``num_rois`` means the total proposals
  number of all the images in one batch. ``num_rois`` is a dynamic dimension.
* **2**: ``rpnscores`` - tensor of type *T* with shape ``[num_rois]`` providing proposed ROIs scores.
* **3**: ``rpnroisnum`` - tensor of type *roi_num_type* with shape ``[num_batches]`` providing the number
  of proposed ROIs in each image.

**Types**

* *T*: any supported floating-point type.

**Example**

.. code-block:: xml
   :force:

   <layer ... type="GenerateProposals" version="opset9">
       <data min_size="0.0" nms_threshold="0.699999988079071" post_nms_count="1000" pre_nms_count="1000" roi_num_type="i32"/>
       <input>
           <port id="0">
               <dim>8</dim>
               <dim>3</dim>
           </port>
           <port id="1">
               <dim>50</dim>
               <dim>84</dim>
               <dim>3</dim>
               <dim>4</dim>
           </port>
           <port id="2">
               <dim>8</dim>
               <dim>12</dim>
               <dim>50</dim>
               <dim>84</dim>
           </port>
           <port id="3">
               <dim>8</dim>
               <dim>3</dim>
               <dim>50</dim>
               <dim>84</dim>
           </port>
       </input>
       <output>
           <port id="4" precision="FP32">
               <dim>-1</dim>
               <dim>4</dim>
           </port>
           <port id="5" precision="FP32">
               <dim>-1</dim>
           </port>
           <port id="6" precision="I32">
               <dim>8</dim>
           </port>
       </output>
   </layer>

@endsphinxdirective

repository: openvinotoolkit/openvino

repo_name: openvinotoolkit/openvino


text:
# Everest - Celeste Mod Loader / Base API

### License: MIT

----

[![Build Status](https://dev.azure.com/EverestAPI/Everest/_apis/build/status/EverestAPI.Everest?branchName=dev)](https://dev.azure.com/EverestAPI/Everest/_build?definitionId=3)

[**Check the website for installation / usage instructions.**](https://everestapi.github.io/)

Using [MonoMod](https://github.com/MonoMod/MonoMod), an open-source C# modding utility.

**We're in the game modding category on the "Mt. Celeste Climbing Association" Discord server:**

[![Discord invite](github/invite.png)](https://discord.gg/6qjaePQ)

### Mod Development:
For information about mod development, check out the [Everest Wiki](https://github.com/EverestAPI/Resources/wiki) or ask questions in the `#modding_help` channel on discord.

## Compiling Everest yourself
- ***If you just want to install Everest, go to the [Everest website](https://everestapi.github.io/).***
- If you've **previously installed Everest and updated Celeste** or switched betas / branches, delete the `orig` directory where Celeste is installed.
    - macOS: Right-click and browse the Celeste app in Finder, then naviagte to `Contents`, then `MacOS`.
- Clone the Everest repo, either in your IDE, via the CLI, or by downloading the .zip from GitHub.
- Restore Nuget packages either via your IDE or the command line.

### Windows
- Open the .sln in the repo with Visual Studio
- Build all
- Copy everything in `MiniInstaller\bin\Debug` and `Celeste.Mod.mm\bin\Debug` to your Celeste directory
- Run MiniInstaller.exe

### macOS / Linux (no Nix)
- [Install the mono runtime](https://www.mono-project.com/download/stable/)
- Build all
    - _With MonoDevelop:_ Open the .sln in the repo with MonoDevelop
    - _Manually:_ Open the terminal in the Everest directory and run `msbuild` or `xbuild`
- Copy everything in `MiniInstaller/bin/Debug` and `Celeste.Mod.mm/bin/Debug` to your Celeste directory
    - macOS: `Celeste.app/Contents/MacOS`
- Run `mono MiniInstaller.exe`

### Nix
**Note:** At the time of writing, no member of the Everest Team is using Nix.
- Run `nix-env -f . -iA everest` in the Everest repo
- Wait for it to install
- Run `miniinstaller ~/Celeste`, where `~/Celeste` is your Celeste path.
    - **`miniinstaller` is a *wrapper* over the MiniInstaller.exe in the other methods.**

repository: Kokasgui/Everest

branch_name: refs/heads/dev

repo_name: Kokasgui/Everest


text:
# Geolocation Ipstack Adapter

[![Build status][Master image]][Master]
[![Coverage Status][Master coverage image]][Master coverage]
[![Code Climate][Code Climate image]][Code Climate]
[![Packagist][Packagist image]][Packagist]

[![License][License image]][License]

## Installation

Install via composer:

```console
$ composer require --dev aist/ipstack-adapter
```

## Configuration
Add your ipstack API key to local config
```
return [
    'ipstack' => [
        'key' => '***',
    ],
];
```

  [Master image]: https://img.shields.io/travis/ma-si/ipstack-adapter/master.svg?style=flat-square
  [Master]: https://secure.travis-ci.org/ma-si/ipstack-adapter
  [Master coverage image]: https://img.shields.io/coveralls/ma-si/ipstack-adapter/master.svg?style=flat-square
  [Master coverage]: https://coveralls.io/r/ma-si/ipstack-adapter?branch=master
  [Code Climate image]: https://img.shields.io/codeclimate/github/ma-si/ipstack-adapter.svg?style=flat-square
  [Code Climate]: https://codeclimate.com/github/ma-si/ipstack-adapter
  [Packagist image]: https://img.shields.io/packagist/v/aist/ipstack-adapter.svg?style=flat-square
  [Packagist]: https://packagist.org/packages/aist/ipstack-adapter
  [License image]: https://poser.pugx.org/aist/ipstack-adapter/license?format=flat-square
  [License]: https://opensource.org/licenses/BSD-3-Clause

repository: ma-si/ipstack-adapter

repo_name: ma-si/ipstack-adapter


text:
+++
image = "mat-stat.png"
date = "2022-03-29"
title = "Mat Stat"
type = "gallery"
categories = ['work-in-progress','infographic']
description = "This project aims to provide data visualization to professional wrestling title reigns. Work in progress. It will scrape Wikipedia to compile its data."
+++

Mat Stat is my most recent sports infographic project, and it is hosted on [Netlify](https://matstat.netlify.app/).

Like [Title Tally](/portfolio/title-tally), it looks to quantify championship victories using a number of metrics (time, location, etc.). Unlike Title Tally, this time it focuses on major professional wrestling promotions. The front-end is vanilla JavaScript. I haven't decided if the back-end will be dynamic (scraped from Wikipedia) or static (compiled in a local database) yet.


text:
# Vault Plugin: GPG Secret Backend [![Build Status](https://github.com/DataDog/vault-gpg-plugin/workflows/CI/badge.svg)](https://github.com/DataDog/vault-gpg-plugin/actions?query=workflow%3ACI) [![Code coverage](https://codecov.io/gh/DataDog/vault-gpg-plugin/branch/master/graph/badge.svg)](https://codecov.io/gh/DataDog/vault-gpg-plugin)

This is a standalone plugin for [HashiCorp Vault](https://www.github.com/hashicorp/vault).
This plugin handles GPG operations on data-in-transit in a similar fashion to what the
[transit secret backend](https://www.vaultproject.io/docs/secrets/transit) proposes.
Data sent to the backend are not stored.

As of today, the backend does not support encrypting data.

This backend has similar use cases with the [transit secret backend](https://www.vaultproject.io/docs/secrets/transit)
and the latter should be preferred if you do not need to interact with existing tools that are only GPG-aware.

## Usage & setup

This is a [Vault plugin](https://www.vaultproject.io/docs/internals/plugins.html), you need to have a working installation
of Vault to use it.

To learn how to use plugins with Vault, see the [documentation on plugin backends](https://www.vaultproject.io/docs/plugin)
on the official Vault website.

Once mounted in Vault, this plugin exposes [this HTTP API](docs/http-api.md).


text:
windows8 tile menu
================================================
**Screenshot**
![alt tag](http://cistoner.org/sample/windows8-tile-menu/screenshot/screenshot.png)

**How to use**

for the user interface you need to include the stylesheet in ./css/ directory like

	&#60link rel="stylesheet" href="css/os.css">

**To create a tile**
All tiles come under the **div class="panel"** like

	&#60div class="panels">
		&#60div class="sec half">
			&#60div>item 1 of the sample is nice&#60/div>
			div>item 2 of the sample is nice&#60/div>
			&#60div>item 3 of the sample is nice&#60/div>
		&#60/div>
		&#60div class="sec half">
			&#60div>item 1 of the sample is nice&#60/div>
			&#60div>item 2 of the sample is nice&#60/div>
			&#60div>item 3 of the sample is nice&#60/div>
		&#60/div>
	&#60/div>

you need to include the scripts in ./js/ directory like

&#60script src="js/jquery.js">&#60/script>
&#60script src="js/os.js">&#60/script>
&#60script>
	$(".panels").winify({freq:7000});
&#60/script>

**explanation**
the one with **sec half** are half tiles and the **div** inside that tags are swapped time to time
similarly one with **sec full** form the full sized tiles


text:
### Crawls the old and upcoming movies data from IMDB(https://www.imdb.com/) website. <br/>

### To Run

Simply run below commands in terminal :
- `scrapy runspider ScrollPage.py` To run the file
- `scrapy runspider ScrollPage.py -o IMDB.json` To save the file as IMDB.json
- `scrapy runspider ScrollPage.py -o IMDB.csv` To save the file as IMDB.csv


text:
# memcachier-django-ascii

This package provides a memcached cache backend for Django using
[pymemcache](https://github.com/pinterest/pymemcache). We generally
prefer [pylibmc](https://github.com/lericson/pylibmc) but it depends
on a [libmemcached](http://libmemcached.org) which can sometimes cause
issues. Pymemcache is a pure python client.

This package only works with the ASCII protocol and a single memcache
server.

*NOTE:* In general we recommend
[django-pylibmc](https://github.com/jbalogh/django-pylibmc/), but in
rare situations this package works better.

## MemCachier & Authentication

This backend only supports the memcached ASCII protocol, which
normally doesn't support authentication. MemCachier requires
authentication, and adds it in very simply by requiring all new
connections issue a set:

```
$ set <username> 0 0 <password length>\r\n
$ <password>\r\n
```

formatted as above to communicate credentials.

## Requirements

Requires Django 1.3+. It was written and tested on Python 2.7.

## Installation

Get it from pypi:

```
$ pip install memcachier-django-ascii
```

or github:

```
$ pip install -e git://github.com/memcachier/django-ascii.git
```

## Usage

Your cache backend should look something like this:

```
CACHES = {
    'default': {
        'BACKEND': 'memcachier_django.ascii.MemcacheCache',
        'OPTIONS': {
            'no_delay': True,
            'connect_timeout': 2,
            'timeout': 2,
            'ignore_exc': True,
        }
    }
}
```

*NOTE*: The backend currently only supports connecting to one server.

## Configuration with Environment Variables

Optionally, the memcached connection can be configured with
environment variables (on platforms like Heroku). To do so, declare
the following variables:

```
MEMCACHE_SERVERS
MEMCACHE_USERNAME
MEMCACHE_PASSWORD
```

## Author

Forked from [django-pymemcache](https://github.com/jsocol/django-pymemcache).

## Get involved!

We are happy to receive bug reports, fixes, documentation enhancements,
and other improvements.

Please report bugs via the
[github issue tracker](http://github.com/memcachier/django-ascii/issues).

Master [git repository](http://github.com/memcachier/django-ascii):

* `git clone git://github.com/memcachier/django-ascii.git`

## Licensing

This library is licensed under the Apache Software License 2.0

repository: memcachier/django-ascii

repo_name: memcachier/django-ascii


text:
+++
date = "2018-09-14"
type = "privacy"
cssid = "privacy"
title = "Privacy"
+++

## NATS Privacy Policy and Cookie Usage

Effective Date: **September 15, 2018**

We are committed to safeguarding the privacy of our website visitors. In this policy we will explain how we treat your personal information.
Analytics is used to track consumers of our site and improve its content. Various cookies along with Google Analytics are used to collect the following kinds of personal information.

* Information about your computer and about your visits to and use of this website including your IP address, geographical location, browser type and version, operating system, referral source, length of visit, page views and website navigation paths.
* Our website includes hyperlinks to, and details of, third party websites. We have no control over, and are not responsible for, the privacy practices of third parties.
* We do not supply your personal information to third parties.

## Changes to the Privacy Policy
This Policy is current as of the effective date set forth above. If we change our privacy policies and procedures, we will post those changes on this page and/or continue to provide access to a copy of the prior version. If we make any changes to this Privacy Policy that materially change how we treat your personal information, we will endeavor to provide you with reasonable notice of such changes, such as via prominent notice on our Sites or to your email address of record, and where required by law, we will obtain your consent or give you the opportunity to opt out of such changes.

## Privacy Settings

{{< privacy-settings >}}

repository: chanakaudaya/nats-site

branch_name: refs/heads/main

repo_name: chanakaudaya/nats-site


text:
---
title: TeX
icon: square-root-variable
---

Let the Markdown file in your VuePress site support the $\TeX$ syntax.

<!-- more -->

## Config

::: code-tabs#language

@tab TS

```ts {7-10}
// .vuepress/config.ts
import { mdEnhancePlugin } from "vuepress-plugin-md-enhance";

export default {
  plugins: [
    mdEnhancePlugin({
      // Enable Tex Support using katex
      katex: true,
      // Enable Tex Support using mathjax
      mathjax: true,
    }),
  ],
};
```

@tab JS

```js {7-10}
// .vuepress/config.js
import { mdEnhancePlugin } from "vuepress-plugin-md-enhance";

export default {
  plugins: [
    mdEnhancePlugin({
      // Enable Tex Support using katex
      katex: true,
      // Enable Tex Support using mathjax
      mathjax: true,
    }),
  ],
};
```

:::

You can only enable ONE of them, and katex has a higher priority.

## Syntax

- Inline mode: `$xxx$`

- Display mode:

  ```md
  $$xxx$$

  $$
  xxx
  $$
  ```

::: tip Escaping

Escaping can be done by using `\` before the `$` character, or adding space both before and after the `$` character:

- The $a=1$ is a TeX equation, while $ a=1 $ and \$a=1$ is not.

```md
- The $a=1$ is a TeX equation, while $ a=1 $ and \$a=1$ is not.
```

:::

## Demo

Euler's identity $e^{i\pi}+1=0$ is a beautiful formula in $\mathbb{R}^2$.

```md
Euler's identity $e^{i\pi}+1=0$ is a beautiful formula in $\mathbb{R}^2$.
```

$$
\frac {\partial^r} {\partial \omega^r} \left(\frac {y^{\omega}} {\omega}\right)
= \left(\frac {y^{\omega}} {\omega}\right) \left\{(\log y)^r + \sum_{i=1}^r \frac {(-1)^ Ir \cdots (r-i+1) (\log y)^{ri}} {\omega^i} \right\}
$$

```md
$$
\frac {\partial^r} {\partial \omega^r} \left(\frac {y^{\omega}} {\omega}\right)
= \left(\frac {y^{\omega}} {\omega}\right) \left\{(\log y)^r + \sum_{i=1}^r \frac {(-1)^ Ir \cdots (r-i+1) (\log y)^{ri}} {\omega^i} \right\}
$$
```

## Playground

<!-- markdownlint-disable -->

<KatexPlayground />

<!-- markdownlint-restore -->

## Support List

Katex:

- [KaTeX Support Features](https://katex.org/docs/supported.html)
- [KaTeX Support List](https://katex.org/docs/support_table.html)

Mathjax:

- [Supported TeX/LaTeX commands](https://docs.mathjax.org/en/latest/input/tex/macros/index.html#tex-commands)

## Advanced

::: info KaTeX

When using KaTeX, you can pass an object to `katex` as `KatexOptions`. It will be passed to KaTeX. Please see [KaTeX Docs](https://katex.org/docs/options.html) for available options.

Also, 2 special options are supported:

- `copy`: enable copy extension by setting it to `true`.
- `mhchem`: enable mhchem extension by setting it to `true`.

:::

::: info Mathjax

When using mathjax, you can pass an object to `mathjax`.

You can set `output` option to either `svg` (default) or `chtml` to change between SVG and HTML output.

Also, you can set `tex` option which is passed to TeX input parser, and you can set `chtml` or `svg` option based on your output syntax which is passed to Common HTML output parser and SVG output parser.

:::

## Tex Tutorial

- [Tex Tutorial](https://www.overleaf.com/learn/latex/Learn_LaTeX_in_30_minutes)
- [Tex Cheat Sheets](https://mdit-plugins.github.io/tex.html#tex-tutorial)

<script setup lang="ts">
import { defineAsyncComponent } from 'vue';

const KatexPlayground = defineAsyncComponent(()=> import('@KatexPlayground'));
</script>

repository: vuepress-theme-hope/vuepress-theme-hope

gha_language: TypeScript

repo_name: vuepress-theme-hope/vuepress-theme-hope


text:
# blog

## Introduction

Laravel-Blog is a blog project written in Laravel 5.2.45

## Features

* Admin Interface;
* Text editor, include paste image and stuff to create post;

## Requirements and Environment

* PHP 5+
* Laravel 5.2.45

## Installation

### 1. Download the repo or Clone

    download

    https://github.com/miftach/blog

    clone

    git clone https://github.com/miftach/blog

### 2. Composer install and update

    cd blog
    composer install
    composer update

### 2. Setting env

    create and configure env with your local blog project
    for example look that .env.example

### 3. Database stuff

    import blog.sql on folder db in your local blog project

### 4. Info

* Admin Page: blog/account/login
* Admin Account: ['username' =><EMAIL_ADDRESS>'password' => '123456']

## Contributors

Miftach Hidayatullah  -<EMAIL_ADDRESS>
## License

Copyright (c) 2014 CJ.

The MIT License (MIT). Please see [Opensource MIT License](http://www.opensource.org/licenses/MIT) for more information.

repository: miftachh/blog

repo_name: miftachh/blog


text:
# spark-daria

Open source Spark functions and transformations.

![typical daria](https://github.com/MrPowers/spark-daria/blob/master/daria.png)

## Representative Examples

The [wiki](https://github.com/MrPowers/spark-daria/wiki) contains documentation for the public methods provided by Daria.

This README contains a subset of examples to familiarize new visitors with the project.

### DataFrameValidator

Custom transformations often make assumptions about the presence or absence of columns in the DataFrame. It's important to document these dependencies in the code and provide users with descriptive error messages if assumptions are not met.

Here's an example of a custom transformation that uses the validatePresenceOfColumns validation.

```scala
import com.github.mrpowers.spark.daria.sql.DataFrameValidator

object MyTransformations extends DataFrameValidator {

  def withStandardizedPersonInfo(df: DataFrame): DataFrame = {
    val requiredColNames = Seq("name", "age")
    validatePresenceOfColumns(df, requiredColNames)
    // some transformation code
  }

}
```

### SQL Column Extensions

The ColumnExt class monkey patches the org.apache.spark.sql.Column class, so SQL functions and user defined functions can be chained ([relevant blog post](https://medium.com/@mrpowers/chaining-spark-sql-functions-and-user-defined-functions-2e98534b6885)).

### sql.functions

Spark [has a ton of SQL functions](https://spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/functions.html) and spark-daria is meant to fill in any gaps.

For example, there is a `datediff` function that calculates the number of days between two dates, but there isn't a `yeardiff` function that calculates the number of years between two dates.

The `com.github.mrpowers.spark.daria.sql.functions.yeardiff` function fills the gap.  Let's see how it works!

Suppose we have the following `testDf`

```
+--------------------+--------------------+
|      first_datetime|     second_datetime|
+--------------------+--------------------+
|2016-09-10 00:00:...|2001-08-10 00:00:...|
|2016-04-18 00:00:...|2010-05-18 00:00:...|
|2016-01-10 00:00:...|2013-08-10 00:00:...|
|                null|                null|
+--------------------+--------------------+
```

We can run the `yeardiff` function as follows:

```scala
import com.github.mrpowers.spark.daria.sql.functions._

val actualDf = testDf
  .withColumn("num_years", yeardiff(col("first_datetime"), col("second_datetime")))

actualDf.show()
```

Console output:

```
+--------------------+--------------------+------------------+
|      first_datetime|     second_datetime|         num_years|
+--------------------+--------------------+------------------+
|2016-09-10 00:00:...|2001-08-10 00:00:...|15.095890410958905|
|2016-04-18 00:00:...|2010-05-18 00:00:...| 5.923287671232877|
|2016-01-10 00:00:...|2013-08-10 00:00:...| 2.419178082191781|
|                null|                null|              null|
+--------------------+--------------------+------------------+
```

### sql.transformations

SQL transformations take a DataFrame as an argument and return a DataFrame.  They are suitable arguments for the `Dataset#transform` method.

It's convenient to work with DataFrames that have snake\_case column names.  Column names with spaces make it harder to write SQL queries.

spark-daria defines a `com.github.mrpowers.spark.daria.sql.transformations.snakeCaseColumns` transformation to convert all the column names to snake\_case.

```scala
import com.github.mrpowers.spark.daria.sql.transformations._

val sourceDf = Seq(
  ("funny", "joke")
).toDF("A b C", "de F")

val actualDf = sourceDf.transform(snakeCaseColumns)

actualDf.show()
```

Console output:

```
+-----+----+
|a_b_c|de_f|
+-----+----+
|funny|joke|
+-----+----+
```

## Contribution Criteria

We are actively looking for contributors to add functionality that fills in the gaps of the Spark source code.

To get started, fork the project and submit a pull request.  Please write tests!

After submitting a couple of good pull requests, you'll be added as a contributor to the project.

Continued excellence will be rewarded with push access to the master branch.

repository: ngvinay/spark-daria

repo_name: ngvinay/spark-daria


text:
Ti=Support Terms  ({Doc.GUID})

Note=OPTIONAL

1.sec={_Company} will provide Technical Support to {_Customer} via both telephone and electronic mail on weekdays during the hours of {SupportDesk.OpenHours.TimeSpan.cl}, with the exclusion of Federal Holidays ("{DefT.Support_Hours}").

2.sec={_Customer} may initiate a helpdesk ticket during {_Support_Hours} by calling {SupportDesk.Phone.#} or any time by emailing {SupportDesk.Email}.

3.sec={_Company} will use commercially reasonable efforts to respond to all Helpdesk tickets within {SupportDesk.Response.TimeSpan}.

=[G/Z/ol/s3]

repository: CommonAccord/Cmacc-Org

gha_language: CSS

repo_name: CommonAccord/Cmacc-Org


text:
---
path: "/tutorials/linuxTools/networking"
date: "2019-07-22"
title: "Networking Tools"
---

This will show you how to use some of the networking tools in Linux, such as ip and netctl.

## IP Command
**N.B. The *ipconfig* command provided by the *net-tools* package has been deprecated, and replaced by the *ip* command provided by the *iproute2* package**

The *ip* command is very powerful and can do many things. This tutorial will show a basic set of functions you can use it for.

1. To list all available interfaces:
```bash
ip a
```

2. To change the IP address of a network device (This change will not persist after reboot. Use netctl for persistence):
```bash
ip addr add <ip_address> dev <device_id>
```
3. Create a static route:
```bash
ip route add <destination_ip>/<cidr_notation> via <ip_to_go_through>
```

## Netctl
As above this will only show a basic subset of what is possible with netctl.
1. List available profiles:
```bash
netctl list
```
2. Stop all profiles:
```bash
netctl stop-all
```
3. Start a specific profile:
```bash
netctl start <profile_name>
```
4. Stop a specific profile:
```bash
netctl stop <profile_name>
```
5. Show status of a profile:
```bash
netctl status <profile_name>
```
6. Enable a profile. This will start the profile when the system starts.
```bash
netctl enable <profile_name>
```
7. Disable a profile. This will stop the profile starting when the system starts.
```bash
netctl disable <profile_name>
```

If you need an IP rule to persist after reboots you will need to add or edit a profile in */etc/netctl*.

Examples of profiles that will work for different scenarios are available in the */etc/netctl/examples/* directory. For more information refer to the manual entry for netctl.profile, which can be accessed via the following command:
```bash
man 5 netctl.profile
```

repository: kingchappers/devBlog

repo_name: kingchappers/devBlog


text:
# PyTorch Implementation: Context Encoder
![License](https://img.shields.io/github/license/fbuchert/context-encoder-pytorch)

PyTorch implementation of [Context Encoders: Feature Learning by Inpainting
](https://arxiv.org/abs/1604.07379) based on the [official lua implementation](https://github.com/pathak22/context-encoder).

The implementation supports the following datasets:
- CIFAR-10 / CIFAR-100
- SVHN
- Caltech101 / Caltech256
- STL10
- HAM10000
- ImageNet

## Installation
Required python packages are listed in `requirements.txt`. All dependencies can be installed using pip
```
pip install -r requirements.txt
```
or using conda
```
conda install --file requirements.txt
```

## Training
Context encoder training is started by running the following command (`--pbar` to show progress bar during training):
```
python main.py
```
All commandline arguments, which can be used to adapt the configuration of the context encoder are defined and described in `arguments.py`.
By default the following configuration is run:
```
dataset: 'cifar10'
epochs: 50
batch_size: 64
lr: 0.0002
beta1: 0.5
beta2: 0.999
w_rec: 0.999
overlap: 0
bottleneck: 4000
image_size: 128
mask_area: 0.25
device: 'cuda'
out_dir: 'context_encoder'
```
Note: If `--random-masking` is not set, int(`mask_area` * `image_size`) has to be in `[32, 64, 128]` as specified in the paper.

In addition to these, the following arguments can be used to further configure the context encoder training process:
* `--random-masking`: If this flag is specified the context encoder is trained to inpaint images in which regions are randomly masked out
* `--device <cuda / cpu>`: Specify whether training should be run on GPU (if available) or CPU
* `--num-workers <num_workers>`: Number of workers used by torch dataloader
* `--resume <path to run_folder>`: Resumes training of training run saved at specified path, e.g. `'out/context_encoder_training/run_0'`. Dataset splits, model state, optimizer state, etc.
  are loaded and training is resumed with specified arguments.
* see `arguments.py` for more

Alternatively, the `polyaxon.yaml`-file can be used to start the context encoder training on a polyaxon-cluster:
```
polyaxon run -f polyaxon.yaml -u
```
For a general introduction to polyaxon and its commandline client, please refer to the [official documentation](https://github.com/polyaxon/polyaxon)
## Monitoring
The training progress (loss, accuracy, etc.) can be monitored using tensorboard as follows:
```
tensorboard --logdir <result_folder>
```
This starts a tensorboard instance at `localhost:6006`, which can be opened in any common browser.

## Evaluation
A trained context encoder can be evaluated by running:
```
 python3 eval.py --run-path out/context_encoder_training/run_0 --pbar --device <cuda / cpu>
```
where `--run-path` specifies the path at which the run to be evaluated is saved. Additionally, the `eval.py` script saves a grid
of reconstructed images to the run folder (if `--save-path` is not specified). Alternatively, one can also check all metrics over all epochs using the tensorboard file.

## References
```
@inproceedings{pathak2016context,
  title={Context encoders: Feature learning by inpainting},
  author={Pathak, Deepak and Krahenbuhl, Philipp and Donahue, Jeff and Darrell, Trevor and Efros, Alexei A},
  booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
  pages={2536--2544},
  year={2016}
}
```

repository: fbuchert/context-encoder-pytorch

repo_name: fbuchert/context-encoder-pytorch


text:
## Install KAP

### Deployment Architecture

In general KAP deployed on a single node can serve small-scale (QPS<50) query and deployment process is easy and quick. The architecture of this deployment is shown in the following figure.

![](images/single_node.png)

Please take care of following configurations in Single Node Deployment especially deployed in Sandbox. `yarn.nodemanager.resource.cpu-vcores` relates to CPU resources, and others are memory related configurations. Please refer to [Hadoop official site](https://hadoop.apache.org/docs/r2.7.3/hadoop-yarn/hadoop-yarn-common/yarn-default.xml) for detailed info.

- yarn.nodemanager.resource.cpu-vcores

- yarn.scheduler.maximum-allocation-mb

- yarn.nodemanager.resource.memory-mb

- mapreduce.map.memory.mb

- mapreduce.reduce.memory.mb

- mapreduce.map.java.opts

- mapreduce.reduce.java.opts

### Install KAP

To obtain KAP package, please refer to [KAP release notes](../release/README.md). There may have some minor differences between KAP and KAP plus.

Copy KAP binary package into the server mentioned above, and unpack to /usr/local

```shell
cd /usr/local
tar -zxvf kap-{version}-{hbase}.tar.gz
```

Set environment variable `KYLIN_HOME` to the KAP extracted directory.

```shell
export KYLIN_HOME=/usr/local/kap-{version}-{hbase}
```

Prepare a working directory on HDFS for KAP user. The directory is `/kylin` by default and is configurable in `conf/kylin.properties`.

```shell
hdfs dfs -mkdir /kylin
# and grant permission to the user who will run KAP process
hdfs dfs -mkdir /kylin/root
```
If no write permission on HDFS, please switch to hdfs account first, create the directory, and grant the privileges.

```shell
su hdfs
hdfs dfs -mkdir /kylin
hdfs dfs -chown root /kylin
hdfs dfs -mkdir /user/root
hdfs dfs -chown root /user/root
```

> KAP Plus will start Spark Executor, so need more YARN resource. For sandbox testing, please lower the Executor resource. Append (or update) the following parameters to `conf/kylin.properties`
>
> kap.storage.columnar.conf.spark.driver.memory=512m
> kap.storage.columnar.conf.spark.executor.memory=512m
> kap.storage.columnar.conf.spark.executor.cores=1
> kap.storage.columnar.conf.spark.executor.instances=1
>
> Or run `bin/setup.sh` to setup the Spark Executor related parameters.

### Environment Check

Make sure the user that runs KAP has permissions to access Hadoop services. If not sure, please run script `check-env.sh` to have a check. Errors will be printed to the console by this script if there is any misconfiguration.

```shell
${KYLIN_HOME}/bin/check-env.sh
```

> Optionally, if want to install multiple KAP instances in a Hadoop cluster, you must specify different metadata URL for each instance. In `conf/kylin.properties`, set `kylin.metadata.url` to different values for each instance, for example `kylin_default_instance@hbase` (the default value), or `kylin_prod@hbase`, or `kylin_qa@hbase` etc.

If environment check hits error, most likely it is because certain Hadoop dependency is not detected automatically. To overcome, you can specify Hadoop dependencies explicitly by setting environment variables, including `HADOOP_CONF_DIR`, `HIVE_LIB`, `HIVE_CONF`, and `HCAT_HOME`. Examples:

```shell
export HADOOP_CONF_DIR=/etc/hadoop/conf
export HIVE_LIB=/usr/lib/hive
export HIVE_CONF=/etc/hive/conf
export HCAT_HOME=/usr/lib/hive-hcatalog
```

### Start KAP

Execute command `bin/kylin.sh start`, KAP will start in background. You can track starting progress by watching file `logs/kylin.log` with `tail` command.

```shell
${KYLIN_HOME}/bin/kylin.sh start
```

To confirm KAP is running, check the process by `ps -ef | grep kylin`.

> If hit problem, please confirm all KAP processes are stopped before restart. See "Stop KAP" section for details.

### Open KAP GUI

After starting KAP, open browser and visit KAP website `http://<host_name>:7070/kylin`. KAP login page shows if everything is good(**User**:ADMIN/**PW**: KYLIN). Once you login the web page via default user/password, GUI would lead you to reset the password follow the password rules.

> **Password rules:**
>
> It should be at least 8 bytes.
>
> It should have at least one number/ one letter/ one special characters(~!@#$%^&*(){}|:"<>?[];',./`).

Please replace `host_name` to machine name, ip address or domain name. The default KAP website port is 7070.

Once login to KAP successfully, you can validate the installation by building a sample cube. Please continue to [Install Validation](install_validate.en.md).

### Stop KAP
Execute command `bin/kylin.sh stop` to stop KAP service.

Confirm KAP process is stopped, `ps -ef | grep kylin` should return nothing.

repository: wormholer/KAP-manual

repo_name: wormholer/KAP-manual


text:
---
title: Architecture
description: Architecture
kt: 5342
audience: Data Engineer, Data Architect, Data Analyst, Data Scientist, Orchestration Engineer, BI Expert, Marketer
doc-type: tutorial
activity:
---

# Architecture

**Author: [Wouter Van Geluwe](https://www.linkedin.com/in/woutervangeluwe/)**

## Learning Objectives

- Learn how to describe the architecture behind Adobe Experience Platform and this tutorial
- Understand the positioning of Adobe Experience Platform in your organization's ecosystem.

## Prerequisites

- No prerequisites

## Introduction Video

>[!VIDEO](https://video.tv.adobe.com/v/35266?quality=12&learn=on)

## Architecture Overview

Here's the image of the whiteboard as you've seen it being created in the above video:

![Luma Retail](./assets/images/whiteboard.png)

And here's the link to the Lucidchart document which you can copy and reuse if desired:

[Lucidchart Architecture](https://bit.ly/3flr2Nc)

![Luma Retail](./assets/images/architecture.png)

[Go Back to All Modules](./overview.md)


text:
# AmqpsIotHubConnection Requirements

## Overview

An AMQPS IotHub connection between a device and an IoTHub. This class contains functionality for sending/receiving a message, and logic to re-establish the connection with the IoTHub in case it gets lost.

## References

## Exposed API

```java
public final class AmqpsIotHubConnection extends BaseHandler
{
	public AmqpsIotHubConnection(DeviceClientConfig config, Boolean useWebSockets);
	public void open() throws IOException;
	public void close();
    public Integer sendMessage(Message message);
    public Boolean sendMessageResult(AmqpsMessage message, IotHubMessageResult result);

	public void onConnectionInit(Event event);
	public void onConnectionBound(Event event);
	public void onReactorInit(Event event);
	public void onDelivery(Event event);
	public void onLinkFlow(Event event);
	public void onLinkRemoteClose(Event event);
	public void onLinkRemoteOpen(Event event);
	public void onLinkInit(Event event);
	public void onTransportError(Event event);
}
```

### AmqpsIotHubConnection

```java
public AmqpsIotHubConnection(DeviceClientConfig config, Boolean useWebSockets);
```

**SRS_AMQPSIOTHUBCONNECTION_15_001: [**The constructor shall throw IllegalArgumentException if any of the parameters of the configuration is null or empty.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_002: [**The constructor shall save the configuration into private member variables.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_001: [**The constructor shall save the device operation list to private member variable.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_004: [**The constructor shall initialize a new Handshaker (Proton) object to handle communication handshake.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_005: [**The constructor shall initialize a new FlowController (Proton) object to handle communication flow.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_006: [**The constructor shall set its state to CLOSED.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_002: [**The constructor shall create a Proton reactor.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_003: [**The constructor shall throw IOException if the Proton reactor creation failed.**]**

**SRS_AMQPSIOTHUBCONNECTION_34_053: [**If the config is using x509 Authentication, the created Proton reactor shall not have SASL enabled by default.**]**

### open

```java
public void open() throws IOException
```

**SRS_AMQPSIOTHUBCONNECTION_15_007: [**If the AMQPS connection is already open, the function shall do nothing.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_009: [**The function shall trigger the Reactor (Proton) to begin running.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_010: [**The function shall wait for the reactor to be ready and for enough link credit to become available.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_011: [**If any exception is thrown while attempting to trigger the reactor, the function shall close the connection and throw an IOException.**]**

**SRS_AMQPSIOTHUBCONNECTION_34_052: [**If the config is not using sas token authentication, then the created iotHubReactor shall omit the Sasl.**]**

### close

```java
public synchronized void close()
```

**SRS_AMQPSIOTHUBCONNECTION_15_048 [**If the AMQPS connection is already closed, the function shall do nothing.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_012: [**The function shall set the status of the AMQPS connection to CLOSED.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_013: [**The function shall close the AMQPS sender and receiver links, the AMQP session and the AMQP connection.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_014: [**The function shall stop the Proton reactor.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_004: [**The function shall throw IOException if the waitLock throws.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_005: [**The function shall throw IOException if the executor shutdown is interrupted.**]**

### sendMessage

```java
public Integer sendMessage(Message message)
```

**SRS_AMQPSIOTHUBCONNECTION_15_015: [**If the state of the connection is CLOSED or there is not enough credit, the function shall return -1.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_016: [**The function shall encode the message and copy the contents to the byte buffer.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_017: [**The function shall set the delivery tag for the sender.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_021: [**The function shall return the delivery hash.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_006: [**The function shall call sendMessageAndGetDeliveryHash on all device operation objects.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_007: [**The function shall doubles the buffer if encode throws BufferOverflowException.**]**

### sendMessageResult

```java
public Boolean sendMessageResult(AmqpsMessage message, IotHubMessageResult result)
```

**SRS_AMQPSIOTHUBCONNECTION_15_022: [**If the AMQPS Connection is closed, the function shall return false.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_023: [**If the message result is COMPLETE, ABANDON, or REJECT, the function shall acknowledge the last message with acknowledgement type COMPLETE, ABANDON, or REJECT respectively.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_024: [**The function shall return true after the message was acknowledged.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_008: [**The function shall return false if message acknowledge throws exception.**]**

## onConnectionInit

```java
public void onConnectionInit(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_15_025: [**The event handler shall get the Connection (Proton) object from the event handler and set the host name on the connection.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_026: [**The event handler shall create a Session (Proton) object from the connection.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_029: [**The event handler shall open the connection, session, sender and receiver objects.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_009: [**The event handler shall calls the openLink on all device operation objects.**]**

## onConnectionBound

```java
public void onConnectionBound(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_15_030: [**The event handler shall get the Transport (Proton) object from the event.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_031: [**The event handler shall set the SASL_PLAIN authentication on the transport using the given user name and sas token.**]**

**SRS_AMQPSIOTHUBCONNECTION_25_049: [**The event handler shall set the SSL Context to IOTHub SSL context containing valid certificates.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_032: [**The event handler shall set VERIFY_PEER authentication mode on the domain of the Transport.**]**

## onConnectionUnbound

```java
public void onConnectionUnbound(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_12_010: [**The function sets the state to closed.**]**

## onReactorInit

```java
public void onReactorInit(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_15_033: [**The event handler shall set the current handler to handle the connection events.**]**

## onReactorFinal

```java
public void onReactorFinal(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_12_011: [**The function shall call notify lock on close lock.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_012: [**The function shall set the reactor member variable to null.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_013: [**The function shall call openAsync and disable reconnection if it is a reconnection attempt.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_014: [**The function shall log the error if openAsync failed.**]**

## onDelivery

```java
public void onDelivery(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_15_038: [**If this link is the Sender link and the event type is DELIVERY, the event handler shall get the Delivery (Proton) object from the event.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_039: [**The event handler shall note the remote delivery state and use it and the Delivery (Proton) hash code to inform the AmqpsIotHubConnection of the message receipt.**]**

**SRS_AMQPSIOTHUBCONNECTION_15_050: [**All the listeners shall be notified that a message was received from the server.**]**

**SRS_AMQPSIOTHUBCONNECTION_12_015: [**The function shall call getMessageFromReceiverLink on all device operation objects.**]**

## onLinkFlow

```java
public void onLinkFlow(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_15_040 [**The event handler shall save the remaining link credit.**]**

## onLinkRemoteOpen

```java
public void onLinkRemoteOpen(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_15_041 [**The connection state shall be considered OPEN when the sender link is open remotely.**]**
**SRS_AMQPSIOTHUBCONNECTION_99_001 [**All server listeners shall be notified when that the connection has been established.**]**
**SRS_AMQPSIOTHUBCONNECTION_21_051 [**The open lock shall be notified when that the connection has been established.**]**

## onLinkRemoteClose

```java
public void onLinkRemoteClose(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_15_042 [**The event handler shall attempt to reconnect to the IoTHub.**]**

## onLinkInit

```java
public void onLinkInit(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_12_016: [** The function shall get the link from the event and call device operation objects with it. **]**

## onTransportError

```java
public void onTransportError(Event event)
```

**SRS_AMQPSIOTHUBCONNECTION_15_048 [**The event handler shall attempt to reconnect to IoTHub.**]**

repository: wangyihaier/azure-iot-sdk-java

repo_name: wangyihaier/azure-iot-sdk-java


text:
# UnityRuby
 Ruby Scripting in Unity/C#

HOW IT WORKS
* You will need a copy of GlitchEnzo's NuGet Package for Unity

Using NuGet, Install IronRuby, it will install to the directory of the Unity Build you are currently using

In your Build folder there will be a Lib/IronRuby Folder this directory is used to read any Ruby Scripts that need to be
accessed in C#/Unity3d

While currently we're writing an Interface Class to more easily use IronRuby in Unity, IronRuby commands will work and
can be used to execute your custom scripts (examples in progress)

RoadMap:
TBD

Bugs:
N/A (For Now)

repository: SasoriZero/UnityRuby

repo_name: SasoriZero/UnityRuby


text:
# csycms CLI

CSYCMS, acronym for **Csyber Systems Content Management System** is a:
1. Markdown powered (blog aware) static site generator,
2. markdown powered knowledge-base,
3. Flat-file CMS, and
3. API server for node.js

> If we had known about Jekyll in 2018 (3 years ago) when we began this project, we would probably have chosen to use it for building our sites. But now three years down the line we been able to add features that Jekyll does not have and it would be more expensive for us to switch over to it than to keep patching things up here an adding new features that we need along the way. <br>
> — Brian Onang'o, csycms developer.

# Table of Contents
- [Inspiration](#inspiration)
- [Features](#features)
- [Comparison with Other Systems](#comparison-with-other-systems)
- [Requirements](#requirements)
- [QuickStart](#quickstart)
 - [From GitHub](#from-github)
- [Features](#features)
 - [Common Features](#common-features)
 - [Unique Features](#unique-features)
 - [Other Advantages](#other-advantages)
- [Configuration](#configuration)
- [Updating](#updating)
- [Contributing](#contributing)
- [Security issues](#security-issues)
- [License](#license)
- [Todo](#todo)

## Inspiration
We received much inspiration for this project from [php's User Frosting](https://www.userfrosting.com/) and [node's Raneto](http://raneto.com/)

**[⬆ back home](#table-of-contents)**

## Features
- **Static Site Generation** - You can build your site and with one command generate a static site to be hosted for instance on github pages.
- **Static Site server** - You can also choose not to build run your site and server it using csycms.
- **API server** - You can also choose to have csycms server the API for your site, but have the front end hosted elsewhere or also from csycms.
- **Multiple sites** - You can build and server multiple sites using csycms

Visit [http://learn.csycms.csymapp.com](http://learn.csycms.csymapp.com) to see a demo and get started!

The underlying architecture of CSYCMS is designed to use well-established and _best-in-class_ technologies. Some of these key technologies include:

* [Markdown](http://en.wikipedia.org/wiki/Markdown): for easy content creation
* [Hogan Templating](http://twitter.github.io/hogan.js/): for powerful control of the user interface
* Microservices to make deployments of multiple sites more stable

Welcome to the world of [CSECO](https://www.cseco.co.ke) and [Csyber Systems](https://github.com/csymapp) where every other words begins with `cs`, pronouced `psy`. So that `csycms` is pronounced `psy cms`

**[⬆ back home](#table-of-contents)**

## Comparison with Other Systems
### Jekyll
1. csycms is built with node, Jekyll with Ruby.
2. csycms has an api server, Jekyll seems not to have one.
3. both generate sites which can be hosted on github pages

### Grav
1. Grav is php, csycms is node.
2. Grav is a CPU gazzler especially when performing a search. csycms tries not to be.

### Raneto
1. csycms has an api server, Raneto seems not to have one.
2. csycms can host several sites.

> Therefore, while the other systems (listed above and more) are older and more stable, in our own little world here, csycms seems to have features that they lack.

**[⬆ back home](#table-of-contents)**

## Requirements

- OS: linux
- Node v12+

If you intend to use csycms to server your sites, then you'll need to install nginx to set up a reverse proxy.

**[⬆ back home](#table-of-contents)**

## QuickStart

```bash
npm install -g csycms
sudo csycms init
sudo csycms site --create -n "$SITENAME" -p "$PORT"
```

Edit site configurations in `/etc/csycms/sites-available/$SITENAME`

Once you have editted the configurations, you can restart the subprocess serving the site using `csycms site --restart -n $SITENAME`

# Configuration

Set configurations in `/etc/projectname/config/system.yml` with:
```yaml
sshKey: ~/.ssh/id_rsa # ssh key
PORT: 2121 # port for communication between csycms and sites
update: 86400 # system update interval in seconds
```

## todo
- [ ] Contact Page on site template & co.
- [ ] Custom Error Pages.
- [ ] Protected Content.
- [ ] Search.
- [ ] http -> https on github pages
- [ ] Built with csycms
- [ ] sync site without message

repository: csymapp/csycms-cli

repo_name: csymapp/csycms-cli


text:
---
layout: default
title: Changelog
nav_order: 4
description: "Changelog for widgetx."
permalink: /changelog
---

## [0.1.1] - 18/05/2020
* Hotfix: default value for main, cross axis alignment for row, column extensions.

## [0.1.0] - 18/05/2020
* First usagable release of widgetx package.
* Added text, list, align extensions.
* Still too early to be used in production apps.

## [0.0.2] - 12/05/2020
* Note: Updated readme and state of the project at the moment. Highly experimental and unstable to use for any project.

## [0.0.1] - 12/05/2020

* Init: First nightly release for widgetx extensions to power your flutter widgets.

gha_language: Dart


text:
# Control Azure services with the CLI
___
#### AZ-104: Prerequisites for Azure administrators

## Introduction:

## What is the Azure CLI?:

## Exercise- Install and run the Azure CLI:

## Work with Azure CLI:

## Exercise- Create an Azure website using the CLI:

## Summary:

url: https://raw.githubusercontent.com/eddiebrunson/AZ-104-Administrator-Exam-Prep/a9f44860ee8dc9b8524f9251956acab2203c79cd/3.4 Control Azure services with the CLI.md


text:
# WebGLReserved
WebGL application for displaying and interact with a meal

## Live Demo
Please display [live demo](https://danibeam.github.io/WebGLReserved/) as mobile device

repository: danibeam/WebGLReserved

repo_name: danibeam/WebGLReserved


text:
# How to manually run a bisection job

To run a bisection job, please follow the instructions below:

1. Create a cool, unique name of your bisect job, call it `${BISECT_ISSUE}`. To avoid name conflict, we suggest using the github issue number.

2. On the github self-hosted runner node, create a bisection work directory at `${HOME}/.torchbench/bisection/${BISECT_ISSUE}`.

3. In the bisection work directory, create only one file: config.yaml. Example of config.yaml can be found [here](https://github.com/pytorch/benchmark/blob/0.1/.github/scripts/bisection-config.sample.yaml).

4. In the GitHub workflow [page](https://github.com/pytorch/benchmark/actions/workflows/bisection.yml) Specify the bisection job name as the "Bisection Issue Name" field in the UI.

5. Click the "Run workflow" button on master branch and wait for the job to finish. The result will be stored at `${HOME}/.torchbench/bisection/${BISECT_ISSUE}/result.json`.

repository: pytorch/benchmark

gha_language: Python

repo_name: pytorch/benchmark


text:
[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-Android%20Styler-green.svg?style=flat)](https://android-arsenal.com/details/1/2706)
# Android Styler
#### This plugin will save you a lot of time if you work with android layouts. You can easily create styles from view attributes. Check out [article](https://yalantis.com/blog/android-studio-plugin-development/) about this plugin.

Download from JetBrains Plugin Repository: https://plugins.jetbrains.com/plugin/7972

#### Usage:
1. copy lines with future style from your layout.xml file

![step1](https://github.com/alexzaitsev/android-styler/blob/master/screenshots/01.jpg)
2. paste it to styles.xml file with Ctrl+Shift+D (or context menu)

3. enter name of new style in the modal window

![step2](https://github.com/alexzaitsev/android-styler/blob/master/screenshots/02.jpg)
4. your style is prepared!

![step3](https://github.com/alexzaitsev/android-styler/blob/master/screenshots/03.jpg)

#### Changelog

##### Version: 1.0.1

  * Fix compatibility to make available for Android Studio

##### Version: 1.0

  * Pilot version

repository: alexzaitsev/android-styler

gha_language: Java

repo_name: alexzaitsev/android-styler