Processing multi-crystal datasets with xia2¶
xia2 is ideally suited to processing multi-crystal (or multi-sweep) datasets, and is able to process more than one dataset simultaneously, providing many features that can make the processing of such datasets both easier and faster. Examples include (but not limited to):
Merging multiple datasets taken from multiple crystals
Merging multiple datasets taken from a single crystal
Scaling together, but merging individually multiple wavelength datasets
Inverse beam experiments
Images or directories can be passed on the command line, as with a normal
xia2 job processing a single sweep. Xia2 now allows passing multiple directories
on the command line, or passing multiple images via the image=
parameter:
xia2 pipeline=dials /path/to/images/dataset_1 /path/to/images/dataset_2
xia2 pipeline=dials image=/path/to/images/sweep_1_0001.cbf image=/path/to/images/sweep_2_0001.cbf
Alternatively, you can specify exactly which images you wish to process in an .xinfo file:
BEGIN PROJECT AUTOMATIC
BEGIN CRYSTAL DEFAULT
BEGIN WAVELENGTH NATIVE
WAVELENGTH 0.979500
END WAVELENGTH NATIVE
BEGIN SWEEP SWEEP1
WAVELENGTH NATIVE
DIRECTORY /path/to/images/
IMAGE sweep_1_0001.cbf
START_END 1 450
END SWEEP SWEEP1
BEGIN SWEEP SWEEP2
WAVELENGTH NATIVE
DIRECTORY /path/to/images/
IMAGE sweep_2_0001.cbf
START_END 1 450
END SWEEP SWEEP2
END CRYSTAL DEFAULT
END PROJECT AUTOMATIC
When processing many datasets simultaneously, it may happen that some datasets
will process successfully, but xia2 will fail to process others. By default,
xia2 will stop with an error message if any error is encountered, however if
the failover=True
is set on the command line, then xia2 will
ignore any failed sweeps and continue processing with only those sweeps that
processed successfully.
When xia2 is given a particularly large number of images to process, it may take some time before it appears to start processing the data. This may be for a couple of reasons:
On start up, xia2 reads all the image headers to ensure that it understands them correctly. A speedup can be obtained with the parameter
read_all_image_headers=False
, which tells xia2 to only read the first image header for each set of files with a matching template, and infer the rest of the sweep from the first image header.When using DIALS for indexing xia2 will run a beam centre search on each sweep. This step can be disabled using the parameter
trust_beam_centre=True
Furthermore, xia2 may not make the same conclusion as to the symmetry for each
sweep, leading it to process the final dataset in the lowest common symmetry.
Sometimes indexing for a given sweep may fail altogether, and specifying the
unit_cell=
and space_group=
parameters (if known) on the
command line can help in both these situations.
Parameter |
Description |
|---|---|
|
If processing fails for any sweeps, ignore and just use those sweeps that processed successfully |
|
Don’t run DIALS beam centre search |
|
Skip reading all image headers - just read the first one for each sweep |
|
Provide a target unit cell to help indexing |
|
Provide a target space group to help indexing |
Parallel data processing¶
By default, xia2 processes each sweep sequentially, using nproc
processors. When processing multiple datasets, it may be more efficient to
process the sweeps in parallel, by specifying
multiprocessing.mode=parallel
and
using multiprocessing.njob
to indicate how many sweeps should be
processed simultaneously, using multiprocessing.nproc
processors
per sweep:
xia2 pipeline=dials /path/to/images multiprocessing.mode=parallel \
multiprocessing.njob=2 multiprocessing.nproc=4
Note
This will use a total of njob
\(*\) nproc
processors,
i.e. \(2 * 4 = 8\) processors, which should be less than or equal to the total
number of processors available on your machine.
Additionally, xia2 can utilise the processing power of a cluster where
available (currently we only support qsub) by specifying the parameter
multiprocessing.type=qsub
. The parameter
multiprocessing.qsub_command
may be used (if needed) to e.g. specify
which queue jobs should be submitted to:
xia2 pipeline=dials /path/to/images multiprocessing.mode=parallel \
multiprocessing.type=qsub multiprocessing.qsub_command="qsub -q low.q" \
multiprocessing.njob=10 multiprocessing.nproc=16
Parameter |
Description |
|---|---|
|
Process multiple sweeps in parallel, rather than serially |
|
In conjunction with mode=parallel, process 4 sweeps simultaneously |
|
Use 1 processor per job (sweep) |
|
Submit individual processing jobs to cluster using qsub |
|
The command to use to submit qsub jobs |


visual on hue
visual on color opacity
pieces | auto split | check: min > dataMin; max < dataMax;
pieces | auto split | check: minOpen/maxOpen
pieces | check: auto-sort
continuous | check: area that greater than dataMax
continuous | log axis | inverse axis | gradient on xAxis
continuous | positive and negative | check: min > dataMin; max < dataMax;
category axis


Wiki ▸ [[API Reference]] ▸ [[SVG]] ▸ SVG Axes
D3’s axis component displays reference lines for scales automatically. This lets you focus on displaying the data, while the axis component takes care of the tedious task of drawing axes and labeled ticks.
The axis component is designed to work with D3’s quantitative, time and ordinal scales.
# d3.svg.axis()
Create a new default axis.
# axis(selection)
Apply the axis to a selection or transition. The selection must contain an svg
or g
element. For example:
js
d3.select("body").append("svg")
.attr("class", "axis")
.attr("width", 1440)
.attr("height", 30)
.append("g")
.attr("transform", "translate(0,30)")
.call(axis);
# axis.scale([scale])
If scale is specified, sets the scale and returns the axis. If scale is not specified, returns the current scale which defaults to a linear scale.
# axis.orient([orientation])
If orientation is specified, sets the orientation and returns the axis. If orientation is not specified, returns the current orientation which defaults to "bottom"
. The following orientations are supported:
"top"
- horizontal axis with ticks above the domain path"bottom"
- horizontal axis with ticks below the domain path"left"
- vertical axis with ticks to the left of the domain path"right"
- vertical axis with ticks to the right of the domain path| If the specified orientation is not one of the supported values, the axis reverts to the default orientation. Changing the orientation affects the position of the ticks and their labels in relation to the axis path, but does not change the position of the axis itself; to change the position of the axis with respect to the plot, specify a [[transform | http://www.w3.org/TR/SVG/coords.html#TransformAttribute]] attribute on the containing g element. |
# axis.ticks([arguments…])
If arguments are specified, stores the specified arguments for subsequent use in generating ticks and returns the axis. The arguments will later be passed to scale.ticks to generate tick values (unless tick values are specified explicitly via axis.tickValues). The arguments are also passed to the scale’s tickFormat method to generate the default tick format. If no arguments are specified, returns the current tick arguments, which default to [10].
Suitable arguments depends on the associated scale: for a linear scale, you might specify a tick count such as axis.ticks(20)
; for a log scale, you might specify both a count and a tick format; for a time scale, a time interval such as axis.ticks(d3.time.minutes, 15)
might be appropriate.
# axis.tickValues([values])
If a values array is specified, the specified values are used for ticks, rather than using the scale’s automatic tick generator. If values is null, clears any previously-set explicit tick values, reverting back to the scale’s tick generator. If values is not specified, returns the currently-set tick values, which defaults to null. For example, to generate ticks at specific values:
js
var xAxis = d3.svg.axis()
.scale(x)
.tickValues([1, 2, 3, 5, 8, 13, 21]);
The explicit tick values take precedent over the tick arguments set by axis.ticks. However, any tick arguments will still be passed to the scale’s tickFormat function if a tick format is not also set; thus, it may be valid to set both axis.ticks and axis.tickValues.
# axis.tickSize([inner, outer])
If inner, outer are specified, sets the inner and outer tick sizes to the specified value and returns the axis. If inner, outer are not specified, returns the current inner tick size, which defaults to 6.
# axis.innerTickSize([size])
If size is specified, sets the inner tick size to the specified value and returns the axis. If size is not specified, returns the current inner tick size, which defaults to 6. The inner tick size controls the length of the tick lines, offset from the native position of the axis.
# axis.outerTickSize([size])
If size is specified, sets the outer tick size to the specified value and returns the axis. If size is not specified, returns the current outer tick size, which defaults to 6. The outer tick size controls the length of the square ends of the domain path, offset from the native position of the axis. Thus, the “outer ticks” are not actually ticks but part of the domain path, and their position is determined by the associated scale’s domain extent. Thus, outer ticks may overlap with the first or last inner tick. An outer tick size of 0 suppresses the square ends of the domain path, instead producing a straight line.
# axis.tickPadding([padding])
If padding is specified, sets the padding to the specified value in pixels and returns the axis. If padding is not specified, returns the current padding which defaults to 3 pixels.
# axis.tickFormat([format])
If format is specified, sets the format to the specified function and returns the axis. If format is not specified, returns the current format function, which defaults to null. A null format indicates that the scale’s default formatter should be used, which is generated by calling scale.tickFormat. In this case, the arguments specified by ticks are likewise passed to scale.tickFormat.
See d3.format for help creating formatters. For example, axis.tickFormat(d3.format(",.0f"))
will display integers with comma-grouping for thousands. Defining the formatter first: var commasFormatter = d3.format(",.0f")
lets you to call it as a function of your data, for example, to add currency units in front of the comma-grouped integers: .tickFormat(function(d) { return "$" + commasFormatter(d); })
.
Note: for log scales, the number of ticks cannot be customized; however, the number of tick labels can be customized via ticks. Likewise, the tick formatter for log scales is typically specified via ticks rather than tickFormat, so as to preserve the default label-hiding behavior.


SCHOOL UNIFORM
| Classes |
Summer Uniform |
Winter Uniform |
P.T. Uniform |
| Pre-Nursery to Prep |
|
|
|
| GIRLS |
- Cream Check Tunic/Skirt with Cream Shirt
- Green Belt & Tie with Stripes
- Cream Socks with Green Stripes
- Black Leather shoes with medium toe & buckle
|
- Green Woollen Skirt with White Shirt
- Green Belt & Tie with Stripes
- Grey Woollen Socks with Blue Stripes
- Grey Pullover with Blue Stripes with School Monogram
- Navy Blue Blazer with School Monogram
|
|
| BOYS |
- Cream Check Shorts with Cream Shirt
- Green Belt & Tie with Stripes
- Cream Socks with Green Stripes
- Black Leather shoes with medium toe & laces
|
- Green Woollen Trousers with White Shirt
- Green Belt & Tie with Stripes
- Grey Woollen Socks with Blue Stripes
- Grey Pullover with Blue Stripes with School Monogram
- Navy Blue Blazer with School Monogram
|
|
|
|
| I to V |
|
|
|
| GIRLS |
- Cream Check Tunic/Skirt with Cream Shirt
- Green Belt & Tie with Stripes
- Cream Socks with Green Stripes
- Black Leather shoes with medium toe & buckle
|
- Green Woollen Skirt with White Shirt
- Green Belt & Tie with Stripes
- Grey Woollen Socks with Blue Stripes
- Grey Pullover with Blue Stripes with School Monogram
- Navy Blue Blazer with School Monogram
|
- White Skirt with White Shirt
- White Socks
- White P.T. Shoes
|
| BOYS |
- Cream Check Shorts with Cream Shirt
- Green Belt & Tie with Stripes
- Cream Socks with Green Stripes
- Black Leather shoes with medium toe & laces
|
- Green Woollen Trousers with White Shirt
- Green Belt & Tie with Stripes
- Grey Woollen Socks with Blue Stripes
- Grey Pullover with Blue Stripes with School Monogram
- Navy Blue Blazer with School Monogram
|
- White Shorts with White Shirt
- White Socks
- White P.T. Shoes
|
|
|
| VI to XII |
|
|
|
| GIRLS |
- Blue Check Skirt (Knee length) & White Half Sleeve Shirt with School Monogram
- Dark Blue Belt & Dark Maroon Tie
- White Socks with Stripes
- Black Leather/Sport shoes (Action/Power)
|
- Grey Woollen Skirt (Knee length) & White Full Sleeve Shirt with School Monogram
- Dark Blue Belt & Dark Maroon Tie
- Grey Woollen Socks with Stripes
- Black Leather/Sport Shoes (Action/Power)
- Grey Pullover with Blue Stripes with School Monogram
- Navy Blue Blazer with School Monogram
|
- White Skirt (Knee length) with White Shirt
- White Socks
- White P.T. Shoes
|
| BOYS |
- Navy Blue Trousers & White Half Sleeve Shirt with School Monogram
- Dark Blue Belt & Dark Maroon Tie
- White Socks with Stripes
- Black Leather/Sport shoes (Action/Power)
|
- Grey Woollen Trousers & White Full Sleeve Shirt with School Monogram
- Dark Blue Belt & Dark Maroon Tie
- Grey Woollen Socks with Stripes
- Black Leather/Sport Shoes (Action/Power)
- Grey Pullover with Blue Stripes with School Monogram
- Navy Blue Blazer with School Monogram
|
- White Trousers with White Shirt
- White Socks
- White P.T. Shoes
|
Note : Students will wear T-Shirts of House Color with White/Grey Skirts/Trousers on House Activities Day.


NetworkManager.conf
Section: Misc. Reference Manual Pages (5)Updated: 26 July 2011
Index Return to Main Contents
NAME
NetworkManager.conf - NetworkManager configuration fileSYNOPSIS
/etc/NetworkManager/NetworkManager.confor
<SYSCONFDIR>/NetworkManager/NetworkManager.conf
where <SYSCONFDIR> depends on your distribution or build.
DESCRIPTION
NetworkManager.conf is a configuration file for NetworkManager. It is used to set up various aspects of NetworkManager's behavior. The location of the file may be changed through use of the "--config=" argument for NetworkManager (8).FILE FORMAT
The configuration file format is so-called key file (sort of ini-style format). It consists of sections (groups) of key-value pairs. Lines beginning with a '#' and blank lines are considered comments. Sections are started by a header line containing the section enclosed in '[' and ']', and ended implicitly by the start of the next section or the end of the file. Each key-value pair must be contained in a section.Minimal system settings configuration file looks like this:
[main] plugins=keyfileDescription of sections and available keys follows:
[main]
This section is the only mandatory section of the configuration file.- plugins=plugin1,plugin2, ...
-
List plugin names separated by ','. Plugins are used to read/write system-wide
connection. When more plugins are specified, the connections are read from all
listed plugins. When writing connections, the plugins will be asked to save the
connection in the order listed here. If the first plugin cannot write out that
connection type, or can't write out any connections, the next plugin is tried.
If none of the plugins can save the connection, the error is returned to the user.
-
Available plugins:
- keyfile
- plugin is the generic plugin that supports all the connection types and capabilities that NetworkManager has. It writes files out in a .ini-style format in /etc/NetworkManager/system-connections. For security, it will ignore files that are readable or writeable by any user or group other than root since private keys and passphrases may be stored in plaintext inside the file.
- ifcfg-rh
- plugin is used on the Fedora and Red Hat Enterprise Linux distributions to read and write configuration from the standard /etc/sysconfig/network-scripts/ifcfg-* files. It currently supports reading wired, WiFi, and 802.1x connections, but does not yet support reading or writing mobile broadband, PPPoE, or VPN connections. To allow reading and writing of these add keyfile plugin to your configuration as well.
- ifupdown
- plugin is used on the Debian and Ubuntu distributions, and reads connections from /etc/network/interfaces. Since it cannot write connections out (that support isn't planned), it is usually paired with the keyfile plugin to enable saving and editing of new connections. The ifupdown plugin supports basic wired and WiFi connections, including WPA-PSK.
- ifcfg-suse
- plugin is only provided for simple backward compatibility with SUSE and OpenSUSE configuration. Most setups should be using the keyfile plugin instead. The ifcfg-suse plugin supports reading wired and WiFi connections, but does not support saving any connection types.
-
Available plugins:
- dhcp=dhclient | dhcpcd
- This key sets up what DHCP client NetworkManager will use. Presently dhclient and dhcpcd are supported. The client configured here should be available on your system too. If this key is missing, available DHCP clients are looked for in this order: dhclient, dhcpcd.
- no-auto-default=<hwaddr>,<hwaddr>,...
-
Set devices for which NetworkManager shouldn't create default wired connection
(Auto eth0). NetworkManager creates a default wired connection for any wired
device that is managed and doesn't have a connection configured. List a device
in this option to inhibit creating the default connection for the device.
When the default wired connection is deleted or saved to a new persistent connection by a plugin, the MAC address of the wired device is automatically added to this list to prevent creating the default connection for that device again. Devices are specified by their MAC addresses, in lowercase. Multiple entries are separated by commas.
Example:no-auto-default=00:22:68:5c:5d:c4,00:1e:65:ff:aa:ee
- wifi-wext-only=false | true
- This option controls NetworkManager's interaction with wpa_supplicant (8). When false (default), 'nl80211' supplicant driver and background scanning are used. This enables seamless connection and roaming in RSA token-enabled Wi-Fi networks. If you encounter any problems with 'nl80211' (e.g. due to bad drivers), you can switch back to 'wext' supplicant driver by setting this option to true. Missing option or an unrecognized value is regarded as false.
[keyfile]
This section contains keyfile-specific options and thus only has effect when using keyfile plugin.- hostname=<hostname>
- Set a persistent hostname when using the keyfile plugin.
- unmanaged-devices=mac:<hwaddr>;mac:<hwaddr>;...
-
Set devices that should be ignored by NetworkManager when using the keyfile
plugin. Devices are specified in the following format: "mac:<hwaddr>", where
<hwaddr> is MAC address of the device to be ignored, in lowercase. Multiple
entries are separated by a semicolon. Example:
unmanaged-devices=mac:00:22:68:1c:59:b1;mac:00:1e:65:30:d1:c4
[ifupdown]
This section contains ifupdown-specific options and thus only has effect when using ifupdown plugin.- managed=false | true
- Controls whether interfaces listed in the 'interfaces' file are managed by NetworkManager. If set to true, then interfaces listed in /etc/network/interfaces are managed by NetworkManager. If set to false, then any interface listed in /etc/network/interfaces will be ignored by NetworkManager. Remember that NetworkManager controls the default route, so because the interface is ignored, NetworkManager may assign the default route to some other interface. When the option is missing, false value is taken as default.
[logging]
This section controls NetworkManager's logging. Any settings here are overridden by the --log-level and --log-domains command-line options.- level=<level>
- One of [ERR, WARN, INFO, DEBUG]. The ERR level logs only critical errors. WARN logs warnings that may reflect operation. INFO logs various informational messages that are useful for tracking state and operations. DEBUG enables verbose logging for debugging purposes. Subsequent levels also log all messages from earlier levels; thus setting the log level to INFO also logs error and warning messages.
- domains=<domain1>,<domain2>, ...
- The following log domains are available: [NONE, HW, RFKILL, ETHER, WIFI, BT, MB, DHCP4, DHCP6, PPP, WIFI_SCAN, IP4, IP6, AUTOIP4, DNS, VPN, SHARING, SUPPLICANT, USER_SET, SYS_SET, SUSPEND, CORE, DEVICE, OLPC]. When "NONE" is given by itself, logging is disabled. MB = Mobile Broadband, USER_SET = user settings operations and communication, SYS_SET = system settings service operations, OLPC = OLPC Mesh device operations, CORE = core daemon operations, DEVICE = activation and general interface operations.
SEE ALSO
http://live.gnome.org/NetworkManager/SystemSettingsNetworkManager(8), nm-tool(1), nmcli(1).
Index
This document was created by man2html, using the manual pages.
Time: 05:34:00 GMT, December 24, 2015


Two things come to mind when I contemplate how to ask good questions. The first is the full embracing of the idea that there is no such thing as a "dumb" question and the actions of asking any and all questions that go along with this. For me this act of humility and shedding of the egotistical idea that some how it's not okay to know is the foundation of asking a good question. So, when met with confusion or unknowing, embrace the phrase "I don't know" proudly! Because no one knows everything, and pretending like you do or being ashamed of not know isn't helping you or anyone else around who's also getting their learn on. So, let's "DON'T KNOW" together!
After instilling this foundation of humility and being okay with not knowing, the second key is being clear on your intention when asking a question. This involves asking yourself to be clear in posing your question. And first this requires one to really consider their goal(s). What are you trying to accomplish? Are there different aspects to your question, which requires the breaking down of it into multiple questions? When you get clear on your intention you can better ask your question. One of the outcomes of this clarity is the ability to be both detailed AND concise, which ultimately allows people to understand and answer your question better. These two aspects to asking better questions is a funny, yet productive embracing of both not knowing and knowing!
In the context of learning to code, I think it's important to concisely provide, whether orally/ in-person or textually/ online, just as much context to the problem needed and nothing more. So, instead of droning on and on when speaking or writing out a problem, hone in on the core of what you are trying to accomplish. If there are multiple things you are trying to accomplish, break the question down into multiple questions and pose each at different moments. Smaller, concise, yet detailed questions exhibit your goals, which in turn give people the ability to better help you meet them.


Join 104,407 members (est. 2018) &
EARN CASH ONLINE
Watch videos . 30,000 payments sent .
Earn up to 15% commission from your referrals and their referrals.
Get paid with PayPal - over 20,000 payments processed to date.
Watch a variety of videos daily in exchange for real cash.
@copyright reserved


{% extends "include/folders_special_side_menu.html" %}
{% load i18n %}
{% block book_name %}{% trans "Notebook" %}{% endblock %}
{% block help_message %}{% trans "A notebook is dynamic set of snippets/bookmarks/scraps that are selected based on certain queries." %}{% endblock %}


Passionate about telling the story behind the data-driven insights in a beautiful and simplistic manner.
Implemented strategic pricing models based on predicted customer demand.
Forecasted call arrival patterns to ensure efficient call center staffing.
Created and maintained consistent and scalable call data solutions.
Balanced top sales numbers while providing excellent customer service.
JavaScript & JQuery
Learn and Understand D3.js for Data Visualization
The Mathematics of Secrets: Cryptography from Caesar Ciphers to Digital Encryption
Jon Duckett
Luis Ramirez Jr (Udemy)
Joshua Holden
As a huge gamer, I can usually be found in a hammock with my Switch. If my hammock is empty, I'm usually out enjoying the wonderful TN state parks (especially the Fiery Gizzard Trail!)
When I'm not doing anything listed below, I enjoy trying a new brand of whiskey, creating a mess while cooking with my girlfriend, or watching The Office (again and again and again...)


Well, I now have 2 trips to report. One from last week, and one from last night. First the week old report.
As before, I ingested DXM (last time I used 150mg, this time I used 180mg) about 1 hour before smoking the leaves.
Same music as before, started smoking at about the same point on the tape. This time, after 2-3 'hits', I saw a red neon wireframe large cat, like a panther. After the next hit, I rember saying outloud, 'Oh my.' I seemed to rotate forward about 30 degrees. Then off, to my right periphery, I saw a large plant with large eliptical leaves swaying to the music. This 'vision' lasted for about 15-20 seconds.
I decided I wanted to experience this again, so about 10 minutes later I took another couple of 'hits.' Big mistake. Aparently I am only allowed one try. This may not make sense, but it is now my personal law; no double dipping. The result of the second try really bummed me out. I'm not saying this law applies to others. Just me.
OK, now for last night.
I ingested 150mg of DXM (believing that possibly part of the bad part of the previous trip was due to too much DXM).
Same music as before. Same time on the tape as before. Just before lighting up, I half jokingly asked (maybe to myself, I don't know) for a fine experience, and stated that I would not do it more than once. I lit up.
Wow.
Before I try to explain what happened, and I'm not sure I can, I need to define a few terms. I used to believe that what I called 'me' was somehow enexorably connected to my life experiences. That is, without my experience, that which I call 'me' would not exist.
I not so sure anymore.
Let's call person 'A' that which I normally associate myself. Let's call person 'B' whatever constitutes the core existance of 'me', but with a different life experience.
Ok, now for what happened. After the second toke, I felt as though my body was being compressed by an invisible fluid. Then my whole body rotated back, like tilting back in those power car seats. I don't know exactly what happened next. I remember talking outloud. I was excited.
Some time later, maybe 10 seconds, I remember being somewhere. And I don't mean I imagined being somewhere. For all I could tell, I really was at this place, living a life, and I had no recollection of person A. As person B, I was talking out loud. Something like ' I'll be right there, I just want to look at this.' The place was kinda normal and kinda strange. The light was as intense as the early morning, but all the shadows were small to non-existant. Like those at meridian transit.
About 5-10 seconds later, I slowly became aware of person A's existance. I don't think words can describe my astonishment when I realized that it was person B that was the etherial person and person A was the grounded person.
For the next 5-10 minutes I was stupified. As I came back, I began to think about 'going there again.' It was hard to keep my promise, but I did. And I'm glad.
I love this plant.
I could imagine dying to protect this plant from the Spanish 500 years ago.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Symbol Index for ".Headings"
Symbol Index for diagram
".Headings"
Agent (Class)
associated phenomenon (Association)
collector (Association)
heading (Association)
Heading (Class)
heading for (Association)
Heading/Essential Type (Generalization Node)
Phenomenon As Heading (Class)
Phenomenon Under Heading (Class)
responsible for assigning (Association)
responsible for devising (Association)
Standard Heading (Class)
Standard Heading Set (Class)
Subject Phenomenon (Class)


Created by Rich McLaughlin & Kevin McGinty
Let's checkout the project!
https://github.com/RichMcL/skill-up-2015You can use it for a (backend) server.
Note: Single thread running Node event loop asynchronously delegates I/O to POSIX threads
Because middleware.
Middleware: "Middleware is a function with access to the request object (req), the response object (res)..."
var http = require('http');
var url = require('url');
var port = 8080;
var server = http.createServer(function (req, res) {
// Parse the url and query params
var uri = url.parse(req.url, true);
// Switch routing based on existance of the query param "test"
if (uri.query.test) {
res.writeHead(200, {"Content-Type": "text/html"});
res.write("Success");
} else {
res.writeHead(500, {"Content-Type": "text/html"});
res.write("Error");
}
// Close the response
res.end();
}).listen(port);
console.log('Listening on port:', port);
var express = require('express');
var app = express();
var port = 8080;
app.get('/', function (req, res) {
if (req.query.test) {
res.send('Success');
} else {
res.send('Error');
}
});
var server = app.listen(port, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Listening at http://%s:%s', host, port);
});
var http = require('http');
var url = require('url');
var port = 8080;
var server = http.createServer(function (req, res) {
// Parse the url and query params
var uri = url.parse(req.url, true);
// Switch routing based on pathname
switch(uri.pathname) {
case '/users':
res.writeHead(200, {"Content-Type": "text/html"});
res.write("All Users");
break;
case '/users/1234':
res.writeHead(200, {"Content-Type": "text/html"});
res.write("A user: 1234 (Note: this is hardcoded)");
break;
default:
res.writeHead(500, {"Content-Type": "text/html"});
res.write("Error");
}
// Close the response
res.end();
}).listen(port);
console.log('Listening on port:', port);
var express = require('express');
var app = express();
var port = 8080;
app.get('/users', function (req, res) {
res.send('All Users');
});
// Oh, look! Part of the route is converted to a query param
// How RESTful!
app.get('/users/:id', function (req, res) {
res.send('A user with id: ' + req.params.id);
});
var server = app.listen(port, function () {
console.log('Listening...');
});
Q: What does npm stand for?
A: Node Package Manager? NO!
A: Notable Pastry Maker? YES!
A: Nietzsche's Preposterous Moustache? YES!
Nerd Alert: It is a recursive bacronymic abbreviation for "npm is not an acronym"
BONUS Nerd Alert: You can contribte to npm expansions. Add your own!
Contains various information about a project such as a description, a version, and the dependencies.
{
"name": "underscore",
"description": "JavaScript's functional programming helper library.",
"homepage": "http://underscorejs.org",
"repository": {
"type": "git",
"url": "git://github.com/jashkenas/underscore.git"
},
"version": "1.8.3",
"devDependencies": {
"coveralls": "^2.11.2",
"docco": "*",
"eslint": "0.21.x",
"karma": "~0.12.31",
"karma-qunit": "~0.1.4",
"nyc": "^2.1.3",
"qunit-cli": "~0.2.0",
"uglify-js": "2.4.x"
},
"license": "MIT"
}
Sample of Underscore's package.json file
You can easily create a package.json file...
npm init
Hit 'enter' to accept the default if you don't know the answer (or don't care).
Running npm install with no arguments will attempt to install all dependencies listed in the package.json file.
npm install
If you see warnings it's likely due to some missing or empty fields. private: true
to the package.json file.
Docs: npm install
Adding a new dependency to your project...
npm install express --save
This will both install the package and also save the dependency to your package.json file.
npm install express --save-dev
Reference: What's the difference?
Removing a dependency from your project...
npm uninstall express --save
This will both uninstall the package and also save the dependency to your package.json file.
Updating dependencies...
npm update
This will update dependencies to the latest version listed in the package.json file.
Installing packages globally...
npm install -g grunt-cli
This will install the grunt-cli package globally. "Globally" means the package will be installed to a directory that should included as part of your PATH command line variable. This allows the package to be used as a command line tool.
Let's get the Node server running!
https://github.com/RichMcL/skill-up-2015Is it working? View Slides
Let's test Express!
Build a simple resource in server.js to test Express
Is it working? Heartbeat
In order to use Grunt you will need to have the Grunt CLI (command line interface) installed globally. If you have been following along you might already have it installed!
npm install -g grunt-cli
Docs: Grunt - Getting started
npm install -g grunt-cli
This will install the grunt-cli package globally. "Globally" means the package will be installed to a directory that should included as part of your PATH command line variable. This allows the package to be used as a command line tool.
Docs: grunt-cli
The Gruntfile is where you register grunt tasks
module.exports = function(grunt) {
// Project configuration
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
watch: {
scripts: {
files: ['**/*.js'],
tasks: ['jshint']
},
}
});
// Auto load tasks for each grunt-* package
require("matchdep").filter("grunt-*").forEach(grunt.loadNpmTasks);
// Default task(s). Run simply with 'grunt'
grunt.registerTask('default', ['watch']);
};
There are Grunt plugins to do things such as
npm install <pkg> --save
Let's get Grunt running!
Run grunt less from the terminal
Is it working? app.css should be generated
Q: What is Less?
A: "Less is a CSS pre-processor, meaning that it extends the CSS language, adding features that allow variables, mixins, functions and many other techniques..."
Option 1
Just install the compiler globally
npm install -g less
Then you can manually compile your files
lessc styles.less > styles.css
Option 2
Locally (to your project) install & use grunt-contrib-less
npm install grunt-contrib-less --save
Then add a task / configure your Gruntfile.js
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
less: {
development: {
options: {
paths: ["assets/css"]
},
files: {
"path/to/result.css": "path/to/source.less"
}
}
}
});
Docs: Grunt Contrib - Less Let's get Grunt watching LESS!
Run grunt watch from the terminal
Is it working? app.css should update when app.less changes
Express
Complete the login function in server.js
Angular $http
Complete the logout function in home.js
Angular Template
Complete the game list in home.html
"The combination of Angular and Firebase provides a three-way data binding between your HTML, your, JavaScript, and the Firebase backend."
Let's look at the common-web setup
Questions?


Dark Ritual
The ritual circle infuses the weapon of the Ritualist with life destroying energy and enhances all of their senses.
^a${value} Second(s) Recharge
30
${value} Energy Cost
64 68 72 76 80 84 88 92 96 100 104 108 112 116 120 124
${value} Summon Limit
1
Life Time ${value} Seconds
13
MaxLevel
8
UltimateLevel
12


{% extends 'music/base.html' %} {% block title %}Add review{%endblock%} {% block content %} {% if user.get_username%}
You have to be logged in to write reviews
{% endif %} {% for review in reviews %} {{ review.create_by.username }} wrote on {{review.create_date|date:"j M Y" }} {{ review.create_date|time:"H:i" }}:There are no reviews so far.
{% endfor %} {% endblock %}


Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text.
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text.
© Toor - 2020 | All Right Reserved. Designed By codezion


Integrated
Spatial Planning
Problem Statement
- South Africa does not have a central repository that utilises data for spatial planning, monitoring and evaluation, and/or coordinating purposes.
- Currently, most departments have standalone databases and tools that are being used for planning and reporting purposes.
- Many of these do not have integrated spatial referencing and some departments rely only on spreadsheets to manage their planning and business processes.
Solution Statement
- Enables SPLUMA by supporting and strengthening the capacity of provinces and municipalities.
- Improves integrated planning by creating an ecosystem for real-time sharing of spatial data among various spheres of government, state-owned entities and the private sector.
- Removes subjectivity from the planning functions, and move towards an evidence-based approach.
- Develops mechanisms that will facilitate effective and efficient collaboration amongst government departments to foster alignment of their programs, budgets and processes.
The NSPDR will enable sharing of spatial planning information across all spheres of government and the private sector and will support key objectives of the NDP.
01 Share Spatially
Ability to share spatial information on the Ecosystem with other users, departments and municipalities anywhere in the country.
02 Plan Effectively
Ability to overlay spatial information over core, reference and secondary base datasets critical for effective spatial planning.
03 Analyse Locally
Ability to use the Ecosystem for spatial analysis to facilitate spatial planning to meet individual municipal needs.
Esri’s ArcGIS® platform
The ArcGIS® platform diagram can be unpacked into the various components, workflows and methods to show how each component contributes to the system.
Data Management
The central database storing all relevant geospatial data, providing a range of data management tools.
Author Services
Web services are a method of sharing geospatial content across the web.
Host Services
Services provide a ‘live view’ into the geodatabase in a very fast and reliable way.
Host Items
The portal is the place where users can go to discover, use, make and share maps.
Create Web Maps
A web map is a user-created combination of items from the portal that creates a “mash-up” of geospatial information.
Create Applications
Platform apps are simply web maps that are presented to the user for a particular, focussed purpose.
Base Data:
Thematically Available
Admin. Boundaries
- Municipal Demarcation Board
- Independent Electoral Commission
Imagery
- National Geospatial Information
- SA National Space Agency
Road Networks
- Department of Transport
- SA National Roads Agency Limited
Social Statistics
- Statistics South Africa
- ...
Land Use / Cover
- National Geospatial Information
- Rural Development & Land Reform
Cadastre
- Chief Surveyor-General
- Agriculture, Forestry and Fisheries
Hydrology
- Dept. of Water and Sanitation
- Catchment Management Agencies
Geodesy
- National Geospatial Information
- ...
Conservation Areas
- Dept. of Environmental Affairs
- ...
Geo-Spatial:
Tools and Features
Reference Web Maps
- Interactive
- Print functionality
- Add data from external sources
- Online analytical tools and queries
- Flexible to meet departmental and user needs
- Capacity enhancement to core DRDLR GIS team
Geoprocessing Tools
- Ability to extract location-specific data
- Various formats to suit user needs
- Download extracted data (available offline)
- Data automatically emailed as compressed file
- Expose additional geoprocessing tools to meet department and user needs
Additional Links
- Government websites
- External databases
- Synergies
M&E Dashboards
- Reporting
- Accessible online
- SPLUMA implementation and compliance
Document Repository
- Upload spatial data
- Acts, by-laws and other documents
E-Learning:
Training Platform
The NSPDR E-Learning Web Portal is a friendly online learning tool within everyone’s reach. The portal is dedicated to help create and achieve a learning environment that appeals to all learning levels where the learner can confidently understand the training material presented on the platform. It allows the learner to acquire skills faster, retain knowledge longer and apply their newly gained skills to the real world.
Below are some of the key features of the training platform:
Access to interactive courses with multimedia support...
This easy to use platform is dedicated to help create and achieve an environment that appeals to everyone’s learning levels.
It allows learners to acquire skills faster, retain knowledge longer, and apply these skills in the real world.
Test your knowledge with the assessment modules...
This easy to use platform is dedicated to help create and achieve an environment that appeals to everyone’s learning levels.
It allows learners to acquire skills faster, retain knowledge longer, and apply these skills in the real world.
Graphical representation of your training performance...
This easy to use platform is dedicated to help create and achieve an environment that appeals to everyone’s learning levels.
It allows learners to acquire skills faster, retain knowledge longer, and apply these skills in the real world.
Quickly provide feedback on your training experience...
This easy to use platform is dedicated to help create and achieve an environment that appeals to everyone’s learning levels.
It allows learners to acquire skills faster, retain knowledge longer, and apply these skills in the real world.
NSPDR E-Lodgement
The NSPDR Ecosystem, through it’s E·Lodgement application, provides a portal readily available to all municipalities in all provinces, enabling SPLUMA compliance.


Through my knowledge,I design and develop websites the way i see it,in its all beauty and imperfections.


Gateway
BOT
11-Jul-18 08:11 PM
[dscrdeql] <donaldmathers>
[dscrdeql] <SwimedDragon> Are you getting good questions?
[dscrdeql] <!!! Thorth !!!> penalty
[dscrdeql] <donaldmathers> Who
[dscrdeql] <!!! Thorth !!!> Cro -Eng
[dscrdeql] <!!! Thorth !!!> 1-1
[dscrdeql] <!!! Thorth !!!> another round ???
[dscrdeql] <!!! Thorth !!!> how many round
[dscrdeql] <!!! Thorth !!!> aren't 2 by 45 min ?
[dscrdeql] <DaylightHours> Ty very
[dscrdeql] <!!! Thorth !!!> ooo... another 15 min :d
[dscrdeql] <!!! Thorth !!!> and then penalty
[dscrdeql] <DaylightHours> Yeah
[dscrdeql] <DaylightHours> Missed
[dscrdeql] <DaylightHours> Always
[dscrdeql] <AndronicusBass-Founder> @here Please sports talk in #sport Many thanks
[dscrdeql] <AndronicusBass-Founder> @SwimedDragon i am, bitcointalk is full of hardcore crypto lovers so it's important to reply to them.
[dscrdeql] <!!! Thorth !!!> GOOOOOOOOOOOOOOOAL:
[dscrdeql] <!!! Thorth !!!> Cro
[dscrdeql] <SwimedDragon> Do they know about this discord?
[dscrdeql] <!!! Thorth !!!> sorry
[dscrdeql] <!!! Thorth !!!> i'll move from here
[dscrdeql] <AndronicusBass-Founder> Thanks
[dscrdeql] <AndronicusBass-Founder> @SwimedDragon we are constantly mentioning discord, telegram, twitter, facebook, website etc. and also the reason for bounties for community to invite people here and spread the word.
[dscrdeql] <donaldmathers> Are there new bounties?
[dscrdeql] <donaldmathers> Didn’t see any in bounty channel
[dscrdeql] <AndronicusBass-Founder> Bounties have always been in bitcointalk first post and its a pinned message in #bounty-me-
[dscrdeql] <donaldmathers> What is bitcointalk?
[dscrdeql] <AndronicusBass-Founder> Its where everyone in crypto goes to discuss
[dscrdeql] <donaldmathers> Thanks
[dscrdeql] <CowboyCrypto- Founder>
[dscrdeql] <donaldmathers>
[dscrdeql] <Llama> did the new bounties ever get posted? lol
[dscrdeql] <donaldmathers> Lol
[dscrdeql] <jellysmash> I've NEVER used bitcoin talk..Will have top check it out
[dscrdeql] <AndronicusBass-Founder> btc talk isnt anything special just pure conversation
[dscrdeql] <donaldmathers> Me neither
[dscrdeql] <donaldmathers> Playing Skyrim right now love this game
[dscrdeql] <donaldmathers> Yea
[dscrdeql] <AndronicusBass-Founder> coffee time, 6:30am and I bought a bucket of coffee beans, stocked up
[dscrdeql] <!!! Thorth !!!>
[dscrdeql] <Jonathan> Yep, @AndronicusBass-Founder is a machine
[dscrdeql] <donaldmathers> Love it!
[dscrdeql] <AndronicusBass-Founder> Lots of work to do lol
[dscrdeql] <donaldmathers> Lol
[dscrdeql] <AndronicusBass-Founder> When I'm focused on something, i cant sleep.
[dscrdeql] <cellulitis> Ronald Struddenegger
[dscrdeql] <Llama> you can make a lot of money on btc talk
[dscrdeql] <AndronicusBass-Founder> The weekend lasts longer when you wake up early
[dscrdeql] <AndronicusBass-Founder> or dont go to sleep at all until early sunday night lol
[dscrdeql] <donaldmathers> My body has the sickest inner alarm clock lol
[dscrdeql] <jellysmash> It's a bright sunny day here in sydney
[dscrdeql] <jellysmash> Nooice
[dscrdeql] <donaldmathers> It’s a nice day here in New Jersey as well
[dscrdeql] <linkara6669> @AndronicusBass haha most definitely xD not sleeping gets to be rough after a while lol
[dscrdeql] <AndronicusBass-Founder> My best this year is about 60 hours
[dscrdeql] <AndronicusBass-Founder> The day before I flew to puerto rico I stayed up all night hoping i would be so tired I would zonk out on the flights. Could not sleep a wink.
[dscrdeql] <linkara6669> haha yeah always figures with stuff like that
[dscrdeql] <AndronicusBass-Founder> lol, murphys law
[dscrdeql] <jellysmash> @donaldmathers nice days all around
[dscrdeql] <donaldmathers> That’s always good to hear @jellysmash
[dscrdeql] <donaldmathers> Murphy’s law is a daily occurrence sometimes lol
[dscrdeql] <NWhiskeyTango> My best is 4 days...good times
[dscrdeql] <NWhiskeyTango> To be young again lol
[dscrdeql] <DaylightHours> Yo
[dscrdeql] <AndronicusBass-Founder> Anything to help those 4 days lol
[dscrdeql] <DaylightHours> Why to be huge rain
[dscrdeql] <DaylightHours> Always Miss
[dscrdeql] <donaldmathers> Rain always comes back
[dscrdeql] <donaldmathers>
[dscrdeql] <AndronicusBass-Founder> ah sublime, i havent heard them in years
[dscrdeql] <jellysmash> I've never heard of them
[dscrdeql] <jellysmash> What country are they from?
[dscrdeql] <donaldmathers>
[dscrdeql] <jellysmash> Cool
[dscrdeql] <jellysmash> From 1990s?
[dscrdeql] <donaldmathers> Yep
[dscrdeql] <DaylightHours> Rain
[dscrdeql] <jellysmash> Nice..Might look them up
[dscrdeql] <donaldmathers> You def should


Represents an abstraction against an instance of the H2 in-memory database. Used to persist and order info. within a single table.
| Type | Name and description |
|---|---|
java.lang.Object |
add(java.lang.String cmd, java.util.Map map) Executes the submitted sql statement using sql.execute(cmd,map). |
java.lang.Object |
get(java.lang.String cmd) Executes the sql select statement using sql.rows(cmd). |
java.lang.Object |
get(java.lang.String cmd, java.util.Map map, groovy.lang.Closure logic) Executes the sql select statement using sql.rows(cmd,map,closure) passing each selected row to the provided closure logic. |
java.lang.Object |
get(java.lang.String cmd, groovy.lang.Closure logic) Executes the sql select statement using sql.rows(cmd,closure) passing each selected row to the provided closure logic. |
java.lang.Object |
get(java.lang.String cmd, java.util.Map map) Executes the submitted sql statement using sql.rows(cmd,map). |
java.lang.Object |
get(java.lang.String cmd, java.util.Map map1, java.util.Map map2) Executes the submitted sql statement using sql.rows(cmd,map,map). |
java.lang.Object |
insert(java.lang.String cmd) Executes the submitted sql statement using sql.executeInsert(cmd). |
java.lang.Object |
insert(java.lang.String cmd, java.util.Map map) Executes the submitted sql statement using sql.executeInsert(cmd,map). |
java.lang.Object |
logmsg(java.lang.String method, java.lang.String sqlcmd, java.lang.String cmd, boolean flag) |
static void |
main(java.lang.String[] args) Method to run class tests. |
java.lang.Object |
put(java.lang.String cmd, java.util.Map map) Executes the submitted sql statement using sql.execute(cmd,map). |
java.lang.Object |
run(java.lang.String cmd) Executes the submitted sql statement using sql.execute(cmd). |
java.lang.Object |
run(java.lang.String cmd, java.util.Map map) Executes the submitted sql statement using sql.execute(cmd,map). |
java.lang.Object |
setPaging(int startAt, int howMany) Establish values for multi-row paging algorithm. |
java.lang.Object |
setTableName(java.lang.String newtablename) Returns tablename for submitted sql statements. |
java.lang.Object |
update(java.lang.String cmd) Executes the submitted sql statement using sql.executeUpdate(cmd). |
java.lang.Object |
update(java.lang.String cmd, java.util.Map map) Executes the submitted sql statement using sql.executeUpdate(cmd,map). |
| Methods inherited from class | Name |
|---|---|
class java.lang.Object |
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Name of the H2 database to be established
An instance of the sql statement processor
A flag set true after the first use of the tablename. Used to avoid issues where tablename is changed after database already in use.
Name of the table to be established within this H2 database
Creates an instance of the H2 in-memory database. The database container name defaults to 'data'. The user.home location is included in the default database name.
Creates a specific instance of the H2 in-memory database with the given name. It creates an H2 database name from the String value given to the this constructor. The ~ tilde character is required to identify the user.home location of the declared database. An example database name of '~/fred' would create a temporary database named 'fred' in the user.home folder.
dbtable
- - the name to be used for this instance of an H2 databaseExecutes the submitted sql statement using sql.execute(cmd,map). The cmd argument must be a valid H2 sql insert statement. Examples include several choices choices. For example: h2.add("insert into ${h2.tablename} values(:id, :value)", [id: 41, value: 'hello 41']) Any needed sql replacement parameters are provided with a map passed in as the second parm.
cmd
- the sql statement to be used against the currently open tablemap
- sql replacement parameters in the form of [id:76] as MapExecutes the sql select statement using sql.rows(cmd). The cmd argument must be a valid H2 sql select statement. Examples include 'where' and 'order by' choices. For example: h2.get("select * from ${h2.tablename} where id > 43 order by value")
cmd
- the sql statement to be used against the currently open tableExecutes the sql select statement using sql.rows(cmd,map,closure) passing each selected row to the provided closure logic. The cmd argument must be a valid H2 sql select statement. Examples include 'where' and 'order by' choices. For example: h2.get("select * from ${h2.tablename} where id > ?1.id order by value",[id:24],{e-> println e.id; }) Processing logic to be applied to each row is declared in a named or anonymous closure
cmd
- the sql statement to be used against the currently open tablemap
- sql replacement parameters in the form of [id:76] as Maplogic
- named or anonymous closure to be applied to each rowExecutes the sql select statement using sql.rows(cmd,closure) passing each selected row to the provided closure logic. The cmd argument must be a valid H2 sql select statement. Examples include 'where' and 'order by' choices. For example: h2.get("select * from ${h2.tablename} where id > 47 order by value",{e-> }) Processing logic to be applied to each row is declared in a named or anonymous closure
cmd
- the sql statement to be used against the currently open tablelogic
- named or anonymous closure to be applied to each rowExecutes the submitted sql statement using sql.rows(cmd,map). The cmd argument must be a valid H2 sql select statement. Examples include 'where' and 'order by' choices. For example: h2.get("select * from ${h2.tablename} where id > ?1.id order by value",[id:44]) Any needed sql replacement parameters are provided with a map passed in as the second parm.
cmd
- the sql statement to be used against the currently open tablemap
- sql replacement parameters in the form of [id:76] as MapExecutes the submitted sql statement using sql.rows(cmd,map,map). The cmd argument must be a valid H2 sql select statement. Examples include 'where' and 'order by' choices. For example: h2.get("select * from ${h2.tablename} where id > 0 order by value") Any needed sql replacement parameters are provided with maps passed in as the second and third parms.
cmd
- the sql statement to be used against the currently open tablemap
- sql replacement parameters in the form of [id:76] as Mapmap
- sql replacement parameters in the form of [value:'Fred'] as MapExecutes the submitted sql statement using sql.executeInsert(cmd). The cmd argument must be a valid H2 sql statement. Examples include most update choices. For example: "insert into test set value='Frank' where id=11" Any needed sql replacement parameters are provided with a map passed in as the second parm.
cmd
- the sql executeInsert statement to be used against the currently open tableExecutes the submitted sql statement using sql.executeInsert(cmd,map). The cmd argument must be a valid H2 sql insert statement. Examples include most update choices. For example: h2.insert("insert into ${h2.tablename} values(:id, :value)", [id: 41, value: 'hello 41']) Any needed sql replacement parameters are provided with a map passed in as the second parm.
cmd
- the sql update statement to be used against the currently open tablemap
- sql replacement parameters in the form of [id:76] as MapMethod to run class tests.
args
- Value is string array - possibly empty - of command-line values.Executes the submitted sql statement using sql.execute(cmd,map). The cmd argument must be a valid H2 sql insert statement. Examples include most update choices. For example: h2.put("insert into ${h2.tablename} values(:id, :value)", [id: 41, value: 'hello 41']) Any needed sql replacement parameters are provided with a map passed in as the second parm.
cmd
- the sql statement to be used against the currently open tablemap
- sql replacement parameters in the form of [id:76] as MapExecutes the submitted sql statement using sql.execute(cmd). The cmd argument must be a valid H2 sql statement. Examples include most DDL choices. For example: "create table if not exists test (id int, value char)"
cmd
- the sql statement to be executed against the currently open tableExecutes the submitted sql statement using sql.execute(cmd,map). The cmd argument must be a valid H2 sql statement. Examples include most DDL choices. For example: h2.run("delete from ${h2.tablename} where id > ?1.id",[id:31])
cmd
- the sql statement to be executed against the currently open tablemap
- sql replacement parameters in the form of [id:78] as MapEstablish values for multi-row paging algorithm. This is typically for an sql select stmt.
int
- startAt a base-1 value of the number of the row as the first row to be taken from a multi-row selectint
- howMany a value of the maximum number of the rows to be returned beginning from the 'startAt' row.Returns tablename for submitted sql statements. The cmd argument must be a valid H2 name. For example: h2.setTableName("fred")
newtablename
- the table name to be used against the currently unopened databaseExecutes the submitted sql statement using sql.executeUpdate(cmd). The cmd argument must be a valid H2 sql statement. Examples include most update choices. For example: "update test set value='Fred' where id=1" Any needed parameters are declared within the command.
cmd
- the sql update statement to be used against the currently open tableExecutes the submitted sql statement using sql.executeUpdate(cmd,map). The cmd argument must be a valid H2 sql statement. Examples include most update choices. For example: "update test set value='Frank' where id=11" Any needed sql replacement parameters are provided with a map passed in as the second parm.
cmd
- the sql update statement to be used against the currently open tablemap
- sql replacement parameters in the form of [id:76] as MapGroovy Documentation


Possibly due to a bug with the same origin policy under Webkit certain automatic tests that need to read the canvas will fail and are disabled. Use these manual tests here instead.


Link to PDF version of Power Point Slides for Lecture 6, Part 1
Link to PDF version of Power Point Slides for Lecture 6, Part 2
The big picture: Fourier Transforms always work in periodic systems. Direct proof of the Bloch theorem; alternative way to understand the Brillouin Zone, etc.
But it is easy to show that plane wave calculations are not feasible for elements heavier than Li, because too many Fourier components are required for a realistic calculation. Plane waves are useful only only if there is a way to treat core electrons.
- The Schrodinger equation for a periodic crystal
- Calculations in a Plane Wave Basis
- Simple expressions for Bloch states, Schr. Eq.
- Self-consistent Kohn-Sham calculation .
- From output eigenvectors - find new density and potential
- Example of clever algorithm -- efficient in real space
- Fast Fourier Transform (FFT) – introduction of grid in real space
- Repeat to self-consistency
- Tests for convergence -- MUST be done for calculations to be correct!
- Convergence in number of plane waves
- Convergence in number of iterations
- Convergence in number of points sampled in the BZ
Accurate treatment of core electrons- How to use planes for surface calculations
- "Supercells"
- Must use many plane waves - but still efficient
- Examples
- Why eliminate core electrons?
- Must do something to have a feasible number of plane waves
- Eliminating the core electrons with pseudopotentials
- "Ab Initio" Norm-Conserving Pseudopotentials
- Key point is to do calculation on an atom - easy in spherical coordinates
- Define pseudopotential for valence states by finding smooth functions that have the same form outside the core and same eigenvalues as the original atomic valence states
- Elegant proof that if the normalization of the wavefunction inside the core region, the the resulting pseudopotential is valid to linear order for a range of energies
- Great Advantages of Plane waves with pseudopotentials
- Great advantage - Plane wave programs that use pseudopotentials are very simple and very fast - FFTs Can readily calculate forces == the method used for essentially all "ab initio" molecular dynamics. The method easiest to use for response functions, phonon frequencies, etc.
- Augmented methods
- APW methods solve for both core and valence states by using spherical waves inside a sphere and plane waves outside
- Most accurate - most difficult
- Matching is non-linear problem - much easier by linearizing - similar to pseudopotentials that are correct to linear order for changes in energy
- Most useful when both localized and delocalized valence states are important - like transition metals
- Great disadvantage - cannot use FFTs directly since functions are defined differently inside and outside the spheres
- PAW methods add localized core functions to plane waves that extend throughout crystal
- Great advantage - Plane wave programs that are like pseudopotentials - very simple and very fast - FFTs
- Unlike pseudopotentials the core states are kept and the method is more useful when both localized and delocalized valence states are important - like transition metals
- Comparison of results
- Examples of results for solids
- Conclusions
Link to ABINIT - Open Source Kohn-Sham DFT plane wave code with excellent tutorial and many features.
Link to a nice site for generation of pseudopoentials.
Link to WEIN2k - LAPW code. This code is available only upon request to the developers. It is probably the best developed code that uses the augmentation methods


{{ spec.description || 'Insert Description Here' }}
Services which are required in order to run {{ spec.label }}:
{{ spec.label }} has {{ newStackOptions.length }} optional services associated with it.
Select any optional services that you would like to enable:
{{ key | specProperty:'label' }} does not require any special configuration.
{{ key | specProperty:'label' }} requires the following configuration:
{{ key | specProperty:'label' }} specifies the following default configuration, which may be overridden:
Your project is allowed to allocate {{ storageQuota }} GB of storage.
You have used all of your allocated storage.
Contact an administrator regarding increasing your storage quota.
Or you can remove other volumes to make room for a new one.
Previous volumes found:
You have chosen to enable {{ optionalLinksGrid.selector.selection.length || "no" }} optional service plugins, along with the {{ newService.links.required.length }} required services.
Please confirm the configuration of your new stack above.
Clicking Confirm will close the wizard and add this new stack to your project.


Annotation Type RestOp
RestServlet
implementation class.
See Also:
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionSpecifies whether this method can be called based on the client version.String[]
Supported content media types.Class<? extends RestConverter>[]
Class-level response converters.Enable debug mode.DefaultAccept header.Default character encoding.DefaultContent-Type header.String[]
Default request attributes.String[]
Specifies default values for form-data parameters.String[]
Default request headers.String[]
Specifies default values for query parameters.String[]
Default response headers.String[]
Optional description for the exposed API.Specifies the compression encoders for this method.Method-level guards.Class<? extends RestMatcher>[]
Method matchers.The maximum allowed input size (in bytes) on HTTP requests.REST method name.String[]
Dynamically apply this annotation to the specified methods.Class<?>[]
Specifies the parsers for converting HTTP request bodies into POJOs for this method.String[]
Optional path pattern for the specified method.String[]
Supported accept media types.Role guard.Declared roles.Class<? extends Serializer>[]
Specifies the serializers for marshalling POJOs into response bodies for this method.Optional summary for the exposed API.Provides swagger-specific metadata on this method.REST method name and path.
-
Element Details
-
clientVersion
Specifies whether this method can be called based on the client version.The client version is identified via the HTTP request header identified by
@Rest(clientVersionHeader)
which by default is"Client-Version" .This is a specialized kind of
RestMatcher
that allows you to invoke different Java methods for the same method/path based on the client version.The format of the client version range is similar to that of OSGi versions.
In the following example, the Java methods are mapped to the same HTTP method and URL
"/foobar" .// Call this method if Client-Version is at least 2.0. // Note that this also matches 2.0.1. @RestOp (method=GET , path="/foobar" , clientVersion="2.0" )public Object method1() {...}// Call this method if Client-Version is at least 1.1, but less than 2.0. @RestOp (method=GET , path="/foobar" , clientVersion="[1.1,2.0)" )public Object method2() {...}// Call this method if Client-Version is less than 1.1. @RestOp (method=GET , path="/foobar" , clientVersion="[0,1.1)" )public Object method3() {...}It's common to combine the client version with transforms that will convert new POJOs into older POJOs for backwards compatibility.
// Call this method if Client-Version is at least 2.0. @RestOp (method=GET , path="/foobar" , clientVersion="2.0" )public NewPojo newMethod() {...}// Call this method if X-Client-Version is at least 1.1, but less than 2.0. @RestOp (method=GET , path="/foobar" , clientVersion="[1.1,2.0)" )@BeanConfig(swaps=NewToOldSwap. class )public NewPojo oldMethod() {return newMethod(); }Note that in the previous example, we're returning the exact same POJO, but using a transform to convert it into an older form. The old method could also just return back a completely different object. The range can be any of the following:
"[0,1.0)" = Less than 1.0. 1.0 and 1.0.0 does not match."[0,1.0]" = Less than or equal to 1.0. Note that 1.0.1 will match."1.0" = At least 1.0. 1.0 and 2.0 will match.
See Also:
- Returns:
- The annotation value.
- Default:
- ""
-
consumes
Supported content media types.Overrides the media types inferred from the parsers that identify what media types can be consumed by the resource.
Notes:
-
Supports SVL Variables
(e.g.
"$S{mySystemProperty}" ).
See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
Supports SVL Variables
(e.g.
-
converters
Class<? extends RestConverter>[] convertersClass-level response converters.Associates one or more
converters
with this method.See Also:
RestOpContext.Builder.converters()
- Registering converters with REST resources.
- Returns:
- The annotation value.
- Default:
- {}
-
debug
Enable debug mode.Enables the following:
- HTTP request/response bodies are cached in memory for logging purposes.
- Request/response messages are automatically logged.
"true" - Debug is enabled for all requests."false" - Debug is disabled for all requests."conditional" - Debug is enabled only for requests that have aDebug: true header."" (or anything else) - Debug mode is inherited from class.
Notes:
-
Supports SVL Variables
(e.g.
"$L{my.localized.variable}" ).
See Also:
- Returns:
- The annotation value.
- Default:
- ""
-
defaultAccept
DefaultAccept header.The default value for the
Accept header if not specified on a request.This is a shortcut for using
defaultRequestHeaders()
for just this specific header.- Returns:
- The annotation value.
- Default:
- ""
-
defaultCharset
Default character encoding.The default character encoding for the request and response if not specified on the request.
Notes:
-
Supports SVL Variables
(e.g.
"$S{mySystemProperty}" ).
See Also:
- Returns:
- The annotation value.
- Default:
- ""
-
Supports SVL Variables
(e.g.
-
defaultContentType
DefaultContent-Type header.The default value for the
Content-Type header if not specified on a request.This is a shortcut for using
defaultRequestHeaders()
for just this specific header.- Returns:
- The annotation value.
- Default:
- ""
-
defaultRequestFormData
Specifies default values for form-data parameters.Strings are of the format
"name=value" .Affects values returned by
RestRequest.getFormParam(String)
when the parameter is not present on the request.Example:
@RestOp (method=POST , path="/*" , defaultRequestFormData={"foo=bar" })public String doPost(@FormData ("foo" ) Stringfoo ) {...}Notes:
-
You can use either
':' or'=' as the key/value delimiter. - Key and value is trimmed of whitespace.
-
Supports SVL Variables
(e.g.
"$S{mySystemProperty}" ).
- Returns:
- The annotation value.
- Default:
- {}
-
You can use either
-
defaultRequestQueryData
Specifies default values for query parameters.Strings are of the format
"name=value" .Affects values returned by
RestRequest.getQueryParam(String)
when the parameter is not present on the request.Example:
@RestOp (method=GET , path="/*" , defaultRequestQueryData={"foo=bar" })public String doGet(@Query ("foo" ) Stringfoo ) {...}Notes:
-
You can use either
':' or'=' as the key/value delimiter. - Key and value is trimmed of whitespace.
-
Supports SVL Variables
(e.g.
"$S{mySystemProperty}" ).
- Returns:
- The annotation value.
- Default:
- {}
-
You can use either
-
defaultRequestAttributes
Default request attributes.Specifies default values for request attributes if they're not already set on the request.
Affects values returned by the following methods:
Example:
// Defined via annotation resolving to a config file setting with default value. @Rest (defaultRequestAttributes={"Foo=bar" ,"Baz: $C{REST/myAttributeValue}" })public class MyResource {// Override at the method level. @RestGet (defaultRequestAttributes={"Foo: bar" })public Object myMethod() {...} }Notes:
-
Supports SVL Variables
(e.g.
"$L{my.localized.variable}" ).
See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
Supports SVL Variables
(e.g.
-
defaultRequestHeaders
Default request headers.Specifies default values for request headers if they're not passed in through the request.
Example:
// Assume "text/json" Accept value when Accept not specified @RestOp (method=GET , path="/*" , defaultRequestHeaders={"Accept: text/json" })public String doGet() {...}Notes:
-
Supports SVL Variables
(e.g.
"$S{mySystemProperty}" ).
See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
Supports SVL Variables
(e.g.
-
defaultResponseHeaders
Default response headers.Specifies default values for response headers if they're not overwritten during the request.
Example:
// Assume "text/json" Accept value when Accept not specified @RestOp (method=GET , path="/*" , defaultResponseHeaders={"Content-Type: text/json" })public String doGet() {...}Notes:
-
Supports SVL Variables
(e.g.
"$S{mySystemProperty}" ).
See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
Supports SVL Variables
(e.g.
-
description
Optional description for the exposed API.This description is used in the following locations:
-
The value returned by
Operation.getDescription()
in the auto-generated swagger. -
The
"$RS{operationDescription}" variable. - The description of the method in the Swagger page.
Notes:
-
Corresponds to the swagger field
/paths/{path}/{method}/description . -
Supports SVL Variables
(e.g.
"$L{my.localized.variable}" ).
- Returns:
- The annotation value.
- Default:
- {}
-
The value returned by
-
encoders
Specifies the compression encoders for this method.Encoders are used to enable various kinds of compression (e.g.
"gzip" ) on requests and responses.This value overrides encoders specified at the class level using
Rest.encoders()
. TheEncoderSet.Inherit
class can be used to include values from the parent class.Example:
// Define a REST resource that handles GZIP compression. @Rest ( encoders={ GzipEncoder.class } )public class MyResource {// Define a REST method that can also use a custom encoder. @RestOp ( method=GET , encoders={ EncoderSet.Inherit.class , MyEncoder.class } )public MyBean doGet() { ... } }The programmatic equivalent to this annotation is:
RestOpContext.Builder
builder = RestOpContext.create (method ,restContext );builder .getEncoders().set(classes );See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
guards
Method-level guards.Associates one or more
RestGuards
with this method.See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
matchers
Class<? extends RestMatcher>[] matchersMethod matchers.Associates one more more
RestMatchers
with this method.Matchers are used to allow multiple Java methods to handle requests assigned to the same URL path pattern, but differing based on some request attribute, such as a specific header value.
See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
maxInput
The maximum allowed input size (in bytes) on HTTP requests.Useful for alleviating DoS attacks by throwing an exception when too much input is received instead of resulting in out-of-memory errors which could affect system stability.
Example:
@RestOp ( maxInput="100M" )Notes:
-
Supports SVL Variables
(e.g.
"$S{mySystemProperty}" ).
See Also:
- Returns:
- The annotation value.
- Default:
- ""
-
Supports SVL Variables
(e.g.
-
method
REST method name.Typically
"GET" ,"PUT" ,"POST" ,"DELETE" , or"OPTIONS" .Method names are case-insensitive (always folded to upper-case).
Note that you can use
HttpMethod
for constant values.Note that you can also use
value()
to specify the method name and path in shortened form.Besides the standard HTTP method names, the following can also be specified:
-
"*" - Denotes any method.
Use this if you want to capture any HTTP methods in a single Java method.
The@Method
annotation and/orRestRequest.getMethod()
method can be used to distinguish the actual HTTP method name. -
"" - Auto-detect.
The method name is determined based on the Java method name.
For example, if the method isdoPost(...) , then the method name is automatically detected as"POST" .
Otherwise, defaults to"GET" . -
"RRPC" - Remote-proxy interface.
This denotes a Java method that returns an object (usually an interface, often annotated with the@Remote
annotation) to be used as a remote proxy usingRestClient.getRemoteInterface(Class<T> interfaceClass, String url) .
This allows you to construct client-side interface proxies using REST as a transport medium.
Conceptually, this is simply a fancyPOST against the url"/{path}/{javaMethodName}" where the arguments are marshalled from the client to the server as an HTTP content containing an array of objects, passed to the method as arguments, and then the resulting object is marshalled back to the client. -
Anything else
- Overloaded non-HTTP-standard names that are passed in through a
&method=methodName URL parameter.
- Returns:
- The annotation value.
- Default:
- ""
-
-
on
Dynamically apply this annotation to the specified methods.See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
parsers
Specifies the parsers for converting HTTP request bodies into POJOs for this method.Parsers are used to convert the content of HTTP requests into POJOs.
Any of the Juneau framework parsers can be used in this setting.
The parser selected is based on the requestContent-Type header matched against the values returned by the following method using a best-match algorithm:This value overrides parsers specified at the class level using
Rest.parsers()
. TheParserSet.Inherit
class can be used to include values from the parent class.Example:
// Define a REST resource that can consume JSON and HTML. @Rest ( parsers={ JsonParser.class , HtmlParser.class } )public class MyResource {// Define a REST method that can also consume XML. @RestOp ( method=POST , parsers={ ParserSet.Inherit.class , XmlParser.class } )public void doPost(MyBeanbean ) { ... } }The programmatic equivalent to this annotation is:
RestOpContext.Builder
builder = RestOpContext.create (method ,restContext );builder .getParsers().set(classes );See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
path
Optional path pattern for the specified method.Appending
"/*" to the end of the path pattern will make it match any remainder too.
Not appending"/*" to the end of the pattern will cause a 404 (Not found) error to occur if the exact pattern is not found.The path can contain variables that get resolved to
@Path
parameters.Examples:
@RestOp (method=GET , path="/myurl/{foo}/{bar}/{baz}/*" )@RestOp (method=GET , path="/myurl/{0}/{1}/{2}/*" )If you do not specify a path name, then the path name is inferred from the Java method name.
Example:
// Path is assumed to be "/foo". @RestOp (method=GET )public void foo() {...}If you also do not specify the
method()
and the Java method name starts with"get" ,"put" ,"post" , or"deleted" , then the HTTP method name is stripped from the inferred path.Examples:
// Method is GET, path is "/foo". @RestOp public void getFoo() {...}// Method is DELETE, path is "/bar". @RestOp public void deleteBar() {...}// Method is GET, path is "/foobar". @RestOp public void foobar() {...}// Method is GET, path is "/". @RestOp public void get() {...}Note that you can also use
value()
to specify the method name and path in shortened form.See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
produces
Supported accept media types.Overrides the media types inferred from the serializers that identify what media types can be produced by the resource.
Notes:
-
Supports SVL Variables
(e.g.
"$S{mySystemProperty}" ).
See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
Supports SVL Variables
(e.g.
-
roleGuard
Role guard.An expression defining if a user with the specified roles are allowed to access this method.
Example:
public class MyResourceextends BasicRestServlet {@RestOp ( method=GET , path="/foo" , roleGuard="ROLE_ADMIN || (ROLE_READ_WRITE && ROLE_SPECIAL)" )public Object doGet() { } }Notes:
-
Supports any of the following expression constructs:
"foo" - Single arguments."foo,bar,baz" - Multiple OR'ed arguments."foo | bar | baz" - Multiple OR'ed arguments, pipe syntax."foo || bar || baz" - Multiple OR'ed arguments, Java-OR syntax."fo*" - Patterns including'*' and'?' ."fo* & *oo" - Multiple AND'ed arguments, ampersand syntax."fo* && *oo" - Multiple AND'ed arguments, Java-AND syntax."fo* || (*oo || bar)" - Parenthesis.
- AND operations take precedence over OR operations (as expected).
- Whitespace is ignored.
-
null or empty expressions always match asfalse . -
If patterns are used, you must specify the list of declared roles using
rolesDeclared()
orRestOpContext.Builder.rolesDeclared(String...)
. -
Supports SVL Variables
(e.g.
"$L{my.localized.variable}" ). - When defined on parent/child classes and methods, ALL guards within the hierarchy must pass.
See Also:
- Returns:
- The annotation value.
- Default:
- ""
-
Supports any of the following expression constructs:
-
rolesDeclared
Declared roles.A comma-delimited list of all possible user roles.
Used in conjunction with
roleGuard()
is used with patterns.Example:
public class MyResourceextends BasicRestServlet {@RestOp ( method=GET , path="/foo" , rolesDeclared="ROLE_ADMIN,ROLE_READ_WRITE,ROLE_READ_ONLY,ROLE_SPECIAL" , roleGuard="ROLE_ADMIN || (ROLE_READ_WRITE && ROLE_SPECIAL)" )public Object doGet() { } }See Also:
- Returns:
- The annotation value.
- Default:
- ""
-
serializers
Class<? extends Serializer>[] serializersSpecifies the serializers for marshalling POJOs into response bodies for this method.Serializer are used to convert POJOs to HTTP response bodies.
Any of the Juneau framework serializers can be used in this setting.
The serializer selected is based on the requestAccept header matched against the values returned by the following method using a best-match algorithm:This value overrides serializers specified at the class level using
Rest.serializers()
. TheSerializerSet.Inherit
class can be used to include values from the parent class.Example:
// Define a REST resource that can produce JSON and HTML. @Rest ( serializers={ JsonParser.class , HtmlParser.class } )public class MyResource {// Define a REST method that can also produce XML. @RestOp ( method=POST , parsers={ SerializerSet.Inherit.class , XmlParser.class } )public void doPost(MyBeanbean ) { ... } }The programmatic equivalent to this annotation is:
RestOpContext.Builder
builder = RestOpContext.create (method ,restContext );builder .getSerializers().set(classes );See Also:
- Returns:
- The annotation value.
- Default:
- {}
-
summary
Optional summary for the exposed API.This summary is used in the following locations:
-
The value returned by
Operation.getSummary()
in the auto-generated swagger. -
The
"$RS{operationSummary}" variable. - The summary of the method in the Swagger page.
Notes:
-
Corresponds to the swagger field
/paths/{path}/{method}/summary . -
Supports SVL Variables
(e.g.
"$L{my.localized.variable}" ).
- Returns:
- The annotation value.
- Default:
- ""
-
The value returned by
-
swagger
Provides swagger-specific metadata on this method.Used to populate the auto-generated OPTIONS swagger documentation.
The format of this annotation is JSON when all individual parts are concatenated.
The starting and ending'{' /'}' characters around the entire value are optional.Example:
@RestOp ( method=PUT , path="/{propertyName}" ,// Swagger info. swagger={"parameters:[" ,"{name:'propertyName',in:'path',description:'The system property name.'}," ,"{in:'body',description:'The new system property value.'}" ,"]," ,"responses:{" ,"302: {headers:{Location:{description:'The root URL of this resource.'}}}," ,"403: {description:'User is not an admin.'}" ,"}" } )Notes:
-
The format is Swagger.
Multiple lines are concatenated with newlines. -
The starting and ending
'{' /'}' characters around the entire value are optional. - These values are superimposed on top of any Swagger JSON file present for the resource in the classpath.
-
Supports SVL Variables
(e.g.
"$L{my.localized.variable}" ).
See Also:
- Returns:
- The annotation value.
- Default:
- @org.apache.juneau.rest.annotation.OpSwagger
-
The format is Swagger.
-
value
REST method name and path.Can be used to provide a shortened combined form for the
method()
andpath()
values.The following examples are considered equivalent.
// Normal form @RestOp (method=PUT , path="/{propertyName}" )// Shortened form @RestOp ("PUT /{propertyName}" )Notes:
- The path portion is optional.
- Returns:
- The annotation value.
- Default:
- ""
-


|
RVL
1.0
|
Operator defined with product domain and range. More...
#include <blockop.hh>
Public Member Functions | |
| BlockOperator () | |
| BlockOperator (const BlockOperator< Scalar > &) | |
| virtual | ~BlockOperator () |
| virtual const ProductSpace< Scalar > & | getProductRange () const =0 |
| access to range as ProductSpace More... | |
| const Space< Scalar > & | getRange () const |
| access to range as Space - delegates to getProductRange More... | |
| Public Member Functions inherited from RVL::Operator< Scalar > | |
| Operator () | |
| Operator (const Operator< Scalar > &) | |
| virtual | ~Operator () |
| virtual const Space< Scalar > & | getDomain () const =0 |
| access to domain, range More... | |
| virtual ScalarFieldTraits< Scalar >::AbsType | getMaxStep (const Vector< Scalar > &, const Vector< Scalar > &) const |
| can be overridden to express distance to boundary of domain for operators whose domains are not the whole space. More... | |
| Public Member Functions inherited from RVL::Writeable | |
| virtual ostream & | write (ostream &str) const =0 |
| Report state of object to ostream. More... | |
| virtual | ~Writeable () |
| void | write (RVLException &e) const |
| Report state of object to RVLException. More... | |
Protected Member Functions | |
| virtual void | applyComponent (int i, const Vector< Scalar > &x, Vector< Scalar > &yi) const =0 |
| virtual void | apply (Vector< Scalar > const &x, Vector< Scalar > &y) const |
| virtual void | applyComponentDeriv (int i, const Vector< Scalar > &x, const Vector< Scalar > &dx, Vector< Scalar > &dyi) const =0 |
| , where , More... | |
| virtual void | applyDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dx, Vector< Scalar > &dy) const |
| applyDeriv() is implemented in terms of applyComponentDeriv(). More... | |
| virtual void | applyComponentAdjDeriv (int i, const Vector< Scalar > &x, const Vector< Scalar > &dyi, Vector< Scalar > &dx) const =0 |
| , where More... | |
| virtual void | applyAdjDeriv (const Vector< Scalar > &x, const Vector< Scalar > &dy, Vector< Scalar > &dx) const |
| applyAdjDeriv() is implemented in terms of applyComponentAdjDeriv(). More... | |
| virtual void | applyComponentDeriv2 (int i, const Vector< Scalar > &x, const Vector< Scalar > &dx0, const Vector< Scalar > &dx1, Vector< Scalar > &dyi) const =0 |
| , where , More... | |
| virtual void | applyDeriv2 (const Vector< Scalar > &x, const Vector< Scalar > &dx0, const Vector< Scalar > &dx1, Vector< Scalar > &dy) const |
| applyDeriv2() is implemented in terms of applyComponentDeriv(). More... | |
| virtual void | applyComponentAdjDeriv2 (int i, const Vector< Scalar > &x, const Vector< Scalar > &dx0, const Vector< Scalar > &dyi, Vector< Scalar > &dx1) const =0 |
| , where More... | |
| virtual void | applyAdjDeriv2 (const Vector< Scalar > &x, const Vector< Scalar > &dx0, const Vector< Scalar > &dy, Vector< Scalar > &dx1) const |
| applyAdjDeriv() is implemented in terms of applyComponentAdjDeriv(). More... | |
| virtual BlockOperator< Scalar > * | cloneBlockOp () const =0 |
| Primary clone method returns object of this type; parent clone method delegates. More... | |
| Operator< Scalar > * | clone () const |
| Protected Member Functions inherited from RVL::Operator< Scalar > | |
| virtual void | apply (const Vector< Scalar > &x, Vector< Scalar > &y) const =0 |
| 1-jet at a point, accessible only through OperatorEvaluation and subclasses. More... | |
| void * | operator new (size_t size) |
| operator new - not available to general public, but available to children who will use it to define clone More... | |
| DerivEvaluation< Scalar > * | createDerivEvaluation (OperatorEvaluation< Scalar > &opeval) const |
| Virtual derivative constructor. More... | |
| Deriv2Evaluation< Scalar > * | createDeriv2Evaluation (OperatorEvaluation< Scalar > &opeval) const |
| Virtual 2nd derivative constructor. More... | |
Friends | |
| class | OperatorEvaluation< Scalar > |
Additional Inherited Members | |
| Static Public Member Functions inherited from RVL::Operator< Scalar > | |
| static std::shared_ptr< Operator< Scalar > > | clonePtr (Operator< Scalar > const &op) |
| safe dynamic copy construction More... | |
| Static Protected Member Functions inherited from RVL::Operator< Scalar > | |
| static void | export_apply (Operator< Scalar > const &f, const Vector< Scalar > &x, Vector< Scalar > &y) |
| The export-apply methods make the protected apply methods of any Operator subclass instance available to other Operator subclass instances. More... | |
| static void | export_applyDeriv (Operator< Scalar > const &f, const Vector< Scalar > &x, const Vector< Scalar > &dx, Vector< Scalar > &dy) |
| static void | export_applyAdjDeriv (Operator< Scalar > const &f, const Vector< Scalar > &x, const Vector< Scalar > &dy, Vector< Scalar > &dx) |
| static void | export_applyDeriv2 (Operator< Scalar > const &f, const Vector< Scalar > &x, const Vector< Scalar > &dx0, const Vector< Scalar > &dx1, Vector< Scalar > &dy) |
| static void | export_applyAdjDeriv2 (Operator< Scalar > const &f, const Vector< Scalar > &x, const Vector< Scalar > &dx0, const Vector< Scalar > &dy, Vector< Scalar > &dx1) |
| static Operator< Scalar > * | export_clone (Operator< Scalar > const &op) |
| export version of clone More... | |
Operator defined with product domain and range.
Partial derivatives are defined componentwise, as is access to the domain and range as ProductSpaces. As for the parent class, all functions which may change the internal state are protected, accessed only by the corresponding OperatorEvaluation objects, which act on independent captive instances.
Definition at line 48 of file blockop.hh.
| RVL::BlockOperator< Scalar >::BlockOperator | ( | ) |
Definition at line 186 of file blockop.hh.
| RVL::BlockOperator< Scalar >::BlockOperator | ( | const BlockOperator< Scalar > & | ) |
Definition at line 187 of file blockop.hh.
|
virtual |
Definition at line 188 of file blockop.hh.
|
protectedpure virtual |
Implemented in RVL::TensorOp< Scalar >.
|
protectedvirtual |
Definition at line 58 of file blockop.hh.
|
protectedpure virtual |
, where ,
Implemented in RVL::TensorOp< Scalar >.
|
protectedvirtual |
applyDeriv() is implemented in terms of applyComponentDeriv().
Default implementation supplied, which may be overridden.
Implements RVL::Operator< Scalar >.
Definition at line 81 of file blockop.hh.
|
protectedpure virtual |
, where
Implemented in RVL::TensorOp< Scalar >.
|
protectedvirtual |
applyAdjDeriv() is implemented in terms of applyComponentAdjDeriv().
Default implementation supplied, which may be overridden.
Implements RVL::Operator< Scalar >.
Definition at line 104 of file blockop.hh.
|
protectedpure virtual |
, where ,
Implemented in RVL::TensorOp< Scalar >.
|
protectedvirtual |
applyDeriv2() is implemented in terms of applyComponentDeriv().
Default implementation supplied, which may be overridden.
Reimplemented from RVL::Operator< Scalar >.
Definition at line 135 of file blockop.hh.
|
protectedpure virtual |
, where
Implemented in RVL::TensorOp< Scalar >.
|
protectedvirtual |
applyAdjDeriv() is implemented in terms of applyComponentAdjDeriv().
Default implementation supplied, which may be overridden.
Reimplemented from RVL::Operator< Scalar >.
Definition at line 159 of file blockop.hh.
|
protectedpure virtual |
Primary clone method returns object of this type; parent clone method delegates.
Implemented in RVL::TensorOp< Scalar >.
|
protectedvirtual |
Implements RVL::Operator< Scalar >.
Definition at line 182 of file blockop.hh.
|
pure virtual |
access to range as ProductSpace
Implemented in RVL::TensorOp< Scalar >.
|
virtual |
access to range as Space - delegates to getProductRange
Implements RVL::Operator< Scalar >.
Definition at line 193 of file blockop.hh.
|
friend |
Definition at line 50 of file blockop.hh.


{{ticket.reference}}/{{ticket.tid}}
{{ ticket.subject | limitTo: 80 }}{{ticket.subject.length > 80 ? '...' : ''}}
{{updateMessage}}
Refresh
Available status
{{nextLevel}}
Edit
Comment
Pick
Close
Call
{{no}}
Map
DETAILS
Type
{{ticket.type}}
Priority
{{ticket.priority}}
Status
{{ticket.status}}
Company
{{ticket.companyName}}
{{ticket.companyName}}
DATES
Created
{{ticket.created_at}}
Updated
{{ticket.updated_at}}
Due To
Overdue
{{ticket.due_at}}
Channel
{{ticket.engagement_session.channel}}
Other
TAGS
{{tag}}
DESCRIPTION
{{ticket.description}}
REQUIRED ATTACHMENTS
{{slot.attachment.file| limitTo:10}}
{{slot.slot.name}}/{{slot.slot.fileType}}
Uploading........
ATTACHMENTS
Choose a file or drag it here.
{{attchment.file| limitTo:10}}
SUB TICKET
+
No sub-tickets assigned yet
{{sub.reference}}
{{sub.description}}
{{sub.assignee_displayname}}
{{sub.status}}
{{sub.type}}
RELATED TICKET
No related tickets assigned yet
{{relticket.reference}}
{{relticket.description}}
{{relticket.assignee_displayname}}
{{relticket.status}}
{{relticket.type}}
PEOPLE
submitter
{{ticket.submitter.displayname}}
requester
{{ticket.requester_displayname}}
save
close
ASSIGNEE
GROUP
{{ticket.assignee_displayname}}
{{ticket.assignee_group.name}}
Assign to me
COLLABORATORS
{{collaborator.displayname}}
{{collaborator.loggedTime}}
WATCHERS
{{ticket.watchers.length}}
user is watching this
You are watching this
{{ticket.watchers.length}}
users are watching this
No users watching this
Stop watching this issue
Start watching this issue
TIME TRACKING
Estimated
{{timeValidateMessage}}
{{ticketEstimatedTimeFormat}}
Remaining
{{ticketRemainingTimeFormat}}
Logged
{{ticketLoggedTimeFormat}}
ACTIVITY
{{tab.title}}


Mobi-Hub B2B trading platform is a new social way of mobile wholesales and trading in mobile phones, accessories, spare parts and consumer electronics. The platform has been created as a response to market demands. Existing trading platforms, social media groups and pages all work, but each had their own set of issues. The Mobi-Hub is the web and app-based solution which provides better, swifter and more convenient way of trading according to the business needs.