text:
---
title: Using Github week 4
layout: post
author: arun.johal
permalink: /using-github-week-4/
source-id: 1nqR3fKS1gWCU9JYPYhkjJbCj5uQpQuuEfbvMkLz0ikA
published: true
---

    Title
    Using Spreadsheets week 1
    Date
    17/11/16

    Starting point:
    Following on from homework

    Target for this lesson?
    To make more advanced differences to the spreadsheets

    Did I reach my target?
(add details to "Lesson Review")
     Yes

    Lesson Review

    How did I learn? What strategies were effective?

    We did a lot of listening at the front in this lesson so we didn't manage to do much but i did manage to create borders and another section for it. I took away from what our teacher said and used it to help my spreadsheets.

    What limited my learning? Which habits do I need to work on?

    I think missing the previous lesson didn’t help but i tried hard to do the work anyways and i did well but I needed to catch up better.

    What will I change for next time? How will I improve my learning?

    I will make sure to do the substantial amount needed in the next lesson and i will push myself harder.


text:
![data mgt](https://user-images.githubusercontent.com/58377262/122801061-94142e80-d2bb-11eb-9199-73727a2c2c7a.jpeg)
## **GazProm Data Engineering Project**

**Motivation**
- [ ] Data has to be securely and efficiently added to a database to be accessed by Data Analysts and Scientists

***Aims and Objectives***
 1. Construction of  data models using an ORM ideally SQL-Alchemy.
 2. Data  manipulation
 3. Data Validation  before data upload to the Database
 4. Python module that obtains different views from the database;
 5. Answer the qestions provided in the specification using the module constructed in objetive 4

***Tools Used***
 - [ ] Python
 - [ ] Object-Relational Mapping    -->    SQLAlchemy ORM
 - [ ] Database     -->    PostgreSQL
 - [ ] Data Manipulation      -->    Pandas

license: MIT

branch_name: refs/heads/main

extension: md

license_type: permissive


text:
# Ping Action

> GitHub Action to ping a URL

## Usage

```
name: Deploy

on: [pull_request]

jobs:
  deploy_changes:
    runs-on: ubuntu-18.04

    steps:
    - name: Deploy Changes
      uses<EMAIL_ADDRESS>      with:
        entrypoint: /entrypoint.sh
        args: https://yoururl.com
```

repository: annafil/ping-action

branch_name: refs/heads/master

repo_name: annafil/ping-action


text:
ArduinoRGBLighting
==================

Arduino powered RGB lighting controller with HTTP POST API, self hosted web control panel.

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

-	[Webduino](https://github.com/sirleech/Webduino) which is used to provide a better HTTP server on the Arduino
-	[jQuery](http://jquery.com/) is used for the web control page, however all that is requiered is a connection to the internet on the client as the JS is pulled from the jQuery site
-	An Arduino that has more than 33kb flash and a Arduino Ethernet sheild. Cannot use a Arduino Uno as the .ino file rounds out to about 33kb. Needs an Mega, 101, etc...
-	There is possibly more, I will update the list as I find them.

Installation/Setup
------------------

After constructing a driver similar to that shown in the schmatic upload the sketch provided to your Arduino, changing the IP and I/O pins as needed.

A better guide is available on Instructables [here](http://www.instructables.com/id/Arduino-Web-Enabled-RGB-Lighting/).

Usage
-----

The internal web control page can be accessed by navigating to the IP address assigned to the controller.

The Android app can be configured by providing the URL to the webservice, this is ```http://IP_OF_CONTROLLER/service```

POST API
--------

The HTTP POST API takes 5 parameters:
-	```trans``` = Transition type: 0=No Transition, 1=Fade, 2=Fade Through Black
-	```time``` = Time taken for transition (no effect for trans=0)
-	```r``` = Red light level (0<=r<=255)
-	```g``` = Green light level (0<=g<=255)
-	```b``` = Blue light level (0<=b<=255)

The controller will respond with an XML formatted response giving details of the last request, an example of which is given below.

```
<?xml version="1.0"?>
<xml>
<currentColour>
<r>255</r>
<g>255</g>
<b>140</b>
</currentColour>
<lastTime>500</lastTime>
<pwr>1</pwr>
<rnbw>0</rnbw>
<lastTransition>1</lastTransition>
<exec>FALSE</exec>
</xml>
```


text:
---
title: Changelog | Stash
description: Changelog
menu:
  docs_{{.version}}:
    identifier: changelog-stash-v2021.6.18
    name: Changelog-v2021.6.18
    parent: welcome
    weight: 20210618
product_name: stash
menu_name: docs_{{.version}}
section_menu_id: welcome
url: /docs/{{.version}}/welcome/changelog-v2021.6.18/
aliases:
  - /docs/{{.version}}/CHANGELOG-v2021.6.18/
---

# Stash v2021.6.18 (2021-06-16)

## [appscode/stash-enterprise](https://github.com/appscode/stash-enterprise)

### [v0.14.0](https://github.com/appscode/stash-enterprise/releases/tag/v0.14.0)

- [6d2613e7](https://github.com/appscode/stash-enterprise/commit/6d2613e7) Prepare for release v0.14.0 (#100)
- [f8afa76d](https://github.com/appscode/stash-enterprise/commit/f8afa76d) Send audit events when analytics are enabled (#99)
- [cdb3b3fe](https://github.com/appscode/stash-enterprise/commit/cdb3b3fe) Fix operator crash + E2E tests (#98)
- [4288f0c2](https://github.com/appscode/stash-enterprise/commit/4288f0c2) Use namespace when looking up running BackupSessions for Invoker (#97)
- [64c7d7c9](https://github.com/appscode/stash-enterprise/commit/64c7d7c9) Create auditor if license file is provided (#96)
- [5e193ea9](https://github.com/appscode/stash-enterprise/commit/5e193ea9) Disable api priortiy and fairness feature for webhook server (#95)
- [b4fcc0b6](https://github.com/appscode/stash-enterprise/commit/b4fcc0b6) Publish audit events (#94)
- [d785fec3](https://github.com/appscode/stash-enterprise/commit/d785fec3) Use klog/v2 (#93)
- [324e9aa4](https://github.com/appscode/stash-enterprise/commit/324e9aa4) Use kglog helper
- [8b4c6fd6](https://github.com/appscode/stash-enterprise/commit/8b4c6fd6) Update Kubernetes toolchain to v1.21.0 (#92)

## [stashed/apimachinery](https://github.com/stashed/apimachinery)

### [v0.14.0](https://github.com/stashed/apimachinery/releases/tag/v0.14.0)

- [a382bbe2](https://github.com/stashed/apimachinery/commit/a382bbe2) Fix build
- [0d9f6eec](https://github.com/stashed/apimachinery/commit/0d9f6eec) Update dependencies (#101)
- [6abdb1e2](https://github.com/stashed/apimachinery/commit/6abdb1e2) Replace go-bindata with //go:embed (#100)
- [974fc12c](https://github.com/stashed/apimachinery/commit/974fc12c) Update dependencies
- [ae165464](https://github.com/stashed/apimachinery/commit/ae165464) Fix build
- [15d8c532](https://github.com/stashed/apimachinery/commit/15d8c532) Update dependencies
- [06ac37bd](https://github.com/stashed/apimachinery/commit/06ac37bd) Only depend on klog/v2
- [79f9a3fe](https://github.com/stashed/apimachinery/commit/79f9a3fe) Use Kubernetes v1.21.0 toolchain (#98)
- [1157edb1](https://github.com/stashed/apimachinery/commit/1157edb1) Cleanup dependencies

## [stashed/cli](https://github.com/stashed/cli)

### [v0.14.0](https://github.com/stashed/cli/releases/tag/v0.14.0)

- [ceef781](https://github.com/stashed/cli/commit/ceef781) Prepare for release v0.14.0 (#124)
- [7e1fb45](https://github.com/stashed/cli/commit/7e1fb45) Use klog/v2 (#123)
- [4eee2a0](https://github.com/stashed/cli/commit/4eee2a0) Use kglog helper
- [5de2bb5](https://github.com/stashed/cli/commit/5de2bb5) Use klog/v2 (#122)
- [6a110fc](https://github.com/stashed/cli/commit/6a110fc) Use Kubernetes v1.21.0 toolchain (#121)
- [bea398c](https://github.com/stashed/cli/commit/bea398c) Use Kubernetes v1.21.0 toolchain (#120)
- [8f1a18f](https://github.com/stashed/cli/commit/8f1a18f) Use Kubernetes v1.21.0 toolchain (#119)
- [45b1b13](https://github.com/stashed/cli/commit/45b1b13) Update Kubernetes toolchain to v1.21.0 (#118)

## [stashed/elasticsearch](https://github.com/stashed/elasticsearch)

### [5.6.4-v10](https://github.com/stashed/elasticsearch/releases/tag/5.6.4-v10)

- [00e2fb3b](https://github.com/stashed/elasticsearch/commit/00e2fb3b) Prepare for release 5.6.4-v10 (#819)
- [d3954cad](https://github.com/stashed/elasticsearch/commit/d3954cad) [cherry-pick] Use klog/v2 (#810) (#811)
- [51f5e943](https://github.com/stashed/elasticsearch/commit/51f5e943) [cherry-pick] Use kglog helper (#802)
- [bb125283](https://github.com/stashed/elasticsearch/commit/bb125283) Use k8s 1.21.0 toolchain

### [6.2.4-v10](https://github.com/stashed/elasticsearch/releases/tag/6.2.4-v10)

- [6cd15ccb](https://github.com/stashed/elasticsearch/commit/6cd15ccb) Prepare for release 6.2.4-v10 (#820)
- [e6a3e186](https://github.com/stashed/elasticsearch/commit/e6a3e186) [cherry-pick] Use klog/v2 (#810) (#812)
- [d969c43d](https://github.com/stashed/elasticsearch/commit/d969c43d) [cherry-pick] Use kglog helper (#803)
- [b7cc8f39](https://github.com/stashed/elasticsearch/commit/b7cc8f39) Use k8s 1.21.0 toolchain

### [6.3.0-v10](https://github.com/stashed/elasticsearch/releases/tag/6.3.0-v10)

- [3368493b](https://github.com/stashed/elasticsearch/commit/3368493b) Prepare for release 6.3.0-v10 (#821)
- [134b13c9](https://github.com/stashed/elasticsearch/commit/134b13c9) [cherry-pick] Use klog/v2 (#810) (#813)
- [0b48f103](https://github.com/stashed/elasticsearch/commit/0b48f103) [cherry-pick] Use kglog helper (#804)
- [ac207bc9](https://github.com/stashed/elasticsearch/commit/ac207bc9) Use k8s 1.21.0 toolchain

### [6.4.0-v10](https://github.com/stashed/elasticsearch/releases/tag/6.4.0-v10)

- [fe813d50](https://github.com/stashed/elasticsearch/commit/fe813d50) Prepare for release 6.4.0-v10 (#822)
- [d69452ab](https://github.com/stashed/elasticsearch/commit/d69452ab) [cherry-pick] Use klog/v2 (#810) (#814)
- [74afb891](https://github.com/stashed/elasticsearch/commit/74afb891) [cherry-pick] Use kglog helper (#805)
- [9b94b942](https://github.com/stashed/elasticsearch/commit/9b94b942) Use k8s 1.21.0 toolchain

### [6.5.3-v10](https://github.com/stashed/elasticsearch/releases/tag/6.5.3-v10)

- [a101ccaa](https://github.com/stashed/elasticsearch/commit/a101ccaa) Prepare for release 6.5.3-v10 (#823)
- [73230f53](https://github.com/stashed/elasticsearch/commit/73230f53) [cherry-pick] Use klog/v2 (#810) (#815)
- [023a0131](https://github.com/stashed/elasticsearch/commit/023a0131) [cherry-pick] Use kglog helper (#806)
- [a4d28503](https://github.com/stashed/elasticsearch/commit/a4d28503) Use k8s 1.21.0 toolchain

### [6.8.0-v10](https://github.com/stashed/elasticsearch/releases/tag/6.8.0-v10)

- [8a683935](https://github.com/stashed/elasticsearch/commit/8a683935) Prepare for release 6.8.0-v10 (#824)
- [db27f0d1](https://github.com/stashed/elasticsearch/commit/db27f0d1) [cherry-pick] Use klog/v2 (#810) (#816)
- [970ef1a1](https://github.com/stashed/elasticsearch/commit/970ef1a1) [cherry-pick] Use kglog helper (#807)
- [e1e24ec7](https://github.com/stashed/elasticsearch/commit/e1e24ec7) Use k8s 1.21.0 toolchain

### [7.2.0-v10](https://github.com/stashed/elasticsearch/releases/tag/7.2.0-v10)

- [4eac1ea9](https://github.com/stashed/elasticsearch/commit/4eac1ea9) Prepare for release 7.2.0-v10 (#825)
- [2aa02a10](https://github.com/stashed/elasticsearch/commit/2aa02a10) [cherry-pick] Use klog/v2 (#810) (#817)
- [9dd713c7](https://github.com/stashed/elasticsearch/commit/9dd713c7) [cherry-pick] Use kglog helper (#808)
- [1495f883](https://github.com/stashed/elasticsearch/commit/1495f883) Use k8s 1.21.0 toolchain

### [7.3.2-v10](https://github.com/stashed/elasticsearch/releases/tag/7.3.2-v10)

- [2808b0ba](https://github.com/stashed/elasticsearch/commit/2808b0ba) Prepare for release 7.3.2-v10 (#826)
- [478a1f1d](https://github.com/stashed/elasticsearch/commit/478a1f1d) [cherry-pick] Use klog/v2 (#810) (#818)
- [68236dc9](https://github.com/stashed/elasticsearch/commit/68236dc9) [cherry-pick] Use kglog helper (#809)
- [bfab7862](https://github.com/stashed/elasticsearch/commit/bfab7862) Use k8s 1.21.0 toolchain

## [stashed/installer](https://github.com/stashed/installer)

### [v2021.6.18](https://github.com/stashed/installer/releases/tag/v2021.6.18)

- [2082d2d](https://github.com/stashed/installer/commit/2082d2d) Prepare for release v2021.6.18 (#177)
- [1a0fccb](https://github.com/stashed/installer/commit/1a0fccb) Update user-roles for v1beta1 APIs (#176)
- [3334ea0](https://github.com/stashed/installer/commit/3334ea0) Use k8s 1.21.0 toolchain (#175)

## [stashed/mongodb](https://github.com/stashed/mongodb)

### [3.4.17-v9](https://github.com/stashed/mongodb/releases/tag/3.4.17-v9)

- [3c439686](https://github.com/stashed/mongodb/commit/3c439686) Prepare for release 3.4.17-v9 (#981)
- [767e3e91](https://github.com/stashed/mongodb/commit/767e3e91) [cherry-pick] Use klog/v2 (#969) (#970)
- [18054cc7](https://github.com/stashed/mongodb/commit/18054cc7) [cherry-pick] Use kglog helper (#958)
- [27c8e858](https://github.com/stashed/mongodb/commit/27c8e858) Use k8s 1.21.0 toolchain

### [3.4.22-v9](https://github.com/stashed/mongodb/releases/tag/3.4.22-v9)

- [d79dd9fa](https://github.com/stashed/mongodb/commit/d79dd9fa) Prepare for release 3.4.22-v9 (#982)
- [5af76acd](https://github.com/stashed/mongodb/commit/5af76acd) [cherry-pick] Use klog/v2 (#969) (#971)
- [07acc184](https://github.com/stashed/mongodb/commit/07acc184) [cherry-pick] Use kglog helper (#959)
- [b1607397](https://github.com/stashed/mongodb/commit/b1607397) Use k8s 1.21.0 toolchain

### [3.6.8-v9](https://github.com/stashed/mongodb/releases/tag/3.6.8-v9)

- [5b8ba177](https://github.com/stashed/mongodb/commit/5b8ba177) Prepare for release 3.6.8-v9 (#984)
- [1c02bbf8](https://github.com/stashed/mongodb/commit/1c02bbf8) [cherry-pick] Use klog/v2 (#969) (#973)
- [c580d161](https://github.com/stashed/mongodb/commit/c580d161) [cherry-pick] Use kglog helper (#961)
- [b13bf55e](https://github.com/stashed/mongodb/commit/b13bf55e) Use k8s 1.21.0 toolchain

### [3.6.13-v9](https://github.com/stashed/mongodb/releases/tag/3.6.13-v9)

- [d947b446](https://github.com/stashed/mongodb/commit/d947b446) Prepare for release 3.6.13-v9 (#983)
- [b2f4a881](https://github.com/stashed/mongodb/commit/b2f4a881) [cherry-pick] Use klog/v2 (#969) (#972)
- [0551d36c](https://github.com/stashed/mongodb/commit/0551d36c) [cherry-pick] Use kglog helper (#960)
- [07d09f0d](https://github.com/stashed/mongodb/commit/07d09f0d) Use k8s 1.21.0 toolchain

### [4.0.3-v9](https://github.com/stashed/mongodb/releases/tag/4.0.3-v9)

- [401bc9aa](https://github.com/stashed/mongodb/commit/401bc9aa) Prepare for release 4.0.3-v9 (#986)
- [fcdd878e](https://github.com/stashed/mongodb/commit/fcdd878e) [cherry-pick] Use klog/v2 (#969) (#975)
- [ab65b810](https://github.com/stashed/mongodb/commit/ab65b810) [cherry-pick] Use kglog helper (#963)
- [184f230e](https://github.com/stashed/mongodb/commit/184f230e) Use k8s 1.21.0 toolchain

### [4.0.5-v9](https://github.com/stashed/mongodb/releases/tag/4.0.5-v9)

- [ae5c3955](https://github.com/stashed/mongodb/commit/ae5c3955) Prepare for release 4.0.5-v9 (#987)
- [09acaf2c](https://github.com/stashed/mongodb/commit/09acaf2c) [cherry-pick] Use klog/v2 (#969) (#976)
- [a9519e31](https://github.com/stashed/mongodb/commit/a9519e31) [cherry-pick] Use kglog helper (#964)
- [e1bf6ac9](https://github.com/stashed/mongodb/commit/e1bf6ac9) Use k8s 1.21.0 toolchain

### [4.0.11-v9](https://github.com/stashed/mongodb/releases/tag/4.0.11-v9)

- [7b685c24](https://github.com/stashed/mongodb/commit/7b685c24) Prepare for release 4.0.11-v9 (#985)
- [7fdf52db](https://github.com/stashed/mongodb/commit/7fdf52db) [cherry-pick] Use klog/v2 (#969) (#974)
- [880ba142](https://github.com/stashed/mongodb/commit/880ba142) [cherry-pick] Use kglog helper (#962)
- [d555bcd5](https://github.com/stashed/mongodb/commit/d555bcd5) Use k8s 1.21.0 toolchain

### [4.1.4-v9](https://github.com/stashed/mongodb/releases/tag/4.1.4-v9)

- [6e674543](https://github.com/stashed/mongodb/commit/6e674543) Prepare for release 4.1.4-v9 (#989)
- [84241d32](https://github.com/stashed/mongodb/commit/84241d32) [cherry-pick] Use klog/v2 (#969) (#978)
- [795b28db](https://github.com/stashed/mongodb/commit/795b28db) [cherry-pick] Use kglog helper (#966)
- [784b8616](https://github.com/stashed/mongodb/commit/784b8616) Use k8s 1.21.0 toolchain

### [4.1.7-v9](https://github.com/stashed/mongodb/releases/tag/4.1.7-v9)

- [42699cc7](https://github.com/stashed/mongodb/commit/42699cc7) Prepare for release 4.1.7-v9 (#990)
- [8e77beec](https://github.com/stashed/mongodb/commit/8e77beec) [cherry-pick] Use klog/v2 (#969) (#979)
- [6e078f0b](https://github.com/stashed/mongodb/commit/6e078f0b) [cherry-pick] Use kglog helper (#967)
- [ff4a14a3](https://github.com/stashed/mongodb/commit/ff4a14a3) Use k8s 1.21.0 toolchain

### [4.1.13-v9](https://github.com/stashed/mongodb/releases/tag/4.1.13-v9)

- [178750b5](https://github.com/stashed/mongodb/commit/178750b5) Prepare for release 4.1.13-v9 (#988)
- [378f5fb7](https://github.com/stashed/mongodb/commit/378f5fb7) [cherry-pick] Use klog/v2 (#969) (#977)
- [0571b8fd](https://github.com/stashed/mongodb/commit/0571b8fd) [cherry-pick] Use kglog helper (#965)
- [af3b544f](https://github.com/stashed/mongodb/commit/af3b544f) Use k8s 1.21.0 toolchain

### [4.2.3-v9](https://github.com/stashed/mongodb/releases/tag/4.2.3-v9)

- [54bf57ea](https://github.com/stashed/mongodb/commit/54bf57ea) Prepare for release 4.2.3-v9 (#991)
- [f6276ddd](https://github.com/stashed/mongodb/commit/f6276ddd) [cherry-pick] Use klog/v2 (#969) (#980)
- [8ead06e7](https://github.com/stashed/mongodb/commit/8ead06e7) [cherry-pick] Use kglog helper (#968)
- [1be76961](https://github.com/stashed/mongodb/commit/1be76961) Use k8s 1.21.0 toolchain

### [4.4.6](https://github.com/stashed/mongodb/releases/tag/4.4.6)

- [cf1ad82d](https://github.com/stashed/mongodb/commit/cf1ad82d) Stash addon for 4.4.6

## [stashed/mysql](https://github.com/stashed/mysql)

### [5.7.25-v10](https://github.com/stashed/mysql/releases/tag/5.7.25-v10)

- [fbbdea8e](https://github.com/stashed/mysql/commit/fbbdea8e) Prepare for release 5.7.25-v10 (#423)
- [9dbc56ef](https://github.com/stashed/mysql/commit/9dbc56ef) [cherry-pick] Bring back the wait loop (#418) (#419)
- [27d3b793](https://github.com/stashed/mysql/commit/27d3b793) Merge pull request #414 from stashed/master-b0db4d5e-5.7.25
- [363734fc](https://github.com/stashed/mysql/commit/363734fc) Use klog/v2 (#413)
- [84f0a160](https://github.com/stashed/mysql/commit/84f0a160) [cherry-pick] Use kglog helper (#409)
- [c430ec91](https://github.com/stashed/mysql/commit/c430ec91) Use k8s 1.21.0 toolchain

### [8.0.3-v10](https://github.com/stashed/mysql/releases/tag/8.0.3-v10)

- [30d727cb](https://github.com/stashed/mysql/commit/30d727cb) Prepare for release 8.0.3-v10 (#426)
- [641cdaab](https://github.com/stashed/mysql/commit/641cdaab) [cherry-pick] Bring back the wait loop (#418) (#422)
- [abe44d1a](https://github.com/stashed/mysql/commit/abe44d1a) Merge pull request #417 from stashed/master-b0db4d5e-8.0.3
- [2208a806](https://github.com/stashed/mysql/commit/2208a806) Use klog/v2 (#413)
- [5d71f395](https://github.com/stashed/mysql/commit/5d71f395) [cherry-pick] Use kglog helper (#412)
- [37726d79](https://github.com/stashed/mysql/commit/37726d79) Use k8s 1.21.0 toolchain

### [8.0.14-v10](https://github.com/stashed/mysql/releases/tag/8.0.14-v10)

- [deeb3b99](https://github.com/stashed/mysql/commit/deeb3b99) Prepare for release 8.0.14-v10 (#424)
- [dca508ca](https://github.com/stashed/mysql/commit/dca508ca) [cherry-pick] Bring back the wait loop (#418) (#420)
- [1c547c34](https://github.com/stashed/mysql/commit/1c547c34) Merge pull request #415 from stashed/master-b0db4d5e-8.0.14
- [62b23b52](https://github.com/stashed/mysql/commit/62b23b52) Use klog/v2 (#413)
- [ce373065](https://github.com/stashed/mysql/commit/ce373065) [cherry-pick] Use kglog helper (#410)
- [274264cc](https://github.com/stashed/mysql/commit/274264cc) Use k8s 1.21.0 toolchain
- [cbfe8255](https://github.com/stashed/mysql/commit/cbfe8255) [cherry-pick] Update Kubernetes toolchain to v1.21.0 (#377) (#379)

### [8.0.21-v4](https://github.com/stashed/mysql/releases/tag/8.0.21-v4)

- [784b9d43](https://github.com/stashed/mysql/commit/784b9d43) Prepare for release 8.0.21-v4 (#425)
- [00cebf5b](https://github.com/stashed/mysql/commit/00cebf5b) [cherry-pick] Bring back the wait loop (#418) (#421)
- [061cb623](https://github.com/stashed/mysql/commit/061cb623) Merge pull request #416 from stashed/master-b0db4d5e-8.0.21
- [e2b260b6](https://github.com/stashed/mysql/commit/e2b260b6) Use klog/v2 (#413)
- [c56b36ef](https://github.com/stashed/mysql/commit/c56b36ef) [cherry-pick] Use kglog helper (#411)
- [c6999cf0](https://github.com/stashed/mysql/commit/c6999cf0) Use k8s 1.21.0 toolchain

## [stashed/percona-xtradb](https://github.com/stashed/percona-xtradb)

### [5.7-v5](https://github.com/stashed/percona-xtradb/releases/tag/5.7-v5)

- [1e66b08](https://github.com/stashed/percona-xtradb/commit/1e66b08) Prepare for release 5.7-v5 (#181)
- [dedc120](https://github.com/stashed/percona-xtradb/commit/dedc120) [cherry-pick] Use klog/v2 (#179) (#180)
- [95cc309](https://github.com/stashed/percona-xtradb/commit/95cc309) [cherry-pick] Use kglog helper (#178)
- [a8338c8](https://github.com/stashed/percona-xtradb/commit/a8338c8) Use k8s 1.21.0 toolchain
- [a0a9785](https://github.com/stashed/percona-xtradb/commit/a0a9785) [cherry-pick] Use license-verifier v0.8.1 (#168)
- [1f9029a](https://github.com/stashed/percona-xtradb/commit/1f9029a) [cherry-pick] Update license verifier to v0.8.0 (#167)
- [0dd44c3](https://github.com/stashed/percona-xtradb/commit/0dd44c3) [cherry-pick] Update license verifier (#166)
- [20481d6](https://github.com/stashed/percona-xtradb/commit/20481d6) [cherry-pick] Fix spelling (#165)
- [0fd7b26](https://github.com/stashed/percona-xtradb/commit/0fd7b26) Move docs into stashed/docs repo + Cleanup (#164)
- [bc52132](https://github.com/stashed/percona-xtradb/commit/bc52132) Prepare for release 5.7.0-v2 (#161)
- [68eb8b6](https://github.com/stashed/percona-xtradb/commit/68eb8b6) [cherry-pick] Update repository config (#159) (#160)
- [aaecf26](https://github.com/stashed/percona-xtradb/commit/aaecf26) Support multiple commands in backup/restore pipeline (#157) (#158)
- [4c6a086](https://github.com/stashed/percona-xtradb/commit/4c6a086) Update repository config (#153) (#154)
- [22f48d0](https://github.com/stashed/percona-xtradb/commit/22f48d0) Use restic 0.12.0 (#150) (#151)
- [a3645ac](https://github.com/stashed/percona-xtradb/commit/a3645ac) Update Kubernetes v1.18.9 dependencies (#148) (#149)
- [affd376](https://github.com/stashed/percona-xtradb/commit/affd376) [cherry-pick] Check codespan schema (#146) (#147)
- [0c3d3ad](https://github.com/stashed/percona-xtradb/commit/0c3d3ad) [cherry-pick] Update repository config (#141) (#142)
- [937cfc8](https://github.com/stashed/percona-xtradb/commit/937cfc8) [cherry-pick] Update repository config (#139) (#140)
- [8d03640](https://github.com/stashed/percona-xtradb/commit/8d03640) [cherry-pick] Update Kubernetes v1.18.9 dependencies (#137) (#138)
- [d6442e5](https://github.com/stashed/percona-xtradb/commit/d6442e5) [cherry-pick] Update repository config (#134) (#135)
- [301bd0a](https://github.com/stashed/percona-xtradb/commit/301bd0a) [cherry-pick] Update Kubernetes v1.18.9 dependencies (#132) (#133)
- [b9865e8](https://github.com/stashed/percona-xtradb/commit/b9865e8) [cherry-pick] Update Kubernetes v1.18.9 dependencies (#130) (#131)
- [5ab3eaa](https://github.com/stashed/percona-xtradb/commit/5ab3eaa) [cherry-pick] Update Kubernetes v1.18.9 dependencies (#128) (#129)
- [3e48d47](https://github.com/stashed/percona-xtradb/commit/3e48d47) Prepare for release 5.7.0-v1 (#126)
- [42458b3](https://github.com/stashed/percona-xtradb/commit/42458b3) Use port from AppBinding (#120) (#125)
- [70d872d](https://github.com/stashed/percona-xtradb/commit/70d872d) [cherry-pick] Update Kubernetes v1.18.9 dependencies (#123) (#124)
- [2927d77](https://github.com/stashed/percona-xtradb/commit/2927d77) [cherry-pick] Update Kubernetes v1.18.9 dependencies (#121) (#122)
- [fadf2d3](https://github.com/stashed/percona-xtradb/commit/fadf2d3) Prepare for release 5.7.0 (#118)
- [4ea69c8](https://github.com/stashed/percona-xtradb/commit/4ea69c8) [cherry-pick] Update repository config (#116) (#117)
- [a133516](https://github.com/stashed/percona-xtradb/commit/a133516) [cherry-pick] Update Kubernetes v1.18.9 dependencies (#114) (#115)
- [1b7be58](https://github.com/stashed/percona-xtradb/commit/1b7be58) [cherry-pick] Update Kubernetes v1.18.9 dependencies (#112) (#113)

## [stashed/postgres](https://github.com/stashed/postgres)

### [9.6.19-v8](https://github.com/stashed/postgres/releases/tag/9.6.19-v8)

- [788fde1b](https://github.com/stashed/postgres/commit/788fde1b) Prepare for release 9.6.19-v8 (#799)
- [173bb49a](https://github.com/stashed/postgres/commit/173bb49a) [cherry-pick] Use gomodules.xyz/go-sh (#789) (#794)
- [e1192aa4](https://github.com/stashed/postgres/commit/e1192aa4) [cherry-pick] Use klog/v2 (#783) (#788)
- [d936ce1b](https://github.com/stashed/postgres/commit/d936ce1b) [cherry-pick] Use kglog helper (#782)
- [aef3ed32](https://github.com/stashed/postgres/commit/aef3ed32) Use k8s 1.21.0 toolchain

### [10.14-v8](https://github.com/stashed/postgres/releases/tag/10.14-v8)

- [2032c1f6](https://github.com/stashed/postgres/commit/2032c1f6) Prepare for release 10.14-v8 (#795)
- [ba31a9af](https://github.com/stashed/postgres/commit/ba31a9af) [cherry-pick] Use gomodules.xyz/go-sh (#789) (#790)
- [986207ab](https://github.com/stashed/postgres/commit/986207ab) [cherry-pick] Use klog/v2 (#783) (#784)
- [497c60cb](https://github.com/stashed/postgres/commit/497c60cb) [cherry-pick] Use kglog helper (#778)
- [45c6ea73](https://github.com/stashed/postgres/commit/45c6ea73) Use k8s 1.21.0 toolchain

### [11.9-v8](https://github.com/stashed/postgres/releases/tag/11.9-v8)

- [531246ba](https://github.com/stashed/postgres/commit/531246ba) Prepare for release 11.9-v8 (#796)
- [abebf170](https://github.com/stashed/postgres/commit/abebf170) [cherry-pick] Use gomodules.xyz/go-sh (#789) (#791)
- [7d51c48b](https://github.com/stashed/postgres/commit/7d51c48b) [cherry-pick] Use klog/v2 (#783) (#785)
- [65c3506e](https://github.com/stashed/postgres/commit/65c3506e) [cherry-pick] Use kglog helper (#779)
- [984994b5](https://github.com/stashed/postgres/commit/984994b5) Use k8s 1.21.0 toolchain

### [12.4-v8](https://github.com/stashed/postgres/releases/tag/12.4-v8)

- [f8a784c1](https://github.com/stashed/postgres/commit/f8a784c1) Prepare for release 12.4-v8 (#797)
- [0de72265](https://github.com/stashed/postgres/commit/0de72265) [cherry-pick] Use gomodules.xyz/go-sh (#789) (#792)
- [5d325eb4](https://github.com/stashed/postgres/commit/5d325eb4) [cherry-pick] Use klog/v2 (#783) (#786)
- [74d0b192](https://github.com/stashed/postgres/commit/74d0b192) [cherry-pick] Use kglog helper (#780)
- [4d4a1fb8](https://github.com/stashed/postgres/commit/4d4a1fb8) Use k8s 1.21.0 toolchain

### [13.1-v5](https://github.com/stashed/postgres/releases/tag/13.1-v5)

- [20973db6](https://github.com/stashed/postgres/commit/20973db6) Prepare for release 13.1-v5 (#798)
- [85fac622](https://github.com/stashed/postgres/commit/85fac622) [cherry-pick] Use gomodules.xyz/go-sh (#789) (#793)
- [a903b4df](https://github.com/stashed/postgres/commit/a903b4df) [cherry-pick] Use klog/v2 (#783) (#787)
- [9c91b43d](https://github.com/stashed/postgres/commit/9c91b43d) [cherry-pick] Use kglog helper (#781)
- [dc1f023f](https://github.com/stashed/postgres/commit/dc1f023f) Use k8s 1.21.0 toolchain

## [stashed/stash](https://github.com/stashed/stash)

### [v0.14.0](https://github.com/stashed/stash/releases/tag/v0.14.0)

- [028736ed](https://github.com/stashed/stash/commit/028736ed) Prepare for release v0.14.0 (#1354)
- [dc602c0d](https://github.com/stashed/stash/commit/dc602c0d) Prepare for release v0.13.1 (#1353)
- [5d8b403f](https://github.com/stashed/stash/commit/5d8b403f) Send audit events when analytics are enabled (#1352)
- [0d934ce8](https://github.com/stashed/stash/commit/0d934ce8) Use ImagePullPolicy "IfNotPresent" instead of "Always" for addons (#1351)
- [e9f48ec4](https://github.com/stashed/stash/commit/e9f48ec4) Use namespace when looking up running BackupSessions for Invoker (#1343)
- [f79218f1](https://github.com/stashed/stash/commit/f79218f1) Create auditor if license file is provided (#1350)
- [a53710bf](https://github.com/stashed/stash/commit/a53710bf) Disable api priortiy and fairness feature for webhook server (#1349)
- [2780fbc6](https://github.com/stashed/stash/commit/2780fbc6) Publish audit events (#1348)
- [ca26878d](https://github.com/stashed/stash/commit/ca26878d) Use klog/v2 (#1347)
- [f8b0c245](https://github.com/stashed/stash/commit/f8b0c245) Use kglog helpers
- [e9fec332](https://github.com/stashed/stash/commit/e9fec332) Update Kubernetes toolchain to v1.21.0 (#1344)

repository: stashed/docs

gha_language: Shell

repo_name: stashed/docs


text:
---
title: Managing Plugins
---

Git Repository
==============

Most plugin-related files are available in the [wazo-provd-plugins
repository](https://github.com/wazo-platform/wazo-provd-plugins.git).
Following examples are relative to the repository directory tree. Any
modifications should be preceeded by a [git pull]{.title-ref}.

Updating a Plugin
=================

We will be using the [xivo-cisco-spa]{.title-ref} plugins family as an
example on this page

There is one directory per family. Here is the directory structure for
`xivo-cisco-spa`:

```Javascript
plugins/xivo-cisco-spa/
+-- model_name_xxx
+-- model_name_xxx
+-- common
+-- build.py
```

Every plugin has a folder called `common`
which regoups common ressources for each model. Every model has its own
folder with its version number.

After modifying a plugin, you must increment the version number. You can
modifiy the file `plugin-info` to change
the version number:

```Javascript
plugins/xivo-cisco-spa/
+-- model_name_xxx
    +-- plugin-info
```

#:exclamation: If ever you modify the folder `common`,
you must increment the version number of all the models.

Use Case: Update Firmwares for a given plugin
---------------------------------------------

Let us suppose we want to update firmwares for xivo-snom from <IP_ADDRESS>
to <IP_ADDRESS> 5. Here are the steps to follow :

1.  Copy folder plugins/xivo-snom/<IP_ADDRESS> to
    plugins/xivo-snom/<IP_ADDRESS>.5
2.  Update VERSION number in plugins/xivo-snom/<IP_ADDRESS>.5/entry.py
3.  Update VERSION number in plugins/xivo-snom/<IP_ADDRESS>.5/plugin-info
4.  Download new firmwares (.bin files from [snom
    website](http://wiki.snom.com/Firmware/V8/Patch))
5.  Update VERSION number and URIs in
    plugins/xivo-snom/<IP_ADDRESS>.5/pkgs/pkgs.db (with uris of downloaded
    files from snom website)
6.  Update sizes and sha1sums in
    plugins/xivo-snom/<IP_ADDRESS>.5/pkgs/pkgs.db (using helper script
    xivo-tools/dev-tools/check_fw)
7.  Update plugins/xivo-snom/build.py (duplicate and update section
    <IP_ADDRESS> > <IP_ADDRESS>.5)

Test your changes
-----------------

You have three different methods to test your changes on your
development machine.

### Always increase plugin version (easiest)

If the production version is 0.4, change the plugin version to 0.4.01,
make your changes and upload to testing (see below).

Next modification will change the plugin version to 0.4.02, etc. When
you are finished making changes, change the version to 0.5 and upload
one last time.

### Edit directly on Wazo

Edit the files in `/var/lib/wazo-provd/plugins`{.interpreted-text
role="file"}.

To apply your changes, go in `wazo-provd-cli` and run:

    plugins.reload('xivo-cisco-spa-7.5.4')

### Disable plugin caching

Edit `/etc/wazo-provd/config.yml` and add
the line:

```YAML
general:
  cache_plugin: True
```

Empty `/var/cache/wazo-provd` and restart
provd.

Make your changes in provd-plugins, update the plugin version to the new
one and upload to testing (see below). Now, every time you
uninstall/install the plugin, the new plugin will be fetched from
testing, instead of being cached, even without changing the version.

### Uploading to testing

Before updating a plugin, it must be passed through the testing phase.
Once it has been approved it can be uploaded to the production server.

In the `wazo-provd-plugins` repo, you must merge your changes in the
`testing` branch before uploading the plugins to `provd.wazo.community`:

    git checkout testing
    git pull
    git merge my-new-branch
    git push  # this step is important: it validates that your build is up-to-date and will not remove anything
    make upload

Afterwards, you must modify the `plugin_server`. This can be changed
with `wazo-provd` endpoint `/provd/configure/plugin_server`.

> [http://provd.wazo.community/plugins/1/testing/]{.title-ref}

You can then update the list of plugins and check the version number for
the plugin that you modified. Don't forget to install the plugin to
test it.

### Mass-install all firmwares related to a given plugin

Using wazo-provd-cli on a Wazo server, one can mass-install firmwares.
Following example installs all firmwares for xivo-snom <IP_ADDRESS>.5 plugin
(note the auto-completion):

    wazo-provd-cli> plugins.installed().keys()
    [u'xivo-snom-<IP_ADDRESS>',
     u'xivo-cisco-sccp-legacy',
     u'xivo-snom-8.4.35',
     u'xivo-snom-<IP_ADDRESS>',
     u'xivo-aastra-switchboard',
     u'xivo-aastra-3.2.2-SP3',
     u'xivo-aastra-<IP_ADDRESS>6',
     u'xivo-cisco-sccp-9.0.3',
     u'null',
     u'xivo-snom-<IP_ADDRESS>.5']
    wazo-provd-cli> p = plugins['xivo-snom-<IP_ADDRESS>.5']
    wazo-provd-cli> p.install_all()

### Uploading to stable

Once checked, you must synchronize the plugin from [testing]{.title-ref}
to [stable]{.title-ref}. If applicable, you should also update the
archive repo.

To download the stable and archive plugins:

    $ make download-stable
    $ make download-archive

Go to the [plugins/_build]{.title-ref} directory and delete the plugins
that are going to be updated. Note that if you are not updating a plugin
but you are instead removing it "once and for all", you should instead
move it to the archive directory:

    $ rm -fi stable/xivo-cisco-spa*

Copy the files from the directory [testing]{.title-ref} to `stable`:

    $ cp testing/xivo-cisco-spa* stable

Go back to the [plugins]{.title-ref} directory and upload the files to
the stable and archive repo:

    $ make upload-stable
    $ make upload-archive

The file are now up to date and you can test by putting back the
[stable]{.title-ref} url in the web-interface's configuration:

    `http://provd.wazo.community/plugins/1/stable/`


text:
# Petris
======

A simple Java reinterpretation of the classic game "Tetris". No pictures, only 100% java code (at the moment).

## How to install Petris

Nothing could be easier. Install the latest version of [Java]. Download the latest Petris [jar]. Run the jar. Enjoy!

## How to play

Right/Left : Move piece

Up/Down : Rotate piece

Space : Drop down piece

D : one line down

S : use power

Y : change power (only in Game Over menu)

T : change "theme" (only in game)

P/Esc : pause/resume

N : start a new game (only in game)

## Changelog (since pre-Alpha 0.33)

### pre-Alpha 0.42

	- Resizable game screen;
	- Debug window now can be showed any time with F3 key.

### pre-Alpha 0.41

	- "Delete profile" introduced;
	- Bug fixes.

### pre-Alpha 0.40

	- Preferences save system introduced;
	- Various menu system improvements.

### pre-Alpha 0.39

	- Highscores and Profiles save system introduced;
	- Advanced pause menu;
	- New filter added: "Antialiasing";
	- Menu System expanded with 4 new types of entries.

### pre-Alpha 0.38

	- Advanced customizable background (gradients, solid colors, gradients with rainbows)
	- Filtering system added
	- 10 filters added including “Blur”, “Posterize”, “Invert”, “JustEdges” (all available in Settings > For testers…)
	- Simple highscoring system added

### pre-Alpha 0.37

	- Background color is now customizable (in Settings menu)
	- New square style added ("NoticeMe")

### pre-Alpha 0.36

	- Great rendering performance improvements

### pre-Alpha 0.35

	- 4 New square styles added;
	- 4 New backgrounds added;
	- Option to change background in Settings menu;
	- Various graphics improvements.

### pre-Alpha 0.34

	- New power: “Freeze”;
	- Multiple full lines in a row will now increase the multiplier.

### pre-Alpha 0.33

	- 15 New square styles added;
	- Various bug fixes;
	- Various menu and gui improvements.

[Java]: https://www.java.com/it/download/

[jar]: https://github.com/ParsleyJ/Petris/blob/master/jars/Petris-preAlpha042.jar?raw=true

repository: ParsleyJ/Petris

repo_name: ParsleyJ/Petris


text:
# [Podman](https://podman.io/getting-started/installation)

## :gear: [Installation](https://podman.io/getting-started/installation)

The Mac client is available through Homebrew:

```
brew install podman
```

To start the Podman-managed VM:

```
podman machine init; \
podman machine start
```

You can then verify the installation information using:

```
podman info
```

```
podman machine ls
```

:bulb: alias is needed

* add the below alias to `.zshrc`

```
alias docker=podman
```

## :x: Delete

* stop machine

```
podman machine stop
```

* remove machine

```
podman machine rm
```

## :cl: Examples

```
podman container run --name activemq --publish 61616:61616 --publish 8161:8161 --detach rmohr/activemq
```

```
open http://localhost:8161/
```

![image](images/admin-active-mq.png)

# References

- [ ] [Podman can't run command on M1 with container built on X86](https://github.com/containers/podman/issues/12144)

Docker uses the same `qemu-user-static`, and the same [binfmt_misc](https://en.wikipedia.org/wiki/Binfmt_misc) feature of Linux in order to do this.

* Install `qemu-user-static`

```
podman machine ssh sudo rpm-ostree install qemu-user-static
```

* Reboot `systemd`

```
podman machine ssh sudo systemctl reboot
```

* Test arm64 is running

```
$ podman-remote run -it arm64v8/alpine
/ # exit
```

repository: CollegeBoreal/Tutoriels

gha_language: TypeScript

repo_name: CollegeBoreal/Tutoriels


text:
# Prezip for [DocPad](http://docpad.org/)

Prezip automatically gzips your files at build time for easier serving.

## Install

	docpad install prezip

## Config

The values listed here are the defaults.

```coffee
plugins:
	prezip:
		# Files with compression ratios below this value are not kept.
		ratio: 0.95

		# Files that don't match a pattern in this list aren't compressed.
		#
		# The elements can be either a string or a RegExp.  Strings are
		# considered suffixes that must match.
		whitelist: [/./],

		# Files that match a pattern in this list aren't compressed.
		blacklist: [],

		# A builtin blacklist of known uncompressible formats.
		#
		# This is broken out from blacklist so that blacklist can be easily
		# modified without overwriting these values.  If you do not want to use
		# these values set it to [].
		blacklistBuiltin: [/* See the source for the list. */],

		# Gzip Compression Settings.
		#
		# See: http://zlib.net/manual.html#Advanced
		#
		# The defaults are for maximum compression and secondly compression speed.
		gzip: {
			level: 9,
			windowBits: 15,
			memLevel: 8,
		},
```

license: Zlib

repository: kevincox/docpad-plugin-prezip

repo_name: kevincox/docpad-plugin-prezip


text:
---
layout: default
---

# 1996-12-03 - Logos here

## Header Data

From: LOGOS<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Message Hash: 68994b3efc3a532e88e4b537e96601b73aa24447a8ebdbbbbb7f80d4551826a7

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1996-12-03 06:04:53 UTC

Raw Date: Mon, 2 Dec 1996 22:04:53 -0800 (PST)

## Raw message

```
{% raw  %}From: LOGOS<EMAIL_ADDRESS>Date: Mon, 2 Dec 1996 22:04:53 -0800 (PST)
To<EMAIL_ADDRESS>Subject: Logos here
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

Sovereign collegues,

     I am Logos. I have adopted this pseudonym to conceal my
'true name'. I want the ideas which I shall be espousing
to stand or fall on their own merits and not on the basis
of biases that my name, sex, ethnicity, etc. might otherwise
elicit. I hope my contributions to this list will be seen as
positive by most list members.
     I intend to limit my postings to only two meta-topics:
decorum and logic. In other words, the way we speak to each
other and the quality of our argumentation.

Decorum

     From time to time, I will 'call' posters on their
intemperate use of rude or provocative language. I believe
Cypherpunks should be a market place of ideas, not a forum
for egos and insults.
     The two houses of the American congress have adopted
rules of decorum. Members may be censored or expelled for
personal attacks and verbal abuse of other members. This
was mandated for a very practical reason. It was realized
that insults, profanity, 'fighting words', etc. could get so
out of hand that they could interfer with the legitimate
work of the congress. While some might say that in the case
of the congress, this would be a good thing, I believe in
the case of Cypherpunks, it is a bad thing.
     I, therefore, call upon each Cypherpunk list members to
personally adopt such a code of conduct for themselves.  If
Democrats can refer to Representative Gingrich as 'my
esteemed collegue' and Republicans can talk about the
'honorable' Ted Kennedy, I see no reason that we cannot
treat Tim May and Dimitry Vilus with similar respect and
courtesy.  What is at stake is far more important than egos.
Cypherpunks defeated Clipper, but of late they have only
defeated themselves.

Logic

     The average reader of this list has sufficient
education and intelligent to understand the most informal
logical falacies. Yet one sees such falacies committed here
with disapointing regularity. I will post definitions of the
most common falacies and will use examples found on this
list as illustrations. If we are to be persuasive among
ourselves and with others, we need to be rigorous in our
thought processes.

I would be honored to hear your thoughts on this post.

Logos out.

{% endraw %}
```

## Thread

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

+ Return to "[Dale Thorn <dthorn@gte.net>](/authors/dale_thorn_dthorn_at_gte_net_)"
+ Return to<EMAIL_ADDRESS>(Dr.Dimitri Vulis KOTM)](/authors/dlv_at_bwalk_dm_com_dr_dimitri_vulis_kotm_)"
+ Return to<EMAIL_ADDRESS>(Igor Chudov @ home)](/authors/ichudov_at_algebra_com_igor_chudov__at__home_)"
+ Return to "[LOGOS <logos@c2.net>](/authors/logos_logos_at_c2_net_)"
+ Return to "["Timothy C. May" <tcmay@got.net>](/authors/timothy_c_may_tcmay_at_got_net_)"

+ 1996-12-03 (Mon, 2 Dec 1996 22:04:53 -0800 (PST)) - Logos here - _LOGOS<EMAIL_ADDRESS>  + 1996-12-03 (Tue, 3 Dec 1996 00:16:54 -0800 (PST)) - [Re: Logos here](/archive/1996/12/18bb90e9b1df2759fa1b0cb460997bddee7b4807dba4a50a53f92a6ce2c04588) -<EMAIL_ADDRESS>(Igor Chudov @ home)_
  + 1996-12-03 (Tue, 3 Dec 1996 01:02:09 -0800 (PST)) - [Re: Logos here](/archive/1996/12/4122363cf7fd231980256be2a1af938cd45b7418b9b7570403a751fd7df62317) - _Dale Thorn<EMAIL_ADDRESS>  + 1996-12-03 (Tue, 3 Dec 1996 01:29:28 -0800 (PST)) - [Re: Logos here](/archive/1996/12/d4300158b9c0944a9a4f22899f8802e7f31bddc62b92bdcc091e2e50870dcbd4) - _"Timothy C. May"<EMAIL_ADDRESS>    + 1996-12-03 (Tue, 3 Dec 1996 07:07:25 -0800 (PST)) - [Re: Logos here](/archive/1996/12/3b76706a5334508cba53f2febffc8379695f8f14fbbb20715d073ee198dea516) -<EMAIL_ADDRESS>(Dr.Dimitri Vulis KOTM)_
  + 1996-12-03 (Tue, 3 Dec 1996 13:34:20 -0800 (PST)) - [Re: Logos here](/archive/1996/12/3ee3367f6dac2af8251b2f2c3c24836c5119cead7197d8eaca811df60406b3df) -<EMAIL_ADDRESS>(Dr.Dimitri Vulis KOTM)_

gha_license_id: MIT


text:
### [CVE-2020-15926](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15926)
![](https://img.shields.io/static/v1?label=Product&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Version&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Vulnerability&message=n%2Fa&color=brighgreen)

### Description

Rocket.Chat through 3.4.2 allows XSS where an attacker can send a specially crafted message to a channel or in a direct message to the client which results in remote code execution on the client side.

### POC

#### Reference
No PoCs from references.

#### Github
- https://github.com/alphaSeclab/sec-daily-2020
- https://github.com/doyensec/awesome-electronjs-hacking

repository: trickest/cve

gha_language: HTML

repo_name: trickest/cve


text:
[![Build Status](https://travis-ci.org/ioos/sos-injector-example.svg?branch=master)](https://travis-ci.org/ioos/sos-injector-example)

# sos-injector-example

Example usage of the sos-injector

## Run the example

To run this example, download the `sos-injector-example.jar` from the
[GitHub releases page](https://github.com/ioos/sos-injector-example/releases)
(or compile this project using Maven) and then run the jar against a running
i52n-sos with `InsertSensor` and `InsertObservation` operations enabled for your IP.

Example:

```shell
java -jar sos-injector-example.jar http://localhost:8080/i52n-sos
```

If you have configured your i52n-sos to require an authorization token for transactional
requests, you can specify the token as a second argument.

Example:

```shell
java -jar sos-injector-example.jar http://localhost:8080/i52n-sos F6tfXAnPoy
```

## Run the example with Docker

The example can also be run with Docker using an image on the IOOS Docker hub.
Be aware that you __cannot__ specify `localhost` as the target i52n-sos hostname
when running in Docker, as `localhost` will refer to the container's hostname.

Example:

```
docker run --rm ioos/sos-injector-example http://<IP_ADDRESS>:8080/i52n-sos
```

## Creating a Custom Source SOS Injector

The source code provides an example (referenced below) to explain how to implement a custom source SOS injector.
The user needs to provide the URL for their own 52 North SOS. This example is located in the source at com.axiomalaska.sos.cnfaic.
To run the example use the following code:

    import com.axiomalaska.sos.ObservationUpdater;
    import com.axiomalaska.sos.cnfaic.CnfaicObservationUpdaterFactory;
    import com.axiomalaska.sos.data.PublisherInfo;
    import com.axiomalaska.sos.data.PublisherInfoImp;

    public class Main{
        public static void main(String[] args){

            CnfaicObservationUpdaterFactory factory = new CnfaicObservationUpdaterFactory();

            PublisherInfo publisherInfo = new PublisherInfoImp();

            ObservationUpdater observationUpdater =
                factory.buildCnfaicObservationUpdater(“http://localhost/sos/sos”, publisherInfo);

            observationUpdater.update();
        }
    }

This example contains 5 stations with 3 sensors each. One of the sensors contains 3 phenomena, while the others only contain one.
When running this code for the first time, 5 stations, 15 sensors, 5 phenomena, 1 network, and around 10,000 observations will be
added to the SOS. This example uses a real source that is located at http://www.cnfaic.org/. Observations are pulled in real time from this website.

To follow along with how this example works, open up the CnfaicObservationUpdaterFactory.java file and look at the buildCnfaicObservationUpdater
method. This method builds an ObservationUpdater object with a CnfaicStationRetriever (StationRetriever) and a CnfaicObservationRetriever
(ObservationRetriever) object.

license: Unlicense


text:
# Kudos

Kudos are a listing of appreciations between community members for their contributions to slide.

Feel free to add a kudo anytime!

| To | Message | From | Date |
| -- | ------- | ---- | ---- |
| [@lukebhan] | Thank you for taking the initiative and landing polynomial GCDHEU in #75! This is a fanstastic change that will unblock the simplification of polynomial division. | [@ayazhafiz] | 06/10/20 |
| [@ayazhafiz] | Huge shoutout for writing the beautiful interner that will make slide so much faster and cleaner. This was a big endeavor that certainly will improve slide in the longterm! Thanks. | [@lukebhan] | 08/28/20 |

[@lukebhan]: https://github.com/lukebhan
[@ayazhafiz]: https://github.com/ayazhafiz

repository: ayazhafiz/slide

branch_name: refs/heads/base

repo_name: ayazhafiz/slide


text:
# statmeth-hw01

Statistical Methods for Data Science @ UniTS (Spring '20) - Homework 01 - Group "B"

A joint effort of:
- [Alice Vegliach](https://github.com/alicev97)
- [Pietro Morichetti](https://github.com/wilsonjefferson)
- [Andrea Cicchini](https://github.com/Andrecik)
- [Emanuele Ballarin](https://github.com/emaballarin)

---
This repository has nothing to do with "meth" the drug, apart from getting high on statistics (and R).


text:
---
title: Trail of Forestry
date: 2021-01-25T08:44:21.000Z
waNumber:<PHONE_NUMBER>139
form:
  - type: textfield
    label: ioioiioio
    id: oioioi
    required: false
  - type: selectfield
    label: Select one of this
    required: true
    enum:
      - pernah
      - solat
      - makan
      - puasa
    id: select
  - type: selectfield
    label: something
    id: sum
    required: true
    enum:
      - husjbee
      - jduhwj
      - hsuuwhd,
      - "usuhw, "
---
## HTML Best Practices

For _security_ reasons, not all **`Markdown`** applications support HTML in Markdown documents. When in doubt, **check** your Markdown application’s documentation. Some applications support only a subset of HTML tags.

[**Use blank lines to**](https://www.google.com/) separate block-level HTML.

Previously I have gone to Japan and america

repository: anggorocu/StaticForm

repo_name: anggorocu/StaticForm


text:
$!Before you drive or ride you have to do several things - these include getting a driving licence, registering your vehicle and making sure it's insured, has a tax disc and an MOT.$!

##Before you drive or ride

To drive or ride a vehicle or motorcycle you must:

* have the correct driving licence
* meet the minimum driving or riding age
* meet the [minimum eyesight rules](/driving-eyesight-rules "minimum eyesight rules")

##Learner drivers

As a learner driver you must:

* be supervised by a qualified driver (not if riding a motorcycle)
* display L plates (L or D plates in Wales)

##Vehicle requirements

The vehicle must:

* be registered with DVLA
* have a valid vehicle tax disc
* have a current MOT certificate (if required)

You must also have a minimum of 3rd party insurance which covers you using the vehicle.

##Changes to personal or vehicle details

You must tell DVLA if you:

* change your name or address
* make any alterations to your vehicle
* sell your vehicle
* develop or have a medical condition

##Driving larger vehicles or buses

There are higher medical and eyesight standards for driving larger vehicles.

You must also tell DVLA if you have convictions relating to your driving conduct.

If you’re applying for a passenger carrying vehicle (PCV) licence then you have to tell DVLA if you have any non-driving convictions as well.

*[DVLA]: Driver and Vehicle Licensing Agency
*[PCV]: Passenger Carrying Vehicle

repository: craigw/govuk-data

gha_language: Ruby

gha_license_id: NOASSERTION

repo_name: craigw/govuk-data


text:
# TSS-scripts

Scripts that [Migus Group](https://migusgroup.com) consultants use to install
and configure [Thycotic](https://thycotic.com/)
[Secret Server](https://thycotic.com/products/secret-server/).

repository: The-Migus-Group/TSS-scripts

repo_name: The-Migus-Group/TSS-scripts


text:
# nsTopBar

The topbar that is used in the nohros site and other applications developed by nohros (http://nohros.com/nsTopBar).

nsTopBar is simple topbar inspired on the bar used by [TheNextWeb](thenextweb.com) at the yer of 2014. It has only
angularjs as dependency.

### [Example](http://nohros.com/nsTopBar)

## Install

You can download all necessary nsTopbar files manually or install it with bower:

```bash
bower install nsTopBar
npm install
grunt compile
```

## Usage

You need only to include ``nsTopbar.js`` and ``nsTopBar.css`` (as minimal setup) to your project and then you can
start using the ``nsTopBar`` widget and directives.

### Widget

```javascript
angular
  .module('nsTopBarExample', [
    'nsTopBar'
  ])

  .controller('MainCtrl', function MainCtrl($scope) {
    $scope.menu = [{
      text: "home",
      href: "#/home"
    }, {
      text: "Themes",
      href: "#/themes"
    }];
  });
```

```html
<ns-topbar></ns-topbar>
```

### nsTopBar Menu

The ``nsTopBar`` defines a directive called ``nsTopBarMenu`` that apply a CSS class to the currently
active menu item. The ``ns-active`` CSS class is applied to a menu item when it is clicked to make it
active and removed from it when other item becomes active.

## Customize with SASS

Customizing the ``nsTopBar`` is easy with the Sass variables provided in ``_topbar.scss`` files.

```scss
// Controle the topbar padding.
$ns-topbar-padding:0 0.75em;
// Controle the topbar and nav bottom border.
$ns-topbar-border-size: 0.125em;
// Control the topbar and nav bottom border collor.
$ns-topbar-border-color: #d9e0e2;

// Control the default color of the menu items.
$nav-link-color : #879096 !default;
// Control the color of the active menu item
$nav-link-active-color : #ff3c1f !default;
// Control the default opacity of the menu items.
$nav-link-opacity: 0.6 !default;
// Control the line-height of the menu items.
$nav-link-line-height: 3em !default;
```

### Themes

You can customize the ``nsTopBar`` through themes. You can use the ``ns-topbar``, ``ns-topbar-nav`` and
``ns-topbar-list`` to create your own theme with semantic markup, like so.

```scss
.custom-topbar-theme {
  &.ns-topbar {
    @include ns-topbar;

    .ns-topbar-nav {
      @include ns-topbar-nav;
    }

    ul {
      @include ns-topbar-list;
    }
  }
}
```

```html
<ns-topbar ns-topbar-theme="custom-topbar-theme">
</ns-topbar>
```

## License

MIT Licensed

Copyright (c) 2013, nohros.com<EMAIL_ADDRESS>
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.

repository: nohros/nsTopBar

repo_name: nohros/nsTopBar


text:
---
indicator: 8.4.2
layout: indicator
permalink: /8-4-2/
sdg_goal: '8'
data_non_statistical: false
goal_meta_link: 'https://unstats.un.org/sdgs/metadata/files/Metadata-08-04-02.pdf'
goal_meta_link_text: United Nations Sustainable Development Goals Metadata (PDF 58.7 KB)
graph_type: line
indicator_name: >-
  Domestic material consumption, domestic material consumption per capita, and
  domestic material consumption per GDP
indicator_sort_order: 08-04-02
published: true
reporting_status: notstarted
target: >-
  Improve progressively, through 2030, global resource efficiency in consumption
  and production and endeavour to decouple economic growth from environmental
  degradation, in accordance with the 10-Year Framework of Programmes on
  Sustainable Consumption and Production, with developed countries taking the
  lead
target_id: '8.4'
graph_title: >-
  8.4.2 Domestic material consumption, domestic material consumption per capita,
  and domestic material consumption per GDP
un_custodian_agency: United Nations Environment Programme (UNEP)
un_designated_tier: '1'
previous: 8-4-1-b
next: 8-4-2-a
data_show_map: false
source_active_1: true
source_url_text_1: Link to source
source_active_2: false
source_url_text_2: Link to Source
source_active_3: false
source_url_3: Link to source
source_active_4: false
source_url_text_4: Link to source
source_active_5: false
source_url_text_5: Link to source
source_active_6: false
source_url_text_6: Link to source
title: Untitled
national_indicator_available: >-
  8.4.2 Domestic material consumption, domestic material consumption per capita,
  and domestic material consumption per GDP
---

repository: statisticamd/open-sdg-data-starter

branch_name: refs/heads/develop

repo_name: statisticamd/open-sdg-data-starter


text:
# iOSDrawTextAnimation (Swift)
####A text drawing animation for iOS written in Swift

I wanted to make good use of the `CTFontCreatePathForGlyph` function from CoreText, so decided to make a simple drawing animation that works with any string and any font.

The following parameters are customizable:

- Text
- Font
- Spacing between characters
- Spacing between words
- Duration
- Border width
- Border color
- Enclosing view

##Demo
----------
Using the Avenir Next Ultra Light font, size 50

![DrawTextAnimation on the string "Swift"](demo-1.gif)

Using Didot, size 50

![DrawTextAnimation on the string "Rocks"](demo-2.gif)

##Usage
----
You will have to import the `StrokeAnimator.swift` file into your project.

To perform an animation, call `performStrokeAnimation` like so:

	performStrokeAnimation(text: "SWIFT",
						   font: swiftFont,
						   characterSpacing: 20.0,
						   wordSpacing: 40.0,
						   duration: 4.0,
						   borderWidth: 1.0,
						   borderColor: color,
						   inView: swiftBox)

or simply

	performStrokeAnimation(text: "SWIFT", font: swiftFont, inView: swiftBox)

An example is provided in `ViewController.swift`.

The text is centered in the view passed in as a parameter.

Have fun!

##License
MIT, see LICENSE for details.

repository: mhtranbn/iOSDrawTextAnimation

repo_name: mhtranbn/iOSDrawTextAnimation


text:
AOSCC 2016
==========

AOSC Conference 2016 will be held at ShanghaiTech University, at the main campus of Zhangjiang Hi-Tech Park.

Address
-------

100 Haike Rd, Pudong, Shanghai, China

上海浦东区海科路 100 号

Date
----

A vote is currently underway at both:

- Weibo, http://vote.weibo.com/poll/137278854
- Community Telegram group

Currently it is confirmed that the conference will be held during the weekend of July 16th, with either the 15th or 18th as the 3rd day of the conference.

Schedule
--------

TBD.


text:
# Workshop: Serverless Image Processing Workflow with AWS Step Functions

In this workshop, you will learn to build a serverless image processing workflow step-by-step using AWS Step Functions.

As can be seen in the diagram below, this workflow processes photos uploaded to Amazon S3 and extracts metadata from the image such as geolocation, size/format, time, etc. It then uses image recognition to tag objects in the photo. In parallel, it also produces a thumbnail of the photo. AWS Step Functions acts as the orchestration to coordinate the various steps involved.

![pick IAM role for state machine](../images/photo-processing-backend-diagram.png)

## Pre-requisites

- Administrative access to an AWS account
- Code editor of choice (e.g. Sublime Text, PyCharm, etc...)

## Instructions

* [Step 0: Set up resources](step-0.md)
* [Step 1: Adding first Lambda step to a AWS Step Functions state machine](step-1.md)
* [Step 2: Add branching logic to state machine](step-2.md)
* [Step 3: Add parallel processing to the workflow](step-3.md)
* [Step 4: Persisting labels and image metadata](step-4.md)
* [Step 5: Start execution from an S3 event](step-5.md)
* [Step 6: Build and Launch the web application](step-6.md)
* [Extra credit options](additional-steps.md)
* [Resource clean-up](clean-up.md)

gha_language: JavaScript


text:
# MagicMirror Module: MMM-Strava
A MagicMirror Module for displaying your Strava data.

[![Build Status](https://img.shields.io/travis/ianperrin/MMM-Strava.svg?maxAge=2592000)](https://travis-ci.org/ianperrin/MMM-Strava)
[![License](https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000)](https://raw.githubusercontent.com/ianperrin/MMM-Strava/master/LICENSE)

## Example

![](.github/example.gif) ![](.github/example-2.png)

### The module displays activity information in one of two modes:
* `table` mode, which includes
  * The number of activities for the period.
  * The total distance for the period.
  * The total number of achievements (recent period only).
* `chart` mode, which includes
  * The total distance, moving time and elevation for the last week.
  * A chart of distance by day.

### In addition you can configure the following options
* Which `activities` (and the order activities) should be displayed.
* Which `period` to display stats for your activities: Recent (last 4 weeks), year to date or all time. (only applicable in `table` mode)
* Whether the module should rotate through the different periods, and the interval between rotations. (only applicable in `table` mode)
* The units (miles/feet or kilometres/metres) used to display the total distance for each activity.

## Installation

In your terminal, go to your MagicMirror's Module folder:
````
cd ~/MagicMirror/modules
````

Clone this repository:
````
git clone https://github.com/ianperrin/MMM-Strava.git
````

Configure the module in your `config/config.js` file.

## Updating the module

If you want to update your MMM-Strava module to the latest version, use your terminal to go to your MMM-Strava module folder and type the following command:

````
git pull
````

If you haven't changed the modules, this should work without any problems.
Type `git status` to see your changes, if there are any, you can reset them with `git reset --hard`. After that, git pull should be possible.

## Using the module

To use this module, add it to the modules array in the `config/config.js` file:
````javascript
modules: [
    {
        module: 'MMM-Strava',
        position: 'top_right',
        config: {
            strava_id: 'your_strava_id',
            access_token: 'your_strava_api_access_token'
        }
    }
]
````

## Configuration options

The following properties can be configured:

| **Option** | **Default** | **Description** | **Possible Values** |
| --- | --- | --- | --- |
| `strava_id` |  | *Required* - Your Strava ID. Obtained from [your My Profile page](https://support.strava.com/hc/en-us/articles/216928797-Where-do-i-find-my-Strava-ID-). For more than 1 user you can use `[strava_id_1, strava_id2]` |  |
| `access_token` |  | *Required* - Your Strava API Access Token. Obtained from [your My API Application page](https://www.strava.com/settings/api). For more than 1 user you can use `[access_token_user_1, access_token_user_2]` |  |
| `mode` | `table` | *Optional* - Determines which mode should be used to display activity information. | `"table"`, `"chart"` |
| `activities` | `["ride", "run", "swim"]` | *Optional* - Determines which activities to display and in which order they are displayed. *Note:* - The activities can be listed in any order, and only one is required. However, they must be entered as an array of strings i.e. comma separated values within square brackets. | `"ride"`, `"run"`, `"swim"` |
| `athlete_text` |  | *Optional* - Replaces the activity texts `"ride"`, `"run"`, `"swim"` with the athlete name you define here. Makes sense if the module is set up for more than 1 user. | `[athlete_1, athlete_2]` |
| `period` | `recent` | *Optional* - What period should be used to summarise the activities in `table` mode. | `recent` = recent (last 4 weeks), `ytd` = year to date, `all` = all time |
| `elevation` | `false` | *Optional* - If set elevation is displayed in `table` mode. | `recent` = recent (last 4 weeks), `ytd` = year to date, `all` = all time |
| `auto_rotate` | `false` | *Optional* - Whether the summary of activities should rotate through the different periods in `table` mode. | `true` = rotates the summary through the different periods, `false` = displays the specified period only. |
| `units` | `config.units` | *Optional* - What units to use. Specified by config.js | *Possible values:* `config.units` = Specified by config.js, `metric` = Kilometres/Metres, `imperial` = Miles/Feet |
| `fade` | `false` | *Optional* - Whether to fade the activities to black. (Gradient) | *Possible values:* `true` or `false` |
| `fadePoint` | `0.1` | *Optional* - Where to start fade? | *Possible values:* `0` (top of the list) - `1` (bottom of list) |
| `updateInterval` | `10000` (10 seconds) | *Optional* - How often does the period have to change? (Milliseconds). | *Possible values:* `1000` - `86400000` |
| `reloadInterval` | `300000` (5 minutes) | *Optional* - How often does the data needs to be reloaded from the API? (Milliseconds). See [Strava documentation](http://strava.github.io/api/#rate-limiting) for API rate limits | `7500` - `86400000` |
| `animationSpeed` | `2500` | *Optional* - The speed of the update animation. (Milliseconds) | `0` - `5000` |


text:
# node-rcedit

[![Travis Build Status](https://travis-ci.org/electron/node-rcedit.svg?branch=master)](https://travis-ci.org/electron/node-rcedit)
[![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/m880ovvfwukowyne/branch/master?svg=true)](https://ci.appveyor.com/project/electron-bot/node-rcedit/branch/master)

Node module to edit resources of Windows executables.

## Building

* Clone the repository
* Run `npm install`
* Run `npm test` to run the tests

## Docs

```js
var rcedit = require('rcedit')
```
On platforms other than Windows, you will need to have [Wine](http://winehq.org)
1.6 or later installed and in the system path.

### `rcedit(exePath, options, callback)`

`exePath` is the path to the Windows executable to be modified.

`options` is an object that can contain following fields:

* `version-string` - An object containing properties to change the `exePath`'s
  version string.
* `file-version` - File's version to change to.
* `product-version` - Product's version to change to.
* `icon` - Path to the icon file (`.ico`) to set as the `exePath`'s default icon.
* `requested-execution-level` - Requested execution level to change to, must be
  either `asInvoker`, `highestAvailable`, or `requireAdministrator`. See
  [here](https://msdn.microsoft.com/en-us/library/6ad1fshk.aspx#Anchor_9) for
  more details.
* `application-manifest` - String path to a local manifest file to use.
  See [here](https://msdn.microsoft.com/en-us/library/windows/desktop/aa374191.aspx)
  for more details.

`version-string` allows you to set the PE file meta keys, such as in the following example:

```
var options = {

	'icon': 'res/icon.ico',
	'file-version': '1.0.0',
	'product-version': '1.0.0',

	'version-string': {
		'CompanyName': 'Acme Inc.',
		'FileDescription': 'A test file',
		'LegalCopyright': 'Copyright (C) Acme Inc.',
		'ProductName': 'My Test'
	}

};
```

`callback` is the `Function` called when the command completes. The function
signature is `function (error)`.

repository: jesobreira/node-rcedit

repo_name: jesobreira/node-rcedit


text:
---
date: "2018-05-05T15:08:30+02:00"
title: "Cloud-native applications: Operator-Framework"
author: "inge4pres"
categories:
  - tech
tags:
  - platform
  - continuous-delivery
  - software
draft: false
---

__Cloud-native__: sounds attractive right? What does it even mean? [Wikipedia](https://en.wikipedia.org/wiki/Cloud-native) has no page on it already so anyone can give its own definition... Here's mine:

_A Cloud-native application has only concern on the functionalities that it has to deliver as it is completely decoupled from the infrastructure it runs on_

So how can software delivery be cloud-native? Isn't software delivery supposed to "install" software onto some infrastructure? Well if your infrastructure provider _is_ cloud-native, you can transitively deliver software on it in a cloud-native way (counts of cloud-native is over 9000, so stopping here)!

Recently RedHat acquired CoreOS, bold move if you ask me. CoreOS since the M&A has been very quite until a week ago when the [operator-framework](https://github.com/operator-framework) was announced through a [blog post](https://coreos.com/blog/introducing-operator-framework); this is a huge step forward for everyone as this new toolkit will empower the average developer with the ability to run operators on Kubernetes and package their applications as extensions to the Kubernetes API.

Never heard of [Custom Resource Definitions](https://kubernetes.io/docs/concepts/api-extension/custom-resources/#customresourcedefinitions)? You'd better get on track as this will be driving the next-gen wave of applications that will run _as part_ of the platform that delivers them, with the ability to automate their management and simplify dramatically their operations which will be tightly integrated with the cluster management itself.

And as usual I'm eager to try out this new toy and see what can be done with it: I want to build a cloud-native software delivery application that will enable CI/CD jobs to be running inside the cluster and managed by the same API server! Using a CRD for the "Pipeline" kind I can control the build/test/release flow of my application and moreover monitor the whole thing with the same tools with which I will monitor my application.

### Creating CD³

I decided to start a new project called [CD³ (cd kube)](https://github.com/inge4pres/cdkube): it will be a Continuous-* software that will run in Kubernetes and will be dedicated to deliver software _through_ Kubernetes. I found Weaveworks did something similar with [Flux](https://github.com/weaveworks/flux/) and since I don't want to reinvent the wheel I'll just try and replicate some functionality of running a continer in an operator.

First things first: I installed the [operator-sdk](https://github.com/operator-framework/operator-sdk) and I have the binary in my `$GOPATH/bin`.
Running

```
$GOPATH/bin/operator-sdk new cdkube --api-version=delivery.inge.4pr.es/v1alpha1 --kind=Pipeline
```

I am resulting in an auto-generated project with some scaffold code, as in [this commit](https://github.com/inge4pres/cdkube/commit/bd7a1cf8790cf02169057f759e40272993673181).
Next I add some details which I think are at the core of a pipeline: the repository with code and configurations, the image to build the software and what version/name give to the resulting application artifact. When adding new items to the Spec and Status of CRD I will modify the [pkg/apis/delivery/v1alpha1/types.go](https://github.com/inge4pres/cdkube/blob/master/pkg/apis/delivery/v1alpha1/types.go) file, then the guide suggests to run `operator-sdk generate k8s` to update the code, in fact the `zz_generated_deepcopy.go` is updated, but I don't see the [deploy/cr.yaml](https://github.com/inge4pres/cdkube/commit/5a17429d206475bcef85077d1f9aeb6fdda50357#diff-5cd8fbaa4e3fbb473c3e57c6fabca2f9) changed as it should so probably there's a bug... Moving forward I have my operator logic to be defined now: I add some check whether the building pod is succeded and build the operator

```
operator-sdk build inge4pres/cdkube:v0.0.1
docker push inge4pres/cdkube:v0.0.1
```

My operator is built, pushed to dockerhub and ready to be kicked in a k8s cluster, so I fire up one in GKE

```
gcloud beta container --project "inge4pres-gcp" clusters create "operator-framework-test" --zone "europe-west1-b" --machine-type "g1-small" --image-type "COS" --disk-size "25"

gcloud container clusters get-credentials operator-framework-test --zone europe-west1-b --project inge4pres-gcp
```

and when it's ready I can deploy the auto-generated resources to the cluster.
An amazing result is that once the depoloyment is done I can create my CRD with the `kubectl` command and see my custom-type declared, running `kubectl create -f deploy/crd.yaml` I have a new object created in k8s

{{< highlight shell >}}
➜  ~ kubectl get pipeline
NAME            AGE
doing-nothing   16s
➜  ~ kubectl describe pipeline
Name:         doing-nothing
Namespace:    default
Labels:       <none>
Annotations:  <none>
API Version:  delivery.inge.4pr.es/v1alpha1
Kind:         Pipeline
Metadata:
  Cluster Name:
  Creation Timestamp:             2018-05-05T18:08:31Z
  Deletion Grace Period Seconds:  <nil>
  Deletion Timestamp:             <nil>
  Initializers:                   <nil>
  Resource Version:               1528
  Self Link:                      /apis/delivery.inge.4pr.es/v1alpha1/namespaces/default/pipelines/doing-nothing
  UID:                            5160a990-508f-11e8-8f06-42010a8401f8
Spec:
Spec:
  Build Arguments:
    building something...
    now I'm done
  Build Commands:
    echo
  Build Image:     busybox
  Repo:            http://github.com/inge4pres/just-a-test
  Target Name:     tesApp
  Target Version:  0.1
Events:            <none>
➜  ~
{{< /highlight >}}

When I deploy my operator and create the custom resource applying the manifest for a pipeline, the operator picks it up and starts a container with the name of the pipeline

{{< highlight shell >}}
➜  cdkube git:(master) ✗ kubectl apply -f deploy/cr.yaml
➜  cdkube git:(master) ✗ kubectl get po
NAME                      READY     STATUS    RESTARTS   AGE
cdkube-57bcf65584-sbvd6   1/1       Running   0          12s
➜  cdkube git:(master) ✗ kubectl apply -f deploy/cr.yaml
pipeline "doing-nothing" created
➜  cdkube git:(master) ✗ kubectl get po
NAME                      READY     STATUS              RESTARTS   AGE
cdkube-57bcf65584-sbvd6   1/1       Running             0          29s
testapp                   0/1       ContainerCreating   0          2s
➜  cdkube git:(master) ✗ kubectl logs cdkube-57bcf65584-sbvd6
time="2018-05-05T18:42:59Z" level=info msg="Go Version: go1.10.2"
time="2018-05-05T18:42:59Z" level=info msg="Go OS/Arch: linux/amd64"
time="2018-05-05T18:42:59Z" level=info msg="operator-sdk Version: 0.0.5+git"
time="2018-05-05T18:42:59Z" level=info msg="starting pipelines controller"
time="2018-05-05T18:43:21Z" level=info msg="build still running, status of builder container: Pending"
➜  cdkube git:(master) ✗ kubectl get po
NAME                      READY     STATUS      RESTARTS   AGE
cdkube-57bcf65584-sbvd6   1/1       Running     0          49s
testapp                   0/1       Completed   2          22s
{{< /highlight >}}

and if I get the `testapp` logs I can see the pipeline execution

{{< highlight shell >}}
➜  cdkube git:(master) ✗ kubectl logs testapp
building something... now I'm done
{{< /highlight >}}

Bonus: if the custom resource is deleted with `kubectl delete -f deploy/cr.yaml` the pod `testapp` gets terminated automatically! I don't know if this magic is done by Kubernetes or by the Operator Framework, but sure I love it as it will enable my resources to be managed with the k8s API just like any other.

I still need to tune the logic of handling the container as I didn't expect the restarts to happen, but hey this looks amazing! In a couple of hours I have an operator that can spawn containers when instructed to do so by custom manifests representing a pipeline!

Stay tuned 😎


text:
> A starter-kit in the format of a github template. Divided in four worskpaces from the basic setup for smart contracts development, a webui, cache server and an android app. This is great for every new project. Containing from tests, to coverage, documentation generators, linters, etc.

This template is a monorepo in which we have four workspaces. For each one of those workspaces we have the following:
- **workspace-blockchain** an example of a solidity smart contracts project
- **workspace-webui** using a *create-react-app* boilerplate with typescript and ethers.js connecting to a local network
- **workspace-android** a basic android app with web3j connecting to a local network
- **workspace-cache-server** a cache server built with express.js and postgresql database, lestening to and caching events.

## Usage
The projects is devided in workspaces and each workspace as it's own dependency manager, with examples of tests, coverage and linters.

To know how to procceed individually in each workspace, please readme the README in each one.

In order to put this project fully running, you must following the steps below
1. Install dependencies in workspace-blockchain
2. Start a local network (See [workspace-blockchain README](workspace-blockchain/README.md) for examples)
3. Start a postgresql database and create the required tables to cache the events (Please, read [workspace-cache-server README](workspace-cache-server/README.md))
4. Deploy the contracts to the local network (again, see [workspace-blockchain README](workspace-blockchain/README.md))
5. Install dependencies in workspace-cache-server (only the first time)
6. Start the cache-server
7. Install dependencies in workspace-webui (only the first time)
8. Start the webui
9. Install dependencies in workspace-android (only the first time)
10. Start the android app

This is a step-by-step on how to get all the workspaces working, but of course, you might not want to run the android app, so, no need to install the dependencies on that workspace. Or, you might not want to start the cache server, so you can ignore steps 3, 5 and 6. That's up to you what to run. But whatever that is, it must be it the order shown above.

## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

## License
[Apache-2.0](LICENSE)

## Credits
* Icons made by srip from  www.flaticon.com

repository: jzafrap/starter-kit

repo_name: jzafrap/starter-kit


text:
Title: Does your Racket project need a makefile?
    Date: 2014-06-19T14:14:59
    Tags: Racket, racket-cookbook

> **NOTE**: **See my [newer post](/2017/04/racket-makefiles.html)**.

Most of my Racket projects don't use a makefile. Why would they? `raco
make` or `raco setup` suffices.

But a makefile can consistently define some common project tasks. And
it can _really_ help when you want to generate HTML documentation from
Scribble sources, and publish it to GitHub Pages using the automagical
`gh-pages` branch.[^pkg]

[^pkg]: Although overall I much prefer Racket's new package manager, the
old PLaneT system automatically hosts Scribble documentation. When
using the new package manager, this makefile makes it much less
tedious to host the documentation on GitHub.

<!-- more -->

GitHub Pages lets you provide a web site for each of your projects.
You:

1. Create an empty, orphan branch named `gh-pages`.
   [GitHub instructions](https://help.github.com/articles/creating-project-pages-manually).

2. Somehow make `gh-pages` contain just the HTML and other files
required for the web site (but preferably not the source files from
your `master` branch).

3. Somehow keep that up-to-date.

Steps 2 and 3 are awkward. To-date I've used some shell scripts that
felt like duct tape.

Yesterday I discovered Tony Garnock-Jones' [makefile][tonyg-makefile]
for his racket-bitsyntax project. It's brilliant. I promptly stole it,
asked him a question about how it works, and asked if I could blog
about it.

[tonyg-makefile]: https://github.com/tonyg/racket-bitsyntax/blob/master/Makefile

Here is his original makefile:

```make
PACKAGENAME=bitsyntax
COLLECTS=bitsyntax

all: setup

clean:
	find . -name compiled -type d | xargs rm -rf
	rm -rf htmldocs

setup:
	raco setup $(COLLECTS)

link:
	raco pkg install --link -n $(PACKAGENAME) $$(pwd)

unlink:
	raco pkg remove $(PACKAGENAME)

htmldocs:
	raco scribble \
		--html \
		--dest htmldocs \
		--dest-name index \
		++main-xref-in \
		--redirect-main http://docs.racket-lang.org/ \
		\
		bitsyntax/scribblings/bitsyntax.scrbl

pages:
	@(git branch -v | grep -q gh-pages || (echo local gh-pages branch missing; false))
	@echo
	@git branch -av | grep gh-pages
	@echo
	@(echo 'Is the branch up to date? Press enter to continue.'; read dummy)
	git clone -b gh-pages . pages

publish: htmldocs pages
	rm -rf pages/*
	cp -r htmldocs/. pages/.
	(cd pages; git add -A)
	-(cd pages; git commit -m "Update $$(date +%Y%m%d%H%M%S)")
	(cd pages; git push)
	rm -rf pages
```

As you can see, it defines some targets for common actions like
running `raco setup`, doing a local package link and unlink.

The really interesting bits are the `htmldocs`, `pages` and `publish`
targets.

- `htmldocs` simply runs `raco scribble` with the options I can never
remember and always need to look up.

- `pages` assumes that you've already created a `gh-pages` branch,
and... does something really weird. It does a `git clone` of the
`gh-pages` branch to a `pages/` subdirectory. Yes, it makes _another_
Git repo down there.

- `publish`

    - Deletes the _contents_ of that `pages/` subdirectory -- but
      leaving its `.git` folder alone -- and copies the `htmldocs/`
      files into `pages/`. In other words it makes the files in
      `pages/` be an exact copy of `htmldocs/`.

    - Commits all changes (if any), using an "Update _datetime_" commit
      message.

    - Does a `git push`. This is interesting. To what "remote" repo
      does it push? Not GitHub. It pushes to the repo in the parent
      directory -- the one from which it was cloned.

    - Blows away the `pages/` subdirectory.

Voila, the `gh-pages` branch has been updated with the latest HTML
output files, and only those files. Very cool.

## My confusion

When I tried using it, two things confused me:

1. When `publish` finishes, the result has _not_ yet been pushed to
the remote for the main repo -- _nothing has been pushed back to
GitHub_, yet. This confused me at first. I thought "publish" would
mean, "actually push to GitHub".[^push] To do so, there needs to be
one more `git push`, up in the main repo directory, as a new last
step.

[^push]: To be clear, Tony did it this way on purpose. He wanted the
final push to GitHub to be something he did manually, as a
safety-check. I completely understand that. I just expected and want
it to behave differently.

2. If you're using a newer Git, like version 1.9.3, when you do just
`git push` you may see this warning:

    ```
    warning: push.default is unset; its implicit value is changing in
    Git 2.0 from 'matching' to 'simple'. To squelch this message
    and maintain the current behavior after the default changes, use:

      git config --global push.default matching

    To squelch this message and adopt the new behavior now, use:

      git config --global push.default simple

    When push.default is set to 'matching', git will push local branches
    to the remote branches that already exist with the same name.

    In Git 2.0, Git will default to the more conservative 'simple'
    behavior, which only pushes the current branch to the corresponding
    remote branch that 'git pull' uses to update the current branch.

    See 'git help config' and search for 'push.default' for further information.
    (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
    'current' instead of 'simple' if you sometimes use older versions of Git)
    ```

    To make it go away, you could either:

    - Make the global configuration change it recommends.

    - Be explicit and say `git push origin gh-pages`. I'm leaning
      towards this so that the makefile will work for someone else,
      regardless of their Git config.

Combining these two points, here is the makefile I made to use with my
`#lang rackjure` project:

```make
PACKAGENAME=rackjure
COLLECTS=rackjure
SCRBL=rackjure/manual.scrbl

all: setup

clean:
	find . -name compiled -type d | xargs rm -rf
	rm -rf htmldocs

setup:
	raco setup $(COLLECTS)

link:
	raco pkg install --link -n $(PACKAGENAME) $$(pwd)

unlink:
	raco pkg remove $(PACKAGENAME)

htmldocs: $(SCRBL)
	raco scribble \
		--html \
		--dest htmldocs \
		--dest-name index \
		++main-xref-in \
		--redirect-main http://docs.racket-lang.org/ \
		\
		$(SCRBL)

pages:
	@(git branch -v | grep -q gh-pages || (echo local gh-pages branch missing; false))
	@echo
	@git branch -av | grep gh-pages
	@echo
	@(echo 'Is the branch up to date? Press enter to continue.'; read dummy)
	git clone -b gh-pages . pages

publish: htmldocs pages
	rm -rf pages/*
	cp -r htmldocs/. pages/.
	(cd pages; git add -A)
	-(cd pages; git commit -m "Update $$(date +%Y%m%d%H%M%S)")
	(cd pages; git push origin gh-pages)
	rm -rf pages
	git push origin gh-pages
```

However in case I change it after this blog post, see the latest
version [here][rackjure-makefile].

[rackjure-makefile]: https://github.com/greghendershott/rackjure/blob/master/makefile

Also, FYI, [here's][fear-makefile] a variant I made for _Fear of
Macros_. This one has targets to build both [multi-page] and
[all-in-one] HTML.

[fear-makefile]: https://github.com/greghendershott/fear-of-macros/blob/master/makefile
[multi-page]: http://www.greghendershott.com/fear-of-macros
[all-in-one]: http://www.greghendershott.com/fear-of-macros/all.html

---

Racket doesn't need as much external "infrastructure" as some other
languages. You don't need this for very casual projects. But a
makefile like this, plus perhaps a
[`travis.yml` for Travis-CI][travis], can be nice for some projects.

[travis]: http://www.greghendershott.com/2013/07/using-travis-ci-for-racket-projects.html

repository: greghendershott/blog

repo_name: greghendershott/blog


text:
Currently just a bit of code to interact with iOS' Lockdownd and usbmuxd.

To run:

`go run lockdownclient.go usbmux.go`

You probably want to use libimobiledevice to setup the connection to the device: run `ssh -L 62078:/var/run/usbmuxd yourmachine` to forward the usbmuxd socket from the machine attached to the device to your dev machine.

The pairing record for your device should be placed in pairrecord.plist. You can find these in /var/lib/lockdown . In the future this'll grab these from usbmuxd automatically.

Licensed under the three-clause BSD license.

repository: zhuowei/Fait

repo_name: zhuowei/Fait


text:
---
title: "Algo. Art"
created_at: Thu Feb  4 05:17:21 MST 2016
kind: article
tags:
  - art
  - algorithm_art
---

# Blender

# aaa

# Chaotica

chaoticafractals.com

What is Chaotica?  Chaotica is a next-generation fractal art application,
designed for both novices and professional artists.

Novice users can enjoy editing randomised fractals to produce stunning
HD wallpapers and animations.

Professional users will particularly value the fast, modern rendering
engine. High quality animations and huge images for print are easily
produced, with real-time imaging controls that will dramatically
accelerate your workflow.

designs made by FRAMEofMIND


text:
# gawk

[![NPM Version][npm-image]][npm-url]
[![NPM Downloads][downloads-image]][downloads-url]
[![Travis CI Build][travis-image]][travis-url]
[![Test Coverage][coveralls-image]][coveralls-url]
[![Deps][david-image]][david-url]
[![Dev Deps][david-dev-image]][david-dev-url]

Gawk wraps JavaScript objects and arrays making them observable. Once a JavaScript object is gawked,
you can listen for changes including deeply nested changes. Only objects and arrays can be gawked.
All other types are passed through.

Gawked objects and arrays can be interacted with as if they were regular objects/arrays. Built-in
functions such as `JSON.stringify()` work as expected.

> Note: gawk uses ES2015 proxies and thus requires Node.js 6 or newer.

## Installation

    npm install gawk

## Examples

```javascript
import gawk from 'gawk';

const obj = gawk({
    foo: 'bar'
});

gawk.watch(obj, (obj, src) => {
    console.info('object changed!');
    console.info('new value =', obj);
});

obj.foo = 'baz';

console.info(obj); // { foo: 'baz' }
```

You can also be notified if a deep child is changed:

```javascript
const obj = gawk({
    foo: {
        bar: ['a', 'b']
    }
});

gawk.watch(obj, (obj, src) => {
    console.info('object changed!');
    console.info('new value =', obj);
});

obj.foo.bar.push('c', 'd');

console.info(obj); // { foo: { bar: ['a', 'b', 'c', 'd'] } }
```

To filter watch notifications, simply pass in the property name or array of
property names used to filter the gawk object.

```javascript
const obj = gawk({
	foo: {
		bar: 'hello'
	}
});

gawk.watch(obj, [ 'foo', 'bar' ], value => {
	console.info(`bar changed to ${value}`);
});

obj.foo.bar = 'world!';
```

To stop watching, simply call `gawk.unwatch()` with the original listener function.

```javascript
const obj = gawk({ /* ... */ });

function onChange(obj, src) {
	console.log('changed!');
}

gawk.watch(obj, onChange);

obj.foo = 'bar';

gawk.unwatch(obj, onChange);

obj.foo = 'baz'; // does not fire onChange()
```

## API

### `gawk(obj)`

Gawks the specified object.

 * `obj` - (Object) The object to gawk.

If `obj` is not an object, is `null`, or is a built-in object such as `JSON` or `Math`, then the
original value is returned, otherwise it returns the gawked object.

Note that the returned object is a proxy-wrapped version of the original input object. You can
interact with the object as you normally would. Some Array methods are wrapped to suppress multiple
change notifications for a single call or to workaround limitations of the proxied objects.

### `isGawked(obj)`

Determines if an variable is a gawked object.

 * `obj` - (Object) The object to check if gawked.

Returns `true` if the specified object has been gawked, otherwise `false`

### `gawk.watch(subject, listener)`

### `gawk.watch(subject, filter, listener)`

Starts watching the specified gawked object for changes.

 * `subject` - (Object) The gawked object to watch.
 * `filter` - (Array[String] | String) [optional] A list of one or more nested namespaces to filter.
   When a filter is not specified, then it watches the entire object for changes.
 * `listener` - (Function) The function to call when a change occurs.

Returns the original `subject` value.

The filter is works by matching only a specific namespace pattern. For example, say you have a
gawked object `{ foo: { bar: { baz: 'wiz' } } }` and filtering by `[ 'foo', 'bar' ]`. When you set
`foo.bar.baz = 'pow'`, the listener function will be called with the value `{ baz: 'pow' }`. When
you set `foo.bar.raf = 'muk'`, this change will _not_ be emitted.

### `gawk.unwatch(obj)`

### `gawk.unwatch(obj, fn)`

Stops watching a gawked object.

* `subject` - (Object) The gawked object to watch.
* `listener` - (Function) [optional] The function to call when a change occurs. When a `listener` is
  not specified, all listeners are removed from the gawked object.

Returns the original `subject` value.

### `gawk.merge(obj, ...objs)`

Performs a shallow merge of one or more objects into the specified gawked object.

 * `obj` - (Object) The gawked object to merge values into.
 * `...objs` - (Object) One or more objects to merge in.

Returns the original gawked object `obj`.

Note that subsequent object properties will overwrite existing values. Only a single change event is
emitted after all objects have been merged.

### `gawk.mergeDeep(obj, ...objs)`

Performs a deep merge of one or more objects into the specified gawked object.

* `obj` - (Object) The gawked object to merge values into.
* `...objs` - (Object) One or more objects to merge in.

Returns the original gawked object `obj`.

Just as `gawk.merge()`, subsequent object properties will overwrite existing values. Only a single
change event is emitted after all objects have been merged.

If the destination is an array, the two arrays are concatenated.

## Performance

Each gawked object is wrapped in a `Proxy` and contains a object with the gawked object state:
listeners, parents, previous values, and notification queue. These data structures are
created on an as needed basis. A gawked object with no listeners uses an insignificant amount of
memory. However, if you have an object with many levels of deeply nested objects, it could add up
quickly.

As soon as listeners are added via `gawk.watch()`, it will create the `Map` of listeners. If you add
a filter, then a `WeakMap` of previous values gets created. Each gawked object also tracks its
parents using a `Set`. Again, if filters are not used or the object is not nested (i.e. has no
parent), then there's not a significant amount of memory used.

For runtime performance, the more listeners, the slower the notification system is. This is
especially true if the object being modified is deeply nested. Notifications are propagated through
each parent and each parent's parent and so on.

There aren't any official benchmarks. It's up to you to decide if Gawk is right for your app.
Exercise common sense. Don't gawk objects with several dozens of deeply nested objects. Don't add
thousands of listeners.

## Upgrading to v4

Gawk v4 has dropped all gawk data types. You must always call `gawk()`.

Change all `new GawkObject()` calls to `gawk({})` and `new GawkArray()` to `gawk([])`.

Since Gawk v3 and newer uses ES6 Proxies, you no longer need to call `obj.get()`, `obj.set()`,
`obj.delete()`, etc.

Methods `obj.watch()`, `obj.merge()`, and `obj.mergeDeep()` have moved to `gawk.watch()`,
`gawk.merge()`, and `gawk.mergeDeep()`. The first argument must be a gawk object.

Starting in v3, Gawk no longer hashes values. This means speed. Gawk v3+ is about 19 times faster
than v1 and v2.

## License

(The MIT License)

Copyright (c) 2016-2017 Chris Barber

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.

[npm-image]: https://img.shields.io/npm/v/gawk.svg
[npm-url]: https://npmjs.org/package/gawk
[downloads-image]: https://img.shields.io/npm/dm/gawk.svg
[downloads-url]: https://npmjs.org/package/gawk
[travis-image]: https://img.shields.io/travis/cb1kenobi/gawk.svg
[travis-url]: https://travis-ci.org/cb1kenobi/gawk
[coveralls-image]: https://img.shields.io/coveralls/cb1kenobi/gawk/master.svg
[coveralls-url]: https://coveralls.io/r/cb1kenobi/gawk
[david-image]: https://img.shields.io/david/cb1kenobi/gawk.svg
[david-url]: https://david-dm.org/cb1kenobi/gawk
[david-dev-image]: https://img.shields.io/david/dev/cb1kenobi/gawk.svg
[david-dev-url]: https://david-dm.org/cb1kenobi/gawk#info=devDependencies


text:
---
layout: post
title:  "Using ArduinoISP for Solving Problem that Pro Micro was Probably Broken by High Voltage"
date:   2020-06-08
categories: Experiment_Class
tags: Arduino Prototype Trouble
mathjax: true
author: S.Takahashi
---

* content
{:toc}

Experiment class is in tandem with graduation research. When I'd been getting of adding sensors for controlling function by ultrasonic sensor, the problem was happened caused by incorrect wiring. Pro Micro was missed on PC serial port because of its hardware trouble.

## Fixing

Pushing reset pin is one of the solver. But it was not effective, nothing was getting well. I thought that it has an another trouble, like software's one.

## Rewriting Bootloader from Another Arduino by Using ArduinoISP

Pro Micro is compatible with Arduino Leonardo, not UNO, a little complexed. Wiring like these.

| Arduino UNO | Pro Micro | Signal line |
|-------------|-----------|-------------|
| D13         | 15        | SCK         |
| D12         | 14        | MISO        |
| D11         | 16        | MOSI        |
| D10         | RST       | RESET       |
| 5 V         | VCC       |             |
| GND         | GND       |             |

1. Connect USB cable UNO to PC, and Start Arduino IDE, don't connect Pro Micro ON USB
2. Select "Tools" → "Board" → "Arduino".
3. "File"　→ "Sketch"　→ "Example" → "11. ArduinoISP"
4. "ArduinoISP" and writing "ArduinoISP" code to UNO makes it as AVR  ISP
5. "Tools" → "Board" → "Arduino Leonardo"
6. "Tools"　→ "Writing board" → "Arduino as ISP"
7. "Tools" → "Writing bootloader" → Run it,
8. Check Pro Micro recognition on PC, by connecting USB cable removing UNO and Pro micro is recognized PC as Arduino Leonardo.

gha_language: CSS