| 084:006 Khan | : |
O man! Verily, you are returning towards your Lord with your deeds and actions (good or bad), a sure returning, so you will meet (i.e. the results of your deeds which you did). |
| 084:006 Maulana | : |
O man, thou must strive a hard striving (to attain) to thy Lord, until thou meet Him. |
| 084:006 Pickthal | : |
Thou, verily, O man, art working toward thy Lord a work which thou wilt meet (in His presence). |
| 084:006 Rashad | : |
O humans, you are irreversibly heading for a meeting with your Lord. |
| 084:006 Sarwar | : |
Human being, you strive hard to get closer to your Lord, and so you will certainly receive the recompense (of your deeds). |
| 084:006 Shakir | : |
O man! surely you must strive (to attain) to your Lord, a hard striving until you meet Him. |
| 084:006 Sherali | : |
Verily, thou, O man, art toiling along towards thy Lord, a hard toiling; until thou meet HIM. |
| 084:006 Yusufali | : |
O thou man! Verily thou art ever toiling on towards thy Lord- painfully toiling,- but thou shalt meet Him. |
Concepts/Themes Covered: الإيمان > اليوم الآخر > الحشر Faith> The Hereafter> The Day of Resurrection
This tool uses eight English parallel translations for the Holy Quran imported from Mr. Clay Smith. You can also visit Qurany Concepts for browsing the Quran themes or topics. If you want to search the Holy Quran for keywords, please visit Qurany Keywords.


Explore topics such as Newtonian mechanics (including rotational motion); work, energy, and power; mechanical waves and sound; and introductory, simple circuits.
Calculus BC is roughly equivalent to both first and second semester college calculus courses and extends the content learned in AB to different types of equations and introduces the topic of sequences and series.
Learn about concepts such as national income and price determination and develop your familiarity with economic performance measures, the financial sector, stabilization policies, economic growth and international economics.
Analyze the methods psychologists use to study various types of behavior and mental processes and evaluate the validity and significance of their contributions.


Basic Structure
In this exercise you learn to create a html page and use the basic semantically correct elements to describe sections of a web page
Excercise
Create a simple website which consists of a header, main part and footer.
- The header should include a navigation and three links
- The main part should consist of multiple sections containing different headers and paragraphs
- The footer should just display a copyright notice
- To fill the paragraphs with content you can use the Lorem Ipsum generator
Template
You can use the following template to implement your solution
Solution
Linkbasic-structure.solution.html


|
Little Heroes
|
UI Panel is responsible for collecting, sorting and updating widgets in addition to generating widgets' geometry. More...
Public Types | |
| enum | RenderQueue { RenderQueue.Automatic, RenderQueue.StartAt, RenderQueue.Explicit } |
| Public Types inherited from UIRect | |
| enum | AnchorUpdate { AnchorUpdate.OnEnable, AnchorUpdate.OnUpdate, AnchorUpdate.OnStart } |
Public Member Functions | |
| delegate void | OnGeometryUpdated () |
| delegate void | OnClippingMoved (UIPanel panel) |
| override Vector3[] | GetSides (Transform relativeTo) |
| Get the sides of the rectangle relative to the specified transform. More... | |
| override void | Invalidate (bool includeChildren) |
| Invalidating the panel should reset its alpha. More... | |
| override float | CalculateFinalAlpha (int frameID) |
| Widget's final alpha, after taking the panel's alpha into account. More... | |
| override void | SetRect (float x, float y, float width, float height) |
| Set the panel's rectangle. More... | |
| bool | IsVisible (Vector3 a, Vector3 b, Vector3 c, Vector3 d) |
| Returns whether the specified rectangle is visible by the panel. More... | |
| bool | IsVisible (Vector3 worldPos) |
| Returns whether the specified world position is within the panel's bounds determined by the clipping rect. More... | |
| bool | IsVisible (UIWidget w) |
| Returns whether the specified widget is visible by the panel. More... | |
| bool | Affects (UIWidget w) |
| Whether the specified widget is going to be affected by this panel in any way. More... | |
| void | RebuildAllDrawCalls () |
| Causes all draw calls to be re-created on the next update. More... | |
| void | SetDirty () |
| Invalidate the panel's draw calls, forcing them to be rebuilt on the next update. More... | |
| override void | ParentHasChanged () |
| Find the parent panel, if we have one. More... | |
| void | SortWidgets () |
| Immediately sort all child widgets. More... | |
| UIDrawCall | FindDrawCall (UIWidget w) |
| Insert the specified widget into one of the existing draw calls if possible. More... | |
| void | AddWidget (UIWidget w) |
| Make the following widget be managed by the panel. More... | |
| void | RemoveWidget (UIWidget w) |
| Remove the widget from its current draw call, invalidating everything as needed. More... | |
| void | Refresh () |
| Immediately refresh the panel. More... | |
| virtual Vector3 | CalculateConstrainOffset (Vector2 min, Vector2 max) |
| Calculate the offset needed to be constrained within the panel's bounds. More... | |
| bool | ConstrainTargetToBounds (Transform target, ref Bounds targetBounds, bool immediate) |
| Constrain the current target position to be within panel bounds. More... | |
| bool | ConstrainTargetToBounds (Transform target, bool immediate) |
| Constrain the specified target to be within the panel's bounds. More... | |
| Vector2 | GetWindowSize () |
| Get the size of the game window in pixels. More... | |
| Vector2 | GetViewSize () |
| Panel's size – which is either the clipping rect, or the screen dimensions. More... | |
| Public Member Functions inherited from UIRect | |
| void | Update () |
| Rectangles need to update in a specific order – parents before children. More... | |
| void | UpdateAnchors () |
| Manually update anchored sides. More... | |
| void | SetAnchor (Transform t) |
| Anchor this rectangle to the specified transform. More... | |
| void | SetAnchor (GameObject go) |
| Anchor this rectangle to the specified transform. More... | |
| void | SetAnchor (GameObject go, int left, int bottom, int right, int top) |
| Anchor this rectangle to the specified transform. More... | |
| void | ResetAnchors () |
| Ensure that all rect references are set correctly on the anchors. More... | |
| void | ResetAndUpdateAnchors () |
| Convenience method that resets and updates the anchors, all at once. More... | |
Static Public Member Functions | |
| static int | CompareFunc (UIPanel a, UIPanel b) |
| Function that can be used to depth-sort panels. More... | |
| static UIPanel | Find (Transform trans) |
| Find the UIPanel responsible for handling the specified transform. More... | |
| static UIPanel | Find (Transform trans, bool createIfMissing) |
| Find the UIPanel responsible for handling the specified transform. More... | |
| static UIPanel | Find (Transform trans, bool createIfMissing, int layer) |
| Find the UIPanel responsible for handling the specified transform. More... | |
Public Attributes | |
| OnGeometryUpdated | onGeometryUpdated |
| Notification triggered when the panel's geometry get rebuilt. More... | |
| bool | showInPanelTool = true |
| Whether this panel will show up in the panel tool (set this to 'false' for dynamically created temporary panels) More... | |
| bool | generateNormals = false |
| Whether normals and tangents will be generated for all meshes More... | |
| bool | widgetsAreStatic = false |
| Whether widgets drawn by this panel are static (won't move). More... | |
| bool | cullWhileDragging = true |
| Whether widgets will be culled while the panel is being dragged. More... | |
| bool | alwaysOnScreen = false |
| Optimization flag. More... | |
| bool | anchorOffset = false |
| By default, non-clipped panels use the camera's bounds, and the panel's position has no effect. More... | |
| bool | softBorderPadding = true |
| Whether the soft border will be used as padding. More... | |
| RenderQueue | renderQueue = RenderQueue.Automatic |
| By default all panels manage render queues of their draw calls themselves by incrementing them so that the geometry is drawn in the proper order. More... | |
| int | startingRenderQueue = 3000 |
| Render queue used by the panel. More... | |
| List< UIWidget > | widgets = new List<UIWidget>() |
| List of widgets managed by this panel. More... | |
| List< UIDrawCall > | drawCalls = new List<UIDrawCall>() |
| List of draw calls created by this panel. More... | |
| Matrix4x4 | worldToLocal = Matrix4x4.identity |
| Matrix that will transform the specified world coordinates to relative-to-panel coordinates. More... | |
| Vector4 | drawCallClipRange = new Vector4(0f, 0f, 1f, 1f) |
| Cached clip range passed to the draw call's shader. More... | |
| OnClippingMoved | onClipMove |
| Event callback that's triggered when the panel's clip region gets moved. More... | |
| Public Attributes inherited from UIRect | |
| AnchorPoint | leftAnchor = new AnchorPoint() |
| Left side anchor. More... | |
| AnchorPoint | rightAnchor = new AnchorPoint(1f) |
| Right side anchor. More... | |
| AnchorPoint | bottomAnchor = new AnchorPoint() |
| Bottom side anchor. More... | |
| AnchorPoint | topAnchor = new AnchorPoint(1f) |
| Top side anchor. More... | |
| AnchorUpdate | updateAnchors = AnchorUpdate.OnUpdate |
| Whether anchors will be recalculated on every update. More... | |
| float | finalAlpha = 1f |
| Final calculated alpha. More... | |
Static Public Attributes | |
| static List< UIPanel > | list = new List<UIPanel>() |
| List of active panels. More... | |
Protected Member Functions | |
| override void | OnStart () |
| Layer is used to ensure that if it changes, widgets get moved as well. More... | |
| override void | OnEnable () |
| Reset the frame IDs. More... | |
| override void | OnInit () |
| Mark all widgets as having been changed so the draw calls get re-created. More... | |
| override void | OnDisable () |
| Destroy all draw calls we've created when this script gets disabled. More... | |
| override void | OnAnchor () |
| Update the edges after the anchors have been updated. More... | |
| Protected Member Functions inherited from UIRect | |
| Vector3 | GetLocalPos (AnchorPoint ac, Transform trans) |
| Helper function that gets the specified anchor's position relative to the chosen transform. More... | |
| void | Start () |
| Set anchor rect references on start. More... | |
| virtual void | OnUpdate () |
| Abstract update functionality, ensured to happen after the targeting anchors have been updated. More... | |
Properties | |
| static int | nextUnusedDepth [get] |
| Helper property that returns the first unused depth value. More... | |
| override bool | canBeAnchored [get] |
| Whether the rectangle can be anchored. More... | |
| override float | alpha [get, set] |
| Panel's alpha affects everything drawn by the panel. More... | |
| int | depth [get, set] |
| Panels can have their own depth value that will change the order with which everything they manage gets drawn. More... | |
| int | sortingOrder [get, set] |
| Sorting order value for the panel's draw calls, to be used with Unity's 2D system. More... | |
| float | width [get] |
| Panel's width in pixels. More... | |
| float | height [get] |
| Panel's height in pixels. More... | |
| bool | halfPixelOffset [get] |
| Whether the panel's drawn geometry needs to be offset by a half-pixel. More... | |
| bool | usedForUI [get] |
| Whether the camera is used to draw UI geometry. More... | |
| Vector3 | drawCallOffset [get] |
| Directx9 pixel offset, used for drawing. More... | |
| UIDrawCall.Clipping | clipping [get, set] |
| Clipping method used by all draw calls. More... | |
| UIPanel | parentPanel [get] |
| Reference to the parent panel, if any. More... | |
| int | clipCount [get] |
| Number of times the panel's contents get clipped. More... | |
| bool | hasClipping [get] |
| Whether the panel will actually perform clipping of children. More... | |
| bool | hasCumulativeClipping [get] |
| Whether the panel will actually perform clipping of children. More... | |
| bool | clipsChildren [get] |
| Vector2 | clipOffset [get, set] |
| Clipping area offset used to make it possible to move clipped panels (scroll views) efficiently. More... | |
| Texture2D | clipTexture [get, set] |
| Texture used to clip the region. More... | |
| Vector4 | clipRange [get, set] |
| Clipping position (XY) and size (ZW). More... | |
| Vector4 | baseClipRegion [get, set] |
| Clipping position (XY) and size (ZW). More... | |
| Vector4 | finalClipRegion [get] |
| Final clipping region after the offset has been taken into consideration. More... | |
| Vector2 | clipSoftness [get, set] |
| Clipping softness is used if the clipped style is set to "Soft". More... | |
| override Vector3[] | localCorners [get] |
| Local-space corners of the panel's clipping rectangle. More... | |
| override Vector3[] | worldCorners [get] |
| World-space corners of the panel's clipping rectangle. More... | |
| Properties inherited from UIRect | |
| GameObject | cachedGameObject [get] |
| Game object gets cached for speed. More... | |
| Transform | cachedTransform [get] |
| Transform gets cached for speed. More... | |
| Camera | anchorCamera [get] |
| Camera used by anchors. More... | |
| bool | isFullyAnchored [get] |
| Whether the rectangle is currently anchored fully on all sides. More... | |
| virtual bool | isAnchoredHorizontally [get] |
| Whether the rectangle is anchored horizontally. More... | |
| virtual bool | isAnchoredVertically [get] |
| Whether the rectangle is anchored vertically. More... | |
| virtual bool | canBeAnchored [get] |
| Whether the rectangle can be anchored. More... | |
| UIRect | parent [get] |
| Get the rectangle's parent, if any. More... | |
| UIRoot | root [get] |
| Get the root object, if any. More... | |
| bool | isAnchored [get] |
| Returns 'true' if the widget is currently anchored on any side. More... | |
| abstract float | alpha [get, set] |
| Local alpha, not relative to anything. More... | |
| abstract Vector3[] | localCorners [get] |
| Local-space corners of the UI rectangle. More... | |
| abstract Vector3[] | worldCorners [get] |
| World-space corners of the UI rectangle. More... | |
| float | cameraRayDistance [get] |
| Helper function that returns the distance to the camera's directional vector hitting the panel's plane. More... | |
Additional Inherited Members | |
| Protected Attributes inherited from UIRect | |
| GameObject | mGo |
| Transform | mTrans |
| BetterList< UIRect > | mChildren = new BetterList<UIRect>() |
| bool | mChanged = true |
| bool | mStarted = false |
| bool | mParentFound = false |
| Camera | mCam |
| Static Protected Attributes inherited from UIRect | |
| static Vector3[] | mSides = new Vector3[4] |
UI Panel is responsible for collecting, sorting and updating widgets in addition to generating widgets' geometry.
| enum UIPanel.RenderQueue |
| void UIPanel.AddWidget | ( | UIWidget | w | ) |
Make the following widget be managed by the panel.
| bool UIPanel.Affects | ( | UIWidget | w | ) |
Whether the specified widget is going to be affected by this panel in any way.
|
virtual |
Calculate the offset needed to be constrained within the panel's bounds.
|
virtual |
Widget's final alpha, after taking the panel's alpha into account.
Implements UIRect.
Function that can be used to depth-sort panels.
| bool UIPanel.ConstrainTargetToBounds | ( | Transform | target, |
| ref Bounds | targetBounds, | ||
| bool | immediate | ||
| ) |
Constrain the current target position to be within panel bounds.
| bool UIPanel.ConstrainTargetToBounds | ( | Transform | target, |
| bool | immediate | ||
| ) |
Constrain the specified target to be within the panel's bounds.
|
static |
Find the UIPanel responsible for handling the specified transform.
|
static |
Find the UIPanel responsible for handling the specified transform.
|
static |
Find the UIPanel responsible for handling the specified transform.
| UIDrawCall UIPanel.FindDrawCall | ( | UIWidget | w | ) |
Insert the specified widget into one of the existing draw calls if possible.
If it's not possible, and a new draw call is required, 'null' is returned because draw call creation is a delayed operation.
|
virtual |
Get the sides of the rectangle relative to the specified transform.
The order is left, top, right, bottom.
Reimplemented from UIRect.
| Vector2 UIPanel.GetViewSize | ( | ) |
Panel's size – which is either the clipping rect, or the screen dimensions.
| Vector2 UIPanel.GetWindowSize | ( | ) |
Get the size of the game window in pixels.
|
virtual |
Invalidating the panel should reset its alpha.
Reimplemented from UIRect.
| bool UIPanel.IsVisible | ( | Vector3 | a, |
| Vector3 | b, | ||
| Vector3 | c, | ||
| Vector3 | d | ||
| ) |
Returns whether the specified rectangle is visible by the panel.
The coordinates must be in world space.
| bool UIPanel.IsVisible | ( | Vector3 | worldPos | ) |
Returns whether the specified world position is within the panel's bounds determined by the clipping rect.
| bool UIPanel.IsVisible | ( | UIWidget | w | ) |
Returns whether the specified widget is visible by the panel.
|
protectedvirtual |
Update the edges after the anchors have been updated.
Implements UIRect.
| delegate void UIPanel.OnClippingMoved | ( | UIPanel | panel | ) |
|
protectedvirtual |
Destroy all draw calls we've created when this script gets disabled.
Reimplemented from UIRect.
|
protectedvirtual |
Reset the frame IDs.
Reimplemented from UIRect.
| delegate void UIPanel.OnGeometryUpdated | ( | ) |
|
protectedvirtual |
Mark all widgets as having been changed so the draw calls get re-created.
Reimplemented from UIRect.
|
protectedvirtual |
Layer is used to ensure that if it changes, widgets get moved as well.
Implements UIRect.
|
virtual |
Find the parent panel, if we have one.
Reimplemented from UIRect.
| void UIPanel.RebuildAllDrawCalls | ( | ) |
Causes all draw calls to be re-created on the next update.
| void UIPanel.Refresh | ( | ) |
Immediately refresh the panel.
| void UIPanel.RemoveWidget | ( | UIWidget | w | ) |
Remove the widget from its current draw call, invalidating everything as needed.
| void UIPanel.SetDirty | ( | ) |
Invalidate the panel's draw calls, forcing them to be rebuilt on the next update.
This call also affects all children.
|
virtual |
Set the panel's rectangle.
Implements UIRect.
| void UIPanel.SortWidgets | ( | ) |
Immediately sort all child widgets.
| bool UIPanel.alwaysOnScreen = false |
Optimization flag.
Makes the assumption that the panel's geometry will always be on screen and the bounds don't need to be re-calculated.
| bool UIPanel.anchorOffset = false |
By default, non-clipped panels use the camera's bounds, and the panel's position has no effect.
If you want the panel's position to actually be used with anchors, set this field to 'true'.
| bool UIPanel.cullWhileDragging = true |
Whether widgets will be culled while the panel is being dragged.
Having this on improves performance, but turning it off will reduce garbage collection.
| Vector4 UIPanel.drawCallClipRange = new Vector4(0f, 0f, 1f, 1f) |
Cached clip range passed to the draw call's shader.
| List<UIDrawCall> UIPanel.drawCalls = new List<UIDrawCall>() |
List of draw calls created by this panel.
Do not attempt to modify this list yourself.
| bool UIPanel.generateNormals = false |
Whether normals and tangents will be generated for all meshes
| OnClippingMoved UIPanel.onClipMove |
Event callback that's triggered when the panel's clip region gets moved.
| OnGeometryUpdated UIPanel.onGeometryUpdated |
Notification triggered when the panel's geometry get rebuilt.
It's mainly here for debugging purposes.
| RenderQueue UIPanel.renderQueue = RenderQueue.Automatic |
By default all panels manage render queues of their draw calls themselves by incrementing them so that the geometry is drawn in the proper order.
You can alter this behaviour.
| bool UIPanel.showInPanelTool = true |
Whether this panel will show up in the panel tool (set this to 'false' for dynamically created temporary panels)
| bool UIPanel.softBorderPadding = true |
Whether the soft border will be used as padding.
| int UIPanel.startingRenderQueue = 3000 |
Render queue used by the panel.
The default value of '3000' is the equivalent of "Transparent". This property is only used if 'renderQueue' is set to something other than "Automatic".
List of widgets managed by this panel.
Do not attempt to modify this list yourself.
| bool UIPanel.widgetsAreStatic = false |
Whether widgets drawn by this panel are static (won't move).
This will improve performance.
| Matrix4x4 UIPanel.worldToLocal = Matrix4x4.identity |
Matrix that will transform the specified world coordinates to relative-to-panel coordinates.
|
getset |
Panel's alpha affects everything drawn by the panel.
|
getset |
Clipping position (XY) and size (ZW).
Note that you should not be modifying this property at run-time to reposition the clipping. Adjust clipOffset instead.
|
get |
Whether the rectangle can be anchored.
|
get |
Number of times the panel's contents get clipped.
|
getset |
Clipping area offset used to make it possible to move clipped panels (scroll views) efficiently.
Scroll views move by adjusting the clip offset by one value, and the transform position by the inverse. This makes it possible to not have to rebuild the geometry, greatly improving performance.
|
getset |
Clipping method used by all draw calls.
|
getset |
Clipping position (XY) and size (ZW).
Note that you should not be modifying this property at run-time to reposition the clipping. Adjust clipOffset instead.
|
get |
|
getset |
Clipping softness is used if the clipped style is set to "Soft".
|
getset |
Texture used to clip the region.
|
getset |
Panels can have their own depth value that will change the order with which everything they manage gets drawn.
|
get |
Directx9 pixel offset, used for drawing.
|
get |
Final clipping region after the offset has been taken into consideration.
XY = center, ZW = size.
|
get |
Whether the panel's drawn geometry needs to be offset by a half-pixel.
|
get |
Whether the panel will actually perform clipping of children.
|
get |
Whether the panel will actually perform clipping of children.
|
get |
Panel's height in pixels.
|
get |
Local-space corners of the panel's clipping rectangle.
The order is bottom-left, top-left, top-right, bottom-right.
|
staticget |
Helper property that returns the first unused depth value.
|
get |
Reference to the parent panel, if any.
|
getset |
Sorting order value for the panel's draw calls, to be used with Unity's 2D system.
|
get |
Whether the camera is used to draw UI geometry.
|
get |
Panel's width in pixels.
|
get |
World-space corners of the panel's clipping rectangle.
The order is bottom-left, top-left, top-right, bottom-right.


| {{par.type.id}} |
|
| {{par.type.id}} | {{par.id}} |
|
| {{item.syntax.return.id}} |
|
The page you requested does not exist. Perhaps you were looking for something else...


iOS Project
32 TasksWeb Application
124 Tasks| Due date | Title | Status | Assignee | |
|---|---|---|---|---|
|
|
|
BACKLOG
|
Alejandro Wells
|
|
|
|
|
IN PROGRESS
|
Lenora Sandoval
|
|
|
|
|
DONE
|
Calvin Garett
|
|
|
|
|
BACKLOG
|
Florence Guzman
|
|


The actual amount of range that you experience will vary based on your particular use conditions. See how particular use conditions may affect your range in our simulation model.
Vehicle range may vary depending on the vehicle configuration, battery age and condition, driving style and operating, environmental and climate conditions.


|
Ubiquity
2.3.0
php rapid development framework
|
Represents a query condition. More...
Public Member Functions | |
| __construct ($condition=null, $firstPart=null, $params=null) | |
| addKeyValues ($keyValues, $classname, $separator=" AND ") | |
| setKeyValues ($values) | |
| addPart ($condition, $value) | |
| addParts ($condition, $values) | |
| compileParts ($separator=" OR ") | |
| getCondition () | |
| getParams () | |
| hasParam ($value) | |
| countParts () | |
| setCondition ($condition) | |
| setParams ($params) | |
| limitOne () | |
Static Public Member Functions | |
| static | simple ($condition, $params) |
Private Member Functions | |
| addParams ($value) | |
| refactorParts () | |
| parseKey ($keyValues, $className) | |
Private Attributes | |
| $firstPart | |
| $condition | |
| $parts = [ ] | |
| $params | |
| $invertedParams = true | |
Represents a query condition.
Ubiquity$ConditionParser This class is part of Ubiquity
Definition at line 19 of file ConditionParser.php.
| __construct | ( | $condition = null , |
|
$firstPart = null , |
|||
$params = null |
|||
| ) |
Definition at line 26 of file ConditionParser.php.
| addKeyValues | ( | $keyValues, | |
| $classname, | |||
$separator = " AND " |
|||
| ) |
Definition at line 34 of file ConditionParser.php.
|
private |
Definition at line 67 of file ConditionParser.php.
| addPart | ( | $condition, | |
| $value | |||
| ) |
Definition at line 74 of file ConditionParser.php.
| addParts | ( | $condition, | |
| $values | |||
| ) |
Definition at line 82 of file ConditionParser.php.
| compileParts | ( | $separator = " OR " | ) |
Definition at line 90 of file ConditionParser.php.
| countParts | ( | ) |
Definition at line 165 of file ConditionParser.php.
| getCondition | ( | ) |
Definition at line 127 of file ConditionParser.php.
| getParams | ( | ) |
Definition at line 141 of file ConditionParser.php.
| hasParam | ( | $value | ) |
Definition at line 155 of file ConditionParser.php.
| limitOne | ( | ) |
Definition at line 190 of file ConditionParser.php.
|
private |
Definition at line 113 of file ConditionParser.php.
|
private |
Definition at line 104 of file ConditionParser.php.
| setCondition | ( | $condition | ) |
| string | $condition |
Definition at line 175 of file ConditionParser.php.
| setKeyValues | ( | $values | ) |
Definition at line 56 of file ConditionParser.php.
| setParams | ( | $params | ) |
| mixed | $params |
Definition at line 184 of file ConditionParser.php.
|
static |
Definition at line 198 of file ConditionParser.php.
|
private |
Definition at line 21 of file ConditionParser.php.
|
private |
Definition at line 20 of file ConditionParser.php.
|
private |
Definition at line 24 of file ConditionParser.php.
|
private |
Definition at line 23 of file ConditionParser.php.
|
private |
Definition at line 22 of file ConditionParser.php.


{{knowledge.school["main school/university name"]}}, {{knowledge.school["sub school/college name"]}}, {{knowledge.school.location}}
{{knowledge.school.degree[0].name}}
{{knowledge.school.degree[0]["date earned"]}}
Notable College Projects
{{project}}


About Us
We are a computer technology company that develops open source, closed source, and premium software. We also develop devices for everyday use, such as mobile devices, audio devices, and computer hardware components.
Join our discord serverOur Employees
George Luca:
Skills: Python, SQL, Backend development, and discord.py
Email<EMAIL_ADDRESS>Joseph Luca:
Skills: Electronics/Circuit Design, C#, JavaScript, Python, SQL, and Networking
Email<EMAIL_ADDRESS>Current Projects
JGL Watch:
An open source smart watch thinner than the apple watch.
JGL API:
An api made with the aiohttp.web framework to handle form applications and the entire backend of the JGL Forum.
JGL Bot:
A discord bot full of features such as reaction roles, moderation, giveaways, custom commands, reminders, and much more.
DPYS:
A Python library to make basic functionalities that every good bot needs easy to implement for beginners.


Which timebox and habits techniques did I try? I am familiar with meditation, mindfulness and flow concepts. Some of the other time management tools I have come across in similar form before. I have been attempting to bring a growth mindset into my days this week.
What did I find interesting? The Pomodoro Technique appealed to me as a very accessable/useful tool and I found the Paid to Exist "Counterintuitive" advice very interesting.
What worked for you? Meditation and mindfulness has been my friend for years. Some of the advice on Flow was useful in making that more accessable as a tool in my mind, particularly the differentiation from "Hyperfocus".
Which will I experiment further with? I am keen to try the Pomodoro technique as a regular tool, and the Fogg method. Whether or not I maintain these as specific tools/concepts or adapt them as I see fit I do not know. :)


This page still gives me problems in Chrome. I have better luck with Opera
Unaffiliated with any campaign. Made by volunteers with optimism for a better future


--- title: 'Elegance in functional programming' author: Mikko Marttila date: '2018-02-11' slug: elegance-in-functional-programming categories: - r tags: - advanced-r ---
As I wrote before, I’m going to be working through some problems that caught my interest in Hadley Wickham’s second edition of Advanced R. I’m starting off with the functional programming chapter, where an exercise that literally made me go “wow” was a major source of inspiration for me to start this blog – I’m talking about Exercise 2 in Section 9.5.1.
The problem itself revolves around the mathematical idea of fixed points of functions, i.e. points \(x\) such that \(f(x) = x\) for a given function \(f\). This bit of code pops up in one possible implementation of a computational method to find such points:1
try <- function(guess) {
if (good_enough(guess))
return(guess)
else
try(new(guess))
}
Isn’t that just great? Using functional programming coupled with meaningful names, we can essentially write out the idea of iteration in a block of fully functioning code that reads almost like prose.
Now, to be clear, the snippet above is clearly not the complete picture, nor the solution for the problem – but it’s the part that really made me stop and think, or “pause and ponder”2, if you will.
My intention was to go through the fixed point algorithm problem more thoroughly already in this post, but on second thought, I think I’ll leave it for later. The beautiful function presented here deserves the highlight of a post of it’s own, don’t you think?
The implementation was presented as a Lisp function in Harold Abelson’s Structure and Interpretation of Computer Programs (1996). Here, I’ve just adapted it to the equivalent R code.↩
A phrase often used on Grant Sanderson’s 3Blue1Brown YouTube channel, where he publishes fantastic videos visualizing abstract mathematical concepts – highly recommended!↩


Baby Immunization
Why immunize your baby?
To make their immune system fortified against agents that may cause a disease.
Why store your baby immunization records safely?
To have an easy time in following the whole immunization process.
What we do:
*Help mothers store their baby immunization records online.
*Display a list of the immunization schedule.


Japan seizes record 400kg of cocaine at port
TOKYO: Japanese authorities have seized a record-breaking 400kg of cocaine worth an estimated US$73 million in a bust at a port in the city of Kobe, a customs spokesman said Friday (Nov 8).
The discovery in the western city was made last month but came to light on Friday, with officials saying they could not provide additional details because the investigation was ongoing.
"This is record-breaking, in terms of volume" for a cocaine bust, the spokesman told AFP.
It far exceeds the previous record set just months earlier in August, when authorities seized 177kg of cocaine at another port, in central Japan's Aichi prefecture.
It was unclear yet where the cocaine came from, and Kyodo News agency, citing unnamed investigative sources, said the drugs may have been sent to Kobe by mistake.
Japan has strict drug laws and users face severe public opprobrium if caught.
Drug use and possession by even moderately famous people, including television actors and little-known athletes, can make national headlines for days.
Experts warn however that casual drug use among young people is becoming a growing problem.
Drug sales are a major financial pillar for Japanese organised crimes, including the infamous yakuza.


I am trying Fotorama and I am experiencing a problem. Sometimes, thumbnails and images do no load. It happens when I click a link to open a page, hit the browser back button and then click the same link to open the page again. — Cassius
I am trying Fotorama and I am experiencing a problem. Sometimes, thumbnails and images do no load. It happens when I click a link to open a page, hit the browser back button and then click the same link to open the page again.


Overview
This document outlines the following concepts:
- Users
- Security Roles
- Permissions
User Manager
User Manager allows you to:
- Manage User accounts for your Company
- Organize Users by Security Roles
- Determine the actions that can be done with Permissions
Users
A User represents an account that can be used to perform actions on your data within iQmetrix APIs.
Permissions
Permissions are the building blocks of Security Roles and represent the ability to perform an action within iQmetrix APIs.
Users and Permissions
Users never get Permissions directly.
Instead, a User is assigned one or more Security Roles which contain Permissions. This assignment is also associated with an Entity, which allows for very specific SecurityRole assignments.
The only way to revoke a User’s access is to change a Security Role or remove a Permission from a Security Role.
Permissions are Atomic
A Permission will never overrule another Permission.
For example, the readcustomerresources
(View Customers) Permission enables a User to retrieve a Customer and the managecustomerresources
(Edit Customers) Permissions enables the user to update a customer. Both Permissions are required to perform both requests.
Permissions are Positive
Assigning a Permission to a Security Role always grants an action, never denies.
For example, you would never assign a “Cannot View Customers” Permission. Instead, you would unassign the readcustomerresources
(View Customers) Permission.
Restricted Permissions
Some Permissions are intended for specific scenarios and are Restricted by iQmetix.
If you require access to a Restricted Permission, contact Support.
Security Roles
A Security Role represents the relationship between a User and a set of Permissions.
Security Roles allow you to create custom Permission sets that define what Users can do.
Stock Security Roles
All entities with Users come with a set of stock Security Roles, generated for the convenience of administrators. These stock Security Roles have Permissions that represent the needs of the typical User.
- Dashboard Reporting
- Marketer
- Marketing Admin
- Store Manager
- System Admin
You are free to modify stock Security Roles however you wish.
Users and Security Roles
Users can be assigned a Security Role at any level in the Catalog.
As an example, we will use the fictional Company Westeros.
Westeros has recently opened a retail store in Edmonton and has promoted Sam Smith, a Store Manager for their Calgary store, to Regional Manager of Alberta.
Until a new Store Manager for Calgary is hired, Sam divides his time between being a Regional Manager for Alberta and a Store Manager for Calgary.
To accomplish the scenario above, we use the Company Tree, User Manager and Security Roles APIs to make Sam Smith a Regional Manager for Alberta and a Store Manager for Calgary.
As Sam Smith does not have a specified Security Role with Edmonton, the Security Role is passed down or inherited from parent to child and Sam acquires a Regional Manager Security Role for Alberta and Edmonton.
Platform vs RQ
The equivalent of Users, Security Roles and Permissions in User Manager are listed in the below table,
| Platform | RQ |
|---|---|
| Users | Employees |
| Security Roles (UM) | Security Roles (RQ) |
| Permissions | Security Screens and Security Levels |
To avoid confusion, Security Roles in RQ will be listed as “Security Roles (RQ)” and Security Roles in User Manager will be listed as “Security Roles (UM)”.
Users vs Employees
Users…
- Represent accounts that can be used to perform actions on your data within iQmetrix APIs
- Can have multiple Security Roles (UM) at any level in the Company Tree, see Catalog
Employees…
- Represent accounts that can be used to access your data within RQ
- Can only have a single Security Role (RQ)
To learn more about Employees, see Employees Console.
Security Roles (UM) vs Security Roles (RQ)
Security Roles (UM)…
- Represent relationships between Users and a set of Permissions.
- Span the entire iQmetrix ecosystem
- Are made up of Permissions
- Are Assigned to Users
- Have a set of assigned Permissions
Security Roles (RQ)…
- Represent relationships between Employees and Security Screens
- Exist only within RQ
- Are made up of Security Levels and Security Screens
- Are assigned to Employees
- Have Security Levels for every Security Screen
To learn more about Security Roles (RQ), see Security Role Setup.
Permissions vs Security Screens and Security Levels
Permissions…
- Represent the ability to perform a single action or a set of logically-grouped actions within iQmetrix APIs
- Grant access by assignment to Security Roles (UM)
Security Screens…
- Represent access to features in RQ
- Are made up of Security Levels on a scale, often from No Access to Full Access
- Grant or deny access by changing the Security Level for a Security Screen
To learn more about Security Screens, see Security Role Setup.


ORGANIZATION AGREEMENT FOR PHARMANET USE
BETWEEN:
HIS MAJESTY THE KING IN RIGHT OF THE PROVINCE OF BRITISH COLUMBIA, as represented by the Minister of Health
(the "Province").
AND:
{{organization_name}} ("Organization")
WHEREAS:
-
The Province owns and is responsible for the operation of PharmaNet, the province-wide network that links
pharmacies to a central data system. Every prescription dispensed in community pharmacies in British
Columbia is entered into PharmaNet.
-
PharmaNet contains highly sensitive confidential information, including personal information, and it is
in the public interest to ensure that appropriate measures are in place to protect the confidentiality
and integrity of such information. All access to and use of PharmaNet and PharmaNet Data is subject to
the Act and other applicable law.
-
The Province permits Authorized Users to access PharmaNet to provide health services to, or to facilitate
the care of, the individual whose personal information is being accessed.
-
Organization is a service provider to HealthLink BC, the Province’s self-care program providing health
information and advice to British Columbia through integrated print, web, and telephony channels to help
the public make better decisions about their health, and provides Services to the Province in accordance
with the Service Contract,
-
Pharmacists at Organization require access to PharmaNet so Organization can provide the Services in
accordance with the Service Contract.
-
This Agreement sets out the terms by which Organization may permit Authorized Users to access PharmaNet
at the Site(s) operated by Organization.
NOW THEREFORE in consideration of the promises and the covenants, agreements, representations
and warranties set out in this Agreement (the receipt and sufficiency of which is hereby acknowledged by each
party), the parties agree as follows:
ARTICLE 1 – INTERPRETATION
-
-
In this Agreement, unless the context otherwise requires, the following definitions will apply:
-
"Act" means the Pharmaceutical Services Act;
-
"Approved SSO" means, in relation to a Site, the software support organization
identified in section 1 of the Site Request that provides Organization with the SSO-Provided Technology
used at the Site;
-
"Associated Technology" means, in relation to a Site, any information technology
hardware, software or services used at the Site, other than the SSO-Provided Technology, that is in any way
used in connection with Site Access or any PharmaNet Data;
-
"Authorized User" means an individual who is granted access to PharmaNet by the
Province and who is:
-
an employee or independent contractor of Organization, or
-
if Organization is an individual, the Organization;
-
"Information Management Regulation" means the
Information Management Regulation, B.C. Reg. 74/2015;
-
"PharmaNet" means PharmaNet as continued under section 2 of the
Information Management Regulation;
-
"PharmaNet Data" includes any records or information contained in PharmaNet
and any records or information in the custody, control or possession of Organization or any Authorized User
as the result of any Site Access;
-
"Regulated User" means an Authorized User described in subsections 4 (2) to (4)
of the Information Management Regulation;
-
"Service Contract" means the contract for services between the Province and
Organization, contract file number 2021-075, dated November 1, 2020, as amended from time to time by the
parties in accordance with its terms;
-
"Signing Authority" means the individual identified by Organization as the
"Signing Authority" for a Site, with the associated contact information, as set out in section 2
of the Site Request;
-
"Site" means a licensed community pharmacy premises operated by Organization
and located in British Columbia that:
-
is the subject of a Site Request submitted to the Province, and
-
has been approved for Site Access by the Province in writing
-
"Site Access" means any access to or use of PharmaNet at a Site as permitted by
the Province;
-
"Site Request" means, in relation to a Site, the information contained in the
PharmaNet access request form submitted to the Province by the Organization, requesting PharmaNet access at
the Site, as such information is updated by the Organization from time to time in accordance with
section 2.2;
-
"SSO-Provided Technology" means any information technology hardware, software or
services provided to Organization by an Approved SSO for the purpose of Site Access;
-
Unless otherwise specified, a reference to a statute or regulation by name means a statute or regulation of
British Columbia of that name, as amended or replaced from time to time, and includes any enactments made
under the authority of that statute or regulation.
-
The following are the Schedules attached to and incorporated into this Agreement:
-
Schedule A – Specific Privacy and Security Measures
-
The main body of this Agreement, the Schedules, and any documents incorporated by reference into this
Agreement
are to be interpreted so that all of the provisions are given as full effect as possible. In the event of a
conflict, unless expressly stated to the contrary, the main body of the Agreement will prevail over the
Schedules, which will prevail over any document incorporated by reference.
-
For greater certainty, nothing in this Agreement is intended to modify or otherwise limit the applicability of
the privacy, security or confidentiality obligations agreed to by the Organization in the Service Contract.
ARTICLE 2 – REPRESENTATIONS AND WARRANTIES
-
-
Organization represents and warrants to the Province, as of the date of this Agreement and throughout its
term, that:
-
the information contained in the Site Request for each Site is true and correct;
-
if Organization is not an individual:
-
Organization has the power and capacity to enter into this Agreement and to comply with its terms;
-
all necessary corporate or other proceedings have been taken to authorize the execution and delivery of
this Agreement by, or on behalf of, Organization; and
-
this Agreement has been legally and properly executed by, or on behalf of, the Organization and is
legally binding upon and enforceable against Organization in accordance with its terms.
-
Organization must notify the Province at least seven (7) days in advance of any change to the information
contained in a Site Request, including any change to a Site’s status, location, normal operating hours,
Approved SSO, or the name and contact information of the Signing Authority or any of the other specific
roles set out in the Site Request. Such notices must be submitted to the Province in the form and manner
directed by the Province in its published instructions regarding the submission of updated Site Request
information, as such instructions may be updated from time to time by the Province.
ARTICLE 3 – SITE ACCESS REQUIREMENTS
-
-
Organization must comply with the Act and all applicable law.
-
Organization must submit a Site Request to the Province for each physical location where it intends to provide
Site Access, and must only provide Site Access from Sites approved in writing by the Province and only as
authorized by the Province.
-
Organization must only provide Site Access using SSO-Provided Technology.
-
Unless otherwise authorized by the Province in writing, Organization must at all times use the secure network
or security technology that the Province certifies or makes available to Organization for the purpose of Site
Access. The use of any such network or technology by Organization may be subject to terms and conditions of
use, including acceptable use policies, established by the Province and communicated to Organization from time
to time in writing (including through this Agreement), and Organization must comply with all such terms and
conditions of use.
-
Organization must only make Site Access available to the following individuals:
-
Authorized Users when they are physically located at a Site;
-
Representatives of an Approved SSO for technical support purposes, in accordance with section 6 of the
Information Management Regulation.
-
Organization must ensure that Authorized Users with Site Access:
-
only access PharmaNet to the extent necessary to provide Services in accordance with the Service Contract;
-
first complete any mandatory training program(s) that the Site’s Approved SSO or the Province makes
available in relation to PharmaNet;
-
access PharmaNet using their own separate login identifications and credentials, and do not share or have
multiple use of any such login identifications and credentials;
-
secure all devices, codes and credentials that enable access to PharmaNet against unauthorized use;
-
If notified by the Province that an Authorized User’s access to PharmaNet has been suspended or revoked,
Organization will immediately take any local measures necessary to remove the Authorized User’s Site Access.
Organization will only restore Site Access to a previously suspended or revoked Authorized User upon the
Province’s specific written direction.
-
For the purposes of this section:
-
"Responsible Authorized User" means, in relation to any PharmaNet Data, the
Regulated User by whom that data was obtained from PharmaNet; and
-
"Use" includes to collect, access, retain, use, de-identify, and disclose.
The PharmaNet Data disclosed under this Agreement is disclosed by the Province solely for the Use of the
Responsible Authorized User to whom it is disclosed.
Organization must not Use any PharmaNet Data, or permit any third party to Use PharmaNet Data, unless the
Responsible Authorized User has authorized such Use and it is otherwise permitted under the Act, applicable
law, and the limits and conditions imposed by the Province on the Responsible Authorized User.
Organization explicitly acknowledges that sections 24 and 25 of the Act apply to all PharmaNet Data.
This Agreement documents limits and conditions, set by the Minister in writing, that the Act requires
Organization and Authorized Users to comply with.
-
Organization must make all reasonable arrangements to protect PharmaNet Data against such risks as
unauthorized access, collection, use, modification, retention, disclosure or disposal, including by:
-
taking all reasonable physical, technical and operational measures necessary to ensure Site Access operates
in accordance with sections 3.1 to 3.9 above, and
-
complying with the requirements of Schedule A.
-
Organization must ensure that no Authorized User submits Claims on PharmaNet other than from a Site in respect
of which
a person is enrolled as a Provider.
ARTICLE 4 – NON-COMPLIANCE AND INVESTIGATIONS
-
-
Organization must promptly notify the Province, and provide particulars, if Organization does not comply, or
anticipates that it will be unable to comply, with the terms of this Agreement, or if Organization has
knowledge
of any circumstances, incidents or events which have or may jeopardize the security, confidentiality or
integrity of PharmaNet, including any attempt by any person to gain unauthorized access to PharmaNet or the
networks or equipment used to connect to PharmaNet or convey PharmaNet Data.
-
Organization must immediately investigate any suspected breaches of this Agreement and take all reasonable
steps
to prevent recurrences of any such breaches.
-
Organization must cooperate with any audits or investigations conducted by the Province (including any
independent auditor appointed by the Province) regarding compliance with this Agreement, including by
providing
access upon request to a Site and any associated facilities, networks, equipment, systems, books, records and
personnel for the purposes of such audit or investigation.
ARTICLE 5 – SITE TERMINATION
-
-
The Province may terminate all Site Access at a Site immediately, upon notice to the Signing Authority for
the Site, if:
-
the Approved SSO for the Site is no longer approved by the Province to provide information technology
hardware, software, or service in connection with PharmaNet, or
-
the Province determines that the SSO-Provided Technology or Associated Technology in use at the Site, or
any component thereof, is obsolete, unsupported, or otherwise poses an unacceptable security risk to
PharmaNet and Organization is unable or unwilling to remedy the problem within a time frame acceptable to
the Province.
-
As a security precaution, the Province may suspend Site Access at a Site after a period of inactivity. If Site
Access at a Site remains inactive for a period of 90 days or more, the Province may, immediately upon notice
to
the Signing Authority for the Site, terminate all further Site Access at the Site.
-
Organization must prevent all further Site Access at a Site immediately upon the Province’s termination, in
accordance with this Article 5 of Site Access at the Site.
ARTICLE 6 – TERM AND TERMINATION
-
-
The term of this Agreement begins on the date first noted above and continues until the earliest of:
-
the expiration or earlier termination of the term of the Service Contract; or
-
the date this Agreement is terminated in accordance with this Article 6.
-
Organization may terminate this Agreement at any time on notice to the Province.
-
The Province may terminate this Agreement immediately upon notice to Organization if Organization fails to
comply with any provision of this Agreement.
-
The Province may terminate this Agreement immediately upon notice to Organization in the event Organization no
longer operates any Sites where Site Access is permitted.
-
The Province may terminate this Agreement for any reason upon two (2) months advance notice to Organization.
-
Organization must prevent any further Site Access immediately upon expiration or termination of the term of
this Agreement.
ARTICLE 7 – DISCLAIMER AND INDEMNITY
-
-
The PharmaNet access and PharmaNet Data provided under this Agreement are provided "as is" without warranty of
any kind, whether express or implied. All implied warranties, including, without limitation, implied
warranties
of merchantability, fitness for a particular purpose, and non-infringement, are hereby expressly disclaimed.
The Province does not warrant the accuracy, completeness or reliability of the PharmaNet Data or the
availability of PharmaNet, or that access to or the operation of PharmaNet will function without error,
failure or interruption.
-
Under no circumstances will the Province be liable to any person or business entity for any direct, indirect,
special, incidental, consequential, or other damages based on any use of PharmaNet or the PharmaNet Data,
including without limitation any lost profits, business interruption, or loss of programs or information, even
if the Province has been specifically advised of the possibility of such damages.
ARTICLE 8 – GENERAL
-
-
Notice. Except where this Agreement expressly provides for another method
of delivery, any notice to be given to the Province must be in writing and mailed or emailed to:
Director, Information and PharmaNet Innovation
Ministry of Health
PO Box 9652, STN PROV GOVT
Victoria, BC V8W 9P4
<EMAIL_ADDRESS>Any notice to be given to a Signing Authority or the Organization will be in writing and emailed, mailed,
faxed or text-messaged to the Signing Authority (in the case of notice to a Signing Authority) or all Signing
Authorities (in the case of notice to the Organization). A Signing Authority may be required to click a URL
link or to log in to the Province’s "PRIME" system to receive the content of any such notice.
Any written notice from a party, if sent electronically, will be deemed to have been received 24 hours after
the time the notice was sent, or, if sent by mail, will be deemed to have been received 3 days (excluding
Saturdays, Sundays and statutory holidays) after the date the notice was sent.
-
Waiver. The failure of the Province at any time to insist on performance of
any provision of this Agreement by Organization is not a waiver of its right subsequently to insist on
performance of that or any other provision of this Agreement. A waiver of any provision or breach of this
Agreement is effective only if it is writing and signed by, or on behalf of, the waiving party.
-
Modification. No modification to this Agreement is effective unless it is
in writing and signed by, or on behalf of, the parties.
-
Governing Law. This Agreement will be governed by and will be construed
and interpreted in accordance with the laws of British Columbia and the laws of Canada applicable therein.
-
Survival. Sections 3.1, 3.8, 3.9, 4, 7 and any other provision of this
Agreement that expressly or by its nature continues after termination, shall survive termination of this
Agreement.
{{signature_block}}
SCHEDULE A – SPECIFIC PRIVACY AND SECURITY MEASURES
Organization must, in relation to each Site
-
secure all workstations and printers at the Site to prevent any viewing of PharmaNet Data by persons other than
Authorized Users;
-
implement all privacy and security measures specified in the following documents published by the Province, as
amended from time to time:
-
the PharmaNet Professional and Software Conformance Standards
https://www2.gov.bc.ca/gov/content/health/practitioner-professional-resources/software/conformance-standards
-
Office of the Chief Information Officer: "Submission for Technical Security Standard and High Level
Architecture for Wireless Local Area Network Connectivity"
https://www2.gov.bc.ca/gov/content/health/practitioner-professional-resources/system-access/requirements-for-wireless-access-to-pharmanet
-
ensure that a qualified technical support person is engaged to provide security support for the Site. This person
should be familiar with the Site’s network configurations, hardware and software, including all SSO-Provided
Technology and Associated Technology, and should be capable of understanding and adhering to the standards set
forth in this Agreement and Schedule. Note that any such qualified technical support person must not be permitted
by Organization to access or use PharmaNet in any manner, unless otherwise permitted under this Agreement;
-
establish and maintain documented privacy policies that detail how Organization will meet its privacy obligations
in relation to the Site;
-
establish breach reporting and response processes in relation to the Site;
-
detail expectations for privacy protection in contracts and service agreements as applicable at the Site;
-
regularly review the administrative, physical and technological safeguards at the Site;
-
establish and maintain a program for monitoring PharmaNet use at the Site, including by making appropriate
monitoring and reporting mechanisms available to Authorized Users for this purpose.


@(params: Map[String, Any]) @uk.gov.hmrc.hmrcemailrenderer.templates.helpers.html.template_main(params, "Fulfilment House Due Diligence Scheme registration cancelled"){
Your registration was cancelled on @{params("deregisterDate")}.
You will need to wait until tomorrow before you can submit a new application.
From the HMRC Fulfilment House Due Diligence Scheme
Do not reply to this email.
}


--- layout: page slide_id: 0 ---
The HotWeb'16 workshop is scheduled for Oct 24-25, 2016 and will be held at Washington D.C.
The Lehman Auditorium B1220, Science and Engineering Hall, George Washingtion University, 800 22nd Street Northwest,
Washington, DC 20052
The following are the nearby hotels to the conference location. The workshop does not reserve a block in any
hotel. Please reserve your hotel rooms soon since they are generally sold fast.
The Science and Engineering Hall is in the walking distance from Foggy Bottom-GWU metro station. (Blue, Orange and Silver Lines)


We love
Walk-ins
Our Services
*Prices listed are starting prices*
Cut
- Men
- Women
- Kids
- $22
- $33
- $16
Style
- Wash & Set
- Up do
- $22
- $55
Color
- Color & Cut
- Color Only
- Highlights
- Full
- Partial
- $80
- $68
- $120
- $80
Other Services
- Perm
- Keratin
- treatment
- Brazilian
- Blowout
- Wax
- $75
- $200
- $300
- $12
What our customers are saying
"The most welcoming salon filled with such beautiful people. Whether you need a barber, stylist, updo, cut, or color.
-Nicoletta
"It's like walking into a girls' day out each appointment. I love them and so will you!"
-Peg
"I have always gone here to get my hair cut.
-Heather
Visit us
- Phone:
- Address:
-<PHONE_NUMBER>
- 4341 Old William Penn Hwy
- Monroeville, PA 15146
Closed Sunday & Monday


Thanks for installing Landmarks
You may want to learn how to navigate via keyboard and set up keyboard shortcuts.
Your browser allows extensions to pre-set up to four keyboard shortcuts, but Landmarks provides more than this. At least one available keyboard shortcut is not set; you may wish to review them.
Landmarks was updated
-
Check out what's new.
-
Learn how to navigate via keyboard and set up keyboard shortcuts.
Your browser allows extensions to pre-set up to four keyboard shortcuts, but Landmarks provides more than this. At least one available keyboard shortcut is not set; you may wish to review them.
What's new?
This version, , is a bug-fix release. Here are some highlights from recent releases:
Optional sidebar for showing landmarks on Firefox and Opera.
Performance improvements.
DevTools panel for inspecting landmarks, and optionally showing information on DOM mutations and landmark scans.
For more details, consult the change log.
Toolbar pop-up
If landmarks are found on the page, the Landmarks button in the toolbar (which looks like an "L") will be badged with the number of landmarks found. You can use the pop-up as follows.
-
Activate the Landmarks toolbar button. A pop-up will appear. If landmarks are present on the page, they will be shown in a nested list, reflecting the structure of the landmarks on the page.
-
Activate a button in the list to move to that landmark. The landmark will be focused, and a border shown according to your border preferences.
-
To close the pop-up, press Escape, or click outside of the pop-up.
Border preferences
A border will be drawn around the landmarks as you navigate them. The border contains a label that displays the landmark’s type and name (if one was provided by the author of the page). You can customise various aspects of this in the extension’s preferences/options page. The available settings are:
-
If the border should be displayed, and for how long.
-
Momentary (default): the border remains visible for a short time, then disappears.
-
Persistent: the border remains visible at all times.
-
None: no border is drawn.
-
-
The border’s colour.
-
The font size used in the landmark label.
You can also get to the extension’s settings as follows.
-
Firefox: Menu ☰ → Add-ons → Extensions [on left-hand side, if not already activated] → Preferences [under Landmarks, then scroll down]
-
Chrome/Opera: Right-click on, or activate the context menu of, the Landmarks button in the toolbar → Options
Information for web authors, designers and developers
You can learn about why landmarks rock, and how easy they are to use on your site in the README on GitHub.
You can learn about this extension's support for the landmarks standards in the README on GitHub.
Inspecting landmarks in the DOM
A Developer Tools panel called “Landmarks” is also provided. This can be used in the same way as the pop-up above, but also allows you to visit each landmark element in the DOM inspector, using inspection buttons that are placed immediately after the button for each landmark.
This feature is primarily intended for web authors/developers and accessibility testers.
Landmarks extension development information
Check out the Development section of the README on GitHub.


2,000 people from more than 100 countries to be conferred with Irish citizenship today
by By Anne LuceySome 2,000 people from more than 100 countries are being conferred with Irish citizenship today in Killarney, with the largest single grouping from Poland followed by the UK.
The ceremonies take place at the Gleneagle Hotel Convention Centre which is now the venue for the foreseeable future for the conferring ceremonies.
Citizenship ceremonies were first introduced in 2011 in order to mark the occasion of the granting of citizenship in a dignified and solemn manner.
Since citizenship ceremonies were first introduced, there has been a total of 145 ceremonies, including today's ceremonies with people from over 180 countries receiving their certificates of naturalisation.
The Presiding Officer today is Retired High Court Judge Bryan McMahon..
The Minister for Justice and Equality, Charlie Flanagan, is also attending along with Minister of State, David Stanton.
To date, including minors, approximately 127,000 people have received Irish citizenship since 2011.
Top ten nationalities for Citizenship Ceremonies today:
1: Poland - 317
2: United Kingdom - 260
3: Romania - 184
4: India - 169
5: Nigeria - 97
6: Brazil - 74
7: Latvia - 67
8: Philippines - 51
9: United States Of America - 50
10: China (including Hong Kong) - 48
READ MORE
Stolen defibrillator found in Louth; One still missing in Wicklow


4.13 psb_spsm — Triangular System Solve
This subroutine computes the Triangular System Solve:
where:
-
x
- is the global dense matrix x:,:
-
y
- is the global dense matrix y:,:
-
T
- is the global sparse block triangular submatrix T
-
D
- is the scaling diagonal matrix.
call psb_spsm(alpha, t, x, beta, y, desc_a, info)
call psb_spsm(alpha, t, x, beta, y, desc_a, info, trans, unit, choice, diag, work)
|
|
| T, x, y, D, α, β | Subroutine |
|
|
| Short Precision Real | psb_spsm |
| Long Precision Real | psb_spsm |
| Short Precision Complex | psb_spsm |
| Long Precision Complex | psb_spsm |
|
|
| |
Table 13: Data types
-
Type:
- Synchronous.
-
On Entry
-
-
alpha
- the scalar α.
Scope: global
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 13.
-
t
- the global portion of the sparse matrix T.
Scope: local
Type: required
Intent: in.
Specified as: an object type specified in § 3.
-
x
- the local portion of global dense matrix x.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array or an object of type
psb_T_vect_type containing numbers of type specified in Table 13. The
rank of x must be the same of y.
-
beta
- the scalar β.
Scope: global
Type: required
Intent: in.
Specified as: a number of the data type indicated in Table 13.
-
y
- the local portion of global dense matrix y.
Scope: local
Type: required
Intent: inout.
Specified as: a rank one or two array or an object of type
psb_T_vect_type containing numbers of type specified in Table 13. The
rank of y must be the same of x.
-
desc_a
- contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: an object of type psb_desc_type.
-
trans
- specify with unitd the operation to perform.
-
trans = ’N’
- the operation is with no transposed matrix
-
trans = ’T’
- the operation is with transposed matrix.
-
trans = ’C’
- the operation is with conjugate transposed matrix.
Scope: global
Type: optional
Intent: in.
Default: trans = N
Specified as: a character variable.
-
unitd
- specify with trans the operation to perform.
-
unitd = ’U’
- the operation is with no scaling
-
unitd = ’L’
- the operation is with left scaling
-
unitd = ’R’
- the operation is with right scaling.
Scope: global
Type: optional
Intent: in.
Default: unitd = U
Specified as: a character variable.
-
choice
- specifies the update of overlap elements to be performed on exit:
-
- psb_none_
-
- psb_sum_
-
- psb_avg_
-
- psb_square_root_
Scope: global
Type: optional
Intent: in.
Default: psb_avg_
Specified as: an integer variable.
-
diag
- the diagonal scaling matrix.
Scope: local
Type: optional
Intent: in.
Default: diag(1) = 1(noscaling)
Specified as: a rank one array containing numbers of the type indicated in
Table 13.
-
work
- a work array.
Scope: local
Type: optional
Intent: inout.
Specified as: a rank one array of the same type of x with the TARGET
attribute.
-
On Return
-
-
y
- the local portion of global dense matrix y.
Scope: local
Type: required
Intent: inout.
Specified as: an array of rank one or two containing numbers of type specified
in Table 13.
-
info
- Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.


This is an EPICS areaDetector driver for the Eiger detector from Dectris. It has been tested on the Eiger 500K, 1M, 4M and 16M with the firmware version 1.6.4+. The driver communicates with the detector via its SIMPLON REST interface, so no library from Dectris is required. The images can pulled from the detector as HDF5 files, as a ZeroMQ stream or both. The files can be both saved to disk and passed to the areaDetector pipeline at the same time.
All trigger modes are supported, although Internal Enable mode seems to not be working properly. See Known Issues.
This driver inherits from ADDriver. It implements many of the parameters in asynNDArrayDriver.h and in ADArrayDriver.h. It also implements a number of parameters that are specific to the Eiger detector. The eigerDetector class documentation describes this class in detail.
This document does not attempt to explain the meaning of the Eiger-specific parameters, as they are explained in the SIMPLON API Reference and in the EIGER Detector Manual documents from Dectris. Sometimes it does, however, refer to those parameters as they are named in Dectris' documentation.
The SIMPLON API provides ways to query parameter limits, valid values for enums, error conditions, etc. The driver will clamp values to their minumum or maximum value if they are outside the acceptable range. Setting a parameter will immediately push its value to the detector.
This driver was built upon a multithreaded architecture. A combination of threads is used to simultaneously pull files from the detector, save them to disk and parse them into NDArrays. A dedicated thread is used to receive images in a ZeroMQ stream.
A few Eiger parameters are set at IOC initialization time and are expected to not change. Namely:
Some parameters are not relevant to the driver operation and as such are not exposed
initially by the driver as PVs. However, there is a mechanism to access other parameters
not created automatically by the driver by simply instantiating new records with
the appropriate drvInfo
string. Some of the PVs are created this way.
For example, the PV XPixelSize_RBV has the following drvInfo
:
EIG_DCD_x_pixel_size
For those parameters, the first four characters must be EIG_
. Then
the fifth character must be one of:
D
: Detector subsystemM
: Monitor subsystemF
: FileWriter subsystemS
: Stream subsystemThe sixth character determines if the parameter is a configuration or a status parameter:
C
: ConfigurationS
: StatusThe seventh character determines which asyn parameter type to use:
I
: Integer (asynParamInt32
)D
: Double (asynParamFloat64
)S
: String (asynParamOctet
)
The eighth character must be a _
, and the remaining characters are
the parameter's name according to the SIMPLON API Manual. Hence, for this example,
this PV will be accessing the parameter:
detector/api/<version>/config/x_pixel_size
There are four trigger modes available:
The total number of images generated by Internal and External Series modes is given by the product of the NumImages and NumTriggers PVs (nimages and ntriggers in Dectris terminology).
On both Internal and External Enable modes the total number of images generated is given solely by the NumTriggers PV (ntriggers). NumImages is set to 1 temporarily during the acquisition.
Triggers for Internal Enable mode are sent by processing the Trigger PV. The exposure for each individual image is given by the TriggerExposure PV and can change between triggers in the same acquisition. This mode is experimental as of firmware 1.5.0. See Known Issues.
On Internal Series and Internal Enable modes, if the ManualTrigger PV is set to YES, the triggers are not auto generated by the driver. Instead, they are sent by processing the Trigger PV. On Internal Enable mode the trigger carries an exposure value that can change for each trigger, which is set by the TriggerExposure PV. Note that the Internal Enable mode is experimental as of firmware 1.5.0, see Known Issues.
Data generated by the Eiger can be pulled from the detector in a number of ways. The detector has three modules (in Dectris' terminology) that make the results of the acquisition available in different ways. The FileWriter module writes the generated images to the detector disk as HDF5 files that consist of a master (header) file and a number of data files. The Stream module makes the images available as soon as they are captured as a ZeroMQ stream. The Monitor module produces TIFF images every so often to monitor how a long acquisition is progressing.
Data from the FileWriter or from the Stream mode can be parsed into NDArrays for the areaDetector pipeline. The actual source is selected with the DataSource PV. If DataSource is set to None, however, no data will be sent to the areaDetector pipeline but the detector will still be controllable via the areaDetector driver; third-party clients can then pull files or listen to the ZeroMQ stream independently of this driver.
The FileWriter module is activated when FWEnable is set to Yes. Files generated by the FileWriter have names according to the FWNamePattern PV. The default pattern is "series_$id", where $id is replaced by the Sequence ID of the acquisition. A master file is generated as soon as the detector is successfully armed. A number of data files follow. The number of data files generated depends on the total number of images of the acquisition and the FWNFilesPerImage PV.
For example, if TriggerMode is External Enable, NumImages is 60, NumTriggers is 2, FWNImagesPerFile is 100, Sequence ID for the acquisition is 1 and FWNamePattern is "series_$id", a total of three files will be generated:
The generated files will be downloaded either if DataSource is set to FileWriter or if SaveFiles is set to Yes. Files are downloaded as soon as they are available. To determine if a file is available the driver polls the detector at a nominal rate of 10Hz. While a file is being processed the next file available is downloaded in parallel. All files will remain on the detector disk unless FWAutoRemove is set to Yes.
When saving files to disk (SaveFiles = Yes) it is possible to set the file's owner, its group and its access permissions with FileOwner, FileOwnerGrp and FilePerms PVs. To be able to set arbitrary owners the IOC executable requires CAP_SETUID and CAP_SETGID capabilities, which can be given with the command:
sudo setcap cap_setuid,cap_setgid+ep eigerDetectorApp
All files on the detector disk can be deleted at once by processing the FWClear PV.
If the last data file of a series won't be full (e.g. series_1_data_000002.h5 with 20 images) then it will only appear on the detector disk after a disarm command (issued when the acquisition is stopped), which flushes the FileWriter buffer.
The Stream module is activated when StreamEnable is set to Yes. Data will then be available on the detector's tcp port 9999 as a ZMQ_PUSH socket. If DataSource is set to Stream, this driver opens a corresponding ZMQ_PULL socket and parses the incoming data as NDArrays. Otherwise a third-party client can listen on that socket for data. The format of the packets is specified in the Eiger SIMPLON API documentation.
The Monitor module is activated when MonitorEnable is set to Yes. Data will be available whenever the monitor module buffer is full (has one image available). This driver waits MonitorTimeout ms for data to be available. There is a rate-limit of 10Hz. Once downloaded, the TIFF image is parsed into areaDetector's NDArray on NDArrayAddr 1 (therefore, an independent NDArray stream).
A few parameters are available as metadata for the acquisition. These values are stored on the master file and sent as metadata in ZeroMQ stream, but otherwise don't affect the acquisition, with the exception of the Wavelength parameter, which sets Photon Energy accordingly.
The following table describes how the Eiger driver implements some of the standard driver parameters.
| Implementation of Parameters in asynNDArrayDriver.h and ADDriver.h, and EPICS Record Definitions in ADBase.template and NDFile.template | |||
| Parameter index variable | EPICS record name | Eiger Parameter | Description |
|---|---|---|---|
| ADTriggerMode |
$(P)$(R)TriggerMode $(P)$(R)TriggerMode_RBV |
detector/config/trigger_mode |
Sets the trigger mode for the detector. Options are:
|
| ADNumImages |
$(P)$(R)NumImages $(P)$(R)NumImages_RBV |
detector/config/nimages | Sets the number of images to take per trigger when on Internal Series or External Series mode. |
| ADAcquireTime |
$(P)$(R)AcquireTime $(P)$(R)AcquireTime_RBV |
detector/config/count_time | Sets the parameter "count_time", which is the exposure time for a single image on INTS or EXTS mode. |
| ADAcquirePeriod |
$(P)$(R)AcquirePeriod $(P)$(R)AcquirePeriod_RBV |
detector/config/frame_time | Sets the parameter "frame_time", which directly affects the frame rate of the detector. The resulting frame rate will be 1/AcquirePeriod. |
| NDDataType | $(P)$(R)DataType_RBV | The data type of the image data. If AcquireTime results in less than 50Hz, this will have the value UInt16, otherwise UInt32. | |
| ADTemperatureActual | $(P)$(R)TemperatureActual | detector/status/board_000/th0_temp | Reads the actual temperature of the detector. |
| ADMaxSizeX | $(P)$(R)MaxSizeX_RBV | Detector sensor size in the X direction. | |
| ADMaxSizeY | $(P)$(R)MaxSizeY_RBV | Detector sensor size in the Y direction. | |
| NDArraySizeX | $(P)$(R)ArraySizeX_RBV | detector/config/x_pixels_in_detector | Current detector sensor size in the X direction. This can change depending on the ROI Mode selected. |
| NDArraySizeY | $(P)$(R)ArraySizeY_RBV | detector/config/y_pixels_in_detector | Current detector sensor size in the Y direction. This can change depending on the ROI Mode selected. |
|
ADManufacturer ADModel |
$(P)$(R)Manufacturer_RBV $(P)$(R)Model_RBV |
detector/config/description | Reads the detector manufacturer (Dectris) and model (Eiger xx M). |
| ADSerialNumber | $(P)$(R)SerialNumber_RBV | detector/config/detector_number | Detector serial number |
| ADFirmwareVersion | $(P)$(R)FirmwareVersion_RBV | detector/config/software_version | Detector firmware version |
| NDDriverVersion | $(P)$(R)DriverVersion_RBV | This driver's version |
The Eiger driver implements the following parameters in addition to those in asynNDArrayDriver.h and ADDriver.h.
| Parameter Definitions in eigerDetector.cpp and EPICS Record Definitions in eiger.template | |||||||
| Parameter index variable | Eiger Parameter | asyn interface | Access | Description | drvInfo string | EPICS record name | EPICS record type |
|---|---|---|---|---|---|---|---|
| Detector Metadata | |||||||
| EigerDescription | detector/config/description | asynOctet | R/O | Detector's manufacturer and model | DESCRIPTION | Description_RBV | stringin |
| EigerSensorMaterial | detector/config/sensor_material | asynOctet | R/O | Detector's sensor material | EIG_DCD_sensor_material | SensorMaterial_RBV | stringin |
| EigerSensorThickness | detector/config/sensor_thickness | asynFloat64 | R/O | Detector's sensor thickness, in meters | EIG_DCD_sensor_thickness | SensorThickness_RBV | ai |
| EigerXPixelSize | detector/config/x_pixel_size | asynFloat64 | R/O | Detector's pixel size in the X direction, in meters | EIG_DCD_x_pixel_size | XPixelSize_RBV | ai |
| EigerYPixelSize | detector/config/y_pixel_size | asynFloat64 | R/O | Detector's pixel size in the Y direction, in meters | EIG_DCD_y_pixel_size | YPixelSize_RBV | ai |
| EigerDeadTime | detector/config/detector_readout_time | asynFloat64 | R/O | Detector's readout time (dead time) between frames. Changes with different Threshold Energies. | EIG_DCD_detector_readout_time | DeadTime_RBV | ai |
| Status parameters | |||||||
| EigerState | detector/status/state | asynOctet | R/O | State of the detector | STATE | State_RBV | stringin |
| EigerError | detector/status/error | asynOctet | R/O | List of parameters causing an error state | ERROR | Error_RBV | stringin |
| EigerDCUBufferFree | detector/status/builder/dcu_buffer_free | asynFloat64 | R/O | Percentage of the detector's internal buffer that is free. Low values may indicate a problem. | DCU_BUF_FREE | DCUBufferFree_RBV | ai |
| EigerThTemp0 | detector/status/board_000/th0_temp | asynFloat64 | R/O | Temperature of the first module | TH_TEMP_0 | Temp0_RBV | ai |
| EigerThHumid0 | detector/status/board_000/th0_humidity | asynFloat64 | R/O | Humidity of the first module | TH_HUMID_0 | Humid0_RBV | ai |
|
EigerLink0 EigerLink1 EigerLink2 EigerLink3 |
detector/status/link_0 detector/status/link_1 detector/status/link_2 detector/status/link_3 |
asynInt32 | R/O | Status of the four links between the detector server and the head |
LINK_0 LINK_1 LINK_2 LINK_3 |
Link0_RBV Link1_RBV Link2_RBV Link3_RBV |
bi |
| FileWriter control | |||||||
| EigerFWEnable | filewriter/config/mode | asynInt32 | R/W | Enables or disables the FileWriter module | FW_ENABLE |
FWEnable FWEnable_RBV |
bo bi |
| EigerFWClear | filewriter/config/clear | asynInt32 | W/O | Writing to this PV clears *all* files on the detector server disk | CLEAR | FWClear | ao |
| EigerFWCompression | filewriter/config/compression_enabled | asynInt32 | R/W | Enables or disables LZ4 or BSLZ4 compression on the server side | COMPRESSION |
FWCompression FWCompression_RBV |
bo bi |
| EigerFWNamePattern | filewriter/config/name_patttern | asynOctet | R/W |
Name pattern for the generated HDF5 files. The pattern can be anything, but it must
contain the string '$id' in it. This string is replaced with the current sequence
id of the acquisition. The default is: "series_$id", which would generate the files:
|
NAME_PATTERN |
FWNamePattern FWNamePattern_RBV |
stringout stringin |
| EigerFWNImagesPerFile | filewriter/config/nimages_per_file | asynInt32 | R/W | Number of images per HDF5 data file | NIMAGES_PER_FILE |
FWNImgsPerFile FWNImgsPerFile_RBV |
ao ai |
| EigerFWAutoRemove | asynInt32 | R/W | Controls whether downloaded files should be removed from the detector disk | AUTO_REMOVE |
FWAutoRemove FWAutoRemove_RBV |
bo bi |
|
| EigerFWFree | filewriter/status/buffer_free | asynFloat64 | R/O | Free space on detector disk. | FW_FREE | FWFree_RBV | ai |
| EigerFWState | filewriter/status/state | asynOctet | R/O | State of the FileWriter module | FW_STATE | FWState_RBV | stringin |
| Stream control | |||||||
| EigerStreamEnable | stream/config/mode | asynInt32 | R/W | Enables or disables the Stream module | STREAM_ENABLE |
StreamEnable StreamEnable_RBV |
bo bi |
| EigerStreamDropped | stream/status/dropped | asynInt32 | R/O | Indicates how many images were dropped in the last acquisition | STREAM_DROPPED | StreamDropped_RBV | ai |
| EigerStreamDecompress | N.A. | asynInt32 | R/W | Controls whether the NDArrays from the Stream interface are decompressed (Yes) or compressed (No) | STREAM_DECOMPRES |
StreamDecompress StreamDecompress_RBV |
bo bi |
| EigerStreamState | stream/status/state | asynOctet | R/O | State of the Stream module | STREAM_STATE | StreamState_RBV | stringin |
| stream/config/header_detail | asynInt32 | R/W |
Selects the level of detail for Stream API Headers. Options are:
|
EIG_SCI_header_detail |
StreamHdrDetail StreamHdrDetail_RBV |
mbbo mbbi |
|
| stream/config/header_appendix | asynOctet | R/W | Sets the text to be appended to the Stream API headers | EIG_SCS_header_appendix | StreamHdrAppendix | waveform | |
| stream/config/image_appendix | asynOctet | R/W | Sets the text to be appended to the Stream API images | EIG_SCS_image_appendix | StreamImgAppendix | waveform | |
| Monitor control | |||||||
| EigerMonitorEnable | monitor/config/mode | asynInt32 | R/W | Enables or disables the Monitor module | MONITOR_ENABLE |
MonitorEnable MonitorEnable_RBV |
bo bi |
| EigerMonitorTimeout | asynInt32 | R/W | Timeout for queries on the Monitor interface for new images | MONITOR_TIMEOUT |
MonitorTimeout MonitorTimeout_RBV |
ao ai |
|
| EigerMonitorState | monitor/status/state | asynOctet | R/O | State of the Monitor module | MONITOR_STATE | MonitorState_RBV | stringin |
| Acquisition metadata | |||||||
| EigerBeamX | detector/config/beam_center_x | asynFloat64 | R/W | X position of the beam | EIG_DCD_beam_center_x |
BeamX BeamX_RBV |
ao ai |
| EigerBeamY | detector/config/beam_center_y | asynFloat64 | R/W | Y position of the beam | EIG_DCD_beam_center_y |
BeamY BeamY_RBV |
ao ai |
| EigerDetDist | detector/config/detector_distance | asynFloat64 | R/W | Detector distance | EIG_DCD_detector_distance |
DetDist DetDist_RBV |
ao ai |
| EigerWavelength | detector/config/wavelength | asynFloat64 | R/W | Wavelength of the beam. This parameter is automatically changed whenever the PhotonEnergy changes | WAVELENGTH |
Wavelength Wavelength_RBV |
ao ai |
| EigerCountCutoff | detector/config/countrate_correction_count_cutoff | asynInt32 | R/O | Number of counts after which the detector will cutoff due to the count rate correction. | EIG_DCI_countrate_correction_count_cutoff | CountCutoff_RBV | ai |
| Acquisition MX metadata | |||||||
| EigerChiStart | detector/config/chi_start | asynFloat64 | R/W | Start value of the Chi angle | EIG_DCD_chi_start |
ChiStart ChiStart_RBV |
ao ai |
| EigerChiIncr | detector/config/chi_increment | asynFloat64 | R/W | Chi angle increment per frame | EIG_DCD_chi_increment |
ChiIncr ChiIncr_RBV |
ao ai |
| EigerKappaStart | detector/config/kappa_start | asynFloat64 | R/W | Start value of the Kappa angle | EIG_DCD_kappa_start |
KappaStart KappaStart_RBV |
ao ai |
| EigerKappaIncr | detector/config/kappa_increment | asynFloat64 | R/W | Kappa angle increment per frame | EIG_DCD_kappa_increment |
KappaIncr KappaIncr_RBV |
ao ai |
| EigerOmegaStart | detector/config/omega_start | asynFloat64 | R/W | Start value of the Omega angle | EIG_DCD_omega_start |
OmegaStart OmegaStart_RBV |
ao ai |
| EigerOmegaIncr | detector/config/omega_increment | asynFloat64 | R/W | Omega angle increment per frame | EIG_DCD_omega_increment |
OmegaIncr OmegaIncr_RBV |
ao ai |
| EigerPhiStart | detector/config/phi_start | asynFloat64 | R/W | Start value of the Phi angle | EIG_DCD_phi_start |
PhiStart PhiStart_RBV |
ao ai |
| EigerPhiIncr | detector/config/phi_increment | asynFloat64 | R/W | Phi angle increment per frame | EIG_DCD_phi_increment |
PhiIncr PhiIncr_RBV |
ao ai |
| EigerTwoThetaStart | detector/config/two_theta_start | asynFloat64 | R/W | Start value of the TwoTheta angle | EIG_DCD_two_theta_start |
TwoThetaStart TwoThetaStart_RBV |
ao ai |
| EigerTwoThetaIncr | detector/config/two_theta_increment | asynFloat64 | R/W | TwoTheta angle increment per frame | EIG_DCD_two_theta_increment |
TwoThetaIncr TwoThetaIncr_RBV |
ao ai |
| Acquisition control | |||||||
| EigerDataSource | asynInt32 | R/W |
Which data source to use for areaDetecor pipeline. Valid values:
|
DATA_SOURCE |
DataSource DataSource_RBV |
mbbo mbbi |
|
| EigerArmed | asynInt32 | R/O | Armed state of the detector | ARMED | Armed | bi | |
| EigerSaveFiles | asynInt32 | R/W | Controls whether acquired files should be saved locally to disk | SAVE_FILES |
SaveFiles SaveFiles_RBV |
bo bi |
|
| EigerFileOwner | asynOctet | R/W | Controls the owner of the file saved to disk. Requires the IOC to have the CAP_SETUID capability. | FILE_OWNER |
FileOwner FileOwner_RBV |
stringout stringin |
|
| EigerFileOwnerGroup | asynOctet | R/W | Controls the owner group of the file saved to disk. Requires the IOC to have the CAP_SETGID capability. | FILE_OWNER_GROUP |
FileOwnerGrp FileOwnerGrp_RBV |
stringout stringin |
|
| EigerFilePerms | asynInt32 | R/W | Controls the permissions for the files saved to disk | FILE_PERMISSIONS | FilePerms | ao | |
| EigerSequenceId | asynInt32 | R/O | Sequence ID of the current acquisition | SEQ_ID | SequenceId | ai | |
| EigerFlatfield | detector/config/flatfield_correction_applied | asynInt32 | R/W | Controls whether the flatfield correction should be applied | EIG_DCI_flatfield_correction_applied |
FlatfieldApplied FlatfieldApplied_RBV |
bo bi |
| EigerPhotonEnergy | detector/config/photon_energy | asynFloat64 | R/W | Photon energy for the acquisition | PHOTON_ENERGY |
PhotonEnergy PhotonEnergy_RBV |
ao ai |
| EigerThreshold | detector/config/threshold_energy | asynFloat64 | R/W | Energy threshold for the acquisition | THRESHOLD |
Threshold Threshold_RBV |
ao ai |
| EigerTrigger | detector/command/trigger | asynInt32 | W/O | Software trigger to be used on modes INTS and INTE when ManualTrigger is set | TRIGGER | Trigger | ao |
| EigerTriggerExp | detector/command/trigger | asynFloat64 | R/W | Exposure to be used with the triggers on the INTE mode | TRIGGER_EXPOSURE |
TriggerExposure TriggerExposure_RBV |
ao ai |
| EigerNTriggers | detector/config/ntrigger | asynInt32 | R/W | Number of triggers for the acquisition | NUM_TRIGGERS |
NumTriggers NumTriggers_RBV |
ao ai |
| EigerManualTrigger | asynInt32 | R/W | On INTS and INTE modes, controls whether triggers will be issued automatically (0) or only via the Trigger PV (1). | MANUAL_TRIGGER |
ManualTrigger ManualTrigger_RBV |
bo bi |
|
| EigerCompressionAlgo | detector/config/compression | asynInt32 | R/W |
Compression algorithm to use when compression is enabled. Options are:
|
COMPRESSION_ALGO |
CompressionAlgo CompressionAlgo_RBV |
mbbo mbbi |
| EigerROIMode | detector/config/roi_mode | asynInt32 | R/W |
Which ROI mode to use. Only supported on Eiger 9M and 16M. Options are:
|
ROI_MODE |
ROIMode ROIMode_RBV |
mbbo mbbi |
All standard parameters not mentioned in this document are not supported.
The Eiger driver is created with the eigerDetectorConfig command, either from C/C++ or from the EPICS IOC shell.
int eigerDetectorConfig(const char *portName, const char *hostname, int maxBuffers, size_t maxMemory, int priority, int stackSize)
For details on the meaning of the parameters to this function refer to the detailed documentation on the eigerDetectorConfig function in the eigerDetector.cpp documentation and in the documentation for the constructor for the eigerDetector class
There an example IOC boot directory and startup script provided with areaDetector.
The following shows the medm screen that is used to control the Eiger detector. Note that the general purpose screen ADBase.adl can be used, but it exposes a few controls that are not applicable to the Eiger, and lacks some fields that are important for the Eiger.
eigerDetector.adl
is the screen used to control the Eiger driver.
Changing the Photon Energy is a potentially slow operation, depending on the detector size. On the 16M it takes around ten seconds. Other parameters also take this long because they also affect the Photon Energy, namely Threshold Energy and Wavelength. The StatusMessage PV indicates when setting any of these parameters start and finish.
A few status parameters are read every time the ReadStatus PV is processed. A high rate polling causes issues, sometimes causing the detector to hang when, in conjunction, a parameter is set to an invalid value.
The Internal Enable mode is marked as experimental by Dectris. At the moment it is very flaky (firmware 1.5.0) and often doesn't generate all the files it is supposed to.