text:
---
title: Setting up BorrowBox on your device
layout: sidebar-left
breadcrumb: elibrary
hnav: elibrary
---

<div class="pa3 bg-light-gray mb3" markdown="1">

Looking to borrow eAudio titles in your browser? Visit the [BorrowBox website](https://library.bolindadigital.com/suffolk).

</div>

BorrowBox allows you to download eAudio books. This service is available on a tablet, smartphone or web browser such as Chrome, Firefox, Opera, Safari or Internet Explorer.

## Devices compatible with BorrowBox

* Tablets: iPad, iPod touch, Kindle Fire, Nexus, Hudl or any other tablet using Android
* Smartphones: Any that run on iOS or Android, such as iPhone or Samsung Galaxy

## Setting up your device to download eAudio books with BorrowBox

### On a tablet or smartphone

1. Download and install the BorrowBox app from the [App Store](https://itunes.apple.com/gb/app/borrowbox-library/id562843562?mt=8) or [Play Store](https://play.google.com/store/apps/details?id=com.bolindadigital.BorrowBoxLibrary&hl=en_GB)
2. When the download is complete, click ‘Open’
3. When the BorrowBoxapp opens, type ‘Suffolk’ in the search bar and select ‘Suffolk Libraries’
4. Enter your library card number and PIN number
5. Register an account with an email address and display name
6. Agree to the terms and conditions
7. Suffolk Libraries BorrowBox service will now be available to use

#### Amazon Kindle Fire

On an Amazon Kindle Fire you will need to download the BorrowBox app directly from their website rather than from the Kindle store.

[Download the BorrowBox app for Kindle Fire](http://www.borrowbox.com/kindlefire/install/).

Once you have downloaded the app, follow the steps from step 4 above.

### On a computer

1. Go to the [BorrowBox website](http://library.bolindadigital.com/suffolk) and click the ‘Sign in’ link
2. Enter your library card number and PIN and click ‘Sign in’
3. Register an account with an email address, display name and agreeing to the terms and conditions – then click ‘Submit’
4. You will be provided with information about the service, then click ‘Next’
5. Suffolk Libraries BorrowBox service will now be available to use

## Borrowing eAudio books with BorrowBox

### On a tablet or smartphone

1. Choose ‘eAudiobooks’ or ‘Search’ in the app menu to find an eAudio book
2. Select the eAudio book you want and click ‘Borrow’, and then ‘Confirm loan’. If it is on loan to another borrower, you can **reserve** it by clicking ‘Reserve’ and then ‘Confirm renewal’
3. A message will come up saying ‘Loan successful’. Click ‘Download now’. This will give you the option to download all or select eAudio book files, and listen to the files in the app
4. The eAudio book will automatically expire in 3 weeks. You can **renew** it if no one else has reserved it, by clicking the ‘Renew’ button on the ‘My Loans’ view
5. You can also **return an eAudio book early** by clicking ‘Return’ next to the book title

### On a computer

1. Go to the [BorrowBox website](http://library.bolindadigital.com/suffolk) and find an eAudio book through the search bar or browse categories by clicking ‘eAudiobooks’ next to ‘Start’
2. Select the eBook you want and click ‘Borrow’, and then click ‘Confirm eAudiobook loan’. If it is on loan to another borrower, you can **reserve** it by clicking ‘Reserve’ and then ‘Confirm renewal’
3. You will be able to ‘Download complete eAudiobook’ or download it in parts. The files will be MP3 format
4. Find the eAudio book files on your computer and open them in a program that plays MP3 files
5. The eAudio book will automatically expire in 3 weeks. You can **renew** it if no one else has reserved it, by clicking the ‘Renew’ button on the ‘My Account’ page
6. You can also **return an eAudio book early** by clicking ‘Return’ next to the book title, and deleting the files from your computer

[BorrowBox help page (login required) →](https://fe.bolindadigital.com/wldcs_bol_fo/b2i/help.html?fromPage=1&b2bSite=4172)

repository: suffolklibraries/sljekyll

repo_name: suffolklibraries/sljekyll


text:
# scrapbook

- Language : Haste (http://haste-lang.org/)

- Service  : Scrap all URLs of my interest

- Details  : A wep page that displays collected URLs and has a form to add new URL.

### How to build and setup on your server
1. You need Haste and MySQL.
2. Select where to launch your application. ex) www.example.com/scrap
3. In src/Config.hs, edit following lines, for example:
  - downloader = "www.example.com/scrap/download.php"
  - uploader = "www.example.com/scrap/uploader.php"
  - remover = "www.example.com/scrap/remover.php"
4. Create a table of following schema into any MySQL database:

    ```
    CREATE TABLE `scrapbook` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `url` varchar(127) NOT NULL,
    `info` varchar(127) DEFAULT NULL,
    PRIMARY KEY (`id`)
    )
	```

5. In src/config.php, enter your mysql id, pwd, and database name.
6. Run the command: `haste-cabal build`. You get Main.js in the folder src.
7. Move following files to www.example.com/scrap/.
  - index.html
  - style.css
  - Main.js
  - download.php
  - uploader.php

license: MIT

repository: codeonwort/scrapbook

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: codeonwort/scrapbook


text:
# WaterWorld Problem
Year is 3030, water is a scare resource.
Civilizations live around glaciers in clusters, with a federal body (identified as F) in center melting glaciers and controlling the water distribution.
Each cluster has need for water for a day and a water storage capacity.
Cluster are connected to each other with a pipe identified by _.
Linked clusters are connected with overflow pipes.
Every time water starts flowing through pipe, the clusters drain their tanks in an instant, as they can use the water flowing to fill the tanks, and federal body sends water till the capacity is full.
Federal body releases water at start of day, cluster uses water at end of day.
In a pipe link like F-C1-C2-C3-C4, when federal water body targets C3, only C3 and nodes before it (here C1,C2,C3) can fill the tank, C4 can fill it only when it’s targeted.
Pipes are flow controlled and water flows in forward direction only.

Calculate the minimum water needed to help the civilizations survive for n days.

Input is multiline. First line is the number of days to survive. Second line the number of clusters followed by their definitions. Next is the number of links in the system, followed by the link definition.

Read the test cases to understand the scenarios better.

Cluster defintion
C1 100 300
here

C1 - cluster name
100 - daily water need
300 - storage capacity
Link definition
F_C1
here

F - is the federal source of pipe
C - is the sink/destination of pipe (cluster tank)
Clusters don’t share water that was allocated to them with others, but water from federal body flows through them if needed.

Input
2
3
C1 100 300
C2 150 300
C3 100 100
3
F_C1
F_C2
C2_C3
Output
1100
In the above on day 1, C1 gets 300, C2 gets 300, C3 gets 100
End of day 1, C1 would have 200, C2 would have 150, C3 would have 0

On start of day 2, C3 needs water.
To supply water to C3, water needs to flow through C2.
C2 would immediately drain the remaining water for other purpose so that it can fill water tank fully again from federal body.

repository: SaiRakeshB/Waterworld

repo_name: SaiRakeshB/Waterworld


text:
# deno-matrix-utils

this is a util for my ascii renders
not for your use, you can copy the code and use it tho :)

```js
import { MatrixDot, MatrixVectorDot, Vector, Matrix } from "https://raw.githubusercontent.com/BoredSathvik/deno-matrix-utils/master/mod.ts"
```

repository: BoredSathvik/deno-matrix-utils

gha_language: TypeScript

repo_name: BoredSathvik/deno-matrix-utils


text:
---
layout: post
title: Query languages and DSLs in Ruby
alias: /videos/query-languages-and-dsls-in-ruby
---

Michael Lucy, engineer at RethinkDB, gives a talk on
how we built our query language (ReQL) as a DSL for
languages like Ruby, Python, and Javascript and the
challenges we encountered along the way.

repository: gokaygurcan/www

extension: markdown

repo_name: gokaygurcan/www


text:
# Cognitively-Inspired Model for Incremental Learning Using a Few Examples
Keras code for the paper: [Cognitively-Inspired Model for Incremental Learning Using a Few Examples](https://arxiv.org/abs/2002.12411)
## Abstract
Incremental learning attempts to develop a classifier which learns continuously from a stream of data segregated into different classes. Deep learning approaches suffer from catastrophic forgetting when learning classes incrementally, while most incremental learning approaches require a large amount of training data per class. We examine the problem of incremental learning using only a few training examples, referred to as Few-Shot Incremental Learning (FSIL). To solve this problem, we propose a novel approach inspired by the concept learning model of the hippocampus and the neocortex that represents each image class as centroids and does not suffer from catastrophic forgetting. We evaluate our approach on three class-incremental learning benchmarks: Caltech-101, CUBS-200-2011 and CIFAR-100 for incremental and few-shot incremental learning and show that our approach achieves state-of-the-art results in terms of classification accuracy over all learned classes.

## Applied on CIFAR-100, Caltech-101 and CUBS-200-2011

### Requirements
* Keras (Version 2.1.6)
* Scipy (Currently working with 1.2.1)
* Scikit Learn (Currently working with 0.21.2)
* if you can't find a pre-trained model in Kears, get them from https://github.com/qubvel/classification_models
* Download the datasets in */data directory
## Usage
* First run ```get_features.py``` to get the ResNet features for all the images in the dataset. For Caltheh-101 and CUBS-200-2011 use ResNet-18 instead of ResNet-34.
* After feature extraction, simply run ```main_file.py``` to get the results for all increments.
## If you consider citing us
```
@InProceedings{Ayub_2020_CVPR_Workshops,
author = {Ayub, Ali and Wagner, Alan R.},
title = {Cognitively-Inspired Model for Incremental Learning Using a Few Examples},
booktitle = {The IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
month = {June},
year = {2020}
}
```

repository: yang-AIteam/CBCL

repo_name: yang-AIteam/CBCL


text:
OCTRA v2.x (still in development)

  More information

This is a web-application for the orthographic transcription of audiofiles. For now, it uses three editors for the orthographic transcription:

* Dictaphone Editor: An typical, easy-to-use editor with just a texteditor and an audioplayer.
* Linear-Editor: This editor shows two signaldisplays: One for the whole view of the signal and one as loupe. You can set boundaries and define segments.
* 2D-Editor: This editor breaks the whole view of the signal to pieces and shows the pieces as lines one after one. Here you can set boundaries und define segments too.

## User Manual
You can find the manual for users here: [OCTRA Manual](https://www.phonetik.uni-muenchen.de/apps/octra/manual/1.4.0/)

## Features
* Three different editors
* Noise markers (placeholders) in the form of icons in text. Icons can be UTF-8 symbols, too.
* Auto-saving of the transcription progress to prevent data loss
* Import/Export support for various file formats like AnnotJSON, Textgrid, Text, Table and more.
* Validation using project specific guidelines. **New: text editor supports inline validation **
* Shortcuts for faster transcriptions
* Multi-Tiers support in local mode
* Logging of user activities for further studies
* Localization of the GUI
* Customization with configuration files for the app, project, guidelines and validation methods.
* Segment boundaries as markers in text
* Overview window to see the whole transcript
* Cutting audio files up to 300 MB
* Visible transcripts in 2D-Editor
* **New:** Costum table generator
* **New:** ASR support for transcription and segmentation

## Remarks
At the moment, OCTRA's online mode supports only one specific server database. That means, if you install OCTRA on your server, you can only use the local mode. We are working on supporting other servers (project "octra-backend" is in development).

## Libraries
The libraries are still in development. If you want to use them you find more information [here](libs/README.md).

## Production Use

### OCTRA website

If you don't want to install OCTRA, you can use the latest release [here](https://www.phonetik.uni-muenchen.de/apps/octra/octra/).

### Installation
In a production environment you don't need to compile OCTRA again.

1. Download the latest release from the releases page.``

2. Extract and Copy its content to your http-server. If you have already installed an older version of OCTRA, please notice to not override the old config folder. More information about upgrading can be found in the next section.

3. Before you can use OCTRA, duplicate and rename the `appconfig_sample.json` to `appconfig.json` in the config folder. Please make sure, that you offer all translation files for any language you defined in config.json.

4. To make OCTRA work please change the 'database:name' entry in your appconfig.json. After the first launch a new local database with this name will be created.

5. Please have a look on the projectconfig.json in the localmode folder. In this file you can change the settings of the local mode.

6. Change the baseref attribute in the index.html according to the url where your OCTRA installation is hosted.

7. Test if OCTRA works and check the webconsole if all works fine. If there are no errors you can use OCTRA.

### Upgrade

1. Duplicate and rename your octra directory (e.g. to 'octra_backup') on your server.

2. Download the new OCTRA release and upload the 'dist' folder to your server next to the backup and rename it to the same name like before (e.g. 'octra').

3. Copy your old appconfig.json and localmode folder to the new config directory.

4. Compare your appconfig.json with the new appconfig_samples.json file. If there are new entries, just copy and paste them to your appconfig.

5. Compare your projectconfig.json file with the new projectconfig.json file in the localmode folder.

6. Change the baseref attribute in the index.html according to the url where your OCTRA installation is hosted.

7. Test if OCTRA works and check the webconsole if all works fine. If there are no errors you can use OCTRA.

## Development Use
On the Development level OCTRA requires Node 6.9.0 or higher, together with NPM 3 or higher.

Then you can install OCTRA:

1. Clone the octra repository.
2. Go to the octra directory via Terminal (or GitBash on Windows).
3. Call `` npm install ``.
4. Wait.
5. Duplicate the file ``src/config/appconfig_sample.json`` and rename it to ``scr/config/appconfig.json``. In appconfig.json you can change the settings of your instance of OCTRA.
6. After the installation you can call `` npm start `` to start the node server.
7. After that please read the notice about the config files in the production use section

## Documentation

* For users: [OCTRA manual](https://www.phonetik.uni-muenchen.de/apps/octra/manual/1.3.0/)
* For project leaders/administrators: [Github Wiki](https://github.com/IPS-LMU/octra/wiki).

## Contribution

### Commit template
For this project commitizen is used. If you want to contribute to this project you should make use of this tool to create commit messages important for the changelog (other commit messages will be ignored otherwise). For WebStorm or PHPStorm there is a Commit Template Plugin to create these templates.

For creating changelog automatically, conventional-changelog-cli is used. To create changelogs you need to install conventional-changelog-cli globally as described on its github page. After installation you just need to run `npm run changelog` to create the changelog automatically.

### Translation
To translate OCTRA to a new language please visit https://www.phonetik.uni-muenchen.de/apps/octra/translation/start.php

If the language you would like translate to does not exist please send us an email to<EMAIL_ADDRESS>

### Affiliations
[INSTITUTE OF PHONETICS AND SPEECH PROCESSING](http://www.en.phonetik.uni-muenchen.de/)

repository: IPS-LMU/octra

branch_name: refs/heads/main

gha_license_id: MIT

repo_name: IPS-LMU/octra


text:
# Command-Location
This library provide easy access to user location using fuse location provider.You create your location request and pass it to this library funtion and you receive async callback with location. Even you can get location update in non activity context too without worrying about runtime permission.

# Motivation

Getting location update from google play service take lots of boilerplate code.

  *  Check Runtime permission, must have activity context
  *  Handle location callback in fuse location provide.
  *  Release location related resource on stopping location update.
  *  Check if location services are on or off
  *  Getting last known location is not easy either.
  *  Fallback to last known location if not getting location after certain duration.

This library solve all these problem with minimun piece of code

  * Receive location callback in sync logic( as in, Async location update can be expressed in series of sync method calls).
  * Don't have worry about runtime permission.
  * Don't have worry about location setting, in case provider not enable this open location setting screen.
  * Fallback time for last know location, in case app is not able to get current location.
  * Handle location request setting.
  * Can access location in non activity context without worrying about runtime permission.

# Getting started

## Installing
To use this library simply import it by placing the following line under dependencies in your app module's build.gradle file

This library is posted in jCenter

#### Gradle
```
implementation 'in.unicodelabs.sorbh:command-location:1.0.0'
```

#### Maven
```
<dependency>
  <groupId>in.unicodelabs.sorbh</groupId>
  <artifactId>command-location</artifactId>
  <version>1.0.0</version>
  <type>pom</type>
</dependency>
```

This library has google play service dependencies. Please add this variable to your project's root build.gradle

ext{
    googlePlayServiceVersion = "<your google play service version>"
}

# Usage

Create location request according to your needs

```
LocationRequest locationRequest = new LocationRequest()
        .setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY)
        .setInterval(2000)
        .setFastestInterval(1000);
```

now create command location builder and set location request to it

```
CommandLocation.Builder builder =  new CommandLocation.Builder(this);
        builder.setLocationRequest(locationRequest);
        builder.setRequestMode(CommandLocation.CommandMode.SINGLE);
        builder.setFallBackToLastLocationTime(3000);
        builder.setLocationResultCallback(new LocationResultCallback() {
            @Override
            public void onLocationReceived(Location location) {
                Toast.makeText(MainActivity.this,location.getLatitude()+","+location.getLongitude(),Toast.LENGTH_SHORT).show();
            }

            @Override
            public void noLocationReceived() {
                Toast.makeText(MainActivity.this,"no location received",Toast.LENGTH_SHORT).show();
            }
        });
        builder.start();
```

**Request Single loction update like this**
```text
builder.setRequestMode(CommandLocation.CommandMode.SINGLE);
```

**Or multiple location update like this**
```text
 builder.setRequestMode(CommandLocation.CommandMode.REGULAR_UPDATE);
```

**Set the fall of time for last know location like this**
```text
 builder.setFallBackToLastLocationTime(3000);
```

**Set LocationResultCallback to builder and receive call back on location update.**
 ```text
 builder.setLocationResultCallback(new LocationResultCallback() {
            @Override
            public void onLocationReceived(Location location) {
                //Logic with user current location
            }

            @Override
            public void noLocationReceived() {
                //logic in case app is not able to find user current location or last know location
                //Show some error message
            }
        });
```

**finally to start the location update call start().**
```text
builder.start();
```

# Author
  * **Saurabh K Sharma - [GIT](https://github.com/Sorbh)**

      I am very new to open source community. All suggestion and improvement are most welcomed.

## Contributing

1. Fork it (<https://github.com/sorbh/command-location/fork>)
2. Create your feature branch (`git checkout -b feature/fooBar`)
3. Commit your changes (`git commit -am 'Add some fooBar'`)
4. Push to the branch (`git push origin feature/fooBar`)
5. Create a new Pull Request

# License

```
Copyright 2018 Saurabh Kumar Sharma

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.
```

repository: Sorbh/command-location

repo_name: Sorbh/command-location


text:
This part of the project is baed on https://github.com/cnlohr/androidusbtest

You should be able to build this.  If you give your app full permissions, and you
copy a copy of `colorchord-android.conf` into the external storage folder on your
Android device at the root level, it should pick it up and switch over to a pie
style display and output to the tensigral lamp.

repository: cnlohr/colorchord

gha_language: C

gha_license_id: NOASSERTION

repo_name: cnlohr/colorchord


text:
---
layout: post
status: publish
published: true
title: WhatsApp Web comes to iPhones, joining Android, Windows and BlackBerry
author:
  display_name: Mark Bonnett
  login: Technical Markus
  email<EMAIL_ADDRESS>  url: ''
author_login: Technical Markus
author_email<EMAIL_ADDRESS>wordpress_id: 7694
wordpress_url: http://blog.buymobiles.net/?p=7694
date: '2015-08-20 16:30:48 +0100'
date_gmt: '2015-08-20 15:30:48 +0100'
categories:
- News
- Popular
tags:
- WhatsApp
- WhatsApp Web
---

WhatsApp Web, the web-based portal for the popular chat service, is now available to people who use iOS devices. Yes, you no longer need to envy your Android counterparts.

A few months ago, WhatsApp unveiled a new service for Android, Windows and BlackBerry users.

Called WhatsApp Web, it allows anyone using one of said platforms to access the popular chat client through a web browser, syncing up your conversations between your phone and your computer.

And now WhatsApp Web has been opened up for iOS users to have a play with, too. So, if you’re using, say, an iPhone 6, then you can now chat to people on WhatsApp through your web browser.

It’s a particularly valuable tool for office hours, as you can pretend you’re working furiously on something, while in reality, you’re catching up with friends.

So, how does it work? The process for using it is the same across both platforms.

First of all, you need an active WhatsApp account on your phone. Then, you need to go to web.whatsap.com on your computer, and a QR code will pop up on the screen.

Simply go into WhatsApp on your phone, go to Menu > WhatsApp Web, scan that QR code, and then the messages on your phone will be synced to your browser, so you can chat on your computer.

Essentially, the browser version is a mirror of that on your mobile; all the messages remain on your phone, and you simply control the chats through your browser.

The upshot is that if your connection drops on your phone, you’ll be disconnected from WhatsApp Web; because of that, and to avoid big data bills, it’s best to have your phone connected through WiFi.

So, have you been using WhatsApp on your iPhone, and wishing you could try out the web version? Well now you can, so give it a try!


text:
## How to Expand/Resize CStor Volume

OpenEBS Cstor introduces support for expanding an iSCSI PV using the CSI provisioner. Provided CStor is configured to function as a CSI provisioner, you can expand iSCSI PVs that have been created by CStor CSI Driver. This feature is supported with Kubernetes versions 1.16 and above.

For growing an CStor PV, you must ensure the following items are taken care of:

- The StorageClass must support volume expansion. This can be done by editing the StorageClass definition to set the `allowVolumeExpansion: true`.
- To resize a PV, edit the PVC definition and update the `spec.resources.requests.storage` to reflect the newly desired size, which must be greater than the original size.
- The PV must be attached to a pod for it to be resized. There are two scenarios when resizing an CStor PV:
    - If the PV is attached to a pod, CStor CSI driver expands the volume on the storage backend, rescans the device and resizes the filesystem.
    - When attempting to resize an unattached PV, CStor CSI driver expands the volume on the storage backend. Once the PVC is bound to a pod, driver rescans the device and resizes the filesystem. Kubernetes then updates the PVC size after the expand operation has successfully completed.

The example below shows how expanding CStor volumes works. For an already existing StorageClass, you can edit the StorageClass to include the `allowVolumeExpansion: true` parameter.

```yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cstor-sparse-auto
provisioner: cstor.csi.openebs.io
allowVolumeExpansion: true
parameters:
  replicaCount: "3"
  cstorPoolCluster: "cspc-disk-pool"
  cas-type: "cstor"
```

For example a application `busybox` pod is using a below PVC associates with PV.

```sh
$ kubectl get pods
NAME            READY   STATUS    RESTARTS   AGE
busybox         1/1     Running   0          38m

$ kubectl get pvc
NAME                           STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS              AGE
cstor-pvc                      Bound    pvc-849bd646-6d3f-4a87-909e-2416d4e00904   5Gi        RWO            cstor-csi-disk            1d

$ kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                   STORAGECLASS        REASON   AGE
pvc-849bd646-6d3f-4a87-909e-2416d4e00904   5Gi        RWO            Delete           Bound    default/cstor-pvc       cstor-csi-disk               40m

```

To resize the PV that has been created from 5Gi to 10Gi, edit the PVC definition and update the `spec.resources.requests.storage` to 10Gi.
It may take few seconds to update the actual size in PVC resource, wait for the updated capacity to reflect in PVC status (pvc.status.capacity.storage).
It is internally a two step process for volumes containing a file system:
- Volume expansion
- FileSystem expansion

```sh
$ kubectl edit pvc cstor-pvc

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    pv.kubernetes.io/bind-completed: "yes"
    pv.kubernetes.io/bound-by-controller: "yes"
    volume.beta.kubernetes.io/storage-provisioner: cstor.csi.openebs.io
  creationTimestamp: "2020-06-24T12:22:24Z"
  finalizers:
  - kubernetes.io/pvc-protection
    name: claim-csi-123
  namespace: default
  resourceVersion: "766"
  selfLink: /api/v1/namespaces/default/persistentvolumeclaims/claim-csi-123
  uid: 849bd646-6d3f-4a87-909e-2416d4e00904
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
```

Now We can validate the resize has worked correctly by checking the size of the PVC, PV, or describing the pvc to get all events.

```sh
$ kubectl describe pvc cstor-pvc

Name:          claim-csi-123
Namespace:     default
StorageClass:  cstor-sparse-auto
Status:        Bound
Volume:        pvc-849bd646-6d3f-4a87-909e-2416d4e00904
Labels:        <none>
Annotations:   pv.kubernetes.io/bind-completed: yes
               pv.kubernetes.io/bound-by-controller: yes
               volume.beta.kubernetes.io/storage-provisioner: cstor.csi.openebs.io
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:      10Gi
Access Modes:  RWO
VolumeMode:    Filesystem
Mounted By:    busybox-cstor
Events:
  Type     Reason                      Age                From                                                                                Message
  ----     ------                      ----               ----                                                                                -------
  Normal   ExternalProvisioning        46m (x2 over 46m)  persistentvolume-controller                                                               waiting for a volume to be created, either by external provisioner "cstor.csi.openebs.io" or manually created by system administrator
  Normal   Provisioning                46m                cstor.csi.openebs.io_openebs-cstor-csi-controller-0_bcba3893-c1c4-4e86-aee4-de98858ec0b7  External provisioner is provisioning volume for claim "default/claim-csi-123"
  Normal   ProvisioningSucceeded       46m                cstor.csi.openebs.io_openebs-cstor-csi-controller-0_bcba3893-c1c4-4e86-aee4-de98858ec0b7  Successfully provisioned volume pvc-849bd646-6d3f-4a87-909e-2416d4e00904
  Warning  ExternalExpanding           93s                volume_expand                                                                             Ignoring the PVC: didn't find a plugin capable of expanding the volume; waiting for an external controller to process this PVC.
  Normal   Resizing                    93s                external-resizer cstor.csi.openebs.io                                                     External resizer is resizing volume pvc-849bd646-6d3f-4a87-909e-2416d4e00904
  Normal   FileSystemResizeRequired    88s                external-resizer cstor.csi.openebs.io                                                     Require file system resize of volume on node
  Normal   FileSystemResizeSuccessful  4s                 kubelet, <IP_ADDRESS>                                                                        MountVolume.NodeExpandVolume succeeded for volume "pvc-849bd646-6d3f-4a87-909e-2416d4e00904"

```

```sh
$ kubectl get pvc
NAME                           STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS              AGE
cstor-pvc                      Bound    pvc-849bd646-6d3f-4a87-909e-2416d4e00904   10Gi        RWO            cstor-csi-disk            1d

$ kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                   STORAGECLASS        REASON   AGE
pvc-849bd646-6d3f-4a87-909e-2416d4e00904   10Gi        RWO            Delete           Bound    default/cstor-pvc       cstor-csi-disk               40m
```

repository: openebs/cstor-operators

branch_name: refs/heads/develop

gha_language: Go

repo_name: openebs/cstor-operators


text:
---
published: true
layout: post
title: 'How To Generate A Report On Your Classic Build/Release Pipeline Agent Specifications'
description: >
  Ubuntu 16.04 is being removed from MS Azure DevOps in October 2021. Here's a quick way to find which of your classic
  build/release pipelines need to be changed.
modified: 2021-10-16
tags:
  - PowerShell
  - Azure DevOps
categories:
  - PowerShell
  - Azure DevOps
---

{% include
    image.html
      path="AzureDevOps-Ubuntu-Deprecated-Warning.png"
      alt="Ubuntu 16.04 LTS environment is deprecated and will be removed on October 18, 2021. Migrate to ubuntu-latest instead. For more details, see https://github.com/actions/virtual-environments/issues/3287"
%}

> Warning ⚠
> Ubuntu 16.04 LTS environment is deprecated and will be removed on October 18, 2021. Migrate to
> ubuntu-latest instead. For more details, see <https://github.com/actions/virtual-environments/issues/3287>

Perhaps you may have seen this warning in Azure DevOps already. It's easy
enough to fix once you identify a classic build or release pipeline that
needs upgrading but it is quite the chore to click through and manually
find which pipelines need updating.

Here I'll show you a quick script to generate a report of all your classic
build and release pipelines and what agent specification they are using.

## Step 1 - Download VSTeams PowerShell Module

```ps
Install-Module VSTeam -Scope CurrentUser
```

The [VSTeam module](https://github.com/MethodsAndPractices/vsteam) is a PowerShell
module started by Donovan Brown a Microsoft employee that has since recieved
numerous contributions from the Azure DevOps community and has quite a nice set
of features for working with Azure DevOps.

## Step 2 - Generate a Personal Access Token

[Generate a personal access
token](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=preview-page)
with the following scopes:

* Build:Read
* Release:Read

## Step 3 - Run the following script

```ps
Import-Module VSTeam

function Get-AzureDevOpsAgentSpecifications {

    [CmdletBinding()]

    param(
        [Parameter(Mandatory)]
        [string]
        $Account,

        [Parameter(Mandatory)]
        [securestring]
        $PAT
    )

    Set-VSTeamAccount -Account $Account -SecurePersonalAccessToken $PAT

    Write-Verbose "Fetching Projects from your account: [$Account]"
    $Projects = Get-VSTeamProject

    Write-Verbose "Found [$($Projects.Count)] Projects to check"

    $Report = @()

    foreach ($Project in $Projects) {
        $ClassicBuildType = "1"

        Write-Verbose "Fetching all classic pipelines from the project: [$($Project.Name)]"
        $ClassicBuilds = Get-VSTeamBuildDefinition -ProjectName $Project.Name |
            Where-Object { $_.InternalObject.process.type -eq $ClassicBuildType }

        Write-Verbose "Adding [$($ClassicBuilds.Count)] classic build pipelines to the report"

        foreach ($Build in $ClassicBuilds) {
            $Report += [pscustomobject]@{
                Organization = $Account
                Project = $Project.Name
                Name = $Build.Name
                Type = "Build"
                ReleaseStage = "N/A"
                Phase = "N/A"
                WebLink = $Build.InternalObject._links.web.href
                AgentSpecification = $Build.InternalObject.process.target.agentSpecification.identifier
            }

            $BuildPhasesWithUniqueAgent = $Build.InternalObject.process.phases | where { $Null -ne $_.target.agentSpecification }

            foreach ($BuildPhase in $BuildPhasesWithUniqueAgent) {
                $Report += [pscustomobject]@{
                    Organization = $Account
                    Project = $Project.Name
                    Name = $Build.Name
                    Type = "Build"
                    ReleaseStage = "N/A"
                    Phase = $BuildPhase.name
                    WebLink = $Build.InternalObject._links.web
                    AgentSpecification = $Build.InternalObject.process.target.agentSpecification.identifier
                }
            }
        }

        Write-Verbose "Fetching all classic release pipelines from the project: [$($Project.Name)]"
        $ReleasePipelines = Get-VSTeamReleaseDefinition -ProjectName $Project.Name | foreach { Get-VSTeamReleaseDefinition -ProjectName $Project.Name -Id $_.Id }

         Write-Verbose "Adding [$($ReleasePipelines.Count)] classic release pipelines to the report"

        foreach ($Release in $ReleasePipelines) {
            foreach ($ReleaseStage in $Release.InternalObject.environments) {
                foreach ($ReleaseStagePhase in $ReleaseStage.deployPhases) {
                    $Report += [pscustomobject]@{
                        Organization = $Account
                        Project = $Project.Name
                        Name = $Release.Name
                        Type = "Release"
                        ReleaseStage = "N/A"
                        Phase = $ReleaseStage.name
                        WebLink = $Release.Links.Web
                        AgentSpecification = $ReleaseStagePhase.deploymentInput.agentSpecification.identifier
                    }
                }
            }
        }
    }

    $Report
}
```

*NOTE: I'll keep an [updated gist
here](https://gist.github.com/Tiberriver256/afbc749e1ccc04b287fae296694fea1c) in
 case others use this and find bugs.

You can use this function by just running the command or by specifying the
`-Verbose` argument to get a little bit more detail while it runs.

```ps
Get-AzureDevOpsAgentSpecifications -Verbose
```

It will prompt you to put in the name of your Azure DevOps Account (also known
as your organization name) and a personal access token and will generate the
following output.

```txt
Organization       : tiberriver256
Project            : PowerShell Stuff
Name               : PowerShell Stuff-CI
Type               : Build
ReleaseStage       : N/A
Phase              : N/A
WebLink            : https://dev.azure.com/tiberriver256/be77c668-1e13-4360-aa08-264b1d5f64c6/_build/definition?definitionId=2
AgentSpecification : windows-2019

Organization       : tiberriver256
Project            : az-204
Name               : az-204-CI
Type               : Build
ReleaseStage       : N/A
Phase              : N/A
WebLink            : https://dev.azure.com/tiberriver256/7f6d5e26-f61e-403b-8016-2b871f88b960/_build/definition?definitionId=11
AgentSpecification : ubuntu-16.04

Organization       : tiberriver256
Project            : az-204
Name               : az-204-CI
Type               : Build
ReleaseStage       : N/A
Phase              : Agent job 1
WebLink            : @{href=https://dev.azure.com/tiberriver256/7f6d5e26-f61e-403b-8016-2b871f88b960/_build/definition?definitionId=11}
AgentSpecification : ubuntu-16.04

Organization       : tiberriver256
Project            : az-204
Name               : My Little Release
Type               : Release
ReleaseStage       : N/A
Phase              : Stage 1
WebLink            : https://dev.azure.com/tiberriver256/7f6d5e26-f61e-403b-8016-2b871f88b960/_release?definitionId=1
AgentSpecification : ubuntu-16.04

Organization       : tiberriver256
Project            : az-204
Name               : My Little Release
Type               : Release
ReleaseStage       : N/A
Phase              : Stage 2
WebLink            : https://dev.azure.com/tiberriver256/7f6d5e26-f61e-403b-8016-2b871f88b960/_release?definitionId=1
AgentSpecification : vs2017-win2016
```

If you'd like to use this output in Excel you can simply pipe it to a CSV using
the `Export-CSV` cmdlet.

```ps
$Report = Get-AzureDevOpsAgentSpecifications
$Report | Export-CSV -Path C:\my\azure-devops-report.csv
```

That should do it! Hope this was helpful to somebody else out there!

gha_language: JavaScript


text:
# Contributing to Git for Unity

:+1: :tada: :sparkling_heart: Thanks for your interest! :sparkling_heart: :tada: :+1:

The following is a set of guidelines for contributing to Git for Unity.
These are just guidelines, not rules. Use your best judgment, and
feel free to propose changes to this document in a pull request.

Note that Git for Unity is currently in preview, so everything is likely to
change over time as we learn and refine how we work with the community.

This project is a fork of GitHub for Unity, and therefore some of the information
here might not be fully up to date, and there may be links going to the wrong places.
We're cleaning things up as we go!

#### Table Of Contents

[What should I know before I get started?](#what-should-i-know-before-i-get-started)
  * [Code of Conduct](#code-of-conduct)
  * [The Roadmap](#the-roadmap)

[How Can I Contribute?](#how-can-i-contribute)
  * [How to Build](#how-to-build)
  * [Reporting Bugs](#reporting-bugs)
  * [Suggesting Enhancements](#suggesting-enhancements)
  * [Up for Grabs](#up-for-grabs)

[Additional Notes](#additional-notes)
  * [Issue and Pull Request Labels](#issue-and-pull-request-labels)

## What should I know before I get started?

### Code of Conduct

This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDUCT.md).
By participating, you are expected to uphold this code.

### The Roadmap

This project is a fork of GitHub for Unity and is currently in preview. The API part of GitHub for Unity is a .NET Git Client library, without any dependencies on Unity itself. Only the UI part of GitHub for Unity is Unity-specific.

The same applies to this project, which is split into two packages - `com.unity.git.api` - the Git client library; and `com.unity.git.ui` - a Unity Git UI based on the GitHub for Unity UI, which examplifies how to use the Git client library.

Even though this project is currently a fork, we plan for the API part of this project to become the authoritative implementation source, and split entirely from the original GitHub for Unity implementation.

We're doing this so we can improving the integration between Git and Unity
by exposing additional version control C# APIs that Git for Unity can leverage.
Therefore, the API may change while we build this, and this project may become dependent on
more recent versions of Unity.

## How Can I Contribute?

### How to Build

This repository is LFS-enabled. To clone it, you should use a git client that supports git LFS 2.x and submodules.

Please read the [How to Build](https://raw.githubusercontent.com/Unity-Technologies/Git-for-Unity/master/docs/contributing/how-to-build.md) document for information on how to build Git for Unity.

### Reporting Bugs

This section guides you through submitting a bug report for Git for Unity.
Following these guidelines helps maintainers and the community understand your
report :pencil:, reproduce the behavior :computer: :computer:, and find related
reports :mag_right:.

Before creating bug reports, please check [this list](#before-submitting-a-bug-report)
as you might find out that you don't need to create one. When you are creating
a bug report, please [include as many details as possible](#how-do-i-submit-a-good-bug-report).
Fill out [the required template](./.github/ISSUE_TEMPLATE.md), the information
it asks for helps us resolve issues faster.

#### Before Submitting A Bug Report

As this is still a fork, there are a lot of existing issues [reported upstream](https://github.com/github-for-unity/Unity/labels/bug). **Perform a [cursory search](https://github.com/github-for-unity/Unity/labels/bug) there and [here](https://github.com/Unity-Technologies/Git-for-Unity/labels/bug)**
to see if the problem has already been reported.

If it does exist, add a [reaction](https://help.github.com/articles/about-discussions-in-issues-and-pull-requests/#reacting-to-ideas-in-issues-and-pull-requests)
to the issue to indicate this is also an issue for you, and add a
comment to the existing issue if there is extra information you can contribute.

#### How Do I Submit A (Good) Bug Report?

Bugs are tracked as [Git issues](https://guides.github.com/features/issues/).

Simply create an issue on the [Git for Unity issue tracker](https://github.com/Unity-Technologies/Git-for-Unity/issues)
and fill out the provided [issue template](./.github/ISSUE_TEMPLATE.md).

The information we are interested in includes:

 - details about your environment - which build, which operating system
 - details about reproducing the issue - what steps to take, what happens, how
   often it happens
 - other relevant information - log files, screenshots, etc.

### Suggesting Enhancements

This section guides you through submitting an enhancement suggestion for
Git for Unity, including completely new features and minor improvements to
existing functionality. Following these guidelines helps maintainers and the
community understand your suggestion :pencil: and find related suggestions
:mag_right:.

Before creating enhancement suggestions, please check [this list](#before-submitting-an-enhancement-suggestion)
as you might find out that you don't need to create one. When you are creating
an enhancement suggestion, please [include as many details as possible](#how-do-i-submit-a-good-enhancement-suggestion).
Fill in [the template](./.github/ISSUE_TEMPLATE.md), including the steps
that you imagine you would take if the feature you're requesting existed.

#### Before Submitting An Enhancement Suggestion

As this is still a fork, there are a lot of existing issues [reported upstream](https://github.com/github-for-unity/Unity/labels/bug). **Perform a [cursory search](https://github.com/github-for-unity/Unity/labels/bug) there and [here](https://github.com/Unity-Technologies/Git-for-Unity/labels/bug)**
to see if the enhancement has already been suggested. If it has, add a
:thumbsup: to indicate your interest in it, or comment if there is additional
information you would like to add.

#### How Do I Submit A (Good) Enhancement Suggestion?

Enhancement suggestions are tracked as [Git issues](https://guides.github.com/features/issues/).

Simply create an issue on the [Git for Unity issue tracker](https://github.com/Unity-Technologies/Git-for-Unity/issues)
and provide the following information:

* **Use a clear and descriptive title** for the issue to identify the
  suggestion.
* **Provide a step-by-step description of the suggested enhancement** in as
  much detail as possible. This additional context helps the maintainers to
  understand the enhancement from your perspective
* **Explain why this enhancement would be useful** to Git for Unity users.
* **Include screenshots and animated GIFs** if relevant to help you demonstrate
  the steps or point out the part of Git for Unity which the suggestion is
  related to. You can use [this tool](http://www.cockos.com/licecap/) to record
  GIFs on macOS and Windows.
* **List some other applications where this enhancement exists, if applicable.**

### Up For Grabs

As the team is working towards the 2.0 release, we'll identify enhancements or
bugs that can be categorized as tasks that:

 - have low impact, or have a known workaround
 - should be fixed
 - have a narrow scope and/or easy reproduction steps
 - can be worked on independent of other tasks

These issues will be labelled as [`up-for-grabs`](https://github.com/Unity-Technologies/Git-for-Unity/labels/up-for-grabs)
in the repository. If you are interested in contributing to the project, please
comment on the issue to let the maintainers (and community) know you are
interested in picking this up.

## Additional Notes

### Issue and Pull Request Labels

This section lists the labels we use to help us track and manage issues and
pull requests.

#### Type of Issue and Issue State

| Label name | :mag_right: | Description |
| --- | --- | --- |
| `enhancement` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/enhancement) | Feature requests. |
| `bug` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/bug)  | Confirmed bugs or reports that are very likely to be bugs. |
| `question` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/question)  | Questions more than bug reports or feature requests (e.g. how do I do X). |
| `more-information-needed` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/more-information-needed) | More information needs to be collected about these problems or feature requests (e.g. steps to reproduce). |
| `needs-reproduction` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/needs-reproduction)  | Likely bugs, but haven't been reliably reproduced. |
| `macOS` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/macOS)  | Issues specific to macOS users. |
| `Windows` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/Windows)  | Issues specific to Windows users. |
| `Linux` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/Linux)  | Issues specific to Linux users. |

#### Topics

| Label name | :mag_right: | Description |
| --- | --- | --- |
| `up-for-grabs` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/up-for-grabs)  | Issues marked as ideal for external contributors. |
| `polish` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/polish) | Issues not critical to the application but would provide a better experience if resolved. |
| `tech-debt` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/tech-debt) | Issues related to code or architecture decisions. |
| `design` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/design)  | Issues that require some design input from the maintainers as part of completing the work. |

#### Workflow

| Label name | :mag_right: | Description |
| --- | --- | --- |
| `ready-for-review` | [search](https://github.com/Unity-Technologies/Git-for-Unity/labels/ready-for-review)  | Pull Requests that are ready to be reviewed by the maintainers. |

repository: effenzeffer/Git-for-Unity

repo_name: effenzeffer/Git-for-Unity


text:
# iTree
[![Go Reference](https://pkg.go.dev/badge/github.com/dmathieu/itree.svg)](https://pkg.go.dev/github.com/dmathieu/itree)
[![CircleCI](https://circleci.com/gh/dmathieu/itree.svg?style=svg)](https://app.circleci.com/pipelines/github/dmathieu/itree)

An Interval Tree Implementation written in Go

## Usage

## With int64 values

```go
intervals := []itree.Interval{
  itree.Interval{Start: 1, End: 3},
  itree.Interval{Start: 2, End: 5},
}

tree, err := itree.NewTree(intervals)
tree.Contains(context.Background(), 3)
```

## With times

```go
now := time.Now()
intervals := []time.Time{
  // The first value is the beginning of the interval, the second is the end
  []time.Time{now.Add(-2 * time.Minute), now.Add(-1 * time.Minute)},
  []time.Time{now.Add(-2 * time.Hour), now.Add(-1 * time.Hour)},
}

tree, err := itree.NewTimesTree(intervals)
tree.Contains(now)
```

## With IP Networks

```go
_, ipnet, _ := net.ParseCIDR("<IP_ADDRESS>/32")

intervals := []*net.IPNet{ipnet}
tree, err := itree.NewIPNetTree(intervals)

tree.Contains(net.ParseIP("<IP_ADDRESS>"))
```

## Graphviz Generation

After generating a tree, you can generate a graphviz representation of it.

```go
tree := // Generate your tree
graph, err := tree.Graphviz(itree.GraphvizOptions{})
if err != nil {
  log.Fatal(err)
}
```

The graphviz generation creates the graph using
[go-graphviz](https://github.com/goccy/go-graphviz), and returns a
`*cgraph.Graph`. So you can use that object to export the data to any format
supported by the library.

# Benchmarks

You can run the internal benchmarks using  `go test -bench=. ./...`
Here is the output from a 2019 MacBook Pro

```
BenchmarkBuildTree
BenchmarkBuildTree-12              10000            990813 ns/op
BenchmarkTreeContains
BenchmarkTreeContains-12         2967738               469 ns/op
```

repository: dmathieu/itree

repo_name: dmathieu/itree


text:
# Translation and localization

```{admonition} Summary
This document contains our translation and localization policy.
```

## Key concepts

To make sure the OCDS is accessible around the world, we pay attention to a number of areas:

* **Internationalization (i18n)**: The process of designing a standard, and the tools associated with it, so that it can be localized across different contexts.
* **Translation**: The process of making a standard and its associated tools and documentation available in more than one language.
* **Localization (l10n)**: Going beyond a generic language translation to also consider how a standard and its documentation will be interpreted within a particular local and cultural context.

In general, internationalization is a task during the development of the schema and documentation. Translation for _supported_ languages takes place as part of the [core development process](index). In addition, _community_ translations are accepted. Localization takes place as part of implementation support in particular countries and contexts.

To ensure readers have a clear understanding of the nature of translations, the documentation and schema descriptions will include a clear note explaining the status of any translation.

## Principles

Our approach to supported translations will be:

1. **Deliberate.** We will be clear on the purpose of translation, and whose needs it should meet.
2. **Accurate.** We will engage local reviewers for languages, and work with reviewers with subject matter expertise to ensure the quality of translation.
3. **Consistent.** We will identify and define key terms, and make sure that whenever they occur in the same context they are translated in the same way.
4. **Accessible.** We will design translation practices around user needs and will consider the audience, their language skills and technical qualifications, and their specific needs for translation.
5. **Usable.** We will honor the work we are asking the reader or user of our translations to do by making sure translations are fit for purpose.
6. **Iterative.** We will listen to user feedback and make sure there is a way to capture and act on it.
7. **Transparent.** We will provide access to the translation process and decision making, accounting for the translations decisions we make.

## Policy

### Language support

* The authoritative language for the standard is English. All translations into other languages are provided for the convenience of users, and in case of conflict or ambiguity, the English text supersedes all translations.
* Our core **supported translations** are listed on the standard website. Translations in these languages will be reviewed by subject matter and language experts.

  The standard governance group will approve or remove supported languages, taking note of where there is wide community interest expressed through issues and community discussion spaces, ongoing implementation of OCDS, and resources available for ongoing translation.
* **Supported translations** will be actively maintained by the OCDS technical team, kept up to date when the standard is updated. For supported translations we will have a well-managed glossary of key terms, reviewed by language and subject matter experts.
* We welcome **community translations** in other languages. We do not assess or review the accuracy of community translations.
* **Community translations** are contributed by volunteers. There is no commitment to keep these updated when the standard changes.
* **Community translations** will only be linked from the documentation when the schema is fully translated, and at least 50% of other documentation pages are translated. Community translations may be removed if they appear to be abandoned, misleading, inaccurate or detrimental to the standard, by the OCDS technical team at any time.

### Draft and release process

* **Draft** translations (supported or community) may be made available within the documentation, but only with the addition of a suitable warning notice.
* When a translation is judged by the OCDS technical team to be stable and unlikely to see major changes, it will be flagged as a **release** version, and this clearly indicated.

### Update process

* Whenever a major, minor or patch version of the standard is released, normative content will be translated into all core supported languages as soon as possible.
* Minor, non-normative, documentation updates will be translated promptly, but may not always be translated before the updates are released.
* The documentation will clearly display when the English documentation is 'ahead' of translations for a particular version.
* Community translators will be notified of updates, and encouraged to update their translations.

repository: open-contracting/standard

gha_language: Python

repo_name: open-contracting/standard


text:
# Miscellaneous

======================
Title | Description
--- | ---
[OpenSLAM](https://openslam.org/) | Provides a platform for SLAM researchers which gives them the possibility to publish their algorithms.
[awesome-computer-vision](https://github.com/jbhuang0604/awesome-computer-vision) | A curated list of awesome computer vision resources.

repository: rasata/awesome-visual-slam

repo_name: rasata/awesome-visual-slam


text:
# Employee Tracker

By [tan-x](https://github.com/tan-x)

## Description

A Node.js CLI program that lets you add, delete, and modify various parts of an organization including employees, departments, and roles.

### Tech

- Javascript
- node.js
- MySQL

## Table of Contents

* [Installation](#installation)

* [Usage](#usage)

* [License](#license)

* [Contributing](#contributing)

* [Tests](#tests)

* [Questions](#questions)

## Installation

To install necessary dependencies, run the following command:

```
npm install emptracker
```

## Usage

Install and run node server.js, follow prompts.

## License

[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](https://opensource.org/licenses/ISC)

This project is licensed under the ISC license.

## Contributions

Pull requests are welcomed, please review guidlines.

[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](code_of_conduct.md)

## Questions

<img class="avatar" alt="avatar" src="https://avatars0.githubusercontent.com/u/40008983?v=4" width="72" height="72">

If you have any questions about the repo, open an issue or contact [Tanner Griffin](https://github.com/tan-x) directly at tannermgriffin@gmail.com.

license: ISC

repository: tan-x/employee-tracker

repo_name: tan-x/employee-tracker


text:
# Change Log

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

## [0.1.4](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/compare/@native-elements/ne-meter@0.1.3<EMAIL_ADDRESS>(2018-03-10)

### Bug Fixes

* Update readme files ([d2f7c8b](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/commit/d2f7c8b))

## [0.1.3](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/compare/@native-elements/ne-meter@0.1.2<EMAIL_ADDRESS>(2018-02-16)

**Note:** Version bump only for package @native-elements/ne-meter

## [0.1.2](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/compare/@native-elements/ne-meter@0.1.1<EMAIL_ADDRESS>(2018-02-16)

**Note:** Version bump only for package @native-elements/ne-meter

## [0.1.1](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/compare/@native-elements/ne-meter@0.1.0<EMAIL_ADDRESS>(2018-01-09)

### Bug Fixes

* **ne-meter:** Improve README ([c2d23a1](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/commit/c2d23a1))

# 0.1.0 (2018-01-08)

### Bug Fixes

* **ne-meter:** Fix CSS properties names ([ddc4d27](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/commit/ddc4d27))
* **ne-meter:** switch to ne-* attribute ([6a1a553](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/commit/6a1a553))
* Fix config mixin name ([1e254fc](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/commit/1e254fc))

### Features

* **minify:** added minify script (plus chore yarn.lock and css sample) ([13f5648](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/commit/13f5648))
* **ne-meter:** Refactor structure ([ef059f2](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/commit/ef059f2))

## [1.1.2](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/compare/@native-elements/ne-meter@1.1.1<EMAIL_ADDRESS>(2018-01-05)

### Bug Fixes

* Fix config mixin name ([1e254fc](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/commit/1e254fc))

## [1.1.1](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/compare/@native-elements/ne-meter@1.1.0<EMAIL_ADDRESS>(2017-12-31)

**Note:** Version bump only for package @native-elements/ne-meter

# [1.1.0](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/compare/@native-elements/ne-meter@1.0.7<EMAIL_ADDRESS>(2017-12-31)

### Features

* **ne-meter:** Refactor structure ([ef059f2](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/commit/ef059f2))

## [1.0.7](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/compare/@native-elements/ne-meter@1.0.6<EMAIL_ADDRESS>(2017-12-23)

### Bug Fixes

* **ne-meter:** switch to ne-* attribute ([6a1a553](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/commit/6a1a553))

## [1.0.6](https://github.com/equinusocio/native-elements/tree/master/elements/ne-meter/compare/@native-elements/ne-meter@1.0.4<EMAIL_ADDRESS>(2017-12-17)

**Note:** Version bump only for package @native-elements/ne-meter

repository: gmshawon/native-elements

repo_name: gmshawon/native-elements


text:
![GitHub]
  https://img.shields.io/badge/license-ISC-blue.svg

  # Fitness Tracker

  ## Use
  This application is used for creating workouts and keeping tack of said workouts.

  ## Why
  Someone would use this application to keep track of desired workouts/exercises.

    ## Table of Contents
    * [Installation](#installation)
    * [Usage](#usage)
    * [Collaborators](#collaborators)
    * [License](#license)
    * [Tests](#tests)
    * [Questions](#questions)

  ## Installation:
    No instalation process involved. It is deployed on the internet.

  ## Usage
    This application would be used by goingt to https://sheltered-island-90534.herokuapp.com/

  ## Collaborators
    No.

  ## Licensing
    This project is covered under a ISC license.

  ## Tests
    No tests currently available.

  ## Questions

  https://github.com/Jdusang1

  Email<EMAIL_ADDRESS>


text:
# fhchaos home

## What is this?
This is the page that will be displayed when you visit [fhchaos][1], Felix' and
Hans' little server. Sometimes people end up there by accident, because they
mistyped a URL and the server is configured to respond to every subdomain that
is not explicitly configured, e.g. [https://notconfigured.diskurswelt.de/][2].

## Usage
If you happen to need a similar page on your server, feel free to use this
little webpage of ours and modify it to your needs. It is published under [MIT
license][3] (see MITLICENSE).

[1]: https://chaos.diskurswelt.de/
[2]: https://notconfigured.diskurswelt.de/
[3]: http://www.opensource.org/licenses/mit-license.php

repository: felixmiddendorf/fhchaos-home

repo_name: felixmiddendorf/fhchaos-home


text:
---
title: "XBMC插件之网易公开课"
date: 2013-07-23
lastmod: 2013-07-23
draft: true
tags: ["tech", "python", "xmbc", "raspberrypi"]
categories: ["tech"]
description: "自己为XBMC写的一个网易公开课插件，满足课程分类/学校分类/查找功能"
# You can also close(false) or open(true) something for this content.
# P.S. comment can only be closed
comment: true
toc: false
# You can also define another contentCopyright. e.g. contentCopyright: "This is another copyright."
contentCopyright: true
# reward: false
# mathjax: false
---
# ssh over http

brew install proxychains-ng

cat /usr/local/Cellar/proxychains-ng/4.11/etc/proxychains.conf

proxychains ssh -p 1228 -ND2000 root@tacyvps-wx &

set browser to socket5 proxy <IP_ADDRESS>:2000

# DNS
清除缓存
```
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
```

repository: tacy/blog

repo_name: tacy/blog


text:
# HNtrends

A front-end for a hacker news analysis project I am working on.

## What is HNTrends?

HNTrends is a tool that uses cloudsearch, ruby on rails, and a little javascript to compare & contrast the search volume for various keywords on Hacker News. TLDR -- It's Google Trends for Hacker News.

I originally built the tool as a way to combine my data warehousing expertise (acuired at Simple Energy) with my growing interest Ruby on Rails hackery (as prep for my 2015 job hunt).

You can access the project here.

Here is a screenshot of the project:

If you're interested in getting your hands on the ETL scripts that I used to download the hacker news posts and users from the API, or in extending the project, please contact me via @owocki on twitter or via the email address in my github profile.

repository: owocki/hntrends

repo_name: owocki/hntrends


text:
# Smart home ecosystem based on Raspberry Pi
![square version-01](https://user-images.githubusercontent.com/16310793/57600941-db1f8980-7563-11e9-95ed-5f9c90f0136c.png)
Build your own smart home ecosystem based on Raspberry Pi. Use the guideline and/or bash scripts, which is tested and verified on real hardware and software.
Why do you need it? It a great chance to build own smart home, which is customing as you want and all the features as you want.

# Release Notes

### 0.1.0-SNAPSHOT
* added [Base configuration for the single-board computers](#base-congifuration-for-the-single-board-computers)
* add all scripts based on Base Configuration and tested it.
# Parts
* [Base congifuration for the single-board computers](#base-congifuration-for-the-single-board-computers)
* [Main server based on Raspberry Pi Modeb 3b+](#main-server-based-on-raspberry-pi-modeb-3b)
* [Camera monitoring based on Raspberry Pi Zero W](#camera-monitoring-based-on-raspberry-pi-zero-w)
* [Monitoring home state with different sensors](#monitoring-home-state-with-different-sensors)
* [Local internet customising based on Orange Pi R1](#local-internet-customising-based-on-orange-pi-r1)
* [Backup server on Raspberry Pi Zero W](#Backup-server-on-Raspberry-Pi-Zero-W)

## Base congifuration for the single-board computers
[Full description](BASE_CONFIGURATION.md) [:arrow_up:](#smart-home-based-on-raspberry-pi) Go Top.
  1. Download [Raspbian OS](https://www.raspberrypi.org/downloads/raspbian/). All the guidelines describe the case with *Raspbian Stretch Lite*, the image with the only command line.
  2. Get microSD card on 16GB+. I prefer SanDisk 16GB.
  3. Format microSD card to FAT32 format. I use *CD Card Formatter* on MacOS.
  4. Install downloaded image on microSD. I use *balenaEtcher* to do it.

## Main server based on Raspberry Pi Modeb 3b+
[:arrow_up:](#smart-home-based-on-raspberry-pi)
1. Implement [Base Configuration](#base-congifuration-for-the-single-board-computers)
2. Install torrent-downloader(to be added)
3. Mount USB-storage
4. Install own cloud
5. to be added
## Camera monitoring based on Raspberry Pi Zero W
[Full description](PI_ZERO_W_CAMERA.md) [:arrow_up:](#smart-home-based-on-raspberry-pi)
1. Implement [Base Configuration](#base-congifuration-for-the-single-board-computers)
2. Install MotionEye using next [guidelines](https://github.com/ccrisan/motioneye/wiki/Install-On-Raspbian) or use our bash script `./srcripts/zerow/motion-eye.sh`
3. This raspberry can be used for other needs, too. On demand can be chosen features from list.
## Monitoring home state with different sensors
[:arrow_up:](#smart-home-based-on-raspberry-pi)
In a nutshell:
* CO2 Sensor
* Humidity sensor
* air temperature sensor
* etc
## Backup server on Raspberry Pi Zero W
[To be added](BACKUP_SERVER.md). Zero W should be enough to be a backup server.
1. Implement [Base Configuration](#base-congifuration-for-the-single-board-computers)
2. Mount USB-storage and connect it to USB 2.0
3. Install Samba.

## Local internet customising based on Orange Pi R1
[:arrow_up:](#smart-home-based-on-raspberry-pi) To be added

# Usage
[:arrow_up:](#smart-home-based-on-raspberry-pi)
Step by step these guidelines can be used for creating own smart home ecosystem.

You can use two ways to do it.
* First is to go step by step throws the description.
* Second is to run bash scripts, which are based on the guidelines.

# Features
[:arrow_up:](#smart-home-based-on-raspberry-pi)
* media server
* Wi-Fi printer
* gaming center
* torrent-downloader
* etc... to be added

# Contributing
[:arrow_up:](#smart-home-based-on-raspberry-pi)
If you have any ideas of how to improve this approach or you have ideas about new features - welcome!
Full description can be found [HERE](CONTRIBUTING.md)
# Lisence
[:arrow_up:](#smart-home-based-on-raspberry-pi)
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

gha_language: Shell


text:
# Benchmark Cython vs Numba

A work-in-progress assessment of Cython vs Numba with Numpy as a baseline for various array manipulation. So far

- Pairwise distances (`pairwise_distances.py`): a list of 3D coordinates as input, the list of all distances between any two points as output;
- Laplacian filter (`laplacian.py`): a 512x512 image as input, compute the Laplacian, filter the resulting image with a threshold.

Running the benchmarks is as simple as running the scripts with python. There are some prerequisites of course: the easiest is to install them using [conda](https://conda.io/docs/) and the exported `environment.yml`:

    % conda env create -f environment.yml

This will create an environment named `numerics`: activate it before running the benchmarks.

Conclusions so far.

- On MacOS Sierra with all packages installed with conda, with Westmere X5690
    - Pairwise distances: Cython and Numba are both about 5 times faster than Numpy
    - Laplacian: Numba is 2-3 times faster than Cython which is more than twice faster than Numpy

repository: luc-j-bourhis/Cython-vs-Numba

repo_name: luc-j-bourhis/Cython-vs-Numba


text:
# Project-1

## Description

This repository was created to display all updated information within the United States regarding the COVID-19 pandemic. In this application, you can use the map to search for information on Covid for a specific region. Information includes confirmed cases, available hospital beds, and where to find charities to donate to
for Covid relief.

## Google Doc One Pager

[https://docs.google.com/document/d/1uFGRiI8EM4W4MyCwBA1ipmct5BwpRYkJCV2z6iZeOUs/edit](https://docs.google.com/document/d/1uFGRiI8EM4W4MyCwBA1ipmct5BwpRYkJCV2z6iZeOUs/edit)

## APIs

* [Google Maps](https://developers.google.com/maps/)
* [Charity API](http://charityapi.orghunter.com/content/charity-search-summary-api)
* [COVID Data by Location](https://documenter.getpostman.com/view/10122604/TVCe29D4#9e5b3384-a1d8-446d-b27e-c93fefb46014)

## Credits

* [The COVID Tracking Project](https://covidtracking.com/)
* [The New York Times](https://www.nytimes.com/)
* [Charts.js](https://www.chartjs.org/)

## Contributions

* Rafael Chavez - https://github.com/Rafael-Chavez
* Kevin Buttimer - https://github.com/KevinB04
* Kyle Chriscoe - https://github.com/Udunomancer
* Alsharif Eid - https://github.com/alsharifnahas

## License

[MIT](https://choosealicense.com/licenses/mit/)

Copyright (c) [2020] [Kevin Buttimer, Kyle Chriscoe, Alsharif Eid, Rafael Chavez]

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

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

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

repository: Rafael-Chavez/covid-targeted-donations

repo_name: Rafael-Chavez/covid-targeted-donations


text:
# dotnet-ciig

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

The repository for [.NET Collection Interface Interactive Guide (CIIG)](https://rvhuang.github.io/dotnet-ciig/).

Read [blog<EMAIL_ADDRESS>about the project.

### Future works

1. Add **Comparison mode** which allows users to compare interfaces as if they are using shopping site (for example, [Apple Store](https://www.apple.com/tw/mac/compare/)). -- Done
2. Introduce [immutable series](https://docs.microsoft.com/en-us/dotnet/api/system.collections.immutable) to the project.
3. Add icons for each question in Questionnaire mode.
4. Reorganize question order in Questionnaire mode.
5. Adapt the site to [Progressive Web Application](https://developers.google.com/web/progressive-web-apps/).

### License

The project is licesed under the [MIT license](LICENSE).

repository: rvhuang/dotnet-ciig

gha_language: HTML

repo_name: rvhuang/dotnet-ciig


text:
### Jasper (Just Another Speed Reader)

Try it out [online](https://deverac.github.io/jasper/).

Usage:
1. Type or paste text into the __Source Text__ area.
1. Move cursor to the __Control__ field (e.g. press _Tab_).
1. Press _ArrowUp_ to toggle start/stop.
1. Press _ArrowRight_ to skip forward.
1. Press _ArrowLeft_ to skip back.

Fields:
* __Words Per Minute__: Rate at which words are displayed.
* __Chunksize__: Number of words in a chunk.
* __Textsize__: Height of the displayed text.
* __Use Serif Font__: Display text using a serif font.
* __Pause after period or comma__: Briefly pause after a period or comma; only relevant when __Chunksize__ is 1.
* __Help__: Toggle visibility of this help text.

When __Words Per Minute__, __Chunksize__, or __Textsize__ has focus, pressing _ArrowUp_ will increase the value, pressing _ArrowDown_ will decrease the value. Fields can be modified even after speed-reading has started. Invalid values are ignored.

When speed-reading is stopped, clicking anywhere in the __Source Text__ will set the position at which speed-reading will commence. When the cursor is positioned after the last word in __Source Text__, the starting point is set to the start of the text.

If you know about HTML query parameters, you can set the field values at startup
using: `jasper.html?wpm=300&chunksize=2&textsize=35&serif=1&pause=1`

If interested, you may wish to try other Javascript speed readers such as [Faster!](https://www.fsavard.com/code/speedread/) or [JSReader](https://github.com/royha/jsreader).

repository: deverac/jasper

repo_name: deverac/jasper


text:
Incorporated Research Institutions for Seismology (IRIS):

    Data Management Center (DMC)
    Data Products Team
    IRIS Earth Model Collaboration (EMC) - Tools

COMMENTS/QUESTIONS:

    Please contact<EMAIL_ADDRESS>

 2018-10-25
----------------------------------------------------------------------------------------------------------------------------------------------------------------------

 DESCRIPTION:

 EMC Tools contains a set of Python scripts for converting the EMC's netCDF Earth model files (in netCDF 3 format) to
 and from GeoCSV format:

    - netCDF_2_GeoCSV_3D.py - a Python script to read a 3D netCDF Earth model file and display its header information or
      convert it to GeoCSV format.
    - GeoCSV_2_netCDF_3D.py - a Python script to read a 3D GeoCSV Earth model file and display its header information or
      convert it to netCDF format.
    - netCDF_2_GeoCSV_2D.py - a Python script to read a 2D netCDF Earth model file and convert it to GeoCSV format.
    - GeoCSV_2_netCDF_2D.py - a Python script to read a 2D GeoCSV Earth model file and convert it to netCDF format.

 * For information on EMC (IRIS Earth Model Collaboration) visit: http://ds.iris.edu/ds/products/emc/
 * For information on netCDF (Network Common Data Form) visit: https://www.unidata.ucar.edu/software/netcdf/
 * For information on GeoCSV (tabular text formatting for geoscience data) visit:
       http://geows.ds.iris.edu/documents/GeoCSV.pdf

 **USAGE:**
You can work with each script directly and independently. To view the usage message, run the script with the
help (**-h**) option:

* netCDF_2_GeoCSV_3D.py -h
* GeoCSV_2_netCDF_3D.py -h
* netCDF_2_GeoCSV_2D.py -h
* GeoCSV_2_netCDF_2D.py -h

**How to run netCDF\_2\_GeoCSV\_3D.py:**

    - use the sample 3D netCDF file under the "samples" directory or download a 3D netCDF Earth model file from the EMC
      repository:
   http://ds.iris.edu/ds/products/emc-earthmodels/

    - [optional] create a "data" directory with a path relative to the script as "../data/" and place the netCDF file
      there
    - run the script to convert the netCDF file. The converted file will have the same name as the netCDF file but with
      extension ".csv" and will be placed under the same directory where the netCDF file was found.

            netCDF_2_GeoCSV_3D.py -i SAW642ANB_kmps.nc (will look for the file under the script directory and data
            directory)

            The following options are also available:
                -d debug mode with verbose execution
                -m [single, depth] the mode option tells the script how to convert the netCDF file
                    single (default) will create a single ".csv" file
                    depth will create one ".csv" file per depth
                -H display file header information for both netCDF and GeoCSV (no output file created)

            NOTE: only a .csv files converted with "-m single" option can be converted back to netCDF using the
                  GeoCSV_2_netCDF_3D.py script

**How to run GeoCSV\_2\_netCDF\_3D.py:**

    - use the sample GeoCSV file under the "samples" directory as a template to create your own GeoCSV file with proper
      header, or convert a netCDF model file to GeoCSV using the netCDF_2_GeoCSV_3D.py script above
    - run the script to convert the GeoCSV file to netCDF. The converted file will have the same name as the GeoCSV file
      but with extension ".nc" and will be placed under the same directory where the GeoCSV file was found.

            GeoCSV_2_netCDF_3D.py -i SAW642ANB_kmps.csv (will look for the file under the script directory and data
            directory)

            The following options are also available:
                -d debug mode with verbose execution
                -H display file header information for both netCDF and GeoCSV

            NOTE: only a single ".csv" files can be converted back to netCDF using this script

**How to run netCDF\_2\_GeoCSV\_2D.py:**

    - use the sample 2D netCDF file under the "samples" directory or download a 2D netCDF Earth model file from the EMC
      repository:
   http://ds.iris.edu/ds/products/emc-earthmodels/

    - [optional] create a "data" directory with a path relative to the script as "../data/" and place the netCDF file
      there
    - run the script to convert the netCDF file. The converted file will have the same name as the netCDF file but with
      extension ".csv" and will be placed under the same directory where the netCDF file was found.

            netCDF_2_GeoCSV_2D.py -i Crustal_Thickness_Error.nc (will look for the file under the script directory and
            data directory)

            The following options are also available:
                -d debug mode with verbose execution
                -H display file header information for both netCDF and GeoCSV (no output file created)

**How to run GeoCSV\_2\_netCDF\_2D.py:**

    - use the sample GeoCSV file under the "samples" directory as a template to create your own GeoCSV file with proper
      header, or convert a netCDF model file to GeoCSV using the netCDF_2_GeoCSV_2D.py script above
    - run the script to convert the GeoCSV file to netCDF. The converted file will have the same name as the GeoCSV file
      but with extension ".nc" and will be placed under the same directory where the GeoCSV file was found.

            GeoCSV_2_netCDF_2D.py -i Crustal_Thickness_Error.csv (will look for the file under the script directory and
            data directory)

            The following options are also available:
                -d debug mode with verbose execution
                -H display file header information for both netCDF and GeoCSV

 **HEADERS:**

    GeoCSV Headers are similar to the netCDF headers with the following exceptions:
        - GeoCSV-specific header lines:
            # dataset: GeoCSV2.0
            # created: 2018-10-18 13:33:30 UTC (netCDF_2_GeoCSV_3D.py)
            # netCDF_file: SAW642ANB_kmps.nc
            # delimiter: |
            # {VAR}_column: {VAR} where {VAR} represents a model or coordinate variable such as latitude, vs, etc.

         - The global attributes in netCDF header start with a ":", like    :geospatial_lat_min = "-90.00" ;
           while the same global attribute under GeoCSV starts with global_, like # global_geospatial_lat_min: -90.00

    EMC Earth models netCDF header follow the EMC netCDF 3 guidelines see:
   http://ds.iris.edu/ds/products/emc-contributionguide/

    To view the file header information for both netCDF and GeoCSV, run the above scripts with -H option:
            netCDF_2_GeoCSV_3D.py -H -i SAW642ANB_kmps.nc
            GeoCSV_2_netCDF_3D.py -H -i SAW642ANB_kmps.csv
            netCDF_2_GeoCSV_2D.py -H -i Crustal_Thickness_Error.nc
            GeoCSV_2_netCDF_2D.py -H -i Crustal_Thickness_Error.csv

**Creating EMC GeoCSV Earth Model Files**

   The following highlights the steps you need to follow in order to create an EMC Earth model file in GeoCSV format:

       Note: The GeoCSV Earth model files in general should follow "EMC's guidelines" at:
   http://ds.iris.edu/ds/products/emc-contributionguide/

       Note: Familiarize yourself with the "GeoCSV format" at:
   http://geows.ds.iris.edu/documents/GeoCSV.pdf

      Note: The following steps are for converting 3D models. For 2D models use the corresponding scripts but note that
            in 2D domain, each point is defined by a set of (latitude,longitude) values.
            Your data must be sorted in the same order (latitude column first and then the longitude column).

     - download the "SAW642ANB_kmps.csv" from the samples folder and inspect it. The file has three parts:
          * metadata header - starts at the beginning of the file with each line starting with a "#"
          * data header - a single line following metadata header that identifies columns
          * data - lines following the header

     - download the header.csv file from the samples directory as a header template and edit it to include information
       about your model (do not change the first line: # dataset: GeoCSV2.0). This file contains the metadata and data
       headers of the "SAW642ANB_kmps.csv" file. Also edit the data header (last line with no starting # to include all
       variables that you have defined under the mtadata header.
     - create the data section by writing data to a file using delimiter identified in the metadata header section and
       in the same order as the defined in the data header line.
       **NOTE:** For the EMC models with a 3D grid, each point is defined by a set of (depth,latitude,longitude) values.
                 Your data must be sorted in the same order (depth column first, latitude column second and the
                 longitude column third).
     - add the data section under the "data header line" of the header file
     - test your GeoCSV file by extracting its header using the "GeoCSV_2_netCDF_3D.py" script:
               GeoCSV_2_netCDF_3D.py -H -i {YOUR_FILE_NAME}.csv
     - convert your file to netCDF format using the "GeoCSV_2_netCDF_3D.py" script:
               GeoCSV_2_netCDF_3D.py -i {YOUR_FILE_NAME}.csv

**HEADER EXAMPLE:**

netCDF_2_GeoCSV_3D.py -H -i SAW642ANB_kmps.nc

[INFO] netCDF_2_GeoCSV_3D.py version R.0.0.2018.295
[INFO] Input netCDF File: SAW642ANB_kmps.nc

**netCDF header information:**

	dimensions:
		depth 46
		latitude 91
		longitude 180

	variables:
		vs:
			long_name = Shear Velocity
			display_name = S Velocity (km/s)
			units = km.s-1
			missing_value = 99999.0
			_FillValue = 99999.0
		vp:
			long_name = P Velocity
			display_name = P Velocity (km/s)
			units = km.s-1
			missing_value = 99999.0
			_FillValue = 99999.0
		rho:
			long_name = Density
			display_name = Density (kg/m^3)
			units = kg.m-3
			missing_value = 99999.0
			_FillValue = 99999.0
		Qs:
			long_name = Shear Q
			display_name = Shear Q (dimensionless)
			units = count
			missing_value = 99999.0
			_FillValue = 99999.0

	global attributes:
			title = A radially anisotropic whole mantle model with improved crustal corrections
			id = SAW642ANb_kmps
			summary = SAW642ANb is a radially anisotropic shear velocity model, parameterized in terms of isotropic S velocity (Voigt average) and the anisotropic parameter, xi (Vsh^2/Vsv^2).
			reference = Panning, Lekic and Romanowicz (2010)
			references = http://ds.iris.edu/ds/products/emc-references
			keywords = seismic, tomography, shear wave, s wave, elastic waveform
			Conventions = CF-1.0
			Metadata_Conventions = Unidata Dataset Discovery v1.0
			creator_name = IRIS EMC
			creator_url = http://ds.iris.edu/ds/products/emc/
			creator_email =<EMAIL_ADDRESS>			institution = IRIS DMC
			acknowledgment = Model was provided by Professor Mark Panning,  Department of Geological SciencesUniversity of Florida
			history = 2011-06-21 created 2016-08-11 IRID DMC, updated variable definitions to make sure they are compatible with CF
			comment = model converted to netCDF by IRIS EMC
			geospatial_lat_min = -90.00
			geospatial_lat_max = 90.00
			geospatial_lat_units = degrees_north
			geospatial_lat_resolution = 2
			geospatial_lon_min = -180.00
			geospatial_lon_max = 178.0
			geospatial_lon_units = degrees_east
			geospatial_lon_resolution = 2
			geospatial_vertical_min = 50
			geospatial_vertical_max = 2850
			geospatial_vertical_units = km
			geospatial_vertical_positive = down

**GeoCSV header information:**

	    # dataset: GeoCSV2.0
        # created: 2018-10-23 21:23:32 UTC (netCDF_2_GeoCSV_3D.py)
        # netCDF_file: SAW642ANB_kmps.nc
        # delimiter: |
        # global_title: A radially anisotropic whole mantle model with improved crustal corrections
        # global_id: SAW642ANb_kmps
        # global_summary: SAW642ANb is a radially anisotropic shear velocity model, parameterized in terms of isotropic S velocity (Voigt average) and the anisotropic parameter, xi (Vsh^2/Vsv^2).
        # global_reference: Panning, Lekic and Romanowicz (2010)
        # global_references: http://ds.iris.edu/ds/products/emc-references
        # global_keywords: seismic, tomography, shear wave, s wave, elastic waveform
        # global_Conventions: CF-1.0
        # global_Metadata_Conventions: Unidata Dataset Discovery v1.0
        # global_creator_name: IRIS EMC
        # global_creator_url: http://ds.iris.edu/ds/products/emc/
        # global_creator_email<EMAIL_ADDRESS>        # global_institution: IRIS DMC
        # global_acknowledgment: Model was provided by Professor Mark Panning,  Department of Geological SciencesUniversity of Florida
        # global_history: 2011-06-21 created 2016-08-11 IRID DMC, updated variable definitions to make sure they are compatible with CF
        # global_comment: model converted to netCDF by IRIS EMC
        # global_geospatial_lat_min: -90.00
        # global_geospatial_lat_max: 90.00
        # global_geospatial_lat_units: degrees_north
        # global_geospatial_lat_resolution: 2
        # global_geospatial_lon_min: -180.00
        # global_geospatial_lon_max: 178.0
        # global_geospatial_lon_units: degrees_east
        # global_geospatial_lon_resolution: 2
        # global_geospatial_vertical_min: 50
        # global_geospatial_vertical_max: 2850
        # global_geospatial_vertical_units: km
        # global_geospatial_vertical_positive: down
        # latitude_column: latitude
        # latitude_long_name: Latitude; positive north
        # latitude_units: degrees_north
        # latitude_standard_name: latitude
        # longitude_column: longitude
        # longitude_long_name: Longitude; positive east
        # longitude_units: degrees_east
        # longitude_standard_name: longitude
        # depth_column: depth
        # depth_long_name: depth below earth surface
        # depth_units: km
        # depth_positive: down
        # vs_column: vs
        # vs_long_name: Shear Velocity
        # vs_display_name: S Velocity (km/s)
        # vs_units: km.s-1
        # vs_missing_value: 99999.0
        # vs__FillValue: 99999.0
        # vp_column: vp
        # vp_long_name: P Velocity
        # vp_display_name: P Velocity (km/s)
        # vp_units: km.s-1
        # vp_missing_value: 99999.0
        # vp__FillValue: 99999.0
        # rho_column: rho
        # rho_long_name: Density
        # rho_display_name: Density (kg/m^3)
        # rho_units: kg.m-3
        # rho_missing_value: 99999.0
        # rho__FillValue: 99999.0
        # Qs_column: Qs
        # Qs_long_name: Shear Q
        # Qs_display_name: Shear Q (dimensionless)
        # Qs_units: count
        # Qs_missing_value: 99999.0
        # Qs__FillValue: 99999.0


text:
# datacatalog-connectors-hive

This repository contains sample code with integration between Data Catalog and Hive and related data source.

**Disclaimer: This is not an officially supported Google product.**

![Python package](https://github.com/GoogleCloudPlatform/datacatalog-connectors-hive/workflows/Python%20package/badge.svg?branch=master)

## **Breaking Changes in v0.5.0**

The package names were renamed, if you are still using the older version use the branch: [release-v0.0.0](https://github.com/GoogleCloudPlatform/datacatalog-connectors-hive/tree/release-v0.0.0)

## Project structure

Each subfolder contains a Python package. Please check components' README files for
details.

The following components are available in this repo:

| Component | Description | Folder | Language |
|-----------|-------------|--------|----------|
| google-datacatalog-hive-connector | Sample code for Hive data source. | [google-datacatalog-hive-connector](https://github.com/GoogleCloudPlatform/datacatalog-connectors-hive/tree/master/google-datacatalog-hive-connector) | Python |
| google-datacatalog-apache-atlas-connector | Sample code for Apache Atlas data source. | [google-datacatalog-apache-atlas-connector](https://github.com/GoogleCloudPlatform/datacatalog-connectors-hive/tree/master/google-datacatalog-apache-atlas-connector) | Python |
| hive-metastore-listener | Sample code enabling Hive Metastore and Data Catalog live sync. | [hive-metastore-listener](https://github.com/GoogleCloudPlatform/datacatalog-connectors-hive/tree/master/hive-metastore-listener) | Java |


text:
# networksetup-completion
Basic bash completion for the networksetup utility.

## Installation

Tested on OSX.

`./install.sh`

## Usage

`networksetup <tab>`

repository: deleurme/networksetup-completion

repo_name: deleurme/networksetup-completion


text:
# Ansible Test Environment

Simple vagrantfile to provisioning test environment to evaluate the ansible capabilities.

## Requirements

- [VirtualBox](https://www.virtualbox.org/wiki/Downloads). Tested on 6.1.x.
- [Vagrant](http://www.vagrantup.com/downloads.html). Tested on 2.2.14
- [Ansible](http://docs.ansible.com/intro_installation.html). Tested on 2.10.

## Usage

1. Clone the repository:

```
git clone https://github.com/sgonzalezmo/ansible-test-environment.git
```

2. Edit de Vagrantfile and modify de NODES variable, enter the number of nodes to be provisioned.

```
NODES = 1
```

3. Run the following command:

```
vagrant up
```

## License

MIT license.

## Author Information

Created in 2017 by [Samuel Gonzalez Morro](mailto:sgonzalezmo@gmail.com).

repository: sgonzalezmo/ansible-test-environment

repo_name: sgonzalezmo/ansible-test-environment


text:
[![Arduino CI](https://github.com/RobTillaart/FastShiftIn/workflows/Arduino%20CI/badge.svg)](https://github.com/marketplace/actions/arduino_ci)
[![Arduino-lint](https://github.com/RobTillaart/FastShiftIn/actions/workflows/arduino-lint.yml/badge.svg)](https://github.com/RobTillaart/FastShiftIn/actions/workflows/arduino-lint.yml)
[![JSON check](https://github.com/RobTillaart/FastShiftIn/actions/workflows/jsoncheck.yml/badge.svg)](https://github.com/RobTillaart/FastShiftIn/actions/workflows/jsoncheck.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/RobTillaart/FastShiftIn/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/release/RobTillaart/FastShiftIn.svg?maxAge=3600)](https://github.com/RobTillaart/FastShiftIn/releases)

# FastShiftIn

Arduino library for **AVR** optimized shiftIn - e.g. for 74HC165.

Related libraries
- https://github.com/RobTillaart/FastShiftOut
- https://github.com/RobTillaart/FastShiftInOut
- https://github.com/RobTillaart/ShiftInSlow
- https://github.com/RobTillaart/ShiftOutSlow

## Description

FastShiftIn is a class that has optimized code (AVR only) to shift in data faster
than the normal **shiftIn()** function.
It speeds up the shift using low level ports and masks. These are predetermined
in the constructor of the FastShiftIn object.

If not an **ARDUINO_ARCH_AVR** or **ARDUINO_ARCH_MEGAAVR** the class falls back
to the default shiftIn() implementation.

## Performance

The performance of **read()** is substantially faster than the default Arduino
**shiftIn()**, but not as fast as HW SPI.
Exact how big the performance gain is can be seen with the example sketch.
It does a comparison and shows how the class is to be used.

test 0.2.3  Arduino UNO

|  function            | time (us) |
|:---------------------|----------:|
|  read()              |    19.30  |
|  readLSBFIRST()      |    19.04  |
|  readMSBFIRST()      |    19.04  |
|  reference shiftIn() |   107.82  |

## Interface

The interface exists of the following functions:

- **int read(void)** reads a new value.
- **int lastRead()** returns last value read.
- **bool setBitOrder(uint8_t bitOrder)** set LSBFIRST or MSBFIRST. Returns false for other values.
- **uint8_t getBitOrder(void)** returns LSBFIRST or MSBFIRST
- **int readLSBFIRST(void)**  optimized LSB read().
- **int readMSBFIRST(void)**  optimized MSB read().

## Notes

- The optimizations are AVR only for now, other platforms may follow.
- The 74HC165 needs 0.1uF caps and the data and clock lines may need
pull up resistors, especially if wires are exceeding 10 cm (4").

## Operation

See examples

## Future

- esp32 optimization readLSBFIRST readMSBFIRST
- read8() read16(), read24(), read32()
- **read(uint8_t \* arr, uint8_t nr)** ??
- example schema

repository: zebrajr/Arduino

repo_name: zebrajr/Arduino


text:
---
layout: post
title:  "Exploring OpenCV Part 1"
date:   2014-12-16 15:38:28
categories: opencv
---
Mat is the basic image container for OpenCV.

#### Core Modules
- core
- highgui
- imageproc
- features2d
- objdetect
- video
- gpu
- m1

Basic post working with images: https://gist.github.com/thnkr/36d9abb449f40e8c2694

Takes an image, makes it black and white, flips it upside down: https://gist.github.com/thnkr/a90b72ffa7d54177d40b

Opens and plays a video file: https://gist.github.com/thnkr/6b0fc0e3595e1f10ec3a

Records streaming video from camera to file: https://gist.github.com/thnkr/aa01ceca12dce1782fe3

Slider change contrast image: https://gist.github.com/thnkr/aa01ceca12dce1782fe3


text:
# docker-siad

Simple wrapper for Siacoin Daemon.
Built mostly for development.

**Warning** do not use this on production.

# API proxy

`siad` has a silly way of exposing its API. It's possible to define address on which API server should listen (`--api-addr`) however when it's different than default user needs to pass `--authenticate-api` and `--disable-api-security` options.

`--authenticate-api` requires password which can be set only by user input (can't use env variables or STDIN).

This means that running daemon inside Docker container may be quite a problem.

For this reason I created simple Node.js proxy which bypasses security requirements.
**Node running this image should be considered insecure**.

# Running deamon

Container has exposed ports `9980`, `9981`, `9982` which are proxied to according ports of `siad` (`api`, `rpc`, `host`).

Daemon data are stored in a VOLUME `/siad/data`. I suggest to map this volume to local directory - thanks to this blockchain sync will be faster on next runs. Also note that ANY change done in `siad` (like unlocked wallet) will be stored there.

Running container:

```bash
docker run -it --rm -v "${PWD}/siad-data:/siad/data" -p 9980:9980 radmen/siad
```

Check status:

```bash
curl -A "Sia-Agent" "http://{docker.host}:9980/consensus"
```

## Supported options

It's possible to pass some options to `siad`:

```bash
docker run -it --rm -v "${PWD}/siad-data:/siad/data" -p 9980:9980 radmen/siad -M cghrtw
```

By default I wanted to allow passing all `siad` options but it didn't make sense so `siad` options list is limited to:

* `--agent`
* `--modules`/`-M` (**default**: `cgtw`)
* `--no-bootstrap`
* `--profile`
* `--profile-directory`

# Building image

Due to usage of [multi-stage builds](https://docs.docker.com/engine/userguide/eng-image/multistage-build/) it's required to have Docker with minimum version 17.05.

To build image:

```bash
docker build . -t radmen/siad
```

repository: radmen/docker-siad

repo_name: radmen/docker-siad