text:
- Feature Name: binary-heaps
- Start Date: 2018-11-02
- RFC PR:
- Pony Issue:

# Summary

This RFC proposes the addition of Priority queues to the collections package of
the standard library. This will include a min-heap and a max-heap implemented
as binary heaps stored as an array.

# Motivation

Binary heaps are a useful data structure for processing items based on priority.
Priority queue implementations based on binary heaps exsist in the standard
libraries of other languages such as the max-heap in
[Rust](https://doc.rust-lang.org/std/collections/struct.BinaryHeap.html)
and the min-heap in
[Go](https://golang.org/pkg/container/heap/).
The choice of default ordering seems a bit arbitrary, so this RFC will
include both `MinHeap` and `MaxHeap` as specializations of a generic
`BinaryHeap` type.

An existing implementation of this may be found at
[theodus/pony-heap](https://github.com/Theodus/pony-heap).

# Detailed design

The API and documentation for the `BinaryHeap` class will be as follows:

```pony
class BinaryHeap[A: Comparable[A] #read, P: BinaryHeapPriority[A]]
  """
  A priority queue implemented as a binary heap. The `BinaryHeapPriority` type
  parameter determines whether this is max-heap or a min-heap.
  """

  new create(len: USize) =>
    """
    Create an empty heap with space for `len` elements.
    """

  fun ref clear() =>
    """
    Remove all elements from the heap.
    """

  fun size(): USize =>
    """
    Return the number of elements in the heap.
    """

  fun peek(): this->A ? =>
    """
    Return the highest priority item in the heap. For max-heaps, the greatest
    item will be returned. For min-heaps, the smallest item will be returned.
    """

  fun ref push(value: A) =>
    """
    Push an item into the heap.

    The time complexity of this operation is O(log(n)) with respect to the size
    of the heap.
    """

  fun ref pop(): A^ ? =>
    """
    Remove the highest priority value from the heap and return it. For
    max-heaps, the greatest item will be returned. For min-heaps, the smallest
    item will be returned.

    The time complexity of this operation is O(log(n)) with respect to the size
    of the heap.
    """

  fun ref append(
    seq: (ReadSeq[A] & ReadElement[A^]),
    offset: USize = 0,
    len: USize = -1)
  =>
    """
    Append len elements from a sequence, starting from the given offset.
    """

  fun ref concat(iter: Iterator[A^], offset: USize = 0, len: USize = -1) =>
    """
    Add len iterated elements, starting from the given offset.
    """

  fun values(): ArrayValues[A, this->Array[A]]^ =>
    """
    Return an iterator for the elements in the heap. The order of elements is
    arbitrary.
    """
```

The other associated types will be defined as follows:

```pony
type MinHeap[A: Comparable[A] #read] is BinaryHeap[A, MinHeapPriority[A]]

type MaxHeap[A: Comparable[A] #read] is BinaryHeap[A, MaxHeapPriority[A]]

type BinaryHeapPriority[A: Comparable[A] #read] is
  ( _BinaryHeapPriority[A]
  & (MinHeapPriority[A] | MaxHeapPriority[A]))

interface val _BinaryHeapPriority[A: Comparable[A] #read]
  new val create()
  fun apply(x: A, y: A): Bool

primitive MinHeapPriority[A: Comparable[A] #read] is _BinaryHeapPriority[A]
  fun apply(x: A, y: A): Bool =>
    x < y

primitive MaxHeapPriority [A: Comparable[A] #read] is _BinaryHeapPriority[A]
  fun apply(x: A, y: A): Bool =>
    x > y
```

# How We Teach This

The documentation above will be included for the `BinaryHeap` class and for all
of its public functions.

# How We Test This

The existing implementation includes generative unit tests for the `push`,
`pop`, and `update` operations. These tests will be added to the existing unit
tests for the collections package.

# Drawbacks

* Additional code will be added to the collections package of the standard
library.

# Alternatives

Alternative heap implementations exist which have better amoritized time
complexities, such as the fibonacci heap. However these data structures are not
as efficient in practice since binary heaps can be easily stored as a single
array.

# Unresolved questions

* Should the API expose other `Seq` functions, such as apply, delete, shift,
etc.?

repository: Theodus/pony-heap

repo_name: Theodus/pony-heap


text:
# Implementing Lean Software Development: From Concept to Cash

<!--deck text start-->
The application and adaptation of Lean project management and manufacturing principles to software development have provided a tangible benefit to many software projects.  Lean principles are both consistent and extend Agile software development processes in useful ways.
<!--deck text end-->

#### Contributed by [Roscoe A. Bartlett](https://github.com/bartlettroscoe)
#### Publication date: November 14, 2022

Resource information | Details
:--- | :---
Paper title | [Implementing Lean Software Development: From Concept to Cash](https://dl.acm.org/doi/10.5555/1196372)
Authors | Mary and Tom Poppendieck
Publication | Year 2006, Addison-Wesley, DOI: [https://dl.acm.org/doi/10.5555/1196372](https://dl.acm.org/doi/10.5555/1196372)

This is a fantastic book about the incorporation and adaptation of Lean ideas into Agile software development.
Here, the authors cover several aspects of software development that are not commonly addressed in most books on software development.
One of the biggest things that I took away from the book was the importance of avoiding waste by not implementing any feature that is not absolutely necessary and/or of high priority.
The idea is to find, write, and maintain that 20% of code that satisfies 80% of the desires of your customers.
The whole chapter on "Waste" was excellent and everyone who does or is associated with software development should read this chapter.
Another interesting topic the book covers is how people fit into the software development process and what management practices help to build strong teams (and what management practices work to destroy strong teams, such as individual rankings impacting compensation).
Some other interesting concepts to look for are "technical debt", "automation", and "cycle time".
It was also interesting to read that most mistakes that are made in software development are due to a flawed process and/or supporting tools and not due to bad developers.
Therefore, we should first question and improve the process and/or our development tools to make them more mistake-proof before we point our fingers at individual people for the mistakes they make.
Simply asking people to remember more or giving them a big list of things they have to do is not enough.
Lastly, the "Try this" section of the last chapter "Journey" gives a great condensed summary of the whole book.
If you read nothing else, read this last "Try this" section and go back in the book to look for further details and explanations.

Note: At the foundation for "Lean" software development is an analogy to the Toyota Production System (TPS) for manufacturing.
As with any such analogy one can go too far (see [Code Complete (2nd edition)](https://bssw.io/items/code-complete-a-practical-handbook-of-software-construction) for a discussion of this issue) but the authors appear to be able to take the manufacturing analogy only as far as it can be usefully applied to software development and not any further.

<!---
Publish: yes
Pinned: no
RSS update: 2022-11-14
Topics: software process improvement, software engineering, requirements, software sustainability, issue tracking, strategies for more effective teams, testing, continuous integration, projects and organizations
--->

license: MIT

branch_name: refs/heads/master

extension: md

gha_language: Python

gha_license_id: NOASSERTION

license_type: permissive


text:
# Raspberry Pi Twitter Slideshow

Twitter bot that is meant to be run on a Raspberry Pi with an external screen. Uses twitter streaming API to look for tweets containing certain keywords, downloads images from those tweets and presents them in the form of a slideshow.

Written with Node.js, Coffeescript and Bash.

## Motivation

Used as a Christmas hack with the goal of opting out of the whole xmas card sending shenanigans. A gingerbread-hand holding a frosting-phone was built around a Raspberry Pi connected to a tiny screen. Instead of postcards, friends and family could send christmas tweets to us with an attached image. The image would then be downloaded and displayed on the “phone”.

![](https://pbs.twimg.com/media/B5LH7l9IEAATIMH.jpg:small)
![](https://pbs.twimg.com/media/B5LH7sVIgAEFY1b.jpg:small)

I also built in auto reply functionality but twitter blocks automated @replies and mentions done through their API. Which seems reasonable now that I think about it.

## Installation

####Dev computer

	npm install grunt-cli coffee-script -g
	npm install

Rename `secrets.json.example` to `secrets.json` and fill it with the appropriate secrets. App configurations are kept in `environment/config/`

To compile the `.coffee` files into the `dist/` folder and continue to watch for changes, run:

	grunt

Use the compiled version to run the app. Otherwise the paths will not work.

####Raspberry Pi

I used the [PITFT - 320X240 2.8" TFT+TOUCHSCREEN]( http://www.adafruit.com/product/1601) from adafruit to display images. They also supplied a raspbian based image, preconfigured for the PITFT screen. Can be found [here](https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/easy-install).

[Install node.js and npm on your Raspberry Pi](http://joshondesign.com/2013/10/23/noderpi)

The [forever](https://github.com/nodejitsu/forever) module is used to ensuring that the app runs continuously, even after the SSH session has ended.

	npm install forever -g

You will also need to install [fbi image viewer](http://manpages.ubuntu.com/manpages/utopic/man1/fbi.1.html), used to start the slideshow.

	sudo apt-get install fbi

If you use a wi-fi dongle then you probably want to restart the RasPi if it looses connection. This can be done with the `check_wifi.sh` script, set it up like this.

	crontab -e
	*/5 * * * * <PATH TO SCRIPT>/check_wifi.sh >> /dev/null 2>&1

If you utilize the `check_wifi.sh` then it might also be a good idea to start the app on boot. Add a line to your [/etc/rc.local]( http://www.raspberrypi.org/documentation/linux/usage/rc-local.md) that points to the `on_startup.sh` script, use absolute paths. You will also need to configure `on_startup.sh` with paths that match your setup.

## Deployment

The Gruntfile contains a neat deploy script to get the app running on a Raspberry Pi connected to the same local network.

	grunt deploy

Will compile and move all needed files into `dist/` and then copy the contents of that folder into `/home/pi/` on the RasPi.

	grunt deploy:start

Will do the same as the above command but also install all node dependencies, set the appropriate env variables and start the app with forever.

## TODO:

* Show the actual tweet along with the image on the screen
* fbi image viewer does not support animated .gifs

## Tests

Nope

## License

The MIT License (MIT)

Copyright (c) 2014 Simon Johansson


text:
---
title: TaskCluster Worker
order: 2
sequence_diagrams: true
---

The TaskCluster Worker is our latest worker, written in Go, which is intended
to replace all other workers.

We wanted to write a worker that had a pluggable architecture, to make it super
simple for people to create their own custom workers with their own feature
sets, supporting arbitrary platforms, without needing to fork the worker
codebase. This is achieved with a runtime discovery of
[plugins](https://godoc.org/github.com/taskcluster/taskcluster-worker/plugins#Plugin)
(worker features) and
[engines](https://godoc.org/github.com/taskcluster/taskcluster-worker/engines#Engine)
(supported environments).

The worker comes shipped with a default set of features and engines, which can
be trivially enabled or disabled, in addition to any custom features and/or
engines that the developer wishes to add, simply by adjusting the go build
import paths.

For more information, see the [reference section](/reference/workers/taskcluster-worker).

repository: djmitche/taskcluster-docs

gha_language: JavaScript

repo_name: djmitche/taskcluster-docs


text:
## Description

`Hyper` is a media type optimized for easy production and consumption of
hypermedia messages. Developers can write code against Hyper messages, and
by using implementations of the
[Representor](https://github.com/the-hypermedia-project/charter#representor-pattern)
pattern, such as [Kokua](https://github.com/inadarei/kokua) in Node, have their
messages become consumable in many popular hypermedia formats, such as: HAL,
Siren, UBER etc. Likewise, on the client side, you will be able to consume APIs
written in multiple formats, while only coding against Hyper:

![Hyper in Hub and Spoke](/img/hub-and-spoke.png)

Hyper allows implementations of the Representor pattern to leverage the [Hub
and
Spoke](http://www.enterpriseintegrationpatterns.com/ramblings/03_hubandspoke.html)
pattern and thus avoid the combinatorial explosion of complexity in the
alternative, point-to-point approach.

Due to its simplicity and versatility, Hyper is also a very fine choice as the
primary format of an API, but it's entirely up to the API producer and the
consumer whether they choose to do that or translate Hyper to another format,
such as HAL or UBER.

repository: inadarei/hyper

gha_language: CSS

gha_license_id: MIT

repo_name: inadarei/hyper


text:
---
title: Custom Components
---

# {{$frontmatter.title}}

<TocHeader />
[[toc]]

There are several custom Vue Components located in .vuepress/components. See the code comments within each component for execution details. These components, located in .vuepress/components, are copied to node_modules/@vuepress/themeConfig/components or node_modules/@vuepress/plugins when running or building the project locally.

## TocHeader.vue

[TocHeader.vue](https://github.com/api3dao/api3-docs/blob/stage/docs/.vuepress/components/TocHeader.vue)

TocHeader.vue adds an element to any markdown file and displays "Table of Contents" above the VuePress generated **TOC**. It aligns itself above the TOC using css in index.styl, look for the .toc-label class.

## Versions.vue and VersionsModal.vue

VersionsModal.vue is a child component of Versions.vue. Versions.vue has been added to the navbar to allow users to switch between versions of the docs.

[Versions.vue](https://github.com/api3dao/api3-docs/blob/stage/docs/.vuepress/components/Versions.vue)

[VersionsModal.vue](https://github.com/api3dao/api3-docs/blob/stage/docs/.vuepress/components/VersionsModal.vue)

## SidebarHeader.vue

::: tip No Longer Used
This component is no longer used but is kept as an archived component in case it is needed again. It could be used as a sidebar header to hold almost anything.
:::

SidebarHeader.vue has been added to VuePress Sidebar.vue. It allows users to switch between categories (a.k.a Roles) of the current version and is presented as a row of buttons across the top of the sidebar. Some versions may not have categories and as such buttons will not be present.

[SidebarHeader.vue](https://github.com/api3dao/api3-docs/blob/stage/docs/.vuepress/components/SidebarHeader.vue)

branch_name: refs/heads/main


text:
# Development setup

## Ubuntu/Linux Mint

```bash
# Update to latest stable version of Rust
rustup update

# Ensure rustfmt is installed
rustup component add rustfmt

# Install `cargo-readme`
cargo install cargo-readme

# Install SDL2 for simulator and linkchecker for build script

# Python 2 systems (Ubuntu older than 20.04, Linux Mint 19, etc)
sudo apt install libsdl2-dev linkchecker

# OR

# Python 3 systems (Ubuntu 20.04+, Linux Mint 20, etc)
sudo apt install python3-pip
sudo pip3 install git+https://github.com/linkchecker/linkchecker.git
```

## Generating readmes

The various `README.md` files in this project are generated from each crate's `lib.rs` comment. To
regenerate a readme, ensure [`cargo-readme`](https://crates.io/crates/cargo-readme) is installed
then run:

```bash
./readme.sh <crate>

# e.g.
./readme.sh simulator
```

All readmes can be generated at the same time by running the `./generate_readmes.sh` script in the project root.

Running `./build.sh` will check if the readme was successfully updated. The updated `README.md`
should be committed into git.

repository: rfuest/embedded-graphics

repo_name: rfuest/embedded-graphics


text:
---
title: Light Cookies
layout: tutorial-page.hbs
tags: lighting
thumb: https://s3-eu-west-1.amazonaws.com/images.playcanvas.com/projects/12/409793/19BDEF-image-75.jpg
---

<iframe loading="lazy" src="https://playcanv.as/p/AGtssoOU/" title="Light Cookies"></iframe>

Find out more by forking the [full project][1].

In theatre it is common to create visual effects on stage by using shape masks to cast shadows across the scene. These masks are called "cucoloris" or "cookies". Creating a light cookie in WebGL using PlayCanvas is achieved using a texture or a cubemap that is applied to the Light Component. Light Cookies are applicable to spot lights and omni lights.

![Grid Cookie][2]
**A simple grid cookie gives the impression of a window**

## Cookie Texture

A cookie texture is just a regular texture asset which is applied to a spot light component in the Cookie section. When a cookie is applied you can choose which channels of the texture to use. For example, if you are doing a simple mask, you can use just the Alpha channel. Or if you would like a full color effect like a stained glass window you can use the full RGB value.

![Light Settings][3]

## Cookie Cubemap

For an omni light the cookie needs to be a cubemap so that it can be projected in 6 directions around the point of the light.

## Use Cases

**Shaped Lights** - cookies are useful for masking the shape of a light source. For example, if you're scene contains a window or a fluorescent strip light using a spot light will create a light shape that is rounded. You can mask the shape of the light to be long and thin, or square in order to simulate the shape of the light.

![Shaped Light][5]

**Torches** - Torches and headlights don't light a surface evenly instead they have light and dark "caustic" areas. You can use a light cookie to create this effect.

![Torch Light][4]

[1]: https://playcanvas.com/project/409793/overview/example-light-cookies
[2]: /images/tutorials/intermediate/light-cookies/window-cookie.jpg
[3]: /images/tutorials/intermediate/light-cookies/cookie-setting.jpg
[4]: /images/tutorials/intermediate/light-cookies/torch-cookie.jpg
[5]: /images/tutorials/intermediate/light-cookies/square-cookie.jpg

branch_name: refs/heads/dev


text:
# Docker container running a flask web server for cash flow prediction using Scikit-Learn

#### Author(s): MSFT Commercial Software Engineering

Create a docker container with a trained model for cash flow prediction and host it in Azure with this tutorial.
----------
### Why would you want to use this?
Imagine that you have built a machine learning model and want others to be able to use it. You'd have to host it somewhere, and as more users hit the endpoint with the model, you'll need to scale dynamically to assure they have a fast and consistent experience. This project includes a number of simple, yet helpful tools.

**Docker**

Docker is a platform that allows users to easily pack, distribute, and manage applications within containers. It's an open-source project that automates the deployment of applications inside software containers. Gone are the days of an IT professional saying  "*Well, it worked on my machine.*" Not it works on all of our machines.

**Flask**

Flask is great for developers working on small projects that need a quick way to make a simple, Python-powered web site. It powers loads of small one-off tools, or simple web interfaces built over existing APIs.

**Scikit-Learn**

Scikit-Learn is a simple and efficient tools for data mining and data analysis, which is built on NumPy, SciPy, and matplotlib. It does a lot of the dirty work involved with machine learning, and allows you to quickly build models, make predicitons, and manage your data.

Once your docker container is deployed, you simply make an HTTP Post request to ```http://localhost:5000/forecast``` with the csv of an dataset in the body, and the model will return a prediction for cash on hand.

### Buld the image & run it locally
In a terminal, navigate to the folder containing the .dockerfile.
This will create a new docker image and tag it with the name of your repository, name of the image, and the version
It will take a few minutes to download & install all of the required files
```
docker build -t davevoyles/docker-forecasting-pred:testOne .
```

Run the image locally in debug mode and expose ports 5000
```
docker run --name pred-model -p 5000:5000 davevoyles/docker-forecasting-pred:testOne
```

### Verify everything works locally, then remove the image
``` docker ps ```

``` docker logs docker-forecasting-pred ```

``` docker rm -f docker logs docker-forecasting-pred ```

repository: AYCHB/CForecast

path: /Forecasting Pred Model/README.md

gha_language: C#

repo_name: AYCHB/CForecast


text:
# CarND-Path-Planning-Project

![road.gif](road.gif)

Link to [video](road.mp4)

### Goals
In this project, the goal is to safely navigate around a virtual highway with other traffic that is driving +-10 MPH of the 50 MPH speed limit. The car should try to go as close as possible to the 50 MPH speed limit, which means passing slower traffic when possible, note that other cars will try to change lanes too. The car should avoid hitting other cars at all cost as well as driving inside of the marked road lanes at all times unless going from one lane to another. The car should be able to make one complete loop around the 6946m highway. Since the car is trying to go 50 MPH, it should take a little over 5 minutes to complete 1 loop. Also, the car should not experience total acceleration over 10 m/s^2 and jerk that is greater than 10 m/s^3.

### Model Documentation

#### Define constans and initial values for the vars
```c++
const double distance_for_a_next_waypoint = 30;
const double target_speed = 49.5;
const double distance_threshold = 30;
const double dt = 0.02;
const double max_acc = 0.224;
int lane = 1;
```
These constant will be used in implementation.

#### Size of previous path for reuse
```c++
int prev_size = previous_path_x.size();
```

#### Define variables which will define possible behaviours
```c++
bool canChangeLeft = true;
bool canChangeRight = true;
bool carAhead = false;
bool shouldSlowDown = false;
```

#### Try to use end if existed path as current car position for trajectory prediction
```c++
if (prev_size > 0) {
	car_s = end_path_s;
}
```

#### Variables to find the closest cars in adjacent lines, to ensure that switching the line is safe
```c++
double minimal_distance_to_the_car_behind_on_the_left_side = 100000;
int index_of_closest_car_behind_left = -1;

double minimal_distance_to_the_car_behind_on_the_right_side = 100000;
int index_of_closest_car_behind_right = -1;
```

#### Disallow left turn if we are already on the most left lane
```  c++
if (lane <= 0) {
	canChangeLeft = false;
}
```

#### Disallow right turn if we are already on the most left lane
```c++
if (lane >= 2) {
	canChangeRight = false;
}
```

#### Predict cars position in the future using the trajectory
1. Looks for the cars in front in the future.
2. Check if changing the line is safe regarding the distance to the cars behind and their velocity

#### Use current sensor fusion data to prevent a collision with a car in front

If the situation on the road changed rapidly we want to react, by modifying

```c++
shouldSlowDown;
carAhead;
canChangeRight;
canChangeLeft;
```

#### Make decision about changing the lane or decreasing the speed
```c++
if (carAhead && canChangeLeft) {
    lane--;
} else if(carAhead && !canChangeLeft && canChangeRight) {
    lane++;
}
```

#### Change speed to avoid a collision but tries to get back to the target speed if possible
```c++
if(shouldSlowDown) {
	ref_vel -= max_acc;
} else if(!shouldSlowDown && ref_vel < target_speed) {
	ref_vel += max_acc;
}
```

### Build the trajectory
```c++
// points that will be used to build the spline
  vector<double> ptsx;
  vector<double> ptsy;

  // use sensor fusion data
  double ref_x = car_x;
  double ref_y = car_y;
  double ref_yaw = deg2rad(car_yaw);

  // if there is no previous path, fake it by adding the augmented points using the known angle,
  if (prev_size < 2) {
    double prev_car_x = car_x - cos(car_yaw);
    double prev_car_y = car_y - sin(car_yaw);

    ptsx.push_back(prev_car_x);
    ptsx.push_back(car_x);

    ptsy.push_back(prev_car_y);
    ptsy.push_back(car_y);
  } else {
    ref_x = previous_path_x[prev_size-1];
    ref_y = previous_path_y[prev_size-1];

    double ref_x_prev = previous_path_x[prev_size-2];
    double ref_y_prev = previous_path_y[prev_size-2];
    ref_yaw = atan2(ref_y-ref_y_prev, ref_x-ref_x_prev);

    ptsx.push_back(ref_x_prev);
    ptsx.push_back(ref_x);

    ptsy.push_back(ref_y_prev);
    ptsy.push_back(ref_y);
  }

  // create a new point in Frenet coordinates, which will be used to generate smooth path with spline
  vector<double> next_wp0 = getXY(car_s + 1*distance_for_a_next_waypoint, (2+4*lane), map_waypoints_s, map_waypoints_x, map_waypoints_y);
  vector<double> next_wp1 = getXY(car_s + 2*distance_for_a_next_waypoint, (2+4*lane), map_waypoints_s, map_waypoints_x, map_waypoints_y);
  vector<double> next_wp2 = getXY(car_s + 3*distance_for_a_next_waypoint, (2+4*lane), map_waypoints_s, map_waypoints_x, map_waypoints_y);

  ptsx.push_back(next_wp0[0]);
  ptsx.push_back(next_wp1[0]);
  ptsx.push_back(next_wp2[0]);

  ptsy.push_back(next_wp0[1]);
  ptsy.push_back(next_wp1[1]);
  ptsy.push_back(next_wp2[1]);

  // transform points to local coordinates from map coordinates
  for (int i = 0; i < ptsx.size(); i++) {
    double shift_x = ptsx[i] - ref_x;
    double shift_y = ptsy[i] - ref_y;

    ptsx[i] = shift_x*cos(0-ref_yaw) - shift_y*sin(0-ref_yaw);
    ptsy[i] = shift_x*sin(0-ref_yaw) + shift_y*cos(0-ref_yaw);
  }

  // use spline to generate smooth path
  tk::spline s;
  s.set_points(ptsx, ptsy);

  // this is real planner points
  vector<double> next_x_vals;
  vector<double> next_y_vals;

  // reuse previous path points
  for (int i = 0; i < prev_size; i++) {
    next_x_vals.push_back(previous_path_x[i]);
    next_y_vals.push_back(previous_path_y[i]);
  }

  double target_x = 30.0;
  double target_y = s(target_x);
  double target_dist = sqrt((target_x*target_x) + (target_y*target_y));

  double x_add_on = 0;

  // number of intervals for the target distance, we need to properly distribute our trajectory points
  double N = (target_dist/(dt*ref_vel/2.24)); // 2.24 is koef for miles

  for (int i = 0; i <= 50 - prev_size; i++) {

    double x_point = x_add_on + target_x/N;
    double y_point = s(x_point);

    x_add_on = x_point;

    double x_ref = x_point;
    double y_ref = y_point;

    // convert to map coordinates from local
    x_point = x_ref*cos(ref_yaw)-y_ref*sin(ref_yaw);
    y_point = x_ref*sin(ref_yaw)+y_ref*cos(ref_yaw);

    x_point += ref_x;
    y_point += ref_y;

    next_x_vals.push_back(x_point);
    next_y_vals.push_back(y_point);
  }
```

---

## Basic Build Instructions

1. Clone this repo.
2. Make a build directory: `mkdir build && cd build`
3. Compile: `cmake .. && make`
4. Run it: `./path_planning`.

### Simulator.
You can download the Term3 Simulator which contains the Path Planning Project from the [releases tab (https://github.com/udacity/self-driving-car-sim/releases/tag/T3_v1.2).

To run the simulator on Mac/Linux, first make the binary file executable with the following command:
```shell
sudo chmod u+x {simulator_file_name}
```

---

## Dependencies

* cmake >= 3.5
  * All OSes: [click here for installation instructions](https://cmake.org/install/)
* make >= 4.1
  * Linux: make is installed by default on most Linux distros
  * Mac: [install Xcode command line tools to get make](https://developer.apple.com/xcode/features/)
  * Windows: [Click here for installation instructions](http://gnuwin32.sourceforge.net/packages/make.htm)
* gcc/g++ >= 5.4
  * Linux: gcc / g++ is installed by default on most Linux distros
  * Mac: same deal as make - [install Xcode command line tools]((https://developer.apple.com/xcode/features/)
  * Windows: recommend using [MinGW](http://www.mingw.org/)
* [uWebSockets](https://github.com/uWebSockets/uWebSockets)
  * Run either `install-mac.sh` or `install-ubuntu.sh`.
  * If you install from source, checkout to commit `e94b6e1`, i.e.
    ```
    git clone https://github.com/uWebSockets/uWebSockets
    cd uWebSockets
    git checkout e94b6e1
    ```


text:
---
layout: post
date: 2016-09-07
title: "House of Wu Christina Wu Occasions Style 22626 Sleeveless Floor-Length Mermaid/Trumpet"
category: House of Wu
tags: [House of Wu,Mermaid/Trumpet,Sweetheart,Floor-Length,Sleeveless]
---
### House of Wu Christina Wu Occasions Style 22626
Just **$369.99**
###   Sleeveless Floor-Length Mermaid/Trumpet

BRANDS	House of Wu

Silhouette	Mermaid/Trumpet

Neckline	Sweetheart

Hemline/Train	Floor-Length

Sleeve	Sleeveless

Buy it: [https://www.readybrides.com/en/house-of-wu/18497-house-of-wu-christina-wu-occasions-style-22626.html](https://www.readybrides.com/en/house-of-wu/18497-house-of-wu-christina-wu-occasions-style-22626.html)


text:
---
author: Aashni
comments: true
date: 2018-01-22 12:14:54+00:00
description: AngularJS is a great framework for building websites. It becomes even more powerful when you're able to deploy the entire site to github pages, therefore hosting the site for free!
layout: post
link: https://aashni.me/blog/create-and-deploy-angularjs-app-to-github-pages/
slug: create-and-deploy-angularjs-app-to-github-pages
title: Create and Deploy An AngularJS App to Github Pages
wordpress_id: 336
categories:
  - AngularJS
  - Github
  - Javascript
  - Tutorial
  - Workshop
---

Recently I was working on an [AngularJS](https://angularjs.org/) project for an [Elixir Labs](http://www.elixirlabs.org/) project, and realized that I could actually host the entire website on Github Pages. This worked because my app made use of [Firebase](https://firebase.google.com/) as the database, and as a result didn’t need an additional back-end written up. I thought it would be a good idea to write-up a quick guide on how to create and then deploy an AngularJS app to Github Pages.

## Step 1: Setup our environment

The first step is making sure you have the necessary tools to create an AngularJS application.

We’ll be using [NodeJS](https://nodejs.org/en/). Check to make sure it’s installed by checking what version you have running. If you don’t get a version number back, visit the website and download NodeJS.

```bash
    $ node -v
```

Next we want to set up [npm](https://www.npmjs.com/) or the node package manager. This helps manage and control the different packages we’re using across a project. A general comment: whenever we use these commands, if we use `-g`, it means we’d like to make that package or service available globally on our machine, otherwise it would be project specific. The following command will install and update npm, and make sure it’s available globally.

```bash
    $ npm install npm -g
```

We’ll want to install [Yeoman](http://yeoman.io/) next. This let’s us use a generator for the AngularJS app, making creating controllers and services a lot easier. We will then install the angular generator.

```bash
    $ npm install -g yo
    $ npm install -g generator-angular
```

## Create the AngularJS App

Once the environment is set up, our next steps are to create our project directory, changing into it, then getting the project setup with Github. Replace with your project’s name. You can get your from the project’s repository page on Github. Add the initialized directory, commit and push the changes to your Github repo to make sure everything is working.

```bash
    $ mkdir <projectname> && cd $_
    $ git init
    $ git remote add origin <project-repo.git>
    $ git add *
    $ git commit -m "setting up environment for AngularJS project"
    $ git push --set-upstream origin master
```

Next we’ll use the Yeoman generator to create the AngularJS project for us.

```bash
    $ yo angular projectName
```

Yeoman will walk you through a set of questions in order to set up your project properly. I said no to Gulp, Sass/Compass and said yes to Bootstrap. I left the rest on their default values. If you’re asked to overwrite the package.json file at some point during this process, select Y or yes. You’ll see something similar to the following message at the bottom of the script to let you know the command completed successfully.

```bash
    Done. Phantomjs binary available at /Users/aashnishah/dev/deployAngularJSToGithubPages/node_modules/phantomjs-prebuilt/lib/phantom/bin/phantomjs
    +<EMAIL_ADDRESS>    +<EMAIL_ADDRESS>    +<EMAIL_ADDRESS>    +<EMAIL_ADDRESS>    +<EMAIL_ADDRESS>    added 587 packages in 51.916s
```

Once this command completes, a base version of the app is ready to deploy. At this point, you’d go into your AngularJS app, make whatever necessary changes you want to make the website your own. You can run the following command to view the changes. Normally a new browser will pop up at this point, but incase it doesn’t, go to [http://localhost:9000/#!/](http://localhost:9000/#!/) in your browser.

```bash
    $ grunt serve
```

If all went well, you’ll see something similar to this on your screen.

[![](./AngularJSAppLocalhost-973x1024.png)](./AngularJSAppLocalhost.png)

## Deploy, Deploy, Deploy!

Once you’re done with all your changes, we can now deploy the app to [Github Pages](https://pages.github.com/). I recommend checking out their website if you don’t know much about how Github Pages work, but a quick overview is that you create a new branch called gh-pages, and push your changes to that branch. Github then picks up those changes and does it’s best to render it into a website at an address similar to .githubio.com. To deploy the AngularJS app, we want to build the dist or distribution version of the files, and then use those for the Github Pages.

In order to make this process easier for us as a developer, we’ll be making use of the [Grunt Build Control](https://github.com/robwierzbowski/grunt-build-control), and add a few changes to our existing project to automate and simplify the deployment process. You can follow their README for all the necessary steps and to add any of the additional options. I’ve highlighted the one’s needed for our simple base AngularJS app below.

```bash
    $ npm install grunt-build-control --save-dev
```

First we’ll need to add reference calls to grunt build control in our Gruntfile.js. We can add this close to the top of the file (right after we’ve created the module).

```bash
    grunt.loadNpmTasks('grunt-build-control');
    var pkg = require('./package.json');
```

This next section is adding in the rules so that we can call `grunt buildcontrol:pages` and have it all work. This needs to be added into the grunt.initconfig() - make sure you are careful about opening and closing different blocks of rules within the initconfig. Make sure to update the path to your remote repository.

```javascript
    buildcontrol: {
          options: {
            dir: 'dist',
            commit: true,
            push: true,
            message: 'Built %sourceName% from commit %sourceCommit% on branch %sourceBranch%'
          },
          pages: {
            options: {
              remote: 'git@github.com:<username>/<githubrepo>.git',
              branch: 'gh-pages'
            }
          },
          local: {
            options: {
              remote: '../',
              branch: 'build'
            }
          }
        },
```

If you haven’t already, add, push and commit all these changes to GitHub.

```bash
    $ git add *
    $ git commit -m "Initial version of AngularJS ready to deploy"
    $ git push
```

At this point, we can now build the dist files needed to deploy the AngularJS app to Github pages. The following two commands will first create the dist folder, and then use the build control we set up earlier to push the changes to Github Pages

```bash
    $ grunt build
    $ grunt buildcontrol:pages
```

If this is your first time using GitHub like this, you may run into the following error message while running the buildcontrol:pages command. You’ll need to follow [these steps](https://help.github.com/articles/connecting-to-github-with-ssh/) on how to setup SSH keys between your computer and Github, and then try the command again.

```bash
    Pushing gh-pages to git@github.com:aashnisshah/deployAngularJSToGithubPages.git
    no such identity: /Users/aashnishah/.ssh/id_rsa: No such file or directory
<EMAIL_ADDRESS>Permission denied (publickey).
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.
    Warning: no such identity: /Users/aashnishah/.ssh/id_rsa: No such file or directory
<EMAIL_ADDRESS>Permission denied (publickey).
    fatal: Could not read from remote repository.

    Please make sure you have the correct access rights
    and the repository exists.
     Use --force to continue.
```

A gh-pages branch will be created in your repo, and you can now view your website at the following link:

```bash
    http://<username>.github.io/<projectname>
```

You can view my project at: [aashnisshah.github.io/deployAngularJSToGithubPages](https://aashnisshah.github.io/deployAngularJSToGithubPages/).

Managed to deploy your project or have any questions? Leave them below!

repository: aashnisshah/aashnime

repo_name: aashnisshah/aashnime


text:
# Getting started

## Create Virtual Environment (venv)
```bash
python3.7 -m venv .venv
pip3 install --no-cache-dir -r requirements.txt
```

## Special care to be taken for handling unicode tamil characters
### git
By default, git will print non-ASCII file names in quoted octal notation, i.e. "\nnn\nnn...". This can be disabled with:

```bash
git config --global core.quotepath off
```

### Terminal
* on ubuntu 18.04 KDE konsole works well with tamil characters.
* on ubuntu 19.04 Tilix works well when cell space set to 2.0 . Konsole renders bad

### vscode
The library was built using vscode. VScode Jedi didn't display tamil function names in outline window and intellisense. To fix this switch to language server instead of Jedi (set "python.jediEnabled": false in your settings.json). I have raised a bug with Vscode

 [Function names with unicode (indic characters) are not displayed in Outline window #6454](https://github.com/microsoft/vscode-python/issues/6454)

### python package installation
To install this package use the pip application command as follows
[இந்த நிரல் தொகுப்பை நிறுவவதற்கு இப்படி pip செயலியில் கட்டளை இடவேண்டும்.]
$ python3 -m pip install setup.py  --user

### pytest
pytest escapes unicode strings while printing on stdout. I guess, Vscode uses the same output so the UI listing of test cases also has excaped unicode strings.

> tests/test_1.py::test_தொடர்மொழி_ஆக்கு[\u0b9a\u0bc7-\u0b85\u0b9f\u0bbf-தொடர்மொழி0] PASSED                 [100%]

![pytest unicode escaped vscode](https://user-images.githubusercontent.com/5801636/64475939-b2706f00-d1a6-11e9-8c74-e3834b2bcbd6.png)

To fix this create set `disable_test_id_escaping_and_forfeit_all_rights_to_community_support = True` in `pytest.ini`. pytest authors warn this may [break](https://github.com/pytest-dev/pytest/issues/5286) something unexpected. But works fine for me. This also fixes the vscode UI escaping unicode characters in pytest extension.

>tests/test_1.py::test_தொடர்மொழி_ஆக்கு[சே-அடி-தொடர்மொழி0] PASSED                                          [100%]

![pytest unicode vscode](https://user-images.githubusercontent.com/5801636/64476031-b2bd3a00-d1a7-11e9-89e5-3623709bee51.png)

launch.json for Vscode
```
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug மாத்திரை Grammar",
            "type": "antlr-debug",
            "request": "launch",
            "grammar": "${workspaceFolder}/pytamil/தமிழ்/resources/மாத்திரை.g4",
            "input": "${workspaceFolder}/pytamil/தமிழ்/resources/மாத்திரை-input.txt",
            "visualParseTree": true
        },
        {
            "name": "Debug வெண்பா Grammar",
            "type": "antlr-debug",
            "request": "launch",
            "grammar": "${workspaceFolder}/pytamil/தமிழ்/resources/வெண்பா.g4",
            "input": "${workspaceFolder}/pytamil/தமிழ்/resources/வெண்பா-input.txt",
            "visualParseTree": true
        },
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        },
        {
            "name": "Python: Tamil19.py",
            "type": "python",
            "request": "launch",
            "cwd": "${workspaceFolder}",
            "program": "${workspaceFolder}/pytamil/tamil19.py",
            "console": "integratedTerminal",
            "env": {"PYTHONPATH": "${workspaceFolder}"},

        }
    ]
}
```

settings.json
```
{
    "python.pythonPath": ".venv/bin/python",
    "python.jediEnabled": false,

    "[antlr]": {},
    "antlr4.generation": {
        "mode": "external",
        "language": "Python3",
        "listeners": true,
        "visitors": false,
        "outputDir": "/home/srix/workspace/pytamil/pytamil/தமிழ்/codegen/"
    },
}

```

# How to use

## Howto Debug Grammars

On VSCODE

* make sure antlr extension is installed. The launch and settings files have entries like above.
* Create the following files
    {workspaceFolder}/pytamil/தமிழ்/resources/வெண்பா-input.txt
    {workspaceFolder}/pytamil/தமிழ்/resources/மாத்திரை-input.txt

* Select the config from debug list and run. Antlr extension should be able to generate parse tree graph.
* Make sure the entry in மாத்திரை-input.txt is in விரி form . That is to debug தவளை enter த்அவ்அள்ஐ

## unit tests
cd in to top lelvel folder and run pytest.
```bash
# runn all tests
pytest
# or run speific tests
pytest test_எழுத்து.py
pytest test_சான்று.py
pytest test_புணர்ச்சி.py
```

repository: srix/pytamil

repo_name: srix/pytamil


text:
---
title: Telerik.Web.UI.RadSocialShare
page_title: Telerik.Web.UI.RadSocialShare
description: Telerik.Web.UI.RadSocialShare
---

# Telerik.Web.UI.RadSocialShare

Telerik Social Share control

## Inheritance Hierarchy

* System.Object
* System.Web.UI.Control
* System.Web.UI.WebControls.WebControl
* Telerik.Web.UI.RadWebControl : IControl, IControlResolver, IPostBackDataHandler, IScriptControl, ISkinnableControl
* Telerik.Web.UI.RadSocialShare : ICallbackEventHandler

## Properties

###  ClientIDMode `ClientIDMode`

This property is overridden in order to support controls which implement INamingContainer.
            The default value is changed to "AutoID".

###  CompactButtons `GenericSocialButtonsCollection`1`

Compact buttons collection.

###  CssClassFormatString `String`

The CssClass property will now be used instead of the former Skin
            and will be modified in AddAttributesToRender()

###  DialogHeight `Unit`

Get/Set the height of the social dialog popup.

###  DialogLeft `Unit`

Get/Set the left of the social dialog popup. It is centered by default.

###  DialogTop `Unit`

Get/Set the top of the social dialog. It is centered by default.

###  DialogWidth `Unit`

Get/Set the width of the social dialog popup.

###  EmailSettings `RadSocialShareEmailSettings`

Email settings

###  EnableAjaxSkinRendering `String`

Gets or sets the value, indicating whether to render the skin CSS files during Ajax requests

#### Remarks
If EnableAjaxSkinRendering is set to false you will have to register the needed control base CSS file by hand when adding/showing the control with Ajax.

###  EnableEmbeddedBaseStylesheet `Boolean`

Gets or sets the value, indicating whether to render the link to the embedded base stylesheet of the control or not.

#### Remarks
If EnableEmbeddedBaseStylesheet is set to false you will have to register the needed control base CSS file by hand.

###  EnableEmbeddedScripts `Boolean`

Gets or sets the value, indicating whether to render script references to the embedded scripts or not.

#### Remarks
If EnableEmbeddedScripts is set to false you will have to register the needed Scripts files by hand.

###  EnableEmbeddedSkins `String`

Gets or sets the value, indicating whether to render links to the embedded skins or not.

#### Remarks
If EnableEmbeddedSkins is set to false you will have to register the needed CSS files by hand.

###  EnableRippleEffect `Boolean`

Returns true if ripple effect should be added

###  FacebookAppId `String`

Get/set the FacebookAppId of your Facebook application.

###  GoogleAnalyticsUA `String`

Get/set the web property ID for your Analytics account.

###  Height `Unit`

Get/Set the height of the social share control.

###  HideIframesOnDialogMove `Boolean`

Get/Set whether IFRAMEs should be hidden while the compact popup or send email dialog is moved. The default value is true.

###  IsSkinSet `String`

For internal use.

###  MainButtons `GenericSocialButtonsCollection`1`

Main buttons collection.

###  OnFacebookLike `String`

Get/set the name of the JavaScript function that is called when the Facebook Like standard button is clicked.

###  OnFacebookSend `String`

Get/set the name of the JavaScript function that is called when the Facebook Send standard button is clicked.

###  OnFacebookUnLike `String`

Get/set the name of the JavaScript function that is called when the Facebook UnLike standard button is clicked.

###  OnGooglePlusOneOff `String`

Get/set the name of the JavaScript function that is called when the GooglePlus standard button is clicked for disapproval.

###  OnGooglePlusOneOn `String`

Get/set the name of the JavaScript function that is called when the GooglePlus standard button is clicked for approval.

###  OnLinkedInShare `String`

Get/set the name of the JavaScript function that is called when the LinkedIn standard button is clicked.

###  OnSocialButtonClicked `String`

Get/set the name of the JavaScript function that is called after one of the
            Styled buttons is clicked. The event is raised after the  event and it cannot be cancelled.

###  OnSocialButtonClicking `String`

Get/set the name of the JavaScript function that is called when one of the
            Styled buttons is clicked. The event is raised before the  event and it can be cancelled.

###  OnTweet `String`

Get/set the name of the JavaScript function that is called when the Tweet standard button is clicked.

###  Orientation `Orientation`

Get/Set orientation of the buttons. Horizontal by default.

###  RegisterWithScriptManager `Boolean`

Gets or sets the value, indicating whether to register with the ScriptManager control on the page.

#### Remarks
If RegisterWithScriptManager is set to false the control can be rendered on the page using Web Services or normal callback requests/page methods.

###  RenderMode `RenderMode`

Specifies the rendering mode of the control. Setting the mode to Lightweight will yield
            HTML 5/CSS 3 html and css.

#### Remarks
Lightweight rendering mode might change the outlook of the component in some older browsers
            that don't support CSS3/HTML5.

###  ResolvedRenderMode `RenderMode`

Returns resolved RenderMode should the original value was Auto

###  RuntimeSkin `String`

Gets the real skin name for the control user interface. If Skin is not set, returns
            "Default", otherwise returns Skin.

###  Skin `String`

Gets or sets the skin name for the control user interface.

#### Remarks
If this property is not set, the control will render using the skin named "Default".
            If EnableEmbeddedSkins is set to false, the control will not render skin.

###  TitleToShare `String`

Get/Set the title of the shared message. The default value is an empty string
            which results in sharing the title of the current page or the url itself if there isn't a title.

###  UrlToShare `String`

Get/Set the url to share. The default value is empty string which results in sharing the page on which the button resides.

###  Width `Unit`

Get/Set the width of the social share control.

###  YammerAppId `String`

Get/set the Application ID of the Yammer application related to the RadSocialShare buttons

## Methods

###  ApplyConditionalRendering

Use this from RenderContents of the inheritor

#### Returns

`System.Void`

###  ControlPreRender

Code moved into this method from OnPreRender to make sure it executed when the framework skips OnPreRender() for some reason

#### Returns

`System.Void`

###  GetEmbeddedSkinNames

Returns the names of all embedded skins. Used by Telerik.Web.Examples.

#### Returns

`System.Collections.Generic.List`1`

###  LoadClientState

Loads the client state data

#### Parameters

#### clientState `System.Collections.Generic.Dictionary{System.String,System.Object}`

#### Returns

`System.Void`

###  LoadPostData

Executed when post data is loaded from the request

#### Parameters

#### postDataKey `System.String`

#### postCollection `System.Collections.Specialized.NameValueCollection`

#### Returns

`System.Boolean`

###  RaisePostDataChangedEvent

Executed when post data changes should invoke a changed event

#### Returns

`System.Void`

###  RegisterCssReferences

Registers the CSS references

#### Returns

`System.Void`

###  RegisterScriptControl

Registers the control with the ScriptManager

#### Returns

`System.Void`

###  SaveClientState

Saves the client state data

#### Returns

`System.String`

repository: telerik/ajax-docs

repo_name: telerik/ajax-docs


text:
---

# Page settings
layout: tutorials
keywords:

# Grid navigation
marketing_grid:
    - title: AWS Amplify Tutorials
      excerpt: AWS Amplify comes with building blocks for frontend and mobile developers to interact with the Cloud. You can mix and match the categories below as needed.

# Grid navigation

tutorial_list:
    - category: Integrage
      title: Upgrade your App
      subs:
        - title: Upgrate your Web App
          excerpt: Drop-in analytics to track user sessions, custom user attributes, and in-app metrics.
          cta: Read more
          class: aws-icon-ps-60-pie-bar-charts
          url: '/media/analytics_guide'
          services:
            - title: Amazon Pinpoint,
              url: https://aws.amazon.com/pinpoint/
            - title: Amazon Kinesis,
              url: https://aws.amazon.com/kinesis/
            - title: Custom Plugin
              url: https://aws.github.io/aws-amplify/media/analytics_guide#using-a-custom-plugin
        - title: Upgrate your React Native App
          excerpt: A simple and secure solution for making HTTP requests using REST and GraphQL, with support for real-time data.
          cta: Read more
          class: aws-icon-ps-60-database-server
          url: '/media/api_guide'
          services:
            - title: Amazon API Gateway,
              url: https://aws.amazon.com/api-gateway
            - title: AWS AppSync
              url: https://aws.amazon.com/appsync
        - title: Authentication
          excerpt:  Authentication APIs with pre-built UI components for your app.
          cta: Read more
          class: aws-icon-ps-60-shield-circle
          url: '/media/authentication_guide'
          services:
            - title: Amazon Cognito,
              url: https://aws.amazon.com/cognito/
            - title: OAuth 2.0 ,
              url: https://aws.amazon.com/cognito/
            - title: Custom Plugin
              url:
        - title: Hosting
          excerpt: Deploy your Web app or static website for global CDN distribution with media streaming support.
          cta: Read more
          class: aws-icon-ps-60-network-nodes
          url: '/media/hosting_guide'
          services:
              - title: Amazon CloudFront
                url: https://aws.amazon.com/cloudfront/
        - title: PubSub
          excerpt: Connect your app to message-oriented middleware on the cloud.
          cta: Read more
          class: aws-icon-ps-60-circular-circuit
          url: '/media/pub_sub_guide'
          services:
              - title: AWS IoT,
                url: https://aws.amazon.com/iot/
              - title: Generic MQTT,
                url: https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html#mqtt
              - title: Custom Plugin
                url:
        - title: Push Notifications
          excerpt: Push notifications with campaign analytics and targeting.
          cta: Read more
          class: aws-icon-ps-60-bubble-gear
          url: '/media/push_notifications_setup'
          services:
              - title: Amazon Pinpoint
                url: https://aws.amazon.com/pinpoint/
        - title: Storage
          excerpt: A simple mechanism for managing user content in public, protected or private storage.
          cta: Read more
          class: aws-icon-ps-60-file-box
          url: '/media/storage_guide'
          services:
              - title: Amazon S3
                url: https://aws.amazon.com/s3/
    -  category: UtilityModules
       title: Utility Modules
       subs:
        - title: Cache
          excerpt: A generic LRU cache for storing data with priority and expiration settings.
          cta: Read more
          url: '/media/cache_guide'
        - title: Hub
          excerpt: A lightweight local event bus for your app.
          cta: Read more
          url: '/media/hub_guide'
        - title: I18n
          excerpt: A lightweight internationalization solution.
          cta: Read more
          url: '/media/i18n_guide'
        - title: Logger
          excerpt: Console logging utility.
          cta: Read more
          url: '/media/logger_guide'
        - title: Service Worker
          excerpt: A utility class to work with PWA and Service Worker APIs.
          cta: Read more
          url: '/media/service_workers_guide'
    -  category: CLI
       title: CLI
       subs:
        - title: AWS Mobile CLI
          excerpt: A CLI to create and manage your app's backend.
          cta: Read more
          url: '/media/cli_guide'
    -  category: Front-end Support
       title: Front-end Support
       subs:
        - title: Angular
          excerpt: Angular support package.
          cta: Read more
          url: '/media/angular_guide'
        - title: React
          excerpt: React support package.
          cta: Read more
          url: '/media/react_guide'
        - title: React Native
          excerpt: React Native support package.
          cta: Read more
          url: '/media/react_native_guide'
        - title: Vue.js
          excerpt: Vue.j starter app.
          cta: Read more
          url: '/media/vuejs_guide'
        - title: Ionic
          excerpt: Ionic starter app and component support.
          cta: Read more
          url: '/media/ionic_guide'

---

repository: zhaopufeng/aws-amplify

repo_name: zhaopufeng/aws-amplify


text:
# Match Input plugin for Craft CMS 3.x

Craft field type for text fields that match a regex pattern.

## Installation

To install Match Input, follow these steps:

1. Install with Composer via `composer require marionnewlevant/match-input` from your project directory
2. Install plugin in the Craft Control Panel under Settings > Plugins

or

1. Install via the Plugin Store

Match Input works on Craft 3.x.

## Match Input Overview

A _Match Input_ field is
a _Plain Text_ field with the addition of a regex pattern that the field must match to
be valid.

## Using Match Input

When you create the field, you specify the `Input Mask`.
This is the [PCRE Pattern](http://php.net/manual/en/pcre.pattern.php) which the
input is required to match.
You also specify an `Error Message` to display when the field does not match the
pattern.

If you need to translate the `Error Message` (for a multi-language control panel), those translations
will be in the `site` translation category.

## Sample Input Masks
- `https://` - not a valid pattern (no delimiters)
- `/https:\/\//` - valid pattern, will match string with `https://` in it anywhere
- `#https://#` - valid pattern, will match string with `https://` in it anywhere (sometimes / isn't the best delimiter)
- `#^https://#` - will match string that begins with `https://`
- `/^\d{5}(-\d{4})?$/` - will match 5 digits, optionally followed by `-` and 4 digits (uses ^ and $ to match the entire string)

## Acknowledgements
Brought to you by [Marion Newlevant](http://marion.newlevant.com).
Icon interior by SlideGenius from the Noun Project

gha_language: PHP


text:
# LimitConfig

## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**action** | **str** | The limitable action to which this limit will be applied |
**limit** | **float** | The value to set for the limit |
**entities** | **list[str]** | The entities that make the address of this limit |

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


text:
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## 1.0.7 (2021-09-09)

### Bug Fixes

* **spacers:** remove inherit margin so we don't get inconsistent gutters ([e30c78f](https://github.com/Bedrock-Layouts/Bedrock/commit/e30c78f76eae5bbfd49e61df1cd479501ae0486b))

## 1.0.6 (2021-08-31)

**Note:** Version bump only for package @bedrock-layout/reel

## 1.0.5 (2021-08-30)

**Note:** Version bump only for package @bedrock-layout/reel

## [1.0.4](https://github.com/Bedrock-Layouts/Bedrock/compare/@bedrock-layout/reel@1.0.3<EMAIL_ADDRESS>(2021-08-30)

**Note:** Version bump only for package @bedrock-layout/reel

## [1.0.3](https://github.com/Bedrock-Layouts/Bedrock/compare/@bedrock-layout/reel@1.0.2<EMAIL_ADDRESS>(2021-08-26)

**Note:** Version bump only for package @bedrock-layout/reel

## [1.0.2](https://github.com/Bedrock-Layouts/Bedrock/compare/@bedrock-layout/reel@1.0.1<EMAIL_ADDRESS>(2021-08-26)

**Note:** Version bump only for package @bedrock-layout/reel

## [1.0.1](https://github.com/Bedrock-Layouts/Bedrock/compare/@bedrock-layout/reel@0.3.0<EMAIL_ADDRESS>(2021-08-25)

### Bug Fixes

* **reel:** fix readme ([efc1c05](https://github.com/Bedrock-Layouts/Bedrock/commit/efc1c053ec73c9e98d2147d685eccfe8d569f215))

# 0.3.0 (2021-08-25)

### Features

* **reel:** finalize v1 of Reel ([c62faf8](https://github.com/Bedrock-Layouts/Bedrock/commit/c62faf8c7cf338557421da983b47a2bd319f3720))

### BREAKING CHANGES

* **reel:** All api's are new

## 0.2.7 (2021-06-16)

**Note:** Version bump only for package @bedrock-layout/reel

## 0.2.6 (2021-06-16)

**Note:** Version bump only for package @bedrock-layout/reel

## 0.2.5 (2021-06-16)

**Note:** Version bump only for package @bedrock-layout/reel

## 0.2.4 (2021-06-16)

**Note:** Version bump only for package @bedrock-layout/reel

## [0.2.3](https://github.com/Bedrock-Layouts/Bedrock/compare/@bedrock-layout/reel@0.2.2<EMAIL_ADDRESS>(2021-05-17)

**Note:** Version bump only for package @bedrock-layout/reel

## [0.2.2](https://github.com/Bedrock-Layouts/Bedrock/compare/@bedrock-layout/reel@0.2.1<EMAIL_ADDRESS>(2021-05-16)

**Note:** Version bump only for package @bedrock-layout/reel

## [0.2.1](https://github.com/Bedrock-Layouts/Bedrock/compare/@bedrock-layout/reel@0.2.0<EMAIL_ADDRESS>(2021-05-15)

**Note:** Version bump only for package @bedrock-layout/reel

# [0.2.0](https://github.com/Bedrock-Layouts/Bedrock/compare/@bedrock-layout/reel@0.1.3<EMAIL_ADDRESS>(2021-04-19)

### Features

* **reel:** change to named export to keep in line with other components ([7b56819](https://github.com/Bedrock-Layouts/Bedrock/commit/7b5681932f7c8ddf2fd4f59a2eaea6330a73c4af))

### BREAKING CHANGES

* **reel:** Reel will be a named export to keep it in line with the other components


text:
# Infinity Slasher

Infinite sidescrolling swordslashing game. Made for PyWeek32 GameJam.
Made with Godot Engine and Python.

## Running the game

**NOTE**: You do not need Python installed on your computer to run from source
code. The game already has an interpreter as a part of the [godot-python](https://github.com/touilleMan/godot-python)
extension.

1. Clone/Download this repository.
2. Download [Godot Engine](https://godotengine.org/download).
3. Open Godot and click `Import` on the right hand side. Then navigate to where
you downloaded this repository, enter the `Infinity Slasher` folder, select the
`project.godot` file, and then click `Import & Edit`.
4. Click the Play Button in the top right corner of the Editor.

OR

Just download a prebuilt binary from the Releases section (if I figured out
exporting with Godot-Python).

## Controls

W and S to switch platforms. A and D to move left and right. Space to jump and
Enter to shoot


text:
# LAB REQUIREMENTS

## 36 ([src](https://codefellows.github.io/code-401-javascript-guide/curriculum/class-36/lab/))

### Assignment: E-Commerce Application
- Write a React application that will serve as the online store for a fictional company
- For this assignment, we’ll be using Redux to manage a list of categories and products

### Requirements
- Design your application with a header, main section, and a footer
  - The overall styling is up to you
- Display a list of categories
- When the user selects (clicks on) a category …
  - Identify that category as selected
  - Show a list of products associated with the category
### Implementation Notes/Details
- Manage state in a Redux store
- Categories
  - State should contain a list of categories as well as the active category
    - Each category should have a normalized name, display name, and a description
  - Create an action that will trigger the reducer to change the active category
  - Update the active category in the reducer when this action is dispatched
- Products
  - State should be a list of all products
    - Each product should have a category association, name, description, price, inventory count
  - Create an action that will trigger the reducer to filter the product list when the active category is changed
    - HINT: Different reducers can respond to the same actions
  - Create a reducer that will filter the products list based on the active category
- Create 2 components
`<Categories />`
  - Shows a list of all categories
  - Dispatches an action when one is clicked to “activate” it
`<Products />`
  - Displays a list of products associated with the selected category

### Testing
- Tests are not required for this assignment


text:
# Gobot

A web crawler written in [Go](https://golang.org/)

## Building and Running

Build gobot by running the `go build` command. Once built you can run:

`gobot crawl -domain foo.com`

to crawl the foo.com domain. The results are sent to stdout.

## Testing

To run tests, navigate to the root folder and run:

`go test ./...`

The output from the tests will be sent to the terminal.

## Assumptions

Gobot was built to do the following:

1. Crawl a single domain specified by the user, and do not follow links to subdomains
2. Maintain a collection of links (as identified by the 'href' attribute of the 'a' tag), and static assets (as identified by the 'link'script', and 'img' tags)
3. Output this information to stdout, with each crawled path and related links/static assets
4. Remove the hash fragment (i.e. everything after '#') when crawling pages
5. Consider query parameters (i.e. everything after '?') as identifying a unique URL. For example, /foo and /foo?bar=baz will both be crawled and considered unique URLs

## Enhancements

Gobot has some remove from improvement. The following are a collection of features that would improve Gobot:

1. Add benchmarks to the existing tests to maintain perf
2. Add aditional tests for edge cases, and improve test coverage
3. Add feature to honor 'robots.txt'
4. Deal with throttling better; currently just log an error

Ideas and thoughts are always welcome

## License

MIT

repository: RBeaudoin/gobot

repo_name: RBeaudoin/gobot


text:
fleetster booking challenge

Requirements:

- Mongo DB :<https://docs.mongodb.com/getting-started/shell/installation/>
- Postman : <https://www.getpostman.com/>

To install:

- Fork and download this repository.
- Clone the repository to your local machine.
- Download and install mongo db to your machine.

- In the terminal navigate to the folder where the project exists.

- Do an 'npm install' to download the dependencies.
- Run 'mongod'
- In a separate tab run 'npm start'

Use postman to send and recieve requests. Base URL: <http://localhost:3000/>

license: ISC

repository: hcuffy/fleetsterUni

repo_name: hcuffy/fleetsterUni


text:
---
title: Finding a MAC address through PXE boot
permalink: /win/finding-a-mac-address-pxe/
categories:
  - Windows
---
Imaging computers using Windows Deployment Services or System Center – can be painful when you don’t know the MAC address of a computer finding a MAC address through PXE boot can be quite useful – this needs to be done from the physical workstation.

  1. **Start** the **computer**
  2. Tap **F12** to start network boot as soon as the computer starts to boot
  3. You should get to a black screen with some white writing – select Pause/Break on your keyboard to pause this screen the MAC address should display.

gha_language: SCSS


text:
---
layout: post
title: "🐲Session 0: Prelude"
categories: dungeons-and-dragons
tags: [5e, Campaign-NeverWinter Nights, Adventure log]
comments: true
date: 2015-08-30
---

[Intro movie](https://youtu.be/-0qA7n4-E-Y?list=PL5U1SRexN7RUzwjvhTESUq0Q-yH4O8QF2)

 - The city of NeverWinter is brought down to its knees by a strange disease; the Wailing Death
 - A call went out for new Heroes to come train at the Heroes Academy, to become the new saviour of NeverWinter
 - Five brave adventurers have answered the call
 - The PCs met with their mentor Deekin and recapped their training
 - The PC's took their exams and all easily defeated the master teacher
 - The PCs met with Aribeth de Tylmarande to receive their diplomas; but were attacked by Goblins
 - They left one Goblin, Rha, alive who explained that the goblins were forced to attack the Heroes Academy, or have their women and children killed.  Aribeth fears that the people behind this attack are after the Waterdhavian creatures.
 - The characters convinced Rha to get the other goblins to stand down, in return of their help in freeing the women and children of Rha's clan
 - Most other teachers and students were killed
 - The characters found the courtyard where the Waterdhavian creatures were held. They met up with Desther, a priest of Rathma, and Fenthik, a politician and lover of Aribeth.
 - The man in dark leather and white eyes was heading towards one of the stables, but was stopped by the PC's. The man is revealed to be a young White Dragon
 - While the group defeated a dragon, the Waterdhavian creatures have escaped

extension: markdown

gha_language: HTML


text:
---
name: Failing test
about: Describe the scenario you have as a unit test.
title: "[Failing test]"
labels: failing test case
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is or a link to it

## Test code

```csharp
using var fixture = new EmptyRepositoryFixture();
fixture.Repository.MakeACommit();
fixture.BranchTo("develop");
fixture.Repository.MakeCommits(3);

fixture.AssertFullSemver("0.1.0-alpha.1");
```

repository: GitTools/GitVersion

repo_name: GitTools/GitVersion


text:
Linux Machine ID
================

Get the unique machine ID on Linux.

This script has been tested with:

  - Ubuntu >= 18.04
  - Debian >= 10
  - Fedora >= 30

For more information on Linux machine IDs see
<http://man7.org/linux/man-pages/man5/machine-id.5.html>

Installation
------------

### Quick Install

    curl --silent https://raw.githubusercontent.com/PHLAK/linux-machine-id/master/machine-id \
    | sudo install /dev/stdin /usr/local/bin/machine-id

### Manual Installation

  1. Download or clone this repo
  2. Copy `machine-id` to a location on your `$PATH` (e.g. `/usr/local/bin`)
  3. Ensure `machine-id` is executable

      `chmod +x /usr/local/bin/machine-id`

Usage
-----

After following the instructions above you can run `machine-id` from a terminal
to output a unique machine ID in various formats.

    $ machine-id
    8654c188be4386abe2ae2c0e0a682681f4cf2b33d71ac6cb8f6fba50d09735c8

By default the command returns a sha256 hash of the device ID found in
`/etc/machine-id`. You can use the `--raw` option to return the actual machine
ID and the `--short` option to get the short version of the ID.

    Usage: machine-id [OPTION]...
    Get the machine's unique ID.

    OPTIONS:
    -h, --help     Print this help dialogue
    -r, --raw      Retuns the raw machine ID
    -s, --short    Return a short (7 character) ID

Changelog
---------

A list of changes can be found on the [GitHub Releases](https://github.com/PHLAK/linux-machine-id/releases) page.

Troubleshooting
---------------

Please report bugs to the [GitHub Issue Tracker](https://github.com/PHLAK/linux-machine-id/issues).

Copyright
---------

This project is licensed under the [MIT License](https://github.com/PHLAK/linux-machine-id/blob/master/LICENSE).

repository: PHLAK/linux-machine-id

repo_name: PHLAK/linux-machine-id


text:
---
title: Telegram Bot
description: An ExpressJS server with a Telegram bot
tags:
  - express
  - telegraf
  - typescript
---

# Telegram bot example

This example starts a [Telegram](https://telegram.org/) bot on an [ExpressJS](https://expressjs.com/) server.

[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/new?template=https%3A%2F%2Fgithub.com%2Frailwayapp%2Fexamples%2Ftree%2Fmaster%2Fexamples%2Ftelegram-bot&envs=TELEGRAM_BOT_TOKEN)

## ✨ Features

- Telegraf (library to interact with the Telegram bot API)
- Express
- TypeScript

## 💁♀ How to use

- Install dependencies `yarn`
- Connect to your Railway project `railway link`
- Start the development server `railway run yarn dev`

## 📝 Notes

The server started launches a Telegram bot with a couple of basic commands. The code is located at `src/index.js`.

repository: PantheraRed/starters

repo_name: PantheraRed/starters


text:
# NV Optix Wrapper
Very early state of a wrapper for the nVidia Optix Toolkit, so far only wrapping the C API but working. Future aim is to provide full access to
the C++ API aswell in nice and easy to use Java classes. Makes heavy use of BridJ and JNAerator for accessing the native lib.

## Usage

Optix SDK 4.0.2 is needed, copy the optix.1.dll into project root, aswell as the required .ptx files, so far all optixHello_* and optixSphere_* ones.
Should be able to launch this from your preferred IDE after adding these. Doesn't do much but putting a result.png into your root dir, at least for the
moment.

### Known issues:

_- C++ API missing_


text:
# valmeter

**Fully-featured Discord RPC for VALORANT powered by Rainmeter and Lua.**

[*Still a work in progress, not worth using yet*]

## Installation

1. Install the latest stable version of Rainmeter if you don't have it already. [`Download`](https://rainmeter.net).
2. Go to the latest version in [`Releases`](https://github.com/frissyn/valmeter/releases) and zownload the `.zip` file. Unzip the folder.
3. From here you can do two things:
    + **Recommended:**
        1. Launch the `.rmskin` installer
        2. Install the skin, Rainmeter will auto-build it.
    + **Alternative:**
        1. Move the `valmeter` skin folder into your `Rainmeter/Skins` folder.
        2. Configure the skin how you want to.

## Usage

Load the skin from Rainmeter's skin menu. The skin UI should appear on your desktop if everything was installed properly. `valmeter` will automatically watch your computer's open processes and start the Rich Prescense when `RiotClientServices.exe` and `VALORANT.exe` are running. If you want to turn off valmeter, just `Unload` the Skin after right-clicking it.

## Contributing

1. Fork the repository: [`Fork`](https://github.com/frissyn/valmeter/fork)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request! 🎉

repository: frissyn/valmeter

repo_name: frissyn/valmeter


text:
README
======

What is Checkdomain/TeleCash
---------------------------
Checkdomain/TeleCash is a wrapper for the [TeleCash Internet Payment Gateway](http://www.telecash.de/produkte-services/e-commerce/support-fuer-entwickler/ipg-schnittstellen-fuer-entwickler/) (german). TeleCash Internet Payment Gateway (TeleCash IPG) is a payment service provider supporting a variety of payment options.

This project focuses on version 4 of the **API** interface (IPG API). There is no support for the **Connect** interface.

Checkdomain/TeleCash is currently limit to credit card payments.

TeleCash offers a service called [DataStorage](http://www.telecash.de/produkte-services/e-commerce/internet-payment-gateway/ipg-add-ons/) (german), which basically means they handle the secure storage of credit card information. Checkdomain/TeleCash supports the **DataStorage** service, in fact it is the only supported option for initiating sell transactions.

Requirements
------------
Checkdomain/TeleCash requires php >= 5.4.

Installation
------------
The easiest way to install this library is through [composer](http://getcomposer.org/). Just add the following lines to your **composer.json** file:

```json
{
   "require": {
        "checkdomain/TeleCash": "dev-master"
    }
}
```

Another way would be to download this library and configure the autoloading yourself. This library relies on a [PSR-0](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md) compatible autoloader for automatic class loading.

Usage
-----
All supported API functions are accessible via the `TeleCash` class. For example, to validate credit card information use the `validate` method:

```php
$teleCash = new Checkdomain\TeleCash\TeleCash(...);
$validation = $teleCash->validate($ccNumber, $ccValid);
echo $validation->wasSuccessful();
```

To store credit card information using the **DataStorage** service use the `storeHostedData` method:

```php
$response = $teleCash->storeHostedDate($ccNumber, $ccValid, $hostedDataId);
```

To make a sell using previously stored credit card information use the `sellUsingHostedData` method:

```php
$response = $teleCash->sellUsingHostedData($hostedDataId, $amount);
```

Contributing
------------
Checkdomain/TeleCash is open source. We are happily accepting any kind of contributions.

Running Tests
-------------
Run a `php composer.phar install` command in the base directory to install the `phpunit` dependency. After that you can simply call `vendor/bin/phpunit tests/` to run the test suite.


text:
# jcomplex

[![Build Status](https://travis-ci.org/vmicelli/jcomplex.svg?branch=master)](https://travis-ci.org/vmicelli/jcomplex)
[![Coverage Status](https://coveralls.io/repos/github/vmicelli/jcomplex/badge.svg?branch=master)](https://coveralls.io/github/vmicelli/jcomplex?branch=master)
[![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)
[![Javadocs](https://www.javadoc.io/badge/com.github.vmicelli/jcomplex.svg)](https://www.javadoc.io/doc/com.github.vmicelli/jcomplex)

This project is a Java library for Complex Numbers. The Complex class is a modified version of the one in the project
[common-math](https://github.com/apache/commons-math) developed by Apache Software Foundation.

This is a super lightweight project that provides support for complex numbers in Java.

Unlike the original Apache project, the Complex class in this library inherits from
[java.lang.Number](https://docs.oracle.com/javase/8/docs/api/java/lang/Number.html).

How can I get the library?
-----------------------------------
You can download source and binaries from the [release page](https://github.com/vmicelli/jcomplex/releases).

Alternatively you can pull it from the central Maven repositories:

```xml
<dependency>
  <groupId>com.github.vmicelli</groupId>
  <artifactId>jcomplex</artifactId>
  <version>1.0</version>
</dependency>
```

How to use
----------

To use the library just create complex number instances and call the class methods.
```java
// import complex number class
import com.vm.jcomplex.Complex;

...

// create number 12 + 13i
Complex number = new Complex(12, 13);

// create number for polar coordinates (modulus: 10, phase: Math.PI)
Complex numberFromPolar = Complex.fromPolar(10, Math.PI);

// sum the numbers
Complex sum = number.add(numberFromPolar);

```
The class provides many functions such as ```add, multiply, subtract, divide, sin, cos, tan, asin, acos, atan, exp, log, pow``` and others. Operations methods return a new instance with the result.

Documentation
-------------

You can find javadoc [here](https://www.javadoc.io/doc/com.github.vmicelli/jcomplex).

License
-------
Code is under the [Apache Licence v2](https://www.apache.org/licenses/LICENSE-2.0.txt).

repository: vmicelli/jcomplex

gha_language: Java

repo_name: vmicelli/jcomplex


text:
# Building docs

We use Sphinx for generating the API and reference documentation.

## Instructions

After installing NetworkX and its dependencies, install the Python
packages needed to build the documentation by entering::

    pip install sphinx
    pip install sphinx-rtd-theme

To build the HTML documentation, enter:

    make html

in the ``doc/`` directory.  This will generate a ``build/html`` subdirectory
containing the built documentation.

To completely rebuild the documentation run

    make clean && make html

repository: QUARK-framework/QUARK

repo_name: QUARK-framework/QUARK


text:
# Continuity

Continuity is a replacement for the AutoModerator schedule on Reddit. Continuity runs as a command line script and the easiest way to set it up is as an hourly cron job.

## Who should use this script?

If your subreddit has a simple schedule, you should use the native [scheduled and recurring posts feature](https://mods.reddithelp.com/hc/en-us/articles/360037199532) that has been [announced on /r/modnews](https://www.reddit.com/r/modnews/search?q=title%3Aposts+%28scheduled+OR+recurring%29+author%3A%280perspective+OR+AutoModerator%29&restrict_sr=on&sort=new&t=all#res-hide-options). It works well, it's supported by Reddit, and it meets the needs of most subreddits.

If nobody on your moderation team is familiar with running Reddit bots on a Linux server, run away!

However, if you have bot experience and want to maintain a complex schedule in a wiki page, need `rrule` support, or want to write code to further customize how scheduled posts are made then this script may be helpful to you.

## Features

- Continuity allows Reddit scheduled posts to be configured via a wiki page. The format is the same as the [`automoderator-schedule` format](https://www.reddit.com/r/AutoModerator/comments/1z7rlu/now_available_for_testing_wikiconfigurable/) used by AutoModerator and it can even be left in the same location.
- Supports all of the features from AutoModerator schedule including:
  - including dates in title and text
  - recurrence rules (`rrule`)
- Includes two testing modes: one for dry runs and one for posting to a sandbox subreddit.

## Setup

### Python packages

Requires praw, PyYAML, python-dateutil, and regex.

### Notes

If you want to leave the wiki page in the same location as AutoModerator, make sure you disable AutoModerator by saving an empty configuration and sending /u/AutoModerator a private message to tell it to update (this may require a large number of attempts). After AutoModerator has sent an acknowledgement, you can restore your working configuration.

## Examples

- `mybotname` is the name of a section in your praw.ini file
- `mysubreddit` is the name of your subreddit

### Dry-run test

    $ continuity.py --brief --dry-run --start=20201201T000000Z --end=20210101T000000Z mybotname automoderator-schedule mysubreddit
    2020-10-11T05:16:31 | INFO | submit_queue | 2020-12-04T17:00:00-04:00: Weekend Discussion and Victory Thread for the week of December 04, 2020
    2020-10-11T05:16:32 | INFO | submit_queue | 2020-12-07T07:00:00-04:00: Weekday Help and Victory Thread for the week of December 07, 2020
    2020-10-11T05:16:33 | INFO | submit_queue | 2020-12-11T17:00:00-04:00: Weekend Discussion and Victory Thread for the week of December 11, 2020
    2020-10-11T05:16:33 | INFO | submit_queue | 2020-12-14T07:00:00-04:00: Weekday Help and Victory Thread for the week of December 14, 2020
    2020-10-11T05:16:34 | INFO | submit_queue | 2020-12-18T17:00:00-04:00: Weekend Discussion and Victory Thread for the week of December 18, 2020
    2020-10-11T05:16:34 | INFO | submit_queue | 2020-12-21T07:00:00-04:00: Weekday Help and Victory Thread for the week of December 21, 2020
    2020-10-11T05:16:35 | INFO | submit_queue | 2020-12-25T17:00:00-04:00: Weekend Discussion and Victory Thread for the week of December 25, 2020
    2020-10-11T05:16:36 | INFO | submit_queue | 2020-12-27T09:00:00-04:00: What are your 2021 financial goals?
    2020-10-11T05:16:36 | INFO | submit_queue | 2020-12-28T07:00:00-04:00: Weekday Help and Victory Thread for the week of December 28, 2020

### Linux cron job configuration

    @hourly /home/myusername/scripts/continuity.py mybotname automoderator-schedule mysubreddit


text:
---
layout: post
title: Franklin Finds a Froom update v1.1
---

I posted an update for Franklin Finds a Froom earlier this morning to the Google Play store.

The biggest change that comes with v1.1 is that a level won't completely restart after you die. I don't remember why I decided not to do it that way in the first place. But the three games I play the most on the workplace's arcade machine (Ms. Pac-Man, Burger Time, and Galaga 3) don't throw away all the progress you've made in a level when you die, so why should I? Actually, come to think of it, Galaga 3 might. Maybe it was a way that I thought would make the game frustratingly hard that some people come to enjoy. But in the end I think it was just more frustrating or annoying than anything else. Hopefully this little bit will help players get just a few more levels beyond where they've been stuck at.

Some other smaller changes to note:

- Now that a level still progresses after you die, I needed to handle cases where the player is spawned right into the path of an oncoming Froom. Instead of insta-dying, a brief period of a immunity is given so players have a chance to move safely out of the way.
![Player immunity]({{ site.baseurl }}/images/franklin-finds-a-froom/v1.1-immunity.png)

- The volume of the background music has been decreased a touch. It may have been a tad loud.

- This is barely noticeable, but the Android launcher icons have also been updated. I used this [Launcher Icon Generator](http://romannurik.github.io/AndroidAssetStudio/icons-launcher.html) tool instead of just chopping the head off of one of Franklin's sprites.

- There's a small UI pause button added to the top of the screen. This was really just done in preparation for a potential port over to iOS. But unless someone wants to give me $99 for the dev fee, it's probably not gonna happen.
![Pause button]({{ site.baseurl }}/images/franklin-finds-a-froom/v1.1-pause-button.png)

- And then some other bug fixes that may also not be terribly noticeable.

Thanks are in order for friends, coworkers, and Vallar on [TIGSource](http://forums.tigsource.com/index.php?topic=42091.0) who all gave really valuable feedback that led to the changes made.

If you haven't yet, you can get Franklin Finds a Froom [HERE](https://play.google.com/store/apps/details?id=com.jonuy.franklinfroom).


text:
# Project 7 - WordPress Pentesting

Time spent: 10 hours spent in total

> Objective: Find, analyze, recreate, and document up to **five vulnerabilities** affecting an old version of WordPress

## Pentesting Report

1. Authenticated Stored Cross-Site Scripting (XSS)
  - [ ] Summary: Authenticated Cross-Site Scripting (XSS) in post/page (text editor mode). Editor user and up.
    - Vulnerability types: XSS
    - Tested in version: 4.2.2
    - Fixed in version: 4.2.3
  - [ ] GIF Walkthrough:
  - [ ] Steps to recreate:
  - [ ] Affected source code:
    - [Link 1](https://klikki.fi/adv/wordpress3.html)
1. Authenticated Shortcode Tags Cross-Site Scripting (XSS)
  - [ ] Summary: A payload was placed in a page or post to create an XSS pop up
    - Vulnerability types: XSS
    - Tested in version: 4.2.2
    - Fixed in version: 4.2.5
  - [ ] GIF Walkthrough:
  - [ ] Steps to recreate: The following was added to a post's content and created an XSS pop up when on mouse over:
        TEST!!!

<a href="

Click me

  - [ ] Affected source code:
    - [Link 1](http://blog.checkpoint.com/2015/09/15/finding-vulnerabilities-in-core-wordpress-a-bug-hunters-trilogy-part-iii-ultimatum/)
1. Authenticated Stored Cross-Site Scripting (XSS) in YouTube URL Embeds
  - [ ] Summary: A simple XSS script is added into a URL in order to bypass the shortcode parser.
    - Vulnerability types: XSS
    - Tested in version: 4.2.2
    - Fixed in version: 4.2.13
  - [ ] GIF Walkthrough:
  - [ ] Steps to recreate: Creating a new post with the following youtube link creates an XSS message:
        https://youtube[.]com/watch?v=abc<svg onload=alert(1)>
  - [ ] Affected source code:
    - [Link 1](https://blog.sucuri.net/2017/03/stored-xss-in-wordpress-core.html)

## Assets

List any additional assets, such as scripts or files

## Resources

- [WordPress Source Browser](https://core.trac.wordpress.org/browser/)
- [WordPress Developer Reference](https://developer.wordpress.org/reference/)

GIFs created with [LiceCap](http://www.cockos.com/licecap/).

## Notes

Describe any challenges encountered while doing the work
    One challenge required the use of an MacOS or Linux operating system. Also, the majority of the vulnerabilities provided very little information on how they could be recreated.

## License

    Copyright [yyyy] [name of copyright owner]

    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.


text:
# Cast

See [@eyevinn/web-player](https://www.npmjs.com/package/@eyevinn/web-player).

The Cast package provides a `CastSender` class that provides the same state as `@eyevinn/web-player-core` in its STATE_CHANGED event, this allows any developer to make a simple switch between casting & playing locally since the state provided by the cast module is the same as the core module.
It also provides the same API for seeking/play/pause etc.

The developer is expected to use the `<google-cast-launcher />` web component to initialize a cast session.

## Usage
TODO...

## TODO
[ ] - Add support for switching audio tracks
[ ] - Add support for switching text tracks

## Contribution

You are welcome to either contribute to this project or spin-off a fork of your own. This code is released under the Apache 2.0 license.

```
Copyright 2018 Eyevinn Technology

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.
```

## About Eyevinn Technology

Eyevinn Technology is an independent consultant firm specialized in video and streaming. Independent in a way that we are not commercially tied to any platform or technology vendor.

At Eyevinn, every software developer consultant has a dedicated budget reserved for open source development and contribution to the open source community. This give us room for innovation, team building and personal competence development. And also gives us as a company a way to contribute back to the open source community.

Want to know more about Eyevinn and how it is to work here. Contact us at<EMAIL_ADDRESS>


text:
[com.github.salomonbrys.kodein](../index.md) / [CEagerSingleton](index.md) / [<init>](.)

# <init>

`CEagerSingleton(builder: `[`Builder`](../-kodein/-builder/index.md)`, createdType: `[`Type`](http://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Type.html)`, creator: `[`ProviderKodein`](../-provider-kodein/index.md)`.() -> T)`

Concrete eager singleton: will create an instance as soon as kodein is ready (all bindings are set) and will always return this instance.

### Parameters

`T` - The created type.

`createdType` - The type of the created object.

`creator` - The function that will be called as soon as Kodein is ready. Guaranteed to be called only once. Should create a new instance.

repository: hakanerp/Kodein

repo_name: hakanerp/Kodein


text:
---
title: "Inject PFX Certificate"
description: "Inject a PFX certificate from Azure Key Vault as environment variables into an application"
---

> **Note: The [prerequisites](../prerequisites) are required to complete this tutorial.**

The certificate handling in certain programming languages like Microsoft .NET has a
preference for certificates in the binary PKCS12 format, commonly known as PFX. To extract the raw
PKCS12 certificate from Azure Key Vault, you need to **get the Secret object of the Certificate**!

This tutorial is EXACTLY like the [Inject Certificate](2-certificate) tutorial, except the highlighted
last line below:

```yaml{11}:title=akvs-certificate-inject.yaml
apiVersion: spv.no/v1alpha1
kind: AzureKeyVaultSecret
metadata:
  name: certificate-inject
  namespace: akv-test
spec:
  vault:
    name: akv2k8s-test # name of key vault
    object:
      name: my-certificate # name of the akv object
      type: secret # akv object type
```

By specifying `type: secret` instead of `certificate`, Azure Key Vault will respond with the PKCS12 certificate
that can be injected directly into your application.

Apply to Kubernetes:

```bash
$ kubectl apply -f akvs-certificate-inject.yaml
azurekeyvaultsecret.spv.no/certificate-inject created
```

To list AzureKeyVaultSecret's and see sync status:

```bash
$ kubectl -n akv-test get akvs
NAME                VAULT          VAULT OBJECT    SECRET NAME         SYNCHED
certificate-inject  akv2k8s-test   my-certificate
```

Then we deploy a Pod having a env-variable pointing to the secret above.

```yaml:title=certificate-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: akvs-certificate-app
  namespace: akv-test
  labels:
    app: akvs-certificate-app
spec:
  selector:
    matchLabels:
      app: akvs-certificate-app
  template:
    metadata:
      labels:
        app: akvs-certificate-app
    spec:
      containers:
      - name: akv2k8s-env-test
        image: spvest/akv2k8s-env-test:2.0.1
        args: ["PUBLIC_KEY", "PRIVATE_KEY"]
        env:
        - name: PUBLIC_KEY
          value: certificate-inject@azurekeyvault?tls.crt
        - name: PRIVATE_KEY
          value: certificate-inject@azurekeyvault?tls.key
```

Apply to Kubernetes:

```bash
$ kubectl apply -f certificate-deployment.yaml
deployment.apps/akvs-certificate-app created
```

Things to note from the Deployment yaml above:

```yaml{3,4,6-9}
containers:
- name: akv2k8s-env-test
  image: spvest/akv2k8s-env-test # 1.
  args: ["PUBLIC_KEY", "PRIVATE_KEY"] # 2.
  env:
  - name: PUBLIC_KEY # 3.
    value: certificate-inject@azurekeyvault?tls.crt # 4.
  - name: PRIVATE_KEY # 5.
    value: certificate-inject@azurekeyvault?tls.key # 6.
```

1. We use a custom built Docker image for testing purposes that only outputs the content of the env-variables passed in as args in #2. Feel free to replace this with your own Docker image.
2. Again, specific for the Docker test image we are using (in #1), we pass in which environment variables we want the container to print values for
3. Name of the environment variable containing the certificate public key
4. By using the special akv2k8s Env Injector convention `<azure-key-vault-secret-name>@azurekeyvault` to reference the AzureKeyVaultSecret `certificate-inject` we created earlier. The env-injector will download this secret from Azure Key Vault and inject into the executable running in your Container.
5. Name of the environment variable containing the certificate private key
6. Same as 4. - only for the certificate private key

To see the log output from your Pod, execute the following command:

```
kubectl -n akv-test logs deployment/akvs-certificate-app
```

### Cleanup

```bash
kubectl delete -f akvs-secret-inject.yaml
kubectl delete -f secret-deployment.yaml
```


text:
[← back to readme](README.md)

# Release notes
## 1.1.3
* Added `reset_horses` command for players affected by a game bug where their horse has no owner.

## 1.1.2
Released 23 January 2021.

* Updated for multi-key bindings in SMAPI 3.9.

## 1.1.1
Released 17 January 2021.

* The horse flute is now optional by default.

## 1.1
Released 09 January 2021.

* You can now play the flute by pressing `H` (configurable), without needing to select it on your toolbar.
* You can now summon the horse without having the horse flute item (if enabled).
* You can now configure the mod in-game if you have [Generic Mod Config Menu](https://www.nexusmods.com/stardewvalley/mods/5098) installed.

## 1.0
Released 04 January 2021.

* Initial release.

repository: Digus/StardewMods

branch_name: refs/heads/develop

repo_name: Digus/StardewMods


text:
---
layout: post
title: If We Must Die - A poem By Claude Mckay
---

If we must die, let it not be like hogs

Hunted and penned in an inglorious spot,

While round us bark the mad and hungry dogs,

Making their mock at our accursèd lot.

If we must die, O let us nobly die,

So that our precious blood may not be shed

In vain; then even the monsters we defy

Shall be constrained to honor us though dead!

O kinsmen! we must meet the common foe!

Though far outnumbered let us show us brave,

And for their thousand blows deal one death-blow!

What though before us lies the open grave?

Like men we’ll face the murderous, cowardly pack,

Pressed to the wall, dying, but fighting back!

 The poem speaks to the experience of being black in America and the resilience and determination needed to survive in the face of oppression and violence.

In the first line, "If we must die, let it not be like hogs," the speaker acknowledges that death may be inevitable, but they do not want to go down without a fight. They compare their situation to that of hogs, which are slaughtered without resistance or dignity.

In the next lines, "Hunted and penned in an inglorious spot, / While round us bark the mad and hungry dogs," the speaker describes how they have been hunted and confined, treated with disrespect and without honor.

The fourth line, "Making their mock at our accursèd lot," describes how their oppressors mock and ridicule their situation, treating them with contempt.

In the fifth line, "If we must die, O let us nobly die," the speaker reaffirms their acceptance of death, but asserts that they will not go down without dignity and honor. They suggest that by fighting back, they can prevent their oppressors from shedding their blood, as they will not die in vain.

The seventh line, "But even the worms shall try to die," compares their determination to that of even the lowest life forms, which will fight for survival.

In the ninth line, "We are the young men, who must die," the speaker asserts that they are the ones who must bear the burden of fighting back and possibly dying in the process.

The eleventh line, "We know that we are sprung of the earth," asserts their connection to the land and their place in the natural world.

In the final lines, "Like men we’ll face the murderous, cowardly pack, / Pressed to the wall, dying, but fighting back!," the speaker reaffirms their determination to resist and fight back, even if it means risking their lives. They describe their oppressors as a murderous and cowardly pack and assert that they will face them with bravery and dignity, even if it means dying in the process.