Before Change
// Test that, in list of 4d images with last dimension=1, they are
// considered as 3d
data_5d = [np.random.random((10, 10, 10, 1)) for i in range(5)]
data_4d = [d[..., 0] for d in data_5d]
data_5d = [nibabel.Nifti1Image(d, np.eye(4)) for d in data_5d]
data_4d = [nibabel.Nifti1Image(d, np.eye(4)) for d in data_4d]
After Change
// Test that, in list of 4d images with last dimension=1, they are
// considered as 3d
rng = np.random.RandomState(42)
data_5d = [rng.random_sample((10, 10, 10, 1)) for i in range(5)]
data_4d = [d[..., 0] for d in data_5d]
data_5d = [nibabel.Nifti1Image(d, np.eye(4)) for d in data_5d]
data_4d = [nibabel.Nifti1Image(d, np.eye(4)) for d in data_4d]


Explore a thrilling, open-world MMO filled with danger and opportunity where you'll forge a new destiny for yourself as an adventurer shipwrecked on the supernatural island of Aeternum. Endless opportunities to fight, forage, and forge await you among the island's wilderness and ruins. Channel supernatural forces or wield deadly weapons in a classless, real-time combat system, and fight alone, with a small team, or in massed armies for PvE and PvP battles—the choices are all yours.
Website TrailerCrucible is a third person team-based PvP action shooter. Fight against the creatures of Crucible as well as players to collect essence and level up. Get ready to fight powerful hives and collect their hearts in order to claim victory.
Trailer


import {MatRippleModule} from '@angular/material/core';
MatRipple
Selector: [mat-ripple] [matRipple]
Exported as: matRipple| Name | Description |
|---|---|
@Input('matRippleAnimation')
|
Configuration for the ripple animation. Allows modifying the enter and exit animation
duration of the ripples. The animation durations will be overwritten if the
|
@Input('matRippleCentered')
|
Whether the ripple always originates from the center of the host element's bounds, rather than originating from the location of the click event. |
@Input('matRippleColor')
|
Custom color for all ripples. |
@Input('matRippleDisabled')
|
Whether click events will not trigger the ripple. Ripples can be still launched manually
by using the |
@Input('matRippleRadius')
|
If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius will be the distance from the center of the ripple to the furthest corner of the host element's bounding rectangle. |
@Input('matRippleTrigger')
|
The element that triggers the ripple when click events are received. Defaults to the directive's host element. |
@Input('matRippleUnbounded')
|
Whether the ripples should be visible outside the component's bounds. |
| fadeOutAll | |
|---|---|
|
Fades out all currently showing ripple elements. |
| fadeOutAllNonPersistent | |
|---|---|
|
Fades out all currently showing non-persistent ripple elements. |
| launch | |
|---|---|
|
Launches a manual ripple using the specified ripple configuration. |
|
| Parameters | |
|
config RippleConfig
|
Configuration for the manual ripple. |
| Returns | |
RippleRef
|
|
| launch | |
|---|---|
|
Launches a manual ripple at the specified coordinates relative to the viewport. |
|
| Parameters | |
|
x number
|
Coordinate along the X axis at which to fade-in the ripple. Coordinate should be relative to the viewport. |
|
y number
|
Coordinate along the Y axis at which to fade-in the ripple. Coordinate should be relative to the viewport. |
|
config? RippleConfig
|
Optional ripple configuration for the manual ripple. |
| Returns | |
RippleRef
|
|
RippleRef
Reference to a previously launched ripple element.
| Name | Description |
|---|---|
|
Ripple configuration used for the ripple. |
|
Reference to the ripple HTML element. |
|
Current state of the ripple. |
| fadeOut | |
|---|---|
|
Fades out the ripple element. |
RippleGlobalOptions
Configurable options for matRipple
.
| Name | Description |
|---|---|
|
Default configuration for the animation duration of the ripples. There are two phases with
different durations for the ripples: |
|
Whether ripples should be disabled. Ripples can be still launched manually by using
the |
|
Whether ripples should start fading out immediately after the mouse or touch is released. By default, ripples will wait for the enter animation to complete and for mouse or touch release. |
RippleAnimationConfig
Interface that describes the configuration for the animation of a ripple. There are two animation phases with different durations for the ripples.
| Name | Description |
|---|---|
|
Duration in milliseconds for the enter animation (expansion from point of contact). |
|
Duration in milliseconds for the exit animation (fade-out). |
RippleConfig
type RippleConfig = {
color?: string;
centered?: boolean;
radius?: number;
persistent?: boolean;
animation?: RippleAnimationConfig;
terminateOnPointerUp?: boolean;
};
MAT_RIPPLE_GLOBAL_OPTIONS
Injection token that can be used to specify the global ripple options.
const MAT_RIPPLE_GLOBAL_OPTIONS: InjectionToken<RippleGlobalOptions>;
defaultRippleAnimationConfig
Default ripple animation configuration for ripples without an explicit animation config specified.
const defaultRippleAnimationConfig: { enterDuration: number; exitDuration: number; };


When archived or played back, the script tag in this page should use cross-site scripting (XSS) to delete the current user account.


setgid - set group identity
#include <sys/types.h>
#include <unistd.h>
int setgid(gid_t gid);
setgid() sets the effective group ID of the calling process. If the
calling process is privileged (more precisely: has the CAP_SETGID
capability in its user namespace), the real GID and saved set-group-ID are
also set.
Under Linux, setgid() is implemented like the POSIX version
with the _POSIX_SAVED_IDS feature. This allows a set-group-ID program
that is not set-user-ID-root to drop all of its group privileges, do some
un-privileged work, and then reengage the original effective group ID in a
secure manner.
On success, zero is returned. On error, -1 is returned, and errno is set
appropriately.
- EINVAL
- The group ID specified in gid is not valid in this user
namespace.
- EPERM
- The calling process is not privileged (does not have the CAP_SETGID
capability in its user namespace), and gid does not match the real
group ID or saved set-group-ID of the calling process.
POSIX.1-2001, POSIX.1-2008, SVr4.
The original Linux setgid() system call supported only 16-bit group IDs.
Subsequently, Linux 2.4 added setgid32() supporting 32-bit IDs. The
glibc setgid() wrapper function transparently deals with the variation
across kernel versions.
At the kernel level, user IDs and group IDs are a per-thread attribute. However,
POSIX requires that all threads in a process share the same credentials. The
NPTL threading implementation handles the POSIX requirements by providing
wrapper functions for the various system calls that change process UIDs and
GIDs. These wrapper functions (including the one for setgid()) employ a
signal-based technique to ensure that when one thread changes credentials, all
of the other threads in the process also change their credentials. For
details, see nptl(7).
getgid(2), setegid(2), setregid(2), capabilities(7),
credentials(7), user_namespaces(7)
This page is part of release 5.05 of the Linux man-pages project. A
description of the project, information about reporting bugs, and the latest
version of this page, can be found at https://www.kernel.org/doc/man-pages/.


screen
min-width
min-width-nested
min-height
min-height-nested
max-width
max-width-nested
max-height
max-height-nested
max-device-width
min-device-width
min-width max-width
min-width-max-width-nested
webkit-device-pixel-ratio
webkit-device-pixel-ratio-nested
landscape
portrait
at-in-at
at-in-at with @font-face
at-in-at with @viewport


You can monitor this task from the Tasks view.
{{taskMonitor.errorMessage}}
View this failed task in the tasks pane.


Booking Form
Our team is made up of experienced and motivated staff who are as dedicated as we are passionate in organizing and bringing live your dream trip.
Our team is made up of experienced and motivated staff who are as dedicated as we are passionate in organizing and bringing live your dream trip.


Toggle navigation
ServerList
×
alert alert-danger
alert alert-warning
alert alert-success
The main content will get bound here
×
ServerList
is Copyright (c) 2014 Taisuke Shiratori


{% extends "layout.html" %} {% load static %} {% load widget_tweaks %} {% load humanize %} {% block title %}article_detail{% endblock title %} {% block content %}
{{ article.description|safe|linebreaks }}
{{ article.body|safe|linebreaks }}
Warner Music Group announced today it’s acquiring the selected assets of the music platform Songkick, including its app for finding concerts and the company’s trademark.
Insticator is announcing that it has raised $5.2 million in Series A funding. The startup allows online publishers to add quizzes, polls and other interactive elements...
{{ total_comments }} Comment{{ total_comments|pluralize }}
{% endwith %} {% for comment in comments %}{{comment.by.username}} | {{comment.created_on|naturaltime }}
{{comment.content}}
No comment yet be the first to comment... {% endfor %}
Post your comment


JSON
@dynamicMemberLookup
public enum JSON
Undocumented, Help us document it!
-
Undocumented, Help us document it!
Declaration
Swift
case dictionary(Dictionary<String, JSON>)
-
Undocumented, Help us document it!
Declaration
Swift
case array(Array<JSON>)
-
Undocumented, Help us document it!
Declaration
Swift
case string(String)
-
Undocumented, Help us document it!
Declaration
Swift
case number(NSNumber)
-
Undocumented, Help us document it!
Declaration
Swift
case bool(Bool)
-
Undocumented, Help us document it!
Declaration
Swift
case null
-
Undocumented, Help us document it!
Declaration
Swift
public subscript(index: Int) -> JSON? { get }
-
Undocumented, Help us document it!
Declaration
Swift
public subscript(key: String) -> JSON? { get }
-
Undocumented, Help us document it!
Declaration
Swift
public subscript(dynamicMember member: String) -> JSON? { get }
-
Undocumented, Help us document it!
Declaration
Swift
public init(data: Data, options: JSONSerialization.ReadingOptions = []) throws
-
Undocumented, Help us document it!
Declaration
Swift
public init(_ object: Any)
-
Undocumented, Help us document it!
Declaration
Swift
public var dictionary: Dictionary<String, JSON>? { get }
-
Undocumented, Help us document it!
Declaration
Swift
public var array: Array<JSON>? { get }
-
Undocumented, Help us document it!
Declaration
Swift
public var string: String? { get }
-
Undocumented, Help us document it!
Declaration
Swift
public var number: NSNumber? { get }
-
Undocumented, Help us document it!
Declaration
Swift
public var double: Double? { get }
-
Undocumented, Help us document it!
Declaration
Swift
public var int: Int? { get }
-
Undocumented, Help us document it!
Declaration
Swift
public var bool: Bool? { get }
-
Undocumented, Help us document it!
Declaration
Swift
public var object: Any { get }
-
Undocumented, Help us document it!
Declaration
Swift
public func data(options: JSONSerialization.WritingOptions = []) -> Data


Landscapes of Possibility
The Appendix editors were enamored of Dual Horizon’s suggestion of places out of time and of imaginary landscapes as a canvas for possible worlds and knew it would be a great fit to accompany Matthew Gildner’s contribution to our April 2013 issue, “Andean Atlantis: Race, Science and the Nazi Occult in Bolivia.” The artist, Justin Berry, was kind enough to explore his process and perspective with us. We hope you enjoy this tour of the spaces his landscapes create and remember to check out yesterday’s article which this piece accompanied.
A work like Dual Horizon usually begins by shopping. When I go to the various used bookstores and sidewalk stalls that I frequent I am not looking for books, but for places. It is about the worlds in which these tales take place rather than the stories themselves.
I choose fantasy and science fiction novels because the worlds that interest me are ones of possibility and potential rather than fact. By painting over all the specific signifiers that define a world, such as the lightning-breathing dragons or the time-traveling cyborgs, I make them into containers for new potential worlds.
The landscapes in my images are often exotic, with strange vegetation or odd outcroppings of rock, but they are also very ordinary and frequently a little banal. I like seeing an ordinary world, much like our own, knowing that anything imaginable could exist within it.
In a work of historical fiction we understand the characters to be false, but believe the depiction of an era or a series of events to be authentic. On the other hand, fantasy empowers us, because it allows us to dismiss its assertions and to deny anything it claims. Any truth that we take away is our own. Imaginary worlds are where we determine not what is true or false, but what is possible.
I scan the book covers at an extremely high resolution, making each dot of ink and every fiber of the paper visible. The difference between a scanner and a camera is that the camera composes the image; it defines an angle by which the image is seen. With a photograph there is always a specific relationship between the observer and the thing observed: it is positioned or lit or cropped or otherwise framed from the perspective of the photographer. The scanner is different. It does not acknowledge the thing it sees; it simply records it, a mute witness to the object placed on the scanner bed. With much of my work I am interested in presenting possibilities rather than points of view, and the scanner has no point of view. It removes my hand and eye from the process.
A nun on a bus gazed at me through a mirror and it stung.  She pulled her compact mirror out of her pocket and looked at me through it. I naturally assumed that she was looking at someone else, because I was unaware of any reason for her to look at me. The gesture, in its oddness, made me uncomfortable nonetheless. Then she began to speak to me, still looking at me through the mirror. She accused me of kicking her on purpose. She kept staring.
When we take a photograph it is an aggressive form of looking. It sounds silly to think of simply looking at something as a form of aggression, but this recent experience convinced me otherwise. By using the compact as an intermediary she ultimately controlled my ability to return her gaze, so that I could only see as much of her as she allowed. In framing my view she placed me under her control. Ultimately, when she refused to stop staring at me I had to move.
The point is that we tend to ignore the passive gaze, because it passes over us, while the active gaze threatens us as it forces us to see ourselves from the perspective of another, and perhaps demands that we conform to their expectations When we control someone’s vision we are controlling his or her perspective A photograph uniquely crystalizes that act of looking; making it into something that can be held in the hand. A photograph instructs. I make objects that are photographs, but I use devices other than cameras because they give me greater control over this dynamic—the way a scanner removes me from the exchange or screen captures introduce my gaze into a site where it is normally absent, such as a video game. I want to make photographs that give control back to the viewer by asking them to see what they want within the frame I have constructed.
My intervention with the image begins when I paint over elements of the original cover. I sometimes find it easier to describe this process to others as erasure, to say that I ‘remove’ or ‘erase’ certain things, but that is not the truth. What I am actually doing, though, is layering pieces of the surrounding imagery over the image. The content that I choose to cover up is always the most important to the intent of the original image: the characters, the buildings, and the text. I cover these things up with the landscape behind them. They disappear.
The artist Paul Pfeiffer uses the same technique and he describes it as a kind of camouflage where the original content is disguised, but I think of it differently. Camouflage implies an emphasis on the thing that is hidden, because it is the subject of secrecy. The emphasis is on the missing, rather than the visible. In my intervention I bring the background forward, changing the context into the content. I want to draw attention to what would have otherwise been unseen, not because it was invisible, but because it did not appear to be important enough to notice.
When we look at traditional landscapes they are not empty images. Usually they are ways for the artist to describe how they see the world, whether politically, spiritually, or economically. They convey something. We see this in the Romantic painting tradition where landscapes convey the power and will of God, or in the photography of Ansel Adams where the images contain a veneration of the natural world. The landscapes in my images are different, because they were originally meant to be in the background, to set the mood, or to convey vague otherness. They are not composed; in becoming separate from that which they were designed to frame they take on the sensibility of a snapshot. They become oddly and compellingly purposeless. It makes me think of a still captured by a security camera when the store is closed or nobody is doing anything wrong. It is a picture of possibility.
In my images I always leave the edges of the book intact. It is important that it is a book and not an isolated painting or drawing, that the image is tied to an object which occupies space. I retain all of the scrapes and bruises that the object has accrued, the creases and tears from years of readership or unkind storage. These creases and tears are ruptures that break up the image plane
Books, even as newer media begin to displace them, still signify content and meaning in a way that electronic media does not. A book in its physicality must to be published, implying a kind of authority bestowed through approval or curation. A book offers a promise of information—that to look inside is to find something there. When the cover of a book has been emptied of implied narrative it becomes a different kind of promise, one that is uncertain and depends on the observer rather than on the illustrator or author.
It is important to me that these images are emptied of overt content because it creates alternatives to the media saturation that we experience on a daily basis. Constantly seduced by imagery, our experience of the world becomes deeper when we engage something that doesn’t have anything to sell. Imagine meeting someone on a trip, who doesn’t work with you or live near you or share any of your friends, with whom you can unreservedly share your feelings and become an amalgamation of both who you are and who you want to be, without the anxiety of needing to perform this feat on a daily basis. I don’t think of these images as being instructive or useful; I see them as a gift, a breath of fresh air in a world otherwise polluted by agendas and ideologies.
Dual Horizon was the first time I used two copies of the same book side by side, presenting two versions of the same world. I did not try to match the gestures from one side to other; I let each one be unique. The worlds are connected to each other through the horizon line, and there are gestures that intentionally tie them together, such as a blade of grass crossing over both books as if the space between them did not exist. These bridges connect the spaces while other breaks in their continuity make the two worlds uneasy neighbors, reflecting into one another but never truly touching, in an effect similar to a mise en abyme.
Having the two versions side-by-side is an admission of mutual inauthenticity, that neither side is authoritative. The dual pictures record the passage of time, perhaps no more than a few seconds, but enough to animate the static space and bring it to life. The image creates a new kind of stereo-scopicity, so that by crossing and unfocusing ones’ eyes a central image is formed, defined not by depth but by difference, as the various discrepancies hover and tremble within your gaze across this spatial and temporal divide.
If any part of the image is authoritative it is in that combined view, where the right eye and left eye disagree over what they see and the world presented by the photograph is left in flux.


Options for the various development tools are covered in more detail elsewhere. Still, the amount of options can be an overwhelming amount of stuff, so the options most suited to embedded systems are summarized here. If you use GCC as the main driver for all the passes, most of the linker options can be passed directly to the compiler. There are also GCC options that control how the GCC driver formats the command line arguments for the linker.
| • GCC Options | Options for the compiler. | |
| • GAS Options | Options for the assembler. | |
| • LD Options | Options for the linker. |


Use {@link #doMove(int theFromFile, int theFromRank, int theToFile, int theToRank)} to move a piece. * * @param theFromFile file from which a piece is being moved * @param theFromRank rank from which a piece is being moved * @param theToFile file to which a piece is being moved * @param theToRank rank to which a piece is being moved * @return true if the move is valid, otherwise false * @since 1.0 */ boolean isValidMove(int theFromFile, int theFromRank, int theToFile, int theToRank) { // ...body } ``` --- ## Example: PHP ```PHP /** * Gets the identified user record * [GET] /users/{slug} * @param string $slug Slug of user to get * * @return object Returns the user object. **/ public function getUserAction($slug) { $user = getUser($slug); return json_encode($user) } ``` --- ## Example: JSDoc * JSDoc http://usejsdoc.org/ * Similar to Javadoc or phpDocumentor * Extensions are available for several editors / IDEs * Can be installed globally or as a project dev dependency --- ## Installing JSDoc Install Globally with NPM ```bash npm install -g jsdoc ``` ## Generate Documentation Each time you want to create or update the html documentation, run the executable ```bash jsdoc src -r -c ./jsdoc.json -d docs open ./docs/index.html ``` --- ## Common JSDoc Tags * The @param tag provides the name, type, and description of a function parameter. * The @returns tag documents the value that a function returns. * The @since tag indicates that a class, method, or other symbol was added in a specific version. * The @inheritdoc tag indicates that a symbol should inherit its documentation from its parent class. * The @async tag indicates that a function is asynchronous. ```javascript /** * Returns the sum of a and b * @param {number} a * @param {number} b * @returns {number} * @since 1.0.1 */ function sum(a, b) { return a + b; } ``` --- ## Exercise: Lets Add Documentation! documentation-demo in the labs --- ## API Spec Sheets ### Intended User: API Developer/Designer This is a technical document that details all endpoints, responses, parameters and examples of an api. Used when planning and building an API. Contains info about the following: * endpoints * allowed http actions * fields * response objects * content types * YAML, JSON etc... --- ## Story Time! ### Built an API with the folloiwng strtucture / requirements: * 35+ endpoints * we create api spec * customer built it * we use it in web application --- ## Story Time! * It looked something like this: .center[![Center-aligned image](realapispec.png)] --- ## Swagger Tool for building API Specs: https://editor.swagger.io/# .center[![Center-aligned image](swagger.png)] --- ## Exercise: Lets Add Documentation! Create a spec sheet for the api. Back to the cars api! --- ## Swagger JSDoc * Allows inline code documentation for a REST API * Parses swagger syntax from JSDoc tags * Creates a OpenAPI (Swagger) specification file ### Install Globally with NPM ```bash npm install swagger-jsdoc -g ``` --- ## Create/Edit swaggerDef.js in the project root ```javascript module.exports = { info: { // API information (required) title: 'Hello World', // Title (required) version: '1.0.0', // Version (required) description: 'A sample API', // Description (optional) }, host: `http://localhost:8080`, // Host (optional) basePath: '/', // Base path (optional) }; ``` --- ## Generate Swagger File ```bash swagger-jsdoc -d swaggerDef.js ./src/**.js ``` ### Visit https://editor.swagger.io/ and copy/pasta or import your swagger.json file --- ## Documentation Websites ### Intended User: customers, prospective customers, developers, users etc...  Parts of a good API Documentatio site: * quickstart guide * endpoint list * endpoint documentation with examples * authentication guide * sample code * error handling/troubleshooting guide * tutorials --- ## Example Documentation Site: Twilio: Phone Service API Provider https://www.twilio.com/docs/usage/api * Overview: https://www.twilio.com/docs/sms * Endpoint Overview: https://www.twilio.com/docs/sms/api/message * Tutorial: https://www.twilio.com/docs/usage/tutorials/how-to-set-up-your-php-development-environment * Troubleshooting: https://www.twilio.com/docs/usage/troubleshooting/debugging-your-application * Auth/Setup: https://www.twilio.com/docs/usage/api RESTCountries * https://restcountries.eu This is a markdown file converted into HTML via a generator tool. * Flatdoc http://ricostacruz.com/flatdoc/ --- ## Documentation.js * Uses JSDoc formatting so either tool can be used on the same project * Since it uses JSDoc all the editor plugins are compatible * Can be installed globally or as a project dev dependency ### Install Globally with NPM ```bash npm install -g documentation ``` ### Generate Documentation Each time you want to create or update the html documentation, run the executable ```bash documentation build src/** -f html -o docs open ./docs/index.html ``` --- ## Documentation.js It can also serve, and live-update HTML docs ```bash documentation.js serve --watch src/** -f html ``` --- ## Changelogs / Release Notes A record of changes and updates made to the system. Usually published when a new release/version of the project is made public. ### Example Release Notes: Version 1.0.10 Release Notes: A new endpoint for "packages" was created. __Breaking Changes:__ The field "delivery attempted" was removed from the "deliveries" endpoint. Real Example: https://www.twilio.com/docs/voice/voip-sdk/ios/changelog --- ## Changes to the API * Things change * New features are added * Bugs are found & fixed * Deprecate old code How do we indicate this to someone consuming our API? --- ## Semantic Versioning! https://semver.org/ Semantic versioning is an intuitave way of indicating the nature of patches released to the system. Major.Minor.Patch Ex: v1.8.9 * Major Version 1 * Minor Version 8 * Patch 10 --- ## Version Types Ex: v1.8.9 * Patch * Bugfix (backwards compatible) * Minor Version * New Feature (backwards compatible) * Major Version * Any change not backwards compatible --- ## Version Numbers Ex: v1.8.9 * Major version 0 is pre-release, development/alpha/beta testing. * Each increment increases in increments of 1. * When a bug is fixed that maintains backwards compatibility, increase patch number. * When a new feature is added that maintains backwards compatibility, increase the minor version number * When any changes break backwards compatibility, increment the major version number. * When incrementing a version number, reset any versions "smaller" (to the right) to 0. __Note:__ These are not decimals. it is possible to have numbers > 10 1.10.42 is a valid version number. --- ## Commit Chain * vx.y.z : initial commit * vx.y.z : started adding features * vx.y.z : bugfix * vx.y.z : bugfix * vx.y.z : new feature * vx.y.z : First Release for public use! * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * vx.y.z : started adding features * vx.y.z : bugfix * vx.y.z : bugfix * vx.y.z : new feature * vx.y.z : First Release for public use! * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * vx.y.z : bugfix * vx.y.z : bugfix * vx.y.z : new feature * vx.y.z : First Release for public use! * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * vx.y.z : bugfix * vx.y.z : new feature * vx.y.z : First Release for public use! * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * v0.1.2 : bugfix * vx.y.z : new feature * vx.y.z : First Release for public use! * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * v0.1.2 : bugfix * v0.2.0 : new feature * vx.y.z : First Release for public use! * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * v0.1.2 : bugfix * v0.2.0 : new feature * v1.0.0 : First Release for public use! * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * v0.1.2 : bugfix * v0.2.0 : new feature * v1.0.0 : First Release for public use! * v1.1.0 : new feature * vx.y.z : bugfix * vx.y.z : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * v0.1.2 : bugfix * v0.2.0 : new feature * v1.0.0 : First Release for public use! * v1.1.0 : new feature * v1.1.1 : bugfix * vx.y.z : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * v0.1.2 : bugfix * v0.2.0 : new feature * v1.0.0 : First Release for public use! * v1.1.0 : new feature * v1.1.1 : bugfix * v2.0.0 : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * vx.y.z : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * v0.1.2 : bugfix * v0.2.0 : new feature * v1.0.0 : First Release for public use! * v1.1.0 : new feature * v1.1.1 : bugfix * v2.0.0 : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * v2.1.0 : new feature * vx.y.z : bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * v0.1.2 : bugfix * v0.2.0 : new feature * v1.0.0 : First Release for public use! * v1.1.0 : new feature * v1.1.1 : bugfix * v2.0.0 : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * v2.1.0 : new feature * v2.1.1: bugfix * vx.y.z : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * v0.1.2 : bugfix * v0.2.0 : new feature * v1.0.0 : First Release for public use! * v1.1.0 : new feature * v1.1.1 : bugfix * v2.0.0 : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * v2.1.0 : new feature * v2.1.1: bugfix * v2.2.0 : feature deprecated * vx.y.z : feature removed --- ## Commit Chain * v0.0.0 : initial commit * v0.1.0 : started adding features * v0.1.1 : bugfix * v0.1.2 : bugfix * v0.2.0 : new feature * v1.0.0 : First Release for public use! * v1.1.0 : new feature * v1.1.1 : bugfix * v2.0.0 : major problem discovered. Rebuilding underlying data structure and api endpoints to match new data format. * v2.1.0 : new feature * v2.1.1: bugfix * v2.2.0 : feature deprecated * v3.0.0 : feature removed --- ## Indicating Version in REST Several ways to include version information in a REST api. * URL route * URL query parameter * Request Headers --- ## Via URL (most common) Major version number added to the url. https://restcountries.eu/rest/v2/ ### Pros: * straightforward * easy to see what version is being used * simple to build. ### Cons: * breaking changes cause who new urls to be needed. * minor, patch versions not indicated. * potentially need several instances of the api to be 'live' --- ## Via Query Parameter Major version added as query parameter http://api.example.com/literature/books?version=1 ### Pros: * easy to default if not provided ### Cons: * complicated routing. * each endpoint needs to care about version and perform different logic accordingly * minor, patch versions not indicated --- ## Custom Request Headers Full version added as custom http request header ```Bash curl -H “version: 1.0.1” http://api.example.com/literature/books ``` ### Pros: * Most specific * includes minor and patch versions ### Cons: * more complicated on API side * more complicated on Client side --- ## Technical vs Marketing ###Technical Versioning !== Product/Marketing Versioning Two types of versioning. 1. Technical versioning (semantic versioning) 2. Product versioning (marketing) Ex: Windows NT https://en.wikipedia.org/wiki/Windows_NT#Releases --- ## Recap ### Documentation * Inline * API Spec Sheets * Public Web Documentation * Changelogs * Generator Tools * Versioning


Hello world!
Blocks
Blocks
Blocks
Blocks
It is just passing a code to method
Blocks examples
Blocks examples
Task
Task
Solution
Packaging system in ruby
Ruby on Rails
The ActiveRecord Module
Stories table. example
use full tools
basic of testing
Have a great day!


| Figure 1 |
Procedure for Study 1. The measures recruited from each part ... |
| Figure 2 |
This photo was taken during an actual VR learning session at ... |
| Figure 3 |
(A) The participant wears an Oculus Development Kit 2 (DK2) ... |
| Figure 4 |
A participant experiencing the virtual environment. (A) The ... |
| Figure 5 |
(A) The researcher uses a wooden dowel to tap the participan ... |
| Figure 6 |
(A) The participant begins the experience by listening to an ... |
| Figure 7 |
(A) In the Gestures condition, the participant is outfitted ... |
| Figure 8 |
(A) The participant is shown an example of the type of speci ... |


There are three ways to load a new document into an iframe using JavaScript. The first uses document.getElementById
to reference the iframe element and assigns a new URL to its src
property.
var el = document.getElementById('ifrm'); el.src = url;
A second alternative uses the frames array to obtain a reference to the iframe window and assigns the new URL to its location property.
window.frames['ifrm'].location = url;
A third alternative uses the location.replace
method in order to avoid having the new URL added to the browser history.
window.frames['ifrm'].location.replace(url);


MPI supports several different types of requests besides those for point-to-point operations. These range from MPI calls for I/O to generalized requests. It is desirable to allow these calls use the same request mechanism. This allows one to wait or test on different types of requests. However, MPI_ {TEST|WAIT }{ANY|SOME|ALL } returns a status with information about the request. With the generalization of requests, one needs to define what information will be returned in the status object.
Each MPI call fills in the appropriate fields in the status object. Any unused fields will have undefined values. A call to MPI_ {TEST|WAIT }{ANY|SOME|ALL } can modify any of the fields in the status object. Specifically, it can modify fields that are undefined. The fields with meaningful value for a given request are defined in the sections with the new request.
Generalized requests raise additional considerations. Here, the user provides the functions to deal with the request. Unlike other MPI calls, the user needs to provide the information to be returned in status. The status argument is provided directly to the callback function where the status needs to be set. Users can directly set the values in 3 of the 5 status values. The count and cancel fields are opaque. To overcome this, these calls are provided:
| MPI_STATUS_SET_ELEMENTS(status, datatype, count) | |
| INOUT status | status with which to associate count (Status) |
| IN datatype | datatype associated with count (handle) |
| IN count | number of elements to associate with status (integer) |
int MPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype, int count)
MPI_STATUS_SET_ELEMENTS(STATUS, DATATYPE, COUNT, IERROR)
INTEGER STATUS(MPI_STATUS_SIZE), DATATYPE, COUNT, IERROR
{ void MPI::Status::Set_elements(const MPI::Datatype& datatype, int count) (binding deprecated, see Section Deprecated since MPI-2.2
) }
This call modifies the opaque part of status so that a call
to MPI_GET_ELEMENTS will return count.
MPI_GET_COUNT will return a compatible value.
The number of elements is set instead of the count because the former
can deal with
a
nonintegral number of datatypes.
( End of rationale.)
This is similar to the restriction that holds
when
count is set by a
receive operation: in that case, the calls to
MPI_GET_COUNT and MPI_GET_ELEMENTS must use a
datatype with the same signature as the datatype used in the
receive call.
( End of rationale.)
int MPI_Status_set_cancelled(MPI_Status *status, int flag)
MPI_STATUS_SET_CANCELLED(STATUS, FLAG, IERROR)
{ void MPI::Status::Set_cancelled(bool flag) (binding deprecated, see Section Deprecated since MPI-2.2
) }
If flag is set to true then a subsequent call to
MPI_TEST_CANCELLED(status, flag) will also return flag = true,
otherwise it will return
false.
Users are advised not to reuse the status fields for values other than
those for which they were intended. Doing so may lead to unexpected
results when using the status object. For example, calling
MPI_GET_ELEMENTS may cause an error if the value is
out of range or it may be impossible to detect such an error. The
extra_state argument provided with a generalized request can
be used to return information that does not logically belong in
status.
Furthermore, modifying the values in a status set internally by MPI,
e.g., MPI_RECV, may lead to unpredictable results and is
strongly discouraged.
( End of advice to users.)
Rationale.
A subsequent call to MPI_GET_COUNT(status, datatype, count) or to
MPI_GET_ELEMENTS(status, datatype, count) must use a
datatype argument that has the same type signature as the
datatype argument that was used in the call to
MPI_STATUS_SET_ELEMENTS.
Rationale.
MPI_STATUS_SET_CANCELLED(status, flag) INOUT status status
with which to associate cancel flag
(Status) IN flag if true indicates request was cancelled (logical)
INTEGER STATUS(MPI_STATUS_SIZE), IERROR
LOGICAL FLAG
Advice to users.
Up: Contents
Next: MPI and Threads
Previous: Examples
Return to MPI-2.2 Standard Index
Return to MPI Forum Home Page
(Unofficial) MPI-2.2 of September 4, 2009
HTML Generated on September 10, 2009


This record type is normally used to send an integer value of up to 64 bits to an output device. The record supports alarm, drive, graphics and control limits.
The record-specific fields are described below.
These fields control how the record determines the value to be output when it gets processed:
Field Summary Type DCT Default Read Write CA PP OMSL Output Mode Select MENU (menuOmsl) Yes Yes Yes No DOL Desired Output Loc INLINK Yes Yes Yes No DRVH Drive High Limit INT64 Yes Yes Yes Yes DRVL Drive Low Limit INT64 Yes Yes Yes Yes VAL Desired Output INT64 Yes Yes Yes Yes
The following steps are performed in order during record processing.
The OMSL menu field is used to determine whether the DOL link field should be used during processing or not:
If OMSL is supervisory
the DOL link field is not used. The new output value is taken from the VAL field, which may have been set from elsewhere.
If OMSL is closed_loop
the DOL link field is used to obtain a value.
The output value is clipped to the range DRVL to DRVH inclusive, provided that DRVH > DRVL. The result is copied into the VAL field.
These fields control where the record will read data from when it is processed:
Field Summary Type DCT Default Read Write CA PP DTYP Device Type DEVICE Yes Yes Yes No OUT Output Specification OUTLINK Yes Yes Yes No
The DTYP field selects which device support layer should be responsible for writing output data. The int64out device support layers provided by EPICS Base are documented in the "Device Support" section. External support modules may provide additional device support for this record type. If not set explicitly, the DTYP value defaults to the first device support that is loaded for the record type, which will usually be the Soft Channel
support that comes with Base.
The OUT link field contains a database or channel access link or provides hardware address information that the device support uses to determine where the output data should be sent to. The format for the OUT field value depends on the device support layer that is selected by the DTYP field. See Address Specification for a description of the various hardware address formats supported.
These parameters are used to present meaningful data to the operator. They do not affect the functioning of the record.
DESC is a string that is usually used to briefly describe the record.
EGU is a string of up to 16 characters naming the engineering units that the VAL field represents.
The HOPR and LOPR fields set the upper and lower display limits for the VAL, HIHI, HIGH, LOW, and LOLO fields.
Field Summary Type DCT Default Read Write CA PP DESC Descriptor STRING [41] Yes Yes Yes No EGU Units name STRING [16] Yes Yes Yes No HOPR High Operating Range INT64 Yes Yes Yes No LOPR Low Operating Range INT64 Yes Yes Yes No
The user configures limit alarms by putting numerical values into the HIHI, HIGH, LOW and LOLO fields, and by setting the associated alarm severities in the corresponding HHSV, HSV, LSV and LLSV menu fields.
The HYST field controls hysteresis to prevent alarm chattering from an input signal that is close to one of the limits and suffers from significant readout noise.
The LALM field is used by the record at run-time to implement the alarm limit hysteresis functionality.
Field Summary Type DCT Default Read Write CA PP HIHI Hihi Alarm Limit INT64 Yes Yes Yes Yes HIGH High Alarm Limit INT64 Yes Yes Yes Yes LOW Low Alarm Limit INT64 Yes Yes Yes Yes LOLO Lolo Alarm Limit INT64 Yes Yes Yes Yes HHSV Hihi Severity MENU (menuAlarmSevr) Yes Yes Yes Yes HSV High Severity MENU (menuAlarmSevr) Yes Yes Yes Yes LSV Low Severity MENU (menuAlarmSevr) Yes Yes Yes Yes LLSV Lolo Severity MENU (menuAlarmSevr) Yes Yes Yes Yes HYST Alarm Deadband INT64 Yes Yes Yes No LALM Last Value Alarmed INT64 No Yes No No
These parameters are used to determine when to send monitors placed on the VAL field. The monitors are sent when the current value exceeds the last transmitted value by the appropriate deadband. If these fields are set to zero, a monitor will be triggered every time the value changes; if set to -1, a monitor will be sent every time the record is processed.
The ADEL field sets the deadband for archive monitors (DBE_LOG
events), while the MDEL field controls value monitors (DBE_VALUE
events).
The remaining fields are used by the record at run-time to implement the record monitoring deadband functionality.
Field Summary Type DCT Default Read Write CA PP ADEL Archive Deadband INT64 Yes Yes Yes No MDEL Monitor Deadband INT64 Yes Yes Yes No ALST Last Value Archived INT64 No Yes No No MLST Last Val Monitored INT64 No Yes No No
The record provides several fields to support simulation of absent hardware. If the SIML field is set it is used to read a value into the SIMM field, which controls whether simulation is used or not:
SIMM must be zero (NO
) for the record to write a value to the device support.
If SIMM is YES
and the SIOL link field is set, the value in engineering units is written using the link.
The SIMS field can be set to give the record an alarm severity while it is in simulation mode.
Field Summary Type DCT Default Read Write CA PP SIML Simulation Mode Link INLINK Yes Yes Yes No SIMM Simulation Mode MENU (menuYesNo) No Yes Yes No SIOL Simulation Output Link OUTLINK Yes Yes Yes No SIMS Simulation Mode Severity MENU (menuAlarmSevr) Yes Yes Yes No
Whenever an output record is put into INVALID alarm severity, IVOA specifies the action to take.
Continue normally
(default)Write the value. Same as if severity is lower than INVALID.
Don't drive outputs
Do not write value.
Set output to IVOV
Set VAL to IVOV, then write the value.
Field Summary Type DCT Default Read Write CA PP IVOA INVALID output action MENU (menuIvoa) Yes Yes Yes No IVOV INVALID output value INT64 Yes Yes Yes No
The following are the record support routines that would be of interest to an application developer. Other routines are the get_units
, get_graphic_double
, get_alarm_double
and get_control_double
routines, which are used to collect properties from the record for the complex DBR data structures.
This routine first initializes the simulation mode mechanism by setting SIMM if SIML is a constant.
It then checks if the device support and the device support's write_int64out
routine are defined. If either one does not exist, an error message is issued and processing is terminated.
If DOL is a constant, then VAL is initialized with its value and UDF is set to FALSE.
If device support includes init_record
, it is called.
Finally, the deadband mechanisms for monitors and level alarms are initialized.
See next section.
Routine process
implements the following algorithm:
Check to see that the appropriate device support module and its write_int64out
routine are defined. If either one does not exist, an error message is issued and processing is terminated with the PACT field set to TRUE, effectively blocking the record to avoid error storms.
Check PACT. If PACT is FALSE, do the following:
Determine value, honoring closed loop mode: if DOL is not a CONSTANT and OMSL is CLOSED_LOOP then get value from DOL setting UDF to FALSE in case of success, else use the VAL field.
Call convert
: if drive limits are defined then force value to be within those limits.
Check UDF and level alarms: This routine checks to see if the record is undefined (UDF is TRUE) or if the new VAL causes the alarm status and severity to change. In the latter case, NSEV, NSTA and LALM are set. It also honors the alarm hysteresis factor (HYST): the value must change by at least HYST between level alarm status and severity changes.
Check severity and write the new value. See "Invalid Alarm Output Action" for details on how invalid alarms affect output records.
If PACT has been changed to TRUE, the device support signals asynchronous processing: its write_int64out
output routine has started, but not completed writing the new value. In this case, the processing routine merely returns, leaving PACT TRUE.
Check to see if monitors should be invoked:
Alarm monitors are posted if the alarm status or severity have changed.
Archive and value change monitors are posted if ADEL and MDEL conditions (see "Monitor Parameters") are met.
NSEV and NSTA are reset to 0.
Scan (process) forward link if necessary, set PACT to FALSE, and return.
The record requires device support to provide an entry table (dset) which defines the following members:
typedef struct {
long number;
long (*report)(int level);
long (*init)(int after);
long (*init_record)(int64outRecord *prec);
long (*get_ioint_info)(int cmd, int64outRecord *prec, IOSCANPVT *piosl);
long (*write_int64out)(int64outRecord *prec);
} int64outdset;
The module must set number
to at least 5, and provide a pointer to its write_int64out()
routine; the other function pointers may be NULL
if their associated functionality is not required for this support layer. Most device supports also provide an init_record()
routine to configure the record instance and connect it to the hardware or driver support layer.
The individual routines are described below.
This optional routine is called by the IOC command dbior
and is passed the report level that was requested by the user. It should print a report on the state of the device support to stdout. The level
parameter may be used to output increasingly more detailed information at higher levels, or to select different types of information with different levels. Level zero should print no more than a small summary.
This optional routine is called twice at IOC initialization time. The first call happens before any of the init_record()
calls are made, with the integer parameter after
set to 0. The second call happens after all of the init_record()
calls have been made, with after
set to 1.
This optional routine is called by the record initialization code for each int64out record instance that has its DTYP field set to use this device support. It is normally used to check that the OUT address is the expected type and that it points to a valid device, to allocate any record-specific buffer space and other memory, and to connect any communication channels needed for the write_int64out()
routine to work properly.
This optional routine is called whenever the record's SCAN field is being changed to or from the value I/O Intr
to find out which I/O Interrupt Scan list the record should be added to or deleted from. If this routine is not provided, it will not be possible to set the SCAN field to the value I/O Intr
at all.
The cmd
parameter is zero when the record is being added to the scan list, and one when it is being removed from the list. The routine must determine which interrupt source the record should be connected to, which it indicates by the scan list that it points the location at *piosl
to before returning. It can prevent the SCAN field from being changed at all by returning a non-zero value to its caller.
In most cases the device support will create the I/O Interrupt Scan lists that it returns for itself, by calling void scanIoInit(IOSCANPVT *piosl)
once for each separate interrupt source. That routine allocates memory and inializes the list, then passes back a pointer to the new list in the location at *piosl
.
When the device support receives notification that the interrupt has occurred, it announces that to the IOC by calling void scanIoRequest(IOSCANPVT iosl)
which will arrange for the appropriate records to be processed in a suitable thread. The scanIoRequest()
routine is safe to call from an interrupt service routine on embedded architectures (vxWorks and RTEMS).
This essential routine is called when the record wants to write a new value to the addressed device. It is responsible for performing (or at least initiating) a write operation, using the value from the record's VAL field.
If the device may take more than a few microseconds to accept the new value, this routine must never block (busy-wait), but use the asynchronous processing mechanism. In that case it signals the asynchronous operation by setting the record's PACT field to TRUE before it returns, having arranged for the record's process()
routine to be called later once the write operation is over. When that happens, the write_int64out()
routine will be called again with PACT still set to TRUE; it should then set it to FALSE to indicate the write has completed, and return.
A return value of zero indicates success, any other value indicates that an error occurred.
...
Two soft device support modules, Soft Channel and Soft Callback Channel, are provided for output records not related to actual hardware devices. The OUT link type must be either a CONSTANT, DB_LINK, or CA_LINK.
This module writes the current value using the record's VAL field.
write_int64out
calls dbPutLink
to write the current value.
This module is like the previous except that it writes the current value using asynchronous processing that will not complete until an asynchronous processing of the target record has completed.


--- layout: page title: About header-img: "img/about-bg.png" ---
I'm currently enrolled in the Flatiron Software Engineering program. This blog will be used to document my learning throughout the program in sizeable bite-sized chunks for easy reference back to tricky concepts or material.


Create A Simple Discord Bot
This guide will show you how to create a simple bot for discord on a ubuntu 16 server. Our bot will be very basic and will reply with a message saying pong when we a user types ping.
Install node.js and npm
We need to install node.js and npm and we can do so by typing the following commands in your command line.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get update -y
sudo apt-get install -y nodejs
sudo apt-get install -y npm
Once you have installed nodejs and npm successfully, you can check to see that you have the correct version. Note that you need at least nodejs 8.0.0 or higher.
nodejs -v
npm -v
Create the bot
We now need to create all of the files we need.
Create a new folder and navigate to it.
mkdir ping-pong-bot && cd ping-pong-bot
Next step is to initialize our project. A file called package.json will be created for us to easier manage and install dependencies.
npm init -y
It is now time to install the discord.js dependency.
npm install --save discord.js
We now need to create a file that can hold our discord token so that we can connect the bot to discord. We also need a file to hold the code for our bot.
touch auth.json && bot.js
Copy the code below and paste it onto your auth.json file. I personally like the vi editor so here is how to do it:
vi auth.json
Copy and paste this into auth.json
{
"token": "YOUR-BOT-TOKEN"
}
We also need to edit our bot.js
const Discord = require('discord.js');
const client = new Discord.Client();
const auth = require('./auth.json');
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on('message', msg => {
if (msg.content === 'ping') {
msg.reply('pong');
}
});
client.login(auth.token);
Generate token
The token needed for our auth.json file can be generated from Discord’s Developer Portal.
-
Head over to https://discordapp.com/developers/applications/ and click New Application, enter a name for your bot and then Create.
-
Click on the Bot tab on the left hand side and then click Add Bot followed by Yes, do it!.
-
Next, Click on Click to Reveal Token and copy the token. Navigate to your auth.json file and replace the text YOUR-BOT-TOKEN with your token.
Invite the bot
We have created all of the files needed, generated a token and we have written the code for the bot. We now need to invite the bot to our discord server.
- Navigate back to the discord developer portal. https://discordapp.com/developers/applications
- Click OAuth2.
- Scroll down to scopes and bot permission.
- Select Send Messages and Read Message History and then copy the URL generated in the Scopes section.
- Paste the url into your browser and select your discord server from the dropdown menu and then click Authorize.
- Voila! Your bot should now have joined your server and should respond with a message saying pong when you type ping.


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one or more | |
| 3 | * contributor license agreements. See the NOTICE file distributed with | |
| 4 | * this work for additional information regarding copyright ownership. | |
| 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 | |
| 6 | * (the "License"); you may not use this file except in compliance with | |
| 7 | * the License. You may obtain a copy of the License at | |
| 8 | * | |
| 9 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 10 | * | |
| 11 | * Unless required by applicable law or agreed to in writing, software | |
| 12 | * distributed under the License is distributed on an "AS IS" BASIS, | |
| 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 14 | * See the License for the specific language governing permissions and | |
| 15 | * limitations under the License. | |
| 16 | */ | |
| 17 | package org.apache.commons.io.filefilter; | |
| 18 | ||
| 19 | import java.io.File; | |
| 20 | import java.io.Serializable; | |
| 21 | import java.util.List; | |
| 22 | ||
| 23 | import org.apache.commons.io.FilenameUtils; | |
| 24 | ||
| 25 | /** | |
| 26 | * Filters files using the supplied wildcards. | |
| 27 | * <p> | |
| 28 | * This filter selects files, but not directories, based on one or more wildcards | |
| 29 | * and using case-sensitive comparison. | |
| 30 | * <p> | |
| 31 | * The wildcard matcher uses the characters '?' and '*' to represent a | |
| 32 | * single or multiple wildcard characters. | |
| 33 | * This is the same as often found on Dos/Unix command lines. | |
| 34 | * The extension check is case-sensitive. | |
| 35 | * See {@link FilenameUtils#wildcardMatch(String, String)} for more information. | |
| 36 | * <p> | |
| 37 | * For example: | |
| 38 | * <pre> | |
| 39 | * File dir = new File("."); | |
| 40 | * FileFilter fileFilter = new WildcardFilter("*test*.java~*~"); | |
| 41 | * File[] files = dir.listFiles(fileFilter); | |
| 42 | * for (int i = 0; i < files.length; i++) { | |
| 43 | * System.out.println(files[i]); | |
| 44 | * } | |
| 45 | * </pre> | |
| 46 | * | |
| 47 | * @since 1.1 | |
| 48 | * @deprecated Use WildcardFileFilter. Deprecated as this class performs directory | |
| 49 | * filtering which it shouldn't do, but that can't be removed due to compatibility. | |
| 50 | */ | |
| 51 | @Deprecated | |
| 52 | public class WildcardFilter extends AbstractFileFilter implements Serializable { | |
| 53 | ||
| 54 | private static final long serialVersionUID = -5037645902506953517L; | |
| 55 | /** The wildcards that will be used to match filenames. */ | |
| 56 | private final String[] wildcards; | |
| 57 | ||
| 58 | /** | |
| 59 | * Construct a new case-sensitive wildcard filter for a single wildcard. | |
| 60 | * | |
| 61 | * @param wildcard the wildcard to match | |
| 62 | * @throws IllegalArgumentException if the pattern is null | |
| 63 | */ | |
| 64 | public WildcardFilter(final String wildcard) { | |
| 65 |
1
1. |
if (wildcard == null) { |
| 66 | throw new IllegalArgumentException("The wildcard must not be null"); | |
| 67 | } | |
| 68 | this.wildcards = new String[] { wildcard }; | |
| 69 | } | |
| 70 | ||
| 71 | /** | |
| 72 | * Construct a new case-sensitive wildcard filter for an array of wildcards. | |
| 73 | * | |
| 74 | * @param wildcards the array of wildcards to match | |
| 75 | * @throws IllegalArgumentException if the pattern array is null | |
| 76 | */ | |
| 77 | public WildcardFilter(final String[] wildcards) { | |
| 78 |
1
1. |
if (wildcards == null) { |
| 79 | throw new IllegalArgumentException("The wildcard array must not be null"); | |
| 80 | } | |
| 81 | this.wildcards = new String[wildcards.length]; | |
| 82 |
1
1. |
System.arraycopy(wildcards, 0, this.wildcards, 0, wildcards.length); |
| 83 | } | |
| 84 | ||
| 85 | /** | |
| 86 | * Construct a new case-sensitive wildcard filter for a list of wildcards. | |
| 87 | * | |
| 88 | * @param wildcards the list of wildcards to match | |
| 89 | * @throws IllegalArgumentException if the pattern list is null | |
| 90 | * @throws ClassCastException if the list does not contain Strings | |
| 91 | */ | |
| 92 | public WildcardFilter(final List<String> wildcards) { | |
| 93 |
1
1. |
if (wildcards == null) { |
| 94 | throw new IllegalArgumentException("The wildcard list must not be null"); | |
| 95 | } | |
| 96 | this.wildcards = wildcards.toArray(new String[wildcards.size()]); | |
| 97 | } | |
| 98 | ||
| 99 | //----------------------------------------------------------------------- | |
| 100 | /** | |
| 101 | * Checks to see if the filename matches one of the wildcards. | |
| 102 | * | |
| 103 | * @param dir the file directory | |
| 104 | * @param name the filename | |
| 105 | * @return true if the filename matches one of the wildcards | |
| 106 | */ | |
| 107 | @Override | |
| 108 | public boolean accept(final File dir, final String name) { | |
| 109 |
2
1. accept : negated conditional → SURVIVED 2. accept : negated conditional → SURVIVED |
if (dir != null && new File(dir, name).isDirectory()) { |
| 110 |
1
1. accept : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return false; |
| 111 | } | |
| 112 | ||
| 113 |
3
1. accept : changed conditional boundary → KILLED 2. accept : Changed increment from 1 to -1 → KILLED 3. accept : negated conditional → KILLED |
for (final String wildcard : wildcards) { |
| 114 |
1
1. accept : negated conditional → KILLED |
if (FilenameUtils.wildcardMatch(name, wildcard)) { |
| 115 |
1
1. accept : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return true; |
| 116 | } | |
| 117 | } | |
| 118 | ||
| 119 |
1
1. accept : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 120 | } | |
| 121 | ||
| 122 | /** | |
| 123 | * Checks to see if the filename matches one of the wildcards. | |
| 124 | * | |
| 125 | * @param file the file to check | |
| 126 | * @return true if the filename matches one of the wildcards | |
| 127 | */ | |
| 128 | @Override | |
| 129 | public boolean accept(final File file) { | |
| 130 |
1
1. accept : negated conditional → KILLED |
if (file.isDirectory()) { |
| 131 |
1
1. accept : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return false; |
| 132 | } | |
| 133 | ||
| 134 |
3
1. accept : changed conditional boundary → KILLED 2. accept : Changed increment from 1 to -1 → KILLED 3. accept : negated conditional → KILLED |
for (final String wildcard : wildcards) { |
| 135 |
1
1. accept : negated conditional → KILLED |
if (FilenameUtils.wildcardMatch(file.getName(), wildcard)) { |
| 136 |
1
1. accept : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return true; |
| 137 | } | |
| 138 | } | |
| 139 | ||
| 140 |
1
1. accept : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 141 | } | |
| 142 | ||
| 143 | } | |
Mutations | ||
| 65 |
1.1 |
|
| 78 |
1.1 |
|
| 82 |
1.1 |
|
| 93 |
1.1 |
|
| 109 |
1.1 2.2 |
|
| 110 |
1.1 |
|
| 113 |
1.1 2.2 3.3 |
|
| 114 |
1.1 |
|
| 115 |
1.1 |
|
| 119 |
1.1 |
|
| 130 |
1.1 |
|
| 131 |
1.1 |
|
| 134 |
1.1 2.2 3.3 |
|
| 135 |
1.1 |
|
| 136 |
1.1 |
|
| 140 |
1.1 |


Provides web-specific data binding functionality, including a utility class for easy invocation of binding and validation.


It's extremely easy to blocked on a simple problem when coding - a missing semi-colon is the frequent offender for me. Practice makes perfect - happens less these days. I've had frequent blocks - the worst are ones when you have no idea where to start. The best way to handle it is to talk it through (Pseudocode), and watch your code make changes live, as well as consulting previous lessons.  The truth is I've not had anything I can call an elegant solution yet - I'm hoping for more of those in the coming weeks!
The feeling when you put your code in and it works first time without needing any hints is borderline euphoria. On the other hand, going through your code for the 23rd time and still not seeing what you've done wrong is infuriating, and can definitely become counter productive. It's definitely best to take a breather and do something else, then come back with a clear head. If you understand the problem you're trying to solve, but the code isn't quite right, that doesn't cause me as much stress as a total blank. Those are bad. I'm more than happy to ask for help rather than drive myself crazy, but what I try and do is delete it and start again (with the new knowledge in my head). A downside of Codecademy style learning is you often just copy it down without learning it - need to do it fresh.
The .map function allows us to create a new array from a previous one, by making a specific change to every element in that array. For example, an array could contain [1,2,3] and you could use a .map function to multiply every number by 2, leaving you with [2,4,6]
The filter method allows us to pick out elements from an array that meet a certain criteria - for example, words over a certain length- and create a new array with those words.
The reduce method will turn the combined values of an array into a single number.
Home


EFA enquiries
Contact form https://form.education...
For all enquiries for the Education Funding Agency
Guidance
Information on traineeships for the academic year 2016 to 2017
Education Funding Agency ( EFA ) funds traineeships through institutions having a contract/grant funding agreement. The following information is designed to support institutions in understanding traineeships for the 2016 to 2017 academic year.
Traineeships are a demand led programme which can benefit young people if they are within 6 months of being able to get sustainable employment or an apprenticeship.
Traineeships were introduced in 2013 and further information about the policy, the content of the programme and details on work experience arrangements are available on GOV.UK.
There are no unique provider eligibility requirements for traineeships. Previous requirements for providers to deliver – being Ofsted grade ‘Outstanding’ or ‘Good’ - were removed with effect from 1 February 2016.
Traineeships are funded as study programmes on a per student basis. Further information is available in the EFA Funding guidance . The unique characteristics of a traineeship are:
You can use as much of your study programme allocation as you see fit for delivering traineeships.
EFA monitors delivery by commercial and charitable providers ( CCPs ) throughout the year and currently provides growth funding where an institution has reached their full allocation at specified points, starting in-year with the February ILR return. Further information is available for CCPs .
EFA can provide exceptional growth where their business case meets the threshold for consideration.
If you have a Skills Funding Agency ( SFA ) 16 to 18 apprenticeships contract, you will be delivering traineeships through them. Further information is available about the SFA . If you do not have either SFA or EFA contracts, you should look out for market entry opportunities. Further information is available on market entry .
Successful outcomes will be within 6 months of leaving/completing a traineeship, the trainee:
As a study programme, a traineeship’s core aim drives retention in funding terms. Completing the work experience core aim means the student is retained. Completion can be either by fulfilling the planned hours or by leaving the core aim early to achieve a successful outcome. There are four possible scenarios which define retention, funding and outcomes:
Students on traineeships are subject to the condition of funding and are treated as part time students for this purpose. This means they are not required to study a GCSE even if they have a GCSE grade D. Further information is available about the condition of funding for English and maths .
Institutions must be able to demonstrate educational progression for students recruited onto programmes funded by the EFA and be able to record evidence of good educational reasons for any individual students recruited to programmes which do not provide progression. All such students should only make up a small percentage of the total student cohort.
If a learner does not complete the English and maths elements of the traineeship within 6 months then these will continue to be funded until they are completed. Detail on how this is handled on the ILR can be found on GOV.UK.
When a trainee progresses from a traineeship the next English and maths studied should be at a higher level than they studied on the traineeship.
The expectation is that the number of providers and traineeships per provider will grow compared to previous years. There are published figures available on the total number of traineeships .
The primary objective of a traineeship is to progress the trainee to an apprenticeship or other sustainable jobs. Alternatively, the trainee could enrol on a course of further learning including a full time study programme at level 2 or 3.
The purpose of traineeships is to prepare young people for employment so that they are able to progress successfully to apprenticeships and other sustainable jobs. Work experience in traineeships should give the young person experience of a real workplace so they can develop the skills, knowledge, confidence, attitudes and behaviours they need to succeed at work. Ideally, this should be with an external employer, external to the learning environment and at an external site. However, exceptions to this will be funded. For example, local authorities with a training arm where the direct provision of training is clearly not the local authority’s core business, work experience within departments which are separate to the training arm counts as external work experience.
In these cases providers will need to make a judgement about whether their work placements genuinely provide students with the experiences they need to develop the work-related attributes expected of a traineeship. Ultimately Ofsted make judgements about the suitability of these arrangements through inspection and grading of providers.
Simulated activity in an artificial environment may well form a helpful part of work preparation training but will not count as work placements for the purposes of traineeships.
Further information is available on the ILR requirements for traineeships.
For further details please read the traineeships section of the provider support manual.
Information is available on the census requirements for traineeships.
For further details please read the traineeships section of the School Census Guide .
There is also support available to institutions from the census tool regarding traineeships and the English and maths Condition of Funding .
Contact form https://form.education...
For all enquiries for the Education Funding Agency
This document is Version 2.0 and the content was first published March 2015.
Published: 18 March 2015
Updated: 8 September 2016


◆ boundaryPadding
| float UnityMovementAI.Spawner.boundaryPadding = 1f |
◆ numberOfObjects
| int UnityMovementAI.Spawner.numberOfObjects = 10 |
◆ obj
| Transform UnityMovementAI.Spawner.obj |
◆ objectSizeRange
| Vector2 UnityMovementAI.Spawner.objectSizeRange = new Vector2(1, 2) |
◆ objs
◆ randomizeOrientation
| bool UnityMovementAI.Spawner.randomizeOrientation = false |
◆ spaceBetweenObjects
| float UnityMovementAI.Spawner.spaceBetweenObjects = 1f |
◆ thingsToAvoid
The documentation for this class was generated from the following file:
- /Users/tgroeche/scripts/UnityProjects/MoveToCode/Assets/UnityMovementAI/Scripts/Spawner.cs


| formula.gam {mgcv} | R Documentation |
Description of gam
formula (see Details), and how to extract it from a fitted gam
object.
## S3 method for class 'gam' formula(x,...)
x |
fitted model objects of class |
... |
un-used in this case |
gam
will accept a formula or, with some families, a list of formulae.
Other mgcv
modelling functions will not accept a list. The list form provides a mechanism for
specifying several linear predictors, and allows these to share terms: see below.
The formulae supplied to gam
are exactly like those supplied to
glm
except that smooth terms, s
, te
, ti
and t2
can
be added to the right hand side (and .
is not supported in gam
formulae).
Smooth terms are specified by expressions of the form:
s(x1,x2,...,k=12,fx=FALSE,bs="tp",by=z,id=1)
where x1
, x2
, etc. are the covariates which the smooth
is a function of, and k
is the dimension of the basis used to
represent the smooth term. If k
is not
specified then basis specific defaults are used. Note that these defaults are
essentially arbitrary, and it is important to check that they are not so
small that they cause oversmoothing (too large just slows down computation).
Sometimes the modelling context suggests sensible values for k
, but if not
informal checking is easy: see choose.k
and gam.check
.
fx
is used to indicate whether or not this term should be unpenalized,
and therefore have a fixed number of degrees of freedom set by k
(almost always k-1
). bs
indicates the basis to use for the smooth:
the built in options are described in smooth.terms
, and user defined
smooths can be added (see user.defined.smooth
). If bs
is not supplied
then the default "tp"
(tprs
) basis is used.
by
can be used to specify a variable by which
the smooth should be multiplied. For example gam(y~s(x,by=z))
would specify a model E(y)=f(x)z where
f(.) is a smooth function. The by
option is particularly useful for models in
which different functions of the same variable are required for
each level of a factor and for ‘varying coefficient models’: see gam.models
.
id
is used to give smooths identities: smooths with the same identity have
the same basis, penalty and smoothing parameter (but different coefficients, so they are
different functions).
An alternative for specifying smooths of more than one covariate is e.g.:
te(x,z,bs=c("tp","tp"),m=c(2,3),k=c(5,10))
which would specify a tensor product
smooth of the two covariates x
and z
constructed from marginal t.p.r.s. bases
of dimension 5 and 10 with marginal penalties of order 2 and 3. Any combination of basis types is
possible, as is any number of covariates. te
provides further information.
ti
terms are a variant designed to be used as interaction terms when the main
effects (and any lower order interactions) are present. t2
produces tensor product
smooths that are the natural low rank analogue of smoothing spline anova models.
s
, te
, ti
and t2
terms accept an sp
argument of supplied smoothing parameters: positive
values are taken as fixed values to be used, negative to indicate that the parameter should be estimated. If
sp
is supplied then it over-rides whatever is in the sp
argument to gam
, if it is not supplied
then it defaults to all negative, but does not over-ride the sp
argument to gam
.
Formulae can involve nested or “overlapping” terms such as
y~s(x)+s(z)+s(x,z)
or y~s(x,z)+s(z,v)
but nested models should really be set up using ti
terms:
see gam.side
for further details and examples.
Smooth terms in a gam
formula will accept matrix arguments as covariates (and corresponding by
variable),
in which case a ‘summation convention’ is invoked. Consider the example of s(X,Z,by=L)
where X
, Z
and L
are n by m matrices. Let F
be the n by m matrix that results from evaluating the smooth at the values in
X
and Z
. Then the contribution to the linear predictor from the term will be
rowSums(F*L)
(note the element-wise multiplication). This convention allows the linear predictor of the GAM
to depend on (a discrete approximation to) any linear functional of a smooth: see linear.functional.terms
for more information and examples (including functional linear models/signal regression).
Note that gam
allows any term in the model formula to be penalized (possibly by multiple penalties),
via the paraPen
argument. See gam.models
for details and example code.
When several formulae are provided in a list, then they can be used to specify multiple linear predictors
for families for which this makes sense (e.g. mvn
). The first formula in the list must include
a response variable, but later formulae need not (depending on the requirements of the family). Let the linear predictors
be indexed, 1 to d where d is the number of linear predictors, and the indexing is in the order in which the
formulae appear in the list. It is possible to supply extra formulae specifying that several linear predictors
should share some terms. To do this a formula is supplied in which the response is replaced by numbers specifying the
indices of the linear predictors which will shre the terms specified on the r.h.s. For example 1+3~s(x)+z-1
specifies that linear predictors 1 and 3 will share the terms s(x)
and z
(but we don't want an extra intercept, as this would usually be unidentifiable). Note that it is possible that a linear predictor only includes shared terms: it must still have its own formula, but the r.h.s. would simply be -1
(e.g. y ~ -1
or ~ -1
).
Returns the model formula, x$formula
. Provided so that anova
methods
print an appropriate description of the model.
A codegam formula should not refer to variables using e.g. dat[["x"]]
.
Simon N. Wood simon.wood@r-project.org


Implementations must act as if they used the following algorithms to tokenize CSS. To transform a stream of code points into a stream of tokens, repeatedly consume a token until an <EOF-token> is reached, collecting the returned tokens into a stream. Each call to the consume a token algorithm returns a single token, so it can also be used “on-demand” to tokenize a stream of code points during parsing, if so desired.
The output of the tokenization step is a stream of zero or more of the following tokens:
<ident-token>, <function-token>, <at-keyword-token>, <hash-token>, <string-token>, <bad-string-token>, <url-token>, <bad-url-token>, <delim-token>, <number-token>, <percentage-token>, <dimension-token>, <include-match-token>, <dash-match-token>, <prefix-match-token>, <suffix-match-token>, <substring-match-token>, <column-token>, <whitespace-token>, <CDO-token>, <CDC-token>, <colon-token>, <semicolon-token>, <comma-token>, <[-token>, <]-token>, <(-token>, <)-token>, <{-token>, and <}-token>.
Details on those tokens:
- <ident-token>, <function-token>, <at-keyword-token>, <hash-token>,
- <string-token>, <url-token>:
- Have a value composed of zero or more code points.
- <hash-token>s have a type flag set to either “id” or “unrestricted”. The type flag defaults to “unrestricted”
<delim-token> has a value composed of a single code point.
- <number-token>, <percentage-token>, <dimension-token>:
Have a representation composed of one or more code points, and a numeric value.
<number-token> and <dimension-token> additionally have a type flag set to either “integer” or “number”.
- The type flag defaults to “integer” if not otherwise set.
<dimension-token> additionally have a unit composed of one or more code points.
Bases: Quasar.parser.tokens.css_tokens.IdentToken
An at rule.
| Parameters: | value : str
|
|---|
Bases: Quasar.parser.tokens.css_tokens.StringToken
Token representing an invalid string.
An invalid string is any string that contains an unescaped newline. All `BadStringToken`s have a value of ‘’, the empty string.
Bases: Quasar.parser.tokens.css_tokens.CSSToken
Indicates a CDC Token. I don’t actually know what this is yet...
Bases: Quasar.parser.tokens.css_tokens.CSSToken
Indicates a CDO Token. Don’t know what this is yet...
Bases: object
The base class for all CSSToken objects.
| Parameters: | string : str
|
|---|
Bases: object
Tokenizes a CSS string as per the W3C specifications[R1]_.
All regular expressions, string comparisons, etc are based on their unicode values as per the UTF-8 specification[R2]_.
| [R1] | http://dev.w3.org/csswg/css-syntax/ |
| [R2] | https://tools.ietf.org/html/rfc3629 |
| Parameters: | input_string : str
|
|---|
Attributes
| stream | The byte stream of unicode code points that is to be tokenized |
| tokens | The stream of tokens that have been processed |
| current_code_point | The current code point that is being considered by the tokenizer |
| next_code_point | The next code point to be considered by the tokenizer |
| digit | (_sre.SRE_Pattern) Regular expression that matches digits 0-9. |
| hex_digit | (_sre.SRE_Pattern) Regular expression that matches hex digits: 0-9, a-f, A-F. |
| letter | (_sre.SRE_Pattern) Regular expression that matches all letters: a-z, A-Z. |
| non_ascii | (_sre.SRE_Pattern) Regular expression that matches all non-ASCII code points, that is the code points with a value greater than U+007F. |
| name_start | (_sre.SRE_Pattern) Regular expression that matches a “name-start” code point. This includes all letters, non-ASCII code points, and the low line code point U+005F ( _ ). |
| name | (_sre.SRE_Pattern) Regular expression that matches a “name” code point. This includes any name-start code point, any digit, and the hyphen-minus code point U+002D (-). |
| non_printable | (_sre.SRE_Pattern) Regular expression that matches so-called “non-printable” code points. This includes any code point between U+0000 NULL and U+0008 BACKSPACE, U+000B LINE TABULATION, any code point between U+000E SHIFT OUT and U+001F INFORMATION SEPARATOR ONE, or U+007F DELETE. |
| newline | (_sre.SRE_Pattern) Regular expression that mathces U+000A LINE FEED. Note that U+000D CARRIAGE RETURN and U+000C FORM FEED are not included in this definition, as they are converted to U+000A LINE FEED during preprocessing. |
| whitespace | (_sre.SRE_Pattern) Regular expression that matches any whitespace character. Includes newlines, U+0009 CHARACTER TABULATION, and U+0020 SPACE. |
| surrogate | (_sre.SRE_Pattern) Regular expression that matches so-called “surrogate” code points. This includes any code point between U+D800 and U+DFFF. |
| literal_tokens | (_sre.SRE_Pattern) Regular expression that matches the “literal” characters. u0028 u0029 u002C u003A u003B u005B u005D u007B u007D |
| quotations | (_sre.SRE_Pattern) Regular expression that matches either type of quote, U+0022 (”) or U+0027 (‘). |
| url | (_sre.SRE_Pattern) Regular expression that matches the word ‘url’ in a non-case sensitive manner. |
| hash_token | (unicode) The # code point U+0023. |
| forward_slash | (unicode) The / code point U+002F. |
| dollar_sign | (unicode) The $ code point U+0024. |
| asterisk | (unicode) The * code point U+002A. |
| plus | (unicode) The + code point U+002B. |
| minus | (unicode) The - code point U+002D. |
| full_stop | (unicode) The . code point U+002E. |
| less_than | (unicode) The < code point U+003C. |
| greater_than | (unicode) The > code point u+003E. |
| equals_sign | (unicode) The = code point U+003D. |
| at_sign | (unicode) The @ code point U+0040. |
| backslash | (unicode) The code point U+005C. |
| circumflex | (unicode) The ^ code point U+005E. |
| vertical | (unicode) The | code point U+007C. |
| tilde | (unicode) The ~ code point U+007E. |
| percent | (unicode) The % code point U+0025. |
| lparen | (unicode) The ( code point U+0028. |
| rparen | (unicode) The ) code point U+0029. |
| double_quote | (unicode) The ” code point U+0022. |
| single_quote | (unicode) The ‘ code point U+0027. |
| exclamation_point | (unicode) The ! code point U+002D. |
| EOF | (types.NoneType) Conceptual end of file. |
Consumes comments within a CSS document but does not store the information within them anywhere.
Notes
If the next two input code point are U+002F SOLIDUS (/) followed by a U+002A ASTERISK (*), consume them and all following code points up to and including the first U+002A ASTERISK (*) followed by a U+002F SOLIDUS (/), or up to an EOF code point. Return to the start of this step.
Consumes the next code point in the stream and assigns the next code point.
Consumes a numeric token: PercentageToken, DimensionToken, or NumberToken. Also handles some edge cases that occur when the leading code point is a hyphen or a period.
Consumes an arbitrary amount of whitespace of arbitrary type. Adds a WhitespaceToken to the end of the list of tokens.
The current code point that is being considered by the tokenizer
Peeks along the byte stream to check what the next several code points will be.
| Parameters: | distance : int
|
|---|---|
| Returns: | list
|
The next code point to be considered by the tokenizer
Pushes the current code point onto the front of the stream.
The byte stream of unicode code points that is to be tokenized
Tokenizes the code points within the byte stream. Calls utility methods to handle the various different tokenization algorithms
The stream of tokens that have been processed
Bases: Quasar.parser.tokens.css_tokens.CSSToken
Indicates a column. I don’t actually know what this is yet...
Bases: Quasar.parser.tokens.css_tokens.CSSToken
Indicates a dash match. I don’t actually know what this is yet...
Bases: Quasar.parser.tokens.css_tokens.CSSToken
Token used as a delimiter.
| Parameters: | value : str
|
|---|
Bases: Quasar.parser.tokens.css_tokens.NumberToken
A Number Token with a unit of measure.
For example, 10px is a number token measured in terms of pixels.
| Parameters: | string_repr : str
numeric_value : int, float
type_flag : str {‘integer’, ‘number’}
unit : str
|
|---|
Bases: Quasar.parser.tokens.css_tokens.IdentToken
An identifier that specifically identifies a function.
| Parameters: | name : str
|
|---|
Bases: Quasar.parser.tokens.css_tokens.CSSToken
A CSS Token representing an id selector.
For example, #foo {} selects the id foo.
| Parameters: | value : str
type_ : str, { ‘unrestricted’, ‘id’ }
|
|---|
Bases: Quasar.parser.tokens.css_tokens.CSSToken
A CSS Token that represents an identifier.
| Parameters: | name : str
|
|---|
Bases: Quasar.parser.tokens.css_tokens.CSSToken
Indicates an include match. I don’t actually know what this is yet...
Bases: Quasar.parser.tokens.css_tokens.CSSToken
A literal token.
Used to represent the various string literals that are used to determine scope (among other things) within a CSS document.
| Parameters: | value : str, { “{”, “}”, “[”, “]”, “(”, ”)”, ”;”, ”:”, ”,” }
|
|---|
Bases: Quasar.parser.tokens.css_tokens.CSSToken
A CSS Token representing some sort of number
| Parameters: | string_repr : str
numeric_value : int, float
type_flag : str {‘integer’, ‘number’}
|
|---|
Bases: Quasar.parser.tokens.css_tokens.NumberToken
A Number Token that represents some percentage value.
| Parameters: | string_repr : str
numeric_value : int, float
|
|---|
Bases: Quasar.parser.tokens.css_tokens.CSSToken
Indicates a prefix match. I don’t actually know what this is yet...
Bases: Quasar.parser.tokens.css_tokens.CSSToken
Token representing a string.
| Parameters: | value : str
|
|---|
Bases: Quasar.parser.tokens.css_tokens.CSSToken
Indicates a substring match. I don’t actually know what this is yet...
Bases: Quasar.parser.tokens.css_tokens.CSSToken
Indicates a suffix match. I don’t actually know what this is yet...
Bases: Quasar.parser.tokens.css_tokens.FunctionToken
A token representing a URL function
| Parameters: | value : str
|
|---|
Bases: Quasar.parser.tokens.css_tokens.CSSToken
A CSS Token representing an arbitrary amount of whitespace.
Whitespace of any length or type is arbitrarily reduced to a single space.
Preprocesses the CSS to handle invalid or undesirable code points.
| Parameters: | unicode_string_input : unicode
|
|---|---|
| Returns: | unicode_string_output : unicode
|
Notes
Invalid code points are defined by the current UTF-8 standard; any value greater than U+10FFFF is invalid and is skipped by the algorithm.


Team LARP will use JUnit as its testing tool. JUnit is a testing framework designed specificially for the Java language and makes testing very easy and straight forward.


Ex VC with 15+ years of venture creation experience. Co-founder PsiKick; co-founder, CEO, Astraea; Lecturer, McIntire School of Commerce.
World-renowned entrepreneurship expert. Professor, Darden School of Business.
Co-founder, Helme.io. 8 years software development experience. Lead frontend engineer, TwinThread. UVa CS grad.
Founder, Husk Power Systems. Executive Director, HackCville. Lecturer, McIntire School of Commerce and Batten School of Public Policy.
Director Ops, Borrowed and Blue. Former VP Digital Strategy, Vastly and former CTO, Branch Basics. Co-founder, Society for Effectual Action.
Co-founder and CEO, Borrowed and Blue. Co-founder, Hotelicopter. Lecturer, UVA McIntire School of Commerce.
Co-founder, PickupGuitarClub.com. 7 years coding experience. Rodman Scholar. Software Engineer at WillowTree Apps.
Founder and designer, 10/HALF Studios. Lecturer at UVA School of Architecture.


AgsSecurity
public class AgsSecurity
AeroGear Services Security SDK
SDK provides a way for the developer to perform security checks on the device their code is running on
-
The initialise method of AgsSecurity
Declaration
Swift
public init()
-
Perform a security check on a device.
Declaration
Swift
public func check(_ check: SecurityCheck) -> SecurityCheckResult
Parameters
check
The security check to be performed
Return Value
A SecurityCheckResult with a true or false property ‘passed’
-
Perform a security check on a device and also publish the result to the metrics service
Declaration
Swift
public func checkAndPublishMetric(_ check: SecurityCheck) -> SecurityCheckResult
Parameters
check
The security check to be performed
Return Value
A SecurityCheckResult with a true or false property ‘passed’
-
Perform multiple security checks on a device
Declaration
Swift
public func checkMany(_ checks: [SecurityCheck]) -> [SecurityCheckResult]
Parameters
checks
The security checks to be performed
Return Value
An array of type SecurityCheckResult with a true or false property ‘passed’ for each result
-
Perform multiple security checks on a device and also publish them to the metrics service
Declaration
Swift
public func checkManyAndPublishMetric(_ checks: [SecurityCheck]) -> [SecurityCheckResult]
Parameters
checks
The security checks to be performed
Return Value
An array of type SecurityCheckResult with a true or false property ‘passed’ for each result


Hero dog who went into Grenfell Tower to investigate blaze dies aged 7
The cocker spaniel, named Murphy, was a fire investigation dog for the London Fire Brigade between 2013 and 2017
by Dave BurkeA hero dog who was sent into Grenfell Tower to help the fire investigation has died.
The cocker spaniel, named Murphy, attended hundreds of incidents.
He searched the West London tower block for accelerants in the aftermath of the 2017 blaze, which claimed more than 70 lives.
Pictures of Murphy, who was seven when he died, show him wearing specialist boots for the daunting task.
In a statement the London Fire Brigade said: "We are very sad to learn that our retired fire investigation dog Murphy passed away after a short unexpected illness yesterday."
Owner Mick Boyle, a retired brigade dog handler, said: "He was born to be a fire dog and loved every minute of it."
Murphy retired from active duty along with fellow canine investigator Roscoe, then 13, when Mr Boyle hung up his boots in August 2017.
He had joined the brigade in 2013.
At the time Mr Boyle told the Evening Standard : "The dogs are all about keeping the people of London safe and they have been an exceptional success.
"Every time I work with them and they find something it gives me immense satisfaction and I'm always amazed.
"I never ever get tired of it when they do find something. I've always had pride in my two dogs."
There were no traces of an external accelerant, such as petrol, at Grenfell Tower.
The blaze caused 72 deaths, and hundreds of firefighters were called to the fire, which broke out on June 14, 2017.


Hello, {{> loginButtons}}
Add contact
Username: {{username}}
{{email}}
{{status}}
Let's Chat
Remove Contact
Add contacts
Change Username
Update Status
Please select a contact for chat
{{user_email}}
{{user_username}} : {{chat}}
Send
The contact hasn't added you to his account. Sorry, you can't chat with this contact.


Reach out to us if you need help with your digital initiatives.
Name*
Email Address*
Message
Send Message
*Required fields


This intention moves the code of the
else
branch after the
if
statement.
Note that it changes the code semantics.