text:
# Chingu Time

Make scheduling meetings across different timezones easier with Chingu Time!

This Project is part of the [Chingu.io](https:chingu.io) Voyages - [#17 - Project Vue-01]

## Preview

![Preview of the live chingutime website](https://i.imgur.com/xsrAlSm.png)

## Description

This is an ongoing project with multiple purposes in mind.

First of all, we wanted to create an easy, simple way to schedule events/meetings for people in different timezones.

Secondly, this functions as a project to learn vue.js, a major frontend library, node.js as the backend and MongoDB as the database.
If possible, this project will be constantly updated and will hopefully have new features in the future.

## Chingu

This project is part of the [Chingu](https://chingu.io) program.

"Chingu is a remote 6-week program for web developers.
You will build a project in a remote team and level up with the technical and soft skills required in a professional software job."

Please visit them at the link above!

## Livesite

![badge website online](https://img.shields.io/website?style=for-the-badge&up_message=online&url=http%3A%2F%2Fnovelslist.netlify.com%2F)
Live website can be found under: [chingutime](https://chingutime.netlify.app/)

## Features

* Now
  * Login and edit your account details
  * Create an event and add other users
  * Select different hours and get advises on best hours for all event users
  * Schedule the event and download ics file for gmail or outlook calendar
  * View all your scheduled events in calendar
  * Mobile App (PWA)
  * Unschedule events/Edit scheduled events
  * Send emails on schedule
* Future
  * Work with non hourly timezones
  * Handling daylight saving changes

## Roadmap

A finished MVP version of the website is currently live.

The current Roadmap for us is to correct existing bugs and issues in beta version, and afterwards we will start implementing new features.

## Project setup

To implement the backend server you need to:

### Clone repository

### Install packages
```
npm install
```
### Install nodemon
```
npm install -g nodemon
```
### Starts server with hot-reloads for development
```
nodemon app.js
```
### Starts server for production
```
node app.js
```
### To implement a development database you need to:
Create an account with mongoDB and start a local database

Local backend will be connected with local mongoDB on localhost port 27017
### Change all API routes to localhost server instead chingutime server
### To implement the frontend server you need to:
```
cd client
```
```
npm install
```
### Compiles and hot-reloads for development
```
npm run serve
```
### Compiles and minifies for production
```
npm run build
```

### Full Backend Reference can be found here:
See [Backend Readme](README_BE.md).

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).

## Packages

For Frontend Packages please refere here:
[Package.json](client/package.json)

For Backend Packages please refere here:
[Package.json](package.json)

## Authors

- [Youngmi Lee](https://github.com/ally0426) - Also known as [Ally](https://ally0426.github.io/Basic_Portfolio/). Looking for a full stack developer position(MERN)
- [Oleksandr Malakhov](https://github.com/Alexever17) - Also known as Alexever17. Hobby web dev. Maker of games and reader of novels
- [Marcos Mendes](https://github.com/MarcosMe) - Also known as [MarcosMe](https://marcosmendes.eu). Technical Support. Fullstack developer. RaspberryPi tinker

## Contributing

Contributing is very welcome. Open a pull request if you want to help out.

Make sure not to make any big changes to the overall structure! Thanks.

## License

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

gha_language: Vue


text:
# Movie Viewing Website - SPA with ReactJS

This is the front end code for a very simple Video viewing website. It is written in ReactJS and uses Redux and Sagas. The Server has authentication resources ( nothing special, clear text, no cookie or jwt... not even ssl), prepares a list of unlisted youtube videos for viewing, and then displays them. :boom:

Written by Philip A Senger

[philip.a.senger<EMAIL_ADDRESS>| mobile:<PHONE_NUMBER> | [CV/Resume](http://www.visualcv.com/philipsenger) | [blog](http://www.apachecommonstipsandtricks.blogspot.com/) | [LinkedIn](http://au.linkedin.com/in/philipsenger) | [twitter](http://twitter.com/PSengerDownUndr) | [keybase](https://keybase.io/psenger)

## TOC

* [URLs and APIs](#urls-and-apis)
* [Environment Variables](#environment-variables)
* [Command Line](#command-line)
* [Deploying](#deploying)

## URLs and APIs

* Website in action is located [here](http://godslight.s3-website-ap-southeast-2.amazonaws.com/)
* The REST API URL for [GET](http://<IP_ADDRESS>:3000/movies) when you run it locally.

## Environment Variables

| Mandate  | Name       | Purpose                                                                                |
|:---------|:-----------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| required | API_URL    | The base Url to the hosted api server. If not set, it assumes localhost. eg: ``export API_URL=https://aaaaaa.bbbb.com/``                                     |
| required | PUBLIC_URL | The Url to the public html server. Values will be embedded into the processed HTML. defaults to local host. eg: ``export PUBLIC_URL=https://zzzz.dddd.com/`` |
| required | NODE_ENV   | When you deploy, you should set this to 'production'. This will turn off the Redux Logger. default is development. eg: ``export NODE_ENV=production``        |

## Command Line

| Command       | Purpose                                                                                |
|:--------------|:------------------------------------------------------------------------------------------------------------------|
| npm run start | Start the dev server and dev api server. if the API_URL is set then the website will use the specificed api. You can point to the production API via the API_URL environment variable. |
| npm run build | This produces production read code and drops it in the `build` directory. |
| npm run test  | Runs all the tests  |

## Deploying

*1.* Set ALL environment variables. And XXXX is the appropriate urls with trailing slashes
```bash
export API_URL=XXXX
export PUBLIC_URL=XXXX
export NODE_ENV=production
```

*2.* Install all node modules.
```bash
npm install
```

*3.* clean the build
```bash
npm run clean
```

*4.* build the app
```bash
npm run build
```

*5.* check everything into git

*6.* build the app
```bash
npm version patch
```

*7.* sync with aws. And XXXX is the S3 Bucket
```bash
cd build
aws s3 sync . s3://XXXX
```

license: MIT

repository: psenger/view-movies

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: psenger/view-movies


text:
---
title: "Availability Heuristic"
description: "A mental shortcut that relies on immediate examples that come to a given person's mind when evaluating a specific topic, concept, method or decision."
categories: ["too much information"]
tags: [
  "memory",
  "evaluation"
]
reading: [
  "https://www.verywellmind.com/availability-heuristic-2794824",
  "https://blog.usejournal.com/most-common-cognitive-biases-visualised-explained-ad94574f8054",
  "https://en.wikipedia.org/wiki/Availability_heuristic"
]
---

repository: jonyablonski/Cognitive-Bias-Index

repo_name: jonyablonski/Cognitive-Bias-Index


text:
---
# About widget.
widget: "project" # See https://sourcethemes.com/academic/docs/page-builder/
#headless : false  # This file does not represent a page section.
active: true # Activate this widget? true/false
weight: 33 # Order that this section will appear in.

# Project title.
title: "Kinect Skeleton library for Processing"

# Date this page was created.
date: 2019-02-27T00:00:00

# Project summary to display on homepage.
summary: "Library to preprocess the Kinect skeleton data and extract body movement features."

# Tags: can be used for filtering projects.
tags:
  [
    "Human-Computer Interface",
    "Multimodal Interaction",
    "Kinect",
    "Java",
    "Processing",
    "Audio Visual",
    "Feature Extraction",
  ]

# Optional external URL for project (replaces project detail page).
external_link: ""

# Slides (optional).
#   Associate this project with Markdown slides.
#   Simply enter your slide deck's filename without extension.
#   E.g. `slides = "example-slides"` references
#   `content/slides/example-slides.md`.
#   Otherwise, set `slides = ""`.
slides: ""

# Links (optional).
url_pdf: ""
url_slides: ""
url_video: ""
url_code: ""

# Custom links (optional).
#   Uncomment line below to enable. For multiple links, use the form `[{...}, {...}, {...}]`.
#url_custom : [{icon_pack = "fab", icon="twitter", name="Follow", url = "https://twitter.com/georgecushen"}]

# Featured image
# To use, add an image named `featured.jpg/png` to your project's folder.
image:
  # Caption (optional)
  caption: "Kinect Skeleton View"

  # Focal point (optional)
  # Options: Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight
  focal_point: "Center"

  preview_only: false

# Choose the user profile to display
# This should be the username of a profile in your `content/authors/` folder.
# See https://sourcethemes.com/academic/docs/get-started/#introduce-yourself
author: "admin"
---

The Group 'Perception, Action, and Interaction' at NICS explores the interaction between humans and digital media; 'Perception' stands for audio analysis, psychoacoustics and visual cognition; 'Action' stands for designing sound and visual arts; 'Interaction' stands for how humans interfaces with the digital environment. One ongoing research example is the sonification of human body movement with application purposes in music therapy.

One of the devices used by the laboratory to sense the body movements is the Microsoft Kinect. Therefore, some projects rely on a robust tool to preprocess the incoming data and extract body movement features. My role is to develop that tool and make it available as an user friendly software for people with low level of knowledge in software development.

The main features implemented in the library available on my github are:

- Interface with KinectV2
- Smooth skeleton
- Calibrate for the floor position and room size
- Extract body features
- Send features through network via OSC

The video below is a brief demonstration of the library and its features.

<video width="320" height="240" controls>

  <source src="/project/kinect-skeleton-library-for-processing/KinectV2SkeletonToolsDemo.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>

path: /content/project/Kinect Skeleton library for Processing/index.md


text:
ansible role mastodon_scheduler
=================================

[![Galaxy](https://raw.githubusercontent.com/roles-ansible/ansible_role_mastodon_scheduler/main/.github/galaxy.svg)](https://galaxy.ansible.com/do1jlr/mastodon_scheduler)
[![License](https://raw.githubusercontent.com/roles-ansible/ansible_role_mastodon_scheduler/main/.github/license.svg)](https://github.com/roles-ansible/ansible_role_mastodon_scheduler/blob/main/LICENSE)

[![Galaxy release](https://github.com/roles-ansible/ansible_role_mastodon_scheduler/actions/workflows/galaxy.yml/badge.svg)](https://github.com/roles-ansible/ansible_role_mastodon_scheduler/actions/workflows/galaxy.yml)
[![Ansible Lint check](https://github.com/roles-ansible/ansible_role_mastodon_scheduler/actions/workflows/ansible-linting-check.yml/badge.svg)](https://github.com/roles-ansible/ansible_role_mastodon_scheduler/actions/workflows/ansible-linting-check.yml)
[![Yamllint GitHub Actions](https://github.com/roles-ansible/ansible_role_mastodon_scheduler/actions/workflows/yamllint.yaml/badge.svg)](https://github.com/roles-ansible/ansible_role_mastodon_scheduler/actions/workflows/yamllint.yaml)

Ansible role that can schedule Mastodon toots, created by a python3 script using [Mastodon.py](https://mastodonpy.readthedocs.io/en/stable/).

Here you are expected to have a pythonscript ready in a private git repository that can write Mastodon messages. This Ansible role generates an ssh key pair to clone the git repository, installs any python dependencies that are specified, and runs the script as many times as defined via systemd timer.

+ We create a user and a group, definied in the following variables:
```yaml
mastodon_scheduler__user: 'mastodon'
mastodon_scheduler__group: 'mastodon'
```

+ define the ssh clone url and branch, tag or commit hash in the following variables:
```yaml
mastodon_scheduler__private_repo: false
mastodon_scheduler__version: 'main'
```

+ Define the script name we should execute:
```yaml
mastodon_scheduler__exec: 'schedule.py'
```

+ Python Requirements we may need:
```yaml
mastodon_scheduler__pip_packages:
  - 'Mastodon.py'
```

+ Define the systemd Timer Execution time:
```yaml
# the default time is every Thursday at 23:42:23
mastodon_scheduler__time: 'Thu *-*-* 23:42:23'
```

branch_name: refs/heads/main


text:
# Course Blocks

Live app: [heroku](https://course-blocks.herokuapp.com/) / [custom domain (not https)](http://www.courseblocks.io/)

![index page](readme1.png)

This is an open source site for building and enrolling in courses. It is built in HTML/CSS/JavaScript/jQuery for the front end, and Node/MongoDB for the back end. My plan is to rebuild the front end in React after the initial iteration is complete. Please visit [this post](https://utopian.io/utopian-io/@jeffbernst/course-blocks-first-post-and-back-end) for more information about the project.

Users of the site can view courses, which look like this:

![course page](readme3.png)

And after creating an account users can create their own courses. Here's the create course page:

![create page](readme4.png)

They can also track the courses they're enrolled in and their progress:

![member page](readme2.png)

## API

Course Blocks uses the following end points:

**Users (/api/users)**
- POST '/' - create new user
- POST '/login' - login existing user
- GET '/' - get user based on JWT (protected)

**Drafts (/api/drafts)**
- POST '/' - create new draft (protected)
- PUT '/' - update draft (protected)

**Courses (/api/courses)**
- POST '/' - create new course (protected)
- GET '/' - retrieve 12 courses for index page
- GET '/:courseId' - get specified course
- GET '/search/:query' - search courses
- POST '/:courseId' - enroll in course (protected)
- PUT '/:courseId' - mark part of course completed (protected)

## Cloning Instructions

If you'd like to copy or fork this repo, there are only a few changes you'll have to make to get it up and running.

- First run `npm install` to get all of the node modules installed.
- The project uses a `.env` file to import the `JWT_SECRET`. Add a default secret in the `config.js` file or create your own `.env` file.
- After that it's just a matter of updating the branding and styling however you like!

_This project is licensed under the terms of the MIT license._

repository: jeffbernst/course-blocks

gha_language: JavaScript

gha_license_id: MIT

repo_name: jeffbernst/course-blocks


text:
# :handbag: Tours & Travel

Have you ever wanted a travel buddy? Tours & Travel can be your most reliable buddy!

Users will be able to track and manage every aspect of their travels.
They'll be able to:
* Store their travel information; flight status, ticket confirmation
* Search for popular food and drink spots
* Search nearby sites
* Personal packing list
* Local information/customs
* Plan local excursions
* Hotel recommendations
* Transportation
* Weather Information

## Getting Started

Coming Soon - July 2018

### Prerequisites

To run the application you will need to have a web browser installed.

```
Chrome, Firefox, Safari, IE
```

### Installing

No installation required just download and open in your browser

## Built With

* [Javascript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) - The programming language used
* [Node.js](https://nodejs.org/en/) - open-source server used to run JavaScript
* [MongoDB](https://www.mongodb.com/) - open-source cross-platform document-oriented database program
* [React.js](https://reactjs.org/) - JavaScript library for building user interfaces
* [Bootstrap](https://getbootstrap.com/) - open-source front-end framework for designing websites and web applications
* [Auth0](https://auth0.com/) - authentication middleware.
* [Express.js](http://www.expressjs.com/) - a web application framework for Node.js

## Contributing Authors and Roles

* **Mariam Chaudry** - *Front-end Developer*, *JavaScript*, *Bootstrap*, *CSS*, *React.js* - [Mariam Chaudry](https://github.com/mariamschaudry)
* **Elizabeth Fox** - *Project Manager*, *Back-end Developer*, *JavaScript*, *React.js*, *Passport.js* - [Elizabeth Fox](https://github.com/elizabethtfox)
* **Catherine Muthoni** - *Back-end Developer*, *JavaScript*, *React.js* - [Catherine Muthoni](https://github.com/dmk6562)

## Project Schedule
* Deliverable 1 - 7/3/18
* Wireframe - 7/3/18
* Home Page, 3 tiles - 7/4/18 - 7/7/18
* Login Page - 7/7/18
* Deliverable 2 MVP - 7/10/18
* Polished Project - 7/17/18
* Final - 7/24/18

## Deliverable 1
* **Mariam Chaudry** - UI/UX design layouts, Schedule
* **Elizabeth Fox** - Overview, UI/UX
* **Catherine Muthoni** - Breakdown of roles, PM Board, UI/UX

## License

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

## Acknowledgments

* Hat tip to anyone who's code was used.

repository: elizabethtfox/tours-travels

repo_name: elizabethtfox/tours-travels


text:
---
layout: page
title: Sponsorship
permalink: /sponsorship/
---

#### Want to work with our student branch? Sponsor our organization!

IEEE at the University of Michigan helps companies connect with our members through corporate sponsored event. In the past, we have hosted countless corporate info sessions, resume critiques, and bagel drives, just to name a few. We also host other custom events upon request. Listed below are the different levels of sponsorship that companies can have.

For more information, please contact us at [IEEE.Corporate@umich.edu](IEEE.Corporate@umich.edu).

repository: ieee-umich/ieee-website

branch_name: refs/heads/gh-pages

gha_language: CSS

repo_name: ieee-umich/ieee-website


text:
## Comparison Of The Proposed ERC865 To BTTS

The ERC865 standard is still evolving, but the comparison below is based on the PROPSProject implementation as of Feb 17 2018.

ERC865 information: https://github.com/ethereum/EIPs/issues/865

An implementation of ERC865:

* https://github.com/PROPSProject/props-token-distribution/blob/aa52ef6ad134e6b3939c9f4208bb53d8a00221b0/contracts/token/ERC865.sol

* https://github.com/PROPSProject/props-token-distribution/blob/aa52ef6ad134e6b3939c9f4208bb53d8a00221b0/contracts/token/ERC865Token.sol

## Additional Events

The following 2 events are logged in the ERC865 implementation:

```javascript
    event TransferPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee);
    event ApprovalPreSigned(address indexed from, address indexed to, address indexed delegate, uint256 amount, uint256 fee);
```

## transfer

ERC865 has the following signature:

```javascript
function transferPreSigned(
    bytes _signature,
    address _to,
    uint256 _value,
    uint256 _fee,
    uint256 _nonce
) public returns (bool);
```

BTTS v1.10 has the following signature:

```javascript
function signedTransfer(
    address tokenOwner,
    address to,
    uint tokens,
    uint fee,
    uint nonce,
    bytes sig,
    address feeAccount
) public returns (bool success);
```

## approve

ERC865 has the following signature:

```javascript
function approvePreSigned(
    bytes _signature,
    address _spender,
    uint256 _value,
    uint256 _fee,
    uint256 _nonce
) public returns (bool);
```

BTTS v1.10 has the following signature:

```javascript
function signedApprove(
    address tokenOwner,
    address spender,
    uint tokens,
    uint fee,
    uint nonce,
    bytes sig,
    address feeAccount
) public returns (bool success);
```

ERC865 also has the following functions:

```javascript
function increaseApprovalPreSigned(
    bytes _signature,
    address _spender,
    uint256 _addedValue,
    uint256 _fee,
    uint256 _nonce
) public returns (bool);
```

and

```javascript
function decreaseApprovalPreSigned(
    bytes _signature,
    address _spender,
    uint256 _subtractedValue,
    uint256 _fee,
    uint256 _nonce
) public returns (bool);
```

## transferFrom

ERC865 has the following signature:

```javascript
function transferFromPreSigned(
    bytes _signature,
    address _from,
    address _to,
    uint256 _value,
    uint256 _fee,
    uint256 _nonce
) public returns (bool);
```

BTTS v1.10 has the following signature:

```javascript
function signedTransferFrom(
    address spender,
    address from,
    address to,
    uint tokens,
    uint fee,
    uint nonce,
    bytes sig,
    address feeAccount
) public returns (bool success);
```


text:
# A basic example

This example starts a simple docker container with docker-compose. You can start the container with:

```bash
docker-compose up -d
```

Then, visit http://webserver.example.docker and you should see the nginx default page.

After the test, do:

```bash
docker-compose down
```

The provided network from docker daemon will also be removed, and the domain is removed from your local dnsmasq configuration.

gha_language: Python


text:
# MAYIJUNTUAN BASE SERVICE

<http://github.com/mayijuntuan/base-service>

Copyright 2015-2019 Mayijuntuan.com. All Rights Reserved.

## How to use

Add this configuration in your composer.json

```
"minimum-stability": "dev",
"repositories": [
    {"type": "composer", "url": "http://packagist.phpcomposer.com"},
    {"type": "vcs","url": "https://github.com/mayijuntuan/base-service"},
    {"packagist": false}
]
```

composer install

```
$ composer require "mayijuntuan/base-service"
```

repository: mayijuntuan/base-service

repo_name: mayijuntuan/base-service


text:
---
permalink: rackspace-cloud-essentials-checking-a-server-s-ssh-host-fingerprint-with-the-web-console/
audit_date:
title: Rackspace Cloud Essentials - Checking a server's SSH host fingerprint with the web console
type: article
created_date: '2011-05-31'
created_by: Jered Heeschen
last_modified_date: '2018-10-25'
last_modified_by: Cat Lookabaugh
product: Cloud Servers
product_url: cloud-servers
---

One of the fundamentals of [Secure Shell (SSH)](/how-to/connecting-to-linux-from-windows-by-using-putty)
is that it uses a "fingerprint" generated using a server's unique "host
key" to identify the server to a client. You might have seen a warning
sometime related to the host fingerprint, either that it can't be
verified or that it has changed.

The host key is randomly generated when the SSH server is set up and is
used to identify the server you're connecting to. Warnings about it are
more than just a devilish developer's effort to inconvenience us (though
it's difficult to rule that motivation out entirely).

No, the host key is actually central to the security provided by SSH
when you make a connection to your server. If someone malicious tries
to set up a program to intercept your connection and steal your login
credentials - a *man in the middle* attack - then the only warning
you'll get is your SSH client complaining that the host key has changed.

###  Why the host key might change

The more innocent explanations for a changed host key include
recompiling or upgrading SSH, rebuilding the server, or just using a
different address to get to the same host.  When your system stores the
host key it records it by address, so even if "localhost" and
"<IP_ADDRESS>" point to the same server an SSH client will treat them as
entirely different entries.

Thus, sometimes that message is expected. But even an expected warning
doesn't mean that there couldn't be a man-in-the-middle attack in
progress. It sounds a little paranoid, but that's good security for you -
anything can happen, at any time, and the more you do to rule out any
variables the better.

So let's look at when and how to check the host fingerprint by using the
server's web console (without using an SSH connection).

###  A dire warning

First, consider  the error message that probably brought you to this
article, a warning, similar to the following one,  that the host's
identification has changed:

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that the RSA host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
    Please contact your system administrator.
    Add correct host key in /home/demo/.ssh/known_hosts to get rid of this message.
    Offending key in /home/demo/.ssh/known_hosts:15
    RSA host key for <IP_ADDRESS> has changed and you have requested strict checking.
    Host key verification failed.

The warning can be summed up as: The fingerprint that identifies the SSH
server is different from what it was the last time you connected to it.
Expected or not, you should to check on that.

###  Check your server's SSH fingerprint

If you have your server's SSH fingerprint written down somewhere you can
compare it to what SSH shows you to make sure you're connecting to the
right machine. Most of us don't write that down, but it's a pretty good
idea to do so if you connect from multiple machines or from unfamiliar
computers (like from a consulting client's desktop or server).

If you don't have the host fingerprint handy you can use the
[Cloud Control Panel](https://login.rackspace.com)'s web console to find it.

The web console lets you connect to your server as if you were, well,
sitting at the console. If anything weird is going on with SSH it won't
interfere with you connecting directly to the console through the Cloud
Control Panel.

You can connect to the web console for your server through the Cloud
Control Panel.  If you need assistance opening the web console, [see this article](/how-to/start-a-console-session).

If you don't have a username and password to use (if you've disabled
passwords for all accounts, for example) you can use the Cloud Control
Panel to reset your server's root password. Then you can use the new
credentials to get in.

Now that you're on the server it's time to get that host key
fingerprint.

####  Use ssh-keygen

The official way to get that fingerprint is to run the `ssh-keygen`
command against the server's public key, as in:

    ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub

The `-l` option tells ssh-keygen you want to list the fingerprint, and
the `-f /etc/ssh_host_rsa_key.pub` part tells ssh-keygen where it can
find the host's public key file. That location is typical for Linux
servers, but you may need to poke around a bit to find the file if it's
not in that default location.

The output should be reminiscent of the fingerprint your SSH client
showed you earlier:

    2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx /etc/ssh/ssh_host_rsa_key.pub (RSA)

The first number indicates the strength of the key (in this case, 2048
bits). The fingerprint follows, along with the location of the key it
analyzed and the type of key it's using (usually RSA).

####  ssh to localhost

This isn't a bad method to getting the fingerprint, it's just not as
technical and fancy as the official way. It also only works when the SSH
server is actively running on the machine. It's handy if you can't find
the host's public key file easily.

To get the fingerprint this way, get into the web console and then ssh
to localhost:

    ssh localhost

If you've never completed an ssh connection to localhost before (you
probably haven't) you'll see a warning:

    The authenticity of host 'localhost (::1)' can't be established.
    RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
    Are you sure you want to continue connecting (yes/no)?

And there's the fingerprint you wanted.

If you didn't get that message then you've completed an ssh connection
to localhost before. To clear the stored key go into your account's
**.ssh** directory:

    cd ~/.ssh

And then edit the "known_hosts" file. Look for a line that starts with
"localhost", delete it, save the file, and try again. You should get the
fingerprint this time.

**Note**: Write the fingerprint down or put it in a note on your cell phone or
something. You went to all this trouble to get the key, you might as
make sure you have it handy in case you need to do this again.

###  Completing the connection

Now that we have the host key fingerprint in-hand we can see if the SSH
connection is a good one.

If your client was connecting to the server for the first time and you
were just confirming the host key before accepting it, you're set.
Compare the fingerprint you dug up with what the client is showing you
and if they match, accept the key.

If they don't match then don't complete the connection. If you're on a
public wi-fi network (like at a coffee shop or a hotel) then disconnect
from it and find someplace else to connect from - the interference may
have been local, so moving may get the jerk out of your hair. Otherwise
it might be a good time to get in touch with our support staff and they
can help you figure out your options.

###  Host key has changed

If the warning you got was that the fingerprint didn't match what the
client was expecting then you'll need to edit your client's list of
known hosts before you can connect.

####  Linux and Mac OS X

On Linux, Mac OS X, and other Unix-based operating systems you usually
use the "ssh" command to connect to a server via SSH. That should mean
there's a directory named **.ssh** in your home directory. Inside that
will be the "known_hosts" file that contains the known SSH host keys.

So basically, the file should be at:

    ~/.ssh/known_hosts

Sometimes you may see a "known_hosts2" file in place of or in addition
to "known_hosts". If both are there then "known_hosts2" is usually the
file being used when you make a connection.

Once you have the file identified, open it for editing and look for a
line that starts with your server's address. It could be the IP address
or the domain name, so look for whichever one you use when you're
connecting via SSH.

If you were using the IP address to connect to the server at <IP_ADDRESS> it
would look something like:

    <IP_ADDRESS> ssh-rsa AAAAB3NzaC1yc2EAAAABIwGAAQEA2Km5iIlopDndzSTbiaQZq8ynh8RPrvzBJ7dICnvAZWuH/YeNO+9DPnngzsOiYazwRD/CRSGEGRY6tS3GLclFO3Ae370aafbcq...

Once you find the line listing the key for your server you can delete
the line and save the edited file. The next time you make a connection
it will be as if you'd never connected to the server before. Remember to
check the host fingerprint again before completing the connection!

####  Windows and PuTTY

There are a variety of SSH clients that can be used on Windows, but
we'll talk about the free and widely-used PuTTY terminal program. If you
use another program check your user documentation to find out where the
client stores its known host keys.

PuTTY stores its host keys in the Windows registry. That means that
before you continue with this you'll want to be sure you're comfortable
editing your registry. If you don't have Administrator rights on your
workstation then you might need to ask an admin to make this change for
you.

To find the known host keys go to the Windows menu, then in the "search"
or "run" box enter:

    regedit

The registry is arranged as a hierarchy of a whole bunch of folders. The
one you want to navigate to is:

    HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

And in there, you'll find one or more entries with names like:

    rsa2@22:<IP_ADDRESS>

That key entry would be for an RSA version 2 encrypted key at port 22,
address "<IP_ADDRESS>". With that format in mind, look for the one for the
address you're connecting to.

Once you find the entry for your server right-click it and select
**Delete** from the contextual menu. You'll get a warning that editing the
registry can cause problems and you will be asked to confirm the action. Go ahead
and do it.

Exit the registry editor and try your SSH connection again. You should
get a warning that the server's host key is unknown and it will show the
fingerprint again.

Double-check against the fingerprint you pulled up in the web console,
and if it matches, accept the key.

###  Summary

It took a little poking around, but now you should have your server's
host key fingerprint handy in case you need to check it again. At the
least, you know how to bring it up some other time.

You might consider making a habit of recording the host key fingerprints
of servers when you create them. That way you'll always have a reference
handy if you need to check the fingerprint again. It's a little
inconvenience at the outset in return for a pretty comforting security
check you can run through easily when you connect from a new machine.

Next we are going to look at the [basics of security in a Linux system](/how-to/basic-cloud-server-security),
adding to what we learned about SSH connections and host keys.

**Next section:** [Basics of security in a Linux system](/how-to/basic-cloud-server-security)

repository: rackerlabs/rackspace-how-to

gha_language: Shell

repo_name: rackerlabs/rackspace-how-to


text:
# slave

This repo contains the slave of the Human-firewall project.
The code was written using Python3 and comes in two "flavors":
- Laptop: supports image taking from the laptop's webcam and provides a basic GUI.
- PI: supports image taking from the PI Camera and the doorbell button input.

## Features

The slave system takes care of the following operations:
- Searching of the master over the LAN.
- Image taking (from webcam or PI Camera).
- Face recognition and encoding.
- Management of the user feedback using a local DB.
- Notifying the master by sending the photo and all the relevant information about the subject in it.
- Receiving the users' feedback over an MQTT queue.

## How to deploy
For the deployment use the [slave-scripts](https://github.com/humanfirewall-iot19/slave-scripts).
The script will take care of installing all the needed dependencies and executing the slave in a correct manner.

## Dependencies

For the full list of dependencies refer to the [requirements file](requirements.txt)


text:
*TAG meeting - Boston - Day 1
*14 September 2015
*
*Present: Tim, Travis, Yves, Dan, Hadley (remotely), Mark, David, Peter, Yan
*
*Mnot: I met with NYtimes and gave the standard HTTPS song/dance.
*... the asked about getting more involved in web standards
*... I hear this all the time: "we want to get more involved"
*... They don't know what to do.
*... i.e., had this conversation with the alibaba (CN) folks
*... folks don't know what to track--what are the relevant areas?
*... e.g., EdgeConf is a great resource/community
*dan: same thinking about the ex. web summit
*mnot: there's just not a single place--no single website
*... closest thing I thought we had was webplatform.org
*... mmmm
*... it's really bad.
*... the feed (twitter account) is dated. Last post was a while ago.
*... so what to do about this?
*... Should we re-vitalize or decommision?
*... (I'm aware of the past history...)
*... I would really like to see us have a lighter touch place to distribute these things.
*Travis: w3c newsletter was maybe one source?
*mnot: yes, but need something bigger (broader scope)
*tim: the problem is fragmentation. Now, you're just creating yet another source (in addition to all the other sources)
*.... perhaps just take a subset of what is available on the website and publish/syndicate more generally.
*.... you need someone to wake up and manage that.
*mnot: yes, it's resource-intensive; not easy.
*dan: you end up with a distributed group of folks with "the keys"
*... then somebody posts something that another disagrees with
*.... then you can get some conflict.
*.... it's not about what's right/wrong
*alex: so what are you asking the TAG
*mnot: I'm asking if there's interest
*alex: I have a perception that the webplatform.org brand is heavily tarnished.
*dan: I understand that people (outside of the mainstream community) don't know about it.
*... they may have heard of it.
*tim: we lost the folks who wanted this to be the new w3 schools.
*... it was basically abandoned.
*mnot: then why did specfiction switch over to webplatform.org?
*alex: I asked the same question at the time.
*tim: who uses specfiction?
*dan: we have used it a few times on the TAG. Not recently
*mnot: oh, specfiction when over to WICW....
*alex: that's a more hopeful story
*dan: I hear you, mark, saying something like hacker news?
*mnot: I don't have a strong angle. I want "something" to point to for web devs I meet at conferences
*dan: A curated list of topics to point folks to
*mnot: There's already web platform daily
*hadley: I hear that the work we're doing is difficult to penetrate from folks on the outside world
*alex: I Chrome, we've been expermenting with template format for dispell info
*... in practice these don't intersect with the big distributions
*mnot: Folks looking not just at standards, but community events, conferences.
*.... It's OK if there are lots of different parts of the stack.
*... just looking for a place to see the digest of it all.
*dan: coralie (thanks) from W3C might be a good resource
*... It will need a curator who can setup and maintain it.
*... I don't think it should be owned by TAG
*mnot: perhaps we could talk to the folks producing web platform daily
*alex: I agree that there is an un-satisfied demand to help developers connect. I don't think we are succeeding at that.
*hadley: on topic of TAG and our engagement
*... several folks told me that they watched the entire Meet-the-TAG meetup from Berlin! I was amazed.
*dan: I think edgeConf is good because its broadcast. Unfortunately the produce is running out of steam...
*alex: sad, he has a singular vision
*travis: like Google, we need a search engine for web content stuff. The things relevant to you
*david: I think there are two types of folks that want to get involved:
*...  people who want to learn what's useful for them
*... people who want to contribute to what is happening in web standards
*dan: I think that may be the right division.
*mnot: to wrap up--we agree there are some needs that need to be better met :-)
*dan: can you write this down (a set of ideas to contextualize)?
*mnot: well, I don't want to create one more channel to add to the noise
*... we heard reticence about using webplatform.org brand...
*... I'll take an action to write up some thoughts.
*
*Extensible Web Summit
*dan: How about "The Summit"?
*... it's light-weight.
*... Just need a space for bar-camp style breakouts
*... I have very good feedback from it.
*... It usually adds an extra day of commitment for the TAG.
*... we could do it in melbourne, or in London
*... it's more useful when the city has a huge dev community
*... we can engage in long-form way with web devs.
*mark: i agree
*hadley: I agree
*mnot: I find it fascinating that we have the right audience to talk about the bleeding edge.
*hadley: I like the egalitarion feeling of the summit. In Berlin we seemed to be treated as experts, in SFO it was more we are all coming together to solve shared problems.
*dan: I'm not sure we want to do it in melbourne, but we should keep doing it.
*mnot: I think we'd have a good turnout.
*dan: how about a mini-summit? Smaller turnout, but a more egalitarian version.
*... in a brewery?
*mnot: that'll draw the australians.
*dan: then something longer for London (Mar 29-31)?
*... we could have the meetup on April 1?
*dan: ...hmm x-web-summit?
*
*Topic: HbbTV
*
*mnot: when you push the red button (interact) you can (do something)
*... a security researcher found an issue with the broadcast side of this feature, that adds URLs (which can be declared) which opts them into same-origin... leading to fun problems.
*... this looks to have been addressed by a spec errata.
*... TVs will be vulnerable for awhile now.
*... I think we're OK spec-wise.
*... Should the TAG come out with a finding saying--hey, don't compromise the same origin policy? (Or the web-stack in general)
*yves: if you're not planning for updates, then you're putting yourself at risk.
*... cite: Tesla and their updates--not a typical experince for manufactures
*mnot: HbbTV -- they're not very web-like, yet are using the web.
*... they may not see what's coming, they take a snapshot, then layer their own stuff.
*dan: flashback moment: mobile web pre-iphone.
*... to Yves point: using the web platform without update mechanism is considered harmful
*alex: how to ever secure IoT devices?
*... you must have enough space on the device to have A/B system to do upgrades.
*... it is a requirement
*dan: is there specific feedback on packaging we can give to this HbbTV community
*alex: are they subsetting or supersetting?
*... they are different beasts.
*.... Apple TVMLjs. ????
*... it's a closed application model
*... we could say its _completely_ proprietary, and any resemblence to actual web technologies is purely coincidental.
*mnot: back to the topic...
*... HbbTV fixed the immediate problem, but relative to the larger view of how the fit-in, we're confused.
*dan: is there already a liason?
*mnot: not to my knowledge. I see: TVIG has multiple contact points. There's a "simple" liason that has been established. HbbTV is a closed community
*dan: anything we can say as TAG?
*... if there's spec work going on, it should be coordinating with W3C?
*mnot: it might be threatening. We could *nicely* point out our meeting in Sapporo. We could add agendum re: roadmap for web platform and roadmap for tv platform and where they might converge.
*... we should at least make them aware of our roadmap so they can choose to adopt if they way.
*dan: mnot can you organize this?
*mnot: you bet. Alex, I'll loop you in too.
*
*Houdini F2F
*plinss: Lots of progress
*... CSSOM was going to leverage value objects (ES) to make it simple.
*... but, rather than wait that long, we have a more long-hand way of getting to CSS values, rather than have to work with them as strings.
*.... Custom layout apis making progress
*.... script works participating in page layout
*https://docs.google.com/document/d/1nYeyLuhFf_Y5No11rsMcAQBFbKcPNQW0DQHV1G4r4uI/edit?pli=1#heading=h.gycgwg8x982t
*alex: any of these that we (TAG) should be looking at in the next quarter?
*plinss: perhaps after TPAC.
*dan: will there be additional work at TPAC?
*plinss: next F2f is next Jan 30-31, though recent discussion hints at a meetup at TPAC
*alex: any movement in custom paint?
*plinss: yep
*https://drafts.css-houdini.org/css-paint-api/
*... another is custom compositing (making progress)
*https://docs.google.com/document/d/1xhuwlwdoqox3Fo3e4zFltgSGnbtMb-ptTYNx1loqPXU/edit?pli=1#heading=h.f6va9m4yz8xn
*dan: in your view--is this going well? Can the TAG help to make this better?
*plinss: I think momentum is picking up. I'm happy with the progress lately
*Render processing pipeline:   https://docs.google.com/document/d/1Mw6qNw8UAEfW96CXaXRVYPPZjqQS3YdK7v57wFttAhs/edit?pli=1#heading=h.1qfloic3tvvr
*... discussion about the disconnected worker threads for this style of processing.
*... also some talk about font-metrics APIs.
*david: The custom painter is a worker with a canvas-like API. The user agent may render them, but there's not read-back.
*alex: what's the scope here? https://drafts.css-houdini.org/css-paint-api/#example-1
*david: we want many of these running, but we don't want dependencies between them. Thus there is declarative state.
*alex: I don't see how to start/register one of these things?
*david: someone has an action to write the spec that describes how the worker stuff works.
*alex: sounds like there are some key issues to resolve.
*david: yes.
*alex: great! Anything else to bring up?
*david: rendering pipeline is a little different from the rest of the stuff in Houdini, but it's somewhat correlated, so the group took it on.
*alex: on processing pipeline: lots of things mutation observer callbacks, promise resoltion, etc., all link into a queue... whose order is not well defined. We have microtask and nanotask which are places to run code... what's the order?
*alex: there seems to be an area where "work" can happen for a frame. I want to see if there is interest in pulling out task delivery (queing/draining) and writing it down. "Life of a Frame"
*alex: Action: define demand--scope out value. Email framework folks to ask about task delivery. CSS houdini is now defining ordering with regard to layout/paint, but the "callbacks" area is very loosely defined.
*
*dan: we've been tracking/promoting service workers for nearly 2 years. Some implementation have not come up-to-speed.
*... e.g., we directed push notification to adopt. SW is a core piece of web architecture.
*alex: SW is in use in Facebook... (sometimes in desktop, all the time in Android)
*dan: no additional TAG push?
*alex: I don't think so... maybe hover in wait-and-see mode.
*
*plins: in custom layout workers, something gave me pause...
*... current proposal has a sync pattern. I asked why it wasn't async.
*... I heard that a first iteration of using Promises/async was too slow. This gave me pause.
*alex: interesting. Async promises shouldn't be affecting things too much unless there is idle time spent waiting to re-invoke the callbacks due to how promises are invoked.
*alex: we don't have a lock-ordering system. The specs talk about them (e.g., IndexedDB). SW caching API avoids them.
*alex: I discussed with Jonas about a potential solution here with lock ordering.
*dan: action here?
*alex: we can work with DOM area owners to try and design it? Or figure out how to design around it. IndexedDB seems to have extended the issue.
*
*lunch break!
*<hadley leaves>
*
*(scribe change, all errors now alex's fault)
*
*TOPIC: guest speaker, Cory Doctorow, representing EFF
*
*cory: would like to present a way forward now that EME is continuing
*cory: circurmventing DRM implies criminal and civil liability today.
*cory: large consequences both for exploiting and reporting vulnerabilities. That liability has now spread to web standards.
*cory: there was a previous issue that looked like this; software patents.
*cory: W3C solution wasn't to take a position on software patents, but was instead to come up with a patent policy: a covenant not to sue
*cory: this can work for DRM as well
*cory: I've written a short covenant that binds participants not to particpate in criminal and civil proceedings against those who research and implement EME
*cory: the problem with DMCA 1201-overlapping technologies is that these vulnerabilities last longer. Sony Rootkit as example. 2nd or 3rd group reported, not the first
*cory: now that browsers are exposed to this dynamic, the issues are going to spread to browsers
*cory: HT dump showed that in-browser weaponized exploits are real
*cory: "browsers are the UI for the IoT". Adding 1201-covered tech to standards turns them into reservoirs of long-lived digital pathogens
*cory: further, 1201-like liability is now a persistent part of international law, largely due to US trade rep influence
*cory: our covenant is, likewise, global
*cory: What about non-members? Studios and others might have standing to sue but won't be in the pool. But this is also true of patents. We keep the patent policy in place because there are different sets of victory conditions. Particularly around Trolls.
*cory: tinyurl.com/w3c-eff1
*cory: Does 1201 actually hurt security? Not much court record. 3-year cycle for review and comment. Just happened. Many comments filed.
*cory: "we have first-hand knowledge of researches who do not publish results due to 1201 liability"
*cory: tinyurl.com/w3c-eff4
	cory: UK researchers point out that this enables nation-state surveillance
*cory: voting machine example. Secretary of State indemnification allowed this to proceed, wouldn't have otherwise
*cory: tinyurl.com/w3c-eff5
*cory: insulin pump example. Low audit rates.
*cory: tinyurl.com/w3c-eff6
*cory: we can agree to disagree about DRM, but it can still agree that it's dumb to encourage suits around W3C standardized technology
*cory: anything we can do to reduce the chilling effect on reporting vulnerabilities is beneficial. We can agree to that.
*cory: we can also agree on open standards
*cory: the covenant splits the difference between rightsholders needs and user protection
*cory: "Apollo 1201"
*
*(presentation concluded)
*
*<feedback from hadley>: "protecting responsible disclosure is important", issue isn't a priority with many governments. Agree it's useful to head this off if we can.
*<hadley in the blind>: this appears to be targeted at civil results, what about criminal liability?
*cory: great point. The probability of prosecutors acting without the support of agrieved parties is much, much lower. Rogue prosecutors are real, but much less likely.
*timbl: with Aaron, this didn't hold
*timbl: with patents, it's a bit different. It's hard to find an engineer who would be willing to sue. But content producers might sue more freely.
*alex: but does that speak to the question of what folks inside the W3C will likely do if they sign the covenant?
*timbl: I can't see the motivation for Sony to do it if Mozilla does
*wseltzer: the question of "could this do incremental good?" is a good one. Right now we say "do whatever you do re: EME" and this puts constraints on it
*dka: we've discussed EME in the TAG for a long time. Sergey's presentation was forceful, from the Russian perspective, and he viewed the privacy implications as evil. Security researchers would like to be able to audit this sort of behavior, which makes this a real question for us.
*dka: is this specific to EME? Or should we be considering it for all W3C specs moving forward?
*mnot: if we can find an effective way to move the ball forward, I think we should. Browsers do a lot on the user's behalf, and verifying the behavior of browsers seems good.
*timbl: when we previously discussed this, I proposed setting legal and technical requirements on DRM manufacturers. I.e., when they want to have space on my machine to do things, they should make concessions, i.e., only doing the minimum work necessary to verify licenses. I.e., not exfiltrating private data.
*timbl: can't we ask for more from the DRM vendors?
*cory: how would you audit compliance with that regime? You'd still need the covenant. How would you bind parties not in the room to the covenant?
*timbl: you'd work toward regulation
*cory: congress can't pass a budget.
*timbl: the TAG could find that this tech is only compatible with particular regulatory environments
*alex: the TAG has specific competence. We can weigh in on technical issues inside the W3C and provide advice to WGs. Finding outside our ability to enforce creates major risks for the TAG. The covenant is useful because it's actionable inside the W3C.
*wseltzer: there are crazy limitations on all the 1201 exceptions.
*cory: apropos of patent trolls, there are trolls out there for web technology. We've litigated many cases. Folks outside the W3C can still troll regarding web tech and do. We see a lot of it. It's still useful to have the patent policy.
*cory: in the case of JSTOR, the Mass. AG would have been hard pressed to act if there hadn't been a complaint.
*cory: the only person imprisoned over 1201 was imprisoned by a web tech company (Adobe)
*cory: it makes a big difference when we come to the copyright office every 3 years, action inside the W3C would help us inside policy circles. The W3C is well-respected.
*timbl: it would be interesting if you could get a few lead publishers to adopt the covenant.
*cory: the OECD has created labeling practices around DRM but nobody adheres to them. We seen non-DRM ebooks outselling DRM'd ebooks 2:1. We're working with to request significantly better labeling via the FTC.
*<hadley in the blind>: concerned about the slippery slope. Won't this discourage web use?
*cory: this was the same concern with patents. If your goal is to put programmers in jail, should the W3C be the place to try to win that right?
*timbl: the argument with patents is different. There was a tension with mobile apps. New markets built on standards create a lot of risk and it's useful to have protection.
*cory: lots of people who used to be in OASIS used to be there explicitly to collect rent. The W3C has a competitor whose goal is to collect rent, but it was still the right thing to do. You should have better taste than that.
*<hadley in th blind>: would this be binding in enough jurisdictions to make this effective?
*cory: broadly, yes. Creative Commons is a template here. There might be a jurisdictions where someone brings a suit based on non-1201-likeness, but to put a programmer at risk in that situation, both would need to be situated in the same jurisdiction. The covenant about patents has the same dynamics but still made a huge difference.
*<hadley in the blind>: think it's important. Would like to help.
*mnot: how do we make this happen? Revision to the patent policy?
*cory: we don't think it needs to be there, but it's a good place to put it.
*mnot: Process 2016 instead?
*alex: what about the Web Platform WG? Google doesn't support an independent Media WG, so that might be a place to put things.
*wseltzer: re-opening the patent policy would be very hard to do thanks to finely-balanced positions
*<discussion of charters re: patent policy>
*cory: precedent?
*<discussion>
*mnot: with A/C hat on, I'd object to WP WG as is to force discussion of this; it's new information
*alex: the TAG can weigh in regarding the impacts on technical dicussions that result from this.
*<discussion about openness and technical criteria for compliance>
*<follow-up, todos>
*
*TOPIC: EME discussion w/ David Dorwin
*
*<introductions>
*<intro to current spec>
*ddorwin: spec is pretty stable. There was a prefixed version which Chrome and others shipped. Chrome and FF have shipped the unprefixed version, others aren't there yet.
*ddorwin: new features being requested, which is the source of much tension. Lots of progress on ensuring privacy and security. Existing solutions might be supported by a single pipeline and some vendors want to make sure it's supported by the spec. Raises questions about interoperability.
*ddorwin: looking to close the spec soon. Not to LC yet, although 4 years long.
*ddorwin: want to make sure that all content can run on all implementations.
*alex: can you provide an overview of the compatibility issues?
*ddorwin: common encryption is the basis of the system. Different systems want to use a Protection System Specific Header for differing uses which lead to incompataibility.
*alex: how do they differ in use?
*ddorwin: PSSH tends to include Key IDs. That data is passed to the CDM which generates a request which is sent to the server which sends back a license. This is the same model as was designed for WebM. Pretty simple.
*ddorwin: other DRMs have designed other mechanisms. Keys in these systems might be encrypted in ways that require another decryption key. Some parties want to see the PSSH box and derive the key without involvement from the system. That can sometimes require the media element to talk directly to the CDM.
*ddorwin: this might introduce a new mode that might not be supported by some implementations.
*ddorwin: there's also a key-rotation idea. Some implementations might want to rotate the key every half hour, e.g.. Key derived from the PSSH w/o app involvement.
*ddorwin: there isn't any content today that works interoperaly across systems but works this way. We'd have to define new behavior to support this interoperably.
*alex: is it possible to use EME portably today?
*ddorwin: yes, Netflix is doing this with the basic key exchange I mentioned earlier.
*alex: what's preventing you from moving to LC?
*ddorwin: some minor bugs. But there some bigger issues like the ones I mentioned. They tend to be small text changes that imply large changes.
*ddorwin: also spending a lot of time on "secure release" or "secure stop" which could use TAG advice on.
*alex: can you introduce "secure stop"?
*ddorwin: the feature is to limit concurrent streams. Everyone agrees this should be doable. One option is to issue short licenses and renew frequently. You allow users to do what they're doing but limit use with short duration. Secure stop uses long-lived licenses but then requires you to securely record when you stop playing. Then, you can determine after the fact that "hey, you were using 3 streams instead of 2". This creates many problems for the web platform. Requires app to run after it has otherwise been shut down.
*ddorwin: you get a long license, the app closes, the DRM system writes a record indicating the use, and that's reported to the server. The server can do the reconciliation. The problem is that the system needs to write this whenever the app stops, after app teardown has occured. The CDM process has to keep running after the renderer process has been killed.
*ddorwin: an alternative version exists, but requires "secure storage" which isn't frequently available. This is inconsistent with the app architecture that the web expresses. The thing that is related to media playback is outliving the app. Only <a ping> and navigator.sendBeacon() do anything like this.
*dka: why isn't the first mechanism (short licenses) sufficient? Seems like secure stop is very complex.
*ddorwin: we agree, but others do not. They argue that the renewal solution introduces a real-time dependency on a license server. The idea is that the CDM is reliable but that app infrastructure might not be. Content can now fail because the main app server went down. We provided detail on how to minimize/avoid this problem, but secure stop proponents didn't want to build highly reliable servers.
*travis: they key licensing is a centralized point of failure. Content can be out on a CDN, but licensing can't.
*ddorwin: I'm not sure load was the issue, but there is an increase. The debate here is about where the complexity should be; on the client or on the server?
*dka: this sort of mirrors how GSM networks operate related to the user identity on the SIM. Periodically that's checked by the network. You want to ensure that the SIM is only in one place.
*cory: it sounds like pushing license enforcement into the client creates urgency that the client can't be modified. In the server, it's less urgent to maintain the integrity of the client?
*ddorwin: the security of the client is called "robsutness" in the DRM world; I'm not sure this changes that much. You still rely on the client to enforce policy. It does limit options. A secure stop world means distributing all policy decisions to the client. With a server solution, you have more flexibility, particularly when you think the users aren't abusive.
*ddorwin: secure stop also creates problems for private browsing modes and stateless clients.
*cory: in the US there's legislative history about what videos you rent being protected. Given that we have a norm that says what videos you rent enjoy privacy protection, that seems like a useful thing to extend through the architecture.
*dka: regarding TAG guidance, putting exceptional logic into the CDM doesn't seem to make sense. It doesn't seem consistent with the architecture of the web.
*alex: but we need to say why.
*alex: we need to understand the difference with <a ping> and sendBeacon. Those are only best-effort
*travis: we take the secure-storage route, but don't handle issues like OS shutdown
*ddorwin: this is one issue with secure stop; it gives native DRMs for some browsers a user-experience advantage
*alex: can you explain?
*ddorwin: well, if you move to this world, then if you don't do secure stop in the underlying system, you need to delay shutdown
*alex: who's the attacker?
*ddorwin: in this case, the user
*travis: does the storage need to really be secure?
*ddorwin: it needs to be tamper-evident. The CDM needs to be able to verify that it wasn't tampered with.
*travis: the end result would be that if you were able to block messages, you'd be able to keep more streams going?
*ddorwin: right.
*alex: seems like a lot of complexity.
*dka: I think we have an action to come up with a better written articulation about this as feedback. It'd be good to understand who's the recipient of that feedback. Are they receptive or not? Are we wading into a fight?
*alex: david, what can we usefully do?
*ddorwin: an evaluation about how this intersects with the architecture would be useful. We think it's incompatible with the rest of the platform but have left it to the TAG to tie-break. The other side thinks it's a "client architecture issue".
*alex: sounds like yes, we'd be wading in
*dka: the question isn't should we or shouldn't we, but the question is what's the nature of the response we want to make
*ddorwin: it's controversial, but you can make a judgement about how it relates to <a ping> and sendBeacon() without wading in.
*dka: someone needs to write this up.
*<discussion of who might write something up>
*<discussion of new-world vs. old-world content>
*ddorwin: it's not just an implementation issue; if you're not the native DRM on the system (which is the only way to get secure storage), then you've got to impact the client architecture
*travis: you could make the same argument for IDB
*alex: but the security properties are different
*travis: difference in reliable delivery
*alex: this is why IDB has transactions
*ddorwin: if you want to fully sandbox DRM, I'm not sure you can with secure storage
*travis: is it OK to have best-effort for this feature?
*ddorwin: this sort of Persistent Usage Record might not be very reliable. Netflix is saying "this must be reliable except for very rare cases". Closing a tab or putting a laptop to sleep isn't something they will do heuristics for.
*ddorwin: the other side is that this only provides detection, not enforcement.
*travis: the use-cases for limited licenses is widely accepted?
*ddorwin: yes. One thing about license renewal is that it's implemented inside the protocol. No need for it to be in the spec.
*timbl: that means that the encrypted stream has to change its key?
*ddorwin: no. That'd be key rotation. That's different. It's just a way to check that you've got an updated key.
*cory: it seems very fragile; e.g. by DoSing a school. 2 minute windows where a server being transiently unavilable seems very brittle. Low-interval renewability in game servers have been the bane of gamers. It's the reason you see executives on airplanes screaming.
*travis: is there an offline story for this?
*ddorwin: both of these are for online streaming. There _is_ a persistent license type; it stores a license and has different properties. Secure stop is like that but without the advantages to the server.
*cory: even if it were highly automated, nobody would want to go to a theater where they checked your ticket every 3 minutes.
*travis: do persistent keys require secure storage?
*ddorwin: yes.
*travis: is it in the spec?
*ddorwin: no,
*... we've managed to keep this (persistence) out of the spec.
*mnot: does this get to the question of to what extent we want to support different business models through standards?
*<network issue>
*dka: seems useful to make a statement, but it should be time-boxed in terms of effort spent.
*TODO: Travis and Alex to co-author; https://github.com/w3ctag/spec-reviews/issues/73
*
*slightlyoff: what else can ddorwin@ help us understand?
*timbl/dka: privacy?
*ddorwin: we've made progress on the distinctive identifiers issue in the spec. Hard to verify what implementers have done.
*timbl: why is that?
*ddorwin: we can't force implementers to do things. Another issue that has come up is consent and user understanding. Some folks have strong objections to communicating this to users, so that's a challenge.
*timbl: what about the user's calendar?
*ddorwin: are you saying we should explicitly prohibit leakage like that?
*timbl: yes.
*ddorwin: I think it would be helpful to have outside review and comment on the privacy aspects of the spec. We've addressed issues we know, have tried to customize common language, but it is a black box that's outside the UA and I'll take your note there that it's something specific we should add.
*dbaron: I understand some browsers sandbox the DRM component?
*ddorwin: Chrome and Mozilla have. Not sure about others. There's a tug-of-war between robustness and sandboxing.
*dbaron: with sandboxing I'd assume that's less of an issue?
*ddorwin: we have talked about requiring sandboxing, but we don't have a good definition of a sandbox.
*timbl: I think it's good to have this on 2 levels: language specifying that DRM systems can't take unauthorized user data, but also saying that browser environments should seek to enforce those requirements.
*cory: I think it's a great requirement. I'm not sure how you audit compliance in light of the earlier conversation, though.
*timbl: but there are lots of ways this information comes to light
*cory: I think this is different to other cases like DNT because it's not a felony to figure out if DNT isn't correctly implemented. EME in the global legal framework is a thing unto itself with no comparison. There's no other domain wherein trying to determine if a claim is true constitutes a felony. In other cases you might argue there will be a whistleblower, but the lack of normative compliance aspects makes it hard.
*cory: I think you need the covenant.
*timbl: I don't want us to throw up our hands and say "we shouldn't because it's not enforcable"
*cory: I think we should also make it enforcable via the convenant.
*dka: putting energy into both is clearly positive.
*cory: in large part the covenant it would obviate the normative text. It would let other mechanisms (markets, press, etc.) take hold.
*timbl: we're asking something special of DRM. It's not like your average app.
*cory: I think that's a great requirement for everything! Nothing should exfiltrate my calendar!
*cory: the fact that Samsung was taking snippets of your audio and transcribing it was a major news issue
*wseltzer: there are various tools that people can use in other areas but not in DRM is different. It's about if users can find out if something is happening.
*cory: whatever minority do freak out about privacy issues is useful. That which isn't disclosed or known can't be acted against.
*<one more thing...>
*dka: ddorwin, can you send us a link to the sections taht we could comment on so we can provide specific wording and ideas to integrate there?
*alex: we can roll that in to the normal spec review
*dka: if there's a specific privacy/security consideration we can link to, that will be useful
*ddorwin: ... I can paste those in ... where possible, inoto the algorithms.  There's musts and shoulds in there.  Would be great to have feedback there.  This is also one of difificult efforts, to provide user ??? and security and privacy in the face of existing implementations.  Would be good to have outside input/support on these issues as well.
*<links: https://w3c.github.io/encrypted-media/#security https://w3c.github.io/encrypted-media/#privacy >
*dka: Part of our role to channel...  Might be a minority view in the community working on that.  Hopefully we can tip the balance a little.
*
*<short break>
*
*<hadley rejoins by phone>
*Topic: IETF liaison
*mnot: We had IETF Prague a week after we last met
*mnot: In HTTP, status code 451 is pretty much done.  I think Tim owes us some editorial work and then we'll ship it.  It's turned out not to be controversial.  Positive indications:  some sites already using it; others interested.
*mnot: Still working on alternative services -- where sites shift traffic around to different hosts.  Implementations in Firefox and Chrome, still working on others.  Like CName over HTTP.  Doesn't change URL, and doesn't block while establishing connection to new site.  People with large number of servers like it.
*mnot: Still working on opportunistic security.  TLS for HTTP URLs.  Only have Mozilla implementing.  Still an experimental draft.  I kind of get the sense support is weakening.  Brad has alternative approach which he hasn't brought to us.  Time to discuss theis week?
*dka: We could put it on the agenda.  Would it fit under spec reviews or separate?
*mnot: Talk about it when we talk to Mike West.
*mnot: Also Richard Barnes's approach of HSTS probing.  If you're about to block something for being mixed content, probe for HSTS header and if it's present, switch instead of doing mixed content blocking.
*Yves: <scribe missed; mainly a question to Mark about what the proposal is>
*mnot: Let's get Mike (and maybe Richard) on the phone
*TimBL: This is about mixed...?
*mnot: Yes, continuation of discussion we've been having.
*mnot: Continuation of sites with a lot of legacy content that they want effective ways to transition.
*mnot: Doing calls for adoption for things like client hints, Ilya's spec for negotiation of things like device pixel ratio.  Only pushback about whether it's necessary, and a little privacy exposure.
*dbaron: might get more pushback if more people in the room?
*mnot: Martin Thompson has encrypted content encoding, encrypted ??? as an attribute on the payload.  Use cases arethings like Web Push -- can persist a Web Push message on intermediary without access to payload.  Could also have Web synchronization service that doesn't have access to content.  Anywhere you don't want to trust service completely.
*mnot: First-party cookies from Mike West.  Constraining cookies to being only available to first party.  Because of the way cookies work, we have to open up the cookies spec, which is an interesting opportunity.  We have provisional approval.
*mnot: We have the search verb.  Still being proposed.  Having a discussion with Ashok about that.  Having trouble seeing how it's going to go forward.  I think it's going to be hard to get enough momentum -- probably going to be use the POST patterns that have been present for so long.
*mnot: And a little further out, I have te thing I was mentioning before:  I have a strawman proposal to use HTTP2 as a substrate for VPN -- for IP -- which is an in-joke (IP over everything), but from a social standpoint has some interesting attributes -- hard to censor.
*<chocolates arrive>
*mnot: We're starting to use github for maintaining specs and discussion of issues.
*mnot: ... we're seeing this in a lot of venues; right pattern to involve developers.
*mnot: There was a BoF on captive portals.  The outcome was there was a surprising amount of support for doing more work there.  We had implementors from both client OS and captive portal side show up and show interest in more work.  Though probably starting small, with documenting existing state of things.
*dka: How can we best get involved?
*mnot: WG not chartered yet.  Was a BoF.  A charter will appear at some point, and there will be discussion.
*mnot: There's an effort just starting to define a Web synchronization protocol -- do something like dropbox does -- synchronize files across multiple machines across machines.  I think it's important -- interop would be good -- and good to have zero-knowledge baked in to the protocol.
*plinss: How different from WebDAV?
*mnot: WebDAV not synchronization, just a Web filesystem.
*TimBL: rsync
*mnot: Should we just use rsync?
*TimBL: if you ... just an HTTP server
*mnot: This would be a protocol based on HTTP that would do things like exchange the hashes, etc.
*mnot: As much as I'd like to see activity in that area, I think standardization is going to be hard, since vendors don't have incentive to participate, except maybe box.
*plinss: Get the owncloud folks involved?  Seems good on pushing on federation between these types of services.
*mnot: More generically, I'm trying to push XMPP folks and a few others to think more about zero knowledge in the protocols.  It's a little ridiculous that we have protocols that require full access to payload, rather than just metadata you need to deliver the payload.  (Not  talking about zero knowledge proofs.)
*mnot: Web Push ... liaison relationship.  W3C doing API component; IETF doing a protocol component that can be used by that API.  The idea is that a handset should have only one push server to minimize radio overhead.  Being based on HTTP2, using encryption to get less knowledge of the payload.  Going smoothly, as far as I can tell.
*mnot: We just got the .ionion registarion done.  That's now part of DNS.
*dka: There was a BBC article on it; title misleading.
*hadley: A bunch of weird coverage.
*mnot: The discussion beyond that is revision of RFC6761, which is procedures for issuing special names.  We got .onion through because emergency -- were going to revoke certs.
*mnot: When does IETF issue special names
*mnot: ... why people pay a lot for top-level domains, etc....
*mnot: There's a growing effort to define  the human-rights implications of protocols.  Research group now working on that.  How human rights intersect with internet protocols.  They're working towards "Human Rights Considerations" portion of a spec.  How do you consider them in protocols without making judgments -- not advocating for certtain positions but making sure the protocols take these things into account.
*mnot: A lot of the folks driving these are interested in freedom of speech, association, UDHR stuff.
*TimBL: You don't have to invent it, you can just refer to hit.  Then, to be compliant with ...
*cory: So if you were revisiting ipv6 and, say, be able to revisit the implicit geolocation parts of it.
*hadley: So basically a required set of use cases to consider?
*mnot: Yes. trying to frame discussion around core principles like connectivity.  Getting some traction.  Sympathies of lots of folks, want to make sure it's done well.
*mnot: We did hold the HTTP workshop (not anIETF eent) right after meeting we had in Berlin.  Went really well.  Good community event; had a lot of people who don't usually show up tostandards stuff.  Had a deep discussion about QUIK and transport issues.  Was a lot more understanding about what QUIK is going to mean for the stack.
*mnot: Talked about HTTP3.  Doing lots of interesting stuff with that.
*dka: Is the assumption there that QUIK will somehow be an outgrowth of ...
*mnot: There's been a lot of discussion about how to organize a lot of this work.  Generic TCP replacement tailored for the HTTP use case -- then we'll define HTTP3 as a profile of HTTP2 that uses that substrate.  But there was a lot of interesting maybe making semantically breaking changes to HTTP3.  e.g. different forms of expressing headers, different message exchange patterns on the wire, being able to flag request/repsone as not needing reliable delivery since I'm doing video.  Not done yet.
*mnot: Wrote a workshop report, and a brainstorming list of things we could work on in the future.
*Yves: Discussion of distributed ??
*mnot: Discussion a little; posted a blog a few weeks ago.  High point here: lots of interest/discussion of are we going to have a distributed web -- based on one of many proposals -- DHT or blockchain based.  Some are getting a lot of traction.  IPFS one of the bigger ones.  The problem is folks coming at it from a filesystem standpoint rather than a Web standpoint.  How de we deal with mixed content problems?  How do we leverage into Web as it exists?  How to deal with request privacy issues?  So not nearly as straightforward as people painting it to be.  People saying you can't censor a peer-to-peer web -- but you can.  Really easy to censor people who ask a particular hash.
*cory: Also easy to DoS someone.
*TimBL: There have been so many distributed hash table designs, and nobody has implemented.  Imagine it could work between libraries, and could find a way of paying for it as a common good.  Generic -- I've never found a hashtable where everybody pays and gets the same amount of access.
*cory: Zooko's triangle -- Pick any 2 of secure, human readable, and unique.
*mnot: I'm experiencing doubt -- might write something about that.  I'd like to have something up there with interesting new properties on the Web, but not nearly as clean a thing as many people believ.
*dka: To your earlier point, doesn't .onion solve some of those problems?
*dka: Coming back to that, is the intention of the reservation of .onion partly to enable people to issue certs to sites?
*mnot: yes, CA/Browser forum had date to cease issue for all certs without a legitimate root by date (November this year?)  .onion fell into that.  Assumption was to get .onion registered so that certs wouldn't have to be revoked.
*dka: There was a coming clash between TLS all the things and the growth of more complex sites being launched under .onion.  e.g., facebook's .onion site would have had to have had its certificate revoked.
*dka: When you visit a .onion site, there's a level of encryption on that.  But this is about layering TLS on top of that.
*mnot: With TOR only encrypted to the exit node.
*dka: But with a .onion site, ...
*
*TOPIC: Ad Blocking
*
*mnot: I put something in the wiki (https://github.com/w3ctag/wiki/wiki/AdBlocking )...it seems that ad blocking is reaching a tipping point...there's a lot of discussion and back/forth now. It's hot topic.
*mnot: one of the more interesting efforts was the IAB article. It is becoming an contentious issue. We've talked in the past about things like the right to deep link...is there a right to view a webpage without downloading and running everything it pulls in?
*dka: just because the site/provider thinks there's a certain way things have to be that doesnt' necessarialy mean that's what should happen
*mnot: there's a huge performance overhead and perhaps a huge privacy incursion
*cory: there's some legal context here. When Fedex sued UPS...there used to be spammy toolbars. A toolbar had sold the right to show a popup about UPS when you were on Fedex.com. The EFF's position at the time was that, as scummy as it was, whatever you wanted to do with the bits was up to you once they were on your device. The TAG could clarify the intetntion of the webs design as being up to the user to determine what renders and doesn't.
*timbl: there was Ted Nelson who said there are 2 gods of literature because they are unstoppable: the writer can't be stopped from writing and the reader can choose what to read.
*cory: <anecdote>. The right to speech is not the right to compelled attention.
*timbl: if the web's business model is ads, then using copyright to enforce it is silly. You might instead have laws that enforce the restrictions.
*travis: adblockers work by blocking origins?
*<no, the also look for formats, etc.>
*cory: it's not a copyright infringement. The important part, though, is that they're my eyeballs.
*<discussion of private domain vs. public domain & copyright>
*cory: this is what the Protestant Reformation was fought over.
*timbl: meanwhile, I agree that advertising is making a negative contribution in some cases
*alex: one option is for user agents to think more creatively about their obligations as a user agent.  On the Chrome team we're looking at various options.  Another idea is "ad filtering"; I wrote it up in 2009 -- can think of it as a filter for what users do and don't want to see.  Give people a way to communicate their preferences.  Ad blockers are silent; they don't give authors any user preferences about content.  Communicate to all participants what the terms of the market are.  User agents have been derelict in preserving the user's interest.
*dka: What's the incentive for the ad networks to pay any attention?
*hadley: How uch of this is our responsibility?
*alex: Maybe just to flag for user agents that they've done a poor job.
*hadley:   Feels like a lot of what's happening is within the bounds of the architecture of the Web, as much as I hate advertising as a user.
*mnot: But ad blocking is within the architecture of the Web.
*alex: Is anybody making a credible claim that the architecture of the Web is imperiled by ad blocking?
*<no>
*
*mnot: some of it may be tracking blockers rather than ad blockers
*dka: many people installing ad blockers for performance as much as not wanting to see ads
*ale: a large chunk of performance is not just network time but run time.
*alex: The IAB and MRC have mandadeed a new standard for whether something counts as an impression for a display ad. Previously having an ad served was an impression.  Now 50% has to be visible on the screen for 1 second continuously in order to count. So now people, because of poor APIs, people are polling every 100ms and triggering synchronous layout to test ad visibility.  So one thing I'me working on is an API draft called intersection observer.  The intersection observer proposal is more push based rather than polling.  Just says whether you're in the viewport.  We're working closely with ads teams to implement and adopt.  This causes the Web to be a massive battery drain and we need to fix that.
*(ref: https://github.com/slightlyoff/IntersectionObserver)
*TimBL: You were saying protecting the user by rate limiting things.  From the user point of view there's all sorts of things that pop up that are particularly nasty.  Presumably you could provide ways of locking those popups.  But also rapid changes in the margin.  And also not ...
*alex: I've been looking at UX research to understand cognitive load of various forms of advertizing.  There's relatively high quality research now -- there's a task completion cost and a user happiness cost -- not factored into current mechanisms that we use for anything other than very broad-based pricing differences among ads.  It's a market failure.
*(ref: http://www.justinmrao.com/navalpakkam_rao_slaney_CHI.pdf)
*alex: The ads may have a cognitive load cost higher than the value to any party in the transaction.
*mnot: an externality.
*mnot: Also, the WEF says personal data is an economic asset class.
*TimBL: If I got
*<a bunch unminited due to etherpad performance>
*alex: sites have code that competes with ad blockers, causing loops, etc.  No way for users to attribute blame, which leads to market faliure.
*cory: issuing a statement that the user's screen is the user's business, and the intention of Web standards that what the user sees ... is very powerful
*alex: whenever we talk about a policy statement, I ask about who the audience is.  What's the technical feedback?
*hadley: how can we phrase it in terms of the architecture of the Web?
*cory: Is there another body at the W3C that the TAG could ask?
*alex: I think we could say we wouldn't support technical means to restrict user control.  Or to hiighlight the hierarchy of constitutencies.
*Yves: Or for accessibility might be forced to do modification to a document.
*dka: Stating this in an architectural form is the right approach, since that's where we have authority.
*cory: To beat my favorite horse -- a conevant would allow an EME implementation to implement popup blocking and ad blocking
*<a bit more unminuted>
*dka: TAG finding?
*
*<more unminuted>
*alex: extensions are features that browser makers said "no but yes" to.  Could phrase it as preserving authority of UAs to interpret content as they see fit
*hadley: extensions are there because users have explicitly opted in to them. That would preserve the user's authority too.
*mnot: this sits even more uneasily with EME
*travis: could you imagine EME as an extension
*mnot: no, just the ability for the UA to have ...
*alex: I think what you're trying to do is, say: what is the reasonable basis for popup blocking?  Using the user agent to improve the user experience by interpreting content.  Same for readibility mode, any number of other transformations.  Different interpretations of the same document.
*TimBL: took me a while to find out that on planes you can  -- there's a way of turning the screens off.
*ACTION Mark to do something

gha_language: HTML


text:
# iOS 11 GUI for Framer

![][image-1]

An iOS 11 graphical user interface kit assembled in Framer by [@brentcas][1].

To open the Framer files, you need to have [Framer][2] installed on your macOS device. Download one of Apple’s [iOS UI Design Resources][3] for access to the San Fransisco Pro font. This collection of files is organized into folders like so:

> 01-Style
> - 01-Colors.framer
> - 02-Fonts.framer

> 02-iPhone-8-Elements
> - 01-System.framer
> - 02-Bars.framer
> - 03-Controls.framer
> - 04-Views.framer
> - 05-Keyboards.framer

> 03-iPhone-X-Elements
> - 01-System.framer
> - 02-Bars.framer
> - 03-Controls.framer
> - 04-Views.framer
> - 05-Keyboards.framer
> - 06-Safe-Areas.framer

Each Framer file has a collection of designed elements, and contains no prototype code for interactive behavior. These assets are for the purposes of copying and pasting into your own prototypes, or being used as a design reference.

## Style Guide

### Naming

Each UI layer should be given a code compatible name using camelCase following Google’s JavaScript [style guide][4].  Names should typically be structured as `element`, `state`, `color`. So, the light version of the status bar with a back button would be `statusBarBackLight`.

If a shape is the only layer within a frame, that frame can have the same name as the shape. Paths, groups, and joins within shapes do not need to be named.

### Positioning Shapes

Shapes should always be within a fixed frame that is responsively positioned. If a shape is part of a group of other layers within a fixed frame, it doesn’t need an additional frame.

## Footnotes

Brent Caswell can be contacted on Twitter [@brentcas][5] or via email at<EMAIL_ADDRESS>
This project includes photography by [Quentin Keller][7], [Toa Heftiba][8], [Caleb George][9], and [Eduardo Dutra][10] under the [Unsplash license][11].

All files support Framer v116 and may have issues on other versions of Framer. This project is not affiliated with Apple, Framer, or Domino’s Pizza. Please see the license for more legal gobbledegook.

[1]:	https://github.com/brentcas
[2]:	https://framer.com/
[3]:	https://developer.apple.com/design/resources/
[4]:	https://google.github.io/styleguide/jsguide.html#naming-camel-case-defined
[5]:	https://twitter.com/brentcas "@brentcas"
[6]<EMAIL_ADDRESS><EMAIL_ADDRESS>[7]:	https://unsplash.com/@kt1klr
[8]:	https://unsplash.com/@heftiba
[9]:	https://unsplash.com/@seemoris
[10]:	https://unsplash.com/@edwardutra
[11]:	https://unsplash.com/license

[image-1]:	https://raw.githubusercontent.com/brentcas/iOS-11-Framer/master/README-Images/shots@2x.png


text:
# vscordova-jqm
Visual Studio Cordova and JQuery Mobile Step By Step

Rev 2015.1218.  Digging around there were no good tutorials covering how to add from scratch jquery mobile to a Visual Studio Cordova ( taco / phonegap ) project.  The source code files here are the output of my efforts.  Blog post coming soon.  Raw notes below.

Original source - http://learn.jquery.com/jquery-mobile/getting-started/

GOALS
* First, make it work like they have it
* Then, mod it to use local libs
* Then, mod it into cordova and make cordova have a base template

STEP ONE, AS IS
Create directory for project
Create "new website, empty asp.net".  Allows you to easily use the vs ide.
Key hassle was getting paths right.  Click on them in ide.
    <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
    <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>

STEP TWO, LOCAL JQUERY
* Pull down / clone git repo
* Create scripts directory if one doesn't exist
* Create css directory if one doesn't exist
* Copy scripts ref'd above from git repo external to scripts

STEP THREE, CHANGE TO CORDOVA
* Create blank cordova
* Merge css and scripts folder from step two
* Manually merge in index.html, css in head, script refs in BODY, before cordova
* Manually merge in scripts and css ref

Feedback welcome....

repository: jhealy/vscordova-jqm

repo_name: jhealy/vscordova-jqm


text:
### Project Information:
Project: Ping driver
Description: A generic ICMP driver that implements the Management interface.
Category: driver
Class: TestedBySpirent

A generic ICMP driver that implements the Management interface. Can be used only for
determine online status of device, port and properties lists always returned empty. The following
resource properties requires:
* ipAddress (optional, but either ipAddress or Hostname must be specified)
* Hostname (optional, but either ipAddress or Hostname must be specified)

 ----
1 test case in project
## Test Case File: ping.fftc
### getDeviceStatus
### getProperties
### getPorts
### getHostParameter

repository: Spirent/Velocity-assets

repo_name: Spirent/Velocity-assets


text:
---
layout: default
---

# 1994-08-26 - Re: Nuclear Weapons Material

## Header Data

From: "Perry E. Metzger"<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: 37264b1c163534312d9d711a5d7c6dd7e0fa5f4d743898015e9ffb9c23c1da9e

Message ID<EMAIL_ADDRESS>Reply To<EMAIL_ADDRESS>UTC Datetime: 1994-08-26 02:00:32 UTC

Raw Date: Thu, 25 Aug 94 19:00:32 PDT

## Raw message

```
{% raw  %}From: "Perry E. Metzger"<EMAIL_ADDRESS>Date: Thu, 25 Aug 94 19:00:32 PDT
To<EMAIL_ADDRESS>Subject: Re: Nuclear Weapons Material
In-Reply-To<EMAIL_ADDRESS>Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

Jim choate says:
> > There is some confusion in terminology here.  The brass case is indeed
> > discarded when the round is fired.  Byt 'casing' he means the exterior of
> > the warhead.  The word 'round' is used for both the warhead+gunpowder+brass
> > and then for the warhead itself.  Larger artillery pieces do not use a
> > brass shell case at all.  The round is loaded, and then the powder is
> > rammed in after it.
> >
> That is called the 'jacket' in all the years I have handled weapons that is
> the only correct term for it. The casing is where the powder goes.

Correct -- the Illustrated Encyclopedia of Ammunition fully agrees
with you on this point.

> > > I can find no reference any U-core round being HE or otherwise
> > > carrying a charge. In all cases that I am aware of and can find
> > > reference to it is simply a KE attack on the target where the by
> > > products of the impact bounce around inside the target grinding
> > > up whatever is in there.
> >
> > I believe that this is true, except that the 'products of the impact' are
> > drops of metal and what they do is worse than grinding something up.
> >
> The pieces in most cases are simply slivers of metal that breaks off the
> inside of the tank because of hyper-sonic shockwaves.  They are not molten
> and do not in general cause a fire. Other than a lucky hit on a live
> round with the ammo door open there is little chance of starting a fire.

Correct, in the case of kinetic energy weapons -- shaped charge
weapons end up squirting a jet of molten metal through the armor.
There may be a misunderstanding about what is being discussed here.

However, might I suggest that this has gotten VERY far afield of
cryptography?

.pm

{% endraw %}
```

## Thread

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

+ Return to "[Jim choate <ravage@bga.com>](/authors/jim_choate_ravage_at_bga_com_)"
+ Return to "["Perry E. Metzger" <perry@imsi.com>](/authors/perry_e_metzger_perry_at_imsi_com_)"
+ Return to<EMAIL_ADDRESS>(Paul J. Ste. Marie)](/authors/pstemari_at_bismark_cbis_com_paul_j_ste_marie_)"

+ _Unknown thread root_
  + 1994-08-26 (Thu, 25 Aug 94 17:47:44 PDT) - [Re: Nuclear Weapons Material](/archive/1994/08/f555207f605247af46e6bc63366dd321b40add722baf5848eb75fd403586a12e) - _Jim choate<EMAIL_ADDRESS>    + 1994-08-26 (Thu, 25 Aug 94 19:00:32 PDT) - Re: Nuclear Weapons Material - _"Perry E. Metzger"<EMAIL_ADDRESS>      + 1994-08-26 (Fri, 26 Aug 94 06:03:48 PDT) - [Nuclear Weapons Material](/archive/1994/08/7f8beb94c516a0f8d163e2eb61aaaad968a57d5cc1c49b6dc6aee21c530c491d) -<EMAIL_ADDRESS>(Paul J. Ste. Marie)_
    + 1994-08-26 (Thu, 25 Aug 94 19:06:33 PDT) - [Re: Nuclear Weapons Material](/archive/1994/08/0b4e443fd10a1cfc17f3acbd770d3b203a18031959499d603f7fb2a76b533ec6) - _"Perry E. Metzger"<EMAIL_ADDRESS>


text:
# WebScraperApp
A WPF web scraper built for scraping data from https://mmohuts.com/news/?sort=reviews and https://www.vanguardngr.com/

## Description
The application is a web scrapper used to scrap data from a webpage. It is built using WPF, a desktop development framework and C#. For more about Web Scraping check https://en.wikipedia.org/wiki/Web_scraping

## Features
1. Scrap data from webpage
2. Bind data to Data grid control
3. Export data to a .csv (EXCEL) sheet

## Installation
### Visual Studio
1. Clone Project to local machine
2. Go the Nuget Package Manager Solution and install all the package to the project
3. Build Project
4. Run Project

### Visual Studio Code
1. Clone project to local machine
2. On the terminal
```
dotnet restore
```
3. On the terminal
```
dotnet build
```
4. On the terminal
```
dotnet run
```

repository: Iamkemical/WebScraperApp

repo_name: Iamkemical/WebScraperApp


text:
# OTP Docker

This project contains a docker recipe for deploying an Ubuntu instance with OpenTripPlanner installed. Additionaly it contains configuration to deploy the container to AWS Elastic Beanstalk.

## To deploy the container to AWS EB
1. Install AWS EB CLI ```pip install awsebcli```
1. cd docker
2. eb init
3. eb create
5. eb deploy

license: Unlicense

repository: nicopace/otp-docker

repo_name: nicopace/otp-docker


text:
# Icons

This "Icons" folder is designated for all SVGs to generate icons sprite (default location: www_shared/assets/img/icons-sprite.svg)
During development and production builds, icons will be genereated using [gulp-svg-sprite](https://www.npmjs.com/package/gulp-svg-sprite).


text:
Title: Publ v0.7.4, Authl v0.6.0
Tag: release
Tag: authl
Syndication: https://news.indieweb.org/en
Date: 2021-10-14 22:02:27-07:00
Entry-ID: 897
UUID: 2ea409e7-3cbd-5671-a25d-6905b4ab7f41

Released new versions of Publ and Authl today.

First, the Authl changes:

* Fixed some test coverage
* Changed Twitter user URLs to be stable (but less readable)
* Added `profile_url` field to user profiles to make up for the Twitter URL thing

And the Publ changes:

* Fixed image cache stale directory removal
* Fix ETag output
* Full-text search now properly excludes future articles
* Added a [filename normalization tool](238#normalize)
* Fixed an Internal Server Error that occurred from a malformed or expired bearer token (AutoAuth et al)
* Updated to Authl 0.6.0 and made use of the new `profile_url` field

.....

The Authl change affects the way that Twitter identities show up in the user system; now instead of the user URL being e.g. `https://twitter.com/fluffy#993171`, the URL will now be `https://twitter.com/i/user/993171`. This makes the `users.cfg` file a little more opaque, but it also fixes the issue that if someone changes their Twitter username their connection is lost forever.

In the short term, you can use a comment to keep track of things, e.g.

```
[friends]
; fluffy
https://twitter.com/i/user/993171
```

although this isn't ideal. In the future I may add the ability to add a post-line comment to make tracking things a bit easier, but I need to find a character that both says "this is a comment" and also can't actually appear in a URL (so `;` and `#` are out). I suppose I could just treat whitespace as a comment start, though. I'll consider that for the next version of Publ.

Also, you'll need to mechanically convert your `users.cfg` file, with e.g.

```sh
$ sed 's,twitter.com/.*#\([0-9]*\),twitter.com/i/user/\1,g' users.cfg > users.cfg.new
$ mv users.cfg.new users.cfg
```

(or you can use `-i` but that varies in usage between macOS and Linux so I've opted to be safe instead).

This change is a bit annoying for Publ, but it was necessary for other use cases of Authl, such as providing login to applications.

Also, keep in mind that users who were logged in via Twitter will still have their old identity URL present, which will likely cause confusion. The easy fix for that is to reset your session secret. How you do that is up to how your application is configured.

Anyway, as always, when you want to add a user to the `users.cfg` file, you need to copy the link target, rather than the link text.

url: https://raw.githubusercontent.com/PlaidWeb/publ-site/b54f6a1f4d76294b635d123c58851eb48187f6e5/content/blog/20211014-897 publ 0.7.4 authl 0.6.0.md

repository: PlaidWeb/publ-site

repo_name: PlaidWeb/publ-site


text:
# APP-0002

A generic NFT protocol, comparable to ERC-721 but more lightweight and more flexible.

## Why?

## Pros and cons

Pros:

Cons:

## How

### General principle

### The Protocol

## Possible extensions


text:
# Contributing

If you'd like to contribute to this project, please review the [Contribution Guidelines](https://github.com/dsccommunity/SharePointDsc/wiki/Contributing%20to%20SharePointDsc).

Also check out common DSC Community [contributing guidelines](https://dsccommunity.org/guidelines/contributing).

repository: ykuijs/SharePointDsc

gha_language: C#

repo_name: ykuijs/SharePointDsc