text:
# Developing for the cloud
# Lab: Configuring a Message-Based Integration Architecture

### Scenario

Adatum has several web applications that process files uploaded in regular intervals to their on-premises file servers. Files sizes vary, but they can reach up to 100 MB. Adatum is considering migrating the applications to Azure App Service or Azure Functions-based apps and using Azure Storage to host uploaded files. You plan to test two scenarios:

  - using Azure Functions to automatically process new blobs uploaded to an Azure Storage container.

  - using Event Grid to generate Azure Storage queue messages that will reference new blobs uploaded to an Azure Storage container.

These scenarios are intended to address a challenge common to a messaging based architecture, when sending, receiving, and manipulating large messages. Sending large messages to a message queue directly is not recommended as they would require more resources to be used, result in more bandwidth to be consumed, and negatively impact the processing speed, since messaging platforms are usually fine-tuned to handle high volumes of small messages. In addition, messaging platforms usually limit the maximum message size they can process.

One potential solution is to store the message payload into an external service, like Azure Blob Store, Azure SQL or Azure Cosmos DB, get the reference to the stored payload and then send to the message bus only that reference. This architectural pattern is known as "claim check". The clients interested in processing that specific message can use the obtained reference to retrieve the payload, if needed.
On Azure this pattern can be implemented in several ways and with different technologies, but it typically it relies on eventing to either automate the claim check generation and to push it into the message bus to be used by clients or to trigger payload processing directly. One of the common components included in such implementations is Event Grid, which is an event routing service responsible for delivery of events within a configurable period of time (up to 24 hours). After that, events are either discarded or dead lettered. If archival of event contents or replayability of event stream are needed, it is possible to facilitate this requirement by setting up an Event Grid subscription to the Event Hub or a queue in Azure Storage where messages can be retained for longer periods and archival of messages is supported.

In this lab, you will use Azure Storage Blob service to store files to be processed. A client just needs to drop the files to be shared into a designated Azure Blob container. In the first exercise, the files will be consumed directly by an Azure Function, leveraging its serverless nature. You will also take advantage of the Application Insights to provide instrumentation, facilitating monitoring and analyzing file processing. In the second exercise, you will use Event Grid to automatically generate a claim check message and send it to an Azure Storage queue. This allows a client application to poll the queue, get the message and then use the stored reference data to download the payload directly from Azure Blob Storage.

It is worth noting that the Azure Function in the first exercise relies on the Blob Storage trigger. You should opt for Event Grid trigger instead of the Blob storage trigger when dealing with the following requirements:

  - blob-only storage accounts: blob storage accounts are supported for blob input and output bindings but not for blob triggers. Blob storage triggers require a general-purpose storage account.

  - high scale: high scale can be loosely defined as containers that have more than 100,000 blobs in them or storage accounts that have more than 100 blob updates per second.

  - reduced latency: if your function app is on the Consumption plan, there can be up to a 10-minute delay in processing new blobs if a function app has gone idle. To avoid this latency, you can use an Event Grid trigger or switch to an App Service plan with the Always On setting enabled.

  - processing of blob delete events: blob delete events are not supported by blob storage triggers.

### Objectives

After completing this lab, you will be able to:

-  Configure and validate an Azure Function App Storage Blob trigger

-  Configure and validate an Azure Event Grid subscription-based queue messaging

### Lab

Estimated Time: 60 minutes

## Exercise 1: Configure and validate an Azure Function App Storage Blob trigger

The main tasks for this exercise are as follows:

1. Configure an Azure Function App Storage Blob trigger

1. Validate an Azure Function App Storage Blob trigger

#### Task 1: Configure an Azure Function App Storage Blob trigger

1. From the lab virtual machine, start Microsoft Edge, browse to the Azure portal at [**http://portal.azure.com**](http://portal.azure.com), and sign in by using the Microsoft account that has the Owner role in the target Azure subscription.

1. In the Azure portal, in the Microsoft Edge window, start a **Bash** session within the **Cloud Shell**.

1. If you are presented with the **You have no storage mounted** message, configure storage using the following settings:

    - Subsciption: the name of the target Azure subscription

    - Cloud Shell region: the name of the Azure region that is available in your subscription and which is closest to the lab location

    - Resource group: **az300T0601-LabRG**

    - Storage account: a name of a new storage account

    - File share: a name of a new file share

1. From the Cloud Shell pane, run the following to generate a pseudo-random string of characters that will be used as a prefix for names of resources you will provision in this exercise:

   ```sh
   export PREFIX=$(echo `openssl rand -base64 5 | cut -c1-7 | tr '[:upper:]' '[:lower:]' | tr -cd '[[:alnum:]]._-'`)
   ```

1. From the Cloud Shell pane, run the following to designate the Azure region into which you want to provision resources in this lab (make sure to replace the placeholder `<Azure region>` with the name of the target Azure region and remove any spaces in the region name):

   ```sh
   export LOCATION='<Azure_region>'
   ```

1. From the Cloud Shell pane, run the following to create a resource group that will host all resources that you will provision in this lab:

   ```sh
   export RESOURCE_GROUP_NAME='az300T0602-LabRG'

   az group create --name "${RESOURCE_GROUP_NAME}" --location "$LOCATION"
   ```

1. From the Cloud Shell pane, run the following to create an Azure Storage account and a container that will host blobs to be processed by the Azure function:

   ```sh
   export STORAGE_ACCOUNT_NAME="az300t06st2${PREFIX}"

   export CONTAINER_NAME="workitems"

   export STORAGE_ACCOUNT=$(az storage account create --name "${STORAGE_ACCOUNT_NAME}" --kind "StorageV2" --location "${LOCATION}" --resource-group "${RESOURCE_GROUP_NAME}" --sku "Standard_LRS")

   az storage container create --name "${CONTAINER_NAME}" --account-name "${STORAGE_ACCOUNT_NAME}"
   ```

    > **Note**: The same storage account will be also used by the Azure function to facilitate its own processing requirements. In real-world scenarios, you might want to consider creating a separate storage account for this purpose.

1. From the Cloud Shell pane, run the following to create a variable storing the value of the connection string property of the Azure Storage account:

   ```sh
   export STORAGE_CONNECTION_STRING=$(az storage account show-connection-string --name "${STORAGE_ACCOUNT_NAME}" --resource-group "${RESOURCE_GROUP_NAME}" -o tsv)
   ```

1. From the Cloud Shell pane, run the following to create an Application Insights resource that will provide monitoring of the Azure Function processing blobs and store its key in a variable:

   ```sh
   export APPLICATION_INSIGHTS_NAME="az300t06ai${PREFIX}"

   az resource create --name "${APPLICATION_INSIGHTS_NAME}" --location "${LOCATION}" --properties '{"Application_Type": "other", "ApplicationId": "function", "Flow_Type": "Redfield"}' --resource-group "${RESOURCE_GROUP_NAME}" --resource-type "Microsoft.Insights/components"

   export APPINSIGHTS_KEY=$(az resource show --name "${APPLICATION_INSIGHTS_NAME}" --query "properties.InstrumentationKey" --resource-group "${RESOURCE_GROUP_NAME}" --resource-type "Microsoft.Insights/components" -o tsv)
   ```

1. From the Cloud Shell pane, run the following to create the Azure Function that will process events corresponding to creation of Azure Storage blobs:

   ```sh
   export FUNCTION_NAME="az300t06f${PREFIX}"

   az functionapp create --name "${FUNCTION_NAME}" --resource-group "${RESOURCE_GROUP_NAME}" --storage-account "${STORAGE_ACCOUNT_NAME}" --consumption-plan-location "${LOCATION}" --runtime "dotnet"
   ```

1. From the Cloud Shell pane, run the following to configure Application Settings of the newly created function, linking it to the Application Insights and Azure Storage account:

   ```sh
   az functionapp config appsettings set --name "${FUNCTION_NAME}" --resource-group "${RESOURCE_GROUP_NAME}" --settings "APPINSIGHTS_INSTRUMENTATIONKEY=$APPINSIGHTS_KEY" FUNCTIONS_EXTENSION_VERSION=~2

   az functionapp config appsettings set --name "${FUNCTION_NAME}" --resource-group "${RESOURCE_GROUP_NAME}" --settings "STORAGE_CONNECTION_STRING=$STORAGE_CONNECTION_STRING" FUNCTIONS_EXTENSION_VERSION=~2
   ```

1. Switch to the Azure portal and navigate to the blade of the Azure Function app you created earlier in this task.

1. On the Azure Function app blade, click **Functions** and then, click **+ New function**.

1. On the **Choose a template below or go to the quickstart** blade, click **Azure Blob Storage trigger** template.

1. On the **Extensions not Installed** blade, click **Install**. Wait until the installation completes and click **Continue**.

    > **Note**: Azure Functions V2 runtime implement bindings in the form of Nuget packages, referred to as "binding extensions" (in particular, the Azure Storage Blob binding uses the Microsoft.Azure.WebJobs.Extensions.Storage package).

1. On the **Azure Blob Storage trigger** blade, specify the following and click **Create** to create a new function within the Azure function:

    - Name: **BlobTrigger**

    - Path: **workitems/{name}**

    - Storage account connection: **STORAGE_CONNECTION_STRING**

1. On the Azure Function app **BlobTrigger** function blade, review the content of the run.csx file.

   ```csharp
   public static void Run(Stream myBlob, string name, ILogger log)
   {
       log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
   }
   ```

    > **Note**: By default, the function is configured to simply log the event corresponding to creation of a new blob. In order to carry out blob processing tasks, you would modify the content of this file.

#### Task 2: Validate an Azure Function App Storage Blob trigger

1. If necessary, restart the Bash session in the Cloud Shell.

1. From the Cloud Shell pane, run the following to repopulate variables that you used in the previous task:

   ```sh
   export RESOURCE_GROUP_NAME='az300T0602-LabRG'

   export STORAGE_ACCOUNT_NAME="$(az storage account list --resource-group "${RESOURCE_GROUP_NAME}" --query "[0].name" --output tsv)"

   export CONTAINER_NAME="workitems"
   ```

1. From the Cloud Shell pane, run the following to upload a test blob to the Azure Storage account you created earlier in this task:

   ```sh
   export STORAGE_ACCESS_KEY="$(az storage account keys list --account-name "${STORAGE_ACCOUNT_NAME}" --resource-group "${RESOURCE_GROUP_NAME}" --query "[0].value" --output tsv)"

   export WORKITEM='workitem1.txt'

   touch "${WORKITEM}"

   az storage blob upload --file "${WORKITEM}" --container-name "${CONTAINER_NAME}" --name "${WORKITEM}" --auth-mode key --account-key "${STORAGE_ACCESS_KEY}" --account-name "${STORAGE_ACCOUNT_NAME}"
   ```

1. In the Azure portal, navigate back to the blade displaying the Azure Function app you created in the previous task.

1. On the Azure Function app blade, click **Monitor** entry in the **Functions** section.

1. Note a single event entry representing uploading of the blob. Click the entry to view the **Invocation Details** blade.

    > **Note**: Since the Azure function app in this exercise runs in the Consumption plan, there may be a delay of up to several minutes between uploading a blob and the function being triggered. It is possible to minimize the latency by implementing the Function app by using an App Service (rather than Consumption) plan.

1. Go back to the **Monitor** blade, and click the link **Run in Application Insights**.

1. In the Application Insights portal, review the autogenerated Kusto query and its results.

## Exercise 2: Configure and validate an Azure Event Grid subscription-based queue messaging

The main tasks for this exercise are as follows:

1. Configure an Azure Event Grid subscription-based queue messaging

1. Validate an Azure Event Grid subscription-based queue messaging

#### Task 1: Configure an Azure Event Grid subscription-based queue messaging

1. If necessary, restart the Bash session in the Cloud Shell.

1. From the Cloud Shell pane, run the following to register the eventgrid resource provider in your subscription:

   ```sh
   az provider register --namespace microsoft.eventgrid
   ```

1. From the Cloud Shell pane, run the following to generate a pseudo-random string of characters that will be used as a prefix for names of resources you will provision in this exercise:

   ```sh
   export PREFIX=$(echo `openssl rand -base64 5 | cut -c1-7 | tr '[:upper:]' '[:lower:]' | tr -cd '[[:alnum:]]._-'`)
   ```

1. From the Cloud Shell pane, run the following to identify the Azure region hosting the target resource group and its existing resources:

   ```sh
   export RESOURCE_GROUP_NAME_EXISTING='az300T0602-LabRG'

   export LOCATION=$(az group list --query "[?name == '${RESOURCE_GROUP_NAME_EXISTING}'].location" --output tsv)

   export RESOURCE_GROUP_NAME='az300T0603-LabRG'

   az group create --name "${RESOURCE_GROUP_NAME}" --location $LOCATION
   ```

1. From the Cloud Shell pane, run the following to create an Azure Storage account and its container that will be used by the Event Grid subscription that you will configure in this task:

   ```sh
   export STORAGE_ACCOUNT_NAME="az300t06st3${PREFIX}"

   export CONTAINER_NAME="workitems"

   export STORAGE_ACCOUNT=$(az storage account create --name "${STORAGE_ACCOUNT_NAME}" --kind "StorageV2" --location "${LOCATION}" --resource-group "${RESOURCE_GROUP_NAME}" --sku "Standard_LRS")

   az storage container create --name "${CONTAINER_NAME}" --account-name "${STORAGE_ACCOUNT_NAME}"
   ```

1. From the Cloud Shell pane, run the following to create a variable storing the value of the Resource Id property of the Azure Storage account:

   ```sh
   export STORAGE_ACCOUNT_ID=$(az storage account show --name "${STORAGE_ACCOUNT_NAME}" --query "id" --resource-group "${RESOURCE_GROUP_NAME}" -o tsv)
   ```

1. From the Cloud Shell pane, run the following to create the Storage Account queue that will store messages generated by the Event Grid subscription that you will configure in this task:

   ```sh
   export QUEUE_NAME="az300t06q3${PREFIX}"

   az storage queue create --name "${QUEUE_NAME}" --account-name "${STORAGE_ACCOUNT_NAME}"
   ```

1. From the Cloud Shell pane, run the following to create the Event Grid subscription that will facilitate generation of messages in Azure Storage queue in response to blob uploads to the designated container in the Azure Storage account:

   ```sh
   export QUEUE_SUBSCRIPTION_NAME="az300t06qsub3${PREFIX}"

   az eventgrid event-subscription create --name "${QUEUE_SUBSCRIPTION_NAME}" --included-event-types 'Microsoft.Storage.BlobCreated' --endpoint "${STORAGE_ACCOUNT_ID}/queueservices/default/queues/${QUEUE_NAME}" --endpoint-type "storagequeue" --source-resource-id "${STORAGE_ACCOUNT_ID}"
   ```

#### Task 2: Validate an Azure Event Grid subscription-based queue messaging

1. From the Cloud Shell pane, run the following to upload a test blob to the Azure Storage account you created earlier in this task:

   ```sh
   export AZURE_STORAGE_ACCESS_KEY="$(az storage account keys list --account-name "${STORAGE_ACCOUNT_NAME}" --resource-group "${RESOURCE_GROUP_NAME}" --query "[0].value" --output tsv)"

   export WORKITEM='workitem2.txt'

   touch "${WORKITEM}"

   az storage blob upload --file "${WORKITEM}" --container-name "${CONTAINER_NAME}" --name "${WORKITEM}" --auth-mode key --account-key "${AZURE_STORAGE_ACCESS_KEY}" --account-name "${STORAGE_ACCOUNT_NAME}"
   ```
1. In the Azure portal, navigate to the blade displaying the Azure Storage account you created in the previous task of this exercise.

1. On the blade of the Azure Storage account, click **Queues** to display the list of its queues.

1. Click the entry representing the queue you created in the previous task of this exercise.

1. Note that the queue contains a single message. Click its entry to display the **Message properties** blade.

1. In the **MESSAGE BODY**, note the value of the **url** property, representing the URL of the Azure Storage blob you uploaded in the previous task.

## Exercise 3: Remove lab resources

#### Task 1: Open Cloud Shell

1. At the top of the portal, click the **Cloud Shell** icon to open the Cloud Shell pane.

1. If needed, switch to the Bash shell session by using the drop down list in the upper left corner of the Cloud Shell pane.

1. At the **Cloud Shell** command prompt, type in the following command and press **Enter** to list all resource groups you created in this lab:

   ```
   az group list --query "[?starts_with(name,'az300T06')]".name --output tsv
   ```

1. Verify that the output contains only the resource groups you created in this lab. These groups will be deleted in the next task.

#### Task 2: Delete resource groups

1. At the **Cloud Shell** command prompt, type in the following command and press **Enter** to delete the resource groups you created in this lab

   ```sh
   az group list --query "[?starts_with(name,'az300T06')]".name --output tsv | xargs -L1 bash -c 'az group delete --name $0 --no-wait --yes'
   ```

1. Close the **Cloud Shell** prompt at the bottom of the portal.

> **Result**: In this exercise, you removed the resources used in this lab.

path: /Instructions/AZ-300T06_Lab_Mod01_Configuring a Message-Based Integration Architecture.md


text:
---
layout: post
title: Google Learning Apps
tags: [professional-development]
date: 2018-03-19 17:00
---

Today I randomly came across 2 Google apps aimed at teaching Business/Marketing and Development skills.  Looks interesting so far, especially the UX design.

I spent the weekend re-listing To-Do items, and then I prioritized them.  I still haven't finished any of them.  I'd like to use this platform to create lists that I'd want to add to and reference in the future.  I realized that I don't tend to go back and reference things in my journal.  Not yet on my list of To-Dos, even though it should be, is re-formulating my goals list.

On the list of lists to create:
* Sellers of merchandise promoting tech, aimed at women.
* Ideas for civic tech merchandise.
* Books to read... Thinking Fast and Slow, Dan Ariely's books.

license: MIT

branch_name: refs/heads/master

extension: md

license_type: permissive


text:
---
title: "Codon composition strongly predicts maternal mRNA degradation during MZT"
author: "Santiago Medina"
date: "3/4/2019"
output:
  html_document:
    keep_md: true
---

B)	Apply your model to MZT (wildtype) (scatter plot, R and P value), How much can you explain. Color code Optimal, non-optimla, miR430 and add the median of each group

Thinks to keep in mind:

+ I will take the log2 fold change between 2 and 6 hrs.
+ I define optimal genes bassed on PLS1 (top 500)
+ MiR430 bassed in 6-mer presence

![](./figures/f02_pred_wt-1.png)<!-- -->

![](./figures/f02_mir430residuals-1.png)<!-- -->

![](./figures/f02_liftchart-1.png)<!-- -->


text:
# Notepad++

We have developed the TorXakis.xml plugin for Notepad++.
This plugin only provides syntax highlighting.

## Download

Download the plugin at [TorXakis.xml](TorXakis.xml).

We will refer to the downloaded file as 'TorXakis.xml'.

## Installation

In Notepad++ choose Language > Define Your Language...
![DefineYourLanguage!](images/DefineYourLanguage.jpg)

In User Defined Language window
Click "Import..." button.
![Import!](images/Import.jpg)

Select the downloaded file 'TorXakis.xml'.
Click on OK on the "Import successful." pop-up window.
![Success!](images/Success.jpg)

## Removal

In Notepad++ choose Language > Define Your Language...

See [section Installation above](README.md#installation) for a screenshot.

In User Defined Language window at "User language :" select TorXakis

then Click "Remove".
![Remove!](images/Remove.jpg)

In the "Remove the current language" pop-up window,
answer the question "Are you sure?" by clicking "Yes".

repository: Niels-vv/SupportNotepadPlusPlus

repo_name: Niels-vv/SupportNotepadPlusPlus


text:
---
layout: default
---

# 1997-01-26 - Humor

## Header Data

From: Casey Iverson<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: 649fb9f361c487ac8b795c51c9a681b38134fbcb6f3736119c3adb831b81e8db

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1997-01-26 23:12:35 UTC

Raw Date: Sun, 26 Jan 1997 15:12:35 -0800 (PST)

## Raw message

```
{% raw  %}From: Casey Iverson<EMAIL_ADDRESS>Date: Sun, 26 Jan 1997 15:12:35 -0800 (PST)
To<EMAIL_ADDRESS>Subject: Humor
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

Watch out for the Goodtimes Virus

Goodtimes will re-write your hard drive, scramble any disks that are even
close to your computer, recalibrate your refrigerator's coolness setting so
all your ice cream goes melty,demagnetize the strips on all your credit cards,
screw up the tracking on your television and use subspace field harmonics
to scratch any CD's you try to play.

It will give your ex-girlfriend your new phone number. It will mix
Kool-aid into your fishtank.  It will drink all your beer and leave
its socks out on the coffee table when there's company coming over.

Goodtimes will make you fall in love with a penguin.  It will give you
nightmares about circus midgets.

It will seduce your grandmother.  It does not matter if she is dead,
such is the power of Goodtimes, it reaches out beyond the grave to
sully those things we hold most dear.

It moves your car randomly around parking lots so you can't find it.
It will kick your dog.  It will leave libidinous messages on your
boss's voice mail in your voice!  It is insidious and subtle. It is
dangerous and terrifying to behold.  It is also a rather interesting
shade of mauve.

Goodtimes will give you Dutch Elm disease.  It will leave the toilet
seat up.  It will make a batch of Methamphetamine in your bathtub and
then leave bacon cooking on the stove while it goes out to chase
gradeschoolers with your new snowblower.

These are just a few signs...  Just be very careful!

CI

{% endraw %}
```

## Thread

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

+ Return to "[Casey Iverson <iverson@usa.net>](/authors/casey_iverson_iverson_at_usa_net_)"

+ 1997-01-26 (Sun, 26 Jan 1997 15:12:35 -0800 (PST)) - Humor - _Casey Iverson<EMAIL_ADDRESS>

gha_license_id: MIT


text:
# Local Match Viewer

A wrapper around `game-utils/match-viewer` react project that serves as a local match viewer.

## Run
1. `git clone REPO_URL`
2. `cd websites/local-match-viewer/`
3. `make install`
4. Serve games directory files: `python3 ../../game-utils/match-viewer/serve_games_assets.py -p 4444 ../../games/`
6. `make dev`
7. Visit http://localhost:3000/

## Test
Run all tests with `npm test Y-- src`.
To run with coverage run `npm test -- src --coverage`.

repository: matjazp/planet-lia

repo_name: matjazp/planet-lia


text:
# Datagate

For this small and quite simple database-like program I decided to use a CSV file as the main data store. I would implement B-tree indexes to imporve the query performance or I would use a binary file instead of a CSV file as the main data store, but I wanted to focus more on the architecture issues.

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'datagate'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install datagate

## Usage

Import data from a file into the data store:

    $ cat sample.csv | exe/import

Execute simple queries against the data store:

    $ exe/query -h

    Usage: query [options]
        -s, --select COLUMN_NAME_1,...   For example, "PROJECT,SHOT,VERSION,STATUS"
        -f, --filter EXPRESSION          For example, "PROJECT='the hobbit' AND (SHOT=01 OR SHOT=40)"
        -o, --order COLUMN_NAME_1,...    For example, "FINISH_DATE,INTERNAL_BID"

Select data from the data store:

    $ exe/query -s PROJECT,SHOT,VERSION,STATUS -o FINISH_DATE,INTERNAL_BID

    lotr,3,16,finished
    king kong,42,128,not required
    the hobbit,40,32,finished
    the hobbit,1,64,scheduled

    $ exe/query -s PROJECT,SHOT,VERSION,STATUS -f FINISH_DATE=2006-07-22

    king kong,42,128,not required

Filter data using boolean expressions:

    $ exe/query -s PROJECT,INTERNAL_BID -f 'PROJECT="the hobbit" OR PROJECT="lotr"'

    the hobbit,45.0
    lotr,15.0
    the hobbit,22.8

    $ exe/query -s id,project,shot -f 'PROJECT="the hobbit" AND (SHOT=01 OR SHOT=40)'

    1,the hobbit,01
    4,the hobbit,40

## Development

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

To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).

## License

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

repository: pempel/datagate

gha_language: Ruby

repo_name: pempel/datagate


text:
## The issue tracker is reserved for bug reports only.

If you have a question, feature request, or an idea for improving the library or its related tools, please try one of the following resources:

- [Read the documentation](https://reactnavigation.org/)
- [Post an issue to the website repository if you'd like to see a documentation change](http://github.com/react-navigation/website)
- [Post a feature request to Canny](https://react-navigation.canny.io/feature-requests)
- [Write a RFC if you have ideas for how to implement a feature request](https://github.com/react-navigation/rfcs)
- [Get help on Discord chat (#react-navigation on Reactiflux)](https://discord.gg/4xEK3nD) or [on StackOverflow](https://stackoverflow.com/questions/tagged/react-navigation)
- Search for your issue - it may have already been answered or even fixed in the development branch. However, if you find that an old, closed issue still persists in the latest version, you should open a new issue.

Bugs with react-navigation must be reproducible *without any external libraries that operate on it*. This means that if you are attempting to use Redux or MobX with it and you think you have found a bug, you must be able to reproduce it without Redux or MobX in this report. Redux related issues belong in [react-navigation-redux-helpers](https://github.com/react-navigation/react-navigation-redux-helpers), and we do not have any first-class integration with MobX at the moment.

---

### Current Behavior

- What code are you running and what is happening?
- Include a screenshot if it makes sense.

### Expected Behavior

- What do you expect should be happening?
- Include a screenshot if it makes sense.

### How to reproduce

- You must provide a way to reproduce the problem. If you are having an issue with your machine or build tools, the issue belongs on another repoistory as that is outside of the scope of React Navigation.
- Either re-create the bug on [Snack](https://snack.expo.io) or link to a GitHub repository with code that reproduces the bug.
- Explain how to run the example app and any steps that we need to take to reproduce the issue from the example app.

### Your Environment

| software         | version
| ---------------- | -------
| react-navigation |
| react-native     |
| node             |
| npm or yarn      |

repository: DesignmanIO/react-navigation

gha_language: JavaScript

repo_name: DesignmanIO/react-navigation


text:
# Aubergine
MVP Android library

Make sure you have JAVA 8 installed and set JAVA8_HOME env variable. If you have problems with compilation check retro lambda plugin configuration https://github.com/evant/gradle-retrolambda


text:
# TAGTRAUM_split

Tagtraum split that I've used for my experiments in the paper [Multi-Level and Multi-Scale Feature Aggregation Using Pre-trained Convolutional Neural Networks for Music Auto-tagging, IEEE SPL(to be published), 2017](https://arxiv.org/abs/1703.01793).

This is stratified split with 80% training data of CD2C version of [Tagtraum genre annotations](http://www.tagtraum.com/msd_genre_datasets.html).

We then filtered the list so that the audio of all the songs in the list can be longer than 29.1 seconds.

# Split example:
In python, by using these commands we can simply use given data.

import cPickle as cP
train_list = cP.load(open('train_list.cP','r'))
valid_list = train_list[141372:]
train_list = train_list[0:141372]
test_list = cP.load(open('test_list.cP','r'))


text:
# Read a geopackage

Add rasters and feature tables from a geopackage to a map.

![Image of read geopackage](read-geopackage.png)

## Use case

The OGC GeoPackage specification defines an open standard for sharing raster and vector data. You may want to use GeoPackage files to support file-based sharing of geographic data.

## How to use the sample

When the sample loads, the feature tables and rasters from the GeoPackage will be shown on the map.

## How it works

1. Create a GeoPackage from a named bundle resource using `AGSGeoPackage.init(name:)`.
2. Load the GeoPackage using `AGSGeoPackage.load(completion:)`.
3. Iterate through available rasters, exposed by `AGSGeoPackage.geoPackageRasters`.
    * For each raster, create an `AGSRasterLayer` object and add it to the map.
4. Iterate through available feature tables, exposed by `AGSGeoPackage.geoPackageFeatureTables`.
    * For each feature table, create an `AGSFeatureLayer` object and add it to the map.

## Relevant API

* AGSGeoPackage
* AGSGeoPackage.geoPackageFeatureTables
* AGSGeoPackage.geoPackageRasters
* AGSGeoPackageFeatureTable
* AGSGeoPackageRaster

## Offline data

The [Aurora Colorado GeoPackage](https://www.arcgis.com/home/item.html?id=68ec42517cdd439e81b036210483e8e7) holds datasets that cover Aurora, Colorado.

## About the data

This sample features a GeoPackage with datasets that cover Aurora, Colorado: Public art (points), Bike trails (lines), Subdivisions (polygons), Airport noise (raster), and liquor license density (raster).

## Additional information

GeoPackage uses a single SQLite file (.gpkg) that conforms to the OGC GeoPackage Standard. You can create a GeoPackage file (.gpkg) from your own data using the create a SQLite Database tool in ArcGIS Pro.

## Tags

container, GeoPackage, layer, map, OGC, package, raster, table

repository: mhdostal/arcgis-runtime-samples-ios

branch_name: refs/heads/main

repo_name: mhdostal/arcgis-runtime-samples-ios


text:
# wdbu

Web developers backup utility is a shell script that utilizes `rsync`, `mysqldump` and `tar` to create incremental backups of websites and their MySQL databases.

## Usage:

`./wdbu.sh <src> <dst>`

This script scans all directories under `src` looking for a user defined configuration file and, if instructed, performs a backup of its files and/or MySQL databases in `dst`.

The script must be run as the `root` user and a valid ~/.my.cnf with administrator credentials must exist in order to export the MySQL databases structure and data.

You can adjust the script to your specific needs by modifying the values under the `Settings` section in `wdbu.sh` with your favorite text editor.

```
$ tree -L 3 /srv/www
/srv/www
├── website_1.com
|   ├── etc
|   │   ├── backup.conf
|   │   └── ...
|   └── ...
├── website_2.com
├── website_3.com
├── ...
└── website_n.com
$ sudo ~/wdbu/wdbu.sh /srv/www /srv/backup
```

Usually you'd run this script from within your `crontab`.

```
# Daily backup at 02:30 AM.
# m h  dom mon dow   command
30 02 * * *  ~/wdbu/wdbu.sh /srv/www /srv/backup
```

repository: juangiordana/wdbu

repo_name: juangiordana/wdbu


text:
# Note Hero
https://notehero.herokuapp.com/

[![Build Status](https://travis-ci.org/joncancode/flashcards.svg?branch=master)](https://travis-ci.org/joncancode/flashcards)

[Note Hero](https://myrex.herokuapp.com/) is a way to have all your notes in one spot. Use this note catalogue to group what you need to study, then ace that next test.

![Note Hero screenshot](/images/note-hero.gif?raw=true "Note Hero")

**Tech stack**
* [JavaScript](https://stackoverflow.com/questions/tagged/javascript)
* [jQuery](https://jquery.com/)
* [React](https://reactjs.org/)
* [Redux](redux.js.org/)
* [Node.js](https://nodejs.org/en/docs/) - Back End
* [MongoDB](https://docs.mongodb.com/) - Database
* [Heroku](https://www.heroku.com//) - Host
* [TravisCI](https://travis-ci.org/joncancode/flashcards) - Continuous Integration

## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

repository: joncancode/flashcards

repo_name: joncancode/flashcards


text:
Puppet ipmi Module
=========================

[![Build Status](https://travis-ci.org/jhoblitt/puppet-ipmi.png)](https://travis-ci.org/jhoblitt/puppet-ipmi)

#### Table of Contents

1. [Overview](#overview)
2. [Description](#description)
3. [Usage](#usage)
4. [Limitations](#limitations)
    * [Tested Platforms](#tested-platforms)
5. [Support](#support)

Overview
--------

Manages the OpenIPMI package

Description
-----------

Installs the [OpemIPMI](http://openipmi.sourceforge.net/) package and enables
the `ipmi` service.  This loads the kernel drivers needed for communicating
with the BMC from user space.

Usage
-----

### Basic

```puppet
    include ipmi
```

### Parameters

* `service_ensure`

String.  Possible values: 'running', 'stopped'

Controls the state of the `ipmi` service.

Default: 'running'

* `ipmievd_service_ensure`

String.  Possible values: 'running', 'stopped'

Controls the state of the `ipmievd` service.

Default: 'stopped'

```puppet
    class { 'ipmi':
      service_ensure         => 'running', # default is 'running'
      ipmievd_service_ensure => 'running', # default is 'stopped'
    }
```

Limitations
-----------

At present, only support for `$::osfamily == 'RedHat'` has been implimented.
Adding other Linux distrubtions should be trivial.

### Tested Platforms

* el5.x
* el6.x

Support
-------

Please log tickets and issues at
[github](https://github.com/jhoblitt/puppet-ipmi/issues)


text:
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased] - now

## [v0.2.1] - 2020-02-26

### Fixed

- a bug where shell config output broke git-ps from finding git
- a bug where git-ps pull was hiding rebase errors

## [v0.2.0] - 2020-02-22

### Added

- displaying of git push output when requesting review of a patch
- state cleanse process to git-ps pull command to maintain performance
- published state to the git-ps ls command

### Fixed

- bug where pub/rr after publishing but not pulling would fail incorrectly
- bug where requested review with changes state wasn't being displayed in git-ps ls
- bug where couldn't request review of top most patch in stack
- bug preventing cherry pick commits failure output from appearing

## [v0.1.0] - 2020-02-21

### Added

- `git-ps ls` to list the stack of patches
- `git-ps show <patch-index>`to show the patch diff and details
- `git-ps pull` to fetch the state of origin/master and rebase the stack of patches onto it
- `git-ps rebase` to interactive rebase the stack of patches
- `git-ps rr <patch-index>` to request review of the patch or update existing request to review
- `git-ps pub <patch-index>` to publish a patch into upstream's mainline (aka origin/master)
- `git-ps --version` to output the version of information for reference & bug reporting

[v0.1.0]: https://github.com/uptech/git-ps/compare/05fa129...0.1.0
[v0.2.0]: https://github.com/uptech/git-ps/compare/0.1.0...0.2.0
[v0.2.1]: https://github.com/uptech/git-ps/compare/0.2.0...0.2.1
[Unreleased]: https://github.com/uptech/git-ps/compare/0.2.1...HEAD

repository: ybakos/git-ps

repo_name: ybakos/git-ps


text:
# Change Log

## [Unreleased](https://github.com/maestrano/mno-enterprise/tree/master)

**Implemented enhancements:**
- Add SparkPost support for transactional emails. You can now choose either Mandrill or SparkPost.

**Deprecated:**
- `MnoEnteprise.config.mandrill_key` is replaced with `ENV['MANDRILL_API_KEY']`
- `MandrillClient` is replaced with `MnoEnterprise::MailClient`

## [v3.0.2](https://github.com/maestrano/mno-enterprise/tree/v3.0.2) (2016-05-12)

[Full Changelog](https://github.com/maestrano/mno-enterprise/compare/v3.0.1...v3.0.2)

**Fixed bugs:**

- fix caching issue [\#20](https://github.com/maestrano/mno-enterprise/pull/20) ([ouranos](https://github.com/ouranos))
- Fix assets precompile: add sprockets [\#16](https://github.com/maestrano/mno-enterprise/pull/16) ([ouranos](https://github.com/ouranos))
- Merge [v2.0.2](#v2.0.2)

## [v3.0.1](https://github.com/maestrano/mno-enterprise/tree/v3.0.1) (2016-04-22)
[Full Changelog](https://github.com/maestrano/mno-enterprise/compare/v3.0.0...v3.0.1)

**Implemented enhancements:**
- Enable widget list filtering [\#7](https://github.com/maestrano/mno-enterprise/pull/7) ([ouranos](https://github.com/ouranos))
- \[MNOE-60\] Admin platform: Users pagination, search and KPIs refactoring [\#6](https://github.com/maestrano/mno-enterprise/pull/6) ([alexnoox](https://github.com/alexnoox))
- \[MNOE-24\] Rails App Template [\#5](https://github.com/maestrano/mno-enterprise/pull/5) ([ouranos](https://github.com/ouranos))
- Improve frontend generation task

**Fixed bugs:**
- Fix issue with company renaming [\#9](https://github.com/maestrano/mno-enterprise/pull/9) ([x4d3](https://github.com/x4d3))
- \[MNOE-64\] Fix bug introduced in 552c0b7b [\#10](https://github.com/maestrano/mno-enterprise/pull/10) ([ouranos](https://github.com/ouranos))
- Merge [v2.0.1](#v2.0.1)

## [v3.0.0](https://github.com/maestrano/mno-enterprise/tree/v3.0.0) (2016-04-05)
[Full Changelog](https://github.com/maestrano/mno-enterprise/compare/v2.0.0...v3.0.0)
- New angular based frontend
- Remove old Rails based frontend
- Theme builder/previewer
- I18n implementation

## [v2.0.2](https://github.com/maestrano/mno-enterprise/tree/v2.0.2) (2016-05-12)
[Full Changelog](https://github.com/maestrano/mno-enterprise/compare/v2.0.1...v2.0.2)

**Implemented enhancements:**
- MYOB products naming [\#24](https://github.com/maestrano/mno-enterprise/pull/24) ([cesar-tonnoir](https://github.com/cesar-tonnoir))

**Fixed bugs:**
- Fix OrgInvite workflow with new frontends [\#28](https://github.com/maestrano/mno-enterprise/pull/28) ([ouranos](https://github.com/ouranos))
- Backport caching issue fix [\#26](https://github.com/maestrano/mno-enterprise/pull/26) ([ouranos](https://github.com/ouranos))

## [v2.0.1](https://github.com/maestrano/mno-enterprise/tree/v2.0.1) (2016-04-21)
[Full Changelog](https://github.com/maestrano/mno-enterprise/compare/v2.0.0...v2.0.1)

**Fixed bugs:**
- Added missing User#admin_role field
- expose financial\_year\_end\_month [\#13](https://github.com/maestrano/mno-enterprise/pull/13) ([cesar-tonnoir](https://github.com/cesar-tonnoir))

## [v2.0.0](https://github.com/maestrano/mno-enterprise/tree/v2.0.0) (2016-04-05)
- Split in multiple gems (api, core, frontend)
- Add admin frontend


text:
### average

:information_source: Already implemented via `statistics.mean`. `statistics.mean` takes an array as an argument whereas this function takes variadic arguments.

Returns the average of two or more numbers.

Takes the sum of all the `args` and divides it by `len(args)`. The second argument `0.0` in sum is to handle floating point division in `python3`.

```python
def average(*args):
    return sum(args, 0.0) / len(args)
```

``` python
average(*[1, 2, 3]) # 2.0
average(1, 2, 3) # 2.0
```


text:
# flutter_firebase_chat_sdk
[![GitHub license](https://img.shields.io/github/license/nishiths23/flutter-firebase-chat)](https://github.com/nishiths23/flutter-firebase-chat/blob/master/LICENSE)
![Pub Version](https://img.shields.io/pub/v/flutter_firebase_chat_sdk)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/nishiths23/flutter-firebase-chat/Dart%20CI)

A package that used the power of firebase to create a chat SDK.

Motivation behind this project was to create an all in one sdk that would make it easier for developers to create a chat app. Using this SDK developers can focus on the basic functionality of their app rather then worrying about setting up and developing a chat server.

The project is still in development phase but you are welcome to use it in your app and contribute to the project if you needed some more features or if you would like to improve something.

**Demo**

![](example/lib/demo/demo.gif)

## Getting Started

- Using **this** link setup Firebase in your app
- Setup Authentication, Cloud Firestore, Realtime Database and Storage on your Firebase project
- Add ```await FlutterFirebaseChatSDK.initializeApp()``` to your ```main()``` method

```dart
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await FlutterFirebaseChatSDK.initializeApp();
  runApp(MyApp());
}
```
- Wrap your app with ```FlutterFirebaseObservableApp``` widget so that the SDK could monitor the status of the app which is needed to update the online status of the user. So for example your main app widget could be:

```dart
class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: FlutterFirebaseObservableApp(
        child: FlutterFirebaseChatSDK.instance.isUserLoggedIn ? Home() : Login(),
      ),
    );
  }
}
```
- It is also a good idea from security purposes to perform some operations from the server and not give access to client for them. One of the example for this is the ```addFriend``` function which calls a firebase functions and invokes the firebase admin SDK to add a new friend and create a chat group with current user and the given friend id.

- Use **this** link to setup firebase CLI on your system and firebase functions in your project and then add code from `lib/firebase/firebase-functions.js` to the `index.js` file of your firebase functions project and run ```npm install uuidv4``` to install **uuidv4** dependency.

- The project also uses firebase collection group so add the following rules to your CloudFirestore rules

```
match /{path=**}/Channels/{channelId} {
    	allow read, write: if request.auth != null
    }
```

- It might be a good idea to add strict rules to your project including your Cloud Firestore, Realtime Database and Storage to prevent anykinds of attack on your Firebase project and causing you finantial loss.
**Realtime database rules**, **Cloud firestore rules**, **Storage rules** these links could be a good starting point to setting up security rules for protecting your project from any kind of attacks.

---
## Running the example project

> Once the above steps are followed run ```flutter pub get``` in the base folder and in example folder, then you can directly run the example project on a device or a simulator.
---

## Future plans
- End to end encryption
- Add members to group
- Display user online status

### Libraries used in example

```
  google_sign_in
  flutter_hooks
  toast
  dash_chat
  image_picker
  flutter_native_image
```

If you have any issues building or running example project please consider following installation instructions for these dependencies before creating opening an issue.

# Support Development
If you found this project helpful or you learned something from the source code and want to thank me, consider buying me a cup of ☕

[PayPal](https://paypal.me/NishithNirbhay)

[](https://www.buymeacoffee.com/nsingh)

## Found this project useful? ❤

If you found this project useful, then please consider giving it a ⭐ on Github and sharing it with your friends via social media.

## License ⚖

- [MIT](LICENSE)

## Issues and feedback 💭

If you have any suggestion for including a feature or if something doesn't work, feel free to open a Github [issue](https://github.com/nishiths23/flutter-firebase-chat/issues) for us to have a discussion on it.


text:
# Products

## Attributes

Parameter | Description
--------- | -----------
product_name | Name of product
created_at | The Date when product is created
keywords | Product keywords defined during category creation
detailed_description | Detailed Description about the product usually rendered as a paragraph
logistic_details | Contains logistic details of the product
logistic_details[delivery_charges] | Delivery charges for the product (part of logistic_details)
delivery_details | Delivery descriptions for the product (part of logistic_details)
packaging_details | Packaging descriptions for the product (part of logistic_details)
minimum_order_quantity | Minimum order that the seller or Bizongo can supply
minimum_order_units | Units for Minimum order
supply_ability_quantity | Maximum order that the seller or Bizongo can supply
supply_ability_units | Units for Maximum order
quoted_price | Product Quoted price for a specific unit
quoted_price_units | Unit for product quoted price
payment_details | Details about payment
cst_enabled | Check whether CST/VAT is enabled or not (part of payment_details)
cst_tax | CST/VAT tax value (part of payment_details)
excise_tax_enabled | Check whether excise is enabled or not (part of payment_details)
excise_tax | Excise tax value (part of payment_details)
specifications | Specifications for the product
brand_name | Brand Name for the product
text_fields_specifications | Specifications of the product represented as text-boxes
checkable_specifications | Specifications of the product represented as multiple check-fields
dropdown_specifications | Specifications of the product represented as dropdown-box
other_specifications | Specification added by the user or admin and is not predefined
sellable | Deciding factor for whether the product is bulk or sellable
category_id |  Category id for the product category

## Get Product

```http
HTTPS/1.1 200 OK
Content-Type: application/json
{
    "id": "5652",
    "slug": "disposable-plastic-container-round-black-500-ml-damati",
    "name": "Disposable Plastic Container Round Black 500 ml | Damati",
    "url": "http://localhost:3000/products/disposable-plastic-container-round-black-500-ml-damati",
    "last_ordered_on":<PHONE_NUMBER>,
    "primary_image": {
        "original": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13699/1.png",
        "thumb_36": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13699/thumb_36_1.png",
        "thumb_64": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13699/thumb_64_1.png",
        "thumb_128": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13699/thumb_128_1.png",
        "normal_128": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13699/normal_128_1.png"
    },
    "images": [
        {
            "original": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13699/1.png",
            "thumb_36": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13699/thumb_36_1.png",
            "thumb_64": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13699/thumb_64_1.png",
            "thumb_128": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13699/thumb_128_1.png",
            "normal_128": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13699/normal_128_1.png"
        },
        {
            "original": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13698/1.jpg",
            "thumb_36": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13698/thumb_36_1.jpg",
            "thumb_64": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13698/thumb_64_1.jpg",
            "thumb_128": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13698/thumb_128_1.jpg",
            "normal_128": "https://bizongo-production.s3.amazonaws.com/uploads/picture/image/13698/normal_128_1.jpg"
        }
    ],
    "discount": "20",
    "sellable": true,
    "created_at":<PHONE_NUMBER>,
    "status": "APPROVED",
    "remarks": "",
    "minimum_order_quantity": "500",
    "minimum_order_units": "Pieces",
    "supply_ability_quantity": "no limit",
    "supply_ability_units": "No unit",
    "payment_terms": "NEFT/RTGS",
    "company_name": "Justice League",
    "quoted_price": "On request",
    "quoted_price_units": "No unit",
    "product_specifications": {
        "brand_name": "Damati",
        "tags": "Plastic Containers",
        "category_specifications": [
            [
                "Usage",
                "Used for packing food"
            ],
            [
                "Color",
                "Black"
            ],
            [
                "Model No.",
                "DP-CC-16 oz "
            ],
            [
                "Volume",
                "500ml"
            ],
            [
                "Material",
                "PP"
            ]
        ],
        "other_specifications": [
            [
                "Shape ",
                "Round"
            ]
        ],
        "search_tags": "Food Container, Damati Container"
    },
    "specifications": {
        "brand_name": "Damati",
        "tags": "Plastic Containers",
        "text_fields_specifications": {
          "Usage": {
            "optional": false,
            "value": "10"
          }
        },
        "checkable_specifications": {
          "Color": {
            "options": "Blue, Bronze, Brown, Black",
            "values": "Black",
            "optional": true
          },
          "Material": {
            "options": "Wood, Steel, Stainless Steel, Paper",
            "optional": true
          }
        }
        "other_specifications": {
          "Lid": "Completely Closed"
        }
        "category_specifications": [
            [
                "Usage",
                "Used for packing food"
            ],
            [
                "Color",
                "Black"
            ],
            [
                "Model No.",
                "DP-CC-16 oz "
            ],
            [
                "Volume",
                "500ml"
            ],
            [
                "Material",
                "PP"
            ]
        ],
        "other_specifications": [
            [
                "Shape ",
                "Round"
            ]
        ],
        "search_tags": "Food Container, Damati Container"
    },
    "logistic_details": {
        "delivery_details": "Goods will be dispatched in 3-4 days",
        "packaging_details": "500 Pieces Per Carton",
        "distribution_centers": []
    },
    "detailed_description": "<p class=\"line\" id=\"line-1\">Our motto at <b>Damati</b> is to produce optimal quality through ethical business practices and sound values. With a highly skilled team on board and using only the latest in technology, we constantly strive to achieve excellence.</p><p class=\"line\" id=\"line-15\">We believe that the consumer is king and lay emphasis on catering to every need our clients have – a strategic shift from the product centric approach the company initially employed. Keeping that in mind, our new range of <i>Disposable Plastic, Paper and Multipurpose Packaging</i> products are designed to deliver superlative results to our distributors and consumers.</p>",
    "supplier": {
        "name": "Justice League",
        "business_type": "Manufacturer",
        "verified": true,
        "location": "Gotham City, Daman & Diu, US",
        "address": "Wayne Enterprises Tower",
        "pincode": "160022",
        "avatar": {
            "original": "https://bizongo-production.s3.amazonaws.com/uploads/company/avatar/1547/Justice_League_Logo.png",
            "thumb_250": "https://bizongo-production.s3.amazonaws.com/uploads/company/avatar/1547/profile_250_Justice_League_Logo.png"
        }
    },
    "added_by": {
        "id": "189",
        "name": "Raman ",
        "email"<EMAIL_ADDRESS>    },
    "sample": {
        "id": 8048,
        "selling_price": 1,
        "tax": 5,
        "selling_price_with_tax": 1,
        "selling_price_per_unit": 1,
        "active": true,
        "sample": true,
        "actual_price_with_tax": 0,
        "seller_price_with_tax": 0,
        "actual_price": 0,
        "seller_price": 0,
        "actual_price_per_unit": 0,
        "seller_price_per_unit": 0,
        "per_unit": true,
        "stock": 999,
        "payable_to_seller": 0,
        "minimum_quantity": 1,
        "maximum_quantity": 100,
        "sku": [
            {
                "id": 14103,
                "name": "Volume",
                "value": "500",
                "unit": "ml"
            },
            {
                "id": 14104,
                "name": "Pack",
                "value": "1",
                "unit": "Piece"
            }
        ],
        "unit": "Piece"
    },
    "child_products": [
        {
            "id": 5762,
            "selling_price": 2500,
            "tax": 5,
            "selling_price_with_tax": 2625,
            "selling_price_per_unit": 5,
            "active": true,
            "sample": false,
            "actual_price_with_tax": 3281,
            "seller_price_with_tax": 2625,
            "actual_price": 3125,
            "seller_price": 2500,
            "actual_price_per_unit": 6.25,
            "seller_price_per_unit": 5,
            "per_unit": true,
            "stock": 90,
            "payable_to_seller": 2415,
            "minimum_quantity": 1,
            "maximum_quantity": 100,
            "sku": [
                {
                    "id": 10162,
                    "name": "Volume",
                    "value": "500",
                    "unit": "ml"
                },
                {
                    "id": 10161,
                    "name": "Pack",
                    "value": "500",
                    "unit": "Pieces"
                }
            ],
            "unit": "Piece"
        },
        {
            "id": 7597,
            "selling_price": 7200,
            "tax": 5,
            "selling_price_with_tax": 7560,
            "selling_price_per_unit": 4.8,
            "active": true,
            "sample": false,
            "actual_price_with_tax": 9450,
            "seller_price_with_tax": 7560,
            "actual_price": 9000,
            "seller_price": 7200,
            "actual_price_per_unit": 6,
            "seller_price_per_unit": 4.8,
            "per_unit": true,
            "stock": 1000,
            "payable_to_seller": 7245,
            "minimum_quantity": 1,
            "maximum_quantity": 1000,
            "sku": [
                {
                    "id": 13190,
                    "name": "Volume",
                    "value": "500",
                    "unit": "ml"
                },
                {
                    "id": 13191,
                    "name": "Pack",
                    "value": "1500",
                    "unit": "Pieces"
                }
            ],
            "unit": "Piece"
        },
        {
            "id": 7989,
            "selling_price": 1250,
            "tax": 5,
            "selling_price_with_tax": 1313,
            "selling_price_per_unit": 5,
            "active": true,
            "sample": false,
            "actual_price_with_tax": 1641,
            "seller_price_with_tax": 1313,
            "actual_price": 1562.5,
            "seller_price": 1250,
            "actual_price_per_unit": 6.25,
            "seller_price_per_unit": 5,
            "per_unit": true,
            "stock": 89,
            "payable_to_seller": 1208,
            "minimum_quantity": 1,
            "maximum_quantity": 100,
            "sku": [
                {
                    "id": 13996,
                    "name": "Volume",
                    "value": "500",
                    "unit": "ml"
                },
                {
                    "id": 13997,
                    "name": "Pack",
                    "value": "250",
                    "unit": "Pieces"
                }
            ],
            "unit": "Piece"
        },
        {
            "id": 8048,
            "selling_price": 1,
            "tax": 5,
            "selling_price_with_tax": 1,
            "selling_price_per_unit": 1,
            "active": true,
            "sample": true,
            "actual_price_with_tax": 0,
            "seller_price_with_tax": 0,
            "actual_price": 0,
            "seller_price": 0,
            "actual_price_per_unit": 0,
            "seller_price_per_unit": 0,
            "per_unit": true,
            "stock": 999,
            "payable_to_seller": 0,
            "minimum_quantity": 1,
            "maximum_quantity": 100,
            "sku": [
                {
                    "id": 14103,
                    "name": "Volume",
                    "value": "500",
                    "unit": "ml"
                },
                {
                    "id": 14104,
                    "name": "Pack",
                    "value": "1",
                    "unit": "Piece"
                }
            ],
            "unit": "Piece"
        }
    ]
}
```

## Find Product

> To get predefined specifications for a product use this code:

```http
GET /api/products/new?category_id=$['Product_Category_id']&product_name=$['Your_Product_name'] HTTP/1.1
Host: bizongo.in
Content-Type: application/json
Authorization: Token token="USER AUTH TOKEN"
```
> Variables `Product_Category_id` and `Your_Product_name` contains values for category id and name of the product. `User Auth Token` is the auth token value returned to user on sign in. This is success response returned for a sample product searched in `Crates` category with auto-populated values.

```http
HTTP/1.1 200 OK
Content-Type: application/json
{
  "keyword": {
    "values": "Multi Purpose Crates, Fruit & Vegetable Crates",
    "options": "Multi Purpose Crates, Dairy Crates, Fruit & Vegetable Crates, Dairy Crates"
  },
  "specifications": {
    "text_fields_specifications": {
      "Capacity": {
        "optional": false,
        "value": "10"
      }
    },
    "checkable_specifications": {
      "Color": {
        "options": "Blue, Bronze, Brown",
        "values": "Blue, Brown",
        "optional": true
      },
      "Material": {
        "options": "Wood, Steel, Stainless Steel, Paper",
        "optional": true
      }
    },
    "dropdown_specifications": {
      "Original": {
        "options": "yes, no",
        "value": "yes",
        "optional": true
      }
    }
  }
}
```

Bizongo uses the auth-token to allow access to the new product API and sends back an response which tells us about the specification for the product to be added. This api also returns auto-populated values of product if product is present in search. These specifications have already been defined by the admin they are either optional or required based on `optional` parameter.

Bizongo expects the header `Authorization` to be present in the following 'format'

`Authorization: Token token=User Auth Token`

## Create a Product

> To create a product refer this sample code:

```http
POST  /api/products HTTP/1.1
Host: bizongo.in
Authorization: Token token="USER AUTH TOKEN"
Content-Type: application/json
{
  "product": {
    "name": "300X400 Crates"
    "created_at": "1/02/2016",
    "keyword": "Multi Purpose Crates, Fruit & Vegetable Crates",
    "specifications": {
      "text_fields_specifications": {
        "Capacity": "10"
      },
      "checkable_specifications": {
        "Color": "Blue, Bronze"
      },
      "dropdown_specifications": {
        "Material": "Wood"
      },
      "other_specifications": {
        "Lid": "Completely Closed"
      }
    },
    "brand_name": "Aristo",
    "minimum_order_quantity": "100",
    "minimum_order_units": "Pieces",
    "supply_ability_quantity": "10000",
    "supply_ability_units": "Pieces",
    "quoted_price": "1000",
    "quoted_price_units": "Piece",
    "logistic_details": {
      "delivery_details": "Delivered all over India",
      "packaging_details": "Packaged in single day"
    },
    "sellable": false,
    "payment_details": {
      "cst_enabled": true,
      "cst_tax": "5",
      "excise_enabled": true,
      "excise_tax": "10"
    },
    "detailed_description" : "Extremely sensitive",
    "product_images" : ["1", "2", "3"]
  },
  "category_id": "2",
}
```

> `USER AUTH TOKEN` is the auth token value returned to user on sign in. This is a success response on creation of the product.

```http
HTTP/1.1 201 CREATED
Content-Type: application/json
{
  "product_id" : "47"
}
```
Bizongo uses the auth-token to allow access to the create product API. This api requests product details and on successfully creating the product returns product_id.

Bizongo expects the header `Authorization` to be present in the following 'format'

`Authorization: Token token=User Auth Token`

## Update a Product

```http
PUT /api/products/$['product_id'] HTTP/1.1
Host: bizongo.in
Authorization: Token token="USER AUTH TOKEN"
Content-Type: application/json
{
  "name": "300X400 Crates"
  "created_at": "1/02/2016",
  "keyword": "Multi Purpose Crates, Dairy Crates",
  "specifications": {
    "text_fields_specifications": {
      "Capacity": "30"
    },
    "checkable_specifications": {
      "Color": "Blue, Yellow"
    },
    "dropdown_specifications": {
      "Material": "Plastic"
    },
    "other_specifications": {
      "Lid": "Completely Closed"
    }
  },
  "brand_name": "Aristo",
  "minimum_order_quantity": "100",
  "minimum_order_units": "Pieces",
  "supply_ability_quantity": "10000",
  "supply_ability_units": "Pieces",
  "quoted_price": "1000",
  "quoted_price_units": "Piece",
  "logistic_details": {
    "delivery_details": "Delivered all over India",
    "packaging_details": "Packaged in single day"
  },
  "sellable": false,
  "payment_details": {
    "cst_enabled": true,
    "cst_tax": "5",
    "excise_enabled": "true",
    "excise_tax": "10"
  },
  "detailed_description" : "Extremely sensitive",
  "product_images" : ["1", "2", "3"]
}
```

```http
HTTP/1.1 200 OK
Host: bizongo.in
Authorization: Token token="USER AUTH TOKEN"
```

repository: Bizongo/slate

repo_name: Bizongo/slate


text:
# LocationBasedReminder_ANDROID

# By using this code, you agree to appropriate licences

# Code for illustration purposes only.

# Team: Nishant Shah (@shahnish009) && Vidhi Kamdar (@vdkamdar)

An Android Application to set reminders and notify users based on the location of reminder. User gets notification when in proximity of the reminder location.
The main feature of this application is, user can choose to Snooze if he wants to perform the task later or choose Complete if the task is completed based on simple Touch Gestures.

- For Gesture Recognition, probabilistic model based on Naive Bayes Classifiers is used.
- For location, Google Maps API is used and Geofence Service Class provides the Geofence around the location of reminder to know if user entered the proximity of that location.
- Users can use Custom gestures which are stored in Database using JavaScript Object Notation (JSON)

Sensors and Services: GPS, Capacitive touch screen sensor, Geofence, Google Maps API
Tools: Android Studio
Languages: JAVA, XML


text:
# @vue/compiler-sfc

> Lower level utilities for compiling Vue single file components

This package contains lower level utilities that you can use if you are writing a plugin / transform for a bundler or module system that compiles Vue single file components into JavaScript. It is used in [vue-loader](https://github.com/vuejs/vue-loader).

The API surface is intentionally minimal - the goal is to reuse as much as possible while being as flexible as possible.

## Why isn't `@vue/compiler-dom` a peerDependency?

Since this package is more often used as a low-level utility, it is usually a transitive dependency in an actual Vue project. It is therefore the responsibility of the higher-level package (e.g. `vue-loader`) to inject `@vue/compiler-dom` via options when calling the `compileTemplate` methods.

Not listing it as a peer dependency also allows tooling authors to use a custom template compiler (built on top of `@vue/compiler-core`) instead of `@vue/compiler-dom`, without having to include it just to fulfill the peer dep requirement.

## API

TODO

gha_language: TypeScript


text:
#  grunt-task-symlink v0.1.1

> Create symbolic links files and directory using node fs.

## Getting Started
This plugin requires Grunt `~0.4.1`

If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

```shell
npm install grunt-task-symlink --save-dev
```

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

```js
grunt.loadNpmTasks('grunt-task-symlink');
```

## Why??
_I build this grunt task cause i need some simple grunt task that can generate symlink_

## How to use?
  - Run the grunt task
  - set Object in the links array
  - when linking directory set type: `dir`
  - when linking files set type: `file`
  - src is your directory/file
  - dst is your symlink directory/file
  - IMPORTANT:: symlink will always will overwrite your symlink!

## Symlink task
_Run this task with the `grunt symlink` command._

### Usage Examples

```js
symlink: {
    symlink_options: {
      links: [
        {
          src: 'test/src_dir/app',
          dst: 'test/src_dir/node_modules/app',
          type: 'dir'
        },
        {
          src: 'test/src_dir/app/index.js',
          dst: 'test/src_dir/node_modules/app.js',
          type: 'file'}
      ]
    }
  },
```

## Release History

 * 2014-03-17   v0.1.1   Working release.
 * 2014-03-17   v0.1.0   Unofficial release.

---

Task submitted by ["doron2402" Doron Segal](http://segaldoron.com/)


text:
# Weather

  Weather

      Following Fullstack React Native book

## Differences from the book

It's a simple app from the first chapter of the book

- Uses **React Hooks** in SearchInput function component
- Minor style and assets improvements

## Preview

## [Try it on Expo](https://exp.host/@jkhusanov/Weather)

## Getting started

```
git clone https://github.com/jkhusanov/weather.git

cd weather

yarn install

expo start

i
```

## Feedback

In case you have any feedback or questions, feel free to open a new issue on this repo or reach out to me [**@jkhusanov**](https://github.com/jkhusanov) on Github.

repository: jkhusanov/weather

repo_name: jkhusanov/weather


text:
# deutsche-bahn-time-display

A small Python script to display and refresh periodically the time of your next train(s) in a terminal.

Since it is fetching data from the Deutsche Bahn, you may use this script for display next connection times on any line in whole germany. It takes into account delays, train cancelations, and probably missed connections on the way.

When a delay information is available, the number of minutes `Y` is added to the displayed time `Z` as `Z+Y`. If other troubles are detected (train canceled, connection will be probably missed), the character `X` is displayed besides the number of minutes `Z` as `ZX`. In that case, we recommend you to check manually on Deutsche Bahn or on your local transportation website for more information.

## Example

I use this micro app to display on the screen of my raspberry pi the time for the next trains leading the places in am interested to. For example, when it is 13:41, it would display something like this, for my places of interest `P1`, `P2` and `P3`:

```
=========================
=P1===> 01, next in 09,11
 13:42 | 13:50 | 13:52

=P2===> 29, next in 59,74
 14:10 | 14:40 | 14:55

=P3===> 08, next in 28,48
 13:50 | 14:10 | 14:30
...................
```

You can have more or less lines depending on your needs. Note that the lower bar is a progress bar. When it gets full, the time table gets updated. It happens every 30 seconds. But you can change that (`refresh` parameter).

For example, I like to know when are the next trains heading to the main station (Hauptbahnhof), but also to IBM, where I currently work, and ROTO, where my girlfriend works. This is what it looks like in the terminal (accelerated):

![alt tag](https://github.com/edouardfouche/deutsche-bahn-time-display/blob/master/example.gif)

I use the script to display the time of the next trains 24/7 on a raspberry pi: <a href="https://www.youtube.com/watch?v=Ocr8C1BaPi8" title="Title"> Ok Rpi, show me the next trains </a>

## About

The script uses [schiene](https://github.com/kennell/schiene), a very cool Python library for interacting with Bahn.de (as an unofficial API client). You may need to install it beforehand:

```
pip install schiene
```

## Update Version 2 - 04/11/16

Major refactor.

The dispays shows now more information for each trip:
- shows the 5 next connections
- Product type (S/RE/IRE/IC/ICE...)
- Departure time
- Duration of the trip
- Status (ontime (+0), late (+Something), canceled (X))

The printing method alternates between each of the trips every 5 units.

Possibility to fetch only direct connection or not (attribute only_direct of add_trip)

Typically, this looks like this now (with one trip):

```
1/1======================
=HOME=> 23,36,82,143,165
IC  | 11:06 | 0:57 +0
RE  | 11:19 | 1:20 +0
IC  | 12:05 | 0:44 +0
IC  | 13:06 | 0:53
ICE | 13:28 | 0:36
.......
```


text:
# ZephyrLogger

ZephyrLogger connects to the Zypher HxM heart rate monitor and logs the data from the device directly to a text file. This allows for in depth analysis of the heart rate data.

The data formats are available on the Zephyr website in the [api guide](https://www.zephyranywhere.com/media/download/hxm1-api-p-bluetooth-hxm-api-guide-20100722-v01.pdf).

## Downloading

You can install ZephyrLogger through the F-Droid open source app store, or you can download the APK directly [here](https://github.com/ianmcxa/ZephyrLogger/releases/download/v0.1/ZephyrLogger-0.1.apk).

[<img src="https://f-droid.org/badge/get-it-on.png"
      alt="Get it on F-Droid"
      height="80">](https://f-droid.org/app/org.mcxa.zephyrlogger)

## Screenshot

![](./app-screenshot.jpg)

### Notes

This version of the app has been updated for newer versions of android. The UI has been reworked to be more readable and easier to use.

### Thanks to
[Pye Brook Company, Inc.](http://www.pyebrook.com<EMAIL_ADDRESS>who developed the code on which this project is based.

## License
Licensed under the [Apache License, Version 2.0] (http://www.apache.org/licenses/LICENSE-2.0.html)

## Authors
* Created by Christian Orthmann
* Ian Mcxa


text:
# Quote of the Day

This is an inspired version of the GA Unit 1 assignments, and is built by consolidating the dynamic quotes together and displaying a random quote as the quote of the day. Hope you enjoy it.

## Technologies used

HTML5, CSS3 and Javascript

## Link to the site

[Quote of the day](https://sampreet-chawla.github.io/daily-quotes/)

repository: sampreet-chawla/daily-quotes

repo_name: sampreet-chawla/daily-quotes


text:
---
layout: default
---

# 1995-09-25 - Important consequence of existence of compromised Netscape certificates

## Header Data

From: Simon Spero<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: 11db289f0ac8f843165f39255f231c669bff3c15d2ca8e593df5dcf5be31869d

Message ID: \<Pine.SOL.3.91.950924182101.12733D-100000@chivalry\>

Reply To<EMAIL_ADDRESS>UTC Datetime: 1995-09-25 01:25:28 UTC

Raw Date: Sun, 24 Sep 95 18:25:28 PDT

## Raw message

```
{% raw  %}From: Simon Spero<EMAIL_ADDRESS>Date: Sun, 24 Sep 95 18:25:28 PDT
To<EMAIL_ADDRESS>Subject: Important consequence of existence of compromised Netscape certificates
In-Reply-To<EMAIL_ADDRESS>Message-ID: <Pine.SOL.3.91.950924182101.12733D-100000@chivalry>
MIME-Version: 1.0
Content-Type: text/plain

There's one very important side-effect of the existence of a large number
of compromised certificates accepted by navigator: the upgraded clients
must either do CRL processing, or the roots used to sign all possibly
compromised keys *must*  be rejected by the fixed navigator.

Simon

{% endraw %}
```

## Thread

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

+ Return to "["Perry E. Metzger" <perry@piermont.com>](/authors/perry_e_metzger_perry_at_piermont_com_)"
+ Return to<EMAIL_ADDRESS>(Lucky Green)](/authors/shamrock_at_netcom_com_lucky_green_)"
+ Return to "[Simon Spero <ses@tipper.oit.unc.edu>](/authors/simon_spero_ses_at_tipper_oit_unc_edu_)"

+ 1995-09-23 (Sat, 23 Sep 95 13:05:49 PDT) - [Re: "Going after Netscape"](/archive/1995/09/4f77f98ccb10725d5f90f7641cb3b29e0942772e73a9909906d1c877c9d7a2a1) -<EMAIL_ADDRESS>(Lucky Green)_
  + 1995-09-24 (Sun, 24 Sep 95 14:21:26 PDT) - [Re: "Going after Netscape"](/archive/1995/09/f034efa26d1753c47b593711ca909fc9080eaece78c3a5bb5bbd82b3252857f3) - _"Perry E. Metzger"<EMAIL_ADDRESS>    + 1995-09-25 (Sun, 24 Sep 95 18:25:28 PDT) - Important consequence of existence of compromised Netscape certificates - _Simon Spero<EMAIL_ADDRESS>


text:
# Ultimate Menu
[![MIT license](http://img.shields.io/badge/license-MIT-009999.svg)](http://opensource.org/licenses/MIT)
[![GitHub issues](https://img.shields.io/github/issues/live627/smf-ultimate-menu.svg)](https://github.com/live627/smf-ultimate-menu/issues)
[![Latest Version](https://img.shields.io/github/release/live627/smf-ultimate-menu.svg)](https://github.com/live627/smf-ultimate-menu/releases)
[![Total Downloads](https://img.shields.io/github/downloads/live627/smf-ultimate-menu/total.svg)](https://github.com/live627/elk-um/releases)
[![Support](http://img.shields.io/badge/PayPal-$-009966.svg)](https://www.paypal.me/JohnRayes)

Package name | SMF version | Minimmum PHP version
--- | --- | ---
[Ultimate Menu 2.0.2](https://github.com/live627/smf-ultimate-menu/releases/download/v2.0.2/ultimate-menu_2-0-2.tgz) | SMF 2.1.x | PHP 7.4
[Ultimate Menu 1.1.4](https://github.com/live627/smf-ultimate-menu/releases/download/v1.1.4/ultimate-menu_1-1-4.tgz) | SMF 2.0.x | PHP 5.3

[View changelog](https://github.com/live627/smf-ultimate-menu/blob/master/CHANGELOG.md)

Add custom buttons to the main menu within SMF
## Introduction:
This is a tool for configuring the main menu within SMF, allowing custom buttons to be added at will, complete with children and grandchildren menus (so, a main menu item, a dropdown and a follow-on dropdown)

- Setup this mod at Administration Center » Configuration » Ultimate Menu.
- Should "just work" with all other mods that add their own buttons, such as portals.
- Dynamic by design—any menu button can change its text without a problem—no special code required.
   - Does not remove the unread PM counter from the "PM" menu item.
## Compatibility notes
*   Incompatible with [Menu Editor Lite / Pro](http://custom.simplemachines.org/mods/index.php?mod=3310).
*   Plays very nicely with [Add or Remove buttons](http://custom.simplemachines.org/mods/index.php?mod=2650).

gha_language: PHP


text:
# Control flow

Note the older format of `test CONDITION` is replaced by `[ CONDITION ]` and in some shell flavors extra functionality with using `[[ CONDITION ]]`.

## Ignore

```sh
CMD || true
```

Optionally hide output.

```sh
CMD > /dev/null || true
```

Or just

```sh
set -e

# ...

set +e
CMD
set -e
```

## Check file

If a file exists:

```sh
if [[ -f .env ]]; then
  cat .env
fi
```

If it does not exist:

```sh
if [[ ! -f .env ]]; then
  echo 'File is missing: .env'
fi
```

See [Bash cheatsheet](https://devhints.io/bash) for more info.

## Variable not set

Abort the script if a check evaluates to false. Here we see if a variable is set.

```sh
$ [[ -z "$MY_VAR" ]] && (echo 'MY_VAR must be set' ; exit 1)
```

Note the brackets are needed, otherwise on a `true` evaluation of the first condition, the exit will still run.

Using `exit` is good for a script and not for direct terminal use otherwise you will close the terminal tab.

Or in multiple lines.

```sh
if [[ -z "$MY_VAR" ]]; do
  echo 'MY_VAR must be set'
  exit 1
fi
```

## One-liner status check

Check if the status of the **previous** command was a pass or fail. This can help if the command is long and you don't want to fit it on one line.

### Skip error

This will keep going and not abort the script.

```sh
$ [[ $? -eq 0 ]] && echo 'Passed!' || echo 'Failed!'
```

Example use:

- Use the `true` commands to give a zero (pass) exit status.
  ```sh
  $ true
  $ [[ $? -eq 0 ]] && echo 'Passed!' || echo 'Failed!'
  Passed!
  ```
- Use the `false` commands to give a non-zero (fail) exit status.
    ```sh
    $ false
    $ [[ $? -eq 0 ]] && echo 'Passed!' || echo 'Failed!'
    Failed!
    ```

### Exit on error

Note brackets are needed.

```sh
$ false
$ [[ $? -eq 0 ]] && echo 'Passed!' || (echo 'Failed!'; exit 1)
```

## If statement

This is a multi-line `if` statement, which is useful for more complex statements or if readability is important.

```sh
false

if [[ $? -eq 0 ]]; then
  echo 'Passed!'
else
  echo 'Failed!'
  exit 1
fi
```

Show message on failure only:

```sh
false

if [[ $? -ne 0 ]]; then
  echo 'Failed!';
  exit 1
fi
```

## Check if root

```sh
if [ $UID -ne 0 ]; then
  echo 'I am not root'
fi
```

gha_language: Makefile


text:
# Singularity of Origin

This framework has been developed by the NCC Group and available here : [https://github.com/nccgroup/singularity](https://github.com/nccgroup/singularity).

We use it as a server to power our DNS Rebinding attack. We updated the `html` folder with our fake front-end (`hangman`) compiled, and improve the configuration and source code for our use case.

repository: fuegoio/cs-security-project

repo_name: fuegoio/cs-security-project


text:
# Open 4GL WebServices
### If you are looking for the tidbits README take a look at the [README.TXT](https://github.com/edgarmedrano/Open4GLWebServices/blob/master/README.TXT)  file.

The Open 4GL Webservices Project offers an opensource SOAP implementation to OpenEdge (PROGRESS) developers.
This is an alternative to the commercial version distributed by PROGRESS, but this version doesn't require Sonic MQ
or an AppServer to run properly.

O4GLWS provides a wizard application and a framework to make it easy to publish OpenEdge procedures as webservices
generating the WSDL and webservice proxy code, without requiring the developer to learn XML or the framework itself.

With the wizard application, developers are able to select an existing OpenEdge procedure and produce the WSDL file
and/or a proxy procedure that handle the SOAP call and translate between SOAP and PROGRESS datatypes.
It also can handle the WS-I security recommendation requiring a custom procedure to authenticate the user/password.

Also, the generated proxy procedure is based on procedure templates (skeletons), these templates allow the developer
to choose how to deploy the webservice. The developer can choose between webspeed, a batch version to call it from a CGI,
a socket based version, or a custom template, etc.

For further information about this project, take a look at http://o4glws.sourceforge.net/


text:
# My Reading Lists of Machine Learning, Natural Language Processing and etc.

> Keeping update and appending new items...

## Table of Contents
1. Natural Language Processing
    1. [Char/Word Embeddings](/readme/nlp/emb.md)
    2. [Language Modeling](/readme/nlp/language_modeling.md)
    3. [Machine Translation, Language Style Transfer](/readme/nlp/machine_translation.md)
    4. [Machine Comprehension and Question Answering](/readme/nlp/machine_comprehension.md)
    5. [Dialogue, Chatbot and NLG Systems](/readme/nlp/dialogue.md)
    6. [Sequence Labeling (POS, NER, SRL, RE, DP, EL and etc.)](/readme/nlp/sequence_labeling.md)
    7. [Knowledge Base Completion and Representation](/readme/nlp/kb_completion.md)
    8. [Sentiment Analysis and Text Classification](/readme/nlp/classification.md)
    9. [Sentence Representation and Natural Language Inference](/readme/nlp/sent_emb_nli.md)
    10. [Text Summarization and Generation](/readme/nlp/summ_gene.md)
    11. [Interpretability, Disambiguation, Anaphora and Discourse](/readme/nlp/interpretability.md)
    12. [Other NLP Research Works](/readme/nlp/others.md)
2. [Computer Vision (Classification, Detection, Recognition and etc.)](/readme/cv.md)
3. [Graph and Social Network Representation](/readme/graphs.md)
4. [Visual Grounding and Multi-Modal Learning](/readme/grounding.md)
5. [Capsule Network and Its Applications](/readme/capsule.md)
6. [Offense and Defense](/readme/offense_defense.md)
7. [Zero/Few Shot Learning, Meta Learning, Domain Adaptation and Generalization](/readme/meta.md)
8. [Knowledge Distillation and Data Imputation](/readme/distill_imputation.md)
9. [Label Noise and Anomaly Detection](/readme/label_noise_anomaly.md)
10. [Adversarial Training and Generative Adversarial Network](/readme/GANs.md)
11. [Network Structures (NTM, Autoencoder, Memory Nets, Highway Nets and etc.)](/readme/network_structure.md)
12. [Other Research Works](/readme/others.md)
13. [Reinforcement Learning and Robotic Systems](/readme/rl_and_robotics.md)
14. [Medical Field Research Works](/readme/medical.md)
15. [Probabilistic Programming Languages](/readme/ppl.md)
16. [Mathematics, Machine Learning, Deep Learning, Reinforcement Learning and Coding Resources](/readme/resources.md)

repository: Hugh-Shi/DL-NLP-Readings

repo_name: Hugh-Shi/DL-NLP-Readings


text:
# jQuery Accessible Tabs [![Build Status](https://travis-ci.org/nomensa/jquery.accessible-tabs.svg)](https://travis-ci.org/nomensa/jquery.accessible-tabs.svg?branch=master)

> Creates accessible tabs - a single content area with multiple panels.

## Usage

To get started you can either:

 - Clone the repo: `git clone https://github.com/nomensa/jquery.accessible-tabs.git`
 - Or install with Bower: `bower install jquery.accessible-tabs`

Then it's just a case of including the following scripts on your page, best at the bottom:

```html
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  <script src="jquery.accTabs.min.js"></script>
```

## Options & Defaults

### defaultTab

Type: `integer`

Default: 0

Description: Specify which tab to open by default using 0-based position

### callbackCreate

Type: `function`

Description: Callback when the plugin is created

### callbackDestroy

Type: `function`

Description: Callback when the plugin is destroyed

### containerClass

Type: `string`

Default: 'js-tabs'

Description: A class applied to the target element

### controlActiveClass

Type: `string`

Default: 'js-tabs_control-item--active'

Description: A class applied to the active tab control

### controlsText

Type: `string`

Default: 'Use the tab and enter or arrow keys to move between tabs'

Description: An explanation of how the tabs operate, which is prepended to the tabs content

### controlsTextClass

Type: `string`

Default: 'js-tabs_control-text'

Description: Class to apply to the controls text element

### tabControlsClass

Type: `string`

Default: 'js-tabs_control'

Description: Class to apply the controls list

### tabControlId

Type: `string`

Default: 'js-tabs_control-item--'

Description: Ids for tab controls should start with the following string

### tabPanelClass

Type: `string`

Default: 'js-tabs_panel'

Description: Class to be applied to the tab panel

### tabPanelId

Type: `string`

Default: 'js-tabs_panel--'

Description: Ids for tab panels should start with the following string

### panelActiveClass

Type: `string`

Default: 'js-tabs_panel--active'

Description: Class to be applied to the active tab panel

### callbackTabActivated

Type: `function`

Description: Callback when a tab is clicked

Arguments: `[event]`. The triggering event is passed to the callback.

## Development

This plugin requires:

 - [node.js](http://nodejs.org/) `~0.10.x`
 - [Grunt](http://gruntjs.com/) `~0.4.0`
 - [jQuery](http://jquery.com) `~v1.9.x`

### Node
First time setup of this plugin will require the node packages to be installed. On Windows use the command prompt with Ruby or on a Mac use terminal, install the global node.js packages:

```bash
$npm install
```

### Grunt
If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to install and use Grunt.

You will need to install the Grunt CLI (command line interface):

```bash
$ npm install -g grunt-cli
# => if you have used grunt before you probably have this (this can be run from any directory)
```

Next install the plugin's node packages:

```bash
$ npm install
```

### Watcher

Running grunt (with watcher) will watch for any changes and recompile - best used during development:

```bash
$ grunt
```

#### Connect server (optional)

You can run a connect web server on `http://<IP_ADDRESS>:9001`, if required, when running grunt:

```bash
$ grunt --connect
# => Running "connect:server" (connect) task
# => Started connect web server on http://<IP_ADDRESS>:9001

# => Running "watch" task
# => Waiting...
```

Copyright © 2014 [@nomensa](http://nomensa.com)

Licensed under [MIT](http://opensource.org/licenses/mit-license.php)


text:
# Release Notes for Guest Entries

## 2.2.3 - 2019-02-24

### Fixed
- Fixed a bug where guest entries weren’t getting their author set properly. ([#43](https://github.com/craftcms/guest-entries/issues/43))

## <IP_ADDRESS> - 2019-02-06

### Fixed
- Fixed a bug where the plugin settings weren’t saving. ([#45](https://github.com/craftcms/guest-entries/issues/45))

## 2.2.2 - 2019-02-04

### Changed
- The Section Settings table now has a UID column instead of ID.

## 2.2.1 - 2019-01-31

### Fixed
- Fixed an error that could occur when updating to Guest Entries 2.2. ([#42](https://github.com/craftcms/guest-entries/issues/42))

## 2.2.0 - 2019-01-29

### Changed
- Guest Entries now requires Craft 3.1.0-alpha.1 or later.
- You can now specify the target section by its UID or handle in addition to using ID.

### Fixed
- Fixed a bug where it wasn’t possible to turn off guest submissions for a section once it had been activated.

## 2.1.3 - 2017-12-04

### Changed
- Loosened the Craft CMS version requirement to allow any 3.x version.

## 2.1.2 - 2017-11-10

### Changed
- The `live` validation scenario is now only set if guest entry validation is enabled for the section.

### Fixed
- Fixed an error that occurred when saving a guest entry. ([#28](https://github.com/craftcms/guest-entries/issues/28))

## 2.1.1 - 2017-11-09

### Changed
- Guest Entries now sets the `live` validation scenario when saving enabled entries.

## 2.1.0 - 2017-08-03

### Added
- Added the “Enable CSRF Protection?” setting, making it possible to disable CSRF protection for `guest-entries/save` requests. ([#24](https://github.com/craftcms/guest-entries/issues/24))

## 2.0.1 - 2017-08-01

### Fixed
- Fixed a bug where custom field content was not getting saved. ([#23](https://github.com/craftcms/guest-entries/issues/23))

## 2.0.0 - 2017-07-14

### Added
- Craft 3 compatibility.

## 1.5.2 - 2016-06-04

### Added
- Added the ability to limit the data returned on a successful save for an AJAX request. This removes potentially sensitive data from being returned.

## 1.5.1 - 2016-01-13

### Fixed
- Fixed a PHP error that would occur if the guest entry failed validation.

## 1.5.0 - 2015-12-23

### Added
 - Added ‘onSuccess‘ and ‘onError‘ events.

## 1.4.0 - 2015-12-20

### Updated
- Updated to take advantage of new Craft 2.5 plugin features.

## 1.3.1 - 2014-03-14

### Fixed
-Fixed a bug where the “Validate Entry” setting Lightswitch would reset to on position after being set to off.

## 1.3.0 - 2014-10-30

### Added
-Added the ‘entryVariable‘ config setting.

## 1.2.2 - 2014-09-17

### Fixed
- Fixed a bug where validation would fail when saving guest entries for sections/entry types with dynamic titles.
## 1.2.1 - 2014-07-2

### Added
- Added the ability to explicitly set whether validation is required on a per-section basis.

## 1.2.0 - 2014-07-2

### Added
- Added support for the Client user when running Craft Client.

## 1.1.0 - 2014-03-28

###Added
- GuestEntriesService.php to raise an ‘onBeforeSave’ event before saving a new guest entry.

## 1.0.0 - 2014-03-28

Initial release

repository: clemsy/ehba

repo_name: clemsy/ehba


text:
Running the example
===================
For the purposes of testing restfully, the data folder has a small PHP script that outputs a JSON object.

There is a `.htaccess` file that redirects URLs like `data/123123/` to `data/index.php?id=123123`

You do not need to have PHP to use this.

repository: epitome-mvc/Epitome

repo_name: epitome-mvc/Epitome


text:
# Format Contents

The basic format of the `.allexe` is a zip container that
contains various files.

The types of files are described below.

## Bitcode

The main relevant file in the container is the `main.bc`
file, that contains the main bitcode for the executable.
This file is always required.

Additional bitcode files may be included directly, or may be
specified indirectly via _uniquely resolved_ identifiers;
in particular, no external specifications such as search paths
or other environmental variables should be used to resolve
these identifiers.
These additional bitcode files are expected
to be linked into `main.bc` in an unspecified manner.

Non-bitcode software components, such as scripts or non-LLVM-compiled
languages are _not_ included in ALLVM-format files.
In particular, all code components in these file must use LLVM bitcode.

## Non-code Components

### Software Data

Files other than code may reside in the package,
and all read-only data required by the application
for execution and available before shipping
should be included.
Sources of other read-only data should be specified
via configuration files.

Additionally, configuration files are encouraged
to be shipped as well. Users may modify the configuration
but do so sparingly, generating a new package instance
by doing so.

### ALLVM data

Other files in the container may be used for various
ALLVM-specific ends:

- analysis summaries,
- executable code caches
- optimized file dependencies

These are optional (although certain components may
require them), and it might make more sense to ship these
results outside of the package, for ease of distribution.
More work on use cases is needed.

For now, both models (i.e., files included or not) are supported.

## Metadata

Mandatory file with fixed name `metadata.inf`.

Assets, resources, \$PREFIX/share/\*

license: NCSA

repository: allvm/allvm-tools

gha_language: C

gha_license_id: NOASSERTION

repo_name: allvm/allvm-tools


text:
# Mutually Exclusive Form Fields
[![Build Status](https://travis-ci.org/dschep/django-xor-formfields.svg?branch=master)](https://travis-ci.org/dschep/django-xor-formfields)
[![PyPi](https://img.shields.io/pypi/v/django-xor-formfields.svg)](https://pypi.python.org/pypi/django-xor-formfields)

Easily add mutually exclusive fields to Django forms.
## Install
### PyPI
```
pip install django-xor-formfields
```

### Source
```
python setup.py install
```

## Example mutually exclusive form field (TextInput & Select):
```
# with a widget inference
MutuallyExclusiveValueField(
    fields=(forms.TypedChoiceField(choices=[(1,1), (2,2)], coerce=int),
            forms.IntegerField()))

# manual widget creation (allows for the placeholder attr & other customization)
MutuallyExclusiveValueField(
    fields=(forms.IntegerField(), forms.IntegerField()),
    widget=MutuallyExclusiveRadioWidget(widgets=[
            forms.Select(choices=[(1,1), (2,2)]),
            forms.TextInput(attrs={'placeholder': 'Enter a number'}),
        ]))
```

## Using FileOrUrlField
This library also includes a more complete field that inherits from
`MutuallyExclusiveValueField` that allows users to upload files via an URL or a
file upload. The field accepts a `to` parameter accepting the following values:
`None, 'url', 'file'`. This value causes the field to perform either no
normalization, normalizatoin to an url (by storing uploaded files as media) or
to a file (by downloading urls to an `InMemoryUploadedFile`).
### Example:
```
FileOrUrlField(None) # returns UploadedFile objects or URL based on user input
FileOrUrlField(to='file') # always validates to an UploadedFile
FileOrUrlField(to='url', upload_to='foobar') # always validates to an URL
```
#### AWS note:
The `FileOrUrlField` supports a they keyword argument `no_aws_qs` which
disables aws querystring authorization if using AWS via `django-storages`

## Tests & coverage!
to run the tests simply run:
```
DJANGO_SETTINGS_MODULE=xorformfields.test_settings django-admin.py test xorformfields
```

Coverage results are available here: https://dschep.github.io/django-xor-formfields/htmlcov/

repository: dschep/django-xor-formfields

gha_language: Python

repo_name: dschep/django-xor-formfields


text:
---
layout: post
title:  Learning to Code Like a Rubyist Part 1 - How to effectively use `until` and `unless`.
date:   2015-02-09 22:16:00
categories: coding
---

Some people tend to shy away from using "`until`" or "`unless`" when writing ruby code. I believe to become a true rubyist you must learn when and how to use them. They are really not that bad once you get the hang of it. "`unless`" and "`until`" are use for negative conditions. It can be confusing to understand at first but the main idea is to refactor your code to "`unless something`" whenever you catch yourself writing "`if not something`". Same goes for "`until something`" and "`while not something`". The idea is to get rid of the negation in your conditions.

###Example:

{% highlight ruby linenos%}
if not @full
  :eat
end
{% endhighlight %}

Refactors to:

{% highlight ruby linenos%}
unless @full
  :eat
end
{% endhighlight %}

###Example:

{% highlight ruby linenos%}
if 1 != 2
  puts "1 is not equal to 2"
end
{% endhighlight %}

Refactors to:

{% highlight ruby linenos%}
unless 1 == 2
  puts "1 is not equal to 2"
end
{% endhighlight %}

###Example:

{% highlight ruby linenos%}
while !@full
  :keep_eating
end
{% endhighlight %}

Refactors to:

{% highlight ruby linenos%}
until @full
  :keep_eating
end
{% endhighlight %}

###Example:

{% highlight ruby linenos%}
while x != 3
  puts x
  x += 1
end
{% endhighlight %}

Refactors to:

{% highlight ruby linenos%}
until x == 3
  puts x
  x += 1
end
{% endhighlight %}

The last example outputs `1` and `2` for both while and until loops. In conclusion, when using "`unless`" or "`until`", the body of the statement is executed when the condition is false.

extension: markdown


text:
---
layout: default
---

# 1998-01-14 - Re: Ricin AP

## Header Data

From: Eric Cordian<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: f2535a57494ea8cf3c27f3bbcb0cb113c0631c63ebe1f3e878f7dd8b737e68d7

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1998-01-14 04:00:42 UTC

Raw Date: Wed, 14 Jan 1998 12:00:42 +0800

## Raw message

```
{% raw  %}From: Eric Cordian<EMAIL_ADDRESS>Date: Wed, 14 Jan 1998 12:00:42 +0800
To<EMAIL_ADDRESS>Subject: Re: Ricin AP
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

Anonymous writes:

> This alert advises that nationwide trend among drug traffickers is to
> "bait" law enforcement officers with a white powder called RICIN.
> RICIN is a derivative of Castor beans and looks like powder
> methamphetamine. It is highly toxic and if it contacts human skin, it
> is fatal. The death process takes several days, depending upon the
> dosage, and is almost impossible to detect during an autopsy.

Ricin is a ribosome-inactivator, which inhibits protein synthesis at
the cellular level by binding to and damaging the 50S ribosomal
subunit.  This is eventually and irreversibly fatal, although not
immediately so, and the symptoms which occur in poisoned individuals
are generally misdiagnosed by internists as a wide variety of other
ailments.

The most famous case of the use of ricin was when Bulgarian dissident
Georgi Markow was assasinated by the KGB with an umbrella jab which
left a microscopic porous metal sphere tainted with ricin in his leg.
He died in agony a number of days later.

The lethal dose of ricin in humans is microscopic, and it is a poison
of choice in cancer therapy, since it destroys cells and patients are
unlikely to have previous immunological exposure to it.  It can be
bound to monoclonal antibodies, or other carriers, to target only
specific cells.

> Due to this situation, in the event of suspect drug seziures, do not
> come into direct skin contact with any powdered substances, and
> exhibit caution of field testing any powdered substances."

LOL!  Like one should come in contact with ANY unknown chemical
substance, powdered or not.  Remember that researcher who just died
after accidently getting a drop of Dimethyl Mercury on a gloved hand,
not to mention the one who got a speck in her eye and succumbed to
monkey herpes a couple of weeks later, despite intensive antiviral
therapy.  And that's not even mentioning other fun things like
Thallium, and Organophosphate nerve agents, or the use of cellular
penetrators like DMSO as carriers for contact poisons.

Ricin isn't the only nasty substance one could use to keep jackbooted
thugs out of the marijuana plants.

--
Eric Michael Cordian 0+
O:.T:.O:. Mathematical Munitions Division
"Do What Thou Wilt Shall Be The Whole Of The Law"

{% endraw %}
```

## Thread

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

+ Return to "[Eric Cordian <emc@wire.insync.net>](/authors/eric_cordian_emc_at_wire_insync_net_)"

+ 1998-01-14 (Wed, 14 Jan 1998 12:00:42 +0800) - Re: Ricin AP - _Eric Cordian<EMAIL_ADDRESS>