text:
# .NET Gadgeteer Modules
---
This page lists all .NET Gadgeteer modules. All sources are found on the [NETMF and Gadgeteer repo](https://github.com/ghi-electronics/NETMF-Gadgeteer)

## Accel G248
![Accel G248](images/modules/accel-g248.jpg)

The Accel G248 measures acceleration though I2C bus.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Accel%20G248%20Module%20Schematic.pdf)

## Barometer
![Barometer](images/modules/barometer.jpg)

Measures pressure.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Barometer%20Module%20Schematic.pdf)

## Bluetooth
![Bluetooth](images/modules/bluetooth.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Bluetooth%20Module%20Schematic.pdf)

## Breadboard X1
![Breadboard X1](images/modules/breadboard-x1.jpg)

An easy breadboard option. Simply access the socket directly to wire whatever your heart desires!
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/BreadBoard%20X1%20Module%20Schematic.pdf)

## Breakout
![Breakout](images/modules/breakout.jpg)

Simply a breakout of all signals.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Breakout%20Module%20Schematic.pdf)

## Breakout TB10
![Breakout TB10](images/modules/breakout-tb10.jpg)

Simply a breakout of all signals, on a terminal block.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Breakout%20TB10%20Module%20Schematic.pdf)

## Button
![Button](images/modules/button.jpg)

The Button module is very simple, with a button connected to pin 3 and an LED connected to pin4.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Button%20Module%20Schematic.pdf)

## Button S7
![Button S7](images/modules/button-s7.jpg)

7 buttons on a single module, with LEDs that light up with button presses!

Use the same code example provided for the Button Module.

Buttons map:
* Left: Pin
* Right: Pin 8
* Up: Pin 6
* Down: Pin 7
* Enter: Pin 3
* Back: Pin 4
* Forward: Pin 9

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Button%20S7%20Module%20Schematic.pdf)

## CAN DW
![Button S7](images/modules/can-dw.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/CANDW%20Module%20Schematic.pdf)

## Camera
![Camera](images/modules/camera.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Camera%20Module%20Schematic.pdf)

## Cellular Radio
![Cellular Radio](images/modules/cellular-radio.jpg)

* [Gadgteer driver](https://github.com/ghi-electronics/NETMF-Gadgeteer/tree/master/Modules/GHIElectronics/CellularRadio)
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Cellular%20Radio%20Module%20Schematic.pdf)

## Character Display
![Character Display](images/modules/character-display.jpg)

This is a standard and very common HD44780 display.

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Character%20Display%20Module%20Schematic.pdf)

## ColorSense
![ColorSense](images/modules/color-sense.jpg)

A color sensor that uses software I2C, not yet supported in TinyCLR OS.

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Color%20Sense%20Module%20Schematic.pdf)

## Compass
![Compass](images/modules/compass.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Compass%20Module%20Schematic.pdf)

## Current ACS712
![Current ACS712](images/modules/current-acs712.jpg)

This is a current sensor that uses ACS712, which simply outputs an analog voltage.

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Current%20ACS712%20Module%20Schematic.pdf)

## Display CP7
![Display CP7](images/modules/display-cp7.jpg)

The configurations for the display:
```
// these are the wrong values!
Width = 800,
Height = 480,
PixelClockRate = 24 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = true,
HorizontalFrontPorch = 16,
HorizontalBackPorch = 46,
HorizontalSyncPulseWidth = 1,
HorizontalSyncPolarity = true,
VerticalFrontPorch = 7,
VerticalBackPorch = 23,
VerticalSyncPulseWidth = 1,
VerticalSyncPolarity = true,
```
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Display%20CP7%20Module%20Schematic.pdf)

## Display N18
![Display N18](images/modules/display-n18.jpg)

This is an SPI display that can work on any system with SPI bus, even small ones without TFT display support.

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Display%20N18%20Module%20Schematic.pdf)

## Display N7
![Display N7](images/modules/display-n7.jpg)

The configurations for the display:
```
Width = 800,
Height = 480,
PixelClockRate = 24 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = true,
HorizontalFrontPorch = 16,
HorizontalBackPorch = 46,
HorizontalSyncPulseWidth = 1,
HorizontalSyncPolarity = true,
VerticalFrontPorch = 7,
VerticalBackPorch = 23,
VerticalSyncPulseWidth = 1,
VerticalSyncPolarity = true,
```
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Display%20N7%20Module%20Schematic.pdf)

## Display NHVN
![Display NHVN](images/modules/display-nhvn.jpg)

This allows the use of several displays offered by http://newhavendisplay.com/

Supported displays:
* [NHD-4.3-480272EF-ATXL#](http://www.newhavendisplay.com/nhd43480272efatxl-p-5570.html)
* [NHD-4.3-480272EF-ATXL#-CTP](http://www.newhavendisplay.com/nhd43480272efatxlctp-p-5572.html)
* [NHD-4.3-480272EF-ATXL#-T](http://www.newhavendisplay.com/nhd43480272efatxlt-p-5571.html)
* [NHD-7.0-800480EF-ATXL#](http://www.newhavendisplay.com/nhd70800480efatxl-p-6284.html)
* [NHD-7.0-800480EF-ATXL#-CTP](http://www.newhavendisplay.com/nhd70800480efatxlctp-p-6911.html)
* [NHD-7.0-800480EF-ATXV#](http://www.newhavendisplay.com/nhd70800480efatxv-p-6720.html)
* [NHD-7.0-800480EF-ATXV#-CTP](http://www.newhavendisplay.com/nhd70800480efatxvctp-p-6912.html)

The configurations for all 4.3" display:
```
Width = 480,
Height = 272,
PixelClockRate = 20 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = false,
HorizontalFrontPorch = 2,
HorizontalBackPorch = 2,
HorizontalSyncPulseWidth = 41,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 2,
VerticalBackPorch = 2,
VerticalSyncPulseWidth = 10,
VerticalSyncPolarity = false,
```

The configurations for all 7" display:
```
Width = 800,
Height = 480,
PixelClockRate = 20 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = false,
HorizontalFrontPorch = 88,
HorizontalBackPorch = 40,
HorizontalSyncPulseWidth = 48,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 13,
VerticalBackPorch = 32,
VerticalSyncPulseWidth = 3,
VerticalSyncPolarity = false,
```
As for the capacitive touch controller, use this old NETMF driver code as a reference:
```
public class FT5306Controller {
    private InterruptPort touchInterrupt;
    private I2CDevice i2cBus;
    private I2CDevice.I2CTransaction[] transactions;
    private byte[] addressBuffer;
    private byte[] touchDataBuffer;
    private byte[] touchCountBuffer;

    public delegate void TouchEventHandler(FT5306Controller sender, TouchEventArgs e);

    public event TouchEventHandler TouchDown;
    public event TouchEventHandler TouchUp;
    public event TouchEventHandler TouchMove;

    public FT5306Controller(Cpu.Pin interruptPin) {
        this.transactions = new I2CDevice.I2CTransaction[2];
        this.addressBuffer = new byte[1];
        this.touchDataBuffer = new byte[4];
        this.touchCountBuffer = new byte[1];
        this.i2cBus = new I2CDevice(new I2CDevice.Configuration(0x38, 400));
        this.touchInterrupt = new InterruptPort(interruptPin, false, Port.ResistorMode.Disabled, Port.InterruptMode.InterruptEdgeBoth);
        this.touchInterrupt.OnInterrupt += (a, b, c) => this.OnTouchEvent();
    }

    private void OnTouchEvent() {
        var points = this.ReadData(2, this.touchCountBuffer)[0];

        for (var i = 0; i < points; i++) {
            var data = this.ReadData(i * 6 + 3, this.touchDataBuffer);
            var flag = (data[0] & 0xC0) >> 6;
            var x = ((data[0] & 0x0F) << 8) | data[1];
            var y = ((data[2] & 0x0F) << 8) | data[3];

            var handler = flag == 0 ? this.TouchDown : flag == 1 ? this.TouchUp : flag == 2 ? this.TouchMove : null;

            if (handler != null)
                handler(this, new TouchEventArgs { X = x, Y = y });
        }
    }

    private byte[] ReadData(int address, byte[] resultBuffer) {
        this.addressBuffer[0] = (byte)address;

        this.transactions[0] = I2CDevice.CreateWriteTransaction(this.addressBuffer);
        this.transactions[1] = I2CDevice.CreateReadTransaction(resultBuffer);

        this.i2cBus.Execute(this.transactions, 500);

        return resultBuffer;
    }

    public class TouchEventArgs : EventArgs {
        public int X { get; internal set; }
        public int Y { get; internal set; }
    }
}
```

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Display%20NHVN%20Module%20Schematic.pdf)

## Display T35
![Display T35](images/modules/display-t35.jpg)

The configurations for the display:
```
Width = 320,
Height = 240,
PixelClockRate = 15 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = true,
HorizontalFrontPorch = 51,
HorizontalBackPorch = 27,
HorizontalSyncPulseWidth = 41,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 16,
VerticalBackPorch = 8,
VerticalSyncPulseWidth = 10,
VerticalSyncPolarity = false,
```
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Display%20T35%20Module%20Schematic.pdf)

## Display T43
![Display T43](images/modules/display-t43.jpg)

The configurations for the display:
```
Width = 480,
Height = 272,
PixelClockRate = 20 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = false,
HorizontalFrontPorch = 2,
HorizontalBackPorch = 2,
HorizontalSyncPulseWidth = 41,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 2,
VerticalBackPorch = 2,
VerticalSyncPulseWidth = 10,
VerticalSyncPolarity = false,
```
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Display%20T43%20Module%20Schematic.pdf)

## Display TE35
![Display TE35](images/modules/display-te35.jpg)

The configurations for the display:
```
Width = 320,
Height = 240,
PixelClockRate = 15 * 1000 * 1000,
PixelPolarity = false,
OutputEnablePolarity = true,
OutputEnableIsFixed = true,
HorizontalFrontPorch = 51,
HorizontalBackPorch = 29,
HorizontalSyncPulseWidth = 41,
HorizontalSyncPolarity = false,
VerticalFrontPorch = 16,
VerticalBackPorch = 3,
VerticalSyncPulseWidth = 10,
VerticalSyncPolarity = false,
```
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Display%20TE35%20Module%20Schematic.pdf)

## Distance US3
![Distance US3](images/modules/distance-us3.jpg)

A very common ultrasonic sensor that works by sending a pulse on the trig Pin4 and measuring the response time on echo Pin3.

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Distance%20US3%20Module%20Schematic.pdf)

## Ethernet ENC28
![Ethernet ENC28](images/modules/ethernet-enc28.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Ethernet%20ENC28%20Module%20Schematic.pdf)

## Ethernet J11D
![Ethernet J11D](images/modules/ethernet-j11d.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Ethernet%20J11D%20Module%20Schematic.pdf)

## Extender
![Extender](images/modules/extender.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Extender%20Module%20Schematic.pdf)

## FEZtive
![FEZtive](images/modules/feztive.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/FEZtive%20Module%20Schematic.pdf)

## Flash
![Flash](images/modules/flash.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/FLASH%20Module%20Schematic.pdf)

## GPS
![GPS](images/modules/gps.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/GPS%20Module%20Schematic.pdf)

## GasSense
![GasSense](images/modules/gas-sense.jpg)

This module can host several different air sensors, like Alcohol and CO2.

The sensor has an internal heater on pin 4 that needs to be enabled and then it is a simple analog read on pin 3.

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/GasSense%20Module%20Schematic.pdf)

## Gyro
![Gyro](images/modules/gyro.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Gyro%20Module%20Schematic.pdf)

## HD44780
![HD44780](images/modules/hd44780.jpg)

See the [Character Display](#character-display) Module
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/HD44780%20Module%20Schematic.pdf)

## HubAP5
![HubAP5](images/modules/hub-ap5.jpg)

No hub support is currently planned.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Hub%20AP5%20Module%20Schematic.pdf)

## IO60P16
![IO60P16](images/modules/io60p16.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/IO60P16%20Module%20Schematic.pdf)

## IR Receiver
![IR Receiver](images/modules/ir-reciever.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/IRReceiver%20Module%20Schematic.pdf)

## Joystick
![Joystick](images/modules/joystick.jpg)

The Joystick module has two analog inputs for X (pin 4) and Y (pin 5) position. Pressing the knob also works like a button (pin 3).

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Joystick%20Module%20Schematic.pdf)

## Keypad KP16
![Keypad KP16](images/modules/keypad-kp16.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Keypad%20KP16%20Module%20Schematic.pdf)

## LED 7C
![LED 7C](images/modules/led-7c.jpg)

An LED that can be set to one of 7 colors, 8 if you count off!

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/LED%207C%20Module%20Schematic.pdf)

## LED 7R
![LED 7R](images/modules/led-7r.jpg)

This is a ring of 6 LEDs and a 7th center LED.
Reference the LED 7C module for using pins.

Center LED: pin 9
LEDs going clockwise starting from LEDs D1 to D6 on the board D1, D2, D3, D4, D5, D6 are pins 3 to 8 respectively.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/LED%207R%20Module%20Schematic.pdf)

## LED Strip
![LED Strip](images/modules/led-strip.jpg)

A strip of 7 LEDs, connected to pins 3 through 9. Reference the LED 7C module for using pins.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/LED%20Strip%20Module%20Schematic.pdf)

## Light Sense
![Light Sense](images/modules/light-sense.jpg)

Simply using analog on pin 3. Use the same code as the potentiometer.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/LightSense%20Module%20Schematic.pdf)

## Load
![Load](images/modules/load.jpg)

Each one of the 7 GPIO pins are connected to a transistor to handle a load, like a motor.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Load%20Module%20Schematic.pdf)

## MaxO
![MaxO](images/modules/maxo.jpg)

Shift registers used to take serial SPI data and put on parallel pins, perfect for driving tons of LEDs!
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/MaxO%20Module%20Schematic.pdf)

## MicroSD Card
![MicroSD Card](images/modules/microsd.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/MicroSD%20Card%20Module%20Schematic.pdf)

## Moisture
![Moisture](images/modules/moisture.jpg)

This is a simple analog input measuring the direct resistance (moisture) on pin 3. An enable pin needs to be activated on pin 6.

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Moisture%20Sensor%20Module%20Schematic.pdf)

## Motor Driver
![Motor Driver](images/modules/motordriver.jpg)

The Motor Driver Module uses L298 H-bridge that can drive two motors up to 4A.

* Pin 6: Motor A Direction (GPIO)
* Pin 7: Motor A Speed (PWM)
* Pin 8: Motor B Direction (GPIO)
* Pin 9: Motor B Speed (PWM)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Motor%20Driver%20L298%20Module%20Schematic.pdf)

## Multicolor LED
![Multicolor LED](images/modules/multicolor_led.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Multicolor%20LED%20Module%20Schematic.pdf)

## Music
![Music](images/modules/music.jpg)

The Music Module uses the popular VS1053 decoder chip that decodes MP3, WMA, OGG, MIDI and WAV files.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Music%20Module%20Schematic.pdf)

## Null Modem
![Null Modem](images/modules/null-modem.jpg)

No driver is needed.

## OBD II
![OBD II](images/modules/obd-ii.jpg)

## OneWire X1
![OneWire X1](images/modules/onewire-x1.jpg)

A breakout with a terminal block for easily connecting OneWire devices, specifically the common temperature probes.

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/OneWire%20X1%20Module%20Schematic.pdf)

## PIR
![PIR](images/modules/pir.jpg)

Motion detection. Simply pin 3 changes its state when it detects motion.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/PIR%20Module%20Schematic.pdf)

## Parallel CNC
![Parallel CNC](images/modules/parallel-cnc.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Parallel%20CNC%20Module%20Schematic.pdf)

## Potentiometer
![Potentiometer](images/modules/potentiometer.jpg)

The Potentiometer module is simply a variable resistor connected to pin3. Rotating its knob will result in an analog value changing from min to max.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Potentiometer%20Module%20Schematic.pdf)

## Pulse Count
![Pulse Count](images/modules/pulse-count.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Pulse%20Count%20Module%20Schematic.pdf)

## Pulse InOut
![Pulse InOut](images/modules/pulse-inout.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Pulse%20In%20Out%20Module%20Schematic.pdf)

## Pulse Oximeter
![Pulse Oximeter](images/modules/pulse-oximeter.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Pulse%20Oximeter%20Module%20Schematic.pdf)

## RFID Reader
![RFID Reader](images/modules/rfid-reader.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/RFID%20Module%20Schematic.pdf)

## RS232
![RS232](images/modules/rs232.jpg)

Simply a serial port.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/RS232%20Module%20Schematic.pdf)

## RS485
![RS485](images/modules/rs485.jpg)

Simply a serial port.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/RS485%20Module%20Schematic.pdf)

## Radio FM1
![Radio FM1](images/modules/radio-fm1.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Radio%20FM1%20Module%20Schematic.pdf)

## Reflector R3
![Reflector R3](images/modules/reflector-r3.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Reflector%20R3%20Module%20Schematic.pdf)

## Relay ISOx16
![Relay ISOx16](images/modules/relay-isox16.jpg)

An array of 16 relays. Operate similar to the MaxO module.

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Relay%20ISOx16%20Module%20Schematic.pdf)

## Relay X1
![Relay X1](images/modules/relay-x1.jpg)

Simply set pin 3 high to activate the relay.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Relay%20X1%20Module%20Schematic.pdf)

## Rotary H1
![Rotary H1](images/modules/rotary-h1.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Rotary%20H1%20Module%20Schematic.pdf)

## SD Card
![SD Card](images/modules/sd-card.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/SDCard%20Module%20Schematic.pdf)

## S-Plus
![S-Plus](images/modules/s-plus.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/SPlus%20Module%20Schematic.pdf)

## Serial Camera
![Serial Camera](images/modules/serial-camera.jpg)

## Stepper L6470
![Stepper L6470](images/modules/stepper-l6470.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Stepper%20L647x%20Module%20Schematic.pdf)

## TempHumidity
![TempHumidity](images/modules/temp-humidity.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Temp%20Humid%20SI70%20Module%20Schematic.pdf)

## Thermocouple
![Thermocouple](images/modules/thermocouple.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Thermocouple%20Module%20Schematic.pdf)

## Touch C8
![Touch C8](images/modules/touch-c8.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Touch%20C8%20Module%20Schematic.pdf)

## Touch L12
![Touch L12](images/modules/touch-l12.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Touch%20L12%20Module%20Schematic.pdf)

## Tunes
![Tunes](images/modules/tunes.jpg)

The Tunes Module is a tiny speaker that is connected to pin 9. Use PWM to generate sounds

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Tunes%20Module%20Schematic.pdf)

## UC Battery 4xAA
![UC Battery 4xAA](images/modules/uc-battery-4xaa.jpg)

No driver is needed.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/UC%20Battery%204xAA%20Module%20Schematic.pdf)

## USB Client DP
![USB Client DP](images/modules/usb-client.jpg)

No driver is needed.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/USB%20Client%20DP%20Module%20Schematic.pdf)

## USB Client SP
![USB Client SP](images/modules/usb-client-sp.jpg)

No driver is needed.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/USB%20Client%20SP%20Module%20Schematic.pdf)

## USB Host
![USB Host](images/modules/usb-host.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/USB%20Host%20Module%20Schematic.pdf)

## USB Serial
![USB Serial](images/modules/usb-serial.jpg)

Simply, a serial port.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/Serial%20USB%20Module%20Schematic.pdf)

## USB Serial SP
![USB Serial SP](images/modules/usb-serial-sp.jpg)

Simply, a serial port.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/USB%20Serial%20SP%20Module%20Schematic.pdf)

## VideoOut
![VideoOut](images/modules/video-out.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/VideoOut%20Module%20Schematic.pdf)

## WiFi RN171
![WiFi RN171](images/modules/wifi-rn171.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/WiFi%20RN171%20Module%20Schematic.pdf)

## WiFi RS21
![WiFi RS21](images/modules/wifi-rs21.jpg)

* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/WiFi%20RS21%20Module%20Schematic.pdf)

## XBee Adapter
![XBee Adapter](images/modules/xbee-adapter.jpg)

Simply, a serial port. From there a driver like https://xbee.codeplex.com/ will help.
* [Schematic](http://files.ghielectronics.com/downloads/Schematics/Gadgeteer/XBee%20Module%20Schematic.pdf)

repository: ghi-electronics/Docs

branch_name: refs/heads/dev

gha_language: Makefile

repo_name: ghi-electronics/Docs


text:
# node-metrics

[![Build Status](https://travis-ci.com/adritoo/node-metrics.svg?branch=master)](https://travis-ci.com/adritoo/node-metrics)
[![HitCount](http://hits.dwyl.io/adritoo/node-metrics.svg)](http://hits.dwyl.io/adritoo/node-metrics)

Simple web API to work on metrics

## Features

  * Authentication
  * CRUD users
  * CRUD metrics

## Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

### Prerequisites

To build and run this app locally you will need Node.js

### Quick start

Clone the repository
```bash
git clone https://github.com/adritoo/node-metrics.git
cd node-metrics
```

Install dependencies
```bash
npm install
```

Populate database
```bash
npm run pop
```

Build and run the project
```bash
npm run build
npm start
```

Finally, navigate to `http://localhost:8080` and you should see the project being served and rendered locally.

### Run in Docker

This app can also be launched in a Docker container. Go to the directory that has your Dockerfile and run the following command to build the Docker image.
```bash
docker build -t node-metrics .
```

Running your image with -d runs the container in detached mode, leaving the container running in the background. The -p flag redirects a public port to a private port inside the container. Run the image you previously built:
```bash
docker run -p 8080:8080 -d node-metrics
```

Now open `http://localhost:8080` and you should see the app running locally.

## Built With

* [Express](https://expressjs.com/) - Fast, unopinionated, minimalist web framework for Node.js
* [EJS](https://ejs.co/) - Embedded JavaScript templating
* [Level](https://github.com/Level/level) - Fast & simple storage
* [Chart.js](https://www.chartjs.org/docs/latest/) - Simple yet flexible JavaScript charting

## Authors

* [**Adrien BOURGET**](https://github.com/adritoo)

For more information, see the [CONTRIBUTORS](CONTRIBUTORS.md) file

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details

## Routes

| Method | Route | Description |
| - | - | - |
| GET | / | Displays the homepage |
| GET | /connexion | Displays the login form |
| POST | /login | Logs the user in |
| GET | /logout | Signs out the current out |
| GET | /inscription | Displays the signup form |
| POST | /signup | Adds a user |
| GET | /user | Gets the current user |
| GET | /metrics | Gets all metrics |
| GET | /metrics/:id | Gets a metric given an id |
| POST | /new | Adds a new metric |
| POST | /update | Updates an existing metric |
| POST | /delete | Deletes a metric |

license: MIT

repository: CarmeloMarini/node-metrics

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: CarmeloMarini/node-metrics


text:
---
layout:     post
title:      Helpful Laravel Valet aliases
date:       2017-12-05
summary:    Valet up, up, down, down, left, right, left, right, B, A.
---

Quick post. Just wanted to share some of my custom aliases to aid development using Laravel Valet as your dev server. It assumes a convention of using the `mysql` service for your databases, and a `docker-compose-valet.yml` file in the root of your project for project dependencies outside the remit of Valet. Aliases can of course be modified for your needs.

Simply add the following to your `.bash_profile`, `.zshrc` or other shell config of choice:

```bash
# Valet Up
vup() {
    # Start Valet
    valet start
    # Start MySql
    brew services start mysql
    # If a valet Dockerfile is present, run as daemon
    if [ -f docker-compose-valet.yml ]; then
        echo "👍    \e[4m\e[42m\e[30mValet Dockerfile found, running as daemon...\e[0m"
        docker-compose --file docker-compose-valet.yml up -d
    fi
}

# Valet Down
vdown() {
    # Stop Valet
    valet stop
    # Stop MySql
    brew services stop mysql
    # If a valet dockerfile exists then stop it
    if [ -f docker-compose-valet.yml ]; then
        echo "👍    \e[4m\e[42m\e[30mValet Dockerfile found, stopping...\e[0m"
        docker-compose --file docker-compose-valet.yml stop
    fi
}
```

If you have any ideas of how to improve the aliases, please do create a PR on the [Github repository](https://github.com/samturrell/valet-aliases). Please share and star ⭐ on Github if you found it useful!


text:
Inherits [question-cache][] and persists answers to disk. Answers are stored based on current working directory.

## Usage

```js
var QuestionStore = require('{%= name %}');
```

## API
{%= apidocs("index.js") %}

repository: jonschlinkert/question-store

repo_name: jonschlinkert/question-store


text:
Pattern: Comparison of boolean using `<`, `>`, `<=` or `>=`

Issue: -

## Description

Comparing `bool` value using relational (`<`, `>`, `<=` or `>=`) operator could cause unexpected results.

## Further Reading

* [Common Weakness Enumeration (CWE) - 398](https://cwe.mitre.org/data/definitions/398.html)

repository: Adroiti/docs-for-code-review-tools

repo_name: Adroiti/docs-for-code-review-tools


text:
# DREIMT Database Processing

This repository contains a Compi pipeline to create the DREIMT database from the source files.

A file with the available database versions is available at `http://static.sing-group.org/software/dreimt/database/sources/database-versions.txt`, indicating the name of the current version. ZIP files for each database version containing the source database files are available at `http://static.sing-group.org/software/dreimt/database/sources/<dbVersion.zip>`.

Each database version is available at a ZIP file (e.g. `v20190612.zip`), containing four folders: `Database`, `Inputs`, `Intermediate` and `Precalculated` (which, at the same time, can contain `signatures` and `genesets`).

The processing scripts are provided in the `scripts` directory, which also contains a complete README file with detailed documentation about these scripts and other technical details about the database.

# 1. Prerequisites to run the pipeline

Before running the pipeline, clone the [DREIMT Utils](https://github.com/sing-group/dreimt-utils) and [DREIMT backend](https://github.com/sing-group/dreimt-backend) projects. The paths to these projects are required to run the pipeline.

# 2. Running the Compi pipeline

Use the following command to run the `pipeline.xml` file with Compi (v1.3.0 or higher), indicating the path to a params file for the database to be created:

```bash
compi run -pa /path/to/params -o -r runners-examples/runner.xml
```

An example of a params file is:
```
workingDirectory=/home/hlfernandez/Data/Collaborations/CNIO-Dreimt/Database/20200516/
dreimtUtilsPath=/home/hlfernandez/Investigacion/Desarrollos/Git/cnio/dreimt-utils/
dbZipName=v20200516.zip
dreimtDatabaseScriptsPath=/home/hlfernandez/Investigacion/Desarrollos/Git/cnio/dreimt-database/scripts
tauThreshold=80
dbVersionsDirectory=/home/hlfernandez/Data/Collaborations/CNIO-Dreimt/Database/
backendProjectPath=/home/hlfernandez/Investigacion/Desarrollos/Git/backends/dreimt-backend/
```

Where:
- The `workingDirectory` is where the file with name `dbZipName` will be downloaded (from `sftp://static.sing-group.org/home/hlfernandez/ftp_static/software/dreimt/database/sources/`) and uncompressed.
- The `dreimtUtilsPath` parameter specifies the location of the [DREIMT Utils project](https://github.com/sing-group/dreimt-utils).
- The `dreimtDatabaseScriptsPath` parameter specifies the path to this project (i.e. the directory where the `pipeline.xml` file is located).
- The `tauThreshold` specifies the TAU theshold used to filter the drug associations that will be included in the database. Only those associations with a |TAU| > `tauThreshold` will be used to populate the database.
- The `dbVersionsDirectory` is an optional parameter that specifies the location of the `dbVersionsFile` (whose default value is `database-versions.txt`). If not provided, this file will be automatically downloaded from `http://static.sing-group.org/software/dreimt/database/sources/database-versions.txt`.
- The `backendProjectPath` specifies the location of the [DREIMT backend project](https://github.com/sing-group/dreimt-backend).

# 3. Optional pipeline tasks

## 3.1 Upload the SQL files to the SING static server

```bash
compi run -pa /path/to/params -o -r runners-examples/runner.xml --single-task task-2-13-upload-sql -- --singUserName <your_SING_static_username>
```

## 3.2 Create the backend development database

```bash
compi run -pa /path/to/params -o --single-task task-3-development-database
```

repository: sing-group/dreimt-database

repo_name: sing-group/dreimt-database


text:
---
layout: post
title:      "React, Redux, Rejoice..."
date:       2019-01-06 02:18:24 +0000
permalink:  react_redux_rejoice
---

I find that building and creating my own code is the best method for me to learn material. The labs are great but you don't get the flexibility to be creative with them. All the months of studying and digesting code has finally paid off.  I created a community driven platform for users to share their travel adventures. It's a simple CRUD application, where a user can CREATE, READ, UPDATE, and DELETE trips.

So let's begin with the basic principles of a react/redux application. The most important thing to keep in mind is how the data flows through the application. React is a JS library that helps us to divide up our app into multiple components but doesn't doesn't specify  how we should keep track of the data and the events. This is where Redux comes in to play. Redux provides a way to delagate the state and actions to the different components. When connecting your rails api backend to the frontend client side application with Redux, you must create a store which will handle storing all the state object from each component.

**Redux**
- A single source of truth, the state of your whole application is stored in an object tree within a single store.
- State is read-only
- Changes are made with pure functions.

**Action Creator**
- Are in charge of creatig actions, which is the path that all changes and interactions should go through. Any time you want to change the state of the app or have the view render differently, we have to go through the action creator
- Example: Add or create new trips or delete comments.
- the action creatror creates an action with a type and payload
- Exmaple of an action would be like CREATE_TRIP or DELETE_COMMENT
- once we get the action payload, we pass that action off to the dispatcher
- If you are having any errors you can check to see what data we are actually reciving from the backend.
- It's important to make sure your backend rails API is working properly.

**Disptacher**
- It's the connective tissue between the action/reducers and the store.
- Dispatch alllows you to render data from the store as props.
- Need to make sure that the data we are rendering is correct.

**The store**
- This is where all te state of the application is held. The store is the ontainer and state lives in the container.

**Reducers**
- Reducers are pure functions that take the previous state and an action, and return the next state.

Redux helps by giving each React component tht exact piece of state it needs. Understanding how all the connections work together will help  to debug and write better code. Once I understood the flow, I was able to follow it up from the child component and up the tree. It'll take some practice so don't give up!

extension: markdown


text:
### `group_in()` {#fn-group-in}

Function prototype: `fn group_in(key: int|float|bool|str, range: list, new_value: int|float|bool|str|map|list|nil, new-key = "")`

Function description: If the `key` value is in the list `in`, a new field can be created and assigned the new value. If no new field is provided, the original field value will be overwritten

Example:

```python
# If the field log_level value is in the list, change its value to "OK"
group_in(log_level, ["info", "debug"], "OK")

# If the field http_status value is in the specified list, create a new status field with the value "not-ok"
group_in(log_level, ["error", "panic"], "not-ok", status)
```

repository: GuanceCloud/datakit

branch_name: refs/heads/main

gha_language: Go

gha_license_id: MIT

repo_name: GuanceCloud/datakit


text:
# Persist Actor State

**Not intended to be addressed on this PoC**

As with any system, it is impossible to keep it running forever. This is not just because of external things like power outages or other unforeseeable events, but also due to planed maintenance or bug fixing.

Depending on the ecosystem as a whole, actor state persistence can become very important.

Say, for example, you are doing some kind of operation that requires you to synchronize multiple external services, much like a distributed transaction. Obviously there are patterns that help with this, but just stick with me.

Now lets assume you are in the middle of an operation and one of your machines goes down. With patterns like [Saga](https://microservices.io/patterns/data/saga.html) this will typically mean you need to rollback the current operation to the next valid state.

If all your messaging is serializable, your actor state is just the replay of all messages up to a certain point. This is very similar to [event sourcing](https://martinfowler.com/eaaDev/EventSourcing.html) architecture.

This is just scratching the surface and there are problems with this approach. We can't replay messages that trigger communication with another actors, but, if an actor's internal state change is only done with special messages, and not with side effects of other messages, this should be possible by serializing the mailbox to a persistent medium.

## Message versioning

Once you start persisting state, you have another problem, that it breaking schema changes.

Any active software continuously changes its internals by adding new features or fixing bugs, and components that hold state also change.

In order to allow for schema changes, all messaging must be versioned and comply to a migration path. Such migration can be made offline, migration specific tooling, or online, providing the actor system functions to migrate each message.

gha_language: Kotlin


text:
The typewriter effect.
=================

### Why yet another plugin for something that simple?
Most plugins similar to this one have the same basic functionality: type text/html at a certain speed and fire a callback once done.
While working on a project of mine, I needed some more advanced stuff. Like the ability to pause, resume and stop the typewriter.
Also, when typing something longer than a view characters, you'll notice everything is being typed at an inhuman constant speed.
To compensate for that, this plugin has the ability to randomize the interval between keystrokes.

### Caret
This plugin does not provide methods for simulating a caret. There are simply too many ways to mimic a caret.
It could be a plain text underscore or vertical bar, it could be a span element or it could be an image.
Should it blink? At what speed? Should it be visible longer than it is invisible? How about a small fade?
Too many variables that differ per usecase to be covered by this plugin.

You can create your own caret by placing it right after the typewriter target:
``` html
<span id="typeMe"></span>
<span id="caret">|</span>

<script>
  // A simple blink
  setInterval(function() {
    $("#caret").toggle();
  }, 600);

  $("#typeMe").typewriter("Some text. I don't know.");
</script>
```

#$.fn.typewriter(text, options)
Creates a typewriter object for the first matching element in the set.
###Arguments
- `text`: The text to type. Duh.
- `options`: An object containing the options and callbacks to control the typewriter:
  - `delay`: Interval between the simulated keystrokes (in milliseconds). *[default: 60]*
  - `initialDelay`: How much time to wait before doing anything (in milliseconds). *[default: 0]*
  - `createPaused`: Whether the typewriter should be created in a paused state. *[default: false]*
  - `html`: Whether the `text` argument should be interpreted as HTML or not. Has no use on input and textarea elements. *[default: false]*
  - `randomizeDelay`: Whether the interval between keystrokes should be randomized to mimic a real person typing. The random times are based on the `delay` option, so the average typing speed remains the same. *[default: false]*
  - `onType`: Gets called after each keystroke. *[default: $.noop]*
  - `onComplete`: Gets called when the typewriter has reached the end of the string. This can only be once in the lifetime of the typewriter object. *[default: $.noop]*
  - `onPause`: Notifies when the typewriter pauses. *[default: $.noop]*
  - `onResume`: Notifies when the typewriter resumes. *[default: $.noop]*
  - `onStop`: Notifies when the typewriter stops. This can only be once in the lifetime of the typewriter object. *[default: $.noop]*

###Return value
A typewriter object described in the next section.

#Typewriter
##Properties
- `options`: A shallow clone of the options object passed into the $.fn.typewriter function. The object is augmented with the default values.
- `target`: A jQuery object referencing the element to which the typewriter is typing in.
- `typing`: Indicating whether the typewriter is currently typing.
- `paused`: Indicating whether the typewriter is currently paused.

##Methods
- `pause()`: Pauses the typewriter.
- `resume()`: Resumes the typewriter.
- `stop()`: Stops the typewriter.

#Example
Todo...

#License

**Copyright (c) 2013, Dave Bakker**
**All rights reserved.**

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

repository: andremetzen/jquery-typewriter

repo_name: andremetzen/jquery-typewriter


text:
# Glosbe translate

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

Wrapper around the [Glosbe](https://glosbe.com) online multilingual dictionary. Translate and get definitions of words between languages.

See a [full list of supported languages](https://glosbe.com/all-languages).

## Installation

Add this line to your application's Gemfile:

```ruby
gem 'glosbe-translate'
```

And then execute:

    $ bundle

Or install it yourself as:

    $ gem install glosbe-translate

## Usage

### Language codes

All translations and definitions take the [ISO-639]((http://en.wikipedia.org/wiki/List_of_ISO_639-3_codes)) languages codes as `to` and `from` in either the two or three character versions. Glosbe supports a [long list of languages](https://glosbe.com/all-languages).

### Single lookups

Class methods on the language object that allow you to do a single lookup:

```ruby
Glosbe::Language.translate("please", from: :en, to: :nl)
=> "alstublieft"
```

Fetch an array of definitions in the `from` language:
```ruby
Glosbe::Language.define("pineapple", from: :en, to: :fr)
=> ["fruit",
 "Large sweet fleshy tropical fruit with a terminal tuft of stiff leaves.",
 "plant"]
```

Fetch an array of definitions in the `to` language:
```ruby
Glosbe::Language.translated_define("pie", from: :en, to: :fr)
=> ["Plat constitué de viandes, fruits ou autres nourriture cuits dans ou sur une pâte.",
 "Plat, préparation à base de pâte aplatie au rouleau, et d’une garniture salée ou sucrée"]
```

Any of the three above methods can also use the simpler key value pair of `from: :to` languages:

```ruby
Glosbe::Language.translate("fromage", fr: :en)
=> "cheese"
```

## Language object

Translations and definitions are done from a `Language` object:

```ruby
language = Glosbe::Language.new(from: "eng", to: "nld")
```

Symbols and strings are accepted, and the language code will be converted to match what is expected by the API.

The same three methods are available to translate and define a phrase using this object:

```ruby
language.translate("please")
=> "alstublieft"
```

```ruby
language.define("pineapple")
=> ["fruit",
 "Large sweet fleshy tropical fruit with a terminal tuft of stiff leaves.",
 "plant"]
```

```ruby
language.translated_define("pie")
=> ["Plat constitué de viandes, fruits ou autres nourriture cuits dans ou sur une pâte.",
 "Plat, préparation à base de pâte aplatie au rouleau, et d’une garniture salée ou sucrée"]
```

### Response object

Doing a lookup will return a `Response` object:

```ruby
response = language.lookup("coffee")
```

The response represents all the fields returned from the API in a very similar structure.

Was the HTTP a 200 OK?
```
response.success?
=> true
```

Were any results returned?
```
response.found?
=> true
```

Fields in the response are directly mapped for convenience:
```ruby
response.from
=> "en"
response.to
=> "nl"
response.phrase
=> "coffee"
```

There can sometimes a message returned from the server. This is particularly interesting for rate limiting warnings:
```ruby
response.message
=> "Too many queries, your IP has been blocked"
```

Convenience methods extract the same three functions and return values repeated above:

```ruby
response.translation
response.define
response.translated_define
```

The raw results matching the structure of the API are available here.

### Results

The list of all results is available from a response:

```ruby
response.results
=> [...]
```

Each result object has the translated phrase if present;

```ruby
result.phrase
=> "koffie"
```

The result then lists its authors:

```ruby
result.authors
=> [...]
```

And its meanings:

```ruby
result.meanings
=> [...]
```

Each meaning has language and text:

```ruby
meaning.text
=> "Een drank bekomen door infusie van de bonen van de koffieplant in heet water."
meaning.language
=> "nl"
```

None of these fields are guaranteed to exist. Though they will return a string or `nil` for value fields, and will always return an empty array for collection fields.

## Logging

Logging is defaulted to `nil`, but can be passed any `Logger` object to debug network requests.

```ruby
Glosbe.logger = Logger.new("glosbe.log")
Glosbe.logger = Rails.logger
```

## Development

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`.

## Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/kmcphillips/glosbe-translate.

Come talk to me about what you're working on. I'd love to review PRs if you find bugs or think of improvements.

## License

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

repository: kmcphillips/glosbe-translate

repo_name: kmcphillips/glosbe-translate


text:
# stylep-visibility
<img src=https://avatars1.githubusercontent.com/u/16121328?v=3&s=200 title=stylep-visibility align=right height=95>

Everything you need to get started making a new style pattern.

## Install
You can install using the [spm](https://github.com/stylep/stylep) command or install using npm and the project title.

``` shell
spm install visibility
```

## Usage
``` css
/* visibility.css */

@import “stylep-visibility”;

.hidden-object {

  /* Hiding Design Pattern */
  @mixin cloak;
}

.hidden-object.active {

  /* Show the object */
  @mixin unveil;
}
```

## Patterns
Placeholder selectors that contain common styles for the box and visual state.

#### `@mixin compress;`
This scales down the element to 1px in size and places it absolute.

#### `@mixin cloak;`
Smoothly fade out your object’s visibility. Best used with unveil.

#### `@mixin unveil;`
A gradual fade in for your object’s visibility. Best used with cloak.

#### `@mixin conceal;`
Completely remove the object from the box model. Best used with reveal.

#### `@mixin reveal;`
Revert to inheritence to show your object. Best used with conceal.

#### `@mixin chop;`
Cut down your object’s size to zero, effectively hiding the object..

#### `@mixin dislocate;`
This takes your object and throws it as far off the viewport as possible.

## License
This project is licensed under the MIT [license](LICENSE).

repository: stylep/stylep-visibility

repo_name: stylep/stylep-visibility


text:
# thingsboard-csv
Simple web flask based tool for download thingsboard timeseries in CSV Format.

## Getting Started
First thing you need to do is install some python packages

    pip3 install flask

repository: midgi/thingsboard-csv

repo_name: midgi/thingsboard-csv


text:
---
id: ba2ce51c-3981-4122-8cae-c1d54cf3ea2f
title: Schema Templates
desc: ''
updated:<PHONE_NUMBER>499
created:<PHONE_NUMBER>407
---

This is a schema repository for [Dendron](https://dendron.so/).

## Getting Started

To use an individual schema, follow the instructions below:
1. Click the `link` section of the schema you would like to use
1. In your Dendron Workspace, use [Lookup Schema](https://wiki.dendron.so/notes/eea2b078-1acc-4071-a14e-18299fc28f47.html#lookup-schema) to create the schema in your workspace
1. Copy and paste the schema from this repo into your newly created workspace schema
1. Run [Reload Index](https://wiki.dendron.so/notes/eea2b078-1acc-4071-a14e-18299fc28f47.html#reload-index) to use the scema

If you would like to add all the schemas, you can add this entire project as a [remote vault](https://wiki.dendron.so/notes/eea2b078-1acc-4071-a14e-18299fc28f47.html#remote-vault).

## Schemas

### lang
- link: [lang](lang.schema.yml)

Track programming languages

#### Summary
```yml
- l
    - {programming-language} # eg. python
        - d # data structure
            - boolean
            - string
            - ...
        - t # topics
            - system
            - net # network
            - time
            - image # image manipulation
        - ....
```

### pro
- link: [pro](pro.schema.yml)

Track projects

#### Summary
```yml
- pro
    - journal
        - concepts
        - quickstart
        - qa
        - debug
        - ...
```

repository: LiminalCrab/schema-library

repo_name: LiminalCrab/schema-library


text:
# Node.js

[Node.js](https://nodejs.org/en/) is a JavaScript runtime built on Chrome's V8 JavaScript engine.

The full steps to install Node.js into the container are provided at:

  https://www.sylabs.io/2018/09/nodejs-on-singularity/

A quick run through follows:

  1) Make a directory on the host to store all node files and put definition
     file and Hello-world.js file there
  2) Build the container
  3) Run the container as an instance with the Hello-world.js file as
     configuration


text:
# toggl-metric
R library to fetch toggl data and generic methods to handle it.

## Use toggleR to fetch data from toggl

There are two different ways (at least) to use `toggleR`.

### Install from github

For local builds e.g. in Rstudio

```R
library(devtools)
#
#
# Using a local build is possible, see devtools::install_local()
#
# Better way is to get the source from github, since Jenkins will
# build and test every commit
#
# default value for ref in master, but can be any branch or tag
devtools::install_github('Praqma/toggleR', ref = 'master')
library(toggleR)
```

### Run R in a container

For every commit on master, a docker image is built and is stored on docker hub, to get `toggleR` base your build image on `praqma/toggler`.

```Dockerfile
FROM praqma/toggler
````

Simple example in `use-toggler.R`

repository: Praqma/toggl-metric

gha_language: R

repo_name: Praqma/toggl-metric


text:
# New Relic Cookbook

*!!! This project has been deprecated.  We recommend you search the [Chef Supermarket ](https://supermarket.chef.io/) for a supported alternative !!!**

# Requirements
* Chef 10.x
* Chef 11.x

Platform:
* CentOS 6.x
* RHEL 6.x

# Usage
## Server Monitor Agent
Add `recipe[new_relic::server_monitor]` to your run list.

## LWRPs
Ensure `recipe[new_relic]` is in run_list.

# Attributes
## Default
`node['new_relic']['license_key']` - Default value: 'change_me'

`node['new_relic']['proxy']['enabled']` - Default value: false

`node['new_relic']['proxy']['host']` - Default value: nil

`node['new_relic']['proxy']['port']` - Default value: nil

`node['new_relic']['proxy']['user']` - Default value: nil

`node['new_relic']['proxy']['password']` - Default value: nil

`node['new_relic']['proxy']['scheme']` - Default value: 'http'

`node['new_relic']['app_agent']['apdex_t']` - Default value: '0.5'

`node['new_relic']['app_agent']['app_name']` - Default value: 'change_me'

`node['new_relic']['app_agent']['capture_params']` - Default value: false

`node['new_relic']['app_agent']['developer_mode']` - Default value: false

`node['new_relic']['app_agent']['config_file']` - Default value: 'change_me'

`node['new_relic']['app_agent']['log_daily']` - Default value: false

`node['new_relic']['app_agent']['log_file_count']` - Default value: 1

`node['new_relic']['app_agent']['log_file_dir']` - Default value: '/var/log/newrelic'

`node['new_relic']['app_agent']['log_level']` - Default value: 'info'

`node['new_relic']['app_agent']['monitor_mode']`   Default value: true

`node['new_relic']['app_agent']['ssl']` Default value: true

`node['new_relic']['app_agent']['brower_auto_instrument']` Default value: true

`node['new_relic']['server_monitor']['config_file']` - config file location, default value: '/etc/newrelic/nrsysmond.cfg'

`node['new_relic']['server_monitor']['log_file']` - log file location, default value: '/var/log/newrelic/nrsysmond.log'

`node['new_relic']['server_monitor']['package_name']` - Name of the RPM, default value: 'newrelic-sysmond'

`node['new_relic']['server_monitor']['pid_file']` - Default value: '/var/run/newrelic/nrsysmond.pid'

`node['new_relic']['server_monitor']['service_name']` - Default value: 'newrelic-sysmond'

`node['new_relic']['server_monitor']['ssl']` - Default value: true

`node['new_relic']['server_monitor']['version']` - Version of the rpm that is installed, default value: latest version

# Recipes
## server_monitor
Installs and configures the new_relic server monitor agent. This assumes that
the server monitor package is available through your own yum repository.

# LWRPs
## app_agent_config
Configures the new_relic app agent. It is expected that you have bundled
the agent with your app.

### Actions:
- default action: `:create`
- `:create` adds your New Relic YAML config to path specified by `full_path`

### Provider Options:
* Chef::Provider::NewRelicRubyAppAgentConfig
* Chef::Provider::NewRelicJavaAppAgentConfig

### Associated Attributes:
#### required
`node['new_relic']['app_agent']` (please review app_agent attributes section above)

`node['new_relic']['license_key']`

#### optional
`node['new_relic']['proxy']` (please review proxy attributes section above)

### LWRP attributes:
* `full_path` - specifies the absolute path to the new relic config file, default value: name of the resource
* `cookbook` - specifies which cookbook to get template file from.  default is `new_relic`

### Example
```ruby
new_relic_app_agent_config "/my_app_root/config/newrelic.yml" do
  provider Chef::Provider::NewRelicRubyAppAgentConfig
end
```

## java_deployment_record
Creates a new deployment marker in new relic executing new relic jar via "java -jar command_path deployment" with provided options.

- `:create` adds a deployment marker for your app name specified by `name`

### LWRP attributes:
* `app_name` - the name of your application
* `command_path` - absolute path and filename of deployment marker jar. (required)
* `environment` - environment in New Relic that node belongs to
* `proxy` - use proxy to execute deployment marker call. The default is false.
* `proxy_host` - proxy host name or ip
* `proxy_port` - proxy port
* `revision` - revision id of deployment marker
* `user` - user executing the deployment marker call. This attribute looks to see if there is a SUDO_USER environment variable.  If not, it looks to see if there is a USER environment variable.  If not, it will use 'root'.

### Example

``` ruby
new_relic_java_deployment_record "app_name" do
  action :create
  app_name "value to pass as --appname"
  command_path "path to newrelic jar"
  environment "value to pass as --environment"
  proxy true
  proxy_host myhost.example.com
  proxy_port 8080
  revision "value to pass to --revision"
  user "value to pass as --user"
end
```

## ruby_deployment_record
Creates a new deployment marker in new relic by executing `bundle exec newrelic deployment` with provided options. ```NOTE: this currently does not support
working through a proxy```

- `:create` adds a deployment marker for your application

### LWRP attributes:
* `app_name` - the name of your application
* `cwd` - the directory to change to
* `environment` - environment in New Relic that node belongs to
* `revision` - revision id of deployment marker
* `user` - user executing the deployment marker call. This attribute looks to see if there is a SUDO_USER environment variable.  If not, it looks to see if there is a USER environment variable.  If not, it will use 'root'.

### Example

``` ruby
new_relic_ruby_deployment_record "app_name" do
  action :create
  app_name "value to pass as --appname"
  cwd "directory to change to before executing command"
  environment "value to pass as --environment"
  revision "value to pass to --revision"
  user "value to pass as --user"
end
```

# Author

- Author:: Kevin Young<EMAIL_ADDRESS>- Copyright:: 2013, Intuit, Inc.

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.

gha_language: HTML


text:
---
layout: post
title:  "Me vs. the EGA part 4: losing again"
date:   2019-05-15
categories: bioinformatics data
---

It's [not over]({{ site.baseurl }}{% post_url
2019-05-12-Me_versus_the_European_Genome_Phenome_Archive_part_three %}).
As it turns out I'd omitted to include the README files.

I decided this was such a little detail that I'd ask the EGA to just deal with it.

However, they suggested instead that I instead add them as new analyses via the
[EGA webin site](https://www.ebi.ac.uk/ena/submit/webin/).

I retorted that based on inspection of the XML schema, the analysis XML has no appropriate
`ANALYSIS_TYPE`*.

They suggested I send it in with `ANALYSIS_TYPE` set to `SAMPLE_PHENOTYPE` and file type `readme_file`.

I spent half an hour building the relevant XML file (which are more annoying than you might think,
because they are supposed to include references to the samples).  It looks like this:

```
<ANALYSIS_SET>
<ANALYSIS alias="my_README_files" center_name="<center name>" broker_name="EGA" analysis_center="<center name>">
        <TITLE>My README</TITLE>
        <DESCRIPTION>Release note for my data</DESCRIPTION>
        <STUDY_REF refname="alias of my study" refcenter="<center name>"/>
        <SAMPLE_REF refname="sample 1 alias" refcenter="<center name>" label="<sample label>"/>
        ...
        (etc.)
        <ANALYSIS_TYPE>
            <SAMPLE_PHENOTYPE></SAMPLE_PHENOTYPE>
        </ANALYSIS_TYPE>
        <FILES>
            <FILE filename="<path to release note file" filetype="readme_file" checksum_method="MD5" checksum="470d0e6f8f8f6dc1794a0d28aa63bae5" unencrypted_checksum="53405d44a4593b7bbfa2d62f7853000c"/>
        </FILES>
    </ANALYSIS>
</ANALYSIS_SET>
...
```

I sent it in.  Quoth it:
```
    In analysis, alias:"my_README_files", accession:"".
    Invalid group of files: 1 "readme_file" file.
    Supported file grouping(s) are: [ at least 1 "phenotype_file" files, any number of "readme_file" file].
```

In other words, it doesn't work.

<small>* The docs on ANALYSIS_TYPE aren't very clear. There are [these
docs](https://www.ebi.ac.uk/ega/submission/sequence/programmatic_submissions/prepare_xmls), which
talk about BAMs (REFERENCE_ALIGNMENT), VCFs (SEQUENCE_VARIATION), and Phenotype files
(SAMPLE_PHENOTYPE). I think these are the correct docs to follow for EGA, i.e. maybe these three
are all that are permitted.
</small>

<small> Confusing though because those docs link to [these
docs](https://www.ebi.ac.uk/ena/submit/read-xml-format-1-5), which point to the [XML schema
files](ftp://ftp.sra.ebi.ac.uk/meta/xsd/sra_1_5/SRA.analysis.xsd) files which list the following
analysis types: REFERENCE_ALIGNMENT, SEQUENCE_VARIATION, SEQUENCE_ASSEMBLY, SEQUENCE_FLATFILE,
SEQUENCE_ANNOTATION, REFERENCE_SEQUENCE, SAMPLE_PHENOTYPE, PROCESSED_READS, GENOME_MAP,
AMR_ANTIBIOGRAM, PATHOGEN_ANALYSIS, and TRANSCRIPTOME_ASSEMBLY. And not to be left out, there are
also [these docs](https://ena-docs.readthedocs.io/en/latest/programmatic.html), which have examples
for SEQUENCE_VARIATION and REFERENCE_ALIGNMENT nad GENOME_MAP, and feature (dead) links to the
schema. </small>

<small>But in any case it turns
out that not all of these analysis types are allowed; for example, trying to submit an analysis of type
SEQUENCE_ANNOTATION gives you: "In analysis, alias:"my_README_files", accession:"". Invalid
analysis type SEQUENCE_ANNOTATION.".
</small>


text:
# esphome-door-lock

This is project of door lock based on Wemos D1 mini and cheap RC522 RFID module. Software side is based on ESPHome with custom component which exposes data read by RC522 through ESPHome sensors.

That way it's super simple to connect it to Home Assistant.

# Hardware

Project is designed for Wemos D1 mini but can be easily adopted to any other ESPHome compatible hardware as long as it have enough GPIOs.

PCB project and component list is available here and on easyeda if you want to order it from JLCPCB: https://easyeda.com/hausnerr/door-lock.

# Software

Project contains:
 - door_lock.yaml - ESPHome configuration file. It defines all sensors, services and door lock switch for firmware,
 - door_lock_rfid.h - ESPHome custom component. It exposes data read by RC522 as sensors and verify if tag is from allowed list. List can be viewed and updated using services,
 - pcb - components list and gerber files for PCB etching.

# Updating users list

To update users list you need to expose `users list file` on any HTTP server. Simplest way is to use built-in HA server. Create directory `www` inside your HA config dir and put there your `users list file`.
It will be available at http://HA:8123/local/filename.

Then through Home Assistant execute service `esphome.door_lock_sync_users_list_from_server` and send service data like: `{"url":"http://HA:8123/local/filename"}`.

repository: baomin/esphome-door-lock

repo_name: baomin/esphome-door-lock


text:
![Hotcakes Commerce](hotcakes-banner.png)

Project Description
==================
At Hotcakes Commerce, we believe that e-commerce should be easy for everyone on your team.  This open source e-commerce solution delivers on that promise.

Hotcakes Commerce is an enterprise-ready e-commerce CMS that empower store owners, developers, and designers.  It allows you to easily get a store up and running, integrate it with any of your custom and third party systems, while helping run your entire company's online web presence.  We've been told that it's "my company, in a box."

In addition to being a robust open source e-commerce CMS, Hotcakes Commerce includes the following built-in features:

* A rich-text editor
* File management
* Cloud-ready with MS Azure compatibility
* Mobile API and basic mobile device detection
* Core written in C#
* Single installation, multiple portals
* Modern client-side Web tools like CSS 3, HTML 5 and JQuery
* Robust security
* Administration features like: security roles, protected content and site log

Solution: Core
-----------
This solution is considered to be the core of Hotcakes Commerce e-commerce functionality.  All of the pertinent e-commerce features and abilities will be found here.

Quick Links
-----------
* [Hotcakes on Facebook](http://www.facebook.com/HotcakesCommerce)
* [Community](https://mmmcommerce.com/Community)
* [Resources](https://mmmcommerce.com/Resources)
* [Support](https://upendoventures.com/Support)

How to Contribute
-----------------
We encourage everyone to contribute.
All the details on contributing with Git and on our working methods can be found here in the wiki.

## `Sponsors == (typeOf superHuman) Awesome;`

> Yes, it's not real code. It's just supposed to be fun. :P

This solution is created and maintained by [Upendo Ventures](https://upendoventures.com/What/CMS/DNN) for the [DNN CMS Community](https://dnncommunity.org). Please consider [sponsoring us](https://github.com/sponsors/UpendoVentures) for this and [the many other open-source efforts we do](https://upendoventures.com/What/CMS/DNN/Extensions).  It's a lot.  :)

- [Sponsor Us](https://github.com/sponsors/UpendoVentures) (we're grateful at any level 🙏🏽)

repository: HotcakesCommerce/hotcakes-commerce-core

branch_name: refs/heads/development

gha_language: C#

repo_name: HotcakesCommerce/hotcakes-commerce-core


text:
# ASIO_SOCKS5 Proxy Server

## Description
This is simple realization of socks5 proxy server according to the [RFC 1928](https://www.ietf.org/rfc/rfc1928.txt) using `boost::asio` library. The server uses async socket calls for data forwarding and io_service for message processing. Currently, boost_socks5 proxy server works only in `NO AUTHENTICATION REQUIRED` mode.

## Build
The proxy server build was tested with boost version 1.58. However, earlier versions of boost will probably work as well.

### Linux
To build on Linux install Boost library and run the following command:
```
g++ -Wall -std=c++11 socks5.cpp -o socks5 -lpthread
```
### Windows

#### To build on Windows (mingw-w64)
Run the following command:

g++ -Wall -std=c++11 socks5.cpp -o socks5 -static -lwsock32 -lws2_32

Ignore Boost std::auto_ptr warnings if any.

#### To build on Windows (MS Visual Studio)
Run ‘Developer Command Prompt for VS2015’ and use the following command:

cl /EHsc /MD /Fesocks5.exe socks5.cpp /link

## Config file
Currently, configuration file contains the following settings:
* port – which the server listens for incoming client connections
* buffer_size – size of data transferring buffers. Do not make this value too small because it will greatly increase the number of read/write calls when forwarding huge amount of data
* verbose - verbosity level (0 – errors only, 1 - connect/disconnect, 2 - traffic packets size)


text:
# SellingPartnerApiForOrders.TaxCollection

## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**model** | **String** | The tax collection model applied to the item. | [optional]
**responsibleParty** | **String** | The party responsible for withholding the taxes and remitting them to the taxing authority. | [optional]

## Enum: ModelEnum

* `MarketplaceFacilitator` (value: `"MarketplaceFacilitator"`)

## Enum: ResponsiblePartyEnum

* `Amazon Services, Inc.` (value: `"Amazon Services, Inc."`)

repository: clousale/amazon-sp-api-javascript

repo_name: clousale/amazon-sp-api-javascript


text:
# openapi.model.ReposOwnerRepoPullsPullNumberReviewsComments

## Load the model package
```dart
import 'package:openapi/api.dart';
```

## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**body** | **String** | Text of the review comment. | [default to null]
**line** | **int** |  | [optional] [default to null]
**path** | **String** | The relative path to the file that necessitates a review comment. | [default to null]
**position** | **int** | The position in the diff where you want to add a review comment. Note this value is not the same as the line number in the file. For help finding the position value, read the note below. | [optional] [default to null]
**side** | **String** |  | [optional] [default to null]
**startLine** | **int** |  | [optional] [default to null]
**startSide** | **String** |  | [optional] [default to null]

[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)


text:
#SharP sample application

This projects showcases how to use SharP.

![Screenshot 1](screenshot1.png)![Screenshot 2](screenshot2.png)

##Project setup
SharP uses annotation processing to generate the boilerplate code for you. Thus you need to setup SharP as annotation processor first. Therefore the [android-apt](https://bitbucket.org/hvisser/android-apt) plugin is used to setup SharP as annotation processor in Android Studio. This is done by **adding** the following lines to your `build.gradle`:

```groovy
buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.6'
  }
}

apply plugin: 'com.neenbedankt.android-apt'

dependencies {
  compile 'de.ad:sharp-api:0.3.0'
  apt 'de.ad:sharp-processor:0.3.0'
}
```

##Usage
The project setup already was the complex part, because using SharP is quite simple.

In the sample a [PreferenceFragment](http://developer.android.com/reference/android/preference/PreferenceFragment.html) is used to maintain some application settings. We are accessing these settings from other areas of the application by using SharP's `@DefaultSharedPreference` annotation. Therefore we declare the following interface:

```java
@DefaultSharedPreference
public interface Settings {
  int getMyIntPreference();
  void setMyIntPreference(int value);

  float getMyFloatPreference();
  void setMyFloatPreference(float value);

  boolean isMyBooleanPreference();
  void setMyBooleanPreference(boolean value);

  String getMyStringPreference();
  void setMyStringPreference(String value);
}
```

The `@DefaultSharedPreference` annotation generates code which loads a `SharedPreferences` instance calling `PreferencesManager.getDefaultSharedPreferences(context)`. This is the same place where `PreferenceFragments` stores its preferences. But actually we do not need to take of details like this.

In order to obtain an instance of our `Settings` we finally need to call:

```java
Settings settings = SharP.getInstance(this, Settings.class);
```

gha_language: Java


text:
# Spark-a-little
Spark seems to be an overkill for simple projects.
However, small projects often very quickly outgrow the laptop.
Avoid the pain of scaling up.

###Why Spark?
- Spark operates on Resilent Distributed Datasets (RDDs) that can be used to represent data tables.
- The same code for local environment (laptop) and cluster.
- Spark's concept of "transformations" (e.g. "map") and "actions" (e.g. "reduce") makes it easy to wirte parallel programs.
- A lot of the ETL work can be taken care of in fairly intuitive ways.
- Spark + Hive supports SQL queries on data tables. Sometimes, SQL offers the most elegant way.
- Spark has it's own machine learning library
- In local mode Spark reads from regular file system; on the cluster it usually reads from HDFS.

repository: kingmolnar/Spark-a-little

repo_name: kingmolnar/Spark-a-little


text:
---
sortIndex: 13
sidebar: ue4guide
---

Processes:

FInteractiveProcess - launch, run, stop, exit/quit/cancel, communicate with other processes

FMonitoredProcess - Convenience class for launching/monitoring processes. Event delegates for cancellation, completion, and output

**Note: To use these in code, you use the typedef that doesn't have generic. Ex: FPlatformMisc instead of FGenericPlatformMisc. FPlatformMisc is typedef'ed to the current platform (e.g. FWindowsPlatformMisc)**

GenericApplication

FGenericPlatformProcess

FGenericPlatformMisc

FGenericPlatformProcess

FGenericPlatformProperties

FGenericWindow

repository: ikrima/gamedevguide

gha_language: PowerShell

repo_name: ikrima/gamedevguide


text:
# Relation theory :: Operations on relations

Operations on relations:
- operations specific to relations
  - composition of relations
  - complementation of relation
  - transposition of relation
  - restriction of the domain
  - restriction of the codomain
- operations inherited from sets
  - union
  - disjoint union
  - intersection
  - relative difference
  - complementation
  - product
  - powerset
  - partitioning

license: Unlicense


text:
I've got a very simple challenge put together that requires the contestants to first guess a one byte XOR key to decrypt a file and then recognize that the contents are base64 encoded.  They can use base64 tools in Python, Perl, or the unix base64 command to decode it.  That will yield an executable that they run to get the key.  We would just hand the contestants the challenge file that python crypto1.py create produces.

gcc -o crypto1 crypto1.c
python crypto1.py create
python crypto1.py solved
./solved
The key is MCA-98DA37CC


text:
# Adding controls

## Adding a capture button

The `ui_webcam` node is fairly self-contained - providing both the live view
of the camera as well as the button to trigger taking a photo.

The node also supports being triggered by passing it a message with the `msg.capture`
property set - something we'll make use of next.

1. Add a `ui_button` node. Configure it as follows:
     - Set its group to the existing `WebCam` group.
     - Set its size to `9x1`
     - Set the icon to `fa-camera fa-2x`
     - Set the name to `Capture`
2. Wire its output to a new Change node, configured to set `msg.capture` to
   the `boolean` value `true`.
3. Wire the output of the Change node to the input of the WebCam node.
4. Edit the WebCam node and select the 'Hide capture button' option.

      ![](../images/webcam-capture.png){: style="width: 500px"}

5. In the Dashboard sidebar, the `Capture` node should appear *below* the `WebCam`
   node. If it doesn't, you can drag the `Capture` node down into the right order.

      ![](../images/db-reorder.png){: style="width:150px"}

6. Deploy the changes.

The Dashboard will now show the new button beneath the webcam widget - clicking
it will trigger a photo to be taken.

![](../images/booth-capture.png)

## Adding a Clear button

By default, the webcam node shows the captured image for two seconds before
returning to the live feed.

We're going to change that so it displays the captured image until the user
either takes another photo or clicks another button to clear it.

1. Edit the WebCam node and untick the 'Clear image after...' option.
2. Add a new `ui_button` node.
     - Set its group to the existing `WebCam` group.
     - Set its size to `1x1`
     - Set the icon to `fa-trash fa-2x`
     - Clear the label field.
     - Set the Payload option to the `JSON` type and a value of `""`.

         ![](../images/clear-json-type.png){:style="width: 300px"}

3. Wire its output to the input of the WebCam node.
4. As before, check the new node appears below the `WebCam` and `Capture` nodes
   in the Dashboard sidebar.
5. Deploy the changes.

![](../images/booth-clear.png)

Now when you click the camera button the captured image will be shown. Clicking
the new button will clear the image and return to the live feed.

## Next Steps

With the initial dashboard created, its now time to [add some TensorFlow infused AI](../part3/).

repository: knolleary/node-red-workshop-photobooth

gha_language: Dockerfile

repo_name: knolleary/node-red-workshop-photobooth


text:
# Progressive_Budget

## Table of contents

1. [Description](#Description)
2. [Installation](#Instructions)
3. [Usage](#Usage)
4. [License](#License)
5. [Contribution](#Contribution)
6. [Tests](#Tests)
7. [Questions](#Questions)

## Description

Bad Guy Budgetting: Do you need a convenient way to manage your ill gotten gains? Even without internet connectios? Well look no further, using JavaScript, Mongo, and IndexDB, this Progressive Web App will help you track the evilest of heists.

Track your evil deeds here: https://immense-tundra-72985.herokuapp.com/

## Installation

No installation instructions

## Usage

1. Ensure you run NPM I before undertaking any endeavors.
2. Run Node Index.js from CLI if you have forked this repository. If running from Heroku, just enjoy the app.
3. Simply enter the name of the transaction, transaction amount, and indicate if it was a gain or loss.
4. Observe the transaction being logged and the chart being updated.
5. If you run offline mode in your browser you will be able to continue maitaining your transactions.
6. Once online capabilities restored. MongoDB will be updated accordingly.

![WebApp](./public/readme_pics/webapp.PNG)

## License

MIT ![MIT](./public/readme_pics/MIT.svg)

## Contribution

Fork and develop as you see fit. Feedback is always appreciated.

## Tests

No testing needed.

## Questions

Got questions, or are interested in collaborating?

Github:https://github.com/lelandcypress

Email<EMAIL_ADDRESS>


text:
# SIGME REST API

Medical Management System RESTFULL API

### Prerequisites

To use this project, you'll need NodeJS. Visit http://www.nodejs.org to download and learn more!

### Installing

Install via git clone

```
1. $ git clone https://github.com/demoreno/sigme-api.git
2. $ cd sigme-api
3. $ npm install
```

## Running the tests

Explain how to run the automated tests for this system

```
1. $ cd sigme-api
2. $ npm test
```

## Deployment

```
1. $ cd sigme-api
2. $ node app.js
```

## Author

* **David Moreno**

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details

repository: demoreno/sigme-api

gha_language: JavaScript

repo_name: demoreno/sigme-api


text:
# slide-gen

Goal is to implement a pure java dynamic content image creation kit, with graphical editor, custom layouter and image generation with awt.
Dynamic content means the support for different text lengths and ellipsis.

## technologies
- Java
- AWT
- Vaadin
- Spring Boot

## Build and run
I should be enough to build the root pom.xml with maven.
Then run class SlideEditorApplication.
Open browser with localhost:8080

## Features TODO
* Fix vaadin windows in chrome. page is scrolled down. Maybe update vaadin version?
* Boxes could be able to pop in and out of container boxes by keyboard shortcuts
* Write/edit text directly in editor? Anyway the content textfield needs to be a textarea.
* autorender each X seconds
* lines
* different fonts
* show box-tree as this will be important for rendering
* OR maybe make sure that for rendering boxes are sorted by y ascending?
* background image
* insert image
* import LayoutableBox into UI
* streamline all configuration parameters
* textfields must support placeholders/properties and will be filled by a bean or a value map
* multiple render outputs with large and tiny texts, set of example data should be part of the slide
* background color
* padding and margin
* borders

repository: SysLord/slide-gen

repo_name: SysLord/slide-gen


text:
# Disable Background Cancel
How to control the background cancel feature.

---

By default, a modal is cancelled if the user clicks anywhere outside the modal. This behaviour can be disabled by setting `DisableBackgroundCancel` to `true`.

## Setting DisableBackgroundCancel Globally

To control background cancel globally for all modals in your application, you can set the `DisableBackgroundCancel` parameter on the `BlazoredModal` component in your `MainLayout`.

```html
@inherits LayoutComponentBase

<BlazoredModal DisableBackgroundCancel="true" />

<!-- Other code removed for brevity -->
```

## Setting DisableBackgroundCancel Per Modal

To set the background cancel of a specific modal instance you can pass in a `ModalOptions` object when calling `Show`.

```csharp
var options = new ModalOptions { DisableBackgroundCancel = true };

_ = Modal.Show<Confirm>("My Modal", options);
```

repository: ThomasPrioul/Modal

repo_name: ThomasPrioul/Modal


text:
# Caffeinery Skeleton

Every Caffeinery project from now on intends to build with webpack and babel, and because it's probably best to do this, we made a sort of /etc/skel for our products to re-use with some custom configuration along the way. Caffeinery can then kind of look after this skeleton as we learn more as well as keeping the repos up to date.

## I have a suggestion!

We'd love to hear about it! Send a PR or submit an issue and we'll take a look at your suggestion - we intend to use this internally but it's also very good if people feel inspired to make something with this skeleton of a project, and suggest improvements we can change for the future!

repository: caffeinery/skel

repo_name: caffeinery/skel


text:
# Google BigQuery

http://httparchive.org/

http://httparchive.org/websites.php

http://httparchive.org/interesting.php

http://httparchive.org/trends.php

http://httparchive.org/about.php#bigquery

Google BigQuery

How do I use BigQuery to write custom queries over the data?

The HTTP Archive data dumps are also available in Google BigQuery thanks to Ilya Grigorik. This means you can create your own custom queries like How many resources return Last-Modified and/or ETag values? and What is the distribution of 1st party vs 3rd party resources?. For more information see Ilya's blog post HTTP Archive + BigQuery = Web Performance Answers and video. And checkout all the custom queries shared on BigQueri.es.

repository: xgqfrms/learning

path: /Google/Google BigQuery/readme.md

branch_name: refs/heads/gh-pages

repo_name: xgqfrms/learning


text:
# QBee - Grav Theme

QBee is a clean, lightweight and minimal HTML 5 theme for [Grav](https://getgrav.org) built with the [Kube](https://imperavi.com/kube/) CSS & JS Framework.

![QBee Theme](screenshot.png "QBee Screenshot")

## Demo

A live demo of QBee Theme is available at: http://qbee.jorgetite.com/

## Features
* Clean and minimal
* Responsive and mobile friendly
* Lightweight and fast loading
* Clean typography
* Search engine optimized
* Modern browser compatible
* Very extensible and customizable
* Kube Framework
* Font Awesome
* HTML5, CSS3, JavaScript

### Supported Browsers
QBee supports the latest, stable releases of all major browsers:

- Latest Chrome
- Latest Firefox
- Latest Safari
- Latest Opera
- Microsoft Edge
- Internet Explorer 11

## Installation

Installing the QBee theme can be done in one of two ways:

- The GPM (Grav Package Manager) installation method enables you to quickly and easily install the theme with a simple terminal command
- The manual method enables you to do so via a zip file.

### GPM Installation (Preferred)

The simplest way to install this theme is via the Grav Package Manager (GPM) through your system's Terminal (also called the command line). From the root of your Grav install type:

```Shell
bin/gpm install qbee
```

This will install the QBee theme into your `/user/themes` directory within Grav. Its files can be found under `/your/site/grav/user/themes/qbee`.

### Manual Installation

To install this theme, just download the zip version of this repository and unzip it under `/your/site/grav/user/themes`. Then, rename the folder to `qbee`. You can find these files either on [GitHub](https://github.com/jorgetite/QBee) or via [GetGrav.org](http://getgrav.org/downloads/themes).

You should now have all the theme files under

```Shell
/your/site/grav/user/themes/qbee
```

### Requirements

* Grav 1.4+

## Theme Options

QBee allows you to set the following options site-wide:

| Setting Name     | Default  | Description
|------------------|----------|----------------------
| `enabled`        | `true`   | Enables or disables the theme
| `production_mode`| `true`   | Serves CSS and JS files minimized
| `header_sticky`  | `false`  | Keeps the header always visible at the top of the page
| `show_site_name` | `true`   | Displays the site name in the header
| `show_site_logo` | `true`   | Displays the site logo in the header
| `site_logo`      |          | The relative path to the site logo. If no path is specified the them uses by default `images/logo.png`
| `site_copy`      |          | The copyright notice displayed in the footer

To make modifications, you can copy the `user/themes/qbee/qbee.yaml` file to `user/config/themes/` folder and modify, or you can use the admin plugin.

```yaml
enabled: true
production_mode: true
header_sticky: false
show_site_name: true
show_site_logo: true
```

> WARNING: Do not modify the `user/themes/qbee/qbee.yaml` file directly or your changes will be lost with any updates

## Pages

QBee supports the following page templates:

* Default view template `default.md`
* Error view template `error.md`
* Modular view templates: `modular.md`
    + Splash Modular view template `splash.md`
    + Profile Modular view template `profile.md`
    + Features Modular view template `features.md`
    + Hero Modular view template `hero.md`
    + Text Modular view template `text.md`

### Page Options

QBee provides several options in the page frontmatter to fine control how pages are displayed and styled. These options are available for all page templates supported by QBee:

#### Content Settings

| Setting Name     | Default  | Description
|------------------|----------|----------------------
| `subtitle`       |          | The page or module subheading

```yaml
subtitle: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit.'
```

#### Layout Settings

| Setting Name     | Default  | Description
|------------------|----------|----------------------
| `show_header`    | `true`   | Controls whether the site header is displayed or not. This option is available only for `default.md`, `error.md` and `modular.md` templates
| `show_footer`    | `true`   | Controls whether the site footer is displayed or not. This option is available only for `default.md`, `error.md` and `modular.md` templates
| `show_heading`   | `true`   | Controls whether the title and subtitle are autiomatically displayed at the top of the page, or not. This option is not available for `modular.md` templates
| `onpage_menu`    | `false`  | Renders a on page menu for modular pages. This option is available only for `modular.md` templates
| `menu_icon`      |          | Sets the menu icon for the page

```yaml
show_header: true
show_footer: true
show_heading: true
onpage_menu: false
menu_icon: 'fas fa-home'
```

#### Style Settings

| Setting Name     | Default       | Description
|------------------|---------------|----------------------
| `color_scheme`   | `scheme-light`| Sets the appearance of the page. The following values are available:
`scheme-light`: White (default)
`scheme-gray-light`: Lightgray
`scheme-gray-dark`: Dimgray
`scheme-dark`: Black
| `padding`        | `md-pad` | Sets the top and bottom padding of the page. The following values are available:
 `no-pad`: No padding
`xs-pad`: Smaller (16px)
`sm-pad`: Small (32px)
`md-pad`: Midium (64px)
`lg-pad`: Large (96px)
`xl-pad`: Larger (128px)
| `css_classes`    |          | Additional CSS classes space separated. (see ' CSS Classes' below)

```yaml
color_scheme: scheme-light
padding: md-pad
css_classes: 'my-css-class'
```

> Note: These options are not available for `modular.md` templates

#### Advanced Settings
| Setting Name     | Default    | Description
|------------------|------------|----------------------
| `id`             |            | Sets the ID of the HTML element representing the page
| `css_styles`     |            | Sets additional css styles that are applied inline to the the page
| `image`          |            | Sets an image to be displayed in this page. When not specified, this defaults to the first image found in the page''s folder if `image_position` is not `none`.
| `image_position` | `none`     | Determines the position of the image in the page. Possible valueas are:
`none`: No display
`back`: Display in the background
`left`: Display image aligned to the left
`right` Display image aligned to the right
| `parallax_enabled` | `false`  | Enables parallax scrolling effect with background image
| `parallax_direction` | `vertical`  | Sets the direction `vertical` or `horizontal` of the background image while scrolling.
| `parallax_factor` | `0.5`  | Sets elements offset and speed. It can be positive (0.5) or negative (-0.5). Less means slower

```yaml
id: 'my-page-id'
css_styles: 'background: linear-gradient(to bottom, #1a2a6c, #b21f1f, #fdbb2d);'
image: 'custom-image.png'
image_position: back
parallax_enabled: true
parallax_direction: vertical
parallax_factor: '0.5'
```

> Note: These options are not available for `modular.md` templates

### Features Modular Settings

The `features.md` modular template gives you the ability to define an array of feature items, as well as the column layout (in a 12 column grid layout) used to display the feature items.

```yaml
columns: col-3      # possible values: col-6, col-4, col-3, col-2
features:
    -
        icon: 'fas fa-palette fa-fw'
        header: Design
        text: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellat quis natus, nesciunt accusantium beatae quae doloremque'
    -
        icon: 'fas fa-code fa-fw'
        header: Development
        text: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellat quis natus, nesciunt accusantium beatae quae doloremque'
    -
        icon: 'fas fa-cloud fa-fw'
        header: Cloud
        text: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellat quis natus, nesciunt accusantium beatae quae doloremque'
    -
        icon: 'fas fa-database fa-fw'
        header: Storage
        text: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Repellat quis natus, nesciunt accusantium beatae quae doloremque'
```

> NOTE: QBee uses Fontawesome version 5's syntax. For more information please refer to [Fontawesome's documentation](https://fontawesome.com/how-to-use/on-the-web/referencing-icons/basic-use).

### Profile Modular Settings

The `profile.md` modular template gives you the ability to create an array of skills, for example:

```yaml
skills:
    -
        header: 'HTML & CSS'
        value: '90'
    -
        header: JavaScript
        value: '95'
    -
        header: PHP
        value: '80'
    -
        header: iOS
        value: '80'
    -
        header: MySQL
        value: '70'
```

### CSS Classes

| CSS Class     | Description
|---------------|-----------------
| text-center   | centers the text/content of the page
| text-left     | aligns left the text/content of the page
| text-right    | aligns right the text/content of the page
| bg-blacken    | darkens the background of the page (useful with image backgrounds)
| bg-whiten     | whitens the bacground of the page (useful with image backgrounds)

### Configuration with Admin plugin

All the theme and page settings listed above can be easily managed using the [Admin Plug-in](https://github.com/getgrav/grav-plugin-admin).

![Admin Plug-in](admin-screenshot.png "Admin")

## Customizing QBee

You can customize QBee by overriding or adding your own custom styles, scripts or theme images.

#### Custom Styles

Custom CSS styles or overrides should be added to the `css/custom.css` file.

#### Custom Scripts

Custom scripts should be added to `js/custom.js` file.

#### Custom Images

Your logo and favicon should be place inside the `images/custom` folder. This will ensure your images are not lost with theme updates.

## Credits
QBee was created using:

+ Kube Framework (https://imperavi.com/kube/)
+ Font Awesome (https://fontawesome.com)
+ JQuery One Page Nav (http://github.com/davist11/jQuery-One-Page-Nav)
+ JQuery Paroller (https://github.com/tgomilar/paroller.js)
+ Google Fonts (https://fonts.google.com)

## Contributing
Contributions to QBee are greatly appreciated, whether they are related to bugs, grammar, or simply a suggestion or improvement!

## License
The files contained in this project are released under the MIT License. You can find a copy of this license in LICENSE.txt file.

repository: jorgetite/grav-theme-qbee

repo_name: jorgetite/grav-theme-qbee


text:
+++
title = "Adding an account"
weight = 192
home_region = "eu-west-1"
+++
---

## What are we going to do?

This tutorial will walk you through "{{% param title %}}"

We will assume you have:

 - installed Service Catalog Puppet correctly
 - created a manifest
 - bootstrapped a spoke

We are going to perform the following steps:

- adding an account to the manifest file

During this process you will check your progress by verifying what the framework is doing at each step.

## Step by step guide

Here are the steps you need to follow to "{{% param title %}}"

### Adding an account to the manifest file

- Navigate to the {{% service_catalog_puppet_code_commit_repo_link %}}

- Click on *manifest.yaml*

- Click *Edit*

{{< figure src="/tasks/ClickEditPuppetRepo.png" >}}

- Append the following snippet to the YAML document in the main input field (be careful with your indentation):

- Copy the following snippet into the main input field:

  <figure>
   {{< highlight js >}}
accounts:
  - account_id: "<YOUR_ACCOUNT_ID_WITHOUT_HYPHENS>"
    name: "puppet-account"
    default_region: "eu-west-1"
    regions_enabled:
      - "eu-west-1"
      - "eu-west-2"
    tags:
      - "type:prod"
      - "partition:eu"
   {{< / highlight >}}
  </figure>

- Update account_id on line to show the account id of the account you have bootstrapped

### Committing the manifest file

- Set the *File name* to `manifest.yaml`

- Set your *Author name*
- Set your *Email address*
- Set your *Commit message*

{{% notice tip %}}
Using a good / unique commit message will help you understand what is going on later.
{{% /notice %}}

- Click the *Commit changes* button:

{{< figure src="/how-tos/creating-and-provisioning-a-product/CommitChanges.png" >}}

gha_language: CSS