text:
# drag-resize-snap
### Provides the ability to drag, re-size, and snap any html element with pure javascript in only 6.37kb minified!

I needed a micro library in pure javasctipt (no jQuery) for draging,  resizeing, and  snapping.  Found a great start [here] (http://codepen.io/zz85/post/resizing-moving-snapping-windows-with-js-css) and heavily modified it to suite my needs:

Check out the [DEMO](http://codepen.io/arctelix/pen/RWVoMv)

Simple config:

    var pane = document.getElementById('pane')
    var drs = makeDRS(pane)

All options:

    // Create an element to drag, resize, and snap
    var pane = document.getElementById('pane')

    // (optional) Create an HTMLElement to use as a drag handle.
    // NOTE: Any child element of pane with class 'drag-area' will be added automatically.

    var handleOne = document.getElementById('some-id')

    // (optional) create a drag handle by absolutely positioned css rules (bounds).
    // Supply 4 sides or three sides and width or height to make four bounds.

    var handleTwo = {
        left:0, 			    // style.left
        bottom:28, 			  // style.bottom
        top:0, 				    // style.tip
        width:33, 			  // style.width
        right:null, 		  // style.right
        height:null, 		  // style.height
        invert: false,		// (false) true: Will invert the bounding box (areas not covered are dragable)
        hide: false,   		// (false) true: Will not append and HTMLelement for the area defined
    }

    // Specify options

    var options = {
        snapEdge: 5, 		  // (5) qty pixels pane needs to be moved beyond window to snap
        snapFull: 100, 	 	// (100) qty pixels pane needs to be moved beyond window to snap full screen
        resizeOuterM: 5, 	// (5) qty pixels outside pane bounds is dragable
        resizeInnerM: 8,  // (8) qty pixels inside pane bounds is dragable
    }

    // Apply the drag resize snap to your element

    var drs = makeDRS(pane, [handleOne , handleTwo], options)

Changes from original source to v 0.1:

* Added a margin reduce when drag handle is clicked to avoid an un-snapable scenario.
* Zero SNAP_MARGINS contribute to un-snapable scenario. Added some protection for this as well.
Highly recommend SNAP_MARGIN of at lest 2 (5 is default), it provides same feel with less headache!
* Added tipple click to center and resize, another safe guard for un-snapable scenario.
* Separated DRAG_MARGINS and SNAP_MARGINS, thees need to be independent.
* Reduced code redundancy by adding getBounds().
* Added ability toggle pane bounds by percent of screen with convertUnits() & toggleUnits().
* Allow multiple drag handles and multiple types: (HTMLElement, bounds(css coordinates), and preset strings).
* Accept handle or array of mixed type handles at instantiation.
* Auto detect HTMLElements as handles with class 'drag-area'.
* Automatically create the ghostpane (never any reason to add it manually?).
* Created some api features snapFullScreen(), restorePreSnap(), center().
* Refactored canMove() to allow for customizable handle bounds.
* Automatically append HTML element for bounds handles.
* Refactored getHandleCoords() to allow for custom handle bounds & presets.
* Allow for inner and outer resize margins for better reliability, especially with corners.
* Allow for drag and resize with cursor hints when ele.style.pointer-events = "none".
* Refactored Calc() to allow for outer margins.
* Other tweaks...

repository: wlzc/drag-resize-snap

repo_name: wlzc/drag-resize-snap


text:
# oxford_rs_analysis
#### Code to perform network analysis on resting-state fMRI data.
#### written by Caroline Nettekoven, Oxford, 2016 - 2020

## Usage
1. Start by looking through the analyse_rs.sh script.

   - This script lists all necessary steps for pre-processing the resting-state data (betting, registration, cleaning, etc.) and conducting statistical analysis on the derived networks with randomise.
   - Depending on the requirements of your data and the recommendations for your sequence parameters, some scripts will likely need some tweaking.

2. Work your way through the steps in analyse_rs.sh by tweaking the parameters and checking your output as you go along.

   - For each step, there are scripts provided with which you can check your processed output and inspect the results.
   - Adjust the visualisation parameters according to the requirements of your data (e.g. the fsleyes display range flag -dr is ideally set to 0 300 for the T1-weighted images and 0 3000 for T2*-weighted images in my dataset, check out the [fsleyes documentation][2]).

    > Note: Turning off slice-timing correction seems to be an issue for FIX, even if the TR is very low (which is when some people recommend turning off slice timing corrections and just using temporal derivatives). Turning it off resulted in FIX not being able to detect multiband artefacts as noise and led to many multiband artefacts in the group-level components.

    > Tip for cerebellar enthusiasts: Be careful with the -m flag when FIX-cleaning. In my experience this massively reduces cerebellar contribution to group networks, potentially because the hand-labelled FIX training data did not include cerebellar regions and therefore wrongly labels most of cerebellar components as noise. If you care about cerebellar signal (which everyone should of course :P), then take caution with using that flag. Try running FIX with and without the flag and compare the group-level components, especially in inferior areas.

3. There are additional scripts with which you can analyse resting-state networks further, for example to relate network strength to behavioural change or neurochemical data. These are not listed in the master script (analyse_rs.sh) script, so have a look through the repository.

If any script throws an error, check your inputs and outputs first. Then have a look at [FSL documentation][4] and search for your error message in the [FSL mailing list archives][1]. If any scripts are missing, you get a persistent error or you want to talk to me about your results, feel free to [email me][3].

If these scripts were helpful to you in your analysis, please consider acknowledging me in your research output.

[1]: <https://www.jiscmail.ac.uk/cgi-bin/webadmin?A0=fsl> "FSL mailing list archive"

[2]: <https://users.fmrib.ox.ac.uk/~paulmc/fsleyes/userdoc/latest/> "FSLeyes documentation"

[3]<EMAIL_ADDRESS>"What's up Caro"

[4]: <https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/> "FSL documentation"

**Happy analysing!**

![Beautiful cerebellar network](resting_state_icon.png)
*Figure 1. The magnificent cerebellar network in the wild.*

license: MIT

branch_name: refs/heads/main

extension: md

license_type: permissive


text:
---
id: requirements
title: Requirements
---
You need **Java**, **Screen**, **Sudo**, **Curl** and **Unzip** for the default [**installation**](./installation) of this software.

Before you install the following programs, run:
```
sudo apt update && sudo apt upgrade
```
## Hardware
### Minimal
128MB JVM Heap size
2GB DDR3 Memory
2 virtual cores
### Recommended
512MB JVM Heap size
8GB DDR3 Memory
2-4 virtual cores
## Software
### Java
The required Java version depends on your planned Spigot version. If you use a Spigot version below 1.9 you have to install Java 8.
So you can check if you have already installed Java and which version you have used.
```
java -version
```
Output:
:::tip Correct
openjdk version "<IP_ADDRESS>" 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build <IP_ADDRESS>+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build <IP_ADDRESS>+1, mixed mode)
:::
:::danger Error
-bash: java -version: Command not found.
:::

If the output is "Command not found", then you need to install Java.
To install Java 11, use the following command:
```
sudo apt install default-jre
```
### Screen
This way you can check if you already have Screen installed.
```
screen -help
```
Output:
:::tip Correct
Use: screen [-opts] [cmd [args]] or: screen -r [host.tty]
:::
:::danger Error
bash: screen: Command not found.
:::

If the output is "Command not found", then you need to install Screen.
To install Screen, use the following command:
```
sudo apt-get install screen
```
### Sudo
This way you can check if you already have Sudo installed.
```
sudo
```
Output:
:::tip Correct
usage: sudo -h | -K | -k | -V
:::
:::danger Error
bash: sudo: Command not found.
:::

If the output is "Command not found", then you need to install Sudo.
To install Sudo, use the following command:
```
apt-get install sudo
```
### Curl
This way you can check if you already have Curl installed.
```
curl
```
Output:
:::tip Correct
curl: try 'curl --help' or 'curl --manual' for more information
:::
:::danger Error
bash: curl: Command not found.
:::

If the output is "Command not found", then you need to install Curl.
To install Curl, use the following command:
```
sudo apt-get install curl
```
### Unzip
This way you can check if you already have Unzip installed.
```
unzip
```
Output:
:::tip Correct
UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.
:::
:::danger Error
bash: unzip: Command not found.
:::
If the output is "Command not found", then you need to install Unzip.
To install Unzip, use the following command:
```
sudo apt-get install unzip
```

repository: GiantTreeLP/website

branch_name: refs/heads/development

repo_name: GiantTreeLP/website


text:
## [Manager](https://discordapp.com/oauth2/authorize?client_id=732237600605208626&permissions=500559086&scope=bot)

[![Patreon](https://img.shields.io/badge/donate-Patreon-orange.svg)](https://patreon.com/snuff)
[![Discord](https://discordapp.com/api/guilds/720071009721647135/widget.png)](https://discord.gg/eEQBT4A)
[![privacy policy](https://img.shields.io/badge/Privacy%20Policy--lightgrey.svg?style=social)](https://gist.github.com/Snuffz/52fc13247025faff9fa05f1edafeb21c)

The Manager was created to moderate servers in language [JavaScript](https://pt.wikipedia.org/wiki/JavaScript) using the library [Discord.js](https://discord.js.org/#/)

## Invite
To add the **Manager** to your server click on the following link:
https://discordapp.com/oauth2/authorize?client_id=732237600605208626&permissions=500559086&scope=bot

### [Wiki](https://github.com/Snuffz/ManagerBot/wiki)

> [ℹ Information](https://github.com/Snuffz/ManagerBot/wiki/Information)
>
> [🗣 Arguments Guide](https://github.com/Snuffz/ManagerBot/wiki/Arguments-Guide)
>
> [🚩 Strikes](https://github.com/Snuffz/ManagerBot/wiki/Strikes)
>
> [🛡 Automod](https://github.com/Snuffz/ManagerBot/wiki/Automod)
>
> [📃 Command List](https://github.com/Snuffz/ManagerBot/wiki/Commands)

## Contact

For contacts with the developer in matters of partnerships, notification or denunciations contact me (Snuff#8305).

For questions or possible bugs, go to the [#support_and_doubts](https://discord.gg/HTV2Wgh) channel and clear that doubt.

repository: Snuffz/ManagerBot

branch_name: refs/heads/master

repo_name: Snuffz/ManagerBot


text:
# Training-Time-Friendly Network for Real-Time Object Detection

The code for implementing the **[TTFNet](https://arxiv.org/abs/1909.00700)** (Accepted to AAAI2020).

![image-20190807160835333](imgs/structure.png)

## Highlights
- **Simple:** Anchor-free, single-stage, light-head, no time-consuming post-processing. TTFNet only requires two detection heads for object localization and size regression, respectively.
- **Training Time Friendly:**  Our TTFNet outperforms a range of real-time detectors while suppressing them in training time. Moreover, super-fast TTFNet-18 and TTFNet-53 can reach 25.9 AP / 112 FPS only after 2 hours and 32.9 AP / 55 FPS after about 3 hours on the MS COCO dataset using 8 GTX 1080Ti.
- **Fast and Precise:** Our TTFNet-18/34/53 can achieve 28.1AP / 112FPS, 31.3AP / 87FPS, and 35.1AP / 54 FPS on 1 GTX 1080Ti.

## Performances
<img src="imgs/table2.png" alt="Table" width=300 />

![Table](imgs/table1.png)

TT stands for training time. * indicates that the result is not presented in the original paper. *fast* stands for the super-fast version and *10x* stands for the long-training version.

All the training time is measured on 8 GTX 1080Ti, and all the inference speed is measured using converged models on 1 GTX 1080Ti. Note that the training time does not include the time consumed by evaluation.

## Installation
Our TTFNet is based on [mmdetection](https://github.com/open-mmlab/mmdetection). Please check [INSTALL.md](INSTALL.md) for installation instructions, and you may want to see the original [README.md](MMDETECTION_README.md). We will submit a pull request soon.

Note that the darknet part was transplanted (i.e., MXNet => Pytorch) from another toolbox [Gluoncv](https://github.com/dmlc/gluon-cv). In addition, portions of the code are borrowed from [CornerNet](https://github.com/princeton-vl/CornerNet) and [CenterNet](https://github.com/xingyizhou/CenterNet). Thanks for their work !

## Inference

We provide the following converged models.

| Model                       | Training Hours | FPS   | AP(minival) | Link                                                         |
| --------------------------- | -------------- | ----- | ----------- | ------------------------------------------------------------ |
| TTFNet-18 (1x)              | 1.8            | 112.2 | 25.9        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttfnet18_1x-fe6884.pth) |
| TTFNet-18 (2x)              | 3.6            | 112.3 | 28.1        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttfnet18_2x-37373a.pth) |
| TTFNet-18 (no-pretrain 10x) | -              | 121.0 | 30.3        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttf18_scratch_aug_10x-4dd327cf.pth) |
| TTFNet-18 (10x)             | -              | 113.6 | 31.8        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttf18_aug_10x-0c5709be.pth) |
| TTFNet-34 (2x)              | 4.1            | 86.6  | 31.3        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttfnet34_2x-0577d0.pth) |
| TTFNet-34 (no-pretrain 10x) | -              | 89.2  | 33.2        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttf34_scratch_aug_10x-da045e42.pth) |
| TTFNet-34 (10x)             | -              | 88.4  | 35.3        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttf34_aug_10x-b394ba77.pth) |
| TTFNet-53 (1x)              | 3.1            | 54.8  | 32.9        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttfnet53_1x-4811e4.pth) |
| TTFNet-53 (2x)              | 6.1            | 54.4  | 35.1        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttfnet53_2x-b381dd.pth) |
| TTFNet-53 (no-pretrain 10x) | -              | 57.2  | 36.2        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttf53_scratch_aug_10x-56878a40.pth) |
| TTFNet-53 (10x)             | 30.6           | 57.0  | 39.3        | [Download](http://downloads.zjulearning.org.cn/ttfnet/ttf53_aug_10x-86c43dd3.pth) |

We also provide the pretrained [Darknet53](http://downloads.zjulearning.org.cn/ttfnet/darknet53_pretrain-9ec35d.pth) and [DLA-34](http://downloads.zjulearning.org.cn/ttfnet/dla34-ba72cf86.pth) here.

The following command will evaluate converged TTFNet-53 on 8 GPUs:

```
./tools/dist_test.sh configs/ttfnet/ttfnet_d53_2x.py /path/to/the/checkpoint 8
```

## Training

The following commands will train TTFNet-18 on 8 GPUs for 24 epochs and TTFNet-53 on 8 GPUs for 12 epochs:

```
./tools/dist_train.sh configs/ttfnet/ttfnet_r18_2x.py 8
```

```
./tools/dist_train.sh configs/ttfnet/ttfnet_d53_1x.py 8
```

## Citations

Please consider citing our paper in your publications if the project helps your research. BibTeX reference is as follows.
```
@article{liu2019training,
  title   = {Training-Time-Friendly Network for Real-Time Object Detection},
  author  = {Zili Liu, Tu Zheng, Guodong Xu, Zheng Yang, Haifeng Liu, Deng Cai},
  journal = {arXiv preprint arXiv:1909.00700},
  year    = {2019}
}
```


text:
---
description: Remove the service from the swarm
keywords: tutorial, cluster management, swarm, service
title: Delete the service running on the swarm
---

The remaining steps in the tutorial don't use the `helloworld` service, so now
you can delete the service from the swarm.

1. If you haven't already, open a terminal and ssh into the machine where you
run your manager node. For example, the tutorial uses a machine named
`manager1`.

2.  Run `docker service rm helloworld` to remove the `helloworld` service.

    ```
    $ docker service rm helloworld

    helloworld
    ```

3.  Run `docker service inspect <SERVICE-ID>` to verify that the swarm manager
removed the service. The CLI returns a message that the service is not found:

    ```
    $ docker service inspect helloworld
    []
    Error: no such service: helloworld
    ```

## What's next?

In the next step of the tutorial, you set up a new service and apply a
[rolling update](rolling-update.md).

gha_language: JavaScript


text:
---
title: "Cloud Error Reporting"
linkTitle: "Cloud Error Reporting"
weight: 90
---

{{% pageinfo %}}
* [Overview](#error-reporting-overview)
* [Using Error Reporting](#using-error-reporting)
* [Errors Manufacturing ](#errors-manufacturing )
{{% /pageinfo %}}

#### Error Reporting Overview

Cloud Error Reporting ([documentation](https://cloud.google.com/error-reporting/docs/)) automatically groups errors depending on stack trace message patterns and shows the frequency of each error group. The error groups are generated automatically, based on stack traces.

On opening an error group report, operators can access to the exact line in the application code where the error occurred and reason about the cause by navigating to the line of the source code on Google Cloud Source Repository.

#### Using Error Reporting

You can access Error Reporting by selecting **Error Reporting** from the GCP navigation menu:

![image](/docs/images/user-guide/31-errorrep.png)

> **Note:** Error Reporting can also let you know when new errors are received; see ["Notifications for Error Reporting"](https://cloud.google.com/error-reporting/docs/notifications) for details.

To get started, select any open error by clicking on the error in the **Error** field:

![image](/docs/images/user-guide/32-errordet.png)

The **Error Details** screen shows you when the error has been occurring in the timeline and provides the stack trace that was captured with the error.  **Scroll down** to see samples of the error:

![image](/docs/images/user-guide/33-samples.png)

Click **View Logs** for one of the samples to see the log messages that match this particular error:

![image](/docs/images/user-guide/34-logs.png)

You can expand any of the messages that matches the filter to see the full stack trace:

![image](/docs/images/user-guide/35-logdet.png)

#### Errors Manufacturing

There are several ways in which you can experiment with Error Reporting tool and manufacture errors that will be reported and displayed in the UI. For the purpose of this demonstration, we will use Cloud Operations Sandbox's Load Generator and SRE Recipes features to simulate errors in the system.

To simulate requests using the load generator we can use the UI or the `sandboxctl` command line tool.

```
$sandboxctl loadgen step
Redeploying Loadgenerator...
Loadgenerator deployed using step pattern
Loadgenerator web UI: http://<ExampleIP>
```

Then to `break` the service we will use [sre-recipes](https://cloud-ops-sandbox.dev/docs/user-guide/explore-your-project-in-gcp/#sre-recipes)(recipe2)

```
$sandboxctl sre-recipes break recipe2
Breaking service operations...
...done
```

In this case you will see in Error Reporting UI you will see a new reported error `Unhealthy pod, failed probe`

![image](/docs/images/user-guide/51-Error-Reporting-podfailed.png)

You can open it to see additional information, in the below example you can see that this error repeats itself several times in the last hour.

![image](/docs/images/user-guide/52-Error-Reporting-pod.png)

You can also press `View logs` to view detailed log information in Cloud Operations Logging.

![image](/docs/images/user-guide/53-Error-Reporting-logs.png)

> Note: at the end, don't forget to recover the service using `sandboxctl sre-recipes restore`.

Another way to `break the service` is to use the load generator to overload the service with too many requests.
In the Load Generator UI( addressed provided about or using `sandboxctl describe`), we will start run a test with `500` users.

> Note: Currently only load test <100 users would be successful.

![image](/docs/images/user-guide/56-Error-Reporting-loadgen.png)

In the UI you will see that the previous error `Unhealthy pod, failed probe`, in addition you can see an additional error `Container Downtime`:

![image](/docs/images/user-guide/54-Error-Reporting2.png)

![image](/docs/images/user-guide/55-Error-Reporting-failed-con-logs.png)

repository: GoogleCloudPlatform/cloud-ops-sandbox

path: /website/content/en/docs/User Guide/Learn Cloud Operations/cloud_error_reporting.md

gha_language: HTML

repo_name: GoogleCloudPlatform/cloud-ops-sandbox


text:
# ShiftRegisterOfDoom
A TPIC6B595 breakout board (TTL), with related Arduino libraries.

** This is not finished yet **
![Rendered Output](TPIC6B595_power_sift_reg_breakout/board_3d.png?raw=true "Rendered Output")

** Notes: **
  - This is my first KiCad project, I am trasitioning from eagleCad so right now I am probably doing things I will cringe at later.
  - I am building this for a trainset, so some design considerations reflect that.

** The Breakout board:  **
  Created using [KiCad](http://kicad-pcb.org/)
  Source in \TPIC6B595_power_sift_reg_breakout
  Spec sheets and sources of information used:
    - http://www.ti.com/lit/ds/symlink/tpic6b595.pdf
	- http://www.ti.com/lit/ds/symlink/tpic6a596.pdf
	- http://forum.arduino.cc/index.php?topic=288359.0
	- https://www.snapeda.com/parts/TPIC6B595/Texas%20Instruments/view-part/

** The Arduino Code:  **
  Once the electrical work is done.

repository: busyDuckman/ShiftRegisterOfDoom

repo_name: busyDuckman/ShiftRegisterOfDoom


text:
---
layout: default
---

# 1996-10-07 - Re: PGP

## Header Data

From<EMAIL_ADDRESS>(John Anonymous MacDonald)

To<EMAIL_ADDRESS>Message Hash: f863b86212005c0e27deb2c225af1fb0141112d5f7c78538e9422fedf49ff5ec

Message ID<EMAIL_ADDRESS>Reply To: _N/A_

UTC Datetime: 1996-10-07 00:01:26 UTC

Raw Date: Mon, 7 Oct 1996 08:01:26 +0800

## Raw message

```
{% raw  %}From<EMAIL_ADDRESS>(John Anonymous MacDonald)
Date: Mon, 7 Oct 1996 08:01:26 +0800
To<EMAIL_ADDRESS>Subject: Re: PGP
Message-ID<EMAIL_ADDRESS>MIME-Version: 1.0
Content-Type: text/plain

There's a rumor that Timmy C. May sells his dead relatives as fertiliser as
they constitute the best shit in California.

{% endraw %}
```

## Thread

+ Return to [October 1996](/archive/1996/10)

+ Return to<EMAIL_ADDRESS>(Anonymous)](/authors/dustman_at_athensnet_com_anonymous_)"
+ Return to<EMAIL_ADDRESS>(John Anonymous MacDonald)](/authors/nobody_at_cypherpunks_ca_john_anonymous_macdonald_)"

+ 1996-10-07 (Mon, 7 Oct 1996 08:01:26 +0800) - Re: PGP -<EMAIL_ADDRESS>(John Anonymous MacDonald)_
  + 1996-10-07 (Mon, 7 Oct 1996 12:32:43 +0800) - [Re: PGP](/archive/1996/10/5b561ca5594d4c0b5f14401b8b81c6452ee29ecd503f0f5f7015135caa6b3ce9) -<EMAIL_ADDRESS>(Anonymous)_

gha_license_id: MIT


text:
# Cartesian products of types equipped with endomorphisms

```agda
module structured-types.cartesian-products-types-equipped-with-endomorphisms where
```

<details><summary>Imports</summary>

```agda
open import foundation.cartesian-product-types
open import foundation.dependent-pair-types
open import foundation.functoriality-cartesian-product-types
open import foundation.universe-levels

open import structured-types.types-equipped-with-endomorphisms
```

</details>

## Idea

The cartesian product of `(A , f)` and `(B , g)` is defined as `(A × B , f × g)`

## Definitions

```agda
product-Endo :
  {l1 l2 : Level} → Endo l1 → Endo l2 → Endo (l1 ⊔ l2)
product-Endo A B =
  (type-Endo A × type-Endo B) ,
  map-prod (endomorphism-Endo A) (endomorphism-Endo B)
```

repository: UniMath/agda-unimath

gha_language: Agda

repo_name: UniMath/agda-unimath


text:
---
layout: post
subheadline:
title: "The Carpentries' In-Person Staff Meeting"
teaser:
header:
    image_fullwidth: "light-blue-wood-texture.jpg"
categories:
    - blog
comments: true
show_meta: true
tags: [""]
authors: ["Belinda Weaver"]
redirect_from: /blog/davis-inperson/
---

The Software and Data Carpentry staff teams met for a two-day in-person meeting on 12-13 September in Davis, California. This was a very productive meeting - more on this below - and it also provided some staff the opportunity to meet others face-to-face for the first time. The team is geographically scattered with staff in the US, Australia and New Zealand. At the meeting, we welcomed new Workshop Administrator [SherAaron Hurt](http://www.datacarpentry.org/blog/announce-sheraaron/), [Business Administrator Elizabeth Williams, and Deputy Director of Instructor Training Karen Word](http://www.datacarpentry.org/blog/new-staff-intro/) (all part-timers) to what will be a merged staff team from 2018, when the [planned merger](http://www.datacarpentry.org/blog/merger/) of the two Carpentries will be complete.

While we are a small team, and thus are limited in what we can achieve, we all see our main role as supporting our community. We want to make it easier for people to participate in everything we do in the Carpentries and to allow them to contribute to that work in any way they can. Accordingly, our meeting focused a lot on ways to foster engagement, remove roadblocks, streamline processes, and recognise the valuable work people do, whether it be  teaching, organizing workshops, lesson maintenance, mentoring, or serving on task forces and sub-committees.

![The Software and Data Carpentry team](/images/swcinperson.jpg)

*L-R*: Karen Word, SherAaron Hurt, Tracy Teal, Kari Jordan (on computer screen), Erin Becker, Maneesha Sane, Elizabeth Williams, Belinda Weaver, Jonah Duckles.
### Our Agenda

On our agenda for the meeting were a number of issues:

- Onboarding new staff
- Aligning our daily work with the mission and vision of the Carpentries
- Identifying essential infrastructure, processes and projects we need to build or improve in order to continue to scale
- Progressing work in key areas such as instructor training, CarpentryCon, mentoring and memberships
- Learning about strategic planning and project management and how to apply those techniques to what we do
- Building communication strategies for the team as a whole
- Updating staff roles and projects

We also discussed the burning question of **swag**, so stay tuned for a whole host of innovations there.

While all this might have seemed like an ambitious plan of work for two days, we frequently split into small groups so we could address issues concurrently. While one group worked on membership planning, another broke ground on planning for CarpentryCon.

### CarpentryCon

Plans for CarpentryCon are now progressing well. Five venue bids have been received, and we have established a CarpentryCon [Trello board](https://trello.com/carpentrycon) to plan all aspects from speakers and sponsors to programs and itineraries.  Some suggested topics from the meeting were 'How the Carpentries got me here' and 'Using Carpentry skills in other contexts'. We also plan to have a Community Building Roundtable to build on the [Champions work we have done recently](https://software-carpentry.org/blog/2017/08/champs-call.html) in fostering local community building. Ideas for CarpentryCon can be lodged [here](https://github.com/carpentries/carpentrycon/blob/master/TopicsThemes.md).

### Mentoring groups

Plans are underway to launch a new round of mentoring groups. The first round aimed to help new instructors find their feet through regular discussions with more experienced community members. We plan to do the same thing for round two of the groups, but we also aim to offer different flavours of mentoring. Those who want help to get their first workshop under their belt will still find a group, but we might offer support for people who would like to be lesson maintainers or developers, or workshop organizers rather than instructors, or those seeking advice and support to build local communities. Expect a blog post calling for applications when the new program kicks off.

### Recognition and Reward

Valuing our community was also a key topic. From feedback we have, people in our community are happy to be working with us, and they value the chance to learn, to develop, and to belong. While we like to draw people in, we do not want to burn people out, so we discussed ways we can recognize and reward the considerable effort volunteers put in to teaching, mentoring, maintaining lessons, and serving on committees. We also discussed how we can keep involved, if we can, the people who train as instructors but never go on to teach for us.

### Staff Development

To try to improve our own team project and planning skills, we heard from [Melanie Nelson](https://twitter.com/melanie_nelson) of [Beyond Managing](http://beyondmanaging.com/), who walked us through a range of strategic planning topics. We plan to employ her advice in organizing further work cycles and projects.

Enhancing our work on equity/inclusion was a topic for day two. Hurricane Irma played havoc with Kari Jordan's plan to present this material in person, but she connected via zoom whenever she could, which was a challenge in a town without power. We discussed three main issues in depth:

 1. How do we ensure that our instructors are philosophically on board with our equity and inclusion principles?
 2. How can we reach out to a more diverse range of institutions?
 3. How do we ensure we do not use idiomatic language that makes our messages hard to understand?

### Wishlists

We brainstormed infrastructure needs to identify things that would make our supporters' lives easier. An all-in-one 'workshop in a box' tool was one suggestion. Better workshop reporting and metrics was another. An anonymous feedback mechanism was also proposed. Reducing time-wasting data entry and duplication was seen as important for efficiency, while more consistency across messaging was also marked as important.

### Take-aways

It was a very productive two days. Here are some positive comments from staff who attended:

- Got some great ideas and plans set up for CarpentryCon
- Getting to know all our new staff members!
- Good conversations around instructor training
- I got to know more about who does what

### Who was at the meeting?

- Tracy Teal, Executive Director (DC)
- Jonah Duckles, Executive Director (SWC)
- Erin Becker, Associate Director (DC) & Director of Instructor Training (SWC/DC)
- Belinda Weaver, Community Development Lead (SWC/DC)
- Maneesha Sane, Program Manager (SWC/DC)
- Kari L. Jordan, Deputy Director of Assessment (DC) (attending remotely)
- Elizabeth Williams, Business Administrator (SWC/DC)
- SherAaron Hurt, Workshop Administrator (SWC/DC)
- Karen Word, Deputy Director of Instructor Training (SWC/DC)

gha_language: SCSS


text:
# Title
    Software Engineering Team Generator - CLI
  ### Description
  This application will allow users to build a software engineering team using command-line interface (CLI).  To start, a Manager (1) will be generated via series of questions.  User is then prompted to add either an Engineer, Intern, or Finish the team build.  Once team has been created and Finish chosen, then a 'team.html' page is rendered displaying the full team and certain information for each employee given their role.

  ##### Table of Contents

   [Installation](#installation)
   [Usage](#usage)
   [License](#license)
   [Contributing](#contributing)
   [Tests](#tests)
   [Questions](#questions)

  ### Installation
    Download all files to a local drive
    Run 'npm install' at location of 'package.json'
    Run 'node app.js' to start questions

  ### Usage
    Answer each question when prompted to specify information for each team member.  Once finished, then check the ../output directory for 'team.html'.  Open this in web browser to view the full team and their information.

  ### License
    MIT License

  ### Contributing
    Bootcamp activities for NodeJS

  ### Tests
    Generated a README file upon execution of code and completion of answering questions.

  ### Questions
       GitHub - BEhnert
       [a link](https://github.com/BEhnert)

       For additional questions, please email me at<EMAIL_ADDRESS>      [a link](mailto:behnert77@gmail.com)


text:
# DYModalNavigationController

[![Version](https://img.shields.io/cocoapods/v/DYModalNavigationController.svg?style=flat)](https://cocoapods.org/pods/DYModalNavigationController)
[![License](https://img.shields.io/cocoapods/l/DYBadge.svg?style=flat)](https://cocoapods.org/pods/DYModalNavigationController)
[![Platform](https://img.shields.io/cocoapods/p/DYModalNavigationController.svg?style=flat)](https://cocoapods.org/pods/DYModalNavigationController)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)

 DYModalNavigationController is a simple UINavigationController subclass written in Swift 5.0. Use cases:
 * present a small size view controller with rounded edges over the current context modally (e.g. if the content is rather small and the standard modal presentation would show a lot of empty space). Set a fixed size so that the navigation controller's size is not adjusted when the screen orientation changes.
 *  present a modal view controller over the current context with top, bottom, left, right margins with a fade in transition. The presenting view controller behind it is still visible at the margins (unless margins set to 0). The size adjusts automatically when the screen orientation changes.
 *  works in a SwiftUI project even without using UIViewControllerRepresentable. Simply create an instance of the DYModalNavigationController and call present() on the instance (available from version 1.2.1)

## Example project

To checkout the example project, simply clone the repo or download the zip file.

## Features

* Create a DYModalNavigationController with a fixed size in case your view controller instance should not change its size when changing the screen orientation.
* Set a background blur or dim effect
* Customise the corner radius of the DYModalNavigationController view.
* Set a slide in/out animation (customisable animation movement directions) or a fade in/out animation
* Customise the drop shadow
* Customise the animation transition duration

## Installation

Installation through Cocoapods or Carthage is recommended.

Cocoapods:

target '[project name]' do
 	pod 'DYModalNavigationController'
end

Carthage: Simply add the following line to your Cartfile.

github "DominikButz/DYModalNavigationController" ~> 1.0

Check out the version history below for the current version.

Afterwards, run "carthage update DYModalNavigationController --platform iOS" in the root directory of your project. Follow the steps described in the carthage project on github (click on the carthage compatible shield above).

Make sure to import DYModalNavigationController into your View Controller subclass:

```Swift
import DYModalNavigationController
```

## Usage

Check out the following examples.

### Code example: Fixed size DYModalNavigationController with background blur

```Swift

   let size = CGSize(width: 300, height: 200)
   var settings = DYModalNavigationControllerSettings()
	   settings.slideInDirection = .right
   settings.slideOutDirection = .right
   settings.backgroundEffect = .blur
   self.navController = DYModalNavigationController(rootViewController: 			contentVC(), fixedSize: size, settings: settings)

```

![DYModalNavigationController example](https://raw.githubusercontent.com/DominikButz/DYModalNavigationController/master/gitResources/DYModalNavigationController1-small.gif "DYModalNavigationController example 1")

### Code example: DYModalNavigationController with margins and fade effect

```Swift

   var settings = DYModalNavigationControllerSettings()
		settings.animationType  = .fadeInOut
		// animationType .slideInOut is default setting!
   self.navController = DYModalNavigationController(rootViewController: 			contentVC(), fixedSize: nil, settings: settings)
   // with fixedSize nil, the size will be set according to the top, bottom, 			left, right margins in the settings.

```

![DYModalNavigationController example](https://raw.githubusercontent.com/DominikButz/DYModalNavigationController/master/gitResources/DYModalNavigationController2-small.gif "DYModalNavigationController example 2")

### Code example: DYModalNavigationController with custom animations

```Swift

   var settings = DYModalNavigationControllerSettings()
		settings.animationType = .custom
   self.navController = DYModalNavigationController(rootViewController: 			contentVC(), fixedSize: size, settings: settings, customPresentationAnimation: { (transitionContext) in

   self.foldOut(transitionContext: transitionContext, navController: self.navController)

       }, customDismissalAnimation: { (transitionContext) in

    self.foldIn(transitionContext: transitionContext, navController: self.navController)

       })

```

![DYModalNavigationController example](https://raw.githubusercontent.com/DominikButz/DYModalNavigationController/master/gitResources/DYModalNavigationController3.gif "DYModalNavigationController example 3")

## Change log)

#### [Version 1.2.3](https://github.com/DominikButz/DYModalNavigationController/releases/tag/1.2.3)
bottom margin bug fix

#### [Version 1.2.2](https://github.com/DominikButz/DYModalNavigationController/releases/tag/1.2.2)
The nav controller is not bound to the bottom anchor of the container view when presenting. the constraint only works if the nav controller has a fixed size and enters the screen from the top or bottom. This change prevents a gap on devices with large safe area at the bottom of the screen (like iPhone 11 etc.).

#### [Version 1.2.1](https://github.com/DominikButz/DYModalNavigationController/releases/tag/1.2.1)
Added customMask as property in DYModalNavigationControllerSettings (allows rounding a subset of corners). Added extension for SwiftUI with present function.
#### [Version 1.2](https://github.com/DominikButz/DYModalNavigationController/releases/tag/1.2)
added backgroundEffectView as accessible parameter in the customAnimation closures.

#### [Version 1.1](https://github.com/DominikButz/DYModalNavigationController/releases/tag/1.1)
added customPresentationAnimation and customDismissalAnimation to the initializer.

#### [Version 1.0](https://github.com/DominikButz/DYModalNavigationController/releases/tag/1.0)
initial version.

## Author

<EMAIL_ADDRESS>
## License

DYModalNavigationController is available under the MIT license. See the LICENSE file for more info.

repository: DominikButz/DYModalNavigationController

repo_name: DominikButz/DYModalNavigationController


text:
## Delphix Dashboards app for Splunk

### Getting Started

### Prerequisites

*   Splunk version 7.x or later
*   Delphix Engine 5.3.x or later
*   Delphix Dashboards app from Splunkbase or Github

### Steps:

1. Install the Delphix Dashboards app on Splunk
2. Configure the events and metrics indexes
3. Update Macros if Necessary
4. Configure Splunk HEC Token.
5. Configure Splunk integration on each Delphix Engine

### Install the Delphix Dashboards app on Splunk

1. In Splunk, Apps>Install app from file
2. Browse to the Delphix Dashboards app package. It will be named delphix_dashboards-<version>.tar.gz
3. Only select Upgrade app if there is already an older version of the app installed.
4. Click Upload
5.
6. The Delphix Dashboards App will now be available on the Apps Menu

### Configure the Splunk HEC Token

1. HEC Tokens are configured under Settings>Data Inputs>HTTP Event Collector
2. Give the token a name
3. Set the Source type to Automatic
4. Set the App Context to Delphix Dashboards
5. Set Allowed indexes to delphix_events and delphix_metrics
6. Set the default index to delphix_events
7. Review and Submit
8. Find the Token Value in Data Inputs > HTTP Event Collector
9. Find HEC Port and SSL Settings inData Inputs > HTTP Event Collector>Global Settings

### Configure the Indexes

1. Indexes are configured under Settings>Indexes
2. Create a new event index for Delphix events (recommended name is ‘delphix_events’)
3. Create a new metrics index for Delphix metrics (recommended name is ‘delphix_metrics’)

### Update Macros if Necessary

1. Macros are configured under Settings>Advanced Search>Search Macros
2. If the index for Delphix events is named something other than ‘delphix_events’, update the ‘delphix_events_index’ macro definition to match: index = “<index_name>”
3. If the index for Delphix metrics is named something other than ‘delphix_metrics’, update the ‘delphix_events_index’ macro definition to match: index = “<index_name>”

### Configure Splunk integration

1. In Delphix Setup>Preferences>Splunk Configuration
2. Enter Splunk Host IP
3. Enter Spunk Port
4. Enter HEC Token Value
5. Set Main Index to delphix_events
6. Change Push Frequency if desired
7. Set SSL to match Splunk Settings
8. Enable Metrics
9. Set Metrics Index to delphix_metrics
10. Change Push Frequency if desired
11. Change Performance Data Granularity if desired
12. Click Send Test Data to test the connection
13. If successful, click Save

### Install the Delphix Dashboards app on Splunk

1. In Splunk, Apps>Install app from file
2. Browse to the Delphix Dashboards app package. It will be named delphix_dashboards-<version>.tar.gz
3. Only select Upgrade app if there is already an older version of the app installed.
4. Click Upload
5. The Delphix Dashboards App will now be available on the Apps Menu
6. Happy Splunking!

repository: Jonathan-Wilcox/SplunkApp

repo_name: Jonathan-Wilcox/SplunkApp


text:
I wrote this poem last week in Boston, out of concern for a person who, in my opinion, thought too rationally about things. A few thoughts on what it means to feel, and listen to one's own feelings.

To a person,
Who I respect and admire
But three wishes from me
To him, that I hope he takes
With grace and acceptance.

That he treats people unlike
The way he treats his code.
People are not black and white,
Not all logical and goal oriented.
To understand people is to
Listen and explore
Their emotional landscape,
Which could match yours exactly,
Or as different as snowy mountains are to grassy plains.

That he learns to forgive and give second chances,
Or third chances, or fourth,
Or however many necessary,
For people who are not dispensable as
Toilet paper is to us.
Bayesian priors, no matter how strong,
Can always be updated by a sudden turn
Of events, for they are always based on
Past events that do not necessarily speak
To the future.
No Bayesian prior will help you predict
Your next perfectly cooked mushroom dish that is completely out of your expectations
Nor, the person who has changed beyond what you expect, and is willing to help you change,
because simply,
It did not exist in your prior.
So I wish he does not become constrained
By his prior,
For the more he is constrained,
The firmer his beliefs,
The less he learns.
And the depths of experience and learning
Goes way beyond what he or I can
Ever imagine.

That he opens his heart
That closing his heart makes him
A more confused person,
Because he is trapped in his emotions,
Relegating them to pure logic,
Explaining them away with words,
When emotions are there to be felt.

Observed.

And shared.


text:
# Helloworld

This repo is a guide on how to:

 * develop microservices
 * and deploy them to Google Container Engine

We build a [Go](https://golang.org/) web server that replies: "Hello world" and can be deployed to
[Google Container Engine](https://cloud.google.com/container-engine/).

#### Intro Course
This guide builds upon this Udacity course:
* [Scalable Microservices with Kubernetes - ud615](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615)
* [My Repo](https://github.com/unders/udacity-kubernetes)

## Tutorial

```
$ mkdir -p $GOPATH/src/github.com/unders
$ cd $GOPATH/src/github.com/unders
$ git clone https://github.com/unders/helloworld
$ cd helloworld
$ make               # and follow the steps in the tutorial
```

## Resources

### People
 * [@kelseyhightower](https://twitter.com/kelseyhightower)
 * [@_askcarter](https://twitter.com/_askcarter)

### Repos
* [](https://github.com/GoogleCloudPlatform/golang-samples/tree/master/appengine_flexible/endpoints/)
* [kelseyhightower/gke-service-accounts-tutorial](https://github.com/kelseyhightower/gke-service-accounts-tutorial)
* [kelseyhightower/gif-maker](https://github.com/kelseyhightower/gif-maker)
* [kelseyhightower/gif-maker-infrastructure](https://github.com/kelseyhightower/gif-maker-infrastructure)
* [kelseyhightower/kubernetes-cluster-federation](https://github.com/kelseyhightower/kubernetes-cluster-federation)
* [kelseyhightower/craft-kubernetes-workshop](https://github.com/kelseyhightower/craft-kubernetes-workshop)
* [kelseyhightower/google-cloud-next-17](https://github.com/kelseyhightower/google-cloud-next-17)
* [kelseyhightower/kube-cert-manager](https://github.com/kelseyhightower/kube-cert-manager)
* [kelseyhightower/cross-gke-cluster-networking](https://github.com/kelseyhightower/cross-gke-cluster-networking)
* [kelseyhightower/app - 12 factor](https://github.com/kelseyhightower/app)

### Books
 * [Kubernetes: Up and Running - 2015](http://shop.oreilly.com/product/0636920043874.do)
 * [Building Microservices - 2015](http://shop.oreilly.com/product/0636920033158.do)

### Articles
* [12 Fractured Apps - 2015<EMAIL_ADDRESS>* [Microservice Trade-Offs - 2015 July](https://martinfowler.com/articles/microservice-trade-offs.html)
* [Microservices Resource Guide](https://martinfowler.com/microservices/)
* [Microservices - a definition of this new architectural term](https://martinfowler.com/articles/microservices.html)

### Videos
* [GOTO 2014 • Microservices • Martin Fowler](https://www.youtube.com/watch?v=wgdBVIX9ifA)
* [Orchestrating with Kubernetes - 2016](https://www.youtube.com/watch?v=21hXNReWsUU)
* [The State of the Art in Microservices by Adrian Cockcroft - 2015](https://www.youtube.com/watch?v=pwpxq9-uw_0)

### Tools
* [Go](https://golang.org/)
* [Docker](https://www.docker.com/)
* [Kubernetes](https://kubernetes.io/)
* [Google Container Engine (GKE) - a hosted Kubernetes service](https://cloud.google.com/container-engine/)

## Kubernetes
* [running-mongodb-on-kubernetes-with-statefulsets](http://blog.kubernetes.io/2017/01/running-mongodb-on-kubernetes-with-statefulsets.html)
* [StatefulSets](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/)

## Google Cloud Platform
* [Google Container Engine](https://cloud.google.com/container-engine/)
* [GCP - load-balancing/ipv6](https://cloud.google.com/compute/docs/load-balancing/ipv6)
* [Google Application Default Credentials](https://developers.google.com/identity/protocols/application-default-credentials)

### ???
 * Deployment Manager
 * Google Cloud Key Management Service

repository: unders/helloworld

repo_name: unders/helloworld


text:
1382\. Balance a Binary Search Tree

Medium

Given the `root` of a binary search tree, return _a **balanced** binary search tree with the same node values_. If there is more than one answer, return **any of them**.

A binary search tree is **balanced** if the depth of the two subtrees of every node never differs by more than `1`.

**Example 1:**

![](https://assets.leetcode.com/uploads/2021/08/10/balance1-tree.jpg)

**Input:** root = [1,null,2,null,3,null,4,null,null]

**Output:** [2,1,3,null,null,null,4]

**Explanation:** This is not the only correct answer, [3,1,4,null,2] is also correct.

**Example 2:**

![](https://assets.leetcode.com/uploads/2021/08/10/balanced2-tree.jpg)

**Input:** root = [2,1,3]

**Output:** [2,1,3]

**Constraints:**

*   The number of nodes in the tree is in the range [1, 104].
*   1 <= Node.val <= 105

repository: javadev/LeetCode-in-Java

gha_language: Java

repo_name: javadev/LeetCode-in-Java


text:
Introduction
============

A simple python app which uses the [M-Bus Master Hat](https://www.packom.net/m-bus-master-hat/) and [pyMeterBus](https://github.com/ganehag/pyMeterBus) to read data from an M-Bus slave.

Setup
=====

```
sudo apt install python-pip
git clone https://github.com/ganehag/pyMeterBus
cd pyMeterBus & sudo python setup.py install & cd ..
sudo python setup.py install
```

Also, if this is the first time using the M-Bus Master Hat, follow the installation instructions [here](https://www.packom.net/m-bus-master-hat-instructions/).

Running
=======

Edit py_mbus_hat.py and change the slave_address to the appropriate value.  Then:

```
python py_mbus_hat.py
```

Operation
=========

* Checks for an M-Bus Master Hat.  If this fails then it is likely you don't have an M-Bus Master Hat installed, or you haven't rebooted the Pi since installing it (remove and then reapply power).

* Turns on the M-Bus.  The M-Bus power led on the Hat should illuminate.

* Reads data from the slave configured above.

* Outputs the data read.

* Turns off the M-Bus, cleans up and exits.

Errors
======

If you have been using the serial port using other software you may get a warning that the serial channel is already in use.  You can suppress the warning by adding:

```
GPIO.setwarnings(False)
```

You may find that the bus needs to be left powered longer than 0.1s (the default in the script) to allow successful reads of the bus.  This is likely to be more prevalent in bus powered meters, as they need some time to power on and stabilise after the bus is powered.

repository: charugaa/pyMbusHat

repo_name: charugaa/pyMbusHat


text:
This file will include a bit of history/release notes.
Note that it is not a complete accounting of changes. It's a weak attempt at a more formal process.

## version 0.x

Before verison 1.x, aegis focused primarily on being a deploy tool for AWS Lambda and API Gateway.
It used a Node.js shim to get Go to work with Lambda pre-native Go support. It had a router and
some helpers. That's about it. The goal was educational as well as just a quick way to start a Go
project/API using Lambda.

## verison 1.x

This version marks a major milestone. Native Go support was made available for Lambda and starting
with this new major version, the Node.js shim was ditched. The decision was also made to start
expanding upon the simple convenient functions and handlers/routers. This is the beginning of
a more proper "framework." The intent is a lightweight framework and deploy tool.

Aegis is opinionated and prefers convention over configuration. It provides many helpers to
handle incoming messages and invents to Lambda functions. It also provides some relevant
AWS infrastructure/resource creation and management.

The goal is not to create a feature rich infrastructure management tool. Use something like
Terraform. The goal is not to create a framework for use with multiple clouds that supports
as many services, languages, and providers as possible. Use something like Serverless.

The goal is to do a few things well instead of trying to do everything. It's about providing
a lightweight set of helpers or framework to help build things faster. It's to be conventional
and flexible. 1.x will focus on adding more event router/handlers and helper functions.
Not every possible service will likely ever covered, the focus will be on the common.

## 1.9.3

- Added Router level middleware (it runs first before the individual route's)

## 1.9.2

- Added a `HostedLogoutURL` field to the `CognitoAppClient` struct. This will help
  handlers automatically redirect users to Cognito hosted logout page.
- Added a Cognito example
- Added a basic "hello world" example
- Fixed/updated `aegis init` boilerplate (that hello world example)

## 1.9.1

 - `lambdaHandler` was added to the Handlers interface for backward compatibility.

## 1.9.0

Unfortunately there are a few breaking changes with this release.
Technically speaking that might dictate a 2.x release, but since this is all "beta"
I'd like to bend semantic versioning rules here.

This is a major improvement that gets the framework out of an architectural bind.
The handler function signature is changing and while there were options to avoid it,
they involved asking the developer to use wrappers/closures or to always use type
assertions. This leads to potential panics. It also involved using Context for DI,
which is frowned upon (for good reason). Lambda events in Go already use interfaces
and there are still events unhandled by the Lambda Go package so not everything comes
into the handlers as a struct. It's not a good idea to move even farther away from
type safety. Not for a framework.

As much as I hate breaking changes and debated the options extensively...I hate
sticking others (or my future self) with a potential runtime explosion even more.
I believe in conventions and reasonable defaults -- not magic. Not obscurity.

- Service dependency injection into handlers has been added
- ***Breaking change*** (small): The signature of _all_ event handlers is now:
  `handler(ctx context.Context, d *aegis.HandlerDependencies, req *aegis.APIProxyRequest ...)`
  It puts a `HandlerDependencies` struct as the second arg and shifts down the event map/structs.
  So it's a relatively small change to all handlers, the arg can be safely ignored if
  you don't need it, but it's still a breaking change.
- *Breaking change* (minor): `Cognito` was moved to a general `Services` field on Aegis.
  `configurations` was moved under `Services` as well. This supports the DI efforts.
- DI now makes possible a generic Cognito JWT middleware that you can use.
  You can find it under `cognito_helpers.go`. It relies on an `access_token` cookie
  and helps reduce some boilerplate code for you.
- Filters have been added to Aegis interface eventHandle() function allowing
  "application-wide" behavior changes or interceptions. It is possible to change
  the Lambda event map for everything at once. It is possible to "re-configure"
  services based on incoming events, etc. Likely a rarely used feature, it adds
  some flexibility for situations that have no other option.
- "Tracer" (TracingStrategy) has been added to the injected handler dependencies.
  This makes it much easier for end users to trace AND add to the existing tracing
  done by the framework (add annotations, metadata, etc.). When it comes to XRay,
  this means working directly with the same subsegment.

## 1.8.0

- Added Cognito app client interface/helper (verify tokens, etc.)
- Adjusted deploy command to add Cognito access to aegis lambda role
- Added cookie helpers using Go's http package by creating fake http.Request
  so reading cookies from API Gateway requests is now easy
- Added an Aegis interface that helps manage various dependencies and services
  to capitalize on Lambda container re-use
- *Breaking change* (minor): RPC() now invokes Lambdas without tracing support.
  So context is not required as the frist argument. This allows an RPC call to be
  made outside of a Lambda event handler. An additional RPC() method has been added
  to the new Aegis interface. This uses the context set on Aegis for tracing (which
  can be overridden). This function also does not require context to be passed.
  This helps to eliminte passing dependencies just for things like tracing.
- AWSClientTracer alias has been removed

## 1.7.0

- RPC handler receiver function changed to take evt value instead of pointer
  as a pointer would be redundant for map, better practice this way
- being support for Cognito trigger events which also take and return a map value

## 1.6.0

- S3 bucket notification triggers and router handler
- begin restructuring/organization of functions for deploy command (Deployer interface)

repository: bleggett/aegis

repo_name: bleggett/aegis


text:
![circularimageview](https://user-images.githubusercontent.com/22986571/30037960-998918f8-91dd-11e7-904e-dd9252349788.png)

# CircularImageview
This project allowing you to create circular and rounded corner imageview in android through simplest way.

In circular imageview It uses a BitmapShader and **does not**:
* create a copy of the original bitmap
* use a clipPath (which is neither hardware accelerated nor anti-aliased)
* use setXfermode to clip the bitmap (which means drawing twice to the canvas)

USAGE
-----
To make a circular ImageView add CircularImageView in your layout XML and add CircularImageView library in your project or you can also grab it through Gradle:

Gradle
------
```
dependencies {
    ...
    compile 'com.jackandphantom.android:circularimageview:1.2.0'
}
```
XML
-----

```xml
<!-- <a> circular imageview xml</a> -->
 <com.jackandphantom.circularimageview.CircleImage
        android:layout_width="270dp"
        android:layout_height="270dp"
        android:src="@drawable/circularImage"
        app:border_width="3dp"
        app:border_color="#ed2e2e"
        app:add_shadow="true"
        app:shadow_color="#a10909"
        app:shadow_radius="20"
        android:id="@+id/circleImage" />

<!-- <a> Rounded corner imageview xml </a> -->
 <com.jackandphantom.circularimageview.RoundedImage
        android:layout_width="320dp"
        android:layout_height="220dp"
        app:rounded_radius="50"
        android:src="@drawable/rounded_Image"
        android:id="@+id/roundedImage3" />

```
You may use the following properties in your XML to change your CircularImageView.

#####Properties:

To add shadow in your circular imageview you have to add property add_shadow= "true"

 /*  circular imageview xml */
*  app.border_width  (Dimension)  ->  default 0dp
*  app.border_color  (Color)      ->  default White
*  app.add_shadow    (boolean)    ->  default false
*  app.shadow_color  (Color)      ->  default Black
*  app.shadow_radius (float)      ->  default 10
*  app.shadow_radius (float)      ->  default 10

/* Rounded corner imageview xml */
* app.rounded_radius  (float)     ->  default 20

JAVA
-----

```java
 CircleImage circleImage = (CircleImage) findViewById(R.id.circleImage);
        circleImage.setBorderColor(Color.BLACK);
        circleImage.setBorderWidth(5);
        circleImage.setAddShadow(true);
        circleImage.setShadowRadius(20);
        circleImage.setShadowColor(Color.parseColor("#a10909"));

  RoundedImage roundedImage = (RoundedImage) findViewById(R.id.roundedImage);
        roundedImage.setRoundedRadius(50);
```
New Functionality
---------
* Now you can load high resolution images without getting outOfmemory exception, all you need to do is call mehtod              * **loadHighResolutionImage** and pass the path of image as arguments

```java
 CircleImage circleImage = (CircleImage) findViewById(R.id.circleImage);
             circleImage.loadHighResolutionImage(String filePath);
 ```

 This method can be load image upto 2MB, 5MB, 10MB, i did'nt know the limitation that how much it can load.

This is my first library use it :) !!

Changelog
---------
* **1.2.0**
    * Now you can load high resolution images without getting outOfmemory exception  (minsdkVersion = 13)

* **1.1.0**
    * Add shadow effect (minsdkVersion = 19)

* **1.0.0**
    * initial release (minsdkVersion = 19)

SAMPLE APP LINK
-----
(https://www.dropbox.com/s/ifd07uaj2z4c9bi/sample.apk?dl=0)

LICENCE
-----

 Copyright 2017 Ankit kumar

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

 Thanks to stackoverflow and Henning Dodenhof


text:
Issue Switcher
==============

Script which takes a Rally or Jira issue ID as an argument, and provides
various types of output related to the issue on stdout.

Currently it provides:
- The issue, and (if it has one) its parent's ID as "`###: <summary>`" and as "`###`"

This script is mostly intended for my personal use along with CopyQ by doing the following:
- Add a command to CopyQ named "Collect Issue data"
- Set the "Content" to: "`^\s*([A-Z]{2,}-?[0-9]{2,9}|https?://rally1.rallydev.com/.+|https?://jira\.[^\s]*)\s*$`"
- Type of Action "Automatic" and "In Menu"
- Command: "`/path/to/issueswitch %2`"
- Output: "`text/plain`"
- Separator: "`\n`"
- Output tab: "`&issues`"

The result of the above is that when an issue ID is copied, CopyQ will run this
script and put it's output into a separate tab.

I recommend creating a single-file binary using pyinstaller by running:

    pyinstaller issueswitch.spec

repository: rygwdn/rallyswitcher

repo_name: rygwdn/rallyswitcher


text:
# Carthay Circle Restaurant (Upstairs)

*Posted by Aubrey on 4/5/23*

Using a reference recording from StarWarsGalaxysEdge, we have been able to ID the loop as follows:

**Carthay Circle Restaurant (Upstairs)**

Loop length: 01:16:54.473

1. A Dream is a Wish - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:59.465)
2. A Whole New World - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:49.612)
3. Winnie the Pooh - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:03:10.065)
4. I See the Light - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:01:28.441)
5. Once Upon a Dream - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:25.596)
<note: Edited start-1:40.285; 2:06.485-end>
6. You Can Fly! You Can Fly! You Can Fly! - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:16.175)
7. Married Life - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:51.781)
8. King of New York - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:03.828)
<note: Possible start of loop; preceded by 0.358 second gap>
9. Some Day My Prince Will Come - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:18.284)
10. Alice in Wonderland - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:41.703)
11. Who's Afraid Of The Big Bad Wolf - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:56.859)
12. Baby Mine - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:17.839)
13. I Wan'na Be Like You - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:03:08.241)
14. Little April Shower - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:01:04.043)
15. Cruella De Vil - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:43.075)
<note: Edited start-2:06.447, then spliced with unreleased alternate take>
16. You've Got a Friend in Me - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:17.676)
17. Once Upon a Dream - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:52.189)
18. Can You Feel the Love Tonight - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:15.920)
19. A Dream Is A Wish Your Heart Makes - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:59.127)
<note: Unedited>
20. Le Festin - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:00.444)
21. He's a Tramp - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:18.770)
22. Ev'rybody Wants to Be a Cat - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:40.786)
23. Be Our Guest - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:34.636)
24. Winnie the Pooh - Bill Cantos - Unreleased (loop length 00:00:46.065)
<note: Alternate take>
25. If I Didn't Have You - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:09.286)
26. Some Day My Prince Will Come - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:17.914)
27. Let's Go Fly a Kite - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:25.229)
28. You've Got a Friend in Me - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:18.069)
29. Cruella De Vil - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:42.808)
<note: Edited start-2:06.447, then spliced with unreleased alternate take>
30. Almost There - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:02:29.135)
31. It's A Small World - Bill Cantos - The Circle Sessions: Piano Performances from Carthay Circle - Vol. 2 (loop length 00:01:41.509)
32. True Love's Kiss - Bill Cantos - The Circle Sessions (Piano Performances from Carthay Circle) (loop length 00:02:49.531)

url: https://raw.githubusercontent.com/SSrustworthy/DLRML-tracklistings/d840a5f476acb230d7815625c6ba575149223b6f/MouseBits Posts Archive 9901155c0ffe400e8ce668e330c3eee5/Carthay Circle Restaurant (Upstairs) df06c260257e4d7d98fb256c58c5a2df.md

repository: SSrustworthy/DLRML-tracklistings

repo_name: SSrustworthy/DLRML-tracklistings


text:
# Maplace.js
Helps you to embed Google Maps into your website, quickly create markers and controls menu for the locations on map.

## Demo
See **[demo website](http://maplacejs.com/)**

## Setup
Download the latest version of Maplace.js and include the Google Maps API v3 along with jQuery.

### JS
```javascript
new Maplace({
	locations: data,
	controls_type: 'list',
	controls_on_map: false
}).Load();
```

### HTML
```html
<div id="controls"></div>
<div id="gmap"></div>
```

### Locations Array
```javascript
var data = [{
	    lat: 45.9,
	    lon: 10.9,
	    title: 'Title A1',
	    html: '<h3>Content A1</h3>',
	    zoom: 8,
	    icon: 'http://www.google.com/mapfiles/markerA.png'
	},{
	    lat: 44.8,
	    lon: 1.7,
	    title: 'Title B1',
	    html: '<h3>Content B1</h3>',
	    show_infowindow: false
	}
];
```

## Options

	    Option
	    Type
	    Default
	    Description

	    map_div
	    string
	    #gmap

	      Where you want to show the Map

	    controls_div
	    string
	    #controls

	      Where you want to show the menu.
	      generate_controls must be true
	      controls_on_map must be false
	      At least more than one location on map

	    generate_controls
	    boolean
	    true

	      If false, the menu will not generated

	    controls_type
	    string
	    dropdown

	      To set the menu type choose between: dropdown | list

	    controls_on_map
	    boolean
	    true

	      If false, the menu will be generated into the element defined by the property controls_div

	    controls_title
	    string

	      Add a title/header text to the menu

	    controls_cssclass
	    string

	      Add a custom class to the menu element

	    controls_applycss
	    boolean
	    true

	      If false, default styles to the menu will not be applied

        controls_position
        string
        'RIGHT_TOP'

          Controls position on the right, below top-right elements of the map.

	    type
	    string
	    marker

	      To set the Map type choose between: marker | polyline | polygon | directions | fusion

	    view_all
	    boolean
	    true

	      If false the link "view all" will not be created

	    view_all_text
	    string
	    View All

	      Set a custom text for the link "view all"

	    start
	    integer
	    0

	      Set the first location to show, 0 stands for "view all"

	    locations
	    Array [locations]
	    []

	      List of locations being marked on the map

	    commons
	    object
	    {}

	      Overwrite every location with a set of common properties

	    show_markers
	    boolean
	    true

	      If false, markers will not be visible on the map

	    show_infowindows
	    boolean
	    true

	      If false, infowindows will not be created

	    infowindow_type
	    string
	    bubble

	      Only bubble is supported

	    map_options
	    Object

		{

			mapTypeId: google.maps.MapTypeId.ROADMAP, //or roadmap

			zoom: 1

		}

	      Map options object, as defined by Google.

	      The property center will be ignored. Check at the Install page to see how to center the map with only one location

        styles
        Object
        {}

          Style options as defined by Google

	    stroke_options
	    Object

		{

		strokeColor: '#0000FF',

		strokeOpacity: 0.8,

		strokeWeight: 2,

		fillColor: '#0000FF',

		fillOpacity: 0.4

		}

	      Stroke options object, as defined by Google.

	      Used in Polyline/Polygon/Directions/Fusion Map type.

	    directions_options
	    Object

		{

		travelMode: 'DRIVING',

		unitSystem: 'METRIC',

		optimizeWaypoints: false,

		provideRouteAlternatives: false,

		avoidHighways: false,

		avoidTolls: false

		}

	      Direction options object, as defined by Google

	    directions_panel
	    string
	    null

	      ID or class of the div in which to display the directions steps.

        fusion_options
        Object
        {}

          Fusion tables options as defined by Google

	    draggable
	    boolean
	    false

	      If true, allows the user to drag and modify the route, the polyline or the polygon

		listeners
		Object
		{}
		Example:

		listeners: {

			click: function(map, event) {

				map.setOptions({scrollwheel: true});

    		}

		}

		Docs: Google maps Events

## Methods

	    Function
	    Params
	    Return
	    Description

	    AddControl
	    string [name], function

	    Add you own menu type to the map

	    CloseInfoWindow

	    Close the current infowindow

	    ShowOnMenu
	    integer [index]
	    boolean
	    Checks if a location has to be shown on menu

	    ViewOnMap
	    integer [index]

	    Triggers to show a location on map

	    SetLocations
	    array [locations], boolean [reload]

	    Replace the current locations

	    AddLocations
	    array [locations] | object [location], boolean [reload]

	    Adds one or many locations

        AddLocation
        object [location], integer [index], boolean [reload]

        Adds one location at the specific index

	    RemoveLocations
	    array [indexes] | integer [index], boolean [reload]

	    Delete one or many locations

	    Load
	    null | boolean | object [options]

	    Loads, updates the current options or force to reload the current options and construct the map

        Loaded

        Checks if a Load() was already been called

## Events

	    Option
	    Type
	    Default
	    Description

	    beforeViewAll
	    function

	      Fires before showing all the locations

	    afterViewAll
	    function

	      Fires after showing all the locations

	    beforeShow
	    function
	    (index, location, marker){}

	      Fires before showing the current triggered location

	    afterShow
	    function
	    (index, location, marker){}

	      Fires after showing the current triggered location

	    afterCreateMarker
	    function
	    (index, location, marker){}

	      Fires after a marker creation

	    beforeCloseInfowindow
	    function
	    (index, location){}

	      Fires before closing the infowindow

	    afterCloseInfowindow
	    function
	    (index, location){}

	      Function called after closing the infowindow

	    beforeOpenInfowindow
	    function
	    (index, location, marker){}

	      Fires before opening the infowindow

	    afterOpenInfowindow
	    function
	    (index, location, marker){}

	      Fires after opening the infowindow

	    afterRoute
	    function
	    (distance, status, result){}

	      Fires after the route calcoule

	    onPolylineClick
	    function
	    (obj) {}

	      Fires when click on polylines

      circleRadiusChanged
          function
          (index, location, marker){}

              This event is fired when the circle's radius is changed.

          circleCenterChanged
          function
          (index, location, marker){}

              This event is fired when the circle's center is changed.

          drag
          function
          (index, location, marker){}

              This event is fired while a marker is dragged.

          dragEnd
          function
          (index, location, marker){}

              This event is fired when the drag event ends.

          dragStart
          function
          (index, location, marker){}

              This event is fired when the drag event starts.

## Requirements
Maplace.js requires jQuery and Google Maps Library v3.

## Source code
All efforts have been made to keep the source as clean and readable as possible.

Maplace.js is released under an MIT License.

## Changelog

**v0.1.3**
- Added circles support allowing mixed markers/circles
- Removed 'hide_marker' option for consistency with "visible"
- Added support to set the initial center position and zoom of the Map
- Improved editable polyline and polygon when visible markers
- Added drag events between markers, circles, polyline and polygon
- Return "this" for public functions to allow method chaining
- Renamed property 'commons' to 'shared' now overridden by location specific options
- Added external reference to Snazzy Maps website for Google Map styling
- Changed debug strategy
- General fixes and enhancements

**v0.1.2**
- General fixes and enhancements

**v0.1.0**
- Initial release


text:
# Problem Set 4 - Stack, Array List, Queue

## Problem 1

Suppose that the `Stack` class consisted only of the three methods `push`, `pop`, and `isEmpty`:

```java
import java.util.NoSuchElementException;

public class Stack<T> {
   public Stack() {
      //
   }

   public void push(T item) {
      //
   }

   public T pop() throws NoSuchElementException {
      //
   }

   public boolean isEmpty() {
      //
   }
}
```

Implement the following "client" method (i.e. _not_ in the `Stack` class, but in the program that uses a stack):

```java
public static <T> int size(Stack<T> S) {
   // COMPLETE THIS METHOD
}
```

to return the number of items in a given stack `S`.

Derive the worst case big O running time of the algorithm you used in your implementation. What are the dominant algorithmic operations you are counting towards the running time?

## Problem 2

A postfix expression is an arithmetic expression in which the operator comes _after_ the values (operands) on which it is applied. Here are some examples of expressions in their regular (infix) form, and their postfix equivalents:

| Infix             | Postfix         |
| ----------------- | --------------- |
| `2`               | `2`             |
| `2 + 3`           | `2 3 +`         |
| `2 * (3 + 4)`     | `2 3 4 + *`     |
| `2 * (3 - 4) / 5` | `2 3 4 - * 5 /` |

Note that the postfix form does not ever need parentheses.

Implement a method to evaluate a postfix expression. The expression is a string which contains either single-digit numbers (`0-9`), or the operators `+`, `-`, `*`, and `/`, and nothing else. There is exactly one space between every two characters. The string has no leading spaces and no trailing spaces. You may assume that the input expression is not empty, and is correctly formatted as above.

You may find the following `Stack` class to be useful - assume the constuctor and methods are already implemented.

```java
import java.util.NoSuchElementException;

public class Stack<T> {
   public Stack() {
      //
   }

   public push(T item) {
      //
   }

   public T pop() throws NoSuchElementException {
      //
   }

   public T peek() throws NoSuchElementException {
      //
   }

   public boolean isEmpty() {
      //
   }

   public void clear(T item) {
      //
   }

   public int size(T item) {
      //
   }
}
```

You may use the [`Character.digit(char, 10)`](<https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/lang/Character.html#digit(char,int)>) method to convert a character to the integer value it represents. For example, `Character('2', 10)` returns the integer `2`. (The parameter `10` stands for the "radix" or base of the decimal number system.)

You may write helper methods (with full implementation) as necessary. You may not call any method that you have not implemented yourself.

```java
public static float postfixEvaluate(String expr) {
   // COMPLETE THIS METHOD
}
```

## Problem 3

Consider a smart array that automatically expands on demand. (Like the [`java.util.ArrayList`](https://docs.oracle.com/en/java/javase/14/docs/api/java.base/java/util/ArrayList.html).) It starts with some given initial capacity of 100, and whenever it expands, it **adds 50 to the current capacity**. So, for example, at the 101st add, it expands to a capacity of 150.

How many total units of work would be needed to add 1000 items to this smart array? Assume it takes one unit of work to write an item into an array location, and one unit of work to allocate a new array.

## Problem 4

Suppose you set up a smart array with an initial capacity of 5, with a DOUBLING of capacity every time there is a resize. What would be the **average** number of units of work per add, in the course of performing **100** adds? Assume the same work units as the previous exercise.

## Problem 5

You are given the following `Queue` class:

```java
import java.util.NoSuchElementException;

public class Queue<T> {
   public Queue() {
      //
   }

   public void enqueue(T item) {
      //
   }

   public T dequeue() throws NoSuchElementException {
      //
   }

   public boolean isEmpty() {
      //
   }

   public int size() {
      //
   }
}
```

Complete the following _client_ method (_not_ a `Queue` class method) to implement the `peek` feature, using only the methods defined in the `Queue` class:

```java
// returns the item at the front of the given queue, without
// removing it from the queue
public static <T> T peek(Queue<T> q) throws NoSuchElementException {
   // COMPLETE THIS METHOD
}
```

Derive the worst case big O running time of the algorithm that drives your algorithm. What are the dominant algorithmic operations you are counting towards the running time?

## Problem 6

`*` Suppose there is a long line of people at a check-out counter in a store. A new counter is opened, and people in the even positions (second, fourth, sixth, etc.) in the original line are directed to the new line. If a check-out counter line is modeled using a `Queue` class, we can implement this "even split" operation in this class.

Assume that a `Queue` class is implemented using a CLL, with a `rear` field that refers to the last node in the queue CLL, and that the `Queue` class already contains the following constructors and methods:

```java
import java.util.NoSuchElementException;

public class Queue<T> {
   public Queue() {
      rear = null;
   }

   public void enqueue(T obj) {
      //
   }

   public T dequeue() throws NoSuchElementException {
      //
   }

   public boolean isEmpty() {
      //
   }

   public int size() {
      //
   }
}
```

Implement an additional method in this class that would perform the even split:

```java
// Extract the even position items from this queue into
// the result queue, and delete them from this queue
public Queue<T> evenSplit() {
   // COMPLETE THIS METHOD
}
```

Derive the worst case big O running time of the algorithm that drives your algorithm. What are the dominant algorithmic operations you are counting towards the running time?


text:
---
layout: post
title: "Setting Up Local Docker Registry With UI"
---

Here is how to run a docker registry locally for a custom deployment,
local management, or development.

I found this useful when running Kubernetes and specifing a remote registry
that i could develop and push images to quickly for testing.

## Run docker regsitry

``` bash
docker run -d --restart always -e SEARCH_BACKEND=sqlalchemy -p 5000:5000 -v /home/cp16net/registry:/var/lib/registry --name docker-registry registry
```

## Run a docker registry ui

Find the docker ip of the registry.

``` bash
docker inspect -f '{{json .NetworkSettings.IPAddress}}' docker-registry
```

Use the ip to set the ENV for the UI to use.
Set the port you want to expose the UI on, here it will be [http://localhost:8500](http://localhost:8500)

``` bash
docker run -d -e ENV_DOCKER_REGISTRY_HOST=<IP_ADDRESS> -e ENV_DOCKER_REGISTRY_PORT=5000 -p 8500:80 --name registry-frontend konradkleine/docker-registry-frontend:v2
```


text:
---
comments: false
date: 2021-03-01
layout: post
permalink: /2021/03/boomboom.html
tags:
- rc
- rcplane
title: Boom Boom twin boom simple stick with inverted v tail
---
Before I was even finshed building the [Purple Pusher](http://localhost:7494/2021/02/purple-pusher.html) I had plans on how to make it better. I had ordered a variety of [carbon fiber tubes](https://www.aliexpress.com/item/4001308445662.html) and they finally came in so I set about building this plane.

[![wing leds](/assets/images/2021-03-boomboom/IMG_3303.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3303.jpeg)

I built a standard hanger simple stick airfoil, it didn't have to be quite as wide as the purple pusher. I also threw in some LEDs just in case I'd like to light them up in the future. The carbon rods weighed 9g each which is much less than the 41g for the tent poles I was using.

[![boom layout](/assets/images/2021-03-boomboom/IMG_3305.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3305.jpeg)

I tried really hard to make sure the booms were parallel.

[![tail planning](/assets/images/2021-03-boomboom/IMG_3307.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3307.jpeg)

I thought the tail on the purple pusher was too heavy and thought about doing a [v-tail](https://en.wikipedia.org/wiki/V-tail) and have it be held at the tips rather than the bottom of the V, then I thought I could just invert it and my radio would likely know what to do. I felt clever about thinking about that idea and then learned that lots of planes [already do this](https://www.google.com/search?tbm=isch&q=%20-site:pinterest.com%20intervted%20v%20tail). Turns out the flaps are called a ruddervator.

I also did some math to try and work out the size of the tail. I wanted to keep the vertical and horizontal surface area and the size of the rudder and ailerons the same as a simple stick.

This website about [plane design and common dimensions](http://ramon.no/laredo/index.php-page=trainer-design.htm) was super helpful.

[![tail assembled](/assets/images/2021-03-boomboom/IMG_3328.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3328.jpeg)

In the end the tail looked stupid being this big. so I ended up chopping off quite a lot and it was fine.
I had tried to look up some [recommended values](https://www.rcgroups.com/forums/showthread.php?2339523-elervator-ruddervator-fore-aft-length).

[![motor mount](/assets/images/2021-03-boomboom/IMG_3332.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3332.jpeg)

Part of my plan for a quieter plane was to mount the motor above the wing slightly. I also read that the axle of the motor should point through the center of gravity so I angled it down slightly. This aligned with what I had seen on my [AXN fLoater](/2020/08/rcplane.html) first plane. I glued and then used reinforced packing tape to hold the motor firm to the fuselage.

[![more bevel cuts](/assets/images/2021-03-boomboom/IMG_3333.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3333.jpeg)

Lots of bevel cuts led to a really tidy fuselage.

[![battery placement planning](/assets/images/2021-03-boomboom/IMG_3334.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3334.jpeg)

After working out where the battery should be I cut cut teh fuselage to length and add a battery compartment.

[![assembled](/assets/images/2021-03-boomboom/IMG_3346.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3346.jpeg)

The finished boom boom! It's called the boom boom because it's orange and so is [Basil Brush](https://youtu.be/J23h3VLUM6I?t=16).

[![underside](/assets/images/2021-03-boomboom/IMG_3347.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3347.jpeg)

It's extra orange underneath.

[![motor and wing](/assets/images/2021-03-boomboom/IMG_3348.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3348.jpeg)

I put some foam on the front of the motor mount to help the air flow over it.

[![angled motor](/assets/images/2021-03-boomboom/IMG_3349.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3349.jpeg)

You can see the washers I used to shim up the motor so it pointed slightly down.

[![comparison with purple pusher](/assets/images/2021-03-boomboom/IMG_3367.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3367.jpeg)

Compared the the Purple Pusher it's quite a bit shorter. But still not as short as I'd like.

## Maiden Flight

The [maiden flight](https://youtu.be/taA89Cv7XRo) has to be one of the funniest fails I've ever done. good grief.

Here's what I had done WRONG:

1. I moved my motor higher and angled it down a little so it still pushed through the CG which I'd read about. This just pushed the nose down when I throttled. This is the real reason for the crash. Once I had it pointed level it flew better.
2. I had the tail control rods set up so that they pushed to pull up, which is awful, since they can flex, this made the pull up the spongiest direction.
3. I had the ailerons flat with the TOP of the wing rather than with the flat bottom and I feel this might have also caused some downward pressure too.

[![nose damage after maiden](/assets/images/2021-03-boomboom/IMG_3373.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3373.jpeg)

Considering how bad that crash was, the damage was pretty minimal, even with that huge long nose.

The [second maiden flight](https://youtu.be/_RbyGMmU5HE) went much better!

[![control horns mounted above](/assets/images/2021-03-boomboom/IMG_3372.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3372.jpeg)

After the maiden flight I found I had trouble pulling up. I traced this down to my elevator being controlled from a control rod underneath. so when trying to climb the thin wire was pushing the elevator up. I moved the wire to the top of the boom so now it would need to pull to make the elevator go up and it was much better after that.

[![reconfigured as a tractor](/assets/images/2021-03-boomboom/IMG_3385.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3385.jpeg)

It flew o.k. as a pusher, but I still didn't like the long nose. Because the fuselage was so easy to change I made a new one to have the plane be a tractor with the motor at the front.

[![battery compartment open](/assets/images/2021-03-boomboom/IMG_3387.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3387.jpeg)

I made these bomb bay doors for the battery access.

[![battery closed](/assets/images/2021-03-boomboom/IMG_3388.sml.jpg)](/assets/images/2021-03-boomboom/IMG_3388.jpeg)

A velcro strap around the fuselage held everything in. It worked well!

Final wight without battery is 455g.

I really liked having both servos in the wing and feel like I could put the receiver up there too and then switching the fuselage would be even easier, a short servo extension wire could be used to connect to the speed controller.


text:
# Ubuntu-Installation
Scripts to install and configure a basic Ubuntu CORE system with options for gui and productivity apps

# Base Installation
1. Boot up the mini.iso disk, usb drive, or image file (for vm).
- Select install
- Select the appropriate items:
   - language
   - keyboard
   - network card
- Enter a hostname
- Select a mirror and set the proxy server
- Wait for additional components
- Set the default user information
- Set home directory encryption
- Set the timezone
- Setup HDD
    - Suggestion to create 1 primary ext4 partition
    - A swap file will be created by the post-install setup script
- Set the automatic update selection
    - Default: "No automatic udpates"
- Select software
    - Default: standard system utilities
    - Add: OpenSSH server
- Install Grub to master boot record
- Complete installation and shutdown the system.
- Remove the installation media and restart the system.

# Prepare to configure.
1. Login with the default user account.
- Access root priviledges:
      sudo su
- Set the root password temporarily. The script will reset it.
      passwd
- Get the accessible IP Address of the target system.
      ip addr
- Update the /etc/ssh/sshd_config file to allow the root to login with a password. The script will disable this capability.
      sed -i.bak 's/^\(PermitRootLogin\) prohibit-password$/\1 yes/' /etc/ssh/sshd_config
- Restart the SSH service:
      systemctl restart ssh

 NOTE: The next steps depend on whether you are using a drive on the target system or using ssh to access the target system remotely:
- Open a command prompt at the location of this start.sh file.
    - Run the start script from the target system (i.e. USB drive):
   start.sh local
    - Run the start script from another system with network access to the target:
   start.sh target_system_ip_address
- Use the root password determined in step 2 above to login.

# TODO List
1. Configure wifi detection and setup.
- Configure LibreOffice installation.

repository: jfdahl/Ubuntu-Installation

repo_name: jfdahl/Ubuntu-Installation


text:
# LBRY Artist Transfer Toolkit
This toolkit is built to provide an interface and database for Artists that have content across the internet that they want to collate and put onto the LBRY Network.

## It currently provides:
  Diddly Squat, sorry about that, been busy with other things

## What it _will_ contain:

  A Web Interface that provides options to:

    - Manage the database
    - Select content sites to download content from
    - Add new content directly to the database
    - Upload database contents to LBRY Network
    - Manage wallet, claims and channels on LBRY Network

  A Database that contains:

    - Content Title
    - Copyright Information (Character Owners and Default Licences)
    - MD5 & SHA256 Hashes
    - The Content Source, of course
    - The Content Description, including links back to the original Source URL, if there is one
    - Content Tags
    - What channels to upload content to


text:
# IntervalTrees

[![Build Status](https://api.travis-ci.org/BioJulia/IntervalTrees.jl.svg?branch=master)](https://travis-ci.org/BioJulia/IntervalTrees.jl)
[![codecov.io](http://codecov.io/github/BioJulia/IntervalTrees.jl/coverage.svg?branch=master)](http://codecov.io/github/BioJulia/IntervalTrees.jl?branch=master)

## API

IntervalTrees exports one type: `IntervalTree{K, V}`.  It implements an
associative container mapping `(K, K)` pairs to to values of type `V`.  `K` may
be any ordered type, but only pairs `(a, b)` where `a ≤ b` can be stored.

Intervals in this package are always treated as end-inclusive, similar to the
Julia `Range` type.

### Types

`IntervalTrees` exports an abstract type `AbstractInterval{K}`. Types deriving
from it are expected to implement `first` and `last` methods that return the
values of type `K` giving the inclusive range of the interval.

There are also basic interval type provided:
```julia
struct Interval{T} <: AbstractInterval{T}
    first::T
    last::T
end

struct IntervalValue{K, V} <: AbstractInterval{K}
    first::K
    last::K
    value::V
end
```

The basic data structure implemented is `IntervalTree{K, V}`, which stores
intervals of type `V`, that have start and end positions of type `K`.

`IntervalMap{K, V}` is a typealias for `IntervalTree{K, IntervalValue{K, V}}`
to simplify associating data of type `V` with intervals.

### Insertion and Initialization

New intervals can be added to an `IntervalTree` with the `push!` function.

```julia
xs = IntervalTree{Int, Interval{Int}}()
push!(xs, Interval{Int}(500, 1000))
```

A more efficient means of building the data structure by bulk insertion.
If the intervals are knows up front and provided in a sorted array, an
`IntervalTree` can be built extremely efficiently.

```julia
intervals = Interval{Int}[]
# construct a large array of intervals...

sort!(intervals)
xs = IntervalTree{Int, Interval{Int}}(intervals)
```

### Standard Dictionary Operations

`IntervalTree` implements all the standard dictionary operations. You can use it
as an efficient way to map `(K, K)` tuples to values.

```julia
using IntervalTrees

# Create an interval tree mapping (Int, Int) intervals to Strings.
xs = IntervalMap{Int, String}()

# Insert values
xs[(1,100)] = "Low"
xs[(101,1000)] = "Medium"
xs[(1001,10000)] = "High"

# Search for values
println(xs[(1001,10000)]) # prints "High"

# Get a value, returning a default value if not found
println(get(xs, (10001, 100000), "Not found")) # prints "Not found"

# Set a value if it's not already present
println(set(xs, (10001, 100000), "Not found"))

# Delete values
delete!(xs, (1,100))

```

### Iteration

As with dictionaries, key/value pairs can be iterated through efficiently.

```julia
    for x in xs
        println("Interval $(x.first), $(x.last) has value $(x.value)")
    end
```

Some other iteration functions are provided:

**from(t::IntervalTree, query)**: Return an iterator thats iterates through every
key/value pair with an end position >= to query.

**keys(t::IntervalTree)**: Return an iterator that iterates through every
interval key in the tree.

**values(t::IntervalTree)**: Return an iterator that iterates through every
value in the tree.

### Intersection

The primary thing an `IntervalTree` offers over a `Dict` is the ability to efficiently
find intersections. `IntervalTrees` supports searching and iterating over
intersections between two trees or between a tree and a single interval.

**intersect(t::IntervalTree, query::(Any, Any))**: Return an iterator over every
interval in `t` that intersects `query`.

**intersect(t1::IntervalTree, t2::IntervalTree)**: Return an iterator over every
pair of intersecting entries `(interval1, interval2)`, where `interval1` is
in `t1` and `interval2` is in `t2`.

**hasintersection(t::IntervalTree, position)**: Return true if `position`
intersects some interval in `t`.

## Algorithms

Multiple data structures are refered to as "interval trees". What's implemented
here is the data structure described in the [Cormen, et al. "Algorithms"
book](https://en.wikipedia.org/wiki/Introduction_to_Algorithms), or what's
refered to as an [augmented
tree](http://en.wikipedia.org/wiki/Interval_tree#Augmented_tree) in the
wikipedia article. This sort of data structure is just an balanced search tree
augmented with a field to keep track of the maximum interval end point in that
node's subtree.

Many operations over two or more sets of intervals can be most efficiently
implemented by jointly iterating over the sets in order. For example, finding
all the intersecting intervals in two sets S and T can be implemented similarly
to the merge function in mergesort in O(n+m) time.

Thus a general purpose data structure should be optimized for fast in-order
iteration while efficiently supporting other operations like insertion,
deletion, and single intersection tests. A B+-tree is nicely suited to the task.
Since all the intervals and values are stored in contiguous memory in the leaf
nodes, and the leaf nodes augmented with sibling pointers, in-order traversal is
exceedingly efficient compared to other balanced search trees, while other
operations are comparable in performance.


text:
# How to setup this boilerplate

1. Install the react project
2. Install React Navigation

   ```
   yarn add @react-navigation/native
   yarn add react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view
   npx pod-install ios

   ```

Run instructions for Android:
• Have an Android emulator running (quickest way to get started), or a device connected.
• cd "/Users/akshatsharma/workspace/learning/AwesomeTSProject" && npx react-native run-android

Run instructions for iOS:
• cd "/Users/akshatsharma/workspace/learning/AwesomeTSProject" && npx react-native run-ios - or -
• Open AwesomeTSProject/ios/AwesomeTSProject.xcworkspace in Xcode or run "xed -b ios"
• Hit the Run button

repository: shrmaky/react-native-boilerplate

repo_name: shrmaky/react-native-boilerplate