text:
# Frequently Asked Questions #

*   **Where is the '\*' node?**

    zPermissions adheres strictly to the Bukkit 'SuperPerms' API, which does not support wildcards of any kind. (No, not even `plugin.*` -type permissions are supported — these need to be implemented by the plugins themselves.) As suggested by mbaxter in his ["Why PEX is broken"](http://goo.gl/MHhbl) document, if you want something like the '*' node, give that user OP status instead. If you don't want them to be able to OP others, negate the nodes for the OP command:

        /permissions player <player> set bukkit.command.op.give false
        /permissions player <player> set bukkit.command.op.take false

    (Needless to say, you should also negate `zpermissions.*` or at least both `zpermissions.player` and `zpermissions.group` so they can't modify permissions that will allow them to OP others or allow others to OP.)

*   **Do you have a converter for permissions plugin X?**

    No\*, and there are no plans to add any converter *built-into* zPermissions. Maybe as a separate jar or a separate project. And I would certainly welcome it if someone else stepped up to do so. But I'm not really motivated to do it myself because:

    1. Permission models tend to vary from plugin to plugin. Though perhaps the closest plugin to zPermissions in terms of model would be PermissionsBukkit and any of its derivatives.
    2. I have no desire to track the file formats or other details of other plugins in zPermissions. Heck, zPerms' schema/flat file format has changed many times in the last few months. I always aim to make things backwards compatible, and I would rather expend that effort on my own project.

    \* Despite having said all that, I do have a [very basic converter](https://bitbucket.org/ZerothAngel/tozperms) available. It currently only supports PEX, and performs a lossy conversion at best.

*   **Can zPermissions co-exist with other permissions plugins?**

    Aside from potential command conflicts, yes. (But perhaps the question has other types of plugins in mind — not just strictly permissions plugins.)

    zPermissions never touches permissions set by other plugins. Under the hood, zPermissions creates its own PermissionAttachment and will only ever modify the one that it explicitly created.

    Of course, whether or not it can co-exist with plugin X also depends on whether plugin X also plays nicely...

*   **Why another permissions plugin?**

    Well, I don't actually get this question much anymore. But in short:

    1. None of the current plugins *at the time* met my needs. PermissionsBukkit had buggy multi-world support and the developer did not seem very responsive. bPermissions did not have group inheritance and changed its file format at least twice while I used it (without providing an auto-upgrade path). Lastly, I did not want to touch anything that still clung to the old "Permissions 2" system.
    2. I wanted region-specific permissions.
    3. The first plugin I developed ([Excursion](http://dev.bukkit.org/projects/excursion/)) was relatively simple. I wanted a bit more practice with the Bukkit API, so I coded zPermissions from scratch.
    4. It was the primary testbed and driver for development for my [personal plugin library](https://github.com/ZerothAngel/ToHPluginUtils).

*   **Can zPermissions support region plugin X?**

    It should be easier to do now, so feel free to [create a ticket](http://dev.bukkit.org/projects/zpermissions/tickets/). If you provide links to API docs and/or provide configuration examples, you will greatly improve the chance that I will accept it and work on it sooner rather than later. ;)

    There's only one hard requirement on the region plugin: it must be able to return the name(s) of regions that enclose any given location.

    If the region plugin is a Maven project and/or is hosted in a Maven repository somewhere, that is also a major plus.

*   **What does the `opaque-inheritance` option do?**

    When `opaque-inheritance` is true (the default setting), each assigned group is fully resolved before moving on to the next. This means *the ancestor groups* of higher-weight assigned groups take precedence over lower-weight groups.

    When false, ancestor groups that were already resolved are no longer resolved again.

    To help illustrate, suppose there are 5 groups: *A B C D E*

    *A*'s parent is *B*

    *B*'s parent is *E*

    *C*'s parent is *D*

    *D*'s parent is *E*

    *A* has weight 100.

    *C* has weight 0.

    A player, Bob, has both groups *A* and *C* assigned. Since *A* has higher weight, it is resolved last and therefore has highest precedence.

    With `opaque-inheritance` true, the first step is to fully resolve group *C*. So the resolution order is:

    *E D C*

    (The permissions of a child group are always applied after its parent.) Next, group *A* is fully resolved, so the new order becomes:

    *E D C E B A*

    You'll notice *E* appears twice. Since resolving a group twice has no real effect (e.g. if you set a permission to true twice, it's still true), this is in effect:

    *D C E B A*

    And this is the order which each group's permissions are applied.

    Now with `opaque-inheritance` false, the first step again is to resolve group *C*:

    *E D C*

    Next,  group *A* is fully resolved. But wait! One of *A*'s ancestors is group *E* which is already on this list. So it is skipped.

    *E D C B A*

    And that leads to the very subtle difference between both resolution strategies.

    Basically, if you *flatten* each group and resolve them in order, you will get the same effect as `opaque-inheritance` true — in the above example, *E* has the potential to override permissions from groups *D* and *C* because it is an ancestor of a higher-weight group (*A*). (It is considered part of *A* and not a separate group in itself.)

    But if you want to treat individual ancestor groups as separate groups in themselves, then `opaque-inheritance` false will give that effect — *E*, being the base group of both *A* and *C*, can have its permissions potentially overridden by any other group.

*   **What does the `interleaved-player-permissions` option do?**

    When true (the default from version 0.9 - 0.9.19), player permissions are interleaved with group permissions at the same "level" (universal, world, region, region/world):

     1. Universal group permissions
     2. Universal player permissions
     3. World-specific group permissions
     4. World-specific player permissions
     5. Region-specific group permissions
     6. Region-specific player permissions
     7. Region- and world-specific group permissions
     8. Region- and world-specific player permissions

    When false, player permissions are only applied once all group permissions have been applied:

     1. Universal group permissions
     2. World-specific group permissions
     3. Region-specific group permissions
     4. Region- and world-specific group permissions
     5. Universal player permissions
     6. World-specific player permissions
     7. Region-specific player permissions
     8. Region- and world-specific player permissions

*   **What is `auto-refresh-interval` for?**

    The `auto-refresh-interval` option, which is disabled by default (e.g. a negative number), periodically performs the equivalent of `/permissions refresh` at some given interval. Theoretically, you could set up multiple servers to share a single zPermissions database. (However, the fact that this would be configured through bukkit.yml, which is also used by other plugins, limits this somewhat.) More practically, you could have an external website or forum handle player registration and automatically promote players.

    Since zPermissions permanently caches data for performance reasons, you will need some way to tell zPermissions to re-read the database. And that's where `/permissions refresh` and `auto-refresh-interval` come in.

    If you aren't doing either of these things (multi-server or writing to the database from an external source), it is probably best to leave `auto-refresh-interval` disabled.

repository: mirolm/zPermissions

gha_language: Java

repo_name: mirolm/zPermissions


text:
# web3-workshop

[![Gitter](https://img.shields.io/gitter/room/nwjs/nw.js.svg)](https://gitter.im/orbitdb/Lobby) [![Matrix](https://img.shields.io/badge/matrix-%23orbitdb%3Apermaweb.io-blue.svg)](https://riot.permaweb.io/#/room/#orbitdb:permaweb.io)

This workshop was presented at the OrbitDB session during the #Web3 summit in Berlin, in August 2019.

## How to use this repository

You'll notice, if you run `git log`, that you're on the root of this repository when you start. If you run `git branch`, you'll see that there are six branches with numbers in front of them. We encourage you to either create an extra repository for your work, and checkout the branches as you go, or to create separate branches to do work and checkout the tutorial branches (or, just overwrite your changes as you go). By the end of your `git checkout`s, you should have learned something about how to use OrbitDB!

Our goal here is to create a basic Playlist app.

Take a look at the `Workshop.md` to get started! When ever you're done with that document, checkout the next branch in order to see the next step.

## Contribute

We welcome any and all PRs! Also, if you have questions, we encourage you to jump on [Gitter](https://gitter.im/orbitdb/Lobby) and to talk to us.

## License

[MIT](LICENSE)

license: MIT

branch_name: refs/heads/main

extension: md

gha_language: SCSS

gha_license_id: MIT

license_type: permissive


text:
# Shell alternatives

For details about those see the corresponding information [here](https://github.com/urbanware-org/typefx#shell-alternatives) as the sub-directories do not contain any usage files.

repository: urbanware-org/typefx

repo_name: urbanware-org/typefx


text:
+++
authors = ["Ersan"]
date = 2020-05-16T21:00:00Z
excerpt = ""
hero = "/images/ps-now-768x430.jpg"
timeToRead = 2
title = "Playstation Now"

+++
#### **What is PlayStation Now?**

PlayStation Now is a game subscription service that gives you access to more than 800 games. With PS Now you can stream PS4, PS3 and PS2 games instantly on PS4 and PC, and download hundreds of PS4 games to play on your PS4 console.

#### **PS Now on PS4**

PS Now is accessible via your PS4™ home screen. You can join on your console, or via PlayStation™Store on any device and begin downloading or streaming games on demand. You’ll need:

* A PlayStation®4
* A PlayStation™Network account with registered payment details
* A DUALSHOCK®4 wireless controller

* An active PS Now subscription or seven-day free trial (credit/debit card or PayPal required)
* An active broadband connection. We recommend 5mbps or higher.

#### **PS Now on PC**

PS Now can be accessed from any compatible PC, [via the free app](https://download-psnow.playstation.com/downloads/psnow/pc/latest). You can join via the PC app, from PlayStation™Store on any device, or sign-in with an existing PS Now subscription to start streaming games. You’ll need:

* A Compatible PC
* A PlayStation™Network account with registered payment details
* A DUALSHOCK®4 wireless controller

* An active PS Now subscription or seven-day free trial (credit/debit card or PayPal required)
* An active broadband connection. We recommend 5mbps or higher.

repository: heyitspenguin/gamestream

branch_name: refs/heads/master

repo_name: heyitspenguin/gamestream


text:
# Playwright-Session

![Build & Publish](https://github.com/domderen/playwright-session/workflows/Build%20&%20Publish/badge.svg?branch=master)
![npm](https://img.shields.io/npm/v/playwright-session)

[Playwright-Session UI](https://playwright-session.hotdata.co/) visualizes a recorded Playwright session in a UI containing:

- Video from the session,
- DOM HTML Viewer,
- Network Requests Viewer,
- Console Viewer,
- Playwright actions listed in console view to easily understand what your script was doing,

![Playwright-Session in action](https://playwright-session.hotdata.co/Playwright-Session-UI-Small.gif)

## Recording Session

To record your own Playwright session, start by adding this package to your project:

```bash
npm install playwright-session --save-dev
```

Once you have the package installed, you need to initialize your playwright script with the recorder:

```javascript
import { chromium } from "playwright";
import initializeRecorder from "playwright-session";

(async () => {
  const browser = await chromium.launch();

  // Recorder is initalizing required events collection,
  // to later be able to replay a Playwright session in the UI.
  // Session file, that can be loaded in the UI,
  // will be saved to ./vuetify-session-events.ldjson
  const { page, context } = await initializeRecorder(
    browser,
    "vuetify-session-events"
  );

  await page.goto("https://vuetifyjs.com/en/");

  await page.evaluate(() => console.log("Adding sample console log 1"));
  await page.evaluate(() => console.warn("Adding sample console log 2"));
  await page.evaluate(() => console.info("Adding sample console log 3"));
  await page.evaluate(() => console.error("Adding sample console log 4"));
  await page.evaluate(() => console.debug("Adding sample console log 5"));

  await page.click('a[href="/en/getting-started/quick-start/"]');

  await page.click('text="UI Components"');

  await page.click('text="Form inputs & controls"');

  await page.click('text="Forms"');

  await page.waitForSelector('#usage .v-example input[type="text"]');

  const inputs = await page.$$('#usage .v-example input[type="text"]');

  await page.click("#usage h2");

  // Adding timeouts here, to show down Playwright,
  // and make recorded session a bit smoother.
  await new Promise((r) => setTimeout(r, 1000));

  await inputs[0].fill("Welcome");
  await new Promise((r) => setTimeout(r, 500));
  await inputs[1].fill("To");
  await new Promise((r) => setTimeout(r, 500));
  await inputs[2].fill("Playwright-Session");

  await new Promise((r) => setTimeout(r, 3000));

  await browser.close();
})();
```

## Replaying Session

Once you have your session file recorded, head over to the [Playwright-Session UI](https://playwright-session.hotdata.co/), upload your session file by clicking on the Upload button in the top-left corner of the UI, and play your session. You can also provide a link to your custom session file via a query string parameter like this: [https://playwright-session.hotdata.co/?session_url=https://playwright-session.hotdata.co/vuetify-session-events.ldjson](https://playwright-session.hotdata.co/?session_url=https://playwright-session.hotdata.co/vuetify-session-events.ldjson).

## API

```typescript
/**
 * Bootstraps session recording on top of the open browser connection.
 * Session recording will be saved to a file defined by `sessionFilePath` argument.
 * Once bootstrapped, this function will return a new BrowserContext & Page.
 * @param browser ChromiumBrowser Browser instance.
 * @param [sessionFilePath] [OPTIONAL] Path where session recoeding file should be saved.
 * Defaults to `${process.cwd()}/playwright-session-events-${new Date().toISOString()}.ldjson`.
 * @param contextOpts [OPTIONAL] Options that can be passed to `browser.newContext` call, used when creating new BrowserContext.
 */
export default async function initializeRecorder(
  browser: ChromiumBrowser,
  sessionFilePath: string = undefined,
  contextOpts: any = undefined
): Promise<InitializeRecorderResponse>;

/**
 * Recorder is extending browser methods, and returns both page & context objects for further modifications.
 */
type InitializeRecorderResponse = {
  page: Page;
  context: ChromiumBrowserContext;
};
```

repository: domderen/playwright-session

gha_language: TypeScript

repo_name: domderen/playwright-session


text:
# TODO

## Bugs
### Cambista

* Manage 'rejected' 'post\_only' message from Coinbase:
```
 {u'status': u'rejected', u'created_at': u'2018-12-13T21:44:23.344806Z', u'post_only': True, u'product_id': u'BTC-EUR', u'fill_fees': u'0.0000000000000000', u'reject_reason': u'post only', u'price': u'2925.00000000', u'executed_value': u'0.0000000000000000', u'id': u'cccccccc-cccc-cccc-cccc-cccccccccccc', 'order_id': u'cccccccc-cccc-cccc-cccc-cccccccccccc', u'time_in_force': u'GTC', u'settled': False, u'filled_size': u'0.00000000', u'type': u'limit', u'side': u'buy', u'size': u'0.01000000'}
```

### Trader
* Simplebot doesn't like trapping a SIGTERM when bloqued in brpop :
```
trader_1       |   File "/usr/local/lib/python2.7/dist-packages/redis/connection.py", line 636, in read_response
trader_1       |     raise e
trader_1       | TypeError: cannot concatenate 'str' and 'NoneType' objects
```
Not sure every case has been taken into account

## Gui
* dynamically update bots page (in progress)
* Find solution between sse (pubsub) and flash (in a redis list) to be sure that every message is displayed.
* get and display account and last filled orders (, ...)

## Monitoring
* gui's flash alert when a container loops restart (?)
* mongodb: mapReduce old market data
* delete 'order filled' messages which belongs to no bot (user input in Coinbase)

## Architecture
* prefix all coinbase-specific containers by cb<container>

## Functionnalities
* Group and chain bots. Develelop watchdog bots chained with trading bots.
* Simplebot: add stop loss
* Implement other bots (SimpleStopLoss who can cancel all or a part of existing orders, rangebot, ...)

## Other

* Update doc
...

repository: sznicolas/virc

repo_name: sznicolas/virc


text:
Solution In Progress  - Updated July 9 2016 at 10:07 AM -

[ English ]()

Environment
-----------

* Red Hat Enterprise Linux OpenStack Platform

Issue
-----

* How do I boot an OpenStack instance and tell it to use a specific IP address?

Resolution
----------

* Use the `nova boot --nic` option to specify the net-id and v4-fixed-ip.

[Raw](https://access.redhat.com/solutions/1315963#)

    nova boot --nic net-id=9a926b9a-804a-496d-99bc-4e31bf2feeec,v4-fixed-ip=<IP_ADDRESS> --key-name osp5-x230-keys --image rhel7 rhel7-test --flavor m1.small

* In order to do this, you need to know the network in which you are booting your instance. You can get a list of networks with `nova net-list`.

[Raw](https://access.redhat.com/solutions/1315963#)

    [root@osp5 ~(keystone_admin)]# nova net-list
    +--------------------------------------+---------+------+
    | ID                                   | Label   | CIDR |
    +--------------------------------------+---------+------+
    | b08a8505-26bd-4cff-95e2-0e17aa23df73 | public  | -    |
    | 6594969b-446e-4403-9596-df49172ae796 | private | -    |
    | 9a926b9a-804a-496d-99bc-4e31bf2feeec | ext_net | -    |
    +--------------------------------------+---------+------+
    [root@osp5 ~(keystone_admin)]#

* If you are using Red Hat OpenStack Platform 6, then the above will not work until Red Hat bug [1195067](https://bugzilla.redhat.com/show_bug.cgi?id=1195067) is fixed. However, you can use the following workaround to create a port with the desired IP address first and then boot the instance on that port.

[Raw](https://access.redhat.com/solutions/1315963#)

    $ neutron port-create --fixed-ip subnet_id=SUBNET_ID,ip_address=IP_ADDRESS NET_ID
    $ nova boot --image IMAGE --flavor FLAVOR --nic port-id=PORT_ID VM_NAME

* An example of running the workaround above is in the Diagnostic Steps below.

Diagnostic Steps
----------------

* Below is a full example with context of using the `nova boot --nic` option to specify an IP.

[Raw](https://access.redhat.com/solutions/1315963#)

    [root@osp5 ~(keystone_admin)]# nova boot --user-data ./myfile.txt --key-name osp5-x230-keys  --image rhel7 rhel7-test --flavor m1.small --nic net-id=9a926b9a-804a-496d-99bc-4e31bf2feeec,v4-fixed-ip=<IP_ADDRESS>
    +--------------------------------------+----------------------------------------------+
    | Property                             | Value                                        |
    +--------------------------------------+----------------------------------------------+
    | OS-DCF:diskConfig                    | MANUAL                                       |
    | OS-EXT-AZ:availability_zone          | nova                                         |
    | OS-EXT-SRV-ATTR:host                 | -                                            |
    | OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                            |
    | OS-EXT-SRV-ATTR:instance_name        | instance-00000006                            |
    | OS-EXT-STS:power_state               | 0                                            |
    | OS-EXT-STS:task_state                | scheduling                                   |
    | OS-EXT-STS:vm_state                  | building                                     |
    | OS-SRV-USG:launched_at               | -                                            |
    | OS-SRV-USG:terminated_at             | -                                            |
    | accessIPv4                           |                                              |
    | accessIPv6                           |                                              |
    | adminPass                            | z4cw5PaBdudt                                 |
    | config_drive                         |                                              |
    | created                              | 2015-01-10T14:37:26Z                         |
    | flavor                               | m1.small (2)                                 |
    | hostId                               |                                              |
    | id                                   | 5cad0037-237f-4040-8b5a-d5aee5fa5243         |
    | image                                | rhel7 (8de8a734-e084-476c-b002-2709bc7ba29d) |
    | key_name                             | osp5-x230-keys                               |
    | metadata                             | {}                                           |
    | name                                 | rhel7-test                                   |
    | os-extended-volumes:volumes_attached | []                                           |
    | progress                             | 0                                            |
    | security_groups                      | default                                      |
    | status                               | BUILD                                        |
    | tenant_id                            | 06732e4c2afe457bba3dbeb90adb523a             |
    | updated                              | 2015-01-10T14:37:26Z                         |
    | user_id                              | dced8d6ff75e477aa25a5960628f7f9f             |
    +--------------------------------------+----------------------------------------------+
    [root@osp5 ~(keystone_admin)]#

* After that you can SSH to your instance using its assigned static IP address.

[Raw](https://access.redhat.com/solutions/1315963#)

    $ ssh<EMAIL_ADDRESS>    Last login: Sat Jan 10 09:42:11 2015 from <IP_ADDRESS>
    [cloud-user@mynode ~]$ ip a | grep eth0
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global dynamic eth0
    [cloud-user@mynode ~]$

* This option will work even if you have a DHCP server in the network you boot the instance. When using this option your host will still use the network configuration files that were provided by the image, which is normally DHCP.

[Raw](https://access.redhat.com/solutions/1315963#)

    [cloud-user@mynode ~]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE="eth0"
    BOOTPROTO="dhcp"
    ONBOOT="yes"
    TYPE="Ethernet"
    USERCTL="yes"
    PEERDNS="yes"
    IPV6INIT="no"
    PERSISTENT_DHCLIENT="1"
    [cloud-user@mynode ~]$

* Another example of how to boot your instance with a specific IP address is to assign that IP address to a port and then assign that port to the the booting instance. If the above doesn't work with Red Hat Enterprise Linux OpenStack Platform 6, because of the bug sited in the Resolution section above, then you can use the following example as a workaround.

[Raw](https://access.redhat.com/solutions/1315963#)

    [root@osp6p ~(keystone_admin)]# neutron port-create --fixed-ip subnet_id=8a1dce4f-be08-461d-93fc-06398d417c5d,ip_address=<IP_ADDRESS> acd9ab2b-6d8c-40df-86f9-578a59c6ab54
    Created a new port:
    +-----------------------+----------------------------------------------------------------------------------+
    | Field                 | Value                                                                            |
    +-----------------------+----------------------------------------------------------------------------------+
    | admin_state_up        | True                                                                             |
    | allowed_address_pairs |                                                                                |
    | binding:host_id       |                                                                                |
    | binding:profile       | {}                                                                               |
    | binding:vif_details   | {}                                                                               |
    | binding:vif_type      | unbound                                                                          |
    | binding:vnic_type     | normal                                                                           |
    | device_id             |                                                                                |
    | device_owner          |                                                                                |
    | fixed_ips             | {"subnet_id": "8a1dce4f-be08-461d-93fc-06398d417c5d", "ip_address": "<IP_ADDRESS>"} |
    | id                    | 5b6b29a0-adc9-4d93-96f1-7259b4ac2499                                             |
    | mac_address           | fa:16:3e:e8:d3:95                                                                |
    | name                  |                                                                                |
    | network_id            | acd9ab2b-6d8c-40df-86f9-578a59c6ab54                                             |
    | security_groups       | c88e8ccf-b44c-49fc-9591-6d8fbc33a086                                             |
    | status                | DOWN                                                                             |
    | tenant_id             | c9a2ccf6af8e499b8d8095917bd490ca                                                 |
    +-----------------------+----------------------------------------------------------------------------------+
    [root@osp6p ~(keystone_admin)]#

    [root@osp6p ~(keystone_admin)]# nova boot --nic port-id=5b6b29a0-adc9-4d93-96f1-7259b4ac2499 --key-name osp5-xhel7-test --flavor m1.small
    +--------------------------------------+----------------------------------------------+
    | Property                             | Value                                        |
    +--------------------------------------+----------------------------------------------+
    | OS-DCF:diskConfig                    | MANUAL                                       |
    | OS-EXT-AZ:availability_zone          | nova                                         |
    | OS-EXT-SRV-ATTR:host                 | -                                            |
    | OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                            |
    | OS-EXT-SRV-ATTR:instance_name        | instance-00000008                            |
    | OS-EXT-STS:power_state               | 0                                            |
    | OS-EXT-STS:task_state                | scheduling                                   |
    | OS-EXT-STS:vm_state                  | building                                     |
    | OS-SRV-USG:launched_at               | -                                            |
    | OS-SRV-USG:terminated_at             | -                                            |
    | accessIPv4                           |                                              |
    | accessIPv6                           |                                              |
    | adminPass                            | 7ASmdfVpjQtM                                 |
    | config_drive                         |                                              |
    | created                              | 2015-02-21T23:22:37Z                         |
    | flavor                               | m1.small (2)                                 |
    | hostId                               |                                              |
    | id                                   | c65d3a3e-ab39-42dd-91c8-553c01c519d0         |
    | image                                | rhel7 (a6749630-da40-483a-a6dc-bba558ea2d6f) |
    | key_name                             | osp5-x230-keys                               |
    | metadata                             | {}                                           |
    | name                                 | rhel7-test                                   |
    | os-extended-volumes:volumes_attached | []                                           |
    | progress                             | 0                                            |
    | security_groups                      | default                                      |
    | status                               | BUILD                                        |
    | tenant_id                            | c9a2ccf6af8e499b8d8095917bd490ca             |
    | updated                              | 2015-02-21T23:22:37Z                         |
    | user_id                              | 7a67b107268a48849114be8ceb38a731             |
    +--------------------------------------+----------------------------------------------+
    [root@osp6p ~(keystone_admin)]#

* ** Product(s) **
* [Red Hat OpenStack Platform](https://access.redhat.com/products/red-hat-openstack-platform-index)

* ** Component **
* [nova](https://access.redhat.com/components/nova)

* ** Category **
* [Learn more](https://access.redhat.com/category/learn-more)

* ** Tags **
* [RHCI](https://access.redhat.com/taxonomy/tags/rhci)

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

url: https://raw.githubusercontent.com/mtint/STFC-SCD-OPENSTACK/7f0483912f5f3ece775f4eac2b3afd7663a3a2d0/HOWTO/How do I boot an OpenStack instance and tell it to use a specific IP address  - Red Hat Customer Portal (2).md

repository: mtint/STFC-SCD-OPENSTACK

repo_name: mtint/STFC-SCD-OPENSTACK


text:
---
title: danmaq
post_id: '3210'
date: '2004-11-28T00:00:00+09:00'
draft: true
tags: []
---

Circle it to formal (?), And the site is completely renewed. Although the site was annihilated frequently, will people other than people come? I thought that the danmaq startup was December 30, 2004, but I found a past log, apparently from 2004/11/28. (Either way starting from January 11, 2005)

## After renewal

In April 2008 renewed to the one that is quite close to the current design. Next renewal is June 2011. Although the design has hardly changed this time, the contents are completely hand-input blogs until now, and replaced what I used as my own blog system [Network Utterance Environment](http://nue.sourceforge.jp/) . ![](https://danmaq.com/wp-content/uploads/2012/11/logo2012.png) In December 2012, we moved to Wordpress, making it a white tone page and changing the logo to the current one. Despite the fact that only about 10% of migration is done, it revolutionized drastically in 2015 as well. Alright ......

gha_language: JavaScript


text:
---
title: "OpenBazaar 2.3.1 is Released with IPFS Rebase"
layout: post
date: '2019-03-19 08:30:00 -0600'
social_title: 'New OpenBazaar Release with IPFS Rebase'
social_description: 'New OpenBazaar release allows you to use multiple cryptocurrencies in peer-to-peer marketplace'
---

#### IMPORTANT: This is a required update

We have tweaked how pricing is calculated to be better aware of currency conversions and changed how content is cached/retrieved as part of the IPFS update. Old nodes and new nodes will be unable to share content. We recommend that you [backup your OpenBazaar data](https://openbazaar.zendesk.com/hc/en-us/articles/115002761312-How-do-I-backup-my-store-) before you update.

OpenBazaar version 2.3.1 has [been released](https://github.com/OpenBazaar/openbazaar-desktop/releases/tag/v2.3.1) and was primarily focused on upgrading the underlying [IPFS](https://ipfs.io) library to 0.4.18. This release prepares the development team to enable some features which will improve message deliverability and discovery on the network. In addition to the IPFS update, we have several minor fixes and improvements which resolve some painful timing bugs and general code improvements and reorganizations.

Release Notes
-----------------------------

This is a minor release, focused on an IPFS rebase in the go server. It is important to back up your store before running this update.

This release uses version 0.13.1 of the openbazaar-go server. You can view server changes at this link:
[https://github.com/OpenBazaar/openbazaar-go/releases/tag/v0.13.1](https://github.com/OpenBazaar/openbazaar-go/releases/tag/v0.13.1)

**New Features**

* A bulk coin accepted updater control was added in settings/store. This allows a seller to update all the coins accepted by all their listings at the same time.

**Improvements**

* Blockbooth was removed from the list of default search providers.
* Improvements were made in how moderators are loaded in the purchase screen, so the spinner doesn't continue forever if one of them fails to load.
* Code was added to handle upcoming changes to the peerID format.
* A few changes were made to the metrics collected.
* Some code clean up.
* When coping a contract in the order details screen, the JSON is now formatted nicely.
* Inputs are sanitized, to prevent any issues with a user entering invalid or harmful characters.

**Bug Fixes**

* An adjustment was made to prevent security software from incorrectly flagging the OB update as malware.
* A bug that caused the dispute resolve button to not appear in disputes using ZCash was fixed.
* If the url is missing a protocol in the fulfillment of a digital order, it will now open correctly.
* An issue where the user page wouldn't update the user's name if it was changed was corrected.
* A bug with the warning about external links showing when using Tor was fixed.
* Minor fixes.

**Internationalization**

We are actively translating the text in the OpenBazaar reference client. If you are interested in volunteering as a translator, you can sign up at [https://www.transifex.com/ob1/openbazaar](https://www.transifex.com/ob1/openbazaar)

**Special Thanks**

A special thank you goes out to the many volunteers that provide translations, and to our testers that discovered important issues.

For more development details, please see [the release notes on Github](https://github.com/OpenBazaar/openbazaar-desktop/releases/tag/v2.3.1).

extension: markdown

gha_language: HTML


text:
# yabeda

Yabeda is a tool that gets information about pipelines from GitLab CI and sends it to Slack as pretty messages to. You can call it from your deployment pipelines to get detailed deployment notifications.

![screenshot](https://github.com/flix-tech/yabeda/raw/master/static/screenshot.png)

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

## How to install yabeda service

### Getting access to GitLab

To allow yabeda get pipeline info from GitLab you need to provide access token with "api" scope for any GitLab user.
Because "api" scope provides too much access, it's better to create a separate user with limited permissions.

Assuming you have self-hosted GitLab instance and access to admin panel:
1. Open `/admin/users/new` page in you Gitlab
2. Create user:
    * Name - "Yabeda"
    * Username - "yabeda"
    * Email - provide any email address you have
    * Access level - "Regular"
    * External - check. This will allow yabeda to see only project where access was explicitly granted.
    * Upload [yabeda logo][yabeda logo url] as avatar.
    * Push "Create user" button
3. Open "Impersonation Tokens" page. Url would look like `/admin/users/yabeda/impersonation_tokens`.
4. Create impersonation token with "api" scope.

Save token. You'll need to provide it in yabeda configuration.

### Getting access to Slack

You have to create your own slack app so only your instances of yabeda can post notifications to your slack workspace.

1. Open "Your Apps" page in slack: https://api.slack.com/apps
2. Click "Create New App" button
3. Fill "Create a Slack App" form:
    * App Name - "Yabeda"
    * Development Slack Workspace - your workspace name
    * Push "Create App" button
4. Now you're on "Basic Information" page where you need to upload app icon. We've got an icon for you, here it is: [Yabeda logo][yabeda logo url].
5. It's time to create a bot user:
    * Open page "Features > Bot Users"
    * Click on "Add a Bot User" button
    * Set bot name as "yabeda"
    * Click on "Add a Bot User" button again to save a bot user
6. One more thing - we need permission to read workspace's custom emojis:
    * Open page "Features > OAuth & Permissions"
    * In "Scopes -> Select Permission Scopes" input add "emoji:read" scope.
    * Click "Save Changes"
7. We are ready to install our app to workspace:
    * Open page "Settings > Install App"
    * Depending on your permissions you can either install app or request approval. Do it.

After installing app to your workspace you'll see two tokens: "OAuth Access Token" and "Bot User OAuth Access Token". Save them both. You'll need to provide them in yabeda configuration.

### Installing yabeda app

1. Install docker image following instructions on [Docker Hub](https://hub.docker.com/r/flixtech/yabeda/) or in [docker directory README](https://github.com/flix-tech/yabeda/tree/master/docker).
2. Add these emojis to your Slack workspace:
   * ![:yabeda-pending-stage:](https://github.com/flix-tech/yabeda/raw/master/static/icons/pending-stage.png) - `:yabeda-pending-stage:`
   * ![:**gitlab-status-canceled**:](https://github.com/flix-tech/yabeda/raw/master/static/icons/status-canceled.png) - `:gitlab-status-canceled:`
   * ![:**gitlab-status-created**:](https://github.com/flix-tech/yabeda/raw/master/static/icons/status-created.png) - `:gitlab-status-created:`
   * ![:**gitlab-status-failed**:](https://github.com/flix-tech/yabeda/raw/master/static/icons/status-failed.png) - `:gitlab-status-failed:`
   * ![:**gitlab-status-manual**:](https://github.com/flix-tech/yabeda/raw/master/static/icons/status-manual.png) - `:gitlab-status-manual:`
   * ![:**gitlab-status-pending**:](https://github.com/flix-tech/yabeda/raw/master/static/icons/status-pending.png) - `:gitlab-status-pending:`
   * ![:**gitlab-status-running**:](https://github.com/flix-tech/yabeda/raw/master/static/icons/status-running.png) - `:gitlab-status-running:`
   * ![:**gitlab-status-skipped**:](https://github.com/flix-tech/yabeda/raw/master/static/icons/status-skipped.png) - `:gitlab-status-skipped:`
   * ![:**gitlab-status-success**:](https://github.com/flix-tech/yabeda/raw/master/static/icons/status-success.png) - `:gitlab-status-success:`
   * ![:**gitlab-status-warning**:](https://github.com/flix-tech/yabeda/raw/master/static/icons/status-warning.png) - `:gitlab-status-warning:`

## Hot to enable yabeda reporting for your gitlab project

1. Add yabeda user as "Reporter" member to your gitlab project.
2. If you want to send notifications to private channel - invite yabeda bot to this channel.
3. Get yabeda token - same as token you used when installing yabeda app.
4. Add this query to your gitlab CI pipeline:

```yaml
yabeda:
  stage: build
  image: alpine
  before_script:
    - apk --no-cache add ca-certificates httpie
  script:
    - http --check-status --ignore-stdin -f POST "https://my-yabeda-host.test/report/$CI_PROJECT_PATH" pipeline_id=${CI_PIPELINE_ID} token=${YABEDA_TOKEN} channel=random
  allow_failure: true
  only:
    - master
    - tags
  except:
    - schedules
```

Replace `random` with your slack channel name, `https://my-yabeda-host.test` with your yabeda host and add `YABEDA_TOKEN` to your CI secrets.

You can also call yabeda with any http client like curl:
```
curl -X POST -d "channel=random&pipeline_id=${CI_PIPELINE_ID}&token=${YABEDA_TOKEN}" "https://my-yabeda-host.test/report/$CI_PROJECT_PATH"
```

## To run locally

You can create a virtualenv with `python3 -m venv .venv` and `source .venv/bin/activate` to ensure everytihing is local

    make install
    make run-locally

[yabeda logo url]: https://raw.githubusercontent.com/flix-tech/yabeda/master/static/icons/logo.png

repository: flix-tech/yabeda

gha_language: Python

repo_name: flix-tech/yabeda


text:
# msc-login
[![published](https://static.production.devnetcloud.com/codeexchange/assets/images/devnet-published.svg)](https://developer.cisco.com/codeexchange/github/repo/NetworkChris/msc-login)

Script to obtain the session token when using the RESTAPI in conjunction with a Cisco ACI Multi-Site Controller

Install requirements

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

Import this module into other scripts and pass through the following:

* Multi-Site Controller Hostname/IP Address
* Multi-Site Username
* Multi-Site Password

Usage Example:

```
token = msc.login("mschost.cisco.com", "admin", "cisco123")
```

Example of the generated token being inserted into the header:

```
headers = {
"Content-Type": "application/json",
"cache-control": "no-cache"
"Authorization": "Bearer " + token
}
```

repository: tigelane/msc-login

repo_name: tigelane/msc-login


text:
# 2nd-Order Robust Temporal Statistics of Earth Observations

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) ![Release](https://img.shields.io/badge/Release-Private-ff69b4.svg)

This [datacube-stats](https://github.com/GeoscienceAustralia/datacube-stats) plug-in generates outputs to robustly understand variation in the landscape.

The core concept of our approach is to extend the classic concept of [median absolute deviation](https://en.wikipedia.org/wiki/Median_absolute_deviation) to the multidimensional case by replacing the absolute value in the definition by a vector distance. There are many possible choices for vector distances and we choose three that are structurally different. These are the [cosine distance](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.cosine.html), the [Euclidean distance](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.euclidean.html#scipy.spatial.distance.euclidean), and the [Bray-Curtis distance](https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.braycurtis.html#scipy.spatial.distance.braycurtis).

## Example Outputs

The `TernaryMAD` 3-band output demonstrates a rainbow opal-like coloring of a cropping area which means the 3 bands are uncorrelated (a highly desirable property).

Visualising the `BrayCurtisDistanceMAD` over the Menindee lakes, Australia.

## Temporal Statistics

The following temporal statistics models are available:

 - `CosineDistanceMAD` (or `SMAD`) generates a single-band output where the cosine distance MAD is computed through time for every pixel.

 - `EuclideanDistanceMAD` (or `EMAD`) generates a single-band output where the Euclidean distance MAD is computed through time for every pixel.

 - `BrayCurtisDistanceMAD` (or `BCMAD`) generates a single-band output where the Bray-Curtis distance MAD is computed through time for every pixel.

 - `TernaryMAD` generates a 3-band output where the cosine distance MAD (Band 1), the Euclidean distance MAD (Band 2), the Bray-Curtis distance MAD (Band 3) is computed through time for every pixel. For this output, the distances are transformed by -log(x).

## Installation

```
git clone https://github.com/daleroberts/datacube-2nd-order-stats
```

## Continental-scale or large area

Some additional tools are contained in this repository:

  - `job.pbs` is a PBS job script that reads the `tiles` file (tiles specified in Australian Albers) and parallelises across multiple nodes.

  - `retile` is a python script (used by `job.pbs`) that reads the `config.yaml` and generates a new tiling number scheme for `datacube-stats`
     that is based on the `tile_size` parameter in `config.yaml`.

  - `stat` is a python script that gives information about how many of the output tiles have been generated so far. It is useful for checking
      the status of continental runs.

## Testing

The unittests for the package can be found in `model/test_.py`. You can use `pytest` in the root of the repository to run them.

## References

 - Roberts, D., Dunn, B., & Mueller, N. (2018, July). [Open Data Cube Products Using High-Dimensional Statistics of Time Series](https://ieeexplore.ieee.org/abstract/document/8518312). IEEE International Geoscience and Remote Sensing Symposium 2018. 8647-8650.

 - Roberts, D., Mueller, N., & Mcintyre, A. (2017). [High-dimensional pixel composites from earth observation time series](https://ieeexplore.ieee.org/abstract/document/8004469). IEEE Transactions on Geoscience and Remote Sensing, 55(11), 6254-6264.


text:
---
description: HTTP/2 server recipe
---

# HTTP/2 Server

## 1) Generate a self-signed X.509 TLS certificate

Run the following command to generate `cert.pem` and `key.pem` files:

```sh
go run $GOROOT/src/crypto/tls/generate_cert.go --host localhost
```

:::note

For demo purpose, we are using a self-signed certificate. Ideally, you should obtain
a certificate from [CA](https://en.wikipedia.org/wiki/Certificate_authority).

:::

## 2) Create a handler which simply outputs the request information to the client

```go
e.GET("/request", func(c echo.Context) error {
  req := c.Request()
  format := `
    <code>
      Protocol: %s<br>
      Host: %s<br>
      Remote Address: %s<br>
      Method: %s<br>
      Path: %s<br>
    </code>
  `
  return c.HTML(http.StatusOK, fmt.Sprintf(format, req.Proto, req.Host, req.RemoteAddr, req.Method, req.URL.Path))
})
```

## 3) Start TLS server using cert.pem and key.pem

```go
if err := e.StartTLS(":1323", "cert.pem", "key.pem"); err != http.ErrServerClosed {
  log.Fatal(err)
}
```
or use customized HTTP server with your own TLSConfig
```go
s := http.Server{
  Addr:    ":8443",
  Handler: e, // set Echo as handler
  TLSConfig: &tls.Config{
    //Certificates: nil, // <-- s.ListenAndServeTLS will populate this field
  },
  //ReadTimeout: 30 * time.Second, // use custom timeouts
}
if err := s.ListenAndServeTLS("cert.pem", "key.pem"); err != http.ErrServerClosed {
  log.Fatal(err)
}
```

## 4) Start the server and browse to https://localhost:1323/request to see the following output

```sh
Protocol: HTTP/2.0
Host: localhost:1323
Remote Address: [::1]:60288
Method: GET
Path: /
```

## Source Code

```go reference
https://github.com/labstack/echox/blob/master/cookbook/http2/server.go
```

repository: kissinsight/echox

repo_name: kissinsight/echox


text:
Bears
========================================================
author:
date:
autosize: true

Question
========================================================

Ranger Bob Berra needs help relocating bears out of Jellystone. He wants to move bears with higher weights but doesn't want to go and weight every bear. He asked to find a better way to determine the bears weight.

With this presentation I will demonstrate what I know and learned from the class

========================================================

```r
library(DT)
library(effects)
library(car)
library(readr)
library(ggplot2)
library(tidyverse)
bears <- read_csv("/home/students/holmanma/Des_Models/Models/bears.csv")
mb <- subset(bears, sex=="male")
fb <- subset(bears, sex=="female")

bears %>%
  group_by(sex)%>%
  summarise(mean (chest.g), mean(neck.g))
```

```
# A tibble: 2 x 3
     sex `mean(chest.g)` `mean(neck.g)`
   <chr>           <dbl>          <dbl>
1 female        33.23529       18.80882
2   male        37.60606       22.49697
```

========================================================

```r
summary(mb)
```

```
     sex                length          head.l          head.w
 Length:66          Min.   :37.00   Min.   : 9.00   Min.   : 4.00
 Class :character   1st Qu.:53.25   1st Qu.:12.00   1st Qu.: 5.50
 Mode  :character   Median :63.25   Median :13.50   Median : 6.50
                    Mean   :61.78   Mean   :13.55   Mean   : 6.55
                    3rd Qu.:70.50   3rd Qu.:15.38   3rd Qu.: 7.50
                    Max.   :79.00   Max.   :18.50   Max.   :10.00
     neck.g         chest.g          weight
 Min.   :13.00   Min.   :19.00   Min.   : 34.0
 1st Qu.:17.12   1st Qu.:30.00   1st Qu.:114.0
 Median :21.75   Median :36.50   Median :185.0
 Mean   :22.50   Mean   :37.61   Mean   :213.0
 3rd Qu.:27.00   3rd Qu.:44.88   3rd Qu.:323.2
 Max.   :33.00   Max.   :55.00   Max.   :478.0
```

========================================================

```r
summary(fb)
```

```
     sex                length          head.l          head.w
 Length:34          Min.   :36.00   Min.   : 9.00   Min.   :4.500
 Class :character   1st Qu.:57.00   1st Qu.:12.00   1st Qu.:5.000
 Mode  :character   Median :59.25   Median :12.75   Median :6.000
                    Mean   :58.01   Mean   :12.68   Mean   :5.794
                    3rd Qu.:61.38   3rd Qu.:13.50   3rd Qu.:6.500
                    Max.   :70.00   Max.   :15.50   Max.   :7.500
     neck.g         chest.g          weight
 Min.   :10.50   Min.   :19.00   Min.   : 48.0
 1st Qu.:17.12   1st Qu.:29.12   1st Qu.:115.0
 Median :19.00   Median :33.25   Median :141.0
 Mean   :18.81   Mean   :33.24   Mean   :149.2
 3rd Qu.:20.50   3rd Qu.:35.00   3rd Qu.:173.5
 Max.   :28.00   Max.   :48.00   Max.   :356.0
```

========================================================

```
[1] "sex"     "length"  "head.l"  "head.w"  "neck.g"  "chest.g" "weight"
```

```

Call:
lm(formula = weight ~ ., data = bears)

Residuals:
    Min      1Q  Median      3Q     Max
-66.995 -15.474  -4.438  13.812 126.953

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept) -229.6235    26.3046  -8.729 9.95e-14 ***
sexmale        1.9170     7.4868   0.256  0.79847
length        -0.1487     0.9020  -0.165  0.86937
head.l        -4.5087     3.8297  -1.177  0.24208
head.w         1.0700     4.1777   0.256  0.79842
neck.g         6.5523     2.0799   3.150  0.00219 **
chest.g        9.4822     1.1962   7.927 4.82e-12 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 32.27 on 93 degrees of freedom
Multiple R-squared:  0.922,	Adjusted R-squared:  0.917
F-statistic: 183.2 on 6 and 93 DF,  p-value: < 2.2e-16
```

```

Call:
lm(formula = weight ~ ., data = bears)

Coefficients:
(Intercept)      sexmale       length       head.l       head.w
  -229.6235       1.9170      -0.1487      -4.5087       1.0700
     neck.g      chest.g
     6.5523       9.4822
```

========================================================

```r
ggplot(data = bears, aes(x = weight, y =  neck.g )) +
  geom_point() +
  theme_bw() +
  stat_smooth(method = "lm", formula = y ~ poly(sqrt(x), 1))
```

![plot of chunk unnamed-chunk-4](Bears-figure/unnamed-chunk-4-1.png)

========================================================

```r
ggplot(data = bears, aes(x = weight, y = chest.g  )) +
  geom_point() +
  theme_bw() +
  stat_smooth(method = "lm", formula = y ~ poly(sqrt(x), 4))
```

![plot of chunk unnamed-chunk-5](Bears-figure/unnamed-chunk-5-1.png)

========================================================

```r
ggplot(data = bears, aes(x = weight, y =  chest.g )) +
  geom_point() +
  theme_bw() +
  stat_smooth(method = "lm", formula = y ~ poly(x, 1))
```

![plot of chunk unnamed-chunk-6](Bears-figure/unnamed-chunk-6-1.png)

What I have learned
========================================================

I can make a website using R studio and git hub.

First

open and create a text file save it _site.yml

Second

name the site from your project

 name: "Mitchell-Holman.github.io"
output_dir: "."

========================================================

Third

create navbar
navbar:

  title: "Mitchell Holman"
  left:
  - text: "Bike Project"
    href: Projects.html
  - text: "Hobbies"
    href: hobs.html
  - text: "Time Series"
    href: Time.html
  right:
  - icon: fa-github fa-lg
    href: https://github.com/Mitchell-Holman/Mitchell-Holman.github.io
output:
  html_document:
    theme: yeti

now build your site

========================================================


text:
---
author: "Chi Zhang"
author_url: ""
date: "2017-01-27 15:00:00 +0000 UTC"
location: "Amphi GALOIS"
title: "Complexation of heavy metals on edge surfaces of 2:1 clay minerals: insight from FPMD simulations"
author_filiation: "State Key Laboratory for Mineral Deposits Research, School of Earth Sciences and Engineering, Nanjing University, P.R. China"
author_filiation_url: ""
type: "spécialisé"
author2: ""
author_url2: ""
author_filiation2: ""
author_filiation_url2: ""
title2: ""
category: "seminar"
layout: "seminar"
---
Clay minerals distribute widely in soil and sediments, and play crucial roles in transport and retention of heavy metal cations. They are widely applied as adsorbent materials in environmental engineering and have been considered as backfill materials in geological disposal sites for nuclear wastes. Lots of experiments have focused on the adsorption of cations on clay minerals. However, owing to many factors these studies cannot give atomic-scale information, which greatly limits the understanding of relevant interfacial processes. Therefore, it is imperative to uncover the underlying adsorption mechanism by theoretical methods.

In the pursuit of a microscopic understanding of the complexation of heavy metal cations on clay edges, systemic first principles molecular dynamics (FPMD) simulations were conducted to investigate Ni(II) complexes on edge surfaces of 2:1-type phyllosilicates. With constrained FPMD and pKa calculation method, the complexation mechanism of Ni(II) is derived, including complexing structures, free energies, and the protonation states of surface complexes. These results are useful in future experimental and modeling researches, e.g., in interpreting experimentalobservations and building theoretical models.

repository: aphecetche/gatsby-subatest

repo_name: aphecetche/gatsby-subatest


text:
# Glip Bot Bootstrap

[![Stack Overflow][stackoverflow-svg]][stackoverflow-url]
[![Chat][chat-svg]][chat-url]

## Overview

This is a simple tool to help you get your team's Glip bot off the ground.

Right now this supports creating a webhook subscription if you have the following:

1. Configured bot app in [RingCentral Developer Portal](https://developer.ringcentral.com)
1. A bot access token
1. A running bot that response on the webhook URL with the `Validation-Token` header

## Usage

### As-is

Go to: [https://grokify.github.io/glip-bot-bootstrap](https://grokify.github.io/glip-bot-bootstrap)

### Customize

You can customize this yourself by cloning the repo and running this locally:

```
$ git clone https://grokify.github.io/glip-bot-bootstrap
```

Then you can start a local http server, such as [`http-server` on NPM](https://www.npmjs.com/package/http-server):

```bash
$ npm install http-server -g
$ http-server glip-bot-bootstrap
```

The go to https://localhost:8080 in your browser, assuming `http-server` is running on port 8080.

## More Reading

Additional information and reading is available here:

1. [Glip Bot Developer Guide](http://ringcentral-api-docs.readthedocs.io/en/latest/glip_bots/)
1. [Deploy a Glip chatbot to AWS Lambda](https://medium.com/ringcentral-developers/deploy-a-glip-bot-to-aws-lambda-60a2a09ddcd4)
1. [Latest Glip bot provision flow](https://medium.com/ringcentral-developers/latest-glip-bot-provision-flow-a626a8dd0d98)

 [license-svg]: https://img.shields.io/badge/license-MIT-blue.svg
 [license-url]: https://github.com/grokify/ringcentral-sdk-ruby/blob/master/LICENSE.md
 [chat-svg]: https://img.shields.io/badge/chat-on%20glip-orange.svg
 [chat-url]: https://glipped.herokuapp.com/
 [stackoverflow-svg]: https://img.shields.io/badge/Stack%20Overflow-ringcentral-orange.svg
 [stackoverflow-url]: https://stackoverflow.com/questions/tagged/ringcentral

repository: tylerlong/glip-bot-bootstrap

repo_name: tylerlong/glip-bot-bootstrap


text:
#### logstash-test

Basic little program to send log data over to Logstash. It randomly selects a
[Zippy the Pinhead](http://www.zippythepinhead.com/) quote and logs it.

Simple.

```
Usage of ./logstash-test:
  -logstash string
    	logstash server
  -sleep int
    	time to sleep in seconds (default 5)
```

repository: nshttpd/logstash-test

gha_language: Go

repo_name: nshttpd/logstash-test


text:
# Google Dialogflow fulfillment webhook for BMW car models info

This webhook will provide info about BMW cars models.

This webhook service is built with Google [dialogflow-fulfillment] library  and with [SailsJS]

## Setup

* Sign up for or sign into Dialogflow and create a agent
* Go to your agent's settings and Restore from zip using the dialogflow-agent.zip in this directory (Note: this will overwrite your existing agent)
* Then go to fulfillment and insert the following Webhook URL: `https://webhook-bmw-models.herokuapp.com/api/bmwmodels`
* input something like "I want info about The BMW 6 Series Gran Turismo" or "give me info about The BMW 3 Series"

## Test it locally - & how to Boost your development speed

run SailsJS with

    $ npm install
    $ node app.js

Your service will be available on http://localhost:1337

the webhook is available at the URI path `/api/bmwmodels`

BUT

Due the fact your webhook must be obviously hosted on a public address, you cannot use localhost, you shall instead use a public instance.
So you should redeploy your service each time you do a change, if you want save time you can use the continuous integration with a platform like [heroku].
But you spend few second to commit every changes :)

So why don't create a temp link public address with the HTTP tunnelling with [ngrok]?
open another terminal and intall & execute ngrok

    $ npm install ngrok -g
    $ ngrok http 1337

(the port is the same of the SailsJS process )

You will obtain an univocal address like "http://code_alphanumeric.ngrok.io" that will point to your local server instance, this will save you a lot of time.

Copy the nkrok address (http://code_alphanumeric.ngrok.io/api/bmwmodels) and use it in your dialogflow Fulfillment/Webhook section.

Another suggestion is tu use nodemon to run your sailsJS app, so at each change you will have your  app automatically redeployed,

so

    $ npm install -g nodemon
    $ nodemon app.js

NodeJS server will be up on http://localhost:1337 exposing your SailsJS app

you have done.

## License

MIT

[SailsJS]: <https://sailsjs.com>
[heroku]:<https://www.heroku.com>
[ngrok]: <https://ngrok.com/>
[dialogflow-fulfillment]: <https://github.com/dialogflow/dialogflow-fulfillment-nodejs>


text:
npmgraph
========

[Visualization of npm dependencies](http://www.yasiv.com/npm#view/bower). This is the souce code behind visualization.

Usage
-----

```shell
git clone git://github.com/anvaka/npmgraph.git
cd ./npmgraph
npm install
bower install
grunt server
```

repository: damianprzygodzki/npmgraph

repo_name: damianprzygodzki/npmgraph


text:
## 6.0.1 (2021-10-11)

- Deprecated this package in favor of [raspi-soft-pwm](https://github.com/nebrius/raspi-soft-pwm)

## 6.0.0 (2018-4-21)

- Updated pigpio to v1
- BREAKING CHANGE: dropped support for Node.js 4

## 5.0.0 (2017-9-12)

- POTENTIALLY BREAKING CHANGE: renamed the following private properties to begin with an underscore because I just learned TypeScript doesn't do anything to hide private properties. Don't use these properties, changes may not be semver-major next time.
    - `PWM.frequencyValue` -> `PWM._frequencyValue`
    - `PWM.dutyCycleValue` -> `PWM._dutyCycleValue`
    - `PWM.pwmPort` -> `PWM._pwmPort`
    - `PWM.pwm` -> `PWM._pwm`
- BREAKING CHANGE: dropped support for Node.js < 4.0.0, and now enforce it via package.json "engines" field.
- SORT OF BREAKING-ISH CHANGE: dropped support for attempting to install on non-arm platforms via package.json's "cpu" field.
    - Attempting to install this on a non-Raspberry Pi platform before gave a bunch of obtuse errors, so this doesn't _actually_ change the ability to install raspi-pwm, but does make it fail earlier and harder.

## 4.0.2 (2017-4-25)

- Fixed a bug in the TypeScript definitions that said `frequencey` was required when in reality it's not.

## 4.0.1 (2017-4-23)

- Updated documentation

## 4.0.0 (2017-4-23)

- Removed Wiring Pi and replaced it with pigpio.
- BREAKING CHANGE: removed the `range` and `clockDivisor` constructor options and instance properties
- Added `frequency` constructor option and instance property. Replace the use of `range` and `clockDivisor` with this property.
- BREAKING CHANGE: `write` now takes a floating point number between 0 and 1, instead of an integer between 0 and 1024.

## 3.1.3 (2017-22-1)

- Publishing a new version to update the README on npmjs.com. No other changes.

## 3.1.2 (2016-12-21)

- Fixed a TypeScript API definition bug where the constructor config was not marked as optional
  - Note: this does not affect functionality unless you were using the TypeScript definition

## 3.1.1 (2016-12-3)

- Converted the project to TypeScript and cleaned up a bunch of odds and ends
  - Note: there is no functionality change or bug fixes with this release

## 3.1.0 (2016-7-7)

- Switched dependency ranges to ^
- Bumped dependencies to bring in support for a new Raspberry Pi Zero revision

## 3.0.0 (2016-3-20)

- Dependency update to fix bug
  - POTENTIALLY BREAKING CHANGE: using the identifier `PWM1` now maps to Wiring Pi pin 23, not 24
- New build system

## 2.3.1 (2016-3-7)

- Dependency update to add missing Raspberry Pi 3 Model B revision

## 2.3.0 (2016-3-4)

- Updated dependencies to add Raspberry Pi 3 Model B support

## 2.2.0 (2016-2-18)

- Added `range` and `clockDivisor` accessors

## 2.1.0 (2015-12-8)

- Updated dependencies to add Raspberry Pi Zero support

## 2.0.0 (2015-10-20)

- Upgraded to NAN 2
  - POTENTIAL BREAKING CHANGE
  - The API has not changed, but the build requirements have
  - Make sure you are running Raspbian Jessie because this module no longer builds on stock Raspbian Wheezy
  - See https://github.com/fivdi/onoff/wiki/Node.js-v4-and-native-addons for more information

## 1.4.0 (2015-10-13)

- Exposed clock and range properties
- Dependency updates to fix bug with invalid pin aliases
- Updated build dependencies

## 1.3.3 (2015-9-3)

- Dependency updates to fix a bug with pin aliasing

## 1.3.2 (2015-7-16)

- Updated dependencies
- Updated the repository links to point to their new location
- Added a contributing guide
- Added code linter
- Update code style to use newer best practices

## 1.3.1 (2015-3-17)

- Dependency update to fix a bug with destroying peripherals

## 1.3.0 (2015-2-21)

- Switched from traceur to babel for ES6->ES5 compilation

## 1.2.2 (2015-2-20)

- Fixed a bug with mismatched versions of the traceur runtime
- Skipped 1.2.1 because of a typo on my part when publishing (oops)

## 1.2.0 (2015-2-20)

- Removed prebuilt binary support as there are now multiple targets (need to use node-pre-gyp)
- Upgraded NAN to get support for Node.js 0.12
  - io.js support is theoretically there, but won't work until https://github.com/TooTallNate/node-gyp/pull/564 is landed

## 1.1.0 (2015-2-13)

- Added support for multiple PWMs. Note: the API was extended, but is backwards compatible with 1.0.x releases

## 1.0.5 (2015-2-12)

- README updates

## 1.0.4 (2015-1-21)

- Locked down the NAN version for now since code breaks on 1.5

## 1.0.3 (2015-1-8)

- Added pre-built lib so users don't have to compile on their own Raspberry Pis.

## 1.0.2 (2014-12-29)

- Added docs
- Switched to using the 'PWM0' pin nomenclature

## 1.0.1 (2014-12-6)

- Critical bug fix (why did I even publish 1.0.0?)

## 1.0.0 (2014-11-28)

- Initial implementation

repository: nebrius/raspi-pwm

repo_name: nebrius/raspi-pwm


text:
# Enlightenment

A simple yet fast light engine for Phaser (WebGL render).

# Example

![Screenshot](http://i.imgur.com/d9XeWld.jpg)

[Video demo](http://public.dun.ai/public/enlightenment.mp4)

# Demo

Check out the [live demo here](https://and3rson.github.io/enlightenment/)!

# Usage

Enlightenment consists of 3 main classes:

## `LightSystem` class

### `LightSystem([WIDTH, [HEIGHT, [DEBUG]]])`

This is the main class that you need to instantiate in order to spawn necessary shaders & render images.

- WIDTH/HEIGHT (optional): size of the off-screen image used to render the light map. The higher the resolution - the better the quality. I recommend using 256x256 as larger values have significant impact on the performance.
- DEBUG (optional): set to true to draw debug stuff.

```javascript
// Create light system
var lightSystem = new LightSystem(256, 256, true);

// Call this in your `update` method:
lightSystem.update();

// You *must* call this every time you add/move/remove lights or objects:
lightSystem.updateUniforms();
```

## `LightSource` class

### `LightSource(POSITION, RADIUS, INTENSITY, COLOR, [ANGLE_START, ANGLE_END])`

Represents a source of light. Has color, radius, strength and optional direction.

- POSITION: position of light source, must be instance of `Phaser.Point`
- RADIUS: radius of image.
- INTENSITY: how intensive is the light. 0 < INTENSITY <= 1
- COLOR: color of the light.
- ANGLE_START, ANGLE_END (optional): direction of the light cone. Defaults to `0, 0`. If not provided (i. e. bot values set to zero), the light will be emitted in all directions, otherwise the light will become directional and will be capped to provided angles.

```javascript
// Create light source
var lightSource1 = new LightSource(new Phaser.Point(200, 300), 500, 0.5, [1, 0, 0, 1]);

// Add light to scene
lightSystem.addLightSource(lightSource1);
lightSystem.updateUniforms();

// You can move it:
lightSource1.position.x = 100;
lightSource1.position.y = 200;
lightSystem.updateUniforms();

// ...or remove it:
lightSystem.removeLightSource(lightSource1);
lightSystem.updateUniforms();
```

## `LightedObject` class

### `LightedObject(POINTS)`

Represents an object that is "lighted", i. e. blocks light rays that are cast by light sources.

- ARRAY_OF_POINTS: array of `Phaser.Point` intances.

```javascript
// Create lighted object
var lightedObject1 = new LightedObject([ARRAY_OF_POINTS]);

// Add lighted object to scene
lightSystem.addLightedObject(lightedObject1);
lightSystem.updateUniforms();

// Remove lighted object to scene
lightSystem.removeLightedObject(lightedObject1);
lightSystem.updateUniforms();

// TODO: move & rotate lighted object
```

## Controlling the camera

You would probably want the light system to know where your camera is. Here's how you do it:

```javascript
// ...in your `update` method:
lightSystem.updateCamera(new Phaser.Point(X, Y));
// - X, Y: camera position.

// You *must* call these after any changes to light sources, lighted objects or camera.
lightSystem.updateUniforms();
lightSystem.update();
```

## Rotating the light source

Directional lights can be rotated using `setRotation(ANGLE_IN_RADIANS)` method:

```javascript
lightSource1.setRotation(Math.PI / 2); // Rotates light by 90 degrees
lightSource1.setRotation(Math.PI / 2); // Does not do anything, the light is already at the same rotation
lightSource1.setRotation(Math.PI / 4); // Rotates light by -45 degrees so that now it is at 45 degrees
lightSource1.setRotation(Math.PI); // Rotates light by 135 degrees so that not it is at 180 degrees
```

# Roadmap

- Rotating the camera
- Moving & rotating `LightedObject`s
- Blurred edges (WIP)

# About & cntributing

My name is Andrew Dunai, and I like nice stuff.

I'm open to ideas, suggestions & contributions.

Please open a GitHub issue if you have something to say.

# License

The license is MIT.


text:
# kaleidoscope
A vibrant, colourful dark theme for Discord inspired by [the 2077 theme for VSCode](https://marketplace.visualstudio.com/items?itemName=Endormi.2077-theme 'Thanks, Endormi!').

![Main Preview](https://github.com/spinfish/images/blob/master/kaleidoscope/preview_1.png)

## Features
- Customizable status colours
- Custom codeblock styling (using HLJS)
- Reverts the Discord visual update (to the best of its capacity)

**IMPORTANT NOTE**: If you use the [Better Status Indicators plugin by Harley](https://github.com/griefMoDz/better-status-indicators 'really cool plogin btw') **please make sure the theme variables setting is enabled** (under `Customise`).

## Installation
#### Powercord
- Navigate to your `powercord` folder
- Go to `src > Powercord` and right click `themes`
- Select `Git Bash here` (as shown below) and then type

```shell
git clone https://github.com/spinfish/kaleidoscope
```

![Git Bash](https://media.discordapp.net/attachments/678012423067926539/835658793253470308/git_bash_here.png)

#### BetterDiscord
For a direct download, click [here](https://betterdiscord.app/Download?id=257). If you don't want that, do the following:

- Click [here](https://betterdiscord.app/theme/kaleidoscope)
- Press the big blue `Download` button
- Drag and drop the file into your `Themes` folder

## Acknowledgements
Huge thanks to **[endormi](https://github.com/endormi)** of course for inspiring me to make this, and to everyone who helped me out with CSS stuff in the Powercord server, most notably the following people:

- **[LuckFire](https://github.com/LuckFire/)** for their incredible [Midnight Mars theme](https://github.com/LuckFire/midnight-mars) and for all the time and help they've given me :]
- **[Doggybootsy](https://github.com/doggybootsy)** and **[void](https://github.com/voidfill)** for their useful tidbits of advice, extensive CSS knowledge and help with fixing various things :)
- **[emma 🌺](https://github.com/ghostlydilemma)** for explaining how inline CSS has a higher specificity than external CSS and for always being so kind ^-^
- **[katlyn](https://github.com/katlyn)** for showing me just how bad `!important` is and general helpful advice :>

Thank you to my mum for helping me choose the right colours and styles (she has a keen eye for that).<br>
And of course a huge thank you to the following people for the extras:

- **[NYRI4](https://github.com/NYRI4)** for [Discolored](https://github.com/NYRI4/Discolored)
- **[mr-miner1](https://github.com/mr-miner1)** for [Better Badges](https://github.com/mr-miner1/Better-Badges)
- **[Goose-Nest](https://github.com/Goose-Nest/)** for [RevertRebrand](https://github.com/Goose-Nest/GT-RevertRebrand)

Couldn't have done it without yall <3

## Extra previews
![Preview Two](https://github.com/spinfish/images/blob/master/kaleidoscope/preview_2.png)
![Preview Three](https://github.com/spinfish/images/blob/master/kaleidoscope/preview_3.png)


text:
# _Landing Pages_

#### _Epicodus CSS Week 1 project_

#### By _**Jeff Seymour & Oskar Radon**_

## Description

_Remake landing pages of Thankful and Bucketlistly using HTML and CSS (no Bootstrap or other frameworks)_

### License

*MIT License*

Copyright (c) 2016 **_Jeff Seymour & Oskar Radon_**

repository: jeffsdev/cssLandingPages

repo_name: jeffsdev/cssLandingPages


text:
ldif-csv-conv — LDIF to CSV and vice versa
==========================================

These two scripts can convert datasets between the LDIF (LDAP Data Interchange
Format) and CSV (Comma-Separated Values) formats, in both directions, without
losing information.
(Comments in the LDIF are not preserved; ordering of multi-value attributes is
preserved.)

## LDIF to CSV

    ./ldif2csv data.ldif > data.csv

or

    ./ldif2csv < data.ldif > data.csv

## CSV to LDIF

    ./csv2ldif data.csv > data.ldif

or

    ./csv2ldif < data.csv > data.ldif

## Notes (format, etc)

* The CSV files use `;` as the cell separator, enclose all cells in `"` (with
  `"`s in the input represented as `""`) and separate the values of a
  multi-value attribute with `|`:

    "dn";"email";"objectclass"
    "uid=johndoe,dc=example,dc=com";"johndoe@example.com";"inetOrgPerson|top"

  The `""` escaping allows you to use both `;` and `"` in your data. If you
  need to use `|`, you'll have to edit the `JOINER` definition in both script
  files.
  `ldif2csv` will examine your data and output suggestions for unused
  characters that could be used as joiners or delimiters.

* Individual attribute values¹ longer than 499 bytes (think `jpegphoto`s) are
  split off into individual files to keep the CSV small.
  They are referenced as `FILE=dn=…,attr=…,id=…` in the respective CSV cell. If
  this format is kept intact, they will be reintegrated into the LDIF by
  `csv2ldif`.
  The user is free to manually insert or modify these `FILE=…` references — if
  they point to a valid file, they will be followed; if not, the converter will
  crash and burn. Enjoy!
  (¹ Note that this means you can have a mixture of "direct" and "referenced"
  values in the same cell.)

## Known issues

* Conversion from CSV to LDIF is very slow when the input contains a lot of
  binary data (e.g. `jpegphoto` attributes).
* *Error handling? What's that?*
  If something goes wrong, you'll get your usual Python exception stack trace.


text:
# Exercise 013 - Create a PVC and see details of bounded PV - Solutions

---

1. Login as developer on the cluster and create a project named 'pvc-test':

   ```console
   > oc login -u developer
   Logged into "https://api.crc.testing:6443" as "developer" using existing credentials.

   > oc new-project pvc-test
   Now using project "pvc-test" on server "https://api.crc.testing:6443".
   ```

   Write a yaml with the PersistentVolumeClaim definition:

   ```console
   > cat myclaim.yml
   ```

   ```yaml
   kind: PersistentVolumeClaim
   apiVersion: v1
   metadata:
     name: myclaim
   spec:
     accessModes:
       - ReadWriteOnce
     resources:
       requests:
         storage: 2Gi
   ```

   Create the claim on the cluster:

   ```console
   > oc create -f myclaim.yml
   persistentvolumeclaim/myclaim created
   ```

2. Check the state of the PersistentVolumeClaim:

   ```console
   > oc get pvc
   NAME      STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
   myclaim   Bound    pv0016   100Gi      RWO,ROX,RWX                   51s
   ```

   Seems the claim bounds to the PersistentVolume pv0016. Show details of the
   claim:

   ```console
   > oc describe pvc myclaim
   Name:          myclaim
   Namespace:     pvc-test
   StorageClass:
   Status:        Bound
   Volume:        pv0016
   Labels:        <none>
   Annotations:   pv.kubernetes.io/bind-completed: yes
                  pv.kubernetes.io/bound-by-controller: yes
   Finalizers:    [kubernetes.io/pvc-protection]
   Capacity:      100Gi
   Access Modes:  RWO,ROX,RWX
   VolumeMode:    Filesystem
   Used By:       <none>
   Events:        <none>
   ```

3. Check the available PersitentVolumes on the cluster:

   ```console
   > oc get pv
   Error from server (Forbidden): persistentvolumes is forbidden: User "developer" cannot list resource "persistentvolumes" in API group "" at the cluster scope
   ```

   PersistentVolume resources are managed only by admins, and are usually not
   available for developers. Login as the kubeadmin user:

   ```
   > oc login -u kubeadmin
   Logged into "https://api.crc.testing:6443" as "kubeadmin" using existing credentials.
   ```

   Then obtain the list of the available PersistentVolumes:

   ```console
   > oc get pv
   NAME     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM                                                 STORAGECLASS   REASON   AGE
   pv0001   100Gi      RWO,ROX,RWX    Recycle          Bound       openshift-image-registry/crc-image-registry-storage                           13d
   pv0002   100Gi      RWO,ROX,RWX    Recycle          Available                                                                                13d
   pv0003   100Gi      RWO,ROX,RWX    Recycle          Available                                                                                13d
   pv0004   100Gi      RWO,ROX,RWX    Recycle          Available                                                                                13d
   pv0005   100Gi      RWO,ROX,RWX    Recycle          Available                                                                                13d
   ...
   ```

   Then show the details of the pv0016:

   ```console
   > oc describe pv pv0016
   Name:            pv0016
   Labels:          volume=pv0016
   Annotations:     <none>
   Finalizers:      [kubernetes.io/pv-protection]
   StorageClass:
   Status:          Available
   Claim:
   Reclaim Policy:  Recycle
   Access Modes:    RWO,ROX,RWX
   VolumeMode:      Filesystem
   Capacity:        100Gi
   Node Affinity:   <none>
   Message:
   Source:
       Type:          HostPath (bare host directory volume)
       Path:          /mnt/pv-data/pv0016
       HostPathType:
       Events:
       Type    Reason          Age   From                         Message
       ----    ------          ----  ----                         -------
       Normal  RecyclerPod     3m4s  persistentvolume-controller  Recycler pod: Successfully assigned openshift-infra/recycler-for-pv0016 to crc-4727w-master-0
       Normal  RecyclerPod     3m2s  persistentvolume-controller  Recycler pod: Add eth0 [<IP_ADDRESS>/23]
       Normal  RecyclerPod     3m1s  persistentvolume-controller  Recycler pod: Container image "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:ffadee3c5e06edab18f0661d768314bcdd88c5c0d65814097bc3e95b00e2c714" already present on machine
       Normal  RecyclerPod     3m1s  persistentvolume-controller  Recycler pod: Created container recycler-container
       Normal  RecyclerPod     3m    persistentvolume-controller  Recycler pod: Started container recycler-container
       Normal  VolumeRecycled  3m    persistentvolume-controller  Volume recycled
   ```

repository: mmul-it/training

gha_language: Dockerfile

repo_name: mmul-it/training


text:
---
layout: default
overview: true
title: Tuplex Home
---
What is Tuplex?
---------------

Tuplex is a statically compiled, imperative, strongly typed programming language with innovations in semantics, data representation, and syntax.

It features a sophisticated and unified generic type system.

It strives to be easy to write, easy to read, easy to avoid memory and concurrency bugs, while being fast to execute.

Tuplex originated as a research project with a two-fold purpose:

* Designing a uniform, easy to write and read syntax, with powerful and efficient array, tuple, and custom container handling

* A language test bed for developing a proof-of-concept of dataspaces which guarantee data race safety in concurrent programs

The compiler is developed using LLVM, enabling it to use LLVM's extensive suite of optimizations and hardware targets.

Hello World Example
-------------------

Not beating around the bush, this is the Hello, World! program in Tuplex:

    main():
        print( "Hello, world!" )

The syntax is a relative of C, Java, and Python, with some influences from Rust, Go, and Ada.

Notes
-----

### Status

The language and compiler is in a working state. The foundation library is already fairly extensive and makes use of the language's most advanced features. There is also a very easy-to-use foreign function interface to C.

For version 0.5 the scanner was rewritten from scratch and the syntax overhauled in order to realize full support for significant whitespace, i.e. using indentation for program structure and making the use of {, }, and ; completely optional. This makes the syntax muchmore visually light-weight has been a goal from the start but was hard to implement with Flex, the original scanner generator.

Tasks recently completed:

- Full support for ranges, with syntactic sugar and for loop integration ( N..M  N..step..M )
- Rewrote first pass, the scanner, from scratch, and support for indentation-based program structure
- Debugging information has been added. A Tuplex program can now be stepped and inspected in your favorite debugger
- Basic type reflection and safe runtime type casting and conditionals
- Completed handling of dynamic-length and nested arrays
- Completed uniform handling of equality and assignment, including of nested array
- The type resolution system has been refactored, both simplyfying the codebase and boosting performace >10x

Remaining major tasks until milestone 1, fully working and consistent core language:

- Safe object initialization, including automatic constructor generation

### About Easiness

What does the Tuplex design consider "easy to write and read" to mean?

    Uniformity of syntax - the same construct having the same syntax regardless of context

    Orthogonality - basic constructs being semantically independent and intuitive to combine

    Little or no boilerplate

    Simple / straight-forward logic should be intuitive to write and read

    The syntax should be visually light-weight and aid (not obfuscate) the programmer's understanding

repository: TuplexLanguage/site

repo_name: TuplexLanguage/site


text:
# Content

This reposity contains supplementary source code for the paper "On the Robustness of the
Backdoor-based Watermarking in Deep Neural Networks".
We distribute our code-base to replicate the black-box and white-box watermark removal
attacks presented in the paper on MNIST and CIFAR-10.

# Setup
We use Tensorflow 1.15 and Keras 2.3.0.
It is advisable to install Tensorflow with GPU support, as the experiments may take
several hours.
More detailed descriptions for the experiments can be found in the notebooks.

1.) Clone the repository

```
 git clone https://github.com/CodeSubmission642/WatermarkRobustness
```
2.) Install the requirements
```
 cd WatermarkRobustness
 pip install -r requirements.txt
```

3.) Start the Jupyter notebook and connect to the notebook in your browser.
```
 jupyter notebook
```


text:
---
title: 'Becoming Syonan'
permalink: /former-ford-factory/whatson/exhibition-syonan/
breadcrumb: 'Becoming Syonan'
third_nav_title: 'What''s On'

---

![Becoming Syonan](/images/formerford/redmap.png)

### BECOMING SYONAN

After the British surrender, Singapore was renamed Syonan-to, or 'Light of the South'. The Japanese Occupation was a period of suffering and unfulfilled promises. Through the personal items and oral history recollections on display, find out about the diverse wartime experiences and the different ways people responded to these challenges.

### SOOK CHING

![Sook Ching](/images/formerford/sookching.jpg)

Three days after the British surrender of Singapore, the Japanese carried out a mass screening of the Chinese community to sieve out suspected anti-Japanese elements, marking the beginning of a fearful period of state-sanctioned violence. Through oral history accounts, learn about the harrowing experiences of those who were screened and escaped the killings.

### SURRENDER ROOM

![Sook Ching](/images/formerford/nippon.jpg)

### NIPPONISATION

Learn about the grandiose promise of a Greater East Asia Co-Prosperity Sphere, and the daily lives of ordinary people, who tried to get by under trying conditions by resisting their oppressors.Step back in time in the boardroom of Ford Motor Factory where Lieutenant-General Arthur E. Percival of the British forces surrendered on 15 February 1942. Through the use of archival footages and records, visitors are able to witness the events leading up to the surrender.

repository: isomerpages/nlb-nas-corporate

branch_name: refs/heads/staging

gha_license_id: NOASSERTION

repo_name: isomerpages/nlb-nas-corporate


text:
---

Anything between the parentheses of `console.log()` are printed to the terminal.

So this:

```js
console.log('hello');
```

prints `hello` to the terminal.

Currently we are printing a **string** of characters to the terminal: `hello`.

Run `$ADVENTURE_COMMAND` in the console to choose the next challenge.

---

repository: mosbth/learnnodeserver

repo_name: mosbth/learnnodeserver


text:
# r/destiny bot

Reddit automation bot to post daily moderator threads. Written in Python3 with PRAW. This Reddit bot will create a daily thread asking for news links and likely more in the future™.

## Configure It

1. copy `.example.env` to `.env`

2. Get a Reddit account + app tokens at https://ssl.reddit.com/prefs/apps/
2.1. Make the Reddit a subreddit moderator with `Posts` permissions
```
REDDIT_CLIENT_ID=
REDDIT_CLIENT_SECRET=
REDDIT_USER_AGENT=destinyggbot 0.01 -<EMAIL_ADDRESS>REDDIT_USERNAME=destinyggbot
REDDIT_PASSWORD=
```
3. Configure the subreddit settings
```
REDDIT_SUBREDDIT=Destiny
REDDIT_FLAIR_ID=24539a60-c72a-11e5-8462-0e738b837a3d
REDDIT_TTL_MINS=1440
```
4. Set streamers local timezone
```
LOCALE_TIMEZONE=America/Los_Angeles
```
5. Configure DB settings. Set `SQLITE_FAILURE_STALL` to `false` on first setup
```
SQLITE_DATABASE=reddit.sqlite
SQLITE_FAILURE_STALL=true
```
## Personalize it

Edit `template.md`. This file is read and used for the subreddit post. Supports full Reddit markdown: https://www.reddit.com/wiki/markdown

## Set Up

Install dependencies (and a venv)
```Bash
python3 -m pip install -r requirements.txt
```

## Running

This script is configured to run as a cronjob, an example is:

```
0 * * * * (cd /home/bots/rdestinybot; /usr/local/bin/python3.8 app.py)
```

This will run the job hourly at the start of the hour.

repository: destinygg/rdestinybot

repo_name: destinygg/rdestinybot


text:
---
layout: post
title: Excluding subjects aged less than 10 - subsetting data
---

Here I want to exclude all people aged less than a certain value, 11 years old in this case as I am working on five-a-day values and there is no guidance for people aged 10 or less

```
#Generate some values
(age <- runif(100,1,50))
#Generate some ids
id <- seq(1:100)
#stick these together and save to a data frame called df
df <- data.frame(id,age)
#keep all ids whose age is greater than 10
df <- subset(df, age > 10)
```


text:
# shan

koa with Promise-based middleware

## Installation

```
$ npm install shan
```

## Usage

You may need `babel-node` to run following code (for async arrow function).

```js
const shan = require('shan')
const favicon = require('koa-favicon')

let app = shan()

app.use(favicon())

app.use(async (ctx, next) => {
    let start = Date.now()

    await next(ctx)

    ctx.response.set('X-Response-Time', (Date.now() - start) + 'ms')
})

app.use(ctx => {
    ctx.response.body = 'hello'
})

app.listen(4321)
```

## About

This is an application inherits from koa but override `app.use` to accept promise-based middleware instead of generator-based middleware.

If generator-based middleware (all koa middleware) is given, then `app.use` will convert it to promise-based middleware implicitly. Therefore,
you can use any generator-based middleware from koa ecosystem, e.g. `app.use(require('koa-favicon')())`.

## Promise-based Middleware

Promise-based middleware is a function with two arguments, `ctx` and `next`, and return a `any` or `Promise<any>`.
If `any` is returned, it will be wrapped to Promise using `Promise.resolve(value)`. If there is any exception, the
error will be wrapped to Promise using `Promise.reject(error)`.

* `ctx` is just instance of KoaContext.
* `next` contains info about next middleware. To invoke next middleware, just call `next(ctx)`. It will return a `Promise<any>` result from next middleware.

```js
// ctx: KoaContext
// next: (KoaContext) => Promise<any>

app.use((ctx, next) => {
    console.log(1)
    return next(ctx).then(() => {
        console.log(8)
    })
})

// use async arrow function, may need help from babel
app.use(async (ctx, next) => {
    console.log(2)
    await next(ctx)
    console.log(7)
})

// use co
app.use(co.wrap(function* (ctx, next) {
    console.log(3)
    yield next(ctx)
    console.log(6)
}))

// use bluebird
app.use(Bluebird.coroutine(function* (ctx, next) {
    console.log(4)
    yield next(ctx)
    console.log(5)
}))
```

## Utility Middleware

A few utility middleware are included for convenience.

#### Logger Middleware

Print request message to console when it flows through.

```js
app.useLogger(ctx => `> ${ctx.method} ${ctx.path}`)

// it's equivalent to

app.use((ctx, next) => {
    console.log(`> ${ctx.method} ${ctx.path}`)
    return next(ctx)
})
```

#### Router Middleware

Simple router with fluent interface.

```js
app.useRouter(it => it
    .get('/', (ctx, next) => {

    })
    .post('/signup', (ctx, next) => {

    })
    .all('/repos/:id', (ctx, next) => {

    })
    .route('/users/:id', {
        get: (ctx, next) => {

        },
        post: (ctx, next) => {

        },
        delete: (ctx, next) => {

        }
    })
)
```

#### Tracer Middleware

Profiling time spent within in one or multiple middleware.

```js
app.useTracer('name1')

app.use(async (ctx, next) => {
    await sleep(100)
    await next(ctx)
    await sleep(400)
})

app.useTracer('name2')

app.use(async (ctx, next) => {
    await sleep(200)
    await next(ctx)
    await sleep(300)
})

app.useTracer('name3')
```

It will provide info like following:

```
name1 | +0           |     +403.419
name2 |   +102.017   |   +305.734
name3 |     +202.964 | +0.449
```

#### Try Middleware

Shortcut for `try...catch...finally`.

```js
app.useTry({
    catch(ctx, err) {
        // catch block
    },
    finally(ctx) {
        // finally block
    }
})

// it's equivalent to

app.use(async (ctx, next) => {
    try {
        await next(ctx)
    }
    catch (err) {
        // catch block
    }
    finally {
        // finally block
    }
})

```

## License

MIT

repository: gyson/shan

repo_name: gyson/shan


text:
## Development Setup

* Start Twitch Developer Rig
    * Preview Extension Views / Browser View
    * "Start" Front end
* Start Pycharm (open twitch-ext project)

## Production Preparation

* Run `npm run build`
* Create zip and deploy to twitch ext "assets" via [extensions](|https://dev.twitch.tv/console/extensions)


text:
# Schema Validator
This package contains the schema validator. This validator works as a middle layer between a Node.js® server that is the
actual validation executor and the Submissions validation infrastructure. For more details on the JSON Schema
Validator see its GitHub repo [here](https://github.com/EMBL-EBI-SUBS/json-schema-validator).

## Model
The model contains the java representation of the *json-schema-validator* server error - `JsonSchemaValidationError` -
and the java representation of the request body to be sent to the validation server - `JsonSchemaValidationRequestBody`.

## Exceptions
The schema validator throws specific exceptions for unexpected errors:

- `JsonSchemaValidatorException` for any error when reaching the *json-schema-validator* server.

## Schemas
The schema validator does not hold the schemas used for the validation, these come from the DataType and Checklist objects

repository: EMBL-EBI-SUBS/validator-common

repo_name: EMBL-EBI-SUBS/validator-common


text:
randnumgen
====

This is a djangae project for randnumgen.

Running local development server
----

>  ./manage.py collectstatic
>  ./manage.py migrate
>  ./manage.py runserver

Deployment
----

>  ./manage.py collectstatic
>  gcloud app deploy app.yaml

Setting up djangae
----

Use of virtualenvwrapper is recommended.

* Install the Google Cloud SDK and install the app-engine-python-extras component
  * `gcloud component install app-engine-python-extras`
* Downgrade the SDK to the latest version supported by djangae (currently 170.0.0)
  * `gcloud components update --version 170.0.0`
* Use `mkvirtualenv -p$(which python2) ...` to set up a virtualenv
* Install `requirements/base.txt` into your virtualenv
  * `pip install -r requirements/base.txt`
* Install `requirements/vendor.txt` into a 'lib' folder in the project
  * `pip install -t lib -r requirements/vendor.txt`
* Add the SDK's `platform/google_appengine` dir to your virtualenv
  * `add2virtualenv /path/to/google-cloud-sdk/platform/google_appengine`
* Add the 'lib' dir to your virtualenv
  * `add2virtualenv lib`


text:
# Trakt.tv Playback Progress Manager

## *Update:* A web version is now available at [sharkykh.github.io/tppm](https://sharkykh.github.io/tppm/)!

This is a small Tkinter GUI application that allows a [Trakt.tv](https://trakt.tv) user manage the playback progress items stored in their account.

**[Reddit Post](https://www.reddit.com/r/trakt/comments/95rf3h/playback_progress_manager_python_application/?ref=share&ref_source=link)**

> If you use the scrobbling feature provided by Trakt.tv with your favorite media player (Kodi, for example), and stop in the middle of a movie or episode, it will send the current playback progress (or, how much of the media you watched) to Trakt.tv and store it there.
>
> It can cause some annoyances when syncing the progress back to devices, as currently there's no way (to my knowledge) to remove the playback progress items from Trakt.
>
> I created this small Python application for myself [...] to help me manage those.

## Supported Python versions
* 2.7
* 3.4
* 3.5
* 3.6
* 3.7

## Python requirements
* [trakt.py](https://github.com/fuzeman/trakt.py)

## Installation
Install requirements:
```shell
pip install -r requirements.txt
```

## Usage
Run `main.pyw`.
```shell
python main.pyw
```
**Note:** If you're using Windows, just double click the file.

## Troubleshooting
* If the application takes some time to load it's usually when Trakt.tv's response is slow, or the site is unavailable.

## Screenshot
![Screenshot](https://user-images.githubusercontent.com/10238474/50996863-cb4b5680-152b-11e9-9ec3-c21787289594.png)

repository: sharkykh/TraktPlaybackProgressManager

repo_name: sharkykh/TraktPlaybackProgressManager


text:
# Container startup failures

To run, type:

```
make test
```

Please see [here](https://gist.github.com/oberstet/4b9d2d898e4f0ba42d6d) for a complete log.

## Working

The working case.

## Module not found (Failure 1)

Crossbar.io can't load the user's application component, since the Python module can't be found.

Usually, the fix is to modify the Python module search path using the `options.pythonpath` configuration parameter.

## Class not found (Failure 2)

Crossbar.io can't load the user's application component, since while the Python module can be found, there is no class (or factory) within that module.

Usually, the fix is to use the correct class/factory name in the node configuration and/or Python module.

## Class instantiation failed (Failure 3)

The module and class configured was found, but calling the class constructor (or the factory) failed.

Usually, an exception escapes the class constructor or factory. You need to fix that.

## A callback raises an exception (Failure 4)

In this example, a user callback invoked by Autobahn (here, `onJoin`) raises an exception. This is fatal.

The fix is: don't let escape exceptions from callbacks.

## The component exits (Failure 5)

Here, we call the `leave()` method on the session to leave the realm, the disconnect the underlying transport. The component goes away, with it the container, and with it the whole node.

## The component exits (Failure 6)

The same as above, but we end only after some seconds.

## The transport cannot be established (Failure 7)

The transport from the container to the router worker could not be estabished. In this case, wrong port.

## The transport cannot be established (Failure 8)

The transport from the container to the router worker could not be estabished. In this case, wrong WebSocket URL (the trailing `ws` is missing to fit hte router configuration).

repository: crossbario/crossbar-examples

repo_name: crossbario/crossbar-examples