text:
# Changelog

- [0.3.4](#034)
- [0.3.3](#033)
- [0.3.2](#032)
- [0.3.1](#031)
- [0.3.0](#030)
- [0.2.2](#022)
- [0.2.1](#021)
- [0.2.0](#020)
- [0.1.2](#012)
- [0.1.1](#011)
- [0.1.0](#010)
- [0.0.2](#002)
- [0.0.1: Initial Release](#001-initial-release)

## 0.3.4

**Released at:** `2020`

**Info**:

**Changes**:

- Updated [SexLab Solutions - Revisited SE](https://www.loverslab.com/files/file/10742-sexlab-solutions-revisited-se/) to <IP_ADDRESS>
- Updated [The Book Of Sex SE](https://www.loverslab.com/files/file/10091-the-book-of-sex-se/) to 1.1
- Added [HD Reworked Dragons Collection 4K](https://www.nexusmods.com/skyrimspecialedition/mods/36038)
- Removed Bellyaches HD Dragon Replacer Pack (SE)
- Removed Alduin's Imprefvicticious and Chapper's Demonic Retexture mashup
- Removed Paarthurnax DragonSkin by DarkDukla
- Replaced Silent Horizon with [PI-CHO ENB](https://www.nexusmods.com/skyrimspecialedition/mods/35082)

## 0.3.3

**Released at:** `16.05.2020`

**Info**:

Mostly dead links update and fixes.

**Changes**:

- Updated [CBBE 3BBB](https://www.nexusmods.com/skyrimspecialedition/mods/30174/?tab=files) to 1.37
- Removed [Loot Overhaul - Rarity and Abundance (SkyRem - Lora)](https://www.nexusmods.com/skyrimspecialedition/mods/26732/?tab=files)
- Added [[SE] Dint999's BDO Arethel & Heled SMP 3BA](https://www.loverslab.com/files/file/12828-se-dint999s-bdo-arethel-heled-smp-3ba/)
- Added [[SE] Team Tal's DM BDOR Kibelius SMP 3BA](https://www.loverslab.com/files/file/12827-se-team-tals-dm-bdor-kibelius-smp-3ba/)
- Added [[SE] Team TAL's DM BDOR Lephria SMP 3BA](https://www.loverslab.com/files/file/12825-se-team-tals-dm-bdor-lephria-smp-3ba/)
- Fixed [Issue #71](https://github.com/erri120/lotus/issues/71)
- Updated [SSE Display Tweaks](https://www.nexusmods.com/skyrimspecialedition/mods/34705/?tab=files) to 0.4.1
- Updated [Serana Dialogue Add-On](https://www.nexusmods.com/skyrimspecialedition/mods/32161/?tab=files) to 1.0
- Updated [Special Perks from Questing (SE)](https://www.nexusmods.com/skyrimspecialedition/mods/29402?tab=files) to 1.2
- Updated [SSE Engine Fixes](https://www.nexusmods.com/skyrimspecialedition/mods/17230/?tab=files) to 5.2.0
- Fixed [Issue #55](https://github.com/erri120/lotus/issues/55)
- Added [Audio Overhaul and Immersive Sounds Patch Redux](https://www.nexusmods.com/skyrimspecialedition/mods/35906?tab=description)
- Updated [Adamant - A Perk Overhaul](https://www.nexusmods.com/skyrimspecialedition/mods/30191/?tab=files) to 2.1.7
- Added [Quick Loot RE and Hook Share SSE 1.5.97 Unofficial Update for SKSE Plugins](https://www.nexusmods.com/skyrimspecialedition/mods/35951?tab=files)
- Updated [Animated Beast's Cocks(ABC) For users LE / SE 1.58V](https://www.loverslab.com/files/file/7556-animated-beasts-cocksabc-for-users-le-se/) to 1.58
- Updated [More Nasty Critters](https://www.loverslab.com/files/file/4130-more-nasty-critters-slal-edition/) to 12.07
- Added [AIM FIX - total control over the crosshair for archery and magic](https://www.nexusmods.com/skyrimspecialedition/mods/18524)
- Updated [SSE CreationKit Fixes](https://www.nexusmods.com/skyrimspecialedition/mods/20061) to 2.8
- Disabled enemy releveler esp

## 0.3.2

**Released at:** `10.05.2020`

**Info**:

Quick dead link hotfix.

**Changes**:

- Updated [SSE Display Tweaks](https://www.nexusmods.com/skyrimspecialedition/mods/34705/?tab=files) to 0.3.14
- Updated [Loot Overhaul - Rarity and Abundance (SkyRem - Lora)](https://www.nexusmods.com/skyrimspecialedition/mods/26732/?tab=files) to 2.0.1

## 0.3.1

**Released at:** `10.05.2020`

**Info**:

The 0.3 launch has been huge and you guys quickly found some bugs. This and the following updates will hopefully address most of them and focus on fixing and updating rather than adding. I've changed some BodySlide related stuff so I recommend yeeting the contents of your BodySlide Output folder and rebuilding the outfits. I've also updated the DCL config so go into the MCM and load the config again.

Make sure to disable `Expressive Facegen Morphs SE` in MO2, forgot to disable that mod.

**Changes**:

- Added missing BodySlide files for ZaZ
- Updated [moreHUD Inventory Edition](https://www.nexusmods.com/skyrimspecialedition/mods/18619) to 1.0.15
- Fixed [Issue #62](https://github.com/erri120/lotus/issues/62)
- Removed a lot of unused and duplicate BodySlide files
- Fixed wrong texture name for WetFunctionRedux
- Fixed [Issue #65](https://github.com/erri120/lotus/issues/65)
- Fixed [Issue #63](https://github.com/erri120/lotus/issues/63)
- Fixed [Issue #60](https://github.com/erri120/lotus/issues/60)
- Disabled some RaceMenu presets that were not working correctly
- Fixed [Issue #66](https://github.com/erri120/lotus/issues/66) by replacing the EVW BSA with the Loose version
- Updated [Serana Dialogue Add-On Amorous Adventures Patch](https://www.nexusmods.com/skyrimspecialedition/mods/32161/?tab=files) to 3.0
- Updated [ABC](https://www.loverslab.com/files/file/7556-animated-beasts-cocksabc-for-users-le-se/) to 1.56
- Fixed [Issue #68](https://github.com/erri120/lotus/issues/68)
- Fixed [Issue #74](https://github.com/erri120/lotus/issues/74)
- Updated [SSE Display Tweaks](https://www.nexusmods.com/skyrimspecialedition/mods/34705) to 0.3.13
- Updated [Nether's Follower Framework](https://www.nexusmods.com/skyrimspecialedition/mods/18076/) to 2.6.6
- Updated [The Men of Winter](https://www.nexusmods.com/skyrimspecialedition/mods/10902?tab=files) to 5.3
- Updated [Majestic Mountains - Cathedral Concept](https://www.nexusmods.com/skyrimspecialedition/mods/11052/?tab=files) to 3.10
- Updated [Better Dynamic Majestic Mountains](https://www.nexusmods.com/skyrimspecialedition/mods/20102?tab=files) to 9
- Updated [moreHUD SE](https://www.nexusmods.com/skyrimspecialedition/mods/12688?tab=files) to 3.7.9
- Fixed [Issue #77](https://github.com/erri120/lotus/issues/77)

## 0.3.0

**Released at:** `05.05.2020`

**Info**:

This update is huge. This is pretty much a completely different modlist and I overhauled like everything. New game is obviously required. Most notable changes I'd say are the reworked combat, addition of Devious Devices and changes to the general gameplay via Adamant, Experience and Enemy Variations.

**Changes**:

Too many.

## 0.2.2

**Released at:** `05.03.2020`

**Info**:

Currently testing out [YeOlde - MCM Settings](https://www.nexusmods.com/skyrimspecialedition/mods/29437). Make sure to check out the new SL quest mod: [The Book of Sex](https://www.loverslab.com/files/file/10091-the-book-of-sex-se/)! This Update actually contains a lot of new stuff but none of them break your existing save. You will get a lot of additional meshes&textures.

**Changes**:

- Updated [ABC](https://www.loverslab.com/files/file/7556-animated-beasts-cocksabc-for-users-le-se/) to 1.44
- Updated [CBBE 3BBB](https://www.nexusmods.com/skyrimspecialedition/mods/30174/) to 1.33
- Updated [Scaleform Translation Plus Plus](https://www.nexusmods.com/skyrimspecialedition/mods/22603/) to 1.4.0
- Updated [Whose Quest Is It Anyway](https://www.nexusmods.com/skyrimspecialedition/mods/23581/) to 1.3.0
- Updated [I'm Walkin' Here](https://www.nexusmods.com/skyrimspecialedition/mods/27742/) to 1.4.0
- Updated [Cathedral Weathers and Seasons](https://www.nexusmods.com/skyrimspecialedition/mods/24791/) to 2.09
- Updated [Stay At The System Page - Updated](https://www.nexusmods.com/skyrimspecialedition/mods/19832) to 1.5.0
- Updated [Yes Im Sure](https://www.nexusmods.com/skyrimspecialedition/mods/24898/) to 1.5.0
- Updated [ConsoleUtilSSE](https://www.nexusmods.com/skyrimspecialedition/mods/24858) to 1.2.0
- Updated [Cathedral Weathers and Seasons](https://www.nexusmods.com/skyrimspecialedition/mods/24791) to 2.091
- Updated [Nether's Follower Framework](https://www.nexusmods.com/skyrimspecialedition/mods/18076) to 2.6.1
- Updated [Fix Note icon for SkyUI (SKSE64 plugin)](https://www.nexusmods.com/skyrimspecialedition/mods/32561/) to 1.2.1
- Updated [Rally's Hooks and Saws](https://www.nexusmods.com/skyrimspecialedition/mods/32652) to 1.1
- Updated [Cathedral Water Overhaul - Includes Water Edge Bug Fix](https://www.nexusmods.com/skyrimspecialedition/mods/22962/) to 2.1
- Added [YeOlde - MCM Settings](https://www.nexusmods.com/skyrimspecialedition/mods/29437)
- Added [SexLab Privacy](https://www.loverslab.com/files/file/10090-sexlab-privacy-se/)
- Added [The Book of Sex](https://www.loverslab.com/files/file/10091-the-book-of-sex-se/)
- Added [Better Jumping SE](https://www.nexusmods.com/skyrimspecialedition/mods/18967), resolved Issue [#36](https://github.com/erri120/lotus/issues/36)
- Added [Stronger Swimming Animation SE](https://www.nexusmods.com/skyrimspecialedition/mods/32625)
- Added [Vanilla Table Replacers](https://www.nexusmods.com/skyrimspecialedition/mods/33041)
- Added [Alduin's Imprefvicticious and Chapper's Demonic Retexture mashup](https://www.nexusmods.com/skyrimspecialedition/mods/33007)
- Added [CleverCharff's Photorealistic Whiterun 4K-2K](https://www.nexusmods.com/skyrimspecialedition/mods/33156)
- Added [CleverCharff's 4K - 2K Photorealistic Farmhouse Stonewalls with Parallax](https://www.nexusmods.com/skyrimspecialedition/mods/32582)
- Added [Northern Shores SE](https://www.nexusmods.com/skyrimspecialedition/mods/27041)
- Added [Orc Settlements Enhanced](https://www.nexusmods.com/skyrimspecialedition/mods/28566)
- Added [Hyperborean Snow](https://www.nexusmods.com/skyrimspecialedition/mods/29283)
- Added [Septentrional Landscapes SE](https://www.nexusmods.com/skyrimspecialedition/mods/29842)
- Added [DX Witcher Armor - UNP](https://www.nexusmods.com/skyrimspecialedition/mods/33034)
- Added [DX Witcher Armor - SSE CBBE BodySlide (with Physics)](https://www.nexusmods.com/skyrimspecialedition/mods/33033)
- Added [Rally's Hanging Moss](https://www.nexusmods.com/skyrimspecialedition/mods/33225)
- Added [Rally's Jurgen Windcaller Tomb](https://www.nexusmods.com/skyrimspecialedition/mods/28800)
- Added [Rally's Dark Brotherhood Clutter](https://www.nexusmods.com/skyrimspecialedition/mods/28531)
- Added [Rally's Fishing Poles](https://www.nexusmods.com/skyrimspecialedition/mods/33248)
- Added [CleverCharff's Noble Furniture Silver or Gold 4K-2K](https://www.nexusmods.com/skyrimspecialedition/mods/33220)
- Added [Bug Fixes SSE](https://www.nexusmods.com/skyrimspecialedition/mods/33261)

## 0.2.1

**Released at:** `28.02.2020`

**Info**:

Mostly dead link and mod updates but I have also added some more camera mods and updated the readme. Be sure to check the new [Camera](README.md#camera) section in the readme for further customization.

**Changes**:

- Updated [Pandorable's NPCs](https://www.nexusmods.com/skyrimspecialedition/mods/19012/) to 1.4
- Updated [Growl](https://www.nexusmods.com/skyrimspecialedition/mods/31245) to 1.4.0
- Added [FreeFlyCam](http://enbseries.enbdev.com/forum/viewtopic.php?p=75209)
- Added [Alternate Conversation Camera](https://www.nexusmods.com/skyrimspecialedition/mods/21220)
- Removed Blush When Aroused SE because it was removed, but added and converted the oldrim version
- Updated [CBBE 3BBB](https://www.nexusmods.com/skyrimspecialedition/mods/30174/) to 1.3
- Added [Experience Patcher](https://www.nexusmods.com/skyrimspecialedition/mods/23589)
- Activated XP for killing in [Experience](https://www.nexusmods.com/skyrimspecialedition/mods/17751)
- Removed DiscordRPC
- More memes
- Removed SL Deadly Drain
- Updated [AddItemMenu](https://www.nexusmods.com/skyrimspecialedition/mods/17563) to 1.12
- Removed Amorous Adventures MCM
- Added [Address Library for SKSE Plugins](https://www.nexusmods.com/skyrimspecialedition/mods/32444)
- Updated [Yes Im Sure](https://www.nexusmods.com/skyrimspecialedition/mods/24898) to 1.4.0
- INI Changes: `fFirstSliceDistance was changed from 2800 to 3500`, `fShadowDistance was changed from 8000 to 10000`, `iShadowMapResolution was changed from 2048 to 4096`
- The Journal menu is now paused so you can go afk
- Replaced Hateful Wenches (custom armor) with vanilla armor because I am fucking lazy
- Fixed outfits for Judgment Wenches

## 0.2.0

**Released at:** `25.02.2020`

**Info**:

This is a big one. **A new game is absolutely required**. The most prominent additions are my conversion of [Thief](https://www.loverslab.com/files/file/4027-thief/) and the poses. I have removed the BodySlide output from the modlist, be sure to read the new [Build BodySlide files](README.md#build-bodyslide-files) section in the readme!

**Changes**:

- Added [I'm Walkin' Here](https://www.nexusmods.com/skyrimspecialedition/mods/27742)
- Added [Rally's Hooks and Saws](https://www.nexusmods.com/skyrimspecialedition/mods/32652)
- Added [Rally's Quill and Inkwell](https://www.nexusmods.com/skyrimspecialedition/mods/32496)
- Added [Rally's Vampire Coffins](https://www.nexusmods.com/skyrimspecialedition/mods/21874)
- Added [Rally's Instruments](https://www.nexusmods.com/skyrimspecialedition/mods/28193)
- Updated [Interesting NPCs](https://www.nexusmods.com/skyrimspecialedition/mods/29194) to 4.3.6
- Added more memes
- More black face bug fixes
- Updated [Legacy of the Dragonborn Patches (Official)](https://www.nexusmods.com/skyrimspecialedition/mods/30980) to 1.8.2
- Added, converted and fixed [Thief](https://www.loverslab.com/files/file/4027-thief/)
- Added `[Redguard](f) - Ariana` CharGen preset
- Hopefully fixed the CTD on opening a book by changing `bBookMenu` from `true` to `false` in the Skyrim Souls ini file (thx Velexia and trawz)
- Added [Interesting NPCs](https://www.nexusmods.com/skyrimspecialedition/mods/29194) 4.3.6 to 4.3.7 hotfix
- Added [Poser Hotkeys SE 1.0.0](https://www.loverslab.com/files/file/5132-poser-hotkeys-se/), [GomaPero Poses SE](https://www.loverslab.com/files/file/4917-gomapero-poses-se/) and [Shocky's Poses Pack SE 1.0.0](https://www.loverslab.com/files/file/5134-shockys-poses-pack-se/)
- Added Expressive Facial Animations for [Female](https://www.nexusmods.com/skyrimspecialedition/mods/19181) and [Male](https://www.nexusmods.com/skyrimspecialedition/mods/19532)
- Added [RUSTIC SOULGEMS](https://www.nexusmods.com/skyrimspecialedition/mods/5785)
- Added [Rudy HQ - More Lights for ENB - Soul Gems](https://www.nexusmods.com/skyrimspecialedition/mods/22704)
- Added [ElSopa - HD Keys](https://www.nexusmods.com/skyrimspecialedition/mods/32707)
- Added [Bijin Family Bodyslides - CBBE and UUNP SE](https://www.nexusmods.com/skyrimspecialedition/mods/16097), resolves Issue [#30](https://github.com/erri120/lotus/issues/30)
- Added [True Wolves of Skyrim](https://www.nexusmods.com/skyrim/mods/59174)
- Added Minidress CBBE 3BBB Conversion by Nechrion#0145, also resolved Issue [#29](https://github.com/erri120/lotus/issues/29)
- Fixed that stupid Werewolf CTD
- Added some 2B Animations
- Added 2B BodySlide preset
- Updated [CBBE](https://www.nexusmods.com/skyrimspecialedition/mods/198) to 1.5.5
- Updated [Amorous Adventures - MCM Addon](https://www.nexusmods.com/skyrimspecialedition/mods/23368) to 3.1
- Re-added [GK Follower SE Core Files](https://www.nexusmods.com/skyrimspecialedition/mods/26015)
- Replaced Pandorable Serana with [GK Serana and Valerica](https://www.nexusmods.com/skyrimspecialedition/mods/25982)
- Added [GK Housecarl Replacer](https://www.nexusmods.com/skyrimspecialedition/mods/26037)
- Added [HG Hairdos](https://www.loverslab.com/files/file/7768-hg-hairdos/)
- Updated [ABC](https://www.loverslab.com/files/file/7556-animated-beasts-cocksabc-for-users-le-se/) to 1.42

## 0.1.2

**Released at**: `19.02.2020`

**Info**:

Mostly just a hotfix because I fucked up on some paths.

**Changes**:

- Updated FNIS XXL to 7.6
- Updated FNIS Creatures to 7.6
- Fixed the BodySlide paths
- Replaced Amorous Adventures MCM esp with the esl version
- Removed Rally's Brooms
- Added Rally's Farming Tools (contains the Rally's Brooms textures)
- Fixed Wenches Black Face Bug

## 0.1.1

**Released at**: `18.02.2020`

**Info**:

Old save from `0.1.0` should be compatible.

**Changes**:

- Changed BesEssMNCPatch to Form 44
- Updated DX Witch Hunter Armor - UNP to 1.2
- Updated DX Witch Hunter Armor - SSE CBBE BodySlide to 1.2
- Updated BakaFactory ABC to 1.41V
- Updated Glorious Doors of Skyrim SE to 1.02
- Updated Nether's Follower Framework to 2.6.0b
- Updated Legacy of the Dragonborn to 5.0.30
- Applied KS Hairs to BesEss NPCs
- Added Rudy HQ - Hay SE because I saw vanilla hay and had to vomit
- Updated Storm Lighting to 1.4.4
- Added Project Dova-Hen
- Added Project Dova-Hen - Alternate Chicken
- Updated Ultimate Combat to 3.5
- Added Rally's Brooms
- Fixed more NPC black face bugs
- Fixed broom mesh not receiving shadows (thx King and dave)
- Converted Veronica's body and outfit to CBBE
- Added 4k Cowhide

## 0.1.0

**Released at**: `17.02.2020`

**Info**:

A new game is absolutely required!

**Changes**:

- Removed EEK Whiterun
- Fixed Issue [#18](https://github.com/erri120/lotus/issues/18)
- Fixed Issue [#19](https://github.com/erri120/lotus/issues/19)
- Fixed Issue [#20](https://github.com/erri120/lotus/issues/20)
- Removed Marvelous Windhelm Gate SE
- Removed Epic Gate of Whiterun SE
- Removed Glorious Solitude Door SE
- Removed Magnificent Riften Mistveil Keep Door SE
- Removed Glorious Solitude Door Replacer SE
- Removed Magnificent Riften Door Replacer SE
- Removed Marvelous Windhelm Door Replacer SE
- Removed Fortified and Animated Fort Doors SE
- Removed Gorgeous Ruin Door SE
- Added Glorious Doors of Skyrim (GDOS)
- Removed Luminosity
- Added Relighting Skyrim
- Fixed Issue [#23](https://github.com/erri120/lotus/issues/23)
- Updated the MO2 theme (changed the fonts)
- Fixed Issue [#17](https://github.com/erri120/lotus/issues/17)
- Fixed Issue [#1](https://github.com/erri120/lotus/issues/1), again
- You can now dodge in first person. TK Dodge overwrites AGO meaning the bow placement is vanilla but you can dodge
- Replaced GK Serana with Pandorable's Serana
- Updated Nether's Follower Framework to 2.6.0
- Added The Witcher Caranthir by Rektas, TAL
- Updated Fix Note icon for SkyUI to 1.2
- Fixed Issue [#9](https://github.com/erri120/lotus/issues/9), again
- Updated Amorous Adventures - MCM Addon to 3.0
- Fixed Issue [#26](https://github.com/erri120/lotus/issues/26)

## 0.0.2

**Released at**: `15.02.2020`

**Info**:

Update hoping to fix the SLF download.

**Changes**:

- Removed SimpleAddItems
- Updated SexLabFramework to the new hotfix Beta 8
- Updated SexLab Solutions to 1.0.2
- Fixed Issue [#12](https://github.com/erri120/lotus/issues/12)
- Fixed Issue [#13](https://github.com/erri120/lotus/issues/13)
- Fixed Issue [#15](https://github.com/erri120/lotus/issues/15)
- Updated BakaFactory ABCs to 1.40V

## 0.0.1: Initial Release

**Released at**: `14.02.2020`

**Info**:

This is the initial release of the Modlist.

**Changes**:

- Added **everything**


text:
# Slot: procedure

URI: [https://w3id.org/linkml/tests/kitchen_sink/procedure](https://w3id.org/linkml/tests/kitchen_sink/procedure)

<!-- no inheritance hierarchy -->

## Properties

 * Range: ProcedureConcept

## Identifier and Mapping Information

repository: linkml/linkml

branch_name: refs/heads/main

extension: md

gha_language: Python

license_type: permissive

repo_name: linkml/linkml


text:
The goal of this repository is to get the DynamoDB table names to be shorter when developing locally, and expanded whenever deployed.

For example:

Locally:

- PETS_TABLE: pets
- USERS_TABLE: users

Deployed:

- PETS_TABLE: service-stage-pets
- USERS_TABLE: service-stage-users

The trouble though is that the config.js file will need to be called in each repositories `serverless.yml`

Also note, that it reads from the `provider.stage`

```sh
SLS_DEBUG=* sls invoke local --function hello
```

Notes:
- https://serverless.com/framework/docs/providers/aws/guide/variables#reference-properties-in-serverlessyml
- https://serverless.com/framework/docs/providers/aws/guide/variables/#reference-variables-in-javascript-files

license: MIT

repository: aizatto/serverless-prototypes

branch_name: refs/heads/master

gha_license_id: MIT

repo_name: aizatto/serverless-prototypes


text:
A Pixel is the smallest unit that can be addressed on the screen. On
Windows and Linux, a custom screen resolutions is 1024x768 pixels. This
means, the entire screen is created from 1024 columns and 768 rows,
summing up to 786432 single pixels.

Pixel 0,0 would be in the top left corner, Pixel 512,382 would be one of
the four pixels in the center of the screen and Pixel 1023,767 would be
the bottom right.

On a 15" Monitor, a single pixel would measure about 0.3 millimeters on
the screen.

repository: DivHub/pixtudio-website

repo_name: DivHub/pixtudio-website


text:
# SilverStripe chec.io integration

[![Build Status](https://scrutinizer-ci.com/g/fspringveldt/silverstripe-checio-integration/badges/build.png?b=master)](https://scrutinizer-ci.com/g/fspringveldt/silverstripe-checio-integration/build-status/master)
[![scrutinizer](https://scrutinizer-ci.com/g/fspringveldt/silverstripe-checio-integration/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/fspringveldt/silverstripe-checio-integration/)

## Introduction

This module adds a `[BuyNow][/BuyNow]` shortcode to the SilverStripe CMS which can integrate with [chec.io](https://chec.io)

## Requirements

 * SilverStripe 3.2+

## Installation

 ```sh
 $ composer require fspringveldt/checio-integration
 ```

 ### Loading the chec.io javascript

 This extension automatically tries to load the chec.io javascript file, but for some reason should your active template block requirements, `ChecIOExtension::getChecIOJs()` fetches and loads this
 javascript content inline for you.

 Placing this before the closing body tag (e.g. `$ChecIOJs</body>`) in either your mysite or themes' templates/Page.ss ensures that it always
 gets loaded.

## Usage

The below short code should be placed in your the content section of your CMS page editor window

`[BuyNowButton,data-chec-product-id="<your product id>",class="btn"]<your button text>[/BuyNowButton]`

replacing `<your product id>` with your chec.io product id and `<your button text>` with the text you want displayed in your button/link.

## Maintainer

Franco Springveldt -<EMAIL_ADDRESS>
## License

This module is licensed under the [MIT license](LICENSE).

gha_language: PHP


text:
# Udacity Portfolio Exercise: Starbucks Home Assignment

This goal of this Udacity portfolio exercise was to classify Starbucks customers to decide who is going to receive a promotion. Only those customers, that are most likely to purchase the product, should receive the promotion.

## Installation

No installation needed, you can simply download the repository from GitHub.

## Project motivation

This exercise was part of Udacity's Data Science online course and situated at the end of some lessons about experimental design and A/B testing. No solution was provided.

The two metrics to be maximized are Incremental Response Rate (IRR) and Net Incremental Revenue (NIR). Read more about there description and computation in the notebook's introductory text.

## Data

Quoting the introductory text of the notebook:

> The dataset you will be provided in this portfolio exercise was originally used as a take-home assignment provided by Starbucks for their job candidates. The data for this exercise consists of about 120,000 data points split in a 2:1 ratio among training and test files.

## How to interact

Interestingly, I found that applying StandardScaler worsed the IRR and NIR for KNeighbors. I would like to try other classifiers (SVM, Randomforest), to see if IRR and NIR improve. If you have any ideas about this, every contribution is welcome.

## Acknowledgments

Thanks to Starbucks for providing the data and to Udacity for providing initial information and comments.

## Author

Maximilian Müller, Business Development Manager in the Renewable Energy sector. Now diving into the field of data science.

## License

Copyright 2020 Maximilian Müller

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

From opensource.org


text:
TRIVIAL-FEATURES
================

This is a first *draft* of a description of what symbols should be
present in `CL:*FEATURES*` for various platforms.  A possible future
direction of this documentation might be a CDR document, if it turns
out to be a good idea.  (Making the language of this document much
more precise will be necessary then.)

We will start by limiting ourselves to OS, CPU and endianness features
on Windows and POSIX platforms.

There are various possible implementation strategies ranging from null
implementations (when the host Lisp already pushes the wanted feature)
to using FFI (e.g. calling uname() to grab system information.

Specification
-------------

### ENDIANNESS

Either `:LITTLE-ENDIAN` or `:BIG-ENDIAN` should present in
`\*FEATURES\*`.  For the time being, we will not concern ourselves
with other orderings, switchable endianness, etc.

### OPERATING SYSTEM

On Windows, `:WINDOWS` should be present in `*FEATURES*`.

On POSIX systems, the "sysname" information from uname(3) should be
used to push the appropriate symbol to `*FEATURES*` by upcasing that
string (or downcasing for the "modern" lisps) and interning it in the
keyword package.

Examples:

  - `:DARWIN`
  - `:LINUX`
  - `:NETBSD`
  - `:OPENBSD`
  - `:FREEBSD`
  - `:SUNOS`

For convenience, `:UNIX` should be pushed when running on
POSIX/UNIX-like operating system (that doesn't include Windows) and
`:BSD` should be present when running on BSD-based systems (that
includes Darwin)

[add `:MACH` too?]

### CPU

These features should be mutually exclusive:

  - `:X86`
  - `:X86-64`
  - `:PPC`
  - `:PPC64`
  - `:MIPS`
  - `:ALPHA`
  - `:SPARC`
  - `:SPARC64`
  - `:HPPA`
  - `:HPPA64`
  - `:ARM`
  - `:ARM64`

[add more ...]

[note: it's debatable whether `:X86` shouldn't also be exported on
x86-64, and `:PPC` on ppc64.  SBCL doesn't.  Other ways
to handle, for example, the x86/x86-64 case would be to export
something like `:PC386` in both cases or have an additional `:X86-32`. Or
finally, have just `:X86`, `:PPC`, etc, and add `:32-BIT-CPU` and
`:64-BIT-CPU` features.]

### Register Size
These features denote the size of a register on the CPU and are mutually exclusive.

  - `:64-bit`
  - `:32-bit`

Unreferenced References
-----------------------

  * [CLHS: Variable \*FEATURES\*][1]
  * [Maintaining Portable Lisp Programs][2], by Christophe Rhodes

[1]: http://www.lispworks.com/documentation/HyperSpec/Body/v_featur.htm
[2]: http://www-jcsu.jesus.cam.ac.uk/~csr21/papers/features.pdf

repository: trivial-features/trivial-features

gha_language: Common Lisp

repo_name: trivial-features/trivial-features


text:
GET LIST FILES ACTIVITIES

GET LIST FILES KEY ON AMAZON S3.

This Activities requires AWSSDK.Core.dll, AWSSDK.S3.dll. https://aws.amazon.com/sdk-for-net/?nc1=h_ls

Output: List Files / Error

MANDATORY FIELDS WHEN GET LIST Files:

a. Access Key: How to get: Bellow

b. Secrey Key: How to get: Bellow.

c. Bucket Name: The bucket's name contains the files.

d. Region: The region of bucket.

How to find AWS Access Key and Secret Access Key?

-- Answer:

In order for MigrationWiz to access your Amazon Web Services (AWS) account automatically, the Access Key and the Secret Access Key are required. The Access Key and the Secret Access Key are not your standard user name and password, but are special tokens that allow our services to communicate with your AWS account by making secure REST or Query protocol requests to the AWS service API.

To find your Access Key and Secret Access Key:

Log in to your AWS Management Console.
Click on your user name at the top right of the page.
Click on the Security Credentials link from the drop-down menu.
Find the Access Credentials section, and copy the latest Access Key ID.
Click on the Show link in the same row, and copy the Secret Access Key.

repository: Ayehu/custom-activities

path: /Amazon S3/AWSListFiles/README.md

gha_language: C#

repo_name: Ayehu/custom-activities


text:
# hibernate-demos

This repository contains demos used live during presentations; The following demos are currently available:

* Hibernate ORM
 * _Basic_: simple comparison between JDBC, ORM, and JPA
 * _Fetching Strategies_: "when" (laziness) and "how" (fetch style)
 * _Value Generation_: annotations allowing in-memory and DB generated properties, both for INSERT and INSERT/UPDATE actions
 * _Multi-Tenancy_: multiple, concurrent databases and clients from a single Hibernate instance
 * _Caching_: entity second level cache (2LC) and query cache
 * _Envers_: historical/audited data
 * _Spatial_: geographical data
* Hibernate OGM
 * _hiking-demo_: Demo project used for the talk "Hibernate OGM: Talking to NoSQL in Red Hat JBoss EAP" presented at Red Hat Summit 2014. It shows how to use MongoDB as data store in a Java EE application through JPA / Hibernate OGM.

## License

If not stated otherwise, the demos are licensed under the Apache License, Version 2.0 (see https://www.apache.org/licenses/LICENSE-2.0). Refer to the headers of individual files for specific license and copyright information, in particular of included library files.

repository: advanced-programs/hibernate-guides

repo_name: advanced-programs/hibernate-guides


text:
---
title: 'Creating consensus fasta using iupac codes'
date: 2018-10-27
permalink: /posts/2018/10/iupac-fasta/
tags:
  - vcf
  - fasta
---

Fasta files can be generated from vcf calls. There are two ways of doing that: (1) concatenate snips together (this can be done using either variants only or calling monomarphic (hom ref) variants as well and concatenating them too); (2) use reference genome as a backbone and incorporate variants into the reference. To incorporate information about heterozygotes, IUPAC substitution codes can be used. Here is a collection of scripts available:

#### Using fasta reference
* the best and most convenient way: (allows to choose a sample from multiVCF and BED mask)
```bash
bcftools consensus --iupac-codes --sample --mark
```
* [vcf2fasta.py](https://github.com/stsmall/Wb_Genome_L3/blob/79b2f4a3b9f564830f8e80a048d5f1b2ea1846a7/vcf2fasta.py) - phased only
* For GATK fans: [FastaAlternateReferenceMaker](https://software.broadinstitute.org/gatk/documentation/tooldocs/3.8-0/org_broadinstitute_gatk_tools_walkers_fasta_FastaAlternateReferenceMaker.php).

#### No reference
* [seqTools vcf2fasta](https://github.com/jsharbrough/seqTools)
* [VCF2FASTA_IUPACcoding.r](https://github.com/thomasblankers/popgen/blob/master/VCF2FASTA_IUPACcoding.r) - something complicated that can be adapted to your needs.
* [VCF-to-Tab_to_Fasta_IUPAC_Converter.py](https://github.com/uribe-convers/Vitis_Phylogenomics/blob/master/src/VCF-to-Tab_to_Fasta_IUPAC_Converter.py) - this code can be used on BSNP file. Keep in mind, that if you need to filter out transitions (in case of aDNA) and you use BSNP output, you need a reference to see wich substitutions are transitions. Thus, additional masking is needed.
* [freebayes_vcf2fa.py](https://github.com/mgharvey/misc_python/blob/master/bin/freebayes_vcf2fa.py) - freebayes only


text:
# go-vboxapi
[![GoDoc][godoc]](https://godoc.org/github.com/blacktop/go-vboxapi)
![License][license]

Go interface to VirtualBox's remote [API](https://www.virtualbox.org/sdkref/)

### Credits
 - Big shout out to [@md5](https://github.com/md5) whose project [go-virtualboxclient](https://github.com/appropriate/go-virtualboxclient) is completely the inspiration for this.
 - Thanks to [@clintonskitson](https://github.com/clintonskitson) for all his work on @md5's project as well with Pull Requests #2 and #3.

[godoc]: https://godoc.org/github.com/blacktop/go-vboxapi?status.svg
[license]: https://img.shields.io/github/license/blacktop/go-vboxapi.svg

repository: blacktop/go-vboxapi

repo_name: blacktop/go-vboxapi


text:
# Next.js + Docker + TypeScript + lint

Starter TypeScript template for [Learn Next.js](https://nextjs.org/learn) with Docker and linting. Using Docker setup from [https://dev.to/chrsgrrtt/dockerising-a-next-js-project-1ck5](https://dev.to/chrsgrrtt/dockerising-a-next-js-project-1ck5).

# Install

Run docker-compose to spin up the services:

```
docker-compose build
```

# Installing new dependencies

New dependencies can be installed using the `npm` service, which will install the dependencies on the volume shared with `dev` service:

```
docker-compose run npm i -s moment
```

# VS Code settings

If you need `node_modules` on the host to enable formatting and linting in VS Code, you will need to also install the dependencies on the host:

```
npm install
```

In VS Code, `Ctrl + Shift + P` > `Preferences: Open Settings (JSON)`; add these items:

```json
"[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"eslint.validate": ["typescript", "typescriptreact"],
"editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
}
```

# Run dev

Run the `dev` service:

```
docker-compose up dev
```

Next.js runs at [http://localhost:3000](http://localhost:3000).


text:
---
title: "Update deviceRegistrationPolicy"
description: "Update the properties of a deviceRegistrationPolicy object."
author: "myra-ramdenbourg"
ms.localizationpriority: medium
ms.prod: "directory-management"
doc_type: apiPageType
---
# Update deviceRegistrationPolicy

Namespace: microsoft.graph

> [!IMPORTANT]
> APIs under the `/beta` version in Microsoft Graph are subject to change. Use of these APIs in production applications is not supported. To determine whether an API is available in v1.0, use the **Version** selector.

Update the properties of a [deviceRegistrationPolicy](../resources/deviceregistrationpolicy.md) object. Represents deviceRegistrationPolicy quota restrictions, additional authentication, and authorization policies to register device identities to your organization.

## Permissions

One of the following permissions is required to call this API. To learn more, including how to choose permissions, see [Permissions](/graph/permissions-reference).

|Permission type|Permissions (from least to most privileged)|
|:---|:---|
|Delegated (work or school account)|Policy.ReadWrite.DeviceConfiguration|
|Delegated (personal Microsoft account)|Not supported|
|Application|Not supported|

When calling on behalf of a user, the user needs to belong to the following [Azure AD roles](/azure/active-directory/roles/permissions-reference):
+ Global administrator
+ Cloud device administrator

## HTTP request

<!-- {
  "blockType": "ignored"
}
-->
```http
PUT /policies/deviceRegistrationPolicy
```

## Request headers

|Name|Description|
|:---|:---|
|Authorization|Bearer {token}. Required.|
|Content-Type|application/json. Required.|

## Request body

In the request body, supply *only* the values for properties that should be updated. Existing properties that are not included in the request body will maintain their previous values or be recalculated based on changes to other property values.

The following table specifies the properties that can be updated.

|Property|Type|Description|
|:---|:---|:---|
|userDeviceQuota|Int32|Specifies the maximum number of devices that a user can have within your organization before blocking new device registrations. |
|multiFactorAuthConfiguration|multiFactorAuthConfiguration|Specifies the authentication policy for a user to complete registration using Azure AD Join or Azure AD registered within your organization. Possible values are: `notRequired` or `required`. |
|azureADRegistration|[azureADRegistrationPolicy](../resources/azureadregistrationpolicy.md)|Specifies the authorization policy for controlling registration of new devices using Azure AD registration within your organization. Required. For more information, see [What is a device identity?](/azure/active-directory/devices/overview). If Intune is enabled this property cannot be modified.|
|azureADJoin|[azureAdJoinPolicy](../resources/azureadjoinpolicy.md)|Specifies the authorization policy for controlling registration of new devices using Azure AD Join within your organization. Required. For more information, see [What is a device identity?](/azure/active-directory/devices/overview).|

## Response

If successful, this method returns a `200 OK` response code and an updated [deviceRegistrationPolicy](../resources/deviceregistrationpolicy.md) object in the response body.

## Examples

### Request

<!-- {
  "blockType": "request",
  "name": "update_deviceregistrationpolicy"
}
-->
``` http
PUT https://graph.microsoft.com/beta/deviceRegistrationPolicy
Content-Type: application/json

{
    "id": "deviceRegistrationPolicy",
    "displayName": "Device Registration Policy",
    "description": "Tenant-wide policy that manages intial provisioning controls using quota restrictions, additional authentication and authorization checks",
    "userDeviceQuota": 50,
    "multiFactorAuthConfiguration": "0",
    "azureADRegistration": {
        "appliesTo": "1",
        "isAdminConfigurable": false,
        "allowedUsers": [],
        "allowedGroups": []
    },
    "azureADJoin": {
        "appliesTo": "1",
        "isAdminConfigurable": true,
        "allowedUsers": [],
        "allowedGroups": []
    }
}
```

### Response

>**Note:** The response object shown here might be shortened for readability.
<!-- {
  "blockType": "response",
  "truncated": true,
<EMAIL_ADDRESS>"microsoft.graph.deviceRegistrationPolicy"
}
-->
``` http
HTTP/1.1 200 OK
Content-Type: application/json

{
<EMAIL_ADDRESS>"https://graph.microsoft.com/beta/$metadata#deviceRegistrationPolicy",
    "id": "deviceRegistrationPolicy",
    "displayName": "Device Registration Policy",
    "description": "Tenant-wide policy that manages intial provisioning controls using quota restrictions, additional authentication and authorization checks",
    "userDeviceQuota": 50,
    "multiFactorAuthConfiguration": "0",
    "azureADRegistration": {
        "appliesTo": "1",
        "isAdminConfigurable": false,
        "allowedUsers": [],
        "allowedGroups": []
    },
    "azureADJoin": {
        "appliesTo": "1",
        "isAdminConfigurable": true,
        "allowedUsers": [],
        "allowedGroups": []
    }
}
```

repository: microsoftgraph/msgraph-beta-sdk-dotnet

gha_license_id: NOASSERTION

repo_name: microsoftgraph/msgraph-beta-sdk-dotnet


text:
# 73. Set Matrix Zeroes

[Description](https://leetcode.com/problems/set-matrix-zeroes/description/) |
[Discuss](https://leetcode.com/problems/set-matrix-zeroes/discuss/) |
[Solution](https://leetcode.com/problems/set-matrix-zeroes/solution/)

## Description

Given a _m_ x _n_ matrix, if an element is 0, set its entire row and column to 0. Do it in place.

**Follow up:**

Did you use extra space?

A straight forward solution using O(_m_*_n_) space is probably a bad idea.

A simple improvement uses O(_m_ + _n_) space, but still not the best solution.

Could you devise a constant space solution?

gha_language: Go


text:
# FAQ on Cluster Bootstrapping

## x509: certificate signed by unknown authority when deploying Management Cluster from Windows

Upon completion of [Install Tanzu Community Edition](getting-started) steps for Windows, you may encounter the following when performing `tanzu management-cluster create --ui`:

```powershell
PS > tanzu management-cluster create --ui
Downloading TKG compatibility file from 'projects.registry.vmware.com/tkg/framework-zshippable/tkg-compatibility'
Error: unable to ensure prerequisites: unable to ensure tkg BOM file: failed to download TKG compatibility file from the registry: failed to list TKG compatibility image tags: Get "https://projects.registry.vmware.com/v2/": x509: certificate signed by unknown authority
Usage:
  tanzu management-cluster create [flags]
  ...
```

To workaround this, edit `%USERPROFILE%\.config\tanzu\tkg\config.yaml` with the following, then retry management cluster setup:

```yaml
release:
    version: ""
TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY: true
```

|||
|:---------------- | --- |
|Bootstrap platform| Windows |
|Target platform   | Any |
|Affected versions | v0.2.1 |

repository: enj/community-edition

repo_name: enj/community-edition


text:
# 2048 (Java)
AP CS Final project - 2048 implemented in Java with save/load features

Press `S` to save game
Press `L` to load saved game
Press `R` to restart the game
Use the `Directional Arrows` to move the tiles


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

# Webpackets::Rails

Manage your static assets with Webpack in your Rails application and turn
```
//= require jquery
```
 into this:

 ```javascript
 var App = require('./app')
 ```

## Installation

:warning: Not production ready, but if you want to play around:

```ruby
gem `webpackets`, git: 'https://github.com/silppuri/webpackets/'
```

Then run the generator:
```
rails generate webpackets:install
```
This will search for the `package.json`, install the required depedencies and copy a default `webpack.config.js` file and replace the old `application.js` with a new one.

After this the webpackets is ready for usage!

## Usage

For every entry in `webpack.config.js` file you can use `javascript_include_tag` in your templates:

With the usual rails default directory structure:
```
app
|-- assets
|    |-- javascripts
|    |    |-- application.js
|    |    |-- boot.js
| ...
|
webpack.config.js
```

In the webpack's config file with the entries defined:
```
// webpack.config.js
var config = {
  entry: {
    application: './app/assets/javascripts/application.js',
    boot: './app/assets/javascripts/boot.js'
  }
};
```

```javasript
// application.js
console.log("Hello Webpackets")
```

```javasript
// boot.js
console.log("Wat?")
```

With the normal Rails template `application.html.erb`
```erb
<%= javascript_include_tag 'application' %>
<%= javascript_include_tag 'boot' %>
```

When running the `rails server` command the webpack starts its development server and serves the files from there. And now in the console at `localhost:3000` we can se that this works like a charm:

```
>> Hello Webpackets
>> Wat?
```

### CSS

This does not yet take CSS into account, but with some configuration you can make it work: [Webpack's css instructions](https://webpack.github.io/docs/stylesheets.html)

## Development

TODO:

- [ ] precompile tasks
- [ ] production

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/silppuri/webpackets.

## License

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

repository: silppuri/webpackets

repo_name: silppuri/webpackets


text:
# HTML5 TicTacToe
Another practice of HTML5 & Javascript.

~~DOES NOT SUPPORT MOBILE DEVICES because it was not included in the original design.~~

Err...well, actually it supports mobile platform, but due to its original purpose that was not for mobile, users won't get best UX during play.

## How to Play
download this repository in whatever ways you want and open index.html to start playing.

Or you can play it online [here](http://zushenyan.github.com/HTML5-TicTacToe).

## Change Log
* v2.0 (2015/9/3)
	* rewritten the structure with TypeScript & ES6 standard.
* v1.9 (2015/9/2)
	* redesigned the original structure with RequireJs. Now HTTP request for the media won't request again when a chess is placed, only request once when the script was loaded.
* v1.2 (2013/2/18)
	* fix the bug sound won't play on IE on placing the chess.
* v1.15 (2013/2/17)
	* doing nothing, steady build.
* v1.1 (2013/2/16)
	* fix sound can't play on Firefox.
	* add a very simple FPS meter.
	* change drawing method from window.setInterval to requestAnimationFrame.
	* fix a bug which will cause the game runs slower gradually.
* v1.0 (2013/2/16)
	* initial version.

## Media Resource
[writing.wav](https://github.com/zushenyan/HTML5-TicTacToe/blob/master/resource/writing.wav) is coming from [freesound.org](http://www.freesound.org/people/braffe2/sounds/83746/) by braffe2, and the rest of images are drawn by myself.

## Licence
MIT Licence
> Copyright (C) 2013 Andrew Yan
>
> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
>
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
>
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


text:
# 0/1 Knapsack Problem (using BRANCH & BOUND)

## Problem:

1. Given two integer arrays val[0..n-1] and wt[0..n-1] that represent values and weights associated with n items respectively.
2. Find out the maximum value subset of val[] such that sum of the weights of this subset is smaller than or equal to Knapsack capacity W.
3. We have ‘n’ items with value v1 , v2 . . . vn and weight of the corresponding items is w1 , w2 . . . Wn . Max capacity is W .
4. We can either choose or not choose an item. We have x1 , x2 . . . xn. Here xi = { 1 , 0 }. xi = 1 , item chosen xi = 0 , item not chosen.

## Why Branch And Bound?
- Greedy approach works only for fractional knapsack problem.
- If weights are not integers , dynamic programming will not work.
- There are 2n possible combinations of item , complexity for brute force goes exponentially.

## Algorithm:
1. Sort all items in decreasing order of ratio of value per unit weight so that an upper bound can be computed using Greedy Approach.
2. Initialize maximum profit, maxProfit = 0
3. Create an empty queue, Q.
4. Create a dummy node of decision tree and enqueue it to Q.
   Profit and weight of dummy node are 0.
5. Do following while Q is not empty.
	- Extract an item from Q. Let the extracted item be u.
	- Compute profit of next level node. If the profit is more than maxProfit, then update maxProfit.
	- Compute bound of next level node. If bound is more than maxProfit, then add next level node to Q.
	- Consider the case when next level node is not considered as part of solution and add a node to queue with level as next,
	   but weight and profit without considering next level nodes.

repository: ZoranPandovski/al-go-rithms

path: /dp/Branch And Bound/0_1 Knapsack/README.md

gha_language: Jupyter Notebook

repo_name: ZoranPandovski/al-go-rithms


text:
---
title: A New Phase of the U.S.-China Trade War
content_type: interactive
show_image_on_single_post: false
date: 2018-09-21 00:00:00 +0000
series:
- _series/trends-in-trade.md
keywords:
- _keywords/china.md
- _keywords/tariffs.md
excerpt: 'The Trump administration has opened a new chapter in its trade war with
  China.      '
notes: ''
authors:
- _authors/jack-caporal.md
image: "https://res.cloudinary.com/csisideaslab/image/upload/v1563298002/trade-guys/301_tariffs_5Web.gif"
image_caption: ''
image_credit: CSIS iDeas Lab

---
The Trump administration opened a new chapter in its trade war with China this week, announcing that it will impose a 10 percent tariff on an additional $200 billion worth of Chinese imports on September 24. Those tariffs will hike up to 25 percent on January 1, 2019, if China does not meet U.S. demands. Beijing has pledged to fire back with tariffs on $60 billion worth of U.S. imports.

![](https://res.cloudinary.com/csisideaslab/image/upload/v1563298002/trade-guys/301_tariffs_5Web.gif)

Once the next tranche of tariffs are imposed, 6,832 Chinese products and 6,411 U.S. products will be covered.

gha_language: HTML


text:
[![INFORMS Journal on Computing Logo](https://INFORMSJoC.github.io/logos/INFORMS_Journal_on_Computing_Header.jpg)](https://pubsonline.informs.org/journal/ijoc)

# A Polyhedral Study on Fuel-Constrained Unit Commitment

This repository includes the data set and code used in the computational experiments of the paper: [A Polyhedral Study on Fuel-Constrained Unit Commitment](https://doi.org/10.1287/ijoc.2022.1235), which is co-authored by Kai Pan, Ming Zhao, Chung-Lun Li, and Feng Qiu.

This archive is distributed in association with the [INFORMS Journal on
Computing](https://pubsonline.informs.org/journal/ijoc) under the [MIT License](LICENSE).

<!---
# CacheTest

The software and data in this repository are a snapshot of the software and data
that were used in the research reported on in the paper
[This is a Template](https://doi.org/10.1287/ijoc.2021.0934) by T. Ralphs.
The snapshot is based on
[this SHA](https://github.com/tkralphs/JoCTemplate/commit/f7f30c63adbcb0811e5a133e1def696b74f3ba15)
in the development repository.

**Important: This code is being developed on an on-going basis at
https://github.com/tkralphs/JoCTemplate. Please go there if you would like to
get a more recent version or would like support**
--->

## Cite

To cite this software, please cite the [paper](https://doi.org/10.1287/ijoc.2021.0219) using its DOI and the software itself, using the following DOI.

[![DOI](https://zenodo.org/badge/517175442.svg)](https://zenodo.org/badge/latestdoi/517175442)

Below is the BibTex for citing this version of the code.

```
@article{kaipanuc2022,
  author =        {Pan, Kai and Zhao, Ming and Li, Chung-Lun and Qiu, Feng},
  publisher =     {INFORMS Journal on Computing},
  title =         {A Polyhedral Study on Fuel-Constrained Unit Commitment},
  year =          {2022},
  doi =           {10.5281/zenodo.6896199},
  url =           {https://github.com/INFORMSJoC/2021.0219},
}
```

<!---
## Description

The goal of this software is to demonstrate the effect of cache optimization.

## Building

In Linux, to build the version that multiplies all elements of a vector by a
constant (used to obtain the results in [Figure 1](results/mult-test.png) in the
paper), stepping K elements at a time, execute the following commands.

```
make mult
```

Alternatively, to build the version that sums the elements of a vector (used
to obtain the results [Figure 2](results/sum-test.png) in the paper), stepping K
elements at a time, do the following.

```
make clean
make sum
```

Be sure to make clean before building a different version of the code.

## Results

Figure 1 in the paper shows the results of the multiplication test with different
values of K using `gcc` 7.5 on an Ubuntu Linux box.

![Figure 1](results/mult-test.png)

Figure 2 in the paper shows the results of the sum test with different
values of K using `gcc` 7.5 on an Ubuntu Linux box.

![Figure 1](results/sum-test.png)

## Replicating

To replicate the results in [Figure 1](results/mult-test), do either

```
make mult-test
```
or
```
python test.py mult
```
To replicate the results in [Figure 2](results/sum-test), do either

```
make sum-test
```
or
```
python test.py sum
```

## Ongoing Development

This code is being developed on an on-going basis at the author's
[Github site](https://github.com/tkralphs/JoCTemplate).

## Support

For support in using this software, submit an
[issue](https://github.com/tkralphs/JoCTemplate/issues/new).
--->


text:
summary: Clean - The Screen and Presenter
id: clean_screen_presenter
categories: Mobile Development with Flutter
tags: Scerrn, UI, Presenter, Test, Widget Test
status:  Active
authors: Alireza Khakpour

<style>
r { color: Red }
o { color: Orange }
g { color: Green }
</style>

# Clean - The Screen and Presenter

## Introduction

![Presentation Layer](clean_screen_presenter/introduction_img.png)

- **Feature Widget** : Creates `BLoC` and associated a Presenter to the `BLoC`
- **Presenter** : Creates Screen based on `BuildContext`, `BLoC`, and `ViewModel`
- **Screen** : The actual UI widget being present for the specific Use Case and This is where the view model will map the data to the UI

## Feature Widget

![Presentation Layer](clean_screen_presenter/feature_widget_directory.png)

**Feature Widget**
: is a `StatelessWidget` that describes the feature user interface by initializing the BLoc and associate a presenter to the `BLoC`.

><g> To implement a feature we should initialize the feature widget through a route path or in a hub list.

```dart
    class ExampleWidget extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return BlocProvider<ExampleBloc>(
          create: (_) => ExampleBloc(),
          child: ExamplePresenter(),
        );
      }
    }
```

## Presenter

![Presentation Layer](clean_screen_presenter/presenter_directory.png)

**Presenter** creates three different state of the screen such as Loading Screen, Error Screen and Screen, also manages all screen actions

```dart
    class ExamplePresenter extends Presenter<ExampleBloc, ExampleViewModel, ExampleScreen>  {

        @override
        ExampleScreen buildScreen(BuildContext context, ExampleBloc  bloc, ExampleViewModel viewModel) {...

        @override
        Stream<DepositCheckCardViewModel> getViewModelStream (ExampleBloc bloc) {...

        @override
        Widget buildLoadingScreen(BuildContext context) {...

        @override
        Widget buildErrorScreen(BuildContext context, Object? error) {...
    }
```

 `getViewModelStream` Method
  : `BLoc` listener handle view model changes

  `buildLoadingScreen` Method
  : Creat the loading screen

  `buildErrorScreen` Method
  : Creat error screen

  `buildScreen` Method
  : Creat the screen by passing associated `viewModel`

```dart
      @override
      DepositCheckCardScreen buildScreen(BuildContext   context,
          ExampleBloc bloc, ExampleViewModel  viewModel) {
        return ExampleScreen(
          viewModel: viewModel,
          pressenterActions: ExamplePressenterActions(),
        );
      }
```
All screen action could handle in a separated action class

```dart
    class ExamplePressenterActions {

      DepositCheckCardPressenterActions();

      navigateToDetail(BuildContext context) {
        CFRouterScope.of(context).push(Router.detailRoute);
      }
    }
```

## Screen

![Presentation Layer](clean_screen_presenter/screen_directory.png)

Screen or UI widget presents the specific Use Case base on `ViewModel`.

> <g> All action on the screen should handle through presenterAction

```dart
    class ExampleScreen extends Screen {
        final ExampleViewModel viewModel;
        final ExamplePressenterActions pressenterActions;

        ExampleScreen(
          {required this.viewModel, required this.pressenterActions});

        @override
        Widget build(BuildContext context) {...

    }
```

## How To Test UI

1. Add the flutter_test dependency.
2. Create a widget to test.
3. Create a `testWidgets` test.
4. Build the widget using the `WidgetTester`.
5. Search for the widget using a `Finder`.
6. Verify the widget using a `Matcher`.

## Widget Test

 The purpose of this test is to ensure every interaction the user makes produces the expected result.

Most common finder method:

  - `find.byKey()` : Finds widgets by searching for one with a particular [Key].
  - `find.byType()` : Finds widgets by searching for widgets with a particular type.
  - `find.text()` : Finds [Text] and [EditableText] widgets containing string equal to the text argument.

Testing TextField:

- `tester.enterText(Finder finder, String text)` : Give the text input widget specified by [finder] the focus and enter [text] as if it been provided by the onscreen keyboard.

Testing Button Action:

- `tester.tap(Finder finder)` : Dispatch a pointer down / pointer up sequence at the center of the given widget, assuming it is exposed.

## Sample Screen Test

- Test should verify back button action on the screen

 1. create a `MockPressenterAction` to cover presenter actions

```dart
    class MockPressenterAction extends Mock implements ExamplePressenterActions {}
```

 2. create a `ExampleViewModel` and pass to screen

 3. create a `MaterialApp` object

```dart
    MaterialApp testWidget = MaterialApp(
      home: ExampleScreen(
          viewModel: exampleViewModel,
          pressenterAction: mockPressenterAction),
    );
```

 4. `pumpWidget` calls runApp, and also triggers a frame to paint the app.

 ```
    await tester.pumpWidget(testWidget);
 ```

 3. Find back button

```
    final finder = find.byKey(Key('Back-Button'));;
```

 4. Tap on back button

```
    await tester.tap(finder);
```

 5. Verify that a method on a mock object was called with the given arguments.

```
verify(mockPressenterAction.popNavigationListener(any)).called(1);
```

## Sample Presenter Test

- Test should pass the appearance of the presenter

 1. create a `MaterialApp` object

 ```dart
    MaterialApp testWidget = MaterialApp(
      home: BlocProvider<ExampleBlockMock>(
        create: (_) => ExampleBlockMock(),
        child: ExamplePresenter(),
      ),
    );
 ```

 2. pumpWidget calls runApp, and also triggers a frame to paint the app.

 ```
    await tester.pumpWidget(testWidget);
 ```

 3. Find `ExamplePresenter` widget

 ```
    final finder = find.byType(ExamplePresenter);
 ```

 4. Expect to find one widget

 ```
    expect(finder, findsOneWidget);
 ```


text:
# Install

## Install the CLI

<!-- CORTEX_VERSION_README x2 -->
```bash
# download CLI version 0.42.1 (Note the "v"):
bash -c "$(curl -sS https://raw.githubusercontent.com/cortexlabs/cortex/v0.42.1/get-cli.sh)"
```

By default, the Cortex CLI is installed at `/usr/local/bin/cortex`. To install the executable elsewhere, export the `CORTEX_INSTALL_PATH` environment variable to your desired location before running the command above.

## Install the CLI and Python client via pip

To install the latest version:

```bash
pip install cortex
```

<!-- CORTEX_VERSION_README x2 -->
To install or upgrade to a specific version (e.g. v0.42.1):

```bash
pip install cortex==0.42.1
```

To upgrade to the latest version:

```bash
pip install --upgrade cortex
```

## Changing the CLI/client configuration directory

By default, the CLI/client creates a directory at `~/.cortex/` and uses it to store environment configuration. To use a different directory, export the `CORTEX_CLI_CONFIG_DIR` environment variable before running any `cortex` commands.

repository: cortexlabs/cortex

repo_name: cortexlabs/cortex


text:
## Aragon Planning Suite - Team

### Quazia — Technical Lead

Arthur is the project lead of the Social Coding circle at [Giveth](https://giveth.io/). He has been practicing budgeting, payroll and range voting methods outlined in this document using spreadsheets with the [RewardDAO](https://medium.com/giveth/how-rewarddao-works-aka-what-are-points-7388f70269a) at Giveth. He graduated with a Bachelor of Science in Computer Science from Rochester Institute of Technology.

**Commitment**:  Full-time

**Socials**:  [Github](https://github.com/quazia)

### Yalda Mousavinia — Product Manager & UI/UX Designer

Yalda has 10 years of experience in product management and UI/UX design. For the past 16 months she has been researching and designing logistics that relate to open source ecosystems and using incentives to promote growth. This research lead her into the concept of DAOs and the founding of [Space Decentral](https://spacedecentral.net), a decentralized autonomous space agency that will be utilizing the toolkit described in this proposal. Prior to Space Decentral, she worked as a Senior Product Manager at Oracle for 2.5 years, on their Enterprise Resource Planning software suite. She has a Bachelor of Science in Mechanical Engineering from UC Berkeley and Astronautical Engineering Certificate from UCLA.

**Commitment**:  20-30 hr/week

**Socials**:  [Github](https://github.com/stellarmagnet) - [LinkedIn](https://www.linkedin.com/in/ymousavinia)

### Radek Zasiadczuk — Full Stack Developer

Radek is a Full Stack Developer for [Space Decentral](https://github.com/spacedecentral/spacedecentral-network). He has also been working as a Senior System Administrator and DevOps Engineer at Oracle for 13 years, where he builds and maintains Data Centres around the world. For the last few years with increasing fascination, he has researched augmenting human collaboration with software, starting with simple project management systems to emerging DAO-style endeavours, operating on non-linear and non-hierarchical principles.

**Commitment**:  20-30 hr/week

**Socials**:  [Github](https://github.com/rkzel) - [LinkedIn](https://www.linkedin.com/in/radoslaw-zasiadczuk-b34a922/)

### Kevin Siegler — Web3 / Smart Contracts

After fostering an enduring fascination with Skunk Works, Kevin obtained a B.S. and M.S. in Mechanical Engineering from Northwestern University with a focus in robotics, and worked 3 years in the aerospace industry as a mechatronics engineer. During that time he was a member of Cobham’s Leadership Development Program. Now he’s pursuing his dream of scaling the field of aerospace globally as a co-founder of Space Decentral and helping to bring the Decentralized Space Agency to the blockchain as a Solidity developer.

**Commitment**:  20 hr / week

**Socials**:  [Github](https://github.com/topocount) - [LinkedIn](https://www.linkedin.com/in/ksiegler/)

### Sean Marquez — Smart Contracts / Testing

Sean began his career in space exploration during his undergrad, at the University of California, Irvine, through active hands-on involvement with a Cube Satellite program. After receiving his bachelor’s degree in Mechanical Engineering, he worked on product development as an associate mechanical design engineer for Max Q Systems, embedded/IoT/robotics projects for tech startups, and numerical simulations as a volunteer for rLoop – a non-profit global think tank that competed in the first SpaceX hyperloop competition.

**Commitment**:  20 hr / week

**Socials**: [Github](https://github.com/capsulecorplab) - [LinkedIn](https://www.linkedin.com/in/sean-marquez/)

### Otto Garcia - Full Stack Developer
Otto is a multidisciplinary self-taught developer and open source lover. He has been focused in the crypto space since 2013, involved into several altcoin community projects and blockchain startups in different fields, from mining pools to PoW algorithms, and lately doing Ethereum and dApps research, blockchain technical education programs, and managing several successful crypto communities in Spain and online with Kybern Systems.

**Commitment**:  30-40 hr / week

**Socials**: [Github](https://github.com/ottodevs) - [LinkedIn](https://www.linkedin.com/in/otto-blockchain/)

repository: aragon/nest

repo_name: aragon/nest


text:
# Setup

Add the [relevant dependency](../#latest-releases) to your project:

```clojure
Leiningen: [http-kit/http-kit               "x-y-z"] ; or
deps.edn:   http-kit/http-kit {:mvn/version "x-y-z"}
```

# Usage

See the [client](./2-Client) or [server](./3-Server) sections for more!

# Tests and benchmarks

http-kit is hacker friendly: it has zero dependencies, and is only ~3.5k lines of code.

```sh
lein repl # Run a local REPL
lein test # Run the unit tests
lein test :benchmark # Run the benchmarks
```

See also the [scripts dir](../../tree/master/scripts) for a few other tools.

repository: http-kit/http-kit

gha_language: Java

repo_name: http-kit/http-kit


text:
# Lab04

**WebReg.Data** project was added to the solution. This is a Class Library (.NET Core) project, which is used for data access logic. It contains a data model, generated from an existing database, and an Entity Framework Core *DbContext* class (`WebRegContext`).

First, make sure that EF Core tool is installed:

> dotnet tool install --global dotnet-ef

Then, add the EF Core and Tools packages to the project:

> dotnet add package Microsoft.EntityFrameworkCore.SqlServer \
> dotnet add package Microsoft.EntityFrameworkCore.Design

Generate code for a DbContext and entity types for the database:

> dotnet-ef dbcontext scaffold "Server=.\SQLEXPRESS;Database=WebRegDb;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -o Models -c "WebRegContext"

Add EF Core configuration to the `Startup.cs`:

    services.AddDbContext<WebRegContext>(c =>
                c.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
                sqlServerOptions => sqlServerOptions.CommandTimeout(60)));

Add a connection sting to the `appsettings.json` file:

    "ConnectionStrings": {
    "DefaultConnection": "Server=.\\SQLEXPRESS;Database=WebRegDb;Trusted_Connection=True;" }

## References
[Entity Framework Core tools reference - .NET Core CLI](https://docs.microsoft.com/en-us/ef/core/cli/dotnet)

[Starting with an existing database](https://www.learnentityframeworkcore.com/walkthroughs/existing-database)

gha_language: TSQL


text:
# mv-comma-sql

## Background:

My lovely collegues insist on putting comma in front of each line instead of at the end in SQL.

All existing auto-formatter does not support that. As a lazy smart person, I have to spend a few hours to write the command line tool to reduce my future work.

## install
```
$ pip install mv-comma-sql
```

## Usage
```
$ hello mv-comma input.sql (output.sql)
```
the input.sql will be overwritten if no output file path provided.


text:
---
title: Disclaimer
menuTitle: about
---
Disclaimer for AdiBite
======================

If you require any more information or have any questions about our site's disclaimer, please feel free to contact us by email at<EMAIL_ADDRESS>
Disclaimers for AdiBite
-----------------------

All the information on this website - https://adibite.xyz - is published in good faith and for general information purpose only. AdiBite does not make any warranties about the completeness, reliability and accuracy of this information. Any action you take upon the information you find on this website (AdiBite), is strictly at your own risk. AdiBite will not be liable for any losses and/or damages in connection with the use of our website. Our Disclaimer was generated with the help of the [Disclaimer Generator Online](https://www.privacypolicyonline.com/disclaimer-generator/) and the [Free Disclaimer Generator](https://www.disclaimer-generator.com/).

From our website, you can visit other websites by following hyperlinks to such external sites. While we strive to provide only quality links to useful and ethical websites, we have no control over the content and nature of these sites. These links to other websites do not imply a recommendation for all the content found on these sites. Site owners and content may change without notice and may occur before we have the opportunity to remove a link which may have gone 'bad'.

Please be also aware that when you leave our website, other sites may have different privacy policies and terms which are beyond our control. Please be sure to check the Privacy Policies of these sites as well as their "Terms of Service" before engaging in any business or uploading any information.

Consent
-------

By using our website, you hereby consent to our disclaimer and agree to its terms.

Update
------

Should we update, amend or make any changes to this document, those changes will be prominently posted here.

gha_language: JavaScript


text:
---
title: Generating a SSL CA signed certificate
description: generating a SSL certificate, signed by Comodo (via NameCheap), with which to configure nginx
tags: ssl signed certificate security nginx namecheap comodo
---

# Problem

There is a plethora of information on how obtain a signed SSL certificate from a Certificate
Authority (CA). The issue I had was getting to grips with the terminology/acronyms used, as well
as some steps/information required by the Certificate Authority (CA).

This post documents my journey down this well trodden path.

# Back Story

This blog is a statically generated site using [Hakyll]. It was formally hosted via
[Github Pages][^GPs] but I recently decided to migrate it to a private `VPS` with [Digital Ocean].
With a price plan at `$5/month`, not only does it allow the hosting of this website but offers other
benefits too:

* back up strategy (via `rsync`)
* private `git` repository hosting
* hands on linux administrative learning experience, server provisioning and configuration
* leveraging Digital Ocean's naming servers in lieu of dedicated DNS hosting (formally I used [DNS Made Easy])
* dedicated IP address
* ...

I have no real need to have secure access. It's more of an educational exercise and because
`entry` level certificates are so cheap it's an option to seriously consider.

My curiosity was first tweaked by trawling through a self signing tutorial for RabbitMQ[^RMQ] but
was then prompted into action by reading [Ben Jeffrey]'s excellent article on obtaining a CA signed
SSL certificate.

# Certificate Purchase Options

[Ben Jeffrey] had opted for [Gandi Single Option] (SSL certificate for a single domain,
currently charging `£11/year`). I was about to do the same when I discovered that [Name Cheap] were
doing the same for half the price ([Name Cheap Compare], `£5.37/$9.00`), which is ultimately
what I went with.

Both Gandi and Name Cheap have many flavours of certificates at varying prices, ([Gandi Compare]
and [Name Cheap Compare] respectively). Four points which occurred to me

1. I originally thought that a single domain would only encompass the root (`ianweatherhogg.com`)
   but having read the [Gandi FAQ], the `www` subdomain (`www.ianweatherhogg.com`) is also included

   > When you generate an SSL certificate for example.com, the CA automatically adds a Subject
   > Alternative Name (SAN) X.509 extension for the www subdomain, which means a certificate
   > for example.com will secure both example.com and www.example.com.

2. If you require multiple subdomains then the `wildcard` option needs to be purchased. I toyed
   with having multiple secure subdomains `git.ianweatherhogg.com`, `tech.ianweatherhogg.com`, etc,
   but the price differential for the `wildcard` option was too much for something which is
   after all an experiment.

3. I toyed with the concept of purchasing a multi domain certificate to encompass the other domains
   I owned under one `umbrella` but by my calculations the price per domain is the same as if
   the single certificate had been purchased for each domain (the disadvantage being, there are
   now more certificates to manage).

4. [Name Cheap] act on behalf of the `real` Certificate Authority who do the certificate signing,
   this being [Comodo] with the [PositiveSSL] certificate I bought.

# Technical Details

I found it easier to look at the end result, namely `nginx` SSL configuration
and then look back at the steps required to get there.

Looking at some `nginx` SSL configuration examples:

[Arg Team]

    ssl_certificate /some/location/sillyfacesociety.com.bundle.crt;
	ssl_certificate_key /some/location/sillyfacesociety.com.key;

[istlsfastyet]

    ssl_certificate /home/istlsfastyet/tls/istlsfastyet.crt;
	ssl_certificate_key /home/istlsfastyet/tls/istlsfastyet.key;

[Ben Jeffrey]

    ssl_certificate     /etc/nginx/ssl/benjeffrey.com.crt;
	ssl_certificate_key /etc/nginx/ssl/benjeffrey.com.key;

## Bundled Certificate and Private Key

A SSL Certificate and Key are both required, to be installed at some configurable location.

The SSL Certificate (Certificate) is the one which has been signed by the third party
Certificate Authority (CA) ([Comodo] in this case)

The SSL Certificate Key (Key) is a password-less (`private`) key generated by yourself

The Certificate is actually a bundle (concatenation) of three certificates

1. one generated by yourself and subsequently signed by the CA
2. the CA's intermediate certificate
3. the CA's root certificate

The certificates generated adhere to the [X509] standard format and both `crt` and `pem`
encodings are acceptable (reflected in the respective filename extensions)

A human readable example of what a certificate contains is described in the excellent
[Mozilla] guide on `Public Key Cryptography `

Note, don't confuse the `.crt` file extension with the `.csr` file extension (see below)
(which if you squint hard enough, look very similar, well they did to me anyway)

## Private Key Generation

These steps are well documented elsewhere, namely [Ben Jeffrey], [Wensheng],
[here](https://launchbylunch.com/posts/2014/Jan/23/blog-tech-stack/) and [Kerry Gallagher]

[Wensheng] stated that the steps should be undertaken as `root`. I don't see why,
and completed them as `user` ...

```bash
openssl genrsa -des3 -out ianweatherhogg.com_encrypted.key 4096
```

1. Whilst the key pair is generated, increase entropy by doing a `find` on the complete
   filesystem. Tip taken from [Sanctum] (in the context of generating GPG keys)

2. Include a pass phrase (and be sure that you'll remember it!)

3. The generated key is the `private` key. Keep it private

4. A 4096 bit key is being generated. [Name Cheap Key] suggests a 2048 bit key
   (along with the [Wensheng] example)

Typical Private Key (`.key`) contents:

    <REDACTED_PRIVATE_KEY>

## Certificate Signing Request (Public Key)

Generating a Certificate Signing Request (`.csr` file extension) which is sent to
the CA ([Comodo]) via Name Cheap

```bash
openssl req -new -key ianweatherhogg.com_encrypted.key -out ianweatherhogg.com.csr
```

Flow

    Enter pass phrase for ianweatherhogg.com_encrypted.key:
	You are about to be asked to enter information that will be incorporated
	into your certificate request.
	What you are about to enter is what is called a Distinguished Name or a DN.
	There are quite a few fields but you can leave some blank
	For some fields there will be a default value,
	If you enter '.', the field will be left blank.
	Country Name (2 letter code) [AU]:GB
	State or Province Name (full name) [Some-State]:SausageShire
	Locality Name (eg, city) []:ATown
	Organization Name (eg, company) [Internet Widgits Pty Ltd]:Base Metal to Gold Converters Ltd
	Organizational Unit Name (eg, section) []:
	Common Name (e.g. server FQDN or YOUR name) []:ianweatherhogg.com
	Email Address<EMAIL_ADDRESS>
	Please enter the following 'extra' attributes
	to be sent with your certificate request
	A challenge password []:Look in pass ssl/certificate/challengepassword
	An optional company name []:

1. The passphrase for the `private` key is required
2. The root (FQDN) name `ianweatherhogg.com` is the important part
3. The email included is the `administrator` email (my term, more below),
   i.e. the email address I use most commonly
4. I included a challenge password but read somewhere that it's not required. I've
   had no need for it since
5. I included my (residence) address (I don't think this is really required)

Typical Certificate Signing Request (`.csr`) contents

    -----BEGIN CERTIFICATE REQUEST-----
	MIIE/jCCAuYCAQAwgZcxCzAJBgNVBAYTAkdCMRUwEwYDVQQIDAxMaW5jb2xuc2hp
	... elided ...
	us/Pa9w+mGWmF2re85lSOK5kyhC+wjId0aoixeyPqTyuABw==
	-----END CERTIFICATE REQUEST-----

This is used for submission to [Comodo] via Name Cheap

## Password-less Private Key

As illustrated earlier, a `ssl_certificate_key` is required for successful
`nginx` configuration. The original `private` key generated above would suffice
but has the drawback that the passphrase is required (on `nginx` restart)

To create the password-less `stripped` version;

```bash
openssl rsa -in ianweatherhogg.com_encrypted.key -out ianweatherhogg.com.key
```

Enter the phassphrase when prompted to complete the generation

# Name Cheap and Comodo - Certificate Authority

Having bought your [PositiveSSL] certificate [^BUY] and created an account, navigate
to that certificate from the account and follow the signing process.

You are invited to select a `server` option and paste in your `.csr` file

    Digital Certificate Order Form

	PRODUCT INFORMATION

	 Certificate Type	  positivessl
	 Purchase Years	  1

	CERTIFICATE SIGNING REQUEST (REQUIRED)

	Select web server <Drop Down List of Server Options>

	Important: Please use CSR code with 2048-bit private key to activate your SSL certificate.
	According to modern security standards using CSR codes with private key size less than 2048 bits is not allowed.
	Note: If an SSL certificate is being issued for an IDN (Internationalized Domain Name),
	a "common name" field of a CSR must be a punycode of the domain (also known as ASCII compatible encoding, or ACE)
	e.g. xn--aussergewhnliches-7zb.com. Including common name in native characters will result in an error.

	Enter csr

	-----BEGIN CERTIFICATE REQUEST-----
	MIIE/jCCAuYCAQAwgZcxCzAJBgNVBAYTAkdCMRUwEwYDVQQIDAxMaW5jb2xuc2hp
	... elided ...
	us/Pa9w+mGWmF2re85lSOK5kyhC+wjId0aoixeyPqTyuABw==
	-----END CERTIFICATE REQUEST-----

1. The Drop Down List of Server Options includes everyone on the planet bar the one you want, namely `nginx`.
   I chose `Apache 2`, following advice from [Heroku](https://devcenter.heroku.com/articles/ssl-endpoint#submit-csr-to-ssl-provider)

2. Include `-----BEGIN CERTIFICATE REQUEST-----` and `-----END CERTIFICATE REQUEST-----` when you enter the `csr`

## Digital Certificate Order Form (Part 1)

First page of the digital order form

    Digital Certificate Order Form

	CSR INFORMATION

	Country	GB
	State	SausageShire
	Locality	ATown
	Email<EMAIL_ADDRESS>	Common Name	ianweatherhogg.com
	Organisation

	APPROVER EMAIL
	Domain Related                         Whois Record Type
	[ ]<EMAIL_ADDRESS>         [ ] none
	[ ]<EMAIL_ADDRESS>	[ ]<EMAIL_ADDRESS>	[ ]<EMAIL_ADDRESS>	[ ]<EMAIL_ADDRESS>

1. The `CSR INFORMATION` includes the `administrator` email (my term), the one used for everyday
   correspondence

2. The `APPROVER EMAIL` (`approver` email) includes a selection of address choices, none of which I had.
   The CA ([Comodo]) uses this email to authenticate whether you are the owner of the domain.
   I found it easier to comply by temporarily creating one of the named accounts (my email is serviced
   via google docs and creating a new account is both quick and easy).
   I suspect that you can confer via the online chat facility or refer to [Name Cheap Certificate]
   wiki if you don't have any of the said email accounts

## Digital Certificate Order Form (Part 2)

Second page of the digital order form

    Digital Certificate Order Form

	We are unable to validate the settings of the approver email you have chosen
	(xxxxxxxxxx@ianweatherhogg.com). This may be an indication of incorrectly setup MX records,
	invalid mailbox, in-accessible mail server, invalid domain etc.

	We strongly recommend that you fix the issue above before proceeding.
	If you are certain that the above findings are invalid and you still want to proceed,
	please choose the option below.

	[X] I confirm that the above message doesn't apply and the mailbox is setup properly.

	Or, you can change the approver email address

The `approver` email is being referred to. I verified that it had been set up correctly (by
sending an email to the account).
Satisfied I accepted the confirmation message and moved on.

## Digital Certification Order Form (Part 3)

Third page of the digital order form

    Digital Certificate Order Form
		PRODUCT INFORMATION
		Certificate Type	 positivessl
		Purchase Years	 1
		Approver Email<EMAIL_ADDRESS>

	ENTER CONTACT INFORMATION FOR YOUR SSL CERTIFICATE
	The administrative contact is the primary contact and will be contacted to assist
	in resolution of any questions about the order.

	Administrator Email Address
<EMAIL_ADDRESS>
	E-Mail Address to send the certificate *

	ADMINISTRATIVE CONTACT	Choose a different address from my profile
	  First Name * Ian
	  Last Name * Weatherhogg
	  Organization Name * etc

	Street Address *
	  Address 2 etc
	  Job Title etc

	City * etc

	State/ Prov.*
	Zip/ Postal Code * etc

	Country *

	Phone Number * etc
	Fax Number etc

	The fields marked with * are required.

Next Page

## Digital Certification Order Form (Part 4)

Summary

    Digital Certificate Order Process Summary

	Congratulations! You have completed the requirements for SSL certificate order processing.
	To complete the certificate issue process, the certificate request needs to be approved
	by the Approver. In a short while, an email will be sent to<EMAIL_ADDRESS>	which will contain instructions on how to approve the certificate.

* This email is being sent to the `approver` email address

I went away for some breakfast and had a confirmation to my (new but temporary) `approver`
email account. Half an hour, tops.

## Approver Email and Verification Code

In your `approver` email account

    Domain Control Validation for ianweatherhogg.com

	Dear<EMAIL_ADDRESS>

	We have received a request to issue an SSL certificate for ianweatherhogg.com.

    *** Please ignore this email if neither you nor a trusted colleague made this request
	for a certificate ***

	Otherwise, please browse here  and enter the following "validation code":

## Zip file with Signed Certificate, Root and Intermediate CA Certificates

On successful completion of the above stage, wait a few minutes and an email should arrive
in your `administrator` email account, typically:

    To 'administrator email'

	Your PositiveSSL Certificate for ianweatherhogg.com is attached!

	Dear<EMAIL_ADDRESS>
	Thank you for placing your order. We are pleased to announce that your PositiveSSL
	Certificate for ianweatherhogg.com has been issued.

	To help reduce domain name mismatch warnings, we have also included the domain name
	www.ianweatherhogg.com in your certificate.

	We strongly recommend that you click here for instructions to ensure that your certificate
	is installed and your webserver is configured correctly.

	Attached to this email you should find a .zip file containing:

	Root CA Certificate - AddTrustExternalCARoot.crt
	Intermediate CA Certificate - PositiveSSLCA2.crt
	Your PositiveSSL Certificate - ianweatherhogg_com.crt
	You can also find your PositiveSSL Certificate for ianweatherhogg.com in text format at
	the bottom of this email.
	Should you have any questions or issues you would like to discuss, please do not hesitate to contact us.

	Kind Regards,

	Comodo Security Services

As stated, unzip the zip file gives

1. Root CA Certificate - AddTrustExternalCARoot.crt
2. Intermediate CA Certificate - PositiveSSLCA2.crt
3. Your PositiveSSL Certificate - ianweatherhogg_com.crt

## Creating a Certificate Bundle

Concatenate the three certificates together

```bash
cat ianweatherhogg_com.crt PositiveSSLCA2.crt AddTrustExternalCARoot.crt > ianweatherhogg.com.crt
```

1. I'm unsure whether order is important here. [Comodo Certificate Hierarchy] is informative on
   this point. This worked for me:

     1.  your-signed.crt
     2.  CA-intermediate-cert.crt
     3.  CA-root-cert.crt

2. I suspected that a `double` filename ending (`.com.crt`) would be problematic. Appears to
   be not an issue.

3. Look at the final bundle certificate; it really is just three together (as you would expect
   from a `cat` command)

## Provisioning Nginx on the VPS

As stated at the beginning, the password-less private key and the bundled certificate are
required to configure nginx

Secure Copy (`scp`) the files to the remote server:

```bash
scp -P 12345 ianweatherhogg.com.crt ianweatherhogg.com.key localuser@ianweatherhogg.com:.
```

1. If you are not using the default port of 22 for `ssh` the `-P` flag is required
2. Capitalised `-P`, since uncapitalised `-p` is for `ssh` commands

As `localuser` on the remote host, using `sudo` I placed the key and certificate in the
same location as used by [Ben Jeffrey]

```
/etc/nginx/ssl/ianweatherhogg.com.crt
/etc/nginx/ssl/ianweatherhogg.com.key
```

As sudo

```bash
chown root:www-data ianweatherhogg.com.crt
chown root:www-data ianweatherhogg.com.key
```
Changed privileges for `root` and `group` read only of the above

[Nginx Doc](http://nginx.org/en/docs/http/configuring_https_servers.html)

> The private key is a secure entity and should be stored in a file with restricted access,
> however, it must be readable by nginx’s master process.

```bash
chmod 440 ianweatherhogg.com.crt ianweatherhogg.com.key
```

* `chmod 400` is probably fine too (`root` `rw` access to the key/crt)
* `www-data` is `group` running the `nginx` process

prompt > top

4255 www-data  20   0 89444 3376 1760 S   0.0  0.7   0:04.61 nginx
4256 www-data  20   0 89152 1832  460 S   0.0  0.4   0:04.70 nginx
4257 www-data  20   0 89444 3424 1760 S   0.0  0.7   0:02.68 nginx
4258 www-data  20   0 89152 1832  460 S   0.0  0.4   0:04.65 nginx
4498 root      20   0     0    0    0 S   0.0  0.0   0:00.00 nginx

Restart the `nginx` service (as `root`)

# Debug

Well I got to the final stage and found that it didn't work.

Points:

1. I thought I'd restarted `nginx` with the new SSL, `https` configuration,
   but for some reason I hadn't. The previous `http` was still active.
   Ensure you restart the `nginx` service as `root`.
2. I managed to mismatch the brackets in the configuration file
   `/etc/nginx/sites-available/default` so the service was not listening
   on port 443.  If you have a firewall, ensure that port 443 is open

## Warning Shield Unauthenticated Sources

Successful configuration is identified by the green padlock in the browser bar.
However I noticed a `warning shield` on the right hand side of the browser bar,
typically

![Warning Shield](/images/tech/warning-shield-unauthenticated-sources.png)

Looking in the debug console

![Debug Console](/images/tech/warning-shield-unauthenticated-sources-debug-console.png)

Suggests that any libraries referenced over `http` need to now reflect `https` protocol
to remove the `warning shield`.

Interestingly, `google analytics` switches between the appropriate protocol

```javascript
(function() {
  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
```

[^GPs]: `User` github pages and not `Project` github pages as detailed in the [comparison][Github Pages User Project Comparison]
[^RMQ]: `Chapter 11.3` of [RabbitMQ In Action], SSL Connections. Excellent write up on securing RabbitMQ with SSL
[^BUY]: I always opt for `PayPal`. My spending patterns are `UK` based, any purchases `further afield` tend to slam
on a credit card block and I have to fart around unblocking it. I'm looking at you [HSBC](http://www.hsbc.co.uk/1/2/)!

[Hakyll]: http://jaspervdj.be/hakyll/
[Github Pages]: https://pages.github.com/
[Github Pages User Project Comparison]:https://help.github.com/articles/user-organization-and-project-pages
[DNS Made Easy]:http://www.dnsmadeeasy.com/
[RabbitMQ In Action]:http://manning.com/videla/
[Ben Jeffrey]:https://benjeffrey.com/posts/setting-up-gandi-ssl-on-nginx
[Gandi Single Option]:https://www.gandi.net/ssl/standard#single
[Gandi Compare]:https://www.gandi.net/ssl/compare
[Gandi FAQ]:http://wiki.gandi.net/en/ssl/faq
[Name Cheap]:https://www.namecheap.com
[Name Cheap Compare]:https://www.namecheap.com/security/ssl-certificates/domain-validation.aspx
[Name Cheap Key]:https://www.namecheap.com/support/knowledgebase/article.aspx/467/67/how-do-i-generate-a-csr-code
[Name Cheap Certificate]:https://www.namecheap.com/support/knowledgebase/troubleshooter.aspx/19/254/14/i-have-not-received-my-ssl-certificate
[PositiveSSL]:https://www.namecheap.com/security/ssl-certificates/comodo/positivessl.aspx
[Arg Team]:http://blog.argteam.com/coding/hardening-node-js-for-production-part-2-using-nginx-to-avoid-node-js-load/
[istlsfastyet]:https://github.com/igrigorik/istlsfastyet.com/blob/master/nginx.conf
[Comodo]:http://www.comodo.com/
[Comodo Certificate Hierarchy]:https://support.comodo.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=1182
[X509]:http://en.wikipedia.org/wiki/X.509
[Mozilla]:https://developer.mozilla.org/en/docs/Introduction_to_Public-Key_Cryptography
[Wensheng]:http://blog.wensheng.org/2012/03/using-namecheap-ssl-with-nginx.html
[Kerry Gallagher]:https://kerrygallagher.co.uk/how-to-install-a-positivessl-certificate-provided-by-namecheap/
[Sanctum]:http://blog.sanctum.geek.nz/linux-crypto-gnupg-keys/
[Digital Ocean]:https://www.digitalocean.com/

extension: markdown


text:
# Lama Language extension for VSCode

[![Build Status](https://travis-ci.com/egormkn/vscode-language-lama.svg?branch=master)](https://travis-ci.com/egormkn/vscode-language-lama)
[![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/egormkn.vscode-language-lama)](https://marketplace.visualstudio.com/items?itemName=egormkn.vscode-language-lama)
[![Visual Studio Marketplace Downloads](https://img.shields.io/visual-studio-marketplace/d/egormkn.vscode-language-lama)](https://marketplace.visualstudio.com/_apis/public/gallery/publishers/egormkn/vsextensions/vscode-language-lama/latest/vspackage)
[![Visual Studio Marketplace Rating (Stars)](https://img.shields.io/visual-studio-marketplace/stars/egormkn.vscode-language-lama)](https://marketplace.visualstudio.com/items?itemName=egormkn.vscode-language-lama&ssr=false#review-details)

An extension for Visual Studio Code that adds some basic editing features such as syntax highlighting, code folding, snippets and syntax checking for the [Lama](https://github.com/JetBrains-Research/Lama) language.

## Features

- Syntax highlighting

  ![Syntax highlighting](images/highlighting.png)

- Type definitions (only highlighting for now)

  ![Type definitions](images/typedefs.png)

- Code snippets

  ![Code snippets](images/snippets.png)

- Syntax validation

  ![Syntax validation](images/validation.png)

## Development

- Run `npm install` in this folder. This installs all necessary npm modules in both the client and server folders
- Open VS Code on this folder.
- Press Ctrl+Shift+B to compile the client and server.
- Switch to the Debug viewlet.
- Select `Launch Client` from the drop down.
- Run the launch config.
- If you want to debug the server as well use the launch configuration `Attach to Server`
- In the [Extension Development Host] instance of VSCode, open a *.lama source file.

## License

Lama Language extension is released under the [MIT License](LICENSE).

repository: egormkn/vscode-language-lama

gha_language: TypeScript

repo_name: egormkn/vscode-language-lama


text:
## Testing Canary

This is a system that continually runs tests and, if a failure occurs, sends out emails.

[![Build Status](https://travis-ci.com/JohnReedLOL/EmailTestingBot.svg?branch=master)](https://travis-ci.com/JohnReedLOL/EmailTestingBot)

____________________________________________________________________________________________________________________

This is a demo of a very simple canary that sends email via the Apache-Commons-Email library (https://commons.apache.org/proper/commons-email/).

To demo the email testing functionality, run Main and then sign into the dummy email account to see the email.

To run the canary continuously, execute this task from the sbt shell:

> runCanaryTask

This task will generate a random number every 5 seconds. If the random number is odd, it will send an email.

Note that to enable login, I turned off the email security settings in Gmail via these steps:

- Go to: https://myaccount.google.com/
- Sign in as<EMAIL_ADDRESS>- Go to: Sign-in & Security
- 2-Step Verification: Off
- Allow less secure apps: ON

Do not use a dummy email account for anything other than automatically generating email on test failure.

Note that if you know the network carrier (ex. AT&T, Sprint, T-Mobile, or Verizon) and the phone number associated with a cell phone, it is possible to send an email that gets received as a text message.

See: https://www.lifewire.com/sms-gateway-from-email-to-sms-text-message-2495456

Also, it is possible to extract the email address of the last person who pushed a code change by parsing the output of the "git log" command.
This can be used to bother people who broke the code.

By using a testing canary, it is possible to continuously make sure that the codebase is working.

Note: If you cannot access GitHub, here is some sample code:

build.sbt:
```
name := "EmailTestingBot"

organization := "com.example"

scalaVersion := "2.11.8"

version      := "0.1.0-SNAPSHOT"

libraryDependencies ++= Seq(
  // https://mvnrepository.com/artifact/org.apache.commons/commons-email
  "org.apache.commons" % "commons-email" % "1.5"
)
```

Main:
```
object Main {
  val emailUsername = "UsernameForAutomatedTesting"
  val emailDomain =<EMAIL_ADDRESS>  val emailPassword = "TestingPassword"
  val myEmailAddress = s"$emailUsername$emailDomain"

  /**
    * Sends an email with the given subject and body to the specified recipient.
    *
    * @param subject   The subject of the email.
    * @param body      The body of the email.
    * @param recipient The recipient of the email.
    */
  def sendEmail(subject: String, body: String, recipient: String): Unit = {
    assert(recipient.contains("@"))
    assert(recipient.contains("."))
    import org.apache.commons.mail._
    val email: Email = new SimpleEmail()
    email.setHostName("smtp.googlemail.com")
    val portNumber = 465
    email.setSmtpPort(portNumber)
    email.setAuthenticator(new DefaultAuthenticator(emailUsername, emailPassword))
    val sendResult = email.setSSLOnConnect(true)
      .setFrom(myEmailAddress)
      .setSubject(subject)
      .setMsg(body)
      .addTo(recipient)
      .send()
    println(s"sendResult: $sendResult")
  }

  def main(args: Array[String]): Unit = {
    val emailSubject = "Email_Subject"
    val emailBody = "Email_Body"
    val emailRecipient = myEmailAddress // Defaults to sending email to yourself.
    try {
      sendEmail(emailSubject, emailBody, emailRecipient)
    } catch {
      case e: Exception => println(s"Attempting to send the email to '$emailRecipient' failed with this exception: ${e.getMessage}")
    } finally {
      println(s"Finished sending email from: '$myEmailAddress' to: '$emailRecipient'")
    }
  }
}
```

project/build.sbt:
```
libraryDependencies ++= Seq(
  // https://mvnrepository.com/artifact/org.apache.commons/commons-email
  "org.apache.commons" % "commons-email" % "1.5"
)
```

See: https://stackoverflow.com/questions/34828688/how-can-i-use-a-library-dependency-in-the-definition-of-an-sbt-task

runCanaryTask definition in build.sbt:
```
val runCanaryTask = taskKey[Unit]("A task that randomly decides to send an email or not. " +
  "It is meant to emulate a scenario where a test failure results in a notification.")

runCanaryTask in Scope.GlobalScope := {
  // runCanaryTask dependencies:
  val log = streams.value.log // streams task happens-before runCanaryTask

  // ---- runCanaryTask begins here ----
  // This function has a 50% chance of returning true.
  def decideRandomly(): Boolean = {
    val rand = new java.util.Random()
    val n = rand.nextInt(10) + 1
    // 10 is the maximum and the 1 is the minimum
    if(n % 2 == 1) { // odd
      true
    } else { // even
      false
    }
  }
  // This loops forever
  while(true) {
    val sendEmail = decideRandomly()
    if(sendEmail) {
      log.info(s"Sending email.")

      val emailUsername = "UsernameForAutomatedTesting"
      val emailDomain =<EMAIL_ADDRESS>      val emailPassword = "TestingPassword"
      val myEmailAddress = s"$emailUsername$emailDomain"

      /**
        * Sends an email with the given subject and body to the specified recipient.
        *
        * @param subject   The subject of the email.
        * @param body      The body of the email.
        * @param recipient The recipient of the email.
        */
      def sendEmail(subject: String, body: String, recipient: String): Unit = {
        assert(recipient.contains("@"))
        assert(recipient.contains("."))
        import org.apache.commons.mail._
        val email: Email = new SimpleEmail()
        email.setHostName("smtp.googlemail.com")
        val portNumber = 465
        email.setSmtpPort(portNumber)
        email.setAuthenticator(new DefaultAuthenticator(emailUsername, emailPassword))
        val sendResult = email.setSSLOnConnect(true)
          .setFrom(myEmailAddress)
          .setSubject(subject)
          .setMsg(body)
          .addTo(recipient)
          .send()
        log.info(s"sendResult: $sendResult")
      }
      val emailSubject = "Autoreply: Test Internet Failure"
      val emailBody = "A test failed. It is all your fault!"
      val emailRecipient = myEmailAddress // Defaults to sending email to yourself.
      try {
        sendEmail(emailSubject, emailBody, emailRecipient)
      } catch {
        case e: Exception => log.info(s"Attempting to send the email to '$emailRecipient' failed with this exception: ${e.getMessage}")
      } finally {
        log.info(s"Finished sending email from: '$myEmailAddress' to: '$emailRecipient'")
      }
    } else {
      log.info(s"Not sending email.")
    }
    val durationInMs = 5000
    Thread.sleep(durationInMs)
  }
}
```

You should see output that looks like this:

```
[info] Set current project to EmailTestingBot (in build file:.../EmailTestingBot/)
[info] Not sending email.
[info] Sending email.
[info] sendResult: <1452870640.0.1541644807523@mycomputer>
[info] Finished sending email from<EMAIL_ADDRESS>to<EMAIL_ADDRESS>```

repository: JohnReedLOL/EmailTestingBot

gha_language: Scala

repo_name: JohnReedLOL/EmailTestingBot