text:
# Using machine learning for predicting League of Legends match outcome

This repository contains the implementation of related article that was written as a part of Machine learning course at
the Faculty of Computer and Information Science at the University of Ljubljana.

## Repository structure

The repository contains the following folders:
- `article` contains the article
- `classifiers` contains implementations of the solutions for the specified problem
- `figs` contains images of plots
- `old` contains old python programs, that were not used in the final implementations
- `prepare_data.py` python program for processing the raw data
- `time_comparison.ipynb` Jupyter Notebook file for comparing classifiers by their learning time and accuracy

## Data

The data set that was used for buliding and testing the models can be accessed [here](https://www.kaggle.com/gyejr95/league-of-legendslol-ranked-games-2020-ver1).

## Reproducing results

To run the Python programs and reproduce the results I got, you will have to download the Kaggle data [set](https://www.kaggle.com/gyejr95/league-of-legendslol-ranked-games-2020-ver1) and extract it to folder `\data\raw_data`.

After you successfully forked this repository and downloaded the data set from Kaggle you will have to install python dependencies listed in `requirements.txt`. You can do this by using pip:
```bash
pip install -r requirements.txt
```

repository: Blarc/lol-dodge-predictor

repo_name: Blarc/lol-dodge-predictor


text:
# SUMMARY

## Event-driven programming:

Event-driven programming with javascript is a way to create interactive websites.after the webpage has loaded the javascript program continues to run waiting for an event. If you connect this event to a javascript function then the function will run when the event occurs.
In computer programming, event-driven programming is a programming paradigm in which the flow of the program is determined by events such as user actions (mouse clicks, key presses),or messages from other programs.

![img](https://www.tutorialspoint.com/nodejs/images/event_loop.jpg)

#### Event-Driven Programming makes use of the following concepts:

- An Event Handler is a callback function that will be called when an event is triggered.
- A main Loop listens for event triggers and calls the associated event handler for that event.

###  EventEmitter:

 EventEmitter that allows us to get started incorporating Event-Driven Programming in our project right away.

 ![img](https://upload.wikimedia.org/wikipedia/commons/c/cb/Event_driven_programming_Simply_Explained.jpg)

license: MIT

branch_name: refs/heads/master

extension: md

license_type: permissive


text:
# URL Shortener Library

This is a library to manage database storage of short URLs

    Copyright 2017 Mark Roland.
    Released under the MIT license.

## TODO:

 - Write unit tests
 - Test build processes (phpunit, phpcs, phpdoc, build.xml)

## Installation

```sh
    composer require markroland/url-shortener-lib
```

## Build

### Build using Phing

```sh
    phing
```

```sh
    phing phpdoc
```

```sh
    phing phpcs
```

### PHPUnit

```sh
    phpunit --bootstrap tests/bootstrap.php tests
```

### Code Coverage

```sh
    phpunit --coverage-html ./report ./tests
```

### PHP Documentation

PHP Documentation is compiled using [phpDocumentor](http://www.phpdoc.org), which is assumed
to be installed globally on the server. It uses phpdoc.dist.xml for runtime configuration.

```sh
    phpdoc
```

### Code Sniff

```sh
    phpcs -n --report-width=100 ./src
```

repository: markroland/url-shortener-lib

repo_name: markroland/url-shortener-lib


text:
---
layout  : wiki
title   : Exploring Java Hidden Costs
summary :
date    : 2022-10-14 11:28:32 +0900
updated : 2022-10-14 12:15:24 +0900
tag     : java
toc     : true
comment : true
public  : true
parent  : [[/java]]
latex   : true
---
* TOC
{:toc}

## Exploring Java Hidden Costs

> As Java 8 features comes to Android, it’s important to remember that every standard library API and language feature comes with an associated cost. Even as devices get faster and have more memory, concerns of code size and performance overhead are still very relevant. This talk will be an exploration into hidden costs associated with some of Java’s features. We’ll focus on optimizations relevant for both library and application developers and on the tools that can be used to measure their impact.

<script async class="speakerdeck-embed" data-id="5ef7038a1106403bb53a34ff4bdedc4e" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>

## Links

- [Exploring Java Hidden Costs](https://jakewharton.com/exploring-java-hidden-costs/)
  - [Youtube](https://www.youtube.com/watch?v=WALV33rWye4)

gha_language: JavaScript

gha_license_id: MIT


text:
# mversion [ <newversion> | major | minor | patch | prerelease ] [ -m <optional message> ] [ -n | --no-prefix ]
> Update module version in either one or all of package.json,
component.json, bower.json, manifest.json and *.jquery.json.

**Run without arguments to get current version.**

## Semver Summary

Given a version number `MAJOR.MINOR.PATCH` increment the:
 * `MAJOR` version when you make incompatible API changes,,
 * `MINOR` version when you add functionality in a backwards-compatible manner, and,
 * `PATCH` version when you make backwards-compatible bug fixes.,

Additional labels for pre-release and build metadata are available as extensions to the `
MAJOR.MINOR.PATCH` format.

## Update version
Update version by defining new semver valid version
or a release string (`major`, `minor`, `patch`, `build`).

### Examples
```
$ mversion minor
$ mversion 1.0.1-beta
```

## Git

Use `-m` to auto commit and tag. Apply optional message and use `%s`
as placeholder for the updated version. Default message is `v%s` where `%s`
is replaced with new version.

`--tag` (or `-t` for short) allows for overriding the tag name used.
This does not change behaviour of the message, just the tag name.

As with `-m`, all occurances of `%s` are replaced with the newly bumped version.

`--no-prefix` (or `-n` for short) is a short hand for setting
a tag name without `v` as prefix. This does not change behaviour of
the message, just the tag name.

## Default settings

Create a `.mversionrc` file in your root with default settings
as defined in the README.md of the project.

### Examples
```
$ mversion minor -m
$ mversion minor -m 'Bumped to v%s' --tag 'v%s-src'
```

repository: mikaelbr/mversion

repo_name: mikaelbr/mversion


text:
# Contributor Guide

Hello there!

There are many ways in which you can contribute to Folktale, and this document
provides guidelines for the social and technical aspects that come into play for
most contributions to the project.

Do note that people are expected to follow Origami Tower's
[Code of Conduct](https://github.com/origamitower/folktale/blob/master/CODE_OF_CONDUCT.md).
This code of conduct applies to all interactions in the project, be them when
discussing issues on GitHub, asking or providing support in the Gitter channel,
or any other social interaction involving Folktale.

Harassment of any form will not be tolerated. If you are being harassed, please
[contact us immediately](https://github.com/origamitower/folktale/blob/master/CODE_OF_CONDUCT.md#enforcement)
so that we can support you.

## Table of Contents

  - [How can I contribute to Folktale?](#how-can-i-contribute-to-folktale)
  - [Reporting bugs](#reporting-bugs)
  - [Requesting features](#requesting-features)
  - [Adding or fixing tests](#adding-or-fixing-tests)
  - [Adding or fixing documentation](#adding-or-fixing-documentation)
  - [Contributing bugfixes](#contributing-bugfixes)
  - [Adding new features](#adding-new-features)

## How can I contribute to Folktale?

Here are some ways in which you can contribute to the Folktale community:

  - Join the [Gitter Channel](https://gitter.im/folktale/discussion) and ask and/or answer questions. Folktale
    aims to be usable by people new to FP, so by asking questions and sharing
    your troubles with the library, you're helping us get closer to that goal.

  - Talk about Folktale. By bloggging, writing tutorials, or giving talks in
    your local JS community. A bigger and healthy community helps by really
    putting the libraries to test.

  - [Report bugs](#reporting-bugs) in our [GitHub issue tracker](https://github.com/origamitower/folktale/issues), or
    [request new features](#requesting-features).

  - [Submit patches](#adding-or-fixing-code) for new features, or to fix existing
    bugs. Take a look at the list of [Good First Issues](https://waffle.io/origamitower/folktale?label=e:Good%20First%20Issue)
    if you're not entirely sure where to start.

  - [Improve existing documentation](#adding-or-fixing-documentation).

## Reporting bugs

Sometimes things don’t work as well as they should, or we can’t make them work the way we want, and we get frustrated by that. Both of those are situations were we encourage you to open an issue in the [GitHub issue tracker](https://github.com/origamitower/folktale/issues) so we can help you. Read the [Bug Reporting guide](http://folktale.origamitower.com/docs/support/bugs/) for more details.

## Requesting features

Folktale doesn’t do everything, so more often than not you’ll find something that you wish Folktale supported but that isn’t implemented yet. Maybe the thought has never crossed our minds. This is a great opportunity to [tell us about that feature you want](http://folktale.origamitower.com/docs/support/feature-request/).

## Adding or fixing tests

Folktale uses [Mocha](https://mochajs.org/) and
[JSVerify](https://github.com/jsverify/jsverify) for tests. Read the [Test Writing guide](http://folktale.origamitower.com/docs/v2.0.0/contributing/tests/) to understand how to add new tests, or update existing ones.

## Adding or fixing documentation

Found a typo in the documentation, or think that something is missing from it, and want to help fixing that? [Read the Documentation Writing guide](http://folktale.origamitower.com/docs/v2.0.0/contributing/documentation/) to understand how.

## Contributing bugfixes

While we do our best to write correct software, sometimes bugs will escape our tests and creep in. We really appreciate any contribution to fix these issues. Read the [Bug Fixing guide](http://folktale.origamitower.com/docs/v2.0.0/contributing/bugfixes/) to understand how to contribute.

## Adding new features

Folktale has a [roadmap](https://github.com/origamitower/folktale/blob/master/ROADMAP.md) which summarises the vision for the future of the library. Points in this roadmap are broken down into features, and detailed on the issue tracker as a feature proposal. The [Contributing Features guide](http://folktale.origamitower.com/docs/v2.0.0/contributing/new-features/) describes the process of contributing a new feature to Folktale.

> **Important**
> If a feature is not in the roadmap, please [submit a feature request](http://folktale.origamitower.com/docs/support/feature-request/) explaining why it should be added before you start to work on it.

repository: dChunikhin/folktale

repo_name: dChunikhin/folktale


text:
[You can check out the live demo of Gróa here](http://www.groa.us/).

## Code Climate

![MIT](https://img.shields.io/packagist/l/doctrine/orm.svg)
![React](https://img.shields.io/badge/react-v16.13.1-blue.svg)
![Typescript](https://img.shields.io/npm/types/typescript.svg?style=flat)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Maintainability](https://api.codeclimate.com/v1/badges/0fef80620dce0ea0e2ee/maintainability)](https://codeclimate.com/github/Lambda-School-Labs/Groa-fe/maintainability)
[![Test Coverage](https://api.codeclimate.com/v1/badges/0fef80620dce0ea0e2ee/test_coverage)](https://codeclimate.com/github/Lambda-School-Labs/Groa-fe/test_coverage)

more info on using badges [here](https://github.com/badges/shields)

## Contributors

### Labs 21

|                                        [Brianna Keune](https://github.com/briannakeune)                                        |                                            [Benjamin Solt](https://github.com/bensolt)                                            |                                     [Mariela Gonzales](https://github.com/marielapg)                                      |
| :----------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------: |
|   [](https://github.com/briannakeune)   |       [](https://github.com/bensolt)       |            [](https://github.com/marielapg)            |
|                   [ ](https://github.com/briannakeune)                    |                       [ ](https://github.com/bensolt)                        |                  [ ](https://github.com/marielapg)                   |
| [  ](https://www.linkedin.com/in/brianna-keune/) | [  ](https://www.linkedin.com/in/ben-solt-8447bb94) | [  ](https://www.linkedin.com/in/marielapg) |

|                                       [Billy Gingrich](https://github.com/bgingrich)                                       |                                      [TJ Katalenas](https://github.com/robomantis19)                                       |                                                           [Cody M Russell](https://github.com/cmruss)                                                           |
| :------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| [](https://github.com/bgingrich) | [](https://github.com/robomantis19) | [](https://github.com/cmruss) |
|                   [ ](https://github.com/bgingrich)                   |                 [ ](https://github.com/robomantis19)                  |                                       [ ](https://github.com/cmruss)                                       |
| [  ](https://www.linkedin.com/in/whgingrich) |       [  ](https://www.linkedin.com/)        |                   [  ](https://www.linkedin.com/in/cm-russell)                    |

### Labs 23

|                                                                 [Mike Sinnema](https://github.com/msinnema33)                                                                  |                                                         [Juana Villalpando](https://github.com/jvillalp)                                                          |                                                           [Steven Matos](https://github.com/Steven-Matos)                                                            |                                                             [Luis Pepen](https://github.com/azatecas)                                                             |
| :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------: |
|      [](https://github.com/msinnema33)       | [](https://github.com/jvillalp) | [](https://github.com/Steven-Matos) | [](https://github.com/azatecas) |
|                                            [ ](https://github.com/msinnema33)                                             |                                       [ ](https://github.com/jvillalp)                                       |                                      [ ](https://github.com/Steven-Matos)                                       |                                       [ ](https://github.com/azatecas)                                       |
|                    [  ](https://www.linkedin.com/in/michael-sinnema-37ba733)                     |                 [  ](https://www.linkedin.com/in/juanavillalpando)                  |                   [  ](https://www.linkedin.com/in/steven-matosFED)                    |               [  ](https://www.linkedin.com/in/luis-pepen-17bb3b196)                |
## Project Overview

[Trello Board](https://trello.com/b/ce1lYRW9/gr%C3%B3a)

[Product Canvas](https://docs.google.com/presentation/d/1_dX0NNlZjL9GGFbw732kUIy9Euh4RJgRGugmRbnWx3k/edit#slide=id.p)

[UX Design files](https://www.figma.com/file/elaCFCYWs40IDLXWEoRUsO/Groa%2C-Martin?node-id=179%3A0)

Gróa will use our Discovery Engine to present movies suited to your taste based upon the way in which you talk about movies.

### Key Features

- Uploading Letterboxd ZIP file
- Receiving movie recommendations from Letterboxd data
- Rating movies
- Receiving new more fine tuned recommendations based on what you've recently rated.
- Adding movies to your watchlist

## Tech Stack

### Front end built using:

#### React

- Facebook maintains and continues to improve this framework.
- 99% backwards compatibility compared to Vues's 90%.
- In consideration of who will most likely work on Groa in the future, we thought React would be easy to jump in the code base.

---

##### Libraries and Packages

[axios](https://www.npmjs.com/package/axios)

- for easier to read responses than _fetch_

[@fortawesome/fontawesome-svg-core](https://www.npmjs.com/package/@fortawesome/fontawesome-svg-core) |
[@fortawesome/free-regular-svg-icons](https://www.npmjs.com/package/@fortawesome/free-regular-svg-icons) |
[@fortawesome/free-solid-svg-icons](https://www.npmjs.com/package/@fortawesome/free-solid-svg-icons) |
[@fortawesome/react-fontawesome](https://www.npmjs.com/package/@fortawesome/react-fontawesome)

- for all fontawesome icons

[@material-ui/core](https://www.npmjs.com/package/@material-ui/core) |
[@material-ui/icons](https://www.npmjs.com/package/@material-ui/icons) |
[@material-ui/lab](https://www.npmjs.com/package/@material-ui/lab) |

- for the stars on movie cards and form inputs

[@node-sass](https://www.npmjs.com/package/node-sass)

- drier styling

[react-ga](https://www.npmjs.com/package/react-ga)

- google analytics

[react-loading](https://www.npmjs.com/package/react-loading)

- for loading screen animation

[react-redux](https://www.npmjs.com/search?q=react-redux) |
[redux-logger](https://www.npmjs.com/package/react-logger) |
[redux-thunk](https://www.npmjs.com/package/redux-thunk)

- for global statemangement

#### Front end deployed to `AWS Amplify`

#### [Back end](https://api.groa.us/) built using:

#### Express

- Accessible documentation
- Good error handling
- Faster to implement than vanilla Node.js

---

###### Libraries and Packages

[apidoc](https://www.npmjs.com/package/apidoc)

- to create easy to read API docs with inline comments

[axios](https://www.npmjs.com/package/axios)

- for easier to read responses than _fetch_

[cors](https://www.npmjs.com/search?q=cors)

- allows us to configure to avoid cors issues

[body-parser](https://www.npmjs.com/package/body-parser) |
[csv-parser](https://www.npmjs.com/package/csv-parser) |
[express-fileupload](https://www.npmjs.com/package/express-fileupload) |
[unzipper](https://www.npmjs.com/package/unzipper)

- to handle uploaded file information

[dotenv](https://www.npmjs.com/package/dotenv)

- allows node to read our .env files

[standard](https://www.npmjs.com/package/standard)

[pg](https://www.npmjs.com/package/pg)

[pg-format](https://www.npmjs.com/package/pg-format)

[nodemon](https://www.npmjs.com/search?q=nodemon)

#### Back end deployed to `AWS Elastic Beanstalk`

# Environment Variables

In order for the app to function correctly, the user must set up their own environment variables. There should be a .env file containing the following:

    REACT_APP_ANALYTICS_ID - this is your Google analytics key, which can be generated in the Google Analytics Console.
    REACT_APP_TMDB_API_KEY - this is your API key from TMDb it sources the movie posters we user.

# Content Licenses

| Image Filename      | Source / Creator          | License                                                                                |
| ------------------- | ------------------------- | ---------------------------------------------------------------------------------------- |
| imdb-logo.svg       | unbekanntAmazon.com, Inc. | [Creative Commons](https://commons.wikimedia.org/wiki/File:New-imdb-logo.png)            |
| letterboxd-logo.svg | Matthewbuchanan           | [Creative Commons](<https://commons.wikimedia.org/wiki/File:Letterboxd_logo_(2018).png>) |
| success_5.svg       | -------------             | [Creative Commons](https://www.manypixels.co/gallery/)                                   |
| Groa-logo-B2AA.png  | -------------             | [Creative Commons](https://www.manypixels.co/gallery/)                                   |

# Testing

#### Client Testing Libraries

[Jest](https://jestjs.io/)

[React Testing Library](https://testing-library.com/docs/react-testing-library/intro)

[history](https://www.npmjs.com/package/history)

[redux-mock-store](https://www.npmjs.com/package/redux-mock-store)

#### API Testing Libraries

[Jest](https://jestjs.io/)

[@types/jest](https://www.npmjs.com/package/@types/jest)

[cross-env](https://www.npmjs.com/package/cross-env)

[supertest](https://www.npmjs.com/package/supertest)

[knex-cleaner](https://www.npmjs.com/package/knex-cleaner)

[knex](https://www.npmjs.com/package/knex)

# Installation Instructions

    Clone this repo to your local machine.

    Run npm i

## Other Scripts

    * build - creates a build of the application
    * start - starts the production server after a build is created
    * test - runs tests in **tests** directory \* eject - copy the configuration files and dependencies into the project so you have full control over them

# Contributing

When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.

Please note we have a [code of conduct](./CODE_OF_CONDUCT.md). Please follow it in all your interactions with the project.

## Issue/Bug Request

**If you are having an issue with the existing project code, please submit a bug report under the following guidelines:**

- Check first to see if your issue has already been reported.
- Check to see if the issue has recently been fixed by attempting to reproduce the issue using the latest master branch in the repository.
- Create a live example of the problem.
- Submit a detailed bug report including your environment & browser, steps to reproduce the issue, actual and expected outcomes, where you believe the issue is originating from, and any potential solutions you have considered.

### Feature Requests

We would love to hear from you about new features which would improve this app and further the aims of our project. Please provide as much detail and information as possible to show us why you think your new feature should be implemented.

### Pull Requests

If you have developed a patch, bug fix, or new feature that would improve this app, please submit a pull request. It is best to communicate your ideas with the developers first before investing a great deal of time into a pull request to ensure that it will mesh smoothly with the project.

Remember that this project is licensed under the MIT license, and by submitting a pull request, you agree that your work will be, too.

#### Pull Request Guidelines

- Ensure any install or build dependencies are removed before the end of the layer when doing a build.
- Update the README.md with details of changes to the interface, including new plist variables, exposed ports, useful file locations and container parameters.
- Ensure that your code conforms to our existing code conventions and test coverage.
- Include the relevant issue number, if applicable.
- You may merge the Pull Request in once you have the sign-off of two other developers, or if you do not have permission to do that, you may request the second reviewer to merge it for you.

### Attribution

These contribution guidelines have been adapted from [this good-Contributing.md-template](https://gist.github.com/PurpleBooth/b24679402957c63ec426).

## Documentation

See [Backend Documentation](https://github.com/Lambda-School-Labs/Groa-be/blob/master/README.md) for details on the backend of our project.

repository: azatecas/groa-fe

repo_name: azatecas/groa-fe


text:
Objective

"Predict behavior to retain customers. You can analyze all relevant customer data and develop focused customer retention programs."
[IBM Sample Data Sets]

Content

Each row represents a customer, each column contains customer’s attributes described on the column Metadata.
The data set includes information about:
Customers who left within the last month – the column is called Churn Services that each customer has signed up for – phone, multiple lines, internet, online security, online backup, device protection, tech support, and streaming TV and movies Customer account information – how long they’ve been a customer, contract, payment method, paperless billing, monthly charges, and total charges Demographic info about customers – gender, age range, and if they have partners and dependents

Inspiration

To explore this type of models and learn more about the subject.

Link to this project: https://www.kaggle.com/navendush/churn-in-telecom-sector-multiple-models
My linkedin profile: https://www.linkedin.com/in/navendu-shekhar-32a4765b/

repository: NavenduShekhar/ml-ai

repo_name: NavenduShekhar/ml-ai


text:
# Server-Side-Rendering-React-Router-Node
Server-Side Rendering React-Router Node
This is a basic boilerplate app, built with react, react-router, node/express, ES6 and serverside rendering with data on initialisation.

You can see my tutorial here

Note: As typically my projects don’t expand the server side that significantly, i.e. the server doesn’t have that many modules, I don’t see much benefit in using webpack to bundle it into one file. So I have used babel to transpile the server and webpack for the client.

My next tutorial will be extending this boilerplate to use redux and for the store to be created with an initial state.

install
npm i - install dependencies
run in dev
npm run build:watch - runs babel to transpile the server from es6 to es5 (watch mode)
npm run build:watch:client - runs webpack to build bundle (watch mode)
npm run start:dev - in parallel shells it calls build:watch:client build:watch:server and then runs the app in watch mode, using nodemon
prod
npm run build - runs babel to transpile the server from es6 to es5
npm run build:client - runs webpack to build bundle
npm run build:prod - builds both client and server
npm run start - it calls build:prod and then runs the app


text:
# orchestrate-sql

Imports a SQL database into Orchestrate (or vice versa) either as a CLI or in other Python scripts.

When importing, `orchestrate-sql` maps SQL tables to Orchestrate [collections](http://orchestrate.io/docs/apiref#collections), and rows to [key-values](http://orchestrate.io/docs/apiref#keyvalue). For example, a table named `users` will be copied to a collection by the same name; each row within will be converted to a JSON document and inserted into the collection under the same key as their primary key in the SQL database.

When exporting, the tool maps likewise but in the other direction: copying collection contents to rows within tables in the destination database.

## Install

Just use [pip](https://pip.pypa.io/en/latest/):

```shell
pip install orchestrate-sql
```

Then, use the CLI to copy a SQL database into Orchestrate:

```shell
orchestrate-sql import --api-key ORCHESTRATE_APP_KEY --sql-uri sql://URI_FOR_YOUR_DATABASE
```

Or, import it into other Python scripts:

```python
import orchestrate_sql

orchestrate_sql.import(ORCHESTRATE_APP_KEY, URI_FOR_YOUR_DATABASE)
```

## Usage

### CLI

Both commands use the same option flags:

* `--api-key, -a`: the Orchestrate API key for whatever application you want to sync with.
* `--sql-uri, -s`: the connection URI for the SQL database you want to sync with.

#### import

Import data from a SQL database into Orchestrate.

#### export

Export data from Orchestrate into a SQL database.

### Library

Both methods take the same arguments:

```python
def import (ORCHESTRATE_API_KEY, SQL_URI):
    ...

def export (ORCHESTRATE_API_KEY, SQL_URI):
    ...
```

#### import

Import data from a SQL database into Orchestrate.

#### export

Export data from Orchestrate into a SQL database.

## Tests

    git clone https://github.com/garbados/orchestrate-sql.git
    cd orchestrate-sql
    python setup.py test

## License

[Apache-2.0](http://opensource.org/licenses/Apache-2.0)

repository: daniellawrence/orchestrate-sql

repo_name: daniellawrence/orchestrate-sql


text:
# MyNotifier
一个简易的订阅/分发消息的工具

### Download
[Click Me (´･ω･`)](https://github.com/AlionSSS/MyNotifier/releases/download/1.0.1/MyNotifier.jar)

### How to use?
- 按key订阅消息
```java
Notify.getNotifier().subscribe("Chinese", new EventObserver() {
    @Override
    public void onEvent(Object info) {
        System.out.println("info = " + info);
    }
});
```
- 按key分发消息
```java
Notify.getNotifier().post("Chinese", "hello");
```

### LICENSE
```
Copyright 2017~2019 ALion

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: AlionSSS/MyNotifier

repo_name: AlionSSS/MyNotifier


text:
# WaitForSmsConditions

Conditions to apply to emails that you are waiting for

## Properties

| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**phoneNumberId** | **UUID** | ID of phone number to search within and apply conditions to. Essentially filtering the SMS found to give a count. |  |
|**limit** | **Integer** | Limit results |  [optional] |
|**count** | **Long** | Number of results that should match conditions. Either exactly or at least this amount based on the `countType`. If count condition is not met and the timeout has not been reached the `waitFor` method will retry the operation. |  |
|**delayTimeout** | **Long** | Max time in milliseconds to wait between retries if a `timeout` is specified. |  [optional] |
|**timeout** | **Long** | Max time in milliseconds to retry the `waitFor` operation until conditions are met. |  |
|**unreadOnly** | **Boolean** | Apply conditions only to **unread** SMS. All SMS messages begin with `read=false`. An SMS is marked `read=true` when an `SMS` has been returned to the user at least once. For example you have called `getSms` or `waitForSms` etc., or you have viewed the SMS in the dashboard. |  [optional] |
|**countType** | [**CountTypeEnum**](#CountTypeEnum) | How result size should be compared with the expected size. Exactly or at-least matching result? |  [optional] |
|**matches** | [**List<SmsMatchOption>**](SmsMatchOption) | Conditions that should be matched for an SMS to qualify for results. Each condition will be applied in order to each SMS within a phone number to filter a result list of matching SMSs you are waiting for. |  [optional] |
|**sortDirection** | [**SortDirectionEnum**](#SortDirectionEnum) | Direction to sort matching SMSs by created time |  [optional] |
|**since** | **OffsetDateTime** | ISO Date Time earliest time of SMS to consider. Filter for matching SMSs that were received after this date |  [optional] |
|**before** | **OffsetDateTime** | ISO Date Time latest time of SMS to consider. Filter for matching SMSs that were received before this date |  [optional] |

## Enum: CountTypeEnum

| Name | Value |
|---- | -----|
| EXACTLY | "EXACTLY" |
| ATLEAST | "ATLEAST" |

## Enum: SortDirectionEnum

| Name | Value |
|---- | -----|
| ASC | "ASC" |
| DESC | "DESC" |

repository: mailslurp/mailslurp-client-java

gha_language: Java

repo_name: mailslurp/mailslurp-client-java


text:
---
layout: default
---

## Encryption Key Rotation

According to the PCI Compliance documentation: "Cryptographic keys must be changed on an annual basis."

During the transition period of moving from one encryption key to another symmetric-encryption supports multiple
Symmetric Encryption keys. Since every encrypted value has a header that contains the version number of the key
that was used to encrypt it, that key will be used to decrypt it, even though a new key is already active and
is being used to encrypt new values.

The active key is the first key in the list in `symmetric-encryption.yml`. Other keys are only used to decrypt
values that were encrypted with those keys.

Encryption keys are secured (encrypted) using a Key Encryption Key (RSA Private key). New keys are secured using the
same Key Encryption Key, so that multiple encryption keys can be secured at the same time.

### Recommended steps

Below are the recommended steps to perform "hot" key rotation, so that the encryption key can be changed without
requiring system downtime or maintenance window.

The steps can be reduced if they are being performed during a maintenance window. In this case do not supply
the `--deploy` option below so that new key will be active immediately, and skip step 4 below.

### 1. Add the new key as secondary key

During a rolling deploy it is possible for servers to encrypt data using a new
key before the other servers have been updated. This would result in cipher
errors should any of the servers try to decrypt the data since they do not have
the new key.

To avoid this race-condition add the new key as the second key in the configuration
file. That way it will continue decrypting using the current key, but can also
decrypt with the new key during the rolling deploy.

For example, with Symmetric Encryption v4, use the command line interface to update the config file
and generate the new keys:

    symmetric-encryption --rotate-keys --rolling-deploy  --app-name my_app

The `--rolling-deploy` option stores the new key as the second key so that it will not be activated yet.

Replace `my_app` with the name of the application that is going to use this key. Recommend using lower case.

By default a new key is generated for every environment, to limit it to just production:

    symmetric-encryption --rotate-keys --rolling-deploy  --app-name my_app --environments production

Copy the key file to every server in that particular environment that runs the application or uses Symmetric Encryption.

If the keys for multiple environments are generated above, then move the relevant key files to the servers for that environment.

By default the key files are located in `/etc/symmetric-encryption`.

### 2. Re-encrypt all passwords in the source repository

Passwords, such as those for the database, need to be re-encrypted using the new key.
Scan the source code repository for YAML files or other files that contain any encrypted passwords or
other encrypted values.

Since the new key is the secondary key, its version must be supplied when re-encrypting.

For example, with Symmetric Encryption v4, re-encrypt yaml files:

    symmetric-encryption --re-encrypt --key-version 5

Where key-version `5` above must be the version of the new key generated above.

Note:
* Since the keys for each environment are different, the above step must be run in each
  environment and then the modified files committed back into version control.

### 3. Deploy

Deploy the updated source code to each environment so that the new key is available to all
servers for decryption purposes.

### 4. Activate the new key

Once the new key has been deployed as a secondary key, the next deploy can move
the new key to the top of the list so that it will be the active key for encrypting new data.
The previous key should be kept as the second key in the list so that it can continue to
decrypt old data using the previous key(s).

Move the new key ( the key with the highest version ) to the top of the list so that all
new data is encrypted with this key.

    symmetric-encryption --activate-key

Restart the application so that it will encrypt using the new encryption key.

### 5. Re-encrypting existing data

For PCI Compliance it is necessary to re-encrypt old data with the new key and
then to destroy the old key so that it cannot be used again.

The sister project [RocketJob](http://rocketjob.io) comes with a batch job to re-encrypt
all the data in a relational database for you. Uses multiple workers concurrently to spread the load,
and is capable of re-encrypting terabytes of data. With built-in throttling mechanisms to allow
re-encryption to continue while live traffic is being processed.

To kick off the re-encryption job, run this from the console or via a migration:

~~~ruby
RocketJob::Jobs::ReEncrypt::RelationalJob.start
~~~

A job is created for every database table that contains a column starting with `encrypted_`.
The job is throttled in 2 ways:
* Only one job instance is permitted to run at a time.
* For each job at most 100 workers will work on that table at a time.

Both of the above throttle are configurable and can be tuned for your environment,
by modifying the values below:

~~~ruby
RocketJob::Jobs::ReEncrypt::RelationalJob.throttle_running_jobs   = 1
RocketJob::Jobs::ReEncrypt::RelationalJob.throttle_running_slices = 100
~~~

Custom throttles can be added to the jobs, for example to throttle based on database slave delay, etc.

### 6. Re-encrypting Files

Remember to re-encrypt any files on disk that were encrypted with Symmetric Encryption
if they need to be kept after the old encryption key has been destroyed.

For example, with Symmetric Encryption v4, re-encrypt files:

    symmetric-encryption --re-encrypt "/export/**/*"

Replace `"/export/**/*"` above as needed to point to where the encrypted files are that
should be re-encrypted using the new key.

### 7. Remove old key from configuration file

Once all data and files have been re-encrypted using the new key, remove the
old key from the configuration file.

    symmetric-encryption --cleanup-keys

If you get cipher errors, you can restore the old key in the configuration file and
then re-encrypt that data too.

### 8. Destroying old key

Once sufficient time has passed and you are 100% certain that there is no data
around that is still encrypted with the old key, wipe the old key from all the production
servers.

### Next => [PCI Compliance](pci_compliance.html)

repository: reidmorrison/symmetric-encryption

gha_language: Ruby

repo_name: reidmorrison/symmetric-encryption


text:
# fmpapi 0.1.0

* Added a `NEWS.md` file to track changes to the package.
* uses api key `"demo"` instead of throwing an error when an API Key is not found
* Changed package name to not conflict with existing CRAN package `FMP`

repository: jpiburn/fmpapi

gha_language: R

gha_license_id: NOASSERTION

repo_name: jpiburn/fmpapi


text:
# nextjs-resume
Simple Resume render from Balsamiq wireframe mockup using nextjs
Drafted mockup on Balsamiq
![Image of mockup](https://github.com/Jaredude/nextjs-resume/blob/master/Condensed%20(Wire).png)
Installed nextjs https://nextjs.org/
Played around with [isomorphic-unfetch](https://www.npmjs.com/package/isomorphic-unfetch)
  and [swr](https://www.npmjs.com/package/swr)
  and [@zeit/next-css](https://www.npmjs.com/package/@zeit/next-css)
  and [react-fontawesome](https://www.npmjs.com/package/react-fontawesome)
  added public API entrypoint: /api/resumeData simply pulling data from the JSON file to test fetching. Left comments in index.js with said code.

repository: Jaredude/nextjs-resume

gha_language: HTML

repo_name: Jaredude/nextjs-resume


text:
---
title: "Plex Add-on for Kodi"
date: 2016-12-13T03:00:00Z
tags:
  - Community
author: Keith Herrington
featured_image:
  src: /images/blog/plexforkodi.webp
  title: "plexforkodi"
  alt: "plexforkodi"
---

By now, you’ve probably heard that Plex has brought their experience to the Kodi platform, and now it’s finally in the repo!

In case you didn’t know, Plex is a great way to organize and consume media on nearly any smart device you already have. Plex Media Server walks you through how to setup Plex easily. Once you are set up, you can also share your server with friends and they can share with you as well. Full media togetherness!

Check them out at: [plex.tv](https://plex.tv/) and here’s a [quick start guide](https://www.youtube.com/watch?v=mCGM9xGBPQ0).

Plex is the leader in this space, so we were excited when we met them at CES last year. They immediately mentioned the possibility of bringing the Plex experience to Kodi since they considered this something both of our communities could benefit from and were willing to dedicate some resources to bring this opportunity to life.

This add-on leverages Kodi’s immense work in getting the most possible out of the hardware with the ease of use of Plex. It allows the user to access Plex from a fully configured Kodi setup, with the exact same experience across all Kodi supported devices.

When building this add-on, one of the major components discussed was to bring the Plex UI to Kodi. Everyone worked at making the experience as fluid as possible to make sure every type of user can feel comfortable, if they’ve used any other Plex apps before.

Plex for Kodi brings a truly best-in-class Plex experience to our open source platform. While very functional, this is a beta release and there is still work to do, namely bringing Plex Companion (which allows casting and the remote on the mobile app to work) and adding some other features that are highlighted [here](https://forums.plex.tv/t/planned-features-and-known-issues/168859).

Note: It could take up to 24 hours for the add-on to be available to everyone. If you don’t see it immediately, you can try a force refresh on the repo, or just download the .zip file before in the forum for the time being. Currently in Plex Pass for testing and bug fixing, the intention is for the Plex for Kodi add-on to be available to everyone as soon as we run out of planned features and don’t see any major bugs. The code is on GitHub and we encourage others to take a look and please send a Pull Request if what you’ve added is beneficial to everyone. Can’t promise it will get into the add-on, but we’re excited to see what the community can come up with and we appreciate the contribution.

Please share your feedback on their forum, which is accessible for Plex Pass users:

<https://forums.plex.tv/categories/plex-for-kodi>

This project truly showcases the power of the Kodi add-on ecosystem and how far you can take customizability to make the experience as close to native as possible. ruuk did a truly amazing job building this for Plex and the Kodi Team is proud of this collaboration.

If you’re a commercial entity who is interested in having an add-on built, please reach out to us at interest-at-kodi-dot-tv and we can help connect you to the right people to help bring your idea to life.

repository: ECCx/kodi-tv

branch_name: refs/heads/main

repo_name: ECCx/kodi-tv


text:
---
layout: kanji
v4: 755
v6: 817
kanji: 到
keyword: arrival
elements: arrival, climax, wall, one, ceiling, elbow, soil, dirt, ground, sword, sabre, saber
strokes: 8
image: E588B0
on-yomi: トウ
kun-yomi: いた.る
permalink: /rtk/到/
prev: 室
next: 致
---

1) [watanuki] 29-12-2007(834): Http://img168.imageshack.us/img168/7731/karatesd3.jpg Just look at this image...

2) [blackstockc] 26-2-2008(126): Just as we were about to climax her father arrived with a sword.

3) [oRis1024] 29-8-2008(59): Arrival of a hero always happens at the CLIMAX of the movie, and of course he carries a SABER to defeat the enemy.

4) [mikedough2] 21-5-2007(25): The arrival of the main character from Yojimbo back in town with a saber in hand, is the unforgettable climax of the movie.

5) [pm215] 21-3-2008(15): Musashi's rather late arrival for a duel, sabre in hand, is the climax of that novel...


text:
---

title: 'It's Official.  channelJimmy is open.'
date: 2009-12-01T21:51:50+00:00
author: jimmy
layout: post
guid: http://localhost:8888/2009/12/01/2009121its-official-channeljimmy-is-open-html/
permalink: /2009/12/01/2009121its-official-channeljimmy-is-open-html/
categories:
  - blog
  - news
tags:
  - channelJimmy
  - News
---

    I'm still toying with some re-designs and what-not, but I've officially closed down other sites, namely the old Carpentry Lounge.

    "Why?", you ask?  Well, my interests have evolved and my future plans have changed as well.  I started my first website way back in 1996 when I had an AOL homepage my junior year of college.  I set it up as a portfolio to document my scenic design and architecture work.  I thought it would help get me a job.  It didn't.  It did, however, teach me HTML 1.2, hard-coding web pages, and how to set up a site so it was easy to change a page or a banner.

    Fast forward 13 years, and I'm still doing it.  The Carpentry Lounge began as a showcase for my home makeover tv work and my interest in sustainable building.  All of that is still true.  But I'm neck-deep in technology, computers (mostly Mac!), gadgets, sustainable building, social media, live-streaming, politics, and more.  The "Carpentry Lounge" was too narrow.  Maybe channelJimmy is too wide.  We'll find out together.

    I've imported all the old articles from the Lounge, and I'm working on categorizing and tagging them all.  I've also started a new section, "NEWS", that basically updates you on what show I'm currently working on, or where I am in this great big world.  This way, if you only care about what I'm doing, and not what I think, you don't have to sift thru the opinion, which will be far more opinionated now.

    We're working on some great things for the site, including possible live streaming (or at least recorded clips) of Don't Sweat It and Dear Genevieve behind-the-scenes fun!  Stay tuned.


text:
### LaneDetectPro: An Advanced Lane Finding Python Package

The component of this package are the following:

* Compute the camera calibration matrix and distortion coefficients given a set of chessboard images.
* Apply a distortion correction to raw images.
* Use color transforms, gradients, etc., to create a thresholded binary image.
* Apply a perspective transform to rectify binary image ("birds-eye view").
* Detect lane pixels and fit to find the lane boundary.
* Determine the curvature of the lane and vehicle position with respect to center.
* Warp the detected lane boundaries back onto the original image.
* Output visual display of the lane boundaries and numerical estimation of lane curvature and vehicle position.

[//]: # (Image References)

[image1]: ./camera_cal/calibration1.jpg "Undistorted"
[image11]: ./calibration_result/calibration1.jpg "Undistorted"
[image2]: ./test_images/test1.jpg "Road Transformed"
[image3]: ./examples/binary_combo_example.jpg "Binary Example"
[image4]: ./examples/warped_straight_lines.jpg "Warp Example"
[image5]: ./examples/color_fit_lines.jpg "Fit Visual"
[image6]: ./examples/example_output.jpg "Output"
[video1]: ./project_video.mp4 "Video"

### Camera Calibration

The code for this step is contained in the second code cell of the IPython notebook located in "./LaneDetectPro.ipynb".

First, the "object points" are prepated, which will be the (x, y, z) coordinates of the chessboard corners in the world. It is assumed that the  chessboard is fixed on the (x, y) plane at z=0, such that the object points are the same for each calibration image.  Thus, `objp` is just a replicated array of coordinates, and `objpoints` will be appended with a copy of it every time I successfully detect all chessboard corners in a test image.  `imgpoints` will be appended with the (x, y) pixel position of each of the corners in the image plane with each successful chessboard detection.

Then the output `objpoints` and `imgpoints` are used to compute the camera calibration and distortion coefficients using the `cv2.calibrateCamera()` function.

I applied this distortion correction to the test image using the `cv2.undistort()` function and obtained this result:

Undistorted images are saved in the `./calibration_result/` folder.

### Pipeline (single images)

#### 1. An example of a distortion-corrected image.

Using the same calibration parameters computed in last step, in this step one of the lane driving example images is  undistorted:

```python
input_image = mpimg.imread('test_images/straight_lines1.jpg')
undistorted_image = cv2.undistort(input_image, mtx, dist, None, mtx)
mpimg.imsave('calibration_result/straight_lines1.jpg',undistorted_image)
```

#### 2. Creating thresholded binary image by color transforms and gradients

A combination of color and gradient thresholds is used to generate a binary image (thresholding steps in the 4th code cell of the `LaneDetectPro.ipynb`").  Here's an example of my output for this step, for the undistorted version of the `straight_lines1.jpg` image:

The function to create the thresholded binary image is `col_trans_grad()` with the default threshold values shown bellow:

```python
 col_trans_grad(img, s_thresh=(170, 255), sx_thresh=(20, 100))
```
Two other resulting images of the thresholded binary image function are shown bellow

#### 3. Perspective transform

The coordinates for the source and destination points for perspective transform are called `src_points` and `dst_points`.

First four points are selected from the `straight_lines1.jpg`, as bellow:

The pixel coordinates of these points are as bellow:

```python
src_points = np.float32([[265, 680], [1048, 680],
                [622, 435], [658, 435]])
```

To determine the `dst_points`, I used two prior knowledge about the highway,
first, the lane width is 3.7 meter and the longitudinal distance between lanes are about 9 meter. Therefore if the selected rectangle is 3.7m x 30 m, in pixel coordinate system, if width is 700 then the height should be 8*700 = 5600 pixel:

```python
centre= (265+1048)/2
offset = 700
dst_points = np.float32([[centre-offset/2, 680], [centre+offset/2, 680],
                  [centre-offset/2, 680-8*offset], [centre+offset/2, 680-8*offset]])

```

This resulted in the following source and destination points:

| Source        | Destination   |
|:-------------:|:-------------:|
| 265, 680      | 306, 680       |
| 1048, 680      | 1006.5, 680      |
| 622, 435     | 306.5, -4920      |
| 658, 435      | 1006.5, -4920        |

Here, some Transformed images are shown:

```python
M = cv2.getPerspectiveTransform(src_points, dst_points)
```

#### 4.Identify lane-line pixels and fit their positions with a polynomial

The line detection is done in cell #11-#12, functions ` find_lane_pixels(binary_warped)`, `fit_poly(binary_warped_shape,leftx, lefty, rightx, righty)` and `search_around_poly(binary_warped,left_fit,right_fit)`

#### 5. Calculating the radius of curvature of the lane and the position of the vehicle with respect to center.

 This in done in cell 13 in the notebook, via function `fit_polynomial_accutal(binary_warped)`

#### 6. Image of the result plotted back down onto the road

Function `process_image(input_image)` in cell #14 get the input image and then do all computations on it and then write the outcomes back again on the input image.

---

### Pipeline (video)

#### 1. Final video output.

Here's a [link to my video result](./project_video_out.mp4)

---

repository: mjalalmaab/LaneDetectPro

repo_name: mjalalmaab/LaneDetectPro


text:
# wslrpc

[Discord Rich Presence (RPC)](https://discord.com/rich-presence) for [Windows Subsystem for Linux (WSL, WSL2)](https://docs.microsoft.com/en-us/windows/wsl/about)

### Usage:
You need to have [Node.js](https://nodejs.org/en/) installed on both Windows and WSL for this to work.

Install
```bash
# run in WSL
git clone https://github.com/OliverKovacs/wslrpc && cd wslrpc
npm i
sudo ./install.sh
```

Uninstall
```bash
# run in WSL
sudo ./uninstall.sh
cd .. && rm -rf wslrpc
```

### Config
In `./config.json`.

### Note:
Currently only Ubuntu and Kali are directly supported, but it also works with other distros if you configure it manually.

repository: OliverKovacs/wslrpc

repo_name: OliverKovacs/wslrpc


text:
# ReactiveSwiftCoreData

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

This library is a thin wrapper arround **CoreData** to stream changes from `NSManagedObjectContext`.

## Requirements
* Swift 4.1

## How to use

`ReactiveSwiftCoreData` adds `.reactive` extension on `NSManagedObjectContext`. This extensions observe changes in managed object context. There is no need for managed object context to be saved in order to propagate events in the signal.

**`managedObjectContext.reactive.observeContext().observeValues { changeEvent in ... }`**

Observes changes in the provided managed object context.

```
public struct CoreDataChangeEvent {
    public let inserted: Set<NSManagedObject>
    public let updated: Set<NSManagedObject>
    public let deleted: Set<NSManagedObject>
    public let refreshed: Set<NSManagedObject>
}
```

**`managedObjectContext.reactive.observe(object: managedObject).observeResult { result in ... }`**

Observe updates of provided object in current context. Reacts to all relationships changes as well. In case object is deleted stream will error `CoreDataObserverError.objectDeleted`.

**`managedObjectContext.reactive.observeResult(for: fetchRequest).observeResult { result in .. }`**

Every time objects are deleted or inserted in managed object context it will fetch again provided request.

## Installation

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

```ruby
pod 'ReactiveSwiftCoreData'
```

## License

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

repository: marshallxxx/ReactiveSwiftCoreData

repo_name: marshallxxx/ReactiveSwiftCoreData


text:
# Yalix

> One night, around 3am, I was watching an infomercial for a product
> claiming to restore men's hair. As I watched the story of one
> formerly-bald individual, I became overwhelmed with joy. "At last!",
> my brain said to itself, "This man has gotten the love and success
> he deserves! What an incredible product this is, giving hope to the
> hopeless!"
>
> Throughout the intervening years I've found myself wondering if I
> could somehow recreate the emotional abandon and appreciation for
> life induced by chronic sleep deprivation. The ultimate solution
> would be some kind of potion — a couple quaffs to unleash my inner
> Richard Simmons, but not for too long.

— _Clojure for the Brave and True_

Yalix is a **Y**et **a**nother **L**ISP **i**nterpreter **i**n **X**, where X
is a different programming language. The dialect it mostly
resembles is that of [Racket](http://racket-lang.org/) but borrows
ideas from [Clojure](http://clojure.org/) as well. Yalix is by far
less feature packed than both of the above; it is an experiment to
(a) learn about implementing parsers, interpreters, streams and macros,
and then (b) re-implementing those features in other computer
languages I am not particularly familiar with.

The long term aim of this project is to firstly build a featue rich
implementation in Python which is easy to read, and easy to extend.
The overriding intention is pedagogical rather than optimising for
performance. Secondly, to re-implement Yalix in a number of other
programming langugaes, including itself!

### Current Status

See the sub project directories for implementation specific details

## References

* http://www.ccs.neu.edu/home/matthias/BTLS/
* http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/
* http://courses.cs.washington.edu/courses/cse341/11sp/
* http://racket-lang.org/
* http://www.buildyourownlisp.com/

## (Y F) = (F (Y F))

![screencap](https://raw.github.com/rm-hull/yalix/master/doc/costanza.png)

> "... but what LISP is, is the fixed point of the process that says if I
> knew what LISP was, and substituted it in for eval and apply and so on,
> on the right hand side of all those recusion equations, then if it was
> a real good LISP, it was a real one, then the left hand side would also
> be LISP. So I made sense of that definition. Now, whether or not there's
> an answer, isn't so obvious. I can't attack that.

— _George Costanza on the nature of LISP._

## Contributing

You're more than welcome to pitch in, there are loads of interesting
features I'd like to implement (as well as a few bugs to squash) - take a
look at the TODO list and the references above.

If there's any you feel you'd specifically like to have a go at, create an
[issue](https://github.com/rm-hull/yallic/issues/new) and I'll back-fill it
with some background information to get you going, and it can then be used as
the discussion focus.

Fork the repo, create a feature branch and once the feature is complete, submit
a pull request. Also, please try and add some tests where practical (demo's and
examples even more so) and keep this README up-to-date, and make sure you've pulled
from origin master before doing a PR.

## License

The MIT License (MIT)

Copyright (c) 2014 Richard Hull

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

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

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

repository: rm-hull/yalix

repo_name: rm-hull/yalix


text:
# grunt-postcss
[![Build Status](https://travis-ci.org/nDmitry/grunt-postcss.png?branch=master)](https://travis-ci.org/nDmitry/grunt-postcss)
[![Dependency Status](https://david-dm.org/nDmitry/grunt-postcss.png)](https://david-dm.org/nDmitry/grunt-postcss)

> Apply several post-processors to your CSS using [PostCSS](https://github.com/postcss/postcss).

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

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-postcss --save-dev
```

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

```js
grunt.loadNpmTasks('grunt-postcss');
```

## Usage

```js
grunt.initConfig({
  postcss: {
    options: {
      map: true,
      processors: [
        require('autoprefixer-core')({browsers: 'last 1 version'}).postcss
        require('csswring').postcss
      ]
    },
    dist: {
      src: 'css/*.css'
    },
  },
});
```

The usage and options are similar with [grunt-autoprefixer](https://github.com/nDmitry/grunt-autoprefixer#options). The only new options is:

#### options.processors
Type: `Array`
Default value: `[]`

An array of PostCSS compatible post-processors.

## Why would I use this?

Unlike the traditional approach with separate plugins, grunt-postcss allows you to parse and save CSS only once applying all post-processors in memory and thus reducing your build time. PostCSS is also a simple tool for writing your own CSS post-processors.

repository: adwaydhillon/feedMe

repo_name: adwaydhillon/feedMe


text:
# Turing Pi Scripts
Miscellaneous scripts for my [Turing Pi](https://turingpi.com/) setup. Turn on and off all nodes with a command or power button and have a power LED.

> :warning: **WARNING**:The register which controls the power to each board is backed by an EEPROM. Don't set all bits in there to 0, otherwise you won't be able to boot and correct it. A fix is to set register 0xF4 to 1 which would send the writes to the shadow SRAM, instead of the EEPROM. A fix for this is to connect an external raspberry pi to the I2C External pins and reset the registers. |

| Script | Function |
| --- | --- |
| `turn-on-nodes.sh` | Turns all nodes on via the CMB |
| `turn-off-nodes.sh` | Turns off all nodes via the CMB |
| `turn-on-nodes.service` | systemd service file to run turn-on-nodes.sh at boot |
| `listen-for-shutdown.py` | Listen for when the power button is held for 2 seconds and turn off the Turing Pi |
| `listen-for-shutdown.service` | systemd service file to start listen-for-shutdown.py at boot |

## Notes
- The power LED will blink a few times when holding the power button down for two seconds. All worker nodes will turn off first and a normal shutdown node will be ran on the master node.
- The power LED will stay on until the master node shuts down completely.
- Once the power LED turns off, the power button can then be pressed to turn on the master node which will then turn on the worker nodes.

## Prerequisites
```bash
# turn-on-nodes.sh and turn-off-nodes.sh
$ sudo apt-get update
$ sudo apt-get install i2c-tools

# listen-for-shutdown.py
$ sudo apt-get install python3
$ sudo apt-get install python3-gpiozero
```

## Installation
On your master node:
```bash
$ cd ~
$ mkdir git
$ cd git
$ git clone https://github.com/nicholaswilde/turing-pi-scripts.git
$ cd turing-pi-scripts
$ chmod +x turn-on-nodes.sh
$ chmod +x turn-off-nodes.sh
$ chmod +x listen-for-shutdown.py
$ nano nodes.cfg
```
Edit the [I2C CMB registers](https://docs.turingpi.com/turing_pi/children/i2c_cluster_bus/#power-management) of the worker nodes in `nodes.cfg`.
```bash
# Node #1 (Master)
#0x02
# Node #2 (Worker 1)
0x04
# Node #3 (Worker 2)
0x08
# Node #4 (Worker 3)
0x10
# Node #5 (Worker 4)
0x80
# Node #6 (Worker 5)
0x40
# Node #7 (Worker 6)
0x20
```

Edit the `listen-for-shutdown.py` file and change the constants to your liking. Uncomment `PIN_NO_LED` if you have a power LED.
```python
...
# Power button GPIO pin number (GPIO, not actual)
PIN_NO_BUTTON = 18
# Power LED pin number (GPIO, not actual)
PIN_NO_LED = 17
# Button hold time (s)
HOLD_TIME = 2
# Sleep time between power LED blinks (s)
SLEEP_TIME = 0.5
# Path to turn-off-nodes.sh
SCRIPT_PATH='/home/pirate/git/turing-pi-scripts/turn-off-nodes.sh'
...
```
[Turn on the power LED connected to GPIO 17 at boot](https://www.raspberrypi.org/documentation/configuration/config-txt/gpio.md) when the master node is on.

```bash
#/boot/config.txt
...
# Set GPIO17 to be an output set to 1
gpio=17=op,dh
...
```

### Optional
You can also copy the scripts to the bin folder to easily run them from anywhere
```bash
$ sudo cp turn-on-nodes.sh /usr/bin/turn-on-nodes
$ sudo cp turn-off-nodes.sh /usr/bin/turn-off-nodes
$ sudo cp listen-for-shutdown.py /usr/bin/listen-for-shutdown
# Make the turing-pi-scripts
$ sudo mkdir /etc/turing-pi-scripts
# Copy the config file to the /etc/turing-pi-scripts/ directory
$ sudo cp nodes.cfg /etc/turing-pi-scripts/
```

### Enable at boot
Edit `turn-on-nodes.service` file with the installation location of the `turn-on-nodes.sh` script.
```bash
...
ExecStart=/usr/bin/sudo /bin/bash -lc '/home/pirate/git/turing-pi-scripts/turn-on-nodes.sh'
...
```
Edit `listen-for-shutdown.service` file with the installation location of the `listen-for-shutdown.py` script.
```bash
...
ExecStart=/usr/bin/python3 /home/pirate/git/turing-pi-scripts/listen-for-shutdown.py
ExecStop=pkill -f /home/pirate/git/turing-pi-scripts/listen-for-shutdown.py
WorkingDirectory=/home/pirate/git/turing-pi-scripts/
...
```
```bash
# Copy the file
sudo cp turn-on-nodes.service /etc/systemd/system/turn-on-nodes.service
sudo cp listen-for-shutdown.service /etc/systemd/system/listen-for-shutdown.service

# Change the permission of the files
$ sudo chmod 664 /etc/systemd/system/turn-on-nodes.service
$ sudo chmod 664 /etc/systemd/system/listen-for-shutdown.service

# Enable it at start
$ sudo systemctl daemon-reload
$ sudo systemctl enable /etc/systemd/system/turn-on-nodes.service
$ sudo systemctl enable /etc/systemd/system/listen-for-shutdown.service
```
## Test
On the master node:
```bash
# Initial Conditions: All nodes are on and in the ~/git/turing-pi-scripts/ directory.
$ sudo ./turn-off-nodes.sh
# All worker nodes should be off (activity lights should stop blinking).
# Turn on the worker nodes again.
$ sudo ./turn-on-nodes.sh
# Turn off the worker nodes again.
$ sudo ./turn-off-nodes.sh
# Shutdown the master node.
$ sudo shutdown now
# Master node should shut down after a while.
# Press the power button.
# The power LED should come on.
# The master node should power on.
# The worker nodes should also power on (activity lights start blinking).
# Hold the power button for two seconds.
# The power LED should blink a few times.
# Worker nodes should power down.
# Master node should power down after awhile.
# The power LED should turn off.
# Press the power button to turn on all the nodes.
```

## Usage
```bash
# Turn on all worker nodes
$ sudo ./turn-on-nodes.sh
# or
$ sudo turn-on-nodes

# Turn off all worker nodes
$ sudo ./turn-off-nodes.sh
# or
$ sudo turn-off-nodes

# Start listen-for-shutdown.py
$ sudo ./listen-for-shutdown.py
# or
$ sudo listen-for-shutdown
# Hold the power button for two seconds and wait for the power LED to blink
```

## Wiring Diagram

  Image created with Circuit Diagram

## Todo
- [ ] Verify that the node register values are valid.
- [ ] Create install and uninstall scripts and/or deb package.

## Credit
`listen-for-shutdown` is based off of [lihak's](https://github.com/lihak) [rpi-power-button](https://github.com/lihak/rpi-power-button)

## Author
The repository was created in 2020 by Nicholas Wilde.


text:
# AssemblyInformation

This tool displays interesting information for any .NET / Framework / Standard / Core assembly. It supports 32- and 64-Bit assemblies as well as 32- and 64-Bit windows systems.

The original idea and tool is based on this [CodePlex](https://archive.codeplex.com/?p=assemblyinformation) project. Thanks for that.\
My own version of this tool has (better) support for the new .NET types (Standard, Core, etc.) and still works when some dependencies are missing.

It currently supports the following information:
- Compilation mode (Debug/Release)
- Target framework
- Target processor
- Assembly full name
- Direct and recursive references
- ...and some more

The assembly (and it's references) you are viewing don't get blocked by this tool. You still can edit/move/delete that assemblies.

## Prerequisites
- [.NET Desktop Runtime 5.0](https://dotnet.microsoft.com/download/dotnet/5.0) - You might need both (x86 and x64) for full support

## How to use
- Download and unpack a release
- Then add an entry to your context menu (for _.exe_ and _.dll_ extension) by running _[Add Shell Extension.ps1](AssemblyInformation.Launcher/Add%20Shell%20Extension.ps1)_
- Right click an assembly and select _AssemblyInformation_

Alternatively you can drag and drop an assembly onto _AssemblyInformation.Launcher.exe_ directly.

To remove the shell extension again run _[Remove Shell Extension.ps1](AssemblyInformation.Launcher/Remove%20Shell%20Extension.ps1)_.

## Screenshots
![Screenshot 1](Screenshot_01.png)

![Screenshot 2](Screenshot_02.png)


text:
# Latex_Templates

To use these templates, make sure you run the following command to install tex

```
sudo apt-get install texlive-full
```

If you are on windows, you may want to use [Miktex](https://miktex.org/download)

repository: MarkKurzeja/Latex-Templates

repo_name: MarkKurzeja/Latex-Templates


text:
# gamer_news 🎮
![scrape-workflow-badge](https://github.com/wuwe1/gamer_news/workflows/Scrape%20latest%20data/badge.svg)

A game news aggregrator

![wx mini program](https://tva1.sinaimg.cn/large/0081Kckwly1gkhsg9hmucj3076076wff.jpg)

👆 scan the qr code the to the wechat miniprogram

👀 view the news on [git-history](https://github.githistory.xyz/wuwe1/gamer_news/blob/master/spider/items.jl)

📜 Currently supported site:
- https://indienova.com/channel/news
- https://www.gamersky.com/news/pc/zx/
- https://www.gcores.com/news
- http://www.gamelook.com.cn/page/2
- http://www.sfw.cn/game
- https://gnn.gamer.com.tw/
- https://gouhuo.qq.com/
- http://nga.cn/v/games/
- https://www.vgtime.com/topic/index.jhtml
- http://www.ign.xn--fiqs8s/

## How it works
`spider/` directory holds a scrapy script will extract the news on the sites above

`app/` directory holds a RESTful api for the news

github actions will run the scrapy script on `42 */4 * * *` (At minute 42 past every 4th hour)

## USAGE
- spider
    - `pip install scrapy`
    - `cd spider`
    - `chmod +x spider/run_spider.sh`
    - `./spider/run_spider.sh`

- app
    - `pip install uvicorn`
    - `cd app`
    - `uvicorn app.main:app --reload`


text:
---
layout: post
title: How To Configure Regional Settings For All Users In Live@edu
tags: [education, Microsoft Live@edu, Microsoft Office 365, Exchange Online, Outlook Live, Powershell]
comments: true
---
When students and teachers first log in to their Live@edu accounts they are presented with a screen asking them to select their regional settings. They'll only see this screen once; however, many administrators do not want to give their students (and teachers!) the choice to pick the wrong locale! In fact, if they pick the wrong language it might make it practically impossible for them to use without getting some help from IT. Therefore, the question begs: how can I configure regional settings for all my users so that they don’t have to choose?

Happily, the solution is fairly simple. All you need is a few lines of PowerShell...

Configure Regional Settings For All Users

It is possible, through Windows PowerShell to configure regional and language settings for individual mailboxes. It is also possible to apply this to every user. For example:

To set an individual user to English (UK), and GMT Standard Time

```powershell
Set-MailboxRegionalConfiguration -Language en-gb –TimeZone "GMT Standard Time"
```

To set all users in the tenant to English UK, and GMT Standard Time:

```powershell
Get-Mailbox –Resultsize unlimited | Set-MailboxRegionalConfiguration –Language en-gb –TimeZone "GMT Standard Time"
```

To retrieve settings for all users in the tenant:

```powershell
Get-Mailbox | Get-MailboxRegionalConfiguration
```

Depending on the number of users in the tenant this may take several minutes to process, and some warning messages may be displayed to inform you that you’ve exceeded your Throttling Policy budget; this is just a warning and the command will complete. Once these settings changes have been made users will not have to make these choices at first login, or at any subsequent login. Users will still have the option to manually change them through their Options panel at any time. Simple!

Users created after running this command will still get asked to choose; so it’s probably a good idea to run this every time you create a new batch of users to ensure the new users are set correctly.

Update: This process should also work for regular Exchange Online users (for example, in Office 365), since Live@edu used Exchange Online as well as Windows Live services.


text:
# Flutter Focus Widget

### 一个可以让FocusNode失去焦点的Widget

### A focusable and blurable widget of use the FocusNode.

- 当FocusWidget获得焦点后

    在FocusWidget区域外触发PointerDown事件

    会调用FocusNode.unfocus()并且触发FocusNode的listener

- When the FocusWidget had focus

    Tap this FocusWidget outside area

    Will call the FocusNode's unfocus method and trigger the FocusNode's listener

```dart
class _MyHomePageState extends State<MyHomePage> {
  final FocusNode _address = FocusNode(), _name = FocusNode();

  @override
  Widget build(BuildContext context) {
    final language = DemoLocalizations.of(context);
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      drawer: Drawer(
        child: SafeArea(
          child: ListView(
            padding: EdgeInsets.only(left: 10, right: 10),
            children: [
              FocusWidget.builder(
                context,
                (ctx, focusNode) => TextField(
                  focusNode: focusNode,
                  autofocus: true,
                  decoration: InputDecoration(
                    hintText: 'Input 1',
                    labelText: 'Input 1',
                  ),
                ),
              )
            ],
          ),
        ),
      ),
      body: SingleChildScrollView(
        padding: EdgeInsets.only(left: 10, right: 10),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Container(
              width: 100,
              child: FocusWidget(
                focusNode: _address,
                child: TextField(
                  focusNode: _address,
                  decoration: InputDecoration(
                      hintText: 'Input 2', labelText: 'Input 2'),
                ),
              ),
            ),
            FocusWidget(
              focusNode: _name,
              child: TextField(
                focusNode: _name,
                decoration: InputDecoration(
                    hintText: 'Input 3', labelText: 'Input 3'),
              ),
            ),
            SizedBox(
              height: 1000,
            ),
          ],
        ),
      ),
    );
  }
}
```

### 录屏 / Screen Recording

![gif](https://github.com/gzlock/images/blob/master/focus_widget/English_2.gif?raw=true)


text:
---
title: List of forms in your application design
sidebar: flexberry-designer_sidebar
keywords: Flexberry Designer, the structure of the application, all forms
summary:
toc: true
permalink: en/fd_structure_all_forms.html
lang: en
autotranslated: true
hash: bc05bc670b01741a9b37af2279e9b8a6e2673609dbab2d6e8f8e6f3e7b066499
---

## the Left "tree"

Visit the application structure on the left displays a tree listing all the data classes of the applications, as well as all of the list form and edit form bound to the appropriate data classes (nested nodes).

### Tools forms

Name control | name | Description
:------------|:------------| :------------
Remove | | Remove data class or form bound to the data class
Add the entity | | create a new data object
Add form edit | | Create the edit form for the data object
Add spickova the form | | create the list form for the object data
Edit | | edit the selected data class, list form or edit form
To open a list of all classes | | Jump to the list of data classes

## Right "tree"

Right on the page the tree is for editing the navigation structure (menu structure) of the design application. In this tree you can create menus of arbitrary nesting by grouping menu items into folders» «at various levels. The navigation items (not counting the» «folders, which are used to group elements) can be list form, form editing, or menu items that refer to an arbitrary URL.

### Tools navigation

Name control | name | Description
:------------|:------------| :------------
Add URL || Add the new navigation item (menu item) with reference to an arbitrary URL
Edit || edit the properties (title and description) selected navigation item
Remove || Remove the navigation item
Add a directory || Add new» «folders in the navigation structure
Move up/ move down || change the order of navigation controls (move up and down)
Save || Save navigation structure

gha_language: CSS


text:
# Project 1: Build a Personal Site
### by Fabio Derendinger

Personal Site project, part of the Udacity [Full Stack Web Developer
Nanodegree](https://www.udacity.com/course/full-stack-web-developer-nanodegree--nd004).

## Demo

For a demo, check out <https://fabioderendinger.github.io>

## What it is and does

The goal of the project was to build a personal portfolio website. Udacity provides its students a [design mockup](https://storage.googleapis.com/supplemental_media/udacityu/2655898586/design-mockup-portfolio.pdf) which should be replicated.

I decided to significantly enrich the design and content defined as minimal requirement by Udacity. To be able to also use the site as a personal blog I integrated Jekyll. The site structure has been copied from [Jekyll Now](https://github.com/barryclark/jekyll-now). The individual html, css and js files, however, are all custom made (except for the html files in the _includes folder).

## Project contents

In it's core, the project consists of the following files/folders:

* index.html - landing page of the portfolio site
* css folder - contains materialize framework files and custom css files (style.css & jekyll_style.css)
* js folder - contains materialize framework files and custom js files (functions.css & jekyll_functions.js)
* images folder - contains the images for the landing page
* blog folder - contains the index.html file that renders a page listing all blog posts
* _config.yml - parameter configuration for Jekyll
* _layouts folder - contains custom Jekyll layouts designed for my portfolio site
* _posts - conains all posts which have been published on my site
* _assets - contains images used in posts
* _includes - Jekyll snippets (from [Jekyll Now](https://github.com/barryclark/jekyll-now))

## How to add a new blog post

My personal portfolio site uses [Jekyll](https://jekyllrb.com/) to manage blog posts conveniently. To add a new blog post simply create a new md-file in the folder _posts and follow the naming convention "year-month-day-post-title.md".

Use markdown language to write the content you the blog post.

Once saved, the blog post will automatically be available under https://fabioderendinger.github.io/post-title.

## Extra Credit Description

The following features were implemented to gain an extra credit from Udacity:

* Richer design and content compared to the [design mockup](https://storage.googleapis.com/supplemental_media/udacityu/2655898586/design-mockup-portfolio.pdf) provided by Udacity.
* Integration of Jekyll to handle blogging

## Miscellaneous

This README document is based on a template suggested by PhilipCoach in this
Udacity forum [post](https://discussions.udacity.com/t/readme-files-in-project-1/23524).

## Credits

- [Jekyll Now](https://github.com/barryclark/jekyll-now)


text:
# Tasks

## Features

- list type
- lazy sequence builder
- hash type
- modules - رزمة (rezmuh, .rez)
  - dylan style modules with external file descriptor
  - add module repository to runtime class
  - add module parser to runtime class
  - replace dictionary with modules
  - should dictionary/module be c'tor arg for functions et al?
- regex type
- runtime image storage format
- standalone runtime mode
- repl server & client
- type and predicate based method dispatch
- pre/post method functions, next-method
- user types: record, algebraic, union, protocol
  - http://blog.lab49.com/archives/3011
- user types w/ versioning, persistence, immutability, ref [coherence] (http://coherence-lang.org/EmergingLangs.pdf)
- wiki
- web repl w/ ANTLR JavaScript target & jquery.console, jquery
  - ref: [amber smalltalk] (http://amber-lang.net/)
  - ref: [try-clojure] (https://github.com/Raynes/tryclojure)
- java interop
- bytecode compiler
- static type support
- macros
- MOP
- IntelliJ plugin
- eclipse plugin
- MDE: XMI, OCF support
- live object graph across associations for calculated slots
- concurrency model (STM)
- atom optimizer (atomizer)
- rundjinn tool for shebang scripts
- Djinn to JavaScript compiler
  - Djinn on V8?
- standalone LLVM port with C FFI
- ANTLR Djinn target
- gather additional features from dylan, cat, factor, joy, clojure, plot, lisp

## Enhancements

- model:
  - do functions need to explicitly hold on to inner function refs? they will be in the dictionary...
  - add inputs and outputs to action class
  - symbols as messages?
  - tags should be implemented as properties in the metamodel
  - refactor and simplify metamodel
  - modules should have protocols and versioned dependency system
  - is there a use for ocl pre and post conditions on synthetic slots? normal slots?
  - refactor type atoms into single simple type atom and create type classes.  combine decimal and int into number ala javascript
- primitives:
  - add global names for system information (e.g. versions, states, etc.) and meta-name listing all available names
  - defun should not re-create existing inner functions if the parent context is a function
  - full numeric intrinsics primitive impls
  - remove impls for pow, etc, wait for jdk iterop and build on calls to those
  - review for moving unnecessary impls to prelude
  - dup should not clone
  - seq protocol: cons, nth, length, remove, subseq
  - implement Lock-free extensible hash tables back by split-ordered lists, compare with UnifiedMap?
- prelude:
  - reimplement declaration, method, function syntax as macros
- repl:
  - file loading
  - fatal error in parsing should not leave partial definitions, all or nothing
  - restarts, fix and continue
  - refactor commands into separate classes
  - apache commons cli or http://code.google.com/p/java-cli-api/
  - apache commons launcher
- types:
  - type declaration parser support for type variable qualifiers (partially implemented)
  - representing type variables in the model and metamodel
  - what does nth do if the index is out-of-bounds?
- syntax:
  - more syntax tests for tags, etc
  - exceptions?
  - escape sequences in strings
  - placeholder values inside lambdas
- parser:
  - split type and property grammars into separate files
  - source file name is stored with meta object
  - ast to markdown transformer with string template
  - model to source transformer
  - warning system
  - warning when a declaration shadows a function name
  - immediate statements should be allowed in files, ala lisp
  - utf-8 identifiers
    - using AntlrInputStream, charVocabulary grammar option, '\u00c0' .. '\uFEFC' | <ascii range>
  - allow method definition to be after function definitions, create placeholder methods and replace them later when actual definition is found
  - fix function_type_declaration to allow functions with multiple inputs and outputs, then correct definition of reduce to reduce :: [list<a> (a b -> a)] -> [a]
  - mapping of type declaration literals to builtin types ("bool" -> BooleanAtom)
  - track sealed methods in method builder and seal at the end of a translation unit
  - logging

## Examples

- http://blog.carbonfive.com/2011/11/17/explorations-in-go-solving-the-instagram-engineering-challenge/
- http://en.wikipedia.org/wiki/Forth_(programming_language)#A_complete_RC4_cipher_program
- http://www.reddit.com/r/Python/comments/mdoro/whats_your_shortest_fizzbuzz/
- http://rosettacode.org/wiki/Rosetta_Code
- http://www.franz.com/support/tech_corner/usgs-011207.lhtml

## Other languages

- Cat - http://www.cat-language.com/
- Factor - http://factorcode.org/
- Joy - http://www.latrobe.edu.au/phimvt/joy.html
- Otuo - http://www.acooke.org/otuto.html
- Niue - http://vmathew.in/niue/index.html
- FIF - http://www.mailsend-online.com/blog/fif-isnt-forth.html
- Clojure - http://clojure.org/
- PLOT - http://users.rcn.com/david-moon/PLOT/
- Julia - http://julialang.org/manual/

repository: kevinbirch/Djinn

repo_name: kevinbirch/Djinn


text:
# [Simple Fun #40: Timed Reading](https://www.codewars.com/kata/simple-fun-number-40-timed-reading "https://www.codewars.com/kata/588817db5fb13af14a000020")

 Timed Reading is an educational tool used in many schools to improve and advance reading skills. A young elementary student has just finished his very first timed reading exercise. Unfortunately he's not a very good reader yet, so whenever he encountered a word longer than maxLength, he simply skipped it and read on.

 Help the teacher figure out how many words the boy has read by calculating the number of words in the text he has read, no longer than maxLength.

 Formally, a word is a substring consisting of English letters, such that characters to the left of the leftmost letter and to the right of the rightmost letter are not letters.

## Example

 For `maxLength = 4` and `text = "The Fox asked the stork, 'How is the soup?'"`, the output should be `7`

 The boy has read the following words: `"The", "Fox", "the", "How", "is", "the", "soup".`

## Input/Output

 - `[input]` integer `maxLength`

    A positive integer, the maximum length of the word the boy can read.

    Constraints: `1 ? maxLength ? 10.`

 - `[input]` string `text`

    A non-empty string of English letters and punctuation marks.

 - `[output]` an integer

    The number of words the boy has read.

repository: ParanoidUser/codewars-handbook

repo_name: ParanoidUser/codewars-handbook


text:
---
title: |
    246. The Lily of the Valley - Christ in Song
metadata:
    description: |
        Christ in Song 246. The Lily of the Valley. I've found a friend in Jesus, He's everything to me, He's the fairest of ten thousand to my soul; The Lily of the Valley, in him alone I see All I need to cleanse and make me fully whole. In sorrow he's my comfort, in trouble he's my stay, He tells me ev'ry care on him to roll. He's the Lily of the Valley, the bright and Morning Star; He's the fairest of ten thousand to my soul!
    keywords:  |
        Christ in Song, adventhymnals, advent hymnals, The Lily of the Valley, I've found a friend in Jesus, He's ev'rything to me.
    author: Brian Onang'o
---

#### Advent Hymnals
## 246. THE LILY OF THE VALLEY
####  Christ in Song,

```txt
1.
I've found a friend in Jesus, He's everything to me,
He's the fairest of ten thousand to my soul;
The Lily of the Valley, in him alone I see
All I need to cleanse and make me fully whole.
In sorrow he's my comfort, in trouble he's my stay,
He tells me ev'ry care on him to roll.
He's the Lily of the Valley, the bright and Morning Star;
He's the fairest of ten thousand to my soul!

2.
He all my grief has taken, and all my sorrows borne;
In temptation he's my strong and mighty tow'r;
I've all for him forsaken, and all my idols torn
From my heart, and now he keeps me by his pow'r.
Tho' all the world forsake me, and Satan tempts me sore,
Thro' Jesus I shall safely reach the goal.
He's the Lily of the Valley, the bright and morning Star;
He's the fairest of ten thousand to my soul!

3.
He'll never, never leave me, nor yet forsake me here,
While I love by faith and do his blessed will;
A wall of fire about me, I've nothing now to fear;
With his manna he my hungry soul doth fill.
Then sweeping up to glory, I'll see his blessed face,
Where rivers of delight shall ever roll.
He's the Lily of the Valley, the bright and Morning Star;
He's the fairest of ten thousand to my soul!

```

- |   -  |
-------------|------------|
Title | The Lily of the Valley |
Key | F Major |
Titles | undefined |
First Line | I've found a friend in Jesus, He's ev'rything to me |
Author | C. W. Fry
Year | 1908
Composer| undefined |
Hymnal|  - |
Tune| I've found a friend in Jesus, He's ev'rything to me |
Metrical pattern | |
# Stanzas |  |
Chorus |  |
Chorus Type |  |
Subjects | Christ: Christ Precious; Christ: Praise to Christ |
Texts | undefined |
Print Texts |
Scripture Song |  |

repository: GospelSounders/adventhymnals

repo_name: GospelSounders/adventhymnals