text:
---
type: rule
archivedreason:
title: Do you use content editor web part with care?
guid: f08b5719-4eeb-444d-ab2b-45bec52509df
uri: do-you-use-content-editor-web-part-with-care
created: 2009-11-02T23:32:03.0000000Z
authors:
- title: John Liu
  url: https://ssw.com.au/people/john-liu
related: []
redirects: []

---

The Content Editor Web Part is very easy to use in any web part zone, and gives your content editors ability to add additional text and flair to a page.
![](ContentEditorWebPart_Small.jpg) **Figure: Content Editor Web Part – available in any web part zone
**
 However, there is a scary hidden trap!
<!--endintro-->

![](ContentEditorWebPart02_Small.jpg) **Figure: Content Editor Web Part looking mostly harmless...**
 So what’s bad with the Content Editor Web Part?

* The content in a content editor web part is not version controlled.
* If an editor accidentally overwrites a previous copy – there’s no way to go back.
* If an editor accidentally deletes a Content Editor Web Part – the content in it is lost.
* Data loss is always bad – and Content Editor Web Part gives you many different ways you can easily lose data... you need tread carefully and know the risks!

 The best practice is:

1. Do your content editing in the Content Editor Web Part, or in SharePoint Designer.
2. Click the Source Editor button afterwards to get the raw html view.
3. Copy and save this to a plain HTML file, and save the file in the page library (which is version controlled).
4. In the Content Editor Web Part – link to the HTML page’s URL.

    a.If the text is very tiny – may be just a big heading, you may not want to do this.

    b.Using Content Link is also another way you can re-use the same text in different web pages and update them in one place – very good for big banners.

![](ContentEditorWebPart03_Small.jpg)**Figure: Using Content Link to a file - safely stored in the document library. This gives us the best of both worlds**


text:
# Pierres Tracker
### An independent project for Epicodus

#### Businesses can keep track of their vendors and their respective orders!

#### By Theron Packus

## Technologies Used

* C#
* MSTest
* ASP.NET

## Description

_This application allows business owners to keep track of their vendors and what their vendors ordered!_

## Setup/Installation Requirements

- Requires Visual Studio Code Installation
- Requires Terminal Installation
- Open the Terminal command line on your local machine
- Navigate to the directory inside of which you wish to house this project
- Paste into the terminal "git clone https://github.com/tlpackus/PierresTracker.Solution.git"
- Next you will need to download and install .NET Core through this link if you don't already have it: https://dotnet.microsoft.com/download
- After downloading and installing .NET Core, return to your terminal and navigate to the project folder by entering "cd PierresTracker.Solution"
- You're now all set up for testing!

## Running Tests

- Navigate from the projects root directory to PierresTracker.Tests by typing "cd PierresTracker.Tests ".
- Then type in "dotnet restore" to restore any dependencies and tools for the project.
- Next type in "dotnet test" to confirm all tests are passing
- Now you're ready to Run the application in your browser!

## Running The Application In A Browser

- Once you've completed Setup/Installation Requirements and confirmed tests are passing, enter "cd .." in the terminal to return to the projects root directory
- Enter "cd PierresTracker" to navigate to the PierresTracker directory
- Enter "dotnet run" to automatically build the project then launch the program in your Browser
- If it doesn't automatically, click the http://localhost:5000/ link terminal should provide you to launch the program
- Use Ctrl + C to escape or quit the program if necessary

## Known Bugs

- No known bugs so please lets me know if you encounter any through the email I provided below.

## License

[MIT](LICENSE.txt)

Copyright © 2021 Theron Packus

All Rights Reserved

## Support and Contact Information

For contact support or any found bugs, please email me here <a href = "mailto<EMAIL_ADDRESS>Email

license: MIT

branch_name: refs/heads/main

extension: md

license_type: permissive


text:
# Contributing

To contribute, follow github [fork & pull request](https://guides.github.com/activities/forking/) workflow.

Before engaging to much work, make sure someone is not already working on the same issue on the [Projects pages](https://github.com/stasson/vue-mdc-adapter/projects)

Do not hesitate to contact us on [Gitter](https://gitter.im/vue-mdc-adapter/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) for any question.

## Development Setup

- Porbably best to align on Latest Node LTS

```bash
nvm install 8.9.1
nvm alias default 8.9.1
```

- If you are on Windows, unit tests require specific [node-canvas](https://github.com/Automattic/node-canvas/wiki/Installation---Windows) pre-requisites install

- Repo is setup to follow conventional git commit with comitizen:

```bash
npm install -g commitizen
```

- get the repo and start the development server

```bash
git clone https://github.com/stasson/vue-mdc-adapter.git
cd vue-mdc-adapter
npm install
npm run dev
```

## Build Env

### Distribution

```bash
npm run build:dist
```

MDC components are organized in features located in a `components\<feature>\` folder.

Each feature is distributed as an umd Vue.js plugin, with a `components` array member for convenience. The main distribution is a Plugin including the full set of features

> distributions are built for each package with rollup:
> `development` distribution includes source-map, stylesheets are injected
> `production` distribution is optimaized with split stylesheets

### Demo and Documentation

```bash
npm run build:demo
```

Each `components\<feature>\` folder has a `Readme.md` and a `demo.vue` which are integrated in the demo site (`demo\` folder).

> demo site is built with webpack, using vue-loader, markdown-it sass-loader and is setup for dynamic imports.

### Tests

```bash
npm run test
```

> Unit tests are run with jest setup for jsdom and vue-test-utils

Distribution is built is built using rollup.

## Development Guidelines

## Commits

before submitting for review:

- create/update the associated README.md and demo.vue

- run sanity checks

```bash
npm run test
npm run build
npm run lint
```

> linters are setup to follow `recommended` options

- then commit with commitizen

```bash
# commit with
git cz
```

### Coding Rules

> Rules below apply to adapter component source code. For demo site code, follow  [vuejs-component-style-guide](https://pablohpsilva.github.io/vuejs-component-style-guide/#/).

- Adapter plugin shall be located @ `components/[feature]/`
  where _feature_ matches the  pkg name of the component being wrapped: `@material/[feature]`

- Each feature `components/[feature]` package shall be a vue plugin and export the components as well.

- Component shall have a name property which matches the MDC component css class name, kebab case. for example: _mdc_button.vue_ adapts `<button class="mdc-button"> ... </button>`

- Adapter plugins shall register the vue components with the same element name as the component name property.

- Single File Components shall have a `<template>` and `<script>` section, with no lang specified (this is to avoid vue support issues with the complex build env.)

- styles shall not be put in the `.vue` sfc file. styles shall be kept in a separate sass file.

- vue component should have a class on the main mdc element which matches the component name (this is to allow customization).

- when adapting an mdc component do not wrap the mdc component, implement the mdc foundation.

- when importing foundation from @material/xxx, import from the foundation module instead of pullingthe full package
  __don't__
  ~~`import { MDCCheckboxFoundation } from '@material/checkbox'`~~
  do
  `import MDCCheckboxFoundation from '@material/checkbox/foundation'`

repository: xuanzhaotech/vue-mdc-adapter

branch_name: refs/heads/master

repo_name: xuanzhaotech/vue-mdc-adapter


text:
# Version 1
## Overview
Version 1 consists of a webservice that runs inside a docker container, that executes arbitrary code passed to it
by the user, via a front end. It follows the fork-exec model of code execution by creating a child process,
that runs the arbitrary code. The child process has a time limit as well, to prevent it from running too
long.

The fork-exec model is followed to protect the parent process from crashing from any faults, or vulnerabilities the
arbitrary code might exhibit.

## Setup
1. Run the bash script `src/docker_build_run.sh`. This brings up a docker container that is accessible at
`localhost:4000`.
2. Open the file `ui/index.html` in a normal web browser (Note, you do NOT need a webserver).
3. Ensure that the docker container is up and running, and then you can enter any code in any of the given languages to see the output

repository: limeonion/Pub-Sub-Docker

gha_language: JavaScript

repo_name: limeonion/Pub-Sub-Docker


text:
# How to have better discussions

Having productive conversations is quite hard. It's really easy to fall into  patterns of conversations that produce a lot of words, but don't provide useful outcomes.

What follows are suggestions about how to avoid, or at least not get stuck in, conversations that are unlikely to be productive.

## Talk about problems before talking about solutions

As in, people should be asking "exactly what problem is this solving?" and then making sure that:

1. the scope of the problem is reasonably well understood.
2. most people agree that it is a problem that should be addressed.
3. there aren't better problems to solve first.

Jumping to proposing a solution before discussing the problem to be solved is a _great_ way of having a heated argument, but not so good at solving actual problems.

See also, the [XY problem](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem).

## Don't ask "why don't we just?"

"Asking why don't we just" is almost always a bad way of finding a solution, as it puts the onus on other people to find reason against an idea, and so allows 'ungood' ideas to slip through. In PHP, the conversation should always be "we'll do this, because it's the right solution".

In other projects, that don't have a fixed release schedule or such a large user-base, and are more willing to making BC breaks, using temporary solutions can useful in exploring the problem space.

## Identify arguments about aesthetics and avoid them

A lot of energy is spent in programming arguing about small design decisions. A lot of the time programmers will argue a particular choice is 'better', but are unable to say for exactly what reason it is better.

At least some of the time, they will actually be having either a positive or negative gut reaction to a design choice, but aren't able to recognise that they are doing that.

Instead they will argue that a different API/syntax is more naturally 'elegant', 'intuitive', or other positive attribute. These types of arguments very often boil down to "I prefer this choice because it matches my experience". Other times it comes down to, "I prefer this choice because the other one is too boring".

Some good rules to follow are:

* choose the most boring API that is acceptable. People will often object to this, wanting an API that makes them feel cleverer.
* "the person who has thought the most about the problem, gets to choose the API". Or at least that seems to be working for PHP.

## Identify neophytes and educate them

Sometimes neophytes[^neophytes] will learn some stuff, and proclaim it as the One True Way and go round the internet trying to pick fights with anyone who would dare to disagree.

Although, you can use them as an entertaining punching bag by showing how naïve they are, that isn't really a productive conversation. I mean it can be fun stress relief...but it doesn't have a useful outcome, and may result in them becoming annoyed.

Instead of that, actually taking the time to comprehend what the neophyte has just learned about (and so is excited about), and pointing out where either the limitations of it, or how they might be excited about it now, but there is still more to learn, is likely to be a more productive conversation long term.

## Don't respond to ideas you don't like the same day

It's quite normal for people to have instinctive negative reaction to a proposal. If you respond the same day as you first read a proposal, it seems you are likely to 'bake in' you negative reaction to the idea, and it becomes permanent.

If you leave a day or two to pass before responding, the idea probably won't seem quite so bad, and you'll be slightly more open to having a productive discussion.

If you still don't like an idea, it can be worth asking yourself "under what circumstances would I like the idea" or "what has the person who is proposing the idea experienced that led to them proposing it?"

One example of this was the proposal to add a new `printf` function that automatically appends a newline character. For someone who is coming from a programming language where each `echo` automatically does have a newline, the lack of that in PHP is a surprise.

## Don't use negative emoji in conversations

From the Github emoji reaction set, I would classify emoji as positive/negative:

### Positive

* 👍 :thumbsup:
* 😄 :smile:
* 🎉 :tada:
* 🚀 :rocket:
* ❤ :heart:

### Negative

* 👎 :thumbsdown:
* 😕 :confused:
* 👀 :eyes:

It's perfectly fine to use the 'positive' emoji in conversation.  For example:

Q) Does this look good to merge?
A) 👍

The thumbs-up makes the person who asked the question feel good, and completely answers the question without any needing any more detail.

The problems with negative emoji are that they make people feel bad and they stop the conversation without leaving it anywhere to go. For example:

Q) Does this look good to merge?
A) 😕

Not only does the question asker feel a bit down from having a negative response to a question where the would have assumed getting a positive response (because if they knew of any outstanding issues, they wouldn't of asked) but also, the negative emoji places the burden of continuing the conversation on them.

Or to put all of this far more pithily "[What the hell is 🥺? Use your words,](images/I_dont_speak_bottom.jpg)".

## Understand other people's position before trying to persuade them

So.

Some of the 'discussions' on the PHP internals have been completely non-productive. Some of the time this is because one side of the 'discussion' has completely failed to understand what other people have been saying.

Although some BC breaks could be done more smoothly[^smoother_bc_breaks], the vast majority of the time, the people who make up PHP internals have considered the BC breaks very carefully, and decided that, "yes although this is going to cause upgrade pain for some users, it's still worth doing".

When the people who object to the BC break turn up to try to undo the BC break, they often seem to be unable to comprehend that the decision was made deliberately, with full consideration of the consequences. This leads to not particularly productive conversations, as one side is unable to even comprehend the state of mind of the other side.

Obviously, this doesn't apply to people who are a ['Known Idiot'](https://www.urbandictionary.com/define.php?term=Known%20Idiot). When someone has said stupid things frequently enough, it becomes a better to rule to completely discount their opinion rather than taking any effort to understand it.

If there is any utility in their words, it is likely someone else will repeat it in a more intelligible phrase.

## People doing the work get a bigger say than everyone else

// TODO cleanup

For any group of people, for any given topic, there will be some people who provide more value when they speak.

For PHP internals, the things the core contributors say are more important than random userland people who have never contributed any core code.

Although it would be wonderful if everyone could have their voice heard, there is a limit on how many people can take part in a conversation before the quality of the conversation is reduced.

I think #PHPinternals needs it's own version of the Bechdel test.

"Does a conversation feature at least two core contributors who talk to each other about something other than a non-contributors unworkable idea?"

btw, this means one goal of open source projects would be to have enough spare bandwidth for people to consider problems brought up by other people.

// TODO cleanup

## Universal truths vs local truths vs aesthetics

You don't do programming in isolation. You do programming in a particular environment, trying to solve particular problems, possibly using a particular framework that makes some things easy to solve.

Someone else could be doing their programming in a different environment, trying to solve different problems, using a different framework, that makes other things easy to solve.

Both of you could say what you think "good" programming looks like, and you would both be saying valid things for _your_ environment and problem space.

People will spend a lot of energy arguing about what "good" programming looks like, And they will all be right...but miss the fact they are arguing with people who have a different set of criteria of what "good" means.

But people can argue what "good" programming looks like, even when they are programming in the same kind of environment.

A lot of what "good" means will vary based on personal taste.

TODO - insert Teapot + elegance here.

[^smoother_bc_breaks]: Although I agree with most of the BC breaks in PHP core, I think some of them could have been done a lot more smoothly, to make life easier for end-users. See the 'Clear upgrade path] in [RFC Attitudes](etiquette/rfc_attitudes.md) for examples.

[^neophyte]: A programmer who is more experienced than a noob, but not that much more. They have a tendency to think they are more experienced than they actually are.

repository: Danack/RfcCodex

gha_license_id: MIT

repo_name: Danack/RfcCodex


text:
# The ~~blog~~ digital garden of Adam Tuttle

[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)

https://adamtuttle.codes

Did I make a typo or a spelling mistake? [Your PR's to fix my goofs are super appreciated!](https://github.com/atuttle/blog/blob/main/CONTRIBUTING.md)

## ToDo

Waiting until stuff is 100% polished before release isn't any fun. So there are a few rough edges. Here's some stuff I still need to do:

1. Fix backlinks hover display for when I link to my old articles
2. Finish index search/filter stuff
3. ~~Import & refurbish old content~~

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

Adam Tuttle
📝 💻 🖋 🎨 🚇

Dan Skaggs
🖋

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

repository: atuttle/blog

gha_license_id: NOASSERTION

repo_name: atuttle/blog


text:
# Vagrant Parse-Server

5 minutes `Parse-Server` with `Parse-Dashboard` local, on Vagrant.

## Getting Started

This will get you running [Parse-Server](http://parseplatform.org/) and [Parse-Dashboard](https://github.com/parse-community/parse-dashboard) as [Express](https://expressjs.com/) middleware on a Vagrant ubuntu-16.04 virtual machine. On top, as a proces manager for Node.js, we'll run [PM2](http://pm2.io/).

### Prerequisites

For you local machine you'll need only:

```
- [Vagrant](https://www.vagrantup.com/) ~2.0.1
- [VirtualBox](https://www.virtualbox.org/) ~5.1.30
```

### Installing

Clone this repo

```
git clone https://github.com/zalog/vagrant-parse-server.git
cd vagrant-parse-server
```

Build the virtual machine

```
vagrant up
```

That's it!

Parse-Server
- http://localhost:4040/parse

Parse-Dashboard:
- http://localhost:4040/dashboard/
  - user: admin
  - pass: admin

## Built With

* [Vagrant](https://www.vagrantup.com/)
* [VirtualBox](https://www.virtualbox.org/)
* [Node.js](https://nodejs.org/)
* [Parse Server](https://github.com/parse-community/parse-server)
* [Parse Dashboard](https://github.com/parse-community/parse-dashboard)
* [Express](https://expressjs.com/)
* [PM2](http://pm2.io/)
* [Visual Studio Code](https://code.visualstudio.com/)

## Contributing

Please read angular's [CONTRIBUTING.md](https://github.com/angular/angular/blob/master/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us.

## Versioning

We use [SemVer](http://semver.org/) for versioning.

## Authors

* **Catalin Zalog** - [zalog.ro](http://zalog.ro/)
* Expanded and modernized by **Marc Schärer** - [dreamora.ch](https://dreamora.ch)

## License

This project is licensed under the MIT License - see the [LICENSE.md](https://en.wikipedia.org/wiki/MIT_License) file for details

repository: dreamora/vagrant-parse-server

repo_name: dreamora/vagrant-parse-server


text:
_This is a top-down 2D bullet-hell game._

> You are Dr. Frankenstein-esque surgeon on a mission to do what must be done.

Levi created the **music and sounds** for this game.

All design, code, images, sound effects, and music were created during the jam.

  Levi Lindsey
  ·
  What Must Be Done - Ludum Dare 52

## The jam

This game was created in 72-hours as a [submission](https://ldjam.com/events/ludum-dare/52/what-must-be-done) for the [Ludum Dare 52 game jam](https://ldjam.com/events/ludum-dare/52).

**Theme: "Harvest"**

## The team

-   [Diego Gonzalez](https://drgvdg.itch.io/)
-   [Natasha Kononenko](https://knknatasha.itch.io/)
-   [Levi Lindsey](https://levi.dev)
-   [Diego Teran](https://clerium.itch.io/)

![TODO](https://s3-us-west-2.amazonaws.com/levi-portfolio-media/what-must-be-done/doctor-walk.gif)

repository: levilindsey/hex-grid

repo_name: levilindsey/hex-grid


text:
# Fetching Guild Members
Alright so this really needs a page of its own because it's special. There's no actual api endpoint to get the guild members, so instead what discum does is fetch the member list, piece by piece. Discum also provides some params for the fetchMembers function that allow you to modify fetching behavior (in almost any way you want).

Note that for large guilds (```bot.gateway.session.guild('GUILD_ID').large == True```), the member list only contains the not-offline members.

# Links/Table of Contents
- [Usage](#fetch-guild-members)
- [Reasoning/Make your own fetchMembers function](https://arandomnewaccount.gitlab.io/discord-unofficial-docs/lazy_guilds.html)
- [What happens when fetchMembers is run](#what-happens)
- [Calculating # of fetchable members](#calculating--of-fetchable-members)
- [Examples](#examples)
- [Efficiency & Effectiveness](#efficiency--effectiveness)
- [POC: fetching the memberlist backwards](#fetching-the-member-list-backwards)

### what happens:
1) the member-fetching tracker for that particular guild gets reset
2) the [fetchMembers combo function](https://github.com/Merubokkusu/Discord-S.C.U.M/blob/master/discum/gateway/guild/combo.py#L83) gets inserted at position 0 (or whatever priority you select) in the gateway command list
3) the fetchMembers combo function starts running once ready_supplemental has been received
4) the fetchMembers combo function removes itself from the command list once finished

### calculating # of fetchable members
Even though it's not yet known how discord calculates this, you can still come up with a "ground truth" number. The steps are as follows:
1) open your browser's dev tools (chrome dev tools is a favorite)
2) click on the network tab and make sure you can see websocket connections
3) go to a guild and scroll all the way down on the member list
4) see what are the ranges of the last gateway request your client sends (the # of fetchable members is somewhere in these ranges)

### examples

This first example runs the fetchMembers function while the gateway is running (both examples below use the "overlap" method):
```python
import discum
bot = discum.Client(token='ur token')

@bot.gateway.command
def memberTest(resp):
	guild_id = '322850917248663552'
	channel_id = '754536220826009670'
	if resp.event.ready_supplemental:
		bot.gateway.fetchMembers(guild_id, channel_id) #put wait=1 in params if you'd like to wait 1 second inbetween requests
	if bot.gateway.finishedMemberFetching(guild_id):
		lenmembersfetched = len(bot.gateway.session.guild(guild_id).members)
		print(str(lenmembersfetched)+' members fetched')
		bot.gateway.removeCommand(memberTest)
		bot.gateway.close()

bot.gateway.run()

for memberID in bot.gateway.session.guild('322850917248663552').members:
	print(memberID)
```
And this second example runs fetchMembers before the gateway is run:
```python
import discum
bot = discum.Client(token='ur token')
guild_id = '322850917248663552'
channel_id = '754536220826009670'
bot.gateway.fetchMembers(guild_id, channel_id) #put wait=1 in params if you'd like to wait 1 second inbetween requests
@bot.gateway.command
def memberTest(resp):
	if bot.gateway.finishedMemberFetching('322850917248663552'):
		lenmembersfetched = len(bot.gateway.session.guild('322850917248663552').members)
		print(str(lenmembersfetched)+' members fetched')
		bot.gateway.removeCommand(memberTest)
		bot.gateway.close()

bot.gateway.run()

for memberID in bot.gateway.session.guild('322850917248663552').members:
	print(memberID)
```
It's possible that fetchMembers doesn't fetch all fetchable members. Don't worry if this happens, you can start fetching members from any index. (discum calculates ranges using index x multiplier; the index used below is 50 and the multiplier used is 100, so the fetching starts at 50x100 = 5000):
```python
#import discum
#bot = discum.Client(token='ur token')
guild_id = '322850917248663552'
channel_id = '754536220826009670'
bot.gateway.fetchMembers(guild_id, channel_id, method="overlap", startIndex=50, reset=False) #overlap method means multiplier is 100, reset is False because you want to keep previous data
@bot.gateway.command
def memberTest(resp):
	if bot.gateway.finishedMemberFetching('322850917248663552'):
		lenmembersfetched = len(bot.gateway.session.guild('322850917248663552').members)
		print(str(lenmembersfetched)+' members fetched')
		bot.gateway.removeCommand(memberTest)
		bot.gateway.close()

bot.gateway.run()

for memberID in bot.gateway.session.guild('322850917248663552').members:
	print(memberID)
```
[Want a function that returns the member list? No worries.](https://github.com/Merubokkusu/Discord-S.C.U.M/blob/master/examples/gettingGuildMembers.py)

### Efficiency & Effectiveness
Alright so technically there are 2 ways to get the member list. The first way is through websockets (which is what discum uses). The second way is through html scraping (which I don't recommend since I imagine that'd be slower).

Using a slightly-modified version of discum (just 6 lines extra to track times and member counts), these stats were collected on discum's fetchMembers's efficiency and effectiveness (note, wait time was set to 0 for these tests):

|      | overlap                      | no overlap |
|------|---------|------------|
| 2.1k |![a](memberFetchingStats/2100a.jpg)    |![c](memberFetchingStats/2100b.jpg)       |
| 128k |![b](memberFetchingStats/128ka.jpg)    |![d](memberFetchingStats/128kb.jpg)       |

As you can see, the "no overlap" method fetches 200 members/second while the "overlap" method fetches 100 members/second. However, "no overlap" is also a lot less effective. After doing a few more tests with both methods ("overlap" and "no overlap"), "no overlap" shows a lot less consistency/reliability than "overlap".

### fetching the member list backwards
(and in pretty much any "style" you want)
So, this is more proof-of-concept, but here's a short explanation.
Suppose you're in a guild with 1000 members and want to fetch the member list backwards (I dunno...more undetectable since noone fetches it backwards? lol).
   Since discum requests members in 200-member chunks, you'll either have to request for the following range groups (safer):
   ```
   [[0,99],[800,899],[900,999]] #target start: 800
   [[0,99],[700,799],[800,899]] #target start: 700
   [[0,99],[600,699],[700,799]] #target start: 600
   [[0,99],[500,599],[600,699]] #target start: 500
   [[0,99],[400,499],[500,599]] #target start: 400
   [[0,99],[300,399],[400,499]] #target start: 300
   [[0,99],[200,299],[300,399]] #target start: 200
   [[0,99],[100,199],[200,299]] #target start: 100
   [[0,99],[100,199]] #target start: 0
   ```
   or the following range groups (faster):
   ```
   [[0,99],[800,899],[900,999]] #target start: 800
   [[0,99],[600,699],[700,799]] #target start: 600
   [[0,99],[400,499],[500,599]] #target start: 400
   [[0,99],[200,299],[300,399]] #target start: 200
   [[0,99],[100,199]] #target start: 0
   ```
   The first one looks like an overlap method while the second looks like a no-overlap method. However, since we're fetching the memberlist backwards, we cannot
   use 100 and 200 for the methods. Instead, we need a list of multipliers (method) and a startIndex.
   To easily calculate these params, either do this:
   ```startIndex, method = bot.gateway.getMemberFetchingParams([800, 700, 600, 500, 400, 300, 200, 100, 0])```
   or
   ```startIndex, method = bot.gateway.getMemberFetchingParams([800, 600, 400, 200, 0])```
   depending on how to want to request for members.
   Then, simply do
   ```
   bot.gateway.fetchMembers("guildID","channelID",startIndex=startIndex, method=method)
   bot.gateway.run()
   ```


text:
# shubble ![](public/shubble.ico)
Simple Web & REST service to post a random 'image and quote' tweet

## REST api

Method                 | Url           | Description                                |
---------------------- | ------------- | ------------------------------------------ |
[Get](#get-apiimage)   | /api/image    | Retrieve a random image                    |
[Post](#post-apiimage) | /api/image    | Retrieve a random image with given **tag** |
[Get](#get-apiquote)   | /api/quote    | Retrieve a random quote                    |

### GET /api/image
Retrieve a random image of [Hubble]( http://hubblesite.org/gallery/album/entire/ ) in json format where **src** is the image URL, **alt** is its title and **tag** is the database tag

Example request
```
GET /api/image HTTP/1.1
Host: <IP_ADDRESS>:3000
Cache-Control: no-cache

```

Example response
```
{
  "src":"http://imgsrc.hubblesite.org/hu/db/images/hs-2016-24-a-web.jpg",
  "alt":"Auroras on Jupiter",
  "tag":"unknown"
}
```

### POST /api/image
Retrieve a random image with given **tag** ( must be specified on request body ) of [Hubble]( http://hubblesite.org/gallery/album/entire/ ) in json format where **src** is the image URL, **alt** is its title and **tag** is the database tag

+ Possible tags:
  + star
  + galaxy
  + planet
  + nebulae
  + supernova

Example request
```
POST /api/image HTTP/1.1
Host: <IP_ADDRESS>:3000
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded

tag=planet
```

Example response
```
{
  "src": "http://imgsrc.hubblesite.org/hu/db/images/hs-1998-35-a-web.jpg",
  "alt": "Bright Clouds on Uranus",
  "tag": "planet"
}
```

### GET /api/quote
Retrieve a random quote of [Forismatic]( http://forismatic.com/en ) in json format where **text** is the quote text, **author** is its author and **link** is the link to origins quote

Example request
```
GET /api/quote HTTP/1.1
Host: <IP_ADDRESS>:3000
Cache-Control: no-cache

```

Example response
```
{
  "text": "A failure is a man who has blundered but is not capable of cashing in on the experience.",
  "author": "Elbert Hubbard",
  "link": "http://forismatic.com/en/d74d7833cb/"
}
```

## usage

- recursively install dependencies (through *bin/preinstall.js*)
```
npm install
```

#### fresh starts
  + setup development environment
  ```
  grunt setup
  ```

  + run the html crawler script to fetch hubble images and fill db
  ```
  node bin/crawler.js
  ```

#### launching app
+ launch docker containers
```
grunt start
```

+ directly start server with
```
node index.js
```

#### develop
+ with code linting and live-reload
```
grunt develop
```

#### cleanup
- stop containers when done
```
grunt stop
```

- if needed you can kill containers
```
grunt kill
```

- to start fresh remove containers
```
grunt remove
```

- clean logs and output files
```
grunt clean
```

**!!!** removing docker containers means you will need to run the **crawler** script again to fill in orion with entities **!!!**

repository: shubbleapp/shubble

repo_name: shubbleapp/shubble


text:
# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

# [2.4.0-beta.0](https://github.com/bolt-design-system/bolt/compare/v2.3.0...v2.4.0-beta.0) (2019-04-16)

### Bug Fixes

* hotfix for likely root cause of recent now.sh deployments to fail ([1b204ad](https://github.com/bolt-design-system/bolt/commit/1b204ad))
* re-test with additional dockerfile updates ([300ec85](https://github.com/bolt-design-system/bolt/commit/300ec85))
* remove dependency loop between packages ([b43fc34](https://github.com/bolt-design-system/bolt/commit/b43fc34))
* retest docker build ([f4bfa64](https://github.com/bolt-design-system/bolt/commit/f4bfa64))
* update PHP install task in Docker container ([47fb5e0](https://github.com/bolt-design-system/bolt/commit/47fb5e0))

### Features

* automatically switch between a simple static now.sh deployment vs a full docker-based deployment based on the branch ([7d56566](https://github.com/bolt-design-system/bolt/commit/7d56566))

repository: oooShiny/bolt

repo_name: oooShiny/bolt


text:
# Tic Tac Toe

### About the code
- This is a terminal game adapted from an existing code base using Node.js
- If you want to use the game, first clone the repo, cd into the folder and run `npm install`
- To play, enter `npm run play`
- to run the tests, enter `npm test`

## Initial requirements
1. Game should be unbeatable
2. Improve communication about game flow
3. Player should have choice of marker
4. Platform adaptability (I/O)
5. Unit tests
6. Handle bad user input

## Feedback
### Tests
- The test runner does not complete unless you hit enter several times.
- There should be a test file for each game file, with tests for the respective functions.
- Test coverage is incomplete.
- There should be some sort of test coverage tool in place.

### Difficulty level
- The AI player is not unbeatable.

### Separation of concerns
- The game files are not currently separated consistently, and there should be a module for each player.
- In order to model game entities, players and I/O should be organised as classes.
- Rendering should be abstracted to a function so game is decoupled from terminal.

### Lint
- There are unsued variables in some files.

### File structure
- Package.json should be in the root folder, not in a subfolder.

## How I addressed these issues
### Tests
- I removed the prettifier tapspec, which solved the test run issue.
- After I refactored the player functions into separate files, I also reorganised the tests into mirroring files with 'test' in the file name.
- I implemented CodeCov to track test coverage.
- I added tests improve the test coverage.

The initial test coverage was as follows
```
=============================== Coverage summary ===============================
Statements   : 60.95% ( 64/105 )
Branches     : 55.17% ( 32/58 )
Functions    : 73.68% ( 14/19 )
Lines        : 60.19% ( 62/103 )
================================================================================
```

After I added more tests, the coverage assessment improved
```
=============================== Coverage summary ===============================
Statements   : 86.54% ( 135/156 )
Branches     : 68.89% ( 62/90 )
Functions    : 100% ( 25/25 )
Lines        : 86.36% ( 133/154 )
================================================================================
```

### Difficulty level
My ideal is to implement a minimax algorithm, and I have made progress towards understanding how to do this. In the meantime, I have added if/else statements to the getNaiveMove function that I believe make the AI player unbeatable. I have made some [notes on minimax](https://github.com/lucymonie/notes-learning/blob/master/03-june-2017/minimax.md) to record what I've learned.

### Separation of concerns
- I have separated the two player functions into different files.
- I abstracted rendering to a function so the game isn't so tightly coupled to the terminal.

### Lint
I installed eslint in my files to track syntax errors and unused variables.

### File structure
I reorganised my file structure so the package.json is in the root folder, and there are game and test folders.

## Additional issues
### Error handling
This was not part of the feedback, but in the course of this work I added an error property to my game state so the gameLoop function can now handle bad player input gracefully.

repository: lucymonie/tic-tac-toe

repo_name: lucymonie/tic-tac-toe


text:
---
layout: post
title: Announcing Test Automation Bazaar Jan 16-17 in Austin
date: 2014-12-16 15:38
author: bpettichord
comments: true
tags: [Conferences]
---

I am pleased to announce that the Test Automation Bazaar will be held in Austin, Texas on  January 16-17, 2015 (Fri – Sat). I am convening this event with [Zeljko Filipin](https://twitter.com/zeljkofilipin) and the Austin Homebrew Testers, and we are pleased that the event will be sponsored by the [Open Information Foundation](http://www.openinformationfoundation.org/), a non-profit which we have recently joined and which also sponsors the [Citcon](http://citconf.com/) conferences.
<!--more-->
This is a follow up to the [2012 Test Automation Bazaar](http://watir.com/test-automation-bazaar/), also held in Austin.
Like all OIF events, this conference will be free and open to the public, but we also will be asking for donations and sponsors to cover the expenses of the event. We are currently confirming a location in the Domain.
We invite people to come, share their experiences with test automation and learn from others. The organizers have a bias for Ruby, Webdriver (Watir/Selenium), and open-source tools, but we invite people to share whatever has worked for them. The theme of the event is “show us your tests”.
The event will be organized with an [open-space format](http://citconf.com/openspace.php), which means the session topics will be hammered out Friday evening (1/15).
##SCHEDULE

###Friday

6:00 PM – Sign in

6:30 PM – Introduction

7:00 PM – Topics & Timeslots

8:30 PM – Social Hour

###Saturday

9:00 AM – Breakfast

10:00 AM – Session 1

11:15 AM – Session 2

12:30 PM – Lunch

2:00 PM – Session 3

3:15 PM – Session 4

4:30 PM – Session 5

5:45 PM – Final Address

7:00 PM – To Dinner and Evening Activities

Each session is scheduled for one hour.
Please mark your calendar for this event, and stay tuned for more information about registering to attend.

gha_language: HTML


text:
Annualise Income
----
  Annualises Year to Date Income for the current financial year

* **URL**

  `/tai/calculator/annualise-income`

* **Method:**

  `POST`

*  **URL Params**

   None

   **Required:**

   None

* **Payload**

```json
{
   "amountYearToDate":1000.00,
   "employmentStartDate" : "2015-10-06",
   "paymentDate" : "2015-10-07"
}
```

* **Success Response:**

  * **Code:** 200

    **Content:**

```json
{
   "annualisedAmount": 500.00
}
```

* **Error Response:**

  * **Code:** 401 UNAUTHORIZED

repository: MatthewAlexanderBeck/tai

repo_name: MatthewAlexanderBeck/tai


text:
---
layout: post
title: Sending Email with Python 3
tags:
  - python
  - email
  - send
---

A common task in any popular programming language is the ability to send emails to your users, be it as a password reset or as a contact page submission on a blog just like this one.

The below snippet can be used to accomplish this, just change the variables depending on your use case. It assumes that you have a local SMTP server running on the machine you are running the script on (`Postfix` for example), however you can also login to another service if you want to send via Gmail or Outlook etc.

{% highlight python %}
sender =<EMAIL_ADDRESS>sender_name = "Sender Name"
receiver =<EMAIL_ADDRESS>receiver_name = "Receiver Name"
subject = "This is the subject line"

message_str = "This is the body of the message"

mime = """From: {0} <{1}>
To: {2} <{3}>
MIME-Version: 1.0
Content-type: text/plain
Subject: {4}
{5}
""".format(sender_name, sender, receiver_name, receiver, subject, message_str)

try:
    smtpObj = smtplib.SMTP('localhost')
    smtpObj.sendmail(sender, receiver, mime)
    return "Successfully sent email"
except smtplib.SMTPException:
    return "Error: unable to send email"
{% endhighlight %}

You can also add additional properties to the MIME message for extra functionality:

  * `Reply-To: Name <address>` to specify who the receiver should send their replies to
  * Change the `Content-type` to `text/html` if you want to use HTML within your message body for styling

For more information take a look at the [smptlib docs](https://docs.python.org/2/library/smtplib.html).

gha_language: SCSS


text:
# Namegen

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

This is a Node.js module that allows you to generate a random name using US census data and SQLite.

# Usage

```javascript
var namegen = require('namegen');
namegen.findRandomFemaleName(function(err, result) {
    console.log(result);
});
```

# Available methods

findRandomSurname(callback)
---
findRandomMaleName(callback)
---
findRandomFemaleName(callback)
---
findRandomMaleForename(callback)
---
findRandomFemaleForename(callback)
---

`callback` gets called with two parameters: err, and result

# Importer

namegen.db is already populated, but if you need to re-import, or you wanted to modify the importer,
everything is located in the import folder including the census data.

import.sh - run this to execute the import. all tables will be dropped
import.sql - the sql script that includes import commands based on the raw data in the same folder

repository: shaynekasai/namegen

repo_name: shaynekasai/namegen


text:
# Cloud Foundry Volume Services

On Cloud Foundry, applications connect to services via a service marketplace. Each service has a Service Broker, with encapsulates the logic for creating, managing, and binding services to applications. Until recently, the only data services that have been allowed were ones with a network-based connection, such as a SQL database. With Volume Services, we've added the ability to attach data services that have a filesystem-based interface.

Currently, we have platform support for **Shared Volumes**. Shared Volumes are distributed filesystems, such as NFS-based systems, which allow all instances of an application to share the same mounted volume simultaneously and access it concurrently.

This feature adds two new concepts to CF: **Volume Mounts** on Service Brokers and **Volume Drivers** on Diego Cells, which are described below.

For more information on CF Volume Services, please refer to [this introductory document](https://docs.google.com/document/d/1YtPMY9EjxlgJPa4SVVwIinfid_fshCF48xRhzyoZhrQ/edit?usp=sharing).

# Developer Notes

## Setting up Intellij

Configure your project to run `gofmt` and go imports using the following regex:-

```
file[diego-release]:src/github.com/cloudfoundry-incubator/inigo/*.go||file[diego-bosh-release]:src/github.com/cloudfoundry-incubator/inigo/**/*||file[diego-release]:src/github.com/cloudfoundry-incubator/volman/*.go||file[diego-release]:src/github.com/cloudfoundry-incubator/volman/**/*
```

This is so that Intellij does not `go fmt` dependent packages which may result in source changes.

repository: PaaS-TA/PaaS-TA-Core

gha_language: Go

repo_name: PaaS-TA/PaaS-TA-Core


text:
# Postman

Postman is a collaboration platform for API development. Postman's features simplify each step of building an API and streamline collaboration, so you can create better APIs - faster.

## How to use

At first, you should to install all required software on your PC: <https://www.postman.com/downloads/>

After that [open workspace][workspace_link], make all required collection modifications, test them, and press `Export` button (overwrite files in this directory with exported content). That's all!

### Links

- [Official website](https://www.postman.com/)
- [Project workspace][workspace_link]

[workspace_link]:https://www.postman.com/paramtamtam/workspace/webhook-tester

repository: boberko/webhook-tester

repo_name: boberko/webhook-tester


text:
## About

[![Platform](https://img.shields.io/cocoapods/p/XCDLumberjackNSLogger.svg?style=flat)](http://cocoadocs.org/docsets/XCDLumberjackNSLogger/)
[![Pod Version](https://img.shields.io/cocoapods/v/XCDLumberjackNSLogger.svg?style=flat)](http://cocoadocs.org/docsets/XCDLumberjackNSLogger/)
[![License](https://img.shields.io/cocoapods/l/XCDLumberjackNSLogger.svg?style=flat)](LICENSE)

**XCDLumberjackNSLogger** is a [CocoaLumberjack](https://github.com/CocoaLumberjack/CocoaLumberjack) logger which sends logs to [NSLogger](https://github.com/fpillet/NSLogger).

## Requirements

- Runs on iOS 8.0 and later
- Runs on OS X 10.10 and later
- Runs on tvOS 9.0 and later

## Installation

XCDLumberjackNSLogger is available through CocoaPods and Carthage.

CocoaPods:

```ruby
pod "XCDLumberjackNSLogger", "~> 1.1"
```

Carthage:

```objc
github "0xced/XCDLumberjackNSLogger" ~> 1.1
```

## Usage

XCDLumberjackNSLogger is [fully documented](http://cocoadocs.org/docsets/XCDLumberjackNSLogger/).

#### Binding to User Defaults

The easiest way to use XCDLumberjackNSLogger is to bind a logger to a user defaults key.

```objc
[XCDLumberjackNSLogger bindToBonjourServiceNameUserDefaultsKey:@"NSLoggerBonjourServiceName" configurationHandler:nil];
```

Anytime you change the user defaults key (`NSLoggerBonjourServiceName` in this example), the logger reconnects to the desktop viewer with the given service name.

You can change the service name user defaults manually with

```objc
[[NSUserDefaults standardUserDefaults] setObject:serviceName forKey:@"NSLoggerBonjourServiceName"];
```

or with a [Settings bundle][1]:

```xml
<dict>
	<key>AutocapitalizationType</key>
	<string>None</string>
	<key>AutocorrectionType</key>
	<string>No</string>
	<key>DefaultValue</key>
	<string></string>
	<key>IsSecure</key>
	<false/>
	<key>Key</key>
	<string>NSLoggerBonjourServiceName</string>
	<key>KeyboardType</key>
	<string>Alphabet</string>
	<key>Title</key>
	<string>NSLogger Service Name</string>
	<key>Type</key>
	<string>PSTextFieldSpecifier</string>
</dict>
```

This is very handy to get logs even in the App Store with zero overhead. Just open the settings of your app (in the iOS Settings app) and change the service name to automatically activate the logger.

When debugging with Xcode you can set `-NSLoggerBonjourServiceName "Your Service Name"` in *Arguments Passed On Launch* [in your scheme][2] to set the `NSLoggerBonjourServiceName` user default.

#### Simply send logs to NSLogger

```objc
[DDLog addLogger:[XCDLumberjackNSLogger new]];
```

#### Configuring a bonjour service name

```objc
NSString *bonjourServiceName = [[[NSProcessInfo processInfo] environment] objectForKey:@"NSLOGGER_BONJOUR_SERVICE_NAME"];
[DDLog addLogger:[[XCDLumberjackNSLogger alloc] initWithBonjourServiceName:bonjourServiceName]];
```

#### Translating contexts to tags

```objc
XCDLumberjackNSLogger *logger = [XCDLumberjackNSLogger new];
logger.tags = @{ @80 : @"CocoaHTTPServer", @((NSInteger)0xced70676) : @"XCDYouTubeKit" };
[DDLog addLogger:logger];
```

#### Configuring a viewer host

```objc
XCDLumberjackNSLogger *logger = [XCDLumberjackNSLogger new];
LoggerSetViewerHost(logger.logger, CFSTR("<IP_ADDRESS>"), 50000);
[DDLog addLogger:logger];
```

## Contact

Cédric Luthi

- http://github.com/0xced
- http://twitter.com/0xced

## License

XCDLumberjackNSLogger is available under the MIT license. See the [LICENSE](LICENSE) file for more information.

[1]: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/UserDefaults/Preferences/Preferences.html
[2]: https://developer.apple.com/library/ios/recipes/xcode_help-scheme_editor/Articles/SchemeRun.html

repository: JoeMatt/XCDLumberjackNSLogger

repo_name: JoeMatt/XCDLumberjackNSLogger


text:
# Register Property Use Case

**Use Case**: As a user, I should be able to register my property online by providing my digital
drivers license, digital drivers license assurance/evidence and digital credit report.

## References
- [Demo Recording](https://www.youtube.com/watch?v=0ZNmk6E2EFE&feature=youtu.be)
- [Component Diagram](../images/adapter_component_diagram.svg)
- [Issuer Adapter](https://github.com/trustbloc/edge-adapter/blob/main/docs/issuer/README.md)
- [RP Adapter](https://github.com/trustbloc/edge-adapter/blob/main/docs/rp/README.md)

## Components

| Component                          | Cloud URL (Sandbox)                                                          | Cloud URL (Dev)                                                    | Local URL*                                                        |
|------------------------------------|------------------------------------------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------|
| User Wallet                        |                                                                              |                                                                    | [Click Here](https://myagent.trustbloc.local/dashboard)    |
| Government of Utopia               |                                                                              |                                                                    | [Click Here](https://rp.trustbloc.local/government)               |
| Drivers License + Assurance Issuer |                                                                              |                                                                    | [Click Here](https://issuer.trustbloc.local/uploaddrivinglicense) |
| Credit Report Issuer               |                                                                              |                                                                    | [Click Here](https://issuer.trustbloc.local/creditscorenologin)   |

*: Refer [here](./build.md) to run the demo locally.

## Flow details
1. Login to Wallet:
   - UI Navigation
     - Go to [`Wallet`](#components) and click on Login button with default user name and password.
   - Details
     - A new [DID]((https://w3c.github.io/did-core/)) (identity) gets created for the user.
     - The `Wallet` registers with the [DIDComm Mediator/Router](https://github.com/hyperledger/aries-framework-go/blob/main/docs/didcomm_mediator.md).
1. Get Drivers License and Connect to Assurance Issuer:
   - UI Navigation
     - On [`Drivers License + Assurance Issuer`](#components) page, click on `Upload Driving Licence` button.
     - Scan your Driving Licence and click `agree` on the consent page.
     - Click `Next` on the window, select the `wallet` and click `Store and Connect`.
   - Details
     - The Issuer Adapter provides following details to wallet through [CHAPI](https://w3c-ccg.github.io/credential-handler-api/).
         - Drivers License
         - DIDComm Invitation to connect to issuer adapter
         - Manifest Credential with details about Assurance Issuer
     - The Wallet performs [Aries DID Exchange protocol](https://github.com/hyperledger/aries-rfcs/tree/master/features/0023-did-exchange) with the Issuer Adapter
     - The Wallet responds with success message through CHAPI.
1. Verify Drivers License in the Wallet:
   - UI Navigation
     - Go to [`Wallet`](#components) and confirm the data in `Drivers License` under stored credentials.
1. Connect to Credit Report Issuer:
   - UI Navigation
      - Browse to [`Credit Report Issuer`](#components) and click on `Get your credit report` button.
      - Click `Next` on the window and select the `wallet`.
      - The next page shows the `Drivers License` and `Drivers License Assurance` issuer.
      - Select all 2 and click on `Share`.
      - The user data will be displayed on the page with `success message`. Click `source` tab to view the raw json data.
      - Click `Proceed Now`, select the `wallet` and click `Connect`.
   - Details
     - Credit score Issuer will play two roles here, First role (as RP) to get Drivers License Credential for verifying the user, Second Role (as Issuer) to provide Credit Report for the user.
     - Issuer connects to RP adapter through OIDC protocol.
     - The RP adapter provides following details to wallet through [CHAPI](https://w3c-ccg.github.io/credential-handler-api/).
         - DIDComm Invitation to connect to rp adapter
         - [Presentation Exchange](https://identity.foundation/presentation-exchange/) request
            - Request for Drivers License
            - Request for Authorization to access Drivers License Assurance data
     - For Authorization, the wallet connects to the Issuer Adapter of Drivers License Assurance through
       [Aries Issue-Credential protocol](https://github.com/hyperledger/aries-rfcs/tree/master/features/0453-issue-credential-v2)
       and gets Authorization Credential for users Drivers License Assurance. **Note**: Currently, rp connects directly
       to the issuer without blinding. The `Blinded Routing` feature is planned for subsequent release.
     - Wallet responds with following data through CHAPI.
         - Drivers License Credential
         - Drivers License Assurance Authorization Credential
     - For Authorization Credentials (Drivers License Assurance and Drivers License Assurance), the rp adapter connects to issuer
       adapter through [Aries Present Proof protocol](https://github.com/hyperledger/aries-rfcs/tree/master/features/0454-present-proof-v2)
       to get the actual data.
     - RP adapter returns the data to Issuer.
     - The issuer adapter provides following details to wallet through [CHAPI](https://w3c-ccg.github.io/credential-handler-api/).
         - DIDComm Invitation to connect to issuer adapter
         - Manifest Credential with details about Credit Report Issuer
1. Register your property
   - UI Navigation
      - Navigate to [`Government of Utopia`](#components)'s website and click on `Register Your Property` button.
      - Click `Next` on the window and select the `wallet`.
      - The next page shows the `Drivers License` along with `Drivers License Assurance` and `Credit Report` issuer.
      - Select all 3 and click on `Share`.
      - The user data will be displayed on the page with `success message`. Click `source` tab to view the raw json data.
   - Details
     - RP connects to RP adapter through OIDC protocol.
     - The RP adapter provides following details to wallet through [CHAPI](https://w3c-ccg.github.io/credential-handler-api/).
         - DIDComm Invitation to connect to rp adapter
         - [Presentation Exchange](https://identity.foundation/presentation-exchange/) request
            - Request for Drivers License
            - Request for Authorization to access Drivers License Assurance data
            - Request for Authorization to access Credit Report data
     - For Authorization, the wallet connects to the Issuer Adapter of Drivers License Assurance and Credit Report through
       [Aries Issue-Credential protocol](https://github.com/hyperledger/aries-rfcs/tree/master/features/0453-issue-credential-v2)
       and gets Authorization Credential for users Drivers License Assurance and Credit Report. **Note**: Currently, rp connects directly
       to the issuer without blinding. The `Blinded Routing` feature is planned for subsequent release.
     - Wallet responds with following data through CHAPI.
         - Drivers License Credential
         - Drivers License Assurance Authorization Credential
         - Credit Report Authorization Credential
     - For Authorization Credentials (Drivers License Assurance and Drivers License Assurance), the rp adapter connects to issuer
       adapter through [Aries Present Proof protocol](https://github.com/hyperledger/aries-rfcs/tree/master/features/0454-present-proof-v2)
       to get the actual data.
     - RP adapter returns the data to RP.

repository: soluchok/sandbox

repo_name: soluchok/sandbox


text:
Medicare provider data
======================

This is _The Dallas Morning News'_ re-release of 2012 Medicare Part B provider billing data with procedure-specific statistical comparators.

With these data, you too can find statistical outliers in your state in terms of [procedure use rates](http://www.dallasnews.com/investigations/20140524-examining-the-cost-of-too-much-care.ece) [per Medicare patient](http://res.dallasnews.com/interactives/2014_May/medicare-viz/)!

The raw data is broken into compressed files for each state or territory. Each is a comma-delimited file.*

Each row in each data table represents a provider's billings for a particular medical procedure or service in 2012, just like in Medicare's original release.

For general info on the data and a description of the provider specific fields in each table, have a look at Medicare's information [here](https://www.cms.gov/Research-Statistics-Data-and-Systems/Statistics-Trends-and-Reports/Medicare-Provider-Charge-Data/Physician-and-Other-Supplier.html).

Additional fields in these tables were calculated by _The News_:

- **total_payments**

>>Total payments made to the provider by Medicare for the service. Calculated as the product of the average Medicare payment times the number of services billed.

- **services_per_bene**

>>The rate which is the number of services administered by the provider per Medicare patient who received the service.

- **national_avg_serv_per_bene**

>>The national average services per beneficiary rate among all other providers within the provider's specialty who also administered the service in 2012.

- **national_stddev_serv_per_bene**

>>The national (population) standard deviation of the services per beneficiary rate among all other providers within the provider's specialty who also administered the service in 2012.

- **stddev_above_avg**

>>The number of standard deviations a provider's rate is above the national average. For _The News'_ analysis, we looked at those providers who were more than 3 standard deviations above the national average.

- **variation_coefficient_serv_per_bene**

>>The coefficient of variation is a normalized measure of the variability of a dataset. It's calculated by taking the standard deviation divided by the average. We used it to compare procedures with high variability to those with low variability in a provider's practice.

- **num_of_providers**

>>The number of providers included in the average to which the provider is compared to. We looked at procedures that included more than 100 providers in the comparison for our analysis.

- **national_rank**

>>How this provider's per-patient rate ranks nationally. We focused on providers in Texas whose rate ranked first nationwide.

_*createTable.sql can be used to create the table schema in PostgreSQL databases._

repository: DallasMorningNews/Medicare-metrics-data

repo_name: DallasMorningNews/Medicare-metrics-data


text:
Dirt-Chest-9000--Ersatz-
========================

A poor re-implementation of the Dirt Chest 9000 from the Iron Chests mod to learn how to make GUIs.

Made following [MrrGingerNinja's tutorial on GUIs and inventories here](http://www.minecraftforum.net/topic/1927571-162-advanced-minecraft-forge-modding-tutorial-1-interfaces-part-1/).

# Requirements

- Minecraft Forge for Minecraft 1.7.2
- An IDE

If you have no idea how to set things up, I recommend [this tutorial by the same guy as the above one for setting up things in Eclipse](http://www.minecraftforum.net/topic/2413773-172-modding-with-forge-1-jdk-eclipse-forge-and-gradle/).

# Differences from the Tutorial

I implemented determining which way to point the block in the same way the vanilla Minecraft chest does, using Block#onBlockPlacedBy() rather than Block#onBlockAdded().


text:
# doananh234.com

My personal website

[![Support me on Patreon](https://c5.patreon.com/external/logo/become_a_patron_button.png)](https://www.patreon.com/doananh234)

Built with [Gatsby](https://www.gatsbyjs.org/) and [more](https://github.com/doananh234/doananh234.com/blob/master/package.json#L6)

[Lighthouse test](https://lighthouse-dot-webdotdevsite.appspot.com/lh/html?url=https://doananh234.com)

[Page speed test](https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fdoananh234.com%2F&tab=desktop)

[Pingdom test](https://tools.pingdom.com/#59caaf6660000000)


text:
---
layout: default
---

# 1996-04-10 - Re: Bulletin: Cypherpunks say no taxes owed by moneychanger

## Header Data

From: "Frank O. Trotter, III"<EMAIL_ADDRESS>To: Alan Horowitz<EMAIL_ADDRESS>Message Hash: 2f84c985dad901ddb41b9149831abd193b379904ddb1539d963b7a5d74a2cac0

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1996-04-10 14:32:09 UTC

Raw Date: Wed, 10 Apr 1996 22:32:09 +0800

## Raw message

```
{% raw  %}From: "Frank O. Trotter, III"<EMAIL_ADDRESS>Date: Wed, 10 Apr 1996 22:32:09 +0800
To: Alan Horowitz<EMAIL_ADDRESS>Subject: Re: Bulletin: Cypherpunks say no taxes owed by moneychanger
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

I know Frankin and will see him next week.  His argument, which I
have around here somewhere if I could get my paper life organized,
realtes to gold and silver in certain situations.  If I find it I
will reference it, otherwise I'll ask if he will post to this group.

FOT

> Date:          Tue, 9 Apr 1996 21:48:17 -0400 (EDT)
> From:          Alan Horowitz<EMAIL_ADDRESS>> To:            "Frank O. Trotter, III"<EMAIL_ADDRESS>> Cc<EMAIL_ADDRESS>> Subject:       Re: Bulletin: Cypherpunks say no taxes owed by moneychangers!

> > Date: Mon, 8 Apr 1996 22:43:55 -5
> > From: Frank O. Trotter, III<EMAIL_ADDRESS>> > Aside from ecash, helping people to exchange currency is my day job
> > so I see this all the time, especially this month each year.
>
>   There is a guy in Tennessee who publishes a newsletter called _The
> Moneychanger_.  He is one of those Constitutionalists. He did put himself
> through hell to get acquited of an IRS charge - he is a dealer in gold
> and silver and claimed that he wasn't selling anything, only changing
> denominations of Money, with no profits. He won the federal case; the IRS
> called their buds at the Tenn Dept of Revenue and had him indicted on a
> failure-to-remit-sales-tax charge. He was convicted on that by the Jury
> but he is appealing; meanwhile he only deals with out-of-Tenn people.
>
> Which just goes to show that convictions/acquitals under a jury system
> have a lot of random-walk flavor. Further reference at the OJ Simpson
> newsgroups.
>
>
Frank O. Trotter, III  -<EMAIL_ADDRESS>www.marktwain.com  - Fax: +1<PHONE_NUMBER>
--------------------------------------------

{% endraw %}
```

## Thread

+ Return to [April 1996](/archive/1996/04)

+ Return to "["Frank O. Trotter, III" <fotiii@crl.com>](/authors/frank_o_trotter_iii_fotiii_at_crl_com_)"

+ 1996-04-10 (Wed, 10 Apr 1996 22:32:09 +0800) - Re: Bulletin: Cypherpunks say no taxes owed by moneychanger - _"Frank O. Trotter, III"<EMAIL_ADDRESS>


text:
# Kapost

Simple Ruby wrapper for the Kapost API version 1

## Installation

Add this line to your application's Gemfile:

    gem 'kapost'

And then execute:

    $ bundle install

Or install it yourself as:

    $ gem install kapost

## Usage

### Configuration and Client Instantiation

Common usage:

    require 'kapost'

    Kapost.configure do |config|
      config.api_token = ENV['KAPOST_API_KEY']
      config.instance  = ENV['KAPOST_INSTANCE']
    end

    client = Kapost::Client.new

Alternatively:

    require 'kapost'

    client = Kapost::Client.new(:api_token => ENV['KAPOST_API_KEY'], :instance => ENV['KAPOST_INSTANCE'])

### Showing content

    client.show_content(:id => 'the_dude_abides_1')
    # => {...}

### Creating Content

    params = { ... }
    client.create_content(params)
    # => {...}

### Updating Content

    params = { ... }
    client.update_content(params)
    # => {...}

### Deleting Content

    client.delete_content(:id => 'out_of_your_element_1')
    # => {...}

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes including rspec tests (`git commit -am 'Add some feature'`) - Note: Please do not change the version number
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

repository: kapost/kapost-ruby

repo_name: kapost/kapost-ruby


text:
# RFC: loader auto detection in loaders.gl

# RFC: Loaders Sub-Module

- **Authors**: Ib Green
- **Date**: Jun 2019
- **Status**: Draft

## Summary

This RFC would enable loader name strings to specify a loader, without importing the loader object or even knowing if that loader has been registered, eliminating the need to import and reference loader objects in use cases like conditional reference to other loader.

### Allowing Loaders to be named

Using the loader name.

- 'draco' - would resolve to the "preferred" loader supporting Draco.
- 'las' - would resolve to the "preferred" loader supporting LAZ.

```js
parse(arrayBuffer, 'draco', ...); // throws if draco loader not available...
```

```js
import {isLoaderAvailable} from<EMAIL_ADDRESS>```

## The JSON problem

`json` could cover a lot of formats. Should we define this to mean the JSON "table" loader specifically?

## Problems

### Proposal: Loader naming conventions

It is convenient if the names are valid JS strings, so that they can used as object keys without quoting. Lower case, removing spaces, hyphens and underscores:

- draco
- tileset3d
- tile3d

All loaders for the same format (WorkerLoader, StreamingLoader) would be referenced by the same name.

The user would need to decide the names for custom loaders.

## The loader specification problem

How does another part of the code reference a pre-registered loader without actually importing it?

Both extensions and MIME types are unreliable.

Auto detection via file format sniffing, if improved, would work in many cases, but not all formats have magic strings in the beginning, in particular different JSON formats.

In such cases, a parse call without a specified loader might look successful but actually returned something unexpected.

The loaders.gl name appears to be the remaining option.

### Use-Case Specifying Options to Individual Loaders with having access to the loaders

Since loaders can be pre-registered by other parts of the code, there may not be access to them when we want to use them.

Being able to do something like the follows would look very pretty.

```js
load(url, {
  json: {...},
  csv: {...},
  '3d-tiles': {...},
  gltf: {...}
});
```

But how are these names resolved? The loaders objects have different names, different capitalizations etc.

A bunch of loaders will use the `json` extension (this particular issue is also discussed in a separate RFC).

### Use-Case: Conditional invocation of supporting loaders

Since loaders can be quite big, we don't always want a loader to always unconditionally `import` another loader that it does not always depend on.

For instance, we do not want the glTF loader to automatically import the 1.5MB Draco loader.

## Open Issues

- loader names are not based on any standard and are somewhat arbitrary.


text:
---
layout: work
title: Sonyachi Jejuri
date: 2017-12-21 09:00:00 +0530
comments: true
categories: photography
published: true
thumb: bhandara_festival_16.jpg
cover: bhandara_festival_16/cover.jpg
place: Jejuri, MH
class: travel
permalink: "/works/:year/:title"
tags:
- photography
- maharashtra
- bhandara
---
There are quite a few traditions around India hold enough strength to amaze you. This curious tradition that goes on around in a small town in Maharashtra, would surely capture your imagination. The town is known as Jejuri and it is situated at about a 50km drive from Pune. I first heard the name Jejuri while sifting through the newspaper one day, where I found a small article on the curious tradition that goes on there.

Quite a few months passed by as I waited for the right opportunity to visit Jejuri. The window to photograph the event was very short and specific. Though regular and daily rituals are carried out at the abode of Lord Khandoba (_Avātār of Shiva_), there is something special about Somawati amavashyas (no moon day that falls on monday).

Finding this once-a-year opportunity in the month of July 2016, I took out my car and started a drive towards Jejuri from Pune. Before I come to the details about the event, I must begin by showing some photographs of the general landscape that was with me throughout.

Amongst the Ghats

The absolute beauty of the Western Ghats, never cease to amaze me, and I couldn't help myself but to stop for a few photographs.

Rural Maharashtra

Also very intrinsic is the beauty of rural Maharashtra. Being child of Bengal, I've alsways grown up with the open fields and lush greenery around me. Even in my [home at Mumbai](http://kalam.upamanyu.in/writings/washed-away-2/){:target="_blank"}, I was always surrounded my so much greenery. Reading about the droughts and famines in rural Maharashtra, I was always of the biased opinion that the scenery was not quite beautiful. It was only during this drive into the heart of Maharashtra, did I finally break out of my bias.

After a drive of almost an hour, I was finally able to park my car and start my journey into the temple. And from the very entrance, I could see signs of the event I was here to witness.

Temple Bell

Nandi at the Entrance

_Sonyachi Jejuri_ - as the holy town Jejuri is called aptly by the native Maharashtrians, which means “The Golden Jejuri”, comes alive when one looks from the roof top of the Khandoba temple at the porch, at the stairs, at the roads, at the entire Jejuri city and at the people around it when they gather here in myriads during the sacred day of Somawati Amavashya (no moon day that falls on Monday) to pay their reverence to their family god Khandoba. And they do so by throwing around _bhandara_ (turmeric powder) on each other. Almost making it a festival very similar to holi.

Entering the Temple

Lord Khandoba, is probably one of the most versatile and widely acknowledged god being worshipped across many regions, religions, casts and communities. He is the most popular Kul Devata (family god) among one of the oldest shepherd tribe “Dhangar” and the patron deity of Deshastha Brahmin. People from other communities like warriors, farming and herding castes too keep their high regards towards him. The cult of Khandoba has prominent linkages with Vaishnava and Jain traditions despite him being worshipped as _Martanda Bhairava_, a form of Lord Shiva.

In the temple of Jejuri, surprisingly both the deities of him and his wife Malsha is in the form of _Lingas_ (one of Lord Shiva’s most known statue form) which are covered with decorated silver masks. A part of the Muslims too consider him as their god Mallu Khan and been seen offering goat flesh in the temple areas. This way people consider him as one of the rare non-vegetarian Indian god. Surya and Kartikeya Skanda are his other depictions too.

The offering of turmeric powder to paint the city golden yellow has its many reasons, logics and traditions. Popular belief is that the tradition came from the yore old great Indian tradition of applying turmeric to the bride and groom as an antiseptic agent to protect their immunities. And as the festival is to celebrate the wedding ritual of Lord Khandoba and his wife Malsha, that same ritual has manifested here.

The Turmeric Festival

Some also believe it to be the offering respect for his being from the Surya - the symbol of power and brightness. Many paintings depict him riding a horse with a bowl full of turmeric powder in the hand may serve the reason of the amber golden celebration.

The Temple

On the very auspicious day, a Palkhi(palanquin) is taken out from the main temple situated at the hilltop carrying the idols of Lord Khandoba and his wife Malsha for a holy bath in the river Karha. The procession climbs down the 200 steep stairs those connect the temple to the ground level along with the protective stone walls.

Nandi

A veil of golden yellow turmeric powder engulfs the entire town in combination with the holy chants “Yelkot Yelkot Jai Malhar” “Sadanandache Yelkot” offered by his dedicated followers. The complete area starts reverberate with faith and devotion. The entire atmosphere gets soaked into the mood of a divine celebration with the purity of golden turmeric.

City

A golden yellow cloud prevails everywhere the procession goes through. With the holy dip, the ritual of the Khandoba marriage is recreated. At the end of the day, the idols are taken back to the shrine. A series of thousands of lamps get lightened on the spectacularly constructed Deepmalas (stone structure to place burning oil lamp on) to welcome the gods to their abode and brings up a divine atmosphere around the temple. Thus, Jejuri influences the heart of millions with its Golden touch.

Turmeric

Some more Turmeric

Shivaji Maharaj

Before I knew, it was time for me to leave. Having experienced an unique tradition, my heart was content. Though a pang of sadness was in my heart, I was fortunate to have been part of this divine tradition.

This project would not have been successful without the help of Zeiss, who provided me with the lens and bore the costs for the tour.

Some of you might be wondering why I'm posting this travelougue amlost an year-and-half later the actual travel. After the passing away of my father in 2015 and my mother in 2016 just a few days after I made this trip, I was not in a state to sit with these photographs. With time these just got stacked in a corned of my digital drive. It is only now that I got the time to process the photographs and write this article.

The factual text in this writeup is courtesy of Arun Saha, whose article can be found [here](https://www.dodho.com/bhandara-the-golden-festival-of-jejuri-by-arun-saha/){:target="_blank"}.

P.S If anyone as any more information regarding any of the rituals mentioned here, please comment or get in touch with me at <a<EMAIL_ADDRESS>target="_blank">upamanyu@upamanyu.in.

extension: markdown


text:
portmidi-rs
===========

[![Build Status](https://travis-ci.org/samdoshi/portmidi-rs.svg?branch=master)](https://travis-ci.org/samdoshi/portmidi-rs)

[Documentation](http://samdoshi.github.io/portmidi-rs/portmidi/index.html)

High-level PortMidi bindings for Rust.

PortMidi website: http://portmedia.sourceforge.net/portmidi/

Installation
============

Add this to your `Cargo.toml`.
```toml
[dependencies]
portmidi = "*"
```

Prerequisites
-------------

You need to make sure you have the PortMidi library installed.

On Ubuntu / Debian:
```sh
apt-get install libportmidi-dev
```

On OSX (Homebrew):
```sh
brew install portmidi
```
On OSX, if you get a linker error `ld: library not found for -lportmidi`, make sure you have the PortMidi library in your `$LIBRARY_PATH`, e.g. for Homebrew:
```sh
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/lib"
```

License
=======
This software is provide under the MIT license. PortMidi is provided under it's own MIT-like license.

repository: uniphil/portmidi-rs

repo_name: uniphil/portmidi-rs


text:
Basic Editing
=============

This file explains the basics of how to open, edit, and save files. It is as
basic as possible so that you can get started with using Edil quickly, but
covers everything in more detail than the README file.

Opening Files
-------------

There are several ways to open files using Edil. The simplest way is to specify
them as arguments when starting Edil. For example, running the command
`edil file1 file2` will run Edil and automatically open both files.

Once Edil is running, a file can be opened in a new buffer using the command
`new filename`. To run this command, press `Ctrl+x` and type the command, then
press `Enter`. To open a file in the current buffer, you can run the command
`load filename`. Each buffer in Edil can be associated with a file. When the
load command is invoked with a filename, the specified file is associated with
the buffer. A file can be associated with a buffer without loading it however,
using the command `associate filename`. This can be useful if, for example,
the buffer contains information already that you want to save to a file, and
so cannot override it by loading the contents of the file to it. Once a file
is associated with a buffer, its contents can be loaded by running the `load`
command with no argument.

All these methods of opening files achive the same thing. In fact, running
`edil filename` is equivient to the command `edil -c "new filename"`, which
is equivilent to running Edil and then running the command `new filename`.
This command is equivilent to running the commands `new`, to create a new
buffer, and then `load filename` to load the file into it. This is also
equivilent to running the commands `new`, `associate filename`, and then
`load`.

The `new` command can be easily accessed using the shortcut `Esc+n`. The
desired filename can be entered and then the full command run.

Editing Files
-------------

All the standard keys for navigating files can be used. The arrow keys move
the primary cursor, along with `PgUp`, `PgDn`, `Home` and `End`. Typing an
ordinary printable character will insert this character at the position of the
primary cursor, and the return key will insert a newline at this position. The
`Backspace` and `Del` keys work as expected also.

The only character which cannot be inserted by simply typing it is the tab,
which can be manually inserted using the key combination `Mod+Tab`.

Saving and Exiting
------------------

In order to save the contents of a buffer, you must run the `save` command.
When this command is run, the contents of the current buffer are saved to the
file it is associated with. This command can be quickly accessed using the
shortcut `Esc+s`.

To exit Edil, use the key combination `Esc+Ctrl+k`. This will exit the program
fully.

repository: mortie/edil

repo_name: mortie/edil


text:
[Puzzle](http://adventofcode.com/2017/day/2)

## Time Spent
Part 1: 1 hour 6 minutes
Part 2: --

## Language Experience
1

## Resources used
https://caml.inria.fr/pub/docs/manual-ocaml/


text:
# Readme - Grunt Terrific Micro Exporter

This npm package is a easy-to-use export module for Terrific Micro based on Grunt.js

This tool exports your views and assets into a versioned zip file or a directory.
It fetches the HTML of your views, your dynamic assets and configurable additional files.
You can change the folder structure within the export. Images can be automatically optimized by imagemin.
Every release will create a new version (patch, minor oder major) and optionally tags, commit/push it to the git project repository.

Creator: [Christian Stuff](https://github.com/regaddi)
Hosted on: [GitHub](https://github.com/namics/grunt-terrific-micro-exporter)

## Installation & more

on [GitHub](https://github.com/namics/grunt-terrific-micro-exporter)

repository: ernscht/terrific-micro-extensions

repo_name: ernscht/terrific-micro-extensions


text:
# Updating a dataset with local files

1. log in
1. select **My datasets**
1. select an existing, **published** dataset
1. select **Upload data**
   - ✓ check that files from the existing version(s) are listed under **Upload files**
   - ✓ check that each file has a check mark
   - ✓ check that **New in this version**, below the table, shows **0 bytes**
1. make sure **Drag and drop or choose files from your computer** is selected
1. click **Choose files**
   - choose one or more files
1. drag some files into the **Drag and drop files here** area
   - including at least one file with the same name as an existing file
1. for all files:
   - ✓ check that the chosen files appear in the list
   - ✓ check that the dropped files appear in the list
   - ✓ check that the file sizes are correct
   - ✓ check that the **Total** size is correct (should be the total of all file sizes shown)
   - ✓ check that the **New in this version** reflects the added files
   - ✓ check that the **I confirm…** check box appears
   - ✓ check that the **Upload** button appears
   - ✓ check that the **Upload** button is disabled
1. for the file with the same name:
   - ✓ check that there is now *no* checkmark next to the file name
   - ✓ check that the message **Your previous file [filename] has been
     replaced in your upload list with a newer file with the same name.**
     appears below the table.
     - *(Note: It may then disappear, for some reason.`¯\_(ツ)_/¯`—DM)*
1. click **Remove** on the file with the same name, and:
   - ✓ check that the old file reappears (w/checkmark and old size)
1. click **Remove** on one or more of the old files
   - for each file:
     - ✓ check that the removed file disappears from the list
     - ✓ check that the **Total** size is adjusted correctly
1. click **Remove** on one or more of the newly added files
   - for each file:
     - ✓ check that the removed file disappears from the list
     - ✓ check that the **Total** size is adjusted correctly
     - ✓ check that the **New in this version** size is adjusted correctly
   - when all files have been removed:
     - ✓ check that the **I confirm…** check box disappears
     - ✓ check that the **Upload** button disappears
1. choose and/or drag and drop some more files, including at least one
    reasonably large file (> 10 MB)
   - ✓ check that the **I confirm…** check box and **Upload** button reappear
1. tick the **I confirm…** check box
   - ✓ check that the **Upload** button is ebnabled
1. click **Proceed to review** (lower right)
   - ✓ check that a **You have files that have not been uploaded** dialog appears
   - dismiss the dialog
1. click **Review and submit** (top right)
   - ✓ check that a **You have files that have not been uploaded** dialog appears
   - dismiss the dialog
1. click **Upload**
1. for large (-ish) files, ✓ check that:
   - a progress bar appears next to each file
   - a **Cancel** link appears next to each file
   - clicking the **Cancel** link before progress completes removes the file from the list
1. for smallish files, and for *completed* large files,
   - ✓ check that a check mark appears next to the file name
   - ✓ check that the **Cancel** link changes to **Delete**
1. click **Delete** on one or more files
   - for each file:
     - ✓ check that the removed file disappears from the list
     - ✓ check that the **Total** size is adjusted correctly
     - ✓ check that the **New in this version** size is adjusted correctly
   - when all files have been deleted:
     - ✓ check that the **I confirm…** check box disappears
     - ✓ check that the **Upload** button disappears
1. choose and/or drag and drop some more files
   - ✓ check that the **I confirm…** check box and **Upload** button reappear
1. tick the **I confirm…** check box
1. click **Upload**
1. when all files have uploaded, click **Proceed to review** or **Review and submit**
   - ✓ check that the uploaded files appear in the **Review data files** section
1. tick the **By checking this box, I agree...** (CC-BY) box
1. click **Submit**
1. wait for the dataset’s status to apepar as **published**
1. on the dataset landing page:
   - ✓ check that the files appear, with the correct sizes, under **Data files**
   - click **Download the dataset**
     - ✓ check that the files appear, with the correct sizes, in the downloaded ZIP file
     - ✓ check that any replaced files have been replaced

repository: CDL-Dryad/dryad-app

gha_language: Ruby

repo_name: CDL-Dryad/dryad-app


text:
# Product @ DVELP
Our Playbook for creating products at DVELP.

## Our Mission
To create solutions that help businesses revolutionise how they speak with
their customers.

## Strategy
To [identify White Space](#fill-the-white-space) in [Partner Solutions](partner-solutions),
[Prototype rapidly](#get-close-with-customers) and validate hypothesis amongst
our customer base. Pick winners early and [scale up](#scale-up)
through strong vendor partner relationships.

### Get Close with Customers
Through close relationships with customers we can recognise industry trends early
and identify opportunities to add value through products

### Fill the White Space
Our proximity to customers coupled with deep expertise in our
[Partner Solutions](partner-solutions) means we are uniquely positioned to
identify and fill `White Space` in existing solutions and deliver new features
and prototypes to our customer base to rapidly validate hypotheses.

### Scale-Up
Build a strong commercial and go-to-market framework with our
[Partner Vendors](partner-solutions#propositions) through which we can scale-up products
that have shown early success with existing customers.

## Product Team
* Chief Product Officer: Tom Mullen
* Senior Vice President of Product: Damian Kellly
* Vice President of Product Engineering: TBC

A definition of key product roles can be found [here](roles).

## What We Believe In
We believe, above all else, in the following principles, which act as guides to
help us build incredible products:

#### Focus Above the Value Line
We spend as much time and focus as we can on things that will add value to our
customers and to the end user.

#### Ship Early and Often
We don't like big bang releases. We break down complex tasks and ship small
features regularly to get early feedback and reduce risk.

#### We Are About Quality
At our core, we are about quality. We obsess over detail.

## Resources
* [Product Estate](https://docs.google.com/spreadsheets/d/16UzzS_aGoPzv1ThoknyqM4NJ3k09QN5M3B7DtxIKY2o)
* [Product Strategy Sheet](https://docs.google.com/spreadsheets/d/1YR6lM9HXHw2rkY1h2xiqOByDMlc0-1attTKJflA7A9w)

## Scope of Ownership
The product team is responsible for both home-grown `Product` and `Partner
Solutions`. More information about each can be found below.

* [Product](product)
* [Partner Solutions](partner-solutions)

## Key Event Calendar
The product organisation rotates around key events throughout the financial year
To bring structure and help ensure regular cadence.

You can see the event calendar, along with outlines of each event
[here](key-event-calendar.md).

## Contributing
**We value your input.** Find out how to contribute to the Product
Organisation, either through features, bugs or net new products and
propositions [here](contributing).

repository: JoseMPena/cookbook

repo_name: JoseMPena/cookbook


text:
# Datepicker

Simple date picker written in JavaScript - accessible, fast and no dependencies from 3rd party libraries. Tested on: IE6-10, Firefox 24, Chrome 29.0.1547.76 m / all on Windows OS.

## Usage

Just add class name `datepicker` to HTML `input` element. Example: `<input class="datepicker" type="text" id="test" name="test" value=""/>`

**Note**: date picker is self initialized. This means that the code should be run in at least one of specified options:

- before closing `body` HTML tag
- when `DOMContentLoaded` event is called which means that the document has been completely loaded and parsed, without waiting for stylesheets, images, and subframes to finish loading
- when `window.onload` event is called which means all resources and its dependent resources have finished loading

## Configuration

Configuration is located in file `datepicker.js` where is section named `/* Config */`. There you have:
- _dateFormat_ - set your preffered date format 'dd-mm-yyyy' or 'yyyy-mm-dd'
- _previousMonth_, _nextMonth_ - specify symbol for 'previous' and 'next' month button
- _days_, _month_ - arrays where are specified names of days and month in english by default
- _yearsFrom_ - from which year you want to start count in your `select` year HTML element; default is 2020
- _dateSeparator_ - used when date is passed to HTML `input` element; default is '-'
- _forceHTML5_ - set to `true` if you want to really use HTML5 date picker when available; by default is `false`

## Some TODO

- Navigation with keyboard doesn't work yet.
- Improving accessibility.
- Improving translations (Internationalization) by moving from local variable to JSON file.
- Optimizing code.

## License

Licensed under the MIT license.

repository: ctomczyk/datepicker

repo_name: ctomczyk/datepicker


text:
# Ilo Amplifier Integration Pack
This pack allows you to integrate with iLO Amplifier

## Configuration
Copy the example configuration in [iloamplifier].yaml.example](./iloamplifier.yaml.example) to
`/opt/stackstorm/configs/iloamplifier.yaml` and edit as required.

It must contain:

```
ipaddress - Your iloAmp appliance IP address
username - iloAmp User name
password - iloAmp Password
```

You can also use dynamic values from the datastore. See the
[docs](https://docs.stackstorm.com/reference/pack_configs.html) for more info.

Example configuration:

```yaml
---
  login_host: "<IP_ADDRESS>"
  login_account: "Administrator"
  login_password: "password"
```
You can also run `st2 pack config iloamplifier` and answer the promts

**Note** : When modifying the configuration in `/opt/stackstorm/configs/` please
           remember to tell StackStorm to load these new values by running
           `st2ctl reload --register-configs`

## Actions

Actions are defined in two groups:

### Individual actions: GET, POST, PUT with under bar will precede each individual action
* ``get_systems``
* ``get_chassis``
* ``get_ethernetinterfaces``

### Orquestra Workflows: will not


text:
title: CT image analysis for COPD
finished: false
type: general
picture: projects/copd.jpg
template: project-single
groups: diag
people: Xie Weiyi, Colin Jacobs, Jean-Paul Charbonnier, Eva van Rikxoort, Dirkjan Slebos, Bram van Ginneken, Mathias Prokop, Cornelia Schaefer-Prokop
description: Computed tomography is an important tool to assess lung damage from chronic obstructive pulmonary disease. We develop AI tools for CT in COPD.
bibkeys: Xie20, Char19, Estr19, Gall17, Char16c, Char17, Char15, Kloo15, Rikx09d, Bank07

Computed tomography is an important tool to assess lung damage from chronic obstructive pulmonary disease. We develop AI tools for CT in COPD. [member/eva-van-rikxoort] was leading this research in a large group until she founded Thirona. Currently, research on COPD within DIAG continues in the Solve study funded by the [Dutch Lung Foundation](https://research.longfonds.nl/lung-foundation-netherlands).

## Funding
* [Solve studie LongFonds](https://www.bicumcg.nl/research/onderzoek-copd/ventielen/)
* [Thirona](https://thirona.eu/)

repository: DIAGNijmegen/website-content

gha_language: TeX

repo_name: DIAGNijmegen/website-content


text:
---
templateKey: event-post
title: Umpqua Uncorked 2020
date: 2020-02-06T19:55:10.623Z
description: Our Umpqua Uncorked & On Tap event, scheduled for April 4, 2020, has been postponed.  Please check back for the rescheduled date, or contact Patti by email at<EMAIL_ADDRESS>or phone<PHONE_NUMBER>. Thank you for your support and understanding.
featuredimage: /img/NoLinkWebLogoUUOT-758x1024.png
active: true
---

![Umpqua Uncorked & Untapped Logo](/img/LOGOPage26BackgroundUncorked-1.png)

Umpqua Uncorked & On Tap is the only age 21 and over annual Club event, and features local wines and beers from around the Umpqua Valley. The event includes a wonderful meal, your choice of beverages to sample, camaraderie with friends and neighbors, live music, a silent auction, and more.

The Club is dedicated to providing fun, educational and outcome-driven programs for youth 1st -12th grade throughout the year. All the proceeds from this event go to support summer and after-school Club programs. In addition to the school year, it’s important to keep kids learning throughout the summer to help prevent summer learning loss, and help them to be prepared for the next school year.

More:
A funding gap exists due to the Club’s low $52.00 annual membership fee. The actual cost for each child member reaches more than $800.00 annually, and community support is what helps to significantly decrease the difference. By purchasing tickets for this event each year, or becoming a sponsor, you are personally helping us keep the cost affordable and provide scholarships to those children and families that need us most.

repository: jeremiahfallin/bgcuv-prev

repo_name: jeremiahfallin/bgcuv-prev


text:
---
layout: default
---

# 1996-12-25 - Re: Internet Message

## Header Data

From<EMAIL_ADDRESS>(NATHAN MALLAMACE)

To<EMAIL_ADDRESS>Message Hash: a50caf40df9ceea73e69d713b3d4ac86879532ab9c6dad3937deb8ebfafd2293

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1996-12-25 22:26:17 UTC

Raw Date: Wed, 25 Dec 1996 14:26:17 -0800 (PST)

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>(NATHAN MALLAMACE)
Date: Wed, 25 Dec 1996 14:26:17 -0800 (PST)
To<EMAIL_ADDRESS>Subject: Re: Internet Message
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

  Sorry I wasn't able obtain the original SUBJECT here.

     Through-out the moral existance of the internet I find
no reason to stop the comunications. There are factors like
no AT&T, MCI, or SPRINT (those dime-a-minute rates are
baffling). GOOD. Then there are more ideas exchanged. This
can be a PLUS for businesses that are RETAILERS (in the long
run). The internet can be used to UNITE the world with a
single language. The internet can be used to share ideas,
learn, and a good place to visit when you are feeling down.

    Now if you believe anything I said, than the idea that
the iternet brings is UNITY. Isn't it strange that within
the last 3 years, (taken from a local news channel) people
have agreed that the U.S. is moving in a positive direction?
Not really, within these last three years is the exact time
the internet had become most publicly available. With
PRODIGY, AOL, and COMPUSERVE making it happen. Who is the
original credit due to?
Tell me.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
my favorite site:
http://pages.prodigy.com/VT/hackersguide
on the internet today.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

      --Nathan

{% endraw %}
```

## Thread

+ Return to [December 1996](/archive/1996/12)

+ Return to "["Attila T. Hun" <attila@primenet.com>](/authors/attila_t_hun_attila_at_primenet_com_)"
+ Return to<EMAIL_ADDRESS>(NATHAN MALLAMACE)](/authors/bjorn2luze_at_prodigy_com_nathan_mallamace_)"

+ 1996-12-25 (Wed, 25 Dec 1996 14:26:17 -0800 (PST)) - Re: Internet Message -<EMAIL_ADDRESS>(NATHAN MALLAMACE)_
  + 1996-12-25 (Wed, 25 Dec 1996 15:28:25 -0800 (PST)) - [ABSOLUTE BUNK [was Internet Message]](/archive/1996/12/b8ecf96a2c85e6f21c188d9185dcce0ee517d47f58a6de1472073cd201a47de7) - _"Attila T. Hun"<EMAIL_ADDRESS>


text:
---
layout: page
title: Terraform with Microsoft Azure
description: "Description of my talk - Terraform with Microsoft Azure"
tags: [architecture, Azure, Terraform]
image:
  feature: speaking/cfp/Terraform-with-Microsoft-Azure/logo.jpg
---

## Short abstract

We all agree that infrastructure as code is a must and every cloud provider gives a way to create the whole environment from a text file. So everything is fine? Until you see those files and see how usable they are. This is where Terraform steps in. A simple and expressive way to have cloud as code.

## Description

We all agree that infrastructure as code is a good thing or even a must. It is also acknowledged by every cloud provider since all of them give a way to script and create the whole environment from a text file. So everything is fine? Those who used Azure Resource Manager (or its counterpart) know the pain of configuration files with thousands of lines of code. This is where Terraform steps in. A simple, clean and expressive way to express cloud architecture as code and track changes. We will look at its features, limitations, how it works and how to start working with it and Microsoft Azure.


text:
# gitRepoUpdater
## This shell script updates all of the git repositories that you have in a folder
### Instructions

To update all git repos in a folder you can use:
```sh
$ ./updateRepos.sh all
```
or
```sh
$ ./updateRepos.sh -a
```

To evaluate which repo update you can use:
```sh
$ ./updateRepos.sh each
```
or
```sh
$ ./updateRepos.sh -e
```

if you want to use the complete wizard, just use this:
```sh
$ ./updateRepos.sh
```
---
### Installing to use globally
To install this script and use it anywhere in your system you may clone this repository
```git
git clone https://github.com/devCharles/gitRepoUpdater.git
```
then cd into the new directory
```sh
$ cd gitRepoUpdater
```
now we must copy the 'updateRepos.sh' script to ```/usr/local/bin```
```sh
$ sudo cp updateRepos.sh /usr/local/bin
```
and you can use the script by simply using
```sh
$ updateRepos.sh [flag]
```

### Notes
- in order to use this script you may need to have the right permission level to execute the script


text:
# The team

The core team
--------------

The core team behind **opps** (in order of joining the project):

* [Thiago Avelino](https://github.com/avelino) (technical leader of this project)
* [Bruno Rocha](https://github.com/rochacbruno)
* [Patches and suggestions](https://github.com/orgs/opps/members)

Other contributors
------------------

Other non-core members, but equally important, equally rocking, equally ass-kicking contributors can be seen in this list:
https://github.com/opps/opps/network/members

There are also some more contributors that haven't send code to the project, but who help in other ways, when and how they can.
We're very happy to have you, guys!

Add member on team
-------------------
Clone repo [oppsproject.org](https://github.com/opps/oppsproject.org) and add user on
 [permissions.cfg](https://github.com/opps/oppsproject.org/blob/master/permissions.cfg) in *[team:contributors]*

repository: opps/opps

gha_language: Python

repo_name: opps/opps


text:
# BBX Countdown

A polymer built element that represents a simple seconds countdown clock

**Demo** : [https://bbx-kitchen.github.io/bbx-countdown](https://bbx-kitchen.github.io/bbx-countdown/components/bbx-countdown/)

## How to install

Using bower

`bower install --save BBx-Kitchen/bbx-countdown`

## Usage

```html
<bbx-countdown time="60" on-over="_onOverListener">
</bbx-countdown>
```

## Contributing

Everyone is welcome to help contribute and improve this element. There are several
ways you can contribute:

* Reporting issues (please read [issue guidelines](https://github.com/necolas/issue-guidelines))
* Suggesting new features
* Writing or refactoring code
* Fixing [issues](https://github.com/BBx-Kitchen/bbx-countdown/issues)

repository: BBx-Kitchen/bbx-countdown

repo_name: BBx-Kitchen/bbx-countdown