AVRDUDE(1) BSD General Commands Manual AVRDUDE(1) NAME avrdude — driver program for ``simple'' Atmel AVR MCU programmer SYNOPSIS avrdude -p partno [-b baudrate] [-B bitclock] [-c programmer-id] [-C config-file] [-D] [-e] [-E exitspec[,exitspec]] [-F] [-i delay] [-n] [-O] [-P port] [-q] [-s] [-t] [-u] [-U memtype:op:filename:filefmt] [-v] [-x extended_param] [-V] [-y] [-Y] DESCRIPTION Avrdude is a program for downloading code and data to Atmel AVR microcon‐ trollers. Avrdude supports Atmel's STK500 programmer, Atmel's AVRISP and AVRISP mkII devices, Atmel's STK600, Atmel's JTAG ICE (both mkI and mkII, the latter also in ISP mode), programmers complying to AppNote AVR910 and AVR109 (including the Butterfly), as well as a simple hard-wired programmer connected directly to a ppi(4) or parport(4) parallel port, or to a stan‐ dard serial port. In the simplest case, the hardware consists just of a cable connecting the respective AVR signal lines to the parallel port. The MCU is programmed in serial programming mode, so, for the ppi(4) based programmer, the MCU signals ‘/RESET’, ‘SCK’, ‘MISO’ and ‘MOSI’ need to be connected to the parallel port. Optionally, some otherwise unused output pins of the parallel port can be used to supply power for the MCU part, so it is also possible to construct a passive stand-alone programming device. Some status LEDs indicating the current operating state of the programmer can be connected, and a signal is available to control a buffer/driver IC 74LS367 (or 74HCT367). The latter can be useful to decouple the parallel port from the MCU when in-system programming is used. A number of equally simple bit-bang programming adapters that connect to a serial port are supported as well, among them the popular Ponyprog serial adapter, and the DASA and DASA3 adapters that used to be supported by uisp(1). Note that these adapters are meant to be attached to a physical serial port. Connecting to a serial port emulated on top of USB is likely to not work at all, or to work abysmally slow. Atmel's STK500 programmer is also supported and connects to a serial port. Both, firmware versions 1.x and 2.x can be handled, but require a different programmer type specification (by now). Using firmware version 2, high- voltage programming is also supported, both parallel and serial (programmer types stk500pp and stk500hvsp). Wiring boards are supported, utilizing STK500 V2.x protocol, but a simple DTR/RTS toggle is used to set the boards into programming mode. The pro‐ grammer type is ``wiring''. The Arduino (which is very similar to the STK500 1.x) is supported via its own programmer type specification ``arduino''. The BusPirate is a versatile tool that can also be used as an AVR program‐ mer. A single BusPirate can be connected to up to 3 independent AVRs. See the section on extended parameters below for details. Atmel's STK600 programmer is supported in ISP and high-voltage programming modes, and connects through the USB. For ATxmega devices, the STK600 is supported in PDI mode. For ATtiny4/5/9/10 devices, the STK600 and AVRISP mkII are supported in TPI mode. The simple serial programmer described in Atmel's application note AVR910, and the bootloader described in Atmel's application note AVR109 (which is also used by the AVR Butterfly evaluation board), are supported on a serial port. Atmel's JTAG ICE (both mkI and mkII) is supported as well to up- or down‐ load memory areas from/to an AVR target (no support for on-chip debugging). For the JTAG ICE mkII, JTAG, debugWire and ISP mode are supported, provided it has a firmware revision of at least 4.14 (decimal). See below for the limitations of debugWire. For ATxmega devices, the JTAG ICE mkII is sup‐ ported in PDI mode, provided it has a revision 1 hardware and firmware ver‐ sion of at least 5.37 (decimal). The AVR Dragon is supported in all modes (ISP, JTAG, HVSP, PP, debugWire). When used in JTAG and debugWire mode, the AVR Dragon behaves similar to a JTAG ICE mkII, so all device-specific comments for that device will apply as well. When used in ISP mode, the AVR Dragon behaves similar to an AVRISP mkII (or JTAG ICE mkII in ISP mode), so all device-specific comments will apply there. In particular, the Dragon starts out with a rather fast ISP clock frequency, so the -B bitclock option might be required to achieve a stable ISP communication. For ATxmega devices, the AVR Dragon is sup‐ ported in PDI mode, provided it has a firmware version of at least 6.11 (decimal). The avrftdi, USBasp ISP and USBtinyISP adapters are also supported, pro‐ vided avrdude has been compiled with libusb support. USBasp ISP and USBtinyISP both feature simple firmware-only USB implementations, running on an ATmega8 (or ATmega88), or ATtiny2313, respectively. If libftdi has has been compiled in avrdude, the avrftdi device adds support for many pro‐ grammers using FTDI's 2232C/D/H and 4232H parts running in MPSSE mode, which hard-codes (in the chip) SCK to bit 1, MOSI to bit 2, and MISO to bit 3. Reset is usually bit 4. Input files can be provided, and output files can be written in different file formats, such as raw binary files containing the data to download to the chip, Intel hex format, or Motorola S-record format. There are a num‐ ber of tools available to produce those files, like asl(1) as a standalone assembler, or avr-objcopy(1) for the final stage of the GNU toolchain for the AVR microcontroller. Avrdude can program the EEPROM and flash ROM memory cells of supported AVR parts. Where supported by the serial instruction set, fuse bits and lock bits can be programmed as well. These are implemented within avrdude as separate memory types and can be programmed using data from a file (see the -m option) or from terminal mode (see the dump and write commands). It is also possible to read the chip (provided it has not been code-protected previously, of course) and store the data in a file. Finally, a ``termi‐ nal'' mode is available that allows one to interactively communicate with the MCU, and to display or program individual memory cells. On the STK500 and STK600 programmer, several operational parameters (target supply volt‐ age, target Aref voltage, master clock) can be examined and changed from within terminal mode as well. Options In order to control all the different operation modi, a number of options need to be specified to avrdude. -p partno This is the only option that is mandatory for every invoca‐ tion of avrdude. It specifies the type of the MCU connected to the programmer. These are read from the config file. If avrdude does not know about a part that you have, simply add it to the config file (be sure and submit a patch back to the author so that it can be incorporated for the next version). See the sample config file for the format. Currently, the following MCU types are understood: ll. Option tag Official part name 1200 AT90S1200 (****) 2313 AT90S2313 2333 AT90S2333 2343 AT90S2343 (*) 4414 AT90S4414 4433 AT90S4433 4434 AT90S4434 8515 AT90S8515 8535 AT90S8535 c128 AT90CAN128 c32 AT90CAN32 c64 AT90CAN64 m103 ATmega103 m128 ATmega128 m1280 ATmega1280 m1281 ATmega1281 m1284p ATmega1284P m128rfa1 ATmega128RFA1 m16 ATmega16 m161 ATmega161 m162 ATmega162 m163 ATmega163 m164 ATmega164 m164p ATmega164P m168 ATmega168 m168p ATmega168P m169 ATmega169 m16u2 ATmega16U2 m2560 ATmega2560 (**) m2561 ATmega2561 (**) m32 ATmega32 m324p ATmega324P m325 ATmega325 m3250 ATmega3250 m328p ATmega328P m329 ATmega329 m3290 ATmega3290 m329p ATmega329P m3290p ATmega3290P m32u2 ATmega32U2 m32u4 ATmega32U4 m48 ATmega48 m64 ATmega64 m640 ATmega640 m644p ATmega644P m644 ATmega644 m645 ATmega645 m6450 ATmega6450 m649 ATmega649 m6490 ATmega6490 m8 ATmega8 m8515 ATmega8515 m8535 ATmega8535 m88 ATmega88 m88p ATmega88P m8u2 ATmega8U2 pwm2 AT90PWM2 pwm2b AT90PWM2B pwm3 AT90PWM3 pwm3b AT90PWM3B t10 ATtiny10 t12 ATtiny12 (***) t13 ATtiny13 t15 ATtiny15 t2313 ATtiny2313 t25 ATtiny25 t26 ATtiny26 t261 ATtiny261 t4 ATtiny4 t4313 ATtiny4313 t44 ATtiny44 t45 ATtiny45 t461 ATtiny461 t5 ATtiny5 t84 ATtiny84 t85 ATtiny85 t861 ATtiny861 t88 ATtiny88 t9 ATtiny9 ucr2 AT32uca0512 usb1286 ATmega1286 usb1287 ATmega1287 usb162 ATmega162 usb646 ATmega647 usb647 ATmega647 usb82 ATmega82 x128a1 ATxmega128A1 x128a1d ATxmega128A1revD x128a3 ATxmega128A3 x128a4 ATxmega128A4 x16a4 ATxmega16A4 x192a1 ATxmega192A1 x192a3 ATxmega192A3 x256a1 ATxmega256A1 x256a3 ATxmega256A3 x256a3b ATxmega256A3B x32a4 ATxmega32A4 x64a1 ATxmega64A1 x64a3 ATxmega64A3 x64a4 ATxmega64A4 (*) The AT90S2323 and ATtiny22 use the same algorithm. (**) Flash addressing above 128 KB is not supported by all programming hardware. Known to work are jtag2, stk500v2, and bit-bang programmers. (***) The ATtiny11 uses the same algorithm, but can only be programmed in high-voltage serial mode. (****) The ISP programming protocol of the AT90S1200 differs in subtle ways from that of other AVRs. Thus, not all programmers support this device. Known to work are all direct bitbang programmers, and all programmers talking the STK500v2 protocol. -b baudrate Override the RS-232 connection baud rate specified in the respective programmer's entry of the configuration file. -B bitclock Specify the bit clock period for the JTAG interface or the ISP clock (JTAG ICE only). The value is a floating-point number in microseconds. The default value of the JTAG ICE results in about 1 microsecond bit clock period, suitable for target MCUs running at 4 MHz clock and above. Unlike certain parameters in the STK500, the JTAG ICE resets all its parame‐ ters to default values when the programming software signs off from the ICE, so for MCUs running at lower clock speeds, this parameter must be specified on the command-line. You can use the 'default_bitclock' keyword in your ${HOME}/.avrduderc file to assign a default value to keep from having to specify this option on every invocation. -c programmer-id Use the pin configuration specified by the argument. Pin configurations are read from the config file (see the -C option). New pin configurations can be easily added or modi‐ fied through the use of a config file to make avrdude work with different programmers as long as the programmer supports the Atmel AVR serial program method. You can use the 'default_programmer' keyword in your ${HOME}/.avrduderc file to assign a default programmer to keep from having to specify this option on every invocation. -C config-file Use the specified config file to load configuration data. This file contains all programmer and part definitions that avrdude knows about. If you have a programmer or part that avrdude does not know about, you can add it to the config file (be sure and submit a patch back to the author so that it can be incorporated for the next version). See the config file, located at /etc/avrdude.conf, which contains a descrip‐ tion of the format. -D Disable auto erase for flash. When the -U option with flash memory is specified, avrdude will perform a chip erase before starting any of the programming operations, since it gener‐ ally is a mistake to program the flash without performing an erase first. This option disables that. Auto erase is not used for ATxmega devices as these devices can use page erase before writing each page so no explicit chip erase is required. Note however that any page not affected by the current operation will retain its previous contents. -e Causes a chip erase to be executed. This will reset the con‐ tents of the flash ROM and EEPROM to the value ‘0xff’, and clear all lock bits. Except for ATxmega devices which can use page erase, it is basically a prerequisite command before the flash ROM can be reprogrammed again. The only exception would be if the new contents would exclusively cause bits to be programmed from the value ‘1’ to ‘0’. Note that in order to reprogram EERPOM cells, no explicit prior chip erase is required since the MCU provides an auto-erase cycle in that case before programming the cell. -E exitspec[,exitspec] By default, avrdude leaves the parallel port in the same state at exit as it has been found at startup. This option modifies the state of the ‘/RESET’ and ‘Vcc’ lines the paral‐ lel port is left at, according to the exitspec arguments pro‐ vided, as follows: reset The ‘/RESET’ signal will be left activated at pro‐ gram exit, that is it will be held low, in order to keep the MCU in reset state afterwards. Note in particular that the programming algorithm for the AT90S1200 device mandates that the ‘/RESET’ signal is active before powering up the MCU, so in case an external power supply is used for this MCU type, a previous invocation of avrdude with this option specified is one of the possible ways to guarantee this condition. noreset The ‘/RESET’ line will be deactivated at program exit, thus allowing the MCU target program to run while the programming hardware remains connected. vcc This option will leave those parallel port pins active (i. e. high) that can be used to supply ‘Vcc’ power to the MCU. novcc This option will pull the ‘Vcc’ pins of the parallel port down at program exit. d_high This option will leave the 8 data pins on the paral‐ lel port active. (i. e. high) d_low This option will leave the 8 data pins on the paral‐ lel port inactive. (i. e. low) Multiple exitspec arguments can be separated with commas. -F Normally, avrdude tries to verify that the device signature read from the part is reasonable before continuing. Since it can happen from time to time that a device has a broken (erased or overwritten) device signature but is otherwise operating normally, this options is provided to override the check. Also, for programmers like the Atmel STK500 and STK600 which can adjust parameters local to the programming tool (independent of an actual connection to a target con‐ troller), this option can be used together with -t to con‐ tinue in terminal mode. -i delay For bitbang-type programmers, delay for approximately delay microseconds between each bit state change. If the host sys‐ tem is very fast, or the target runs off a slow clock (like a 32 kHz crystal, or the 128 kHz internal RC oscillator), this can become necessary to satisfy the requirement that the ISP clock frequency must not be higher than 1/4 of the CPU clock frequency. This is implemented as a spin-loop delay to allow even for very short delays. On Unix-style operating systems, the spin loop is initially calibrated against a system timer, so the number of microseconds might be rather realistic, assuming a constant system load while avrdude is running. On Win32 operating systems, a preconfigured number of cycles per microsecond is assumed that might be off a bit for very fast or very slow machines. -n No-write - disables actually writing data to the MCU (useful for debugging avrdude ). -O Perform a RC oscillator run-time calibration according to Atmel application note AVR053. This is only supported on the STK500v2, AVRISP mkII, and JTAG ICE mkII hardware. Note that the result will be stored in the EEPROM cell at address 0. -P port Use port to identify the device to which the programmer is attached. By default the /dev/ppi0 port is used, but if the programmer type normally connects to the serial port, the /dev/cuaa0 port is the default. If you need to use a differ‐ ent parallel or serial port, use this option to specify the alternate port name. On Win32 operating systems, the parallel ports are referred to as lpt1 through lpt3, referring to the addresses 0x378, 0x278, and 0x3BC, respectively. If the parallel port can be accessed through a different address, this address can be specified directly, using the common C language notation (i. e., hexadecimal values are prefixed by ‘0x’ ). For the JTAG ICE mkII, if avrdude has been configured with libusb support, port can alternatively be specified as usb[:serialno]. This will cause avrdude to search a JTAG ICE mkII on USB. If serialno is also specified, it will be matched against the serial number read from any JTAG ICE mkII found on USB. The match is done after stripping any existing colons from the given serial number, and right-to-left, so only the least significant bytes from the serial number need to be given. As the AVRISP mkII device can only be talked to over USB, the very same method of specifying the port is required there. For the USB programmer "AVR-Doper" running in HID mode, the port must be specified as avrdoper. Libusb support is required on Unix but not on Windows. For more information about AVR-Doper see http://www.obdev.at/avrusb/avrdoper.html. For the USBtinyISP, which is a simplicistic device not imple‐ menting serial numbers, multiple devices can be distinguished by their location in the USB hierarchy. See the the respec‐ tive Troubleshooting entry in the detailed documentation for examples. For programmers that attach to a serial port using some kind of higher level protocol (as opposed to bit-bang style pro‐ grammers), port can be specified as net:host:port. In this case, instead of trying to open a local device, a TCP network connection to (TCP) port on host is established. The remote endpoint is assumed to be a terminal or console server that connects the network stream to a local serial port where the actual programmer has been attached to. The port is assumed to be properly configured, for example using a transparent 8-bit data connection without parity at 115200 Baud for a STK500. This feature is currently not implemented for Win32 systems. -q Disable (or quell) output of the progress bar while reading or writing to the device. Specify it a second time for even quieter operation. -s Disable safemode prompting. When safemode discovers that one or more fuse bits have unintentionally changed, it will prompt for confirmation regarding whether or not it should attempt to recover the fuse bit(s). Specifying this flag disables the prompt and assumes that the fuse bit(s) should be recovered without asking for confirmation first. -t Tells avrdude to enter the interactive ``terminal'' mode instead of up- or downloading files. See below for a detailed description of the terminal mode. -u Disable the safemode fuse bit checks. Safemode is enabled by default and is intended to prevent unintentional fuse bit changes. When enabled, safemode will issue a warning if the any fuse bits are found to be different at program exit than they were when avrdude was invoked. Safemode won't alter fuse bits itself, but rather will prompt for instructions, unless the terminal is non-interactive, in which case safemode is disabled. See the -s option to disable safemode prompting. -U memtype:op:filename[:format] Perform a memory operation as indicated. The memtype field specifies the memory type to operate on. The available mem‐ ory types are device-dependent, the actual configuration can be viewed with the part command in terminal mode. Typically, a device's memory configuration at least contains the memory types flash and eeprom. All memory types currently known are: calibration One or more bytes of RC oscillator calibration data. eeprom The EEPROM of the device. efuse The extended fuse byte. flash The flash ROM of the device. fuse The fuse byte in devices that have only a single fuse byte. hfuse The high fuse byte. lfuse The low fuse byte. lock The lock byte. signature The three device signature bytes (device ID). fuseN The fuse bytes of ATxmega devices, N is an inte‐ ger number for each fuse supported by the device. application The application flash area of ATxmega devices. apptable The application table flash area of ATxmega devices. boot The boot flash area of ATxmega devices. prodsig The production signature (calibration) area of ATxmega devices. usersig The user signature area of ATxmega devices. The op field specifies what operation to perform: r read device memory and write to the specified file w read data from the specified file and write to the device memory v read data from both the device and the specified file and perform a verify The filename field indicates the name of the file to read or write. The format field is optional and contains the format of the file to read or write. Format can be one of: i Intel Hex s Motorola S-record r raw binary; little-endian byte order, in the case of the flash ROM data m immediate; actual byte values specified on the command line, separated by commas or spaces. This is good for programming fuse bytes without having to create a sin‐ gle-byte file or enter terminal mode. a auto detect; valid for input only, and only if the input is not provided at stdin. d decimal; this and the following formats are only valid on output. They generate one line of output for the respective memory section, forming a comma-separated list of the values. This can be particularly useful for subsequent processing, like for fuse bit settings. h hexadecimal; each value will get the string 0x prepended. o octal; each value will get a 0 prepended unless it is less than 8 in which case it gets no prefix. b binary; each value will get the string 0b prepended. The default is to use auto detection for input files, and raw binary format for output files. Note that if filename con‐ tains a colon, the format field is no longer optional since the filename part following the colon would otherwise be mis‐ interpreted as format. As an abbreviation, the form -U filename is equivalent to specifying -U flash:w:filename:a. This will only work if filename does not have a colon in it. -v Enable verbose output. -V Disable automatic verify check when uploading data. -x extended_param Pass extended_param to the chosen programmer implementation as an extended parameter. The interpretation of the extended parameter depends on the programmer itself. See below for a list of programmers accepting extended parameters. -y Tells avrdude to use the last four bytes of the connected parts' EEPROM memory to track the number of times the device has been erased. When this option is used and the -e flag is specified to generate a chip erase, the previous counter will be saved before the chip erase, it is then incremented, and written back after the erase cycle completes. Presumably, the device would only be erased just before being programmed, and thus, this can be utilized to give an indication of how many erase-rewrite cycles the part has undergone. Since the FLASH memory can only endure a finite number of erase-rewrite cycles, one can use this option to track when a part is near‐ ing the limit. The typical limit for Atmel AVR FLASH is 1000 cycles. Of course, if the application needs the last four bytes of EEPROM memory, this option should not be used. -Y cycles Instructs avrdude to initialize the erase-rewrite cycle counter residing at the last four bytes of EEPROM memory to the specified value. If the application needs the last four bytes of EEPROM memory, this option should not be used. Terminal mode In this mode, avrdude only initializes communication with the MCU, and then awaits user commands on standard input. Commands and parameters may be abbreviated to the shortest unambiguous form. Terminal mode provides a command history using readline(3), so previously entered command lines can be recalled and edited. The following commands are currently implemented: dump memtype addr nbytes Read nbytes bytes from the specified memory area, and display them in the usual hexadecimal and ASCII form. dump Continue dumping the memory contents for another nbytes where the previous dump command left off. write memtype addr byte1 ... byteN Manually program the respective memory cells, starting at address addr, using the values byte1 through byteN. This feature is not implemented for bank-addressed memories such as the flash memory of ATMega devices. erase Perform a chip erase. send b1 b2 b3 b4 Send raw instruction codes to the AVR device. If you need access to a feature of an AVR part that is not directly sup‐ ported by avrdude, this command allows you to use it, even though avrdude does not implement the command. When using direct SPI mode, up to 3 bytes can be omitted. sig Display the device signature bytes. spi Enter direct SPI mode. The pgmled pin acts as slave select. Only supported on parallel bitbang programmers. part Display the current part settings and parameters. Includes chip specific information including all memory types sup‐ ported by the device, read/write timing, etc. pgm Return to programming mode (from direct SPI mode). vtarg voltage Set the target's supply voltage to voltage Volts. Only supported on the STK500 and STK600 programmer. varef [channel] voltage Set the adjustable voltage source to voltage Volts. This voltage is normally used to drive the target's Aref input on the STK500. On the Atmel STK600, two reference voltages are available, which can be selected by the optional channel argument (either 0 or 1). Only supported on the STK500 and STK600 programmer. fosc freq[M|k] Set the master oscillator to freq Hz. An optional trailing letter M multiplies by 1E6, a trailing letter k by 1E3.  Only supported on the STK500 and STK600 programmer. sck period STK500 and STK600 programmer only: Set the SCK clock period to period microseconds. JTAG ICE only: Set the JTAG ICE bit clock period to period microseconds. Note that unlike STK500 settings, this setting will be reverted to its default value (approximately 1 microsecond) when the programming software signs off from the JTAG ICE. This parameter can also be used on the JTAG ICE mkII to specify the ISP clock period when operating the ICE in ISP mode. parms STK500 and STK600 programmer only: Display the current volt‐ age and master oscillator parameters. JTAG ICE only: Display the current target supply voltage and JTAG bit clock rate/period. ? help Give a short on-line summary of the available commands. quit Leave terminal mode and thus avrdude. Default Parallel port pin connections (these can be changed, see the -c option) ll. Pin number Function 2-5 Vcc (optional power supply to MCU) 7 /RESET (to MCU) 8 SCK (to MCU) 9 MOSI (to MCU) 10 MISO (from MCU) 18-25 GND debugWire limitations The debugWire protocol is Atmel's proprietary one-wire (plus ground) proto‐ col to allow an in-circuit emulation of the smaller AVR devices, using the ‘/RESET’ line. DebugWire mode is initiated by activating the ‘DWEN’ fuse, and then power-cycling the target. While this mode is mainly intended for debugging/emulation, it also offers limited programming capabilities. Effectively, the only memory areas that can be read or programmed in this mode are flash ROM and EEPROM. It is also possible to read out the signa‐ ture. All other memory areas cannot be accessed. There is no chip erase functionality in debugWire mode; instead, while reprogramming the flash ROM, each flash ROM page is erased right before updating it. This is done transparently by the JTAG ICE mkII (or AVR Dragon). The only way back from debugWire mode is to initiate a special sequence of commands to the JTAG ICE mkII (or AVR Dragon), so the debugWire mode will be temporarily dis‐ abled, and the target can be accessed using normal ISP programming. This sequence is automatically initiated by using the JTAG ICE mkII or AVR Dragon in ISP mode, when they detect that ISP mode cannot be entered. Programmers accepting extended parameters JTAG ICE mkII AVR Dragon When using the JTAG ICE mkII or AVR Dragon in JTAG mode, the following extended parameter is accepted: jtagchain=UB,UA,BB,BA Setup the JTAG scan chain for UB units before, UA units after, BB bits before, and BA bits after the target AVR, respectively. Each AVR unit within the chain shifts by 4 bits. Other JTAG units might require a different bit shift count. AVR910 devcode=VALUE Override the device code selection by using VALUE as the device code. The programmer is not queried for the list of supported device codes, and the specified VALUE is not verified but used directly within the ‘T’ command sent to the programmer. VALUE can be specified using the conventional number notation of the C programming language. no_blockmode Disables the default checking for block trans‐ fer capability. Use no_blockmode only if your AVR910 programmer creates errors during initial sequence. buspirate reset={cs,aux,aux2} The default setup assumes the BusPirate's CS output pin connected to the RESET pin on AVR side. It is however possible to have multiple AVRs connected to the same BP with MISO, MOSI and SCK lines common for all of them. In such a case one AVR should have its RESET connected to BusPirate's CS pin, second AVR's RESET con‐ nected to BusPirate's AUX pin and if your Bus‐ Pirate has an AUX2 pin (only available on Bus‐ Pirate version v1a with firmware 3.0 or newer) use that to activate RESET on the third AVR. It may be a good idea to decouple the BusPirate and the AVR's SPI buses from each other using a 3-state bus buffer. For example 74HC125 or 74HC244 are some good candidates with the latches driven by the appropriate reset pin (cs, aux or aux2). Otherwise the SPI traffic in one active circuit may interfere with program‐ ming the AVR in the other design. speed=<0..7> BusPirate to AVR SPI speed: 0 .. 30 kHz (default) 1 .. 125 kHz 2 .. 250 kHz 3 .. 1 MHz 4 .. 2 MHz 5 .. 2.6 MHz 6 .. 4 MHz 7 .. 8 MHz ascii Use ASCII mode even when the firmware supports BinMode (binary mode). BinMode is supported in firmware 2.7 and newer, older FW's either don't have BinMode or their BinMode is buggy. ASCII mode is slower and makes the above reset= and speed= parameters unavailable. Wiring When using the Wiring programmer type, the following optional extended parameter is accepted: snooze=<0..32767> After performing the port open phase, AVRDUDE will wait/snooze for snooze milliseconds before continuing to the protocol sync phase. No tog‐ gling of DTR/RTS is performed if snooze is greater than 0. FILES /dev/ppi0 default device to be used for communication with the programming hardware /etc/avrdude.conf programmer and parts configuration file ${HOME}/.avrduderc programmer and parts configuration file (per-user over‐ rides) ~/.inputrc Initialization file for the readline(3) library /usr/share/doc/avrdude-doc/avrdude.pdf Schematic of programming hardware DIAGNOSTICS avrdude: jtagmkII_setparm(): bad response to set parameter command: RSP_FAILED avrdude: jtagmkII_getsync(): ISP activation failed, trying debugWire avrdude: Target prepared for ISP, signed off. avrdude: Please restart avrdude without power-cycling the target. If the target AVR has been set up for debugWire mode (i. e. the DWEN fuse is programmed), normal ISP connection attempts will fail as the /RESET pin is not available. When using the JTAG ICE mkII in ISP mode, the message shown indicates that avrdude has guessed this condition, and tried to ini‐ tiate a debugWire reset to the target. When successful, this will leave the target AVR in a state where it can respond to normal ISP communication again (until the next power cycle). Typically, the same command is going to be retried again immediately afterwards, and will then succeed connect‐ ing to the target using normal ISP communication. SEE ALSO avr-objcopy(1), ppi(4), readline(3) The AVR microcontroller product description can be found at http://www.atmel.com/products/AVR/ AUTHORS Avrdude was written by Brian S. Dean<EMAIL_ADDRESS>This man page by Joerg Wunsch. BUGS Please report bugs via http://savannah.nongnu.org/bugs/?group=avrdude. The JTAG ICE programmers currently cannot write to the flash ROM one byte at a time. For that reason, updating the flash ROM from terminal mode does not work. Page-mode programming the EEPROM through JTAG (i.e. through an -U option) requires a prior chip erase. This is an inherent feature of the way JTAG EEPROM programming works. This also applies to the STK500 and STK600 in parallel programming mode. The USBasp and USBtinyISP drivers do not offer any option to distinguish multiple devices connected simultaneously, so effectively only a single device is supported. The avrftdi driver allows to select specific devices using any combination of vid,pid serial number (usbsn) vendor description (usbvendoror part description (usbproduct) as seen with lsusb or whatever tool used to view USB device information. Multiple devices can be on the bus at the same time. For the H parts, which have multiple MPSSE interfaces, the interface can also be selected. It defaults to interface 'A'. BSD October 8, 2016 BSD


This is a lecture course (3 x 50-min lectures per week), but students will be expected to keep up with course readings, homework, and to participate actively in class. I believe that the best way to learn mathematical concepts is by actively putting them to use. The majority of the grade will therefore be based on homework assignments, quizzes, two midterm and one final.
Participation in real-time virtual class sessions, and online on Canvas is strongly encouraged. Your questions (and answers) will help both you and your fellow students. Students are expected to attend each scheduled class and to participate fully in-class exercises and discussions. Please have your video (with whatever background you prefer to use) turned on, unless you have an unexpected difficulty or have arranged with me otherwise
Fall 2020, class will be held on Mondays, Wednesdays, and Fridays from 9:00–9:50 PM.
Before class, students will have read the assigned material from the textbook James Stewart, Calculus, Early Transcendentals, 8th Edition.
| Week | Sections | Topic | Notes |
|---|---|---|---|
| 0 | 1.1 - 1.2 | Syllabus, Review of Basic Algebra Concepts, Introduction to Functions. | NA |
| 1 | 1.2 – 1.5 | Review of Trigonometry and Graphing Trigonometric Functions (Option), Combining and Composition of Functions | Homework 1 due on Sunday, Aug. 16 |
| 2 | 2.1 - 2.2 | An Introduction to Limits, Properties of Limits. Techniques of Limit Computation. | Homework 2 due on Sunday, Aug. 23 |
| 3 | 2.2 | Properties of Limits, Techniques of Limit Computation | Homework 3 due on Sunday, Aug. 30 |
| 4 | 2.4 | Continuity of Functions | Homework 4 due on Sunday, Sep. 6 |
| 5 | 2.5 | Slope of a Curve, Velocity, and Rates of Change | Homework 5 due on Sunday, Sep. 13 |
| 6 | NA | Midterm Exam I | |
| 7 | 3.1, 3.2 | Introduction to the Derivative of a Function, Techniques of Differentiation | Homework 6 due on Sunday, Sep. 27 |
| 8 | 3.3, 3.4 | The Product and Quotient Rules for Derivatives of Functions, Applications of the Derivative | Homework 7 due on Sunday, Oct. 4 |
| 9 | 3.5, 3.6 | Finding Derivatives of Trigonometric Functions, Discussion of the Chain Rule for Derivatives of Functions | Homework 8 due on Sunday, Oct. 11 |
…
Moodle: We encourage all students to post questions to Moodle instead of sending email. This will allow others to benefit from your question, and will often result in a faster and more complete answer (since your fellow students may post answers before your instructors can). Please participate on Moodle, and endorse questions and answers as you see fit. Moodle activity will count toward the 5% participation grade!
Moodle site: Link
Cengage site: Link
No late work will be accepted. Final decisions in exceptional circumstances will be made by the professor.
The course final exam is given in compliance with TC final exam regulations and according to the TC Final Exam calendar.
…
The professor reserves to right to make changes to the syllabus, including project due dates and test dates (hurricanes happen…). These changes will be announced as early as possible.
This page was last updated on 09/22/2020.


The above is an example of a navigation bar that uses no images. Only html and css were used to achieve the look.
If you found this page from somewhere other than the blog post describing it's creation you can click here to find the post.


| Domain | Contact |
|---|
Learn how to build Reference Manual
This page explains how to write the documentation for your code.
Here is a template of a documented .h file, and of a .cc file. The resulting doxygen page is here.
This documentation should be written in a file [Package]/doc/[Package].doc. The simplest way of doing this is to go to the doc/ directory in your package and then run the script makePackageDoc, which is available in your PATH.
> cmsrel CMSSW_7_X_X > cd CMSSW_7_X_X/ > cmsenv > git cms-addpkg Documentation > generate_reference_manual wait... > firefox doc/html/index.html
Learn more about special doxygen commands


Server-Side WebSocket Support
WebSocket is a protocol that provides a bi-directional channel between browser and webserver usually run over an upgraded HTTP(S) connection. Data is exchanged in messages whereby a message can either be binary data or unicode text.
Akka HTTP provides a stream-based implementation of the WebSocket protocol that hides the low-level details of the underlying binary framing wire-protocol and provides a simple API to implement services using WebSocket.
Model
The basic unit of data exchange in the WebSocket protocol is a message. A message can either be binary message, i.e. a sequence of octets or a text message, i.e. a sequence of unicode code points.
In the data model the two kinds of messages, binary and text messages, are represented by the two classes BinaryMessage and TextMessage deriving from a common superclass Message. The superclass Message contains isText and isBinary methods to distinguish a message and asBinaryMessage and asTextMessage methods to cast a message.
The subclasses BinaryMessage and TextMessage contain methods to access the data. Take the API of TextMessage as an example (BinaryMessage is very similar with String replaced by ByteString):
abstract class TextMessage extends Message {
/**
* Returns a source of the text message data.
*/
def getStreamedText: Source[String, _]
/** Is this message a strict one? */
def isStrict: Boolean
/**
* Returns the strict message text if this message is strict, throws otherwise.
*/
def getStrictText: String
}
The data of a message is provided as a stream because WebSocket messages do not have a predefined size and could (in theory) be infinitely long. However, only one message can be open per direction of the WebSocket connection, so that many application level protocols will want to make use of the delineation into (small) messages to transport single application-level data units like "one event" or "one chat message".
Many messages are small enough to be sent or received in one go. As an opportunity for optimization, the model provides the notion of a "strict" message to represent cases where a whole message was received in one go. If TextMessage.isStrict returns true, the complete data is already available and can be accessed with TextMessage.getStrictText (analogously for BinaryMessage).
When receiving data from the network connection the WebSocket implementation tries to create a strict message whenever possible, i.e. when the complete data was received in one chunk. However, the actual chunking of messages over a network connection and through the various streaming abstraction layers is not deterministic from the perspective of the application. Therefore, application code must be able to handle both streamed and strict messages and not expect certain messages to be strict. (Particularly, note that tests against localhost will behave differently than tests against remote peers where data is received over a physical network connection.)
For sending data, you can use the static TextMessage.create(String) method to create a strict message if the complete message has already been assembled. Otherwise, use TextMessage.create(Source<String, ?>) to create a streaming message from an Akka Stream source.
Server API
The entrypoint for the WebSocket API is the synthetic UpgradeToWebSocket header which is added to a request if Akka HTTP encounters a WebSocket upgrade request.
The WebSocket specification mandates that details of the WebSocket connection are negotiated by placing special-purpose HTTP-headers into request and response of the HTTP upgrade. In Akka HTTP these HTTP-level details of the WebSocket handshake are hidden from the application and don't need to be managed manually.
Instead, the synthetic UpgradeToWebSocket represents a valid WebSocket upgrade request. An application can detect a WebSocket upgrade request by looking for the UpgradeToWebSocket header. It can choose to accept the upgrade and start a WebSocket connection by responding to that request with an HttpResponse generated by one of the UpgradeToWebSocket.handleMessagesWith methods. In its most general form this method expects two arguments: first, a handler Flow<Message, Message, ?> that will be used to handle WebSocket messages on this connection. Second, the application can optionally choose one of the proposed application-level sub-protocols by inspecting the values of UpgradeToWebSocket.getRequestedProtocols and pass the chosen protocol value to handleMessagesWith.
Handling Messages
A message handler is expected to be implemented as a Flow<Message, Message, ?>. For typical request-response scenarios this fits very well and such a Flow can be constructed from a simple function by using Flow.<Message>create().map or Flow.<Message>create().mapAsync.
There are other use-cases, e.g. in a server-push model, where a server message is sent spontaneously, or in a true bi-directional scenario where input and output aren't logically connected. Providing the handler as a Flow in these cases may not fit. An overload of UpgradeToWebSocket.handleMessagesWith is provided, instead, which allows to pass an output-generating Source<Message, ?> and an input-receiving Sink<Message, ?> independently.
Note that a handler is required to consume the data stream of each message to make place for new messages. Otherwise, subsequent messages may be stuck and message traffic in this direction will stall.
Example
Let's look at an example.
WebSocket requests come in like any other requests. In the example, requests to /greeter are expected to be WebSocket requests:
public static HttpResponse handleRequest(HttpRequest request) {
System.out.println("Handling request to " + request.getUri());
if (request.getUri().path().equals("/greeter")) {
final Flow<Message, Message, NotUsed> greeterFlow = greeter();
return WebSocket.handleWebSocketRequestWith(request, greeterFlow);
} else {
return HttpResponse.create().withStatus(404);
}
}
It uses a helper method akka.http.javadsl.model.ws.WebSocket.handleWebSocketRequestWith which can be used if only WebSocket requests are expected. The method looks for the UpgradeToWebSocket header and returns a response that will install the passed WebSocket handler if the header is found. If the request is no WebSocket request it will return a 400 Bad Request error response.
In the example, the passed handler expects text messages where each message is expected to contain (a person's) name and then responds with another text message that contains a greeting:
/**
* A handler that treats incoming messages as a name,
* and responds with a greeting to that name
*/
public static Flow<Message, Message, NotUsed> greeter() {
return
Flow.<Message>create()
.collect(new JavaPartialFunction<Message, Message>() {
@Override
public Message apply(Message msg, boolean isCheck) throws Exception {
if (isCheck) {
if (msg.isText()) {
return null;
} else {
throw noMatch();
}
} else {
return handleTextMessage(msg.asTextMessage());
}
}
});
}
public static TextMessage handleTextMessage(TextMessage msg) {
if (msg.isStrict()) // optimization that directly creates a simple response...
{
return TextMessage.create("Hello " + msg.getStrictText());
} else // ... this would suffice to handle all text messages in a streaming fashion
{
return TextMessage.create(Source.single("Hello ").concat(msg.getStreamedText()));
}
}
Note
Inactive WebSocket connections will be dropped according to the idle-timeout settings. In case you need to keep inactive connections alive, you can either tweak your idle-timeout or inject 'keep-alive' messages regularly.
Routing support
The routing DSL provides the handleWebSocketMessages directive to install a WebSocket handler if a request is a WebSocket request. Otherwise, the directive rejects the request.
Let's look at how the above example can be rewritten using the high-level routing DSL.
Instead of writing the request handler manually, the routing behavior of the app is defined by a route that uses the handleWebSocketRequests directive in place of the WebSocket.handleWebSocketRequestWith:
public Route createRoute() {
return
path("greeter", () ->
handleWebSocketMessages(greeter())
);
}
The handling code itself will be the same as with using the low-level API.
See the full routing example.
Contents


Generate HTML
Object Name:
How to Begin:
links for Play, Pause, Stop
start immediately (onLoad)
Loop?
no
yes
Path Number:
Speed (ms):


Angelina Jolie
One of the most succesful women in the world
Introduction
Angelina Jolie Pitt is an American actress, filmmaker, and humanitarian. She has received an Academy Award, two Screen Actors Guild Awards, and three Golden Globe Awards, and has been cited as Hollywood's highest-paid actress.
Angelina was born in Los Angeles, California, on June 4, 1975, Angelina Jolie starred in the HBO biopic Gia before earning an Academy Award for best supporting actress for Girl, Interrupted. Jolie has become one of Hollywood's top marquee names, having starred in movies like Wanted, Mr. and Mrs. Smith, Salt and Changeling, earning her first lead actress Oscar nod for the latter. Jolie later had a huge international blockbuster with Disney's Maleficent, in which she both starred and executive produced. She's also directed the films In the Land of Blood and Honey, Unbroken and By the Sea, which she co-starred with fellow actor and husband Brad Pitt.
Some of the awards and nominations recieved by angelina jolie
- Major film awards and nominations
- Academy awards
- British academy film awards
- Golden globe awards
- Primetime emmy awards
- Screen actors guild awards Other film awards and nominations
- Blockbuster entertainment awards
- Empire awards
- MTV movie awards
- NAACP image awards
- Nickeloeden kid's choice awards
- People's choice awards
- Golden Raspberry awards
- Satellite awards
- Saturn awards
- Teen choice awards
- Film critic awards
- Film festival awards
- Miscellaneous film awards Humanitarirain and other awards
- Academy awards
- Alliance of women film journalists EDA awards


MADLIB
scroll down and fill out all the blanks!
Verb
Adjective
Adjective
Noun
Adjective
Verb ending in "ed"
Noun
Verb ending in "ing"
- While anyone can
to themselves they were
,
the true test is admission to someone else.
- Faults are
where
is thin.
- The only real way to look
is not to be
so soon.
- Always try to do things in chronological
; it`s less
that way.
GO MAD!


Dear Z-Cash foundation and community.Guarda is doing Z-Cash grant SPV library and Wallet Android project #ZcashFoundation/GrantProposals-2017Q4#16. We'd like to have the communications in a...
@jl777c
checking further to make sure it is what it is that we want
Dear Z-Cash foundation and community.Guarda is doing Z-Cash grant SPV library and Wallet Android project #ZcashFoundation/GrantProposals-2017Q4#16. We'd like to have the communications in a...
someone that did a normal SPV wallet especially sapling taddr, if the wallet is good of course
maybe we should test it to make sure it does headers only sync and works stable
FabØ30-Jun-19 04:29 PM
thanks @grewalsatinder copy that
grewalsatinder30-Jun-19 04:30 PM
yes, I know @ca333 knows mobile Java stuff. I guess he can help with it.
jl777c30-Jun-19 04:37 PM
not sure Java is a tech stack ca333 will like
1
but to get a quick proof of concept, maybe it is ok
grewalsatinder30-Jun-19 04:41 PM
true, I'd even think some Java and C/C++ dev who can port the changes from this Java logic to breadwallet-core, just in case the logic porting is the thing.
I know it looks more work, but just had a quick thought(edited)
So far I couldn't find any other Zcash SPV project other than this library I found, and that guy I mentioned is the main dev for it.
jl777c30-Jun-19 04:44 PM
i like the breadwallet core as it is in C
so maybe we can approach breadwallet dev too and it is much better to become part of official breadwallet than guarda wallet
grewalsatinder30-Jun-19 04:45 PM
agree, I will leave the contacting to @FabØ and @Tierno
FabØ30-Jun-19 04:46 PM
perfect will be done
jl777c30-Jun-19 04:46 PM
so advantage of guarda is already the zcash sapling is supported, but downside is that it is in java and guarda wallet is much smaller installed base than breadwallet
breadwallet is much larger installed base and in C, but no zcash sapling support
grewalsatinder30-Jun-19 04:47 PM
yes, and pretty sure BreadWallet team will love to have Sapling support added in their code, and now they can also have a look at the Zcash-SPV codebase for required logic to implement
FabØ30-Jun-19 04:47 PM
humm seems that Guarda has an hedge no?(edited)
grewalsatinder30-Jun-19 04:47 PM
and if they really go with that, even on their own, that'd be kinda half requirement done.
FabØ30-Jun-19 04:49 PM
yep can see that, seems like the distance and difficulties are higher with breadwallet compare to guarda no?
also probably less ego on the guarda wallet
jl777c30-Jun-19 04:50 PM
a bit, but supporting zcash family must be an attractive thing for breadwallet for expanding market and it would give you a good reason to get involved with zcash foundation
FabØ30-Jun-19 04:50 PM
seems like we will get an easier time negociating
a bit, but supporting zcash family must be an attractive thing for breadwallet for expanding market and it would give you a good reason to get involved with zcash foundation
are we doing the gemini thing contacting both?(edited)
jl777c30-Jun-19 04:52 PM
i leave to you, how best you see this
grewalsatinder30-Jun-19 04:53 PM
@jl777c thank for that innovative post on nSPV tech today. It's been a best day start for me after so long!
FabØ30-Jun-19 04:53 PM
ok thanks JL
will do
jl777c30-Jun-19 07:13 PM
found a dev that can start in about a month or so on the breadwallet work, so maybe we just need to convince them to help us in the effort and to accept a PR once it is working so it gets added to their standard breadwallet. having a secondary effort on the java path would make sense as it is better to have two solutions ready to go than rely on one
5
5
5
5
4
3
grewalsatinder30-Jun-19 07:18 PM
great progress!
jl777c30-Jun-19 07:20 PM
so pursue talks with breadwallet, we need the path paved for them to accept the PR when we get the nSPV working, along with some advice along the way (if we need it). and on the java side, maybe we can see if the java dev is interested in adding nSPV support
1
Slyris01-Jul-19 08:51 AM
I can totally translate the Java code in modern c++ if someone is interested(edited)
jl777c01-Jul-19 08:52 AM
seems best to add the nSPV functionality to the java code, in java
Slyris01-Jul-19 08:53 AM
You want to fork the project ?
Oh ok i read the whole conversation, very interesting, I need to dive into the code, and by the way nice article on nSPV very interesting
Zcash Grant SPV library (Sapling). Contribute to guardaco/zcash-SPV development by creating an account on GitHub.
and change to a per-utxo validation
that can then invoke a series of p2p queries to find the notarizations bracketing the utxo, getting the headers between the first and last notarization, then validating that they link backwards properly. once that is done, a standard merkle proof for the utxo for whichever block it was in. at that point we know the utxo is "in" the merkleroot, which is in the block, which is in the segment of the blockchain that is notarized
separately to this logic, we need a way to know what utxo an address has, so there will be some extra p2p messages supported that allow to query for notarizations, addressutxos/txids, txproofs
nSPV avoids having to do the headers sync, which for bitcoin is only 80 bytes per block, but for equihash it is 2kb, so a much bigger issue for equihash coins. even for 80 byte headers, one million blocks is 80mb of data that is needed. nSPV for 80 byte headers would be less than 1kb of data plus txproof to validate a utxo
Slyris01-Jul-19 09:02 AM
It's really interesting, I'm reading the code of the spv library
jl777c01-Jul-19 09:02 AM
so depending on what you compare to 100x, 1000x or 10000x less data
Slyris01-Jul-19 09:02 AM
Yes, if I understand your article is an huge improvement
And disruptive approach
jl777c01-Jul-19 09:03 AM
basically achieves the same goals of flyclient without any complex math, not that there is anything wrong with complex math and fancy algo. just not something you can code up in a relatively small amount of time. with nSPV, the code changes would be minimal
Slyris01-Jul-19 09:04 AM
Did you plan to write a paper ? I mean a PDF with full details ?
jl777c01-Jul-19 09:04 AM
it seems simple enough. does it need a paper? i think just need to define the p2p messages needed to support the nSPV clients
getnotarization, getaddressutxos, gettxproof
basically mapping existing rpc calls to p2p message
Slyris01-Jul-19 09:05 AM
It's simple, yes but it's very interesting
jl777c01-Jul-19 09:05 AM
simple is not a pejorative, it is in fact a very good attribute. much less chance for bugs!
Slyris01-Jul-19 09:05 AM
We absolutely need this.
jl777c01-Jul-19 09:06 AM
yes, i estimate each 1000 full nodes can support a million nSPV clients
maybe even more for special full nodes configured to handle a lot of client connections
Slyris01-Jul-19 09:07 AM
We can probably benchmark it once we have something ready
jl777c01-Jul-19 09:07 AM
yes. and i prefer to document things after it is working
Slyris01-Jul-19 09:07 AM
I'm at work now, I will look deeper when I'm at home
jl777c01-Jul-19 09:08 AM
the nSPV blogpost describes enough to guide how to do it. if you are able to do this, i am sure we can gather up a bounty for it and i can help define the specifcs that are needed, and probably just code up the required daemon side code. we can launch a smartchain just to test this and get it working
Slyris01-Jul-19 09:12 AM
I will play with the existing spv client to understand how it's work first, and then I will try to make a playground and playing with it, once I learn how its work I will of course try to implement what you described in your blog post
Thank's for the information and the repository
jl777c01-Jul-19 09:16 AM
you will need to connect to a coin network with the nSPV p2p messages, let me know a few days before you are ready to test and i can have the daemon side ready
Slyris01-Jul-19 09:17 AM
Ok firstly I'm reading and I will look deeper this evening.
jl777c01-Jul-19 09:18 AM
thanks!
Slyris01-Jul-19 09:44 AM
If I have any question, I will let you know in ask-jl777c channel
jl777c01-Jul-19 10:02 AM
ok
jl777c02-Jul-19 06:49 PM
@Slyris i made a stubbed out, but functional -nSPV=1 mode in my nSPV branch. you can see where the client side is headed in the komodo_nSPV.h file
Slyris02-Jul-19 06:58 PM
@jl777c Thank's i will check it
@jl777c Can you explain me :
uint8_t nSolution[1344]; //! <-
I dont understand this array size(edited)
jl777c02-Jul-19 07:06 PM
size of equihash solution
Slyris02-Jul-19 07:06 PM
ok i get it
Is it for compilation speed that you use C functionnality instead of C++ ? (such as time functionnality) ?
jl777c02-Jul-19 07:11 PM
I like to fully understand what the code is doing. with C, I can do this. not so with C++
Slyris02-Jul-19 07:11 PM
Ok !
jl777c02-Jul-19 07:11 PM
also, it is very likely we will need to port this to pure C
and so i want to minimize c++ usage as much as possible
Slyris02-Jul-19 07:11 PM
There is a line where you cast the return of time to uint32_t and another line where you didn't
but i think is not important
I understand you, if you can do it without using any std library, it's will improve your compilation time


Networking using a macvlan network
読む時間の目安: 5 分This series of tutorials deals with networking standalone containers which
connect to macvlan
networks. In this type of network, the Docker host accepts
requests for multiple MAC addresses at its IP address, and routes those requests
to the appropriate container. For other networking topics, see the
overview.
Goal
The goal of these tutorials is to set up a bridged macvlan
network and attach
a container to it, then set up an 802.1q trunked macvlan
network and attach a
container to it.
Prerequisites
-
Most cloud providers block
macvlan
networking. You may need physical access to your networking equipment. -
The
macvlan
networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server. -
You need at least version 3.9 of the Linux kernel, and version 4.0 or higher is recommended.
-
The examples assume your ethernet interface is
eth0
. If your device has a different name, use that instead.
Bridge example
In the simple bridge example, your traffic flows through eth0
and Docker
routes traffic to your container using its MAC address. To network devices
on your network, your container appears to be physically attached to the network.
-
Create a
macvlan
network calledmy-macvlan-net
. Modify thesubnet
,gateway
, andparent
values to values that make sense in your environment.$ docker network create -d macvlan \ --subnet=<IP_ADDRESS>/24 \ --gateway=<IP_ADDRESS> \ -o parent=eth0 \ my-macvlan-net
You can use
docker network ls
anddocker network inspect my-macvlan-net
commands to verify that the network exists and is amacvlan
network. -
Start an
alpine
container and attach it to themy-macvlan-net
network. The-dit
flags start the container in the background but allow you to attach to it. The--rm
flag means the container is removed when it is stopped.$ docker run --rm -dit \ --network my-macvlan-net \ --name my-macvlan-alpine \ alpine:latest \ ash
-
Inspect the
my-macvlan-alpine
container and notice theMacAddress
key within theNetworks
key:$ docker container inspect my-macvlan-alpine ...truncated... "Networks": { "my-macvlan-net": { "IPAMConfig": null, "Links": null, "Aliases": [ "bec64291cd4c" ], "NetworkID": "5e3ec79625d388dbcc03dcf4a6dc4548644eb99d58864cf8eee2252dcfc0cc9f", "EndpointID": "8caf93c862b22f379b60515975acf96f7b54b7cf0ba0fb4a33cf18ae9e5c1d89", "Gateway": "<IP_ADDRESS>", "IPAddress": "<IP_ADDRESS>", "IPPrefixLen": 24, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:10:56:02", "DriverOpts": null } } ...truncated
-
Check out how the container sees its own network interfaces by running a couple of
docker exec
commands.$ docker exec my-macvlan-alpine ip addr show eth0 9: eth0@tunl0: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP link/ether 02:42:ac:10:56:02 brd ff:ff:ff:ff:ff:ff inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global eth0 valid_lft forever preferred_lft forever
$ docker exec my-macvlan-alpine ip route default via <IP_ADDRESS> dev eth0 <IP_ADDRESS>/24 dev eth0 scope link src <IP_ADDRESS>
-
Stop the container (Docker removes it because of the
--rm
flag), and remove the network.$ docker container stop my-macvlan-alpine $ docker network rm my-macvlan-net
802.1q trunked bridge example
In the 802.1q trunked bridge example, your traffic flows through a sub-interface
of eth0
(called eth0.10
) and Docker routes traffic to your container using
its MAC address. To network devices on your network, your container appears to
be physically attached to the network.
-
Create a
macvlan
network calledmy-8021q-macvlan-net
. Modify thesubnet
,gateway
, andparent
values to values that make sense in your environment.$ docker network create -d macvlan \ --subnet=<IP_ADDRESS>/24 \ --gateway=<IP_ADDRESS> \ -o parent=eth0.10 \ my-8021q-macvlan-net
You can use
docker network ls
anddocker network inspect my-8021q-macvlan-net
commands to verify that the network exists, is amacvlan
network, and has parenteth0.10
. You can useip addr show
on the Docker host to verify that the interfaceeth0.10
exists and has a separate IP address -
Start an
alpine
container and attach it to themy-8021q-macvlan-net
network. The-dit
flags start the container in the background but allow you to attach to it. The--rm
flag means the container is removed when it is stopped.$ docker run --rm -itd \ --network my-8021q-macvlan-net \ --name my-second-macvlan-alpine \ alpine:latest \ ash
-
Inspect the
my-second-macvlan-alpine
container and notice theMacAddress
key within theNetworks
key:$ docker container inspect my-second-macvlan-alpine ...truncated... "Networks": { "my-8021q-macvlan-net": { "IPAMConfig": null, "Links": null, "Aliases": [ "12f5c3c9ba5c" ], "NetworkID": "c6203997842e654dd5086abb1133b7e6df627784fec063afcbee5893b2bb64db", "EndpointID": "aa08d9aa2353c68e8d2ae0bf0e11ed426ea31ed0dd71c868d22ed0dcf9fc8ae6", "Gateway": "<IP_ADDRESS>", "IPAddress": "<IP_ADDRESS>", "IPPrefixLen": 24, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:10:56:02", "DriverOpts": null } } ...truncated
-
Check out how the container sees its own network interfaces by running a couple of
docker exec
commands.$ docker exec my-second-macvlan-alpine ip addr show eth0 11: eth0@if10: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP link/ether 02:42:ac:10:56:02 brd ff:ff:ff:ff:ff:ff inet <IP_ADDRESS>/24 brd <IP_ADDRESS> scope global eth0 valid_lft forever preferred_lft forever
$ docker exec my-second-macvlan-alpine ip route default via <IP_ADDRESS> dev eth0 <IP_ADDRESS>/24 dev eth0 scope link src <IP_ADDRESS>
-
Stop the container (Docker removes it because of the
--rm
flag), and remove the network.$ docker container stop my-second-macvlan-alpine $ docker network rm my-8021q-macvlan-net
Other networking tutorials
Now that you have completed the networking tutorial for macvlan
networks,
you might want to run through these other networking tutorials:


Calendar
Assignments
Attendance
Downloading...
Login to view assignments and attendance
Use the button in the bottom right of the Grades tab to login. (
then
then
)
{{ timeslot.name }}
{{ assignment.name }}
{{ assignment.subject }} ({{ assignment.datedue }})
{{ month.name }}
M
T
W
T
F
S
= 0" color="{{ getColor(month.days[idx]) }}"
(click)="showDayInfo(month.days[idx])">{{ (month.days[idx].day + "").padStart(2, "0") }}


Description " Camera OWL Ontology Author: Roger L. Costello Acknowlegements: Many thanks to the following people for their invaluable input: Richard McCullough, Yuzhong Qu, Leo Sauermann, Brian McBride and Jim Farrugia. Modified as a Jena example by Ian Dickinson "
Ontology Format is : RDF/XML
Profil The Ontology is in OWL 2 DL
| Imports : |
|---|
| found no import |
| number | |
|---|---|
| Total Number of Classes | 13 |
| Total Number of Datatype Properties | 8 |
| Total Number of Object Properties | 7 |
| Total Number of Annotations Properties | 1 |
| Total Number of Individuals | 2 |


Nodes of different colours represent the following:
Solid arrows point from a file to a file which depends upon it. A file
is dependent upon another if the latter must be compiled before the former
can be.
Nodes of different colours represent the following:
Solid arrows point from a file to a file which depends upon it. A file
is dependent upon another if the latter must be compiled before the former
can be.
module m_parameters!! Module contains user defined parameters for consistent useuse variableKindimplicit nonereal(r64),parameter::inf=huge(0.d0)real(r64),parameter::NaN=transfer((/Z'00000000',Z'7FF80000'/),1.0_r64)real(r64),parameter::pi=dacos(-1.d0)end module


| DOSE: T+ 0:00 |
23 mg |
rectal |
2C-I |
(capsule) |
| T+ 2:00 |
27 mg |
rectal |
2C-T-2 |
(capsule) |
This was the craziest trip I have ever had...way more intense than a BIG toke of DMT.
I took the 2CI first @ 9pm anally in a gel cap. I was a normally pleasurable experince with mild sensual feelings combined with acid-like visuals that set in within about 20 min.
I was at a friends house party, so the environment was safe and comfortable for a new experience.
At 11pm I inserted the 2CT2 gel cap into my anus. Basically 10 minutes after I did it, the entire world as I knew it began to mesh togther into a strange tunnel.
I had the strangest auditory hallucinations, as if someone was speaking on a PA system, and the laughter around me was in echoed unison. Every sound had a lazer like quality to it, and the music beats were so deep and peircing. It was defintely sensory overload.
It was impossible to move, to say anything, to comprehend what people were saying to me ... I was in a different dimension. I managed to get myself to the bathroom, which was an adventure of its own, and the bathroom wasn't even 10 feet away. I looked insane on the bathrroom mirror..seriuosly like a cartoon caracter, something fantastical from Shrek or the cat in the hat...THESE were visuals...Everything was strobing, with tracers, it was impossible to focus on anything. There are so few words to describe what was happening in my mind at the time...
The time was soo intense that by the time I got out of the bathroom I started thinking how it was NEVER going to end, and how I was going to go to work on monday etc...this was BAD...I got in a total rut, and it was aweful. At this point the only thing that could 'save' me was going home...that was hard since I was convinced I was going to die and needed to be in a hospital....well anyways I got home in the end.
This was a REALLY intense trip ... not recommended for newbies.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


{% include "partials/header.html" %} Home (current) Stores Products Logs Settings {% if needsRestart %} Restart Restart Required In order to apply changes on your tasks, you must restart. {% endif %} {{url}} Date Added {{dateAdded}} Last Item Count {{lastItemCount}} Last Item Added {{lastItemAdded}} Task Settings Poll Time Proxies (Optional) {{proxies}} Keywords (Optional) {{keywords}} Save Changes Delete Store {% include "partials/footer.html" %}


[This review is posted here because it *is* a review of the film. While it does cover a lot of the controversy regarding THE LAST TEMPTATION OF CHRIST, it does it in the context of the film itself. Opposing reviews are, of course, welcome (Siskel and Ebert both panned the film, for example), but they must be reviews and based on the author's opinion of the film after viewing it him/herself. -Moderator]
THE LAST TEMPTATION OF CHRIST A film review by Keith Doyle Copyright 1988 Keith Doyle
Well, due to all the controversy surrounding THE LAST TEMPTATION OF CHRIST, I went to see just what the furor was about on opening Friday night.
I arrived at the CinePlex theatres in Century City a little after 8:00 hoping that perhaps the 9:00 show wasn't yet sold out. Only show for which they still had tickets: 12:00 midnight. Okay, I didn't have much else to do, so I bought a ticket for midnight.
In the meantime I wandered around checking out the protest activity. It appeared that at any given time there was about 1/3 part protesters and 2/3 moviegoers outside the theatre, so there was no shortage of activity, hundreds of people milling around, etc.
During the entire time waiting around moviegoers were subjected to quite a bit of entertainment in the form of lots of imaginative protest signs, "Holy Word, not Hollywood," "The Greatest Story Ever Distorted," "Don't Rewrite His-Story," etc. About half were preprinted and the other half were homemade. Included were a very few protesters with signs for the other side, all handmade. I thanked a couple of those for getting out and standing up for Marty's rights to make such a movie.
There was one identifiable organized group mixed in with the protesters ranks, the TFP, who seemed to be made up of a very few well-dressed gents with big red sashes and perhaps a few helpers, and had most of the area directly in front of the theatre complex staked out, where their audience was not so much the waiting theatergoers, but the automobile traffic out front. They had a great color flyer entitled "Blasphemy!" and a coupon to send away for more flyers, or just send money to their cause. They didn't stick it out as long as the more generic protesters; they were gone by the time I got in line for the last show, about 10:45. Their statement of "who they are" on the back of their flyer was kind of interesting:
"The American Society for the Defense of Tradition, Family, and Property (TFP) is a civic and cultural organization. Its doctrinal inspiration is entirely Catholic, and its goal is to preserve our country and Christian civilization from the ideological offensive (revolutionary psychological warfare) promoted incessantly inside all the countries of the West by insidious Communist propaganda."
The bulk of the protesters were there until we went in, (which ended up being close to 1:00 due to protest-induced delays) and no one was around at 4:00 when we got out.
The newsmedia was there for a couple of hours, but didn't seem to be getting much of any use out of the scene, any time the lights went on the protesters immediately crowded around the newscaster and started chanting about Jesus, etc. to the point of drowning out any comments by the newscaster herself. There were lots of "Gimme a J" kind of chants and songs and the like. Turned it into a real E-Ticket ride and kept my long wait for the movie considerably less boring.
At any rate, after the wait, I had no idea what to expect about the movie, and after seeing it, I have to say:
The protesters *completely* missed the boat on this one. I feel if they saw the movie and understood the point that is being made, they'd love this movie. Unfortunately, it's been ruined for them, as I doubt that even if they did see it, their eyes could un-cloud long enough to get the point.
This movie will clearly mean far more to Christians than non-Christians, due to the message it presents. The basis of this movie is that Christ is the Son of God, and it is a basic underlying assumption throughout the entire movie that is not called into question in any way.
This movie asks fundamental questions some of which are the more difficult ones to answer (in my opinion) and answers them in a most effective and Christian manner.

The technique used to answer this question is basically to propose a scenario whereby Jesus may have had the "choice" to rather than be crucified *for* man, live his life as a normal human man. In this movie, the alternate choice is explored via a dream sequence that occurs while he's on the cross, a dream apparently under control of Satan, where he imagines himself being removed off the cross by an angel, followed by living out his life as a normal man, getting married, having children, etc. Satan tells him that all women are the same, that when Mary Magdalene dies, he can take up with another women and another etc., and it is as if he is married to them all. This Jesus in his dream, falls for Satans line hook like and sinker thinking it is an actual message from God via the angel, until at the end on his deathbed Judas points Satan out for who he/she really is (appeared as a little girl a la Fellini). Ultimately, we come to find out that as the Son of God his living a normal life would be meaningless, selfish, and a complete waste. After all, how could a Son of God just live a normal life? It would only make sense if it was special in some way, and having him die for us was that way. So in the movie, he wakes out of the dream, and realizes his true destiny.
Now in order to present a scenario where Christ has the "choice" to live as a man and be plausible that he might make that wrong choice (so we can evaluate the potential consequences along with the Jesus in this movie) Scorsese/Kazantzakis has decided to make him unsure of his true destiny, and doubts himself. How else could the scenario of him following plan B instead of plan A be plausible?
In a sense this movie explores a "what if" scenario in a parallel universe.
Other points:
1. At the very beginning of this movie, there is a disclaimer that the Jesus depicted in the film is not based on the Jesus of the Gospels, but on a novel.
2. The movie is very modern and stylistic, virtually surreal. A great soundtrack by Peter Gabriel.
3. The slight amount of nudity is hardly what I would call "gratuitous", anyone who is titillated by this movie would have to be exceedingly repressed (hmmm...). I think a statement about it found in TIME magazine just about says it: "The sex scene (in which Mary Magdalene entertains some customers) exposes a strong womans degradation more than it does her flesh." Scorsese is using modern film techniques, THE LAST TEMPTATION OF CHRIST is not Disney-watered-down by any means.
4. The first 15 minutes could easily be misinterpreted. Until you get to the end of the movie and understand what the point of it all is, it isn't hard to see how many people could misinterpret the apparently "wimpy" Jesus depicted here, and the reasons why he would even visit Mary Magdalene's "brothel." But after seeing the entire movie and I look back on it, it is necessary to the plot to establish the fact that Jesus and Mary Magdalene have the potential to be "mates" and establishes effectively what relationship they do have during the course of the movie.
5. The protesters conjured up more "blasphemous" concepts via their protestations than the movie ever did. In the sideshow atmosphere they created, I began to envision the movie deserved carnival barkers out front screaming "Step right up, inside, Jesus gets the girl!," "Sex with Jesus, right this way, just $6.50," etc. The movie wasn't like that at all. If you don't take Jesus being the Son of God for granted, while you can certainly enjoy the movie you will quickly realize that the movie remains completely within the context of that premise. It is a movie for believers. I expect that the Atheist organization that was also there passing out fliers to the attendees will be a little disappointed when they actually see the movie and find that it doesn't live up to the protester's promises.
I think that this movie will appeal to *thinking* Christians, and they will find it one of the best movies about some of the concepts behind Christ ever made. *Nonthinking* (i.e. programmed) Christians will probably never even see it, or if they do, won't be able to separate all of the negative things they've imagined is going on in this movie from what is actually happening on the screen. I find it pretty sad, perhaps just another item on the list of "monuments to the stupidity of a certain subset of Fundamentalist Christians".
Then again, such Christians do get uncomfortable any time anyone has anything at all to say about Christ that isn't under their control. Remember that the Catholic church screens a lot of reading material, etc., because it is over the heads of the flock's ability to keep in context and not misinterpret. I could see how this movie would definitely be in that category, you have to be a thinking person to add up 2+2 in this movie to get the point. The protesters keep coming up with 5. Odds have it that Scorsese aimed a little over the heads of much of the audience, and many people won't understand the point.
Further, perhaps certain Fundamentalist protest groups are actually out looking for something to find fault with (especially in the media) and any "liberal media" product that wasn't strictly overseed by all-knowing church members that makes statements about Jesus, good or bad, is a prime target I'm sure. The fact that they actually agree with the message does not speak well for their powers of comprehension.
I think any Christian who has formed an opinion of this movie based on all the misinformation floating around, doesn't know what he's talking about when he makes comments. Unfortunately, many of these who may actually see the movie will be over prepared to "tune out" any potential blasphemy, go to it with blinders on, and exit with a "see I told you so, I knew what to look for, and I was right it was there" because they have been force-fed what to read in between the lines.
The rest of us should go see it, Christian or not, and with an open mind, as I think you will leave with more insight into the life of *a* Son of God than the protesters will ever have.
Keith Doyle # {ucbvax,decvax}!trwrb!cadovax!keithd Contel Business Systems<PHONE_NUMBER>
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


| Equipment Serial Number | {{ equipment.equipment_serial_number }} | Equipment Name | {{ equipment.equipment_name }} | Equipment Model Name | {{ equipment.equipment_model.model_name }} | Equipment Owner | {{ equipment.equipment_owner.person_first_name }} {{ equipment.equipment_owner.person_last_name }} | Purchase Date | {{ equipment.equipment_purchase_date }} |
|---|---|---|---|---|---|---|---|---|---|
| Equipment Code | {{ equipment.equipment_code }} | Equipment Type | {{ equipment.equipment_type }} | Equipment Manufacturer | {{ equipment.equipment_model.model_manufacturer.organization_name }} | Equipment Description | {{ equipment.equipment_description }} | Link | {{ equipment.equipment_documentation_link }} |


# -*- coding: utf-8 -*-
""" Base class for any multi-players policy.
- If rewards are not in [0, 1], be sure to give the lower value and the amplitude. Eg, if rewards are in [-3, 3], lower = -3, amplitude = 6.
"""
from __future__ import division, print_function # Python 2 compatibility
__author__ = "Lilian Besson"
__version__ = "0.3"
[docs]class BaseMPPolicy(object):
""" Base class for any multi-players policy."""
[docs] def __init__(self):
"""New policy"""
pass
[docs] def __str__(self):
return self.__class__.__name__
# --- Proxy methods
[docs] def _startGame_one(self, playerId):
"""Forward the call to self._players[playerId]."""
return self._players[playerId].startGame()
[docs] def _getReward_one(self, playerId, arm, reward):
"""Forward the call to self._players[playerId]."""
return self._players[playerId].getReward(arm, reward)
[docs] def _choice_one(self, playerId):
"""Forward the call to self._players[playerId]."""
return self._players[playerId].choice()
[docs] def _choiceWithRank_one(self, playerId, rank=1):
"""Forward the call to self._players[playerId]."""
return self._players[playerId].choiceWithRank(rank)
[docs] def _choiceFromSubSet_one(self, playerId, availableArms='all'):
"""Forward the call to self._players[playerId]."""
return self._players[playerId].choiceFromSubSet(availableArms)
[docs] def _choiceMultiple_one(self, playerId, nb=1):
"""Forward the call to self._players[playerId]."""
return self._players[playerId].choiceMultiple(nb)
[docs] def _choiceIMP_one(self, playerId, nb=1):
"""Forward the call to self._players[playerId]."""
return self._players[playerId].choiceIMP(nb)
[docs] def _estimatedOrder_one(self, playerId):
"""Forward the call to self._players[playerId]."""
return self._players[playerId].estimatedOrder()
[docs] def _estimatedBestArms_one(self, playerId, M=1):
"""Forward the call to self._players[playerId]."""
return self._players[playerId].estimatedBestArms(M=M)


Alright.  This was my first time using morning glories. The times are an estimate.
SATURDAY
4:00- Had friends pick me up.
4:30- Went to local flower shop and got 7 packs of heavenly blue morning glories.
5:00- Got back to friends house and got 3 peanut better and jelly sandwiches, a bowl, a plate, 2 bottle of water, and a can of coke. I began to count how many seeds to a packet. There were 50 in each packet and I decided to take 100 for a first time use. I poured half a bottle of water into bowl and dumped 2 packets of seeds into water. Stirred for about 15 minutes then took seeds out. I put the seeds into the middle of the sandwiches and began to eat the sandwiches, chewing the seeds in my mouth until it wasn't crunchy anymore. Those seeds took a toll on my teeth btw.
5:30- Finished eating sandwichs and drank the can of coke. I had been warned about nausea and to my surprise I did not experience any nausea. I put in some music and turned off the lights. The rest is sort of a blur and I'll say as much as I can remember. My friends got the great idea of taking me to a mall when the seeds began to take effect. We drove to the mall but it was closed.  I was amazed at how well the seeds worked. Peoples faces morphed around and the floor was vibrating. I could actually hear people talking through my skin. I think this was the climax of the journey and didn't last long. I stumbled around the store for about half an hour, then I believe we got kicked out.
7:00- My friends told me we were going to a party. When we arrived at this 'party' the topic of jokes was that I was tripping on seeds. They didn't believe the seeds were working so everyone was making fun of me. As one of my friends came up to me and said 'Haha, how can u trip on flowers! What a baby!'. I remembered the 5 packets of seeds in my pocket and I said. 'Say, if they are just flowers than perhaps you would care to try some?   I believe he ate something like 150 seeds?
8:00- The seeds began to work on my little friend here. Everyone was now laughing at him because he was stumbling around.  He also told me he was on anti-depressants and the doc told him not to take anything with them. I felt bad for him as he looked like he was going to kill himself. The morning glories must have reversed the anti-depressants or something because he looked horrible.
9:00- The rest became even more blurry as I had drank a little. I remember going to a pizza place and eating pizza. I remember going to a skate park. Going through a blizzard. And going back to the store again. I remember my friend got over it and he was acting normal again. I think I finally passed out back at my friends house.
 I was sleeping on the floor of my friends house. I had a horrible headache but besides that I felt very great. I was glad I made it through the night and had a wonderful trip. My internal organs felt fine. What a wonderful weekend.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Example The Coin Dapp with smart contract code from https://www.ethereum.org/token
Initialized Web3
object for easy interfacing of Ethereum JavaScript API.
Instantiated (deployed) MyToken is available as MyToken
.
If a .sol
file contains more than one contracts, individual instantiated contracts are also available. See console.log(tokenRecipient)
.
View console.log()
for more information of each of the above components.
You can find more information on this sample dapp at its GitHub repository and @uzyn.


Stores information for a particular workout session. Automatically creates a corresponding Event with the build_workout_event and update_workout_event hooks.
Returns a tuple containing the series of times and points per workout over the last month for charting.
# File app/models/workout_record.rb, line 41 def self.get_series_for_chart(user_id) records = User.find_by_id(user_id).workout_records records = records.where( :date_performed => (Date.today - 30.days)..Date.today ).ordered points, times = [], [] records.each do |r| # Convert date_performed to milliseconds since epoch for JS charting performed_date = r.date_performed.to_time.tv_sec * 1000 points << [performed_date, r.points] if r.points times << [performed_date, r.time[:insecs]] if r.time end return points, times end
—– CLASS METHODS —–
# File app/models/workout_record.rb, line 35 def self.latest(user_id) WorkoutRecord.where(:user_id => user_id).ordered.first end
—– CUSTOM VALIDATION METHODS —– Ensures that at least one workout metrics was provided.
# File app/models/workout_record.rb, line 77 def at_least_one_metric unless(self.points || self.time || self.rounds) self.errors[:base] << 'At least one metric must be entered' end end
Returns a hash containing :hours, :minutes, and :seconds representing the time, and also :string, which contains a string representation of the time, and :insecs, which contains the time in seconds.
# File app/models/workout_record.rb, line 63 def time h = self[:time] / 3600 m = (self[:time] / 60) % 60 s = (self[:time] % 60) str = "#{h}h:#{m}m:#{s}s" if self[:time] != 0 {:insecs => self[:time], :hours => h.to_i, :minutes => m, :seconds => s, :string => str} else nil end end
—– INSTANCE METHODS —– Takes a hash of hours, minutes, and seconds and converts to seconds.
# File app/models/workout_record.rb, line 56 def time=(val) self[:time] = (val[:hours].to_i * 3600) + (val[:minutes].to_i * 60) + (val[:seconds].to_i) end


Angie's List
Connecting homeowners in need with quality service providers
Angie's List helps homeowners find quality Pros in their area based on millions of verified reviews written by other members. They also help Pros manage their reputation online and generate high quality leads from home owners.
Designing a better sign up process for Service Providers
Project Overview
The Challenge
Service Providers who wanted to list their business on Angie’s List had to overcome unnecessary barriers including a non-responsive sign up flow that many pros struggled to complete, and a 2-6 day waiting period to access their account online.
My Role
I was the interaction design and UX lead on the project, which meant that I kept my team in the loop and managed project deadlines while also being responsible for delivering wireframes and prototypes.
The Team
The design team included myself, a UX researcher, and a visual designer. The technical challenge of the project required 3 dedicated scrum teams as well as regular checkins with dev ops, the integrity team (description), data analytics, and software architecture.
the legacy sign up experience
Understanding the current state
The first step in any redesign is to understand the current state, and where it succeeds or fails. A quick review of our legacy design and historical user research revealed some big experience gaps. Most notably, the old design required all Pros to search for their profile, assuming that the majority would already be listed on Angie's List through other methods, but was that true?
Legacy Design
Assumed Pro is already listed
Created lots of duplicate accounts
Pros had to wait 2-6 days to log in
No email verification of accounts
Search returned imprecise results
Inconsistant navigation
Outdated visual style
No mobile responsive state
Consulting the usage data
The analytics team helped us understand exactly where traffic was going and when it was dropping off in our registration funnel. Surprisingly, we found that a very low percentage of users actually claimed a company from the initial search step, most preferred to create a new account. We also found that presenting users with a long list of possible matches caused the biggest decrease in traffic of the entire flow!
When we asked the customer care team about the decrease, they reported that some of the Pros who gave up during step 2 later called in for support. These Pros had gotten confused because they had expected to start adding their company right away and instead were met with a list of 30+ seemingly random companies. We needed a more accurate and less confusing way to suggest possible matches to Pros.
Ideation and Prototyping
Kicking off the project
Armed with usage data and high level product requirements, we scheduled a kickoff meeting that included members from UX, product management, engineering, marketing, and customer care. I also created a shared confluence page that the group could use to track key questions, roadblocks, and see system diagrams or design concepts.
Sketching the experience, together
After gaining alignment on the project goals during the kickoff, some members of the project team got together to sketch some different solutions and surface more unanswered questions like "What should the behavior of user validation/activation be?" or "How will we be monitoring creation of duplicates?" We also made sure to sketch "mobile first".
Designing the initial prototype
After synthesizing the thoughts from the ideation session, I sketched a few different versions of the flow and got some great critique from the project team and my fellow interaction designers. After refining the concept a bit, I took to InVision App to make an interactive prototype.
I revisited the problem of user created duplicates in the new design. Duplicates are confusing for members, and expensive for Angie's List to resolve. We knew that we wanted to collect as much information as possible before presenting a list of possible matches, but we weren't sure if placing this step later in the flow would cause annoyance or confusion for our users. We also wanted to reduce friction to new users by only interrupting with possible duplicates if we were very certain we had a match.
To answer these, and many other questions, we had to do some usability testing.
Usability Testing and Iteration
Key research questions
The ux researcher on our team led a collaborative effort to come up with research questions we wanted to answer during our test:
Will service pros be able to easily add themselves to the list?
Will they complete the flow?
What are service pros’ expectations around verification
of their info/the business’ info?
What is the ideal order of fields and/or # of screens and
steps to reduce friction?
Will service pros understand how to proceed when the
duplicate screen appears?
Methods and results
We tested our prototypes with 6 service providers for 40 minutes each. These remote usability sessions walked participants through a number of tasks while members of the project team observed.
What Worked
Pros expected to add a business, not search for one
Two step flow caused less anxiety and uncertainty
It was clear which fields were required
Pros had a high tolerance for duplicate screen
What Didn't Work
No way for existing users to sign in on step 1
Contact info was confusing between step 1 and 2
Some Pros don't want members to see their address
Some Pros wanted to add more than one category
Pros want to recall data entered previously on dupe screen
Final updated wireframes
Visual Design
After a competitive analysis of other sign up flows, we noticed that they all looked more or less the same. We wanted to visually differentiate Angie's List from those other experiences and add a more personal touch to the flow.
The two visual designers on the team experimented with different styles before landing on an illustrative approach that helped tell the story of setting up a business. Not only did they look great, they also aided in communicating the purpose of each step.


Password Reset
Please type your password twice and click submit.
Password
Confirm password
Change Password


--- layout: default title: About class: about weight: 80 ---
SKGTech is a non profit organization comprised of creative and passionate people that love all things tech. We organize Local Meetups, International Conferences and create Apps and Services to aid the community at large.
We care about a thriving, growing, self-sustainable environment where teams, individuals, businesses and all kinds of actors can benefit from.
Αστική Μη Κερδοσκοπική Εταιρία
ΑΦΜ: 997312737
ΔΟΥ: ΑΜΠΕΛΟΚΗΠΩΝ
25ης Μαρτίου 48
Εύοσμος, 56224
Θεσσαλονίκη
email<EMAIL_ADDRESS>web: http://skgtech.io
Non Profit Organization
VAT: EL997312737
25is Martiou 48
Evosmos, 56224
Thessaloniki, Greece
email<EMAIL_ADDRESS>web: http://skgtech.io
IBAN: GR57 0171 8640 0068 6413 6129771
BIC: PIRBGRAA
Beneficiary: SKGTECH
PaypalSKGTech's Paypal email is: paypal@skgtech.io


skimr
About
skimr is a web application for streamlining reading of online articles. It applies a machine-learning model, based on natural language processing of user highlights from Medium.com, to predict which sentences will be highlighted in an article, then highlights those sentences in situ.
Please see the slides below for more details.


Waiting experiments
New Experiment
×
Close
Add new library
Library Name
Key Words for the library
Tissue
Sequence platform
Free Description (Protocol)
Home institution
Please select the file(s)
Documents of my account
View files availables
Or
Upload files of my computer
0%
Directordy
×
Close
My documents
Historial files
Temporal files
Please select the library
No files availables


黒の手番です。51 はどう動かしますか？
0-2:5pt
pips Black=137 White=141
(CorrectAnswer= 0/0, ErrorScore= 0)
1. 18/13 8/7* eq:+0.684 75.28% (G:18.34% B:0.96%) 24.72% (G:7.89% B:1.63%) 2. 11/6 8/7* eq:+0.597 (-0.088) 72.62% (G:16.10% B:0.70%) 27.38% (G:6.62% B:0.91%) 3. 10/5 8/7* eq:+0.595 (-0.089) 72.76% (G:16.21% B:0.85%) 27.24% (G:8.09% B:0.88%) 4. 8/7* 6/1 eq:+0.554 (-0.130) 71.17% (G:16.56% B:0.63%) 28.83% (G:8.67% B:1.17%) 5. 8/7* 7/2 eq:+0.544 (-0.140) 71.38% (G:14.66% B:0.48%) 28.62% (G:6.50% B:0.23%)


No arrests after 2 deadly shootings in 2 days in Newark, New Jersey
by Derick Waller, Eyewitness NewsCLINTON HILL, New Jersey (WABC) -- Police are investigating two shootings in Newark in less than two days that have left two people dead and five wounded.
The latest shooting happened Tuesday night at a barbershop on Clinton Place.
The Essex County Prosecutor's office said three people were shot shortly before 8:40 p.m. at the Cut Creator's Enterprise.
One person was killed and two others wounded, one of whom is said to be hospitalized in critical condition.
Additionally, Newark police say an officer was assaulted while attempting to control a crowd that gathered at the scene.
On Monday night, four were people shot - one fatally - in the 100 block of South 8th Street.

No arrests or suspects have been announced in either shooting, and Newark police continue to search for multiple gunmen.


GBG Music is an initiative from four students at Gothenburgs University who saw the need for a place where people can find all gothenburgs music. We thrive to be up to date, with small and unsigned gigs, but also with official club gigs.


Dear CP_FIRSTNAME,
Your payment has not finished properly, so that your booking is not confirmed yet.
To recover your booking and retry payment again, go to APP_URL/booking/CP_LOCATOR
If you are having problems with the payment and still want to attend the class, please reply to this email confirming your interest and we'll get back to you as soon as we can.
Should you have any other questions, please let us know.
Thank you,
cooking point team
Cooking Point
cookingpoint.es
(+34) 910 115 154


Dozens of migrants 'suffocating' in refrigerated Danone lorry rescued by police
Dozens of migrants travelling in a refrigerated Danone lorry that was 'losing oxygen' rescued by Mexican police during their journey from Central America to the US.
by Lila RandallDozens of migrants have been rescued from a refrigerated lorry that was 'losing oxygen' on its way to the United States.
Dramatic video shows Mexico’s federal police slowly opening the doors of the truck with a Danone logo emblazoned on the back of it.
Inside, children, men and women are crammed from wall to wall.
The migrants were stopped on a motorway in Veracruz in southern Mexico.
They had been in the lorry for two days, starting in Chiapas, a southern Mexican state bordering Guetamala.
Local media reports vary on the number of migrants found inside but the number is thought to be between 58 and 62.
Some reports say there were 45 men and 13 women. Eighteen of the 58 migrants are thought to be minors.

The police were reportedly carrying out random spot checks, however, the footage shows one of the officers filming the opening of the lorry doors on a mobile phone, indicating they knew what they were about to find.
When the doors are opened, the migrants, who are sitting and standing, barely react. Possessions such as teddy bears, matt seats and towels can be seen squashed in among the group.
Some of the migrants reportedly claimed they were starting to suffer from a lack of oxygen and had warned the driver about the situation but he did not stop the vehicle.
After struggling to cope with the heat of the lorry, the migrants had broken part of the door with an axe, which the federal police noticed, according to Diario Digital.
One Guatemalan migrant said: “Yes, it was already very hot, it was time for him to stop and he didn't stop and they had to break the door. I did not see it, but I did hear about 3 or 4 shots and I said, why they [traffickers] have no conscience, we are all worth the same.”
The driver and the co-driver have been arrested and transferred to the attorney General’s Office in Coatzacoalcos, a city in the north of Veracruz.
Danone Mexico has denied a company lorry was used for trafficking and has said it is a fake logo.
A spokesman said a criminal complaint has been launched and the company will collaborate with the authorities to confirm the vehicle is counterfeit.
The Red Cross treated the migrants for health issues before they were taken to a migrant centre in Veracruz.


Sorry the page you tried cannot be found. You may have typed the address incorrectly or you may have used an outdated link.Please visit the links below instead.


show dialog unless active attribute is false.
Close
show dialog
maskCloseable
destroyOnClose
basic modal
Close


Flint - Fast Firebase SaaS Boilerplate
Focus on adding value, not duplicating solved problems that apply to virtually every SaaS Platform:
- Sign Up Page that accepts a credit card.
- Password reset/forgot password
- Basic Authentication
- Declarative pricing page
And coming soon:
- User profile management
- Account suspension due to non-payment/declined cards
- Social/SSO login/registration
- Automatic welcome emails
- Scalable role based permissions