text:
## Synopsis

A Web Application Demo Showcasing the Following:
* Simple Signup Form with Validation
    * Validate and sanitize inputs
    * bcrypt is used for software hashing
    * to easily deploy for demo purposes I have used NeDB for no install DB which is based on MongoDB query sets

## What is this made up of?

This is Web Application is is made up of the following stack:

#### BACKEND
+ NodeJS for the backend
+ ExpressJS for serving HTML and REST API
+ Socket.io for real-time client server communication

#### FRONTEND
+ HTML
+ jQuery / JS
+ Socket io for client
+ Material Design Lite for UI framework

#### Why did you code this way

Fo the frontend the code in a way that it is untangled and can be checked by the reviewer in a easy manner like minimal and inline CSS.

## Installation

+ `git clone https://github.com/jmdisuanco/2FA-DEMO.git`
+ `cd 2FA-DEMO`
+  `'secret': 'PLEASE',
    'callbackURL': 'https://[CHANGE_THIS].ngrok.io/onetouch/endpoint',
    'authyApiKey': '[CHANGE_THIS]',
    'port': 8080`
+ Login to https://dashboard.authy.com and change the callbackURL under settings
+ `nodemon server`
+ run `ngrok http 8080` on another terminal

## Contributors

John Martin R. Disuanco

## License
MIT


text:
# dockymfik
A complete Symfony-ready development stack using Docker, PHP (with redis support and composer), Node (and Yarn), Let's Encrypt (SSL) and Traefik v2

## Requirements
- Docker
- docker-compose

## Installation
You must install docker first to be able to use this stack. To install it, please refer to this page: https://docs.docker.com/install/

Firstly, please copy/paste the `.env.dist` and edit it with the correct information.
```bash
cp .env.dist .env
```

Out-of-box it's configured to be able to run php application and especially Symfony app. Yet feel free to edit the docker-compose files in `docker-network` and `docker-app` folders to your needs.

Then to setup the stack, run this command:
```bash
sh setup.sh
```

It'll create the docker-network and build the containers.

## Usage

To start the containers, run the following command (in bash it'll work better at the moment):
```bash
sh start.sh
```

To stop the containers, run the following command:
```bash
sh stop.sh
```

## Note
Let's Encrypt is pre-configured to generate a self-signed SSL certificate. Feel free to edit the `docker-compose` of the `docker-network` folder to change this behaviour.

This setup may be used in production (but it's not recommend) if you modify docker-compose files (especially in docker-network folder to disable the Traefik dashboard and tune some settings)

license: MIT

repository: Anthodev/dockymfik

branch_name: refs/heads/develop

extension: md

gha_language: Shell

gha_license_id: MIT

license_type: permissive

repo_name: Anthodev/dockymfik


text:
---
layout: element
tab: elements
subtab: element-progress
category: Information
title: Progress
description: A block element to show completion, fullness, and other ratios
source: https://github.com/milesmcc/a17t/blob/master/src/information/progress.css
selectors:
  - .progress
features:
  - Tones
display: Block
examples:
  - "<progress class='progress' value='75' max='100'>75%</progress>"
variables:
  - name: --progress-height
    type: size
    description: sets height
  - name: --progress-background-color
    type: color
    default: Gray 300
    description: sets background color (unfilled portion)
  - name: --color-core
    type: color
    description: sets fill color
---

# Overview

It's a relatively simple progress bar, intended to be applied to an HTML `<progress>` element. At its core, a progress bar is a way to visualize a ratio.

# Considerations

**Color** --- The progress bar uses the `--color-core`, which is the 'pure' variant of the current section color. Don't expect the progress bar to perfectly match the text surrounding it. (If it did, the progress bar would probably look too dark.)

**Indeterminate values** --- A future version of a17t will include support for indeterminate progress bars. For now, consider using a [loading spinner](/utils/loading).

# Variants

Progress bars have full tone support.

{% capture example %}
{% for tone in site.tones %}
<progress class="progress ~{{tone}} mb-4" value="75" max="100">75%</progress>
{% endfor %}
{% endcapture %}
{% include example.html code=example %}

# Accessibility

{% include accessibility_defaults.html %}

# Examples

{% capture example %}

Categories

Design Architecture New York Urbanism

{% endcapture %}
{% include example.html code=example %}

{% include todo_more.html %}

branch_name: refs/heads/master


text:
# Readme

Please see https://en.wikipedia.org/wiki/Web_of_Things and https://en.wikipedia.org/wiki/Thing_Description

## How to use GitHub with Wikipedia

Until we find a streamlined solution, follow these steps to contribute and review the content:
* Open a Markdown file of this directory.
* This is not a real Markdown file but a copy paste of the source of the page which is in a custom format in Wikipedia.
* To view it in Wikipedia style, open any editable Wikipedia page (like [Web of Things](https://en.wikipedia.org/wiki/Web_of_Things)), click edit source and copy paste the contents of this Markdown file.
* Then click (publish and then) preview
* You should be redirected to a page that looks like Wikipedia.
* **Please** do not publish the changes without discussing with the group through GitHub issues or weekly Web meetings

branch_name: refs/heads/main

gha_language: HTML

gha_license_id: NOASSERTION


text:
---
layout: post
title: CS6476 Computer Vision
---

[**Course Link**](https://www.omscs.gatech.edu/cs-6476-computer-vision)

Firstly, this course is very intense to include many topics in one semester. Especially, the weekly assignments are all hard problems, which would take majority of the study time. The ideal way is to go through all materials before the beginning of semester.

Eventually, I scored 89.27% for this course, almost a highest B one can get. I don't really care about getting straight As, but this is a bit unfortunate since I was only 0.7% away.

The big lesson learnt is that, I should trust reviews and experiences. I've been warned multiple times  from all channels that CNN project is a monster, but I still went with it since I thought I knew it well even before this course. But the reality is different. The final project is just so demanding and my past CNN experience is almost irrelevant. If I chose EAR or MHI, it would be definitely a much easier one.

[Intro & Syllabus](https://docs.google.com/spreadsheets/d/e/2PACX-1vQckHi5M1vc_QtjSAJzzGFzcOCDxsQuB-baJPr8uDhdhHvx5Hoihbb1s4X4pIEwb5F1tr-FimvlH4Yo/pubhtml)

Fortunately, I have a similar OCR project to do this semester, so some of the methods I do apply to my work. This could be the best case scenario for a part-time Master.


text:
# django_empathy_laboratory
Empathy Lab "Lab Log" made with Django.
It is designed to be used with https://github.com/raylab/epoc_harvester

----

This web application creates an online lablog, where users can browse available experiments, manage their accounts and create new records.

The main features that have currently been implemented are:

* There are models for experiments, records, stimulate, feedback and subjects.
* Users can view list and detail information for experiments and subjects.
* Admin users can create and manage models. The admin has been optimized (the basic registration is present in admin.py, but commented out).

# EmpathyLab

Installation and running on developer's machine
-----------------------------------------------

1. Instal `postgresql-devel` and `python3-devel` packages if you are using Fedora, or `postgresql-dev` and `python3-dev` on Ubuntu:
    ```sh
    sudo dnf install postgresql-devel python3-devel
    ```
1. Clone repository:
    ```sh
    git clone https://github.com/raylab/EmpathyLab.git
    ```
1. Go to source root:
    ```sh
    cd EmpathyLab
    ```
1. Create virtualenv for dependencies:
    ```sh
    python3 -m venv .venv
    ```
1. Activate virtualenv in your shell:
    ```sh
    source .venv/bin/activate
    ```
1. Install requirements using `pip`:
    ```sh
    pip install -r ./requirements.txt
    ```
1. Create database schema:
    ```sh
    ./manage.py migrate
    ```
1. Collect static files:
    ```sh
    ./manage.py collectstatic
    ```
1. Create superuser:
    ```sh
    ./manage.py createsuperuser
    ```
1. Run `redis` using for example `docker`:
    ```sh
    docker pull redis
    docker run --rm -p<IP_ADDRESS>:6379:6379 --name some-redis -d redis
    ```
1. Run application:
    ```sh
    ./manage.py runserver
    ```

repository: raylab/EmpathyLab

gha_language: JavaScript

repo_name: raylab/EmpathyLab


text:
Information to help new project get started.

# Welcome to IBMStreams

As a new project, here are a few resources to help you get started:

1.  To add content, refer to the [IBM Streams repository guidelines](https://github.com/IBMStreams/administration/wiki/IBMStreams-repository-guidelines)
2.  To create a website, refer to the page: [Creating a web page for your toolkit](https://github.com/IBMStreams/administration/wiki/Creating-a-web-page-for-your-toolkit)
3.  Understand the project [incubation process](https://github.com/IBMStreams/administration/wiki/Project-Incubation-Process).
4.  Before a release, understand the suggested [versioning guildelines](https://github.com/IBMStreams/administration/wiki/Toolkit-Versions) and [release process](https://github.com/IBMStreams/administration/wiki/On-Demand-Release-Process).

gha_language: Java


text:
blueprint-gradle-plugin
=========
Gradle port of apache blueprint-maven-plugin
http://aries.apache.org/modules/blueprint-maven-plugin.html

Options are mostly the same as in original

### Improvements
- Faster plugin execution, using [ClassGraph](https://github.com/classgraph/classgraph)
- Support for Camel
- Automatically add all required imports to MANIFEST, thanks to [Gradle OSGi plugin](https://docs.gradle.org/current/userguide/osgi_plugin.html)
- Can scan packages outside of the bundle (from runtime dependencies)

### Tasks

| Name | Description | Dependency |
| ---- | ----------- | --------- |
| blueprintGenerate | Generate blueprint files from annotations | classes depends on blueprintGenerate |

## Usage

To use this plugin, you must
- modify your buildscript to have dependencies to the plugin
- apply the plugin

### Applying the plugin

    buildscript {
      repositories {
        maven {
          url "https://plugins.gradle.org/m2/"
        }
      }
      dependencies {
        classpath "gradle.plugin.info.globalbus:blueprint-gradle-plugin:0.1.0"
      }
    }
    apply plugin: "info.globalbus.blueprint-gradle"

### Plugin options

| Option | Default value | Description |
| ------ | ------------- | ----------- |
| scanPaths | null | Additional paths to search annotations. Main scan path will be resolved from compiled sources of the bundle |
| namespaces | null | Which extension namespaces should the plugin support |
| generatedFileName | "autowire.xml" | Name of file to write |
| defaultActivation | null | Lazy or Eager type of blueprint activation (eager is blueprint default, if not specified) |
| generatedDir | "OSGI-INF/blueprint/" | Base directory to write into (relative to ${buildDir}/generatedsources/) |
| customParameters | empty Map<String,String> | Specifies additional parameters which could be used in legacy extensions (deprecated) |
| customOptions | null | Additional options to configure extensions. Mostly used by Camel Support (incubating) |

### Camel Support (incubating)
Currently, if customOptions.contextId was set, the CamelContext definition will be added to blueprint file.
If any class extending RouteBuilder can be found in scanPaths, the <package> element will be added to the CamelContext.
You can provide additional property resolvers to be used by [Camel PropertyPlaceholder](http://camel.apache.org/using-propertyplaceholder.html)
BlueprintCamelContext will be available to inject in any place (via contextEnricher).

	blueprintGenerate {
		settings {
			customOptions = [
			    contextId : 'context-' + project.name
			    properties: [id: 'service-properties', pid: project.name.replace('-', '.'), defaults: [version: project.version]]
			]
		}
	}

repository: globalbus/blueprint-gradle-plugin

repo_name: globalbus/blueprint-gradle-plugin


text:
News Review
This is an application that will help someone list and preview news articles from various sources.

BY
Eric Nshimiyimana

Description
This is an application that will help someone list and preview news articles from various sources.

User Stories
As a user I would like:

would like to see various news sources on the homepage of the application
would also want to select a news source and see all news articles from the selected news source in the application
would want to see the image, description and the time a news article was created.
would want to click on an article and read the full article on the source website.
Technologies Used
Python3.8

Known Bugs
There are no known bugs at the moment
Contact and Support
In case you have any issue on this project feel free to reach out to me (nericmpc@gmail.com). Also feel free to make contribtion to the code.

The application requires the following installations to operate
python3.8
pip
License
MIT licence copyright(c) 2021 Eric Nshimiyimana


text:
Installation
========================

This repository contains a folder named [`Rubrik`](https://github.com/rubrikinc/PowerShell-Module/tree/master/Rubrik). The folder needs to be installed into one of your PowerShell Module Paths using one of the installation methods outlined in the next section. To see the full list of available PowerShell Module paths, use ``$env:PSModulePath.split(';')`` in a PowerShell console.

Common PowerShell module paths include:

1.  All Users: ``%ProgramFiles%\WindowsPowerShell\Modules\``
1. OneDrive: ``$env:OneDrive\Documents\WindowsPowerShell\Modules\``

Option 1: PowerShell Gallery (Recommended)
------------------------

1. Ensure you have the [Windows Management Framework 5.0](https://www.microsoft.com/en-us/download/details.aspx?id=50395) or greater installed.
1. Open a Powershell console with the *Run as Administrator* option.
1. Run ``Set-ExecutionPolicy`` using the parameter *RemoteSigned* or *Bypass*.
1. Run ``Install-Module -Name Rubrik -Scope CurrentUser`` to download the module from the PowerShell Gallery. Note that the first time you install from the remote repository it may ask you to first trust the repository.

Option 2: Installer Script
------------------------

1. Download the [`master branch`](https://github.com/rubrikinc/PowerShell-Module) to your workstation.
1. Open a Powershell console with the *Run as Administrator* option.
1. Run ``Set-ExecutionPolicy`` using the parameter *RemoteSigned* or *Bypass*.
1. Run the ``Install-Rubrik.ps1`` script in the root of this repository and follow the prompts to install, upgrade, or delete your Rubrik Module contents.

Option 3: Manual Installation
------------------------

1. Download the [`master branch`](https://github.com/rubrikinc/PowerShell-Module) to your workstation.
1. Copy the contents of the *Rubrik* folder onto your workstation into the desired PowerShell Module path.
1. Open a Powershell console with the *Run as Administrator* option.
1. Run ``Set-ExecutionPolicy`` using the parameter *RemoteSigned* or *Bypass*.

Once installation is complete, you can validate that the module exists by running ``Get-Module -ListAvailable Rubrik``.

Verification
------------------------

PowerShell will create a folder for each new version of any module you install. It's a good idea to check and see what version(s) you have installed and running in the session. To begin, let's see what versions of the Rubrik Module are installed:

``Get-Module -ListAvailable Rubrik``

The ``-ListAvailable`` switch will pull up all installed versions from any path found in ``$env:PSModulePath``. Check to make sure the version you wanted is installed. You can safely remove old versions, if desired.

To see which version is currently loaded, use:

``Get-Module Rubrik``

If nothing is returned, you need to first load the module by using:

``Import-Module Rubrik``

If you wish to load a specific version, use:

``Import-Module Rubrik -RequiredVersion #.#.#.#``

Where "#.#.#.#" represents the version number.

repository: gabennett/rubrik-sdk-for-powershell

repo_name: gabennett/rubrik-sdk-for-powershell


text:
---
layout: page
title: Lean Prover Zulip Chat Archive
permalink: archive/116395maths/17888CoercionsNZQRC.html
---

## [maths](index.html)
### [Coercions N->Z->Q->R->C](17888CoercionsNZQRC.html)

#### [Kevin Buzzard (Aug 03 2018 at 18:41)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130849802):
My students want to move freely between these five basic objects, sometimes because they have made poor design decisions but sometimes for genuine reasons. I figured I'd try to get to the bottom of why they were having problems.

```lean
import data.complex.basic

definition has_coe_NZ : has_coe ℕ ℤ := by apply_instance
definition has_coe_NQ : has_coe ℕ ℚ := by apply_instance
definition has_coe_NR : has_coe ℕ ℝ := by apply_instance
definition has_coe_NC : has_coe ℕ ℂ := by apply_instance
definition has_coe_ZQ : has_coe ℤ ℚ := by apply_instance
definition has_coe_ZR : has_coe ℤ ℝ := by apply_instance
definition has_coe_ZC : has_coe ℤ ℂ := by apply_instance
-- definition has_coe_QR : has_coe ℚ ℝ := by apply_instance -- fails
noncomputable definition has_coe_QR : has_coe ℚ ℝ := by apply_instance
-- definition has_coe_QC : has_coe ℚ ℂ := by apply_instance -- fails
noncomputable definition has_coe_QC : has_coe ℚ ℂ := by apply_instance
definition has_coe_RC : has_coe ℝ ℂ := by apply_instance

definition coe_NZ : ℕ → ℤ := has_coe_NZ.coe
definition coe_NQ : ℕ → ℚ := has_coe_NQ.coe
definition coe_NR : ℕ → ℝ := has_coe_NR.coe
definition coe_NC : ℕ → ℂ := has_coe_NC.coe
definition coe_ZQ : ℤ → ℚ := has_coe_ZQ.coe
definition coe_ZR : ℤ → ℝ := has_coe_ZR.coe
definition coe_ZC : ℤ → ℂ := has_coe_ZC.coe
noncomputable definition coe_QR : ℚ → ℝ := has_coe_QR.coe
noncomputable definition coe_QC : ℚ → ℂ := has_coe_QC.coe
definition coe_RC : ℝ → ℂ := has_coe_RC.coe

-- The ten theorems below are what I would like to access easily in Lean.
-- I don't know what to call them; the current names are just placeholders.

-- N to Z is never a problem
theorem NZQ (x : ℕ) : coe_ZQ (coe_NZ x) = coe_NQ x := rfl
theorem NZR (x : ℕ) : coe_ZR (coe_NZ x) = coe_NR x := rfl
theorem NZC (x : ℕ) : coe_ZC (coe_NZ x) = coe_NC x := rfl

-- the problems start now
theorem ZQR (x : ℤ) : coe_QR (coe_ZQ x) = coe_ZR x := sorry -- simp fails
theorem QRC (x : ℚ) : coe_RC (coe_QR x) = coe_QC x := sorry -- simp fails
theorem ZRC (x : ℤ) : coe_RC (coe_ZR x) = coe_ZC x := sorry -- simp fails

theorem NQR (x : ℕ) : coe_QR (coe_NQ x) = coe_NR x := by rw [←NZQ,ZQR,←NZR]
theorem ZQC (x : ℤ) : coe_QC (coe_ZQ x) = coe_ZC x := by rw [←QRC,←ZRC,←ZQR]
theorem NQC (x : ℕ) : coe_QC (coe_NQ x) = coe_NC x := by rw [←NZC,←NZQ,←ZQC]
theorem NRC (x : ℕ) : coe_RC (coe_NR x) = coe_NC x := by rw [←NQC,←QRC,←NQR]

-- cool stuff my stuents constantly want to be able to do
example (x : ℤ) : ((x : ℚ) : ℝ) = x := ZQR x
example (x : ℤ) : let (y : ℚ) := ↑x in let (z : ℝ) := ↑y in z = ↑x := ZQR x

```

Q1) Is there a good reason for the noncomputable coercions being noncomputable?

Q2) How do I prove the sorried coercion theorems?

Q3) What are the correct names for these theorems that enable me to cancel `↑↑` in these specific cases?

#### [Gabriel Ebner (Aug 03 2018 at 19:05)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130850810):
You need to use the right syntax, then everything works out of the box :smile:
```lean
theorem ZQR (x : ℤ) : ((x : ℚ) : ℝ) = (x : ℝ) := by simp
theorem QRC (x : ℚ) : ((x : ℝ) : ℂ) = (x : ℂ) := by simp
theorem ZRC (x : ℤ) : ((x : ℝ) : ℂ) = (x : ℂ) := by simp
```

#### [Gabriel Ebner (Aug 03 2018 at 19:07)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130850898):
You can use `set_option trace.simplify.rewrite true` to find the corresponding lemmas.

#### [Kevin Buzzard (Aug 03 2018 at 19:19)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130851433):
Oh many thanks Gabriel! I think I can take it from here

#### [Chris Hughes (Aug 03 2018 at 19:41)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130852441):
Q - > R is noncomputable, I'm guessing because it's defined to any field using division and the integer coercion and division is noncomputable on the reals. There is a computable function Q->R, the constant sequence, but that would be less general than the current Q coercion, and computable reals are useless anyway.

#### [Kevin Buzzard (Aug 04 2018 at 10:18)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882150):
"computable reals are useless anyway" -- maybe to you. But to a beginner, I think

```lean
def x : ℝ := 1/2
/-
definition 'x' is noncomputable, it depends on 'real.division_ring'
-/

```

is very confusing. What's so noncomputable about 1/2?

#### [Kenny Lau (Aug 04 2018 at 10:19)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882160):
I hear they have a computable division by positive numbers

#### [Mario Carneiro (Aug 04 2018 at 10:20)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882206):
there is a manual coercion from Q if you really care about defining 1/2 computably, but the point is that it's not the object but the way it is defined that makes it noncomputable

#### [Kevin Buzzard (Aug 04 2018 at 10:20)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882208):
The default coercion from nat to int isn't the generic one from nat to any semiring, it's the constructor, and my understanding was that this decision was made for efficiency reasons.

#### [Kevin Buzzard (Aug 04 2018 at 10:21)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882217):
Is there a similar argument saying that the default coercion from Q to R should be the one that's staring you in the face rather than the generic one?

#### [Kevin Buzzard (Aug 04 2018 at 10:21)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882218):
i.e. the constant series

#### [Kevin Buzzard (Aug 04 2018 at 10:21)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882221):
These are implementation issues I guess, which I of course know nothing about in practice

#### [Mario Carneiro (Aug 04 2018 at 10:22)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882261):
Short answer yes

#### [Mario Carneiro (Aug 04 2018 at 10:23)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882268):
But this road leads to the same confusion as why `int.coe_nat_*` and `nat.cast_*` have parallel but apparently identical statements

#### [Mario Carneiro (Aug 04 2018 at 10:24)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882313):
look ma, no `noncomputable`
```
import data.real.basic
def one_half : ℝ := real.of_rat (1/2)
theorem one_half_eq : one_half = 1/2 := by simp [one_half]
```

#### [Kevin Buzzard (Aug 04 2018 at 10:28)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882432):
```quote
But this road leads to the same confusion as why `int.coe_nat_*` and `nat.cast_*` have parallel but apparently identical statements
```
Right. And as you know I've been thinking about this recently (I'm trying to write some undergraduate example sheets which look like maths but are actually not hard to do in Lean for a beginner). A decision was made to not use the generic coercion, this then causes some issues like `int.coe_nat...` v `nat.cast...`, these are solved by the devs, the right simp lemmas are proved, people like me learn (in my case, yesterday) that if you use `\u` then everything should be fine, and then we move on. The devs could do the same for Q -> R, right? Chris seems to think there's no point because who cares about computable reals, but I'm suggesting that there might be a point which has something to do with efficiency somehow.

#### [Mario Carneiro (Aug 04 2018 at 10:29)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882438):
> this decision was made for efficiency reasons

Actually it's the opposite. Efficiency would dictate using `real.of_rat` because it has the more natural implementation, and is exponentially faster if you actually run it. The decision was made for uniformity of the library - in the lean 2 library we had all 10 coercions N->Z->Q->R->C and 10 sets of lemmas about them (plus some extras for the 15 ways to combine them), while the `nat.cast` approach requires only 4 coercions and sets of lemmas

#### [Kevin Buzzard (Aug 04 2018 at 10:31)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882490):
```lean
def one_half : ℝ := real.of_rat (1/2)
theorem one_half_eq : one_half = 1/2 := by simp [one_half]

noncomputable def real_half : ℝ := 1 / 2

example : one_half = real_half := by simp [one_half] -- fails
```
aargh.  It's not worth the digression for newbies

#### [Kevin Buzzard (Aug 04 2018 at 10:32)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882497):
Oh that's a good idea.

#### [Mario Carneiro (Aug 04 2018 at 10:32)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882536):
you have to unfold both

#### [Kevin Buzzard (Aug 04 2018 at 10:33)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882544):
```quote
you have to unfold both
```
I know that `rw` won't unfold. `simp` is the same? If I had to simplify something, I think I'd be tempted to start unfolding right at the start.

#### [Mario Carneiro (Aug 04 2018 at 10:34)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882591):
again, you should remember gabriel's advice from yesterday: `simp` cares about how you write things, so if you hide something behind a definition you can break some `simp` proofs

#### [Kevin Buzzard (Aug 04 2018 at 10:34)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882594):
yes exactly.

#### [Mario Carneiro (Aug 04 2018 at 10:34)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882595):
`simp` will only unfold things you tell it to

#### [Kevin Buzzard (Aug 04 2018 at 10:34)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882598):
I feel like I really understand how to use `rw` now but I'm still getting the hang of `simp`. There is an art to all these things.

#### [Kevin Buzzard (Aug 04 2018 at 10:36)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882643):
I don't want to work with reals at all, it's just that the 250 people in front of me in October are all familiar with them (at some level -- at some other level they don't have a clue what they are, and don't have a clue that they don't know, but I don't mean that; I mean they're not scared of them). So it's very natural to use them whenever I want a random big set. They show up on the first example sheet. I've been looking back at my work from last October when I was working on my own example sheets. It took me 150 lines of code to prove that 1/2 : real wasn't an integer :-)

#### [Mario Carneiro (Aug 04 2018 at 10:37)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882651):
I honestly think you can use `Q` for all those types of theorems and have a much better day

#### [Kevin Buzzard (Aug 04 2018 at 10:37)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882653):
I honestly believe you.

#### [Kevin Buzzard (Aug 04 2018 at 10:38)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882693):
I had a principle back then -- "don't change the example sheets; that would be a compromise"

#### [Mario Carneiro (Aug 04 2018 at 10:38)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882697):
just say "there are some complications with using reals so we'll use Q for now" at the start of class and come back to it when you are ready (or not at all)

#### [Kevin Buzzard (Aug 04 2018 at 10:38)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882704):
https://github.com/kbuzzard/xena/blob/master/M1F/2016-17/example_sheets/exsht1.pdf

#### [Kevin Buzzard (Aug 04 2018 at 10:39)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882712):
Sheet 1 Q6 -- I was told "this is not possible in Lean because your sets are stupid"

#### [Kevin Buzzard (Aug 04 2018 at 10:39)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882713):
I had to start compromising pretty quickly

#### [Mario Carneiro (Aug 04 2018 at 10:40)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882758):
Heh - I could show you how to define that using inductive types

#### [Mario Carneiro (Aug 04 2018 at 10:40)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882761):
or trees

#### [Kevin Buzzard (Aug 04 2018 at 10:40)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882762):
https://github.com/kbuzzard/xena/blob/2bf7737bc0fbcd3943ddadfb513bd19c1eea14a3/xenalib/half_not_an_integer.lean#L116

#### [Kevin Buzzard (Aug 04 2018 at 10:41)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882768):
triumphant proof that 1/2 wasn't an integer, so I could do Q7 part (i)

#### [Kevin Buzzard (Aug 04 2018 at 10:41)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882769):
Kind of amazing that I didn't give up there and then

#### [Kevin Buzzard (Aug 04 2018 at 10:41)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882772):
to do example sheet 2 I had to write my own square root function

#### [Mario Carneiro (Aug 04 2018 at 10:42)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882815):
it occurs to me that it is really easy to prove that over Q

#### [Mario Carneiro (Aug 04 2018 at 10:42)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882816):
since 1/2 has denom 2 and integers have denom 1

#### [Kevin Buzzard (Aug 04 2018 at 10:42)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882817):
right

#### [Kevin Buzzard (Aug 04 2018 at 10:42)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882821):
```lean
import data.real.basic tactic.interactive

lemma rational_half_not_an_integer : ¬ ∃ n : ℤ, (1/2 : ℚ) = ↑n :=
begin
  -- proof by contradiction
  rintros ⟨n,Hn⟩, -- n is an integer, Hn the proof that 1/2 = n
  -- goal is "false"
  have H := rat.coe_int_denom n, -- H says denominator of n is 1
  rw ←Hn at H, -- H now says denominator of 1/2 is 1...
  revert H,exact dec_trivial -- ...but denominator of 1/2 isn't 1.
end

lemma real_half_not_an_integer : ¬ ∃ n : ℤ, (1/2 : ℝ) = ↑n :=
begin
  rintro ⟨n,Hn⟩, -- n is an integer, Hn the proof that it's 1/2
  apply rational_half_not_an_integer,
  existsi n,
  -- now our hypothesis is that 1/2 = n as reals, and we want to
  -- deduce 1/2 = n as rationals!
  -- This is possible by some messing around with coercionc
  -- from integers to rationals to reals.
  rw<EMAIL_ADDRESS>ℝ _ _,
  rw (show ((n : ℚ) : ℝ) = (n : ℝ), by simp),
  rw ←Hn,
  simp
end
```

#### [Kevin Buzzard (Aug 04 2018 at 10:43)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882823):
Current version of 2018 proof

#### [Kevin Buzzard (Aug 04 2018 at 10:43)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882828):
no having to define my own floor function in sight!

#### [Kevin Buzzard (Aug 04 2018 at 10:43)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882830):
and a lot less than 150 lines too

#### [Kevin Buzzard (Aug 04 2018 at 10:44)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882831):
and Gabriel's proof right there at the end

#### [Mario Carneiro (Aug 04 2018 at 10:44)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882870):
There is a name for that lemma

#### [Mario Carneiro (Aug 04 2018 at 10:44)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882872):
you don't have to `show by simp`

#### [Kevin Buzzard (Aug 04 2018 at 10:44)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882873):
yes, I even looked it up

#### [Kevin Buzzard (Aug 04 2018 at 10:44)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882875):
as Gabriel suggested

#### [Kevin Buzzard (Aug 04 2018 at 10:45)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882881):
in fact did you know that whenever you use simp, you can actually replace it with lemmas which have names?

#### [Kevin Buzzard (Aug 04 2018 at 10:45)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882883):
;-)

#### [Mario Carneiro (Aug 04 2018 at 10:46)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882894):
the advantage of `simp` is when there are a lot of lemmas, applied in complicated positions

#### [Kevin Buzzard (Aug 04 2018 at 10:46)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882934):
I am sort-of confused by this. I never know whether to write `assumption` or `exact H27`...

#### [Mario Carneiro (Aug 04 2018 at 10:46)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882938):
when the theorem name is shorter than the statement I prefer `rw`

#### [Kevin Buzzard (Aug 04 2018 at 10:46)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882939):
...and I never know whether to write `simp` or to write `simp` and then look what it did and write that instead.

#### [Kevin Buzzard (Aug 04 2018 at 10:47)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882952):
Hmm, so maybe the answer is "it depends"

#### [Mario Carneiro (Aug 04 2018 at 10:47)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130882959):
I prefer `exact H27` over `assumption`, indeed I rarely use `assumption` because it is longer, less descriptive, and possibly time consuming if it normalizes an irrelevant hypothesis

#### [Kevin Buzzard (Aug 04 2018 at 10:50)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883098):
This code above has a rather strange role to play. My current idea is to present the example sheet questions and at the top have a list of lemmas which the students might find helpful. This is example sheet 1 so I'll probably get a lot of people trying it; many will have given up by sheet 2. My plan as I say was to list useful lemmas at the top which they will need, and then hopefully they can prove all the parts of Q7 with rewrites and exact. One of the lemmas I was going to offer them was the proof that 1/2 wasn't an integer, because they need it for Q7(i). But I was going to say "don't worry about these lemmas, just assume them, however anyone interested in what is going on here might want to take a look at them". So I was thinking that the code above would only be seen by people who were interested in what Lean was doing but knew nothing about Lean at all; hence the comments everywhere and the decision to use simp instead of a lemma with a to-them-incomprehensible name

#### [Kevin Buzzard (Aug 04 2018 at 10:51)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883113):
My goal was to stick with R but to give them the lemmas they need and then to see how well they did.

#### [Kevin Buzzard (Aug 04 2018 at 10:52)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883158):
I was going to get my xena undergrads to test out the problems in Sept and report back.

#### [Mario Carneiro (Aug 04 2018 at 10:52)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883160):
example of `assumption` going wrong:
```
example {p : Prop} (h1 : if 10^4 = 10^4 then true else true)
  (hp : p) : p := by assumption
```

#### [Kevin Buzzard (Aug 04 2018 at 10:52)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883165):
I will happily never use `assumption` again.

#### [Kevin Buzzard (Aug 04 2018 at 10:52)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883168):
except for those funny cases when you prove lots of cases at once after a semicolon

#### [Mario Carneiro (Aug 04 2018 at 10:53)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883179):
a somewhat nicer form of `assumption` which you may not know is the french quotes `‹p›`

#### [Kevin Buzzard (Aug 04 2018 at 10:53)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883183):
Whenever I see people using that I always figure that they should be doing something else

#### [Mario Carneiro (Aug 04 2018 at 10:54)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883240):
I have started using the french quotes to refer to instances that I don't want to name, when I need to refer to them directly for some reason

#### [Kevin Buzzard (Aug 04 2018 at 10:54)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883243):
Actually I think that's not assumption going wrong

#### [Kevin Buzzard (Aug 04 2018 at 10:55)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883255):
```lean
example {p : Prop} (h1 : if 10^4 = 10^4 then true else true)
  (hp : p) : p :=
  begin

  end
```

#### [Kevin Buzzard (Aug 04 2018 at 10:55)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883259):
already times out

#### [Kevin Buzzard (Aug 04 2018 at 10:55)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883261):
but I do believe you

#### [Mario Carneiro (Aug 04 2018 at 10:55)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883269):
That is a recently discovered mystery for me

#### [Mario Carneiro (Aug 04 2018 at 10:57)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883340):
@**Sebastian Ullrich** Do you know what preprocessing is done on the context before a `begin end` block and why? This also came up with the person who was trying to pattern match on a beta redex in the goal only to find it was already reduced before the tactic got to it

#### [Mario Carneiro (Aug 04 2018 at 11:01)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883470):
this is a better example
```
example {n : ℕ} (h1 : (if 10^4 = 10^4 then 1 else 1) = 1)
  (hp : n = 1) : n = 1 := by assumption
```

#### [Mario Carneiro (Aug 04 2018 at 11:02)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883516):
in the original example the timeout is because `h1` has a type which is not obviously even a type, so it has to do the expensive evaluation to find out if it is a type

#### [Mario Carneiro (Aug 04 2018 at 11:05)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883597):
Wow, even this times out
```
def q : Prop := if 10^4 = 10^4 then true else true
example (h : q) : q := h
```

#### [Mario Carneiro (Aug 04 2018 at 11:05)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883599):
but `example : q → q := id` is okay

#### [Mario Carneiro (Aug 04 2018 at 11:15)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130883891):
Here is an example of an interesting partial reduction:
```
example : (λ x, x ∧ x) ((λ x, x) true) :=
by tactic.target >>= tactic.trace
-- (λ (x : Prop), x) true ∧ (λ (x : Prop), x) true
```
It looks like the goal has whnf applied first

#### [Sebastian Ullrich (Aug 04 2018 at 20:04)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130898994):
I wouldn't even know where to start looking for the whnf

#### [Mario Carneiro (Aug 04 2018 at 20:15)](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Coercions%20N-%3EZ-%3EQ-%3ER-%3EC/near/130899271):
My guess is that it is making sure it is a sort first


text:
---
hrs_structure:
  division: '2'
  volume: '11'
  title: '27'
  chapter: '490'
  section: '490:9-519'
type: hrs_section
tags:
  - Business
menu:
  hrs:
    identifier: HRS_0490-0009-0519
    parent: HRS0490
    name: '490:9-519 Numbering, maintaining, and indexing records;'
weight: 78805
title: 'Numbering, maintaining, and indexing records;'
full_title: '490:9-519 Numbering, maintaining, and indexing records;'
---
**Subpart 2\. Duties and Operation of Filing Office**

**§490:9-519 Numbering, maintaining, and indexing records; communicating information provided in records.** (a) For each record filed in a filing office, the filing office shall:

(1) Assign a unique number to the filed record;

(2) Create a record that bears the number assigned to the filed record and the date and time of filing;

(3) Maintain the filed record for public inspection; and

(4) Index the filed record in accordance with subsections (c), (d), and (e).

(b) A file number must include a digit that:

(1) Is mathematically derived from or related to the other digits of the file number; and

(2) Aids the filing office in determining whether a number communicated as the file number includes a single-digit or transpositional error.

(c) Except as otherwise provided in subsections (d) and (e), the filing office shall:

(1) Index an initial financing statement according to the name of the debtor and index all filed records relating to the initial financing statement in a manner that associates with one another an initial financing statement and all filed records relating to the initial financing statement; and

(2) Index a record that provides a name of a debtor which was not previously provided in the financing statement to which the record relates also according to the name that was not previously provided.

(d) If a financing statement is filed as a fixture filing or covers as-extracted collateral or timber to be cut, the filing office shall index it:

(1) Under the names of the debtor and of each owner of record shown on the financing statement as if they were the mortgagors under a mortgage of the real property described; and

(2) To the extent that the law of this State provides for indexing of records of mortgages under the name of the mortgagee, under the name of the secured party as if the secured party were the mortgagee thereunder, or, if indexing is by description, as if the financing statement were a record of a mortgage of the real property described.

(e) If a financing statement is filed as a fixture filing or covers as-extracted collateral or timber to be cut, the filing office shall index an assignment filed under section 490:9-514(a) or an amendment filed under section 490:9-514(b):

(1) Under the name of the assignor as grantor; and

(2) To the extent that the law of this State provides for indexing a record of the assignment of a mortgage under the name of the assignee, under the name of the assignee.

(f) The filing office shall maintain a capability:

(1) To retrieve a record by the name of the debtor and by the file number assigned to the initial financing statement to which the record relates; and

(2) To associate and retrieve with one another an initial financing statement and each filed record relating to the initial financing statement.

(g) The filing office may not remove a debtor's name from the index until one year after the effectiveness of a financing statement naming the debtor lapses under section 490:9-515 with respect to all secured parties of record.

(h) The filing office shall perform the acts required by subsections (a) through (e) at the time and in the manner prescribed by filing-office rule, but not later than two business days after the filing office receives the record in question. [L 2000, c 241, pt of §1]

repository: SamMade/BlueAndKrabby

repo_name: SamMade/BlueAndKrabby


text:
# AL_ILI9481

Implement graphic screen on AL_ILI9481 (320x480) based TFT screen.

_NTOE_, this library works on customized wiring, all data lines are connected to a single port.

# Dependencies

This library depends on:

* [AL_GraphScreen](https://github.com/anders-liu/arduino-libs/tree/master/AL_GraphScreen)
* [AL_Color](https://github.com/anders-liu/arduino-libs/tree/master/AL_Color)
* [AL_Font](https://github.com/anders-liu/arduino-libs/tree/master/AL_Font)

## Usage

1. **Define the port and pins**

For using data bus on a single port, you need to define 3 registers related this port:
* PORTx, for sending data to bus;
* PINx, for reading data from bus. note, AVR doesn't work well when reading from PORTx, so PINx is required;
* DDRx, for seting up reading/writing.

```C++
#define TFT_PORT PORTF
#define TFT_PIN PINF
#define TFT_DDR DDRF
#define TFT_RST A8
#define TFT_CS A9
#define TFT_RS A10
#define TFT_WR A11
#define TFT_RD A12
```

2. **Define tft object.**

```C++
AL_ILI9481 tft(&TFT_PORT, &TFT_PIN, &TFT_DDR, TFT_RST, TFT_CS, TFT_RS, TFT_WR, TFT_RD);
```

3. **Setup**

In Arduino sketch's ```setup()``` function, call ```tft.setup()```.

Since this library has to use ```delay()``` function family for initialize the TFT, and ```delay()``` doesn't work in global scope, you have to call ```setup()``` function.

```C++
void setup()
{
    // Setup others...

    // Setup TFT screen.
    tft.setup();

    // Setup others...
}
```

4. **Drawing**

Now draw a rectangle.

```C++
AL_RgbColor color = {0, 255, 0};
tft.fillRect(100, 100, 120, 40, color);
```

Here you go!

repository: anders-liu/arduino-libs

repo_name: anders-liu/arduino-libs


text:
---
title: The Year 2025
level: 1
language: en
stylesheet: python
embeds: "*.png"
materials: ["Club Leader Resources/*.*"]
---

#Introduction:  { .intro}

You can use Python to do calculations, and make your programs more useful by using variables to store data.

#Step 1: How much? { .activity}
## Activity Checklist { .check}

+ It’s not just text that you can print in Python, you can also print numbers to the screen. For example, if 8 of your friends each gave you £2 for a sponsored silence, you can use this program to see how much money you raised:

	```{.language-python}
	print(8*2)
	```

	The star `*` in the program above is a multiply sign, so the program should print the answer to 8 x 2.

+ Run the program above, and you should see the answer:

	![screenshot](2025-calc.png)

## Save Your Project {.save}

## Challenge: Pocket money { .challenge}
Write a Python program to calculate how much money you’d make if you washed 12 cars, and charged £2.50 for each car.

 The Python program to calculate your age should work like this:

	![screenshot](2025-age.png)

	As you can see, if you were born in 2004, you can calculate your age in the year 2025 by the calculation `2025 - 2004`. So someone born in 2004 will be 21 years old in the year 2025! If you weren’t born in 2004 you can change the number in the program.

## Save Your Project {.save}

## Challenge: Changing dates { .challenge}
Change your program to find out how old someone born in 1998 would be in the year 2025. How old will someone born this year be in the year 2050?

## Save Your Project {.save}

#Step 3: Variables { .activity }

When completing the challenges above, you had to keep changing the numbers in the program for people of different ages, and for different years in the future. It would be much easier if you could ask someone what year they were born, and use the answer in your calculation. That's what variables are for!

## Activity Checklist { .check}

+ Run this Python program:

	```{.language-python}
	print("What year were you born?")
	born = input()
	born = int(born)
	print( 2025 - born )
	```

	This program waits for you to type in the year you were born, and press enter. You should then see how old you'll be in the year 2025:

	![screenshot](2025-varProg.png)

	This program uses the `input()` function to get the user's input from the keyboard, and store it in a variable called 'born', so that it can be used later. You can think of a variable as a box, which can be used to store important data.

	![screenshot](2025-var.png)

	Notice that the variable (the box) has been named "born", as it helps you remember what you’re storing inside it!

	The line...

	```{.language-python}
	print( 2025 - born )
	```

	...takes whatever number has been stored in the `born` variable away from 2025.

	Anything that is typed in from the keyboard is always stored as text, so you also have to use the `int()` function to turn the user's input into a whole number (which in programming is called an _integer_).

+ You can make your program much easier to understand, by adding a helpful message for the user, so they know what you're showing them. Change the last line of your program to:

	```{.language-python}
	print( "In 2025 you will be" , 2025 - born , "years old!" )
	```

+ Try running your program again, to see how this change looks.

	![screenshot](2025-print.png)

+ But why stop there? You could also use another variable to store the answer before printing it for the user. Try this program out:

	![screenshot](2025-2vars.png)

## Save Your Project {.save}

## Challenge: The year 3000! { .challenge}
Your program only tells people what their age will be in the year 2025. What if someone wants to know their age in the year 2050? Or the year 3000? Add another variable to your program, so that the user can find out how old they'll be in any year they choose.

![screenshot](2025-3000.png)

## Save Your Project {.save}

## Challenge: Your age in dog years { .challenge}
Write a program to ask the user their age, and then tell them their age in dog years! You can calculate a person’s age in dog years by multiplying their age by 7.

![screenshot](2025-dogYears.png)

url: https://raw.githubusercontent.com/arve0/example_lessons/56ce7f386df2478165f4583a86b462974f5e19ec/src/python/lessons/The Year 2025/The Year 2025.md

filename: The Year 2025.md


text:
---
layout: post
date:	2012-01-18 09:44:00
title:  The gender-unspecific pronoun
tags: [archived-posts]
categories: archives
permalink: /:categories/:year/:month/:day/:title/
---
Dr. Beheruz Sethna

 who has acheived so many things that I cannot begin to talk about him (it will take several posts...so just see the Wiki entry by clicking on his name!)

wrote this insightful piece about

 the sexist pronoun

I too often use "hem" and "hir", but I wonder...why don't we adopt "their" as also meaning the singular, depending on the context, and use that? Already, we say, "Someone has to send their stuff" and so on...so it is already in fairly common usage.


text:
# Routing - a simple routes helper.

[![CircleCI](https://img.shields.io/circleci/project/github/meligys/routing.svg)](https://circleci.com/gh/meligys/workflows/routing/tree/master) [![Npm Package](https://img.shields.io/npm/v/@meligys/routing.svg)](https://www.npmjs.com/package/@meligys/routing)

> No more hard-coded URI defining like : `fetch('http://example.com/api/persons/' + id).then(....)`. This library has no external deps.

## Getting started

### Install

`npm install --save @meligys/routing`

### Examples

#### Without any dependencies

```
var Routing = require('@meligys/routing');

const routes = {
    host: "http://google.com",

    persons: {
        path: '/persons',

        findAll: {
            host: 'http://bing.com',
            path: "/list",
        },
        findById: {
            path: "/{id}",
        }
    }
}

let options = {
    routes
};

routing = new Routing(options);

console.log(routing.generate('persons.findAll'));
console.log(routing.generate('persons.findById', {params: {'id': 1}}));
```

> You can also externalize the routes file

First, create a file with routes `routes.js` :

```

module.exports = {
    host: "http://google.com",

    persons: {
        path: '/persons',

        findAll: {
            host: 'http://bing.com',
            path: "/list",
        },
        findById: {
            path: "/{id}",
        },
        findByParam: {
            path: "?myparam={myparam}&another={anotherParam}"
        }
    }
}

```

Then, in the file you are using the router:

```
var Routing = require('@meligys/routing');

const routes = require('path/to/routes.js')

let options = {
    routes
};

routing = new Routing(options);

console.log(routing.generate('persons.findAll'));
console.log(routing.generate('persons.findById', {params: {'id': 1}}));
```

#### Testing your config file

You can test the example `routes.js` file by using `tester.js` in the lib folder.
For example :
```
node scripts/tester.js examples/routes.js
```

If you installed that package through npm, the test would be :
```
node<EMAIL_ADDRESS><EMAIL_ADDRESS>```

You can of course change the last argument to your own config file using a relative path only.

#### With the dependency config (optional)

You may have different environments, so you can have different hosts for each environment.

> The following code is not routing specific, it's just a solution to get the routes for the right environment. For more infos about config, please refer to [https://github.com/lorenwest/node-config](https://github.com/lorenwest/node-config)

Install config: `npm install --save config`

```
var config = require('config');

var routesPath = config.get('routesPath');

const routes = require(routesPath)

let options = {
    routes
};

routing = new Routing(options);

console.log(routing.generate('persons.findAll'));
console.log(routing.generate('persons.findById', {params: {'id': 1}}));

```

## Contribution

Feel free to contribute, add issues and :star: the repository :sparkler:

repository: meligys/routing

repo_name: meligys/routing


text:
# GTD scripts

## Introduction

I've been using GTD for over a decade.  I've been developing and using
these scripts for almost as long.

If you run setup.sh from this directory, it will by default setup;

1. ~/gtd as a base directory for the GTD files
1. ~/gtd/tickler as the tickler directory
1. ~/gtd/Projects as the project directory, and ~/gtd/Completed as the completed project directory
1. ~/gtd/next_actions.otl as the (vimoutliner) next actions file
1. ~/gtd/done.otl as the (vimoutliner) done file
1. ~/bin/update_repeating as the script to update the tickler files each month
1. ~/bin/tick as the script to run each day to view your daily tickler files
1. ~/bin/project (alias p) as the script to manage projects

## Tickler

A tickler file is machination to help you remember periodic tasks.
For instance,

1. On a certain date each month you should pay rent
2. On a certain day each week you should water the lawn
3. On Tuesday and Thursday you should mail progress reports to your boss
4. The 15th of February you should pay annual insurance

The tickler scripts in gtdtools are designed to help you remember those.
You'll have a 'tickler' directory, usually ~/gtd/tickler.  Under that,
will be

1. A file for each possible date of the month (01-31)
2. A file for each month
3. A 'repeating' directory which is the source of information for the daily and monthly files

On the first of each month, you will

1. Go through this month's monthly file, and copy the information to the relevant dates.
2. Run the script `~/gtd/tickler/update_repeating` script to apply the information under ~/gtd/tickler/repeating to the daily files

For instance, on the 20th of February you may have noticed that during the next month you'll need to refill some account.  You quickly write a note under ~/gtd/tickler/march to that effect.  Then on March 1,  you move that information from `march` to `10` to remember on the 10th to do that.

Meanwhile `~/gtd/tickler/repeating/general.r` has entries:

```
D 10 pay loan
A March 15 Mom's birthday
```

When you run `~/gtd/tickler/update_repeating`, these will be copied to the `10` and `15` daily files.

Now, every morning you run the script `tick` to open the current day's daily file alongside `~/gtd/next_actions.otl`, to copy actions into next actions (or, move them to a different date, move them elsewhere, or just delete them).

## GTD

GTD is in my opinion an excellent workflow for managing projects and information.
It is designed to at the same time never lose any information or lose track of
any task, and to never be stressed about whether you are working on the wrong thing
or forgetting something.

This repo provides tools which help me use GTD.  It is not a how-to guide for using
GTD.  If you want to learn more, I highly recommend reading the book.  (Check your
local library)

## Project

GTD is often used "physically" - using paper and folders.  When used this way, you
might have one folder for each project you are working on.  All information for that
projects goes into that folder.  Then you  have a separate 'next actions' paper or
folder where you only write the very next action to be done for projects.  (The idea
is, if you see "I have to replace the car window motor" you may hesitate;  if you
see that the next step is to walk to the car and get the VIN number before
ordering the motor, then you don't need to think through steps, and you might do it)

The 'project' script here is designed to help (me) use this.  The goal is for nothing
to stand in the way of my keeping organized, so shortcuts are in order:

```
$ p l
Project                                 |  Last updated
gtdtools                                |  Dec 28 10:51:10 2017
$ p new car_window
$ p e car_window
# An editor pops up with three files under ~/gtd/Projects/car_window/
# ("p s car_window" would be a shortcut for "p n car_window; p e car_window")
$ p co<tab> ca<tab>    # moves car_window to the Completed folder
```

repository: mikemccracken/gtdtools

repo_name: mikemccracken/gtdtools


text:
# Voice Chess using ReactJS and Redux

In the project directory, you can run:
## Setup

Clone this repo to your desktop and run `npm install` to install all the dependencies.

---

## Usage

Once the dependencies are installed, you can run `npm start` to start the application.

App will be live at `localhost:3000`

---

## License

> You can check out the full license [here](https://github.com/kapillamba4/voice-chess/blob/master/LICENSE)

This project is licensed under the terms of the **MIT** license.


text:
## NOTE: this repository is deprecated in favour of generating your own API client code using our OpenAPI specification, please refer to the documentation at https://developer.oanda.com/exchange-rates-api/#sample-code

java-exchange-rates
===================
OANDA Exchange Rates API client class for Java

This class provides an easy interface to the [OANDA Exchange Rates API](http://www.oanda.com/rates) using Java. The [API documentation page](http://developer.oanda.com/exchange-rates-api/) has a full reference of all the endpoints.  This service requires you to [sign up](http://www.oanda.com/rates/#pricing) for a trial or paying subscription to obtain an API key.

- [Installation](#installation)
- [Usage](#usage)
- [Author](#author)
- [Copyright and License](#copyright_license)
- [Release History](#release_history)

## Installation
Maven is used for building. Install from http://maven.apache.org/download.cgi. On Ubuntu, you can run sudo apt-get install maven.

Apache httpclient, httpcore, and commons-logging external jar files are referenced.
Google's gson (https://code.google.com/p/google-gson/) is also used to parse json.

## Usage

Include ExchangeRatesClient.java as part of the project, as well as dependent jar files.
Usage example is shown in included Example.java.

## Author

    James Chung<EMAIL_ADDRESS>
## Copyright and License

This software is copyright (c) 2014 by OANDA Corporation and distributed under MIT License.

## Release History

repository: oanda/java-exchange-rates

repo_name: oanda/java-exchange-rates


text:
# phar-jpg-polyglot

(Warning this is CTF CODE !!!1)

Phar + JPG Polyglot generator and playground

```sh
# Edit the phar_jpg_polyglot.php and run it to create the polyglot with phar inside
php -c php.ini phar_jpg_polyglot.php
```

```sh
# test it by running
php test_phar_inject.php out.jpg
```

### out.jpg Polyglot
![out.jpg polyglot](https://github.com/kunte0/phar-jpg-polyglot/raw/master/out.jpg)

Code ~stolen from~ inspired by [PHPGGC: PHP Generic Gadget Chains](https://github.com/ambionics/phpggc)


text:
Change Log
==========

Version 1.0.1 *(2017-01-24)*
----------------------------
 * Fix: If the SharedPreferences persisting cookies contains invalid data it will be ignored and won't cause a NullPointerException.

Version 1.0.0 *(2016-08-23)*
----------------------------
 * Added the method clearSession() to ClearableCookieJar that clear session cookies from the Jar while maintaining persisted cookies.
 * Added new constructor to SharedPrefsCookiePersistor that accepts a SharedPreferences object.
 * Some minor changes in SetCookieCache and SharedPrefsCookiePersistor implementations.

Version 0.9.3 *(2016-04-25)*
----------------------------
 * Added ProGuard rules to the library. No need to manually add the ProGuard configuration anymore.

Version 0.9.2 *(2016-04-11)*
----------------------------
 * Fix: Streams closed when encoding and decoding SerializableCookie.

Version 0.9.1 *(2016-04-11)*
----------------------------
 * Fix: Added a fixed serialVersionUID to SerializableCookie to avoid problems when it is generated and instant run is activated.

Version 0.9.0 *(2016-02-17)*
----------------------------
 * Initial release.

repository: mklkj/PersistentCookieJar

repo_name: mklkj/PersistentCookieJar


text:
doppelgangR
===========

Identify possibly duplicate samples in a list of ExpressionSets.  The main function is doppelgangR(), whose main input argument is a list of ExpressionSets.  This function uses similarity of expression profiles, similarity of phenoData, and matching of supposedly unique identifiers to find potential duplicate samples in the database.

Results from running doppelgangR on CRC, bladder, and ovarian [on Dropbox](https://www.dropbox.com/sh/or3l7oo96x1ilm8/AAD1MVQVnoS6H7OExoYwOovSa?dl=0).

repository: amyecampbell/clonedHGSCdata

repo_name: amyecampbell/clonedHGSCdata


text:
## Run a postgresql pod based on azure disk

```
kubectl create secret generic foo-db-creds --from-literal username=xiazhang --from-literal password="User@123"
kubectl create -f https://raw.githubusercontent.com/andyzhangx/demo/master/examples/postgresql/postgresql-azuredisk.yaml
```

 - Note:

the permission of azure file is set in the mounting moment, after that, azure file permission could not be changed. So for postgres container, it **could not run on azure file**.
In stead, you could use azure disk, I have tried it works well. And pls note that if you mount azure disk directly `mountPath: /var/lib/postgresql/data`, it will fail either with following error:
```
nitdb: directory "/var/lib/postgresql/data" exists but is not emptyIt contains a lost+found directory, perhaps due to it being a mount point
```
That's because disk format will create `DATALOSS_WARNING_README.txt` under that dir. Instead, use `subPath` will work, it will create a new directory in the new azure disk.

So here is the two key places that make this config work
 - use azure disk instead of azure file
```
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: footestdb
provisioner: kubernetes.io/azure-disk
parameters:
  skuName: Standard_LRS
  kind: Managed
  cachingmode: None
```

 - use subPath (it will create a new directory in the newly attached azure disk)
```
        volumeMounts:
        - mountPath: /var/lib/postgresql/
          subPath: data
          name: footestdb
```

- related issue:
[Persistent Volume Claim permissions](https://github.com/Azure/AKS/issues/225)

repository: rlaneyjr/Kubernetes

repo_name: rlaneyjr/Kubernetes


text:
# Build, Train and Deploy your own Mask R-CNN container to Amazon SageMaker using AWS StepFunctions Data Science SDK.

![](media/workflow.png)

This workshop demonstrates how to use the StepFunction Data Science SDK to build train and deploy your own container in Amazon
SageMaker using only Python Code. This enables data scientists to develop Continuous Integration/Continuous Delivery (CI/CD) pipelines
into their workflow.

The overall flow of this workshop is as follows:

1/ Upload your code to the Lambda console. This is the mask_r_cnn folder, Dockerfile, buildspec.yml and lambda_function.py

2/ Use StepFunctions pipeline to kick off the Lambda function which in-turn will launch a CodeBuild job to build your Mask R-CNN Docker container with your custom code

3/ CodeBuild will upload the Docker container to Amazon ECR for your use.

4/ The StepFunctions Training pipeline will pick up this Docker container, train the model and deploy it.

**Note** that in order to train a Mask R-CNN model, we use an ml.p3.2xlarge instance with a training time of roughly 320 seconds.
This will incur a cost of $0.38 for training the model.

# Step 1: Deploy this CloudFormation template

This Cloudformation template creates a Lambda function with a sample Dockerfile that launches a Codebuild job
to build a Sagemaker specific container.

Launch CloudFormation stack in us-east-1: [![button](media/cloudformation-launch-stack.png)](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/create/template?stackName=lambda-docker-build-maskrcnn&templateURL=https://lambda-ml-layers.s3.amazonaws.com/lambda-sm-build-maskrcnn.yaml)

If you would like to edit this ^ cloud formation template before deploying, you may download it from [here](https://lambda-ml-layers.s3.amazonaws.com/lambda-sm-build-maskrcnn.yaml)

SageMaker Containers gives you tools to create SageMaker-compatible Docker containers, and has additional tools for letting you create Frameworks (SageMaker-compatible Docker containers that can run arbitrary Python or shell scripts).

# Step 2: Clone this repo to your SageMaker Notebook instance
```bash
git clone https://github.com/aws-samples/aws-stepfunctions-byoc-mlops-using-data-science-sdk.git
```

# Step 3: Run the Jupyter Notebook.

Create a new SageMaker notebook instance and clone this repo.

Run through the *StepFunctions_BYOC_Workflow.ipynb*. Open up the StepFunctions Console to watch the individual steps in the graph getting executed.

![](media/SFgraph.png)

At the end of this workshop, you should have a deployed SageMaker endpoint that you can use to call inferences on your model.

# Next Steps

While the example we demonstrate here works for Mask R-CNN, with simple modificiations, you can use this to bring your own algorithm
container to Amazon SageMaker. For precise steps on how to modify your container code to work on Amazon SageMaker, we refer you
to this Github repo: https://github.com/awslabs/amazon-sagemaker-examples/tree/master/advanced_functionality/scikit_bring_your_own.

This repo demonstrates how to package your training and inference code, and Dockerfile in a format that is compatible with SageMaker. For the Mask R-CNN workshop here, this has already been done for you.

Enjoy building your own CI/CD pipelines with Amazon SageMaker, AWS Lambda, AWS StepFunctions.

## License

This library is licensed under the MIT-0 License. See the LICENSE file.

gha_language: Jupyter Notebook


text:
# MERN-boilerplate

This boilerplate uses the following:

- Express
- Mongoose
- Morgan
- React (via create-react-app)
- React Router Dom

Dev dependencies include:

- ESLint
- Prettier
- Nodemon
- Concurrently

# Running

To start, run:
```shell
npm start
```
The `start` script will launch both the backend and frontend concurrently in dev mode, from your local machine.


text:
# Deep Compressive Object Decoder (DCOD)
Reconstruct in-line holograms merely with a single image. In the proposed model, a regularized untrained deep neural network inversely generates and optimizes the object field based on the acquired hologram.

Check out our paper and results:
https://www.nature.com/articles/s41598-021-90312-5

All experiments can be found in the **DCOD_Implementation.ipynb**

## Requirements

To make the workflow expandable and easy to implement, holographic reconstruction algorithms and data processing tools are encapsulated in a python package named ***Fringe*** (https://github.com/farhadnkm/Fringe.Py).

To install this package, run:

```
pip install fringe
```

This project also requires ***tensorflow-addons***.

## Notice:

If you are getting error on hologram import due to LWZ compression, do the following:

```
pip uninstall tifffile
pip install imagecodecs imagecodecs-lite
pip install tifffile
```

repository: NeuralNewtorks/DCOD

repo_name: NeuralNewtorks/DCOD


text:
---
layout: post
date:   2011-01-08
title:  "Date and Time data types"
permalink: ./blog/index.php/2011/01/date-and-time-data-types/
tags: [datetime, data types, SQL Server 2005, Coding Practices, T-SQL Programming, Database Design, Development, SQL Server 2000, T-SQL Programming, Database Migration]
comments: false
---
Someone asked me why storing datetime values seem to allow a maximum year of 2079.

The limit mentioned exists for the SQL Server smalldatetime data type. This is because of the values' data range supported, accuracy and data size associated with different data types where:

Data type | Range | Accuracy | Size
--------- | ----- | -------- | ----
datetime | Jan 1, 1753 to Dec 31, 9999 | 3.33 milliseconds | 8 bytes
smalldatetime | Jan 1, 1900 to Jun 6, 2079 | 1 minute | 4 bytes

The SQL Server 2005 documentation titled [Date and Time (Transact-SQL)](http://msdn.microsoft.com/en-us/library/ms187819(v=SQL.90).aspx) provides full information about this topic.

SQL Server versions prior and up to 2005 do not allow storing date values earlier than 01/01/1753 in datetime data type columns. If the need arises, one alternative could be to store these values in a character-type column, storing the data in the [ISO 8601 Format](http://msdn.microsoft.com/en-us/library/ms190977(v=SQL.90).aspx).

SQL Server 2008 introduced a number of new date and time data types which give greater flexibility in the storage of such values. More in another blog post though!


text:
# GoogleForm-to-Discord-Webhook
This code will make any responses inside a Google Form and stylize it in a Discord Embed before sending it out in a webhook.

## Step 1: Setup Google Form
Go to https://drive.google.com and create a new Google Form. Once created go to the **Responses** tab and click the Google Sheets button to create a new Google Sheet.

## Step 2: Import Code
To import my the code into the Google Sheet start by going to **Tools -> Script Editor**. Delete any code already inside the editor and paste in **basic.gs** or **secretCodes.gs** from the version folder in the GIT. Save the code and make any edits to the metaData JSON field. Once saved, click on triggers on the left side. Create a new trigger. Configure as the picture below describes.

Sign in with Google and click "Advanced" and then **Go to Project**.

## Step 3: Link to Discord
Keep the Google Sheets Scripting Open and head over to discord. **Go to Server Settings -> Intgrations -> Webhooks -> New Webhook -> Copy Webhook URL**. Past the webhook into metaData.webHookURL. Once done you should be good to go!

## Step 4 : Test
Send a test through the Google Form to make sure evrything is working as intended.

## Step 5: Extra Config
If you decided to use secret codes with the form to track who is sending what message through the embed simply assign codes to the secretCodes JSON and names to correspond with them.

repository: MongoVFR/Google-Form-to-Discord-Webhook

repo_name: MongoVFR/Google-Form-to-Discord-Webhook


text:
---
type: "tip"
date: 2018-11-08
title: "Managing Copyright Policy"
technologies: []
topics: ["ide"]
author: "pauleveritt"
subtitle: "Use the copyright tool to manage a copyright statement across project files."
thumbnail: "./thumbnail.png"
cardThumbnail: ./card.png
seealso:
    - title: "Copyright in PyCharm Help"
      href: "https://www.jetbrains.com/help/pycharm/copyright.html"
shortVideo:
    poster: "./poster_short.png"
    url: "https://www.youtube.com/watch?v=73vXhhmBuYQ"
leadin: |
  *Let the IDE do your manual tasks...including copyright updates.*

  Maintaining a project with yearly changes to a copyright statement
  which appears in tons of files? Let your tool do the work for you.
  PyCharm's copyright tool, combined with scopes to select subsets
  of files, makes it simple to apply copyright changes.


text:
# Migration Guide

While we don't implement everything that jQuery provides, everything what we do implement should be compatible with jQuery.

However there are some minor differences that you should be aware about when migrating to Cash.

## Differences

### Binary CSS operators

Some CSS operators are binary, they operate on something before and after them: `>`, `~`, `+`. jQuery allows you to use them at the beginning of your selectors inside `$.fn.find`.

Cash only supports selectors the browser recognizes as valid, so you can't use `> .bar` like you sometimes can with jQuery.

```javascript
// jQuery
$('#foo').find ( '> .bar' );
$('#foo').find ( '~ .bar' );
$('#foo').find ( '+ .bar' );
// Cash
$('#foo').children ( '.bar' );
$('#foo').nextAll ( '.bar' );
$('#foo').next ( '.bar' );
```

### Data caching

In jQuery the `$.fn.data` function caches retrieved values, and doesn't refresh them when they are updated outside of jQuery (e.g. via the `dataset` API), this makes jQuery's `$.fn.data` function unusable with libraries like React. Cash doesn't implement such caching functionality and doesn't have this problem, the retrieved values are always fresh.

### Events

Cash's event system relies heavily on the browser's underlying event system so there are some differences when comparing it with jQuery's.

Custom jQuery-provided methods are not available.

```javascript
// jQuery
event.isDefaultPrevented ();
event.isPropagationStopped ();
event.isImmediatePropagationStopped ();
event.originalEvent;
// Cash
event.defaultPrevented;
event.cancelBubble;
// No way of knowing if `stopImmediatePropagation` was called
event;
```

When using event delegation calling `event.stopPropagation` or returning `false` stops the propagation from the target element, not the delegate element.

There's no perfect workaround for this unfortunately, but in most practical cases you could call `event.stopImmediatePropagation` instead.

```javascript
// jQuery
$('#foo').on ( 'click', '.bar', event => false ); // First function called
$('#foo').on ( 'click', '.bar', event => {} ); // Second function called
$('#foo').on ( 'click', event => {} ); // Function never called
$('.bar').trigger ( 'click' );
// Cash
$('#foo').on ( 'click', '.bar', event => false ); // First function called
$('#foo').on ( 'click', '.bar', event => {} ); // Second function called
$('#foo').on ( 'click', event => {} ); // Third function called
$('.bar').trigger ( 'click' );
// Cash with `stopImmediatePropagation`
$('#foo').on ( 'click', '.bar', event => { // First function called
  event.stopImmediatePropagation ();
});
$('#foo').on ( 'click', '.bar', event => {} ); // Function never called
$('#foo').on ( 'click', event => {} ); // Function never called
$('.bar').trigger ( 'click' );
```

### Width/height of hidden element

If you're trying to retrieve the width/height of an hidden element jQuery will briefly try to render it in order to compute it's dimension, this is unreliable and should be avoided, Cash doesn't implement such functionality.

If you need this anyway you'll have to show/hide the element on your own.

```javascript
// jQuery
$('#foo').width ();
// Cash
$('#foo').show ();
$('#foo').width ();
$('#foo').hide ();
```

### Negative width/height

Negative width/height get automatically converted to `0` by jQuery, both when setting them via `$.fn.width|height` and `$.fn.css`.

We discourage you from setting a negative width/height, if you want this to work like jQuery you'll have to convert negative values to `0` on your own.

```javascript
// jQuery
$('#foo').width ( myWidth );
$('#foo').css ( width, myWidth );
$('#foo').css ({ width: myWidth });
// Cash
myWidth = Math.max ( 0, parseFloat ( myWidth ) );
$('#foo').width ( myWidth );
$('#foo').css ( width, myWidth );
$('#foo').css ({ width: myWidth });
```

### Parsing `<script>` tags

Cash can parse `<script>` tags and execute their code when they are attached to the page.

However we do not support script tags inside iframes or script tags with a `src` attribute.

If you need to load arbitrary JavaScript files you can find a reference implementation for `$.getScript` [here](https://github.com/kenwheeler/cash/blob/master/src/extra/get_script.ts).

### No CSS auto-suffixing support for `zoom`

CSS values are auto-suffixed when appropriate, same as in jQuery, so for instance the two following calls are equivalent:

```javascript
$('#foo').css ( height, 10 );
$('#foo').css ( height, '10px' );
```

But we don't suppor the [`zoom`](https://developer.mozilla.org/en-US/docs/Web/CSS/zoom) property, which is not standard and should never be used.

### Relative CSS values

jQuery supports relative CSS values.

```javascript
$('#foo').css ( 'padding-left', '+=10' );
```

This is not supported in Cash.

### Function that returns a value

In many places jQuery can accept a `function` instead of the actual value.

```javascript
$('#foo').attr ( 'bar', () => Math.random () );
```

This is not supported in Cash.

## Contributing

Did you find another difference between jQuery and Cash during your migration? Please add that to this page so that future migrations will be smoother for others.


text:
# Generalised Genetic Algorithm (gega)

This package provides a generalised flexible genetic algorithm implementation
that can be used to optimise a set of parameters.
For an example of applied usage, see the optimisation scripts in the
Reinforcement Learning repo [ALLAgents](https://github.com/gordon-frost-hwu/ALLAgents.git)
that extend the [autonomous-learning-library](https://github.com/cpnota/autonomous-learning-library).

## Terminology and Genetic Algorithm (GA) Pseudocode:
1) A **"solution"** or **"individual"** is a vector containing all of the parameters
to be optimised. Each parameter is called a **"gene"**, where there are **N** genes
2) The **"Population"** is created by randomly creating **M** solutions, giving
the population a size of M rows x N columns
3) The overridden fitness_function gets called for each
 solution in the population giving a fitness vector of size Mx1
4) Two **"Parents"** get selected using a **"Selection Strategy"** from the population, creating an 2xN array
5) An **"Offspring"** is created by a **"Crossover"** function of the two parents
6) The Offspring has a stochastic **"Mutation"** applied to one or all of it's genes
7) The overridden fitness_function gets called for the new offspring to get the
offspring's fitness value
8) An **"Update Strategy"** occurs, whereby the offspring is inserted into the population
under certain conditions. e.g. If elitest, the offspring will only replace a solution
in the population if it has a better fitness value than one of them
9) Repeat back to step (4) for desired number of generations

##Package components
 1) The **SolutionDescription** class - this defines the properties of the parameters/genes
 to be optimised. i.e. for each gene, what it's valid range is, and what type of mutation to
 apply to it etc.
 2) the **ga**  module contains self-contained functions for selection strategies,
  mutation, and update strategies.
 3) the **utility** module contains useful methods for interacting with numpy
  arrays needed in typical ga actions
 4) the main **GeneticAlgorithm** class takes as input a SolutionDescription instance,
  and internally uses the ga and utility modules to execute the algorithm outlined
  above

  ## Usage
Clone the repository using:
```
git clone https://github.com/gordon-frost-hwu/gega.git
```

Install the local cloned repository as a python module:
```
cd gega
pip install -e .
```

repository: gordon-frost-hwu/gega

gha_language: Python

repo_name: gordon-frost-hwu/gega


text:
# py_imu_mpu6050

Inertial Measurement Unit (IMU) Driver based on on the [MPU6050](https://invensense.tdk.com/products/motion-tracking/6-axis/mpu-6050/)

# Introduction

This module is able to communicate to the MPU6050 throught I2C. The hardware support is very wide since the code is using Adafruit-Blinka and adafruit-circuitpython-busdevice that provides neccesary configuration for different platform, as shown in the following list:

* FEATHER_HUZZAH
* NODEMCU
* any_raspberry_pi_40_pin
* any_raspberry_pi_cm
* RASPBERRY_PI_A or RASPBERRY_PI_B_REV1
* RASPBERRY_PI_B_REV2
* BEAGLEBONE_BLACK
* BEAGLEBONE_GREEN
* BEAGLEBONE_BLACK_INDUSTRIAL
* BEAGLEBONE_GREEN_WIRELESS
* BEAGLEBONE_BLACK_WIRELESS
* BEAGLEBONE_POCKETBEAGLE
* ORANGE_PI_PC
* ORANGE_PI_R1
* ORANGE_PI_ZERO
* ORANGE_PI_ONE
* ORANGE_PI_PC_PLUS
* ORANGE_PI_PC_PLUS
* ORANGE_PI_PC_PLUS
* ORANGE_PI_PC_PLUS
* ORANGE_PI_PC_PLUS
* ORANGE_PI_PC_PLUS
* ORANGE_PI_PC_PLUS
* ORANGE_PI_PC_PLUS
* ORANGE_PI_LITE
* ORANGE_PI_PLUS_2E
* GIANT_BOARD
* JETSON_TX1
* JETSON_TX2
* JETSON_XAVIER
* JETSON_NANO
* JETSON_NX
* ODROID_C2
* ODROID_N2
* DRAGONBOARD_410C
* BINHO_NOVA
* MICROCHIP_MCP2221
* SIFIVE_UNLEASHED
* PINE64

# Dependencies

This driver depends on:

"Adafruit-Blinka"
"adafruit-circuitpython-busdevice"
"adafruit-circuitpython-register"

The Hardware is the MPU6050

# Installing from PyPI

On supported GNU/Linux systems like the RRaspberry pi, Beaglebone, Jetson Boards, etc. you can install the driver locally from [PyPI]([pip](https://pip.pypa.io/en/stable/)).
To install for current user:

```bash
pip3 install py-imu-mpu6050
```
To install system-wide (this may be required in some cases):
```bash
sudo pip3 install py-imu-mpu6050
```

To install in a virtual environment in your current project:

```bash
mkdir project-folder-name
cd project-folder-name
python3 -m venv .env
source .env/bin/activate
pip3 install py-imu-mpu6050
```

# Usage Examples

See:
* [examples/MPU6050_SimpleRead_test.py](/examples/MPU6050_SimpleRead_test.py) for a simple read demo.
* [examples/MPU6050_CSV_IMU_test.py](/examples/MPU6050_CSV_IMU_test.py) for a writing IMU data into a csv file.

# Contributing

Contributions are welcome! Please read our Code of Conduct before contributing to help this project stay welcoming.

# Future

Add support to the magnetometer I2C device that can be connected at AUX_SCL and AUX_SDA pins


text:
# Challenge 024 - Table reconstruction from image

Extend challenge 006 so it extracts and reconstructs information
from table image.

## Constraints

- Use C++17 style
- Get shape information of the table, rows, cols

## Prerequisites

C++17 compatible gcc compiler with OpenCV3 library.

## Build and run

```
$ ./make.sh
```

Then

```
$ bin/extract
```

## Outputs

Extracted line components from image

![1](data/lines.jpg)

Clean lines

![2](data/lines-filtered.jpg)

Extended lines

![3](data/lines-extended.jpg)

Reconstructed tables

![4](data/tables.jpg)


text:
# What is this?

The dashboard will query the [RDO delorean api](https://github.com/softwarefactory-project/DLRN/blob/master/doc/api_definition.yaml) using [dlrnapi_client](https://github.com/softwarefactory-project/dlrnapi_client) every 15 minutes.

It will show status of Ocata, Pike, and Master branches.

![Dashboard Screenshot](dlrnapi-dashboard-screenshot.png)

### What's current-tripleo?  current-tripleo-rdo? current-tripleo-rdo-internal?

They are symlinks created by CI to indicate that a specific set of RPM's have passed a phase of CI.

![Promotion Pipeline Diagram](promotion-pipeline.png)

### What _exactly_ is a "delorean hash"?

- A delorean ([time machine](https://en.wikipedia.org/wiki/DeLorean_time_machine)) "hash" is a specific and unique point in time in the lifespan of all the RPM's that comprise RDO's OpenStack rpm's.
- A hash is comprised of 2 logical parts, a commit identifier, and a distro identifier (see below)
- When the CI jobs in RDO Phase 1 pass (having tested the RPM's associated with a specific hash) they "promote" a new symlink via the API:

```bash
https://trunk.rdoproject.org/centos7-pike/current-tripleo-rdo
```

This actually targets (for example):

```bash
https://trunk.rdoproject.org/centos7-pike/9f/5f/9f5f3b2481d9580b78bbb3d144ceacf11ae39c9d_0701ece8
```

The "hash" listed in the dashboards in this example is: "9f5f3b2481d9580b78bbb3d144ceacf11ae39c9d_0701ece8"

The full details reside in an [artifact (commit.yaml)](https://trunk.rdoproject.org/centos7-pike/9f/5f/9f5f3b2481d9580b78bbb3d144ceacf11ae39c9d_0701ece8/commit.yaml):

```yaml
commits:
- commit_branch: stable/pike
  commit_hash: 9f5f3b2481d9580b78bbb3d144ceacf11ae39c9d
  distgit_dir: /home/centos-pike/data/instack-undercloud_distro/
  distro_hash: 0701ece8f02481a830ffb263f8784803fac38b9f
  dt_build: '1509193864'
  dt_commit: '1509140710'
  dt_distro: '1507655821'
  flags: '0'
  id: '4142'
  notes: OK
  project_name: instack-undercloud
  repo_dir: /home/centos-pike/data/instack-undercloud
  rpms: repos/9f/5f/9f5f3b2481d9580b78bbb3d144ceacf11ae39c9d_0701ece8/instack-undercloud-7.4.3-0.20171028123227.9f5f3b2.el7.centos.noarch.rpm,repos/9f/5f/9f5f3b2481d9580b78bbb3d144ceacf11ae39c9d_0701ece8/instack-undercloud-7.4.3-0.20171028123227.9f5f3b2.el7.centos.src.rpm
  status: SUCCESS
```

Note that the "hashes" referred to in dashboards and by CI folk are in the form: **{commit}_{distro:8}**

_Full URI: https://trunk.rdoproject.org/centos7-{release}/{commit[0:2]}/{commit[2:4]}/{commit}_{distro[:8]}_

# installation directions

This has been tested on Fedora 26 and RHEL 7.4

##### Install dependencies needed to get rolling.

```
sudo dnf groupinstall 'Development Tools'
sudo dnf install git ruby ruby-devel rubygem-json nodejs gcc-c++
gem install --user-install bundler
gem install --user-install smashing
```

##### bundle (install ruby deps)

```bash
git clone https://github.com/halcyondude/delorean-metrics.git
cd delorean-metrics/dlrnapi-dashboard
bundle
```

##### The output should look like the following.

_note: Don't panic!  The first time you bundle, there will be spam from gems being installed._

```
[you@yourbox dlrnapi-dashboard] $ bundle
[matyoung@myoung-lap dlrnapi-dashboard] $ bundle
The latest bundler is 1.16.0.pre.3, but you are currently running 1.16.0.pre.2.
To install the latest version, run `gem install bundler --pre`
Using public_suffix 3.0.0
Using addressable 2.5.2
Using backports 3.10.3
Using buftok 0.2.0
Using bundler 1.16.0.pre.2
Using coffee-script-source 1.12.2
Using execjs 2.0.2
Using coffee-script 2.2.0
Using daemons 1.2.5
Using unf_ext <IP_ADDRESS>
Using unf 0.1.4
Using domain_name 0.5.20170404
Using equalizer 0.0.11
Using ffi 1.9.18
Using ethon 0.11.0
Using eventmachine 1.2.5
Using multipart-post 2.0.0
Using faraday 0.11.0
Using hike 1.2.3
Using http-cookie 1.0.3
Using http-form_data 1.0.3
Using http_parser.rb 0.6.0
Using http 2.2.2
Using json 2.1.0
Using thread_safe 0.3.6
Using memoizable 0.4.2
Using multi_json 1.12.2
Using naught 1.1.0
Using rack 1.5.5
Using rack-protection 1.5.3
Using rack-test 0.7.0
Using typhoeus 1.3.0
Using ruby_dlrnapi 1.0.0 from https://github.com/halcyondude/ruby_dlrnapi.git (at master@ab830dc)
Using tzinfo 1.2.3
Using rufus-scheduler 2.0.24
Using sass 3.2.19
Using simple_oauth 0.3.1
Using tilt 1.4.1
Using sinatra 1.4.8
Using sinatra-contrib 1.4.7
Using sprockets 2.10.2
Using thin 1.6.4
Using thor 0.20.0
Using smashing 1.0.0
Using twitter 6.1.0
Bundle complete! 3 Gemfile dependencies, 45 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

```

##### Now start your dashboard!

```bash
smashing start
```

The dashboard uses [Thin](https://github.com/macournoyer/thin), which can be run in [other ways (background, arbitrary ports, etc)](https://github.com/Smashing/smashing/wiki/How-To:-Run-on-a-different-port,-or-in-production) .

Point your favorite browser at: http://localhost:3030

# Notes:

- feed-dashboard.log will be created and has the full debug output.
- history.yml is what the dashboard uses as a cache.  If you're hacking on this and getting unexpected behaviors, nuke that.
- Check out the [http://smashing.github.io](http://smashing.github.io) for more information.

# Contributing

Pull requests are welcome as are github issues.

Also feel free to ping me directly:

- email<EMAIL_ADDRESS>- IRC (freenode): myoung

repository: halcyondude/delorean-metrics

repo_name: halcyondude/delorean-metrics


text:
## A course template for A-plus learning environment

This course template contains the necessary files and configurations to start authoring a new course for the
[A+ e-learning system](https://plus.cs.aalto.fi/). This template can be freely modified and adapted to your needs.

## Requirements

This course templated has been tested in Ubuntu Linux environment. Nevertheless, this course should also work on any
Unix / Linux / Mac environment. In order to run the course locally, you should install the following software.

-   [git](https://git-scm.com/)
-   [make](https://www.gnu.org/software/make/)
-   [docker](https://docs.docker.com/engine/installation/)
-   [docker-compose](https://docs.docker.com/compose/install/) - [Recommended Installation](https://gist.github.com/jaguarfi/2e8dc73a68b6abe79989dc7fef92bf4a)

All other software runs inside [Docker](https://www.docker.com/) containers.

## Download

There are two options for downloading the course template. Either way, the result is the same. Therefore, you can decide
wich of the following two approaches to take.

### Option A: Clone the repository and all the submodules

You can download this template recursively (that means including the [A-plus-rst-tools](https://github.com/apluslms/a-plus-rst-tools)

Clone the repository using an SSH key.

```sh
git clone --recursive git@github.com:apluslms/aplus-course-template.git <name of your course>
```

### Option B: Clone the repository and the submodules manually

You can download the main repository and initialise the [A-plus-rst-tools](https://github.com/apluslms/a-plus-rst-tools)
submodule manually.

Clone the repository using an SSH key.

```sh
git clone git@github.com:apluslms/aplus-course-template.git <name of your course>
git submodule init && git submodule update
```

---

The previous snippets of code used SSH keys to download the course template. Nevertheless, you can also download the
repositories using HTTPS or use GitHub Desktop. More information about how to clone repositories can be found in the
[GitHub Documentation.](https://docs.github.com/en/free-pro-team@latest/github/creating-cloning-and-archiving-repositories/cloning-a-repository).

## Run

1. Open the terminal, go to the course directory and type the following command.

    ```sh
    ./docker-compile.sh
    ```

    This command will compile the course, and store the compiled files inside the **\_build** directory. The **\_build**
    directory will contain all the HTML and YAML files that are generated from the RST source files. The **\_build**
    directory will also include all the static files such as images, CSS, JS and downloadable files.

    **OR**

    ```sh
    ./docker-fast-compile.sh
    ```

    This script, as its name suggests, compiles the course slightly faster and also store the compiled files inside the
    **\_build** directory. However, this command does not clean the cached content. Therefore, the `./docker-fast-compile.sh`
    command should be run only when you want to make use of the cached content.

2. Open the terminal, go to the course director and type the next command.

    ```sh
    ./docker-up.sh
    ```

    If the `./docker-up.sh` command run successfully, you should be able to access your course in any web browser in the
    following URL http://localhost:8000

3. Once in the http://localhost:8000 you can use the following users to login. Different users have different privileges.

    | User      | Password  |
    | --------- | --------- |
    | root      | root      |
    | teacher   | teacher   |
    | assistant | assistant |
    | student   | student   |

## Save your work

In order to save your work and publish the course in [A+ e-learning system](https://plus.cs.aalto.fi/) you must store
the course project in <version.aalto.fi>.

### ❗ Important

We **STRONGLY** recommend storing the course under the [course group](https://version.aalto.fi/gitlab/course). If you
do not have privileges to do so. You can send an email to<EMAIL_ADDRESS>(We will set up the repository for
you).

If you do not want to store your course repository under the _course group_ in <version.aalto.fi>, you can create a
private repository. However, you **MUST** add the following people as "reporters" in your repository.

-   Teemu Lehtinen - @lehtint6
-   Markku Riekkinen - @riekkim1
-   Jhosimar Aguacia - @aguacij1
    .

## Additional information

**A+** has a wide variety of tools and configurations. Therefore, you may check all the different sources of information
available on our webpages and repositories.

-   [A+ webpage](https://apluslms.github.io/)
-   [A+ Manual](https://plus.cs.aalto.fi/aplus-manual/master/)
-   [A+ GitHub organization](https://github.com/apluslms/)
-   [LeTech GitHub organization](https://github.com/Aalto-LeTech)
-   [EDIT Wiki](https://wiki.aalto.fi/display/EDIT/)

## Contact us

Contact us by email<EMAIL_ADDRESS>Contact us in Slack: <https://apluslms.slack.com/>, channel:#a-plus-help


text:
---
layout: post
title: "OsPLIM2a"
description: ""
category: genes
tags: [tiller, development, seed, seed development, tiller number]
---

* **Information**
    + Symbol: OsPLIM2a
    + MSU: [LOC_Os02g42820](http://rice.uga.edu/cgi-bin/ORF_infopage.cgi?orf=LOC_Os02g42820)
    + RAPdb: [Os02g0641000](https://rapdb.dna.affrc.go.jp/locus/?name=Os02g0641000)

* **Publication**
    + [Rice LIM protein OsPLIM2a is involved in rice seed and tiller development](http://www.ncbi.nlm.nih.gov/pubmed?term=Rice LIM protein OsPLIM2a is involved in rice seed and tiller development%5BTitle%5D), 2014, Molecular Breeding.

* **Genbank accession number**

* **Key message**
    + Rice LIM protein OsPLIM2a is involved in rice seed and tiller development
    + Transgenic plants overexpressing OsPLIM2a produced bigger seeds than wild type, whereas they exhibited reduction in tiller numbers
    + These results suggest that OsPLIM2a may participate positively in seed development but negatively in tiller differentiation

* **Connection**
    + __OsPLIM2a__, __OsPLIM2b__, [Rice LIM protein OsPLIM2a is involved in rice seed and tiller development](http://www.ncbi.nlm.nih.gov/pubmed?term=Rice LIM protein OsPLIM2a is involved in rice seed and tiller development%5BTitle%5D), OsPLIM2 genes (OsPLIM2a, OsPLIM2b, and OsPLIM2c) expressed in reproductive organs including anthers, but not in other tissues

[//]: # * **Key figures**


text:
UIWheelSlider
=============
Use it into your project like use UISlider

## How to Use

Drag UIWheelSlider.h and UIWheelSlider.m into your project,and use it like Use UISlider

##  ScreenShot

![](https://raw.githubusercontent.com/yuanfeng0801/UIWheelSlider/master/UIWheelSlider.gif)

## Contact Me

Email<EMAIL_ADDRESS>
##  Conclude

This is my first GitHub's repo and also my first opensource code. I'am happy to receive any pull requests.

##  Licence

MIT Licence