The Xorg Drivers page contains the instructions for building Xorg drivers that are necessary in order for Xorg Server to take the advantage of the hardware that it is running on. At least one input and one video driver is required for Xorg Server to start.
If you are unsure which video hardware you have, you can use lspci from pciutils-3.2.0 to find out which video hardware you have and then look at the descriptions of the packages in order to find out which driver you need.
The Glamor EGL package contains a GL-based rendering acceleration library for X server. It is only useful if you are using newer AMD Radeon cards with Xorg ATI Driver.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://anduin.linuxfromscratch.org/sources/other/glamor-egl-0.5.0.tar.xz
Download (FTP): ftp://anduin.linuxfromscratch.org/other/glamor-egl-0.5.0.tar.xz
Download MD5 sum: 8b8c3ca4d502313df8e62c01c000e10d
Download size: 100 KB
Estimated disk space required: 13 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/glamor-egl
Install Glamor EGL by running the following commands:
patch -Np1 -i ../glamor-egl-0.5.0-fixes-1.patch && autoreconf -fi && ./configure $XORG_CONFIG --enable-glx-tls && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-glx-tls
: This
switch enables TLS support in GLX.
The Xorg Evdev Driver package contains Generic Linux input driver for the Xorg X server. It handles keyboard, mouse, touchpads and wacom devices, though for touchpad and wacom advanced handling, additional drivers are required.
This package is known to build and work properly using an LFS-7.4 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-input-evdev-2.8.1.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-input-evdev-2.8.1.tar.bz2
Download MD5 sum: cc1f59e22edfbc69daecf01e43a8dba3
Download size: 361 KB
Estimated disk space required: 4.0 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-evdev-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Input device support --->
Event interface: Y or M
Install Xorg Evdev Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg Synaptics Driver package contains the X.Org Input Driver, support programs and SDK for Synaptics touchpads. Even though the evdev driver can handle touchpads very well, this driver is required if you want to use advanced features like multi tapping, scrolling with touchpad, turning the touchpad off while typing, etc.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-input-synaptics-1.7.1.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-input-synaptics-1.7.1.tar.bz2
Download MD5 sum: 6505de717972b6a24b8eb13e69eb996c
Download size: 432 KB
Estimated disk space required: 5.6 MB
Estimated build time: less than 0.1 SBU
mtdev-1.1.4 and Xorg-Server-1.14.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-synaptics-driver
Install Xorg Synaptics Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg VMMouse Driver package contains the VMMouse input driver for the Xorg X server. The VMMouse driver enables support for the special VMMouse protocol that is provided by VMware virtual machines to give absolute pointer positioning.
This package is known to build and work properly using an LFS-7.4 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-input-vmmouse-13.0.0.tar.bz2
Download MD5 sum: 34f9f64ee6a1a51fc8266a9af24e1e07
Download size: 308 KB
Estimated disk space required: 2.9 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-vmmouse-driver
Install Xorg VMMouse Driver by running the following commands:
./configure $XORG_CONFIG \ --with-udev-rules-dir=/lib/udev/rules.d \ --without-hal-callouts-dir \ --without-hal-fdi-dir && make
This package does not come with a test suite.
Now, as the root
user:
make install
--with-udev-rules-dir=/lib/udev/rules.d
:
This switch specifies where udev rules should be installed.
--without-hal-*-dir
: These switches
disable installation of the HAL
components which are not needed on Linux.
The Xorg Wacom Driver package contains the X.Org X11 driver and SDK for Wacom and Wacom-like tablets. It is not required to use a Wacom tablet, the xf86-input-evdev driver can handle these devices without problems.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://downloads.sourceforge.net/linuxwacom/xf86-input-wacom-0.22.1.tar.bz2
Download MD5 sum: dba80caac08145a907fc7f7796f3aea7
Download size: 536 KB
Estimated disk space required: 7.8 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-wacom-driver
To use a Wacom tablet, enable the following options in your kernel configuration and recompile:
Device Drivers --->
Input device support --->
[*] Tablets --->
Wacom Intuos/Graphire tablet support (USB): Y or M
Install Xorg Wacom Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg ATI Driver package contains the X.Org Video Driver for ATI Radeon video cards including all chipsets ranging from R100 to R900 and the newer RAxx chipsets.
This package is known to build and work properly using an LFS-7.4 platform.
For Direct Rendering to work with newer Radeon Cards (R300 and later chipsets), you need to enable the r300, r600 and radeonsi Gallium drivers at MesaLib-9.2.0 build time. Also, some cards require Firmware to be available when the kernel driver is loaded. Firmware can be obtained from this site. See "Kernel Configuration for additional firmware" below.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-ati-7.2.0.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-ati-7.2.0.tar.bz2
Download MD5 sum: 5ab9a826699e5c86ef89fca43ebb3821
Download size: 806 KB
Estimated disk space required: 18 MB
Estimated build time: 0.2 SBU
This is required for "Southern Islands" GPUs but optional for R300 to R700, Evergreen and "Northern Islands" GPUs - see the link under "Glamor Acceleration" below.
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-ati-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
ATI Radeon: Y or M
If you need to add firmware, install the file(s) and then point
to them in the kernel configuration and recompile the kernel if
necessary. To find out which firmware you need, consult the
Decoder ring for engineering vs marketing names. Download any
firmware for your card which is named like:
,
etc. Note that for R600 and R700 family, generic <ENGINEERING_NAME>
_rlc.binR600_rlc.bin
and R700_rlc.bin
are necessary in adition to the
model specific firmware, while for later generations (Evergreen,
"Northern Islands" and probably "Southern Islands") you need the
BTC_rlc.bin
in adition to the model
specific firmware. Below is an example for Radeon HD6470, which
is "Northern Islands" GPU with a network card that also requires
the firmware:
CONFIG_EXTRA_FIRMWARE="radeon/BTC_rlc.bin radeon/CAICOS_mc.bin radeon/CAICOS_me.bin radeon/CAICOS_pfp.bin radeon/CAICOS_smc.bin rtl_nic/rtl8168e-3.fw"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
You can check dmesg output after boot to see which firmware is missing.
Install Xorg ATI Driver by running the following commands:
./configure $XORG_CONFIG --enable-glamor && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-glamor
: This
switch enables new GL-based 2D acceleration. As well as
specifying this in the build, it needs to be enabled at run time
(see below). It is, however, enabled by default for Radeon
"Southern Islands" and newer GPUs.
Glamor is an acceleration library which uses cards' 3D capabilities to accelerate 2D rendering. Glamor acceleration is required for Radeon "Southern Islands" GPUs which use "radeonsi" Gallium3D driver from MesaLib-9.2.0. To see which cards fall under "Southern Islands" category, read the Decoder ring for engineering vs marketing names. Please note that Glamor acceleration can be used with other chips as well, from the R300 onwards, but it has not been tested recently.
Glamor acceleration is not enabled by default for chipsets that
don't use "radeonsi" Gallium3D driver. You have to use a
xorg.conf
file to enable it. To
enable Glamor for cards other than "Southern Islands" and later,
create the following /etc/X11/xorg.conf
as the root
user:
cat >> /etc/X11/xorg.conf << "EOF"
Section "Module"
Load "dri2"
Load "glamoregl"
EndSection
Section "Device"
Identifier "radeon"
Driver "radeon"
Option "AccelMethod" "glamor"
EndSection
EOF
The Xorg Cirrus Driver package contains the X.Org Video Driver for Cirrus Logic video chips. Qemu uses this driver for its virtual GPU.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-cirrus-1.5.2.tar.bz2
Download MD5 sum: 91fd6b677d62027cd3001debb587a6a6
Download size: 320 KB
Estimated disk space required: 4.3 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-cirrus-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Cirrus driver for QEMU emulated device: Y or M
Install Xorg Cirrus Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg Fbdev Driver package contains the X.Org Video Driver for framebuffer devices. This driver is often used as fallback driver if the hardware specific and VESA drivers fail to load or are not present. If this driver is not installed, Xorg Server will print a warning on startup, but it can be safely ignored if hardware specific driver works well.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-fbdev-0.4.3.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-fbdev-0.4.3.tar.bz2
Download MD5 sum: 1d99f1dfb3f0fea077b6b61caa3dc85a
Download size: 284 KB
Estimated disk space required: 2.3 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-fbdev-driver
Install Xorg Fbdev Driver by running the following commands:
sed -i -e "/mibstore.h/d" -e "/miInitializeBackingStore/d" src/fbdev.c && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed -e "/mibstore.h/d" ...: Fixes building with Xorg Server 1.14.0.
The Xorg Intel Driver package contains the X.Org Video Driver for Intel integrated video cards including 8xx, 9xx, Gxx, Qxx and HD graphics processors (SandyBridge, IvyBridge and Haswell).
This package is known to build and work properly using an LFS-7.4 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-intel-2.21.15.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-intel-2.21.15.tar.bz2
Download MD5 sum: 8b646d257ace8197d6ab4e5ddeb8efb2
Download size: 1.9 MB
Estimated disk space required: 66 MB
Estimated build time: 0.5 SBU
xcb-util-0.3.9 and Xorg-Server-1.14.3
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-intel-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Intel I810: Y or M
Intel 8xx/9xx/G3x/G4x/HD Graphics: Y or M
Enable modesetting on intel by default: Y
Install Xorg Intel Driver by running the following commands:
./configure $XORG_CONFIG --enable-kms-only --with-default-accel=sna && make
This package does not come with a test suite.
Now, as the root
user:
make install
--enable-kms-only
: This
switch omits the UMS (User Mode Setting) code.
--with-default-accel=sna
:
This switch enables SandyBridge New Acceleration method by
default.
The Xorg Mach64 Driver package contains the X.Org Video Driver for ATI video adapters based on the Mach64 chipsets.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-mach64-6.9.4.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-mach64-6.9.4.tar.bz2
Download MD5 sum: d645197cbf238ac0427c3904eafdce2f
Download size: 508 KB
Estimated disk space required: 13 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-mach64-driver
Install Xorg Mach64 Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg MGA Driver package contains the X.Org Video Driver for Matrox video cards including Millennium G2xx, G4xx, G5xx, Millennium II and Mystique G200 chipsets.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-mga-1.6.2.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-mga-1.6.2.tar.bz2
Download MD5 sum: f543877db4e260d8b43c7da3095605ed
Download size: 440 KB
Estimated disk space required: 7.5 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-mga-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Matrox g200/g400: Y or M
Install Xorg MGA Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg Nouveau Driver package contains the X.Org Video Driver for NVidia Cards including RIVA TNT, RIVA TNT2, GeForce 256, QUADRO, GeForce2, QUADRO2, GeForce3, QUADRO DDC, nForce, nForce2, GeForce4, QUADRO4, GeForce FX, QUADRO FX, GeForce 6XXX and GeForce 7xxx chipsets.
This package is known to build and work properly using an LFS-7.4 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-nouveau-1.0.9.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-nouveau-1.0.9.tar.bz2
Download MD5 sum: 8b2c0df5de3929597ade8c5ddb489a44
Download size: 567 KB
Estimated disk space required: 13 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-nouveau-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Nouveau (nVidia) cards: Y or M
Support for backlight control: Y
Install Xorg Nouveau Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg OpenChrome Driver package contains the X.Org Video Driver for Via integrated video cards including Unichrome, Unichrome Pro and Chrome9 series.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-openchrome-0.3.3.tar.bz2
Download MD5 sum: f21abcdf87f73b5b547491281e894c87
Download size: 507 KB
Estimated disk space required: 14 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-openchrome-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Via unichrome video cards: Y or M
Install Xorg OpenChrome Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg R128 Driver package contains the X.Org Video Driver for ATI Rage 128 based video cards.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-r128-6.9.1.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-r128-6.9.1.tar.bz2
Download MD5 sum: 99299cbf45abfd86e21b34eb4217d6f5
Download size: 460 KB
Estimated disk space required: 5.5 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-r128-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
ATI Rage 128: Y or M
Install Xorg R128 Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg Savage Driver package contains the X.Org Video Driver for the S3 Savage family video accelerator chips including Savage3D, Savage4, Savage/MX, Savage/IX, SuperSavage/MX, SuperSavage/IX, ProSavage PM133, ProSavage KM133, Twister, TwisterK, ProSavage DDR and ProSavage DDR-K series.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-savage-2.3.6.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-savage-2.3.6.tar.bz2
Download MD5 sum: b57424a84c92aa3c6e97f6678d8d4a3e
Download size: 396 KB
Estimated disk space required: 6.3 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-savage-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
Savage video cards: Y or M
Install Xorg Savage Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg SiS Driver package contains the X.Org Video Driver for SiS (Silicon Integrated Systems) and XGI video cards including SiS5597/5598, SiS530/620, SiS6326/AGP/DVD, SiS300/305, SiS540, SiS630/730, SiS315/E/H/PRO, SiS550/551/552, SiS650/651/661/741, SiS330 (Xabre), SiS760/761, XGI Volari V3/V5/V8 and XGI Volari Z7 chipsets.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-sis-0.10.7.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-sis-0.10.7.tar.bz2
Download MD5 sum: f01e5e20e37342acf1983d269886171b
Download size: 684 KB
Estimated disk space required: 16 MB
Estimated build time: 0.2 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-sis-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
SiS video cards: Y or M
Install Xorg SiS Driver by running the following commands:
patch -Np1 -i ../xf86-video-sis-0.10.7-upstream_fixes-1.patch && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg 3Dfx Driver package contains the X.Org Video Driver for 3Dfx video cards including Voodoo Banshee, Voodoo3, Voodoo4 and Voodoo5 chipsets.
This package is known to build using an LFS 7.4 platform but has not been tested.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-tdfx-1.4.5.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-tdfx-1.4.5.tar.bz2
Download MD5 sum: 1b4a7815a604b3764900b520336a75ea
Download size: 332 KB
Estimated disk space required: 4.5 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-tdfx-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
3dfx Banshee/Voodoo3+: Y or M
Install Xorg 3Dfx Driver by running the following commands:
sed -i -e "/mibstore.h/d" -e "/miInitializeBackingStore/d" src/tdfx_driver.c && ./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
sed -e "/mibstore.h/d" ...: Fixes building with Xorg Server 1.14.0.
The Xorg VESA Driver contains the Generic VESA video driver for the Xorg X server. This driver is often used as fallback driver if the hardware specific driver fails to load or is not present. If this driver is not installed, Xorg Server will print a warning on startup, but it can be safely ignored if hardware specific driver works well.
This package is known to build and work properly using an LFS-7.4 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-vesa-2.3.3.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-vesa-2.3.3.tar.bz2
Download MD5 sum: 3690a5356ed121b1a7dfb59a6dcf4bf9
Download size: 300 KB
Estimated disk space required: 2.6 MB
Estimated build time: less than 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-vesa-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
-*- Support for frame buffer devices --->
VESA VGA graphics support: Y
Install Xorg VESA Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The Xorg VMware Driver package contains the X.Org Video Driver for VMware SVGA virtual video cards.
This package is known to build and work properly using an LFS-7.4 platform.
Download (HTTP): http://xorg.freedesktop.org/archive/individual/driver/xf86-video-vmware-13.0.1.tar.bz2
Download (FTP): ftp://ftp.x.org/pub/individual/driver/xf86-video-vmware-13.0.1.tar.bz2
Download MD5 sum: b08e0195ebf3f88a82129322cb93da08
Download size: 424 KB
Estimated disk space required: 11 MB
Estimated build time: 0.1 SBU
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/xorg-vmware-driver
Enable the following options in the kernel configuration and recompile the kernel if necessary:
Device Drivers --->
Graphics support --->
DRM driver for VMware Virtual GPU: Y or M
Enable framebuffer console under vmwgfx by default: Y
Install Xorg VMware Driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The libva package contains a library which provides access to hardware accelerated video processing, using hardware to accelerate video processing in order to offload the central processing unit (CPU) to decode and encode compressed digital video. VA API video decode/encode interface is platform and window system independent targeted at Direct Rendering Infrastructure (DRI) in the X Window System however it can potentially also be used with direct framebuffer and graphics sub-systems for video output. Accelerated processing includes support for video decoding, video encoding, subpicture blending, and rendering.
This package is known to build and work properly using an LFS-7.4 platform.
Download (HTTP): http://www.freedesktop.org/software/vaapi/releases/libva/libva-1.2.1.tar.bz2
Download MD5 sum: ca95b343050cf8feaf98dfe08ce0191b
Download size: 896 KB
Estimated disk space required: 20 MB
Estimated build time: 0.2 SBU
Intel Driver Download (HTTP): http://www.freedesktop.org/software/vaapi/releases/libva-intel-driver/libva-intel-driver-1.2.0.tar.bz2
Intel Driver Download MD5 sum: afdd4c91ac552a14b4d0ce93b75c88bb
Intel Driver Download size: 840 KB
Estimated disk space required: 22 MB
Estimated build time: 0.1 SBU
Doxygen-1.8.5 and Wayland
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libva
Install libva by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The libva-intel-driver is designed specifically for video cards based on an Intel GPU. Install the driver by running the following commands:
./configure $XORG_CONFIG && make
This package does not come with a test suite.
Now, as the root
user:
make install
The libvdpau package contains a library which implements the VDPAU library.
VDPAU (Video Decode and Presentation API for Unix) is an open source library (libvdpau) and API originally designed by Nvidia for its GeForce 8 series and later GPU hardware targeted at the X Window System This VDPAU API allows video programs to offload portions of the video decoding process and video post-processing to the GPU video-hardware.
Currently, the portions capable of being offloaded by VDPAU onto the GPU are motion compensation (mo comp), inverse discrete cosine transform (iDCT), VLD (variable-length decoding) and deblocking for MPEG-1, MPEG-2, MPEG-4 ASP (MPEG-4 Part 2), H.264/MPEG-4 AVC and VC-1, WMV3/WMV9 encoded videos. Which specific codecs of these that can be offloaded to the GPU depends on the version of the GPU hardware; specifically, to also decode MPEG-4 ASP (MPEG-4 Part 2), Xvid/OpenDivX (DivX 4), and DivX 5 formats, a GeForce 200M (2xxM) Series (the eleventh generation of Nvidia's GeForce graphics processing units) or newer GPU hardware is required.
This package is known to build and work properly using an LFS-7.4 platform.
Download (HTTP): http://people.freedesktop.org/~aplattner/vdpau/libvdpau-0.7.tar.gz
Download MD5 sum: cb81b0c3b7d32b2b2a51894ef05b95ce
Download size: 476 KB
Estimated disk space required: 4.0 MB
Estimated build time: 0.1 SBU
Doxygen-1.8.5, Graphviz-2.34.0 and texlive-20130530
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/libvdpau
Install libvdpau by running the following commands:
./configure $XORG_CONFIG && make
To test the results, issue: make check.
Now, as the root
user:
make install
Last updated on 2013-08-23 19:08:53 -0700


Second Approve Form
Task List
Info:
Id:
1
Name:
user name
Amt:
1.00
Date:
2011-02-01
Approver:
approver
Dept:
dept
Second Form:
Validation error
Approve ?
Approve
Reject


{% comment %}
| # | Project | Manager | Status | Progress |
|---|---|---|---|---|
| 4 | in progress | |||
| 5 | in progress |
| # | Project | Manager | Status | Progress |
|---|---|---|---|---|
| 4 | Danial | in progress | 65% | |
| 5 | Tumblr | David | in progress | 95% |
| 6 | Tesla | Mickey | in progress | 95% |
| # | Project | Manager | Status | Progress |
|---|---|---|---|---|
| 4 | Danial | in progress | 65% | |
| 5 | Tumblr | David | in progress | 95% |
| 6 | Tesla | Mickey | in progress | 95% |
| Child's Name | phone | Gender | Modify Selection | |
|---|---|---|---|---|
| {{ assigned.child.full_name }} | {{ assigned.child.email }} | {{ assigned.child.phone }} | {% if assigned.child.gender == 2 %} Not Selected {% else %} {{ assigned.child.get_gender_display }} {% endif %} |


Naive Bayes Classifier¶
In basic probability; Bayes Theorem states:
\[P(A|B) = \frac{P(B|A)P(A)}{P(B)}\]
For us, we can translate this to:
\[P(y|x_i) = \frac{P(x_1, ..., x_j|y)P(y)}{P(x_1, ..., x_j)}\]
Reverend Thomas Bayes¶
\[\textit{Prior times likelihood is proportional to the posterior.}\]
Gaussian¶
Continuous Features!
In [1]:
from sklearn import datasets
from sklearn.naive_bayes import GaussianNB
In [2]:
iris = datasets.load_iris()
In [3]:
features = iris.data
target = iris.target
In [4]:
clf = GaussianNB()
In [5]:
model = clf.fit(features, target)
In [6]:
new_obs = [[4, 4, 4, 0.4]]
In [7]:
model.predict(new_obs)
Out[7]:
array([1])
In [8]:
#assign prior belief on target
clf = GaussianNB(priors = [0.25, 0.25, 0.5])
In [9]:
model = clf.fit(features, target)
Multinomial¶
Discrete or count data.
HYPERPARAMETER ALPHA
In [10]:
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
import numpy as np
In [11]:
text_data = np.array(['I like Cardi B. ', 'Tribeca is a strange place.', ' Germany is where they make volkswagen cars.'])
count = CountVectorizer()
bag_of_words = count.fit_transform(text_data)
In [12]:
features = bag_of_words.toarray()
target = np.array([0, 1, 2])
clf = MultinomialNB(class_prior = [0.05, 0.5, 0.25])
In [13]:
model = clf.fit(features, target)
In [14]:
new_observation = [[0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1]]
In [15]:
model.predict(new_observation)
Out[15]:
array([1])
In [16]:
other_obs = [[0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]]
Bernoullli¶
Binary feature data.
In [17]:
from sklearn.naive_bayes import BernoulliNB
In [18]:
features = np.random.randint(2, size = (100, 3))
In [19]:
target = np.random.randint(2, size = (100, 1)).ravel()
In [20]:
clf = BernoulliNB(class_prior = [0.25, .5])
In [21]:
model = clf.fit(features, target)
In [22]:
import seaborn as sns
In [23]:
titanic = sns.load_dataset('titanic')
In [24]:
titanic.head()
Out[24]:
| survived | pclass | sex | age | sibsp | parch | fare | embarked | class | who | adult_male | deck | embark_town | alive | alone | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 3 | male | 22.0 | 1 | 0 | 7.2500 | S | Third | man | True | NaN | Southampton | no | False |
| 1 | 1 | 1 | female | 38.0 | 1 | 0 | 71.2833 | C | First | woman | False | C | Cherbourg | yes | False |
| 2 | 1 | 3 | female | 26.0 | 0 | 0 | 7.9250 | S | Third | woman | False | NaN | Southampton | yes | True |
| 3 | 1 | 1 | female | 35.0 | 1 | 0 | 53.1000 | S | First | woman | False | C | Southampton | yes | False |
| 4 | 0 | 3 | male | 35.0 | 0 | 0 | 8.0500 | S | Third | man | True | NaN | Southampton | no | True |
In [25]:
from sklearn.model_selection import train_test_split
In [26]:
X_train, X_test, y_train, y_test = train_test_split(titanic.fare, titanic.survived)
In [27]:
gnb = GaussianNB()
In [28]:
gnb.fit(X_train.values.reshape(-1,1), y_train)
Out[28]:
GaussianNB(priors=None, var_smoothing=1e-09)
In [29]:
pred = gnb.predict(X_test.values.reshape(-1,1))
In [30]:
gnb.score(X_test.values.reshape(-1,1), y_test)
Out[30]:
0.6591928251121076
In [31]:
from sklearn.metrics import classification_report
In [32]:
print(classification_report(pred, y_test))
precision recall f1-score support
0 0.96 0.65 0.77 201
1 0.19 0.77 0.31 22
micro avg 0.66 0.66 0.66 223
macro avg 0.58 0.71 0.54 223
weighted avg 0.89 0.66 0.73 223
In [33]:
titanic.head()
Out[33]:
| survived | pclass | sex | age | sibsp | parch | fare | embarked | class | who | adult_male | deck | embark_town | alive | alone | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 3 | male | 22.0 | 1 | 0 | 7.2500 | S | Third | man | True | NaN | Southampton | no | False |
| 1 | 1 | 1 | female | 38.0 | 1 | 0 | 71.2833 | C | First | woman | False | C | Cherbourg | yes | False |
| 2 | 1 | 3 | female | 26.0 | 0 | 0 | 7.9250 | S | Third | woman | False | NaN | Southampton | yes | True |
| 3 | 1 | 1 | female | 35.0 | 1 | 0 | 53.1000 | S | First | woman | False | C | Southampton | yes | False |
| 4 | 0 | 3 | male | 35.0 | 0 | 0 | 8.0500 | S | Third | man | True | NaN | Southampton | no | True |
In [34]:
titanic.nlargest(10, 'fare')
Out[34]:
| survived | pclass | sex | age | sibsp | parch | fare | embarked | class | who | adult_male | deck | embark_town | alive | alone | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 258 | 1 | 1 | female | 35.0 | 0 | 0 | 512.3292 | C | First | woman | False | NaN | Cherbourg | yes | True |
| 679 | 1 | 1 | male | 36.0 | 0 | 1 | 512.3292 | C | First | man | True | B | Cherbourg | yes | False |
| 737 | 1 | 1 | male | 35.0 | 0 | 0 | 512.3292 | C | First | man | True | B | Cherbourg | yes | True |
| 27 | 0 | 1 | male | 19.0 | 3 | 2 | 263.0000 | S | First | man | True | C | Southampton | no | False |
| 88 | 1 | 1 | female | 23.0 | 3 | 2 | 263.0000 | S | First | woman | False | C | Southampton | yes | False |
| 341 | 1 | 1 | female | 24.0 | 3 | 2 | 263.0000 | S | First | woman | False | C | Southampton | yes | False |
| 438 | 0 | 1 | male | 64.0 | 1 | 4 | 263.0000 | S | First | man | True | C | Southampton | no | False |
| 311 | 1 | 1 | female | 18.0 | 2 | 2 | 262.3750 | C | First | woman | False | B | Cherbourg | yes | False |
| 742 | 1 | 1 | female | 21.0 | 2 | 2 | 262.3750 | C | First | woman | False | B | Cherbourg | yes | False |
| 118 | 0 | 1 | male | 24.0 | 0 | 1 | 247.5208 | C | First | man | True | B | Cherbourg | no | False |


Video: Watch The Beautiful Moment Shatta Wale And Stonebwoy Shared A Brotherly Hug On Stage
by vanessa nordziTwo of the greatest Dancehall Artists in Ghana and across the globe, Shatta Wale and Stonebwoy have sparked the internet with an adorable video of them hugging each other.
I bet a lot of y’all didn’t see this coming after the unfortunate incident at the 2019 VGMA Awards earlier this year.
But as fate would have it,these two great artists have finally smoked the peace pipe and can now share the same stage without any problem.
During the 2019 4syte TV music video awards which occurred on the 16th of November at the Accra International Conference center, Shatta Wale was seen jamming to Stonebwoy’s track while the latter was performing on stage.
Shatta Wale who was obviously elated by the performance kept on screaming Stonebwoy’s name. Stonebwoy then turned to him and went down to hug him.
The crowd went nuts with their beautiful union as they were happy to finally see them once again supporting each other on the same platform.
Currently, the scuffle at the 2019 VGMA night is still pending in court as Stonebwoy and Shatta Wale were slapped with a law suit by the event organizers for causing mayhem.
Watch the amazing moment between the two below;


RCloud
Fork
[
Untitled
]
Advanced
Open in GitHub
Load Notebook by ID
Import External Notebooks
Export Notebook to File
Import Notebook from File
Show Source
Publish notebook
ID:
Notebook assets
Logout
New RMarkdown cell
Notebooks
File Upload
Upload to notebook
Search
Coming soon!
Comments (
0
)


Welcome to Hunting Ducks (No, it's not duck hunt even though all the imagery is identical). Point and click to shoot the ducks before they fly away. Each level gives you less time to hit both ducks. BUT! Be careful, if you run out of shots it's GAMEOVER!
Click the screen and get started, Good Luck!
| User | Score |
|---|
| Your High Score | |
|---|---|
| You don't have one yet! |
Game assets were provided by the following:


|
| Value |
Description |
Notes |
|
| 01 |
Linkable resource |
A resource that may be accessed by a hyperlink. The current host (eg the ONIX sender, who may be the publisher) will provide
ongoing hosting services for the resource for the active life of the product (or at least until the Until Date specified in
<ContentDate>). The ONIX recipient may embed the URL in a consumer facing-website (eg as the src attribute in an <img> link),
and need not host an independent copy of the resource
|
| 02 |
Downloadable file |
A file that may be downloaded on demand for third-party use. The ONIX sender will host a copy of the resource until the specified
Until Date, but only for the ONIX recipient’s direct use. The ONIX recipient should download a copy of the resource, and must
host an independent copy of the resource if it is used on a consumer-facing website. Special attention should be paid to the
‘Last Updated’ <ContentDate> to ensure the independent copy of the resource is kept up to date
|
| 03 |
Embeddable application |
An application which is supplied in a form which can be embedded into a third-party webpage. As type 02, except the resource
contains active content such as JavaScript, Flash, etc
|
|


I have {{ctrl.friends.length}} friends. They are:
[{{$index + 1}}] {{friend.name | uppercase}} who is {{friend.age}} years old.
No results found...


I have always had a focus on technology mainly dealing with hardware. Through the Full-Stack Web Develepment program at SMU, I have jumped into the software side of technology learning both the front and back end of web development. Although this only scratches the surface of programming, it is a promising first step towards all that it has to offer.
At this point in the course, I have completed over 10 different web applications and 2 projects. The journey started with learning HTML/CSS and Javascript. At this point I have also acuired skills using Node.js, MySQL, and Mongo.
I aim to take my professional experience in the tech industry and merge it with the languages and skills learned in the full stack course to pursue a career in software develepment.


MFTL
`Prev `__
M
`Next `__
--------------
**MFTL**: /M·F·T·L/
[abbreviation: ‘My Favorite Toy Language’]
1. adj. Describes a talk on a programming language design that is heavy
on the syntax (with lots of BNF), sometimes even talks about semantics
(e.g., type systems), but rarely, if ever, has any content (see
`*content-free* <../C/content-free.html>`__). More broadly applied to
talks — even when the topic is not a programming language — in which the
subject matter is gone into in unnecessary and meticulous detail at the
sacrifice of any conceptual content. “Well, it was a typical MFTL talk”.
2. n. Describes a language about which the developers are passionate
(often to the point of proselytic zeal) but no one else cares about.
Applied to the language by those outside the originating group. “He
cornered me about type resolution in his MFTL.”
The first great goal in the mind of the designer of an MFTL is usually
to write a compiler for it, then bootstrap the design away from
contamination by lesser languages by writing a compiler for it in
itself. Thus, the standard put-down question at an MFTL talk is “Has it
been used for anything besides its own compiler?” On the other hand, a
(compiled) language that cannot even be used to write its own compiler
is beneath contempt. (The qualification has become necessary because of
the increasing popularity of interpreted languages like
`*Perl* <../P/Perl.html>`__ and `*Python* <../P/Python.html>`__.) See
`*break-even point* <../B/break-even-point.html>`__. (On a related note,
Doug McIlroy once proposed a test of the generality and utility of a
language and the operating system under which it is compiled: “Is the
output of a FORTRAN program acceptable as input to the FORTRAN
compiler?” In other words, can you write programs that write programs?
(See `*toolsmith* <../T/toolsmith.html>`__.) Alarming numbers of
(language, OS) pairs fail this test, particularly when the language is
FORTRAN; aficionados are quick to point out that
`*Unix* <../U/Unix.html>`__ (even using FORTRAN) passes it handily. That
the test could ever be failed is only surprising to those who have had
the good fortune to have worked only under modern systems which lack
OS-supported and -imposed “file types”.)
--------------
+-------------------------------------------+----------------------------+---------------------------+
| `Prev `__ | `Up <../M.html>`__ | `Next `__ |
+-------------------------------------------+----------------------------+---------------------------+
| metasyntactic variable | `Home <../index.html>`__ | mickey |
+-------------------------------------------+----------------------------+---------------------------+


-1 Day +1 Day -1 Hour +1 Hour -1 Minute +1 Minute Now
Date and Time: . January February March April May June July August September October November December : Region:
Value for opening_hours:
opening_hours
Status:
Substring used by applied rule:
Error and warning messages:
permalink


|
LibDriver DS18B20
2.0.0
DS18B20 full function driver
|
ds18b20 base driver modules More...
Data Structures | |
| struct | ds18b20_handle_s |
| ds18b20 handle structure definition More... | |
| struct | ds18b20_info_s |
| ds18b20 info structure definition More... | |
Typedefs | |
| typedef struct ds18b20_handle_s | ds18b20_handle_t |
| ds18b20 handle structure definition More... | |
| typedef struct ds18b20_info_s | ds18b20_info_t |
| ds18b20 info structure definition More... | |
Enumerations | |
| enum | ds18b20_mode_t { DS18B20_MODE_SKIP_ROM = 0x00 , DS18B20_MODE_MATCH_ROM = 0x01 } |
| ds18b20 mode enumeration definition More... | |
| enum | ds18b20_power_mode_t { DS18B20_POWER_MODE_PARASITE = 0x00 , DS18B20_POWER_MODE_EXTERNALLY = 0x01 } |
| ds18b20 power mode enumeration definition More... | |
| enum | ds18b20_resolution_t { DS18B20_RESOLUTION_9BIT = 0x00 , DS18B20_RESOLUTION_10BIT = 0x01 , DS18B20_RESOLUTION_11BIT = 0x02 , DS18B20_RESOLUTION_12BIT = 0x03 } |
| ds18b20 resolution enumeration definition More... | |
Functions | |
| uint8_t | ds18b20_info (ds18b20_info_t *info) |
| get chip's information More... | |
| uint8_t | ds18b20_init (ds18b20_handle_t *handle) |
| initialize the chip More... | |
| uint8_t | ds18b20_deinit (ds18b20_handle_t *handle) |
| close the chip More... | |
| uint8_t | ds18b20_read (ds18b20_handle_t *handle, int16_t *raw, float *temp) |
| read data from the chip More... | |
| uint8_t | ds18b20_set_mode (ds18b20_handle_t *handle, ds18b20_mode_t mode) |
| set the chip mode More... | |
| uint8_t | ds18b20_get_mode (ds18b20_handle_t *handle, ds18b20_mode_t *mode) |
| get the chip mode More... | |
| uint8_t | ds18b20_set_rom (ds18b20_handle_t *handle, uint8_t rom[8]) |
| set the handle rom More... | |
| uint8_t | ds18b20_get_rom (ds18b20_handle_t *handle, uint8_t rom[8]) |
| get the chip rom More... | |
| uint8_t | ds18b20_scratchpad_set_resolution (ds18b20_handle_t *handle, ds18b20_resolution_t resolution) |
| set the resolution in the scratchpad More... | |
| uint8_t | ds18b20_scratchpad_get_resolution (ds18b20_handle_t *handle, ds18b20_resolution_t *resolution) |
| get the resolution in the scratchpad More... | |
| uint8_t | ds18b20_copy_scratchpad_to_eeprom (ds18b20_handle_t *handle) |
| copy the scratchpad content to the eeprom More... | |
| uint8_t | ds18b20_copy_eeprom_to_scratchpad (ds18b20_handle_t *handle) |
| copy the eeprom content to the scratchpad More... | |
ds18b20 base driver modules
| typedef struct ds18b20_handle_s ds18b20_handle_t |
ds18b20 handle structure definition
| typedef struct ds18b20_info_s ds18b20_info_t |
ds18b20 info structure definition
| enum ds18b20_mode_t |
ds18b20 mode enumeration definition
| Enumerator | |
|---|---|
| DS18B20_MODE_SKIP_ROM | skip rom mode |
| DS18B20_MODE_MATCH_ROM | match rom mode |
Definition at line 77 of file driver_ds18b20.h.
| enum ds18b20_power_mode_t |
ds18b20 power mode enumeration definition
| Enumerator | |
|---|---|
| DS18B20_POWER_MODE_PARASITE | parasite power mode |
| DS18B20_POWER_MODE_EXTERNALLY | externally power mode |
Definition at line 86 of file driver_ds18b20.h.
| enum ds18b20_resolution_t |
ds18b20 resolution enumeration definition
| Enumerator | |
|---|---|
| DS18B20_RESOLUTION_9BIT | 9 bit resolution |
| DS18B20_RESOLUTION_10BIT | 10 bit resolution |
| DS18B20_RESOLUTION_11BIT | 11 bit resolution |
| DS18B20_RESOLUTION_12BIT | 12 bit resolution |
Definition at line 95 of file driver_ds18b20.h.
| uint8_t ds18b20_copy_eeprom_to_scratchpad | ( | ds18b20_handle_t * | handle | ) |
copy the eeprom content to the scratchpad
| [in] | *handle | points to a ds18b20 handle structure |
Definition at line 1164 of file driver_ds18b20.c.
| uint8_t ds18b20_copy_scratchpad_to_eeprom | ( | ds18b20_handle_t * | handle | ) |
copy the scratchpad content to the eeprom
| [in] | *handle | points to a ds18b20 handle structure |
Definition at line 1078 of file driver_ds18b20.c.
| uint8_t ds18b20_deinit | ( | ds18b20_handle_t * | handle | ) |
close the chip
| [in] | *handle | points to a ds18b20 handle structure |
Definition at line 1392 of file driver_ds18b20.c.
| uint8_t ds18b20_get_mode | ( | ds18b20_handle_t * | handle, |
| ds18b20_mode_t * | mode | ||
| ) |
get the chip mode
| [in] | *handle | points to a ds18b20 handle structure |
| [out] | *mode | points to a chip mode buffer |
Definition at line 368 of file driver_ds18b20.c.
| uint8_t ds18b20_get_rom | ( | ds18b20_handle_t * | handle, |
| uint8_t | rom[8] | ||
| ) |
get the chip rom
| [in] | *handle | points to a ds18b20 handle structure |
| [out] | *rom | points to a rom buffer |
Definition at line 420 of file driver_ds18b20.c.
| uint8_t ds18b20_info | ( | ds18b20_info_t * | info | ) |
get chip's information
| [out] | *info | points to a ds18b20 info structure |
Definition at line 2085 of file driver_ds18b20.c.
| uint8_t ds18b20_init | ( | ds18b20_handle_t * | handle | ) |
initialize the chip
| [in] | *handle | points to a ds18b20 handle structure |
Definition at line 1305 of file driver_ds18b20.c.
| uint8_t ds18b20_read | ( | ds18b20_handle_t * | handle, |
| int16_t * | raw, | ||
| float * | temp | ||
| ) |
read data from the chip
| [in] | *handle | points to a ds18b20 handle structure |
| [out] | *raw | points to a raw adc buffer |
| [out] | *temp | points to a converted temperature buffer |
Definition at line 1426 of file driver_ds18b20.c.
| uint8_t ds18b20_scratchpad_get_resolution | ( | ds18b20_handle_t * | handle, |
| ds18b20_resolution_t * | resolution | ||
| ) |
get the resolution in the scratchpad
| [in] | *handle | points to a ds18b20 handle structure |
| [out] | *resolution | points to a chip resolution buffer |
Definition at line 653 of file driver_ds18b20.c.
| uint8_t ds18b20_scratchpad_set_resolution | ( | ds18b20_handle_t * | handle, |
| ds18b20_resolution_t | resolution | ||
| ) |
set the resolution in the scratchpad
| [in] | *handle | points to a ds18b20 handle structure |
| [in] | resolution | is the chip resolution |
Definition at line 469 of file driver_ds18b20.c.
| uint8_t ds18b20_set_mode | ( | ds18b20_handle_t * | handle, |
| ds18b20_mode_t | mode | ||
| ) |
set the chip mode
| [in] | *handle | points to a ds18b20 handle structure |
| [in] | mode | is the chip mode |
Definition at line 342 of file driver_ds18b20.c.
| uint8_t ds18b20_set_rom | ( | ds18b20_handle_t * | handle, |
| uint8_t | rom[8] | ||
| ) |
set the handle rom
| [in] | *handle | points to a ds18b20 handle structure |
| [in] | *rom | points to a rom buffer |
Definition at line 394 of file driver_ds18b20.c.


{{meta.title}}
History
Here's the revision log for {{meta.title}}.
{%else%}This page has not been committed to the repository yet. Edit it to do that now.
{%endif%}Here's the revision log for {{meta.title}}.
{%else%}This page has not been committed to the repository yet. Edit it to do that now.
{%endif%}


It is such a nice ideal: research that can be fully reproduced by the click of a button. Wonder how those figures were made, where those p-values come from? Just look up the code repository for the article, rerun the analysis, and voila: you understand everything. In practice, however, you might run into quite a few hurdles when implementing a reproducible workflow. The web is full of guides, introductions, books, etc. - and for R users CRAN even has a task view on reproducible research, but usually the sticky points are avoided or ignored.
This post is a collection of my own notes, problems I have run into and found solutions for (or not), some do’s and don’t’s, basically anything I can think of at the time of writing. It is not intended as any sort of how-to guide or what-have-you, you can find many of those on the web (for example, from the folks at Ropensci).
Here is a list of papers that I have authored that are (supposedly) fully reproducible. I am only listing those where I was the first author.
1 - Plantecophys - An R Package for Analysing and Modelling Leaf Gas Exchange Data, 2015, PlosONE. [Code] [Article]
2 - Leaf mass per area, not total leaf area, drives differences in above‐ground biomass distribution among woody plant functional types, 2016, New Phytologist. [Code] [Article]
3 - Canopy leaf area of a mature evergreen Eucalyptus woodland does not respond to elevated atmospheric [CO2] but tracks water availability, 2016, Global Change Biology. [Code] [Article]
4 - fitplc - an R package to fit hydraulic vulnerability curves, 2017, Journal of Plant Hydraulics. [Code] [Article]
5 - On the minimum leaf conductance: its role in models of plant water use, and ecological and environmental controls, 2018, New Phytologist. [Code] [Article]
For each of these papers, you should be able to download the code (in each case, a git repository), read the README.md file, and run a simple command (usually in R) to generate all figures, tables, and manuscript (as pdf or docx). The necessary data are either packaged in the repository, or (often) downloaded from remote locations.
In reproducible research, you are trying to make it as easy as possible for others to run your code. The more complex you make the workflow (and the dependencies), the more likely it is that something just goes wrong. Keep It Simple, Stupid. Your workflow does not need to do more than what it is supposed to do: reproduce your analysis. This idea applies to some points below, especially (2) and (3).
In any R-based workflow, you will be using quite many R packages. In your daily routine, who cares how many packages you load! Just do all of them. But in reproducible research, you need to keep in mind the following points:
There are tools to combat these problems (more on that below), but an important point is to simply reduce the number of packages used as much as possible. The fewer packages you use, the less likely it is that things will break. Some more points:
Finally, you can also use tools to set the version of the R package used, in particular packrat
(which bloats your repository by copying all the package files, this is potentially debilitating), or checkpoint
(which downloads the required version from Microsoft’s CRAN timemachine). But even then, less is more!
Still on the topic of R packages, a simple trick that should be more common solves the following problem. Here is a script that typically loads all the packages at the top of the script:
library(gplots)
library(geometry)
library(plantecophys)
library(rgl)
# Do stuff
# ...
This script only works if you already did install.packages
on each of these packages. But you don’t know which are already available until you run the script (and it fails). My favorite solution is the pacman
package:
if(!require(pacman))install.packages("pacman")
pacman::p_load(gplots, geometry, plantecophys, rgl)
The p_load
function loads the package if available, and otherwise installs it from CRAN (or Bioconductor). Of course, this does not work for the pacman
package itself, hence we need the first line.
An object-caching workflow is one where intermediate steps in an analysis are cached (saved) and only recomputed when any of its dependencies have changed. This way, steps that take a long time (for example, fitting models) are only executed when needed, avoiding lengthy computations when all you did is add a reference to your manuscript file.
This is an old idea, and has since the beginning of time been available with the Makefile. A more modern approach that can be used seemlessly with R is the remake
package (which I used in manuscript nr. 2 in the list above). Unfortunately development on remake
is stagnant, but the drake
package is a very promising successor under active development.
Whatever tool you choose here - my point is simply to state that you only need these tools when at least one step in your analysis takes a painfully long time to compute. Otherwise, the effort is really, really just not worth it. In many cases you are better off to just write a script (or scripts! see point (5)) that executes all steps in succession. Again, KISS!
Yes, it is possible to cram everything into one giant script. After all, simpler is better, right? You really, really do not want to do this, and instead find a logical way to organize your repository. I have written a chapter on project management in the book ‘A Learning Guide to R’ (freely available from this direct link (PDF), or from www.hiercourse.com) that discusses this topic in detail. However a few points are useful:
Keep inputs, outputs, and code separate. This is an important point, and avoids problems with trying to figure out what is generated from where with what. I tend to have directories data
, R
, and output
(and output/figures
, output/data
etc.).
Write many functions. Even if you don’t repeatedly use a function, it is useful to organize your code that way to make it very easy to understand what is being done. For example, you could have:
# Collect data from online source
mydata <- retrieve_data()
# Fit model
mymodel1 <- fit_gam_model(mydata)
where those two functions are defined separately (and could be very long). Avoiding long definitions helps clarify which steps you are taking in your analysis.
myfunctions.R
), and then adding the line source("myfunctions.R")
.


The instructions comprise a very detailed recipe for sugar cookies baked from scratch (to be shaped like the team’s emoji). The “simplified” recipe is:
| Ingredients | Instructions |
|---|---|
|
1 stick butter ½ cup sugar 1 egg 1 tsp vanilla 1 tsp baking powder ⅛ tsp salt 240 g flour |
|
Most of the steps in the recipe go into producing the ingredients from their barest components. Here is a rough breakdown of the steps.
| Steps | Summary of steps | End product |
|---|---|---|
| 1 | Preheat your oven. | |
| 2–4 | Plant sugarcane. | Sugar |
| 5–9 | Plant (winter) wheat. | Flour |
| 10–14 | Make vanilla extract. | Vanilla |
| 15–18 | Get a cow. | Butter |
| 19–21 | Harvest wheat. | Flour |
| 22–24 | Start raising chickens. | Egg |
| 25–32 | Harvest sodium carbonate ore and refine it into sodium bicarbonate (baking soda). Add it to the small bowl. | Baking powder |
| 33–36 | Winnow the wheat and grind it into flour. | Flour |
| 37–43 | Dry out some seawater to make salt, and combine it with the flour in the medium bowl. | Salt |
| 44–55 | Harvest the sugarcane and refine it into sugar crystals | Sugar |
| 55–57 | Acquire corn and set it out to dry. | Baking powder |
| 58–65 | Milk the cow and churn it into butter. Note step 60 also tells us to make the final product look like the team emoji. | Butter |
| 66–68 | Cream the butter and the sugar in the large bowl. Add vanilla extract. | |
| 69–71 | Harvest an egg from your chicken coop. Consider using the extra eggs to make royal icing. | Egg |
| 72–73 | Add an egg to the large bowl and mix the wet ingredients. | |
| 74–82 | Refine cream of tartar (potassium bitartrate) from a wine barrel and add it to the small bowl. | Baking powder |
| 83–93 | Soak the corn kernels and then separate the starch from the protein. Then dry out the starch and add it to the small bowl. | Baking powder |
| 94–95 | Add the baking powder to the other dry ingredients, and then mix them and add to the wet ingredients. | |
| 96 | Form the cookies in the shape of your team emoji. | |
| 97 | Bake the cookies. | |
| 98 | Ice the cookies. |
Calculations of the ingredient amounts that aren’t given:
| Ingredient | Calculation |
|---|---|
| Butter | ½ gal milk = ⅙ to ¼ lb butter, a stick of butter weighs ¼ lb |
| Flour | 240 g of wheat berries yields 240 g of flour (or a little less) |
| Salt | Density of seawater = 1.027 g/ml Density of table salt = approximately 1.4 g/ml Fraction of mass of seawater that is salt = 0.035 Initial seawater = 2 tbsp 2 tbsp * 0.035 * (1.027/1.4) = 0.05 tbsp ≈ ⅛ tsp. |
| Baking powder | 1/2 tsp cream of tartar + 1/4 tsp baking soda + 1/4 tsp (approx.) cornstarch = 1 tsp baking powder. |
The last step of the recipe asks us to call HQ once our bake is ready. During the hunt, teams that did this were asked to show off their cookies and then asked to identify the emoji from other teams’ cookies in the gallery. After completing this task, teams were given the answer, CILANTRO.


ConsoleTimer prints a task and the lead time at the upper right corner of the schreen. Invokation example:
Create a semaphore like id.track
Console time in a new ruby process
semaphore = File.expand_path("~/.syc/syctask/#{id}.track" FileUtils.touch semaphore system "ruby lib/sycutil/console_timer.rb 60 10 semaphore"
This will start the ConsoleTimer with a lead time of 1 minute for task 10. To stop the timer the semaphore has to be deleted
FileUtils.rm semaphore
ConsoleTimer prints a task and the lead time at the upper right corner of the schreen. Invokation example:
Create a semaphore like id.track
Console time in a new ruby process
semaphore = File.expand_path("~/.syc/syctask/#{id}.track" FileUtils.touch semaphore system "ruby lib/sycutil/console_timer.rb 60 10 semaphore"
This will start the ConsoleTimer with a lead time of 1 minute for task 10. To stop the timer the semaphore has to be deleted
FileUtils.rm semaphore
Create a new ConsoleTimer with the time to count down, the task’s ID and a semaphore. The semaphore is a file named id.track where id is equal to the provided id. The semaphore is checked for existence. If the semaphore is deleted than ConsoleTimer is stopped.
# File lib/sycutil/console_timer.rb, line 22 def initialize(time, id, semaphore) @time = time.to_i @id = id @start = Time.now @semaphore = semaphore end
Prints the id and the lead time of the currently tracked task. As long as the provided time is greater than 0 the time is printed in green, otherwise red
# File lib/sycutil/console_timer.rb, line 43 def output color = :green difference = @time - (Time.now - @start).round if difference < 0 difference = difference.abs color = :red end seconds = difference % 60 minutes = difference / 60 % 60 hours = difference / 60 / 60 % 60 count_down = sprintf("%d: %02d:%02d:%02d", @id, hours, minutes, seconds) size = count_down.size count_down = count_down.color(color) command = "tput sc;"+ "tput cup 0 $(($(tput cols) - #{size}));"+ "echo #{count_down};tput rc" system command end
Starts the timer. The timer is run as long the semaphore is available
# File lib/sycutil/console_timer.rb, line 30 def start track = true while track sleep 1 output track = File.exists? @semaphore end exit 0 end


The Movie DB - TV Runtime Tracker
Show TV series with a maximum (episode) runtime of:
Select a Genre:
Action and Adventure
Animation
Comedy
Crime
Documentary
Drama
Family
Kids
Mystery
News
Reality
Soap
Talk
War and Politics
Western
Most Popular
Random


Instagram
Log in
Page Not Found
This page could not be found.
You might have followed an incorrect link.


Make a Reservation
Fill in Below!
Home
View Tables
Make a Reservation
Name
Phone Number
E-mail
Group ID
Submit


Configurations¶
Configurations can be set in .yml file. See example config.yml on github.
Define reference groups¶
--ref-group-method <type>
Fairness is always determined in relation to a reference group. By default, aequitas uses the majority group level for a given group as the reference group.
"majority"
Define fairness in relation to the majority in a group."min_metric"
Define fairness in relation to the subgroup with the lowest value on a given metric."predefined"
Define fairness in relation to groups of your choice.
The predefined reference groups are set in the configuration file.
ref_groups_method: "predefined"
reference_groups:
"gender": "male"
"age_cat": "35-50"
Score threshholds¶
If the input score
column is not binary, you can test the impact of alternative cutoffs on fairness metrics.
Thresholds are set in the configuration file.
thresholds:
rank_abs: [300]
rank_pct: [1.0, 5.0, 10.0 ]
With rank_abs
classify the observations with the top n as 1 and the remainder as 0. With rank_pct
classify the top n percent as 1 and the rest as 0.
Choosing Metrics¶
Choose from:
'Statistical Parity'
'Impact Parity'
'FOR Parity'
'FDR Parity'
'FPR Parity'
'FNR Parity'
fairness_measures: ["FPR Parity", "FNR Parity"]
Fairness threshold¶
Disparity is determined in terms of ratios. When the disparity ratio cross the fairness threshold, the decision is deemed unfair on that metric. Notice this is different from the webapp, which is 1 - fairness_threshold
fairness_threshold: 0.8
Attribute columns¶
You can manually set attribute columns to be assessed for fairness.
attr_cols: ["zipcode_pct_black", "zipcode_median_income"]
Project information¶
Your project title and goal will be inserted into the report.
project_description:
title: "Insert project title"
goal: "Insert project goal."
Databases¶
To connect to a database instead of using “–input “, use the db key, credentials, and input_query. These are set in config.yaml.
db:
db_credentials:
host: your_host
database: your_db
user: your_user
password: your_pass
port: 5432
The input query should return a table with score, label_value columns and then each attribute you want to use for bias analysis
input_query: "select id, score, label_value, attribute_1, attribute_2 from results.predictions left join ..."
The output schema is optional, default=public
output_schema: results
Note: database functionality is not compatible with csv input.


?9
<^Y>
IMAGED
NEW
YORK
BQTANICAL
PARPEN
01263897
The
University
of
Texas
Herbarium
(CL,'TEX)
Capraria
biflora
L.
Det:
J.
Williams
&
B.L.
Turner^30
JuV^96
herbarium
COLUMBIA
UNIVERSITY,
NEW
YORK.
291
oc\3L
EW
^o,b\
fiO
TANlr**£\
'(lao'—tsi^cL
01263897
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


QTextDocumentWriter Class
The QTextDocumentWriter class provides a format-independent interface for writing a QTextDocument to files or other devices. More...
| Header: | #include <QTextDocumentWriter> |
| qmake: | QT += gui |
| Since: | Qt 4.5 |
Public Functions
| QTextDocumentWriter() | |
| QTextDocumentWriter(QIODevice *device, const QByteArray &format) | |
| QTextDocumentWriter(const QString &fileName, const QByteArray &format = QByteArray()) | |
| ~QTextDocumentWriter() | |
| QTextCodec * | codec() const |
| QIODevice * | device() const |
| QString | fileName() const |
| QByteArray | format() const |
| void | setCodec(QTextCodec *codec) |
| void | setDevice(QIODevice *device) |
| void | setFileName(const QString &fileName) |
| void | setFormat(const QByteArray &format) |
| bool | write(const QTextDocument *document) |
| bool | write(const QTextDocumentFragment &fragment) |
Static Public Members
| QList<QByteArray> | supportedDocumentFormats() |
Detailed Description
The QTextDocumentWriter class provides a format-independent interface for writing a QTextDocument to files or other devices.
To write a document, construct a QTextDocumentWriter object with either a file name or a device object, and specify the document format to be written. You can construct a writer and set the format using setFormat() later.
Call write() to write the document to the device. If the document is successfully written, this function returns true
. However, if an error occurs when writing the document, it will return false.
Call supportedDocumentFormats() for a list of formats that QTextDocumentWriter can write.
Since the capabilities of the supported output formats vary considerably, the writer simply outputs the appropriate subset of objects for each format. This typically includes the formatted text and images contained in a document.
Member Function Documentation
QTextDocumentWriter::QTextDocumentWriter()
Constructs an empty QTextDocumentWriter object. Before writing, you must call setFormat() to set a document format, then setDevice() or setFileName().
QTextDocumentWriter::QTextDocumentWriter(QIODevice *device, const QByteArray &format)
Constructs a QTextDocumentWriter object to write to the given device in the document format specified by format.
QTextDocumentWriter::QTextDocumentWriter(const QString &fileName, const QByteArray &format = QByteArray())
Constructs an QTextDocumentWriter object that will write to a file with the name fileName, using the document format specified by format. If format is not provided, QTextDocumentWriter will detect the document format by inspecting the extension of fileName.
QTextDocumentWriter::~QTextDocumentWriter()
Destroys the QTextDocumentWriter object.
QTextCodec *QTextDocumentWriter::codec() const
Returns the codec that is currently assigned to the writer.
See also setCodec().
QIODevice *QTextDocumentWriter::device() const
Returns the device currently assigned, or 0 if no device has been assigned.
See also setDevice().
QString QTextDocumentWriter::fileName() const
If the currently assigned device is a QFile, or if setFileName() has been called, this function returns the name of the file to be written to. In all other cases, it returns an empty string.
See also setFileName() and setDevice().
QByteArray QTextDocumentWriter::format() const
Returns the format used for writing documents.
See also setFormat().
void QTextDocumentWriter::setCodec(QTextCodec *codec)
Sets the codec for this stream to codec. The codec is used for encoding any data that is written. By default, QTextDocumentWriter uses UTF-8.
See also codec().
void QTextDocumentWriter::setDevice(QIODevice *device)
Sets the writer's device to the device specified. If a device has already been set, the old device is removed but otherwise left unchanged.
If the device is not already open, QTextDocumentWriter will attempt to open the device in QIODevice::WriteOnly mode by calling open().
Note: This will not work for certain devices, such as QProcess, QTcpSocket and QUdpSocket, where some configuration is required before the device can be opened.
See also device() and setFileName().
void QTextDocumentWriter::setFileName(const QString &fileName)
Sets the name of the file to be written to fileName. Internally, QTextDocumentWriter will create a QFile and open it in QIODevice::WriteOnly mode, and use this file when writing the document.
See also fileName() and setDevice().
void QTextDocumentWriter::setFormat(const QByteArray &format)
Sets the format used to write documents to the format specified. format is a case insensitive text string. For example:
QTextDocumentWriter writer; writer.setFormat("odf"); // same as writer.setFormat("ODF");
You can call supportedDocumentFormats() for the full list of formats QTextDocumentWriter supports.
See also format().
[static]
QList<QByteArray> QTextDocumentWriter::supportedDocumentFormats()
Returns the list of document formats supported by QTextDocumentWriter.
By default, Qt can write the following formats:
| Format | Description |
|---|---|
| plaintext | Plain text |
| HTML | HyperText Markup Language |
| ODF | OpenDocument Format |
See also setFormat().
bool QTextDocumentWriter::write(const QTextDocument *document)
Writes the given document to the assigned device or file and returns true
if successful; otherwise returns false
.
bool QTextDocumentWriter::write(const QTextDocumentFragment &fragment)
Writes the document fragment specified by fragment to the assigned device or file and returns true
if successful; otherwise returns false
.


:: com :: sun :: star :: sdb ::
|
| deprecated |
service DatabaseDocument |
|
|
- Usage Restrictions
- deprecated
- Description
- specifies a link to a document associated with a database document
- Since
- OOo 2.0
|
| Exported Interfaces - Summary |
| ::com::sun::star::beans::XPropertySet |
- (referenced entity's summary:)
- provides information about and access to the
properties from an implementation.
|
| ::com::sun::star::sdbcx::XDataDescriptorFactory |
- (referenced entity's summary:)
- provides the creation of a descriptor for a definition object.
|
| ::com::sun::star::sdbcx::XRename |
- (referenced entity's summary:)
- supports the renaming of definition objects.
This is a very desirable feature which is not supported by all databases. There is no
standard SQL statement provided for this feature.
|
| Properties' Summary |
[ readonly ] string
Name |
is the name of the document.
|
[ readonly ] string
URL |
is the URL of the document.
|
| Exported Interfaces - Details |
::com::sun::star::beans::XPropertySet
- (referenced entity's summary:)
- provides information about and access to the
properties from an implementation.
|
|
::com::sun::star::sdbcx::XDataDescriptorFactory
- (referenced entity's summary:)
- provides the creation of a descriptor for a definition object.
|
|
::com::sun::star::sdbcx::XRename
- (referenced entity's summary:)
- supports the renaming of definition objects.
This is a very desirable feature which is not supported by all databases. There is no
standard SQL statement provided for this feature.
|
|
| Properties' Details |
Name
[ readonly ] string Name;
- Description
- is the name of the document.
|
|
URL
[ readonly ] string URL;
- Description
- is the URL of the document.
|
|
Top of Page
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


WELCOME TO TWITTER CLONE
Member Registration
Enter your Fullname :
E-Mail :
UserID :
Password :
Confirm password :
Comments (optional) :
I agree to the terms & conditions


Man arrested after 7 trafficking victims found in vehicle in NC
CLEVELAND COUNTY, N.C. (WBTV) -- Troopers say a suspect was taken into custody hours after after seven human trafficking victims were found inside a vehicle near Cleveland County Tuesday afternoon.
According to the North Carolina Highway Patrol, the incident happened during a traffic stop on I-85 near Mile Marker 8 when troopers pulled over a gray Toyota Sequoia.
When officers looked inside the SUV, they found seven people who were later determined to be victims of human trafficking. In addition to this, troopers also found methamphetamines and other illegal substances inside the vehicle.
The suspect, identified as 37-year-old Edgar Ortiz, initially fled the scene, but was apprehended and taken into custody later Tuesday night.
He is currently being held without bond on multiple charges.


Currently simulating ___ particles at ___ FPS.
The particle simulation and physics is running entirely on your GPU. Particle state is stored in a series of texture objects, updated by off-screen draws. Obstacles, like your mouse, are represented by a texture of surface normals, allowing particles to bounce and flow.
Try moving your mouse around the display, clicking, and dragging.


Wouldn't it be better to use an actual [AnyHashable : Any] dictionary and turn it's keys and values into strings using String(describing:)?
This would also require var names = Set<AnyHashable>(), but AnyHashable can handle strings.
@naithar Thank you for reviewing the changes and providing your inputs. I will analyze that and get back to you. Sorry for the delay in response as I was on vacation.
@naithar I agree with you that String(describing:) is the preferred way to convert an instance of any type to a string as per the documentation. I think it makes sense if we need to convert only specific elements in the dictionary. Here, we need to process each element in the dictionary and hence converting the dictionary from any type to a string dictionary makes the processing simpler.
We cannot use .lowercased() and .isEmpty methods with the elements of the [AnyHashable : Any] dictionary. Hence, we need to convert them to string before applying those methods.
In order to process the httpHeaders as any type, we need to make following changes.
var names = Set<String>()
if httpHeaders != nil {
// let hh = httpHeaders as! [String:String]
httpHeaders?.forEach {
let name = String(describing:$0.0).lowercased()
guard !names.contains(name) else { return }
names.insert(name)
if String(describing:$0.1).isEmpty {
result.append(String(describing:$0.0) + ";")
} else {
result.append(String(describing:$0.0) + ": " + String(describing:$0.1))
}
}
}
As the element values are already converting to string, I did not change the names variable.
Please let me know your thoughts whether the existing changes are fine or you have any better way.
Wouldn't it be better to use an actual
[AnyHashable : Any]
dictionary and turn it's keys and values into strings usingString(describing:)
?This would also require
var names = Set<AnyHashable>()
, butAnyHashable
can handle strings.


---
layout: post
title: "Upcoming Research"
date: 2016-03-11 09:35:00 +0000
tags:
image: https://s3.amazonaws.com/audreywatters/known_copy_fragments.jpg
imagecredits: https://www.flickr.com/photos/cogdog/15223631110/
---
This post first appeared on aud.life
In addition to working on an article on the history of virtual reality in education and a research project on the future of the blockchain in education, I’ve got these topics on the back burner:
- The history of E-Rate. Who pushed for this? Who benefited? What might this history teach us about today’s ed-tech policy pushes?
- The histories of the military and ed-tech. This is, of course, connected with VR and simulation. But I’d like to write something about the history of SCORM, including its most recent manifestation, xAPI.
- The history/politics of DonorsChoose. I’m curious: What percentage of projects go buying tech? How much of an increase in taxes paid by tech companies would it take to pay for this? What does the popularity of DonorsChoose tell us about procurement and funding?
- The history of the dot edu top level domain. I’ve inquired at Educause about this but no one seems to know the history. (?!?!)
- An ed-tech-focused history of Montessori.
- The history of TurnItIn. I'm interested more broadly in ed-tech innovations that get spun out of universities. But in the case of TurnItIn, I'd like to look at technology, cheating fears, and student IP.
- David Horowitz, Ben Horowitz, Andreessen Horowitz, and the Politics of Software Eating Education.
- A history of PLATO. This is the section that's really still lacking for Teaching Machines. So honestly, it needs to be first on this list.
(Image credits)


Video: Celtics PG Kemba Walker Suffers Terrifying Injury
by Andrew HolleranBoston Celtics point guard Kemba Walker suffered a terrifying injury in the first half of this evening’s game against the Denver Nuggets. Walker had to be strapped onto a stretcher and carried off of the floor.
Walker, who signed with Boston this offseason, suffered an apparent injury when he collided with teammate Semi Ojeleye.
The 29-year-old point guard was chasing down a loose ball with his head down when he ran into Ojeleye straight on. It was a football-like collision. Walker was down on the floor for a while, surrounded by teammates, before being carried off.
It was an extremely scary scene.
Walker had to be strapped to a stretcher and carried off the floor as he was surrounded by his teammates.
The Celtics are trailing the Nuggets, 45-34, at halftime of tonight’s game.
Our thoughts are with Kemba and the Boston team. Stay tuned for updates.


Using jQuery to stripe, hover-highlight, and add other behaviors to a table
- Rules:
- Make use of the existing classes rather than using the
css()
method.
- Set up the event listeners in
document.ready
and have them call functions.
- Do not use any anonymous functions.
- To do:
- Stripe the table (starting at Row 2) with alternating #1CC and #CC1.
- Change color on hover to #C11, returning to original color on mouseout.
- When clicked, row should have background of #CCC.
- When clicked again, original coloring is reapplied.
- Prevent links from going to other page when clicked.
- When a link is clicked, display an alert reading You clicked the xxxx link where xxxx is the actual food they clicked.
- Add a dollar sign before every monetary value.


|
Total No. of calls - 450 |
Total No. of calls - 769 |
|
Total No. of calls - 754 |
Total No. of calls - 752 |


Introduction to CSS Layouts with Flexbox and Grid
A workshop by Lene Frei
Content and structure
- Personal introduction
- Summary HTML and CSS
- What are Grid and Flexbox?
- CSS Grid
- CSS Flexbox
- Last excercise and wrap up
Who am I?
- Name: Lene
- Work: Coach at Neue Fische Bootcamp
- Coding since: June 2019 #codenewbie
- Interests: Coding, Climbing, Yoga
Summary HTML and CSS
-
HTML: most basic building block of the web, defines meaning and structure of web content
-
Includes elements such as:
- No styling
Website with styling:
Website without styling:
Summary HTML and CSS 2
-
CSS: Cascading Stylesheets, to style and layout html
-
CSS selectors type, class but never with id
Summary HTML and CSS 3
-
Attribute selectors
-
Pseudo-classes and pseudo-elements
-
Combinators
More about selectors here
Let's get started!
CSS Grid and Flexbox
Questions you should be able to answer after the workshop!
- What are CSS Grid and Flexbox?
- What is the difference between the two?
- Why should you learn them?
Start with the why...
Why should you even learn CSS Grid and Flexbox?
- Powerful and easy tools
- Content of any webpage needs layout
- Responsivness
Main difference
"The main difference between CSS Grid Layout and CSS Flexbox Layout is that flexbox was designed for layout in one dimension either a row or a column, on the other hand, Grid was designed for two-dimensional layout rows, and columns at the same time.
Flexbox layout is most appropriate to the components of an application, and small-scale layouts, while the Grid layout is intended for larger scale layouts."
Source: Learn CSS Grid and Flexbox fundamentals before 2019 ends! by Shuvo Habib
But..
... sometimes you can also use Grid for components and Flexbox for a more general layout! It always depends on what you would like to do!
CSS Grid
- Create a new Codepen (codepen.io)
- Create a div with the class "container"
- Within this container create 10 more divs with the class "item" (emmet: div.item{$}*10 )
- Codepen
-
background-color: lightblue;
border: 2px solid rgba(0, 0, 0, 0.1);
border-radius: 3px;
font-size: 35px;
- emmet: div.item.item${$}*30
Important notes for Grid
- Using Firefox Developer Edition
- Direct children of grid are called "grid items"
- Explicit and implicit columns and rows
- fr unit
- Repeat function
- span, placing, alignment, centering
Let's Practice!
With codepen:
- For excercise pen click here!
-
A complete guide to CSS grid by css-tricks (really helpful!):
css-tricks.com
- For result pen click here!
With a game:
More sources to learn grid!
CSS Flexbox
Flexbox notes
- important feature: flex-direction, default row
- main axis default left to right, cross axis from top to bottom
- change direction to column; main axis from top to bottom
- flex-shrink on flex-items handy feature
Let's try it!
With codepen:
- For excercise pen click here!
- For result pen click here!
With a game:
More sources to learn flexbox!
Last exercise!
Solving Problems With CSS Grid and Flexbox: The Card UI
- For excercise pen click here!
-
Last exercise!
Solving Problems With CSS Grid and Flexbox: The Card UI
- For result pen click here!
All credit goes to Ian Yates by Envato Tuts+. Click here to get to the whole tutorial.
Wrap up!
Any more questions?
Any feedback?
Thank you for your attention! ☺


Class Controller
Class Controller
- Cygnite\Base\Router\Controller\Controller implements Cygnite\Base\Router\Controller\RouteControllerInterface
Namespace: Cygnite\Base\Router\Controller
Package: Cygnite\Base\Router\Controller
Located at Base/Router/Controller/Controller.php
Package: Cygnite\Base\Router\Controller
Located at Base/Router/Controller/Controller.php
public
|
|
public
mixed
|
#
routeController( mixed $controller )
Set the controller as Route Controller Cygnite Router knows how to respond to routes controller request automatically |
public
array
|
|
public
array
|
|
protected
mixed
|
|
protected
mixed
|
|
protected
mixed
|
|
protected
mixed
|
|
protected
mixed
|
|
protected
mixed
|
|
public
|
#
implicitController( mixed $controller )
Route to controller action using HTTP verbs and defined pattern names as arguments |
public
|
|
public
array
|
#
getRoutesParameters( mixed $method, mixed $controller, mixed $reflection, string $replace = 'Controller' )
|
public
|
|
public
array
|
|
public
array
|
|
public
string
|
|
public
|
|
public
|
|
public
string
|
protected
array
|
$controllerRoutes | ['index', 'add', 'edit', 'show', 'delete'] |
|
protected
array
|
$verbs | [
'any', 'get', 'post', 'put', 'patch',
'delete', 'head', 'options'
] |


Functions for caching on communicators are:
| MPI_COMM_CREATE_KEYVAL(comm_copy_attr_fn, comm_delete_attr_fn, comm_keyval, extra_state) | |
| IN comm_copy_attr_fn | copy callback function for comm_keyval (function) |
| IN comm_delete_attr_fn | delete callback function for comm_keyval (function) |
| OUT comm_keyval | key value for future access (integer) |
| IN extra_state | extra state for callback functions |
int MPI_Comm_create_keyval(MPI_Comm_copy_attr_function *comm_copy_attr_fn, MPI_Comm_delete_attr_function *comm_delete_attr_fn, int *comm_keyval, void *extra_state)
MPI_COMM_CREATE_KEYVAL(COMM_COPY_ATTR_FN, COMM_DELETE_ATTR_FN, COMM_KEYVAL, EXTRA_STATE, IERROR)
EXTERNAL COMM_COPY_ATTR_FN, COMM_DELETE_ATTR_FN
INTEGER COMM_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE
static int MPI::Comm::Create_keyval(MPI::Comm::Copy_attr_function* comm_copy_attr_fn, MPI::Comm::Delete_attr_function* comm_delete_attr_fn, void* extra_state)
Generates a new attribute key. Keys are locally unique in a process,
and opaque to user, though they are explicitly stored in integers.
Once allocated, the key value can be used to associate attributes
and access them on any locally defined communicator.
This function replaces MPI_KEYVAL_CREATE,
whose use is deprecated.
The C binding
is identical. The Fortran binding differs in that
extra_state is an address-sized integer. Also, the copy and
delete callback functions have Fortran bindings that are consistent
with address-sized attributes.
The C callback functions are:
typedef int MPI_Comm_copy_attr_function(MPI_Comm oldcomm, int comm_keyval, void *extra_state, void *attribute_val_in, void *attribute_val_out, int *flag);
and
typedef int MPI_Comm_delete_attr_function(MPI_Comm comm, int comm_keyval, void *attribute_val, void *extra_state);
which are the same as the MPI-1.1 calls but with a new name. The old names are deprecated.
The Fortran callback functions are:
SUBROUTINE COMM_COPY_ATTR_FN(OLDCOMM, COMM_KEYVAL, EXTRA_STATE, ATTRIBUTE_VAL_IN, ATTRIBUTE_VAL_OUT, FLAG, IERROR)
INTEGER OLDCOMM, COMM_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) EXTRA_STATE, ATTRIBUTE_VAL_IN,
ATTRIBUTE_VAL_OUT
LOGICAL FLAG
and
SUBROUTINE COMM_DELETE_ATTR_FN(COMM, COMM_KEYVAL, ATTRIBUTE_VAL, EXTRA_STATE, IERROR)
INTEGER COMM, COMM_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL, EXTRA_STATE
The C++ callbacks are:
typedef int MPI::Comm::Copy_attr_function(const MPI::Comm& oldcomm, int comm_keyval, void* extra_state, void* attribute_val_in, void* attribute_val_out, bool& flag);
and
typedef int MPI::Comm::Delete_attr_function(MPI::Comm& comm, int comm_keyval, void* attribute_val, void* extra_state);
The comm_copy_attr_fn function is invoked when a communicator is
duplicated by MPI_COMM_DUP. comm_copy_attr_fn should be
of type MPI_Comm_copy_attr_function.
The copy callback function is invoked for each key value in
oldcomm in arbitrary order. Each call
to the copy callback is made with a key value and its corresponding attribute.
If it returns flag = 0, then the
attribute is deleted in the duplicated communicator. Otherwise
( flag = 1),
the new attribute value is set to the value
returned in
attribute_val_out.
The function returns MPI_SUCCESS on
success and an error code on failure (in which case
MPI_COMM_DUP will fail).
The argument comm_copy_attr_fn may be specified as
MPI_COMM_NULL_COPY_FN or
MPI_COMM_DUP_FN
from either C, C++, or Fortran.
MPI_COMM_NULL_COPY_FN
is a function that does nothing other than returning flag = 0
and MPI_SUCCESS.
MPI_COMM_DUP_FN is a simple-minded
copy function that sets flag = 1,
returns the value of
attribute_val_in in attribute_val_out, and
returns MPI_SUCCESS.
These replace the MPI-1 predefined callbacks MPI_NULL_COPY_FN
and MPI_DUP_FN, whose use is deprecated.
Advice to users.
Even though both formal arguments attribute_val_in and attribute_val_out are of type void *, their usage differs. The C copy function is passed by MPI in attribute_val_in the value of the attribute, and in attribute_val_out the address of the attribute, so as to allow the function to return the (new) attribute value. The use of type void * for both is to avoid messy type casts.
A valid copy function is one that completely duplicates the
information by making a full duplicate copy of the data structures
implied by an attribute; another might just make another reference to
that data structure, while using a reference-count mechanism. Other
types of attributes might not copy at all (they might be specific to
oldcomm only).
( End of advice to users.)
Advice
to implementors.
A C interface should be assumed for copy and delete functions
associated with key values created in C; a Fortran calling interface
should be assumed for key values created in Fortran.
( End of advice to implementors.)
Analogous to comm_copy_attr_fn is a callback deletion function, defined
as follows. The comm_delete_attr_fn function is invoked when a communicator is
deleted by MPI_COMM_FREE or when a call is made explicitly to
MPI_COMM_DELETE_ATTR.
comm_delete_attr_fn should be
of type MPI_Comm_delete_attr_function.
This function is called by MPI_COMM_FREE,
MPI_COMM_DELETE_ATTR,
and MPI_COMM_SET_ATTR
to do whatever is needed to remove an attribute.
The function returns MPI_SUCCESS on
success and an error code on failure (in which case
MPI_COMM_FREE will fail).
The argument comm_delete_attr_fn may be specified as
MPI_COMM_NULL_DELETE_FN from either C, C++, or Fortran.
MPI_COMM_NULL_DELETE_FN is a function that does nothing, other
than returning MPI_SUCCESS. MPI_COMM_NULL_DELETE_FN
replaces MPI_NULL_DELETE_FN, whose use is deprecated.
If an attribute copy function or attribute delete function returns other than MPI_SUCCESS, then the call that caused it to be invoked (for example, MPI_COMM_FREE), is erroneous.
The special key value MPI_KEYVAL_INVALID is never returned by MPI_KEYVAL_CREATE. Therefore, it can be used for static initialization of key values.
| MPI_COMM_FREE_KEYVAL(comm_keyval) | |
| INOUT comm_keyval | key value (integer) |
int MPI_Comm_free_keyval(int *comm_keyval)
MPI_COMM_FREE_KEYVAL(COMM_KEYVAL, IERROR)
INTEGER COMM_KEYVAL, IERROR
static void MPI::Comm::Free_keyval(int& comm_keyval)
Frees an extant attribute key.
This function sets the value of keyval to
MPI_KEYVAL_INVALID.
Note that it is not erroneous to free an attribute key
that is in use, because the actual free does not transpire until after all
references (in other communicators on the process) to the key have been freed.
These references need to be explictly freed by the program, either via calls
to MPI_COMM_DELETE_ATTR that free one attribute instance, or by calls
to MPI_COMM_FREE that free all attribute instances associated with
the freed communicator.
This call is identical to the MPI-1 call MPI_KEYVAL_FREE but is needed to match the new communicator-specific creation function. The use of MPI_KEYVAL_FREE is deprecated.
| MPI_COMM_SET_ATTR(comm, comm_keyval, attribute_val) | |
| INOUT comm | communicator from which attribute will be attached (handle) |
| IN comm_keyval | key value (integer) |
| IN attribute_val | attribute value |
int MPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attribute_val)
MPI_COMM_SET_ATTR(COMM, COMM_KEYVAL, ATTRIBUTE_VAL, IERROR)
INTEGER COMM, COMM_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL
void MPI::Comm::Set_attr(int comm_keyval, const void* attribute_val) const
This function stores the stipulated attribute value attribute_val
for subsequent retrieval by MPI_COMM_GET_ATTR.
If the value is already present, then the outcome
is as if MPI_COMM_DELETE_ATTRwas first called to delete the previous
value (and the callback function comm_delete_attr_fn was executed), and a new
value was next stored. The call is erroneous if there is no key with value
keyval; in particular
MPI_KEYVAL_INVALID is an erroneous key value.
The call will fail if the comm_delete_attr_fn function returned an error code
other than MPI_SUCCESS.
This function replaces MPI_ATTR_PUT,
whose use is deprecated.
The C binding
is identical. The Fortran binding
differs in that attribute_val is an address-sized integer.
| MPI_COMM_GET_ATTR(comm, comm_keyval, attribute_val, flag) | |
| IN comm | communicator to which the attribute is attached (handle) |
| IN comm_keyval | key value (integer) |
| OUT attribute_val | attribute value, unless flag = false |
| OUT flag | false if no attribute is associated with the key (logical) |
int MPI_Comm_get_attr(MPI_Comm comm, int comm_keyval, void *attribute_val, int *flag)
MPI_COMM_GET_ATTR(COMM, COMM_KEYVAL, ATTRIBUTE_VAL, FLAG, IERROR)
INTEGER COMM, COMM_KEYVAL, IERROR
INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL
LOGICAL FLAG
bool MPI::Comm::Get_attr(int comm_keyval, void* attribute_val) const
Retrieves attribute value by key.
The call is erroneous if there is no key with value
keyval. On the other hand, the call is correct if the key value
exists, but no attribute is attached on comm for that key; in such case,
the call returns flag = false. In particular
MPI_KEYVAL_INVALID is an erroneous key value.
Advice to users.
The call to MPI_Comm_set_attr passes in attribute_val
the value of the attribute; the call to MPI_Comm_get_attr
passes in attribute_val the address of
the
location where the attribute value is to be returned.
Thus, if the attribute value itself is a pointer of type void*,
then the
actual attribute_val parameter to
MPI_Comm_set_attr will be of type void* and the actual
attribute_val parameter to
MPI_Comm_get_attr
will be of type void**.
( End of advice to users.)
Rationale.
The use of a formal parameter attribute_val or type
void* (rather than void**) avoids the messy type
casting that would be needed if the attribute value is declared with a
type other than void*.
( End of rationale.)
This function replaces MPI_ATTR_GET,
whose use is deprecated.
The C binding is
identical. The Fortran binding differs in that
attribute_val is an address-sized integer.
| MPI_COMM_DELETE_ATTR(comm, comm_keyval) | |
| INOUT comm | communicator from which the attribute is deleted (handle) |
| IN comm_keyval | key value (integer) |
int MPI_Comm_delete_attr(MPI_Comm comm, int comm_keyval)
MPI_COMM_DELETE_ATTR(COMM, COMM_KEYVAL, IERROR)
INTEGER COMM, COMM_KEYVAL, IERROR
void MPI::Comm::Delete_attr(int comm_keyval)
Delete attribute from cache by key. This function invokes the
attribute delete function comm_delete_attr_fn
specified when the keyval was created.
The call will fail if the comm_delete_attr_fn function returns an
error code other than MPI_SUCCESS.
Whenever a communicator is replicated using the function MPI_COMM_DUP, all call-back copy functions for attributes that are currently set are invoked (in arbitrary order). Whenever a communicator is deleted using the function MPI_COMM_FREE all callback delete functions for attributes that are currently set are invoked. This function is the same as MPI_ATTR_DELETE but is needed to match the new communicator specific functions. The use of MPI_ATTR_DELETE is deprecated.


ts-smallpt
TypeScript
modification of Kevin Baeson's
99 line C++ path tracer
.
Your browser does not support the canvas element.
Render


Public: Methods for parsing Asciidoc documents and rendering them using erb templates.
There are several strategies for getting the title of the document:
doctitle - value of title attribute, if assigned and non-empty,
otherwise title of first section in document, if present otherwise nil
name - an alias of doctitle title - value of the title attribute, or nil if not present first_section.title - title of first section in document, if present header.title - title of section level 0
Keep in mind that you’ll want to honor these document settings:
notitle - The h1 heading should not be shown noheader - The header block (h1 heading, author, revision info) should not be shown


Rate My Website
Your input really matter to me.
Full Name
Email
Phone Number
Gender
Male
female
Rate Me
Good
Better
Fantastic
Which of the programming languages do you know best?
HTML
CSS
JavaScript
PHP
MySQL
Java
VB.NET
Python
None
Other
Message
Drag the corner to make the window larger
SUBMIT


NETGRIF s.r.o. https://netgrif.com
Transition
Place
Static Place
Add Token
Remove Token
Change Marking
Change Label
Arc
Arc Weight
Arc Data Reference
Reset Arc
Inhibitor Arc
Read Arc
Change Poistion
Delete
Move
Start Simulation
Undo last action.
Choose a file to open.
Reload model from loaded file.
Save as an XML file.
Export as an PFLOW XML file - format of the PNEditor.org (PNEditor also offers a possibility to export and import files in PNML).
Export in SVG format.
Clear will delete the actual Petri net model, any unsaved changes will be lost
Enable to set the width and height of the drawing area.
Align elements (places and transitions) into a grid.
Show data variables.
Show the number of places, transitions, arcs and all elements together.
Click to see information about Petriflow.
Data Variables
Variable
Value


German Sauce
A rich meal for an awesome afternoon.
John Stew
- visibility200
- favorite20
- thumb_up50
- thumb_down10
French Soup
Have a taste of a nourishing soup.
John Soup
- visibility200
- favorite20
- thumb_up50
- thumb_down10
Spanish Chips
A light meal full of nutrients with sweet taste.
- visibility200
- favorite20
- thumb_up50
- thumb_down10
Canadian Noodles
A rich meal for an awesome afternoon.
- visibility200
- favorite20
- thumb_up50
- thumb_down10
Italian Burger
A rich meal for an awesome afternoon.
- visibility200
- favorite20
- thumb_up50
- thumb_down10
Swedish Noodles
A rich meal for an awesome afternoon.
- visibility200
- favorite20
- thumb_up50
- thumb_down10
French Soup
Have a taste of a nourishing soup.
John Soup
- visibility200
- favorite20
- thumb_up50
- thumb_down10
Canadian Noodles
A rich meal for an awesome afternoon.
- visibility200
- favorite20
- thumb_up50
- thumb_down10
Spanish Chips
A light meal full of nutrients with sweet taste.
- visibility200
- favorite20
- thumb_up50
- thumb_down10


#include('../../tpl/header.html')
Hello World
Life is too important to be taken seriously!
Hello World
Life is too important to be taken seriously!
Hello World
Life is too important to be taken seriously!
Hello World
Life is too important to be taken seriously!
#include('../../tpl/footer.html')
不支持 IE 11 以下的浏览器


Exploring Food Loss in Africa
Region -
All
Population
Year
Adequate Crop Storage Facilities
{{countryCodes[0]}}


Grid base design breaks down the design of a webpage into columns and rows. Making it easier to apply styles with CSS.
Responsive webpages are all the hype because of the proliferation of smart phones, tablets, iPads, laptops and all the other devices we use in our daily lives. Having pages that can repsond accordingly to whatever device we are using is essentially what responsive webpage design is about.
Semantic structure are a set of rules that govern a certain language. Just like words in the english language have rules so does HTML.


There was an error loading your spots.
Unfortunately your search returned no results.
{{spot.description}}
Enquire


Olbia is located on the Costa Smeralda on a beautiful stretch of the NE coast. It is a popular holiday destination, having both a wild and rocky coastline and beautiful sandy beaches.
Position 40°55′N, 09°30′E.Yachts can use the (disused) ferry quay for free for one night in the harbour (no electricity or water).
Anchoring in the harbour is also free.
There are also several marinas in the vicinity including the newer Marina di Olbia, at the SE end of the harbour.
Previously there have been incidents of anchored boats being broken into. It may be advisable to leave someone on board if leaving the boat during the evening. Yachts moored against the wall were not affected.
Cruisers also report anchoring comfortably and for free in the large bay to the south of Porto Romano (to port as you approaching Oblia).
Last updated October 2016.