text:
# Developing AWS SAM Applications with the AWS Toolkit For Visual Studio Code

This project contains source code and supporting files for a serverless application that you can locally run, debug, and deploy to AWS with the AWS Toolkit For Visual Studio Code.

A "SAM" (serverless application model) project is a project that contains a template.yaml file which is understood by AWS tooling (such as SAM CLI, and the AWS Toolkit For Visual Studio Code).

## Writing and Debugging Serverless Applications

The code for this application will differ based on the runtime, but the path to a handler can be found in the [`template.yaml`](./template.yaml) file through a resource's `CodeUri` and `Handler` fields.

AWS Toolkit For Visual Studio Code supports local debugging for serverless applications through VS Code's debugger. Since this application was created by the AWS Toolkit, launch configurations for all included handlers have been generated and can be found in the menu next to the Run button:

* lambda-python3.9:HelloWorldFunction
* API lambda-python3.9:HelloWorldFunction

You can debug the Lambda handlers locally by adding a breakpoint to the source file, then running the launch configuration. This works by using Docker on your local machine.

Invocation parameters, including payloads and request parameters, can be edited either by the `Edit SAM Debug Configuration` command (through the Command Palette or CodeLens) or by editing the `launch.json` file.

AWS Lambda functions not defined in the [`template.yaml`](./template.yaml) file can be invoked and debugged by creating a launch configuration through the CodeLens over the function declaration, or with the `Add SAM Debug Configuration` command.

## Deploying Serverless Applications

You can deploy a serverless application by invoking the `AWS: Deploy SAM application` command through the Command Palette or by right-clicking the Lambda node in the AWS Explorer and entering the deployment region, a valid S3 bucket from the region, and the name of a CloudFormation stack to deploy to. You can monitor your deployment's progress through the `AWS Toolkit` Output Channel.

## Interacting With Deployed Serverless Applications

A successfully-deployed serverless application can be found in the AWS Explorer under region and CloudFormation node that the serverless application was deployed to.

In the AWS Explorer, you can invoke _remote_ AWS Lambda Functions by right-clicking the Lambda node and selecting "Invoke on AWS".

Similarly, if the Function declaration contained an API Gateway event, the API Gateway API can be found in the API Gateway node under the region node the serverless application was deployed to, and can be invoked via right-clicking the API node and selecting "Invoke on AWS".

## Resources

General information about this SAM project can be found in the [`README.md`](./README.md) file in this folder.

More information about using the AWS Toolkit For Visual Studio Code with serverless applications can be found [in the AWS documentation](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/serverless-apps.html) .

gha_language: Jupyter Notebook


text:
---
layout: default
---

# 1994-08-13 - WWW> ANNOUNCE: PGP Encrypted Mosaic Sessions for Purchases (fwd)

## Header Data

From: "Robert A. Hayden"<EMAIL_ADDRESS>To: Cypherpunks Mailing List<EMAIL_ADDRESS>Message Hash: 164306858cf52793693bdea2ac205aa818dfe5ed0f1f167e0e9f9122b05bac5e

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1994-08-13 16:00:53 UTC

Raw Date: Sat, 13 Aug 94 09:00:53 PDT

## Raw message

```
{% raw  %}From: "Robert A. Hayden"<EMAIL_ADDRESS>Date: Sat, 13 Aug 94 09:00:53 PDT
To: Cypherpunks Mailing List<EMAIL_ADDRESS>Subject: WWW> ANNOUNCE: PGP Encrypted Mosaic Sessions for Purchases (fwd)
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

Forwarded from Net-Happenings...

---------- Forwarded message ----------
Date: Fri, 12 Aug 1994 10:23:58 -0400
SENDER: Guy H. T. Haskin<EMAIL_ADDRESS>Subject: WWW> ANNOUNCE: PGP Encrypted Mosaic Sessions for Purchases

-----BEGIN PGP SIGNED MESSAGE-----

The NetMarket Company is now offering PGP-encrypted Mosaic sessions for
securely transmitting credit card information over the Internet.  Peter
Lewis wrote an article on NetMarket on page D1 of today's New York Times
(8/12/94).  For more information on NetMarket, connect to

	http://www.netmarket.com/

or, 	telnet netmarket.com

There is no charge to browse around the service and no charge to set
up an account.  The NetMarket Company is currently offering CDs from
Noteworthy Music and flowers from 800-THE-ROSE.  If you do not have access
to a PGP-capable version of X Mosaic, NetMarket also allows accounts to be
set-up toll-free by calling<PHONE_NUMBER> or by sending PGP encrypted
e-mail to<EMAIL_ADDRESS>
NetMarket was able to offer this service because Phil Zimmerman's PGP
is now free and available for personal use and because support for
encryption functions had been added to the recent versions of X Mosaic
software from the NCSA.  NetMarket has secured a commercial license
for PGP, configured our server to allow encrypted transactions and
provided directions for configuring X Mosaic and exchanging public
keys.

For more information on NetMarket, please e-mail or finger
<EMAIL_ADDRESS>or use the automated comments page after connecting to
our server.  NetMarket's public key is available by fingering
<EMAIL_ADDRESS>and on our WWW server.

- --
<EMAIL_ADDRESS>(Guy H. T. Haskin)| Noteworthy Music on the Internet
The NetMarket Company               | Multimedia interface to 17,000+ CDs
www: http://www.netmarket.com/      | finger/email<EMAIL_ADDRESS>ftp/telnet/gopher: netmarket.com    | voice:603-881-3777  fax:603-881-3776

-----BEGIN PGP SIGNATURE-----
Version: 2.7

iQCVAgUBLkuCw8ov4aYyIJbZAQFcuAP+O4LTod9047nKuubRtVeH/kwcp/0At4To
3C5cee6jUb/2ETzavoDyRz3X4edsMzOgCtvBtmMB1tuqqBSMs0xh0eXnUiQ6oRTI
JSu9Z/UmIBofUPC5lGd9gyoMjVJaVv41R8SMI1R9XD9WBFwlyrAifimiLo6zs4ML
tqnXeAJ4F54=
=jBCt
-----END PGP SIGNATURE-----

{% endraw %}
```

## Thread

+ Return to [August 1994](/archive/1994/08)

+ Return to "["Robert A. Hayden" <hayden@vorlon.mankato.msus.edu>](/authors/robert_a_hayden_hayden_at_vorlon_mankato_msus_edu_)"

+ 1994-08-13 (Sat, 13 Aug 94 09:00:53 PDT) - WWW> ANNOUNCE: PGP Encrypted Mosaic Sessions for Purchases (fwd) - _"Robert A. Hayden"<EMAIL_ADDRESS>

license: MIT

branch_name: refs/heads/master

extension: md

gha_license_id: MIT

license_type: permissive


text:
A **powerful** and **extensible** preferences package for Unity, built on top of `PlayerPrefs`. PowerPrefs provides access to many more types than before, whilst also providing type-safe accessors to your key-value store.

    Features • Install • Usage

***

## Features

#### ▶ Many extra types

Read and write values to `PlayerPrefs` with support for many extra types, such as `bool`, `char`, `DateTime` and `long`. There is also the possibility for adding many more in the future.

#### ▶ Easy-to-use

You can be up and running without any configuration, simply start getting and setting values.

#### ▶ Type-safe accessors

Values are retrieved and written through an accessor class which is typed. This means there are no types in the method names and you can even store the accessor class to read and write a key safely, without mentioning the type again. You can also store an accessor for a particular key to be used across your codebase without re-specifying the key.

#### ▶ Migration

A method is provided to migrate a value from one key to another, which is useful if you wish to rename one of your keys safely.

#### ▶ Open for extension

The classes which read and write values contain instance methods, allowing you to add extra features through extension methods if you wish. Even better, contribute them back to the library for others to use too!

#### ▶ Fully documented

The public API is fully documented, including code documentation.

## Install

PowerPrefs can be installed using the Unity Package Manager.

1. Open the Package Manager within Unity.
2. Select to add via Git URL.
3. Enter the Git URL.
4. The package can now be used within the Unity project.

The Git URL for the release branch:
`https://github.com/lordcodes/unity-powerprefs.git#upm`

The Git URL for a specific version:
`https://github.com/lordcodes/unity-powerprefs.git#v{VERSION}`

If a previous version of PowerPrefs had been imported using a `unitypackage`, make sure to remove it from the project before importing via Unity Package Manager.

## Usage

First retrieve a typed accessor and then get or set a value:

```c#
PowerPrefs.ForBool().Get("aBoolean");
PowerPrefs.ForInt().Get("anInteger", -1);

PowerPrefs.ForLong().Set("aLong", 123456);
PowerPrefs.ForString().Set("aString", "Hello");
```

For the `Get` call you can provide a default value to return if the key doesn't exist. If this isn't provided then the default for that type will be used instead. E.g. for `int` it would be 0.

## Advanced Usage

### Re-use Accessor

You have the option of storing and re-using the accessor class.

```c#
var accessor = PowerPrefs.ForInt();
...
var myValue = accessor.Get("myKey");
accessor.Set("meyKey", 5);
```

An accessor for a particular key is also available: `PowerPrefsKeyAccessor<T>`.

```c#
var keyAccessor = PowerPrefs.ForString().KeyAccessor("someKey");
...
var myValue = keyAccessor.Get();
keyAccessor.Set("newValue");
```

## Contributing or Help

If you notice any bugs or have a new feature to suggest, please check out the [contributing guide](https://github.com/lordcodes/unity-powerprefs/blob/master/CONTRIBUTING.md). If you want to make changes, please make sure to discuss anything big before putting in the effort of creating the PR.

To reach out, please contact [@lordcodes on Twitter](https://twitter.com/lordcodes).

repository: lordcodes/unity-powerprefs

gha_language: C#

repo_name: lordcodes/unity-powerprefs


text:
---
authorName: Gary R Miller
canDelete: false
contentTrasformed: false
from: Gary R Miller<EMAIL_ADDRESS>headers.inReplyToHeader: .nan
headers.messageIdInHeader: PDIwMDMwNjI0LjE5NTMwNy4xNzA4LjAuanVzdGkubWlsbGVyQGp1bm8uY29tPg==
headers.referencesHeader: .nan
layout: email
msgId: 95
msgSnippet: Karo Glosa-lista-pe, Ach!  Marcel du es in plu verba-bibli tro freqe,
  ka-co mi pa translati u grama; an pa bali, de u neo filma _Qo akti?_  (Glosa translati
  fu
nextInTime: 96
nextInTopic: 98
numMessagesInTopic: 2
postDate: '1056502216'
prevInTime: 94
prevInTopic: 0
profile: .nan
replyTo: LIST
senderId: pldx1HB9I9RcAM7dsGLY3RQ7MB4kIai7KtmHonL31jJMOPRYPjBrNz-VyFczzc6vNHnGv_pKcg0CrPYS2L55nQUSkCXAjW_JM9JBJw
spamInfo.isSpam: false
spamInfo.reason: '0'
systemMessage: false
title: Translati de _Qo akti?_
topicId: 95
userId: 123051087
---

Karo Glosa-lista-pe,

Ach!

Mathilde ter Heijne
Qo akti?
Exhibit
Martina Detterer Gallery
Hanauerlandstrasse 20-22,
Frankfurt am Main
June 7 to July 12, 2003

Qo akti?
Video program on six monitors, 2003

The diversity of languages in our world has led to the fact that many
people cannot understand each other.  English, the most useful language,
is relatively easy to learn compared to French, but for a Chinese person
it is more difficult to speak than Arabic is for us.

As a solution to language diversity, Professor Hogben developed
_Interglossa_ (or _Glosa_), an international language, in 1943.  It has a
vocabulary of only 1000 words and is based on scientific terms.  It is a
language that has no grammar, and that is not bound to one country or one
part of the world and so is neutral.  It is a language that can be
learned in a single day and is suitable for everyone.

The video work _Qo Akti?_ is drawn from a little-known film by Italian
producer Liliana Cavani about the French philosopher Simone Weil.
Mathilde ter Heijne has had part of the script of _Lettere dall' Interno_
(written by Liliana Cavani together with Italo Moscati in 1971)
translated into Glosa.  Glosalist Wendy Ashby developed this language
together with Ron Clark in the 1980's.  She has translated and spoken a
part of the original script by Liliana Cavani in newly-developed
_Euro-Glosa_.

The script of the little-known film is a melodrama of partly biographical
and partly documentary character.  The life of Simone Weil (a struggle to
free the working-class and provide equal opportunity for everyone) and
her thoughts (about death, suffering, and deliverance) picture the
following string of events: from her working in a factory in France at
the beginning of the 1930's and from the Spanish Civil War to her death
at the beginning of the 1940's in England, where she died at the age of
34 of malnourishment and exhaustion.

The scene is the famous Nazi barracks in Krampnitz in the vicinity of
Berlin, where the Russian army was stationed.  And so this place is the
scene for many movies.

Mathilde ter Heijne
Qo akti?
Arti monstra
Galeri Martina Detterer
Hanauerlandstrasse 20-22
Frankfurt am Main
2003 m.6 d.7 a m.7 d.12

_Qo akti?_
Video-programa ad-in sixa monito-me, 2003

U difere inter lingua in na munda pa duce a ra; poli homi ne pote logi
alelo.  Pe facili gene ski de England-lingua; u maxi funktio,  ko kompara
ko France-lingua.  Anti-co Cina-pe detekti id ma no-facili; de
Arabi-lingua es a na.

Homo solve anti lingua difere, profesoro Hogben pa face _Interglossa_
(alo _Glosa_); un internatio lingua, tem anua 1943.  Id habe u verba
lista de solo mo-kilo e habe u basi ex skience verba.  Id es u lingua; qi
habe zero gramatika e qi ne es ge-liga a mo natio alo a mo mero de munda,
ka-co es nutra.  Id es u lingua; pe pote gene sko de, tem mo di e es gru
a panto-pe.

U video krea _Qo akti?_  gene tira ex u pusi ge-ski filma de France
filosofi-fe Simone Weil ex Italia editora Liliana Cavani.  Mathilde ter
Heijne pa face; u mero de drama-bibli de _Lettere dall' Interno_
(ge-grafo ex Liliana Cavani ko Italo Moscati tem anua 1971) gene
translati per Glosa.  Glosa-pe Wendy Ashby ko Ron Clark pa dura face u-ci
lingua tem plu anua 198-.  Fe pa translati e pa dice u mero de origi
drama-bibli ex Liliana cavani in neo ge-developo _Euro-Glosa_.

U drama-bibli de u-ci pusi ge-ski filma es u tristi-drama de in-mero
biografo e in-mero histori karakteri.  Simone Weil bio (u lukta te face
libe un ergo-pe klasi e te dona un eqa okasio a panto-pe) e fe kogita (de
morta, sufero e salva) dona plu pikto de plu seqe acide de histori: ex fe
ergi in face-do in France tem proto de plu anua 193- e ex Hispania
intra-milita a-kron fe morta in England tem proto de plu anua 194-; topo
fe lose bio kausa minus de sito e kausa debili kron habe 34 anua.

  Ka-co u-ci loka es u skena de
poli filma.

Saluta,
 _  _
  /.  Gary
#/\#
 ###

________________________________________________________________
The best thing to hit the internet in years - Juno SpeedBand!
Surf the web up to FIVE TIMES FASTER!
Only $14.95/ month - visit www.juno.com to sign up today!

repository: fiasinstitute/glosa

gha_language: HTML

repo_name: fiasinstitute/glosa


text:
# mssql-server-2014-express-windows
This Dockerfile helps developers to get started using SQL Server 2014 Express in Windows Server Core Containers. The file downloads and installs SQL Server 2014 Express with the default setup parameters.

Note: This dockerfile is based on Buc Rogers' work that can be found [here] (https://github.com/brogersyh/Dockerfiles-for-windows/tree/master/sqlexpress)

### Contents

[About this sample](#about-this-sample)

[Before you begin](#before-you-begin)

[Run this sample](#run-this-sample)

[Sample details](#sample-details)

[Disclaimers](#disclaimers)

[Related links](#related-links)

## About this sample

1. **Applies to:** SQL Server 2014 Express, Windows Server Technical Preview 4 or later
5. **Authors:** Perry Skountrianos [perrysk-msft]

## Before you begin

To run this sample, you need the following prerequisites.

**Software prerequisites:**

You can run the container with the following command. Note the you'll need Windows Server Core TP5 v10.0.14300.1000.
docker run -p 1433:1433 --env sa_password=<YOUR SA PASSWORD> microsoft/mssql-server-2014-express-windows

## Run this sample

The image provides one environment variable to set the sa password:

- sa_password: Sets the sa password and enables the sa login

## Sample details

The Dockerfile downloads and installs SQL Server 2014 Express with the following default setup parameters that could be changed (if needed) after the image is installed.
- Collation: SQL_Latin1_General_CP1_CI_AS
- SQL Instance Name: SQLEXPRESS
- Root Directory: C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL
- Language: English (United Stated)

## Disclaimers
The code included in this sample is not intended to be a set of best practices on how to build scalable enterprise grade applications. This is beyond the scope of this quick start sample.

## Related Links

For more information, see these articles:
- [Windows Containers] (https://msdn.microsoft.com/en-us/virtualization/windowscontainers/about/about_overview)
- [Windows-based containers: Modern app development with enterprise-grade control] (https://www.youtube.com/watch?v=Ryx3o0rD5lY&feature=youtu.be)
- [Windows Containers: What, Why and How] (https://channel9.msdn.com/Events/Build/2015/2-704)
- [SQL Server in Windows Containers] (https://blogs.msdn.microsoft.com/sqlserverstorageengine/2016/03/21/sql-server-in-windows-containers/#comments)

repository: gcaicedo/sql-server-samples

repo_name: gcaicedo/sql-server-samples


text:
# Changelog
All notable changes to this project are documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).

## [2.5.0-BETA](https://github.com/Dovyski/cvui/releases/tag/v.2.5.0-BETA) - 2017-12-01
### Added
- Support for [multiple windows](https://dovyski.github.io/cvui/advanced-multiple-windows/) (help from [Justin Muncaster](https://github.com/jmuncaster), [4xle](https://github.com/4xle) and Luca Del Tongo).
- [Mouse API](https://dovyski.github.io/cvui/advanced-mouse/) (help from [Pascal Thomet](https://github.com/pthom)).
- Compilation flag `CVUI_IMPLEMENTATION` ([read more](https://dovyski.github.io/cvui/usage/)).
- New parameter `bool theCreateNamedWindow` in `init()` ([read more](https://dovyski.github.io/cvui/advanced-multiple-windows/)).
- `init(const cv::String[], size_t, int, bool)` ([read more](https://dovyski.github.io/cvui/advanced-multiple-windows/)).
- `watch(cv::String, bool)` ([read more](https://dovyski.github.io/cvui/advanced-multiple-windows/)).
- `cvui::imshow()`, equivalent of calling `cvui::update()` then `cv::imshow()` ([read more](https://dovyski.github.io/cvui/advanced-multiple-windows/)).
- More [examples](https://github.com/Dovyski/cvui/tree/master/example/).
- Compilation flag `CVUI_DISABLE_COMPILATION_NOTICES` ([read more](https://dovyski.github.io/cvui/usage/)).

### Changed
- cvui can now be included in multiple files (help from Luca Del Tongo; [read more](https://dovyski.github.io/cvui/usage/)).
- Requirement that one (**and only one**) of your C++ files must include `cvui.h` after a `#define CVUI_IMPLEMENTATION` ([read more](https://dovyski.github.io/cvui/usage/)).
- [Documentation](https://dovyski.github.io/cvui/) was significantfly improved, e.g. code samples, figures, etc.

### Fixed
- `sparkline()` crashes with empty vector ([#23](https://github.com/Dovyski/cvui/issues/23)).

## [2.0.0](https://github.com/Dovyski/cvui/releases/tag/v.2.0.0) - 2017-05-24
### Added
- `image()`
- `iarea()`
- `trackbar()` component (thanks to [Pascal Thomet](https://github.com/pthom)).
- Support for OpenCV 2.x (thanks to [Pascal Thomet](https://github.com/pthom)).
- Basic cmake support for examples (thanks to [Pascal Thomet](https://github.com/pthom)).
- Multiplatform improvements (thanks to [ebachard](https://github.com/ebachard)).
- More [examples](https://github.com/Dovyski/cvui/tree/master/example/).
- Better [documentation](https://github.com/Dovyski/cvui/tree/master/docs/).

### Changed
- cvui is now a header-only lib.
- `button()` component can now use images.
- Labels in the `button()` component can have keyboard shortcuts with `&`, e.g. `&Quit` (thanks to [Pascal Thomet](https://github.com/pthom)).
- Fixes to README file (thanks to [Mateo Hrastnik](https://github.com/hrastnik)).

## [1.1.0](https://github.com/Dovyski/cvui/releases/tag/v.1.1.0) - 2016-08-19
### Added
- `printf()`
- `rect()`
- `sparkline()`
- `space()`
- `begin*()` and `end*()` block.
- `cvui::VERSION`
- Docs for all components.
- More [examples](https://github.com/Dovyski/cvui/tree/master/example/).

## [1.0.0](https://github.com/Dovyski/cvui/releases/tag/v.1.0.0) - 2016-06-19
### Added
- `text()`
- `button()`
- `checkbox()`
- `window()`
- `counter()`
- Basic example app.


text:
# kibana dev scripts

This directory contains scripts useful for interacting with Kibana tools in development. Use the node executable and `--help` flag to learn about how they work:

```sh
node scripts/{{script name}} --help
```

## for developers

This directory is excluded from the build and tools within it should help users discover their capabilities. Each script in this directory must:

- include the `../src/optimize/babel/register` module to bootstrap babel
- call out to source code that is in the `src` directory
- react to the `--help` flag
- run everywhere OR check and fail fast when a required OS or toolchain is not available

repository: elasticsearch-cn/kibana

branch_name: refs/heads/cn

gha_language: JavaScript

gha_license_id: NOASSERTION

repo_name: elasticsearch-cn/kibana


text:
# Thraustotheca primoachlya Coker & Couch, 1924 SPECIES

#### Status
SYNONYM

#### According to
The Catalogue of Life, 3rd January 2011

#### Published in
J. Elisha Mitchell scient. Soc. 40(3-4): 198 (1924)

#### Original name
Thraustotheca primoachlya Coker & Couch, 1924

### Remarks
null

repository: mdoering/backbone

path: /life/Chromista/Oomycota/Oomycetes/Saprolegniales/Saprolegniaceae/Achlya/Achlya primoachlya/ Syn. Thraustotheca primoachlya/README.md

repo_name: mdoering/backbone


text:
title: Web Development
category: page
slug: web-development
sortorder: 0401
toc: True
sidebartitle: 4. Web Development
meta: Web development is the catch-all term for activities involved with websites and web apps. Learn more on Full Stack Python.

# Web Development
Web development is the umbrella term for conceptualizing, creating,
[deploying](/deployment.html) and operating web applications and
[application programming interfaces](/application-programming-interfaces.html)
for the Web.

## Why is web development important?
The Web has grown a mindboggling amount in the number of sites, users and
implementation capabilities since the
[first website](http://info.cern.ch/hypertext/WWW/TheProject.html) went live
in [1989](http://home.cern/topics/birth-web). Web development is the concept
that encompasses all the activities involved with websites and web
applications.

## How does Python fit into web development?
Python can be used to build server-side web applications. While a
[web framework](/web-frameworks.html) is not required to build web apps,
it's rare that developers would not use existing open source libraries to
speed up their progress in getting their application working.

Python is not used in a web browser. The language executed in browsers
such as Chrome, Firefox and Internet Explorer is
[JavaScript](/javascript.html). Projects such as [pyjs](http://pyjs.org/)
can compile from Python to JavaScript. However, most Python developers
write their web applications using a combination of Python and JavaScript.
Python is executed on the server side while JavaScript is downloaded to
the client and run by the web browser.

### Web development resources
* [Web application development is different and better](http://radar.oreilly.com/2014/01/web-application-development-is-different-and-better.html)
  provides some context for how web development has evolved from writing
  static HTML files into the complex JavaScript client-side applications
  produced today.

* While not Python-specific, Mozilla put together a
  [Learning the Web](https://developer.mozilla.org/en-US/Learn) tutorial
  for beginners and intermediate web users who want to build websites.
  It's worth a look for general web development learning.

* The [Evolution of the Web](http://www.evolutionoftheweb.com/) visualizes
  how web browsers and related technologies have changed over time as well as
  the overall growth of the Internet in the amount of data transferred. Note
  that the visualization unfortunately stops around the beginning of 2013 but
  it's a good way to explore what happened in the first 24 years.

* Web development involves HTTP communication between the server, hosting
  a website or web application, and the client, a web browser. Knowing
  how web browsers works is important as a developer, so take a look at
  this article on
  [what's in a web browser](https://medium.com/@camaelon/what-s-in-a-web-browser-83793b51df6c).

* [Three takeaways for web developers after two weeks of painfully slow Internet](https://medium.com/@zengabor/three-takeaways-for-web-developers-after-two-weeks-of-painfully-slow-internet-9e7f6d47726e)
  is a must-read for every web developer. Not everyone has fast Internet
  service, whether because they are in a remote part of the world or they're
  just in a subway tunnel. Optimizing sites so they work in those situations
  is important for keeping your users happy.

branch_name: refs/heads/gh-pages

extension: markdown


text:
## [Unreleased]
Fixed a bug that caused errors for certain file types.

## [20.2.3] - 2020-02-18
#### New Integration
Use the Lastline v2 integration to provide threat analysts and incident response teams with the advanced malware isolation and inspection environment needed to safely execute advanced malware samples, and understand their behavior.


text:
simplenewsbot
=============

Twitter Bot. News in headlines, and inline with images. Formatted to fit your app. Won't flood your stream.

Getting Started
===============

Twitter
-------

* Create a Twitter account at http://twitter.com
* Go to http://dev.twitter.com and Sign In
* Choose "My Applications" from the menu
* Click "Create New Application" and follow various steps
  * Make sure app has "Read and Write" permissions
* Note the following:
  * API key
  * API Secret
  * Access token
  * Access token secret

Bitly
-----
* Go to https://bitly.com/a/oauth_apps and "Generate an Access Token"

This is optional but you'll need to modify the code to not use Bitly if you want to use original URL in the Bot's messages.

Code
----
Modify using the above with the below:

	$this->twitter_handle     = "simplenewsbot"; /* You may not want to use MY account */
	$this->consumer_key       = 'THE VARIABLE NAME EXPLAINS WHAT GOES HERE';
	$this->consumer_secret    = 'THE VARIABLE NAME EXPLAINS WHAT GOES HERE';
	$this->oauth_token        = 'THE VARIABLE NAME EXPLAINS WHAT GOES HERE';
	$this->oauth_token_secret = 'THE VARIABLE NAME EXPLAINS WHAT GOES HERE';
	$this->bitlyToken         = 'THE VARIABLE NAME EXPLAINS WHAT GOES HERE';

Feeds, Selectors, Scraping
----------
This is important and might seem confusing if you look at the code. This is also the bit I forgot to provide documentation for. I'll do it later. Soon. Won't forget. Promise.

repository: williamfromtexas/simplenewsbot

repo_name: williamfromtexas/simplenewsbot


text:
#Exercise 2:

We are going to demonstrate that aync processes can easily be managed. In this case, we don't know how long it will be before the restaurant responds and we assume that restaurants can only view one order at a time.
This exercise should also demonstrate the difference between commands and events.

Prerequisites: Ensure you have setup 'multiple startup projects' for your solution of: ConsumerSite and OrderProcesor.

1. Publish an event which states that OrderProcessor has successfully validated an order: 'OrderValidatedOk'.
 * In the OrderPlacement Class, once the 'work' is complete...
 * `_publisher.Publish(new OrderValidatedOk(message.OrderId, string.Join(", ", message.OrderContents), message.Price, message.CustomerName));`

2. Listen to that event in the Restaurant (sho
 * Tell the Form1 class in Restaurant tht it will be handling OrderValidatedOk messages
 * `, IHandler<OrderValidatedOk>`
 * Implement the IHandler interface, and pass the arriving message through to the ShowOrder() method
 * `return ShowOrder(message);`
 * Tell JustSaying to pass OrderValidatedOk events through to Form1 so that we can see incoming messages.
 * `.WithSqsTopicSubscriber(Messages.Constants.OrderProcessingTopic)
                .IntoQueue("RestaurantOrders")
                .WithMessageHandler(form)`
 * Tell JustSaying to start listening for mesages now. `.StartListening();`
 * Running the project now & placing an order should display order details in the Restaurant's form and show on the front end as 'sending order to restaurant'

3. Restaurant needs to publish events when they accept / reject orders
 * Tell JustSaying that we will be publishing OrderAccepted and OrderRejected events into the RestaurantOrders topic
 * `.ConfigurePublisherWith(config => { config.PublishFailureReAttempts = 3; config.PublishFailureBackoffMilliseconds = 50; })
                .WithSnsMessagePublisher<OrderAccepted>(Messages.Constants.RestaurantOrdersTopic)
                .WithSnsMessagePublisher<OrderRejected>(Messages.Constants.RestaurantOrdersTopic)`
 * Publish the appropriate accepted / rejected event from the form's buttons:
 * `_publisher.Publish(new OrderAccepted(_currentOrderId.Value));`
 * `_publisher.Publish(new OrderREjected(_currentOrderId.Value));`

4. ConsumerSite is already setup to listen to these events.

##Place an Order...

Running the app and placing an order now should result in an end --> end flow, where orders get

* Placed
* Validated
* Accepted / rejected,
* Consumer is informed of progress

path: /exercise 2/readme.md


text:
---
title: Compact Recording Toolbar
page_title: Compact Recording Toolbar
description: "The Compact Toolbar recorder is easy to use and has slick design. Record tests codeless and automate your test scenario."
position: 2
---
# Compact Recording Toolbar

The **Compact Recording Toolbar** is designed to maximize functionality and minimize the space on your screen. You can position it freely anywhere in the browser or WPF application, so it does not cover any elements from the application under test. In the following article you will learn more about all features of the **Compact Recording Toolbar**.

![Move Compact Recording Toolbar][1]

## Hover Over Highlighting ##

![Enable Highlighting Button][2]

Enable/Disable Hover Over Highlighting from the **Compact Recording Toolbar**. When the mouse pauses over a highlighted element in the recording surface, you will see the elements menu with multiple options. This rich menu makes it easy to work with the recording surface and its elements. It provides quick access to relevant functions right in the page or application you are testing.

![Context Menu][3]

> **Tip**
>
> Use the *Pause/Break* key on your keyboard to toggle the Hover Over Highlighting.

- **Quick Steps** - presents a context sensitive list of tasks that can be performed against the highlighted element, such as build a verification, create a wait step, etc.

![Quick Steps][4]

- **Add to Elements** -  adds the highlighted element to the Elements Explorer.

![Add to Elements][5]

- **Locate in DOM** - opens the DOM Explorer in the __Advanced Recording Tools__ and selects the highlighted element.

![Locate in DOM][6]

- **Build Step...** - selects the highlighted element from the DOM tree and opens the Element Steps tab in the Advanced Recording Tools. There are additional actions and verifications you can add against the selected element. For example, you can add mouse actions and advanced verification steps for attribute, image or text from image.

![Build Step][7]

## Recording Mode ##

Once the **Compact Recording Toolbar** is connected to the browser or WPF application, it is in active recording mode and has a red border all around. You can pause the recording, by pressing the **Pause** button.

![Recording Active][8]

When in paused mode, you will see the **Record** button to activate the recording again.

![Recording Paused][9]

> **Tip**
>
> Use the *Print Screen* key on your keyboard to toggle the recording mode.

## Advanced Recording Tools ##

Show or hide the **Advanced Recording Tools** window - it allows you to explore the DOM tree, create element or common steps and control the browser. Check the section **Advanced Recording Tools** of the documentation for more details.

![Show Advanced Recording Tools][10]
![Advanced Recording Tools][11]

## Toolbar Orientation ##

Choose between vertical and horizontal **Compact Recording Toolbar** and move it around inside or outside the browser or WPF application.

		![Horizontal Toolbar][12]
		![Vertical Toolbar][13]

[1]: /img/features/recorder/compact-recording-toolbar/anim1.gif
[2]: /img/features/recorder/compact-recording-toolbar/fig2.png
[3]: /img/features/recorder/compact-recording-toolbar/fig3.png
[4]: /img/features/recorder/compact-recording-toolbar/fig4.png
[5]: /img/features/recorder/compact-recording-toolbar/fig5.png
[6]: /img/features/recorder/compact-recording-toolbar/fig6.png
[7]: /img/features/recorder/compact-recording-toolbar/fig7.png
[8]: /img/features/recorder/compact-recording-toolbar/fig8.png
[9]: /img/features/recorder/compact-recording-toolbar/fig9.png
[10]: /img/features/recorder/compact-recording-toolbar/fig10.png
[11]: /img/features/recorder/compact-recording-toolbar/fig11.png
[12]: /img/features/recorder/compact-recording-toolbar/fig12.png
[13]: /img/features/recorder/compact-recording-toolbar/fig13.png

repository: yordan-mitev/teststudio

repo_name: yordan-mitev/teststudio


text:
---
title: Filters
---

## Getting started

Filters allow you to scope the Eloquent query as a way to reduce the number of records in a table.

If you're using the filters in a Livewire component, you can put them in the `getTableFilters()` method:

```php
protected function getTableFilters(): array
{
    return [
        // ...
    ];
}
```

If you're using them in admin panel resources or relation managers, you must put them in the `$table->filters()` method:

```php
public static function table(Table $table): Table
{
    return $table
        ->filters([
            // ...
        ]);
}
```

Filters may be created using the static `make()` method, passing its name. The name of the filter should be unique. You should then pass a callback to `query()` which applies your filter's scope:

```php
use Filament\Tables\Filters\Filter;
use Illuminate\Database\Eloquent\Builder;

Filter::make('is_featured')
    ->query(fn (Builder $query): Builder => $query->where('is_featured', true))
```

### Setting a label

By default, the label of the filter, which is displayed in the filter form, is generated from the name of the filter. You may customize this using the `label()` method:

```php
use Filament\Tables\Filters\Filter;

Filter::make('is_featured')->label('Featured')
```

### Default filters

You may set a filter to be enabled by default, using the `default()` method:

```php
use Filament\Tables\Filters\Filter;

Filter::make('is_featured')->label('Featured')->default()
```

## Filter forms

By default, filters have two states: enabled and disabled. When the filter is enabled, it is applied to the query. When it is disabled it is not. This is controlled through a checkbox. However, some filters may require extra data input to narrow down the results further. You may use a custom filter form to collect this data.

### Select filters

Select filters allow you to quickly create a filter that allows the user to select an option to apply the filter to their table. For example, a status filter may present the user with a few status options to pick from and filter the table using:

```php
use Filament\Tables\Filters\SelectFilter;

SelectFilter::make('status')
    ->options([
        'draft' => 'Draft',
        'reviewing' => 'Reviewing',
        'published' => 'Published',
    ])
```

Select filters do not require a custom `query()` method. The column name used to scope the query is the name of the filter. To customize this, you may use the `column()` method:

```php
use Filament\Tables\Filters\SelectFilter;

SelectFilter::make('status')
    ->options([
        'draft' => 'Draft',
        'reviewing' => 'Reviewing',
        'published' => 'Published',
    ])
    ->column('status_id')
```

#### Relationship select filters

Select filters are also able to automatically populate themselves based on a `BelongsTo` relationship. For example, if your table has a `author` relationship with a `name` column, you may use `relationship()` to filter the records belonging to an author:

```php
use Filament\Tables\Filters\SelectFilter;

SelectFilter::make('author')->relationship('author', 'name')
```

### Multi-select filters

Multi-select filters allow you to quickly create a filter that allows the user to select multiple options to apply the filter to their table. For example, a status filter may present the user with a few status options to pick from and filter the table using:

```php
use Filament\Tables\Filters\MultiSelectFilter;

MultiSelectFilter::make('status')
    ->options([
        'draft' => 'Draft',
        'reviewing' => 'Reviewing',
        'published' => 'Published',
    ])
```

Multi-select filters do not require a custom `query()` method. The column name used to scope the query is the name of the filter. To customize this, you may use the `column()` method:

```php
use Filament\Tables\Filters\MultiSelectFilter;

MultiSelectFilter::make('status')
    ->options([
        'draft' => 'Draft',
        'reviewing' => 'Reviewing',
        'published' => 'Published',
    ])
    ->column('status_id')
```

#### Relationship multi-select filters

Multi-select filters are also able to automatically populate themselves based on a `BelongsTo` relationship. For example, if your table has a `author` relationship with a `name` column, you may use `relationship()` to filter the records belonging to a selection of authors:

```php
use Filament\Tables\Filters\MultiSelectFilter;

MultiSelectFilter::make('author')->relationship('author', 'name')
```

### Custom filter forms

You may use components from the [Form Builder](/docs/forms/fields) to create custom filter forms. The data from the custom filter form is available in the `$data` array of the `query()` callback:

```php
use Filament\Forms;
use Filament\Tables\Filters\Filter;
use Illuminate\Database\Eloquent\Builder;

Filter::make('created_at')
    ->form([
        Forms\Components\DatePicker::make('created_from'),
        Forms\Components\DatePicker::make('created_until'),
    ])
    ->query(function (Builder $query, array $data): Builder {
        return $query
            ->when(
                $data['created_from'],
                fn (Builder $query, $date): Builder => $query->whereDate('created_at', '>=', $date),
            )
            ->when(
                $data['created_until'],
                fn (Builder $query, $date): Builder => $query->whereDate('created_at', '<=', $date),
            );
    })
```

### Setting default values

If you wish to set a default filter value, you may use the `default()` method on the form component:

```php
use Filament\Forms;
use Filament\Tables\Filters\Filter;
use Illuminate\Database\Eloquent\Builder;

Filter::make('created_at')
    ->form([
        Forms\Components\DatePicker::make('created_from'),
        Forms\Components\DatePicker::make('created_until')->default(now()),
    ])
```

## Customizing popover columns

By default, filters are displayed in a thin popover on the right side of the table, in 1 column.

To change the number of columns that filters may occupy, you may use the `getTableFiltersFormColumns()` method:

```php
protected function getTableFiltersFormColumns(): int
{
    return 3;
}
```

Adding more columns to the filter form will automatically widen the popover. To customize the popover width, you may use the `getTableFiltersFormWidth()` method, and specify a width from `xs` to `7xl`:

```php
protected function getTableFiltersFormWidth(): string
{
    return '4xl';
}
```

repository: Makogai/filament-non-typed

branch_name: refs/heads/main

repo_name: Makogai/filament-non-typed


text:
# cursor-mongoose-pagination
Cursor based pagination library for mongo using mongoose.

[![npm](https://img.shields.io/npm/dm/cursor-mongoose-pagination.svg?maxAge=2592000)](https://www.npmjs.com/package/cursor-mongoose-pagination)
[![License](https://img.shields.io/npm/l/cursor-mongoose-pagination.svg?maxAge=2592000?style=plastic)](https://github.com/babayega/cursor-mongoose-pagination/blob/master/LICENSE)
[![Known Vulnerabilities](https://snyk.io/test/github/babayega/cursor-mongoose-pagination/badge.svg?targetFile=package.json)](https://snyk.io/test/github/babayega/cursor-mongoose-pagination?targetFile=package.json)
[![Build Status](https://travis-ci.org/babayega/cursor-mongoose-pagination.svg?branch=master)](https://travis-ci.org/babayega/cursor-mongoose-pagination)

## Installation

`npm install cursor-mongoose-pagination`

## Usage
```js
const mongoose = require('mongoose'),
    cmp = require('cursor-mongoose-pagination')

const FooSchema = mongoose.Schema({
  name: String,
  age: Number
},{
  timestamps:true
})

const FooModel = mongoose.model('Foo', FooSchema)

const params = {
  find:{
      // your find params, can be left blank if all the documents are wanted
  }
  limit:5, // the limit of documents you want at a time
  next: cursor // only when calling for subsequent documents
               //you can find this in the response array from the function
}

cmp.paginate(FooModel, params)
  .then(result=>{
    const docs = result[0],  // the returned documents from the model
        hasMore = result[1],  // boolean value which tells if there are more documents left
        next = result[2]  // the cursor to the next document, this is null if hasMore is false
                          //  should be passed in the function above
  })

 ```

Currently this library only supports sorting based upon the updatedAt value of the document.
Continously making changes, and looking for suggestions.

repository: babayega/cursor-mongoose-pagination

repo_name: babayega/cursor-mongoose-pagination


text:
# Troubleshooting Origami Build Tools

Different common issues encountered when using OBT organized by the different tasks.

## `install`

### Installing Ruby

* Macs typically ship with Ruby by default, but:
	- If you get a `Gem::FilePermissionError` error, you need to [install a ruby version manager](http://stackoverflow.com/questions/19579392/installing-gem-fails-with-permissions-error).
	- To [install rbenv](https://github.com/sstephenson/rbenv#homebrew-on-mac-os-x) you first need to [install homebrew](http://brew.sh/).
	- Once you've installed rbenv you need to [install ruby](https://github.com/sstephenson/rbenv/#installing-ruby-versions).
		- Note: rbenv needs a bit of post-install setup. If you install with homebrew, also do steps 2 and 3 of the [Basic GitHub Checkout](https://github.com/sstephenson/rbenv/#basic-github-checkout) section.

### Error `Unable to download data from https://rubygems.org/`

If you receive an error specifying `Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)` you'll need to manually update your gem package using the directions in [this gist](https://gist.github.com/luislavena/f064211759ee0f806c88).

### Error `While executing gem ... (Gem::FilePermissionError)`

When installing [SCSS-Lint](https://github.com/causes/scss-lint), depending on how permissions are set on your machine, OBT might fail and return:

>While executing gem ... (Gem::FilePermissionError).
>You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

This can be fixed by following the [Installing Ruby steps](#installing-ruby) mentioned above.

If the error still occurs, run the command manually by prefixing sudo to it. It's the following command (substituting the version number by the one mentioned [here](https://github.com/Financial-Times/origami-build-tools/#install)):

```bash
sudo gem install scss-lint -v 0.35.0
```

### Error `npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "bower" "--quiet"`

When installing [bower](https://bower.io), depending on how permissions are set on your machine, OBT might fail and return something like this:

>npm ERR! Darwin 14.3.0
>npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "bower" "--quiet"
>npm ERR! node v0.12.2
>npm ERR! npm  v2.1.6
>npm ERR! path /usr/local/lib/node_modules/bower
>npm ERR! code EACCES
>npm ERR! errno -13
>
>npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/bower'
>npm ERR!     at Error (native)
>npm ERR!  { [Error: EACCES, unlink '/usr/local/lib/node_modules/bower']
>npm ERR!   errno: -13,
>npm ERR!   code: 'EACCES',
>npm ERR!   path: '/usr/local/lib/node_modules/bower' }
>npm ERR!
>npm ERR! Please try running this command again as root/Administrator.

The command can be ran manually prefixing sudo to it. It's the following command (substituting the version number by the one mentioned [here](https://github.com/Financial-Times/origami-build-tools/#install)):

```bash
sudo npm install -g<EMAIL_ADDRESS>```

### Warning `Origami registry is not configured in a .bowerrc file`

Origami modules are listed on Origami's custom Bower registry, and aren't available to the global, public one. Custom registries can be added to a `.bowerrc` configuration file located in your home directory. To create a `.bowerrc` configuration file now, run::

```bash
echo '{"registry":{"search":["http://registry.origami.ft.com","https://bower.herokuapp.com"]}}' > ~/.bowerrc
```

repository: phamann/origami-build-tools

repo_name: phamann/origami-build-tools


text:
ZstdNet
=======

Zstd wrapper for .NET

Description
-----------

**ZstdNet** is a wrapper of **Zstd** native library for .NET languages. The following APIs are available:

* Compression and decompression are available via `Compressor` and `Decompressor` classes.
They can use an available buffer or allocate the buffer themselves. Supported options:

    - `byte[] dict` — dictionary (loaded from a file or generated via a method described below)
    - `int compressionLevel` — compression level (currently can be varied from 1 to 22)

* Dictionary generation from a collection of samples is available
via `DictBuilder.TrainFromBuffer` static method. Supported options:

    - `int dictCapacity` — maximal dictionary size in bytes

The wrapper throws `ZstdException` in case of malformed data or an error inside *Zstdlib*.
If the given destination buffer is too small, `InsufficientMemoryException` is thrown.

Streaming APIs are not implemented yet.

Unit tests provided with this library show its behavior in different situations.

*ZstdNet* requires *Zstdlib* >= v0.8.1. Both 32-bit and 64-bit versions are supported.
The corresponding DLLs (compiled from v0.8.1 using Visual C++) are included in this repository.

Zstd
----

**Zstd**, short for Zstandard, is a new lossless compression algorithm, which
provides both good compression ratio _and_ speed for your standard compression
needs. "Standard" translates into everyday situations which neither look for
highest possible ratio (which LZMA and ZPAQ cover) nor extreme speeds (which
LZ4 covers).

**Zstd** is developed by Yann Collet and the source is available at:
https://github.com/Cyan4973/zstd

The motivation for development, the algorithm used and its properties are
explained in the blog post that introduces the library:
http://fastcompression.blogspot.com/2015/01/zstd-stronger-compression-algorithm.html

The benefits of the dictionary mode are described here:
http://fastcompression.blogspot.ru/2016/02/compressing-small-data.html

Wrapper Authors
---------------

Copyright (c) 2016 [SKB Kontur](https://kontur.ru/eng/about)

*ZstdNet* is distributed under [BSD 3-Clause License](LICENSE).


text:
---
title: "The Cambridge Festival 2021 from the Dept of Obstetrics & Gynaecology"
---

> Hello!
> We are scientists from the [Department of Obs & Gynae](https://www.obgyn.cam.ac.uk/), [University of Cambridge](https://www.cam.ac.uk/) and we run an online event for [the Cambridge Festival 2021](https://www.sciencefestival.cam.ac.uk/).

> At the Department of Obstetrics and Gynaecology, we do research on the biology and the function of the placenta. We also conduct large population studies which aim at identifying key features that could predict problems in pregnancy. Our ultimate goal is to find better ways of helping mums to give birth to healthy babies.

# Event1: It takes three to tango
***
> Learn about the key players in a healthy pregnancy (mum, baby and the placenta), bust some myths and test your knowledge through our [interactive info-quizzes](it-takes-three-to-tango.html).

# Event2: Pregnancy - a nine month phone call
***
> [Have a go](nine-month-phone-call.html) at colouring these pages while you learn more about the placenta and how it connects the mum and baby through our video and colouring papers. The activity is suitable for younger children who already know where babies come from, but doesn’t require any detailed biological knowledge.)

[![nine-month-phone-call](img/baby-and-placenta.jpg)](nine-month-phone-call.html)

# We would love to hear from you
***
> Please give us some [feedback through a short survey](https://www.surveymonkey.co.uk/r/HZDJ778). This will help us to develop our event further.

# Useful links
***
* [Source code](https://github.com/ObsGynaeCam/CF2021) - this event is an open source project.
* [Previous event](https://sung.github.io/CamObsGynCSF2020/) - The Science Festival 2020 from us.

# Acknowledgement
***
* This project was initially funded by [Public Engagment Starter Fund in 2019](https://www.cam.ac.uk/public-engagement/information-for-staff-and-students/public-engagement-starter-fund-0), University of Cambridge

![logo](images/Cam Festival + University logo Lockup Bar_Cam Fest Partner - Sky blue.png)


text:
# PokerKid
STM32F030F4Px Header Board. Includes Test Board to check soldering.
Compatible with most of STM32 TSSOP20 Microcontrollers.
<br>

Header Board:
![Header Board Top](https://live.staticflickr.com/65535/49983757106_c422c9c5d5_o.jpg "Header Board Top")

![Header Board Bottom](https://live.staticflickr.com/65535/49983238223_2a74ff5686_o.jpg "Header Board Bottom")

Test Board:
![Test Board](https://live.staticflickr.com/65535/49983238258_b454b9a39b_o.jpg "Test Board")

repository: aryanava/PokerKid

repo_name: aryanava/PokerKid


text:
# codable

[![Build Status](https://travis-ci.org/stablekernel/dart-codable.svg?branch=master)](https://travis-ci.org/stablekernel/dart-codable)

A library for encoding and decoding dynamic data into Dart objects.

## Basic Usage

Data objects extend `Coding`:

```dart
class Person extends Coding {
  String name;

  @override
  void decode(KeyedArchive object) {
    // must call super
    super.decode(object);

    name = object.decode("name");
  }

  @override
  void encode(KeyedArchive object) {
    object.encode("name", name);
  }
}
```

An object that extends `Coding` can be read from JSON:

```dart
final json = json.decode(...);
final archive = KeyedArchive.unarchive(json);
final person = Person()..decode(archive);
```

Objects that extend `Coding` may also be written to JSON:

```dart
final person = Person()..name = "Bob";
final archive = KeyedArchive.archive(person);
final json = json.encode(archive);
```

`Coding` objects can encode or decode other `Coding` objects, including lists of `Coding` objects and maps where `Coding` objects are values. You must provide a closure that instantiates the `Coding` object being decoded.

```dart
class Team extends Coding {

  List<Person> members;
  Person manager;

  @override
  void decode(KeyedArchive object) {
    super.decode(object); // must call super

    members = object.decodeObjects("members", () => Person());
    manager = object.decodeObject("manager", () => Person());
  }

  @override
  void encode(KeyedArchive object) {
    object.encodeObject("manager", manager);
    object.encodeObjects("members", members);
  }
}
```

## Dynamic Type Casting

Types with primitive type arguments (e.g., `List<String>` or `Map<String, int>`) are a particular pain point when decoding. Override `castMap` in `Coding` to perform type coercion.
You must import `package:codable/cast.dart as cast` and prefix type names with `cast`.

```dart
import 'package:codable/cast.dart' as cast;
class Container extends Coding {
  List<String> things;

  @override
  Map<String, cast.Cast<dynamic>> get castMap => {
    "things": cast.List(cast.String)
  };

  @override
  void decode(KeyedArchive object) {
    super.decode(object);

    things = object.decode("things");
  }

  @override
  void encode(KeyedArchive object) {
    object.encode("things", things);
  }
}

```

## Document References

`Coding` objects may be referred to multiple times in a document without duplicating their structure. An object is referenced with the `$key` key.
For example, consider the following JSON:

```json
{
  "components": {
    "thing": {
      "name": "The Thing"
    }
  },
  "data": {
    "$ref": "#/components/thing"
  }
}
```

In the above, the decoded value of `data` inherits all properties from `/components/thing`:

```json
{
  "$ref": "#/components/thing",
  "name": "The Thing"
}
```

You may create references in your in-memory data structures through the `Coding.referenceURI`.

```dart
final person = Person()..referenceURI = Uri(path: "/teams/engineering/manager");
```

The above person is encoded as:

```json
{
  "$ref": "#/teams/engineering/manager"
}
```

You may have cyclical references.

See the specification for [JSON Schema](http://json-schema.org) and the `$ref` keyword for more details.

repository: stablekernel/dart-codable

gha_language: Dart

repo_name: stablekernel/dart-codable


text:
# [vscode-ext-trailing-semicolon](https://github.com/naumovs/vscode-ext-trailing-semicolon)

Provides with the command to append semicolon to the end of current line.

## Install

In VSC press Ctrl+Shift+P (Cmd+Shift+P on Mac) then type ">ext install", hit enter, search "Trailing Semicolon".

Still confused? Click "Get Started" above.

## Usage

By default the provided command bound to "cmd+;" keybind

![Demo](docs/trailing-semicolon.mov)
https://user-images.githubusercontent.com/9140277/178055329-d64f7881-0ecd-400e-89ba-dbdc8eb1edc8.mov

## TODO

## Contribution

Feel free to contribute!


text:
# References

A reference is an alternative name for your variable. This means any changes made to the reference are also a change to

```
#include <iostream>

using std::cout; using std::endl;

int main() {
  int i = 5;
  int &i2 = i;
  cout << i << endl; // 5
  cout << i2 << endl; // 5
  cout << &i << endl; // 0x7fffcbf6af9c
  cout << &i2 << endl; // 0x7fffcbf6af9c

  i2 = 10;
  cout << i << endl; // 10
  cout << i2 << endl; // 10
  cout << &i << endl; // 0x7fffcbf6af9c
  cout << &i2 << endl; // 0x7fffcbf6af9c
}
```

It is important to note that the ampersand works differently depending on whether it is used in a variable declaration, or if it is used in some other kind of statement.

If an ampersand is used while declaring a variable, it means that this variable name is a reference for the original variable name. That is, it is an alternative name that refers to the same object.

By contrast, when used in other kinds of statements, the ampersand is used to give you the memory address of the object. This is referred to with the eminently memorable name of the *address-of-operator*. Really rolls off the tongue. Anyway, note how for &i and &i2 the address remains unchanged. That's because both variable names refer to the same object in memory. This is in contrast to pointers which create a different object in memory to point to the original variable.

repository: pauljickling/notes

repo_name: pauljickling/notes


text:
# a little bit of style, please

A fork of [no style, please](https://github.com/riggraz/no-style-please) with a few differences I wanted for myself.

## things I changed
* Code blocks have horizontal scroll instead of wrapping.
* url_out on menu opens links in a new tab

## things I want to change
* add syntax highlight to codeblocks


text:
# Hash Tables

### Projected Time

About 2 hours and 30 minutes

- 60 mins Lesson
- 30 mins Independent Practice
- 30 mins Check for Understanding

### Prerequisites

- [JavaScript prototypal inheritance](../javascript/javascript-7-oop.md)
- [Runtime complexity](../runtime-complexity/runtime-complexity.md)

### Motivation

Hash tables are one of the most frequently used data structures. You'll use them in your code a lot, so knowing how and when to use hash tables is important.

Knowing how hash tables work will give you a deeper understanding of why hash tables are used and what they're good for. Hash tables are also often used in the solution to interview questions.

Uses of Hashing:

- Authentication - Cryptographic hash functions let you log in to a system without storing your password anywhere vulnerable.
- Search - Hashing is useful for indexing large storage spaces, so that you can look things up in them without reading their entire contents every time. Developers usually do the indexing of big data sets to reduce the time of processing operations over them.
- Programming languages - Hash tables are a convenient way to implement the mechanism that connects a variable's name to its memory location.
  [(quora.com)](https://www.quora.com/What-are-the-real-world-examples-for-hashing)

### Objectives

- Understand basic hashing algorithms
- Know the runtime of hash table operations
- Be able to identify problems where hash tables could be used
- Be able to write code that uses hash tables to solve problems
- Understand how hash tables are implemented and how this implementation leads to the runtime properties

### Specific Things to Learn

- A hash table is used to store key-value pairs or tuples.
- Why is this called a hash table? The hash of the key determines where the value is stored.
- All objects in JavaScript are hash tables.
- Look-up in a hash table is on average O(1). Worst case look-up is O(n).
- Using different hashing algorithms on the keys will affect the hash table's performance.

### Materials

- [Understanding and Using Hash Tables Slides](https://docs.google.com/presentation/d/1V9liCnncXJDXZ0CK_MbXfFrWz6cwGucTYdIkHdkJ9_8/edit#slide=id.p)
- [Implementing Hash Tables Slides](https://docs.google.com/presentation/d/1-zCx1fc5cUP6rklL-CrYzmO8ibcXztsOZxJUv3Fpd-s/edit#slide=id.g2f6e14aaa5_0_0)

### Lesson

- Read through lesson slides [Understanding and Using Hash Tables](https://docs.google.com/presentation/d/1V9liCnncXJDXZ0CK_MbXfFrWz6cwGucTYdIkHdkJ9_8/edit#slide=id.p)
- Read through lesson slides [Implementing Hash Tables](https://docs.google.com/presentation/d/1-zCx1fc5cUP6rklL-CrYzmO8ibcXztsOZxJUv3Fpd-s/edit#slide=id.g2f6e14aaa5_0_0)

### Common Mistakes / Misconceptions

- When should I use an array instead of a hash table? If your keys are sequential integers.

### Preamble

Languages call this type of data structure by many names:

- ES2015 JS calls it a [Map](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) but historically, since all Objects allow lookup by property name, folks just used plain `Object`
- Python calls it a [`Dict`](https://realpython.com/python-dicts/) for Dictionary since you look it up by a key, just like a dictionary's have an index for each letter
- Java calls is a [`HashMap`](https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html) or `Hashtable`
- Ruby calls it a [`Hash`](https://ruby-doc.org/core-2.7.0/Hash.html)

### Guided Practice

Let's understand how to make hash maps using JavaScript.

- [How to implement hash table in javascript](https://reactgo.com/hashtable-javascript/)
- Here is the link for the video on [how to make hash tables using JavaScripts](https://www.youtube.com/watch?v=VundFD_ccgE).
- The another link for what hash tables are and how to implement them is [Basics of Hash Tables](https://www.hackerearth.com/practice/data-structures/hash-tables/basics-of-hash-tables/tutorial/). It contains the code for how _different types of hashing_ can be done by _coding_ in JS. The apprentices should be able to code different type of hashtables like linear probing, quadratic probing etc. They can start tutorial where coding begins provided that they know the basics of hashing.

### Independent Practice

#### Coding questions that use hash tables

- A person is represented in a JSON string, and the person's `name` is specified. Say hello to this person.

#### Implement a hash table

Basics: set(), get(), print()
Challenge 1: Handle collisions with chaining
Challenge 2: Make the table larger when enough items are added to the table

### Challenge

Compare implementations of bucket collisions with a peer. Brainstorm different data structures one can use for implementing buckets. Code review others' hash table implementations: Are clear parameter and method names used? Is the code DRY? Compare hashing algorithm choices with a peer.

### Check for Understanding

- Explain how a hash table uses hashing.
- What is a real-world use case for a hash table? What are the advantages?

### Supplemental Materials

- [How to implement simple hash table?](https://medium.freecodecamp.org/how-to-implement-a-simple-hash-table-in-javascript-cb3b9c1f2997)
- [Hash Tables in JavaScript](http://www.mojavelinux.com/articles/javascript_hashes.html)
- [Objects and Hash Tables in JavaScript](https://codeburst.io/objects-and-hash-tables-in-javascript-a472ad1940d9)
- [Algorithms in JavaScript: Hash Tables](https://medium.com/javascript-in-plain-english/algorithm-in-javascript-hash-table-7b0464d2b81b)


text:
---
title: Install Voyager
description: Voyager Install
menu:
  product_voyager_6.0.0:
    identifier: install-voyager
    name: Install
    parent: setup
    weight: 10
product_name: voyager
menu_name: product_voyager_6.0.0
section_menu_id: setup
---
> New to Voyager? Please start [here](/docs/concepts/overview.md).

# Installation Guide

Voyager operator can be installed via a script or as a Helm chart.

## Using Script

To install Voyager in your Kubernetes cluster, pick the appropriate cluster provider and run the following command:

```console
# provider=acs
# provider=aws
# provider=azure
# provider=baremetal
# provider=gce
# provider=gke
# provider=minikube
# provider=openstack
# provider=metallb

$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/6.0.0/hack/deploy/voyager.sh \
    | bash -s -- --provider=$provider
```

After successful installation, you should have a `voyager-operator-***` pod running in the `kube-system` namespace.

```console
$ kubectl get pods -n kube-system | grep voyager-operator
voyager-operator-846d47f489-jrb58       1/1       Running   0          48s
```

#### Customizing Installer

The installer script and associated yaml files can be found in the [/hack/deploy](https://github.com/appscode/voyager/tree/6.0.0/hack/deploy) folder. To see the full list of flags available to installer, use the `-h` flag.

```console
$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/6.0.0/hack/deploy/voyager.sh | bash -s -- -h
voyager.sh - install voyager operator

voyager.sh [options]

options:
-h, --help                         show brief help
-n, --namespace=NAMESPACE          specify namespace (default: kube-system)
-p, --provider=PROVIDER            specify a cloud provider
    --rbac                         create RBAC roles and bindings (default: true)
    --docker-registry              docker registry used to pull voyager images (default: appscode)
    --image-pull-secret            name of secret used to pull voyager operator images
    --restrict-to-namespace        restrict voyager to its own namespace
    --run-on-master                run voyager operator on master
    --enable-validating-webhook    enable/disable validating webhooks for voyager CRDs
    --template-cfgmap=CONFIGMAP    name of configmap with custom templates
    --enable-analytics             send usage events to Google Analytics (default: true)
    --uninstall                    uninstall voyager
    --purge                        purges Voyager crd objects and crds
```

If you would like to run Voyager operator pod in `master` instances, pass the `--run-on-master` flag:

```console
$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/6.0.0/hack/deploy/voyager.sh \
    | bash -s -- --provider=$provider --run-on-master [--rbac]
```

Voyager operator will be installed in a `kube-system` namespace by default. If you would like to run Voyager operator pod in `voyager` namespace, pass the `--namespace=voyager` flag:

```console
$ kubectl create namespace voyager
$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/6.0.0/hack/deploy/voyager.sh \
    | bash -s -- --provider=$provider --namespace=voyager [--run-on-master] [--rbac]
```

By default, Voyager operator will watch Ingress objects in any namespace. If you would like to restrict Voyager to Ingress and Services in its own namespace, pass the `--restrict-to-namespace` flag:

```console
$ kubectl create namespace voyager
$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/6.0.0/hack/deploy/voyager.sh \
    | bash -s -- --provider=$provider --namespace=voyager --restrict-to-namespace [--run-on-master] [--rbac]
```

If you are using a private Docker registry, you need to pull the following 2 docker images:

 - [appscode/voyager](https://hub.docker.com/r/appscode/voyager)
 - [appscode/haproxy](https://hub.docker.com/r/appscode/haproxy)

To pass the address of your private registry and optionally a image pull secret use flags `--docker-registry` and `--image-pull-secret` respectively.

```console
$ kubectl create namespace voyager
$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/6.0.0/hack/deploy/voyager.sh \
    | bash -s -- --provider=$provider --docker-registry=MY_REGISTRY [--image-pull-secret=SECRET_NAME] [--rbac]
```

Voyager implements a [validating admission webhook](https://kubernetes.io/docs/admin/admission-controllers/#validatingadmissionwebhook-alpha-in-18-beta-in-19) to validate Voyager CRDs. This is enabled by default for Kubernetes 1.9.0 or later releases. To disable this feature, pass the `--enable-validating-webhook=false` flag.

```console
$ curl -fsSL https://raw.githubusercontent.com/appscode/voyager/6.0.0/hack/deploy/voyager.sh \
    | bash -s -- --provider=$provider --enable-validating-webhook [--rbac]
```

To use custom templates to render HAProxy configuration, visit [here](/docs/guides/ingress/configuration/custom-templates.md).

## Using Helm

Voyager can be installed via [Helm](https://helm.sh/) using the [chart](https://github.com/appscode/voyager/tree/6.0.0/chart/voyager) from [AppsCode Charts Repository](https://github.com/appscode/charts). To install the chart with the release name `my-release`:

```console
# Mac OSX amd64:
curl -fsSL -o onessl https://github.com/kubepack/onessl/releases/download/0.1.0/onessl-darwin-amd64 \
  && chmod +x onessl \
  && sudo mv onessl /usr/local/bin/

# Linux amd64:
curl -fsSL -o onessl https://github.com/kubepack/onessl/releases/download/0.1.0/onessl-linux-amd64 \
  && chmod +x onessl \
  && sudo mv onessl /usr/local/bin/

# Linux arm64:
curl -fsSL -o onessl https://github.com/kubepack/onessl/releases/download/0.1.0/onessl-linux-arm64 \
  && chmod +x onessl \
  && sudo mv onessl /usr/local/bin/

# Kubernetes 1.8.x
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
$ helm install appscode/voyager --name my-release --set cloudProvider=$provider

# Kubernetes 1.9.0 or later
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
$ helm install appscode/voyager --name my-release \
  --set cloudProvider=$provider \
  --set apiserver.ca="$(onessl get kube-ca)" \
  --set apiserver.enableValidatingWebhook=true
```

To see the detailed configuration options, visit [here](https://github.com/appscode/voyager/tree/6.0.0/chart/voyager).

### Installing in GKE Cluster

If you are installing Voyager on a GKE cluster, you will need cluster admin permissions to install Voyager operator. Run the following command to grant admin permision to the cluster.

```console
# get current google identity
$ gcloud info | grep Account
Account<EMAIL_ADDRESS>
$ kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin<EMAIL_ADDRESS>```

### Installing in Minikube

Voyager can be used in minikube using `--provider=minikube`. In Minikube, a `LoadBalancer` type ingress will only assigned a NodePort.

### Installing in Baremetal Cluster

Voyager works great in baremetal cluster. To install, set `--provider=baremetal`. In baremetal cluster, `LoadBalancer` type ingress in not supported. You can use [NodePort](/docs/concepts/ingress-types/nodeport.md), [HostPort](/docs/concepts/ingress-types/hostport.md) or [Internal](/docs/concepts/ingress-types/internal.md) ingress objects.

### Installing in Baremetal Cluster with MetalLB

Follow the instructions for installing on baremetal cluster but specify `metallb` as provider. Then install MetalLB following the instructions [here](https://metallb.universe.tf/installation/). Now, you can use `LoadBalancer` type ingress in baremetal clusters.

## Verify installation
To check if Voyager operator pods have started, run the following command:

```console
$ kubectl get pods --all-namespaces -l app=voyager --watch
```

Once the operator pods are running, you can cancel the above command by typing `Ctrl+C`.

Now, to confirm CRD groups have been registered by the operator, run the following command:

```console
$ kubectl get crd -l app=voyager
```

Now, you are ready to create your first ingress using Voyager.

## Configuring RBAC
Voyager creates two CRDs: `Ingress` and `Certificate`. Voyager installer will create 2 user facing cluster roles:

| ClusterRole           | Aggregates To | Desription                            |
|-----------------------|---------------|---------------------------------------|
| appscode:voyager:edit | admin, edit   | Allows edit access to Voyager CRDs, intended to be granted within a namespace using a RoleBinding. |
| appscode:voyager:view | view          | Allows read-only access to Voyager CRDs, intended to be granted within a namespace using a RoleBinding. |

These user facing roles supports [ClusterRole Aggregation](https://kubernetes.io/docs/admin/authorization/rbac/#aggregated-clusterroles) feature in Kubernetes 1.9 or later clusters.

## Using kubectl
Since Voyager uses its own TPR/CRD, you need to use full resource kind to find it with kubectl.

```console
# List all voyager ingress
$ kubectl get ingress.voyager.appscode.com --all-namespaces

# List voyager ingress for a namespace
$ kubectl get ingress.voyager.appscode.com -n <namespace>

# Get Ingress YAML
$ kubectl get ingress.voyager.appscode.com -n <namespace> <ingress-name> -o yaml

# Describe Ingress. Very useful to debug problems.
$ kubectl describe ingress.voyager.appscode.com -n <namespace> <ingress-name>
```

## Detect Voyager version
To detect Voyager version, exec into the operator pod and run `voyager version` command.

```console
$ POD_NAMESPACE=kube-system
$ POD_NAME=$(kubectl get pods -n $POD_NAMESPACE -l app=voyager -o jsonpath={.items[0].metadata.name})
$ kubectl exec -it $POD_NAME -n $POD_NAMESPACE voyager version

Version = 6.0.0
VersionStrategy = tag
Os = alpine
Arch = amd64
CommitHash = ab0b38d8f5d5b4b4508768a594a9d98f2c76abd8
GitBranch = release-4.0
GitTag = 6.0.0
CommitTimestamp = 2017-10-08T12:45:26
```

repository: Zhuvikin/voyager

repo_name: Zhuvikin/voyager


text:
# Fake Readme

hello world, this is a test readme for the tests to run

![External Image](https://i2.wp.com/www.fatosmorina.com/wp-content/uploads/2018/11/hello-world.png?ssl=1)

*This will link correctly because when tox runs, it runs at the top level directory instead of in the data dir*
*Probably a bug....*
[Contributing](CONTRIBUTING.md)

gha_language: Python