Home
Concept+Tips
Tutorial
Manual
Macros
News
Examples
Download
Alphabetic:
*ObjectJ not required
Screenshots:
Align fluorescence channels
*
Cindy's cells
Cell Counter
Coli-Inspector
Elliptical oocytes
Eucalyptus leafs
Fish eggs + Hough transform
GlassWindow
GlassWindow+Otoliths
Import_ND2_files
Otoliths and tree rings
PeakFinder Tool
*
Perspective Stack View
*
Side-by-side movie
*
SporeTracker
Stabilize Movie in Chunks
*
Weibel Grid Cell counting
GlassWindow
Coli-Inspector
SporeTracker
Otoliths and tree rings
Perspective Stack View
Eucalyptus leafs
Fish eggs + Hough transform
Elliptical oocytes
Weibel Grid Cell counting
Cindy's cells
AlignFluorChannels


CONSTANTS
RCBasic has a special type of variable called a constant which can hold an expression.
This means it can hold an expression and not determine its value until its used. For example you can have a
constant called C that is equal to A + B. Everytime you change the value of A or B, C's value will also change.
Because constants hold expressions, any valid expression in RCBasic can be stored in a constant.
const A = 5
const MY_PRINT = print "hello world"


JavaScript Quiz
This is the question
A
Choice 1
B
Choice 2
C
Choice 3
D
Choice 4
correct or wrong answer


Version Control and GitHub
October 26, 2015
Intro to CSS - Margins, Borders, and Padding
November 6, 2015
Ruby - Arrays and Hashes
November 13, 2015
Ruby - Enumerable Methods
November 19, 2015
Ruby - Classes
November 29, 2015
JavaScript Introduction
December 1, 2015
Recursion
December 13, 2015


Write a program that reads an array of ints and outputs the maximum pairwise product in the given array of non-negative numbers.
Input data format
The first line of the input contains the number of elements in the array.
The second line contains the elements of the array separated by spaces.
The array always has at least two elements.


mime-db
This is a database of all mime types. It consists of a single, public JSON file and does not include any logic, allowing it to remain as un-opinionated as possible with an API. It aggregates data from the following sources:
- http://www.iana.org/assignments/media-types/media-types.xhtml
- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types
Installation
npm install mime-db
Database Download
If you're crazy enough to use this in the browser, you can just grab the
JSON file using RawGit. It is recommended to replace
master
with a release tag as the
JSON format may change in the future.
https://cdn.rawgit.com/jshttp/mime-db/master/db.json
Usage
var db = require('mime-db');
// grab data on .js files
var data = db['application/javascript'];
Data Structure
The JSON file is a map lookup for lowercased mime types. Each mime type has the following properties:
.source
- where the mime type is defined. If not set, it's probably a custom media type.apache
- Apache common media typesiana
- IANA-defined media typesnginx
- nginx media types
.extensions[]
- known extensions associated with this mime type..compressible
- whether a file of this type can be gzipped..charset
- the default charset associated with this type, if any.
If unknown, every property could be undefined
.
Contributing
To edit the database, only make PRs against src/custom.json
or
src/custom-suffix.json
.
The src/custom.json
file is a JSON object with the MIME type as the keys
and the values being an object with the following keys:
compressible
- leave out if you don't know, otherwisetrue
/false
to indicate whether the data represented by the type is typically compressible.extensions
- include an array of file extensions that are associated with the type.notes
- human-readable notes about the type, typically what the type is.sources
- include an array of URLs of where the MIME type and the associated extensions are sourced from. This needs to be a primary source; links to type aggregating sites and Wikipedia are not acceptable.
To update the build, run npm run build
.
Adding Custom Media Types
The best way to get new media types included in this library is to register them with the IANA. The community registration procedure is outlined in RFC 6838 section 5. Types registered with the IANA are automatically pulled into this library.


touchsurface
Swipe event call by inline coding
swipe is a Javascript plugin to be used on touch input devices such as surface, android, iPad, iPhone etc.
Actualy it works on any divice with tuch support and runs Javascript
Swipe event call by inline coding


BlueZ-4.101
Kernel Configuration
Enable the following options in the kernel configuration and
recompile the kernel if necessary:
[*] Networking support --->
<*> or <M> Bluetooth subsystem support --->
<*> or <M> RFCOMM protocol support
[*] RFCOMM TTY support
<*> or <M> BNEP protocol support
[*] Multicast filter support
[*] Protocol filter support
<*> or <M> HIDP protocol support
Bluetooth device drivers --->
Select the appropriate drivers for your Bluetooth hardware.
Installation of BlueZ
Install BlueZ by running the
following commands:
./configure --prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--enable-bccmd \
--enable-dfutool \
--enable-dund \
--enable-hid2hci \
--enable-hidd \
--enable-pand \
--enable-tools \
--enable-wiimote \
--disable-test \
--without-systemdunitdir &&
make
This package does not come with a test suite.
Now, as the root
user:
make install
Install required configuration files as the root
user:
for CONFFILE in audio input network serial ; do
install -v -m644 ${CONFFILE}/${CONFFILE}.conf /etc/bluetooth/${CONFFILE}.conf
done
unset CONFFILE
If desired, install the API documentation as the root
user:
install -v -m755 -d /usr/share/doc/bluez-4.101 &&
install -v -m644 doc/*.txt /usr/share/doc/bluez-4.101
Command Explanations
--enable-bccmd
: This switch
enables building of the BCCMD interface utility.
--enable-dfutool
: This
switch enables building of the DFU firmware upgrade utility.
--enable-dund
: This switch
enables building of the DUN daemon.
--enable-hid2hci
: This
switch enables building of the HID mode switching utility.
--enable-hidd
: This switch
enables building of the HID daemon.
--enable-pand
: This switch
enables building of the PAN daemon.
--enable-tools
: This switch
enables building of the Bluetooth utilities.
--enable-wiimote
: This
switch enables building of the Wii Remote plugin.
--disable-test
: This switch
disables installation of the test programs.
--enable-cups
: This switch enables CUPS
backend support. Note that CUPS does not need to be installed for
this support.
Configuring BlueZ
Config Files
/etc/bluetooth/audio.conf
,
/etc/bluetooth/input.conf
,
/etc/bluetooth/main.conf
,
/etc/bluetooth/network.conf
,
/etc/bluetooth/rfcomm.conf
and
/etc/bluetooth/serial.conf
Boot Script
To automatically start the bluetoothd daemon when the
system is rebooted, install the /etc/rc.d/init.d/bluetooth
bootscript from the
blfs-bootscripts-20140301 package.
make install-bluetooth
Contents
Installed Programs:
bccmd, bluetoothd, ciptool, dfutool,
dund, gatttool, hciattach, hciconfig, hcitool, hid2hci, hidd,
l2ping, pand, rfcomm, and sdptool
Installed Library:
libbluetooth.so
Installed Directories:
/etc/bluetooth, /usr/include/bluetooth,
/usr/lib/bluetooth, /usr/share/doc/bluez-4.101, and
/var/lib/bluetooth
Short Descriptions
|
bccmd
|
is used to issue BlueCore commands to Cambridge Silicon
Radio devices.
|
|
bluetoothd
|
is the Bluetooth daemon.
|
|
ciptool
|
is used to set up, maintain, and inspect the CIP
configuration of the Bluetooth subsystem in the Linux
kernel.
|
|
dfutool
|
is used to verify, archive and upgrade firmware files.
|
|
dund
|
is the Bluetooth dial-up networking daemon.
|
|
hciattach
|
is used to attach a serial UART to the Bluetooth stack as
HCI transport interface.
|
|
hciconfig
|
is used to configure Bluetooth devices.
|
|
hcitool
|
is used to configure Bluetooth connections and send some
special command to Bluetooth devices.
|
|
hid2hci
|
is used to set up switch supported Bluetooth devices into
the HCI mode and back.
|
|
hidd
|
is the Bluetooth HID daemon.
|
|
l2ping
|
is used to send a L2CAP echo request to the Bluetooth MAC
address given in dotted hex notation.
|
|
pand
|
is the Bluetooth daemon that allows you to connect to
ethernet networks using Bluetooth.
|
|
rfcomm
|
is used to set up, maintain, and inspect the RFCOMM
configuration of the Bluetooth subsystem in the Linux
kernel.
|
|
sdptool
|
is used to perform SDP queries on Bluetooth devices.
|
|
libbluetooth.so
|
contains the BlueZ API
functions.
|
Last updated on 2014-02-28 15:16:23 -0800


News story
The 2016 Apprenticeship Pay Survey is an important research project providing information on training, hours and pay from current apprentices.
The findings will be used by government to help set pay policy generally and make improvements in apprenticeship training. The findings will not be used to target specific apprentices or employers for enforcement activity.
IFF Research, an independent research organisation, will be undertaking short telephone interviews with around 10,000 apprentices and will asked questions on pay and hours.
The questions apprentices are likely to be asked will include:
the number of hours you spend working for your employer, in a typical week
the number of additional hours you spend learning and training on top of your normal work. This could include attending college, courses, workshops or training sessions at your employer’s premises or held externally, learning at home, learning from workbooks, time with your assessor and time filling in a portfolio.
how much you earn - ideally the amount you earn in gross terms i.e. before tax, national insurance and other deductions.
The answers to these questions will enable us to look at wage levels nationally, measure changes with previous years and monitor whether employers are adhering to the rules on fair pay.
Apprentices selected to take part in the survey will receive a letter prior to receiving a call from one of the researchers.


In Ghana, children are given their first name as a 'day name' which corresponds to the day in the week they were born. This is known as the Akan naming system. There are different names for each gender.This magical place determines your Akan name by letting you fill up a form with your birthday details. Wanna try it out?


Helium Comedy Club
Curious Comedy Theater
Funhouse Lounge
Brody Theater
The Siren Theater
Harvey's Comedy Club
Stand-up Comedy 101 @ Helium Comedy Club
Kickstand Stand Up and Improv Classes @ Kickstand Comedy Space
Brody Stand Up and Improv Classes @ Brody Theater
Deep End Training Program (Improv and Stand Up) @ the Deep End Theater
← Back


Toolkits > com.ibm.streamsx.network 3.0.0 > com.ibm.streamsx.network.dns > DNSPacketDPDKSource
DNSPacketDPDKSource is an operator for the IBM Streams product that captures live network packets from one of the network interfaces attached to the machine where it executes. The operator function and structure are similar to the PacketLiveSource and DNSMessageParser operators; see the documentation for those for details of common functions and general background. The primary difference between these related operators is that DNSPacketDPDKSource leverages the data plane development kit (DPDK) for higher performance.
Output filters and attribute assignments are SPL expressions. They may use any of the built-in SPL functions, and any of these functions, which are specific to the PacketFileSource operator:
The DNSPacketDPDKSource operator steps quietly over 'jmirror' headers prepended to packets by Juniper Networks 'mirror encapsulation'.
This operator is part of the network toolkit. To use it in an application, include this statement in the SPL source file:
use com.ibm.streamsx.network.dns::*;
Ethernet interfaces normally ignore packets that are not addressed to them. However, when 'promiscious' mode is enabled, they can capture all network packets on their ethernet segment, even those that are not addressed to them. This is sometimes referred to as 'network sniffing'. However, modern ethernet routers normally send only packets that are addressed to the ethernet device; 'promiscious' mode is useful only when a switch has been specifically configured to send packets to an ethernet interface that are not addressed to it. This is sometimes referred to as 'mirroring'.
The DNSPacketDPDKSource operator will enable 'promiscuous' mode in a ethernet interface when its 'promiscous' parameter is set to true.
DPDK supports a variety of ethernet devices. The DNSPacketDPDKSource operator has been tested with these adapters:
The DPDK libraries must be compiled from source code and installed on the machine where the network adapter is installed. Streams processing elements (PEs) must be placed on this machine.
DPDK depends upon additional Linux software packages, beyond those required for Streams. In particular, it requires libraries that match the specific version of the kernel your machine uses. To install these libraries, type these commands at a prompt:
bash> sudo yum install glibc-devel bash> sudo yum install libibverbs-devel bash> sudo yum install "kernel-devel-$(uname -r)"
The DPDK user guide has detailed instructions for installing DPDK and configuring it for particular ethernet devices. These notes are a summary of those instructions. They include many Linux commands that should be entered at a command prompt in a Terminal window. In the instructions below, these commands are prefixed with 'bash>'. Many of the commands require 'root' privileges; they are prefixed with 'bash> sudo'.
identify ethernet device and network interface
Your machine probably has multiple ethernet interfaces. To configure the DPDK device driver, you will need to specify which ethernet device you intend to use with DPDK, and which Linux network interface is assigned to it.
First, display a list of ethernet devices installed in your machine by typing this at a command prompt:
bash> lspci | grep -i ethernet 0002:01:00.0 Ethernet controller: Mellanox Technologies MT27520 Family [ConnectX-3 Pro] 0003:05:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5719 Gigabit Ethernet PCIe (rev 01) 0003:05:00.1 Ethernet controller: Broadcom Corporation NetXtreme BCM5719 Gigabit Ethernet PCIe (rev 01) 0003:05:00.2 Ethernet controller: Broadcom Corporation NetXtreme BCM5719 Gigabit Ethernet PCIe (rev 01) 0003:05:00.3 Ethernet controller: Broadcom Corporation NetXtreme BCM5719 Gigabit Ethernet PCIe (rev 01) 0005:01:00.0 Ethernet controller: Mellanox Technologies MT27520 Family [ConnectX-3 Pro]
If none of the supported ethernet devices listed above under 'hardware dependencies' is displayed, the DNSPacketDPDKSource operator is not supported.
Otherwise, note the numbers preceding the word 'Ethernet' for the device you intend to use with DPDK. These numbers are the PCI 'bus:slot.function' address of the device: they identify the PCI bus the device uses, the physical slot the device is installed in, and the function number (the port number, for cards with multiple ethernet ports).
Then, display a list of Linux network interfaces, and the ethernet devices they are assigned to, by typing this at a command prompt:
bash> ls -la /sys/class/net lrwxrwxrwx. 1 root root 0 Sep 28 09:49 enP2p1s0 -> ../../devices/pci0002:00/0002:00:00.0/0002:01:00.0/net/enP2p1s0 lrwxrwxrwx. 1 root root 0 Sep 28 09:49 enP2p1s0d1 -> ../../devices/pci0002:00/0002:00:00.0/0002:01:00.0/net/enP2p1s0d1 lrwxrwxrwx. 1 root root 0 Sep 28 09:49 enP3p5s0f0 -> ../../devices/pci0003:00/0003:00:00.0/0003:01:00.0/0003:02:09.0/0003:05:00.0/net/enP3p5s0f0 lrwxrwxrwx. 1 root root 0 Sep 28 09:49 enP3p5s0f1 -> ../../devices/pci0003:00/0003:00:00.0/0003:01:00.0/0003:02:09.0/0003:05:00.1/net/enP3p5s0f1 lrwxrwxrwx. 1 root root 0 Sep 28 09:49 enP3p5s0f2 -> ../../devices/pci0003:00/0003:00:00.0/0003:01:00.0/0003:02:09.0/0003:05:00.2/net/enP3p5s0f2 lrwxrwxrwx. 1 root root 0 Sep 28 09:49 enP3p5s0f3 -> ../../devices/pci0003:00/0003:00:00.0/0003:01:00.0/0003:02:09.0/0003:05:00.3/net/enP3p5s0f3 lrwxrwxrwx. 1 root root 0 Sep 28 09:49 enP5p1s0 -> ../../devices/pci0005:00/0005:00:00.0/0005:01:00.0/net/enP5p1s0 lrwxrwxrwx. 1 root root 0 Sep 28 09:49 enP5p1s0d1 -> ../../devices/pci0005:00/0005:00:00.0/0005:01:00.0/net/enP5p1s0d1 lrwxrwxrwx. 1 root root 0 Sep 28 09:49 lo -> ../../devices/virtual/net/lo
Find the Linux network interface of your ethernet device by matching its PCI 'bus:slot:function' address to those listed, preceding the string '/net/'.
For example, the 'lspci' list shows two Mellanox ethernet devices with PCI addresses '0002:01:00.0' and '0005:01:00.0'. The 'ls' list shows the adapters are assigned to network interfaces 'enP2p1s0' and 'enP5p1s0', respectively.
Select the Linux network interface and PCI 'bus:slot.function' address of the ethernet device you intend to use with DPDK, and remember them for use below under 'prepare Linux user account for DPDK'. To verify your selection, type this command at a prompt, substituting your network interface name, and verify that 'bus-info:' shows the PCI address of your ethernet device:
bash> ethtool -i enP2p1s0 driver: mlx4_en version: 3.3-2.0.0 (28 Jul 2016) firmware-version: 2.36.5150 bus-info: 0002:01:00.0
create Linux user group for DPDK
DPDK will lock the memory pages containing its buffers to prevent the kernel from swapping them out to disk while it is using them. Users who run the DNSPacketDPDKSource operator will need permission to do this.
To grant this permission, create a Linux user group for DPDK and add the user accounts that will run the DNSPacketDPDKSource operator to the group.
For example, to create a Linux user group 'dpdk' and add your own user account to it, open a Terminal window and type these commands at the prompt:
bash> sudo groupadd dpdk bash> sudo usermod -a -G dpdk $USER
To verify that your user account is in the 'dpdk' group, type this at a command prompt:
bash> groups $USER streamsdpdk : streamsdpdk dpdk
To grant permission to lock memory pages, edit the '/etc/security/limits.conf' system file:
bash> sudo vi /etc/security/limits.conf
and insert this line into the 'limits.conf' file:
@dpdk - memlock unlimited
prepare Linux user account for DPDK
You will need some environment variables whenever you use DPDK. To set these variables permanently, edit the '$HOME/.bashrc' script by typing this at a command prompt:
vi $HOME/.bashrc
and insert these lines into the '.bashrc' file, substituting the Linux network interface and PCI 'bus:slot.function' address of the ethernet device you intend to use with DPDK:
export RTE_SDK=$HOME/dpdk-2.2.0 [[ $( uname -m ) == "x86_64" ]] && export RTE_TARGET=x86_64-native-linuxapp-gcc [[ $( uname -m ) == "ppc64le" ]] && export RTE_TARGET=ppc_64-power8-linuxapp-gcc export DPDK_INTERFACE=network-interface-name export DPDK_DEVICE=$( ethtool -i $DPDK_INTERFACE | gawk '/bus-info:/ { print $2 }' )
log off and log back on
After creating the 'dpdk' user group and making the changes to $HOME/.bashrc described above, log off your user account and log back in to put the changes into effect.
configure Linux 'hugepages'
DPDK uses Linux kernel 'hugepages' support to allocate large buffers with minimal 'translation lookaside buffer (TLB)' overhead. The size and number of 'hugepages' available for DPDK must be configured in the Linux kernel. This requires 'root' access, and may require rebooting the machine.
Note that the memory allocated for hugepages will reduce the memory available for Streams and other applications.
To display the amount of memory installed in your machine, and the amount of memory available, type this at a a command prompt:
bash> cat /proc/meminfo | grep -i mem MemTotal: 263636096 kB MemFree: 226797632 kB MemAvailable: 249287680 kB Shmem: 131776 kB
To display the size and number of hugepages currently allocated, type this at a command prompt:
bash> cat /proc/meminfo | grep -i hugepages AnonHugePages: 0 kB HugePages_Total: 10 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 16384 kB
The supported sizes of hugepages depend upon the machine architecture. Typical sizes for the architectures supported by IBM Streams include:
The size of hugepages on your machine is set by Linux kernel parameters when the machine is booted. If you want to change the size of hugepages on your machine, please refer to these documents for details:
The number of hugepages is determined by the 'vm.nr_hugepages' system control parameter. This parameter can be set when the system is booted, and it can be changed later while the system is running.
For example, to set the 'vm.nr_hugepages' parameter to 1000 when the system boots, edit the '/etc/sysctl.conf' system file and set the parameter like this:
vm.nr_hugepages=1000
To set the 'vm.nr_hugepages' parameter to 1000 while the system is running, type this at a command prompt:
bash> sudo sysctl -w vm.nr_hugepages=1000
To verify that the 'vm.nr_hugepages' parameter is set to 1000, type this at a command prompt:
bash> sysctl vm.nr_hugepages vm.nr_hugepages = 1000
To verify that the number of hugepages available is actually 1000, type this at a command prompt:
bash> cat /proc/meminfo | grep -i hugepages AnonHugePages: 0 kB HugePages_Total: 1000 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 16384 kB
If the number of hugepages has not 1000, memory may be too fragemented. In this case, you will need to reboot the machine and then set the number of hugepages.
To make the hugepages accessible to the user accounts that will run the DNSPacketDPDKSource operator, create and mount a directory for them by typing these commands at a prompt:
bash> sudo mkdir /dev/hugepages bash> sudo mount -t hugetlbfs nodev /dev/hugepages -o gid=dpdk,mode=1770
To ensure the hugepages are mounted in the '/dev/hugepages' directory when the machine is rebooted, edit the '/etc/fstab' system file by typing this command at a prompt:
bash> sudo vi /etc/fstab
and inserting this line into the file:
nodev /dev/hugepages hugetlbfs gid=dpdk,mode=1770 0 0
get DPDK library and utilities
The DPDK source code needs to be downloaded, configured for your machine's architecture and ethernet device, and compiled into libraries and utilities.
First, download the DPDK source code and configure it for your machine's architecture by typing these commands at a prompt:
bash> wget http://fast.dpdk.org/rel/dpdk-2.2.0.tar.xz bash> tar -xvf dpdk-2.2.0.tar.xz bash> cd $RTE_SDK bash> make config T=$RTE_TARGET
Then, edit the DPDK configuration file by typing this command:
bash> vi ./build/.config
and change these parameters in the '.config' file:
CONFIG_RTE_BUILD_COMBINE_LIBS=y CONFIG_RTE_MAX_MEMSEG=1024
and, if your machine has a Mellanox ethernet device, change this parameter in the '.config' file, too:
CONFIG_RTE_LIBRTE_MLX4_PMD=y
Then, compile DPDK by typing this command at a prompt:
bash> EXTRA_CFLAGS=-fPIC make bash> EXTRA_CFLAGS=-fPIC make install T=$RTE_TARGET
re-compile Streams network toolkit
If you don't already have the Streams network toolkit, get it by typing these commands at a prompt:
bash> cd $HOME/git bash> git clone git@github.com:ejpring/streamsx.network.git
In any case, you will need to compile the Streams DPDK glue library. To do this, type these commands at a prompt:
bash> cd $HOME/git/streamsx.network bash> ant
Before Streams can use an ethernet device with DPDK, it must be bound to a DPDK device driver.
For the 'e1000' family of devices, load the DPDK device driver into the Linux kernel by typing these commands at a prompt:
bash> sudo modprobe uio bash> sudo insmod $RTE_SDK/build/kmod/igb_uio.ko || true
The DPDK device driver requires exclusive use of the ethernet device. To stop the Linux device driver, type these commands at a prompt:
bash> sudo ip link set dev $DPDK_INTERFACE down bash> ip link show dev $DPDK_INTERFACE
To bind an ethernet device of the 'e1000' family to the DPDK device drier, type these commands at a prompt:
bash> sudo $RTE_SDK/tools/dpdk_nic_bind.py --bind=igb_uio $DPDK_DEVICE bash> sudo $RTE_SDK/tools/dpdk_nic_bind.py --status
Then grant read/write access to the DPDK device driver's files to the 'dpdk' user group by typing these commands at a prompt:
bash> sudo chown root:dpdk /dev/uio0 /sys/class/uio/uio0/device/config /sys/class/uio/uio0/device/resource* bash> sudo chmod 664 /dev/uio0 /sys/class/uio/uio0/device/config /sys/class/uio/uio0/device/resource*
You can now run one of the sample applications that use DPDK, or run your own SPL application.
After Streams has finished using an ethernet device with DPDK, it should be rebound to the Linux device driver.
To bind an ethernet device of the 'e1000' family to the Linux device driver, type these commands at a prompt:
bash> sudo $RTE_SDK/tools/dpdk_nic_bind.py --bind=igb $DPDK_DEVICE bash> sudo $RTE_SDK/tools/dpdk_nic_bind.py --status
Then start the Linux device driver by typing these commands at a prompt:
bash> sudo ip link set dev $DPDK_INTERFACE up bash> ip link show dev $DPDK_INTERFACE
To be done ...
To be done ...
The network toolkit includes several sample applications that illustrate how to use this operator.
The ethernet frame format is described here:
The ethernet header and the fields it contains are described here:
The IPv4 header and the fields it contains are described here:
The IPv6 header and the fields it contains are described here:
The UDP header and the fields it contains are described here:
DNS messages and the fields they contain are described here:
The Juniper Networks 'jmirror' encapsulation header is described here:
The Cisco Systems ''Encapsulated Remote Switch Port Analyzer (ERSPAN)' encapsulation headers are described here:
The 'Generic Route Encapsulation (GRE)' headers used by Cisco ERSPAN encapsulation are described here:
The Linux tcpdump command is described here:
The Wireshark tools are described here:
The result functions that can be used in boolean expressions for the outputFilters parameter and in output attribute assignment expressions are described here:
Required: lcore
Optional: lcoreMaster, metricsInterval, nicPort, nicQueue, outputFilters, promiscuous
The DNSPacketDPDKSource operator requires one or more output ports:
Each output port will produce one output tuple for each packet received if the corresponding expression in the outputFilters parameter evaluates true, or if no outputFilters parameter is specified.
Output attributes can be assigned values with any SPL expression that evaluates to the proper type, and the expressions may include any of the DNSPacketDPDKSource result functions. Output attributes that match input attributes in name and type are copied automatically.
Required: lcore
Optional: lcoreMaster, metricsInterval, nicPort, nicQueue, outputFilters, promiscuous
Logical core number on which this operator will run.
Logical core number to be used for the master DPDK thread.
This optional parameter takes an expression of type float64 that specifies the interval, in seconds, for sending operator metrics to the Streams runtime. If the value is zero or less, the operator will not report metrics to the runtime, and the output assigment functions for libpcap statistics will be zero.
The default value is '10.0'.
NIC port of type uint32 which sources packets for this operator instance. Obtaining the proper mapping may require use of multiple tools, and varies by NIC.
Suggested tools to help identify NIC ports:
- ifconfig
- dpdk-*/tools/dpdk_nic_bind.py --status
- ibstat (for Mellanox NICs)
- lspci | grep -i net
NIC queue of type int32 which sources packets for this operator instance.
This optional parameter takes a list of SPL expressions that specify which packets should be emitted by the corresponding output port. The number of expressions in the list must match the number of output ports, and each expression must evaluate to a boolean value. The output filter expressions may include any of the DNSPacketDPDKSource result functions.
The default value of the outputFilters parameter is an empty list, which causes all packets processed to be emitted by all output ports.
This optional parameter takes an expression of type 'boolean' that specifies whether or not 'promiscuous' mode should be enabled on the network interface.
This metric counts the number of packets received by the network interface, as counted by DPDK.
This metric counts the number of packets dropped by the network interface, as counted by DPDK.
This metric counts the number of bytes received by the network interface, as counted by DPDK.
This metric counts number of bytes of packet data processed by the operator.
This metric counts number of bytes of packet data processed by the operator.


5 * * * * /home/aspera/my_script.sh
What the above shows, per column:
Minute to run on, a value of 0-59: 5 means on the 5th minute of the hour
The Hour, a value of 0-23: * means every hour
Day of the Month, 1-31: * means every day of the month
The Month, 1-12: * means every month
Day of the Week, 0-7 (0 and 7 are both Sunday): * means every day
The Command: In this case, a command at/home/aspera/my_script.sh
With older crontabs, like the one on legacy Solaris, this is mostly all that can be done. One variation is to use comma separated lists. Modern crontabs can use string names for days, and wildcards with increments. So, to create an entry that runsmy_script.sh every 5 minutes would be as follows on Linux:
*/5 * * * * /home/aspera/my_script.sh
The */5 notation in the first column means "every 5 minutes". To make this every 10 minutes, */10 is used. To do the same 5 minute interval on a Solaris system, try the following:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/aspera/my_script.sh


Preparation time
30 mins to 1 hour
Cooking time
30 mins to 1 hour
Serves
Serves 4
Patia is a traditional curry that was brought from Persia to India. In this recipe it is paired with wonderfully flavoured fish to create a mouthwatering meal.
Blend half of the lime juice with the turmeric. Apply inside all of the fish and set aside.
Put the prawns and the remaining ingredients (apart from the oil) in a blender and blend together. Season with more salt if required and add the remaining lime juice. Fill each fish with the prawn mixture. Press the fish down to get a straight shape and transfer to the fridge.
Meanwhile, make the patia. Heat the oil in a deep saucepan and add the cinnamon and cook for 30 seconds. Add the onions and sauté until soft and brown, stirring regularly.
Meanwhile blend the dry powders in a small bowl with the vinegar and a little water to make a smooth paste. Cover and set aside.
When the onions are brown add the ginger, garlic and chillies. Sauté for 2-3 minutes. Add a little water to the pan to release any sugars from the onion stuck to the bottom of the pan.
Add the blended powders to the pan. When the mixture becomes dry add the tomatoes, tamarind and jaggery and cook gently for a further 4-5 minutes. Season with salt, add the coriander and remove from the heat.
Preheat the oven to 160C/140C Fan/Gas 3.
To cook the fish, heat the oil in a large frying pan with an oven-proof handle. Carefully add the fish to the pan and cook over a medium heat. When the fish has browned on one side, turn it over. The best way is to turn the fish from the centre and keep either a fork or a spatula on top and a flat fish slice or spatula at the bottom.
When both sides of the fish are brown, place in the oven for 10-12 minutes until cooked through.
Divide the fish between 4 plates and pour over the patia. Sprinkle the coriander on top and serve with steamed rice or warm chapattis.


Data is loaded from a text file. To begin, select the file by clicking on the "Browse" button and choose the file you want to process on the dialog window that appears. Select the delimiter type. Once a file is and the delimiter is selected, click on the "Process Data" button to begin the loading and processing of the training data.
Each line in the file is a training example with one or more features followed by its the classification category. Each of these values are separated by a delimiter, e.g. tabs, spaces, commas, etc.
Example 1
0,1,1
In the above example, the line contains 3 values separated by a comma delimiter. This means that the training example has 2 features (0, 1) and its classification category is 1.
Example 2
8.55 26.3 2
Example 2 also has 2 features (8.55, 26.3) and a classification category of 2, separated by spaces
If there are several examples provided in the text file, it will estimate the number of categories. If the text file loading and processing succeeded, the status indicator will look similar to the one below:
A failure in the loading and processing is also similarly indicated:
Most loading and processing errors that occur are due to the mismatch between the chosen delimiter and the one used by the file.
Support vector machines are binary classifiers. In order to train a model to perform multi-class/category classification, multiple models are needed, i.e. one model for each class/category. Input data is mapped into a new space via "kernels" to enhance the separability between different classes. SVMs are usually slower to train compared to other machine learning methods. Furthermore, mapping input data into new spaces also incurs a performance penalty. It is therefore recommended that multiclass SVMs are only utilized for small data sets.
Kernels requires one or two parameters, e.g. (σ, slope, intercept, etc.). A model cannot be added if another model has the same Category number or if it has a value beyond those obtained from the loaded data.
Regularization, Tolerance, Passes, CategoryThe regularization parameter C controls the ability of the trained model to generalized on an unseen data, i.e. the trade-off between low error on the training set, versus a low error on the test set.
The Tolerance parameter is used for determinining the equality between floating point values, i.e. if difference between floating point values is less than the tolerance value then the two floating point values are "equal".
The training process iterates over the training examples up to the limit set by the Passes parameter. The process terminates if it has reached the maximum number of passes. If the model's α parameter values do not change or if the difference is less than the Tolerance value it completes 1 pass, otherwise the counter is reset.
The Category parameter controls what the model should consider as a positive example, e.g. Category = 1 means that it only considers examples classified as 1 to be a positive example. For data sets comprising several categories, a separate model must be trained for each unique category.
Test data is also loaded from a text file similarly. Select the file by clicking on the "Browse" button and choose the file you want to process on the dialog window that appears. Click on the "Process data" to load the test data. Similar success or failure indicators are also shown based on the results of the loading process. Set the classification threshold and click on the "Classify" button to classify the loaded test data. The threshold value indicates the minimum prediction score required to classify one sample into a specific category. You can choose to classify using only one model or classify with all models by choosing "All models" from the model selector. Classifying with "All models" will expose each test data point to all models will choose the best classification result.
Trained model parameters are viewable in this page. You can also save or load these trained model parameters to/from a JSON file. This JSON file is fully compatible with the Support Vector Machine Classifier software and can be used interchangeably with that program.
Plot the classified test data or save it as a scalable vector graphics (SVG) file. Contour lines (decision boundaries) display is optional.


Ireland (Listeni/ˈaɪərlənd/; Irish: Éire [ˈeːɾʲə] ( listen); Ulster-Scots: Airlann pronounced [ˈɑːrlən]) is an island in the North Atlantic. It is separated from Great Britain to its east by the North Channel, the Irish Sea, and St George's Channel. Ireland is the second-largest island of the British Isles, the third-largest in Europe, and the twentieth-largest on Earth.


dengue {border-style Saudi control px;} #ffffff;} arboviral vector health mosquito threat risk diseases Aedes approaches biological community integrated public Arabia Zika communication disease effective monitoring programs px; sustainable {font-family Health change community-based crucial data development emerging font-size local management virus Aedes-linked Gulf awareness double; environment implementation including preparedness research viral ./s--- analysis approach behavioral border-color border-width dengue, early education epidemics innovative needed resilience response social solid; strategies surveillance use used vector-borne warning {font-style {font-weight Dis Med Public Strengthening behavior biocontrol bold cases concern countries courier; em; evidence-based global improve improving laboratory mobilization mosquitoes need new potential prevention preventive pt;} quality reduce threats vectors


Start, Stop, or Restart the OSVR Server on this machine.
Enable or disable direct mode.
The Tracker Viewer utility visualizes OSVR trackers and can be useful to check if an OSVR device is working properly.
Reset Yaw adds a transformation to the specified OSVR path (/me/head by default) to reset the forward direction to the current direction.
Sample applications that use OSVR.


A little thing called version control
Imagine you’re doing super sophisticated work on something. Let’s say you’re painting and you want to experiment with the colors and see where it takes you. You could paint different versions of it with different colors until you’re sick of it, or, if you really like pain, you could experiment over the same canvas. Version Control is like having a tiny robot on your shoulder creating an exact version of that painting at moments of your choosing. So if you mess up, you could go back to an earlier version and, similarly, if you decide a combination of colors worked better than another, you could select that particular one and make it your “master” painting.
What it means in dev talk (unmastered as of yet, but I’ll give it a try) is that as long as record a snapshot if a particular set of choices, version control will keep that for you. What’s great about that is that you don’t have to be a developer to benefit from it. Regardless of what files or projects you’re working on, version control can help you retain the ideas or milestones of your choosing as the project is progressing and you can visualize your (and your team’s) thinking process.
For a developer this means using git, a version control system which you can use locally on your computer or link it to GitHub, which is a web-based sharing service for your git files. Git is pretty smart too about recording these changes. It won’t automatically record every change; instead, it will offer you a “stage” where you can send your changes to when you’re ready to commit to them. So you select your a sequence of changes and send them to the stage and give the final green light that git can commit to that change. This can stay entirely local (depending on the nature and scope of the project) or it can be pushed to GitHub and stored remotely as well. GitHub will store that change and make it available for review by other people, which is a great way to learn from other developers and bounce ideas off each other.


{% include "header.html" -%}
Regionalization is spatially constrained clustering. Areas on the map are broken up into regions in which the data points have similar values. The regions must be contiguous.


I'm a software developer based in Lagos, Nigeria. Speciality is providing software solutions and making dreams come through the awesome power of codes. A software evangelist and full stack mafia though I tend to spend more of my time on backend and DevOps. I generally enjoy building stuff, hacking things and consistently working on improving my skills. If there's a tech meetup in Lagos, you'd probably see me there. My second love is music, reason why I code with headphones on.


@(weatherAggs : Seq[models.WeatherAggregate], fromDate: Option[String], toDate: Option[String]) @ifDateRange = { @if(fromDate != None) { (@fromDate - @toDate) } else { } }


Confirmed cases
{{conf_number}}
Active
cases
{{active_number}}
Recovery cases
{{recover_number}}
Deceased cases
{{death_number}}
{{conf_number}}
{{active_number}}
{{recover_number}}
{{death_number}}
{{number_high_conf}} in {{state_high_conf}}
{{number_high_death}} in {{state_high_death}}
{{number_high_recover}} in {{state_high_recover}}
{{number_high_conftest}} in {{state_high_conftest}}
{{number_high_deathrate}} in {{state_high_deathrate}}
{{number_high_recoverrate}} in {{state_high_recoverrate}}
{{high_occur}} on {{high_occur_date}}
{{high_occur_rec}} on {{high_occur_date_rec}}
{{high_occur_death}} on {{high_occur_death_date}}


Linked List Important Questions
Important concepts:
- Finding length of the linked list
- Reversing a section (or entire) of the linked list
- Finding middle of linked list
- Edge cases (null especially)
- Slow and fast pointers
Easy/Medium
- https://leetcode.com/problems/linked-list-cycle
- https://leetcode.com/problems/linked-list-cycle-ii
- https://leetcode.com/problems/reorder-list (Try to do it without using extra space)
- https://www.interviewbit.com/problems/remove-duplicates-from-sorted-list/
- https://www.interviewbit.com/problems/merge-two-sorted-lists/
- https://www.interviewbit.com/problems/remove-nth-node-from-list-end/
- https://www.interviewbit.com/problems/k-reverse-linked-list/ (A nice problem asked multiple times)
- https://www.interviewbit.com/problems/swap-list-nodes-in-pairs/
- https://www.interviewbit.com/problems/rotate-list/
- https://practice.geeksforgeeks.org/problems/check-if-linked-list-is-pallindrome/1
Hard
- https://leetcode.com/problems/copy-list-with-random-pointer (IMP)
- https://www.interviewbit.com/problems/remove-duplicates-from-sorted-list-ii/
- https://www.interviewbit.com/problems/lru-cache/ (IMPORTANT asked in a lot of interviews)


public class ParseException extends Exception
| Modifier and Type | Field and Description |
|---|---|
Token
|
currentToken
This is the last token that has been consumed successfully.
|
protected
String
|
eol
The end of line string for this machine.
|
int[][]
|
expectedTokenSequences
Each entry in this array is an array of integers.
|
protected boolean
|
specialConstructor
This variable determines which constructor was used to create
this object and thereby affects the semantics of the
"getMessage" method (see below).
|
String
[]
|
tokenImage
This is a reference to the "tokenImage" array of the generated
parser within which the parse error occurred.
|
| Constructor and Description |
|---|
ParseException
()
The following constructors are for use by you for whatever
purpose you can think of.
|
ParseException
(
String
message)
Constructor with message.
|
ParseException
(
Token
currentTokenVal,
int[][] expectedTokenSequencesVal,
String
[] tokenImageVal)
This constructor is used by the method "generateParseException"
in the generated parser.
|
| Modifier and Type | Method and Description |
|---|---|
protected
String
|
add_escapes
(
String
str)
Used to convert raw characters to their escaped version
when these raw version cannot be used as part of an ASCII
string literal.
|
String
|
getMessage
()
This method has the standard behavior when this object has been
created using the standard constructors.
|
fillInStackTrace
,
getCause
,
getLocalizedMessage
,
getStackTrace
,
initCause
,
printStackTrace
,
printStackTrace
,
printStackTrace
,
setStackTrace
,
toString
protected boolean specialConstructor
public Token currentToken
public int[][] expectedTokenSequences
public String [] tokenImage
protected String eol
public ParseException( Token currentTokenVal, int[][] expectedTokenSequencesVal, String [] tokenImageVal)
public ParseException()
public ParseException( String message)
public String getMessage()
getMessage
in class
Throwable


Issue Two
Greta had heard of him through her friend Betsy, who liked him so much that she had given out his card to all her friends as an early Christmas gift; when she gave it to Greta, she warned that he didn’t appreciate that people had more enjoyable things to do than therapy. “He’ll take over your life. Still—completely brilliant. Went to Oxford, you know; first and everything. Brilliant. Practically insane, too, but ah, c’est la vie.”
Betsy, a divorcée, was too restless to enjoy speed dating and therefore engaged in the more energetic practice (to her, anyway) of speed-therapy, out of which she derived much pleasure and little self-improvement. She had also never studied French, but liked to throw in French phrases whenever she could; Greta (who had) was a good enough friend to let her.
Unsurprisingly, Miles Agost spoke French, too, and it was in French that he began their first session, which Greta had scheduled out of curiosity. “Bonjour, ma cherie!”
“Mr. Agost. Please.”
He settled into his massive armchair by the fire and beamed, looking like the Buddha statue behind him. “Call me Miles.”
Greta, sitting opposite him on an only slightly less plush armchair, threaded her fingers together and made a cage of them. “Alright.”
His smile faltered, and he paused for a moment, rubbing a veined hand over his chin as he looked at the cage of Greta’s hands. “Quite the sculpture you have there. Post-modern, I feel—a touch of Duchamp, no doubt.”
“I’m not familiar.”
“My God, woman, Duchamp! A genius of the highest order—placed a urinal in public, violated the ideas we as a primitive, conservative society have of what counts as art—the interaction of Man, the Consumer, and Man, the spirit.” He was in ecstasy at the full height of his power as Miles Agost, the man who knew everything and still felt the need to prove himself. “Duchamp—” a deep, lustful sigh— “loathed the individual in art; without others, the art was nothing.” He paused, frowning into space, as if disappointed by what he saw. “God knows why the man wanted to play chess.”
“Maybe he just wanted to be alone,” she suggested. Miles sat back in his chair and observed her.
“Is this your first time in therapy?”
“Yes.”
“Mmm, good, good.”  Miles’ office—like Miles himself—was a self-conscious mixture of cultures, personal inclinations, and ostentatious display, best demonstrated by the fact that he had placed a photograph of himself shaking hands with the Dalai Lama above the mantelpiece. Greta wondered briefly what His Holiness would think of her current situation.
Miles’ hand snatched up the pipe and retreated back to the armchair, where it dropped the pipe and then, after travelling upwards to his cardigan pocket, began fumbling for matches. “How is your art these days?”
Startled, Greta collapsed the cage of her hands.  The pipe lingered as an afterthought on the corner of his mouth.
“Betsy is sweet,” she said, looking down at her hands. “But horribly addicted to lying.”
“I wouldn’t say so. Ms. Klein was in raptures about one particular painting— of which you have many, I understand, portraits?” He paused here, having arrived at the point, and folded his hands neatly, as if satisfied by the way in which he had chosen to reach it.
She knew the painting he was talking about, of course; practically everybody who knew her did—not out of her own telling, but of others. They claimed it was beautiful, haunting, but Greta knew beautiful and Greta knew haunting, and didn’t understand how they could exist in the same thing.  “I paid my way through art school. Small jobs, really. A couple portraits here and there to make ends meet.”
Miles frowned. With the pipe, his moustache, and lined eyes, he bore a faint resemblance to a basset hound that had been promised food and was instead given an empty bowl. “Ah, that common American colloquialism: make ends meet. Horrifying, really—consider, that is how all Americans view art, as moving towards an end.” He shook his head in disgust and tapped his pipe against his chair as he continued his musings. “Now, of course, your paintings would be quite the commodity. A critique on the capitalist nature of society, you know, the horrific intersection of commerce and the artiste. C’est un dommage—” a slam of his fist—“A pity, Ms. Cohen. A true pity.” His eyes widened, and he glanced skyward, as if praying for patience, before returning his gaze to hers.
Greta was beginning to understand why Betsy liked him so much; they both had a flare for making their lives a solo performance. “They were just paintings,” she offered, thinking of those days in the studio, when her hair had smelled like turpentine and everything had seemed stained with the anticipation of youth. Now, she did not paint, or sculpt, or do anything of kind; she lived quietly, cleanly. She took pains to ensure that her hair did not smell.
“Just paintings!” Miles cried, his eyes bugging out. “Mon dieu, Ms. Cohen, that is ridiculous. Look at the masters—take Degas, for example.”
Greta nodded, more out of an attempt to rid herself of these thoughts than to agree with him; he, however, took it as encouragement and launched into a lecture on Degas. As it was winding down, he took up his pipe and, leaning forward, confided, “Personally, I find ballet disgusting, but the man was clearly onto something, with all those plaster girls. Imagine that your life can be captured like that,” he said, slamming his fist for emphasis. “You are alive and dead all at once.”
It was, Greta conceded, an interesting idea.
(continued in-print in Issue Two of Postscript)
Sarah Cooke is a recent graduate of Sidwell Friends School in Washington D.C., where she was the co-editor-in-chief of its literary magazine and head of its Theater Club. She has received Regional Gold Keys and National Gold Medals from the Scholastic Art & Writing Awards for her work in short story, poetry, and play-writing, as well as two American Voices nomination and a Gold Key for her senior portfolio. Her one-act "Lungs" was produced Off-Broadway at 59E59 Theaters in New York City as part of Writopia Lab's 2012 Playwright Festival. She works as a teaching assistant at Writopia Lab, and has attended the University of Virginia Young Writers Workshop, The Kenyon Review Young Writers Workshop, and, most recently, the Iowa Young Writers' Studio. This fall, she will be a freshman at Brown University, where she hopes to study creative writing, theater, and a multitude of equally unprofitable pursuits.
Copyright © 2012-2015, The Postscript Journal. All rights reserved.


Table of contents
Install
Install JBoss Application server 4.2 or EAP 4.2
Download from here. Install in the usual way. For the zip distribution simply unzip in a directory of your choice.
If you are installing JBoss Application Server you'll end up having a directory called jboss-4.2.X.GA where X is the minor version of the server you've downloaded. Current latest version is 4.2.1.
If you are installing JBoss EAP 4.2 then you'll probably have a directory called jboss-eap-4.2.
I will call $JBOSS_HOME "jboss-eap-4.2/jboss-as" or jboss-4.2.X.GA depending on the what you've installed.
Set JENKINS_HOME
Just export JENKINS_HOME=<some dir> (UNIX) or set JENKINS_HOME=<some dir> (Windows) before starting JBoss Server.
Deploy jenkins.war
Copy jenkins war to "$JBOSS_HOME/server/<your server>/deploy". <your server> will most probably be "default" but could be "production" if you have installed JBoss EAP and have more than 2G RAM.
Start JBoss Server
cd $JBOSS_HOME
bin/run.sh -b <IP_ADDRESS> -c <your server>
Important! If you need security, e.g will enable jenkins security and have network connections to untrusted networks make sure to secure your jmx and web console before starting the server that way! JBoss EAP is secured by default but you should follow "getting started" instructions for the community release. Until you do, start the server with "-b <IP_ADDRESS>" to be locally accessible only.
Access Jenkins GUI
Open in a browser http://<machine name>:8080/jenkins
Additional Configuration
JBoss startup
I would recommend setting at least 2 options when starting jboss as a container for jenkins- "-Djava.awt.headless=true" and "-Xmx<some reasonable value>".
The first one is even required for jenkins if there is no X server available by an UNIX installation but will safe you from troubles anyways. More information about headless mode here.
Then setting maximum available memory for use by the server depends on jobs that will be executed as well jenkins plug-ins that get used. We've hit out of memory issues with the junit report plug-in as it needs much memory to prepare big reports. Keep in mind that you will need to have enough memory to handle communications with slaves. And when getting OOM be sure to understand where does it come from - master or slave. To be able to handle the large number junit tests per job we've had to boost memory on both - master and slaves.
To pass these options you can set the environment variable JAVA_OPTS:
Linux: export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Xmx<some reasonable value>" Windows: set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true -Xmx<some reasonable value>
As well you can modify run.sh/bat to avoid having that environment variable set for the child processes (jobs are one of them) you run. I use the following ugly bash script to avoid modifying that:
#!/bin/bash if [[ `dirname "$0"` != "." ]]; then cd `dirname "$0"` || exit 2 exec $SHELL -- `basename "$0"` "$@" fi ( JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true $MAX_JAVA_MEM" cd $JBOSS_HOME/bin . run.sh -c default -b <IP_ADDRESS> -u $MCAST_ADDR -g Jenkins ) &> ~/jenkins.log < /dev/null &
Make sure to have JBOSS_HOME and MAX_JAVA_MEM set.
Securing Jenkins
Configure login when delegating auth to container
FOR MORE COMPLETE DOCUMENTATION SEE http://www.jboss.org/community/docs/DOC-12188
I'll describe one easy way to do. It's most suitable for local installations or when you have the JBoss server dedicated for Jenkins. You could, of course, implement whatever authentication mechanism you need. Refer to the JBoss manual pages for more information. User forums and mailing lists are the best place to get help.
First you'll need to deploy jenkins unarchived:
- cd $JBOSS_HOME/server/<your server>/deploy/
- mkdir jenkins.war
- unzip <path>/jenkins.war
- cd jenkins.war/WEB-INF
- create file jboss-web.xml containing:
<jboss-web> <security-domain>java:/jaas/jmx-console</security-domain> </jboss-web>
Configure JBoss AS to do auth and secure
- Most steps are already done when using the JBoss Enterprise Application Platform
- cd $JBOSS_HOME/server/<your server>/conf/props
- add "jenkins=admin" to jmx-console-roles.properties
- add "jenkins=passwd" to jmx-console-users.properties
- restart server
Then: - enable security
- login as user "jenkins" with password "passwd"
Secure jmx and web console:
- edit $JBOSS_HOME/server/<your server>/conf/login-config.xml
- uncomment "<application-policy name = "jmx-console">" lines
- uncomment "<application-policy name = "web-console">" lines
- edit $JBOSS_HOME/server/<your server>/deploy/jmx-console.war/WEB-INF/jboss-web.xml
- uncomment <security-domain>
- edit $JBOSS_HOME/server/<your server>/deploy/jmx-console.war/WEB-INF/web.xml
- uncomment lines after "A security constraint that restricts access..."
- edit $JBOSS_HOME/server/<your server>/deploy/management/console-mgr.sar/web-console.war/WEB-INF/jboss-web.xml
- uncomment <security-domain>
- edit $JBOSS_HOME/server/<your server>/deploy/management/console-mgr.sar/web-console.war/WEB-INF/web.xml
- uncomment lines after "A security constraint that restricts access..."
Secure jmx-invoker:
- edit $JBOSS_HOME/server/<your server>/deploy/jmx-invoker-service.xml
- uncomment after "Uncomment to require authenticated users"
Secure HTTP-invoker:
- edit $JBOSS_HOME/server/<your server>/deploy/http-invoker.sar/invoker.war/WEB-INF/web.xml
- find <web-resource-name>HttpInvokers</web-resource-name>
- add additional <url-pattern> elements
- <url-pattern>/JNDIFactory/*</url-pattern>
- <url-pattern>/EJBInvokerServlet/*</url-pattern>
- <url-pattern>/JMXInvokerServlet/*</url-pattern>
You did twice the same so now you might be able to setup a different security domain for your jenkins installation and not "jmx-console" what I suggest above (see creating jboss-web.xml). See links below for more.
Configure login redirect to SSL
First you need to configure a SSL connector. Please refer to http://www.jboss.org/community/docs/DOC-11989 which is a thorough resource if you cannot get it going with the commented out example configuration.
Then you need to have the following in jenkins's web.xml:
<security-constraint> <web-resource-collection> <web-resource-name>Jenkins</web-resource-name> <url-pattern>/loginEntry</url-pattern> <url-pattern>/login</url-pattern> <!--http-method>GET</http-method--> </web-resource-collection> <auth-constraint> <role-name>*</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
Jenkins (JBoss) HTTP listening port
Edit $JBOSS_HOME/server/<your server>/deploy/jboss-web.deployer/server.xml and change `<Connector port="8080"' to `<Connector port="<some port>"'.
Context root and Virtual host
If you want to have jenkins on "/" instead of "/jenkins" by modifying jboss-web.xml.
<context-root>/</context-root> <!-- deploy to context root - not recommended - see below --> <virtual-host>host.example.com</virtual-host> <!-- if you want a specific virtual host -->
You'd better leave it be deployed under "/jenkins", otherwise some locations get inaccessible. To have both - convenience and usability you can use a simple redirection. To do that create the following files under server deploy directory:
redirect-jenkins.war/redirect.jsp redirect-jenkins.war/WEB-INF/jboss-web.xml redirect-jenkins.war/WEB-INF/web.xml
redirect.jsp should contain:
<% response.sendRedirect("/jenkins"); %>
jboss-web.xml should contain:
<jboss-web> <context-root>/</context-root> <!-- <virtual-host>jenkins.example.com</virtual-host> --> </jboss-web>
web.xml could be something like:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>Redirecting to Jenkins</display-name> <description> Redirecting to Jenkins. </description> <welcome-file-list> <welcome-file>redirect.jsp</welcome-file> </welcome-file-list> </web-app>


Thank you for registering with CommunityPatch. This is your API access token for the service. You may now use the API to create and manage patch definitions under your given name.
Display Name: {{ message.display_name }}
API Token: {{ message.api_token }}
To learn more about using the API, visit the docs!


Awesome
App
for Your
Modern Lifestyle
Increase productivity with a simple to-do app. app for
managing your personal budgets.
Download App
Login Account


Journey is a router. It routes requests.
Designed for rails
Too complex right now. :(
None
gem install journey
(The MIT License)
Copyright © 2011 Aaron Patterson
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ‘Software’), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Generated with the Darkfish Rdoc Generator 2.


Each bar represents a drafted NBA player. The bars of players with more minutes played and higher player efficiency ratings are redder.
CHI 16/128: The Bulls have had 128 picks; 16 of them ended up being one of the top 10 players from their draft class.
Click and drag the center slider to expand or shrink the range of top players.
Black bars indicate a negative PER. Images from Bing; they do not reflect players' actual likenesses.
Have an idea for another graphic? Think I did something wrong? Hit me up<EMAIL_ADDRESS>| @adamrpearce
More: about | blog | github


Please fill in this form to create an account.
By creating an account you agree to our Terms & Privacy.
Please fill in this form to login into your account.


{% extends "page.html" %} {% if announcement_login %} {% set announcement = announcement_login %} {% endif %} {% block login_widget %} {% endblock %} {% block main %} {% block login %}
Warning: JupyterHub seems to be served over an unsecured HTTP connection. We strongly recommend enabling HTTPS for JupyterHub.
{{login_error}}


- Id: {{asignatura._id}}
- State: {{asignatura.state}}
- Description: {{asignatura.description}}
See bikes from this station Add bikes to this station
Back to all the stations -------------- Back to main menu


Personal access token
If you don't have a personal access token, you can create a new one
here
.
Save
Undo


SIGANA
Home
Page 1
Page 1-1
Page 1-2
Page 1-3
Page 2
Page 3
Sign Up
Login
×
About
Services
Patient list
Contact
☰
RECORD
ANALYSE


Hello Tarot readers
This is a site for you to explore and learn how to read tarot cards. The Major Arcana is the name given by occultists to the trump cards of a tarot pack. There are usually 22 such cards in a standard 78-card pack. They are typically numbered from 0 to 21. Prior to the 17th century, the trumps were simply part of a special card deck used for gaming and gambling. The Minor Arcana (or Lesser Arcana) are the 56 suit cards of the 78-card deck of tarot cards. The Minor Arcana comprise four suits with 14 cards each. Although there are variations, the Minor Arcana commonly employ the Italo-Spanish suits: Wands (alternatively, batons, clubs, or staves), cups, swords, and pentacles (alternatively, coins, disks,
Highlight decks for 2020
| Style | Artist | Description | Cost |
|---|---|---|---|
| The book of Throth | Aleister Crowley | Published by AGMuller | $21.12 |
| Alternative | Patrick Valenza | Stylized moon-faced characters | $19.31 |
| Jungian | Robert Wang | inspired by international Jungian scholars and analysts | $95.13 |
| Zen | Osho | Transcendental | $16.36 |
| Modern | Dan Donche | Self-Published modern grunge | $28.99 |
| Hermetic | Godfrey Dowson | Historic recognition | $19.59 |
| All decks for personal use |


The Weekly Top of Utopian showcases Staff Picks from contributions made in the past week, hand-selected by our Community Managers from across all Utopian.io categories.
Staff Picks
This week we feature outstanding bug reports, tutorials, and efforts in analysing payout changes in HF20, among others. These are just some of the best contributions our Community Managers spotted on Utopian.io during the week.
SteemPlus [2.17.6] - Multiple instances of following indication being provided to user upon multiple author name clicks by @tobias-g [bug-hunting]
Credits: @steem-plus
As always, @tobias-g shows his generous knowledge and skills in his posts, serving as an example to other contributors. In this post, he details the discovery of a bug in the project in which he found multiple ajax calls appended to the UI that were getting triggered in the project. He then proposed and included a simple fix and submitted it as a GitHub pull request.
Total payout: 50.15 STU Number of votes: 18
Busy.org Bug: Post with no json_metadata crashes the whole page by @jrawsthorne [bug-hunting]
Credits: @sndbox CC BY-NC-ND
This bug report by @jrawsthorne details an issue with busy.org: Any post without any json_metadata
included will crash the renderer and result in a blank page displayed on busy.org. The report was written to be easily understandable and even proposed an ideal solution for this bug.
Total payout: 49.80 STU Number of votes: 16
Writing an asynchronous STEEM web-app in Python with asyncsteem by @mattockfs [tutorials]
A fantastically written and well-illustrated tutorial showcasing the use of asyncsteem Python Steem library along Twisted framework, and eventually rendering the outcome of an asynchronous networking web-service via VisJS.
Total payout: 32.30 STU Number of votes: 28
Tutorial: Building a web app with React, Redux, and the Steem Javascript API, PART 3 by @nicknyr [tutorials]
@nicknyr is a regular contributor, whose contributions are often staff-picked. This post is another beautifully written tutorial, an installment in his series on utilizing React and Redux with STEEM, how to properly use json-query for simpler interaction with JSON data, and includes an overview of Redux actions and reducers.
Total payout: 97.53 STU Number of votes: 70
Godot Vertex Shader Documentation by @clayjohn [documentation]
@clayjohn is one of the contributors who has shown consistent improvement in his contribution, and this contribution, the result of his hard work, is worthy for a lot of praise.
Total payout: 114.40 STU Number of votes: 92
My Design - Character Logo for Anole: A Chrome Extension by @naufal [graphics]
This contribution by @naufal shows thought and creativity in constructing this symbol. He used only circles and achieved really well balanced and compact shape. The typography chosen, with its rounded letters, fits the symbol perfectly. The presentation in the post shows every step of its creation, and all possible variants in clean and professional manner.
Total payout: 1.28 STU (not voted yet) Number of votes: 30
HF20 Exploratory Data Analysis on Proposed PayOut Changes by @paulag [analysis]
Paula is a frequent contributor, and this exploratory analysis has generated a healthy discussion on how HF 20 will affect payouts in relation to the reverse auction time being reduced. It is one of the most commented on ‘Analysis’ contributions in the past few months.
Total payout: 190.56 STU Number of votes: 99
Utopian.io Post Statistics
The staff picked contributions are only a small (but exceptional) example of the mass of contributions reviewed and rewarded by Utopian.io.
- Overall, the last week saw a total of 194 posts, with 143 of them rewarded through an upvote by @utopian-io.
- In total, Utopian.io distributed an approximate of 8120.74 STU to contributors.
- The highest payout seen on any Utopian.io contribution this week was 327.674 STU, with a total of 64 votes received from the community.
- The contribution that attracted the most engagement was HF20 Exploratory Data Analysis on Proposed PayOut Changes, with no less than 64 comments in its comment threads.
- The average vote given by Utopian.io was worth 56.79 STU.
Category Statistics
|Category|Reviewed|Rewarded|Total rewards|Top contributor| |:-|:-|:-|-:|:-| |development|40|36|3229.71 STU|@techtek| |tutorials|22|12|562.27 STU|@leczy| |translations|22|17|1218.86 STU|@filippocrypto| |bug-hunting|50|37|663.38 STU|@sourovafrin| |copywriting|2|2|102.49 STU|@olayhemy| |blog|8|7|510.87 STU|@irelandscape| |graphics|29|20|1255.27 STU|@tobaloidee| |ideas|8|2|70.19 STU|@zoneboy| |analysis|5|4|342.23 STU|@paulag| |video-tutorials|1|1|5.71 STU|@alexendre-maxim| |documentation|1|1|114.16 STU|@clayjohn|
First Time Contributing in Utopian.io?
Learn how to contribute on our website
Utopian Witness
This page is synchronized from the post: Weekly Top of Utopian.io: June 28 - July 4


;******************************************************************** ;* LED flasher: LED will flash with a X on/off ratio at PD6 ;* ;* NOTE: delay depends in the value of X, 1 is fast, 255 is slow ;* ;* No copyright ©1998 RES® * FREEWARE * ;* ;* NOTE: Connect a low current LED with a 1k resistor in serie from ;* Vdd to pin 11 of the MCU. (Or a normal LED with a 330ohm) ;* ;* RES® can be reached by email<EMAIL_ADDRESS>;* or visit the website: http://home.wanadoo.nl/electro1/avr ;* ;* Version :1.0 ;* Date :12/26/98 ;* Author :Rob's ElectroSoft® ;* Target MCU :AT90S1200-12PI@4MHz ;******************************************************************** .include "1200def.inc" rjmp RESET ;reset handle ;* Long delay ;* Register variables .def T1 = r1 .def T2 = r2 .def temp = r19 ;* Code longDelay: clr T1 ;T1 used as delay 2nd count clr T2 ;T2 used as delay 3d count delay_1: dec T2 brne delay_1 dec T1 brne delay_1 dec temp ;temp must be preset as brne delay_1 ; delay master count ret ;* Resets the data direction register D ;* Defines .equ led = 6 ;LED at PD6 ;* Code RESET: sbi DDRD, led ;connect LED to PORTD pin 6 ;* Main program ;* This part will let the LED go on and off by X ;* Register variables .equ X = 10 ;enter delaytime X flash: sbi PORTD, led ;LED on ldi temp, X ;X sec delay rcall longDelay cbi PORTD, led ;LED off ldi temp, X ;X sec delay rcall longDelay rjmp flash ;another run /* other tests */ .org LARGEBOOTSTART ; the following sets up RAMPZ:Z to point to a FLASH data object, typically ; for use with ELPM. ldi ZL, low (cmdtable * 2) ldi ZH, high (cmdtable * 2) .if ((cmdtable * 2) > 65535) ldi r16, 1 sts RAMPZ, r16 .endif ; more code follows here cmdtable: .db "foo", 0x0 .db "Hello\n" // is equivalent to: .db 'H', 'e', 'l', 'l', 'o', '\\', 'n' .db '\0', '\177', '\xff' .db "\nx\rx\ax\bx\fx\tx\vx\\x\0000\xfff\0\1" 0b10_111_2 0xaf3_4 0_12 32_32 $32_3 .macro m ldi @0, @1 .endm m r16,\ 0 #define TEST \ .IF val \ .DW __TIME__ \ .ELSE \ .DW 1 \ .ENDIF #defi TEST


7 The resourcer Package
7.1 Introduction
The resourcer package is an R implementation of the data and computation resources description and connection. It resuses many existing R packages for reading various data formats and connecting to external data storage or computation servers. The resourcer package’s role is to interpret a resource description object to build the appropriate resource connection object. Because the bestiary of resources is very wide, the resourcer package provides a framework for dynamically extending the interpretation capabilities to new types of resources. This framework uses the object-oriented paradigm provided by the R6 library.
The purpose of the package is to allow access resources identified by a URL in a uniform way whether it references a dataset (stored in a file, a SQL table, a MongoDB collection etc.) or a computation unit (system commands, web services etc.). Usually some credentials will be defined, and an additional data format information can be provided to help dataset coercing to a data.frame object.
The main concepts are:
| Class | Description |
|---|---|
| resource | Access to a resource (dataset or computation unit) is described by an object with URL, optional credentials and optional data format properties. |
| ResourceResolver | A ResourceClient factory based on the URL scheme and available in a resolvers registry. |
| ResourceClient | Realizes the connection with the dataset or the computation unit described by a resource. |
| FileResourceGetter | Connect to a file described by a resource. |
| DBIResourceConnector | Establish a DBI connection. |
7.2 File Resources
These are resources describing a file. If the file is in a remote location, it must be downloaded before being read. The data format specification of the resource helps to find the appropriate file reader.
7.2.1 File Getter
The file locations supported by default are:
file
, local file system,http
(s), web address, basic authentication,gridfs
, MongoDB file store,scp
, file copy through SSH,opal
, Opal file store.
This can be easily applied to other file locations by extending the FileResourceGetter class. An instance of the new file resource getter is to be registered so that the FileResourceResolver can operate as expected.
7.2.2 File Data Format
The data format specified within the resource object, helps with finding the appropriate file reader. Currently supported data formats are:
- the data formats that have a reader in tidyverse: readr (
csv
,csv2
,tsv
,ssv
,delim
), haven (spss
,sav
,por
,dta
,stata
,sas
,xpt
), readxl (excel
,xls
,xlsx
). This can be easily applied to other data file formats by extending the FileResourceClient class. - the R data format that can be loaded in a child R environment from which object of interest will be retrieved.
Usage example that reads a local SPSS file:
# make a SPSS file resource
res <- resourcer::newResource(
name = "CNSIM1",
url = "file:///data/CNSIM1.sav",
format = "spss"
)
# coerce the csv file in the opal server to a data.frame
df <- as.data.frame(res)
To support other file data format, extend the FileResourceClient class with the new data format reader implementation. The associated factory class, an extension of the ResourceResolver class, is also to be implemented and registered.
7.3 Database Resources
7.3.1 DBI Connectors
DBI is a set of virtual classes that are are used to abstract the SQL database connections and operations within R. Thus any DBI implementation can be used to access to a SQL table. Which DBI connector to be used is an information that can be extracted from the scheme part of the resource’s URL. For instance a resource URL starting with postgres://
will require the RPostgres driver. To separate the DBI connector instantiation from the DBI interface interactions in the SQLResourceClient, a DBIResourceConnector registry is to be populated. The currently supported SQL database connectors are:
mariadb
MariaDB connector,mysql
MySQL connector,postgres
orpostgresql
Postgres connector,presto
,presto+http
orpresto+https
Presto connector,spark
,spark+http
orspark+https
Spark connector.
To support another SQL database with a DBI driver, extend the DBIResourceConnector class and register it:
7.3.2 Use dplyr
Having the data stored in the database allows to handle large (common SQL databases) to big (PrestoDB, Spark) datasets using dplyr which will delegate as many operations as possible to the database.
7.3.3 Document Databases
NoSQL databases can be described by a resource. The nodbi can be used here. Currently only connection to MongoDB database is supported using URL scheme mongodb
or mongodb+srv
.
7.4 Computation Resources
Computation resources are resources on which tasks/commands can be triggered and from which resulting data can be retrieved.
Example of computation resource that connects to a server through SSH:
# make an application resource on a ssh server
res <- resourcer::newResource(
name = "supercomp1",
url = "ssh://server1.example.org/work/dir?exec=plink,ls",
identity = "sshaccountid",
secret = "sshaccountpwd"
)
# get ssh client from resource object
client <- resourcer::newResourceClient(res) # does a ssh::ssh_connect()
# execute commands
files <- client$exec("ls") # exec 'cd /work/dir && ls'
# release connection
client$close() # does ssh::ssh_disconnect(session)
7.5 Interacting with R Resources
As the ResourceClient is just a connector to a resource, to make this useful some data conversion functions are defined by default:
- R data.frame, which is the most common representation of tabular data in R. A data frame, as defined in R base, is an object stored in memory that may be not suitable for large to big datasets.
- dplyr tbl, which is another representation of tabular data that nicely integrates with the DBI: filtering, mutation and aggregation operations can be delegated to the underlying SQL database, reducing the R memory and computation footprint. Useful functions are also provided to perform join operations on relational datasets. A data.frame can be accessed as a tbl and vice versa.
In the case when the resource is a R object, the RDataFileResourceClient offers the ability to get the internal raw data object. Then complex data structures, optimized for a specific research domain, can be accessed with the most appropriate tools.
When the resource is a computation service provider, the interaction with the resource client will consist of issuing commands/requests with parameters and getting the result from it either as a response object or as a file to be downloaded.
Another way of interacting with a resource is to get the internal connection object (a database connector, a SSH connector etc.) from the ResourceClient and then apply any kind of operations that are defined for it. The general purpose of a resource is not to substitute itself to the underlying library, it is to facilitate the access to the related data and services.
7.6 Extending Resources
There are several ways to extend the Resources handling. These are based on different R6 classes having a isFor(resource)
function:
- If the resource is a file located at a place not already handled, write a new FileResourceGetter subclass and register an instance of it with the function
registerFileResourceGetter()
. - If the resource is a SQL engine having a DBI connector defined, write a new DBIResourceConnector subclass and register an instance of it with the function
registerDBIResourceConnector()
. - If the resource is in a domain specific web application or database, write a new ResourceResolver subclass and register an instance of it with the function
registerResourceResolver()
. This ResourceResolver object will create the appropriate ResourceClient object that matches your needs.
The design of the URL that will describe your new resource should not overlap an existing one, otherwise the different registries will return the first instance for which the isFor(resource)
is TRUE
. In order to distinguish resource locations, the URL’s scheme can be extended, for instance the scheme for accessing a file in a Opal server is opal+https
so that the credentials be applied as needed by Opal.
In order to simplify the usage of these resource client classes, the resourcer package combines several software design patterns:
- The factory pattern, a classic creational design pattern. It is realized by the ResourceResolver R6 class which is responsible for making a ResourceClient object matching a resource object provided.
- The registry pattern, “a well-known object that other objects can use to find common objects and services” as described by M. Fowler. It is basically a global list of objects to iterate through to find the appropriate one. In the resourcer package there are several registries: (1) the registry of ResourceResolver objects (the ResourceClient factories), (2) the registry of FileResourceGetter objects and (3) the registry of DBIResourceConnector objects.
- The self-registration pattern, which consists of delegating the registration of new services to their provider. The package event mechanism of R is used so that an R package self-registers its resource components in the registries previously mentioned when the package is loaded at runtime.
For implementing ResourceClient factories the resourcer package provides different ResourceResolver classes (see Figure 7.1):
- for file resources, which will discriminate the resources based on the URL property (checking if any FileResourceGetter exists for that resource) and the data format property (for getting additional information about how to read the data). The FileResourceGetter can be extended to new file locations: as an example, the s3.resourcer R package is able to get resource files from Amazon Web Service S3 file stores.
- for database resources, which will discriminate the resources based on the scheme part of the URL (checking if any DBIResourceConnector can be found or whether a nodbi connector can be created). The DBIResourceConnector can be extended to new DBI implementations. For instance, using bigrquery R package, it would be easy to implement access to a resource stored in a Google’s BigQuery database.
- for command-based computation resources, which will discriminate the resources based on the scheme part of the URL, indicating how to issue commands (local shell or secure remote shell).
Additional ResourceResolver and ResourceClient extensions could be implemented for accessing domain specific applications which would expose data extraction and/or analysis services, the only requirement is that an R connection API exists for the considered application.
The process of creating a new ResourceClient instance from a resource object consists of iterating over a registry of ResourceResolver instances and finding the one that can handle the resource object by inspecting its properties (URL, data format etc.). The URL property inspection can imply a lookup in the additional registries: if the resource is a data file, the file resource resolvers will check in the FileResourceGetter registry whether there is one that applies; if the resource is a DBI-compatible database, the SQL resource resolver will check in the DBIResourceConnector registry whether there is one that applies. This workflow is simply triggered by a resourcer’s function call.
7.7 Resource Forms
As the definition a new resource can be error prone, when a URL is complex, or when there is a limited choice of formats or when credentials can be on different types, it is recommended to declare the resources forms and factory functions within the R package. This resource declaration is to be done in JavaScript, as this is a very commonly used language for building graphical user interfaces.
These files are expected to be installed at the root of the package folder (then in the source code of the R package, they will be declared in the inst/resources
folder), so that an external application can lookup the packages statically having declared some resources.
The configuration file inst/resources/resource.js
is a javascript file which contains an object with the properties:
settings
, a JSON object that contains the description and the documentation of the web forms (based on the json-schema specification).asResource
, a javascript function that will convert the data captured from one of the declared web forms into a data structure representing theresource
object.
As an example (see also resourcer’s resource.js):
var myPackage = {
settings: {
"title": "MyPackage resources",
"description": "MyPackage resources are for etc.",
"web": "https://github.com/org/myPackage",
"categories": [
{
"name": "my-format",
"title": "My data format",
"description": "Data are files in my format, that will be read by myPackage etc."
}
],
"types": [
{
"name": "my-format-http",
"title": "My data format - HTTP",
"description": "Data are files in my format, that will be downloaded from a HTTP server etc.",
"tags": ["my-format", "http"],
"parameters": {},
"credentials": {}
}
]
},
asResource: function(type, name, params, credentials) {
// make a resource object from arguments, using type to drive
// what params/credentials properties are to be used
// a basic example of resource object:
return {
"name": name,
"url": params.url,
"format": params.format,
"identity": credentials.username,
"secret": credentials.password
};
}
}
The specifications for the settings
object is the following:
| Property | Type | Description |
|---|---|---|
| title | string |
The title of the set of resources. |
| description | string |
The description of the set of resources. |
| web | string |
A web link that describes the resources. |
| categories | array of object |
A list of category objects which are used to categorize the declared resources in terms of resource location, format, usage etc. |
| types | array of object |
A list of type objects which contains a description of the parameters and credentials forms for each type of resource. |
Where the category
object is:
| Property | Type | Description |
|---|---|---|
| name | string |
The name of the category that will be applied to each resource type , must be unique. |
| title | string |
The title of the category. |
| description | string |
The description of the category. |
And the type
object is:
| Property | Type | Description |
|---|---|---|
| name | string |
The identifying name of the resource, must be unique. |
| title | string |
The title of the resource. |
| description | string |
The description of the resource form. |
| tags | array of string |
The tag names that are applied to the resource form. |
| parameters | object |
The form that will be used to capture the parameters to build the url and the format properties of the resource (based on the json-schema specification). Some specific fields can be used: _package to capture the R package name or _packages to capture an array of R package names to be loaded prior to the resource assignment. |
| credentials | object |
The form that will be used to capture the access credentials to build the identity and the secret properties of the resource (based on the json-schema specification). |
The asResource
function is a javascript function which signature is function(type, name, params, credentials)
where:
type
, the form name used to capture the resource parameters and credentials,name
, the name to apply to the resource,params
, the captured parameters,credentials
, the captured credentials.
The name of the root object must follow the pattern: <R package>
(note that any dots (.
) in the R package name are to be replaced by underscores (_
)).
A real example of how to create this file for the `{r Githubpkg(“isglobal-brge”, “dsOmics”)} package (described in this Section) can be found here.
7.8 Examples of Resources
The resourcer package provides some common resources, out of the box. Additional resource extensions are also available as separate R packages. The following table lists some known resource implementations.
| Resource | R Package | Description |
|---|---|---|
| Tidy data files | resourcer |
Data files that have a reader from the tidyverse ecosystem. |
| R data files | resourcer |
Any R objects stored in files in Rdata or RDS formats. |
| SQL databases | resourcer |
Main open source SQL databases vendors are supported: MySQL, MariaDB and PostgreSQL |
| Apache Spark | resourcer |
Big data analytics system, accessible as a SQL database, with also additional computation capabilities (machine leaning API). |
| SSH server | resourcer |
Command based remote computation service. |
| MongoDB | resourcer |
A NoSQL database. |
| HL7 FHIR resource | fhir.resourcer | Data extractions from HL7 FIHR compliant servers, the standard for clinical data management systems. |
| Dremio dataset | odbc.resourcer | Dremio is a data lake engine, tailored for integrating big data. Dremio is accessible as a SQL database. |
| GDS data files | dsOmics | Reads omics data stored in Genomic Data Structure (GDS) format or in a format that can be converted to GDS (such as VCF). |
Whenever a data access format or protocol is defined by a standard API specification, there is most likely an R implementation of this API and then a corresponding resourcer extension can be easily implemented. For instance developing a resourcer extension to access genomic data stored in a GA4GH system should be possible and would be very powerful.
7.9 Using Resources with DataSHIELD
Let us illustrate how to deal with different types of resources within DataSHIELD. To this end, let use our Opal demo example (RSRC project) available at https://opal-demo.obiba.org which has the following resources
7.9.1 TSV File into a tibble or data.frame
We start by illustrating how to get a simple TSV file (brge.txt) into the R server. This file is located at a GitHub repository: https://raw.githubusercontent.com/isglobal-brge/brgedata/master/inst/extdata/brge.txt and it is not necesary to be moved from there. This is one of the main strenght of the resources implementation.
This code describes how to get the resource (a TSV file) as a data.frame into the R Server. Note that this is secure access since a user name and password must be provided
library(DSOpal)
library(dsBaseClient)
# access to the 'brge' resource (NOTE: RSRC.brge is need since the project
# is called RSRC)
builder <- newDSLoginBuilder()
builder$append(server = "study1", url = "https://opal-demo.obiba.org",
user = "dsuser", password = "password",
resource = "RSRC.brge", driver = "OpalDriver")
logindata <- builder$build()
# the resource is loaded into R as the object 'res'
conns <- datashield.login(logins = logindata, assign = TRUE,
symbol = "res")
# the resource is assigned to a data.frame
# Assign to the original R class (e.g ExpressionSet)
datashield.assign.expr(conns, symbol = "dat",
expr = quote(as.resource.data.frame(res)))
ds.class("dat")
$study1
[1] "spec_tbl_df" "tbl_df" "tbl" "data.frame"
7.9.2 R Data File into a R object
Now let us describe how to get a specific type of R object into the R server. Our Opal demo contains a resource called GSE80970 which is located on a local machine (see Figure 7.2). The resource is an R object of class ExpressionSet which is normally used to jointly encapsulate gene expression, metadata and annotation. In general, we can retrieve any R object in its original format and if a method to coerce the specific object into a data.frame exists, we can also retrieve it as a tibble/data.frame.
# prepare login data and resource to assign
builder <- newDSLoginBuilder()
builder$append(server = "study1", url = "https://opal-demo.obiba.org",
user = "dsuser", password = "password",
resource = "RSRC.GSE80970", driver = "OpalDriver")
logindata <- builder$build()
# login and assign resource (to 'res' symbol)
conns <- datashield.login(logins = logindata, assign = TRUE,
symbol = "res")
# coerce ResourceClient objects to a data.frame called 'DF'
# NOTE: as.data.frame exists for `ExpressionSet` objects
datashield.assign.expr(conns, symbol = "DF",
expr = quote(as.resource.data.frame(res)))
ds.class("DF")
$study1
[1] "data.frame"
# we can also coerce ResourceClient objects to their original format.
# This will allow the analyses with specific R/Bioconductor packages
datashield.assign.expr(conns, symbol = "ES",
expr = quote(as.resource.object(res)))
ds.class("ES")
$study1
[1] "ExpressionSet"
attr(,"package")
[1] "Biobase"


Nasrallah: New government must restore trust with Lebanese people
Hezbollah leader calls for quick formation of new government which, he said, must listen to demands of people.
Hassan Nasrallah, the leader of Iran-backed Hezbollah, has called for the quick formation of a new Lebanese government that must listen to the demands of protesters and work to restore confidence.
In a televised speech on Friday, Nasrallah said Prime Minister Saad Hariri's resignation, prompted by large protests against the ruling elite, had frozen the government's reform plans.
Hariri's resignation, which Hezbollah opposed, has left Lebanon without a government as it faces the worst economic crisis since the 1975-1990 civil war.
More:
"A new government must be formed as soon as possible ... and the new government must listen to the demands of the people who took to the streets," Nasrallah said.
"There must be serious work because time is tight and so is people's patience," he said.
Mass protests erupted across Lebanon on October 17 against plans to tax calls on WhatsApp and other messaging services.
The demonstrations quickly turned into wider grievances, with calls for the resignation of the government and bringing corrupt officials to accountability.
The government announced a series of reform plans, but with no concrete steps, it failed to placate protesters or reassure multilateral lenders enough to release billions in badly-needed aid they had pledged.
Protesters said the sectarian political system on which the government is based, is problematic as it spawns patronage and clientelism. They are demanding a new government to be formed, comprised of technocrats unaffiliated with the political class.
Lebanon's political system guarantees political representation for all 18 sects in the country, a legacy of French colonial rule. Seats in the cabinet and the parliament are divided between Christians and Muslims.
Positions in the public sector are also divided among religious groups.
Banks reopen
Meanwhile, Lebanese banks, which had been closed since October 18, reopened on Friday, with queues outside the buildings and customers encountering new curbs on transfers abroad and withdrawals from US dollar accounts.
Though no formal controls were imposed, banks told customers they could only transfer funds abroad in particular circumstances such as repaying loans, education, health, family support or commercial commitments.
The Lebanese pound strengthened against the US dollar on the parallel market that has emerged in recent months, three dealers said.
The central bank had promised not to impose capital controls when banks reopened, measures that could hamper the currency inflows and investment that Lebanon badly needs.
Asked about steps being taken by banks, banking association chief Salim Sfeir said: "I would not call it restrictions but rather efforts by the banks to accommodate all customers, given the pressure resulting from closing for two weeks."
"We stand ready to adjust any measure taken, once the situation in the country is back to normal," he told Reuters.


--- layout: default title: "Redirecting..." redirect: "https://discord.gg/f4KtqNB" ---
If the browser not redirect you automatically please click this link


Iron Viking was created to get the public invloved in healthy living. With correct diet and excercise, we believe
that you can achive your fitness and health goals and look good while doing it.
"Det är som mörkast innan gryningen" - It is darkest before
dawn!
When you visit Iron Viking, we are dedicated to providing you with friendly service, health advice, and above all else, excellent products made with the highest quality materials. If you are not satisfied, please let us know by clicking the "Contact" tab at the top and we will do whatever we can to make things right!


Button Cell
Need:
- 2 tactile buttons
- 4 jumper wires
Setting up the buttons:
- Place the 2 tactile buttons onto the breadboard horizontally so that one is to the left of the other button.
- Using jumper wires, connect one side of each of the buttons to a GND port on the Raspberry Pi.
- Using one of the jumper wires, connect the other side of the left button to port 23 on the Raspberry Pi.
- Using the last jumper wire, connect the other side of the right button to port 18 on the Raspberry Pi.
[insert wiring diagram]
Running the program:
- Click the folder icon on the top left of the computer screen.
- Select the "button_test.py" program
- Click the play button on the top left of the computer screen.
- Try pressing the left and right buttons. You will see the '0' move left and right along the screen.


Codidact
A community-controlled, open-source Q&A platform.
Work in progress.
Contribute
You can use these platforms to communicate/contribute with us.


| Internet Explorer | Chrome | Firefox | Safari | Opera | |
|---|---|---|---|---|---|
| jQuery 1.x | 6+ | Current − 1 version | Current − 1 version | Current − 1 version | Current − 1 version |
| jQuery 2.x | 9+ |
Any problem with jQuery in the above browsers should be considered and reported as a bug in jQuery.
Current - 1 version denotes that we support the current stable version of the browser and the version that preceded it. For example, if the current version of a browser is 24.x, we support the 24.x and 23.x versions.
While jQuery might run without major issues in older browser versions, we do not actively test jQuery in them and generally do not fix bugs that may appear in them.
Regardless of a browser's support of CSS selectors, all selectors listed at api.jquery.com/category/selectors/ will return the correct set of elements when passed as an argument of the jQuery
function.
CSS styles applied with jQuery's .css()
method are dependent on the browser's level of support. In general, jQuery does not attempt to overcome the limitations of a browser's style rendering (one exception is opacity, which jQuery "shims" for older Internet Explorer's alternative implementation). Furthermore, prior to version 1.8, jQuery does not normalize vendor-prefixed properties.


Free Shipping & Return
Free shipping on orders over $99
Customer Support 24/7
Instant access to perfect support
100% Secure Payment
We ensure secure payment!
0(800) 123-456
Free shipping on orders over $99
Instant access to perfect support
We ensure secure payment!


Help
Create Veteran
U.S. Department of Veterans Affairs | eScreening Health Assessment (Ver 1.0)
Welcome Last Name, First Name | Logout
* This wireframe provide the workflow, the structure, and the interaction between some specific pages and sections in the eScreening project and it's covered all the interaction between the application features and behaviours.
* Some of the interaction between pages may require using a specific rules and steps in order to demonstrate.
* This wireframe still in progress.
IMPORTANT NOTE - Click to Expand
First Name
Save
Cancel
Middle Name
Last Name *
SSN-4 *
Date of Birth
Phone
Work
Cell
You are trying to create a duplicate veteran, please enter more information below.