text:
---
updated: 2014-12-10
author:
  name: Amir Chaudhry
  uri: http://amirchaudhry.com
  email<EMAIL_ADDRESS>subject: 'Weekly Meeting: 2014-12-10'
permalink: weekly-2014-12-10
description: '10th Dec 2014: Entropy, Tracing docs, OSX backend, IPv6 and Projects'
---

### Agenda ###

- Entropy progress
- Tracing progress
- Xen C stub compilation progress
- MacOSX vmnet support
- IPv6 Merging
- Pioneer Projects

Attendees: Amir Chaudhry (chair), Thomas Gazagnaire, Masoud Koleini,
Thomas Leonard, Anil Madhavapeddy, Hannes Mehnert, Dave Scott,
Magnus Skjegstad and Carlos

### Notes ###

#### Entropy for Mirage/TLS ####

Dave has been working on this. Essentially we need a daemon on dom0 to provide
a small amount of entropy. This is at the top of his list and it will be done
before Hannes gives a talk on the 27th (at [CCC][]).

Once we have entropy device in Mirage, it is fed into the Fortuna part of
`nocrypto` and then we get random numbers. What it doesn't expose is the
random device. We also have possibility to get entropy from multiple sources.
Things are in place for that already so perhaps we should deal with each of
these as separate issues.

On a related note, Anil merged Hannes patches and cohttp on Unix and it all
works without a hitch. Doesn't do server certificate verification. Is
implementing trust on first use for the XMPP client. There are issues related
to both these points on the [conduit library repo][conduit].

[CCC]: https://events.ccc.de/congress/2014/Fahrplan/events/6443.html
[conduit]: https://github.com/mirage/ocaml-conduit/issues

#### Xen C stub compilation ####

Mirage will now only link C-stubs on Xen if you explicitly mark it in OCaml
meta file. A number of releases have happened and we're now ready to package
up the TLS things.

Need to fork zarith and gmp libraries and thinking that we'll need to install
dummy ocamlfind packages for TLS libraries to use. That might involve adding
depext things to the mirage tool. Will have to feel our way through this to
figure out the best approach.

#### Tracing Progress ####

Lots of things have been merged. A number of libraries now depend on
`mirage-profile`, so it can be used in code without having to add an
additional dependency. This way you can get profiling from libraries out of
the box. Will soon be working on documentation for the website to explain how
to use it all. In the meantime we should work work on getting the lwt patched
upstreamed.

#### MacOSX vmnet support ####

Anil was working on using the vmnet support that's available (but undocumented)
on Mac OSX Yosemite (see the [mailing list thread][vmnet-thread]). Anil is
still poking thorough traces to find various interfaces. We also think it does
IPv6 but not quite sure.  As a result, two new libraries have been released,
[ocaml-vmnet][] and [mirage-net-macosx][].  It would be good to get feedback
from others on their use of this and there have been no reported problems at
all so far.  Recently released Mirage 2.1.1 will default to Unix network stack
on Macs prior to Yosemite.

[vmnet-thread]: http://lists.xenproject.org/archives/html/mirageos-devel/2014-12/msg00004.html
[ocaml-vmnet]: https://github.com/mirage/ocaml-vmnet
[mirage-net-macosx]: https://github.com/mirage/mirage-net-macosx

#### Merging IPv6 ####

Nic is currently in Argentina but would like to merge this asap.  Will
probably see some breakages can fix them up as things change. These will be a
sequence of small changes but hopefully wouldn't affect too many people. Anil
will look at these and may be able to merge this in the next couple of weeks.

If anyone has access to IPv6 networks it would be great to hear feedback and
reports.

#### Pioneer Projects ####

We could do with expanding the number of [Pioneer Projects][pioneer] we have
listed. Even if people have simple ideas, it would be useful to get them added
to the wiki page.  We especially need the '1-star' projects, which can help
onboard newcomers. Amir may add some tasks that cross over from ocaml.org
(such as a pure OCaml implementation of Planet). Please do add what you can!

[pioneer]: https://github.com/mirage/mirage-www/wiki/Pioneer-Projects

--

#### AoB ####

- Masoud and Carlos joined the call and they're working on an **Openflow**
implementation (1.3 and 1.4). Currently fixing things before adding more
functionality.  At the moment there's an openflow switch but would also like
an openflow controller.

- The next call is scheduled for **Wednesday, 14th January** - Please add any
[agenda items][call-agenda] you wish to discuss in advance and refer to the
[mailing list][mir-mail] for actual details a day or so in advance.

- **Happy Holidays to all!**

[call-agenda]: https://github.com/mirage/mirage-www/wiki/Call-Agenda
[mir-mail]: http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

license: ISC

repository: mirage/mirage-www

gha_language: HTML

gha_license_id: ISC

repo_name: mirage/mirage-www


text:
---
layout: page
title: Campus Care Network
permalink: /be-caring/campus-care-network/
third_nav_title: Be Caring
---
### Campus Care Network Day
Established in 1991, [Campus Care Network](https://www.tp.edu.sg/life-at-tp/a-caring-campus.html#campus-care-network){:target="_blank"}{:rel="noopener"} has been instrumental in developing personal contact and rapport between lecturers and students, creating a family-like environment, and maintaining a caring culture so as to ensure students' personal growth.

TP's inaugural Virtual Campus Care Network Day held in August 2020, in conjunction with TP National Day Virtual Concert was meant to raise funds for our needy students especially during this current pandemic.

**Check out this year's e-CCN Day via [instagram](https://www.instagram.com/e_ccnday/){:target="_blank"}{:rel="noopener"}!**

**Date: 21 May 2021 till 4 June 2021**

**Time: From 10am onwards**

[![Campus Care Network](/images/BeInvolved-ccn_1.PNG)](https://www.instagram.com/e_ccnday/){:target="_blank"}{:rel="noopener"}

license: MIT

repository: TP-VC/tp-vc

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: TP-VC/tp-vc


text:
# CrewMod
Little mod for among us
Mod For 5.10s
**keyboard keys**

F1, deactivate the collision, to activate again just press again
F2, Complete all Your tasks
F3,Skip All (just as a host at the moment)
F4, Impostor On/Impostor off

**offensive Options**
check the Crewmate map, he will turn the imposter map into the crewmate map
Kill Timer goes down faster
can move in vent
See Impostor Added 25/05/2021

Credits for Api https://github.com/NuclearPowered/Reactor

Updates Soon
Mod discontinued so far

branch_name: refs/heads/main


text:
# FlagBot
 ~~Korea~~Lethal Guild Bro

 (A bot to track Flag Race points in MapleStory)

 This is a Discord bot, not a bot to run flag race for you. Maybe try getting good instead if thats what you came here for.

## Requirements
* Python 3.x (Should work with them all ¯\\_(ツ)_/¯ )
* discord.py
* google-api-python-client
* google-auth-httplib2
* google-auth-oauthlib
* aioschedule
* A [google service account](https://cloud.google.com/iam/docs/creating-managing-service-accounts) with saved json credentials
* A copy of [this](https://docs.google.com/spreadsheets/d/1Xlmh_GhN2MoL8qauUg6bvAy92JtySKUZtEkmeZyyXWA/edit?usp=sharing) spreadsheet
* A [discord application](https://discord.com/developers)

## Instructions
1. Download repo
2. Fill in `sample_config.py` and rename to `config.py`
3. Run `main.py`

## Tracking Flag points
1. Have the administrator designate a point tracking channel with `!trackChannel <channel id/channel ping/channel name>`
2. After every race, the bot will open an hour long window for people to post their points. Note this is points rather than place.
3. Bot will create a fresh sheet weekly

## Questions?
 IGN: `Lostara` (reboot)


text:
SLACKBOT

[![Build Status](https://travis-ci.org/quintilesims/slackbot.svg?branch=master)](https://travis-ci.org/quintilesims/slackbot)
[![GoDoc](https://godoc.org/github.com/quintilesims/slackbot?status.svg)](https://godoc.org/github.com/quintilesims/slackbot)
[![Go Report Card](https://goreportcard.com/badge/github.com/quintilesims/slackbot)](https://goreportcard.com/report/github.com/quintilesims/slackbot)

# Overview

- TODO -

# Getting Started
_New to Go? we suggest starting at [A Tour of Go](https://tour.golang.org/welcome/)_

- TODO -

## Contributing

- TODO -

# License
This work is published under the MIT license.

Please see the [LICENSE](https://github.com/quintilesims/slackbot/blob/master/LICENSE) file for details.

repository: quintilesims/slackbot

gha_language: Go

gha_license_id: MIT

repo_name: quintilesims/slackbot


text:
## Contributing to this database

Pull requests are the most helpful contributions.

I love folks who can add missing features and keep existing features up to date.
A new feature only needs a **title**, **id**, **description**, and a link to
its **specification**.

Non-CSSWG members can still update CSS features by including **citations** to
public notes that show how the CSSWG is advancing a feature. If you need
further clarification, read [why we are doing this](#why-are-we-doing-this).

### Updating a feature

Is one of these CSS features out-of-date? Open [`cssdb.settings.json`] and find
the feature you want to update. It’s a JSON file, so make changes directly to
the file, commit it, and then [make a pull request](#making-a-pull-request).

### Adding a new feature

Is a CSS feature not listed here? Add the feature to [`cssdb.settings.json`].
Again, it’s a JSON file, so make changes directly to the JSON, commit it, and
then [make a pull request](#making-a-pull-request).

### Making a Pull Request

For best results, be sure your contributions make sense to everyone else. If
you’re unfamiliar with git, consider the following workflow.

1. To begin; [fork this project] and then clone your fork locally
   ```bash
   # Clone your fork of this project
   git clone git@github.com:YOUR_USER/cssdb.git

   # Navigate to your fork of this project
   cd cssdb

   # Install the tools necessary for testing this project
   npm install

   # Assign the original repo to a remote called "upstream"
   git remote add upstream git@github.com:csstools/cssdb.git
   ```

2. Create a branch for your feature or fix:
   ```bash
   # Move into a new branch for your feature
   git checkout -b feature/thing
   ```
   ```bash
   # Move into a new branch for your fix
   git checkout -b fix/something
   ```

3. If your code follows our practices, then push your feature branch:
   ```bash
   # Test your code
   npm test
   ```
   ```bash
   # Push the branch for your new feature
   git push origin feature/thing
   ```
   ```bash
   # Or, push the branch for your update
   git push origin update/something
   ```

---

## Advanced Usage: How the JSON file looks

The only fields you’ll see in [`cssdb.settings.json`] are, in order:

- `id`: the feature shortname, similar to a specification [Shortname].
- `title`: the name of the feature.
- `description`: a brief description of the feature.
- `specification`: a link to the specification for the feature.
- `stage`: the current [stage](README.md#staging-process) of the feature; where
    + `0` means **Stage 0** — *Aspirational*,
    + `1` means **Stage 1** — *Enthusiastic*,
    + `2` means **Stage 2** — *Experimental*,
    + `3` means **Stage 3** — *Allowable*,
    + `4` means **Stage 4** — *Embraced*,
    + `5` means **Stage 5** — *Standardized*, and
    + `-1` means **Rejected**.
- `polyfills`: a list of polyfills used to simulate the feature; each including
    + `type`: the type of polyfill (e.g. *PostCSS*, *JS Library*), and
    + `link`: the URL to the repository for the polyfill.

All contributions must follow the existing syntax and style of the JSON file,
which;

1. Exists as `cssdb.settings.json`, and;
2. Includes at least the required fields; **title**, **description**,
   **specification**, and **stage** (which is `0` if you don’t know it).

Did you write the specification you are submitting? It must;

1. Describe what the feature does in as few words as possible.
2. Describe why the feature exists in as few words as possible.
3. Describe how the feature and its parts operate as clearly and completely as
   possible.

If you’re changing the **stage** of a feature, be sure to include a link along
with your PR to prove the new position.

---

## Join the CSSWG

Passionate and informed developers should consider joining the CSSWG. Read the
[instructions for joining the CSSWG]. This is a very difficult to actually
accomplish, so I welcome pull requests to update this section with some
beginner-friendly instructions.

### Why are we doing this?

The CSSWG doesn’t follow the [TC39 process]. How they operate [in theory](https://www.w3.org/Style/CSS/specs.en.html) versus [in real life](https://fantasai.inkedblade.net/weblog/2011/inside-csswg/) is unclear, and
browsers
[don’t necessarily follow their process anyway](https://www.chromestatus.com/feature/5753701012602880),
so we have to discern what’s really going on ourselves. If we didn’t, we
probably wouldn’t need this repository.

[`cssdb.settings.json`]: cssdb.settings.json
[fork this project]: fork
[instructions for joining the CSSWG]: https://www.w3.org/2004/01/pp-impl/32061/instructions
[staging process]: README.md#staging-process
[TC39 process]: https://thefeedbackloop.xyz/tc39-a-process-sketch-stages-0-and-1/
[Section Heading ID]: https://tabatkins.github.io/bikeshed/#section-links
[Shortname]: https://tabatkins.github.io/bikeshed/#metadata-shortname

repository: csstools/cssdb

gha_language: JavaScript

repo_name: csstools/cssdb


text:
font-foss
=========

An awesome font for logos of our free and open source projects!

Just copy the css and font files to your project, and this to the head of your html:
```html
<link rel="stylesheet" href="css/fo.css"></head>
```

And you can start using your favorites logos!
```html
<i class="fo-indiehosters"></i>
```

repository: pierreozoux/font-foss

repo_name: pierreozoux/font-foss


text:
- [DB Normal Forms](#db-normal-forms)
	- [1nf](#1nf)
	- [2nf](#2nf)
	- [3nf](#3nf)
	- [bcnf](#bcnf)
	- [4nf](#4nf)
- [References](#references)

# DB Normal Forms

## 1nf
- atomic value
- domain shouldnt change

## 2nf
- to be in 1 nf
- not partial dependency
	- Partial Dependency is where an attribute in a table depends on only a part of the primary key and not on the whole key.

## 3nf
- 2nf
- it should not have Transitive Dependency.
	- Transitive Dependency is When a non-prime attribute depends on other non-prime attributes rather than depending upon the prime attributes or primary key.

## bcnf
- 3nf
- for any dependency A → B, A should be a super key.

## 4nf
- 3nf
- For a dependency A → B, if for a single value of A, multiple value of B exists, then the table may have multi-valued dependency.
  - Also, a table should have at-least 3 columns for it to have a multi-valued dependency.
	And, for a relation R(A,B,C), if there is a multi-valued dependency between, A and B, th
	en B and C should be independent of each other.
	- If all these conditions are true for any relation(table), it is said to have multi-valued dependency.

# References
- [studytonight](https://www.studytonight.com/dbms/boyce-codd-normal-form.php)
- checkout youtube too


text:
# jsScripts
Ethereum related scripts

- Sample code to sample / emulate parts of a blockchain
- Utilities for Ethereum Network using javascript and solidity
- Apps using web3.js and ethers.js

## Scripts
### Manual Miner (./manual\_miner)
A simple script to create pseudo blocks that resemble a blockchain. With block number, hash to previous block, and optional list of transactions as input, the miner can create the hash of the new block. This exercise demonstrates how blocks and miners work.

This example has been simplified and should not be used in any production
system.

repository: modernAlcibiades/jsScripts

repo_name: modernAlcibiades/jsScripts


text:
# Police watchdog recommends criminal charges against Kamloops Mounties

Published at: **2019-11-04T22:48:00+00:00**

Author: ****

Original: [North Delta Reporter](https://www.northdeltareporter.com/news/police-watchdog-recommends-criminal-charges-against-kamloops-mounties/)

        -Kamloops this Week

B.C.’s police watchdog is recommending criminal charges against three Kamloops RCMP officers.
The Independent Investigations Office announced on Monday that it has forwarded a report to Crown prosecutors recommending assault charges for one Mountie and criminal driving charges relating to the alleged conduct of three officers.
The investigation stems from an early-morning Dec. 8, 2018, collision between an unmarked police car and a stolen pickup truck.

          READ MORE: B.C.’s police watchdog investigating Kamloops crash involving alleged speeder

At the time, police told IIO investigators the truck had previously failed to stop.
The truck’s driver was injured during the arrest. It will be up to Crown prosecutors to decide whether any charges will be laid.

          READ MORE: Two killed in Kamloops crash were TRU international students

license: Unlicense

repository: dsadlollioygjmzvcxv/tdc-exported

repo_name: dsadlollioygjmzvcxv/tdc-exported


text:
# poolfileupload

This uploader assists in uploading Various RBTnSeq Files.
* The Experiments files are TSVs with an undefined number of columns.
* The few required columns are: SetName, Index, Description, Date_pool_expt_started.
* For a full explanation of Experiments fcile refer to the end of the README.
* Only upload multiple files at once if you're uploading PoolCount files.
* Create a single Output Name for each file you're uploading.
* If you're uploading any of 'ExperimentsTable', 'PoolCount' or 'PoolFile', then
    you must indicate the GenesTable you are using. Otherwise, if you're uploading
    'InputGenesTable' - you do not use a reference GenesTable, since that is
    what you are creating.

---
* Pool Files are TSV files with 12 columns.
* The headers are, in order from left to right: "barcode", "rcbarcode",
"nTot", "n", "scaffold", "strand", "pos", "n2", "scaffold2", "strand2", "pos2",
"nPastEnd".
* The pool file is part of the RBTnSeq (Random Barcode Transposon Sequencing)
analysis program.
* The app "MapTnSeq" also outputs a pool file.
* The pool file is used as a reference to find the important reads after
running transposon sequencing.
* A pool file is used as an input to the app "RBTnSeq Reads to Pool Counts".

---
* Pool Count Files are TSV files with a certain number of columns (TBD)
* The expected headers include: barcode, rcbarcode, scaffold, strand, pos
* IT IS VERY IMPORTANT THAT THE OUTPUT NAME IS EXACTLY THE SET NAME FOR THE EXPERIMENT.
* Only import multiple TSV files if they are poolcount files!

---
* The biological goal of the program suite is to quantify the abundance of each
barcoded strain in each sample.

* For more information, consider the following article:
"Rapid Quantification of Mutant Fitness in Diverse Bacteria by
Sequencing Randomly Bar-Coded Transposons" - Kelly M. Wetmore, Morgan N. Price,
[...], Adam P. Arkin, and Adam Deutschbauer
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4436071/

---
* Experiments Files:
Experiments files are tables that give information regarding the experiments. Each row
provides information about one experiment. So, for example, if you have 108 different
conditions tested (including the controls), then your Experiments table would have
108 rows not including the header row (with the column names). Column names
that are not optional:  "SetName", "Index", "Description", "Date_pool_expt_started", "Group"

* SetName -- experiments that were sequenced together should have the same set name, usually ending with set1, set2, etc. Note that the set and the index together should be unique for each experiment.

* Index -- the multiplexing tag for sequencing, usually IT001, IT002, IT025, etc. Note that the set and the index together should be unique for each experiment.

* Description -- "Time0" means that this is a control sample, otherwise it describes the sample - e.g. "N-Acetyl-D-Glucosamine nitrogen source".

* Date_pool_expt_started -- This should be a date value, e.g. "6/12/2021". Experiments and controls that were started on the same date are compared to each other.

* Group can be used to say which group of experiments this belongs to, i.e. "Time0", "carbon source" or "nitrogen source". (Also, Group=Time0 means it is a control experiment.)

Some other fields that are used if they are present:

* Drop -- This indicates whether or not to use an experiment. Values must be "True" or "False". "True" if you do not want to use the experiment.

* Condition_1 up to Condition_4 can be used to describe compounds that were added to the media. Units_1 and Concentration_1, etc., are used to indicate how much.

* Media can be used to describe the media. If it is used, then a warning is issued if it is not a known media (from feba/metadata/media)

There is an option to define whether an experiment is a "Time0" experiment (Control),
    and which control group it belongs to by creating a column called "control_bool"
    where the values would be "True" if it is a control, and "False" otherwise.
    And then you would also need to create a column called "control_group"
    where the experiments which
---

This is a [KBase](https://kbase.us) module generated by the [KBase Software Development Kit (SDK)](https://github.com/kbase/kb_sdk).

You can also learn more about the apps implemented in this module from its [catalog page](https://narrative.kbase.us/#catalog/modules/poolfileupload) or its [spec file]($module_name.spec).

repository: OGalOz/poolfileupload

repo_name: OGalOz/poolfileupload


text:
---
title: OnClientSelectedIndexChanging
page_title: OnClientSelectedIndexChanging - RadListBox
description: Check our Web Forms article about OnClientSelectedIndexChanging.
slug: listbox/client-side-programming/events/onclientselectedindexchanging
tags: onclientselectedindexchanging
published: True
position: 21
---

# OnClientSelectedIndexChanging

##

The **OnClientSelectedIndexChanging** client-side event occurs when the selected item is about to be changed. This event can be cancelled.

The event handler receives two parameters:

1. The instance of the listbox firing the event

2. An event arguments parameter containing the following methods:

* **get_item()** - returns the item that is about to be selected.

* **set_cancel()** - lets you cancel the event and prevent items from being selected.

* **get_domEvent()** - returns the DOM event object

The example below shows how to ask the user before selecting the item:

````JavaScript
function onClientSelectedIndexChangingHandler(sender, e) {
	if (!confirm("Are you sure?")) {
		e.set_cancel(true);
	}
}
````

# See Also

 * [OnClientSelectedIndexChanged]({%slug listbox/client-side-programming/events/onclientselectedindexchanged%})

repository: telerik/ajax-docs

gha_language: C#

repo_name: telerik/ajax-docs


text:
mpqjs
=========================================
mpqjs is a (currently uncompleted) implementation of mpyq, which extracts
data/information out of MPQ (Mo'PAQ) formats popularized by Blizzard
Entertainment.

## requirements

- node v0.8?+ (tested on v0.10 but should work on older versions)

## install

- npm install -g mpq

## example

- currently only the -I parameter of mpyq is supported so after
installing, run the bin `mpqjs` with the -I parameter and include
a filename like so:

`mpqjs -I [filename]`

## whats implemented

- archive header information
- user data information

## left to do

- the rest...

## license

- MIT

repository: swang/mpq

repo_name: swang/mpq


text:
# wuffi-todomvc

This project is and backend implementation of the popular [TodoMVC](http://todomvc.com) built using [wuffi](https://github.com/Gr1N/wuffi).

## Getting started

TBD

## License

*wuffi-todomvc* is licensed under the MIT license. See the license file for details.


text:
# Python for Absolute Beginners Course

![](readme_resources/absolute-beginners.jpg)

Code samples and other handouts for our course.

See the [practice exercises](/practices).


text:
Compare Side-By-Side
================
This package adds a simple side-by-side comparison tool to Sublime Text 2 and 3.

![Screenshot](https://dougty.com/files/SBSCompareScreenshot5.png)

Features
---
  - Easily select two tabs or selections to compare
  - Comparison results open in a new window
  - Empty lines added so common code lines up
  - Count number of lines changed
  - Highlighting of changed lines
  - Intra-line diff highlighting
  - Synchronized scrolling

## Installation

### By Package Control

1. Download & Install **`Sublime Text 3`** (https://www.sublimetext.com/3)
1. Go to the menu **`Tools -> Install Package Control`**, then,
    wait few seconds until the installation finishes up
1. Now,
    Go to the menu **`Preferences -> Package Control`**
1. Type **`Add Channel`** on the opened quick panel and press Enter
1. Then,
    input the following address and press Enter
    ```
    https://raw.githubusercontent.com/evandrocoan/StudioChannel/master/channel.json
    ```
1. Go to the menu **`Tools -> Command Palette...
    (Ctrl+Shift+P)`**
1. Type **`Preferences:
    Package Control Settings – User`** on the opened quick panel and press Enter
1. Then,
    find the following setting on your **`Package Control.sublime-settings`** file:
    ```js
    "channels":
    [
        "https://packagecontrol.io/channel_v3.json",
        "https://raw.githubusercontent.com/evandrocoan/StudioChannel/master/channel.json",
    ],
    ```
1. And,
    change it to the following, i.e.,
    put the **`https://raw.githubusercontent...`** line as first:
    ```js
    "channels":
    [
        "https://raw.githubusercontent.com/evandrocoan/StudioChannel/master/channel.json",
        "https://packagecontrol.io/channel_v3.json",
    ],
    ```
    * The **`https://raw.githubusercontent...`** line must to be added before the **`https://packagecontrol.io...`** one, otherwise,
      you will not install this forked version of the package,
      but the original available on the Package Control default channel **`https://packagecontrol.io...`**
1. Now,
    go to the menu **`Preferences -> Package Control`**
1. Type **`Install Package`** on the opened quick panel and press Enter
1. Then,
    search for **`SideBySideCompare`** and press Enter

See also:

1. [ITE - Integrated Toolset Environment](https://github.com/evandrocoan/ITE)
1. [Package control docs](https://packagecontrol.io/docs/usage) for details.

Usage Options
---
  - Right click on a tab and select "Compare with..."
  - Right click somewhere in the active view and select "Compare with..."
  - Right click on a tab and select "Compare with active tab"
  - Highlight text, right click -> "Mark selection for comparison"
   - Mark a second selection, then right click -> "Compare selections"
  - Create two selections by holding CTRL, then "Compare selections"
  - From the command line: [see README_COMMANDS.md](README_COMMANDS.md)
  - Jump to next: `Alt+N`, Jump to previous: `Alt+P`

Configuration
---
  - Highlight colours and other options can be configured in SBSCompare.sublime-settings
  - Hotkeys can be changed in the included `Default (PLATFORM).sublime-keys` files
  - To access: *Preferences -> Package Settings -> Compare Side-By-Side*

License & Contributing
---
 - [MIT license](LICENSE)
 - Pull requests welcome!

repository: evandroforks/CompareSideBySide

gha_language: Python

repo_name: evandroforks/CompareSideBySide


text:
# TelegramBotFramework

This is my Telegram Bot Framework.

It can currently run multiple bots and loads modules from a nearby folder.
Modules can be added as seperate jar-files.
With this, you can have multiple people add their own functionality to a bot.
In the future, this framework should make it easier to share a server to run bots around the clock.
I hope this will enable many programmers to run their bots on the same server to save computing resoucres.

### Intended workflow:
 - Clone the [template module](https://github.com/Simon70/telegrambots.framework.TemplateModule)
 - Add you bot's api-key or request access to someone else's bot
 - Test module via the integrated [TestRunner](https://github.com/AnyTimeTraveler/telegrambots.framework.TemplateModule/blob/master/src/test/java/org/simonscode/telegrambots/framework/modules/BotRunner.java)
 - Create account via telegram

    If you are hosting the framework yourself:

    - Download the jar from maven
    - Run the jar

 - Upload your module via Telegram
 - Add module to bot via Telegram
 - Start the bot via Telegram

##In progress:
 - Managed Menus
 - AdminModule
 - Module upload via Telegram

## TODO:
 - Finalize statefulness system (Currently reliant on JSON Serialisation)
 - Implement database (probably sqlite) backend for larger datasets
 - Implement global permission-system

##Done:
 - Upload to maven central
 - Make modules loadable during runtime (not just when the bot starts)
 - Implement universal help function
 - Implement uploading of new modules through telegram
 - Make modules stateful
 - Implement modules
 - Run multiple bots at the same time

## Contributing

Simple:

1. Fork/Clone this repository
2. Implement your changes
3. Submit a pull request

## Modules that are already available (outdated due to structural changes)

### ~~NanoWriMoTracker~~

Tracks and compares the progress https://nanowrimo.org/

URL: https://github.com/Simon70/telegrambots.framework.NaNoWriMoTracker

### Template Module

A good basis to start your module from

https://github.com/Simon70/telegrambots.framework.TemplateModule

repository: AnyTimeTraveler/telegrambots-framework

repo_name: AnyTimeTraveler/telegrambots-framework


text:
## Week 1
4/4/2019 | A tour of the Universe and a bit on how we know what we know

### Slides
[PowerPoint slides from week 1 available here](https://1drv.ms/p/s!ArA04Pn7kyMsg7sljI9Lf8qupeDBNw).
If the link opens powerpoint online, you may click "File" on the top left, and "save a copy" to download it for yourself. Please see the notes for links to the images.

### Readings
1. This article is a nice introduction that takes on the question “why study astronomy”: ["Cosmic Perspective" Neil deGrasse Tyson, Natural History Magazine, April 2007](http://www.naturalhistorymag.com/universe/201367/cosmic-perspective) (This essay and others have recently been re-released in Tyson’s book “Astrophysics for Those in a Hurry”).
2. For next week's topic on the life cycle of stars, why not start close to home:
[“From Here to Eternity: The Fate of the Sun and Earth” Gregory P. Laughlin, Sky and Telescope, June 2007](https://1drv.ms/b/s!ArA04Pn7kyMssjqr_Vxhz7VfvrX2)

### Class notes

Scaled solar system on google maps: [https://umanitoba.ca/observatory/outreach/solarsystem/](https://umanitoba.ca/observatory/outreach/solarsystem/)

If you want to recreate what I showed, use latitude 42.41769 and longitude -71.1618, set the sun diameter to 380mm (about 15 in), then click "calculate", and then click "draw orbits"

### Other Resources
"365 Starry Nights" By Chet Raymo. This book taught me the night sky. (You can find it like I did, used for a few dollars.) I like how it's not glossy with eye-popping visuals that of course disappoint when you look up from a city. It’s a simple, open-the-book-to-any-page, and learn a mix of constellations and astronomy tidbits. I’ll bring a copy or two next week. (Some may recognize the author because he wrote “Science Musings” in the Globe until ~2003)

## Week 2
4/11/2019 | The Life Cycle of Stars

A link to my slides: [ACE Lecture 2](https://1drv.ms/p/s!ArA04Pn7kyMsg7snmpE8TIF3Nhy1fQ)
Suggested Readings
1.              From this Scientific American compilation issue, I suggest reading “How the Milky Way Formed” which starts on page 2 (of the issue, not the pdf). This article connects our understanding of stars to how we study galaxies, which is the track I’ll be taking us in class.
 It also introduces three terms that describe structures that make up galaxies: a disk (think of a pancake, made of gas, dust, and stars); a bulge (made of stars and in some cases, very hot dust, and a super massive black hole, all concentrated in the center of the galaxy); and a halo (a distribution of ancient stars that extend quite far from the disk, they probably make the shape of a sphere around the galaxy).
 I will also (and have also) touch(ed) on other articles in this issue, so feel free to read on and ask questions in class or by email. My feeling is each article is quite dense so I’m only “assigning” one. [Mysteries of the Milky Way](https://1drv.ms/b/s!ArA04Pn7kyMsg94471gnDYHcvYgmVw)
 3.       This is a nice piece on recent results but it lacks broader context. It might be better to read after #2 and next lecture. [The Galactic Collision that Reshaped our Milky Way](https://www.scientificamerican.com/article/the-galactic-collision-that-reshaped-our-milky-way/)
4.       This article touches on the observational techniques used to study distant galaxies. I won’t be able to go over them all due to time limits, but for those interested in the “how do we know” this has some nice figures to go along with explanations. [New Powerful Telescopes Allow Direct Imaging of Nascent Galaxies 12 Billion Light Years Away](https://theconversation.com/new-powerful-telescopes-allow-direct-imaging-of-nascent-galaxies-12-billion-light-years-away-74910)

## Week 3
4/18/2019 | [No class]

## Week 4
4/25/2019 | Galaxies & Cosmology
A link to my slides: [ACE Lecture 3](https://1drv.ms/p/s!ArA04Pn7kyMsg99PR-N5HmP_9S9PYg)

Here is a link to a bit of a dated (2002) SciAm on the search for life in the universe. *Huge* progress has been made in the last 17 years, but the concepts are solid. [The Search For Alien Life](https://1drv.ms/b/s!ArA04Pn7kyMsg-sQLrfITb5oQdRPhQ)

An excellent source for more information on relating to life in the universe is NASA's Astrobiology website: [https://astrobiology.nasa.gov/](https://astrobiology.nasa.gov/). For a complete, deep dive into the topic, including much of what was covered in our course, you can read their [Astrobiology Primer](http://online.liebertpub.com/doi/full/10.1089/ast.2015.1460).

## Week 5
5/2/2019 | Life in the Universe

A link to my slides: [ACE Lecture 4](https://1drv.ms/p/s!ArA04Pn7kyMsg-srRDYOntWkZozohw)

repository: philrosenfield/ace-astronomy

repo_name: philrosenfield/ace-astronomy


text:
# Changelog

## Release 1.3.0
- Added configuration file and themes. (by `sigmaSd`)
- Added terminal bell when messages are received.
- Added unix style paramters to commands. (by `zhongzc`)
- Minor internal improvements to reduce CPU.
- Unknown error notified.

## Release 1.2.0
- Added ascii video (by `sigmaSd`).

## Release 1.1.2
- Fixed an issue that blocks the receiver of a file while the file was sending.
- Fixed an issue that appended data to the end of the file once transfered.
- Fixed an issue that lost some data in the file transfer.

## Release 1.1.1
- Fixed minor visual printed line removed.
- Fixed: If user write `? + <Enter>` now, not generate an error.

## Release 1.1.0
- Send files command (by `sigmaSd`)
- Minor ui changes

## Release 1.0.0
- Fixed a network issue that made peers not discoverable through LAN.
- Added utf8 support.
- Added CLI option to specify the tcp port.
- Improved the error handling.
- Unified style.
- Added CI.

## Release 0.1.0
- First release

repository: guangminglion/termchat

repo_name: guangminglion/termchat


text:
# react-abstract-autocomplete change log

All notable changes to this project will be documented in this file.

This project adheres to [Semantic Versioning](http://semver.org/).

## 2.0.0
* Smaller build.
* Move entry point files to `./dist/react-abstract-autocomplete.*.js` instead of `./index.js`.
  This is the only breaking change; it's unlikely to affect anyone unless you were explicitly importing `react-abstract-autocomplete/index.js` or `react-abstract-autocomplete/index.es.js`.

repository: pdumais/react-abstract-autocomplete

repo_name: pdumais/react-abstract-autocomplete


text:
# Pyxian OS

Pyxian OS is a custom build of Raspberry Pi OS (formerly Raspbian). It is specifically designed to run web-applications in kiosk mode and build web-based GUI applications for embedded systems. It includes a pre-installed custom browser run-time extended with low-level JavaScript APIs to access hardware interfaces and system functions.

The OS works on Raspberry Pi 3+ or Raspberry Pi 4 with any display attached.

## Typical applications

Pyxis can be used for digital signage, web kiosk, or an equipment control panel. It can also help to build a good-looking user interface for an Arduino or MCU hardware project.

## Features

### User-friendly settings app
Allows setting screen orientation, Wi-Fi, installing applications from the flash stick, and checking for software updates directly on your Raspberry Pi.

### JavaScript APIs for interfaces like UART, GPIO
Allow easy integration of UI with hardware. You can control sensors, mechanical components, and other peripheral devices right in the JavaScript layer of your user interface.

### Remote debugging from browser
Makes development faster and easier. Get all the benefits of JavaScript debugging like step-by-step code execution, exceptions and errors information, interactive running of commands, console log.

### Demos and examples
Learn from examples and demo applications that can also be used in projects and prototypes.

## FAQ

### How is it different from Raspberry Pi OS?
The user interface is different. It does not have the standard desktop environment of Raspberry Pi OS, but instead, it boots right into a kiosk-mode web browser. It can be set to load a predefined web address or a locally stored web application.

### Can I use Pyxian commercially?
Yes, you are free to use Pyxian for any purpose.

### How can I customize the image to add or remove pre-installed software?
The image build is done with the pi-gen tool, which is used to create official Raspberry Pi OS images.
You can read more about image customization here: https://github.com/renetec-io/Pyxian/blob/master/docs/BUILDING.md

### Where to find the documentation?
See the Getting Started section on our website: https://www.renetec.io/pages/getting-started-with-pyxian-on-raspberry-pi
Then, check out the examples and demos in this GitHub repository: https://github.com/renetec-io/pyxis-apps

repository: renetec-io/Pyxian

gha_language: Shell

repo_name: renetec-io/Pyxian


text:
# Query & Manipulate the Browser DOM with JavaScript

## Query DOM

There are 3 main methods on the `document` object in JavaScript for querying information from the document object model of your HTML.

1. **getElementById** - This will return 1 DOM element or undefined.
1. **getElementsByClassName** - This will always return a collection. The collection will have 0-_n_ elements in it.
1. **getElementsByTagName** - This will always return a collection. The collection will have 0-_n_ elements in it.

> **See for yourself:** The code below is in a [DOM Query JSFiddle](https://jsfiddle.net/chortlehoort/m3twofe2/) that you can run yourself. Just make sure you have your dev tools open to see the output.

```html
<html>
    <article>
        <section id="banana" class="fruit">
        Bananas
        </section>

        <section id="tomato" class="fruit">
        Tomato
        </section>

        <section id="cuttingBoard" class="tool">
        Cutting board
        </section>
    </article>
</html>
```

### By Id

To get a DOM element by its `id` attribute.

```js
const bananaElement = document.getElementById("banana")
```

![](./images/getElementById.png)

### By Class

To get DOM elements by their `class` attribute. The following method will select both elements that have a class attribute with a value of fruit - so two elements.

```js
const fruitElements = document.getElementsByClassName("fruit")
```

![](./images/getElementsByClassName.png)

### By Tag

To get a DOM element by its tag. The following method will select **all** section tags.

```js
const sectionElements = document.getElementsByTagName("section")
```

![](./images/getElementsByTagName.png)

## Manipulate DOM

To update the contents of a DOM element, you simply need to assign a value to the `innerHTML` property of that element.

If I wanted to change the text inside the DOM element with the `id` of `banana`, this would be the code.

```js
const bananaElement = document.getElementById("banana")

bananaElement.innerHTML = "Mango"
```

## String Templates

Up to this point, you've used `+` to concatenate strings together. Modern JavaScript allows you to use a feature called string templates to build a string by inserting variables directly into the string itself with a special syntax.

```js
// Old way
const monkey = "Coco"
const dolphin = "Winter"

console.log("We saw " + monkey + " the monkey, and " + dolphin + " the dolphin today")
```

```js
// New way
const monkey = "Coco"
const dolphin = "Winter"

// That first character in the string is called a backtick. It's by the esc key.
console.log(`We saw ${monkey} the monkey, and ${dolphin} the dolphin today`)
```

repository: sjkimball/ux-developer-milestones

repo_name: sjkimball/ux-developer-milestones


text:
# langforums

A ruby translation project managed on [Locale](http://www.localeapp.com/) that's open to all!

## Contributing to langforums

- Edit the translations directly on the [langforums](http://www.localeapp.com/projects/public?search=langforums) project on Locale.
- **That's it!**
- The maintainer will then pull translations from the Locale project and push to Github.

Happy translating!

repository: emk/langforums

gha_language: Ruby

gha_license_id: NOASSERTION

repo_name: emk/langforums


text:
# Hyperledger-Fabric-ARM64-images
These are Hyperledger Fabric arm64 images and binaries for use on Raspberry Pi 4+ running Raspbian OS 64 Bit.

# **Creating Hyperledger Fabric v2.1.0 ARM64 Images for Raspberry Pi 4**
At development of these images "Raspbian OS 64 bit operating system" for Raspberry Pi devices has just been released. Raspbian OS is a Debian distribution (debian:buster) and this is the base operating system used in this exercise. Hyperledger fabric (HLF) does not have any support for ARM64 images, however, the images can be created for the architecture only for 64 bit OS. There are other repositories and images with lower versions of HLF which did not work on my devices due to build issues and missing components hence need to create these.

Built images can be accessed from https://hub.docker.com/u/chinyati.

## **Prerequisites**

Hyperledger fabric requires a number of Prerequisites which can be installed using this script HLF-Prerequisites.sh. These dependencies are:
* Git
* Curl
* Node
* Python & pipenv
* Java
* Docker and docker compose
* Golang

To install the dependencies download the HLF-Prerequisites.sh and run it.
Verify that all dependencies installed correctly by checking the final output of dependency versions.

### **GO WORKSPACE**

The Hyperledger Fabric (HLF) images need to be built within a Go workspace which should be created after installing dependencies.
To manually create workspace, do the following:

```
$ mkdir -p $HOME/golang
$ export GOPATH=$HOME/go
```

Check whether path has been added by executing $ echo $PATH. If the GOPATH has not been added open the $ ~/.profile or $ ~/.bashrc and add the GOPATH, then execute $ source ~/.bashrc to save the paths.

Verify Golang environment setup by checking ```$ go env``` and see if GOPATH and GOROOT have been setup.

## **DOWNLOADING SOURCE CODE REPOSITORIES**
From the command line navigate to the newly created Go workspace and make new directories which will hold the fabric files.

```
$ mkdir -p $HOME/go/src/github.com/hyperledger

$ cd $HOME/go/src/github.com/hyperledger
```
The src directory will hold the HLF source code for fabric, fabric-baseimage and fabric-ca. These source code directories will be cloned using $ git clone into the created child directory /github.com/hyperledger.

Hyperledger fabric has three GIT repositories that contain the source code needed to create the ARM64 images.

1. Clone the fabric-baseimage repository by executing:

```
$ git clone https://github.com/hyperledger/fabric-baseimage.git
```
2. Clone the fabric repository by executing:

```
$ git clone https://github.com/hyperledger/fabric.git
```
3. Clone the fabric ca repository by executing:

```
$ git clone https://github.com/hyperledger/fabric-ca.git
```

## **EDIT BASEIMAGE FILES**
The Fabric baseimage repository contains source code for the base docker images required by the fabric repository. Navigate to the **fabric-baseimage**:

```
cd $HOME/go/src/github.com/hyperledger/fabric-baseimage
```

Check the available tagged branches for the fabric-baseimage codebase by executing:

```
git tag
```
For this exercise switch to branch v0.4.20 by executing:
```
git checkout v0.4.20
```

Within the fabric-baseimage codebase there are files that should be adjusted for successful build.

1. Edit the file **config/baseimage/Dockerfile** by commenting out
```
FROM adoptopenjdk:8u222-b10-jdk-openj9-0.15.1
```
and inserting this line:
```
FROM adoptopenjdk/openjdk8:aarch64-ubuntu-jdk8u222-b10
```

2. Edit the file **config/baseos/Dockerfile** by commenting out
```
FROM debian:buster-20190910-slim
```

and inserting this line:
```
FROM arm64v8/debian:buster
```
3. Edit the file **images/couchdb/Dockerfile** by commenting out
```
FROM debian:stretch-20190910-slim
```
and inserting this line;
```
FROM arm64v8/debian:buster
```
Whilst in the same file replace the following line:
```
libicu57 \
```
with the following line
```
libicu63 \
```
Finally in the same file **DELETE** this line as it causes errors within Debain:buster due to the package not being available
```
libmozsf180 \
```
4. Edit the two docker files in **images/zookeeper/Dockerfile** and **images/kafka/Dockerfile** by commenting out
```
FROM debian:buster-20190910-slim as download
```
and insert this line:
```
FROM arm64v8/debian:buster as download
```
still in the same file comment this line
```
FROM adoptopenjdk:8u222-b10-jdk-openj9-0.15.1
```
and insert this line:
```
FROM adoptopenjdk/openjdk8:aarch64-ubuntu-jdk8u222-b10
```
5. Lastly edit the file **scripts/common/setup.sh** and replace two instances of the following line:
```
ARCH=`uname -m | sed 's|i686|386|' | sed 's|x86_64|amd64|'`
```
with this line:
```
ARCH=`uname -m | sed 's|i686|386|' | sed 's|x86_64|amd64|' | sed 's|aarch64|arm64|'`
```
Still in the same file, replace all instances of **golang-1.6** with **golang-1.11**

## BUILDING BASEIMAGE DOCKER IMAGES ##

After setting up the Prerequisites and also editing the files in the Base-image codebase its time to make the images. First check if there are any available docker images and if any remove them.

1. The following instructions should be done whilst in **fabric-baseimage directory**

* To build docker images for the baseimage and baseos execute:
```
make docker
```
After an hour+ build should complete and then run **docker images** to list the successfully built images. If successful proceed.

* To build docker image for couchdb execute:
```
make couchdb
```
* To build docker image for kafka execute:
```
make kafka
```
* To build docker image for zookeeper execute:
```
make zookeeper
```

At this point run **docker images** to see created images. If successful a list of created docker images will show.

2. Navigate to **fabric directory** and here execute this command to switch to branch v2.1.0
```
git checkout v2.1.0
```

Within this directory Now execute this command:
```
make docker
```

If successful this process will create the **peer, orderer, tools, ccenv**. These individual components can also be built separately e.g ```make peer peer-docker``` or ```make ccenv```.
Run docker images to list all created image.

3. Dependent on what the Raspberry Pi will be in your deployment create the fabric-ca by navigating to **fabric-ca** directory. In this directory switch to branch v1.4.7
```
git checkout v1.4.7
```

Open the Makefile in fabric-ca and replace every instance of amd64 to arm64 for Linux entries.

Within this directory Now execute this command:
```
make docker
```

## BUILDING BASEIMAGE DOCKER IMAGES ##

Binary executables which include peer, orderer, cryptogen and more need to be built for the ARM64 architecture as well. These can be built from the source code in /fabric folder.
```
$ make native
```

These built executables will be places in the bin folder within /bin and must be moved to the /bin folder for the Hyperledger fabric samples or project.

### **ALL REQUIRED DOCKER IMAGES WOULD HAVE BEEN BUILT BY NOW.**
These built images can be accessed from https://hub.docker.com/u/chinyati.
Run docker images to view them.

ERRORS
For errors that could come up when deploying test-network or your channels look for core.yaml file in config and edit Memory value to:
```
Memory: 16777216
```

Install gcc to avoid runtime errors
```
sudo apt install -y gcc
```


text:
.vim
====

My personal vim config. Includes various mappings and plugins. Plugins are loaded with [pathogen.vim](https://github.com/tpope/vim-pathogen).

Feel free to take a look and copy what you like.

## Installation
1. Backup your `.vimrc` and `.vim` directory
2. Clone into your `~/.vim` directory
3. Run `git submodule init && git submodule update`
4. Link `.vimrc` to `~/.vim/vimrc`

		ln -s .vim/vimrc .vimrc

## Dependencies
Currently requires:

* `ack`: for more intelligent project searching

## Plugins
* [pathogen.vim](https://github.com/tpope/vim-pathogen): plugin management
* [PreserveNoEOL](https://github.com/vim-scripts/PreserveNoEOL/): preserve EOLs
* [Indent Guides](https://github.com/nathanaelkane/vim-indent-guides): show tab stops
* [camelcasemotion](https://github.com/vim-scripts/camelcasemotion): move inside camelcase and underscored words
* [Gundo](http://sjl.bitbucket.org/gundo.vim/): visual view of vim's undo tree
* [surround.vim](https://github.com/tpope/vim-surround): easier manipulation of "surrounding" characters
* [golang](https://github.com/jnwhiteh/vim-golang): mirror of the official go vim plugins
* [scala](https://github.com/derekwyatt/vim-scala): plugin for Scala development
* [tcomment](https://github.com/tomtom/tcomment_vim): easy code commenting
* [ag.vim](https://github.com/rking/ag.vim): ag search integration
* [pick.vim](https://github.com/thoughtbot/pick.vim): fast file & buffer opening
* [System Copy](https://github.com/christoomey/vim-system-copy): operator-pending function to copy text to the system clipboard

## License
Licensed under the MIT license. See the included LICENSE file.

repository: teddywing/dotvim

repo_name: teddywing/dotvim


text:
# `tomcat-cnb`
The Cloud Foundry Tomcat Buildpack is a Cloud Native Buildpack V3 that provides Apache Tomcat to applications that are WAR files.

This buildpack is designed to work in collaboration with other buildpacks.

## Detection

## Build

## License
This buildpack is released under version 2.0 of the [Apache License][a].

[a]: https://www.apache.org/licenses/LICENSE-2.0

repository: shamus/tomcat-cnb

repo_name: shamus/tomcat-cnb


text:
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](LICENSE)
[![Laravel 5.1](https://img.shields.io/badge/Laravel-5.x-orange.svg?style=flat-square)](http://laravel.com)
[![Packagist Version](https://img.shields.io/packagist/v/smarch/watchtower.svg?style=flat-square)](https://packagist.org/packages/smarch/watchtower)
[![Total Downloads](https://img.shields.io/packagist/dt/smarch/watchtower.svg?style=flat-square)](https://packagist.org/packages/smarch/watchtower)
[![GitHub stars](https://img.shields.io/github/stars/badges/shields.svg?style=social&label=Star)](https://github.com/SmarchSoftware/watchtower)

# The Watchtower
### For Laravel 5.3 use the develop branch. Make sure you add the necessary Shinobi lines to your User model to get the permissions to work.
A front end (GUI) package for the [Caffeinated/Shinobi](https://github.com/caffeinated/shinobi) RBAC authorization system for Laravel **5**.

![enter image description here](http://i.imgur.com/zYBjWsF.png)

This page is intended for installation, please check out the wiki for more information about usage.

* :scroll: [Configuration Options](https://github.com/SmarchSoftware/watchtower/wiki/Configuration-Options)
* :key: [Permissions](https://github.com/SmarchSoftware/watchtower/wiki/Permissions)
* :busts_in_silhouette: [Roles](https://github.com/SmarchSoftware/watchtower/wiki/Roles)
* :bust_in_silhouette: [Users](https://github.com/SmarchSoftware/watchtower/wiki/Users)

## Overview

This package is to administer / manage your roles and permissions tables with the Shinobi role based access control system for Laravel 5.

> :hand: **Note:**
> Shinobi is a required part of this package. This package is merely the GUI front end for the Shinobi package and this Watchtower package does not actually provide any of the authorization functionality. If you don't already have the Shinobi package installed, it will be installed as part of the installation of Watchtower.

It will give you full control over your roles :busts_in_silhouette:, their permissions :key: and the users :bust_in_silhouette: that have access to them. You will be able to add, edit, update, delete and synchronize all three as needed.

Out of the box, Watchtower contains all the views necessary to enable Role & Permissions management.  It also provides the necessary permissions to secure your site so that only those allowed to perform the admin functions are permitted. Of course, this is made possible using Shinobi and, naturally, all views and permissions are configurable so you are free to provide your own views and change the permissions the way your app requires them.

------
##### Example of the user matrix
![The User Matrix](http://i.imgur.com/lZMx20B.png)

## Installation

Depending on whether or not you have already installed Shinobi, your install is pretty straightforward. Install Watchtower, add Service Providers, add Facade, run DB commands. Win.

> :hand: ***Note***
>  Even though Watchtower uses a few packages to properly theme and layout the admin area, they are referenced through [cdnjs.com](https://cdnjs.com/) and are **not installed locally**.
>
>*Watchtower makes use of the following packages : [Bootstrap](http://getbootstrap.com), [Bootstrap theming](http://bootswatch.com), [JQuery](http://jquery.com), [Pace](http://github.hubspot.com/pace/docs/welcome/), [Sweetalert](http://t4t5.github.io/sweetalert/) and [Modernizr](https://modernizr.com/). If you wish to not use the cdn versions and use local versions instead, modify the master.layout file to reflect those changes. (Or alternately, use the config file to point your master.layout to your local copies of those packages.)*

#### :black_square_button: Composer

##### _For Laravel 5.0 - 5.2 you can simply run this line at the command prompt._
     composer require "smarch/watchtower"

##### _For Laravel 5.3 put the following line in your composer.json file._

    "smarch/watchtower": "@dev"

#### :pencil: Service Provider

Once composer has installed the necessary packages for watchtower to function you need to open your laravel config page for service providers and add Watchtower. To properly function you need to have all 3 service providers referenced : Shinobi, [HTML Forms](https://laravelcollective.com/docs/5.1/html) and Watchtower.

*config/app.php*

```php
       /*
        * Third Party Service Providers
        */
        Caffeinated\Shinobi\ShinobiServiceProvider::class, // For RBAC
        Collective\Html\HtmlServiceProvider::class, // For Watchtower Forms to function
        Smarch\Watchtower\WatchtowerServiceProvider::class, // For Watchtower
```

#### :pencil: Facades
While Watchtower itself does not need a facade, one is provided if you wish to use one. However the Shinobi and Forms facades are used heavily by Watchtower so be sure you add them to your Facades.

*config/app.php*

```php
        /*
        * Third Party Service Providers
        */
        'Form'     => Collective\Html\FormFacade::class,  // required for Watchtower Forms
        'HTML'     => Collective\Html\HtmlFacade::class,   // required for Watchtower Forms
        'Shinobi'  => Caffeinated\Shinobi\Facades\Shinobi::class, // For RBAC functions
        //'Watchtower'=> Smarch\Watchtower\WatchtowerFacade::class, // not required, but available

```

#### :card_index: Database Migrations / Seeds

If you did not install Shinobi earlier, you will need to run the migration files to properly set up and create the necessary tables. From your command prompt (wherever you run your artisan commands) enter the following command php artisan vendor:publish and then php artisan migrate. This should properly create your necessary tables AND create the Watchtower config file *(which allows you to define any views / permissions you wish to change from their defaults)*.

```bash
    php artisan vendor:publish
    php artisan migrate
```

> :hand: ***Note*** If you already have your roles and permissions set up, you can skip the following step and just change the Watchtower config file to reflect the permissions it should use to permit functionality.

To permit the ability to restrict and permit access to the various admin areas of Watchtower, you will need to run the Watchtower seeder which will prepopulate your database with permissions and roles.

    php artisan db:seed --class Smarch\Watchtower\Seeds\WatchtowerTableSeeder

#### :memo: Shinobi usage requirements
If you are installing Shinobi now, with Watchtower, you will need to also make the following changes so that you can use Shinobi's RBAC functions instead of Laravel defaulting to its own "Gate" authorization methods. Modify your User model to reflect the following changes _(stripping out Laravel's Authorizable contracts and traits)_ :

```php

    <?php
    namespace App;

    use Illuminate\Auth\Authenticatable;
    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Auth\Passwords\CanResetPassword;
    use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
    use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

    use Caffeinated\Shinobi\Traits\ShinobiTrait;

    class User extends Model implements AuthenticatableContract,
                                        CanResetPasswordContract
    {
        use Authenticatable, CanResetPassword, ShinobiTrait;

```

_For Laravel 5.3 your User model should look like this :_

```php

    <?php

    namespace App;

    use Illuminate\Notifications\Notifiable;
    use Illuminate\Foundation\Auth\User as Authenticatable;

    use Caffeinated\Shinobi\Traits\ShinobiTrait;

    class User extends Authenticatable
    {
        use Notifiable;
        use ShinobiTrait;

```

Once this is all finished, you should be able to go to

### :earth_americas: http://yoursite/watchtower
![](http://i.imgur.com/ou6oses.png)

 and be rewarded with a big ole warning. :smile: That's normal. This shows you that Shinobi is working and properly protecting your admin *(Watchtower)* area. Just login with<EMAIL_ADDRESS>and password *(if you used the db:seed command)* and you will have full access. If you already had a user in your database, log in with that first user to enable access. `By default, the db:seed command will associate the admin role with `user->id = 1` in the database.`

> :hand: **Note** If you have not setup a login redirect yet, and don't have a HOME route and view, you will probably get another route error. Create a route for Home or [redirect your logins](http://laravel.com/docs/5.1/authentication#included-authenticating) or just type the url of http://yoursite/watchtower again.

#### :exclamation: Laravel Authentication Views (login, etc...)

##### Laravel 5.2
Now you can use artisan to make all your auth views and routes using the following command :

    php artisan make:auth

This will generate the routes / views you need for authentication to work for you.

##### Laravel 5.1
Watchtower does not ship enabled _(see note below after routes)_ with the default laravel authentication views/routes, since Laravel removed them in 5.1. However you can find some samples / information from Laravel here : [Laravel Login / Auth Views](http://laravel.com/docs/5.1/authentication#authentication-quickstart) that will provide you with the routes / views necessary to permit login and registration.

You will need the following routes for authentication. (also provided on Laravel auth link above) Copy these into your app/routes.php file _(or wherever you define your routes)_.

	routes.php
```php

	// Authentication routes...
	Route::get('auth/login', 'Auth\AuthController@getLogin');
	Route::post('auth/login', 'Auth\AuthController@postLogin');
	Route::get('auth/logout', 'Auth\AuthController@getLogout');

	// Registration routes...
	Route::get('auth/register', 'Auth\AuthController@getRegister');
	Route::post('auth/register', 'Auth\AuthController@postRegister');

	// Password reset link request routes...
	Route::get('password/email', 'Auth\PasswordController@getEmail');
	Route::post('password/email', 'Auth\PasswordController@postEmail');

	// Password reset routes...
	Route::get('password/reset/{token}', 'Auth\PasswordController@getReset');
	Route::post('password/reset', 'Auth\PasswordController@postReset');
```

> :hand: **Note** As a convenience, the default Laravel auth views are included with Watchtower in the "vendor\smarch\watchtower\src\Views\auth" folder. Simply copy and paste the auth folder to your "root\resources\views" folder on your app to enable them.

#### :trident: Why "Watchtower"?
I've been a DC geek for over 30 years now. Watchtower is the name of the floating spacestation the Justice League used to monitor / administer the super heroes. ....coulda been worse. I was thinking of going with OMAC for a while. :smile:

repository: SmarchSoftware/watchtower

repo_name: SmarchSoftware/watchtower


text:
RANCID Git
======
[![Galaxy](https://img.shields.io/badge/galaxy-samdoran.rancid--git-blue.svg?style=flat)](https://galaxy.ansible.com/samdoran/rancid-git)

This role installs [`rancid-git`](https://github.com/dotwaffle/rancid-git), a fork of RANCID 2 that supports using Git.

Requirements
------------

SSH access to all network devices via the `rancid` user account and password is required. Make sure the target device permits the `rancid` host in any ACLs that protect the management plane.

If you wish you have `rancid` push to any remote repositories, you also need the SSH public key installed on any remote git repository/repositories as well as commit access to all git remotes.

Role Variables
--------------

This role will not work "out of the box" — you will need to define `rancid_network_devices` and `rancid_clogin` at a minimum. If you wish to have `rancid` push to remotes or send emails, you should also define `rancid_git_remotes` as well as `rancid_notify_groups`.

Defining values in `rancid_clogin` can be rather tricky if you use different usernames and/or passwords for your devices (which isn't a bad idea). One way to solve this is to create a dictionary that stores the passwords (which should be an [Ansible Vault](http://docs.ansible.com/ansible/playbooks_vault.html)):

```yaml
# This file is encrypted with ansible-vault
vault_rancid_passwords:
  core-router-01:
    password: "all-your-device-are-belong-to-us"
    enable: "i-am-not-an-enabler"

  core-switch-01:
    password: "BigGnarlyPassword"
    enable: "enable-babel-fo-fabel"

    ...
```

And reference those in `rancid_clogin`:

```yaml
# This is a host_var, or vars/main.yaml, etc.
rancid_clogin:
  - directive: user
    glob: "*"
    values:
      - rancid

  - directive: password
    glob: "core-router-01"
    values:
      - "{{ vault_rancid_passwords['core-router-01']['password'] }}"
      - "{{ vault_rancid_passwords['core-router-01']['enable'] }}"

  - directive: password
    glob: "core-switch-01"
    values:
      - "{{ vault_rancid_passwords['core-switch-01']['password'] }}"
      - "{{ vault_rancid_passwords['core-switch-01']['enable'] }}"
```

| Name              | Default Value       | Description          |
|-------------------|---------------------|----------------------|
| `rancid_version` | 2.3.9-2 | Version number in rancid-git rpm filename. |
| `rancid_repo_dir` | `/var/rancid/git` | Where the repository will go. |
| `rancid_home` | `/var/rancid` | Home directory for rancid user. |
| `rancid_umask` | `027` | Umask used on files created by RANCID. |
| `rancid_tmpdir` | `/tmp` | Where RANCID keeps temp files. |
| `rancid_acl_sort` | `[undefined]` | Whether or not to sort ACLs. |
| `rancid_nopipe` | `[undefined]` |  |
| `rancid_filter_pwds` | `NO` | How much to filter passwords from the config files. |
| `rancid_nocommstr` | `NO` | Whether or not to remove SNMP community strings. |
| `rancid_maxrounds` | `4` | How many times to retry failed devices.  |
| `rancid_oldtime` | `24` | How many hours befoure complaining about devices that cannot be reached. |
| `rancid_locktime` | `4` | How many hours before complaining a collection group's lockfile is hung. |
| `rancid_par_count` | `5` | Number of devices that can collect simultaneously. |
| `rancid_maildomain` | `[undefined]` | Only needed if you want to adjust the mail delivery settings based on domain. |
| `rancid_htmlmails` | `NO` | Whether to send colorized diffs in email. |
| `rancid_mailheaders` | `Precedence: bulk` | How to mark messages sent by RANCID. |
| `rancid_git_name` | `rancid` | Name used for git commits. |
| `rancid_git_email` |<EMAIL_ADDRESS>| Email used for git commits. |
| `install_rancid` | `False` | Whether or not to install rancid. This gets changed via set_fact when `rancid_version` does not match the installed version. |
| `rancid_list_of_groups` | `firewalls routers switches` | Space delimited list of groups added to `LIST_OF_GROUPS` in `/etc/rancid/rancid.conf`. This is autmatically generated from `rancid_network_devices` |
| `rancid_notify_groups` | (see `defaults/main.yml`) | For each group in LIST_OF_GROUPS, who gets emailed the diffs. Added to `/etc/aliases`. |
| `rancid_network_devices` | (see `defaults/main.yml`) | Create one `key` per device group, and one entry per network device witch `name`, `type`, `ip`, and `state`. Refer to RANCID documentation for appropriate values for `type`. |
| `rancid_clogin` | (see `defaults/main.yml`) | Create entries in the `.cloginrc` file. |
| `rancid_git_remotes` | `[undefined]` | Repository/repositories where changes are pushed. See `defaults/main.yml` for details. |
| `rancid_ssh_private_key` | (see `defaults/main.yml`) | Multiline variable containing the SSH private key used by the `rancid` account. If this variable is not defined, a key will be created. **This should be stored in an Ansible vault.** |
| `rancid_ssh_public_key` | (see `defaults/main.yml`) | SSH pubilc key used by the `rancid` user. If `rancid_ssh_private_key` is not defined, a key will be generated. |
| `rancid_configure_postfix` | `False` | Whether to configure postfix. Only use if email notifications are desired and email _is not_ configured with another role. |
| `rancid_relayhost` | `[undefined]` | IP or FQDN of the email relay host. |

Dependencies
------------

None.

Example Playbook
-------------------------
    - name: Setup RANCID
      hosts: rancid.acme.com
      sudo: yes

      vars:
          rancid_ssh_public_key: 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhv9b... rancid'
          rancid_git_name: Rancid
          rancid_git_email<EMAIL_ADDRESS>
        roles:
          - rancid

License
-------

MIT

repository: samdoran/ansible-role-rancid-git

repo_name: samdoran/ansible-role-rancid-git


text:
---
title: 'Getting healthy.. the slow way'
date: '2019-12-15T17:48:32+05:30'
status: publish
permalink: /2019/12/15/getting-healthy-the-slow-way
author: vishy
description: ''
type: post
id: 4040
featured_image: ../../../../uploads/2019/12/Screen-Shot-2019-12-15-at-4.59.04-PM.png
categories:
    - Habits
    - Running
tags:
    - asthalin
    - asthma
    - ayurveda
    - bangalore
    - 'doctor jayarooba'
    - pranayama
    - 'shree varma'
    - siddha
    - symbicort
post_format: []
---
“*Nobody wants to become rich slowly.”* – Warren Buffet

Replace “rich” with “healthy” and the quote will still ring true.

In late 2008, after 1.5 decades of asthma-free bliss, my top worry as I settled into Bangalore living was “how the heck would I manage in [India’s asthma capital?](http://www.ulaar.com/2008/08/29/asthma-bangalore-and-me/)“

My answer was to start running.

To the outsider (including many running friends), running as an antidote to my asthma must have worked. How else to explain a decade plus of (mostly uninterrupted) marathon->ultra running?

For the first six years, I still had to keep the inhaler handy and would use it regularly in the winter months. Considering that asthma is a chronic condition, I had no business complaining. But I fretted.

Three years ago, a bout of bronchitis felled me and asthma returned with a vengeance. The regulation Asthalin inhaler no longer sufficed. For over a year, I had to use the dreaded (to me!) Symbicort inhaler. Mildly depressed, I kept running through all this. My running performance suffered but at least I was still running. As a peculiar counterpunch, I ran into the arms of ultra running with *“can’t run fast so let me run long.”* A self-supported 12-hour run and a 24 hour stadium race were some accidental accomplishments during this insanity.

As a wise person once remarked *“you can’t outrun a bad diet*.” Running (or even *ultra* running) wasn’t the solution to my problem. But what was it then?

The first clue was actually in my friend’s email (circa 2008 before I moved) but I didn’t pay attention. In my second month in Bangalore I fell sick — some combination of flu and congestion that made the doctor quiz me about my asthma. As she wrote down the usual prescription of allopathy medicines, she looked me straight in the eye and said *“Take these medicines for now but you really need to start doing pranayama regularly. That’s the only sure way of avoiding asthma attacks.”*

I summarily ignored her advice because.. hey.. it was too simplistic and, besides, I was going to start running.

Sometime in April 2017, a friend philosopher guide made a cogent case to try out [Shree Verma](http://shreevarma.org/system) – an ayurveda/siddha treatment system. By a quirk of fate, a business trip took me to Chennai subsequently and I met the good doctor in their main clinic. Thus began a 6 month (approx.) treatment. For reasons I don’t quite recall, I started logging the following data on a daily basis: Peak flow, running/workout details, and inhaler puffs (Asthalin or Symbicort).

This diligent logging continued till March 2018. Below are some trends from May 2017 to Feb 2018:

- May-Jul 2017
  - 4-5 inhaler puffs a month
  - Min, Max time between inhaler days: \[2, 14\] days
  - Max peak flow #: 460
  - Min peak flow #: 320
- *Aug was inhaler free month*
- Sep-Nov 2017
  - \[1,3,3\] inhaler puffs in Sep, Oct, Nov respectively
  - Min, Max time between inhaler days: \[1, 29\] days
  - Max peak flow #: 400
  - Min peak flow #: 320
- Dec 2017-Feb 2018
  - \[3,2,3\] inhaler puffs in Dec, Jan, Feb respectively
  - Min, Max time between inhaler days: \[2, 22\] days
  - Max peak flow #: 420
  - Min peak flow #: 220

As the [March 2018](http://www.ulaar.com/wp-content/uploads/2019/12/Screen-Shot-2019-12-15-at-4.59.04-PM.png) snapshot shows, I started Pranayama on 17th March. April onwards, I changed my logging to only include entries if I used the inhaler. The next two entries in 2018 read:

- Aug 20/21: *Asthalin inhaler twice after high fever & insect bite and antibiotics usage*
  - Related observation in Aug: very low Pranayama practice
- Oct 2-8 (week before Malnad): *Symbicort inhaler 2-3 times including on race day (preceded by 2 rounds of antibiotics)*

Whether I use March or Oct 2018 as the start of my counter, it’s been 21 or 14 months of *asthma-inhaler-free living* since I earnestly began my pranayama practice.

Now here’s the most interesting Shree Verma bit: pranayama was always part of the prescription in Apr 2017 but it was tabled under the non-mandatory section. I’m not saying the good doctor said that but rather it was *my* interpretation. I had masterfully concluded – any medicine that didn’t need to be ingested wasn’t important.

It was only during my third (and final) consultation with the good Doctor Jayarooba that things came to light. Here’s how that conversation went:

She: “Looks like I’ll have to re-prescribe the strong tonic I’ve been giving you.”

Me: “Ok”

She: “How regularly are you doing pranayama?”

Me: (pregnant silence) “Did I HAVE to do that also?”

She (ever politely but probably thinking “what a dunce”): “Yes of course. These tonics and medicines will boost your immunity but the final cure will only come with Pranayama!”

Me: (meekly) “Ok – I’ll start the practice.”

Thank you Dr. Jayarooba. Thank you good Dr. X (who saw me in the Adobe office, Sep 2008).

repository: ulaari/ulaar

repo_name: ulaari/ulaar


text:
---
comments: true
date: 2008-05-27 16:36:54
layout: post
slug: templates-in-aspnet-user-controls
title: Templates in ASP.NET User Controls
wordpress_id: 25
tags:
- .NET
- Programming
---

Some of the standard ASP.NET server controls allow the user to specify a template containing custom markup that will be used inside the server control. It is possible to create ".ascx" user controls that make use of this type of template. The [MSDN documentation explains how](http://msdn.microsoft.com/en-us/library/36574bf6.aspx).


text:
---
title: "Microsoft Manual of Style for Technical Communication"
linkTitle: "3.1 Microsoft Style Guide"
weight: 1
description: >
 This section provides an overview of some of the more important best practice take-aways from the [Microsoft Manual of Style for Technical Communication](https://docs.microsoft.com/en-us/style-guide/welcome/).
---

## Voicing Principles

The *Microsoft Style Guide* recommends three guiding principles on voicing:

* **Warm and Relaxed**
* **Crisp and Clear**
* **Ready to Lend a Hand**

It should be noted, however, that for our purposes in writing per regulatory standards, a **Warm and Relaxed** tone should not be the crux of our writing. This is not to say we should write in a way that feels robotic, but rather we should understand that the **Crisp and Clear** and **Ready to Lend a Hand** principles should be priority.

Perform the following in order to accomplish these voicing principles:

* **Get to the point fast.** *Start with the key takeaway. Put the most important thing in the most noticeable spot. Make choices and next steps obvious. Give people just enough information to make decisions confidently. Don't get in the way.*

* **Simpler is better.** *Everyone likes clarity and getting to the point. Break it up. Step it out. Layer. Short sentences and fragments are easier to scan and read. Prune every excess word.*

* **Place yourself in the End User's shoes.** *Consider all the ways in which an audience could receive your instructions. What level of knowledge might they possess when performing this process? Ensure ALL information is provided that could be of use. **It is always easier to remove unnecessary content at a later revision than to perform a task without all the content present.***

## Acronyms

If you've spent any time at Accuray, you're probably well aware of the fact that we use a *lot* of acronyms (see [this section](https://github.com/taddieken95/Accuray_Tech_Comm_Guide/blob/master/Chapter%203:%20Voicing/Section%203:%20Accuray%20Terms.md) for a comprehensive guide to acronyms at Accuray). Follow the following guidelines when referencing acronyms in documentation:

* **Spell out the term for clarity.** It is best practice to type out the meaning of an acronym before solely referencing an acronym in a document.

> **EXAMPLE:** *The Multi-Leaf Collimator (MLC) is a crucial aspect of dose delivery to patients. The MLC is assembled here at 1209 Deming Way.*

* **Don't introduce acronyms that are only used once.** If an acronym is only referenced once in a document, it is better to simply spell it out.

* **Avoid acronyms in titles and headings.** Especially if this is the first time an acronym is being referred to in a document. Acronyms in titles or headings can confuse the End User.

* **Avoid the possessive form.** Avoid any anthromorphisms in general in the realm of Technical Communication.

* **Don't create acronyms that have not been officially established from Engineering.** It is important to remember that we are not the SME, and that acronyms we generate have the potential to confuse the End User. *Only* reference acronyms that have been recognized by Engineering.

## Gender-Free Communication

> **NOTE:** This section is in tangent with the *Bias-free Communication* section of the *Microsoft Style Guide*; however, it has been slightly repurposed to specifically touch on the needs of Accuray technical communication.

A large aspect of writing with the End User in mind is considering the multitude of backgrounds they may come from. It is because of this that the Accuray technical writer should seek to write in a manner that is free of bias. Consider the following when attempting to write bias-free communication:

### Use gender-neutral alternatives for common terms.

|**Use this**| **In place of this**|
|------------|---------------------|
|chair, moderator| chairman|
|operates, staffs| mans|
|workforce, staff, personnel|manpower|

### Don't use *he, him, his, she, her*, or *hers* in generic references

Instead:

* Rewrite to use a generic third person, such as *the operator* or *the technician*

> **NOTE:** *Microsoft Manual of Style* recommends the use of second person. However, at this time, Accuray standards and practices still recommend against this practice. **Do not use the second person in writing Accuray documentation.**

* Use *person* or *individual*
* Rewrite the sentence to have a plural noun and pronoun

> **NOTE:** If it is not possible to write around the problem, it is acceptable to use a plural pronoun (they, their, or them) in generic reference to a single person.

## Grammar and Parts of Speech

### Verbs

The prevailing rule of thumb for verb usage in technical documentation is **using precise verbs in the right way helps you to write clear and simple sentences.** Consider the following when it comes to the use of verbs in technical documentation:

#### Verb Tense

In the present tense, the action is happening now. The present tense is often easier to read and understand than the past or future tense. It is the best choice for most content.

#### Active and Passive Voice

The mood of a verb expresses the writer's intent. Most of the time, use the indiciative mood. It's crisp and straightforward without being bossy. Don't switch moods within a sentence.

|**Mood**|**Use for**|**Examples**|
|--------|-----------|------------|
|**Indicative**|Statements of fact, questions, assertions, and explanations|Style sheets are powerful tools for formatting complex documents.|
|**Imperative**|Instructions, procedures, direct commands, requests, and headings for columns that list customer actions (*this will likely be most of the content used in your Accuray technical documentation*)|Enter a file name, then save the file.|
|**Subjunctive**|Wishes, hypotheses, and suggestions (**AVOID THESE, unless providing an optional "Tip"**)|We recommend that you be careful about opening email attachments.|

Voice is either active or passive. Keep it active when possible.

* In active voice, the subject of the sentence performs the action.
* In passive voice, the subject is the receiver of the action.

#### Verb Agreement

Verbs have singular and plural forms. Use the verb form that agrees with the subject of the sentence in number.

* **A group of things:** The verb is singular
* **Two or more singular things connected by *and*:** The verb is plural
* **Two or more singular things connected by *or*:** The verb is Singular
* **A singular thing and a plural thing connected by *or*:** Singular or plural, to match the closest subject

### Capitalization and Proper Nouns

Proper nouns are one of a kind - unique people, places, and things. Capitalize proper nouns wherever they occur.

Proper nouns include:

* Names and titles of individuals
* Unique, named places, organizations, events, shows, corporate and philanthropic programs, and other things
* Product, service, app, and tool names
* Trademarks
* Titles of books, songs, and other published works
* Managed standards, such us Bluetooth

If there's more than one of a thing, it's a common noun. For example, there are lots of chief operating officers, so *chief operating officer* is a common noun. There is only one *Accuray Inc., Chief Operating Officer*, so that's a proper noun.

Don't capitalize common nouns unless they begin a sentence or the situation calls for title-style capitalization. Most technology concepts, product categories, devices, and features are common nouns - not proper nouns.

Capitalize technology terms as proper nouns only when:

* You need to distinguish a component or product, such as CyberKnife Linear Accelerator, from a general technology with a similar name, such as a linear accelerator.
* The terms are typically capitalized in the industry. Search [The American Heritage Dictionary](https://ahdictionary.com/), reputable internet sites, and industry-specific dictionaries. **Do not rely on unedited websites.**

## Word Choice

### Use simple words, concise sentences

Make every word count. Concise, clear sentences save sapce, are easy to understand, and facilitate scanning. Use simple words with precise meanings, and remove words that don't add substance. Use proper judgement to avoid sounding abrupt.

* Choose simple verbs without modifiers. Avoid weak or vague verbs such as *be, have, make* and *do*.

|**Use this**|**Not this**|
|------------|------------|
|use|utilize, make use of|
|remove|extract, take away, eliminate|
|tell|inform, let know|
|right, left|right-hand, left-hand|

* Don't use two (2) or three (3) words when one will do.

|**Use this**|**Not this**|
|------------|------------|
|to|in order to, as a means to|
|also|in addition|
|connect|establish connectivity|

* Whenever possible, choose words that have one (1) clear meaning

|**Use this**|**Not this**|
|------------|------------|
|*Because* you created the table, you can change it.|*Since* you created the table, you can change it.|

* Omit unnecessary adverbs - words that describe how, when, or where. Unless they're important to the meaning of a statement, leave them out.

**Examples:**
quite
very
quickly
easily
effectively

* Use one (1) term consistently to represent one (1) concept.

* Use words that can be both nouns and verbs carefully - *file, post, mark, screen, record,* and *report*, for example. Use the sentence structure and context to eliminate ambiguity.

path: /userguide/content/en/docs/3.0 Voicing/3.1 Microsoft Style Guide.md

filename: 3.1 Microsoft Style Guide.md


text:
# granchild

quantized granulation

https://vimeo.com/514823601

granchild is a granular grandchild. this script was born out of and inspired by @cfd90's clever [twine](https://llllllll.co/t/twine-random-granulator/41703) and @justmat's inspiring [mangl](https://llllllll.co/t/mangl/21066/307), both themselves based on @artfwo's amazing [glut](https://llllllll.co/t/glut/21175) script, which itself was inspired by @kasperskov's [grainfields](https://llllllll.co/t/grainfields-8-voice-granular-synthesizer-for-128-grids-m4l-update/5164). i consider this script to be a grandchild of glut, and child of the other two - using some ideas from twine (randomization in parameters) and some code from mangl (lfos, greyhole integration) and the engine of glut, to make a granular sequencer to fit my personal musical journey.

their are a lot of granulation scripts based on glut, here's what's different about *granchild*:

- "jitter" and "spread" of granulation always oscillate, with random frequencies
- "size" and "density" of granulation are quantized, and easily accessed (see layout)
- sequencer is quantized (using @tyleretters's lattice)
- voices limited to only 4
- samples mapped to 18 keys
- can record live input
- granulation can utilize stereo samples
- each voice has two scenes that can be toggled between

reference in that demo video above - here are the four samples used. first two are things i recorded with [mx.samples](https://llllllll.co/t/mx-samples/41400), the other two are samples @tehn included on the default norns:

### Requirements

- norns
- grid optional

### Documentation

here's how the buttons are laid out. use e2 and e3 on the norns to move around and k2/k3 to toggle things. the grid just mirrors the norns screen, so this script works just fine without a grid. _grid 64 users:_ hold k1 to switch between the the first and second pair of voices.

![granchild_grid-01](https://user-images.githubusercontent.com/6550035/109594838-4daa8200-7ac8-11eb-8571-51291b08195b.jpg)

_note:_ when you use the record button for live input, all recordings are automatically saved permanently in `~/dust/audio/granchild`.

### Old versions

![image](https://user-images.githubusercontent.com/6550035/109594890-63b84280-7ac8-11eb-8d8c-17651c2fe985.png)

### Install

from maiden:

```
;install https://github.com/schollz/granchild
```

repository: schollz/granchild

gha_language: Lua

repo_name: schollz/granchild


text:
## Current Problems

	The BBB board Revision used is REV. A (0x0A5C).

#### SC16IS7xx Driver Problem
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drivers/tty/serial/sc16is7xx.c?h=v5.7-rc5

The problem in details is described here:

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/tty/serial/sc16is7xx.c?h=next-20200515&id=4a37c0fcf5d403e7d9f5309ea970ea3c9074b5d8

```
author	Gustavo A. R. Silva<EMAIL_ADDRESS>2020-02-12 18:46:11 -0600
committer	Greg Kroah-Hartman<EMAIL_ADDRESS>2020-02-13 12:00:23 -0800
commit	4a37c0fcf5d403e7d9f5309ea970ea3c9074b5d8 (patch)
tree	36ec2b06790facbd2991ffc6423ea8aa463a792c /drivers/tty/serial/sc16is7xx.c
parent	2f202d03a5785ffaf894f9503193a3767ff88d88 (diff)
download	linux-next-4a37c0fcf5d403e7d9f5309ea970ea3c9074b5d8.tar.gz
serial: sc16is7xx: Replace zero-length array with flexible-array member
The current codebase makes use of the zero-length array language
extension to the C90 standard, but the preferred mechanism to declare
variable-length types such as these ones is a flexible array member[1][2],
introduced in C99:

struct foo {
        int stuff;
        struct boo array[];
};

By making use of the mechanism above, we will get a compiler warning
in case the flexible array does not occur last in the structure, which
will help us prevent some kind of undefined behavior bugs from being
inadvertently introduced[3] to the codebase from now on.

Also, notice that, dynamic memory allocations won't be affected by
this change:

"Flexible array members have incomplete type, and so the sizeof operator
may not be applied. As a quirk of the original implementation of
zero-length arrays, sizeof evaluates to zero."[1]

This issue was found with the help of Coccinelle.

[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
[2] https://github.com/KSPP/linux/issues/21
[3] commit<PHONE_NUMBER>2f ("cxgb3/l2t: Fix undefined behaviour")

Signed-off-by: Gustavo A. R. Silva<EMAIL_ADDRESS>Link<EMAIL_ADDRESS>Signed-off-by: Greg Kroah-Hartman<EMAIL_ADDRESS>Diffstat (limited to 'drivers/tty/serial/sc16is7xx.c')
-rw-r--r--	drivers/tty/serial/sc16is7xx.c	2

1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c
index 7d3ae31cc720..06e8071d5601 100644
--- a/drivers/tty/serial/sc16is7xx.c
+++ b/drivers/tty/serial/sc16is7xx.c
@@ -329,7 +329,7 @@ struct sc16is7xx_port {
	struct task_struct		*kworker_task;
	struct kthread_work		irq_work;
	struct mutex			efr_lock;
-	struct sc16is7xx_one		p[0];
+	struct sc16is7xx_one		p[];
 };

static unsigned long sc16is7xx_lines;
```
#### SERIAL_DEV_CRTL_TTYPORT config option
https://cateee.net/lkddb/web-lkddb/SERIAL_DEV_CTRL_TTYPORT.html

Just disabling CONFIG_SERIAL_DEV_CTRL_TTYPORT gives a working /dev/ttySC0

	  │ Symbol: SERIAL_DEV_CTRL_TTYPORT [=n]
	  │ Type  : bool
	  │ Prompt: Serial device TTY port controller
	  │   Location:
	  │     -> Device Drivers
	  │       -> Character devices
	  │ (1)     -> Serial device bus (SERIAL_DEV_BUS [=y])
	  │   Defined at drivers/tty/serdev/Kconfig:14
	  │   Depends on: TTY [=y] && SERIAL_DEV_BUS [=y]=y

#### Discourage use of fdtdump
https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=548aea2c436ab47ff09ba9ec7e902e971bbc399c

#### Discourage use of dtc -I fs /proc/device-tree

Another interim commit, with some overlay sketches, close to the final solution.

Here is the command: dtc -I fs /proc/device-tree output with basic root Device Tree structure!

	root@arm:/home/debian# dtc -I fs /proc/device-tree
	<stdout>: Warning (status_is_string): /ocp/interconnect@48000000/segment@0/target-module@40000:status: property is not a string
	<stdout>: Warning (status_is_string): /ocp/interconnect@48000000/segment@0/target-module@40000/timer@0:status: property is not a string
	<stdout>: Warning (status_is_string): /ocp/interconnect@44c00000/segment@200000/target-module@31000:status: property is not a string

	...

	<stdout>: Warning (gpios_property): /leds/led3:gpios: cell 0 is not a phandle reference
	<stdout>: Warning (gpios_property): /clk_mcasp0:enable-gpios: cell 0 is not a phandle reference
	/dts-v1/;

	/ {
	Segmentation fault

#### U-BOOT used

U-Boot used:

	U-Boot 2019.04 (Mar 12 2020 - 08:25:14 +0100)

	CPU  : AM335X-GP rev 2.0
	I2C:   ready
	DRAM:  512 MiB
	No match for driver 'omap_hsmmc'
	No match for driver 'omap_hsmmc'
	Some drivers were not found
	Reset Source: Global external warm reset has occurred.
	Reset Source: Power-on reset has occurred.
	RTC 32KCLK Source: External.
	MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
	Loading Environment from EXT4... ** File not found /boot/uboot.env **

	** Unable to read "/boot/uboot.env" from mmc0:1 **
	Board: BeagleBone Black
	<ethaddr> not set. Validating first E-fuse MAC
	BeagleBone Black:
	BeagleBone: cape eeprom: i2c_probe: 0x54:
	BeagleBone: cape eeprom: i2c_probe: 0x55:
	BeagleBone: cape eeprom: i2c_probe: 0x56:
	BeagleBone: cape eeprom: i2c_probe: 0x57:
	Net:   eth0: MII MODE
	cpsw, usb_ether
	Press SPACE to abort autoboot in 0 seconds

U-Boot Factory flash parameters:

	=> i2c md 0x50 0.2 0x10
	0000: aa 55 33 ee 41 33 33 35 42 4e 4c 54 30 41 35 43    .U3.A335BNLT0A5C

	=> print
	board=am335x
	board_eeprom_header=undefined
	board_name=A335BNLT
	board_rev=0A5C
	board_serial=2813BBBK4802


text:
# Creator

Rails engine for creating file.

## Usage

Create `txt` file with 'text' data in default directory `./public/creator/`
```sh
rake creator['text']
```

Create `txt` file with 'text' data in specified directory
```sh
rake creator['text','path/to/dir/']
```

Create file with specified format
```sh
rake creator['text',,'doc']
```

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

```ruby
gem 'creator'
```

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

Or install it yourself as:
```bash
$ gem install creator
```

## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/BohdanChaban/creator.

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

repository: BohdanChaban/creator

repo_name: BohdanChaban/creator


text:
# Homework 1: Data basics

Due: 1/12/2016

##Problem:

- Obtain the CSV (comma separated variable) file containing the counts of bicycles crossing the Fremont Bridge since 2012 (as described here).
- Create a project directory with subdirectories for data and analysis, and create a README file.
- Download the data from here. Put the it into the data directory.
- Create an iPython Notebook to analyze these data.

In the notebook:

 1. Isolate the 2015 data, creating fields for date, hour, and count;
 2. use python matplotlib to plot the counts by hour;
 3. compute the hourly average counts;
 4. determine what is the busiest hour of the day.

repository: gshguru/uwseds

repo_name: gshguru/uwseds


text:
# XMPP Server Benchmarks

[![Build Status](https://travis-ci.org/mweibel/xmpp-server-benchmarks.png?branch=master)](https://travis-ci.org/mweibel/xmpp-server-benchmarks)

This repository should evolve to a fully automated server benchmark suite which
tests various example scenarios using [tsung](https://github.com/processone/tsung).

It's currently in a very early stage, but if you'd like that, you're welcome to
contribute.

## Testing the setup

To see whether the playbook works is using [Vagrant](http://www.vagrantup.com)
and testing the automated provisioner.

To test using Vagrant, you need a working Virtualbox and Vagrant setup.
Then:

```
xmpp-server-benchmark$ cd provisioning
xmpp-server-benchmark/provisioning$ vagrant up
```

Repeated provisions you can run using:

```
xmpp-server-benchmark/provisioning$ vagrant provision
```

## Running on ec2

Make sure you have `boto` (`python-boto`) installed before you proceed.

You can either [create a file `~/.boto`](http://docs.pythonboto.org/en/latest/getting_started.html#configuring-boto-credentials)
for your AWS access/secret keys or specify it on the commandline using `AWS_ACCESS_KEY` and `AWS_SECRET_KEY`.

After that, you should be able to run the benchmarks using:

```
$> AWS_REGION=eu-west-1 ansible-playbook -i provisioning/ec2 provisioning/ec2.yml
```

Replace the region with your preferred AWS region.

The default configuration will provision and run the tests on 1 tsung / 1 xmpp server.
If you want to test with more, start the provisioning like this and replace the two counts
with want you'd like to have:

```
$> AWS_REGION=eu-west-1 ansible-playbook -i provisioning/ec2 --extra-vars "client_count=1 server_count=3" provisioning/ec2.yml
```

## Contributing scenarios
In order to contribute a scenario you need to make three changes:

1. Add your scenario template as a [jinja2 template](http://jinja.pocoo.org/docs/dev/templates/) to the directory `provisioning/roles/scenarios/templates/`
2. Let the `scenarios` role copy your template on provisioning by adding an entry to `provisioning/roles/scenarios/tasks/main.yml`
3. Add your scenario to the `enabled_scenarios` list in `provisioning/group_vars/all`

## Contributing servers to test
Please have a look at an existing server setup in order to see how to do it.

1. Take a look into the `ejabberd` role (`provisioning/roles/ejabberd`)
2. Add your own role (or roles) (possibly by reusing one from [ansible galaxy](https://galaxy.ansible.com))
3. Add the new role to `provisioning/setup.yml`
4. Configure the server as enabled in `provisioning/group_vars/all` similar to existing entries

## ToDo

- [x] Basic ansible & vagrant setup
- [x] Automated ejabberd setup incl. config
- [x] Automated MongooseIM setup incl. config
- [x] Basic tsung scenario for testing
- [x] Automated start of configured servers based on what to test & test them
- [x] Automated collection of tsung results back from the testing server
- [x] EC2 setup
- [ ] Validate results are correct
- [ ] Automate publishing of reports on a GH-Page (maybe)
- [ ] Automated Prosody setup incl. config
- [ ] Automated Tigase setup incl. config

repository: mweibel/xmpp-server-benchmarks

repo_name: mweibel/xmpp-server-benchmarks