text:
---
layout: page
title: Developer Guide
---
* Table of Contents
{:toc}

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

## **Setting up, getting started**

Refer to the guide [_Setting up and getting started_](SettingUp.md).

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

## **Design**

### Architecture

**How the architecture components interact with each other**

### UI component

**API** :
[`Ui.java`](https://github.com/AY2021S1-CS2103T-F12-4/tp/blob/master/src/main/java/seedu/address/ui/Ui.java)

### Logic component

**API** :
[`Logic.java`](https://github.com/AY2021S1-CS2103T-F12-4/tp/blob/master/src/main/java/seedu/address/logic/Logic.java)

### Model component

**API** : [`Model.java`](https://github.com/AY2021S1-CS2103T-F12-4/tp/blob/master/src/main/java/seedu/address/model/Model.java)

### Storage component

**API** : [`Storage.java`](https://github.com/AY2021S1-CS2103T-F12-4/tp/blob/master/src/main/java/seedu/address/storage/Storage.java)

### Common classes

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

## **Implementation**

This section describes some noteworthy details on how certain features are implemented.

### \[Proposed\] Undo/redo feature

#### Proposed Implementation

#### Design consideration:

##### Aspect: How undo & redo executes

### \[Proposed\] Data archiving

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

## **Documentation, logging, testing, configuration, dev-ops**

* [Documentation guide](Documentation.md)
* [Testing guide](Testing.md)
* [Logging guide](Logging.md)
* [Configuration guide](Configuration.md)
* [DevOps guide](DevOps.md)

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

## **Appendix: Requirements**

### Product scope

**Target user profile**:

* has a need to manage a significant number of contacts
* prefer desktop apps over other types
* can type fast
* prefers typing to mouse interactions
* is reasonably comfortable using CLI apps

**Value proposition**:
* Students can keep track of tasks from all modules they take efficiently.
* Manage contacts faster than a typical mouse/GUI driven app.
* Increase school productivity.
* An all in one app that makes student's life easier.

### User stories

Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*`

| Priority | As a …                                    | I want to …                     | So that I can…                                                        |
| -------- | ------------------------------------------ | ------------------------------ | ---------------------------------------------------------------------- |
| `* * *`  | new user                                   | see usage instructions         | refer to instructions when I forget how to use the App                 |
| `* * *`  | user                                       | add a new person               |                                                                        |
| `* * *`  | user                                       | delete a person                | remove entries that I no longer need                                   |
| `* * *`  | user                                       | find a person by name          | locate details of persons without having to go through the entire list |
| `* * *`  | forgetful student                          | add and remove to do's         | remember to complete important tasks for projects or assignments |
| `* * *`  | student                                    | mark to do's as done           | remember the tasks or assignments that I have completed          |
| `* * *`  | forgetful student                           | view details of a to do        | recall the details of an assignment or task.                     |
| ` * * ` | forgetful student                           |  search for contacts under a particular tag  | find people I'm working with easily
| `* *`    | user                                       | hide private contact details   | minimize chance of someone else seeing them by accident                |
| `* *`    | disorganised student                                       | add and remove collaborative links (Google Drive, and many more)   | find the collaborative link for the project easily                |
| `* *`    | forgetful/disorganised student | search what tasks/meetings are due soon or by a specific date/time (filter) | remember to finish before the deadline|
| `*`      | user with many contacts in the Lifebook | sort persons by name           | locate a person easily                                                 |
| `*`      | disorganised student |  add, remove, and view zoom links for meetings          | remember my Zoom Links                                          |

*{More to be added}*

### Use cases

(For all use cases below, the **System** is the `Lifebook` and the **Actor** is the `user`, unless specified otherwise)

**Use case: Delete a person**

**MSS**

1.  User requests to list persons
2.  Lifebook shows a list of persons
3.  User requests to delete a specific person in the list
4.  Lifebook deletes the person

    Use case ends.

**Extensions**

* 2a. The list is empty.

  Use case ends.

* 3a. The given index is invalid.

    * 3a1. Lifebook shows an error message.

      Use case resumes at step 2.

**Use case: Show contacts with a specific tag**

**MSS**

1.  User requests to list persons
2.  Lifebook shows a list of persons
3.  User requests to show all persons with a specific tag in the list
4.  Lifebook shows all the persons whose tag matching the tag searched

    Use case ends.

**Extensions**

* 2a. The list is empty.

  Use case ends.

* 3a. The given tag is empty or invalid.

    * 3a1. Lifebook shows an error message.

      Use case resumes at step 2.

**Use case: Add a To Do to the To Do List**

**MSS**
1. User requests to add a To Do and its details (i.e. description, date, and time) to the To Do list.
2. Lifebook acknowledges the request by adding the To Do to the To Do list.

    Use case ends.

**Extensions**

* 1a. User inputs the date or time of the To Do in the incorrect format.

    * 1a1. Lifebook shows an error message

    Use case restarts at step 1.

**Use case: Perform an action (remove, show, mark as done) on a To Do from the To Do list**

**MSS**
1.  User requests to list all To Do's
2.  Lifebook shows a list of To Do's
3.  User requests to perform an action on a specific To Do from the list
4.  Lifebook performs action on To Do.

    Use case ends.

**Extensions**

* 2a. The list is empty.

  Use case ends.

* 3a. The given index is invalid.

    * 3a1. Lifebook shows an error message.

      Use case resumes at step 2.

* 3b. The given action does not exist.

    * 3b1. Lifebook shows an error message.

     Use case resumes at step 2.

**Use case: Filter items due on a specific date/time**

**MSS**

1.  User requests to filter items due by/before a specified date/time
2.  Lifebook shows a list of items that fulfil the requirement.

    Use case ends.

**Extensions**

* 1a. The given index is invalid.

    * 1a1. Lifebook shows an error message.

      Use case restarts at step 1.

* 2a. The list is empty.

  Use case ends.

**Use case: Add or remove a collaborative link**

**MSS**

1. User requests a task to be given a link (GitHub Repo, Google Drive, etc).
2. Lifebook acknowledges the request by showing the requested task.
3. User requests to bind the link with the task.
4. Lifebook performs action on the task.

      Use case ends.

**Extensions**

* 1a. The given index is invalid.

    * 1a1. Lifebook shows an error message.

      Use case restarts at step 1.

* 2a. The list is empty.

* 3a. The task already has a link.

    * 3a1. Lifebook requests permission to override the existing link.

      Use case ends.
**Use case: Store and retrieve a meeting link**

**MSS**

1. User requests a task to be given a meeting link (Teams, Zoom, etc).
2. Lifebook acknowledges the request by attaching a link to the task.
3. User later requests to view meeting links associated with the task.
4. Lifebook shows the links associated with the task.

      Use case ends.

**Extensions**

* 1a. The given index is invalid.

    * 1a1. Lifebook shows an error message.

      Use case restarts at step 1.

* 2a. The list is empty.

* 3a. The task already has a link.

    * 3a1. Lifebook requests permission to override the existing link.

      Use case ends.

*{More to be added}*

### Non-Functional Requirements

1.  Should work on any _mainstream OS_ as long as it has Java `11` or above installed.
2.  Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage.
3.  A user with above average typing speed for regular English text (i.e. not code, not system admin commands) should be able to accomplish most of the tasks faster using commands than using the mouse.
4.  Commands should be intuitive so that users can quickly remember the commands.

*{More to be added}*

### Glossary

* **Mainstream OS**: Windows, Linux, Unix, OS-X
* **Private contact detail**: A contact detail that is not meant to be shared with others

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

## **Appendix: Instructions for manual testing**

Given below are instructions to test the app manually.

:information_source: **Note:** These instructions only provide a starting point for testers to work on;
testers are expected to do more *exploratory* testing.

### Launch and shutdown

1. Initial launch

   1. Download the jar file and copy into an empty folder

   1. Double-click the jar file Expected: Shows the GUI with a set of sample contacts. The window size may not be optimum.

1. Saving window preferences

   1. Resize the window to an optimum size. Move the window to a different location. Close the window.

   1. Re-launch the app by double-clicking the jar file.

       Expected: The most recent window size and location is retained.

1. _{ more test cases … }_

### Deleting a person

1.  Prerequisites: List all persons using the `list` command. Multiple persons in the list.

   1. Test case: `delete 1`

      Expected: First contact is deleted from the list. Details of the deleted contact shown in the status message. Timestamp in the status bar is updated.

   1. Test case: `delete 0`

      Expected: No person is deleted. Error details shown in the status message. Status bar remains the same.

   1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)

      Expected: Similar to previous.

1. _{ more test cases … }_

### Saving data

1. Dealing with missing/corrupted data files

   1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_

1. _{ more test cases … }_

repository: lerxcl/tp

repo_name: lerxcl/tp


text:
---
title: Declaring the Items Inline
page_title: Declaring the Items Inline - RadListBox
description: Check our Web Forms article about Declaring the Items Inline.
slug: listbox/radlistbox-items/declaring-the-items-inline
tags: declaring,the,items,inline
published: True
position: 1
---

# Declaring the Items Inline

The definition of **RadListBox** items can be added to the in-line declaration of the ListBox using the **RadListBox Item Builder**. The item builder updates the ASPX or ASCX file to include the list of items and their properties.

You can also directly edit the ASPX or ASCX file by adding items to the <Items></Items> section of the **RadListBox** declaration. Every item definition must be enclosed in \<telerik:RadListBoxItem\> and \</telerik:RadListBoxItem\> tags.

## Example

Add the following **inline** definition of RadListBox to your ASPX or ASCX file:

````ASPNET
<telerik:RadListBox RenderMode="Lightweight" ID="RadListBox2"
   runat="server"
   Skin="Vista">
   <Items>
	   <telerik:RadListBoxItem Text="RadMenu" />
	   <telerik:RadListBoxItem Text="RadComboBox" />
	   <telerik:RadListBoxItem Text="RadListBox" Selected="true" />
   </Items>
</telerik:RadListBox>
````

At run-time the result will be:

![Inline itemes](images/listbox_inline_items.png)

# See Also

 * [Overview]({%slug listbox/radlistbox-items/overview%})

 * [Loading Items from XML]({%slug listbox/radlistbox-items/loading-items-from-xml%})

 * [Overview]({%slug listbox/data-binding/overview%})

 * [Item Builder]({%slug listbox/design-time/item-builder%})

repository: telerik/ajax-docs

branch_name: refs/heads/master

extension: md

gha_language: C#

license_type: permissive

repo_name: telerik/ajax-docs


text:
---
layout: default
title: Kubeflow
description: Easily build reproducible data pipelines with Kubeflow and lakeFS using commits, without modifying the code or logic of your job.
parent: Integrations
nav_order: 56
has_children: false

---
# Using lakeFS with Kubeflow pipelines
{: .no_toc }
[Kubeflow](https://www.kubeflow.org/docs/about/kubeflow/) is a project dedicated to making deployments of ML workflows on Kubernetes simple, portable and scalable.
A Kubeflow pipeline is a portable and scalable definition of an ML workflow composed of steps. Each step in the pipeline is an instance of a component represented as an instance of [ContainerOp](https://kubeflow-pipelines.readthedocs.io/en/latest/source/kfp.dsl.html#kfp.dsl.ContainerOp).

## Table of contents
{: .no_toc .text-delta }

1. TOC
{:toc}

## Add pipeline steps for lakeFS operations

To integrate lakeFS onto your Kubeflow pipeline, we will need to create Kubeflow components that perform lakeFS operations.
Currently, there are two methods to create lakeFS ContainerOps:
1. Implement a function-based ContainerOp that uses lakeFS's Python API to invoke lakeFS operations.
1. Implement a ContainerOp that uses the `lakectl` CLI docker image to invoke lakeFS operations.

### Function-based ContainerOps

To implement a [function-based component](https://www.kubeflow.org/docs/components/pipelines/sdk/python-function-components/) that invokes lakeFS operations,
you should use the [Python OpenAPI client](python.md) lakeFS has. See the example below that demonstrates how to make the client's package available to your ContainerOp.

#### Example operations
{: .no_toc }

Create new branch: A function-based ContainerOp that creates a branch called `example-branch` based on the `main` branch of `example-repo`.

```python
from kfp import components

def create_branch(repo_name, branch_name, source_branch):
   import lakefs_client
   from lakefs_client import models
   from lakefs_client.client import LakeFSClient

   # lakeFS credentials and endpoint
   configuration = lakefs_client.Configuration()
   configuration.username = '<REDACTED_AWS_ACCESS_KEY>'
   configuration.password = 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
   configuration.host = 'https://lakefs.example.com'
   client = LakeFSClient(configuration)

   client.branches.create_branch(repository=repo_name, branch_creation=models.BranchCreation(name=branch_name, source=source_branch))

# Convert the function to a lakeFS pipeline step.
create_branch_op = components.func_to_container_op(
   func=create_branch,
   packages_to_install=['lakefs_client==<lakeFS version>']) # Type in the lakeFS version you are using
```

You can invoke any lakeFS operation supported by lakeFS OpenAPI, for example, you could implement a commit and merge function-based ContainerOps.
Check out the full API [reference](https://docs.lakefs.io/reference/api.html).

### Non-function-based ContainerOps

To implement a non-function based ContainerOp, you should use the [`treeverse/lakectl`]((https://hub.docker.com/r/treeverse/lakectl)) docker image.
With this image you can run [lakeFS CLI](../quickstart/lakefs_cli.md) commands to execute the desired lakeFS operation.

For `lakectl` to work with Kubeflow, you will need to pass your lakeFS configurations as environment variables named:

* `LAKECTL_CREDENTIALS_ACCESS_KEY_ID: <REDACTED_AWS_ACCESS_KEY>`
* `LAKECTL_SECRET_ACCESS_KEY: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`
* `LAKECTL_SERVER_ENDPOINT_URL: https://lakefs.example.com`

#### Example operations
{: .no_toc }

1. Commit changes to a branch: A ContainerOp that commits uncommitted changes to `example-branch` on `example-repo`.

   ```python
   from kubernetes.client.models import V1EnvVar

   def commit_op():
      return dsl.ContainerOp(
      name='commit',
      image='treeverse/lakectl',
      arguments=['commit', 'lakefs://example-repo/example-branch', '-m', 'commit message']).add_env_variable(V1EnvVar(name='LAKECTL_CREDENTIALS_ACCESS_KEY_ID',value='<REDACTED_AWS_ACCESS_KEY>')).add_env_variable(V1EnvVar(name='LAKECTL_CREDENTIALS_SECRET_ACCESS_KEY',value='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')).add_env_variable(V1EnvVar(name='LAKECTL_SERVER_ENDPOINT_URL',value='https://lakefs.example.com'))
   ```
1. Merge two lakeFS branches: A ContainerOp that merges `example-branch` into the `main` branch of `example-repo`.

   ```python
   def merge_op():
     return dsl.ContainerOp(
     name='merge',
     image='treeverse/lakectl',
     arguments=['merge', 'lakefs://example-repo/example-branch', 'lakefs://example-repo/main']).add_env_variable(V1EnvVar(name='LAKECTL_CREDENTIALS_ACCESS_KEY_ID',value='<REDACTED_AWS_ACCESS_KEY>')).add_env_variable(V1EnvVar(name='LAKECTL_CREDENTIALS_SECRET_ACCESS_KEY',value='wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY')).add_env_variable(V1EnvVar(name='LAKECTL_SERVER_ENDPOINT_URL',value='https://lakefs.example.com'))
   ```

You can invoke any lakeFS operation supported by `lakectl` by implementing it as a ContainerOp. Check out the complete [CLI reference](https://docs.lakefs.io/reference/commands.html) for the list of supported operations.

**Note**
The lakeFS Kubeflow integration that uses `lakectl` is supported on lakeFS version >= v0.43.0.
{: .note }

## Add the lakeFS steps to your pipeline

Add the steps created on the previous step to your pipeline before compiling it.

### Example pipeline
{: .no_toc }

A pipeline that implements a simple ETL, that has steps for branch creation and commits.

```python
def lakectl_pipeline():
   create_branch_task = create_branch_op('example-repo', 'example-branch', 'main') # A function-based component
   extract_task = example_extract_op()
   commit_task = commit_op()
   transform_task = example_transform_op()
   commit_task = commit_op()
   load_task = example_load_op()
```

**Note**
It is recommended to store credentials as kubernetes secrets and pass them as [environment variables](https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-environment-variables ) to Kubeflow operations using [V1EnvVarSource](https://github.com/kubernetes-client/python/blob/master/kubernetes/docs/V1EnvVarSource.md).
{: .note }

repository: LeonardAukea/lakeFS

repo_name: LeonardAukea/lakeFS


text:
---
layout: post
title:  "RsyncOSX default parameters"
permalink: RsyncParameters
---
RsyncOSX implements default parameters which are working fine for simple synchronize and restore tasks. The actual parameters used in tasks is depended upon executing rsync over **network connection** or not. Which standard parameters to use is computed during startup of application by reading the configuration file.

RsyncOSX does also facilitate user selected parameters. User selected parameters are stored by each task and set by user, see [user selected parameters](/Parameters).

## Standard parameters all tasks

The following parameters are applied to all tasks.

- `--archive`
	- ensures that all files are transferred with all attributes preserved
- `--verbose`
	- make rsync very outspoken, required for counting files in RsyncOSX
- `--delete`
	- delete all files at **destination** which are not in the **source**
	- **caution:** this parameter also applies when restoring files, always do a restore to a temporary restore catalog

## Standard parameters networked tasks only

The following parameters are for networked tasks only. A networked task is a task where destination is on a remote server, either on local LAN or on Internet.

- `--compress`
	- compress files before transmitting, applies only if remote server
- `- e ssh`
	- to ensure rsync tunnels traffic through a ssh-tunnel, applies only if there is a remote server
- `-e "ssh -p nnnn"`
	- choose another port `nnnn` if standard port 22 is not used, enable by setting port number in parameters, applies only if remote server

license: MIT

gha_language: CSS

gha_license_id: MIT


text:
# Steps for ESW-175 test
This tests latency for switching between observing modes via configure and shutdown commands in Sequence Manager.

Steps for this test.

* Machine 1 - IRIS, AOESW (agent and sequencer), Test, location service
* Machine 2 - Sequence Manager, location service, config service
* Machine 3 - ESW, WFOS, TCS (agent and sequencer), location service

@@@note Set needed environment variables like INTERFACE_NAME, TMT_LOG_HOME etc. ex:
export CLUSTER_SEEDS=<ip>:3552 @@@

1. Add coursier channel on all machines
```bash
cs channel --add https://raw.githubusercontent.com/tmtsoftware/osw-apps/master/apps.prod.json
```

1. Run location service on all 3 machines

```bash
cs launch csw-location-server:<csw version from Libs.scala> -- --clusterPort=3552
```

1. Start config service
@@@ Note
initRepo parameter is required only if command is running on machine for first time
@@@

```bash
cs launch --java-opt -Dauth-config.disabled=true csw-config-server:<csw version from Libs.scala> -- --initRepo
```

1. Add script version config. follow steps in `ESW-175.http` file

1. Git clone sequencer-scripts repo.
```bash
https://github.com/tmtsoftware/sequencer-scripts.git
git checkout dev
sbt publishLocal
```

1. Spawn agents - ESW.machine1, IRIS.machine1, TCS.machine1, AOESW.machine1, WFOS.machine1

git clone esw repo on all machines

```bash
sbt "esw-agent-akka-app/run start -p IRIS.machine1"
```

1. Spawn Sequence Manager on Machine 2

```bash
sbt "esw-sm-app/run start --simulation -o <path-to-smObsModes.conf-in-resource-folder>"
```

1. git clone esw repo on Machine 1

```bash
sbt "esw-performance-test/runMain esw.performance.SequenceManagerLatencyTest"
```

repository: tmtsoftware/esw

gha_language: Scala

gha_license_id: NOASSERTION

repo_name: tmtsoftware/esw


text:
# PHP Pipeline
A micro framework for PHP to simplify requests and reponses.

### Simple usage
```
use Pipeline\App;
$app = App:init();

$app->get('/', function() {
    $this->status(418);
});

$app->run();
```

## Setup
```
use Pipeline\App;
$app = App:init([
    'templateRoot' => dirname(__DIR__) . '/templates'
]);
```

### Define your endponts
```
$app->get('/api/animals', function() {
    $berries = ['cat','dog'];
    $this->status(200, $berries);
});

$app->get('/user/{id}', function() {
    $userId = $this->args['id'];
    $user = (new UserService())->get($userId);
    $this->view('/user.php', $user);
});

$app->map('/admin', function($app) {
    $app->use(function($next) {
        if (CurrentUser::get()->isAuthorized())
            $next();
        else
            $this->status(401);
    });

    // path is appended from map (/admin/home)
    $app->get('/home', function() {
        $this->view('/admin/home.php', CurrentUser::get());
    });
});
```

# Pipeline

## Pipeline\App

Register the pipeline. ```$this``` inside the ```$func``` will be an instance of ```Pipeline\Context```

### use
```function use($func)```

```$func``` that should be execued on the request. First (and only parameter) ```$next``` is a function to execute the next function in the pipline and continue when that's done.

### map
```function map($path, $func)```

```$path``` that is mathed against the request.

```$func``` that should be execued on the request. First (and only parameter) ```$app``` is an instance of Pipline\App to append sub-endpoint/middlewares to be executed on the current path.

### get/post/put/delete
```function {method}($path, $func)```

```$path``` that is mathed against the request.

```$func``` that should be execued on the request. No parameters is forwarded.

## Pipeline\Context

Will keep information about the current request and can send responses back to the client.

### status
```function status($statusCode, $data = null)```

```$statusCode``` that is sent back to the client.

```$data``` if any, will be parsed as JSON as body.

### view
```function view($view, $data = null)```

```$view``` path to the view to be presented.

```$data``` if any, will be extracted and available in the view-document.

### redirect
```function view($url, $permanent = true)```

```$url``` where it should be  redirected to.

```$permanent``` if status 301 should be sent, otherwise 302.

repository: denntah/pipeline

repo_name: denntah/pipeline


text:
# numpy_freeBoundary_171112 (Nov. 18, 2017)

The code finds triangles not hidden by other triangles (defined herein as '**free triangles**').
The code reads triangle indices (indices of vertices) of tetrahedra, then outputs indices of free triangles.

The code uses:

- Python (tested on Python 3.5.2)
- Numpy (tested on Numpy v1.13.1)
- tested on Ubuntu 16.04 LTS desktop amd64

Test run can be executed as follows:

```bash
$ python3 freeBoundary_171112.py > log_171118.txt
```

See `log_17118.txt` in the repository.


text:
# rserve-js-v1

RServe client in JavaScript

This node module will communicate with R/Rserve over TCP/IP socket, allowing user to evaluate R statements from JavaScript and get the result as JavaScript object.

It is based on this project: https://github.com/ksobue/rserve-js

But changes were made to properly support large dataarrays (larger 16 megabytes).

## Installation
    $ npm install rserve-js-v1

# Usage
    let Rserve = require("rserve-js-v1");

    let client = Rserve.connect("localhost", 6311, function() {
        console.log("Connected to Rserve.");

        client.eval("data(iris)", function(err, response) {
            if (err) {
                throw err;
            }
            console.log("'iris' table is loaded.");

            client.eval("dim(iris)", function(err, response) {
                if (err) {
                    throw err;
                }

                console.log(response.value); // shows dimension of iris table
            });
        });
    });

## Test
Tested on R version 3.2.3 and Rserve version 1.8.5.

## License
MIT

repository: matthiak/rserve-js

repo_name: matthiak/rserve-js


text:
# ASTORAGE
A tiny API wrapper for `localStorage` that lets you safely save numbers, arrays, objects and other data types.

## Installation
Astorage is available via npm or bower.

```bash
npm install astorage
```

or

```bash
bower install astorage
```

Otherwise you can directly [download zip](https://github.com/andrew--r/astorage/archive/master.zip).

## Usage and API
```javascript
// define some data
var users = [
  {
    name: 'John Doe',
    age: 21
  },
  {
    name: 'Alex Smith',
    age: 35
  }
];

// save data into localStorage.
// API: astorage.set(key, value)
// key — string
// value — string, number, array, object or anything else
astorage.set('users', users);

// get value from localStorage by key.
// API: astorage.get(key)
// key — string
astorage.get('users');
> [{name: 'John Doe', age: 21}, {name: 'Alex Smith', age: 35}]

// remove item from localStorage
astorage.remove('users');

// or empty localStorage
astorage.clear();

// get localStorage items count
astorage.length
> 0
```

## LICENSE
Released under the MIT license.

```
The MIT License (MIT)

Copyright © 2015 Andrew Romanov, Kiril Osiyuk

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

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

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


text:
# Instagram-API-python
Unofficial Instagram API to give you access to ALL Instagram features (like, follow, upload photo and video, etc)! Written in Python.

This is the Python port of https://github.com/mgp25/Instagram-API which is written in PHP.
It is still a work in progress to copy all of its API endpoints.

NOTE: To successfully parse for a long time you should verify your phone number in your Instagram account.
The new fake Instagram account with an unverified phone number after ~ 1-24 hours could not do any requests. All requests will be redirected to the page https://instagram.com/challenge

## Fork by thomastay

This is a fork of LevPasha's work that I keep updated to use as a git submodule. This allows me to add it into projects while keeping it up-to-date with changes in the Instagram API.
Any personal work of mine on the Instagram API is kept on the dev branch.
The pip version is outdated and should not be used.

## Installation Instructions

1. Fork/Clone/Download this repo as a submodule in your project

```
git submodule add [LINK]
```

2. Navigate to the directory

3. Install the dependencies

```
pip install -r requirements.txt
```

4. Import using the following code

repository: thomastay/InstagramAPI

repo_name: thomastay/InstagramAPI


text:
# Custom Properties Extension

[Demo](https://forge-extensions.autodesk.io/?extension=CustomPropertiesExtension)

Extension showing custom properties in the Properties palette, based on their `dbId`.

![thumbnail](extension.gif)

## Setup

Include the JS file on your page. This CDN is compatible with the lastest Viewer version (v7).

```xml
<script src="http://cdn.jsdelivr.net/gh/autodesk-forge/forge-extensions/public/extensions/CustomPropertiesExtension/contents/main.js"></script>
```

Load the extension passing the properties you want to add to various objects based on their `dbId`.

```javascript
viewer.loadExtension('CustomPropertiesExtension', {
    "properties": {
        "1": {
            "My Group": {
                "My Property": "My Property Value"
            }
        },
        "3": {
            "My Other Group": {
                "My Other Property": "My Other Property Value"
            }
        }
    }
})
```

## Configuration

The `properties` contains the dbId's you assign custom properties to.

## How it works

The custom properties will appear in the Properties palette.

## Futher reading

The sample is based on [this blog post](https://forge.autodesk.com/blog/adding-custom-properties-property-panel).

repository: Autodesk-Forge/forge-extensions

gha_language: JavaScript

repo_name: Autodesk-Forge/forge-extensions


text:
# Password Generator

## Live Link

https://sammiefrog.github.io/password-generator/

## Description
This is a random password generator, that will create a password by prompting a user to specify a length, and then to respond yes or no to a series of criteria questions on whether or not to include lowercase letters, uppercase letters, numbers, or special characters.

## Technology Stack
HTML, CSS, Javascript

## Contributors
@sammiefrog

## Usage
Generating secure random passwords.

## Credits
www.w3schools.com

## Contact
* #### Name: Sammantha Sasenick (@sammiefrog)
* #### Email: [sammiefrog<EMAIL_ADDRESS>* #### LinkedIn: www.linkedin.com/in/sammantha-sasenick412

## License
MIT

repository: sammiefrog/password-generator

repo_name: sammiefrog/password-generator


text:
Tips and Tricks
===============

Let's use the tokenizer we have defined previously for our examples in this chapter:

```pycon
>>> from typing import List
>>> from funcparserlib.lexer import make_tokenizer, TokenSpec, Token
>>> from funcparserlib.parser import tok, Parser, many, forward_decl, finished

>>> def tokenize(s: str) -> List[Token]:
...     specs = [
...         TokenSpec("whitespace", r"\s+"),
...         TokenSpec("float", r"[+\-]?\d+\.\d*([Ee][+\-]?\d+)*"),
...         TokenSpec("int", r"[+\-]?\d+"),
...         TokenSpec("op", r"(\*\*)|[+\-*/()]"),
...     ]
...     tokenizer = make_tokenizer(specs)
...     return [t for t in tokenizer(s) if t.type != "whitespace"]

>>> def op(name: str) -> Parser[Token, str]:
...     return tok("op", name)

```

## Name Alternative Parsers for Better Error Messages

Consider the following grammar:

```pycon
>>> number = (tok("int") >> int) | (tok("float") >> float)
>>> paren = -op("(") + number + -op(")")
>>> mul = number + op("*") + number
>>> expr = paren | mul

```

When a parser fails to parse its input, it usually reports the token it expects:

```pycon
>>> paren.parse(tokenize("(1"))   # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
    ...
NoParseError: got unexpected end of input, expected: ')'

```

If there were several parsing alternatives, the parser will report an error after the longest successfully parsed sequence:

```pycon

>>> expr.parse(tokenize("1 + 2"))   # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
    ...
NoParseError: 1,3-1,3: got unexpected token: '+', expected: '*'

```

If there were several parsing alternatives and all of them failed to parse the current token, then the parser will report its name as the expected input:

```pycon
>>> number.parse(tokenize("*"))   # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
    ...
NoParseError: 1,1-1,1: got unexpected token: '*', expected: int or float

>>> expr.parse(tokenize("+"))   # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
    ...
NoParseError: 1,1-1,1: got unexpected token: '+', expected: int or float or (('(', int or float), ')')

```

Parser names are auto-generated and may be quite long and hard to understand. For better error messages you may want to name your parsers explicitly via [`Parser.named(name)`](../api/parser.md#funcparserlib.parser.Parser.named). The naming style is up to you. For example:

```pycon
>>> number = ((tok("int") >> int) | (tok("float") >> float)).named("number")
>>> paren = -op("(") + number + -op(")")
>>> mul = number + op("*") + number
>>> expr = (paren | mul).named("number or '('")

```

Test it:

```pycon
>>> number.parse(tokenize("*"))   # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
    ...
NoParseError: 1,1-1,1: got unexpected token: '*', expected: number

>>> expr.parse(tokenize("+"))   # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
    ...
NoParseError: 1,1-1,1: got unexpected token: '+', expected: number or '('

```

## How to Handle Conflicting Alternatives

If one of the parsing alternatives is a subpart of another one, then you should put the longest alternative first. Otherwise parsing the shorter one will make another one unreachable:

```pycon
>>> p = (number + number) | (number + number + number)

>>> p.parse(tokenize("1 2 3"))
(1, 2)

```

Parse the longest alternative first:

```pycon
>>> p = (number + number + number) | (number + number)

>>> p.parse(tokenize("1 2 3"))
(1, 2, 3)

>>> p.parse(tokenize("1 2"))
(1, 2)

```

## Watch Out for Left Recursion

There are certain kinds grammar rules you cannot use with `funcparserlib`. These are the rules that contain recursion in their leftmost parts. These rules lead to infinite recursion during parsing, that results in a `RecursionError` exception.

For example, we want to define an expression `expr` either a multiplication operator `mul` or a `number`. We also want an expression to be a sequence of an expression `expr`, followed by an operator `"**"`, followed by another expression `expr`:

```pycon
>>> expr = forward_decl()
>>> mul = expr + op("*") + expr
>>> expr.define(mul | number)

```

This looks reasonable at the first glance, but it contains left recursion. In order to parse the first token for `expr`, we need to parse the first token for `mul`, for that we need to parse the first token for `expr`, and so on. This left recursion in your grammar results in a stack overflow exception:

```pycon
>>> expr.parse(tokenize("1 * 2"))   # doctest: +IGNORE_EXCEPTION_DETAIL
Traceback (most recent call last):
    ...
RecursionError: maximum recursion depth exceeded

```

You should think how to re-write your grammar to avoid left-recursive definitions. In our case of several multiplication operators we really want a number, followed by zero or more pairs of `*` and number:

```pycon
>>> expr = forward_decl()
>>> mul = number + many(op("**") + number)
>>> expr.define(mul)

```

Test it:

```pycon
>>> expr.parse(tokenize("1 ** 2"))
(1, [('**', 2)])

>>> expr.parse(tokenize("3"))
(3, [])

```

Remember that your parsers have to consume at least one token from the input before going into recursive defintions.

repository: vlasovskikh/funcparserlib

gha_language: Python

repo_name: vlasovskikh/funcparserlib


text:
# Scala.js typings for fine-uploader

Typings are for version 5.16.2

## Library description:
Multiple file upload plugin with progress-bar, drag-and-drop, direct-to-S3 & Azure uploading, client-side image scaling, preview generation, form support, chunking, auto-resume, and tons of other features.

|                    |                 |
| ------------------ | :-------------: |
| Full name          | fine-uploader |
| Keywords           | amazon, api, aws, azure, chunk, chunking, cross-domain, cross-site, drag, drop, file, file-input, file-uploader, input, jquery, jquery-plugin, multiple, preview, progress, resume, s3, selection, upload, widget |
| # releases         | 1 |
| # dependents       | 0.0 |
| # downloads        |<PHONE_NUMBER>3333333 |
| # stars            | 8181.0 |

## Links
- [Homepage](https://github.com/FineUploader/fine-uploader#readme)
- [Bugs](https://github.com/FineUploader/fine-uploader/issues)
- [Repository](https://github.com/FineUploader/fine-uploader)
- [Npm](https://www.npmjs.com/package/fine-uploader)

## Note
This library has been generated from typescript code from first party type definitions.

Provided with :purple_heart: from [ScalablyTyped](https://github.com/oyvindberg/ScalablyTyped)

## Usage
See [the main readme](../../readme.md) for instructions.

repository: ScalablyTyped/Distribution

repo_name: ScalablyTyped/Distribution


text:
[![Build Status](https://travis-ci.org/nodeshift-starters/nodejs-rest-http-crud.svg?branch=master)](https://travis-ci.org/nodeshift-starters/nodejs-rest-http-crud) [![Coverage Status](https://coveralls.io/repos/github/nodeshift-starters/nodejs-rest-http-crud/badge.svg?branch=master)](https://coveralls.io/github/nodeshift-starters/nodejs-rest-http-crud?branch=master) [![Greenkeeper badge](https://badges.greenkeeper.io/nodeshift-starters/nodejs-rest-http-crud.svg)](https://greenkeeper.io/)

Example CRUD Application

### Getting Started

#### Running Locally

First, install the dependencies

`npm install`

A Postgres DB is needed, so if you are using Docker, then you can start a postgres db easily.

`docker run --name os-postgres-db -e POSTGRESQL_USER=luke -e POSTGRESQL_PASSWORD=secret -e POSTGRESQL_DATABASE=my_data -d -p 5432:5432 centos/postgresql-10-centos7`

In this example, the db user is `luke`, the password is `secret` and the database is `my_data`

You can then start the application like this:

`DB_USERNAME=luke DB_PASSWORD=secret ./bin/www`

Then go to http://localhost:3000

#### Running on Minishift

First, make sure you have minishift setup and are logged in using `oc login`.

Then create a new project using the `oc` commands

`oc new-project fun-node-fun`

For this example, you will also need a postgres db running on your Minishift cluster.

`oc new-app -e POSTGRESQL_USER=luke -ePOSTGRESQL_PASSWORD=secret -ePOSTGRESQL_DATABASE=my_data centos/postgresql-10-centos7 --name=my-database`

Then run `npm run openshift` to deploy your app

Then you can navigate to the newly exposed route, something similar to "http://nodejs-rest-http-crud-boosters.<IP_ADDRESS>.nip.io/",  this will probably be different based on your Minishift IP address

repository: pmacik/nodejs-rest-http-crud

repo_name: pmacik/nodejs-rest-http-crud


text:
# Settings

<!--TODO: Generate this file from the documentation in golang/org/x/tools/internal/lsp/source/options.go.-->

This document describes the global settings for `gopls` inside the editor. The settings block will be called `"gopls"` and contains a collection of controls for `gopls` that the editor is not expected to understand or control. These settings can also be configured differently per workspace folder.

In VSCode, this would be a section in your `settings.json` file that might look like this:

```json5
  "gopls": {
    "usePlaceholders": true,
    "completeUnimported": true
  },
```

## Officially supported

Below is the list of settings that are officially supported for `gopls`.

### **buildFlags** *array of strings*

This is the set of flags passed on to the build system when invoked. It is applied to queries like `go list`, which is used when discovering files. The most common use is to set `-tags`.

### **env** *map of string to value*

This can be used to add environment variables. These will not affect `gopls` itself, but will be used for any external commands it invokes.

### **hoverKind** *string*

This controls the information that appears in the hover text.
It must be one of:
* `"NoDocumentation"`
* `"SynopsisDocumentation"`
* `"FullDocumentation"`

Authors of editor clients may wish to handle hover text differently, and so might use different settings. The options below are not intended for use by anyone other than the authors of editor plugins.

* `"SingleLine"`
* `"Structured"`

Default: `"SynopsisDocumentation"`.

### **usePlaceholders** *boolean*

If true, then completion responses may contain placeholders for function parameters or struct fields.

Default: `false`.

### **linkTarget** *string*

This controls where points documentation for given package in `textDocument/documentLink`.
It might be one of:

* `"godoc.org"`
* `"pkg.go.dev"`
If company chooses to use its own `godoc.org`, its address can be used as well.

Default: `"pkg.go.dev"`.

### **local** *string*

This is the equivalent of the `goimports -local` flag, which puts imports beginning with this string after 3rd-party packages.
It should be the prefix of the import path whose imports should be grouped separately.

Default: `""`.

### **expandWorkspaceToModule** *boolean*

This is true if `gopls` should expand the scope of the workspace to include the
modules containing the workspace folders. Set this to false to avoid loading
your entire module. This is particularly useful for those working in a monorepo.

Default: `true`.

## Experimental

The below settings are considered experimental. They may be deprecated or changed in the future. They are typically used to test experimental opt-in features or to disable features.

### **analyses** *map[string]bool*

Analyses specify analyses that the user would like to enable or disable.
A map of the names of analysis passes that should be enabled/disabled.
A full list of analyzers that gopls uses can be found [here](analyzers.md)

Example Usage:
```json5
...
"analyses": {
  "unreachable": false, // Disable the unreachable analyzer.
  "unusedparams": true  // Enable the unusedparams analyzer.
}
...
```

### **codelens** *map[string]bool*

Overrides the enabled/disabled state of various code lenses. Currently, we
support several code lenses:

* `generate`: [default: enabled] run `go generate` as specified by a `//go:generate` directive.
* `upgrade_dependency`: [default: enabled] upgrade a dependency listed in a `go.mod` file.
* `test`: [default: disabled] run `go test -run` for a test func.
* `gc_details`: [default: disabled] Show the gc compiler's choices for inline analysis and escaping.

Example Usage:
```json5
"gopls": {
...
  "codelens": {
    "generate": false,  // Don't run `go generate`.
    "gc_details": true  // Show a code lens toggling the display of gc's choices.
  }
...
}
```
### **completionDocumentation** *boolean*

If false, indicates that the user does not want documentation with completion results.

Default value: `true`.

### **completeUnimported** *boolean*

If true, the completion engine is allowed to make suggestions for packages that you do not currently import.

Default: `false`.

### **deepCompletion** *boolean*

If true, this turns on the ability to return completions from deep inside relevant entities, rather than just the locally accessible ones.

Default: `true`.

Consider this example:

```go
package main

import "fmt"

type wrapString struct {
    str string
}

func main() {
    x := wrapString{"hello world"}
    fmt.Printf(<>)
}
```

At the location of the `<>` in this program, deep completion would suggest the result `x.str`.

### **fuzzyMatching** *boolean*

If true, this enables server side fuzzy matching of completion candidates.

Default: `true`.

### **matcher** *string*

Defines the algorithm that is used when calculating completion candidates. Must be one of:

* `"fuzzy"`
* `"caseSensitive"`
* `"caseInsensitive"`

Default: `"caseInsensitive"`

### **annotations** *map[string]bool*

**noBounds** suppresses gc_details diagnostics about bounds checking.

**noEscape** suppresses gc_details diagnostics about escape analysis.

**noInline** suppresses gc_details diagnostics about inlining.

**noNilcheck** suppresses gc_details diagnostics about generated nil checks.

### **staticcheck** *boolean*

If true, it enables the use of the staticcheck.io analyzers.

### **symbolMatcher** *string*

Defines the algorithm that is used when calculating workspace symbol results. Must be one of:

* `"fuzzy"`
* `"caseSensitive"`
* `"caseInsensitive"`

Default: `"fuzzy"`.

repository: Adictya/dotfiles

gha_language: Go

repo_name: Adictya/dotfiles


text:
# Supported tags and respective `Dockerfile` links
- [`1.0beta.15`/Dockerfile](https://github.com/GELOG/docker-ubuntu-snap/tree/1.0beta.15/Dockerfile)

# What is Snap ?
SNAP is a new sequence aligner that is 3-20x faster and just as accurate as existing tools like BWA-mem, Bowtie2 and Novoalign. It runs on commodity x86 processors, and supports a rich error model that lets it cheaply match reads with more differences from the reference than other tools. This gives SNAP up to 2x lower error rates than existing tools (in some cases) and lets it match larger mutations that they may miss. SNAP also natively reads BAM, FASTQ, or gzipped FASTQ, and natively writes SAM or BAM, with built-in sorting, duplicate marking, and BAM indexing.

SNAP was developed by a team from the UC Berkeley AMP Lab, Microsoft, and UCSF.

[http://snap.cs.berkeley.edu/](http://snap.cs.berkeley.edu/)

# What is Docker?
Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications. Consisting of Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows, Docker enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. As a result, IT can ship faster and run the same app, unchanged, on laptops, data center VMs, and any cloud.

[https://www.docker.com/whatisdocker/](https://www.docker.com/whatisdocker/)

## What is a Docker Image?
 Images are read-only, while containers are writeable. Only the containers can be executed by the operating system.

[https://docs.docker.com/terms/image/](https://docs.docker.com/terms/image/)

# Dependencies
* [Install Docker](https://docs.docker.com/installation/)

# Base Docker image
* [Ubuntu 14.04 LTS](https://registry.hub.docker.com/_/ubuntu/)

# How to use this image?

repository: GELOG/docker-ubuntu-snap

repo_name: GELOG/docker-ubuntu-snap


text:
# Turkpin API Package

[![Latest Version on Packagist](https://img.shields.io/packagist/v/anilken/turkpin-api.svg?style=flat-square)](https://packagist.org/packages/anilken/turkpin-api)
[![Total Downloads](https://img.shields.io/packagist/dt/anilken/turkpin-api.svg?style=flat-square)](https://packagist.org/packages/anilken/turkpin-api)

**Turkpin API** With this package, you can create an epin order and deliver it to your customers. **[Official Documentation](https://dev.turkpin.com/view/3051588/TVza8YYA#038621b3-851b-4ac9-82ef-a2ad22f7cd20)**

## Installation

You can install the package via composer:

```bash
composer require anilken/turkpin-api
```

## Usage

```php
use Anilken\Turkpin\Turkpin;

$api = new Turkpin('username', 'password');

$api->epinList();

// Example Output

[
  {
    "id": "5",
    "name": "Echo of Soul (EOS)"
  },
  {
    "id": "633",
    "name": "Google Play kodu"
  }
  ...
]

$api->epinProducts($epin_id);

// Example Output

[
  {
    "name": "Google Play kodu 25 TL",
    "id": "8209",
    "stock": "377",
    "min_order": "1",
    "max_order": "0",
    "price": "24.5000",
    "tax_type": []
  },
  ...
]

$api->epinOrder($epin_id, $product_id, $qty = 1, $character = '');

// Example Output

{
  "status": "Success",
  "order_no": "21061113513501",
  "total_amount": "1",
  "list": [
    {
      "code": "8PFG-XXXX-FL3C-XXXX",
      "desc": "Test Ürün"
    }
  ]
}

$api->checkStatus($order_no);

// Example Output

{
  "status_code": "000",
  "order_no": "21061113513501",
  "order_code": "2",
  "order_status_description": "Siparişiniz Tamamlandı",
  "check_date": "11-06-2021 13:51:53",
  "extra": "İPTAL SEBEBI",
}

$api->checkBalance();

// Example Output

{
  "balance": "996501.2300",
  "credit": "0.0000",
  "bonus": "0.000",
  "spending": "3498.7700"
}

```

## Exception Codes

| Code | Message                                                                                |
|------|-----------------------------------------------------------------------------------------------------|
| 0	   | Empty api result try again                                                                          |
| 1	   | User not found, check your username and password.                                                   |
 | 2	   | There is no access from your IP address. Please check your IP Address.                              |
 | 3	   | Invalid command, check cmd parameter.                                                               |
 | 4	   | Message field is a mandatory field.                                                                 |
 | 5	   | An error occurred while processing.                                                                 |
 | 6	   | This Account is not authorized to use Turkpin API                                                   |
 | 7	   | This Account is not available for Turkpin API.                                                      |
 | 8	   | Game ID is missing                                                                                |
 | 9	   | The server list for the game could not be found                                                     |
 | 10	  | Missing or incorrect order format.                                                                  |
 | 11	  | The product was not found.                                                                          |
 | 12	  | The product is out of stock.                                                                        |
 | 13	  | The number of orders must be min% s.                                                                |
 | 14	  | Dealer Balance Insufficient.                                                                        |
 | 15	  | Payment type is invalid                                                                             |
 | 16	  | Missing or incorrect notification format. Please check fields                                       |
 | 17	  | You have entered a missing or incorrect notification number. Please check the notification_id value |
 | 18	  | Number of orders must be max% s.                                                                    |
 | 19	  | System error, error code:% s                                                                        |
 | 20	  | Please enter correct operator and phone number for GSM TL top up                                    |
 | 21	  | The amount to be reported for payment must be greater than 0                                        |
 | 22	  | This product is not purchased by us.                                                                |
 | 23	  | The site is currently closed for an update or maintenance.                                          |
 | 99   | Order Not Found. Check Order Number                                                                 |
 | 111  | XML Format Error. Please check the XML format you sent.                                             |
| ---  | Custom error codes added to this package                                                            |
| 101  | Failed to get game list                                                                             |
| 102  | Failed to get products list                                                                         |
| 103  | Failed to get balance                                                                               |

## Changelog

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

## Contributing

Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) for details.

## Security Vulnerabilities

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

## Credits

- [ANILKEN](https://github.com/anilken)
- [All Contributors](../../contributors)

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

repository: anilken/turkpin-api

branch_name: refs/heads/main

gha_language: PHP

repo_name: anilken/turkpin-api


text:
# MemCachier Django Example App (ASCII)

This is an example Django app that uses
[MemCachier](http://www.memcachier.com) to cache algebraic
computations. This example is written with Django 1.8.16.

It uses [django-ascii](https://github.com/memcachier/django-ascii) as
a backend for caching with Django. This is a alternative backend than
the one we usually recommend
[django-pylibmc](https://github.com/jbalogh/django-pylibmc/), but has
the advantage of using the pure python memcache library,
[pymemcache](https://github.com/pinterest/pymemcache). It only
supports one server at this time though.

You can view a working version of this app
[here](http://memcachier-examples-django3.herokuapp.com) that uses
[MemCachier on Heroku](https://addons.heroku.com/memcachier).  Running
this app on your local machine in development will work as well,
although then you won't be using MemCachier -- you'll be using a local
dummy cache. MemCachier is currently only available with various cloud
providers.

Setting up MemCachier to work in Django is very easy. You need to make
changes to requirements.txt, settings.py, and any app code that you
want cached. These changes are covered in detail below.

## Deploy to Heroku

You can deploy this app yourself to Heroku to play with.

[![Deploy](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)

## Building

It is best to use the python `virtualenv` tool to build locally:

```sh
$ virtualenv-2.7 venv
$ source venv/bin/activate
$ pip install -r requirements.txt
$ DEVELOPMENT=1 python manage.py runserver
```

Then visit `http://localhost:8000` to view the app. Alternatively you
can use foreman and gunicorn to run the server locally (after copying
`dev.env` to `.env`):

```sh
$ foreman start
```

For local development, using `python manage.py runserver` generally provides
better output.

## Deploy to Heroku

Run the following commands to deploy the app to Heroku:

```sh
$ git clone https://github.com/memcachier/examples-django3.git
$ cd examples-django
$ heroku create
$ heroku addons:add memcachier:dev
$ git push heroku master:master
$ heroku open
```

## requirements.txt

MemCachier has been tested with the pylibmc memcache client, but the
default client doesn't support SASL authentication. Run the following
commands to install the necessary pips:

```sh
pip install -r requirements
```

Don't forget to update your requirements.txt file with these new pips.
requirements.txt should have the following two lines:

```
memcachier-django-ascii==1.0.0
pymemcache==1.4.0
```

## Configuring MemCachier (settings.py)

To configure Django to use pylibmc with SASL authentication. You'll also need
to setup your environment, because pylibmc expects different environment
variables than MemCachier provides. Somewhere in your `settings.py` file you
should have the following lines:

```python
os.environ['MEMCACHE_SERVERS'] = os.environ.get('MEMCACHIER_SERVERS', '').replace(',', ';')
os.environ['MEMCACHE_USERNAME'] = os.environ.get('MEMCACHIER_USERNAME', '')
os.environ['MEMCACHE_PASSWORD'] = os.environ.get('MEMCACHIER_PASSWORD', '')

CACHES = {
    'default': {
        # Use pylibmc
        'BACKEND': 'memcachier_django.ascii.MemcacheCache',

        # TIMEOUT is not the connection timeout! It's the default expiration
        # timeout that should be applied to keys! Setting it to `None`
        # disables expiration.
        'TIMEOUT': None,
        'OPTIONS': {
            # Enable faster IO
            'no_delay': True,

            # Timeout for set/get requests
            'connect_timeout': 2.5,
            'timeout': 1.5,
            'ignore_exc': True,
        }
    }
}
```

## Persistent Connections

By default, Django doesn't use persistent connections with memcached. This is a
huge performance problem, especially when using SASL authentication as the
connection setup is even more expensive than normal.

You can fix this by putting the following code in your `wsgi.py` file:

```python
# Fix django closing connection to MemCachier after every request (#11331)
from django.core.cache.backends.memcached import BaseMemcachedCache
BaseMemcachedCache.close = lambda self, **kwargs: None
```

There is a bug file against Django for this issue
([#11331](https://code.djangoproject.com/ticket/11331)).

## Application Code

In your application, use django.core.cache methods to access
MemCachier. A description of the low-level caching API can be found
[here](https://docs.djangoproject.com/en/1.8/topics/cache/#the-low-level-cache-api).
All the built-in Django caching tools will work, too.

Take a look at
[memcachier_algebra/views.py](https://github.com/memcachier/examples-django/blob/master/memcachier_algebra/views.py)
in this repository for an example.

## 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/examples-django3/issues).

Master [git repository](http://github.com/memcachier/examples-django3):

* `git clone git://github.com/memcachier/examples-django3.git`

## Licensing

This library is BSD-licensed.


text:
# RithisImagePlaceholderBundle

Symfony2 Bundle which generate placeholder image like http://www.placehold.it

## Installation

Run this command in your project directory:

``` bash
$ composer.phar require rithis/image-placeholder-bundle:@dev
```

After that enable bundle in the kernel:

``` php
<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Rithis\ImagePlaceholderBundle\RithisImagePlaceholderBundle(),
    );
}
```

## Usage

### Routing

First of all include bundle routing:

``` yaml
# app/routing.yml

_rithis_image_placeholder:
    resource<EMAIL_ADDRESS>    prefix: _placeholder
```

After that try to open placeholder url:

```
/_placeholder/{x},{y},{backgroundColor},{textColor}?text={text}
```

For example: `/_placeholder/200,100,00FF00,FF00FF?text=Hello%20World!`.

repository: vslinko/continent

repo_name: vslinko/continent


text:
# Importing Entities

![](./images/entity-group.png)

An Entity configuration describes a monitored object. The [entity record](https://axibase.com/docs/atsd/api/meta/entity/list.html#fields) includes information about the object such as the name, label, and custom tags.

Follow this process to import entity records into your local ATSD instance.

1. Click the **Entities** link in the toolbar on the left.

    ![](./images/entities.png)

2. From the **Entities** page, expand the split-button at the bottom of the page and click **Import**.

    ![](./images/entity-import.png)

3. Select the appropriate XML file from your local machine. Click **Import**.

    ![](./images/entity-import1.png)

Return to the **Entities** page to view the newly-imported entities.

## Uploading Multiple Configuration Files

Note that multiple files may be uploaded together or as an archive by opening the **Settings** menu, expanding the **Diagnostics** section, selecting the **Backup Import** page, and completing the form.

![](./images/backup-import.png)

repository: nmoiseykin/atsd-use-cases

repo_name: nmoiseykin/atsd-use-cases


text:
Weather Forecast
====================
***

The weather Forecast BDD will be used for test automation purposes. The project uses cucumber-boilerplate framework - [https://github.com/webdriverio/cucumber-boilerplate.git] to run WebdriverIO tests with cucumber

## Requirements

- Node version 8 or higher

## How to run this project

Below are the instructions to run the project

1. Create a folder weather-forecast-bdd and Clone the git repo — `git clone https://github.com/SangeethaEaswaran/weather-forecast-bdd.git`

2. Install the dependencies (`npm install`)

3. Run the scenarios using command - npx wdio --cucumberOpts.tagExpression='@test'

NOTE: Weather-forecast app should be running on local to test against and steps can be found [https://github.com/buildit/acceptance-testing]

repository: SangeethaEaswaran/weather-forecast-bdd

repo_name: SangeethaEaswaran/weather-forecast-bdd


text:
---
# Display name
title: Albert Sanchez-Niubo

# Username (this should match the folder name)
authors:
- admin

# Is this the primary user of the site?
superuser: true

# Role/position
role: Post-Doctoral Researcher
# Organizations/Affiliations
organizations:
- name: Parc Sanitari Sant Joan de Déu
  url: ""

# Short bio (displayed in user profile at end of posts)
bio: My research interests include the systematization of procedures for the harmonization and integration of longitudinal data from different cohort studies, and the study of mental health and healthy ageing.

interests:
- Biostatistics and Epidemiology
- Data harmonisation
- Healthy ageing and mental health

education:
  courses:
  - course: PhD in Biostatistics
    institution: University of Barcelona
    year: 2014
  - course: Advance Studies Diploma, Doctoral program in Biostatistics
    institution: University of Barcelona
    year: 2007
  - course: Bsc in Sciences and Technicals in Statistics
    institution: Polytechnic University of Catalonia
    year: 2005

# Social/Academic Networking
# For available icons, see: https://sourcethemes.com/academic/docs/page-builder/#icons
#   For an email link, use "fas" icon pack, "envelope" icon, and a link in the
#   form<EMAIL_ADDRESS>or "#contact" for contact widget.
social:
- icon: envelope
  icon_pack: fas
  link: '#contact'  # For a direct email link, use<EMAIL_ADDRESS>- icon: twitter
  icon_pack: fab
  link: https://twitter.com/asanchezniubo
- icon: researchgate
  icon_pack: ai
  link: https://www.researchgate.net/profile/Albert_Sanchez-Niubo/experience
- icon: orcid
  icon_pack: ai
  link: https://orcid.org/0000-0003-0309-181X
- icon: linkedin
  icon_pack: fab
  link: https://www.linkedin.com/in/albertsanchezniubo/
# - icon: google-scholar
#  icon_pack: ai
#  link: https://scholar.google.co.uk/citations?user=sIwtMXoAAAAJ
# - icon: github
#  icon_pack: fab
#  link: https://github.com/gcushen
# Link to a PDF of your resume/CV from the About widget.
# To enable, copy your resume/CV to `static/files/cv.pdf` and uncomment the lines below.
# - icon: cv
#   icon_pack: ai
#   link: files/cv.pdf

# Enter email to display Gravatar (if Gravatar enabled in Config)
email: ""

# Organizational groups that you belong to (for People widget)
#   Set this to `[]` or comment out if you are not using People widget.
user_groups:
- Researchers
- Visitors
---

Albert Sanchez-Niubo has a PhD in Biostatistics and is currently a postdoctoral researcher in the Ageing Epidemiology Group at the Fundació Sant Joan de Déu and the CIBER of Mental Health, and part-time professor of Epidemiology at the Faculty of Medicine of the International University of Catalonia.

His main tasks are:
1) to lead the work package on the harmonization of data from international cohorts on healthy aging in the ATHLOS project,
2) to lead the work package on the revision of harmonization and integration methods in the SYNCHROS project, and
3) to lead the project "Cognitive impairment in depression".

repository: asanchezniubo/academic-kickstart

repo_name: asanchezniubo/academic-kickstart


text:
# Panda-for-Xresources
🐼 [Panda color sheme](https://github.com/PandaTheme) for linux terminals that use [.Xresources](https://wiki.archlinux.org/index.php/x_resources) color scheme (xterm, urxvt)

Based on https://github.com/PandaTheme/panda-terminal

Converted via http://terminal.sexy

![Screenshot](https://raw.githubusercontent.com/SuddenGunter/Panda-for-Xresources/master/panda_colors.jpg)

# Usage

Configure this theme in your ~/.Xresources like

```
color0: #111111
! ...
color15: #FFFFFF
```

To apply changes in your ~/.Xresources, you have to reload the resource configuration with xrdb -merge ~/.Xresources

repository: max-cx/Panda-for-Xresources

repo_name: max-cx/Panda-for-Xresources


text:
# Forest fires
Predicting forest fires before they happen.

## Aims
This repo aims to predict forest fires in the northeast of Portugal before they happen. It is based on a dataset provided by UC Irvine, hosted at https://archive.ics.uci.edu/ml/datasets/forest+fires.

## Preprocessing
The data was inputted into an SQLite database, and categorical data was turned into numerical. One extra feature was generated from the data obtained: the current season. This was all placed in a database using the `make_db.py` and `add_to_db.py` scripts.

## Results

### Oct 17, 2017
After performing in-depth analysis of the data and features, the ones with the biggest impact on results were kept. A support vector machine was used as a predictive model, and after some analysis, it was found that the optimal parameters for it were a value of C=0.1 and a 2nd degree polynomial. It achieved a 60% accuracy in predicting fires, as opposed to the naive dummy classifier, which achieved a 52% accuracy (random guessing).

Of course, the improvement in accuracy is small, but it is still better than random guessing. A higher confidence threshold could be used to improve performance at the cost of detecting a smaller number of fires.

repository: DHDaniel/forest-fires

repo_name: DHDaniel/forest-fires


text:
---
layout: doc-page
title: Divergences between Scala 2 and Dotty
---

# Divergences between Scala 2 and Dotty
The following issues encountered when compiling Scala 2 code as-is under Dotty:

## Scalafix candidates
- If a method is defined `toSet()`, it cannot be called `toSet`.
- “result type of implicit definition needs to be given explicitly”
- There are no `'Symbol`s in Scala 3, you must construct symbols via `new Symbol("foo")` instead of old `'foo`

## Trivial
- Scala 2.13 libraries cannot be used from Dotty because the dotty-library is compiled against the 2.12 standard library which is not binary-compatible with the 2.13 one. We can't be compatible with both at the same time.
- To use Scala 2.12 dependencies from SBT with Dotty, use `withDottyCompat` as documented [here](https://github.com/scala/scala3-example-project#getting-your-project-to-compile-with-dotty).
- Feature warnings about implicits `scala.language.implicitConversions` are output by default, unlike in Scala 2. This creates noise. Unclear how to turn off.

Implicit conversions must be applied explicitly:

```scala
implicit def IterablePath[T](s: Iterable[T])(implicit conv: T => RelPath): RelPath = {
  s.foldLeft(rel){_ / conv(_)}
}
```

Stronger compile time guarantees on variance.  Scala 2 does not assert variance on default parameters to parameters of the function value type.  E.g. in geny:

```scala
# Dotty
def count(f: A => Boolean = (a: A) => true): Int =
|                                ^^^^^^^^^^^^^^
|covariant type A occurs in contravariant position in type => A => Boolean of method count$default$1
```

Fix:
```scala
# Dotty
def count[B >: A](f: B => Boolean = (_: B) => true): Int =
```

## Tricky
- Scala 3 macros are completely different from Scala 2 ones, requires a migration strategy of its own

repository: rssh/dotty

repo_name: rssh/dotty


text:
Kraken2/2.0.7-bc14b13
=====================

<http://ccb.jhu.edu/software/kraken/MANUAL.html>

There seem to be some useful commits that are not in 2.0.7-beta, so grab those
instead of downloading the release.  Requires the commit hash and `git reset --hard`.

The module also must load a Blast+ (I selected `blast/2.7.1+` for the
`dustmasker` and `segmasker` utilities.

LOG
---

    TOOL=Kraken2
    VERSION=2.0.7-bc14b13
    COMMIT_HASH=bc14b1318f44359d6aa0a0b6e014bbe91a3a8fcc
    cd /sw/apps/bioinfo
    mkdir $TOOL
    cd $TOOL
    mkdir $VERSION
    mkdir mf
    cd $VERSION
    mkdir $CLUSTER
    PFX=$PWD/$CLUSTER
    [[ $CLUSTER == rackham ]] && for CL in snowy irma bianca ; do ln -s $CLUSTER $CL ; done
    mkdir src
    cd src
    module load git/2.16.1
    git clone https://github.com/DerrickWood/kraken2.git
    cd kraken2/
    git reset --hard $COMMIT_HASH

Edit `install_kraken2.sh` to have internal `VERSION=2.0.7-beta-bc14b13`.

    vi install_kraken2.sh

Continue with the rest of the installation.

    module load gcc/6.3.0
    ./install_kraken2.sh $PFX
    cd $PFX

Check that all the perl scripts have proper `#!` lines.  They do.  Also check
that all required modules are included in the system perl.  They are.  These
should perform fine whether system perl or a module perl is used.

    grep -h '^use ' *.pl kraken2* | sort -Vu
    head -n 1 *.sh *.pl kraken2* | grep perl

Check the executables, that RPATH is saved.

    module unload gcc
    file build_db
    ldd build_db

Now to build the database(s).

Additional environment variables to set.

* `KRAKEN2_DB_PATH`  - a PATH-like format of directories to search for `--db`-specified databases.
    Include the default Kraken2 database path.
* `KRAKEN2_DEFAULT_DB` - the database to use if no `--db` is specified
    Names the default Kraken2 database.
* `KRAKEN2_NUM_THREADS` - not set by the module

repository: UPPMAX/install-methods

gha_language: HTML

repo_name: UPPMAX/install-methods


text:
# Init Provider

*Base class for `ContentProvider`s used for automatic initialization
purposes.*

See the [Stetho Init](../stetho-init) and [App Context](../appctx)
implementations to see how it's meant to be used.


text:
# Spectrate

Object with continuous range in Ruby.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'spectrate'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install spectrate

## Usage

```ruby
objects = [*1..10].map {|i| Struct.new(:name, :range).new("obj#{i}", rand(10) + 1) }
# => [#<struct  name="obj1", range=9>,
# #<struct  name="obj2", range=9>,
# #<struct  name="obj3", range=2>,
# #<struct  name="obj4", range=8>,
# #<struct  name="obj5", range=6>,
# #<struct  name="obj6", range=1>,
# #<struct  name="obj7", range=4>,
# #<struct  name="obj8", range=9>,
# #<struct  name="obj9", range=5>,
# #<struct  name="obj10", range=6>]

spectrate = Spectrate.new(objects, objects.map(&:range))
spectrate[5..15] # Object of the corresponding range.
# => [#<struct  name="obj1", range=9>, #<struct  name="obj2", range=9>]

spectrate.sample # Sample to match the range of size.
[*1..(objects.map(&:range).inject(&:+) * 10)]
  .map { spectrate.sample }
  .group_by(&:name)
  .each_with_object({}) {|(k,v), obj| obj[k] = v.size }
# => {"obj8"=>93, "obj3"=>24, "obj1"=>90, "obj4"=>77, "obj9"=>50, "obj7"=>38, "obj2"=>92, "obj5"=>64, "obj10"=>53, "obj6"=>9}
```

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/i2bskn/spectrate. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.

## License

The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).


text:
---
layout: default
title: UI Plugins
nav_order: 1
has_children: true
permalink: /ui-plugins
---

# UI Plugins
The vCloud Director UI plugin system allows for integration of custom modules directly into the context of a running vCD UI.
{: .fs-6 .fw-300 }

By leveraging the plugin registration process that is built into vCD, service providers can dictate whether the plugins should be available to the provider portal or to the tenant portal, and can additionally specify exactly which tenants have access to a plugin.
{: .fs-5 .fw-300 }

This allows for a wide range of extensibility and integration within the UI, and offers the potential to monetize new functionality with a high quality user experience with very little overhead.
{: .fs-5 .fw-300 }

repository: gdplouis/vcd-ext-sdk

repo_name: gdplouis/vcd-ext-sdk


text:
# Contributing to MangaDesk

🥳 Thank you for taking the time to contribute to this project!

This document lays out some general guidelines for contributing. Please take some time to read through it.

## Issues

Bug reports/fixes will always take priority over feature requests.

When opening a new issue, please include the following:

- Start your title with either a `[BUG]` or `[Feature Request]` tag so I know how to categorise your issue.
- For bug reports, include:
    - `Expected Behaviour`
    - `Actual Behaviour`
    - If possible, `Steps to Reproduce` the problem.
- If you feel any additional information would be helpful, such as screenshots, code snippets etc.., you may include it
  as well.

## Pull Requests

Try to open an issue first before submitting a Pull Request, especially if your pull request involves writing code. This
way, there is opportunity for discussion before you dedicate your time and resources to writing code.

- Make sure that your code follows the current structure of the project. I may reject requests that do not follow this.
- Your code should be commented if possible. This way, I know exactly what is going on, and new contributors won't be
  lost.
- If your Pull Request fixes a bug, reference it in the comments, so it is closed automatically.
- Consistency is key, and quality is a must.

### Thank you for contributing!


text:
# Topic

> 人造肉出爐...大環境下，無法選擇的唯一選擇 (What Is Fake Meat?)

> They create plant-based proteins using some of the same components that make up a slab of beef.

> 他們也用跟製造素牛肉相同的原料研發了植物性蛋白。

[![Image](https://cdn.voicetube.com/assets/thumbnails/90FoIv-xL-Y.jpg)](https://www.youtube.com/embed/90FoIv-xL-Y?rel=0&showinfo=0&cc_load_policy=0&controls=1&autoplay=1&iv_load_policy=3&playsinline=1&wmode=transparent&start=112&end=118&enablejsapi=1&origin=https://tw.voicetube.com&widgetid=1)

Host: Winnie Liao

Today issue: Would you ever try this fake meat?

[Host record](https://cdn.voicetube.com/tmp/everyday_records/callmeboss901/2980.mp3)

## learning points
* Compound adjective 複合形容詞
	- oil-based
	- water-based
1. _
	* protein [ˋprotiɪn] (n.) 蛋白質
		- I’ve been trying very hard to train my body so I would always have myself a protein shake after a nice workout to gain muscle.
			+ 我一直在努力訓練自己的身體，所以在鍛煉身體後，我總會讓自己有一個高蛋白飲來獲得肌肉。

2. _
	* component [kəmˋponənt] (n.) 組成部分；成分；零件
		- My dietitian told me that fresh veggie is an essential component of a healthy diet.
			+ 我的營養師告訴我，新鮮素食是健康飲食的重要組成部分

3. _
	* make-up [] (n.) 組成；構成
		- The make-up of the National basketball team this year seems very promising. I think we finally have the chance to win.
			+ 今年國家籃球隊的組合似乎很有希望。我想我們終於有機會獲勝了。
			+ promising => 有望的

4. _
	* slab [slæb] (n.) (石、木、金屬、食物等的) 板；片
		- Slab is a quantifier here => 一片
		- She ate a whole slab of a twelve-ounce steak on the first date that scares me so much, but that’s the reason why I love her so much.
			+ 她第一次吃了一塊十二盎司的牛排，這讓我非常害怕，但這就是我愛她的原因。


text:
# Getting Started on Android

First apply the gradle plugin in your project's top-level `build.gradle`.

```groovy
buildscript {
  repositories {
    google()
    mavenCentral()
  }
  dependencies {
    classpath 'com.squareup.sqldelight:gradle-plugin:{{ versions.sqldelight }}'
  }
}
```
Then apply the gradle plugin in your app or module's `build.gradle`.

```groovy
apply plugin: 'com.squareup.sqldelight'
```

{% include 'common/index_schema.md' %}

```groovy
dependencies {
  implementation "com.squareup.sqldelight:android-driver:{{ versions.sqldelight }}"
}
```
```kotlin
val driver: SqlDriver = AndroidSqliteDriver(Database.Schema, context, "test.db")
```

It's recommended to switch Android Studio to use the "Project" view instead of the "Android" view of
your files, in order to find and edit SQLDelight files.

{% include 'common/index_queries.md' %}

repository: saket/sqldelight

repo_name: saket/sqldelight


text:
# centos_runner
Runner for percolator builds under centos

To build and push a percolator runner for github actions, execute
```
sudo docker build -t lukall/centos_runner . ; sudo docker push lukall/centos_runner
```

To build percolator with docker, execute
```
sudo docker build -f percolator_builder .
```


text:
---
layout: default
---

# 1996-01-12 - Re: Zimmermann case is dropped.

## Header Data

From: "Brad Shantz"<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: b362192a5710ae19764847b9ab01e44b4517c67f9b1b39713cd4b5c8e59f6368

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1996-01-12 17:19:16 UTC

Raw Date: Sat, 13 Jan 1996 01:19:16 +0800

## Raw message

```
{% raw  %}From: "Brad Shantz"<EMAIL_ADDRESS>Date: Sat, 13 Jan 1996 01:19:16 +0800
To<EMAIL_ADDRESS>Subject: Re: Zimmermann case is dropped.
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

> Well, so far the feds haven't prosecuted "Jim Bidzos" for posting Crypto++
> to usenet.  Anyway, both versions have been on utopia.hacktic.nl for months.

I thought that it was determined to be a hoax.  Someone "disguised"
as Jim Bidzos posted it to USENET.

Anyone have confirmation?

Brad

{% endraw %}
```

## Thread

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

+ Return to "["Brad Shantz" <bshantz@nwlink.com>](/authors/brad_shantz_bshantz_at_nwlink_com_)"
+ Return to "[David Lesher <wb8foz@nrk.com>](/authors/david_lesher_wb8foz_at_nrk_com_)"

+ 1996-01-12 (Sat, 13 Jan 1996 01:19:16 +0800) - Re: Zimmermann case is dropped. - _"Brad Shantz"<EMAIL_ADDRESS>  + 1996-01-12 (Fri, 12 Jan 96 09:36:32 PST) - [Re: Zimmermann case is dropped.](/archive/1996/01/21a182f2b0082b2ed55959dae793bd9be09e27a45d2b07bc98dd924b9df0c026) - _David Lesher<EMAIL_ADDRESS>


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

### Description

On Samsung SmartThings Hub STH-ETH-250 devices with firmware version 0.20.17, the video-core process incorrectly extracts fields from a user-controlled JSON payload, leading to a buffer overflow on the stack. An attacker can send an HTTP request to trigger this vulnerability. The memcpy call overflows the destination buffer, which has a size of 512 bytes. An attacker can send an arbitrarily long "url" value in order to overwrite the saved-PC with 0x42424242.

### POC

#### Reference
- https://www.talosintelligence.com/vulnerability_reports/TALOS-2018-0574

#### Github
- https://github.com/ARPSyndicate/cvemon
- https://github.com/lnick2023/nicenice
- https://github.com/qazbnm456/awesome-cve-poc
- https://github.com/xbl3/awesome-cve-poc_qazbnm456

repository: trickest/cve

repo_name: trickest/cve


text:
# Adding tiled data to ArcMap

#### Grab your URL

`Loss`:

http://production-api.globalforestwatch.org/v1/true-color-tiles/loss/{level}/{col}/{row}

`GLAD`:

http://production-api.globalforestwatch.org/v1/true-color-tiles/glad/{level}/{col}/{row}

#### Include query parameters if you want to filter the loss data

Append them to the end of the loss URL like so:
http://production-api.globalforestwatch.org/v1/true-color-tiles/loss/{level}/{col}/{row}?thresh=75&startYear=2005&endYear=2008

The above (appending ?thresh=75&startYear=2005&endYear=2008 to the loss URL) will return only data from 2005 - 2008 (inclusive) with thresh >75, just like on the flagship website.

Filtering by query parameter is not currently available for GLAD. If this is something you'd like me to implement, please let me know.

#### Add to ArcGIS Online

Go to `Add` --> `Layer From Web`, select `A Tile Layer` from the dropdown and enter one of the URL templates above.

![Step1](images/step1.png)

#### Save webmap

Save map, then browse to it (ArcGIS menu  --> `Content`).

![Step2](images/step2.png)

#### Download the pkinfo file to view in ArcMap

On the `Content` page, click on the name of the map to download. Then click the `Open in ArcGIS Desktop` link.

![Step3](images/step3.png)

This should download an item.pkinfo XML file that looks like this:

```xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<pkinfo>
	<ID>3ab9c7bf350744feb5e216032b2edcc5</ID>
	<size>-1</size>
	<created>1506767350000</created>
	<type>Web Map</type>
	<packagelocation>http://www.arcgisonline.com/sharing/content/items/3ab9c7bf350744feb5e216032b2edcc5/data</packagelocation>
	<pkinfolocation>http://www.arcgisonline.com/sharing/content/items/3ab9c7bf350744feb5e216032b2edcc5/item.pkinfo</pkinfolocation>
</pkinfo>
```

#### Double click the .pkinfo file to open in ArcMap

![Step4](images/step4.png)

#### Notes

Given the WGS84 --> Web Mercator projection, these tiles are not recommended for zoom levels > than 12. In short, if you need to see individual pixels, use the Hansen tiles themselves.

I've updated the microservice to scale tiles, so you should be able to see pixels at high zoom levels (> 12) in any client. Let me know if this isn't the case.

#### Future development

Happy to add Terra I to this as well, and to add date filtering to GLAD as well. Let me know if this is of interest.

repository: digidem/true-color-tiles

repo_name: digidem/true-color-tiles


text:
# Pathfinder Level 1 NPC Generator
Generates nearly completely random level 1 NPCs for Pathfinder RPG.

This is just meant to be a quick, dirty and functional implementation. There's a hundred better ways to do it, and this is only designed for the specific use-case.
* There are 5 NPC classes you can get: Adept, Aristocrat, Commoner, Expert, Warrior
* There are 9 races you can get: Dwarf, Elf, Gnome, Goblin, Half-Elf, Half-Orc, Human, Orc
* Each character gets a drawback! There are lots of them.
* Assigns random feats (from a small list)
* The Adept can have cantrips and spells, they are randomly assigned from the available list. If they have high enough wisdom they get an extra use of the 1st level spell per day.
* Racial traits that always apply are applied to the character sheet
* Reasonably large lists of random names for each race and gender
* Genders, heights, and weights according to the regular old boring random tables (with room to add whatever we want).
* Genders are randomly Male, Female, or "Other". If "Other" they have a chance to get Male and/or Female-specific results for the rest of the character generation.
* Stats are rolled randomly using 3d6 for each stat.

Drunk Pathfinder Rules!
* Generate 25-50 random NPC character sheets.
* Get a party of 4-5 players together to go through a dungeon.
* If their character dies they have to finish their drink before they get another character.
* If they take damage they take a drink.
* If they role a natural 1 they take a drink.
* If they role a natural 20 they can assign a drink to someone.
* The dungeon is extremely deadly! Full of traps and mobs of monsters.
* Oh and did I mention you spawn with no equipment at all? Have fun punching things to death until you find some!
* Dungeon not included.

Examples
https://pastebin.com/n0efFEk5

repository: ShrikeGames/PathfinderNPCGenerator

repo_name: ShrikeGames/PathfinderNPCGenerator


text:
---
layout: default
---

# 1997-02-27 - Re: 128_bit

## Header Data

From: Adam Back<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: d0b52325fd8228fb9d1211e8174b83971731442820c073144778fc3ff06c619b

Message ID<EMAIL_ADDRESS>Reply To<EMAIL_ADDRESS>UTC Datetime: 1997-02-27 23:27:38 UTC

Raw Date: Thu, 27 Feb 1997 15:27:38 -0800 (PST)

## Raw message

```
{% raw  %}From: Adam Back<EMAIL_ADDRESS>Date: Thu, 27 Feb 1997 15:27:38 -0800 (PST)
To<EMAIL_ADDRESS>Subject: Re: 128_bit
In-Reply-To<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

John Young offered RSADS/Security Dynamics press release:

> 2-26-97.
>
> "Security Dynamics Unveils RSA SecurPC 2.0"
>
>  The package is claimed to the first 128-bit encryption software to
>  be exported from the US and its territories, and allows companies
>  to implement "seamless, full-strength encryption" worldwide.

Seems the sales blurb press release from RSADS/Security Dynamics is
misleading, checking out the web page referenced:

(http://www.rsa.com/rsa/prodspec/rsasec/sec_eval/)

  Crypto strength reduced, but
  functionality intact

  In order to make this ground-breaking
  product available internationally, we have
  applied for and received a Commodity
  Jurisdiction from the US Department of
  Commerce. This means that the strength of
  the cryptography has been reduced from the
  commercial product available in the US and
  Canada in order to comply with
  cryptographic export regulations, but the rest
  of the functionality has been left intact. This
  Trial version of RSA SecurPC uses 40-bit
  RC4 keys and 512-bit RSA keys. For more
  information about the product, see the
  product description page.

What happened to "the first 128-bit encryption software to be exported
from the US and its territories"?  In reality: more 40 bit cripple-ware.

Adam
--
print pack"C*",split/\D+/,`echo "16iII*o\U@{$/=$z;[(pop,pop,unpack"H*",<>
)]}\EsMsKsN0[lN*1lK[d2%Sa2/d0<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<J]dsJxp"|dc`

{% endraw %}
```

## Thread

+ Return to [February 1997](/archive/1997/02)

+ Return to "[Adam Back <aba@dcs.ex.ac.uk>](/authors/adam_back_aba_at_dcs_ex_ac_uk_)"
+ Return to "[John Young <jya@pipeline.com>](/authors/john_young_jya_at_pipeline_com_)"
+ Return to "[Toto <toto@sk.sympatico.ca>](/authors/toto_toto_at_sk_sympatico_ca_)"

+ 1997-02-27 (Thu, 27 Feb 1997 06:34:44 -0800 (PST)) - [128_bit](/archive/1997/02/2e5ab5edbdbed06ea294c7eaa14aed320fa109f34a521e6f6a6fd0faa1454168) - _John Young<EMAIL_ADDRESS>  + 1997-02-27 (Thu, 27 Feb 1997 15:27:38 -0800 (PST)) - Re: 128_bit - _Adam Back<EMAIL_ADDRESS>    + 1997-02-28 (Thu, 27 Feb 1997 17:38:25 -0800 (PST)) - [Re: 128_bit](/archive/1997/02/c1a23d59c9bb4ea55b5865eb821140f115e36adf7d5d825fc602dbeddb3b2de2) - _Toto<EMAIL_ADDRESS>


text:
# PrettyErrors

Prettifies Python exception output to make it legible. To use simply put PrettyErrors.py in your project and
```
import PrettyErrors
```
Note you need to be running in a terminal capable of colour output: in Windows this means powershell, cmder, etc.

![Example](https://github.com/onelivesleft/PrettyErrors/blob/master/example.png)

repository: theendsofinvention/PrettyErrors

repo_name: theendsofinvention/PrettyErrors