text:
# Usage

The Material Bottom Navigation is designed to be very customizable and pluggable. Instead of a big configuration object, it uses React's [Render Props](https://reactjs.org/docs/render-props.html) to render smaller, customizable Components. If you're new to React and/or Render Props, read the [article on render props](https://reactjs.org/docs/render-props.html) first – or simply dive into the Bottom Navigation and learn it by doing.

You will use render props for

* rendering a Tab (FullTab, IconTab or ShiftingTab).
* rendering an Icon.
* rendering a Badge.

## Step by Step Guide

### The basics

The `BottomNavigation` receives two main props:

* `tabs` is an array of tab objects. Read more about required keys in this object in the [documentation for the tabs array](./api/BottomNavigation.md#tabs)
* `renderTab` is a Render Prop which will be called for each tab, and you have to return a Component.

```js
import { View } from 'react-native'
import BottomNavigation from 'react-native-material-bottom-navigation'

export default class App extends React.Component {
  tabs = [
    {
      key: 'games',
      icon: 'gamepad-variant',
      label: 'Games',
      barColor: '#388E3C',
      pressColor: 'rgba(255, 255, 255, 0.16)'
    },
    {
      key: 'movies-tv',
      icon: 'movie',
      label: 'Movies & TV',
      barColor: '#B71C1C',
      pressColor: 'rgba(255, 255, 255, 0.16)'
    },
    {
      key: 'music',
      icon: 'music-note',
      label: 'Music',
      barColor: '#E64A19',
      pressColor: 'rgba(255, 255, 255, 0.16)'
    }
  ]

  render() {
    return (
      <View>
        <BottomNavigation
          renderTab={this.renderTab}
          tabs={this.tabs}
        />
      </View>
    )
  }

  renderTab = () => {
    return <View />
  }
}
```

This will render just the Bottom Navigation without any Tabs – because we're just returning a blank View Component.

Some notes on the `tabs` Array:

* `key` is required and should be a unique identifier for this tab.
* `barColor` defines the background color of the Bottom Navigation when this Tab is active.
* `pressColor` defines the color of the press feedback.
* The other keys (`icon` and `label`) are just payload, defined by you. You will use those two keys in the next section.

### Rendering a Tab

Now we will render a Tab instead of a blank View:

```js
import { View } from 'react-native'
import BottomNavigation, {
  FullTab
} from 'react-native-material-bottom-navigation'

export default class App extends React.Component {
  tabs = [
    {
      key: 'games',
      icon: 'gamepad-variant',
      label: 'Games',
      barColor: '#388E3C',
      pressColor: 'rgba(255, 255, 255, 0.16)'
    },
    {
      key: 'movies-tv',
      icon: 'movie',
      label: 'Movies & TV',
      barColor: '#B71C1C',
      pressColor: 'rgba(255, 255, 255, 0.16)'
    },
    {
      key: 'music',
      icon: 'music-note',
      label: 'Music',
      barColor: '#E64A19',
      pressColor: 'rgba(255, 255, 255, 0.16)'
    }
  ]

  render() {
    return (
      <View>
        <BottomNavigation
          renderTab={this.renderTab}
          tabs={this.tabs}
        />
      </View>
    )
  }

  renderTab = ({ tab, isActive }) => {
    return (
      <FullTab
        key={tab.key}
        isActive={isActive}
        label={tab.label}
        renderIcon={this.renderIcon}
      />
    )
  }

  renderIcon = ({ isActive }) => {
    return <View />
  }
}
```

The `renderTab` method will be called for each object in our `tabs` array. The method contains an object as parameter, with `tab` and `isActive`.

* `tab` is the tab object, which is currently being rendered. This is the exact same object from our `tabs` array.
* `isActive` tells us if the Tab is currently active.

We use those informations to return a [`FullTab`](./api/FullTab.md), which displays a label and an Icon. The Icon is once again a render prop, similar to the `renderTab` prop. For now we just return a blank `View`, as we did earlier for the Tab.

Instead of a [`FullTab`](./api/FullTab.md), you can also use:

* an [`IconTab`](./api/IconTab.md) which displays just an Icon.
* a [`ShiftingTab`](./api/ShiftingTab.md), which is a FullTab, but the active tab is bigger than the other tabs.
* a Component you created yourself! As a starting point, take a look at the [implementation of the IconTab](https://github.com/timomeh/react-native-material-bottom-navigation/blob/rewrite-cleanup/lib/IconTab.js).

### Rendering an Icon

The Icon can be any Component you want to use, for example [@expo/vector-icons](https://github.com/expo/vector-icons). In fact, the Material Bottom Navigation doesn't include an own Icon Component.

As you see above, the `renderIcon` prop only contains an object as argument with the `isActive` key. We pass more arguments to `renderIcon` using something called a _Thunk_: a function returning a function. This sounds complicated, but are just two small changes:

```js
// ...

renderTab = ({ tab, isActive }) => {
  return (
    <FullTab
      key={tab.key}
      isActive={isActive}
      label={tab.label}
      renderIcon={this.renderIcon(tab.icon)}
    />
  )
}

renderIcon = iconName => ({ isActive }) => {
  return <Icon size={24} color="white" name={iconName} />
}

// ...
```

And you're finished! You now should have a fully functional Bottom Navigation with nice animations.

### Rendering a Badge

The [`Badge`](./api/Badge.md) is a render prop on the Tab Component. You can render _anything_ inside a badge: e.g. a white dot, text, or simply nothing.

```js
import BottomNavigation, {
  FullTab,
  Badge
} from 'react-native-material-bottom-navigation'
// ...

renderBadge = badgeCount => {
  return <Badge>{badgeCount}</Badge>
}

renderTab = ({ tab, isActive }) => {
  return (
    <FullTab
      showBadge={tab.badgeCount > 0}
      renderBadge={this.renderBadge(tab.badgeCount)}
      key={tab.key}
      isActive={isActive}
      label={tab.label}
      renderIcon={this.renderIcon(tab.icon)}
    />
  )
}
```

You have two new props to render a badge:

* `renderBadge`, the render prop to render a badge
* `showBadge` which defines a condition if the badge should be rendered.

Check out the API Documentations of the different Tabs and for the [`Badge`](./api/Badge.md) to see more informations and additional props for Badges.

## Controlled Component

To use the Bottom Navigation as [Controlled Component](https://reactjs.org/docs/forms.html#controlled-components), you can use two additional props:

* `activeTab`: the key of the currently active tab.
* `onTabPress`: event handler when a Tab is being pressed, called with the key of the new and old tab as parameter.

```js
import BottomNavigation from 'react-native-material-bottom-navigation'

export default class App extends React.Component {
  state = {
    activeTab: 'games'
  }

  handleTabPress = (newTab, oldTab) => {
    this.setState({ activeTab: newTab })
  }

  render() {
    return (
      <View>
        <BottomNavigation
          activeTab={this.state.activeTab}
          onTabPress={this.handleTabPress}
          renderTab={/* ... */}
          tabs={/* ... */}
        />
      </View>
    )
  }
}
```

## Changing your screen

If you want to display different contents on your screen depending on the active tab, you can use the `onTabPress` prop and save the active tab in your state. Check out the Chapter [Controlled Component](#controlled-component).

You most likely want to use this together with a navigation library, e.g. [React Navigation](https://github.com/react-navigation/react-navigation/) or [React Native Navigation](https://github.com/wix/react-native-navigation).

repository: sunikal/Screens

repo_name: sunikal/Screens


text:
---
title: "Notate: Better Javascript callstacks"
date: 2016-06-28T18:40:17.484Z
path: /notate-better-javascript-callstacks/
tags:
  - open-source
  - javascript
  - nodejs
  - software
---

_[Originally covered in Part 4 of [my talk at the Seattle Node.js meetup on 7/24/2015](http://www.meetup.com/Seattle-Node-js/events/222999198/). [Direct link to original screencast](https://youtu.be/bMHB6zb9AXY?t=15m4s). [My original Dangerous Cliffs of Node.js post](/the-dangerous-cliffs-of-node-js/).]_

You might not have noticed it yet, but the [async event loop in Javascript](/node-js-is-not-magical/#3-evented-async) truncates the `stack` provided with your `Error` objects. And that makes it harder to debug both in the browser and in [Node.js](https://nodejs.org/). [My new library](https://github.com/scottnonnenberg/notate) helps you work around this.

## The problem

Say you're making a number of asynchronous calls all in parallel. Something like this ([full code available in my `blog-code` GitHub repo](https://github.com/scottnonnenberg/blog-code/tree/master/notate)):

```javascript
function fiveSteps(cb) {
  async.series([
    step1,
    step2,
    step3,
    step4,
    step5,
  ], function afterFiveSteps(err) {
    if (err) {
      return cb(err);
    }

    // do domain-specific stuff

    return cb();
  });
};
```

In each of those steps you call a low-level API, going to a database or to a server. What if an error happens in one of those steps? What information would we have to try to debug the problem?

Here's some code to simulate that - it uses probability to throw errors only sometimes:

```javascript
function callRemoteService(url, cb) {
  setTimeout(function() {
    if (_.random(0, 10) < 3) {
      return cb(new Error('Incorrect arguments supplied'));
    }

    return cb();
  });
};
```

Running this, we get a truncated callstack:

```text
Error: Incorrect arguments supplied
    at Timeout._onTimeout (/path/to/project/notate/1_five_steps.js:12:17)
    at tryOnTimeout (timers.js:224:11)
    at Timer.listOnTimeout (timers.js:198:5)
```

You might expect a number of calls starting from the invocation of the app, leading to the initial `setTimeout()` call. But those aren't present. All we see are the entries coming from the low level system kicking off the timer event in `timers.js`, then the line which had the `new Error()`. This also happens when going to the filesystem or to the web - try it out by replacing `setTimeout()` with an [`fs.readFile()`](https://nodejs.org/dist/latest-v6.x/docs/api/fs.html#fs_fs_readfile_file_options_callback).

With this minimal information, we know the specific line the error came from. But we don't know how we got there! We can't tell which of those five steps failed!

## Announcing: Notate

I've just released [`@scottnonnenberg/notate`](https://github.com/scottnonnenberg/notate), a library to solve this problem. In the above video I use its old incarnation, the [`Breadcrumbs`](https://github.com/thehelp/core/blob/master/src/both/thehelp-core/breadcrumbs.js) component of my [now-deprecated](/the-state-of-thehelp/) library [`thehelp-core`](https://github.com/thehelp/core/). I've learned some lessons since then. :0)

To start:

```bash
npm install --save-dev @scottnonnenberg/notate
```

## Feature: Stack augmentation

The first thing `@scottnonnenberg/notate` will do for you is augment your callstacks with enough information to debug tricky async situations. Let's add it to the `stepN()` functions listed above:

```javascript
var notate = require('@scottnonnenberg/notate');

function step2(cb) {
  callRemoteService(url, function afterStep2(err, result) {
    if (notate(cb, err)) {
      return;
    }

    return cb(null, result);
  });
}
```

Instead of the standard `if (err) { return cb(err); }` we use the default `notate()` function. It takes care of calling `cb` with the provided `err` if the `err` is truthy. Now we can be sure that our code won't crash the first time an error happens, no mis-typed or missing `cb()` call!

When an error happens, the `err.stack` gets an additional item for the `notate()` call:

```text
Error: Incorrect arguments supplied
    at **notate: afterStep2 (/path/to/project/notate/2_five_steps_with_notate.js:32:9)
    at Timeout._onTimeout (/path/to/project/notate/2_five_steps_with_notate.js:13:17)
    at tryOnTimeout (timers.js:224:11)
    at Timer.listOnTimeout (timers.js:198:5)
```

Now we can tell which step failed! But wait - there's more!

## Feature: Error metadata and pretty printing

Imagine what you might have done in the past to help debug this kind of error. I know what I did: I added more logging. The details of the arguments going into the API method, for example. When an error happened, I would dig through the rest of the log to figure out what might have caused the error.

I've come to believe that logging frequently ends up being counterproductive. You end up logging in too many places, repeating at every level: the server, the business logic, utility methods, the data access layer, and so on. With all that noise it gets harder and harder to find what you're looking for.

I have a solution for you. Instead of manually logging additional debugging data, add it to the error. Wherever you end up logging the error, you'll have the data you need.

To add data to an error, use the third parameter to `notate()`:

```javascript
var notate = require('@scottnonnenberg/notate');

function step2(url, cb) {
  callRemoteService(url, function afterStep2(err, result) {
    if (notate(cb, err, { url: url })) {
      return;
    }

    return cb(null, result);
  });
}
```

That `url` key will be merged into the error. Now that we have the data, we can log it out at the top level. This might be your [Express error handler](http://expressjs.com/en/guide/error-handling.html), or the top-level call in a CLI program:

```javascript
fiveSteps(function(err) {
  console.log(notate.prettyPrint(err));
});
```

Now you get more information with your error:

```text
{ [Error: Incorrect arguments supplied] url: 'https://someplace.com' }
    at **notate: afterStep2 (/3_five_steps_with_metadata.js:32:9)
    at Timeout._onTimeout (/3_five_steps_with_metadata.js:13:17)
    at tryOnTimeout (timers.js:224:11)
    at Timer.listOnTimeout (timers.js:198:5)
```

_Note: [`prettyPrint()`](https://github.com/scottnonnenberg/notate#api) will also limit the callstack to 10 entries by default, and remove the current working directory from the file paths._

## A word on browsers

This works nicely and predictably in Node.js. But what if you [`browserify`](http://browserify.org/) it or create a [Webpack](https://webpack.github.io/) build?

First I should warn that you will run into difficulty with minified code. The reported line numbers and function names won't mean much. However, the data you add to the error will still be present on the outputs of `prettyPrint()`, so I think it's worthwhile.

In development mode, you'll get an experience similar to the Node.js experience. The challenge is that modern module loaders put everything in one file. Naming your functions will really help here.

Notes on specific browser support:

* iOS down to version 7.0 passes all tests. Safari 6 and above pass all tests. Firefox and Chrome pass tests - nobody is using really old versions of these, right? :0) Check out [what all of the various callstacks look like](https://github.com/scottnonnenberg/notate/blob/master/examples.md).
* Internet Explorer 10 and 11 both work, but you'll need to keep in mind that [`new Error()` doesn't give you a callstack](https://msdn.microsoft.com/en-us/library/hh699850(v=vs.94).aspx). You need to `throw` the error after that to get the `stack` property you expect.
* IE9 and Safari 5 lack callstacks entirely, as do browsers older than that.
* IE9 and below require [`es3ify`](https://github.com/spicyj/es3ify) to ensure that un-quoted keywords like `default` don't prevent the javascript from running at all! Beyond that, my library uses [Babel's 'loose' mode](http://www.2ality.com/2015/12/babel6-loose-mode.html) to eliminate the use of `Object.defineProperty()` (broken in IE8 and below).

Lastly, I will say that [Sauce Labs](https://saucelabs.com/) was useful tool in verifying functionality across a wide variety of configurations. In particular, their [built-in support for Javascript unit tests](https://wiki.saucelabs.com/display/DOCS/JavaScript+Unit+Testing+Methods) made it easier, and the project has a [quick little script to schedule unit test jobs](https://github.com/scottnonnenberg/notate/blob/master/scripts/sauce_tests.js).

## Stability

Now, you may have started worrying:

> _"What? Some random third-party code in my error codepaths? What if it crashes?"_

It's a fair point. That's why I spent so much time investigating browser support, and used `try`/`catch` liberally in all three entrypoints. If something goes wrong, these are the worst case situations:

* `notate(cb, err, data, level)` - it will throw if `cb` is not a function, but that's a programming error which should be caught the first time the code is run. Beyond that, your provided `cb()` might be called with an `err` without modifications, or with incorrect modifications.
* `justNotate(err, data, level)` - it might not modify the error, or modify the error incorrectly.
* `prettyPrint(err, options)` - If not provided something other than an `Error`, it will simply return the result of `util.inspect()`. In the absolute worse case, it will return an empty string.

## Use it!

 Annotate errors and print all required information easily! Stop scattershot logging at every level, just log the error once!

And feel free to [let me know](https://github.com/scottnonnenberg/notate/issues) if you have any suggestions or feedback. :0)

---

_A little bit extra:_

* Using promises? Bluebird's `longStackTraces` feature gives you the full async stack trace you would expect: http://bluebirdjs.com/docs/api/promise.config.html
* `console.trace()` gives you a quick message and stack in Node.js and most browsers: https://nodejs.org/api/console.html#console_console_trace_message
* Capturing and reporting client-side errors:
  * https://errorception.com/
  * http://www.muscula.com/
* It's hard to get detailed errors from javascript loaded from another domain, even a sibling subdomain! http://blog.getsentry.com/2016/05/17/what-is-script-error.html
* Related:
  * A library to get stack traces even on downlevel browers: https://www.stacktracejs.com/#!/docs/stack-generator
  * Deep analysis of v8 stack traces: https://github.com/watson/stackman

license: MIT

repository: scottnonnenberg/blog

branch_name: refs/heads/main

extension: md

gha_language: TypeScript

gha_license_id: MIT

license_type: permissive

repo_name: scottnonnenberg/blog


text:
# Television

Come back to [home](../Home.md)

### Contents

- [Description](#description)

- [Agent's Actions](#actions)

- [Brain](#brain)

- [Observations](#observations)

- [Reset](#Reset)

- [Reset's Parameters](#parameters)

- [Distraction](#distraction)

- [Next Steps](#next_steps)

## Information

|            Description             |
The agent can enabled buttons to create an image on a screen. There are 3 buttons that enable or disable a part of an image. There is also a switch that changes the kind of image. When the agent enables a button or the switch, the color of them change and particules appear in order to distract the agent.
 |
| :----------------------------------------------------------: | :----------------------------------------------------------- |
|            Agent's Actions             | The agent has 5 actions : nothing (0) / go forward (1) / go backward (2) / turn left (3) / turn right (4) |
|                  Brain                   | The brain has only one branch : `observation, reward, done, info = env.step(0)` |
|       Agent's Observations        | The agent sends its observations (image 84x84) at each step  |
| Informations stored in a dictionary | The agent stores its **position**, if whether a **button is enabled** and the **number of the image** displayed at each step |
|                  Reset                   |
If the user wants to reset the environment, he can change the parameters. He can choose to **enable one or more buttons** and which **image will be displayed** at the beginning of the simulation.
 |
|         Reset's Parameters          |
**firstButton [0, 1]** : 0 disable the button ; 1 enable the button
**secondButton [0, 1]** : 0 disable the button ; 1 enable the button
**thirdButton [0, 1]** : 0 disable the button ; 1 enable the button
**switch [0, 2]** : 1 display the first image ; 2 display the second image : 3 display the third image
 |
|            Distraction             | **Particles** when the buttons are enabled                   |

## Next Steps

Other environments :

1. [PushBlocks](PushBlocks.md)
2. [Television](Television.md)
3. [MazeButtons (colored)](MazeButtonsColored.md)
4. [MazeButtons (textured)](MazeButtonsTextured.md)
5. [Drawing](Drawing.md)
6. [VideoGame](VideoGame)

or come back to [home](../Home.md)

repository: flowersteam/mlagents-environments

branch_name: refs/heads/master

gha_language: Python

repo_name: flowersteam/mlagents-environments


text:
<!--- TITLE --->
# ★ Obama
> Official Website for Obama

<!--- IMAGE --->
<img src="https://images-ext-1.discordapp.net/external/YLcyf_Z2kZqAjhsxyvu8oT0VvsVFBFxG4FkP8wzNX5k/https/cdn.discordapp.com/avatars/444463875908304901/c80877e5cfcce9c4b3884ee24c95fa25.webp" width=30% align="right">

<!--- KEY INFORMATION --->
## ⇁ Information

   * Official Website for Obama
   * Maintained by [@LichKing112](https://github.com/LichKing112)

<!--- LICENSE --->
## ⇁ License

   * This project is licensed under the [MIT license.](LICENSE)

<!--- SUPPORT --->
## ⇁ Support

   * Having troubles setting up the site? Join our Discord server [here.](https://discord.gg/ZU8zFx8)

repository: FutureDeveloperZ/web

gha_language: HTML

repo_name: FutureDeveloperZ/web


text:
# Changelog
All notable changes to this project will be documented in this file.

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

## [Unreleased]

## [1.2.1] - 2021-12-07
### Fixed
- Support template installation with Node.js 16 ([#40](https://github.com/andstor/jsdoc-action/issues/40)).

## [1.2.0] - 2020-04-21
### Changed
- Deprecates the `template_name` input variable in favor of `template`.

### Fixed
- Correct handling of templates installed from other sources than the npm package registry.

### Added
- Ability to install a specific version of a template.
- Automatic updating of major version tag on release (GitHub Action).

## [1.1.0] - 2020-02-26
### Added
- Checks for existence of files and directories specified in input variables.

### Changed
- Make the `source_dir` input variable optional.
- Don't set default value of the `recurse` input variable.
- Don't set default value of the `output_dir` input variable.

## [1.0.2] - 2020-02-24
### Fixed
- Specifying input files in JSDoc config files.

## [1.0.1] - 2020-02-22
### Fixed
- Fix GitHub Pages example in README.

## 1.0.0 - 2020-02-22

[Unreleased]: https://github.com/andstor/jsdoc-action/compare/v1.2.1...HEAD
[1.2.1]: https://github.com/andstor/jsdoc-action/compare/v1.2.0...v1.2.1
[1.2.0]: https://github.com/andstor/jsdoc-action/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/andstor/jsdoc-action/compare/v1.0.2...v1.1.0
[1.0.2]: https://github.com/andstor/jsdoc-action/compare/v1.0.1...v1.0.2
[1.0.1]: https://github.com/andstor/jsdoc-action/compare/v1.0.0...v1.0.1

repository: andstor/jsdoc-action

gha_language: JavaScript

repo_name: andstor/jsdoc-action


text:
# SEIP-Lab-Assignments
[![Build Status](https://travis-ci.com/NikolasMoatsos/SEIP-Lab-Assignments.svg?token=hsTvfFtqwpyWiMP9NiyE&branch=main)](https://travis-ci.com/NikolasMoatsos/SEIP-Lab-Assignments)
[![codecov](https://codecov.io/gh/NikolasMoatsos/SEIP-Lab-Assignments/branch/main/graph/badge.svg?token=7CQHIBNVSK)](https://codecov.io/gh/NikolasMoatsos/SEIP-Lab-Assignments)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

This repository contains the Lab Assignments for the needs of the Software Engineering in Practice (SEiP) course offered by the [Department of Management Science & Technology](https://www.dept.aueb.gr/en/dmst) of the Athens University of Economics and Business.

## Assignments:
1. [Grades Histogram - Build Automation Tools](#build)
2. [Unit Testing](#unittesting)
3. [Source Code Analyzer - Design Patterns](#designpatterns)

---

## Grades Histogram - Build Automation Tools

**Description**

A Java application (using the Maven build-automation tool)
that reads a file with students’ grades, and generates a histogram according to the grades' frequencies.

**Tools & Technologies Used**
- Git, Github
- Apache Maven 3.8.1
- Java 1.8
- Eclipse IDE
- [JFreeChart](https://www.jfree.org/jfreechart/) charting Java library

**How to Build and Run**

Make sure you have installed properly Git, Maven and Java.

1. Clone this repository, with the command: git clone https://github.com/NikolasMoatsos/SEIP-Lab-Assignments.git.
2. Enter to your local copy of this repository, with the command: cd SEIP-Lab-Assignments.
3. Build the Maven project, with the command: mvn install.
4. Enter the target directory to find the jar file, with the command: cd gradeshistogram , cd target.
5. Create a grades.txt file inside the target directory and enter some grades from the scale 0-10. Each grade should be in a separate line!
6. Execute the jar file, with the command: java -jar gradeshistogram-0.0.1-SNAPSHOT-jar-with-dependencies.jar grades.txt.

*Note that the gradeshistogram-0.0.1-SNAPSHOT.jar is not executable.*

## Unit Testing

See more details about the Unit Testing assignment in the according [README.md](unittesting/README.md).

## Source Code Analyzer - Design Patterns

See more details about the Design Patterns assignment in the according [README.md](sourcecodeanalyzer/README.md).

## Licence
Licensed under the [MIT Licence](LICENSE).

repository: NikolasMoatsos/SEIP-Lab-Assignments

repo_name: NikolasMoatsos/SEIP-Lab-Assignments


text:
# Blueflare

This repository provides clients for the [Blue Nebula](https://github.com/blue-nebula) master server
protocol and the server info protocol. It also contains a web application as a frontend and
as an example application.

This application was created as an alternative to the original
[Redflare](http://redflare.ofthings.net)
([Github project](https://github.com/stainsby/redflare), guess what its name was inspired by),
written in Python 3 using standard components like Bootstrap 3.

This application uses the tornado framework and runs only on Python 3.5.

## Demo

Check out https://blueflare.assassinate-you.net/, the official instance.

## Deployment

The easiest way to deploy this application is to build and run its Docker container.

Just forward the port `3000` to some public port or to some host-local port and use a reverse
proxy like NGINX or Apache2 to forward some domain or route to this application.

If you decide to use the reverse proxy workflow, you can also just use the
[docker-compose](https://docs.docker.com/compose/) configuration that is included in this
repository. After cloning the repository and
[installing docker-compose](https://docs.docker.com/compose/install/), run the following command
to build the image and create and start your container:

```
docker-compose up
```

Then you can set up a reverse proxy for `<IP_ADDRESS>:3000`. You may also need a rewrite rule that
rewrites the root route (`/`) to `/index.html`.

An NGINX site configuration could look like this:

```
server {
    listen 80;
    listen [::]80;

    server_name <insert your hostname here>;

    rewrite ^/$ /index.html;

    location / {
            proxy_pass http://<IP_ADDRESS>:3000;
    }

    // ...
    // logging configuration etc.
}

```

repository: MysteriousSonOfGod/blueflare

repo_name: MysteriousSonOfGod/blueflare


text:
## Class  `Reducer`
减速机用于减少一组元素。

**别名** : [ `tf.compat.v1.data.experimental.Reducer` ](/api_docs/python/tf/data/experimental/Reducer), [ `tf.compat.v2.data.experimental.Reducer` ](/api_docs/python/tf/data/experimental/Reducer)

A reducer is represented as a tuple of the three functions:  1) initialization function: key => initial state  2) reduce function: (old state, input) => new state  3) finalization function: state => result

##  `__init__`
[View source](https://github.com/tensorflow/tensorflow/blob/r2.0/tensorflow/python/data/experimental/ops/grouping.py#L452-L455)

```
 __init__(
    init_func,
    reduce_func,
    finalize_func
)

```

Initialize self.  See help(type(self)) for accurate signature.

## 属性

###  `finalize_func`

###  `init_func`

###  `reduce_func`

repository: veaba/tensorflow-docs

repo_name: veaba/tensorflow-docs


text:
# nix-proot-quickstart

Easily use 'nix' via proot, just run 'enter-nix.sh'.

There are better solutions for using nix, these scripts
are intended to make it easy for others to quickly
build nix expressions with minimal fuss.

To learn how to properly install Nix, see the
['Installation' Chapter in the manual](http://nixos.org/nix/manual/#chap-installation).

# Resources

Nix: http://nixos.org/

Nix Manual: https://nixos.org/nixops/manual/

PRoot: http://proot.me

repository: dtzWill/nix-proot-quickstart

repo_name: dtzWill/nix-proot-quickstart


text:
[[teaser]]
    icon = "move-down"
    title = "Lazy loaded components"
    text = "Times are over where you manually had to find your elmements. Glueberts uses the power of MutationObserver and IntersectionObserver to load necessary dependencies when needed. No waste of payload."

[[teaser]]
    icon = "rocket"
    title = "Performance in the DNA"
    text = "Gluebert has performance and best practices in mind at every step when it comes to first meaningful paint or first time to interaction. Designed that your application profits most from concepts like ShadowDOM or HTTP2."

[[teaser]]
    icon = "github"
    title = "OpenSource MIT"
    text = "We love the OpenSource community and wanted to make Gluebert.js available for everyone and everywhere with the least reasonable restrictions. So, we decided to publish under the MIT-License. Excited to see what you are building."

+++

repository: wildhaber/gluebert

branch_name: refs/heads/develop

repo_name: wildhaber/gluebert


text:
# Installation
This repo makes use of a variety of python libraries:
+ Python 3
+ keras
+ pickle
+ cv2
+ numpy
+ flask
+ matplotlib
+ sklearn
+ tqdm
+ PIL

# Project motivation
In this project, different techniques of computer vision (human face detection) as well as deep learning / CNNs (dog breed detection using Resnet) are explored.
Additionally, the best working model is implemented within a web app to allow for an interactive dog breed detection experience.

# File description
app/ - Flask Webapp, for details see below.
test_images/ - images to test algorithm on.
requirements/ - required python packages.
dog_app.ipynb - ipynb where the model is trained and deployed. report.html is the html converted output of the notebook. inside the notebook, the trained models are saved. execution is needed before web app can be deployed. To execute the ipynb, download the [dog dataset](https://s3-us-west-1.amazonaws.com/udacity-aind/dog-project/dogImages.zip) into dogImages/, the [human dataset](https://s3-us-west-1.amazonaws.com/udacity-aind/dog-project/lfw.zip) into lfw/, and the [ResNet50 bottleneck features](https://s3-us-west-1.amazonaws.com/udacity-aind/dog-project/DogResnet50Data.npz).

extract_bottleneck_features.py - extract bottleneck features from pre-trained CNNs.

# Web App
To run the Flask webapp, go into folder app/ and and run the file app.py.
The webapp needs the following additional resources:
- pretrained model for dog detection in /resnet_imagenet/
- pretrained custom resnet model for dog breed detection, saved in /dog_model/
Both of these models are generated by executing dog_app.ipynb.

# Acknowledgements
All data and the structure of dog_app.ipynb was provided by Udacity.

repository: jbbook/dogprog

repo_name: jbbook/dogprog


text:
# Input Email >> Overview ||10

A web component based on the generic text input field. Its purpose is to provide a way for users to fill in an email.

```js script
import { html } from '@mdjs/mdjs-preview';
import<EMAIL_ADDRESS>```

```js preview-story
export const main = () => {
  return html` <lion-input-email label="Email" name="email"></lion-input-email> `;
};
```

## Features

- Based on our [input](../input/overview.md)
- Makes use of email [validators](../../fundamentals/systems/form/validate.md) with corresponding error messages in different languages
  - IsEmail (default)

## Installation

```bash
npm i --save @lion/ui
```

```js
import { LionInputEmail } from<EMAIL_ADDRESS>// or
import<EMAIL_ADDRESS>```

repository: ing-bank/lion

repo_name: ing-bank/lion


text:
---
layout: changelog
---
  * Fixes an issue with the `res.message.user` object containing two nested `slack` properties (#505) - thanks @shanedewael.
  * Fixes an issue where messages from bots with no bot user may have had `undefined` value for `res.messages.user` (#507) - thanks @shanedewael.
  * Increases consistency of `EnterMessage` and `LeaveMessage` events by swapping to the events which are garaunteed
    to be delivered (#296) - thanks @aoberoi.
  * Fixes an issue where listeners were not matched because the text formatting did not properly account for messages
    without `text` defined but which do contain valid `attachments`, such as from IFTTT (#504) - thanks @aoberoi.
  * Fixes an issue where messages were delivered to Slack out of order (#379) - thanks @aoberoi.
  * Documentation improvements (#372, #468) - thanks @aoberoi.
  * Adds node v10 to the testing matrix (#510) - thanks @aoberoi.

repository: slackapi/hubot-slack

gha_language: CoffeeScript

repo_name: slackapi/hubot-slack


text:
# [IaaS windows VM using managed disk from custom image]

This template deploys a Windows VM from a Custom Image using Managed Disk

![ManagedDisks](images/image.png)

`Tags: [Windows]`

| Endpoint        | Version           | Validated  |
| ------------- |:-------------:| -----:|
| Microsoft Azure Stack      | - |  yes|

## Prerequisites

AzureStack must be 1901 or greater to support Custom Images

Prepare or Download a Customized Windows Image Template
Follow the below links to create/download a Windows Image

1. https://azure.microsoft.com/en-us/documentation/articles/azure-stack-Windows/
2. https://azure.microsoft.com/en-us/documentation/articles/azure-stack-add-image-pir/

## Deployment Options

for all deployments, a vhd file and a ssh public key is required.
the powershell script option reads the key from a specified sshKeyfile ( your_keyfile.pub)

![ResourceGroup](images/rg.png)

1. Deploy to Azure Stack portal using custom deployment
Upload the Image to a Storage Account, with Public read Access
During Deployment, Specify the imageUri Parameter of the vhd
Deploy the Image using the Quickstart templates from Template Deployment
![template](images/template.png)

2. Deploy through Visual Studio
Upload the Image to a Storage Account, with Public read Access
During Deployment, Specify the imageUri Parameter of the vhd
use the azuredeploy.json and azuredeploy.parameters.json to deploy
3. Deploy the solution from PowerShell with the following PowerShell script

Follow the below link to configure the Azure Stack environment with Add-AzureRmEnvironment cmdlet and authenticate a user to the environment
https://docs.microsoft.com/en-us/azure/azure-stack/azure-stack-powershell-configure

the [ExampleScript](deploy_image.ps1)  will create
- a Storage Account and Image Resource Group ( Default: image in image_rg)
- upload the Windows Image
- Deploy the vhd to Deployment resource Group

```Powershell
.\deploy_image.ps1 -Image $HOME\Downloads\MyWindowsVM.vhd
```


text:
# clients' purpose

Some of the tests cannot be examined at he monitoring server,
bacause is has no direct connection to the infrastructure of the servers, in only has acess to all the servers as an wireless access point.
This is where clients can help. Icinga2 enables distributed setup, where some tests can be run on specific machines.
Some specific tests are run at czech top level RADIUS server, where all other organization servers are connected.

## data synchronization

Data can be synchronized automatically, but this has a drawback that a lot of configuration is synchronized.
Since the configuration is stable and there was no need to synchronize all relevant parts of configuration from master
to clients, we decided to disable automatic configuration synchronization.
The configuration is transferred manually and it could be done just once.

The commands configured on the master node should be copied to the client to:

```
/var/lib/icinga2/api/zones/top.level.eduroam.radius.tld/director/commands.conf
```

The advantage of this solution is that the top level RADIUS server has only the command definitions configured locally.

## configuration

Initial configuration is done using the setup script from [director](https://github.com/CESNET/eduroam-icinga/blob/master/doc/director_config.md#client-setup).
After this setup, the client should be almost fully set up.

Configuration synchronization is disabled in `/etc/icinga2/features-available/api.conf` by:
```
accept_config = false
```

The notifications on the client are disabled.
Just the monitoring server itself should notify the administrators about service problems.
This can be done by:
```
icinga2 feature disable notification
```

In case there are multiple servers which use the same IP address/hostname and some high availability
solution is used, it must be somehow assured, that icinga2 is running only on the active node.

repository: CESNET/eduroam-icinga

gha_language: Shell

repo_name: CESNET/eduroam-icinga


text:
# Bamazon

This node.js will allow user to interact with a database, by seeing the current inventory. If user is a manager they will be able to add inventory, see low inventory and add new products

## Getting Started

Program is run on Node.js. Pleas down the JSON.package which will
contain the relavant packages.

## Prerequisites

Customer View- run customer.js in node
* You will be able to render table to terminal and buy selected items

Manager View- run bamazonManager.js in node
* You will be able to view inventory, view only low invetory (below 5 count)
, add inventory and add new products to existing departments.

### Built With

* Node.js
* NPM
* MySQL
1.cli-color
2.cli-table
3.colors
4.inquirer
5.mysql

Media:

Customer_View- Buy Product

[![Customer_View- Buy Product](https://media.giphy.com/media/3ohhwBRmZNzHtjICB2/giphy.gif)](https://media.giphy.com/media/3ohhwBRmZNzHtjICB2/giphy.gif)

Customer_View- Insufficent Quantity

[![Customer_View- Insufficent Quantity](https://media.giphy.com/media/l378u7gD6iVhFjWsU/giphy.gif)](https://media.giphy.com/media/l378u7gD6iVhFjWsU/giphy.gif)

Manager_View- View inventory and view Low Inventory

[![Manager_View- View inventory and view Low Inventory](https://media.giphy.com/media/l1J9wsNUFVoFe8mM8/giphy.gif)](https://media.giphy.com/media/l1J9wsNUFVoFe8mM8/giphy.gif)

Manager_view- add inventory

[![Manager_view- add inventory](https://media.giphy.com/media/3o7aCTo5c5dRlM1WFi/giphy.gif)](https://media.giphy.com/media/3o7aCTo5c5dRlM1WFi/giphy.gif)

Manager_view- add new product

[![Manager_view- add new product](https://media.giphy.com/media/xT9Igxru58KlnQlZkY/giphy.gif)](https://media.giphy.com/media/xT9Igxru58KlnQlZkY/giphy.gif)

Authors

Josh Siverson
License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

Hat tip to anyone who's code was used
Inspiration
etc


text:
# MyClass

[![CI Status](http://img.shields.io/travis/onegeng/MyClass.svg?style=flat)](https://travis-ci.org/onegeng/MyClass)
[![Version](https://img.shields.io/cocoapods/v/MyClass.svg?style=flat)](http://cocoapods.org/pods/MyClass)
[![License](https://img.shields.io/cocoapods/l/MyClass.svg?style=flat)](http://cocoapods.org/pods/MyClass)
[![Platform](https://img.shields.io/cocoapods/p/MyClass.svg?style=flat)](http://cocoapods.org/pods/MyClass)

## Example

To run the example project, clone the repo, and run `pod install` from the Example directory first.

## Requirements

## Installation

MyClass is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your Podfile:

```ruby
pod 'MyClass'
```

## Author

onegeng<EMAIL_ADDRESS>
## License

MyClass is available under the MIT license. See the LICENSE file for more info.


text:
# PixelShoter
A application running in the background for screenshoting the screen in Linux.

<br/>

## References
* [Screenshot](https://github.com/vova616/screenshot)

repository: CasperHK/PixelShoter

repo_name: CasperHK/PixelShoter


text:
# subway.js

A javascript app to display an interactive subway map. Javascript reads from HTML and uses Raphael to render a map.

## Example
![alt text](https://user-images.githubusercontent.com/8428372/32406057-fba351ae-c1ab-11e7-811d-4bb15b887881.png)

## Introduction
This app allows a user to render a subway map from HTML lists.
Features include:
* Rendering of "stations" and 4-directional "tracks"
* Islands to group "stations"
* Interactive "stations" that could show additional links
* Automatic scaling of map to the width of it's container
* Display a grid to aid positioning

The map works on a grid system. Cooridnates are defined at the cross-sections of the grid, and __all__ settings in the HTML file should be defined in terms of grid coordinates.

### Libraries
* Raphael: http://raphaeljs.com/
    * ScaleRaphael: http://www.shapevent.com/scaleraphael/
* jQuery: http://jquery.com/
    * jQuery throttle / debounce: http://benalman.com/projects/jquery-throttle-debounce-plugin/

## Set-up
Include the Javascript libraries before closing your `<body>` tag. They are provided in the resources folder.
```html
<script src="./resources/jquery.min.js"></script>
<script src="./resources/raphael.min.js"></script>
<script src="./subway.js"></script>
```

Create a display `<div>` tag with an ID. The map will be rendered within this tag.
```html
<div id="subway-display"></div>
```

`data-debug="true"` can be included to display a grid for referencing. The width and height of the canvas will be determined automatically from the elements created.
```html
<div id="subway" data-debug="true"></div>
```
> Note: Placing data in the display tag will cause it be be replaced by the map when it is created.

Finally, write a script to create a subway map. Each OLSubway is a different object, so multiple maps can be created. (The second parameter of `OLSubway.create()` can be left blank. Data will then be read from the display tag.) Contents of the data tag are automatically hidden upon creation of the map. Note that `OLSubway.create()` will always be deferred till the document has loaded.
```javascript
var sub = new OLSubway();
sub.create("subway-display","subway");
```

You may also use the `destroy()` method to remove the map, which will allow you to use the object to create yet a new map.
```javascript
sub.destroy();
sub.create("subway2");
```

Elements below should be contained within the data tag.

## Stations
Stations are where your data-points are shown. This app supports stations with multiple "terminals", i.e. A station may take up more than a single point. Terminals are connected to each other via connectors in a linear fashion. When the mouse is hovered over a station, the station will "glow".

Stations are defined as elements of an unordered list, and go between a `<ul id="subway-stations"></ul>` tag. Each element defines the coordinates of the terminals, and they are linked in order of how they are specified. X and Y coordinates are seperated by a comma, and coordinate pairs are seperated by a semi-colon.

Each station can be named. Simply include the name of the station anywhere between the list element tag. The location of the label can then be specified(N,NE,E,SE,S,SW,W,NW), with the default being South. You can also specify the terminal which the label appears next to, e.g. `label-ter="1"` will place the label next to the first terminal you have specified. First terminal is selected by default.

Hyperlinks can be added to the stations. Include them using `<a href="{url}"></a>` as you would normally do, inside the list element.

Refer to the example below:
```html
<ul id="subway-stations">
	<li data-pos="2,2; 4,4; 2,6" data-label-dir="E" data-label-ter="3" ><a href="http://openlectures.org/">Google</a></li>
	<li data-pos="13, 8; 13,9" data-label-ter = "2">ABC</li>
	<li data-pos="11,16" data-label-dir="SE">DEF</li>
	<li data-pos="2,18"></li>
	<li data-pos="6,18"></li>
</ul>
```
>Note: All data attributes are defined as custom HTML attributes, as defined in HTML5.

### Links
Stations that are related can be "linked". When the mouse is hovered over a station, all stations that are linked to it will also light up, in a different colour. To define links, enter the station numbers of the links in the `data-links` attribute. Station numbers are defined in the order in which the station are listed, i.e. The first list item is Station 1, the second Station 2. Station numbers are also displayed on the station itself.

In the example below, when the mouse is hovered over the Station "ABC", Station "Google" and "DEF" will also light up.
```html
<ul id="subway-stations">
	<li data-pos="2,2; 4,4; 2,6" data-label-dir="E" data-label-ter="3" data-link="2,3,5,22" ><a href="http://www.google.com/">Google</a></li>
	<li data-pos="13, 8; 13,9" data-label-ter = "2" data-link="1,3">ABC</li>
	<li data-pos="11,16" data-label-dir="SE">DEF</li>
	<li data-pos="2,18" data-link="2"></li>
	<li data-pos="6,18"></li>
</ul>
```

## Tracks
Tracks connect the various "stations". Currently, this app supports 4-directions for tracks (North, South, East, West), with smooth turns.

Each track is an unordered list, under `class="subway-tracks"`, with each element representing a segment. Specify the colour of the track, as well as the starting point. A track that is defined first will appear behind a track defined later, should they overlap.

For each subsequent segment, you may:

1. Define a straight link by simply specifying the coordinates of the next point.
2. Define a curve, by specifying the coordinates of the next point, as well as the direction the track faces after the curve.

At the end of the defined track, an arrowhead will point to the final destination. Avoid defining sharp turns at the very end to prevent the arrow to appear in an awkard way.

Refer to the example below:
```html
<ul class="subway-tracks" data-color="#f3b" data-start-point="2,2">
    <li data-dest="5,2"></li>
    <li data-dest="6,3" data-turn="S"></li>
    <li data-dest="6,6"></li>
    <li data-dest="9,9" data-turn="E"></li>
    <li data-dest="16,9"></li>
    <li data-dest="17,10" data-turn="S"></li>
    <li data-dest="15,12" data-turn="W"></li>
    <li data-dest="11,16" data-turn="S"></li>
    <li data-dest="9,18" data-turn="W"></li>
    <li data-dest="2,18"></li>
</ul>
```
> Note that it is possible to create tracks that do not stick to the four directions this app is designed to handle, though it might not look the way it is intended to look like.

## Islands
Islands can be used to group certain "stations". All islands should be defined between a `<ul id="subway-islands"></ul>` tag.

Each island is an unordered list, under `class="subway-tracks"`, with each element defining an edge (with coordinates) of the island. Specify the name, background colour, label font size and colour. The name of the island will be displayed at the centroid of the polygon which defines the island. Islands will be rounded during processing in a manner that ensures the outline passes through all points specified. To turn off automatic rounding, add `data-sharp="true"` to the `<ul>` tag. Refer to the exmaple below.
```html
<ul class="subway-islands" data-island-name="Test" data-background-color="#ddd" data-font-size="50px" data-font-color="#fff">
    <li data-edge="1,1"></li>
    <li data-edge="18.5,1"></li>
    <li data-edge="18.5,20"></li>
    <li data-edge="10,25"></li>
    <li data-edge="1,20"></li>
</ul>
```
> As islands do not have to be defined along the grid, you may use decimals for the coordinates.

## Scaling
The map is scaled automatically based on the width of the container it is in, i.e. The container of the display `<div>` tag.

The map is rescaled(debounced) when the window is resized. Thus, in any application where the map container's width is changed when resizing the window, the map will be scaled accordingly to fit the width of the container.

>This means that the map will fit exactly into the container horizontally, but not vertically.


text:
---
title: I want a native implementation or API for skip links
date: 2020-12-03T10:17:37.465Z
submitter: Hugo Giraudel
number: 5fc8bb41d84cfbab3fb47320
tags: [ html, ux, accessibility  ]
discussion: https://github.com/WebWeWant/webwewant.fyi/discussions/233
status: discussing
related:
  - title: I want landmark navigation to be implemented natively in the browsers
    url: https://webwewant.fyi/wants/5f24adc28dfea402c3830218/
    type: want
  - title: Link types
    url: https://www.w3.org/TR/html401/types.html#type-links
    type: spec
---

[Skip links are an important accessibility feature](https://webaim.org/techniques/skipnav/) to improve keyboard navigation.
They are also non-trivial to build; they usually need to be visually hidden and revealed only on focus. This is a challenge in CSS since there is [no elegant way to do it with a single property](https://hugogiraudel.com/2016/10/13/css-hide-and-seek/). They can also be difficult to integrate in existing web designs and layouts.

It would be good to have browsers implement skip links natively. This way, more websites would have skip links, which would drastically improve overall keyboard navigation, and avoid problematic or buggy implementations. Additionally, they would be normalized across websites, automatically in the right language (browser language) and implemented in the browser UI instead of within pages.

Now figuring out what DOM node is the appropriate container for the main content of the page can be tricky. If that’s not something the browser can easily figure out, this could be provided by the implementor through a `meta` tag. For instance:

```html
<meta name="main-content-selector" content="#main">
```


text:
# PatternFly beta component promotion candidates
## For release 2022.14

### [AlertGroup: overflow](https://www.patternfly.org/v4/components/alert-group#toast-alert-group-with-overflow-capture)
If you don't want multiple alerts to stack and fill the screen until the user dismisses them, you may use the overflow footer in an alert group to manage overflow.

![alert group overflow](./img/alert-group-overflow.png)

### [Calendar month](https://www.patternfly.org/v4/components/calendar-month)
A calendar month component allows users to select and navigate between days, months and/or years. This component is usually used with the date picker component, to display date options and selections.

![calendar month](./img/calendar-month.png)

### [Card: raised variant](https://www.patternfly.org/v4/components/card#selectable)
An updated, animated style for selectable cards.

![card raised variant](./img/card-raised-variant.gif)

### [Code editor](https://www.patternfly.org/v4/components/code-editor)
A code editor is a versatile text editor that allows for editing various languages. The code editor is built on top of the Monaco Editor.

![code-editor](./img/code-editor.png)

### [Data list: selectableRow prop](https://www.patternfly.org/v4/components/data-list#datalist)
Using the `selectableRow` property causes the data list to render hidden inputs in its selectable rows. This improve selectable item accessibility.

### [Dual list selector](https://www.patternfly.org/v4/components/dual-list-selector)
A dual list selector allows users to select and move items from one list of available items to another list of selected items. Unlike a select list, a dual list selector separates the available options and the selected options into two separate lists, which allows users to easily scan the items they selected.

![dual-list-selector](./img/dual-list-selector.png)

### [Icon sprites](https://www.patternfly.org/v4/components/form-control#icon-sprite)
The icons for the success, invalid, calendar, etc varations in form control elemements are applied as background images to the form element. By default, the image URLs for these icons are data URIs. However, there may be cases where data URIs are not ideal, such as in an application with a content security policy that disallows data URIs for security reasons. The .pf-m-icon-sprite variation changes the icon source to an external SVG file that serves as a sprite for all of the supported icons.

### [Label group](https://www.patternfly.org/v4/components/label-group)
Use a label group when you have multiple labels to display at once. Label groups can be oriented either horizontally or vertically and can optionally be named and dismissible.

![label-group](./img/label-group.png)

### [Masthead](https://www.patternfly.org/v4/components/masthead)
A masthead contains global properties such as logotype, navigation and settings in an organized fashion and it is accessible from all parts of the application. All pages should share a common masthead.

![masthead](./img/masthead.png)

### [Menu: checkbox variant](https://www.patternfly.org/v4/components/menu#with-checkbox)
The menu's checkbox variant was built to allow for more customizable implementation of the checkbox select component.

![menu-checkbox-variant](./img/menu-checkbox.png)

### [Menu toggle](https://www.patternfly.org/v4/components/menu-toggle)
The menu toggle component pairs with the menu component to create composable dropdown and select menus. Using a menu toggle with a menu enables you to create custom component configurations not supported by the standard dropdown or select components.

![menu-toggle](./img/menu-toggle.png)

### [File upload - multiple](https://www.patternfly.org/v4/components/file-upload---multiple)
The file upload - multiple component allows users to select 1 or more files to upload to a specific location.

![multiple-file-upload](./img/multiple-file-upload.png)

### [Notification drawer](https://www.patternfly.org/v4/components/notification-drawer)
A notification drawer is a place where users can view and manage notifications that are generated by the system. It allows them to see a list of notifications without the need to navigate away from the current screen.

![notification-drawer](./img/notification-drawer.png)

### [Panel](https://www.patternfly.org/v4/components/panel)
The panel component is a container that supports flexible content layouts. It can be used to house other components such as fields, forms, videos, buttons, and more.

![panel](./img/panel.png)

### [Popover: alert severity, icon](https://www.patternfly.org/v4/components/popover#alert-popover)
These popover are similar to default popovers, the key difference being the inclusion of status-like headers for the following alert types: default, info, success, warning, and danger.

![popover-alert](./img/popover-alert.png)

### [Select: view more, loading variant](https://www.patternfly.org/v4/components/select#view-more)
When a select list contains more than 20 items, and the processing load may be too big to load all options at once, you have the option to add a “View more” link at the bottom of the menu. When the user clicks View more, more options are loaded and “view more” is replaced with the next available set of options.

![select-view-more](./img/select-view-more.gif)

### [Slider](https://www.patternfly.org/v4/components/slider)
A slider provides a quick and effective way for users to set and adjust a numeric value from a defined range of values.

![slider](./img/slider.png)

### [Table: tree view](https://www.patternfly.org/v4/components/table#composable-tree-table)
Displays hierarchical tabular data. It provides a tree structure with items and errors to expand or collapse child items.

![table-tree-view](./img/table-tree-view.png)

### [Tree view](https://www.patternfly.org/v4/components/tree-view)
A tree view is a structure that displays data in a hierarchical view. It can be used in a dropdown, drawer, primary-detail, modal, or wizard. Tree views are often used when grouping similar decisions, action items, or navigation elements together.

![tree-view](./img/tree-view.png)

### [Wizard with drawer](https://www.patternfly.org/v4/components/wizard#wizard-with-drawer)
Wizards can trigger a drawer to open to provide guidance or more information for individual steps or on the wizard's workflow overall

![wizard-with-drawer](./img/wizard-with-drawer.png)

repository: patternfly/patternfly-org

repo_name: patternfly/patternfly-org


text:
---
title: oVirt Metrics Store - Installation Guide
category: feature
authors: sradco
feature_name: oVirt Metrics Store Installation
feature_modules: engine
feature_status: In Production
---
# oVirt Metrics - Installation Guide

[![oVirt Metrics data flow](/images/wiki/oVirtMetricsDataFlow.jpg)](/images/wiki/oVirtMetricsDataFlow.jpg)

## oVirt metrics store

The oVirt metrics store is based on OpenShift Logging (Elasticsearch, Kibana, Fluentd, Curator).

## oVirt Metrics Store Setup

**Note:** Currently, the oVirt Metrics Store should be installed on a new machine, separate from the engine.
It can be installed on a dedicated VM.

### Metrics Store Machine Prerequisites

For an oVirt environment with 50 hosts:
- 4 CPU cores, 16GB RAM memory .
- We recommends using SSD disks.
- CentOS 7.5.
- Preallocated 500GB partition - It will be used for persistent storage. Use a partition other than root (/) to avoid filling up the partition, for example, /var.
- Add the Metrics Store Machine FQDN to your enterprise hostname resolution system, for example, DNS and add a wildcard dns prefix for this address.

- Please make sure to follow the [OpenShift `masters` prerequisites](https://docs.openshift.org/latest/install_config/install/prerequisites.html#hardware)

### Update config.yml file

1. Copy  /etc/ovirt-engine-metrics/config.yml.example  to config.yml.

   On the oVirt engine machine, run:

        # cp /etc/ovirt-engine-metrics/config.yml.example /etc/ovirt-engine-metrics/config.yml

2. Update the file /etc/ovirt-engine-metrics/config.yml located on the engine machine, with the following lines:

        # vi /etc/ovirt-engine-metrics/config.yml.d/config.yml

3. Update the values to match the details of your specific environment:

- `ovirt_env_name:` **Please update this variable**.

  Environment name. It is used to identify data collected in a single central
  store, sent from more than one oVirt engine.

  Use the following convention:

  - Include only alphanumeric characters and hyphens ( "-" ).
  - Name cannot begin with a hyphen or a number, or end with a hyphen.
  - Maximum of 49 characters. Wildcard patterns (e.g. ovirt-metrics*) cannot be used.

- `elasticsearch_host:` (required - no default value)

  Address or hostname (FQDN) of the Elasticsearch server host.

## Variables  for installing the oVirt metrics store

- `openshift_distribution:`(default: `origin`)
- `openshift_ansible_files_path:`(default: `/root`)
- `ovirt_elasticsearch_mounted_storage_path:`(default:`/var/lib`)
- `engine_url:`(Mandatory. No default )
- `engine_user:`(Mandatory. No default )`
- `engine_password:`(Mandatory. No default )
- `engine_insecure:`(default: `true`)
- `engine_cafile:`(No default )
- `public_hosted_zone:`(No default )
- `create_host_entry:`(default: `false` )
- `root_password:`(default: `admin`)
- `ovirt_cluster_name:`(default: `Default`)
- `openshift_ovirt_storage_domain_name:`(default: `hosted_storage`)
- `openshift_ovirt_bastion_machine_name:`(default: `metrics-store-installer`)
- `openshift_ovirt_all_in_one:`(default: `true`)
- `number_of_openshift_master_vms:`(default: `1`)
- `number_of_openshift_node_vms:`(default: `0`)
- `number_of_openshift_compute_vms:`(default: `0`)
- `number_of_openshift_lb_vms:`(default: `0`)
- `openshift_logging_es_cluster_size:`(default: 1)
- `openshift_logging_es_number_of_replicas:`(default: 0)
- `elasticsearch_disk_size:`(default: `500GiB`)
- `openshift_logging:` (default:`true`)
- `template_name:` (default:`rhelguest76`)
- `template_memory:` (default:`4GiB`)
- `template_cpu:` (default:2)

### Additional mandatory variables for Red Hat Virtualization:

- `qcow_url:`( No default )
- `rhsub_user:`( No default )
- `rhsub_pass:`( No default )
- `rhsub_pool:`( default: [] )
- `qcow_url:` ( No default )
- `rhsub_user:` ( No default )
- `rhsub_pass:` ( No default )
- `rhsub_pool:` ( No default )
- `openshift_rhsub_pool:` ( No default )
- `oreg_auth_user:` ( No default )
- `oreg_auth_password:` ( No default )

### Run ovirt-metrics-store-installation playbook

This playbook creates the vm(s) and generates the files required for the metrics store installation and copies them
to the metrics store machine.

        # /usr/share/ovirt-engine-metrics/setup/ansible/configure_ovirt_machines_for_metrics.sh \
        --playbook=ovirt-metrics-store-installation.yml

### Metrics Store Installation

Please follow the metrics store installation instructions: [Metrics Store setup on top of OpenShift](https://www.ovirt.org/develop/release-management/features/metrics/setting-up-viaq-logging/)

Once you have finished this step, you should have:

  * Kibana - <https://kibana.{elasticsearch_host}>
  * OpenShift portal - <https://{elasticsearch_host}:8443>

## oVirt Hypervisors and Engine Setup ##

Please follow the instructions: [Deploy Collectd and Rsyslog on Hypervisors and Engine](https://www.ovirt.org/develop/release-management/features/metrics/hypervisors-and-engine-setup)

## Example Dashboards

Kibana should be available at <https://kibana.{elasticsearch_host}>

Dashboard examples include `System Dashboard`, `Hosts Dashboard`, `VMs Dashboard`, `Processes Dashboard`.

If you wish to import dashboards example, you will need to import visualization and dashboards manually from the Kibana UI.

1. Copy the /etc/ovirt-engine-metrics/dashboards-examples directory to your local machine.

2. Go to the Kibana UI, to the `setting` tab -> `indices`.

3. In the Kibana UI, go to the `setting` tab -> `objects`.

4. Import the `Searches`.

5. Import the `Visualizations`.

**Note:** If you get an error while loading the `Visualizations`, check your hosts and make sure Collectd and Rsyslog services are running with no errors. After that try loading the `Visualizations` again.

6. Import the `Dashboards`.

7. Select the `project.ovirt-metrics-<ovirt-env-name>.<uuid>` index.

8. Press the orange button, `Refresh field list`.

9. Do steps 7 and 8 for the `project.ovirt-logs-<ovirt-env-name>.<uuid>` index.

You are done! Go to the `Dashboard` tab in the Kibana UI and choose a dashboard.

Currently there are 3 example dashboards:

  * System Dashboard - https://kibana.{elasticsearch_host}/app/kibana#/dashboard/System-Dashboard

  * Hosts Dashboard - https://kibana.{elasticsearch_host}/app/kibana#/dashboard/Hosts-Dashboard

  * VMs Dashboard - https://kibana.{elasticsearch_host}/app/kibana#/dashboard/VMs-Dashboard

### Viewing Saved Dashboards

Once you have created and saved a dashboard, or imported the sample dashboards, you can display them in the Dashboard tab:

1. Click the Dashboard tab.
2. Click the Load Saved Dashboard button to display a list of saved dashboards.
3. Click a saved dashboard to load and view it.

repository: derbbre/ovirt-site

gha_license_id: NOASSERTION

repo_name: derbbre/ovirt-site


text:
---
published: true
layout: post
has_book: true
title: "Chapter 50.1 - Blade Light "
book:
  number: 2
  title: "Fame Spreads"
category: martial-god
#chapter no. format: bb-cc bb=book cc=chapter. Example: 01-01 (book 1, chapter 1)
previous_chapter: 02-49-02
next_chapter: 02-50-02
date: 2017-04-28 03:15:01
has_credits:
translator:
proofreader: jchill071
is_preview: no
has_note:
note:
---
As Lu Xinwen watched the white dress in his hand, a regretful expression appeared on his face, “Unfortunately, had this dress been made with the combination of North Iceberg Haven’s natural silk and South’s spider silk, it could have resisted your Xiantian needles.”

He Yiming started inwardly and said, “If brother Lu says so, it means your skill must rely on this special weapon to be performed to the extreme?”

Lu Xinwen coarsely laughed and threw the dress in his hands away, “Even without this weapon, I can still exterminate your family.”
<!--more-->

After saying these words, he stepped out; his fists intertwined. This time, his speed was not as quick as before when nobody had been able to see him, and instead seemed to be somewhat slow.

However, this was nothing more than an illusion. In merely three steps, he’d already covered a distance of several tens of meters before striking out his hand with a loud rumble.

Water-type techniques were not suited for greeting force with force, but this old man had chosen the dominant way.

Because based on the initial conversation, he’d understood that He Yiming had only recently become a Xiantian cultivator.

Although he didn’t understand how the former could possess a ferocious Xiantian technique such as Hidden Needle Imprint, in terms of True Qi, his opponent would certainly be far behind him who had entered Xiantian realm more than twenty years ago. Therefore, as soon as his technique to squeeze He Yiming in failed, he immediately adopted the most reliable method.

All tricks are naught before absolute strength; although this reasoning was quite simple, it was usually the most pragmatic as well.

A palm suddenly seemed to have appeared piercing out of thin air as it went straight towards He Yiming’s chest. If this palm truly hit its mark, despite being a Xiantian cultivator, He Yiming would not be able to preserve.

However, while confronting this palm that had seemingly appeared out of nowhere, He Yiming’s two hands suddenly flipped about and the Hidden Needle Imprint instantly transformed into the sturdy Prostrate Imprint.

This imprint had also been stealthily learned from Lin Taoli and was the imprint that he’d learned to the most perfection. Although it still looked somewhat different compared to when used by Lin Taoli, in accordance with his own body, this form was the one that suited him the best.

The indistinct arm swayed in the air, as if looking for an opening on He Yiming’s body. However, the owner behind the palm suddenly discovered that as soon as He Yiming’s hand imprint changed, there was no longer any opening on his body, as if his entire body was under the protection of this imprint.

After the palm swayed countless times- up and down, left and right, severely and softly- it eventually struck the Prostrate Imprint.

It seemed as if He Yiming’s hand imprint had been specifically waiting to meet with this palm.

Lu Xinwen immediately felt extremely gloomy. This palm strike had the support of his entire strength, but he still hadn’t managed to gain the slightest bit of advantage in terms of technique.

With his discerning eyes, he could tell at a glance that these two imprints complemented each other, but at the same time, had different respective constructs. However, regardless of any case, there was no doubt that both of these imprints belonged to Xiantian techniques.

He was amazed and puzzled. What could possibly be the origins of this youngster, for him to possess two kinds of Xiantian imprint techniques.

If he’d barely learned them, it was still not too strange. However, He Yiming had not only learned them, he’d even grasped their essence. This was somewhat inconceivable.

At this moment, he was truly somewhat skeptical of He Yiming’s age.

To promote Internal Energy, one could consume gold cores. To advance into Xiantian realm, there were gold cores as well.

However, to learn a technique, there was no shortcut.

Apart from the rare enlightenments that were hard to experience once even in a hundred years, there was only unceasing training, and more training until one finally grasped the technique’s essence and attained perfection.

However, He Yiming’s display had completely smashed this rule.

He’d already attained the realm where he could do as he pleased with these two Xiantian techniques, attaining such a skill in less than twenty years of bitter cultivation.

On encountering such a freak, even the Blood Slaughterer Lu Xinwen felt bursts of helplessness.

The moment Lu Xinwen’s palm made contact with his Prostrate Imprint, He Yiming’s knees slightly bent. This one action was all it took for him to divert half of Lu Xinwen’s water-type True Qi into the ground. Subsequently, his legs transmitted a surge of power into his knees. His knees suddenly straightened with a shudder, and the more than three hundreds acupoints on his body immediately issued a huge power in response, which instantly transformed into a string and shot out of the Prostrate Imprint.

“Peng….”

A not too loud sound rang out. This sound was exceedingly suppressed as if something had exploded within a box, and it gave listeners a choked kind of feeling.

Lu Xinwen’s eyes suddenly opened wide as his palm resolutely struck against the Prostrate Imprint and two gigantic True Qi’s bluntly collided.

However, Lu Xinwen found the aftermath of the collision hard to believe.

A power that was far beyond what he’d imagined came out of the Prostrate Imprint, moreover this was a purely earth-attributed power; completely restraining him even in terms of Xiantian attributes.

In plain astonishment, Lu Xinwen’s figure flew back at a lightning fast speed; his feet unceasingly touching the ground in quick succession and every step leaving behind an extremely clear imprint on the ground. In a short span of a few breaths, the ground had three hundred foot imprints.

The power aroused by the more than three hundred points inside He Yiming’s body was unexpectedly neutralized by him in such a strange manner.

Lu Xinwen suddenly raised his head. Regardless of how he thought, he couldn’t understand how a youngster who had recently entered the Xiantian realm could possess such a strong Xiantian True Qi, which was not the least bit inferior compared to that of his more than twenty years of bitter training.

At this point, a trace of doubt emerged inside him. His confidence of being able to certainly kill He Yiming faintly shook.

He Yiming’s two eyes suddenly jerked upwards. At this moment, he felt a clear drop in the opponent’s aura. That condition of spirit, Qi, and essence pushed to the extreme no longer existed.

The moment Lu XInwen’s aura declined, He Yiming’s aura involuntarily rose.

Almost without thinking, He Yiming let out a long hiss and raised his foot. His being turned into a streak of lightning as he charged towards Lu Xinwen with a speed that was not inferior to that of the latter in the least.

He Yiming ‘s feet quickly treaded the ground; its frequency pushed to the peak.

As this sound entered the ears of the listeners, it actually made them feel as if they had arrived amidst unceasing torrents of mountain rain.

In this manner, He Yiming transformed into mountain rain, instantly took countless quick steps, and with his extremely quick body technique, cut off all the paths which Lu Xinwen could adopt to sidestep.

At the same time, he lifted his hands and Prostate Imprint once again emerged before his body. However, this time, Prostate Imprint was not defensive, but had instantly turned into an powerful offense, as if bearing down with a pressure of Mount Tai.

In the hands of Lin Taoli, Prostrate Imprint was merely a kind of purely defensive imprint. However, when it fell in He Yiming’s hands, its Internal Energy circulation course underwent a subtle transformation which made an unexpected transformation in this imprint, and gave this method the one and only method of offense.


text:
<img src="https://travis-ci.org/vancouverwill/reactJsPortfolio.svg?branch=master" />

# reactJsPortfolio

## build process

```
npm install

npm install --global gulp
```

##

Running is really simple just

```
gulp
```

### New js build
`gulp js`

### CSS
`
gulp css
`
or
`
gulp css  --prod
`

If you want to run without node as local web server

`php server.php`

or

`open index.html`

## DEV-STEPS

While building use eslint to lint javascript

`gulp lint`

`gulp lint-fix` to attempt to automaticaly fix lint issues

## credit
- to Eric Grosse `https://github.com/ericgrosse/task-runner-bundler-comparison` for really good example of a clean gulp file which handles produciton and dev in same place
- to https://medium.freecodecamp.org/the-right-way-to-test-react-components-548a4736ab22 for good testing patterns

repository: vancouverwill/reactJsPortfolio

repo_name: vancouverwill/reactJsPortfolio


text:
# Repositories for Laravel

An easy and customizable to create repositories that will be automatically registered for you.

## Install

Via Composer

``` bash
$ composer require taylornetwork/laravel-repository
```

## Setup

Add the service provider to the providers array in `config/app.php`

``` php
'providers' => [

	TaylorNetwork\LaravelRepository\RepositoryServiceProvider::class,

],
```

### Publish Config

``` bash
$ php artisan vendor:publish
```

Will add `repository.php` to your config directory.

## Usage

The service provider will automatically bind repositories to their contracts based on the settings in `config/repository.php`

### Defaults

By default Repositories are stored in `App\Repositories\ModelName` where `ModelName` is the name of the model the repository will handle.

The default naming convention used is `ModelNameRepository` for the contract and `EloquentModelName` for the class.

### Commands

#### make:repository

This package adds the artisan command `repository:generate` to create the repository pattern based on settings in `config/repository.php`

To create a repository for the `User` model

``` bash
$ php artisan repository:generate User
```

Will create

```
- ProjectRoot
	- app
		- Repositories
			- User
				- UserRepository.php
				- EloquentUser.php

```

If you are using a driver other than `Eloquent` you can specify using the `--driver` option

``` bash
$ php artisan repository:generate User --driver=storage
```
Will create

```
- ProjectRoot
	- app
		- Repositories
			- User
				- UserRepository.php
				- StorageUser.php

```

*Note: If you plan on using other drivers add them to the `drivers` array in `config/repository.php`, the service provider will search for the class in the order of the array.*

#### make:repositoryClass

Same as `repository:generate` but will only create the class, no contract.

``` bash
$ php artisan repository:class User --driver=storage
```

Creates `app/Repositories/User/StorageUser.php`

#### make:repositoryContract

Same as `repository:generate` but will only create the contract, no class.

``` bash
$ php artisan repository:contract User
```

Creates `app/Repositories/User/UserRepository.php`

*Note: This command does not accept the `--driver` option.*

## Credits

- Author: [Sam Taylor][link-author]

## License

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

[link-author]: https://github.com/taylornetwork

repository: taylornetwork/laravel-repository

repo_name: taylornetwork/laravel-repository


text:
# chocolatey

The official repository for Turbo Chocolatey package.

Turbo allows you to package applications and their dependencies into a lightweight, isolated virtual environment called a "container." Containerized applications can then be run on any Windows machine that has Turbo installed, no matter the underlying infrastructure. This eliminates installs, conflicts, breaks, and missing dependencies.
Turbo containers are built on top of the Spoon Virtual Machine, an application virtualization engine that provides lightweight namespace isolation of core operating system objects such as the filesystem, registry, process, networking, and threading subsystems.

Turbo package always installs the latest version of Turbo.Net plugin using turbo-plugin.exe downloaded from http://start.turbo.net/install regardless of the package version.

For more details see our package at Chocolatey.

## Deployment
Create package
```
create-turbo.bat
```

Install package
```
install-turbo.bat
```

## License
|                      |                                          |
|:---------------------|:-----------------------------------------|
| **Author:**          | Turbo.net<EMAIL_ADDRESS>| **Copyright:**       | Copyright (c) 2015 Turbo.net
| **License:**         | Apache License, Version 2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

	http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

repository: turboapps/chocolatey

repo_name: turboapps/chocolatey


text:
# Omnipay: Przelewy24

**Przelewy24 gateway for the Omnipay PHP payment processing library**

[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE.md)
[![Build Status](https://travis-ci.org/TicketSwap/omnipay-przelewy24.svg?branch=master)](https://travis-ci.org/TicketSwap/omnipay-przelewy24)

[Omnipay](https://github.com/thephpleague/omnipay) is a framework agnostic, multi-gateway payment
processing library for PHP 5.3+. This package implements Przelewy24 support for Omnipay.

For more information about the Przelewy24 API, take a look at the [manual](http://www.przelewy24.pl/files/cms/13/przelewy24_specification.pdf)

## Install

This gateway can be installed with [Composer](https://getcomposer.org/):

``` bash
$ composer require ticketswap/omnipay-przelewy24
```

## Usage

The following gateways are provided by this package:

 * Przelewy24

## Example

```php

require_once  __DIR__ . '/vendor/autoload.php';

use Omnipay\Omnipay;

/** @var \Omnipay\Przelewy24\Gateway $gateway */
$gateway = Omnipay::create('Przelewy24');

$gateway->initialize([
    'merchantId' => 'YOUR MERCHANT ID HERE',
    'posId'      => 'YOUR POS ID HERE',
    'crc'        => 'YOUR CRC KEY HERE',
    'testMode'   => true,
]);

$params = array(
    'sessionId' =><PHONE_NUMBER>,
    'amount' => 12.34,
    'currency' => 'PLN',
    'description' => 'Payment test',
    'returnUrl' => 'www.your-domain.nl/return_here',
    'notifyUrl' => 'www.your-domain.nl/notify_here',
    'card' => array(
        'email' =><EMAIL_ADDRESS>        'name' => 'My name',
        'country' => 'NL',
    ),
);

$response = $gateway->purchase($params)->send();

if ($response->isSuccessful()) {
    $response->redirect();
} else {
    echo 'Failed';
}
```

Optionally you can specify the payment channels allowed adding the 'channel' parameter in the Gateway
initialization call.

```
$gateway->initialize([
    //[...]
    'channel' => Gateway::P24_CHANNEL_CC,
]);

```

For a list of all the supported values for 'Channel' you can read the [przelewy24 documentation](http://www.przelewy24.pl/eng/storage/app/media/pobierz/Instalacja/przelewy24_specification.pdf)

## Support

If you are having general issues with Omnipay, we suggest posting on
[Stack Overflow](http://stackoverflow.com/). Be sure to add the
[omnipay tag](http://stackoverflow.com/questions/tagged/omnipay) so it can be easily found.

If you want to keep up to date with release anouncements, discuss ideas for the project,
or ask more detailed questions, there is also a [mailing list](https://groups.google.com/forum/#!forum/omnipay) which
you can subscribe to.

If you believe you have found a bug, please report it using the [GitHub issue tracker](https://github.com/ticketswap/omnipay-przelewy24/issues),
or better yet, fork the library and submit a pull request.

## Testing

``` bash
$ composer test
```

## Security

If you discover any security related issues, please email<EMAIL_ADDRESS>instead of using the issue tracker.

## Credits

- [TicketSwap](https://github.com/ticketswap)

## License

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


text:
# Offline-Budget-Tracker

## Description
AS AN avid traveller
I WANT to be able to track my withdrawals and deposits with or without a data/internet connection
SO THAT I know how much money I have to spend

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Features
* Budget manager
* tracks transactions and displays a running total
* displays a graph of all transactions

## Usage Information
Used to keep track of your monies!

## Future Dev
if you're traveling internationally, you need to add transactions in the local currency and debit them correctly from your total in USD using an API

## Links

* [GitHub repo](https://github.com/MJGRiley/Offline-Budget-Tracker)

## License
  Copyright <2021> Morgan Riley

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

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

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

  End license text.

repository: MJGRiley/Offline-Budget-Tracker

repo_name: MJGRiley/Offline-Budget-Tracker


text:
# iCompaniom
Overview

Computer usage has always been typical, although easy, nowadays in this modern digital time, the usage is very competitive as various works are done simultaneously and for productivity works the only things that matter are skills and time. Skills improve by practicing and practicing but there is no alternative for time reduction apart from improving speed which once again develops with skills. We have developed simple but efficient computer programmers for time efficiency in their productivity works for both professionals and amateurs.

Goals
1. To design a tailor-made assistance program for users according to their usage for their systems.
2. To implement all the fundamental programming concepts and skills that we have learned and developed in this current academic year.

Specifications Operating Systems:
This program has been written exclusively for Windows Operating Systems (Windows 7/8/10). Although this program can also be implemented in Linux Distros (Ubuntu, Debian, Red-Hat etc.) and MacOS (Sierra, Catalina, Big Sur etc.) although not every function can be accessible but the important and main functions would be still usable.
But still for best user experience, Windows 10 is highly recommended.

Development Environment:
This program is fundamentally written in Python Language and hence, any version of Python 3 (Python 3.6/Python 3.8/Python 3.9 etc.) is necessary for execution of this program.
Also, MySQL Community Version software is needed for maintaining a database and hence MySQL software is also required for the same.

Note
1) You have to install some python packages which you can find from requirements.txt, for weather and news you have to create your own API key from;
https://openweathermap.org/
https://newsapi.org/docs

2) For synchronising your google calendar with our program, you have to register in their site: https://developers.google.com/calendar/quickstart/python
After that you will get your own token.pickle and you have to put that in the same directory

3) You have to create a csv file named as innovators.csv for storing your history in graphical form

4) For storing contacts in SQL database you have to create a database named as "contact_book" and create a table "contact_table" which has two columns "name varchar(35), email_id varchar(50)"


text:
# donut

Rendering a donut in the terminal using Go and some math.

Idea, math and code stolen from [this excellent article](https://www.a1k0n.net/2011/07/20/donut-math.html)

![looping GIF of the result](./images/donut_3.gif)

^ this was recorded with a terminal size of `120x240`. On a saner terminal, this will look much more pixelated.

## Why?

 - fun

## Improvements

Some improvements from the original in the article:
 - Unicode rendering - uses the [Unicode full block (U+2588)](https://www.compart.com/en/unicode/U+2588) instead of ASCII characters for better looking renders
 - Colors: [256-bit terminal colors](https://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.html#256-colors) are used for better looking grayscale as well as colored donuts!
 - Documented and configurable

## Usage

 - Clone this repo and `cd` into it
 - `go run .`
 - Change some of the configuration (in `donut.go`) and play with it
 - Look at it go!

## TODO

 - expose configurable parameters as command-line flags
 - other shapes?


text:
You can [use the HMRC Developer Sandbox to test the API](https://test-developer.service.hmrc.gov.uk/api-documentation/docs/sandbox/introduction).
The Sandbox is an enhanced testing service that functions as a simulator of HMRC’s production environment.

The Sandbox for the Lifetime ISA API does not currently support [stateful behaviour](https://test-developer.service.hmrc.gov.uk/api-documentation/docs/sandbox/stateful-behaviour),
but you can use the payloads described in the resources to test specific scenarios.

Some scenarios will already have a lisaManagerReferenceNumber to use.
Other scenarios will need you to create your own test user. To create your own test user:

1\. use the [Create Test User API](https://test-developer.service.hmrc.gov.uk/api-documentation/docs/api/service/api-platform-test-user/1.0#_create-a-test-user-which-is-an-organisation_post_accordion)

2\. then use the userId and password in the response to get an OAuth 2.0 access token.

repository: gokyo/lisa-api

repo_name: gokyo/lisa-api


text:
# typedyaml

<img align="right" src="https://i.ibb.co/qxTM0sP/Gopher-puzzled.png">

A lightweight code generator for Go alleviates YAML marshalling/unmarshalling unrelated structs in typed fashion. Depends on [github.com/goccy/go-yaml](https://github.com/goccy/go-yaml) allowing such benefits as [fields validation](https://github.com/goccy/go-yaml/blob/868d322819b933bce2a46cfa2951c08706600f14/validate_test.go#L75).

## Badges

![Build Status](https://github.com/golangci/golangci-lint/workflows/CI/badge.svg)
[![Go Reference](https://pkg.go.dev/badge/github.com/etecs-ru/typedyaml.svg)](https://pkg.go.dev/github.com/etecs-ru/typedyaml)
[![Go Report Card](https://goreportcard.com/badge/github.com/etecs-ru/typedyaml)](https://goreportcard.com/report/github.com/etecs-ru/typedyaml)
[![codecov](https://codecov.io/gh/etecs-ru/typedyaml/branch/master/graph/badge.svg)](https://codecov.io/gh/etecs-ru/typedyaml)
[![License](https://img.shields.io/github/license/etecs-ru/typedyaml)](/LICENSE)

Imagine, that you need to configure several instances of some service, each of a different kind
using a YAML object with some key `Config`.
The value of this field can correspond to two structs of your Go program: `FooConfig` and `BarConfig`.
So, the field `Config` in your struct must be able to hold a value of two possible types.
In this case, you have the following options:

1. You can declare field `Config` as `interface{}` and somehow determine what type you should expect, assign an object of this type to `Config`
and then unmarshal an object.
1. You can unmarshal field `Config` separately.
1. You can implement custom `MarshalYAML`/`UnmarshalYAML` for the third type that automatically will handle these cases.

This package provides means to generate all boilerplate code for the third case.

## Usage

```sh
typedyaml [OPTION] NAME...
```

Options:

* `-interface` string

	Name of the interface that encompasses all types.

* `-output` string

	Output path where generated code should be saved.

* `-package` string

	The package name in the generated file (default to GOPACKAGE).

* `-typed` string

	The name of the struct that will be used for typed interface (default to `{{interface}}{{Typed}}`).

Each name in position argument should be the name of the struct.
You can set an alias for struct name like this: `foo=*FooConfig`.

## Example

See code in the [/example](https://github.com/etecs-ru/typedyaml/tree/master/example) folder.

For example, you have some microservice that serves orders to users and use gateways to other microservices that provides it. You need to configure it in one YAML file in a smart way.

You define `UsersGateway` and `OrdersGateway` structures in our Go code, like:

```go
package config

import "time"

type UsersGateway struct {
	Enabled            bool   `yaml:"enabled"`
	Host               string `yaml:"host"`
	Port               int    `yaml:"port"`
	User               string `yaml:"user"`
	SecurityDescriptor string `yaml:"security_descriptor"`
}

type OrdersGateway struct {
	Enabled bool               `yaml:"enabled"`
	Kafka   KafkaConfiguration `yaml:"kafka"`
}

type KafkaConfiguration struct {
	Hosts          []string      `yaml:"hosts" validate:"required"`
	Topics         []string      `yaml:"topics" validate:"required"`
	GroupID        string        `yaml:"group_id" validate:"required"`
	ClientID       string        `yaml:"client_id"`
	ConnectBackoff time.Duration `yaml:"connect_backoff" validate:"min=0"`
	ConsumeBackoff time.Duration `yaml:"consume_backoff" validate:"min=0"`
	WaitClose      time.Duration `yaml:"wait_close" validate:"min=0"`
	MaxWaitTime    time.Duration `yaml:"max_wait_time"`
	IsolationLevel int           `yaml:"isolation_level"`
	Username       string        `yaml:"username"`
	Password       string        `yaml:"password"`
}
```

So you need to group these pieces together in some `MicroserviceConfig` structure and want to read it from YAML file.

We propose to implement polymorphic type `Gateway` using this code generation tool.

First, you must declare an interface that will hold either of these structs. The interface must have the method `TypedYAML` with a signature holding name of your container struct with a `Typed` suffix, like *Gateway:GatewayTyped*. This method will advise the compiler to work with types.

Let's see:

```go
package config

//go:generate go run github.com/etecs-ru/typedyaml -package config -interface Gateway users=UsersGateway orders=OrdersGateway
type Gateway interface {
	TypedYAML(*GatewayTyped) string
}
```
Now, run `go generate`.
Generated struct `GatewayTyped` will have special implemented methods `MarshalYAML`/`UnmarshalYAML`. `GatewayTyped` could be used as a single instance, or in a slice. Adding configuration for new gateways now working like a charm -- just add its type to code generation argument and regenerate the code.

Let us write some configuration example:

```yaml
tags:
  key: value
gateway:
  type: users
  value:
    enabled: false
    host: internal-users.microservice.lan
    port: 8443
    user: robot
    security_descriptor: SY
gateways:
- type: users
  value:
    enabled: true
    host: external-users.microservice.lan
    port: 8443
    user: robot
    security_descriptor: SY
- type: orders
  value:
    enabled: true
    kafka:
      hosts:
        - host-a:7891
        - host-b:7892
      topics:
        - topic-a
        - topic-b
        - topic-c
      group_id: gid01
      client_id: cid01
      connect_backoff:<PHONE_NUMBER>
      consume_backoff:<PHONE_NUMBER>
      wait_close:<PHONE_NUMBER>
      max_wait_time:<PHONE_NUMBER>
      isolation_level: 0
      username: user
      password: password
```

You can use generated code like this:

```go
package config

import (
	"io/ioutil"

	"github.com/goccy/go-yaml"
)

type MicroserviceConfig struct {
	Tags     map[string]string `yaml:"tags"`
	Gateway  GatewayTyped      `yaml:"gateway"`
	Gateways []GatewayTyped    `yaml:"gateways"`
}

func ReadMicroserviceConfigFromFile(path string) (*MicroserviceConfig, error) {
	b, err := ioutil.ReadFile(path)
	if err != nil {
		return nil, err
	}
	var cfg MicroserviceConfig
	if err = yaml.Unmarshal(b, &cfg); err != nil {
		return nil, err
	}
	return &cfg, nil
}

func WriteMicroserviceConfigToFile(cfg MicroserviceConfig, path string) error {
	b, err := yaml.Marshal(cfg)
	if err != nil {
		return err
	}
	return ioutil.WriteFile(path, b, 0644)
}

```

## Contributing

Bug reports, test cases, and code contributions are more than welcome.
Please refer to the [contribution guidelines](./CONTRIBUTING.md).

## License

MIT License

repository: etecs-ru/typedyaml

gha_language: Go

repo_name: etecs-ru/typedyaml


text:
# Literature

Most of the relevant literature used for this thesis, can be found in this single [```Literature.html```](Literature.html) file.


text:
# i.php
simple PHP//PostgreSQL web server image indexing application

This application is very simple.

1.) Verify dependencies: php-gd php-pdo-pgsql

2.) Drop the three files
        index.php  i.php  db.php
    into a folder that contains images on a web server.

3.) Edit the file
        db.php
    with your PostgreSQL database connection details.
    You need permission to CREATE TABLE 'imagen' and
    to perform basic queries such as INSERT and SELECT
    on that table.

4.) Visit the web server image folder from your browser.
    The script will create thumbnail images and insert
    them into the database if they are not there already,
    and output an html page that displays each thumbnail
    hyperlinked to the corresponding original image file.

***** ***** ***** ***** ***** ***** ***** ***** ***** *****
     =   =   =   =   =   =   =   =   =   =   =   =   =

VERY SIMPLE. WORKS, BUT DEFINITELY STILL NEEDS WORK.

license: Unlicense


text:
# TrainDetails

## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**threshold** | **float** | There is typically some model dependent threshold to be set upon training which is possibly mutable post training. This is that threshold. | [optional]
**immediate_mode** | **bool** | Set immediate_mode to True to do synchronous/blocking training. Might be forced to False in production. | [optional]
**word_manifold** | **str** | The word manifold instance to use for training and later inference.  Rather use the word_manifold_list for supplying a language labelled list of word manifold instances to use in a multi-language system.  | [optional]
**word_manifold_list** | [**list[LabeledWordManifold]**](LabeledWordManifold.md) | The list of labelled word manifolds to use for training. | [optional]

[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

repository: kuenane/feersum-nlu-api-wrappers

repo_name: kuenane/feersum-nlu-api-wrappers


text:
News Highlights Application:

By Peter Kuria

Description

News Highlights is a web appliction that displays a list of news sources from around the world. A user is able to click on a news source and view an abreviated version of - - the particular news article. Clicking on the news article will then redirect you to the news article's web page.
With the application, a user will be able to:
See various news sources and select the ones they prefer.
See all news sources from the source they selected.
See Image description and time the news article was created.
Click on an article and read it fully from the news source

Specifications

Behaviour, Input, Output

Display news sources On page.
load List of various news sources is displayed per category
Display articles from a news source Click a news source Redirected to a page with a list of articles from the source
Display the preview of an article On page load Each article displays an image, title, description and publication date
Read an entire article Click an article Redirected to the news source's site to read the entire article

Prerequisites

You need the following to start working on the project on your local computer:
A computer running on either Windows, MacOS or Ubuntu operating system installed with the following:

Python version 3.6
Flask
Pip
virtualenv
A text Editor

Getting Started

Clone this repository to your local computer.
Ensure you have python3.6 installed in your computer.
From the terminal navigate to the cloned project folder.
Create a virtual environment and access the folder via your virtual amchine.
Visit https://newsapi.org/ and register for an API key.
Create start.sh file and in it write the following lines:
export NEWS_API_KEY=''
python3.6 manage.py server
Run chmod +x start.sh follwoed by ./start.sh while in the project folder to start the project.
Once started, the project can be accessed on your localhost using the address: localhost:5000.
Alternatively the application can be accessed by visiting https://news-highlights.herokuapp.com

Technologies Used
Python v3.6

Boostrap

Flask

License

MIT License

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

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

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

Copyright (c) 2020 peter kuria