Represents an image composed of pixels with values in [0,1]. Provide image loading/saving utilities, for both LDR and HDR images.
More...
#include <Image.hpp>
|
| | Image ()=default |
| |
| | Image (unsigned int awidth, unsigned int aheight, unsigned int acomponents, float value=0.0f) |
| |
| glm::vec4 & | rgba (int x, int y) |
| |
| glm::vec3 & | rgb (int x, int y) |
| |
| float & | r (int x, int y) |
| |
| const glm::vec4 & | rgba (int x, int y) const |
| |
| const glm::vec3 & | rgb (int x, int y) const |
| |
| glm::vec3 | rgbl (float x, float y) const |
| |
| glm::vec3 | rgbn (float x, float y) const |
| |
| glm::vec4 | rgbal (float x, float y) const |
| |
| int | load (const std::string &path, unsigned int channels, bool flip, bool externalFile) |
| |
| int | save (const std::string &path, bool flip, bool ignoreAlpha=false) |
| |
| Image & | operator= (const Image &)=delete |
| |
| | Image (const Image &)=delete |
| |
| Image & | operator= (Image &&)=default |
| |
| | Image (Image &&)=default |
| |
|
| static bool | isFloat (const std::string &path) |
| |
|
|
unsigned int | width = 0 |
| | The width of the image.
|
| |
|
unsigned int | height = 0 |
| | The height of the image.
|
| |
|
unsigned int | components = 0 |
| | Number of components/channels.
|
| |
|
std::vector< float > | pixels |
| | The pixels values of the image.
|
| |
|
| int | saveAsLDR (const std::string &path, bool flip, bool ignoreAlpha) |
| |
| int | saveAsHDR (const std::string &path, bool flip, bool ignoreAlpha) |
| |
| int | loadLDR (const std::string &path, unsigned int channels, bool flip, bool externalFile) |
| |
| int | loadHDR (const std::string &path, unsigned int channels, bool flip, bool externalFile) |
| |
Represents an image composed of pixels with values in [0,1]. Provide image loading/saving utilities, for both LDR and HDR images.
◆ Image() [1/4]
◆ Image() [2/4]
| Image::Image |
( |
unsigned int |
awidth, |
|
|
unsigned int |
aheight, |
|
|
unsigned int |
acomponents, |
|
|
float |
value = 0.0f |
|
) |
| |
Constructor that allocates an empty image with the given dimensions.
- Parameters
-
| awidth | the width of the image |
| aheight | the height of the image |
| acomponents | the number of components of the image |
| value | the default value to use |
◆ Image() [3/4]
| Image::Image |
( |
const Image & |
| ) |
|
|
delete |
Copy constructor (disabled).
◆ Image() [4/4]
| Image::Image |
( |
Image && |
| ) |
|
|
default |
◆ isFloat()
| bool Image::isFloat |
( |
const std::string & |
path | ) |
|
|
static |
Query if a path points to an image loaded in floating point, based on the extension.
- Parameters
-
| path | the path to the image |
- Returns
- true if the file is loaded as a floating point numbers image
- Note
- Extensions checked: .exr
◆ load()
| int Image::load |
( |
const std::string & |
path, |
|
|
unsigned int |
channels, |
|
|
bool |
flip, |
|
|
bool |
externalFile |
|
) |
| |
Load an image from disk. Will contain the image raw data as [0,1] floats.
- Parameters
-
| path | the path to the image |
| channels | the number of channels to load from the image |
| flip | should the image be vertically flipped |
| externalFile | if true, skip the resources manager and load directly from disk |
- Returns
- a success/error flag
◆ loadHDR()
| int Image::loadHDR |
( |
const std::string & |
path, |
|
|
unsigned int |
channels, |
|
|
bool |
flip, |
|
|
bool |
externalFile |
|
) |
| |
|
private |
Load a HDR image from disk using tiny_exr, assuming 3-channels.
- Parameters
-
| path | the path to the image |
| channels | will contain the number of channels of the loaded image |
| flip | should the image be vertically flipped |
| externalFile | if true, skip the resources manager and load directly from disk |
- Returns
- a success/error flag
◆ loadLDR()
| int Image::loadLDR |
( |
const std::string & |
path, |
|
|
unsigned int |
channels, |
|
|
bool |
flip, |
|
|
bool |
externalFile |
|
) |
| |
|
private |
Load a LDR image from disk using stb_image.
- Parameters
-
| path | the path to the image |
| channels | the number of channels to load from the image |
| flip | should the image be vertically flipped |
| externalFile | if true, skip the resources manager and load directly from disk |
- Returns
- a success/error flag
◆ operator=() [1/2]
Copy assignment operator (disabled).
- Returns
- a reference to the object assigned to
◆ operator=() [2/2]
Move assignment operator .
- Returns
- a reference to the object assigned to
◆ r()
| float & Image::r |
( |
int |
x, |
|
|
int |
y |
|
) |
| |
Accessor to the red/first component of a pixel
- Parameters
-
| x | horizontal coordinate |
| y | vertical coordinate |
- Returns
- reference to the given pixel first component
- Warning
- no access or component check is done
◆ rgb() [1/2]
| glm::vec3 & Image::rgb |
( |
int |
x, |
|
|
int |
y |
|
) |
| |
Accessor to the RGB part of a pixel
- Parameters
-
| x | horizontal coordinate |
| y | vertical coordinate |
- Returns
- reference to the given pixel
- Warning
- no access or component check is done
◆ rgb() [2/2]
| const glm::vec3 & Image::rgb |
( |
int |
x, |
|
|
int |
y |
|
) |
| const |
Const accessor to the RGB part of a pixel
- Parameters
-
| x | horizontal coordinate |
| y | vertical coordinate |
- Returns
- reference to the given pixel
- Warning
- no access or component check is done
◆ rgba() [1/2]
| glm::vec4 & Image::rgba |
( |
int |
x, |
|
|
int |
y |
|
) |
| |
Accessor to a RGBA pixel
- Parameters
-
| x | horizontal coordinate |
| y | vertical coordinate |
- Returns
- reference to the given pixel
- Warning
- no access or component check is done
◆ rgba() [2/2]
| const glm::vec4 & Image::rgba |
( |
int |
x, |
|
|
int |
y |
|
) |
| const |
Const accessor to a RGBA pixel
- Parameters
-
| x | horizontal coordinate |
| y | vertical coordinate |
- Returns
- reference to the given pixel
- Warning
- no access or component check is done
◆ rgbal()
| glm::vec4 Image::rgbal |
( |
float |
x, |
|
|
float |
y |
|
) |
| const |
Bilinear UV image read.
- Parameters
-
| x | horizontal unit float coordinate |
| y | vertical unit float coordinate |
- Returns
- the bilinearly interpolated color value
- Note
- Wrapping is applied on both axis.
◆ rgbl()
| glm::vec3 Image::rgbl |
( |
float |
x, |
|
|
float |
y |
|
) |
| const |
Bilinear UV image read.
- Parameters
-
| x | horizontal unit float coordinate |
| y | vertical unit float coordinate |
- Returns
- the bilinearly interpolated color value
- Note
- Wrapping is applied on both axis.
◆ rgbn()
| glm::vec3 Image::rgbn |
( |
float |
x, |
|
|
float |
y |
|
) |
| const |
Nearest-neighbour UV image read.
- Parameters
-
| x | horizontal unit float coordinate |
| y | vertical unit float coordinate |
- Returns
- the color of the nearest pixel
- Note
- Wrapping is applied on both axis.
◆ save()
| int Image::save |
( |
const std::string & |
path, |
|
|
bool |
flip, |
|
|
bool |
ignoreAlpha = false |
|
) |
| |
Save an image to disk, either in HDR (when using "exr" extension) or in LDR (any other extension).
- Parameters
-
| path | the path to the image |
| flip | should the image be vertically flipped |
| ignoreAlpha | if true, the alpha channel will be ignored |
- Returns
- a success/error flag
◆ saveAsHDR()
| int Image::saveAsHDR |
( |
const std::string & |
path, |
|
|
bool |
flip, |
|
|
bool |
ignoreAlpha |
|
) |
| |
|
private |
Save a HDR image to disk using tiny_exr.
- Parameters
-
| path | the path to the image |
| flip | should the image be vertically flipped |
| ignoreAlpha | if true, the alpha channel will be ignored |
- Returns
- a success/error flag
◆ saveAsLDR()
| int Image::saveAsLDR |
( |
const std::string & |
path, |
|
|
bool |
flip, |
|
|
bool |
ignoreAlpha |
|
) |
| |
|
private |
Save a LDR image to disk using stb_image.
- Parameters
-
| path | the path to the image |
| flip | should the image be vertically flipped |
| ignoreAlpha | if true, the alpha channel will be ignored |
- Returns
- a success/error flag
The documentation for this class was generated from the following files:
- src/engine/resources/Image.hpp
- src/engine/resources/Image.cpp


cWorld defines the typical root of the CHAI scene graph. It stores lights, allocates textures, and serves as the root for scene-wide collision detection. More...
#include <CWorld.h>
Public Member Functions | |
| cWorld () | |
| Constructor of cWorld. | |
| virtual | ~cWorld () |
| Destructor of cWorld. | |
| void | setBackgroundColor (const GLfloat a_red, const GLfloat a_green, const GLfloat a_blue) |
| Set the background color used when rendering. | |
| void | setBackgroundColor (const cColorf &a_color) |
| Set the background color used when rendering. | |
| cColorf | getBackgroundColor () const |
| Get the background color used when rendering. | |
| void | enableLightSourceRendering (bool enable) |
| Enable or disable the rendering of this world's light sources. | |
| cTexture2D * | newTexture () |
| Create a new bitmap texture. | |
| cTexture2D * | getTexture (unsigned int a_index) |
| Get a pointer to a texture by passing an index into my texture list. | |
| void | addTexture (cTexture2D *a_texture) |
| Add a texture to my texture list. | |
| bool | removeTexture (cTexture2D *a_texture) |
| Remove a texture from my texture list. | |
| bool | deleteTexture (cTexture2D *a_texture) |
| Delete a texture. | |
| void | deleteAllTextures () |
| Delete all textures. | |
| virtual bool | computeCollisionDetection (cVector3d &a_segmentPointA, cVector3d &a_segmentPointB, cCollisionRecorder &a_recorder, cCollisionSettings &a_settings) |
| Compute collision detection between a ray segment and all objects in this world. | |
| virtual void | render (const int a_renderMode=0) |
| Render OpenGL lights. | |
| virtual cLight * | getLightSource (int index) |
| Get access to a particular light source (between 0 and MAXIMUM_OPENGL_LIGHT_COUNT-1). | |
| virtual void | onDisplayReset (const bool a_affectChildren=true) |
| Resets textures and displays for the world. | |
Public Attributes | |
| double | m_worldModelView [16] |
| It's useful to store the world's modelview matrix, for rendering stuff in "global" coordinates. | |
Protected Member Functions | |
| bool | addLightSource (cLight *a_light) |
| Add a light source to this world. | |
| bool | removeLightSource (cLight *a_light) |
| Remove a light source from this world. | |
Protected Attributes | |
| cColorf | m_backgroundColor |
| Background color. Default color is black. | |
| vector< cTexture2D * > | m_textures |
| List of textures. | |
| vector< cLight * > | m_lights |
| List of light sources. | |
| bool | m_renderLightSources |
| Should I render my light sources, or just use the current OpenGL light state? | |
| bool | m_performingDisplayReset |
| Some apps may have multiple cameras, which would cause recursion when resetting the display. | |
Friends | |
| class | cLight |
cWorld defines the typical root of the CHAI scene graph. It stores lights, allocates textures, and serves as the root for scene-wide collision detection.
| cWorld::~cWorld | ( | ) | [virtual] |
| bool cWorld::addLightSource | ( | cLight * | a_light | ) | [protected] |
Add a light source to this world.
Add an OpenGL light source to the world. A maximum of eight light sources can be registered. For each registered light source, an OpenGL lightID number is defined
| a_light | light source to register. |
| void cWorld::addTexture | ( | cTexture2D * | a_texture | ) |
Add a texture to my texture list.
Add texture to texture list.
| a_texture | Texture to be added to the textures list. |
| bool cWorld::computeCollisionDetection | ( | cVector3d & | a_segmentPointA, | |
| cVector3d & | a_segmentPointB, | |||
| cCollisionRecorder & | a_recorder, | |||
| cCollisionSettings & | a_settings | |||
| ) | [virtual] |
Compute collision detection between a ray segment and all objects in this world.
Determine whether the given segment intersects a triangle in this world. The segment is described by a start point /e a_segmentPointA and end point /e a_segmentPointB. Collision detection functions of all children of the world are called, which recursively call the collision detection functions for all objects in this world. If there is more than one collision, the one closest to a_segmentPointA is the one returned.
| a_segmentPointA | Start point of segment. Value may be changed if returned collision is with a moving object. | |
| a_segmentPointB | End point of segment. | |
| a_recorder | Stores all collision events | |
| a_settings | Contains collision settings information. |
Reimplemented from cGenericObject.
| void cWorld::deleteAllTextures | ( | ) |
Delete all textures.
Delete all texture from memory.
| bool cWorld::deleteTexture | ( | cTexture2D * | a_texture | ) |
Delete a texture.
Delete texture from textures list and erase it from memory.
| a_texture | Texture to be deleted. |
| cLight * cWorld::getLightSource | ( | int | index | ) | [virtual] |
Get access to a particular light source (between 0 and MAXIMUM_OPENGL_LIGHT_COUNT-1).
Get access to a particular light source (between 0 and MAXIMUM_OPENGL_LIGHT_COUNT-1). Returns a pointer to the requested light, or zero if it's not available.
| index | Specifies the light (0 -> 7) that should be accessed |
| cTexture2D * cWorld::newTexture | ( | ) |
Create a new bitmap texture.
Create new texture and add it to textures list.
| void cWorld::onDisplayReset | ( | const bool | a_affectChildren = true |
) | [virtual] |
Resets textures and displays for the world.
Called by the user or by the viewport when the world needs to have textures and display lists reset (e.g. after a switch to or from fullscreen).
| a_affectChildren | Should I pass this on to my children? |
Reimplemented from cGenericObject.
| bool cWorld::removeLightSource | ( | cLight * | a_light | ) | [protected] |
Remove a light source from this world.
Remove a light source from world.
| a_light | light source to be removed. |
| bool cWorld::removeTexture | ( | cTexture2D * | a_texture | ) |
Remove a texture from my texture list.
Remove texture from textures list. Texture is not deleted from memory.
| a_texture | Texture to be removed from textures list. |
| void cWorld::render | ( | const int | a_renderMode = 0 |
) | [virtual] |
Render OpenGL lights.
Render the world in OpenGL.
| a_renderMode | Rendering Mode. |
Reimplemented from cGenericObject.
| void cWorld::setBackgroundColor | ( | const cColorf & | a_color | ) |
| void cWorld::setBackgroundColor | ( | const GLfloat | a_red, | |
| const GLfloat | a_green, | |||
| const GLfloat | a_blue | |||
| ) |


We buy platforms!
- harness sexy e-services
- grow sticky e-business
- target real-time paradigms
- enable customized platforms
- syndicate real-time bandwidth
- drive front-end channels
- embrace holistic functionalities
- target transparent systems
- maximize bleeding-edge partnerships
- recontextualize e-business initiatives
- reinvent integrated action-items
- visualize best-of-breed eyeballs


Loslassa Documentation¶
Workflow¶
Start¶
loslassa start <relative or absolute path to>project
e.g. if you are in your home folder at C:Usersmaedle and you want to start a project there:
loslassa gugga
Play¶
Playing with the source and create your page. Add content and see the changes right away thanks to local server with automatic rebuild of the web pages
cd */path/to/project*
loslassa play
Starts a local development server (see script output for a link to the page). All files in the project folder are being watched and if something changes the project is rebuilt.
Publish¶
not implemented yet
This part is a bit vague still but basically it should simply push the generated pages to the server, by maintaining them in a git repository
First time publishing would clone the repository bare to the web space and set it to be origin from then on ... or summin like that, didn’t think that through yet
cd */path/to/project*
loslassa loslassa
Customize¶
Additional customization can be done easily by expanding the settings in the sphinx conf.py and more involved stuff can be realized via sphinx extensions.
How it works¶
Following a slightly adapted hub-prime-clones pattern from http://joemaller.com/990/a-web-focused-git-workflow/ and http://danbarber.me/using-git-for-deployment/
Have a look at this: https://github.com/gerhard/deliver or: http://mikeeverhart.net/git/using-git-to-deploy-code/ or: http://toroid.org/ams/git-website-howto or: http://danielmiessler.com/study/git/#website
The pattern described there is only working for pure HTML/Javascript projects - a loslassa project though consists of the sources and a build. As the project as a whole should be under source control and movable, the deployment has to be adjusted in so far as the web root has to point to the HTML part of the build, but the rest of the project has to be uploaded as well. Beside from that the clones-prime-hub scheme fits nicely for this use case.
Lets say you are on the commandline in ~/projects (where “~” is your home directory - wherever that might be) and you want to start a new loslassa project called gugga (swabian word for bag). This is what happens under the hood:
LOCAL: create prime
mkdir gugga
cp -r /path/to/loslassa/projects/skeleton/* gugga
cd gugga
git init
git add .
git commit -m "initialized gugga"
Now the remote comes into play ... as example we’ll say your host is called maedle.net ...
REMOTE: create bare git repo to hold the hub
ssh<EMAIL_ADDRESS>mkdir /path/to/hub/repos/gugga.git
cd gugga.git
git --bare init
LOCAL: push prime to hub
cd ~/www
git remote add hub ~/site_hub.git
git push hub master
Creates a new project with a basic structure and configuration similar to sphinx-quickstart only simpler and tailored to only HTML output.


Register with The Club Sandwich
Please enter these essential details to create an account with The Club Sandwich
Name
First Name
Last Name
Password
Email
Phone number
Address
Street Address
Address Line 2
City
State / Province / Region
Postal / Zip Code


val old: String
String equivalent of the value of the existing constant that deserialisers should favour when de-serialising a value they have no corresponding value for
For Example
Enum before modification:
enum class ExampleEnum {
A, B, C
}
Assuming at some point a new constant is added it is required we have some mechanism by which to tell nodes with an older version of the class on their Class Path what to do if they attempt to deserialize an example of the class with that new value
@CordaSerializationTransformEnumDefault("D", "C")
enum class ExampleEnum {
A, B, C, D
}
So, on deserialisation treat any instance of the enum that is encoded as D as C
Adding a second new constant requires the wrapper annotation CordaSerializationTransformEnumDefaults
@CordaSerializationTransformEnumDefaults(
CordaSerializationTransformEnumDefault("E", "D"),
CordaSerializationTransformEnumDefault("D", "C"))
enum class ExampleEnum {
A, B, C, D, E
}
It's fine to assign the second new value a default that may not be present in all versions as in this case it will work down the transform hierarchy until it finds a value it can apply, in this case it would try E -> D -> C (when E -> D fails)
String equivalent of the value of the existing constant that deserialisers should favour when de-serialising a value they have no corresponding value for
For Example
Enum before modification:
enum class ExampleEnum {
A, B, C
}
Assuming at some point a new constant is added it is required we have some mechanism by which to tell nodes with an older version of the class on their Class Path what to do if they attempt to deserialize an example of the class with that new value
@CordaSerializationTransformEnumDefault("D", "C")
enum class ExampleEnum {
A, B, C, D
}
So, on deserialisation treat any instance of the enum that is encoded as D as C
Adding a second new constant requires the wrapper annotation CordaSerializationTransformEnumDefaults
@CordaSerializationTransformEnumDefaults(
CordaSerializationTransformEnumDefault("E", "D"),
CordaSerializationTransformEnumDefault("D", "C"))
enum class ExampleEnum {
A, B, C, D, E
}
It's fine to assign the second new value a default that may not be present in all versions as in this case it will work down the transform hierarchy until it finds a value it can apply, in this case it would try E -> D -> C (when E -> D fails)


With an area of approximately 5,175 km
2 and a length of about 190 km, the
Bering Glacier, located on the southeast coast of Alaska, is the largest and longest glacier in continental North America.
It is also the
largest temperate, surging glacier in the world. You can learn more about surging glaciers
here.
More information on the Bering Glacier can be found at
BeringGlacier.org.
{% endblock id-feature %}
{% block id-feed %}
About the Project
Bering Glacier in southeastern Alaska is the largest temperate, surging glacier on Earth.
It is also the largest and longest glacier in continental North America, with an area of approximately 5,175 km2 and a length of about 190 km.
Its surface area is more than 6% of the ice covered area of Alaska and may contain 15-20% of Alaska’s total glacier ice.
Due to its location and behavior, it is a major component of both the marine and terrestrial ecosystems of south-central coastal Alaska and the Gulf of Alaska region.
Bering surges with a periodicity of approximately 15 to 20 years, and it last surged in 1993-1995.
In the last few months, incidental and opportunistic observations have shown that Bering Glacier is now surging.
In January 2011, part of the terminus region advanced an average of 25 m/day. During Bering’s last surge, in 1993-95, peak daily speeds were greater than 30 m/day, and it advanced over 10 km, virtually filling Vitus Lake and overunning the forelands.
That surge altered the landscape and ecology of the region, particularly in the terminus region.
Recent field observations and satellite imagery show that all parts of the lower glacier are involved in the surge, and that areas which had never previously been observed to surge are currently being impacted (i.e. Steller Glacier).
In addition to those observations, ice displacement measurements from GPS-equipped ice ablation sensors have recorded surge velocities throughout the glacier from the terminus up to the ice valley.
Bering’s 1993-95 surge and its subsequent retreat was studied by the U.S. Geological Survey (USGS) and a variety of academic institutions with support from the Bureau of Land Management (BLM).
However, observations during the surge phase were not as detailed or as accurate as now possible.
One result of the long-term program carried out during the retreat phase has been the development of new sensors to provide critical data, which has resulted in a better understanding of the Bering system.
The surface at B02 was very different from B01 at the time of installation (May 12); B02 had snow cover, while B01 was just ice (the snow had melted completely by the time of installation).
It turns out, if you plot the wind and light levels during that time, there was a weather event that probably consisted of heavy rain (since there were sustained winds of over 30 knots and heavy cloud-cover for nearly 24-hours).
This may have melted the snow-cover at B02 quickly, causing the rapid ablation seen.
There may be two reasons. First, the albedo at site B02 is much higher than at B01 (you can see this from the pictures of the sites at the time of installation, and from the incident to reflected light ratios at both sites).
This could result in sunlight being reflected from the ice at B02 more than at B01, causing less melting at B02 due to less solar heating.
Further, B02 is at a higher altitude than B01, and there is a known, negative trend between elevation and melt rates.
Several things can contribute to the noise. The sonar unit determines range by “listening” for the “loudest” return echo from the ice.
There are multiple returns from a non-flat surface. As the range to the ice increases, the illuminated area of the ice is getting larger.
Also, as time goes on, the surface is getting rougher, due to non-uniform melting.
This larger area, coupled with increased roughness, may be reducing the signal-to-noise ratio of the direct return in the presence of multiple of returns, reducing the precision of the range estimate.
Finally, as the exposed pole becomes taller, the GASS unit will tend to sway slightly, illuminating the rough surface in slightly different ways, causing variations in which echo is “loudest”.
Yes. The glacier is not one, solid, piece of ice. Nor is it of uniform thickness; it varies in thickness both laterally and longitudinally.
In addition, there is variable “drag”, both at the edges and the contact with the ground.
Glaciers move either through spreading (when it deforms under its own weight), by a basal slip (when loss of friction causes it to slide downhill), or by deformation of the surface on which it rests.
In general, the top and middle flow faster than the bottom and the sides. And parts of the glacier will speed up as they move onto steeper slopes.
Here is an animation illustrating some of these motions.
By definition, this is when there are sudden, large-scale displacements. The flow of a surging glacier is defined by two phases.
The first is the Active Phase, when ice is transferred from the upper part of the glacier towards the terminus (active to stagnant portions of the glacier).
The second phase is the Quiescent Phase, during which ice builds up in upper portions of the glacier and ablation of the terminus occurs.
[1]
[1] Aschoff, Jennifer L., Megan O’Connor. "Glaciers, Energy, and Mass" 1999. [http://www.homepage.montana.edu/~geol445/hyperglac/systems2/#Deformationbed]
{% endblock id-feed %}


virsh undefine --domain vm_name- Delete the configuration file and all associated storage volumes:
virsh undefine --domain vm_name --remove-all-storage- Delete the configuration file and the specified storage volumes using the target name or the source name (as obtained from the `virsh domblklist` command):
virsh undefine --domain vm_name --storage sda,path/to/source


Include jQuery and the plugin file to your page

Simply call the plugin on the container witch contains images.

...

To custom the layout of the overlay and control the behavior, you can specify certain options.
$("#container").sliphover({
option: value,
option2: value2,
...
});
All avalaible options are listed below and there are demos to illustrate.
| Option | Description | Example |
|---|---|---|
| height |
The height of the overlay.
|
view |
| flip |
True to enable the 3D flip animation instead of slid in animation of the overlay when hover on. For IE only works on IE 10+. And when use 3D animation, make sure the value of the 'height' option is '100%'(witch is the default value), for there's an known issue that when hover up the overlay is still visible after the animation.
|
view |
| target |
Specify witch element the animation will aplly on.
|
view |
| title |
The content that will be displayed in the overlay when hover. To show text you need to specify the title attribute of the target element, you can also place html value within the title attribute and it will show properly. To style the text, you can write you own css rules when assign the content of the 'title' attribute.
|
view |
| duration |
The duration of the animation.
|
view |
| fontColor |
The color of the text in the overlay.
|
view |
| backgroundColor |
The color of the overlay.
|
view |
| reverse |
Reverse the animation.
|
view |
| autoScroll |
If true, when the text of the overlay is too long and overflowed, it will auto scrolling up and down when hover oh it.
|
view |
| scrollSpeed |
How fast the overlay text will scroll animated when the overlay text is overflow and the 'autoScroll' is true.
|
view |
This plugin works fine on all morder browsers and IE9+.
The plugin js file along with a minified version and all examples are included in the download files. You can run them locally.
Download ZIP Download TAR


{% load staticfiles %} {% block content %}
{{ email_form.email.help_text }}
Password must be at least 9 characters long and include:
an uppercase character
a number
a special character


Your JekOS network is now ready at
.
Failed to generate an RSA keypair. This is necessary to establish secure communication with the kernel. Try with another browser.
Failed to launch an EC2 instance. Check that the AWS credentials you provided were correct and that they have sufficient privileges to launch EC2 instances, for example:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "ec2:*",
"Effect": "Allow",
"Resource": "*"
},
]
}
Failed to communicate with the kernel. Check the AWS console to see if the instance is running and passing all tests. Next, try loading your domain
manually.


| Modifier and Type | Method and Description |
|---|---|
EmailAddressCollection |
ExchangeService.getRoomLists()
Retrieves a collection of all room lists in the organization.
|
| Modifier and Type | Method and Description |
|---|---|
EmailAddressCollection |
GetRoomListsResponse.getRoomLists()
Gets all room list returned.
|
| Modifier and Type | Method and Description |
|---|---|
EmailAddressCollection |
EmailMessage.getBccRecipients()
Gets the list of Bcc recipients for the e-mail message.
|
EmailAddressCollection |
EmailMessage.getCcRecipients()
Gets the list of Cc recipients for the e-mail message.
|
EmailAddressCollection |
Contact.getDirectReports()
Get the direct reports mailbox information
|
EmailAddressCollection |
EmailMessage.getReplyTo()
Gets a list of e-mail addresses to which replies should be addressed.
|
EmailAddressCollection |
EmailMessage.getToRecipients()
Gets the list of To recipients for the e-mail message.
|
| Modifier and Type | Method and Description |
|---|---|
EmailAddressCollection |
ResponseMessage.getBccRecipients()
Gets a list of recipients the response will be sent to as Cc.
|
EmailAddressCollection |
CalendarResponseMessage.getBccRecipients()
Gets a list of recipients this response will be sent to as Bcc.
|
EmailAddressCollection |
ResponseMessage.getCcRecipients()
Gets a list of recipients the response will be sent to as Cc.
|
EmailAddressCollection |
CalendarResponseMessage.getCcRecipients()
Gets a list of recipients the response will be sent to as Cc.
|
EmailAddressCollection |
ResponseMessage.getToRecipients()
Gets a list of recipients the response will be sent to.
|
EmailAddressCollection |
CalendarResponseMessage.getToRecipients()
Gets a list of recipients the response will be sent to.
|
| Modifier and Type | Method and Description |
|---|---|
EmailAddressCollection |
RuleActions.getForwardAsAttachmentToRecipients()
Gets the e-mail addresses to which incoming messages should be
forwarded as attachments.
|
EmailAddressCollection |
RuleActions.getForwardToRecipients()
Gets the e-mail addresses to which
incoming messages should be forwarded.
|
EmailAddressCollection |
RulePredicates.getFromAddresses()
Gets the e-mail addresses of the senders of incoming
messages for the condition or exception to apply.
|
EmailAddressCollection |
RuleActions.getRedirectToRecipients()
Gets the e-mail addresses to which incoming messages should be
redirecteded.
|
EmailAddressCollection |
RulePredicates.getSentToAddresses()
Gets the e-mail addresses incoming messages must have been sent to for
the condition or exception to apply.
|


Drawing App 🎨
Quiz Time! 🧐
Countdown to 2022 ⏳
Fun Challenges! 🤪
Home
Day's until the New Year!
0
days
0
hours
0
minutes
0
seconds


I'm a full stack developer with over five years of experience working in the tech industry. Currently working as a Senior Technician, specializing in WordPress sites, Linux, server management and problem-solving. I'm very passionate about working with the latest web development technologies. Let's work on something together!
A Node.js, Amazon-like application that takes orders from customers and depletes stock from the store's inventory using a MySQL database.
GitHub RepoMemory game inspired by the Guess Who? board game. It uses stateless components with information being passed as props from stateful parent component.
GitHub RepoLanguage Interpretation and Recognition Interface (LIRI). A command line node app that takes in parameters and returns data. It searches Spotify for songs, Bands in Town for concerts, and OMDB for movies.
GitHub Repo


This is a paragraph! Excitement!
This is also a paragraph, but it's not nearly as exciting as the last one.


--- layout: post title: Olives date: '2007-05-27T12:00:00-04:00' tags: - '2007' tumblr_url: http://poetry.liabogoev.com/post/49077668032/olives ---
Meaty little olives
growing plump
on the trees
lying silently in wait
for the perfect day
to grow sweet and ripe
a breeze stirs the trees
exposing the silvery bellies
of the thick green leaves,
and the green roundness
of the plump olives.


In an appendix to On The Writing Of The Insane, G. Mackenzie Bacon notes the similarity between the writing of the insane and the writing of the lower orders.
In the position I occupy I receive a good many letters from the poorer class, and have often had from some of my correspondents very odd specimens. The three following [which you can consult at the Public Domain Review] are from individuals belonging to what is called the sane portion of the public. In [one] the contrast between [the] style and those in the preceding pages [by certified lunatics] is perhaps not so well marked as one would like to expect.


Open vSwitch on Linux uses autoconf and automake for generating Makefiles. It will be useful to maintain the same build system while compiling on Windows too. One approach is to compile Open vSwitch in a MinGW environment that contains autoconf and automake utilities and then use Visual C++ as a compiler and linker.
The following explains the steps in some detail.
Mingw
Install Mingw on a Windows machine by following the instructions on mingw.org.
This should install mingw at C:\Mingw and msys at C:\Mingw\msys. Add C:\MinGW\bin and C:\Mingw\msys\1.0\bin to PATH environment variable of Windows.
You can either use the MinGW installer or the command line utility mingw-get to install both the base packages and additional packages like automake and autoconf(version 2.68).
Also make sure that /mingw mount point exists. If its not, please add/create the following entry in /etc/fstab:
'C:/MinGW /mingw'.
Python
Install the latest Python 2.x from python.org and verify that its path is part of Windows' PATH environment variable.
Visual Studio
You will need at least Visual Studio 2013 (update 4) to compile userspace binaries. In addition to that, if you want to compile the kernel module you will also need to install Windows Driver Kit (WDK) 8.1 Update.
It is important to get the Visual Studio related environment variables and to have the $PATH inside the bash to point to the proper compiler and linker. One easy way to achieve this for VS2013 is to get into the "VS2013 x86 Native Tools Command Prompt" (in a default installation of Visual Studio 2013 this can be found under the following location: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts) and through it enter into the bash shell available from msys by typing bash --login.
There is support for generating 64 bit binaries too. To compile under x64, open the "VS2013 x64 Native Tools Command Prompt" (if your current running OS is 64 bit) or "VS2013 x64 Cross Tools Command Prompt" (if your current running OS is not 64 bit) instead of opening its x86 variant. This will point the compiler and the linker to their 64 bit equivalent.
If after the above step, a which link inside MSYS's bash says, /bin/link.exe, rename /bin/link.exe to something else so that the Visual studio's linker is used. You should also see a 'which sort' report /bin/sort.exe.
pthreads-win32
For pthread support, install the library, dll and includes of pthreads-win32 project from sourceware to a directory (e.g.: C:/pthread). You should add the pthread-win32's dll path (e.g.: C:\pthread\dll\x86) to the Windows' PATH environment variable.
OpenSSQL
To get SSL support for Open vSwitch on Windows, you will need to install OpenSSL for Windows
Note down the directory where OpenSSL is installed (e.g.: C:/OpenSSL-Win32) for later use.
Share network adaptors
We require that you don't disable the "Allow management operating system to share this network adapter" under 'Virtual Switch Properties' > 'Connection type: External network', in the HyperV virtual network switch configuration.
Checksum Offloads
While there is some support for checksum/segmentation offloads in software, this is still a work in progress. Till the support is complete we recommend disabling TX/RX offloads for both the VM's as well as the HyperV.
This step is not needed if you have downloaded a released tarball. If you pulled the sources directly from an Open vSwitch Git tree or got a Git tree snapshot, then run boot.sh in the top source directory to build the "configure" script:
> ./boot.sh
Configure the package by running the configure script. You should provide some configure options to choose the right compiler, linker, libraries, Open vSwitch component installation directories, etc. For example:
> ./configure CC=./build-aux/cccl LD="$(which link)" \ LIBS="-lws2_32 -liphlpapi" --prefix="C:/openvswitch/usr" \ --localstatedir="C:/openvswitch/var" \ --sysconfdir="C:/openvswitch/etc" \ --with-pthread="C:/pthread"
Note
By default, the above enables compiler optimization for fast code. For default compiler optimization, pass the --with-debug configure option.
To configure with SSL support, add the requisite additional options:
> ./configure CC=./build-aux/cccl LD="`which link`" \ LIBS="-lws2_32 -liphlpapi" --prefix="C:/openvswitch/usr" \ --localstatedir="C:/openvswitch/var" --sysconfdir="C:/openvswitch/etc" \ --with-pthread="C:/pthread" \ --enable-ssl --with-openssl="C:/OpenSSL-Win32"
Finally, to the kernel module also:
> ./configure CC=./build-aux/cccl LD="`which link`" \ LIBS="-lws2_32 -liphlpapi" --prefix="C:/openvswitch/usr" \ --localstatedir="C:/openvswitch/var" \ --sysconfdir="C:/openvswitch/etc" \ --with-pthread="C:/pthread" \ --enable-ssl --with-openssl="C:/OpenSSL-Win32" \ --with-vstudiotarget="<target type>"
Possible values for <target type> are: Debug and Release
Note
You can directly use the Visual Studio 2013 IDE to compile the kernel datapath. Open the ovsext.sln file in the IDE and build the solution.
Refer to the installation guide <INSTALL.rst> for information on additional configuration options.
Once correctly configured, building Open vSwitch on Windows is similar to building on Linux, FreeBSD, or NetBSD.
Run make for the ported executables in the top source directory, e.g.:
> make
For faster compilation, you can pass the -j argument to make. For example, to run 4 jobs simultaneously, run make -j4.
Note
MSYS 1.0.18 has a bug that causes parallel make to hang. You can overcome this by downgrading to MSYS 1.0.17. A simple way to downgrade is to exit all MinGW sessions and then run the below command from MSVC developers command prompt.:
> mingw-get upgrade msys-core-bin=1.0.17-1
To run all the unit tests in Open vSwitch, one at a time:
> make check
To run all the unit tests in Open vSwitch, up to 8 in parallel:
> make check TESTSUITEFLAGS="-j8"
To install all the compiled executables on the local machine, run:
> make install
Note
This will install the Open vSwitch executables in C:/openvswitch. You can add C:\openvswitch\usr\bin and C:\openvswitch\usr\sbin to Windows' PATH environment variable for easy access.
If you are building the kernel module, you will need to copy the below files to the target Hyper-V machine.
Note
The above path assumes that the kernel module has been built using Windows DDK 8.1 in Debug mode. Change the path appropriately, if a different WDK has been used.
Now run ./uninstall.cmd to remove the old extension. Once complete, run ./install.cmd to insert the new one. For this to work you will have to turn on TESTSIGNING boot option or 'Disable Driver Signature Enforcement' during boot. The following commands can be used:
> bcdedit /set LOADOPTIONS DISABLE_INTEGRITY_CHECKS > bcdedit /set TESTSIGNING ON > bcdedit /set nointegritychecks ON
Note
You may have to restart the machine for the settings to take effect.
In the Virtual Switch Manager configuration you can enable the Open vSwitch Extension on an existing switch or create a new switch. If you are using an existing switch, make sure to enable the "Allow Management OS" option for VXLAN to work (covered later).
The command to create a new switch named 'OVS-Extended-Switch' using a physical NIC named 'Ethernet 1' is:
PS > New-VMSwitch "OVS-Extended-Switch" -AllowManagementOS $true \ -NetAdapterName "Ethernet 1"
Note
You can obtain the list of physical NICs on the host using 'Get-NetAdapter' command.
In the properties of any switch, you should should now see "Open vSwitch Extension" under 'Extensions'. Click the check box to enable the extension. An alternative way to do the same is to run the following command:
PS > Enable-VMSwitchExtension "Open vSwitch Extension" OVS-Extended-Switch
Note
If you enabled the extension using the command line, a delay of a few seconds has been observed for the change to be reflected in the UI. This is not a bug in Open vSwitch.
Important
The following steps assume that you have installed the Open vSwitch utilities in the local machine via 'make install'.
Before starting ovs-vswitchd itself, you need to start its configuration database, ovsdb-server. Each machine on which Open vSwitch is installed should run its own copy of ovsdb-server. Before ovsdb-server itself can be started, configure a database that it can use:
> ovsdb-tool create C:\openvswitch\etc\openvswitch\conf.db \ C:\openvswitch\usr\share\openvswitch\vswitch.ovsschema
Configure ovsdb-server to use database created above and to listen on a Unix domain socket:
> ovsdb-server -vfile:info --remote=punix:db.sock --log-file \ --pidfile --detach
Note
The logfile is created at C:/openvswitch/var/log/openvswitch/
Initialize the database using ovs-vsctl. This is only necessary the first time after you create the database with ovsdb-tool, though running it at any time is harmless:
> ovs-vsctl --no-wait init
Tip
If you would later like to terminate the started ovsdb-server, run:
> ovs-appctl -t ovsdb-server exit
Start the main Open vSwitch daemon, telling it to connect to the same Unix domain socket:
> ovs-vswitchd -vfile:info --log-file --pidfile --detach
Tip
If you would like to terminate the started ovs-vswitchd, run:
> ovs-appctl exit
Note
The logfile is created at C:/openvswitch/var/log/openvswitch/
At this point you can use ovs-vsctl to set up bridges and other Open vSwitch features.
Let's start by creating an integration bridge, br-int and a PIF bridge, br-pif:
> ovs-vsctl add-br br-int > ovs-vsctl add-br br-pif
Note
There's a known bug that running the ovs-vsctl command does not terminate. This is generally solved by having ovs-vswitchd running. If you face the issue despite that, hit Ctrl-C to terminate ovs-vsctl and check the output to see if your command succeeded.
Validate that ports are added by dumping from both ovs-dpctl and ovs-vsctl:
> ovs-dpctl show system@ovs-system: lookups: hit:0 missed:0 lost:0 flows: 0 port 2: br-pif (internal) <<< internal port on 'br-pif' bridge port 1: br-int (internal) <<< internal port on 'br-int' bridge > ovs-vsctl show a56ec7b5-5b1f-49ec-a795-79f6eb63228b Bridge br-pif Port br-pif Interface br-pif type: internal Bridge br-int Port br-int Interface br-int type: internal
Note
There's a known bug that the ports added to OVSDB via ovs-vsctl don't get to the kernel datapath immediately, ie. they don't show up in the output of ovs-dpctl show even though they show up in output of ovs-vsctl show. In order to workaround this issue, restart ovs-vswitchd. (You can terminate ovs-vswitchd by running ovs-appctl exit.)
Now, let's add the physical NIC and the internal port to br-pif. In OVS for Hyper-V, we use the name of the adapter on top of which the Hyper-V virtual switch was created, as a special name to refer to the physical NICs connected to the Hyper-V switch, e.g. if we created the Hyper-V virtual switch on top of the adapter named Ethernet0, then in OVS we use that name (Ethernet0) as a special name to refer to that adapter.
Note
we assume that the Hyper-V switch on which OVS extension is enabled has a single physical NIC connected to it.
An internal port is the virtual adapter created on the Hyper-V switch using the AllowManagementOS setting. This has already been setup while creating the switch using the instructions above. In OVS for Hyper-V, we use a the name of that specific adapter as a special name to refer to that adapter. By default it is created under the following rule vEthernet (<name of the switch>).
As a whole example, if we issue the following in a powershell console:
PS C:\package\binaries> Get-NetAdapter | select Name,MacAddress,InterfaceDescription Name MacAddress InterfaceDescription ---- ---------- -------------------- Ethernet1 00-0C-29-94-05-65 Intel(R) PRO/1000 MT Network Connection vEthernet (external) 00-0C-29-94-05-5B Hyper-V Virtual Ethernet Adapter #2 Ethernet0 00-0C-29-94-05-5B Intel(R) PRO/1000 MT Network Connection #2 PS C:\package\binaries> Get-VMSwitch Name SwitchType NetAdapterInterfaceDescription ---- ---------- ------------------------------ external External Intel(R) PRO/1000 MT Network Connection #2
We can see that we have a switch(external) created upon adapter name 'Ethernet0' with an internal port under name vEthernet (external). Thus resulting into the following ovs-vsctl commands:
> ovs-vsctl add-port br-pif Ethernet0 > ovs-vsctl add-port br-pif "vEthernet (external)"
Dumping the ports should show the additional ports that were just added:
> ovs-dpctl show system@ovs-system: lookups: hit:0 missed:0 lost:0 flows: 0 port 4: vEthernet (external) (internal) <<< 'AllowManagementOS' adapter on Hyper-V switch port 2: br-pif (internal) port 1: br-int (internal) port 3: Ethernet0 <<< Physical NIC > ovs-vsctl show a56ec7b5-5b1f-49ec-a795-79f6eb63228b Bridge br-pif Port "vEthernet (external)" Interface "vEthernet (external)" Port br-pif Interface br-pif type: internal Port "Ethernet0" Interface "Ethernet0" Bridge br-int Port br-int Interface br-int type: internal
Adding VIFs to openvswitch is a two step procedure. The first step is to assign a 'OVS port name' which is a unique name across all VIFs on this Hyper-V. The next step is to add the VIF to the ovsdb using its 'OVS port name' as key.
First, assign a unique 'OVS port name' to the VIF. The VIF needs to have been disconnected from the Hyper-V switch before assigning a 'OVS port name' to it. In the example below, we assign a 'OVS port name' called ovs-port-a to a VIF on a VM VM1. By using index 0 for $vnic, the first VIF of the VM is being addressed. After assigning the name ovs-port-a, the VIF is connected back to the Hyper-V switch with name OVS-HV-Switch, which is assumed to be the Hyper-V switch with OVS extension enabled.:
PS> import-module .\datapath-windows\misc\OVS.psm1 PS> $vnic = Get-VMNetworkAdapter <Name of the VM> PS> Disconnect-VMNetworkAdapter -VMNetworkAdapter $vnic[0] PS> $vnic[0] | Set-VMNetworkAdapterOVSPort -OVSPortName ovs-port-a PS> Connect-VMNetworkAdapter -VMNetworkAdapter $vnic[0] \ -SwitchName OVS-Extended-Switch
Next, add the VIFs to br-int:
> ovs-vsctl add-port br-int ovs-port-a
Dumping the ports should show the additional ports that were just added:
> ovs-dpctl show system@ovs-system: lookups: hit:0 missed:0 lost:0 flows: 0 port 4: vEthernet (external) (internal) port 5: ovs-port-a port 2: br-pif (internal) port 1: br-int (internal port 3: Ethernet0 > ovs-vsctl show 4cd86499-74df-48bd-a64d-8d115b12a9f2 Bridge br-pif Port "vEthernet (external)" Interface "vEthernet (external)" Port "Ethernet0" Interface "Ethernet0" Port br-pif Interface br-pif type: internal Bridge br-int Port br-int Interface br-int type: internal Port "ovs-port-a" Interface "ovs-port-a"
The Windows Open vSwitch implementation support VLAN tagging in the switch. Switch VLAN tagging along with patch ports between br-int and br-pif is used to configure VLAN tagging functionality between two VMs on different Hyper-Vs. To start, add a patch port from br-int to br-pif:
> ovs-vsctl add-port br-int patch-to-pif > ovs-vsctl set interface patch-to-pif type=patch \ options:peer=patch-to-int
Add a patch port from br-pif to br-int:
> ovs-vsctl add-port br-pif patch-to-int > ovs-vsctl set interface patch-to-int type=patch \ options:peer=patch-to-pif
Re-Add the VIF ports with the VLAN tag:
> ovs-vsctl add-port br-int ovs-port-a tag=900 > ovs-vsctl add-port br-int ovs-port-b tag=900
The Windows Open vSwitch implementation support VXLAN and STT tunnels. To add tunnels. For example, first add the tunnel port between <IP_ADDRESS> <-> <IP_ADDRESS>:
> ovs-vsctl add-port br-int tun-1 > ovs-vsctl set Interface tun-1 type=<port-type> > ovs-vsctl set Interface tun-1 options:local_ip=<IP_ADDRESS> > ovs-vsctl set Interface tun-1 options:remote_ip=<IP_ADDRESS> > ovs-vsctl set Interface tun-1 options:in_key=flow > ovs-vsctl set Interface tun-1 options:out_key=flow
...and the tunnel port between <IP_ADDRESS> <-> <IP_ADDRESS>:
> ovs-vsctl add-port br-int tun-2 > ovs-vsctl set Interface tun-2 type=<port-type> > ovs-vsctl set Interface tun-2 options:local_ip=<IP_ADDRESS> > ovs-vsctl set Interface tun-2 options:remote_ip=<IP_ADDRESS> > ovs-vsctl set Interface tun-2 options:in_key=flow > ovs-vsctl set Interface tun-2 options:out_key=flow
Where <port-type> is one of: stt or vxlan
Note
Any patch ports created between br-int and br-pif MUST be be deleted prior to adding tunnels.
Open vSwitch daemons come with support to run as a Windows service. The instructions here assume that you have installed the Open vSwitch utilities and daemons via make install.
Note
The commands shown here can be run from MSYS bash or Windows command prompt.
To start, create the database:
> ovsdb-tool create C:/openvswitch/etc/openvswitch/conf.db \ "C:/openvswitch/usr/share/openvswitch/vswitch.ovsschema"
Create the ovsdb-server service and start it:
> sc create ovsdb-server \ binpath="C:/openvswitch/usr/sbin/ovsdb-server.exe \ C:/openvswitch/etc/openvswitch/conf.db \ -vfile:info --log-file --pidfile \ --remote=punix:db.sock --service --service-monitor" > sc start ovsdb-server
Tip
One of the common issues with creating a Windows service is with mungled paths. You can make sure that the correct path has been registered with the Windows services manager by running:
> sc qc ovsdb-server
Check that the service is healthy by running:
> sc query ovsdb-server
Initialize the database:
> ovs-vsctl --no-wait init
Create the ovs-vswitchd service and start it:
> sc create ovs-vswitchd \ binpath="C:/openvswitch/usr/sbin/ovs-vswitchd.exe \ --pidfile -vfile:info --log-file --service --service-monitor" > sc start ovs-vswitchd
Check that the service is healthy by running:
> sc query ovs-vswitchd
To stop and delete the services, run:
> sc stop ovs-vswitchd > sc stop ovsdb-server > sc delete ovs-vswitchd > sc delete ovsdb-server
AppVeyor provides a free Windows autobuild service for opensource projects. Open vSwitch has integration with AppVeyor for continuous build. A developer can build test his changes for Windows by logging into appveyor.com using a github account, creating a new project by linking it to his development repository in github and triggering a new build.


Thank you
You have succesfully created your reminder
Your registration number is:
BV09 WXL
You have confirmed your email address as:
<EMAIL_ADDRESS>What happens next?
You will receive a reminder two weeks prior to your Tax and/or MOT expiry dates.
Your reminder will be sent to you via the email address you provided.
{{ button.input(id='button', name='button', class='button', type='button', value='Return to GOV.UK') }}


What's New!!
This new version of FElion Spectrum Analyser has major update to its GUI interface and the data visulaisation methods.
- The GUI layout is written in HTML and styled using CSS.
- The functions is rendered by Node.js (Javascript).
- All the data analysis methods are computed by Python.
- The program is rendered by ElectronJS with NodeJS runtime environment.
- The plots are rendered using plotly.js which is a JavaScript Open Source Graphing Library.
- The logical computations are written using various Python libraries.
Report Bug/Suggestion
Kindly report all the bugs to
Aravindh Marimuthu
Suggestions are most welcome


Crystal Collector!
You will be given a random number at the start of the game.
There are four crystal below. By clicking on a crystal you will add a specific amount of points to your total score.
You win the game by matching your total score to the random number, you lose the game if your total score goes above the random number.
The value of each crystal is hidden from you until you click on it.
Each time when the game starts, the game will change the values of each crystal.
Your total Score is:


Mother, son shot dead in Trinidad
by Gyasi Gonzales(TRINIDAD EXPRESS) — A mother and son were shot dead at a supermarket in Santa Cruz on Tuesday.
The deceased have been identified as 57-year-old Marsha Joseph and her 22-year-old son, Shawn.
The killings happened at the corner of Old Saddle Road and Santa Cruz Old Road at around 3.45pm.
Police have linked the killings to a land dispute. Eyewitnesses thought it was a robbery attempt.
An eyewitness who spoke to the Express said the mother was seated in a vehicle parked outside a supermarket. Her son walked inside to purchase a tank of cooking gas.
“The supermarket had to open the gate for the man to bring in the gas tank. As soon as they open the gate two men went inside. It looked like a robbery.
One of the men shot the son twice on the side. The mother, who was inside the car, saw and came out. She started fighting with one of the men,” he said.
The Express was told that the gunman fired two shots hitting Marsha Joseph in the foot. “She fell in the car.
The front passenger seat and then he started shooting her,” the eyewitness said.The gunmen then escaped.
Passers-by placed the mother and son inside the vehicle and drove out onto the roadway.
“Then we saw an ambulance and we flag it down. And both of them went to hospital,” he said.
Police confirmed that both mother and son succumbed to their injuries.
Crime scene investigators were at the scene up to late evening.
More Trinidad and Tobago News Stories
-
Death at a wake in Trinidad November 22, 2019
-
Custom plates for Trinidad & Tobago in January November 22, 2019
-
Trinidad: Sat Maharaj remembered as loving leader November 22, 2019
-
Trinidad man wanted for ten murders killed by police November 22, 2019
-
Trinidad: Husband ready to flee country, after wife and son killed November 22, 2019
-
Trinidad: ‘Snake boy’ assures he knows how to handle reptiles November 22, 2019
-
42,000 guns, T&T a war zone, says Senator November 21, 2019
-
Trinidad: Man charged with possession of flour November 21, 2019
-
Tourism Trinidad to provide cruise visitors with an authentic experience November 20, 2019


--- layout: docpage title: "Documentation" is_homepage: false is_sphinx_doc: true doc-parent: "Architecture" doc-title: "Dynamo" doc-header-links: ' ' doc-search-path: "../search.html" extra-footer: ' ' ---
Apache Cassandra relies on a number of techniques from Amazon’s Dynamo distributed storage key-value system. Each node in the Dynamo system has three main components:
Cassandra primarily draws from the first two clustering components, while using a storage engine based on a Log Structured Merge Tree (LSM). In particular, Cassandra relies on Dynamo style:
Cassandra was designed this way to meet large-scale (PiB+) business-critical storage requirements. In particular, as applications demanded full global replication of petabyte scale datasets along with always available low-latency reads and writes, it became imperative to design a new kind of database model as the relational database systems of the time struggled to meet the new requirements of global scale applications.
Cassandra achieves horizontal scalability by partitioning all data stored in the system using a hash function. Each partition is replicated to multiple physical nodes, often across failure domains such as racks and even datacenters. As every replica can independently accept mutations to every key that it owns, every key must be versioned. Unlike in the original Dynamo paper where deterministic versions and vector clocks were used to reconcile concurrent updates to a key, Cassandra uses a simpler last write wins model where every mutation is timestamped (including deletes) and then the latest version of data is the “winning” value. Formally speaking, Cassandra uses a Last-Write-Wins Element-Set conflict-free replicated data type for each CQL row (a.k.a LWW-Element-Set CRDT) to resolve conflicting mutations on replica sets.
Cassandra partitions data over storage nodes using a special form of hashing called consistent hashing. In naive data hashing, you typically allocate keys to buckets by taking a hash of the key modulo the number of buckets. For example, if you want to distribute data to 100 nodes using naive hashing you might assign every node to a bucket between 0 and 100, hash the input key modulo 100, and store the data on the associated bucket. In this naive scheme, however, adding a single node might invalidate almost all of the mappings.
Cassandra instead maps every node to one or more tokens on a continuous hash ring, and defines ownership by hashing a key onto the ring and then “walking” the ring in one direction, similar to the Chord algorithm. The main difference of consistent hashing to naive data hashing is that when the number of nodes (buckets) to hash into changes, consistent hashing only has to move a small fraction of the keys.
For example, if we have an eight node cluster with evenly spaced tokens, and a replication factor (RF) of 3, then to find the owning nodes for a key we first hash that key to generate a token (which is just the hash of the key), and then we “walk” the ring in a clockwise fashion until we encounter three distinct nodes, at which point we have found all the replicas of that key. This example of an eight node cluster with RF=3 can be visualized as follows:
You can see that in a Dynamo like system, ranges of keys, also known as token ranges, map to the same physical set of nodes. In this example, all keys that fall in the token range excluding token 1 and including token 2 (range(t1, t2]) are stored on nodes 2, 3 and 4.
Simple single token consistent hashing works well if you have many physical
nodes to spread data over, but with evenly spaced tokens and a small number of
physical nodes, incremental scaling (adding just a few nodes of capacity) is
difficult because there are no token selections for new nodes that can leave
the ring balanced. Cassandra seeks to avoid token imbalance because uneven
token ranges lead to uneven request load. For example, in the previous example
there is no way to add a ninth token without causing imbalance; instead we
would have to insert 8
tokens in the midpoints of the existing ranges.
The Dynamo paper advocates for the use of “virtual nodes” to solve this imbalance problem. Virtual nodes solve the problem by assigning multiple tokens in the token ring to each physical node. By allowing a single physical node to take multiple positions in the ring, we can make small clusters look larger and therefore even with a single physical node addition we can make it look like we added many more nodes, effectively taking many smaller pieces of data from more ring neighbors when we add even a single node.
Cassandra introduces some nomenclature to handle these concepts:
The mapping of Tokens to Endpoints gives rise to the Token Map where Cassandra keeps track of what ring positions map to which physical endpoints. For example, in the following figure we can represent an eight node cluster using only four physical nodes by assigning two tokens to every node:
Multiple tokens per physical node provide the following benefits:
Multiple tokens, however, can also have disadvantages:
2 * (RF - 1)
additional neighbors on the
token ring, which means that there are more combinations of node failures
where we lose availability for a portion of the token ring. The more tokens
you have, the higher the probability of an outage.Note that in Cassandra 2.x
, the only token allocation algorithm available
was picking random tokens, which meant that to keep balance the default number
of tokens per node had to be quite high, at 256
. This had the effect of
coupling many physical endpoints together, increasing the risk of
unavailability. That is why in 3.x +
the new deterministic token allocator
was added which intelligently picks tokens such that the ring is optimally
balanced while requiring a much lower number of tokens per physical node.
Cassandra replicates every partition of data to many nodes across the cluster to maintain high availability and durability. When a mutation occurs, the coordinator hashes the partition key to determine the token range the data belongs to and then replicates the mutation to the replicas of that data according to the Replication Strategy.
All replication strategies have the notion of a replication factor (RF
),
which indicates to Cassandra how many copies of the partition should exist.
For example with a RF=3
keyspace, the data will be written to three
distinct replicas. Replicas are always chosen such that they are distinct
physical nodes which is achieved by skipping virtual nodes if needed.
Replication strategies may also choose to skip nodes present in the same failure
domain such as racks or datacenters so that Cassandra clusters can tolerate
failures of whole racks and even datacenters of nodes.
Cassandra supports pluggable replication strategies, which determine which physical nodes act as replicas for a given token range. Every keyspace of data has its own replication strategy. All production deployments should use the NetworkTopologyStrategy while the SimpleStrategy replication strategy is useful only for testing clusters where you do not yet know the datacenter layout of the cluster.
NetworkTopologyStrategy
¶NetworkTopologyStrategy
allows a replication factor to be specified for each
datacenter in the cluster. Even if your cluster only uses a single datacenter,
NetworkTopologyStrategy
should be preferred over SimpleStrategy
to make it
easier to add new physical or virtual datacenters to the cluster later.
In addition to allowing the replication factor to be specified individually by
datacenter, NetworkTopologyStrategy
also attempts to choose replicas within a
datacenter from different racks as specified by the Snitch. If
the number of racks is greater than or equal to the replication factor for the
datacenter, each replica is guaranteed to be chosen from a different rack.
Otherwise, each rack will hold at least one replica, but some racks may hold
more than one. Note that this rack-aware behavior has some potentially
surprising implications. For example, if
there are not an even number of nodes in each rack, the data load on the
smallest rack may be much higher. Similarly, if a single node is bootstrapped
into a brand new rack, it will be considered a replica for the entire ring.
For this reason, many operators choose to configure all nodes in a single
availability zone or similar failure domain as a single “rack”.
SimpleStrategy
¶SimpleStrategy
allows a single integer replication_factor
to be defined. This determines the number of nodes that
should contain a copy of each row. For example, if replication_factor
is 3, then three different nodes should store
a copy of each row.
SimpleStrategy
treats all nodes identically, ignoring any configured datacenters or racks. To determine the replicas
for a token range, Cassandra iterates through the tokens in the ring, starting with the token range of interest. For
each token, it checks whether the owning node has been added to the set of replicas, and if it has not, it is added to
the set. This process continues until replication_factor
distinct nodes have been added to the set of replicas.
Transient replication is an experimental feature in Cassandra 4.0 not present in the original Dynamo paper. It allows you to configure a subset of replicas to only replicate data that hasn’t been incrementally repaired. This allows you to decouple data redundancy from availability. For instance, if you have a keyspace replicated at rf 3, and alter it to rf 5 with 2 transient replicas, you go from being able to tolerate one failed replica to being able to tolerate two, without corresponding increase in storage usage. This is because 3 nodes will replicate all the data for a given token range, and the other 2 will only replicate data that hasn’t been incrementally repaired.
To use transient replication, you first need to enable it in
cassandra.yaml
. Once enabled, both SimpleStrategy
and
NetworkTopologyStrategy
can be configured to transiently replicate data.
You configure it by specifying replication factor as
<total_replicas>/<transient_replicas
Both SimpleStrategy
and
NetworkTopologyStrategy
support configuring transient replication.
Transiently replicated keyspaces only support tables created with read_repair
set to NONE
and monotonic reads are not currently supported. You also
can’t use LWT
, logged batches, or counters in 4.0. You will possibly never be
able to use materialized views with transiently replicated keyspaces and
probably never be able to use secondary indices with them.
Transient replication is an experimental feature that may not be ready for production use. The expected audience is experienced users of Cassandra capable of fully validating a deployment of their particular application. That means being able check that operations like reads, writes, decommission, remove, rebuild, repair, and replace all work with your queries, data, configuration, operational practices, and availability requirements.
It is anticipated that 4.next
will support monotonic reads with transient
replication as well as LWT, logged batches, and counters.
Cassandra uses mutation timestamp versioning to guarantee eventual consistency of data. Specifically all mutations that enter the system do so with a timestamp provided either from a client clock or, absent a client provided timestamp, from the coordinator node’s clock. Updates resolve according to the conflict resolution rule of last write wins. Cassandra’s correctness does depend on these clocks, so make sure a proper time synchronization process is running such as NTP.
Cassandra applies separate mutation timestamps to every column of every row within a CQL partition. Rows are guaranteed to be unique by primary key, and each column in a row resolve concurrent mutations according to last-write-wins conflict resolution. This means that updates to different primary keys within a partition can actually resolve without conflict! Furthermore the CQL collection types such as maps and sets use this same conflict free mechanism, meaning that concurrent updates to maps and sets are guaranteed to resolve as well.
As replicas in Cassandra can accept mutations independently, it is possible for some replicas to have newer data than others. Cassandra has many best-effort techniques to drive convergence of replicas including Replica read repair <read-repair> in the read path and Hinted handoff <hints> in the write path.
These techniques are only best-effort, however, and to guarantee eventual consistency Cassandra implements anti-entropy repair <repair> where replicas calculate hierarchical hash-trees over their datasets called Merkle Trees that can then be compared across replicas to identify mismatched data. Like the original Dynamo paper Cassandra supports “full” repairs where replicas hash their entire dataset, create Merkle trees, send them to each other and sync any ranges that don’t match.
Unlike the original Dynamo paper, Cassandra also implements sub-range repair and incremental repair. Sub-range repair allows Cassandra to increase the resolution of the hash trees (potentially down to the single partition level) by creating a larger number of trees that span only a portion of the data range. Incremental repair allows Cassandra to only repair the partitions that have changed since the last repair.
Cassandra supports a per-operation tradeoff between consistency and
availability through Consistency Levels. Cassandra’s consistency levels
are a version of Dynamo’s R + W > N
consistency mechanism where operators
could configure the number of nodes that must participate in reads (R
)
and writes (W
) to be larger than the replication factor (N
). In
Cassandra, you instead choose from a menu of common consistency levels which
allow the operator to pick R
and W
behavior without knowing the
replication factor. Generally writes will be visible to subsequent reads when
the read consistency level contains enough nodes to guarantee a quorum intersection
with the write consistency level.
 The consistency level simply controls how many responses the coordinator waits for before responding to the client.
For read operations, the coordinator generally only issues read commands to enough replicas to satisfy the consistency level. The one exception to this is when speculative retry may issue a redundant read request to an extra replica if the original replicas have not responded within a specified time window.
It is common to pick read and write consistency levels such that the replica
sets overlap, resulting in all acknowledged writes being visible to subsequent
reads. This is typically expressed in the same terms Dynamo does, in that W +
R > RF
, where W
is the write consistency level, R
is the read
consistency level, and RF
is the replication factor. For example, if RF
= 3
, a QUORUM
request will require responses from at least 2/3
replicas. If QUORUM
is used for both writes and reads, at least one of the
replicas is guaranteed to participate in both the write and the read request,
which in turn guarantees that the quorums will overlap and the write will be
visible to the read.
In a multi-datacenter environment, LOCAL_QUORUM
can be used to provide a
weaker but still useful guarantee: reads are guaranteed to see the latest write
from within the same datacenter. This is often sufficient as clients homed to
a single datacenter will read their own writes.
If this type of strong consistency isn’t required, lower consistency levels
like LOCAL_ONE
or ONE
may be used to improve throughput, latency, and
availability. With replication spanning multiple datacenters, LOCAL_ONE
is
typically less available than ONE
but is faster as a rule. Indeed ONE
will succeed if a single replica is available in any datacenter.
The replication protocols and dataset partitioning rely on knowing which nodes are alive and dead in the cluster so that write and read operations can be optimally routed. In Cassandra liveness information is shared in a distributed fashion through a failure detection mechanism based on a gossip protocol.
Gossip is how Cassandra propagates basic cluster bootstrapping information such
as endpoint membership and internode network protocol versions. In Cassandra’s
gossip system, nodes exchange state information not only about themselves but
also about other nodes they know about. This information is versioned with a
vector clock of (generation, version)
tuples, where the generation is a
monotonic timestamp and version is a logical clock the increments roughly every
second. These logical clocks allow Cassandra gossip to ignore old versions of
cluster state just by inspecting the logical clocks presented with gossip
messages.
Every node in the Cassandra cluster runs the gossip task independently and periodically. Every second, every node in the cluster:
When an operator first bootstraps a Cassandra cluster they designate certain nodes as “seed” nodes. Any node can be a seed node and the only difference between seed and non-seed nodes is seed nodes are allowed to bootstrap into the ring without seeing any other seed nodes. Furthermore, once a cluster is bootstrapped, seed nodes become “hotspots” for gossip due to step 4 above.
As non-seed nodes must be able to contact at least one seed node in order to bootstrap into the cluster, it is common to include multiple seed nodes, often one for each rack or datacenter. Seed nodes are often chosen using existing off-the-shelf service discovery mechanisms.
Note
Nodes do not have to agree on the seed nodes, and indeed once a cluster is bootstrapped, newly launched nodes can be configured to use any existing nodes as “seeds”. The only advantage to picking the same nodes as seeds is it increases their usefullness as gossip hotspots.
Currently, gossip also propagates token metadata and schema version information. This information forms the control plane for scheduling data movements and schema pulls. For example, if a node sees a mismatch in schema version in gossip state, it will schedule a schema sync task with the other nodes. As token information propagates via gossip it is also the control plane for teaching nodes which endpoints own what data.
Gossip forms the basis of ring membership, but the failure detector
ultimately makes decisions about if nodes are UP
or DOWN
. Every node in
Cassandra runs a variant of the Phi Accrual Failure Detector,
in which every node is constantly making an independent decision of if their
peer nodes are available or not. This decision is primarily based on received
heartbeat state. For example, if a node does not see an increasing heartbeat
from a node for a certain amount of time, the failure detector “convicts” that
node, at which point Cassandra will stop routing reads to it (writes will
typically be written to hints). If/when the node starts heartbeating again,
Cassandra will try to reach out and connect, and if it can open communication
channels it will mark that node as available.
Note
UP and DOWN state are local node decisions and are not propagated with gossip. Heartbeat state is propagated with gossip, but nodes will not consider each other as “UP” until they can successfully message each other over an actual network channel.
Cassandra will never remove a node from gossip state without explicit
instruction from an operator via a decommission operation or a new node
bootstrapping with a replace_address_first_boot
option. This choice is
intentional to allow Cassandra nodes to temporarily fail without causing data
to needlessly re-balance. This also helps to prevent simultaneous range
movements, where multiple replicas of a token range are moving at the same
time, which can violate monotonic consistency and can even cause data loss.
Cassandra scales-out to meet the requirements of growth in data size and request rates. Scaling-out means adding additional nodes to the ring, and every additional node brings linear improvements in compute and storage. In contrast, scaling-up implies adding more capacity to the existing database nodes. Cassandra is also capable of scale-up, and in certain environments it may be preferable depending on the deployment. Cassandra gives operators the flexibility to chose either scale-out or scale-up.
One key aspect of Dynamo that Cassandra follows is to attempt to run on commodity hardware, and many engineering choices are made under this assumption. For example, Cassandra assumes nodes can fail at any time, auto-tunes to make the best use of CPU and memory resources available and makes heavy use of advanced compression and caching techniques to get the most storage out of limited memory and storage capabilities.
Cassandra, like Dynamo, chooses not to provide cross-partition transactions that are common in SQL Relational Database Management Systems (RDBMS). This both gives the programmer a simpler read and write API, and allows Cassandra to more easily scale horizontally since multi-partition transactions spanning multiple nodes are notoriously difficult to implement and typically very latent.
Instead, Cassanda chooses to offer fast, consistent, latency at any scale for single partition operations, allowing retrieval of entire partitions or only subsets of partitions based on primary key filters. Furthermore, Cassandra does support single partition compare and swap functionality via the lightweight transaction CQL API.
Cassandra, in a slight departure from Dynamo, chooses a storage interface that is more sophisticated then “simple key value” stores but significantly less complex than SQL relational data models. Cassandra presents a wide-column store interface, where partitions of data contain multiple rows, each of which contains a flexible set of individually typed columns. Every row is uniquely identified by the partition key and one or more clustering keys, and every row can have as many columns as needed.
This allows users to flexibly add new columns to existing datasets as new requirements surface. Schema changes involve only metadata changes and run fully concurrently with live workloads. Therefore, users can safely add columns to existing Cassandra databases while remaining confident that query performance will not degrade.


1 write to CounterInstanceMapping
Microsoft.PowerShell.Commands.Diagnostics (1)
CounterSet.cs (1)
35
CounterInstanceMapping
= counterInstanceMapping;
4 references to CounterInstanceMapping
Microsoft.PowerShell.Commands.Diagnostics (4)
CounterSet.cs (4)
53
foreach (string counterName in this.
CounterInstanceMapping
.Keys)
56
if (
CounterInstanceMapping
[counterName].Length != 0)
81
foreach (string counterName in
CounterInstanceMapping
.Keys)
83
foreach (string instanceName in
CounterInstanceMapping
[counterName])


Writing Compilers and Interpreters: A Software Engineering Approach, 3rd EditionISBN: 978-0-470-17707-5
864 pages
September 2009
|
Chapter 1 Introduction.
Chapter 2 Framework I: Compiler and Interpreter.
Chapter 3 Scanning.
Chapter 4 The Symbol Table.
Chapter 5 Parsing Expressions and Assignment Statements.
Chapter 6 Interpreting Expressions and Assignment Statements.
Chapter 7 Parsing Control Statements.
Chapter 8 Interpreting Control Statements.
Chapter 9 Parsing Declarations.
Chapter 10 Type Checking.
Chapter 11 Parsing Programs, Procedures, and Functions.
Chapter 12 Interpreting Pascal Programs.
Chapter 13 An Interactive Source-Level Debugger.
Chapter 14 Framework II: An Integrated Development Environment (IDE).
Chapter 15 Jasmin Assembly Language and Code Generation for the Java Virtual Machine.
Chapter 16 Compiling Programs, Assignment Statements, and Expressions.
Chapter 17 Compiling Procedure and Function Calls and String Operations.
Chapter 18 Compiling Control Statements, Arrays, and Records.
Chapter 19 Additional Topics.
Index.
Writing Compilers and Interpreters: A Software Engineering Approach, 3rd Edition (US $75.00)
-and- Professional Windows Phone 7 Game Development: Creating Games using XNA Game Studio 4 (US $44.99)
Total List Price: US $119.99
Discounted Price: US $89.99 (Save: US $30.00)


Mini Challenge 2
General
Floor 1
Floor 2
Floor 3
Floor 1 readings
Lights Power
Equipment Power
Thermostat Temp
Thermostat Heating Setpoint
Thermostat Cooling Setpoint
VAV Availability Manager Night Cycle Control Status
VAV_SYS SUPPLY FAN:Fan Power
BATH_EXHAUST:Fan Power
VAV REHEAT Damper Position
REHEAT COIL Power
VAV_SYS HEATING COIL Power
VAV_SYS Outdoor Air Flow Fraction
VAV_SYS Outdoor Air Mass Flow Rate
VAV_SYS COOLING COIL Power
VAV_SYS AIR LOOP INLET Temperature
VAV_SYS AIR LOOP INLET Mass Flow Rate
VAV_SYS SUPPLY FAN OUTLET Temperature
VAV_SYS SUPPLY FAN OUTLET Mass Flow Rate
RETURN OUTLET CO2 Concentration
SUPPLY INLET Temperature
SUPPLY INLET Mass Flow Rate
Mechanical Ventilation Mass Flow Rate


About Opera Quest Northwest
Opera Quest Northwest is a newly incorporated nonprofit, and the designated successor to the Vancouver Children’s Opera. We are building and expanding on that organization’s 12-year heritage of presenting live opera to young audiences.
Our mission is to educate, enrich and instill a love of music in the children of our region by introducing them to opera through a lively production that blends classic opera excerpts with a humorous, interactive script.
Educating young people is the whole purpose of “Opera the Great.” We believe passionately in the power of music in education; and in fact, studies confirm that participating in music activities helps children excel academically. Supplementary programs are especially vital in a time when many schools are reducing or even eliminating funding for music and the arts.
With the help of grants and generous private donations, we offer our production “Opera the Great” to elementary schools at no cost to the school.
Our performers are all educators by nature, training and profession. Our program has specific educational goals. For example, students learn opera vocabulary, history, characters, voice parts and famous melodies. Since children learn best through participation, our script lets them try out operatic gestures and singing styles and become part of the chorus. Some even have the chance to come onstage as opera characters.
Over the past three years, we have shared “Opera the Great” with Vancouver’s Evergreen School District to the delight of hundreds of third, fourth and fifth- graders. At the end of the show, the children are eager and able to ask any opera-related questions they may have.
Don Nelson, fine arts manager for Evergreen Public Schools, agrees on the impact “Opera the Great” has on these students, “After three years of having ‘Opera the Great’ in our schools, I can say that every principal consistently tells me this is one of the most engaging and delightful assemblies they have hosted.”
Music enriches the soul of a community, yet many families do not have the resources to expose their children to live classical music. That’s where we come in. We bring opera into our schools, we plant the seeds for a lifelong appreciation of—and support for—the performing arts that will benefit current and future generations.


Since last night, I've not been able to attach any files to a message I posted yesterday. I keep getting red warning messages. So let's try to add to add the same items here ...
»
Archived Forum |
|
Just testingSubmitted by calypso_rae on Mon, 26/11/2012 - 09:04Since last night, I've not been able to attach any files to a message I posted yesterday. I keep getting red warning messages. So let's try to add to add the same items here ... » |
Re: Just testing
Hmmm,
No, I'm getting the same kind of problem here:
:(
Re: Just testing
Just turned off writing of error's to the screen and instead to log only. The hosting provider migrated the server yesterday so maybe the php error reporting is on a report all state.
Re: Just testing
Hi Trystan,
I've tried to add a different .txt file to my previous posting. Although it appears to have uploaded, the instruction about ticking the "List" box is not visible. So something is still not right.
Does user-activity normally flag up loads of errors, and we mere mortals just don't get to see them?
Re: Just testing
OK, I've managed to attach a couple of files, but there were no labels showing alongside the 'tick' boxes. These files would only appear in the posted message if ticked the lower box, so I presume that this must be the "List" box. Can't remember what the other one was for ...
Re: Just testing
The left box was "Delete", the right "List". When I looked at your post in Edit mode, the boxes were stacked and without labels for me either.
It looks like a style sheet / layout problem.When I look in Firebug, there's no sign of the captions. So it looks as if they're not getting written into the page at source.Re: Just testing
Having attached a file, the boxes that I'm seeing are one above the other. I think the upper one must be "Delete" and the lower one "List". On that basis, let's see if this works for real with whatever it was I was trying to do yesterday ...


| Package | Description |
|---|---|
| org.elasticsearch.action.percolate | |
| org.elasticsearch.client |
The client module allowing to easily perform actions/operations.
|
| org.elasticsearch.client.support |
| Modifier and Type | Method and Description |
|---|---|
PercolateRequestBuilder |
PercolateRequestBuilder.addAggregation(AbstractAggregationBuilder aggregationBuilder)
|
PercolateRequestBuilder |
PercolateRequestBuilder.addSort(SortBuilder sort)
Delegates to
PercolateSourceBuilder.addSort(SortBuilder) |
PercolateRequestBuilder |
PercolateAction.newRequestBuilder(ElasticsearchClient client) |
PercolateRequestBuilder |
PercolateRequestBuilder.setDocumentType(String type)
Sets the type of the document to percolate.
|
PercolateRequestBuilder |
PercolateRequestBuilder.setGetRequest(GetRequest getRequest)
Enables percolating an existing document.
|
PercolateRequestBuilder |
PercolateRequestBuilder.setHighlightBuilder(HighlightBuilder highlightBuilder)
|
PercolateRequestBuilder |
PercolateRequestBuilder.setOnlyCount(boolean onlyCount)
Whether only to return total count and don't keep track of the matches (Count percolation).
|
PercolateRequestBuilder |
PercolateRequestBuilder.setPercolateDoc(PercolateSourceBuilder.DocBuilder docBuilder)
|
PercolateRequestBuilder |
PercolateRequestBuilder.setPercolateQuery(QueryBuilder queryBuilder)
Delegates to
PercolateSourceBuilder.setQueryBuilder(QueryBuilder) |
PercolateRequestBuilder |
PercolateRequestBuilder.setPreference(String preference)
Sets the preference to execute the search.
|
PercolateRequestBuilder |
PercolateRequestBuilder.setRouting(String... routings)
List of routing values to control the shards the search will be executed on.
|
PercolateRequestBuilder |
PercolateRequestBuilder.setRouting(String routing)
A comma separated list of routing values to control the shards the search will be executed on.
|
PercolateRequestBuilder |
PercolateRequestBuilder.setScore(boolean score)
Delegates to
PercolateSourceBuilder.setSort(boolean) } |
PercolateRequestBuilder |
PercolateRequestBuilder.setSize(int size)
Delegates to
PercolateSourceBuilder.setSize(int) } |
PercolateRequestBuilder |
PercolateRequestBuilder.setSortByScore(boolean sort)
Delegates to
PercolateSourceBuilder.setSort(boolean) } |
PercolateRequestBuilder |
PercolateRequestBuilder.setSource(byte[] source)
Raw variant of
setSource(PercolateSourceBuilder) |
PercolateRequestBuilder |
PercolateRequestBuilder.setSource(byte[] source,
int offset,
int length)
Raw variant of
setSource(PercolateSourceBuilder) |
PercolateRequestBuilder |
PercolateRequestBuilder.setSource(BytesReference source)
Raw variant of
setSource(PercolateSourceBuilder) |
PercolateRequestBuilder |
PercolateRequestBuilder.setSource(Map<String,Object> source)
Raw variant of
setSource(PercolateSourceBuilder) |
PercolateRequestBuilder |
PercolateRequestBuilder.setSource(Map<String,Object> source,
XContentType contentType)
Raw variant of
setSource(PercolateSourceBuilder) |
PercolateRequestBuilder |
PercolateRequestBuilder.setSource(PercolateSourceBuilder source)
Sets the percolate request definition directly on the request.
|
PercolateRequestBuilder |
PercolateRequestBuilder.setSource(String source)
Raw variant of
setSource(PercolateSourceBuilder) |
PercolateRequestBuilder |
PercolateRequestBuilder.setSource(XContentBuilder sourceBuilder)
Raw variant of
setSource(PercolateSourceBuilder) |
| Modifier and Type | Method and Description |
|---|---|
MultiPercolateRequestBuilder |
MultiPercolateRequestBuilder.add(PercolateRequestBuilder percolateRequestBuilder)
Bundles the specified percolate request build to the multi percolate request.
|
MultiPercolateRequest |
MultiPercolateRequest.add(PercolateRequestBuilder requestBuilder)
Embeds a percolate request to this multi percolate request
|
| Modifier and Type | Method and Description |
|---|---|
PercolateRequestBuilder |
Client.preparePercolate()
Percolates a request returning the matches documents.
|
| Modifier and Type | Method and Description |
|---|---|
PercolateRequestBuilder |
AbstractClient.preparePercolate() |
Copyright © 2009–2016. All rights reserved.


The advantages of peer programming simulates a real-life work environment through interactions with a team. Pairing is when two programmers build code in tandem, through specific roles, such as driver (the writer) and navigator (the director).
Advantages
Encourages exchange of ideas
Promotes seamless workflow appointing two people two different jobs
Two pairs of eyes are also able to detect errors better
Driver
takes direction from navigator
writes the code
steers navigator back on track
Navigator
provides driver sense of direction based on preliminary designs
steers driver back on track
responsible for general vision of design execution


| Created: | 1/27/2021 3:41:39 PM |
| Modified: | 1/27/2021 3:41:39 PM |
| Project: | |
| Advanced: |
| Attribute |
|
Public bigint at_id |
|
Details:
|
|
Public varchar(255) at_name |
|
Details:
|
|
Public timestamp with time zone(0) at_created_at |
|
Details:
|
|
Public bigint at_created_by_user_id |
|
Details:
|
|
Public varchar(255) at_created_by_user_sub |
|
Details:
|
|
Public varchar(255) at_created_by_user_first_name |
|
Details:
|
|
Public varchar(255) at_created_by_user_last_name |
|
Details:
|
|
Public varchar(255) at_created_by_user_email |
|
Details:
|
|
Public varchar(255) at_created_by_user_oid |
|
Details:
|
|
Public timestamp with time zone(0) at_updated_at |
|
Details:
|
|
Public bigint at_updated_by_user_id |
|
Details:
|
|
Public varchar(255) at_updated_by_user_sub |
|
Details:
|
|
Public varchar(255) at_updated_by_user_first_name |
|
Details:
|
|
Public varchar(255) at_updated_by_user_last_name |
|
Details:
|
|
Public varchar(255) at_updated_by_user_email |
|
Details:
|
|
Public varchar(255) at_updated_by_user_oid |
|
Details:
|
|
Public bigserial ods_id |
|
Details:
|
|
Public jsonb ods_meta |
|
Details:
|
|
Public varchar(255) ods_created_by |
|
Details:
|
|
Public timestamp with time zone(0) ods_created_at |
|
Details:
|
| Operation | ||
|
Public award_types_pkey( ods_id: bigserial, |
||
|
Details:
<<PK>>
|
||
|
Public award_types_at_id_index( at_id: bigint, |
||
|
Details:
<<index>>
|
||
|
Public award_types_at_updated_at_index( at_updated_at: timestamp with time zone, |
||
|
Details:
<<index>>
|
| Tag | Value |
| Owner | public |
|
Details:
|
| Property | Value |
| isFinalSpecialization: | 0 |


HTML frames are used to divide your browser window into multiple sections where each section can load a separate HTML document. A collection of frames in the browser window is known as a frameset. The window is divided into frames in a similar way the tables are organized: into rows and columns.
There are few drawbacks with using frames, so it's never recommended to use frames in your webpages −
Some smaller devices cannot cope with frames often because their screen is not big enough to be divided up.
Sometimes your page will be displayed differently on different computers due to different screen resolution.
The browser's back button might not work as the user hopes.
There are still few browsers that do not support frame technology.
To use frames on a page we use <frameset> tag instead of  tag. The <frameset> tag defines, how to divide the window into frames. The rows attribute of <frameset> tag defines horizontal frames and cols attribute defines vertical frames. Each frame is indicated by <frame> tag and it defines which HTML document shall open into the frame.
Note − The <frame> tag deprecated in HTML5. Do not use this element.
Following is the example to create three horizontal frames −
<!DOCTYPE html>   <title>HTML Frames</title>  <frameset rows = "10%,80%,10%"> <frame name = "top" src = "/html/top_frame.htm" /> <frame name = "main" src = "/html/main_frame.htm" /> <frame name = "bottom" src = "/html/bottom_frame.htm" /> <noframes> Your browser does not support frames. </noframes> </frameset> »
Let's put the above example as follows, here we replaced rows attribute by cols and changed their width. This will create all the three frames vertically −
<!DOCTYPE html>   <title>HTML Frames</title>  <frameset cols = "25%,50%,25%"> <frame name = "left" src = "/html/top_frame.htm" /> <frame name = "center" src = "/html/main_frame.htm" /> <frame name = "right" src = "/html/bottom_frame.htm" /> <noframes> Your browser does not support frames. </noframes> </frameset> »
Following are important attributes of the <frameset> tag −
| Sr.No | Attribute & Description |
|---|---|
| 1 |
cols Specifies how many columns are contained in the frameset and the size of each column. You can specify the width of each column in one of the four ways − Absolute values in pixels. For example, to create three vertical frames, use cols = "100, 500, 100". A percentage of the browser window. For example, to create three vertical frames, use cols = "10%, 80%, 10%". Using a wildcard symbol. For example, to create three vertical frames, use cols = "10%, *, 10%". In this case wildcard takes remainder of the window. As relative widths of the browser window. For example, to create three vertical frames, use cols = "3*, 2*, 1*". This is an alternative to percentages. You can use relative widths of the browser window. Here the window is divided into sixths: the first column takes up half of the window, the second takes one third, and the third takes one sixth. |
| 2 |
rows This attribute works just like the cols attribute and takes the same values, but it is used to specify the rows in the frameset. For example, to create two horizontal frames, use rows = "10%, 90%". You can specify the height of each row in the same way as explained above for columns. |
| 3 |
border This attribute specifies the width of the border of each frame in pixels. For example, border = "5". A value of zero means no border. |
| 4 |
frameborder This attribute specifies whether a three-dimensional border should be displayed between frames. This attribute takes value either 1 (yes) or 0 (no). For example frameborder = "0" specifies no border. |
| 5 |
framespacing This attribute specifies the amount of space between frames in a frameset. This can take any integer value. For example framespacing = "10" means there should be 10 pixels spacing between each frames. |
Following are the important attributes of <frame> tag −
| Sr.No | Attribute & Description |
|---|---|
| 1 |
src This attribute is used to give the file name that should be loaded in the frame. Its value can be any URL. For example, src = "/html/top_frame.htm" will load an HTML file available in html directory. |
| 2 |
name This attribute allows you to give a name to a frame. It is used to indicate which frame a document should be loaded into. This is especially important when you want to create links in one frame that load pages into an another frame, in which case the second frame needs a name to identify itself as the target of the link. |
| 3 |
frameborder This attribute specifies whether or not the borders of that frame are shown; it overrides the value given in the frameborder attribute on the <frameset> tag if one is given, and this can take values either 1 (yes) or 0 (no). |
| 4 |
marginwidth This attribute allows you to specify the width of the space between the left and right of the frame's borders and the frame's content. The value is given in pixels. For example marginwidth = "10". |
| 5 |
marginheight This attribute allows you to specify the height of the space between the top and bottom of the frame's borders and its contents. The value is given in pixels. For example marginheight = "10". |
| 6 |
noresize By default, you can resize any frame by clicking and dragging on the borders of a frame. The noresize attribute prevents a user from being able to resize the frame. For example noresize = "noresize". |
| 7 |
scrolling This attribute controls the appearance of the scrollbars that appear on the frame. This takes values either "yes", "no" or "auto". For example scrolling = "no" means it should not have scroll bars. |
| 8 |
longdesc This attribute allows you to provide a link to another page containing a long description of the contents of the frame. For example longdesc = "framedescription.htm" |
If a user is using any old browser or any browser, which does not support frames then <noframes> element should be displayed to the user.
So you must place a  element inside the <noframes> element because the <frameset> element is supposed to replace the  element, but if a browser does not understand <frameset> element then it should understand what is inside the  element which is contained in a <noframes> element.
You can put some nice message for your user having old browsers. For example, Sorry!! your browser does not support frames. as shown in the above example.
One of the most popular uses of frames is to place navigation bars in one frame and then load main pages into a separate frame.
Let's see following example where a test.htm file has following code −
<!DOCTYPE html>   <title>HTML Target Frames</title>  <frameset cols = "200, *"> <frame src = "/html/menu.htm" name = "menu_page" /> <frame src = "/html/main.htm" name = "main_page" /> <noframes> Your browser does not support frames. </noframes> </frameset> »
Here, we have created two columns to fill with two frames. The first frame is 200 pixels wide and will contain the navigation menu bar implemented by menu.htm file. The second column fills in remaining space and will contain the main part of the page and it is implemented by main.htm file. For all the three links available in menu bar, we have mentioned target frame as main_page, so whenever you click any of the links in menu bar, available link will open in main page.
Following is the content of menu.htm file
<!DOCTYPE html>   Google

 Microsoft

 BBC News  »
Following is the content of main.htm file −
<!DOCTYPE html>
This is main page and content from any link will be displayed here.

So now click any link and see the result.
  »
Now you can try to click links available in the left panel and see the result. The targetattribute can also take one of the following values −
| Sr.No | Option & Description |
|---|---|
| 1 |
_self Loads the page into the current frame. |
| 2 |
_blank Loads a page into a new browser window. Opening a new window. |
| 3 |
_parent Loads the page into the parent window, which in the case of a single frameset is the main browser window. |
| 4 |
_top Loads the page into the browser window, replacing any current frames. |
| 5 |
targetframe Loads the page into a named targetframe. |