text:
# UI Components Built With React And Chakra-UI

I love working with React and Chakra-UI and this is work in pogress project where I showcase UI components I have built for clients.

### Installing

Clone

```
git clone https://github.com/kstulgys/react-chakra-components
```

Intall dependencies

```
yarn
```

Start project

```
yarn dev
```

## Running the tests

```
yarn test
```

## Authors

- **Karolis Stulgys** - _Initial work_

## License

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

repository: kstulgys/react-chakra-ui

repo_name: kstulgys/react-chakra-ui


text:
# foopackage

## Overview

This is the foopackage package.

## Installation

The easiest way to install foopackage is via the Python [pip](https://pip.pypa.io)
utility:

```bash
pip3 install foopackage
```

### Requirements
- Python 3
- [virtualenv](https://virtualenv.pypa.io)

### Dependencies
Dependencies are listed in [requirements.txt](requirements.txt). Dependencies
are automatically installed during foopackage installation.

### Installing foopackage

```bash
# setup virtualenv
python3 -m venv --system-site-packages foopackage
cd foopackage
source bin/activate

# clone codebase and install
git clone https://github.com/geopython/foopackage.git
cd foopackage
python3 setup.py build
python3 setup.py install
```

## Running

```bash
cp foopackage-config.env local.env
vi local.env # update environment variables accordingly

foopackage --version
```

### Using the API

```python
# Python API examples go here
```

## Development

### Running Tests

```bash
# install dev requirements
pip3 install -r requirements-dev.txt

# run tests like this:
python3 foopackage/tests/run_tests.py

# or this:
python3 setup.py test

# measure code coverage
coverage run --source=foopackage -m unittest foopackage.tests.run_tests
coverage report -m
```

## Releasing

```bash
rm -fr build dist *.egg-info
python3 setup.py sdist bdist_wheel --universal
twine upload dist/*
```

### Code Conventions

* [PEP8](https://www.python.org/dev/peps/pep-0008)

### Bugs and Issues

All bugs, enhancements and issues are managed on [GitHub](https://github.com/tomkralidis/python-project-bootstrap/issues).

## Contact

* Firstname Lastname

license: MIT

repository: tomkralidis/python-project-bootstrap

branch_name: refs/heads/master

extension: md

gha_language: Python

gha_license_id: MIT

license_type: permissive

repo_name: tomkralidis/python-project-bootstrap


text:
/u/InternetLyingPolice
======================
This is my first reddit bot. **I created it to learn Python, PRAW and using APIs in general.**

This is a simple example of a bot that scans all reddit comments as they come in. It looks for certain phrases in a comment (explained in the section "What it does") and makes a sarcastic reply.

Because this bot is built using PRAW (Python Reddit API Wrapper), it follows reddit's API guidelines automatically, not making too many API requests etc.

**I have tried to document it so that it is easy for beginners to understand. I'm hoping that this code will be helpful to anyone learning to write their own first bot.**

What it does
------------
Sometimes on reddit, OP (Original Poster) is suspected of lying in their post.  These comments are references to popular TV shows like *Family Guy* and *Arthur*.

This bot scans for certain key phrases that suggest one of these references has been made and jumps into that thread, screaming that the Internet Police as arrived and the alleged liar should show themselves with their hands up.

It's a fun little project I did, and it might not be perfect because I'm only getting my feet wet. **I would highly appreciate any improvements and pull requests.**

How it works
------------
This bot makes use of PRAW's comment_stream to continuously pull 1000 newest comments over and over in a forever loop. It scans each one using the list phrases_to_look_for. It runs until the program is interrupted manually.

The bot's authentication details (username/password) for login are stored in a very simple config file which I have not included in this repository. However, there's a description of how that works in the section "What you can do with this code".

What you can do with this code
------------------------------
**You can feel free to fork this code, use it in your own bot, or whatever else you want to do with it.**

Because this bot is open-source, I have not included the username and password for the reddit account in the code. Instead I put it into a .ini file which the bot reads when logging in.

If you were to run this bot on your computer, here's what you would do:
- **Install PRAW** (along with Python, of course) because my bot needs its features to run.
- Edit the policebot.ini.dist and rename it to remove the .dist. Add a reddit username and password in the placeholders.
- **Make changes on line 4** of InternetLyingPolice to point to the address of your .ini file.
- Run the bot using this command from the directory you put it into:
    python InternetLyingPolice.py

Of course you shouldn't run this exact code from your computer without making any changes or we'll end up with two reddit bots doing the exact same thing and people will hate both of them.

**Ways to help me out:**
- **[High priority]** The bot may sometimes comments twice (maybe when it looks at the same comment twice; stderr suggests that it scans the same batch over and over at times). Try to look for any logic problems with the green_light boolean. For now, repeat commenting is prevented by making the bot sleep for 15 seconds, which may also cause it to miss comments.
- Make efficiency improvements in this program (I'm almost certain it looks at some comments twice because it doesn't sleep).
- Add more common phrases to look for.
- Maybe add a way to make the bot *not* comment when someone says "not saying OP is lying, but..."


text:
# PyData-Warsaw-Conference-2019

## Links

* [PyData Warsaw 2019](https://pydata.org/warsaw2019/) event website
* [@PyDataWarsaw](https://twitter.com/pydatawarsaw) Twitter channel
* [Meetup website](https://www.meetup.com/Pydata-Warsaw)
* Video:
  - [PDWC 2019 Showreel](https://www.youtube.com/watch?v=DTBx_VDYrd0)

## Slides and materials

Feel invited to Pull Request with link to slides or the project website.

### Keynote
* The Ethics of Artificial Intelligence - What developers should know - Vince Madai
* Trusted AI – Building Reproducible, Unbiased and Robust AI Pipelines using the python OpenSource sta - Romeo Kienzler
* Transfer Learning - Entering a new era in NLP - Malte Pietsch
* Machine Learning can't do the thinking - Inga Strumke

### Talks

####  Thursday Dec. 12, 2019

* Disease Modeling with Scipy and PyMC - Dean Langsam
* Transfer learning for image recognition in healthcare industry - Michał Kierzynka
* Geospatial analysis made easy with PostGIS and Geoalchemy - Nicolas Pierre
* The NLU Orchestra - Amit Beka
* keras-fsl: Fast model builder for production ready few shot learning algorithms - Dr. Clément Walter
* How to structure PySpark application - Przemek Chrabka
* Reproducible Machine Learning - Mateusz Opala
* How to numerically represent semi-structured log data for anomaly detection? - Marcin Kowiel
* Modern Machine Learning flow with Quilt and Polyaxon - Robert Kostrzewski
* TrashAsistant: A kivy App, which uses Deep Neural Networks, for helping trash segregation - Olgun AYDIN
* Sound Modelling - parametric methods and deep learning representations to create and shape audio - Pawel Cyrta
* Automation: Build A Training Pipeline - Varun Kochar
* Posterior Collapse in Deep Generative models - Michał Jamroż
* Generative Text Modelling: Scratching the surface - Tomasz Dziopa
* ML model from an idea to production with the help of Python - Martyna Urbanek-Trzeciak
* Learning to rank with the Transformer - Tomasz Bartczak
* In the service of the history. AI in archivistics. - Adrian Boguszewski
* TDD shouldn't be TDDious - Chris Sidebottom
* Analysing Russian Troll Tweets data with Python - Mia Polovina
* What's coming in Apache Airflow 2.0 - Jarek Potiuk
* Unsupervised learning for news summarisation - Jakub Kubajek

####  Friday Dec. 13, 2019

* Anyone can Build Great Deep Learning Applications - Deep Numpy - Cyrus Vahid
* Command line language – where NLP and cyber security meets - Zuzanna Kunik
* How we personalized onet.pl with multi-armed bandits - Artur Bujak
* How to manage data-related projects and not fail (too often)? - Jakub Nowacki
* How to effectively extract image features – let’s play with OpenCV API! - Filip Geppert
* How to efficiently model learner’s knowledge with recurrent neural networks - Mateusz Otmianowski
* Visual Search @ allegro.pl - Marcin Tuszyński
* Predicting flight compensation - a case study - Adam Witkowski
* Sentiment analysis of tweets in Polish language using deep learning - Joanna Piwko
* Evaluation Metrics for Binary Classification: The Ultimate Guide - Jakub Czakon
* Machine Learning on big data in security applications - Yury Kasimov
* Machine Learning Spacecraft Designing for Cybersecurity - Marina Volkova
* Football video analysis using Deep Learning - Jacek Komorowski
* Adding Narrative to BI Dashboards with Natural Language Generation - Žygimantas Medelis
* Detection of solar panels based on aerial images of the city of Poznań using deep neural networks - Michel Voss

### Tutorials

* Straightforward introduction to Deep Learning - Mikołaj Olszewski
* AWS Cloud data collecting with microcontrollers and MicroPython - Michal Sulkiewicz

_Credits: [Pafnucy](https://github.com/pafnucy)_


text:
# Text collector example scripts

These scripts are examples to be used with the Node Exporter Textfile
Collector.

For more information see:
https://github.com/prometheus/node_exporter#textfile-collector

repository: AnchorFree/node-exporter

gha_language: Go

repo_name: AnchorFree/node-exporter


text:
# Aerolab

## Company blurb

We’re a team of quirky yet lovable UX Wizards and Tech Geniuses. We create websites and apps, provide digital branding services and a consulting service to help customers define their product, strategy and roadmap from a user perspective.

## Company size

20-50

## Remote status

Work from home options available.

## Region

Latin America

## Company technologies

Development: JavaScript, using ES7, React, Node.JS
Design: Sketch, InVision, Marvel

## Office locations

Buenos Aires, Argentina

## How to apply

http://careers.aerolab.co/

repository: remoteintech/remote-jobs

branch_name: refs/heads/main

gha_language: JavaScript

repo_name: remoteintech/remote-jobs


text:
## AutoGluon: AutoML
* https://github.com/awslabs/autogluon
* AutoML Toolkit for Deep Learning
* AutoGluon automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications. With just a few lines of code, you can train and deploy high-accuracy deep learning models on image, text, and tabular data

repository: robmarkcole/Useful-python

path: /AutoGluon AutoML /README.md

gha_language: Jupyter Notebook

repo_name: robmarkcole/Useful-python


text:
# BERTs
BERT applications using tensorflow

## single output classification
See [sentiment analysis](https://github.com/yhyu/berts/blob/master/sentiment.ipynb) example.
```python
bert_url = 'https://tfhub.dev/tensorflow/bert_en_uncased_L-12_H-768_A-12/2' # pre-trained bert on tfhub url
classes = 2 # number of classes
model, bert_layer = BertClassificationModel(bert_url, classes)
```

## sequence output classfication
See [pos tagging](https://github.com/yhyu/berts/blob/master/pos_tagging.ipynb), and [NER](https://github.com/yhyu/berts/blob/master/NER.ipynb) examples.
```python
model, bert_layer = BertClassificationModel(
    bert_url,
    classes,
    return_sequences=True
)
```

## extraction-based query answering
See [extraction-based question answering](https://github.com/yhyu/berts/blob/master/question_answering.ipynb) example.
```python
model, bert_layer = BertEQAModel(
    bert_url,
    return_cls=True
)
```

repository: yhyu/berts

repo_name: yhyu/berts


text:
# [673.Number of Longest Increasing Subsequence][title]

## Description
Given an integer array `nums`, return the number of longest increasing subsequences.

__Notice__ that the sequence has to be __strictly__ increasing.

**Example 1:**

```
Input: nums = [1,3,5,4,7]
Output: 2
Explanation: The two longest increasing subsequences are [1, 3, 4, 7] and [1, 3, 5, 7].
```

**Example 2:**

```
Input: nums = [2,2,2,2,2]
Output: 5
Explanation: The length of longest continuous increasing subsequence is 1, and there are 5 subsequences' length is 1, so output 5.
```

## 结语

如果你同我一样热爱数据结构、算法、LeetCode，可以关注我 GitHub 上的 LeetCode 题解：[awesome-golang-algorithm][me]

[title]: https://leetcode.com/problems/number-of-longest-increasing-subsequence/
[me]: https://github.com/kylesliu/awesome-golang-algorithm

repository: hemingyuan/awesome-golang-leetcode

repo_name: hemingyuan/awesome-golang-leetcode


text:
# Shazam for Movies

## Objective
Application that allows users to easily determine what movie/TV show a video clip is from. Users are able to convert an audio file to text using a speech to text API, then utilize that text in a movie/TV show script API to find the specific movie/TV show.

## MVP
- Implementation of speech to text API
- Match text file to movie/TV show script using API
- Return movie/TV show to user
 ## Stretch Goals
 - Record Audio within the app
 - Display more information than just movie/TV show name, such as poster art, directors, actors etc
 - Determine where specifically in the movie/TV show the clip is in
 - History of past Clips

## Resources
#### Downloads
- Swift Download - https://developer.apple.com/swift/resources/
- Android Studio Download - https://developer.android.com/studio?gclid=Cj0KCQiAmZDxBRDIARIsABnkbYQhRaTS6zVpC8jxkEsbDKaR0iOHSTlcxtqxIUBImoPsce-WPsc8aNEaArjZEALw_wcB
- React Native - https://facebook.github.io/react-native/docs/getting-started

#### Script APIs
- [https://www.imsdb.com/](https://www.imsdb.com/)
- [https://www.simplyscripts.com/tv_gh.html#H](https://www.simplyscripts.com/tv_gh.html#H)
- [https://www.springfieldspringfield.co.uk/](https://www.springfieldspringfield.co.uk/)
#### Speech to Text Options
- Google - https://cloud.google.com/speech-to-text/docs/
- Azure - https://azure.microsoft.com/en-us/services/cognitive-services/speech-to-text/
- Watson - https://www.ibm.com/cloud/watson-speech-to-text

## Learning Resources
- General APIs - https://www.youtube.com/watch?v=BYsTrGH6B2s
- iOS Design Guide - https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/
- Google Design Guide - https://developer.android.com/design

Hello

repository: acm-projects/Shazam-for-Movies

repo_name: acm-projects/Shazam-for-Movies


text:
Movie Booking - Front End - Ruby on Rails

This project consist of an small movie booking system using Ruby on Rails on back end and ReactJS on front end.

[Back End](https://github.com/AndresFMoya/ror-booking_cinema_backend)

[![Booking Video](https://img.youtube.com/vi/h_HAgVwA-ng/0.jpg)](https://www.youtube.com/watch?v=h_HAgVwA-ng)

In this project, we will build a Web App with the following technologies:
- API
  - Ruby on Rails
  - PostgreSQL
  - GraphQL

- Frontend
  - React
  - Apollo Client

## Technologies used

- Ruby on Rails
- RSpec
- PostgreSQL
- Apollo Client
- GraphQL
- Git
- Bootstrap
- HTML & CSS
- ReactJS
- Docker
- TravisCI (CI/CD)

## [Live Version](https://movie-booking-front.herokuapp.com/)

##  Potential Future Features

- Implement an Authentication/Authorization System
- Improve and clean UI.
- Add field type validation.

## 🤝 Contributing

Contributions, issues and feature requests are welcome! Feel free to check [issues page](https://github.com/AndresFMoya/ror-booking_cinema_frontend/issues).

1. Fork it (https://github.com/AndresFMoya/ror-booking_cinema_frontend/fork)
2. Create your working branch (git checkout -b [choose-a-name])
3.  Push to the branch (git push origin [chosen-name])
5. Create a new pull request

## Contributors

Andrés Moya - [GitHub](https://github.com/andresfmoya)

## Show your support

Give a ⭐ if you like this project!

## License

This project is [MIT](https://github.com/AndresFMoya/ror-booking_cinema_frontend/blob/develop/LICENSE) licensed.

## 📞 Get in Touch!
I will love to hear about you at one of the following places! :heart:

- [LinkedIn](https://www.linkedin.com/in/andres-f-moya/)
- [Twitter](https://www.twitter.com/andmedev/)
-<EMAIL_ADDRESS>

    andresmoya.me

branch_name: refs/heads/develop


text:
# Reddit-Kafka-Producer

This repository is a collection of utilities and scripts dedicated to scraping comment and profile information from the reddit API and streaming it to kafka.

- `profile-scraper.js`: class for accessing data from the Reddit API.
- `profile.js`: (1) reads from a CSV file, fetches profile data, and dumps it to a database.
- `format-comment.js`: function for formatting JSON response data.
- `kafka-export.js`: (2) inserts JSON data to a table with a schema.
- `kafka-stream.js`: (3) fetches comments from a subreddit and sends them to Kafka. (See Procfile)

## Configuration

The following environment variables are required for the numbered scripts to run
properly (may use .env file):

- `PGUSER`
- `PGPASSWORD`
- `PGHOST`
- `PGPORT` (defaults to 5432)
- `PGDATABASE`

> See https://node-postgres.com/features/connecting

and:

- `KAFKA_CLIENT_CERT`
- `KAFKA_CLIENT_CERT_KEY`
- `KAFKA_URL`
- `KAFKA_PREFIX`
- `KAFKA_TOPIC`

> Only the latter KAFKA_ ones are needed for the export and stream scripts.

## Local Development

> Still depends on an actual Kafka cluster but won't send anything to it in dev mode.

Create a .env with values for the env vars listed in the previous section.

Install all the dependencies:

```console
$ npm i --dev
```
> If `--dev` isn't used, your local installation will lack linting and CSV dump abilities.

- You may run `profile.js` if needed like:

    ```console
    $ node profile.js
    ```

- For a CSV dump of `kafka-export.js`:

    ```console
    $ npm run dev-dump
    ```

    > `csv-writter` encodes `"` inside strings as `""` which seems to be a CSV-specific practice. You may want to run
    > ```console
    >  $ sed -i -e 's/""/\\"/g' training-dump.csv
    >  ```
    > to replace them for `\"`

- Try the main (worker) app with:

    ```console
    $ npm run worker
    # Same as `node kafka-stream.js` (see package.json scripts)
    ```

- Lint chec before committing changes:

    ```console
    $ npm run lint
    ```

## Deploy on Heroku

> Note that the producer worker (kafka-stream.js) is paced (hardcoded) to send messages to Kafka every 1/3 sec, matching an aprox rate limit of 64 KB (such as the basic-0 tier on Heroku); estimating an avg message size of 20 KB.

Most of the env vars mentioned before are set automatically by Heroku Postgres and Kafka addons, you must separately set:

```console
$ heroku config:set NODE_ENV=production
```

> Also unpack `DATABASE_URL` e.g. with https://metacpan.org/pod/Env::Heroku ?
  See https://devcenter.heroku.com/articles/heroku-postgresql#provisioning-heroku-postgres

### Running scripts on Heroku
This can be achieved with one-off Dynos When needed:

```console
$ heroku run bash
...
~ $ node profile.js # or kafka-export.js
  ... # Do your thing.
~ $ exit # when done
```

> See https://devcenter.heroku.com/articles/one-off-dynos


text:
---
title: Accessing Private Data
version: 0.7.6
description: An example of accessing private data from a Solidity smart contract
---

### Vulnerability

All data on a smart contract can be read.

Let's see how we can read `private` data. In the process you will learn how Solidity stores state variables.

```solidity
{{{Vault}}}
```

### Preventative Techniques

- Don't store sensitive information on the blockchain.

branch_name: refs/heads/gh-pages


text:
# pregen-stash

[![build status](http://img.shields.io/travis/chiefbiiko/pregen-stash.svg?style=flat)](http://travis-ci.org/chiefbiiko/pregen-stash) [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/chiefbiiko/pregen-stash?branch=master&svg=true)](https://ci.appveyor.com/project/chiefbiiko/pregen-stash)

***

FIFO data structure that serves you with pregenerated values from your custom computation-intensive function. Getting those pregenerated values then boils down to a cheap `Array.prototype.pop`.

***

## Get it!

```
npm install --save pregen-stash
```

***

## Usage

``` js
const createStash = require('pregen-stash')

createStash(5, Math.random)
  .then(stash => {
    for (var i = 0; i < 13; i++) console.log(stash.pop(), stash.size)
  })
  .catch(console.error)
```

***

## API

### `createStash(size, gen)`

Create a new `Stash` instance. `size` indicates the number of items that should be kept readily available at any time. `gen` must be a function. Its return values will be used to reup the stash. `gen` must have arity 0. `createStash` returns a `Promise` that resolves to a `Stash` instance.

### `stash.pop()`

Retrieve the next item from your stash in FIFO fashion.

### `stash.size`

Get the number of items in the stash.

***

## License

[MIT](./license.md)

repository: chiefbiiko/pregen-stash

repo_name: chiefbiiko/pregen-stash


text:
# Nostalgia

## What is this?
This is a repository of all my **very old** projects that I messed around with when I started programming. It ranges from when I started in 6th grade in 2005 to when I started working as a high school intern for Rockwell Collins in 2011.

## Disclaimer
The point of this repository is purely to archive my old work for looking back. **None of this should be used as a reflection of my current abilities as a programmer.** If you want to want to see my current portfolio of work, take a look at my website [here](http://www.michaeledavies.com).

## What now?
Take a look and have some fun! I will try to add descriptions of each projects and maybe even how to build and run them if desired.

repository: medav/nostalgia

repo_name: medav/nostalgia


text:
# react-canvas-js ([demo](https://shalomsam.github.io/react-canvas-js/))

> :rocket: Awesome HTML Canvas animations in React!

[![NPM](https://img.shields.io/npm/v/react-canvas-js.svg)](https://www.npmjs.com/package/react-canvas-js) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save react-canvas-js
```

## Usage

```jsx
import React, { Component } from 'react'
import Canvas from 'react-canvas-js'

const particleOptions = [
  {
    'maxParticles': 50,
    'colors': ['#2E1D62', '#513D91', '#487EEF', '#11A887', '#fc5c65', '#fed330'],
    'shapes': ['circle', 'square'],
    'size': 10,
    'minSpeed': 0.05,
    'maxSpeed': 0.20,
    'alpha': 0.70,
    'backgroundColor': '#1E1F29'
  }
]

class Example extends Component {
  render () {
    return (
      <Canvas options={particleOptions} />
    )
  }
}
```

## Available Options

Option | Type | Required | Default | Description
------ | ---- | -------- | ------- | -----------
precision | `Number` | No | 2 | The precision to use for all float values in the component.
backgroundColor | `String` | No | `'#f1f1f1'` | The background color for the canvas.
maxParticles | `Number` | No | 50 | Maximum number of particles to include in Animation.
color | `String` | No | One of `['red', 'green', 'yellow']`  | The color for all Particles.
colors | `[String]` | No | `['red', 'green', 'yellow']` | The range of colors to randomly pick for each particle.
shape | `Object/String` | No | One of `['circle', 'square', 'rectangle']` | The Shape of the particle.
shape.type | `String` (One of `['image', 'rectangle', 'square', 'circle']`) | No | `null` | The shape type (supported shapes are `['image', 'rectangle', 'square', 'circle']`).
shape.src | `String` | No / Yes (`if type === 'image'`) | `null` | The image src, if type is set to image.
shape.size | `Number || Object` | No | Inherits Parent `size` property. | The size of the particle.
shape.size.width | `Number` | No | Inherits Parent `size` property. | The width of the particle.
shape.size.height | `Number` | No | Inherits Parent `size` property. | The height of the particle.
shape.size.radius | `Number` | No | Inherits Parent `size` property. | The radius of the particle if shape is 'circle'.
shape.color | `String` | No | Inherits Parent `color` property.
shapes | `[Object/String]` | No | `['circle', 'square', 'rectangle']` | The range of shapes to randomly pick for each particle.
minSize | `Number` | No | 10 | The minimum size (range) for the particle sizes, to be picked at random (if `size` not defined).
maxSize | `Number` | No | 10 | The maximum size (range) for the particle sizes, to be picked at random (if `size` not defined).
minSpeed | `Number` | No | 0.05 | The speed for each particle is taken at random in between the min(Speed) / max(Speed) range
maxSpeed | `Number` | No | 0.09 | The speed for each particle is taken at random in between the `min(Speed)` / `max(Speed)` range
alpha | `Number` | No | 0.5 | The alpha/transparency for the canvas particles/elements.
debugOptions | `Object` | No | `null` | Developer Debugging options
debugOptions.enabled | `boolean` | Yes | `false` | Enables debugging, and binds a Particle object to `window.Particle` to inspect.
debugOptions.attachAllParticles | `boolean` | No | `false` | Binds all the Particle objects to `window.Particles`.
debugOptions.showFrameRate | `boolean` | No | Shows a frame rate blurb over the canvas, indicating the frame rate achieved by that canvas.

## Planned Features (checklist)

- [ ] Add interaction support.
  - [ ] Add support for custom hover handler (#1).
  - [ ] Add support for custom click handler (#2).
  - [ ] Add support for custom Keyboard key(s) handler (#3).
- [ ] Add tests (#4).
- [ ] Identify possible Optimizations (#5).
- [ ] Particle/subject animation control, i.e. Support for controlling movement, scale and transform of Particle/subject from current given x,y coordinates to xn, yn coordinates over given `duration` or `speed` (#6).

*My goal is to progress to more than just Particle animation, by simplifying and adding support for all canvas animation use cases. Suggestions and feedback are welcome too.*

## Contributing

I could use some assistance in building and improving this component. I'll welcome pull requests for bug fixes, new features, improvements and writing test cases. If you are interested head on over to the [Issues](https://github.com/shalomsam/react-canvas-js/issues) section, and pick up any of the issue(s) that interest you. The issues with label `need help` could really do with some help (as the label suggests). Please create your pull requests to the `develop` branch. Top Contributors will be added here under the contributors section (if you'd like that).

## Author

#### Shalom Sam
+ Checkout my Full Stack Web Developer Website
+ You can checkout this React Portfolio here
+ A scope of my work @ React Portfolio

## License

MIT © [shalomsam](https://github.com/shalomsam)

repository: ellevalentine/react-project-DBO

repo_name: ellevalentine/react-project-DBO


text:
[![elm-package](https://img.shields.io/badge/elm-1.0.0-blue.svg)](http://package.elm-lang.org/packages/billstclair/elm-json-tree/latest)

`elm-json-tree` parses JSON into a tree.

To run the example:

    cd .../elm-json-tree
    elm reactor

Then aim your browser at http://localhost:8000/Example.elm

Enter JSON in the input box and press the Enter/Return key or click the "Parse" button. You'll see either the printed representation of a successful parse or a red error message.

Bill St. Clair<br/>
7 July 2018

repository: billstclair/elm-json-tree

repo_name: billstclair/elm-json-tree


text:
---
hrs_structure:
  division: '1'
  volume: '4'
  title: '14'
  chapter: '231'
  section: 231-9.9
type: hrs_section
tags:
  - Government
menu:
  hrs:
    identifier: HRS_0231-0009_0009
    parent: HRS0231
    name: 231-9.9 Filing and payment of taxes by electronic funds transfer
weight: 57140
title: Filing and payment of taxes by electronic funds transfer
full_title: 231-9.9 Filing and payment of taxes by electronic funds transfer
---
**§231-9.9 Filing and payment of taxes by electronic funds transfer.** (a) The director of taxation is authorized to require every person whose tax liability for any one taxable year exceeds $100,000 and who files a tax return for any tax, including consolidated filers, to remit taxes by one of the means of electronic funds transfer approved by the department; provided that for withholding taxes under section 235-62, electronic funds transfers shall apply to annual tax liabilities that exceed $40,000\. Notwithstanding the tax liability thresholds in this subsection, the director of taxation is authorized to require any person who is required to electronically file a federal return or electronically remit any federal taxes to the federal government, to electronically file a state return and electronically remit any state taxes under title 14 to the department. The director is authorized to grant an exemption to the electronic filing and payment requirements for good cause.

(b) Any person who files a tax return for any tax and is not required by subsection (a) to remit taxes by means of electronic funds transfer may elect to remit taxes by one of the means of electronic funds transfer approved by the department with the approval of the director of taxation.

(c) If a person who is required under subsection (a) to file a return electronically or remit taxes by one of the means of electronic funds transfer approved by the department fails to file electronically or to remit the taxes using an approved method on or before the date prescribed therefor, unless it is shown that the failure is due to reasonable cause and not to neglect, there shall be added to the tax required to be so remitted a penalty of two per cent of the amount of the tax. The penalty under this subsection is in addition to any penalty set forth in section 231-39.

(d) No later than twenty days prior to the convening of each regular session, the department shall submit a report to the legislature containing:

(1) The number of taxpayers who were assessed the two per cent penalty pursuant to subsection (c);

(2) The amounts of each assessment; and

(3) The total amount of assessments collected for the previous year. [L 1995, c 121, §1; am L 1997, c 177, §§1, 3; am L 2001, c 44, §1; am L 2004, c 113, §2; am L 2009, c 196, §2]

Note

The 2009 amendment applies to returns and payments due after May 31, 2009\. L 2009, c 196, §8.

repository: SamMade/BlueAndKrabby

repo_name: SamMade/BlueAndKrabby


text:
# LE3B
Software for synchronized reading of comments from conferences held by the open source software Big Blue Button.

## How to Compile
### Prerequisites:
* Language: Python (the projetct used version 3)
* OS: Windows 10 (not tested on other OS)

### Compilation:
In a terminal, inside of LE3B folder, run the command:
` python main.py `


text:
**Future development of this binding has been moved to `nexus-torch` (https://github.com/ctongfei/nexus/tree/master/torch), serving as a computation backend of `nexus`, a typesafe deep learning engine.**

## JTorch: JVM bindings for Torch (PyTorch C/C++ core)

Corresponding PyTorch version: `0.4.0`

🚧 **Ongoing project** 🚧 **Status: Not ready for use** 🚧

|      | Windows | Linux | MacOS |
|:----:|:-------:|:-----:|:-----:|
| CPU  |         |       |   ✓   |
| CUDA |         |       |   ✓   |

### Installation

**Step 1: Install PyTorch from source.**

Locate the headers (\*.h) and shared libraries (\*.so / \*.dylib / \*.dll)

**Step 2: Build SWIG bindings and publish to local Ivy repository.**
```sh
./build-{mac/linux}.sh
```
You probably need to modify something in the script to make it work.

**[TODO]** Will be refactored into a `Makefile`.

**Step 3: Use!**
```xml
    <dependency>
      <groupId>me.tongfei</groupId>
      <artifactId>jtorch-java</artifactId>
      <version>0.1-TH0.4-SNAPSHOT</version>
    </dependency>
```

When starting a JVM, add `-Djava.library.path=/usr/local/lib` (or where your `libATen.dylib` is),
or set `$LD_LIBRARY_PATH` to include that directory, so that JVM can properly load native the binary.

### Package mappings

Torch has several C packages, to which each is mapped to the following Java package:

| Torch package | Mapped Java package |
|---------------|---------------------|
|`TH`           |`jtorch`             |
|`THNN`         |`jtorch.nn`          |
|`THS`          |`jtorch.sparse`      |
|`THC`          |`jtorch.cuda`        |
|`THCUNN`       |`jtorch.cuda.nn`     |
|`THCS`         |`jtorch.cuda.sparse` |

### Type mappings

Torch has the following `Storage`/`Tensor` types, which are mapped to the Java corresponding types on the right.

| Torch type      | Element type (C) | Bits | Mapped element type (Java)  | Java type     |
|-----------------|------------------|------|-----------------------------|---------------|
|`THHalfTensor`   |`THHalf`          | 16   |`float`                      |`HalfTensor`   |
|`THFloatTensor`  |`float`           | 32   |`float`                      |`FloatTensor`  |
|`THDoubleTensor` |`double`          | 64   |`double`                     |`DoubleTensor` |
|`THByteTensor`   |`uint8_t`         | 8    |`short`                      |`UByteTensor`  |
|`THCharTensor`   |`int8_t`          | 8    |`byte`                       |`ByteTensor`   |
|`THShortTensor`  |`int16_t`         | 16   |`short`                      |`ShortTensor`  |
|`THIntTensor`    |`int32_t`         | 32   |`int`                        |`IntTensor`    |
|`THLongTensor`   |`int64_t`         | 64   |`long`                       |`LongTensor`   |

repository: ctongfei/JTorch

gha_language: Shell

repo_name: ctongfei/JTorch


text:
###### (Automatically generated documentation)

#  Inject IDF Objects

## Description

## Modeler Description

## Measure Type
EnergyPlusMeasure

## Taxonomy

## Arguments

### External IDF File Name
Name of the IDF file to inject objects from. This is the filename with the extension (e.g. MyModel.idf). Optionally this can inclucde the full file path, but for most use cases should just be file name.
**Name:** source_idf_path,
**Type:** String,
**Units:** ,
**Required:** true,
**Model Dependent:** false

repository: NREL/openstudio-common-measures-gem

gha_language: Ruby

gha_license_id: NOASSERTION

repo_name: NREL/openstudio-common-measures-gem


text:
# Working with beans

Instead of defining your forms with the API via FormBuilder you can just define a POJO.
The Bean2Form class can convert a POJO to a jWebForm Form and fill it with the values coming from the form.

This can be very handy and you don't have to learn another api.

You have to use the jwebform-integration project for this. (This is included in the spring-project)

## Example

```Java

public class MyForm {

    @UseDecoration(label = "Your Firstname", helpText = "Please don't cheat here",
          placeholder = "Max Mustermann", isTranslated = true)
    public String firstname="";

    public String lastname="";

    @UseFieldType(TextAreaType.class)
    public String notes="";

    @UseFieldType(HiddenType.class)
    public String password="";

    boolean optIn=false;

    LocalDate birthday = LocalDate.now();
}
```

## Build in conversions

Theses types will be converted automatically for you.

| Java Type        | Converted to     |
| --------------- |-------------------|
| String | TextType |
| Integer | NumberType |
| Boolean | CheckboxType |
| LocalDate | TextDateType |

## Available Annotations

| Annotation       | Meaning     | Example     |
| --------------- |------------------------------------|-------------------|
| @UseFieldType | Forces a specific type | @UseFieldType(TextAreaType.class) String notes;|
| @IgnoreField | Ignores the field in the bean and will not process it | @IgnoreField String secret;|
| @UseDecoration | Fills in decoration for this field | @UseDecoration(label="Your first name") String firstname;|
| @IsRequired| Marks the field as required| @IsRequired |

## Bean Validation

Yes, you can use bean validation too. Be aware, that you have to tell this the Bean2Form class via the constructor. (automatically done for you in spring-boot-starter)

```Java

public class MyForm {

    @Size(min=3, max=20)
    public String firstname="";
}
```

There are two Annoations that will be transferred to internal Criteria:

| Annotation        | Converted to     |Reason     |
| --------------- |-------------------|-------------------|
| @NotEmpty | Required | Will add (*) and "required" html5 attribute |
| @Size | MaxLenght | Will add a lenght attribute |

## Callbacks

If you implement the JWebFormBean interface, you have three callbacks:
(Note: You can extend AbstractJWebFormBean to have default implemntations for all of the three callbacks)

### preRun

can change the form after Bean2Form has processed it.
Here you can finetune the form with something, the bean-api is not capable to.

### postRun

currently not implemented (TODO!)

### validate

This is the most useful: Here you can write your own validation rules. This is simmpler than the Bean Validation API.

## Translation

In a multi-language setup it is common to use .property files to store translated keys. If you use the themeRenderer,
you can choose, whether you want to have translations in the Decoration or not.

@Decoration(..., isTranslated=true) - will output the texts as they are
@Decoration(..., isTranslated=false) - will translate the text via .propertys (default)

## Notes

* The bean has to be public acessible.
* All fields must be public.
* All fields should be initialised. (Subject to change)

gha_language: Java


text:
---
title: Express Letter Services (Class) Licence
permalink: /browse-all-licences/Infocomm-Media-Development-Authority-(IMDA)/Express-Letter-Services-(Class)-Licence
third_nav_title: Infocomm Media Development Authority (IMDA)
---

## Apply for Express Letter Services (Class) Licence

Infocomm Media Development Authority (IMDA)

{% include spcp-text.html type="cp" %}

{% include button.html text="Apply on GoBusiness Licensing" src="https://licence1.business.gov.sg/feportal/web/frontier/eAdvisor?redirection=true&selectedLicenceIds=10013" type="primary" %}

Application Details

For receiving, collecting, sending, dispatching and delivering local express letters or international express letters or both.

Additional Information

Fee
Licence Fee: $200.00

Documents Needed

A copy of the price list for the letter which is below 500 grams.

Requirements

Applicant must be ACRA registered company/business

repository: isomerpages/govtech-gobusiness

branch_name: refs/heads/staging

gha_language: HTML

repo_name: isomerpages/govtech-gobusiness


text:
## TO-DO for GeoGadget
- [x] make GPS flash 1Hz while initializing
- [ ] check if ERR is wrong
- [ ] check if ALT is wrong
- [ ] green gg: make all unused pins as OUTPUT LOW
- [ ] to understand how it works: ```
ublox::nav_timeutc_t::valid_t &v = *((ublox::nav_timeutc_t::valid_t *) &chr);```
- [ ] make program reset the device after 25 minutes of work - to avoid hangings
- [ ] green gg: log 1 fix per xx (5-10 sec) in all modes (in sd_log)
- [ ] long-click - prepare for shutdown (sd.sync, switch all off)

**** MAYBE LATER ****

- [ ] green gg: to wake up GPS send dummy 0xff message to GPS and wait for ACK
- [ ] make parsing UBX-NAV-PVT instead all other tags


text:
# Share some love

:heart::green_heart::yellow_heart::blue_heart::purple_heart::sparkling_heart::heart::green_heart::yellow_heart::blue_heart::purple_heart::sparkling_heart::heart::green_heart::yellow_heart::blue_heart::purple_heart::sparkling_heart::heart::green_heart::yellow_heart::blue_heart::purple_heart::sparkling_heart:

Share some love with our buddies rubyists! Say **Thank You** to all kind people, who
spent their time to create and maintain open source software we use!

## The Problem

Have you ever been thinking how important it is to say **Thank You** sometimes?
And what pleasure it is to get kind words back! Especially when something being a
hobby to you appears to be beneficial to somebody else. That's how open-source software
works.

Unfortunately it happens all the time: amount of criticism outweights positive
reviews. And you give up on that. But the project you was working on is awesome!
We just didn't have enough of time or will to see you need our support.

**NOT GONNA HAPPEN AGAIN!**

Let's share a bit more of love! It's really easy to say **Thank You** to incredible
people that just made part of your work. That spent their personal time to maintain something
so useful. That allowed you to learn something new.

And with `share_some_love` it just got even easier.

## Instalation

```bash
gem install share_some_love
```

## Usage

### If you are developing a GEM

```bash
cd your_gem_directory

share_some_love [by_gem]
```

Review `./LOVE.md` and put it into the repo.

### If you are developing a WEB application

```bash
cd your_project_directory

share_some_love site [by_gem]
```

Review `./public/love.html` and put it into the repo.

---

Here are some sample files that were generated with this gem itself:

  * [LOVE_by_gemfile.md](https://github.com/gazay/share_some_love/blob/master/LOVE_by_gem.md) – with `by gem` option
  * [LOVE_by_author.md](https://github.com/gazay/share_some_love/blob/master/LOVE_by_author.md) – without `by gem` option

I don't currently have styles and JS to make Web Projects love pages look pretty. So here is another chance to share some love: help me with that ;).

**P.S. Don't forget to mention your page or file in twitter using hashtag `#share_some_love`**

### [All aboard!!!](http://www.youtube.com/watch?v=Sr45DmZDjSc)

## Contributors

* @gazay

## License

The MIT License


text:
# Discord XSOverlay Notifier

A very simple Node script to see Discord notifications in VR using XSOverlay.

## Usage

1. Install [NodeJS](https://nodejs.org/)
2. Clone the repository
3. Fill out the clientId and clientSecret fields using a [Discord Application](https://discord.com/developers/applications)
4. Run `npm install` in the folder
5. Run `node index.js` to run the script

## Credits

[discordjs/RPC](https://github.com/discordjs/RPC)

repository: jpdown/Discord-XSOverlay-Notifications

repo_name: jpdown/Discord-XSOverlay-Notifications


text:
+++
author = "Shaigro"
title = "Introduction"
date = "2021-06-16"
description = "Introduction of my blog"
tags = [
    "misc",
]
+++

## Hello & Welcome to my blog! :v:

I intend to write here about my projects, my experimentations or any other subject related to computer science that interests me. Essentially speaking, this blog is a dev blog.

### What am I doing?

I'm currently working on a few personal projects, most of which are related to [Boring Man](https://store.steampowered.com/app/346120/Boring_Man__Online_Tactical_Stickman_Combat/):
- bm-rcon, *C# library for doing some RCON scripting*
- bm-mods, *Collection of mostly gamemodes using bm-rcon*
- Bmaptimizer, *Tool to optimize maps made using the map editor in-game*

Other than those projects, I'm working on this blog (*surprised?*) and on a web app to easily find the items on [itch.io](https://itch.io) that are 100% on-sale, making them free.

There are some projects I want to come back to and remake them using something other than pure JS.

Also, I'm doing my best in documenting and testing my programs because I hate when my future self comes back and, after trying to decipher, decides to scrap everything and redo it from scratch or to abandon whatever he wanted to do.
Self-explanatory code is nice to have, but it doesn't happen that often.

I'm currently learning Golang and Elm because it sounds fun.

### All good things come to an end
Have a nice day or a nice night and feel free to check the rest of the blog! :smile:


text:
# μετατρέπω.

<!-- Status: S2=NeedsReview -->
<!-- Lexica used for edits: BDAG, FFM, LN, A-S -->

## Word data

* Strongs: G33463.

* Alternate spellings:

* Principle Parts:

* Part of speech:

[Verb](http://ugg.readthedocs.io/en/latest/verb.html).

* Instances in the New Testament: 1.

* All Scriptures cited: Yes.

## Etymology:

* LXX/Hebrew glosses:

in LXX: [IV Mac 6:5](4macc.6.5) [7:3](4macc.7.3), [12](4macc.7.12) [15:11](4macc.15.11), [18](4macc.15.18)*;

* Time Period/Ancient Authors:

* Related words:

* Antonyms for all senses

* Synonyms for all senses:

## Senses:

### Sense 1.0:

#### Definition:

Moving from one situation to another

#### Glosses:

change, turn

#### Explanation:

#### Citations:

 [Jas 4:9](jas 4:9),

repository: mandolyte/uw-obsidian

repo_name: mandolyte/uw-obsidian


text:
## Spring Boot Libraries

This module contains articles about various Spring Boot libraries

### Relevant Articles:

- [Background Jobs in Spring with JobRunr](https://www.baeldung.com/java-jobrunr-spring)
- [Open API Server Implementation Using OpenAPI Generator](https://www.baeldung.com/java-openapi-generator-server)


text:
![pic](./conda.png)

# conda

Read about it here : [http://conda.pydata.org/docs/](http://conda.pydata.org/docs/) and checkout [bioconda](https://bioconda.github.io/)

## my collection of conda builds

Stuff I like and use and not up on [bioconda](https://bioconda.github.io/) yet.

| Package |Url |install           |
|:---|---:|----------------------:|
|glia|[https://anaconda.org/sjnewhouse/glia](https://anaconda.org/sjnewhouse/glia)|`conda install -c sjnewhouse glia=9049ffc`|
|    |[recipe](https://github.com/snewhouse/conda/tree/master/recipes/glia)||
|nextflow|[https://anaconda.org/sjnewhouse/nextflow](https://anaconda.org/sjnewhouse/nextflow)|`conda install -c sjnewhouse nextflow=0.18.3`|
|    |[recipe](https://github.com/snewhouse/conda/tree/master/recipes/nextflow)||
|plink1.9|[https://anaconda.org/sjnewhouse/plink](https://anaconda.org/sjnewhouse/plink)|`conda install -c sjnewhouse plink=160816_linux_x86_64_dev`|
|    |[recipe](https://github.com/snewhouse/conda/tree/master/recipes/plink2-linux)|

***

Notes:
bioconda's removal of zlib from build process has made it "less" smooth with builds that require zlib

repository: snewhouse/conda

repo_name: snewhouse/conda


text:
Race Timer
==========

Race Timer is for timing ski (and possibly other) races.  Two Rasberry Pi computers are used wirelessly at the start
gate and the finish gate.  This code is for the timer server, most likely located at the finish line.

Work of both software and hardware is still in progress.

Where to find the official version?
-----------------------------------

End users can download GitHub Backup at https://github.com/cniesen/RaceTimer/releases

Developers can contribute to GitHub Backup at https://github.com/cniesen/RaceTimer

Where to file bugs and feature requests?
----------------------------------------

Please use the issue tracking at https://github.com/cniesen/RaceTimer/issues

License
-------

Race Timer is available under the ISC License.

license: ISC

repository: cniesen/RaceTimer

repo_name: cniesen/RaceTimer


text:
Before you file an issue, please consider:

We only accept pull requests for minor fixes or improvements. This includes:

* Small bug fixes
* Typos
* Documentation or comments

Please open issues to discuss new features. Pull requests for new features will be rejected,
so we recommend forking the repository and making changes in your fork for your use case.

repository: VividCortex/robustly

repo_name: VividCortex/robustly


text:
# Compadre
[![Code Climate](https://codeclimate.com/github/essn/compadre/badges/gpa.svg)](https://codeclimate.com/github/essn/compadre)

![Hellen Keller](http://www.globalresearch.ca/wp-content/uploads/2013/10/helenkeller2.jpg)

> Walking with a friend in the dark is better than walking alone in the light.
> -- <cite>Hellen Keller</cite>

This project rocks and uses MIT-LICENSE.

repository: essn/compadre

repo_name: essn/compadre


text:
# xv6-riscv-rust
This is a project intending to port xv6-riscv using Rust.
It is now runnable.

## Usage
0. Follow [6.S081 2021](https://pdos.csail.mit.edu/6.828/2021/tools.html)/[6.S081 2020](https://pdos.csail.mit.edu/6.828/2020/tools.html) to install tools.

    We may need to build qemu from source depending on the machine.

1. Build fs:
```
make fs.img
```
2. Run:
```
cargo run
```

## Misc Options/Features
Objdump:
```
cargo objdump --bin xv6-riscv-rust -- -d > kernel.asm

// recommended, some instructions is unknown when using rust-objdump/llvm-objdump
// in target/riscv64gc-unknown-none-elf/debug
riscv64-unknown-elf-objdump -S xv6-riscv-rust > kernel.asm
```
trace system call:
```
cargo run --features "trace_syscall"
```
Verbose init info:
```
cargo run --features "verbose_init_info"
```
Unit Test(deprecated):
```
cargo run --features "unit_test"
```
target spec:
```
rustc -Z unstable-options --print target-spec-json --target riscv64gc-unknown-none-elf
```

## Path
- [x] porting console and uart to support printf, p.s., smp = 1
- [x] add register abstraction to support start using mret to return to rust_main
- [x] cpu abstraction and spinlock, add unit_test feature as temp solution
- [x] us spin e lock to synchronize con print sole's ln, and refactor PRINT
- [x] add kernel frame allocator(kalloc), fix writing bug in `timerinit`
- [x] use [Unique](https://doc.rust-lang.org/1.26.2/std/ptr/struct.Unique.html) in self-implemented Box to provide ownership, see [this](https://doc.rust-lang.org/nomicon/vec-layout.html) for example
- [x] add Addr and PageTable
- [x] add kvm for kernel, i.e., kernel paging
- [x] cpu and proc basic abstraction(hard time playing around lock and borrow checker)
- [x] add kernel trap handler(panic at `fork_ret`)
- [x] add user trap returner and way to user space
- [x] add user code space(initcode) and ecall handing in `user_trap`
- [x] add virtio disk driver, plic, buffer cache, inode
- [x] refactor `Proc` into several parts, one need lock to protect, the other is private
- [x] separate `Buf` into two parts, one guarded by bcache's lock, the guarded by its own sleeplock
- [x] update bio and virtio disk
- [x] replace linked list allocator with buddy system, remove self-implemented Box
- [x] add log layer in fs
- [x] add inode layer in fs
- [x] complete sys_exec and add elf loader
- [x] add console, refactor uart and print
- [x] add file layer and sys_open, sys_dup, sys_write
- [x] add several sys_* func
- [x] add pipe in fs and also sys_unlink, sys_chdir, sys_pipe
- [x] port user library
- [x] add several sys_* func and handle some OOM cases
- [x] enable all harts

## TODO
- [ ] recycle pgt for uvm(no need to recycle pgt for kvm now)
- [ ] remove ConstAddr and PhysAddr?
- [ ] stack size need to be 8192 bytes?
- [ ] meta data portion of buddy system is too high
- [ ] may be too much UB
- [ ] one-time init, like Once
- [ ] some assertions can switch to debug_assert, compile time assert
- [ ] remove `VirtAddr` and `PhysAddr`
- [ ] refactor superblock
- [ ] refactor `begin_op` and `end_op`
- [ ] compare raw pointer's `get_mut` method with null-unchecked version `&mut *`
- [ ] [new_uninit](https://github.com/rust-lang/rust/issues/63291)
- [ ] OOM
- [ ] unexpected external interrupt irq=0

## Useful Reference
[Why implementing Send trait for Mutex?](https://users.rust-lang.org/t/why-we-implement-send-trait-for-mutex/39065)
[Explicitly drop](https://users.rust-lang.org/t/is-this-piece-of-codes-in-good-style/39095)
[fixed-size linked list allocator](https://users.rust-lang.org/t/how-to-implement-a-single-linked-list-in-os-bare-metal/39223)
[take ownership from nothing](https://stackoverflow.com/questions/57225328/how-to-take-ownership-of-a-c-pointer-in-rust-and-drop-it-appropriately)
[Unique issue](https://www.reddit.com/r/rust/comments/bcb0dh/replacement_for_stdptrunique_and_stdptrshared/)
[out of memory](https://www.reddit.com/r/rust/comments/279k7i/whats_rusts_mechanism_for_recovering_from_say/)
[integrate Mutex and MutexGuard](https://users.rust-lang.org/t/integrate-mutex-and-mutexguard-into-a-struct/43735)
[lld linker script](https://sourceware.org/binutils/docs/ld/Scripts.html)
[Rust Memory layout](https://docs.rust-embedded.org/embedonomicon/memory-layout.html)
[rustc codegen options](https://doc.rust-lang.org/rustc/codegen-options/index.html)
[Consider deprecation of UB-happy static mut](https://github.com/rust-lang/rust/issues/53639)
[non-reentrant function](https://doc.bccnsoft.com/docs/rust-1.36.0-docs-html/embedded-book/start/exceptions.html)
[Cpp's Relaxed ordering](https://en.cppreference.com/w/cpp/atomic/memory_order#Relaxed_ordering)
[Rust build profile](https://doc.rust-lang.org/cargo/reference/profiles.html)

gha_language: Rust


text:
# The CFPB Design & Development Agile Playbook

## Purpose

Welcome to the [CFPB](http://cfpb.github.io/) Design & Development Agile Playbook! The purpose of this repo is to document our Agile practices, and how those practices affect and influence our design and development teams.

## Individual Sections

[CFPB Values and Agile Values](_pages/values.md)

----

## Open source licensing info
1. [TERMS](TERMS.md)
2. [LICENSE](LICENSE)
3. [CFPB Source Code Policy](https://github.com/cfpb/source-code-policy/)

repository: mistergone/agile-playbook

repo_name: mistergone/agile-playbook


text:
# console-chat

A really simple chat room using the [Net](https://nodejs.org/dist/latest-v14.x/docs/api/net.html) module in _Node.js_.

## 🚧 Prerequisites

- _[Node.js](https://nodejs.org/)_

## 🛠 Install

1. Download this repository

2. Install the dependencies

   ```console
   npm install
   ```

## 🚀 Usage

### 🏭 Server

Start the server with the IP and port where it will listen for connections

```console
npm run server -- [-h | --host] <IP> [-p | --port] <port>
```

### 🏠 Client

Start the client with the IP and port of the server

```console
npm run client -- [-h | --host] <IP> [-p | --port] <port>
```

Use `!members` to see the usernames of those who connected; or `!exit` to leave the chat room

## 📝 License

Copyright © 2021 _Aguirre Gonzalo Adolfo_.
This project is _[MIT](LICENSE)_ licensed.


text:
# HorizonDefaults

Automatically synchronize your app's User Defaults over iCloud.

It's as easy as calling `start` when your app launches:

    HorizonDefaults.start()

repository: Sam-Spencer/HorizonDefaults

repo_name: Sam-Spencer/HorizonDefaults


text:
# grunt-insert-timestamp

> Insert a timestamp into a file.

This Grunt plugin allows yout to insert a timestamp into a file in a format of your choosing. After switching from Ruby Sass+Compass to LibSass, I could no longer use the Ruby function for timestamping my files in a comment, and I was hardpressed to find a grunt plugin that performed such a simple function.

Before you ask: no, this plugin does not add timestamps to filenames. It simply inserts a timestamp *into* the files of your choosing, in a format you specify, with customizable text surrounding it. Whether you want the timestamp to show up in any of the various code comment formats, or with some supplemental text, or whatever, it shall be done.

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

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

```shell
npm install grunt-insert-timestamp --save-dev
```

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

```js
grunt.loadNpmTasks('grunt-insert-timestamp');
```

## The "insert_timestamp" task

### Overview
In your project's Gruntfile, add a section named `insert_timestamp` to the data object passed into `grunt.initConfig()`.

```js
grunt.initConfig({
  insert_timestamp: {

    // Default options
    options: {
      prepend: true,
      append: false,
      format: 'yyyy-mm-dd HH:MM:ss o',
      template: '/* {timestamp} */',
      datetime: new Date(),
      insertNewlines: true
    },

    // Sample usage with css files
    css: {
      options: {
        prepend: false,
        append: true,
        template: '/*! CSS compiled on: {template} */'
      },
      files: [{
        // Use dynamic extend name
        expand: true,
        // Source dir
        cwd: 'src/css',
        // Match files
        src: ['**/*.css'],
        // Output files
        dest: 'dest/css',
        ext: '.css'
      }]
    },

    // Sample usage with js files
    js: {
      options: {
        // Uses default output of `Date()`
        format: false,
        template: '// JS compiled on: {template}\n\n',
        insertNewlines: false
      },
      files: [{
        // Use dynamic extend name
        expand: true,
        // Source dir
        cwd: 'src/js',
        // Match files
        src: ['**/*.js'],
        // Output files
        dest: 'dest/js',
        ext: '.js'
      }]
    }
  },
});
```

### Options

#### options.prepend
Type: `Boolean`
Default value: `true`

Insert the timestamp at the beginning of the file.

#### options.append
Type: `Boolean`
Default value: `false`

Insert the timestamp at the end of the file.

#### options.format
Type: `String` or `Boolean`
Default value: `'yyyy-mm-dd HH:MM:ss o'`

Format of the timestamp. This uses [node-dateformat](https://github.com/felixge/node-dateformat), which in turn is an adaptation of [dateFormat()](http://blog.stevenlevithan.com/archives/date-time-format) by Steven Levithan.

See the **Date Formatting** section below for formatting characters and named masks.

#### options.template
Type: `String`
Default value: `/* {timestamp} */`

Template string that contains the timestamp to be inserted. This makes use of [string-template](https://github.com/Matt-Esch/string-template) by Matt Esch. This string can be almost anything you want, as long as you include `{timestamp}` somewhere for the timestamp to be output to.

This is useful if you want the timestamp to be output in a specific kind of code comment, or even if you want to add supplementary text. If you want just the timestamo by itself, just use `'{timestamp}'`.

Currently, there is no way of adding your own keys to the template string.

#### options.datetime
Type: `Date`
Default value: `new Date()`

The datetime that will be output as a timestamp in the file. This must be passed via the constructor `new Date(foo)`, where `foo` is any of the parameters accepted by the [built-in Date constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date).

#### options.datetimefunc
Type: `function`
Default value: `null`

An optional function that returns a Date object.  This is an alternative to the datetime option (which declares a single Date object directly.)  The function is called once for each file (or list of files to be concatenated) given to the module.  Example usage:

```js
options: {
    datetimefunc: function (fileList) {
      var fs = require('fs');
      var mostRecentMTime = 0;
      // Find the most recently modified timestamp of specified files
      fileList.forEach(function(filepath) {
        statsObj = fs.statSync(filepath);
        mTime = statsObj.mtime.getTime();
        if (mTime > mostRecentMTime) { mostRecentMTime = mTime }
      });
      return new Date(mostRecentMTime);
    },
    format: false,
    template: '// Last modified on: {timestamp}  ',
    insertNewlines: true
},
```

If no datetimefunc option is specified, the datetime option (or its default) is used instead.

#### options.insertNewlines
Type: `Boolean`
Default value: `true`

Whether to insert newlines after prepended timestamps and before appended timestamps. If you are defining your own newlines in the template string with `\n`, you probably don't need this.

## Date Formatting

The available formatting characters are available:

Mask           | Description
-------------- | -----------
`d`            | Day of the month as digits; no leading zero for single-digit days.
`dd`           | Day of the month as digits; leading zero for single-digit days.
`ddd`          | Day of the week as a three-letter abbreviation.
`dddd`         | Day of the week as its full name.
`m`            | Month as digits; no leading zero for single-digit months.
`mm`           | Month as digits; leading zero for single-digit months.
`mmm`          | Month as a three-letter abbreviation.
`mmmm`         | Month as its full name.
`yy`           | Year as last two digits; leading zero for years less than 10.
`yyyy`         | Year represented by four digits.
`h`            | Hours; no leading zero for single-digit hours (12-hour clock).
`hh`           | Hours; leading zero for single-digit hours (12-hour clock).
`H`            | Hours; no leading zero for single-digit hours (24-hour clock).
`HH`           | Hours; leading zero for single-digit hours (24-hour clock).
`M`            | Minutes; no leading zero for single-digit minutes.
`MM`           | Minutes; leading zero for single-digit minutes.
`s`            | Seconds; no leading zero for single-digit seconds.
`ss`           | Seconds; leading zero for single-digit seconds.
`l` or `L`     | Milliseconds. l gives 3 digits. L gives 2 digits.
`t`            | Lowercase, single-character time marker string: a or p.
`tt`           | Lowercase, two-character time marker string: am or pm.
`T`            | Uppercase, single-character time marker string: A or P.
`TT`           | Uppercase, two-character time marker string: AM or PM.
`Z`            | US timezone abbreviation, e.g. EST or MDT. With non-US timezones or in the Opera browser, the GMT/UTC offset is returned, e.g. GMT-0500
`o`            | GMT/UTC timezone offset, e.g. -0500 or +0230.
`S`            | The date's ordinal suffix (st, nd, rd, or th). Works well with d.
`'…'` or `"…"` | Literal character sequence. Surrounding quotes are removed.
`UTC:`         | Must be the first four characters of the mask. Converts the date from local time to UTC/GMT/Zulu time before applying the mask. The "UTC:" prefix is removed.

You can also use "named masks" instead of strings of formatting characters like so:

```
format: 'isoDateTime'
// 2015-03-14T09:26:53
```

Name           | Mask                           | Example
-------------- | ------------------------------ | -------
default        | `ddd mmm dd yyyy HH:MM:ss`     | Sat Jun 09 2007 17:46:21
shortDate      | `m/d/yy`                       | 6/9/07
mediumDate     | `mmm d, yyyy`                  | Jun 9, 2007
longDate       | `mmmm d, yyyy`                 | June 9, 2007
fullDate       | `dddd, mmmm d, yyyy`           | Saturday, June 9, 2007
shortTime      | `h:MM TT`                      | 5:46 PM
mediumTime     | `h:MM:ss TT`                   | 5:46:21 PM
longTime       | `h:MM:ss TT Z`                 | 5:46:21 PM EST
isoDate        | `yyyy-mm-dd`                   | 2007-06-09
isoTime        | `HH:MM:ss`                     | 17:46:21
isoDateTime    | `yyyy-mm-dd'T'HH:MM:ss`        | 2007-06-09T17:46:21
isoUtcDateTime | `UTC:yyyy-mm-dd'T'HH:MM:ss'Z'` | 2007-06-09T22:46:21Z

## Release History
* 0.1.0 First release


text:
---
id: roadmap
title: Product Roadmap
---

This roadmap is not intended to provide a firm timeline or commitment of
features and capabilities, nor does it include the comprehensive set of planned
work. Its purpose is to offer visibility into the major items that are planned
and the rough sequencing of them. It also is intended to lay out the vision and
direction of the project. Items not included in the roadmap may still be
implemented. Similarly, items in the roadmap may end up not being implemented
or may look different than as described here. As such, the roadmap exists as a
living document and will be updated as things evolve.

Please [create an issue](https://github.com/liftbridge-io/liftbridge/issues/new)
to provide input on the roadmap or refer to [existing issues](https://github.com/liftbridge-io/liftbridge/issues)
to comment on particular roadmap items.

## H1 2022

### ~~Consumer Groups ([#46](https://github.com/liftbridge-io/liftbridge/issues/46))~~

Provide high-level consumer functionality to allow for durable subscriptions,
balanced stream consumption, and fault-tolerant consumers. The first step to
this will be providing support for single-member consumer groups, which will
effectively provide a durable subscription, then generalizing to multi-member
groups. The latter will require a mechanism for group coordination.

### ~~Authentication and Authorization ([#36](https://github.com/liftbridge-io/liftbridge/issues/36))~~

Provide mechanisms for client identity and authentication as well as granular
access control. These will likely be delivered as separate units of work with
authentication providing the groundwork for fine-grained authorization. As a
result, these may be broken out into separate roadmap items in the near future.

## H2 2022

### Monitoring API ([#222](https://github.com/liftbridge-io/liftbridge/issues/222))

Provide an API that exposes monitoring information and metrics about the server
to better support Liftbridge operations. This paves the way for future
monitoring and observability integrations.

### Authorization Enhancements ([#409](https://github.com/liftbridge-io/liftbridge/issues/409)

Implement syncing of authorization policies across cluster nodes. This improves
operator experience by not requiring policy files to be modified across all
nodes in a cluster. It also prevents permissions drift across cluster nodes.

## H1 2023

### Optional NATS API ([#221](https://github.com/liftbridge-io/liftbridge/issues/221))

With the introduction of [Embedded NATS Server](#embedded-nats-server-19httpsgithubcomliftbridge-ioliftbridgeissues19),
allow the NATS API to be exposed optionally. This, in effect, turns NATS into
an implementation detail and allows users to just interact with the Liftbridge
API as a standalone service.

### Tiered Storage ([#110](https://github.com/liftbridge-io/liftbridge/issues/110))

Provide support for transparent offloading of log segments to object storage,
such as Amazon S3, so that brokers only need to keep open (or some configurable
tail of) segments locally on disk. When a consumer needs to read older
segments, the broker or, potentially, the client transparently reads from
object storage.

### Federated Clustering ([#219](https://github.com/liftbridge-io/liftbridge/issues/219))

Implement federated Liftbridge clustering to better support geo-replication.
This may involve implementing a system similar to Kafka MirrorMaker for
replicating data between clusters and/or leveraging NATS superclustering and
geo-aware subscribers.

## H2 2023

### Kafka Bridge Connector ([#220](https://github.com/liftbridge-io/liftbridge/issues/220))

Implement a bridge process that maps Kafka topics to Liftbridge streams to
better support the migration from Kafka to Liftbridge or to support hybrid
scenarios.

### Flatbuffers and Zero-Copy Support ([#87](https://github.com/liftbridge-io/liftbridge/issues/87), [#185](https://github.com/liftbridge-io/liftbridge/issues/185))

Provide opt-in support for Flatbuffers and a zero-copy API for high-performance
use cases.

repository: liftbridge-io/liftbridge

repo_name: liftbridge-io/liftbridge


text:
# Examples of using the Zello Channel API

There are example applications for the following platforms:

* Python 3
* .NET Core 3.1
* Node.js 6

Each application streams an audio file to a Zello channel as a regular voice message using a common Zello account.

The audio file must be in Ogg format encoded with the [Opus codec](https://tools.ietf.org/html/rfc7845).

Use [opusenc](https://opus-codec.org/docs/opus-tools/opusenc.html) utility to convert your media files to the appropriate format.

## Install opus encoder

### MacOS:
```
brew install opus-tools
```

### Linux (Debian-like):
```
sudo apt-get install opus-tools
```

### Windows:

Download the precompiled [binaries](https://archive.mozilla.org/pub/opus/win32/opus-tools-0.2-opus-1.3.zip) and unpack.

# Prepare a compatible audio source file

The input format can be Wave, AIFF, FLAC, Ogg/FLAC, or raw PCM.

Use an appropriate converter for other media formats.

## Encode the audio file using Opus codec

Do not use a frame size less than 20 milliseconds.

For the audio source file `media.wav` the command looks like:
```
opusenc --framesize 20 media.wav media.opus
```

The encoded media will be stored in `media.opus` file.

# Prepare configuration file

## Edit the configuration file [stream.conf](./stream.conf).

### If you want to connect to Zello Work network - configure the `network` property.

Set the network name as a value of the `network` property.

### Configure the appropriate Zello account's `username` and `password`.

This account is used by the example application to send the audio message.

### Set the `channel` name to send the message to.

Make sure the configured account is allowed to send the audio message to this channel.

### Setup an auth `token`.

Use instructions from [AUTH.md](../AUTH.md) to obtain the auth token for the Zello account.
Token is optional for Zello Work networks.

### Specify the audio `filename`.

Put the path to the media encoded with Opus codec.

# Python example API client
```
brew install python3
pip3 install aiohttp
pip3 install configparser
pip3 install asyncio

cd py
python3 main.py
```

# NodeJS example API client:
```
cd js
npm install
node index.js
```

# .NET example API client:
```
cd cs
dotnet build
dotnet run
```

# Application architecture

The `data` field in `stream data` defined in the [Zello Channel API specification](../API.md) must be audio encoded with the [Opus codec](https://tools.ietf.org/html/rfc6716).

A media container such as Ogg, Matroska, WebM, MPEG-TS or MP4 has to be used for storing an Opus audio.

The most common and native container for Opus audio is [Ogg](https://tools.ietf.org/html/rfc7845).

Therefore each application contains two components:
1. Ogg container parser.

   Extracts an Opus audio stream from an Ogg container.
2. Implementation of Zello Channel API.

   Performs network communication with Zello server to send the audio message to the appropriate channel.

## Python application

Located in [py](./py) directory.

1. Ogg parser:

   `opus_file_stream.py`
2. Zello Channel API:

   `main.py`

## NodeJS application

Located in [js](./js) directory.

1. Ogg parser:

   `opus-file-stream.js`
2. Zello Channel API:

   `index.js`

## C# application

Located in [cs](./cs) directory.

1. Ogg parser:

   The Ogg parser implements an interface `IZelloOpusStream.cs`

   There are two options of Ogg parsers to use:

   1. [Concentus ogg parser](https://github.com/lostromb/concentus.oggfile) is used by default.

      It implements the mentioned interface using an adapter `ConcentusAdapter.cs`

   2. Zello Ogg parser: `OpusStream.cs`

      In order to use Zello Ogg parser:

         * Edit [ZelloMediaStream.csproj](./cs/ZelloMediaStream.csproj)
         * Change the value of `UseConcentusOggParser` to false
         * Clean the previusly built objects and binaries and rebuild the project:
            ```
            cd cs
            rm -rf bin obj
            dotnet build
            ```

2. Zello Channel API: `ZelloMediaStream.cs`

repository: zelloptt/zello-channel-api

repo_name: zelloptt/zello-channel-api


text:
# Contributing to Inquirer

## Project structure overview

Inquirer is setup as a monorepo (using Yarn workspaces and Lerna.) It has been going through a complete rewrite over the last few years, and this is important to understand the structure.

First, there's `packages/inquirer` which is the `inquirer` package you'll find on npm. This is the most used package, and is the old version I wrote a long time ago.

Secondly, there's `packages/core` (npm `@inquirer/core`) which is the new framework developed to build prompts; and especially custom prompts more easily. It expose a hook based state management system akin to how React work. This interface is more intuitive to many FE devs, but the main goals of creating this version was:

1. Lower the needs for a centralized package
2. Drop most dependencies (and mainly the big RxJS dependency)
3. Remove flow management from the core, which I find isn't useful and often leads users to assume they cannot use the JavaScript constructs they know to build their prompt flows (hundreds of support requests on the issue tracker).

The other packages, `packages/input`, `packages/checkbox`, `packages/*` are the new reimplement core prompts from the `inquirer` module.

# Running Inquirer locally

First off, you'll need to run `yarn install`.

## Running test suite

To run everything:

```sh
yarn test
```

And during development, you might want to run vitest in watch mode for quicker iteration:

```sh
yarn vitest
```

## Linting

```sh
yarn eslint . --fix`
```

## Type checking

```sh
yarn lerna run tsc
```

## Publishing new versions

Note: This can only be done by someone with permission to the org on `npm`.

```sh
yarn lerna publish
```

## Running demos

```sh
yarn ts-node packages/checkbox/demo.mts
```

(Also works for the `.js` demos)


text:
# Security Policy

## Supported Versions

| Version | Python |        Supported         |
| :-----: | :----: | :----------------------: |
|   1.6   |  3.10+ |    :heavy_check_mark:    |
|   1.5   |  3.9+  |    :heavy_check_mark:    |
|   1.4   |  3.8+  |    :heavy_check_mark:    |
|   1.3   |  3.7+  |    :heavy_check_mark:    |
|   1.2   |  3.6+  | :heavy_multiplication_x: |
|   1.1   |  3.5+  | :heavy_multiplication_x: |
|   1.0   |  3.5+  | :heavy_multiplication_x: |
| <1.0 |  2.7+  | :heavy_multiplication_x: |

## Reporting a Vulnerability

* Do not create issues to report security vulnerabilities.
* Instead, please e-mail the maintainer at [chronobserver@disroot.org](mailto:chronobserver@disroot.org).
* Do not include any confidential information in the e-mail.
* Provide your GitHub username (if available), so that you can be
  invited to collaborate on a [security advisory][advisories] on GitHub.

[advisories]: https://help.github.com/en/github/managing-security-vulnerabilities/about-github-security-advisories

repository: ObserverOfTime/yaenv

repo_name: ObserverOfTime/yaenv


text:
# Heroicon
[![Build Status](https://github.com/bharget/heroicon/workflows/CI/badge.svg)](https://github.com/bharget/heroicon/actions)
[![Ruby Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://github.com/testdouble/standard)

Ruby on Rails view helpers for the beautiful hand-crafted SVG icons, Heroicons.

 Used in production at [Morning Brew ☕](https://www.morningbrew.com/?utm_source=bharget_github)

This gem has no official affiliation with Tailwind CSS or the Heroicon team (yet!). Check out their sites:

- [Tailwind CSS](https://tailwindcss.com/?utm_source=bharget_github)
- [Tailwind UI](https://tailwindui.com/?utm_source=bharget_github)
- [Heroicons](https://heroicons.com/?utm_source=bharget_github)

## Installation
Add this line to your application's Gemfile:

```ruby
gem "heroicon"
```

And then execute:
```bash
$ bundle
```

Run the installer
```bash
$ rails g heroicon:install
```

## Usage

To use a icon in your views, simply use the provided view helper with the name of an icon.

```rb
<%= heroicon "search" %>
```

Heroicon comes with two variants, `:outline` and `:solid`. The default variant is `:solid`. This can be changed in `config/initializers/heroicon.rb`, which is generated during installation. To overwrite this in the view, use

```rb
<%= heroicon "search", variant: :outline %>
```

You can also pass HTML options directly to the icon.

```rb
<%= heroicon "search", options: { class: "text-primary-500" } %>
```

Heroicon currently supports icons up to [`Version 1.0.1`](https://github.com/tailwindlabs/heroicons/releases/tag/v1.0.1). If there is a icon that is missing, feel free to contribute by following our contributing guide below.

## Contributing

Anyone is encouraged to help improve this project. Here are a few ways you can help:

- [Report bugs](https://github.com/bharget/heroicon/issues)
- Fix bugs and [submit pull requests](https://github.com/bharget/heroicon/pulls)
- Write, clarify, or fix documentation
- Suggest or add new features

To get started with development:

```
git clone https://github.com/bharget/heroicon.git
cd heroicon
bundle install
bundle exec rake test
```

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


text:
elements-sk and common

Documentation for the all the modules is available via the links
on the right hand side of the page.

There are also demo pages for each set of elements that can
be accessed below:

  * [elements-sk](/elements-sk/)
      * [full list of icon elements](/elements-sk/icon-sk.html)
  * [infra-sk](/infra-sk/)

repository: msftenhanceprovenance/skia-buildbot

repo_name: msftenhanceprovenance/skia-buildbot


text:
## Ignition
[![CircleCI](https://circleci.com/gh/pivotalservices/ignition/tree/master.svg?style=svg)](https://circleci.com/gh/pivotalservices/ignition/tree/master)

A landing page for developers to self-service their way onto your Pivotal Cloud Foundry (PCF) deployment(s).

* Authenticates the user via OpenID Connect (which implicitly uses OAuth 2.0)
* Allows the user to access Apps Manager and view their personal PCF org

### Contribute

This application is a combination of a JavaScript single-page app (built with React) and a Go web app. The JavaScript app is built into a JavaScript bundle that the Go web app serves up. The Go web app also provides an API that the JavaScript app uses to function.

#### Yak Shaving (Developer Setup)

This project uses [`dep`](https://github.com/golang/dep) and [`yarn`](https://yarnpkg.com) for dependency management.

The following setup script shows how to get your MacOS workstation ready for `ignition` development. Don't just blindly execute shell scripts though; [take a thorough look through it](https://raw.githubusercontent.com/pivotalservices/ignition/master/setup.sh) and then run the following:

> `curl -o- https://raw.githubusercontent.com/pivotalservices/ignition/master/setup.sh | bash`

#### Add A Feature / Fix An Issue

We welcome pull requests to add additional functionality or fix issues. Please follow this procedure to get started:

1. Ensure you have `go` `>=1.10.x` and `node` `v8.x.x` installed
1. Ensure your `$GOPATH` is set; this is typically `$HOME/go`
1. Clone this repository: `go get -u github.com/pivotalservices/ignition`
1. Go to the repo root: `cd $GOPATH/src/github.com/pivotalservices/ignition`
1. *Fork this repository*
1. Add your fork as a new remote: `git remote add fork https://github.com/INSERT-YOUR-USERNAME-HERE/ignition.git`
1. Create a local branch: `git checkout -b your initials-your-feature-name` (e.g. `git checkout -b jf-add-logo`)
1. Make your changes, ensure you add tests to cover the changes, and then validate that all changes pass (see `Run all tests` below)
1. Push your feature branch to your fork: `git push fork your initials-your-feature-name` (e.g. `git push fork jf-add-logo`)
1. Make a pull request: `https://github.com/pivotalservices/ignition/compare/master...YOUR-USERNAME-HERE:your-initials-your-feature-name`

### Configure the application
#### Authentication
We recommend you use the [Single Sign-On for PCF](https://network.pivotal.io/products/pivotal_single_sign-on_service) service to authenticate and authorize users for the application. It is possible that an OpenID Connect compliant provider can be used directly, but it is not recommended.

To authenticate users with the Single Sign-On for PCF service:
1. Configure the Single Sign-On for PCF tile in your PCF foundation http://docs.pivotal.io/p-identity/
1. Create a Single Sign-On service instance named `ignition-identity` in your space, and bind it to the ignition app
1. Create a user provided service `cf cups ignition-config -p /path/to/ignition-config.json` (see below for an `ignition-config.json` template)

#### Templates For `ignition-config.json`

When you have a bound Single Sign-On service instance:

```json
{
  "session_secret": "",
  "system_domain": "run.example.net",
  "uaa_origin": "okta",
  "api_username": "ignition",
  "api_password": "password",
  "authorized_domain"<EMAIL_ADDRESS>}
```

When you want to use Google (or an equivalent OpenID Connect provider) to authenticate users (i.e. you do _not_ have a bound Single Sign-On service instance):

Generate a Google [OAuth2 Client ID and Secret](https://console.developers.google.com/apis/credentials), and use them below:

```json
{
  "session_secret": "",
  "system_domain": "run.example.net",
  "uaa_origin": "okta",
  "api_username": "ignition",
  "api_password": "password",
  "authorized_domain"<EMAIL_ADDRESS>  "auth_variant": "openid",
  "auth_scopes": "openid,profile,email",
  "auth_url": "https://accounts.google.com",
  "client_id": "your-client-id-here",
  "client_secret": "your-client-secret-here"
}
```

### Run the application locally

You will need to ensure your environment contains the relevant variables for the app to run. Here is an example `$GOPATH/src/github.com/pivotalservices/ignition/credentials/export.sh`:

```sh
#!/bin/sh

### Server ###
export IGNITION_SCHEME="http" # IGNITION_SCHEME allows you to use http for local development; it is always set to HTTPS on PCF
export IGNITION_DOMAIN="localhost" # IGNITION_DOMAIN allows you to set the domain that will be used to access the app
export IGNITION_PORT="3000" # IGNITION_PORT is the port used to access ignition; this is always set to 443 on PCF
export IGNITION_SERVE_PORT="3000" # IGNITION_SERVE_PORT is the port that ignition listens on; this is usually different to IGNITION_PORT except during development
# export IGNITION_WEB_ROOT="" # IGNITION_WEB_ROOT can be used to store JS / CSS / image resources at a non-default path
export IGNITION_SESSION_SECRET="insert-a-random-session-secret-here" # IGNITION_SESSION_SECRET is used to encrypt the contents of the secure cookie used to store a user's session information
export IGNITION_COMPANY_NAME="Company Name" # IGNITION_COMPANY_NAME is used to white label the UX for ignition

### Your CF Deployment ###
export IGNITION_SYSTEM_DOMAIN="run.example.net" # IGNITION_SYSTEM_DOMAIN is what you get when you take the "api." away from the Cloud Controller API URL
export IGNITION_UAA_ORIGIN="okta" # IGNITION_UAA_ORIGIN is the origin for a user that logs in to Cloud Foundry with your single sign on solution of choice
export IGNITION_API_CLIENT_ID="cf" # IGNITION_API_CLIENT_ID is almost always cf
export IGNITION_API_CLIENT_SECRET="" # IGNITION_API_CLIENT_SECRET is almost always blank
export IGNITION_API_USERNAME="ignition" # IGNITION_API_USERNAME is the username for the user that can create Cloud Foundry organizations
export IGNITION_API_PASSWORD="password" # IGNITION_API_PASSWORD is the password for the user that can create Cloud Foundry organizations

### Developer Experimentation ###
export IGNITION_ORG_PREFIX="ignition" # IGNITION_ORG_PREFIX is used to generate a developer's org name (e.g. ignition-testuser)
export IGNITION_QUOTA_NAME="ignition" # IGNITION_QUOTA_NAME is used to generate a developer's org with the appropriate quota
export IGNITION_SPACE_NAME="playground" # IGNITION_SPACE_NAME is used to create the initial space in a developer's org

### Authorization ###
export<EMAIL_ADDRESS># IGNITION_AUTHORIZED_DOMAIN is used to validate that users are allowed to access the application

### Authentication ###
### Single Sign-On ###
export IGNITION_AUTH_VARIANT="openid" # IGNITION_AUTH_VARIANT is openid when you're working locally because you don't have a bound sso service instance
export IGNITION_CLIENT_ID="your-service-instance-client-id"
export IGNITION_CLIENT_SECRET="your-service-instance-client-secret"
export IGNITION_AUTH_URL="https://ignition.login.run.example.net"

### Google ###
# export IGNITION_AUTH_VARIANT="openid"
# export IGNITION_CLIENT_ID="your-client-id-here"
# export IGNITION_CLIENT_SECRET="your-client-secret-here"
# export IGNITION_AUTH_URL="https://accounts.google.com"
# export IGNITION_AUTH_SCOPES="openid,profile,email" # IGNITION_AUTH_SCOPES is not the same for Google as it is for the a Single Sign-On instance, and this allows you to override it with a comma separated list of values
```

1. Make sure you're in the repository root directory: `cd $GOPATH/src/github.com/pivotalservices/ignition && . ./credentials/export.sh`
1. Ensure the web bundle is built: `pushd web && yarn install && yarn build && popd`
1. Start the go web app: `go run cmd/ignition/main.go`
1. Navigate to http://localhost:3000

### Run all tests

1. Make sure you're in the repository root directory: `cd $GOPATH/src/github.com/pivotalservices/ignition`
1. Run go tests: `go test ./...`
1. Run web tests: `pushd web && yarn ci && popd`

### Support

`ignition` is a community supported Pivotal Cloud Foundry add-on. [Opening an issue](https://github.com/pivotalservices/ignition/issues/new) for questions, feature requests and/or bugs is the best path to getting "support". We strive to be active in keeping this tool working and meeting your needs in a timely fashion.

repository: datianshi/ignition

repo_name: datianshi/ignition


text:
# New Repo

:warning:  This project is archived :warning:

:warning:  it is now maintained in a single repository with power of Kotlin Multi Platform :warning:

:warning:  Please see Kotlin Multi Platform Repo!:warning:

:warning:  iOS app is purely SwiftUI, bussines logic is shared between platforms and binded to iOS with Combine! :warning:

# Archived Repo

A currency application for most of the currencies of world.You can quickly convert and make mathematichal operations between currencies

SwiftUI, Combine, MVVM, CoreData, UserDefaults

### License
```markdown
Copyright 2017 Mustafa Ozhan

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

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

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

repository: Oztechan/iosCCC

repo_name: Oztechan/iosCCC