Package com.mxgraph.view
Class mxGraphView
- java.lang.Object
-
- com.mxgraph.util.mxEventSource
-
- com.mxgraph.view.mxGraphView
-
public class mxGraphView extends mxEventSource
Implements a view for the graph. This class is in charge of computing the absolute coordinates for the relative child geometries, the points for perimeters and edge styles and keeping them cached in cell states for faster retrieval. The states are updated whenever the model or the view state (translate, scale) changes. The scale and translate are honoured in the bounds. This class fires the following events: mxEvent.UNDO fires after the root was changed in setCurrentRoot. Theedit
property contains the mxUndoableEdit which contains the mxCurrentRootChange. mxEvent.SCALE_AND_TRANSLATE fires after the scale and transle have been changed in scaleAndTranslate. Thescale
,previousScale
,translate
andpreviousTranslate
properties contain the new and previous scale and translate, respectively. mxEvent.SCALE fires after the scale was changed in setScale. Thescale
andpreviousScale
properties contain the new and previous scale. mxEvent.TRANSLATE fires after the translate was changed in setTranslate. Thetranslate
andpreviousTranslate
properties contain the new and previous value for translate. mxEvent.UP and mxEvent.DOWN fire if the current root is changed by executing a mxCurrentRootChange. The event name depends on the location of the root in the cell hierarchy with respect to the current root. Theroot
andprevious
properties contain the new and previous root, respectively.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
mxGraphView.mxCurrentRootChange
Action to change the current root in a view.-
Nested classes/interfaces inherited from class com.mxgraph.util.mxEventSource
mxEventSource.mxIEventListener
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.Object
currentRoot
mxCell that acts as the root of the displayed cell hierarchy.protected mxGraph
graph
Reference to the enclosing graph.protected mxRectangle
graphBounds
Caches the current bounds of the graph.protected double
scale
Specifies the scale.protected java.util.Hashtable<java.lang.Object,mxCellState>
states
Maps from cells to cell states.protected mxPoint
translate
Point that specifies the current translation.-
Fields inherited from class com.mxgraph.util.mxEventSource
eventListeners, eventsEnabled, eventSource
-
-
Constructor Summary
Constructors Constructor Description mxGraphView(mxGraph graph)
Constructs a new view for the given graph.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear(java.lang.Object cell, boolean force, boolean recurse)
Removes the state of the given cell and all descendants if the given cell is not the current root.mxCellState
createState(java.lang.Object cell)
Creates and returns a cell state for the given cell.mxRectangle
getBoundingBox(mxCellState state)
Shortcut to validateCell with visible set to true.mxRectangle
getBoundingBox(mxCellState state, boolean recurse)
Returns the bounding box of the shape and the label for the given cell state and its children if recurse is true.mxRectangle
getBoundingBox(java.lang.Object[] cells)
Returns the bounding box for an array of cells or null, if no cells are specified.mxRectangle
getBounds(java.lang.Object[] cells)
Returns the bounding box for an array of cells or null, if no cells are specified.mxRectangle
getBounds(java.lang.Object[] cells, boolean boundingBox)
Returns the bounding box for an array of cells or null, if no cells are specified.mxCellState[]
getCellStates(java.lang.Object[] cells)
Returns the states for the given array of cells.java.lang.Object
getCurrentRoot()
Returns the current root.mxEdgeStyle.mxEdgeStyleFunction
getEdgeStyle(mxCellState edge, java.util.List<mxPoint> points, java.lang.Object source, java.lang.Object target)
Returns the edge style function to be used to compute the absolute points for the given state, control points and terminals.mxGraph
getGraph()
Returns the enclosing graph.mxRectangle
getGraphBounds()
Returns the cached diagram bounds.mxPoint
getNextPoint(mxCellState edge, mxCellState opposite, boolean source)
Returns the nearest point in the list of absolute points or the center of the opposite terminal.mxRectangle
getPerimeterBounds(mxCellState terminal, double border)
Returns the perimeter bounds for the given terminal, edge pair.mxPerimeter.mxPerimeterFunction
getPerimeterFunction(mxCellState state)
Returns the perimeter function for the given state.mxPoint
getPerimeterPoint(mxCellState terminal, mxPoint next, boolean orthogonal)
Returns a point that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.mxPoint
getPerimeterPoint(mxCellState terminal, mxPoint next, boolean orthogonal, double border)
Returns a point that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.mxPoint
getPoint(mxCellState state)
Returns the absolute center point along the given edge.mxPoint
getPoint(mxCellState state, mxGeometry geometry)
Returns the absolute point on the edge for the given relative geometry as a point.mxPoint
getRelativePoint(mxCellState edgeState, double x, double y)
Gets the relative point that describes the given, absolute label position for the given edge state.double
getRoutingCenterX(mxCellState state)
Returns the x-coordinate of the center point for automatic routing.double
getRoutingCenterY(mxCellState state)
Returns the y-coordinate of the center point for automatic routing.double
getScale()
Returns the current scale.mxCellState
getState(java.lang.Object cell)
Returns the state for the given cell or null if no state is defined for the cell.mxCellState
getState(java.lang.Object cell, boolean create)
Returns the cell state for the given cell.java.util.Hashtable<java.lang.Object,mxCellState>
getStates()
Returns the dictionary that maps from cells to states.mxCellState
getTerminalPort(mxCellState state, mxCellState terminal, boolean source)
Returns a cell state that represents the source or target terminal or port for the given edge.mxPoint
getTranslate()
Returns the current translation.java.lang.Object
getVisibleTerminal(java.lang.Object edge, boolean source)
Returns the nearest ancestor terminal that is visible.double
getWordWrapWidth(mxCellState state)
Returns the width for wrapping the label of the given state at scale 1.void
invalidate()
Invalidates all cell states.void
invalidate(java.lang.Object cell)
Invalidates the state of the given cell, all its descendants and connected edges.void
reload()
Removes all existing cell states and invokes validate.mxCellState
removeState(java.lang.Object cell)
Removes and returns the mxCellState for the given cell.void
revalidate()
void
scaleAndTranslate(double scale, double dx, double dy)
Sets the scale and translation.java.lang.Object
setCurrentRoot(java.lang.Object root)
Sets and returns the current root and fires an undo event.void
setGraphBounds(mxRectangle value)
Sets the graph bounds.void
setScale(double value)
Sets the current scale and revalidates the view.void
setStates(java.util.Hashtable<java.lang.Object,mxCellState> states)
Returns the dictionary that maps from cells to states.void
setTranslate(mxPoint value)
Sets the current translation and invalidates the view.java.lang.String
toString()
mxPoint
transformControlPoint(mxCellState state, mxPoint pt)
Transforms the given control point to an absolute point.mxRectangle
updateBoundingBox(mxCellState state)
Updates the bounding box in the given cell state.void
updateCellState(mxCellState state)
Updates the given cell state.void
updateEdgeBounds(mxCellState state)
Updates the given state using the bounding box of the absolute points.void
updateEdgeState(mxCellState state, mxGeometry geo)
Validates the given cell state.void
updateFixedTerminalPoint(mxCellState edge, mxCellState terminal, boolean source, mxConnectionConstraint constraint)
Sets the fixed source or target terminal point on the given edge.void
updateFixedTerminalPoints(mxCellState edge, mxCellState source, mxCellState target)
Sets the initial absolute terminal points in the given state before the edge style is computed.void
updateFloatingTerminalPoint(mxCellState edge, mxCellState start, mxCellState end, boolean source)
Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.void
updateFloatingTerminalPoints(mxCellState state, mxCellState source, mxCellState target)
Updates the terminal points in the given state after the edge style was computed for the edge.void
updateLabel(mxCellState state)
Updates the label of the given state.void
updateLabelBounds(mxCellState state)
Updates the label bounds in the given state.void
updatePoints(mxCellState edge, java.util.List<mxPoint> points, mxCellState source, mxCellState target)
Updates the absolute points in the given state using the specified array of points as the relative points.void
updateVertexLabelOffset(mxCellState state)
Updates the absoluteOffset of the given vertex cell state.void
updateVertexState(mxCellState state, mxGeometry geo)
Validates the given cell state.void
validate()
First validates all bounds and then validates all points recursively on all visible cells.java.lang.Object
validateCell(java.lang.Object cell)
Shortcut to validateCell with visible set to true.java.lang.Object
validateCell(java.lang.Object cell, boolean visible)
Recursively creates the cell state for the given cell if visible is true and the given cell is visible.mxCellState
validateCellState(java.lang.Object cell)
Shortcut to validateCellState with recurse set to true.mxCellState
validateCellState(java.lang.Object cell, boolean recurse)
Validates the cell state for the given cell.-
Methods inherited from class com.mxgraph.util.mxEventSource
addListener, fireEvent, fireEvent, getEventSource, isEventsEnabled, removeListener, removeListener, setEventsEnabled, setEventSource
-
-
-
-
Field Detail
-
graph
protected mxGraph graph
Reference to the enclosing graph.
-
currentRoot
protected java.lang.Object currentRoot
mxCell that acts as the root of the displayed cell hierarchy.
-
graphBounds
protected mxRectangle graphBounds
Caches the current bounds of the graph.
-
scale
protected double scale
Specifies the scale. Default is 1 (100%).
-
translate
protected mxPoint translate
Point that specifies the current translation. Default is a new empty point.
-
states
protected java.util.Hashtable<java.lang.Object,mxCellState> states
Maps from cells to cell states.
-
-
Constructor Detail
-
mxGraphView
public mxGraphView(mxGraph graph)
Constructs a new view for the given graph.- Parameters:
graph
- Reference to the enclosing graph.
-
-
Method Detail
-
getGraph
public mxGraph getGraph()
Returns the enclosing graph.- Returns:
- Returns the enclosing graph.
-
getStates
public java.util.Hashtable<java.lang.Object,mxCellState> getStates()
Returns the dictionary that maps from cells to states.
-
setStates
public void setStates(java.util.Hashtable<java.lang.Object,mxCellState> states)
Returns the dictionary that maps from cells to states.
-
getGraphBounds
public mxRectangle getGraphBounds()
Returns the cached diagram bounds.- Returns:
- Returns the diagram bounds.
-
setGraphBounds
public void setGraphBounds(mxRectangle value)
Sets the graph bounds.
-
getCurrentRoot
public java.lang.Object getCurrentRoot()
Returns the current root.
-
setCurrentRoot
public java.lang.Object setCurrentRoot(java.lang.Object root)
Sets and returns the current root and fires an undo event.- Parameters:
root
- mxCell that specifies the root of the displayed cell hierarchy.- Returns:
- Returns the object that represents the current root.
-
scaleAndTranslate
public void scaleAndTranslate(double scale, double dx, double dy)
Sets the scale and translation. Fires a "scaleAndTranslate" event after calling revalidate. Revalidate is only called if isEventsEnabled.- Parameters:
scale
- Decimal value that specifies the new scale (1 is 100%).dx
- X-coordinate of the translation.dy
- Y-coordinate of the translation.
-
getScale
public double getScale()
Returns the current scale.- Returns:
- Returns the scale.
-
setScale
public void setScale(double value)
Sets the current scale and revalidates the view. Fires a "scale" event after calling revalidate. Revalidate is only called if isEventsEnabled.- Parameters:
value
- New scale to be used.
-
getTranslate
public mxPoint getTranslate()
Returns the current translation.- Returns:
- Returns the translation.
-
setTranslate
public void setTranslate(mxPoint value)
Sets the current translation and invalidates the view. Fires a property change event for "translate" after calling revalidate. Revalidate is only called if isEventsEnabled.- Parameters:
value
- New translation to be used.
-
getBounds
public mxRectangle getBounds(java.lang.Object[] cells)
Returns the bounding box for an array of cells or null, if no cells are specified.- Parameters:
cells
-- Returns:
- Returns the bounding box for the given cells.
-
getBoundingBox
public mxRectangle getBoundingBox(java.lang.Object[] cells)
Returns the bounding box for an array of cells or null, if no cells are specified.- Parameters:
cells
-- Returns:
- Returns the bounding box for the given cells.
-
getBounds
public mxRectangle getBounds(java.lang.Object[] cells, boolean boundingBox)
Returns the bounding box for an array of cells or null, if no cells are specified.- Parameters:
cells
-- Returns:
- Returns the bounding box for the given cells.
-
reload
public void reload()
Removes all existing cell states and invokes validate.
-
revalidate
public void revalidate()
-
invalidate
public void invalidate()
Invalidates all cell states.
-
clear
public void clear(java.lang.Object cell, boolean force, boolean recurse)
Removes the state of the given cell and all descendants if the given cell is not the current root.- Parameters:
cell
-force
-recurse
-
-
invalidate
public void invalidate(java.lang.Object cell)
Invalidates the state of the given cell, all its descendants and connected edges.
-
validate
public void validate()
First validates all bounds and then validates all points recursively on all visible cells.
-
getBoundingBox
public mxRectangle getBoundingBox(mxCellState state)
Shortcut to validateCell with visible set to true.
-
getBoundingBox
public mxRectangle getBoundingBox(mxCellState state, boolean recurse)
Returns the bounding box of the shape and the label for the given cell state and its children if recurse is true.- Parameters:
state
- Cell state whose bounding box should be returned.recurse
- Boolean indicating if the children should be included.
-
validateCell
public java.lang.Object validateCell(java.lang.Object cell)
Shortcut to validateCell with visible set to true.
-
validateCell
public java.lang.Object validateCell(java.lang.Object cell, boolean visible)
Recursively creates the cell state for the given cell if visible is true and the given cell is visible. If the cell is not visible but the state exists then it is removed using removeState.- Parameters:
cell
- Cell whose cell state should be created.visible
- Boolean indicating if the cell should be visible.
-
validateCellState
public mxCellState validateCellState(java.lang.Object cell)
Shortcut to validateCellState with recurse set to true.
-
validateCellState
public mxCellState validateCellState(java.lang.Object cell, boolean recurse)
Validates the cell state for the given cell.- Parameters:
cell
- Cell whose cell state should be validated.recurse
- Boolean indicating if the children of the cell should be validated.
-
updateCellState
public void updateCellState(mxCellState state)
Updates the given cell state.- Parameters:
state
- Cell state to be updated.
-
updateVertexState
public void updateVertexState(mxCellState state, mxGeometry geo)
Validates the given cell state.
-
updateEdgeState
public void updateEdgeState(mxCellState state, mxGeometry geo)
Validates the given cell state.
-
updateVertexLabelOffset
public void updateVertexLabelOffset(mxCellState state)
Updates the absoluteOffset of the given vertex cell state. This takes into account the label position styles.- Parameters:
state
- Cell state whose absolute offset should be updated.
-
updateLabel
public void updateLabel(mxCellState state)
Updates the label of the given state.
-
getWordWrapWidth
public double getWordWrapWidth(mxCellState state)
Returns the width for wrapping the label of the given state at scale 1.
-
updateLabelBounds
public void updateLabelBounds(mxCellState state)
Updates the label bounds in the given state.
-
updateBoundingBox
public mxRectangle updateBoundingBox(mxCellState state)
Updates the bounding box in the given cell state.- Parameters:
state
- Cell state whose bounding box should be updated.
-
updateFixedTerminalPoints
public void updateFixedTerminalPoints(mxCellState edge, mxCellState source, mxCellState target)
Sets the initial absolute terminal points in the given state before the edge style is computed.- Parameters:
edge
- Cell state whose initial terminal points should be updated.source
- Cell state which represents the source terminal.target
- Cell state which represents the target terminal.
-
updateFixedTerminalPoint
public void updateFixedTerminalPoint(mxCellState edge, mxCellState terminal, boolean source, mxConnectionConstraint constraint)
Sets the fixed source or target terminal point on the given edge.- Parameters:
edge
- Cell state whose initial terminal points should be updated.
-
updatePoints
public void updatePoints(mxCellState edge, java.util.List<mxPoint> points, mxCellState source, mxCellState target)
Updates the absolute points in the given state using the specified array of points as the relative points.- Parameters:
edge
- Cell state whose absolute points should be updated.points
- Array of points that constitute the relative points.source
- Cell state that represents the source terminal.target
- Cell state that represents the target terminal.
-
transformControlPoint
public mxPoint transformControlPoint(mxCellState state, mxPoint pt)
Transforms the given control point to an absolute point.
-
getEdgeStyle
public mxEdgeStyle.mxEdgeStyleFunction getEdgeStyle(mxCellState edge, java.util.List<mxPoint> points, java.lang.Object source, java.lang.Object target)
Returns the edge style function to be used to compute the absolute points for the given state, control points and terminals.
-
updateFloatingTerminalPoints
public void updateFloatingTerminalPoints(mxCellState state, mxCellState source, mxCellState target)
Updates the terminal points in the given state after the edge style was computed for the edge.- Parameters:
state
- Cell state whose terminal points should be updated.source
- Cell state that represents the source terminal.target
- Cell state that represents the target terminal.
-
updateFloatingTerminalPoint
public void updateFloatingTerminalPoint(mxCellState edge, mxCellState start, mxCellState end, boolean source)
Updates the absolute terminal point in the given state for the given start and end state, where start is the source if source is true.- Parameters:
edge
- Cell state whose terminal point should be updated.start
- Cell state for the terminal on "this" side of the edge.end
- Cell state for the terminal on the other side of the edge.source
- Boolean indicating if start is the source terminal state.
-
getTerminalPort
public mxCellState getTerminalPort(mxCellState state, mxCellState terminal, boolean source)
Returns a cell state that represents the source or target terminal or port for the given edge.
-
getPerimeterPoint
public mxPoint getPerimeterPoint(mxCellState terminal, mxPoint next, boolean orthogonal)
Returns a point that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.
-
getPerimeterPoint
public mxPoint getPerimeterPoint(mxCellState terminal, mxPoint next, boolean orthogonal, double border)
Returns a point that defines the location of the intersection point between the perimeter and the line between the center of the shape and the given point.- Parameters:
terminal
- Cell state for the source or target terminal.next
- Point that lies outside of the given terminal.orthogonal
- Boolean that specifies if the orthogonal projection onto the perimeter should be returned. If this is false then the intersection of the perimeter and the line between the next and the center point is returned.border
- Optional border between the perimeter and the shape.
-
getRoutingCenterX
public double getRoutingCenterX(mxCellState state)
Returns the x-coordinate of the center point for automatic routing.- Returns:
- Returns the x-coordinate of the routing center point.
-
getRoutingCenterY
public double getRoutingCenterY(mxCellState state)
Returns the y-coordinate of the center point for automatic routing.- Returns:
- Returns the y-coordinate of the routing center point.
-
getPerimeterBounds
public mxRectangle getPerimeterBounds(mxCellState terminal, double border)
Returns the perimeter bounds for the given terminal, edge pair.
-
getPerimeterFunction
public mxPerimeter.mxPerimeterFunction getPerimeterFunction(mxCellState state)
Returns the perimeter function for the given state.
-
getNextPoint
public mxPoint getNextPoint(mxCellState edge, mxCellState opposite, boolean source)
Returns the nearest point in the list of absolute points or the center of the opposite terminal.- Parameters:
edge
- Cell state that represents the edge.opposite
- Cell state that represents the opposite terminal.source
- Boolean indicating if the next point for the source or target should be returned.- Returns:
- Returns the nearest point of the opposite side.
-
getVisibleTerminal
public java.lang.Object getVisibleTerminal(java.lang.Object edge, boolean source)
Returns the nearest ancestor terminal that is visible. The edge appears to be connected to this terminal on the display.- Parameters:
edge
- Cell whose visible terminal should be returned.source
- Boolean that specifies if the source or target terminal should be returned.- Returns:
- Returns the visible source or target terminal.
-
updateEdgeBounds
public void updateEdgeBounds(mxCellState state)
Updates the given state using the bounding box of the absolute points. Also updates terminal distance, length and segments.- Parameters:
state
- Cell state whose bounds should be updated.
-
getPoint
public mxPoint getPoint(mxCellState state)
Returns the absolute center point along the given edge.
-
getPoint
public mxPoint getPoint(mxCellState state, mxGeometry geometry)
Returns the absolute point on the edge for the given relative geometry as a point. The edge is represented by the given cell state.- Parameters:
state
- Represents the state of the parent edge.geometry
- Optional geometry that represents the relative location.- Returns:
- Returns the mxpoint that represents the absolute location of the given relative geometry.
-
getRelativePoint
public mxPoint getRelativePoint(mxCellState edgeState, double x, double y)
Gets the relative point that describes the given, absolute label position for the given edge state.
-
getCellStates
public mxCellState[] getCellStates(java.lang.Object[] cells)
Returns the states for the given array of cells. The array contains all states that are not null, that is, the returned array may have less elements than the given array.
-
getState
public mxCellState getState(java.lang.Object cell)
Returns the state for the given cell or null if no state is defined for the cell.- Parameters:
cell
- Cell whose state should be returned.- Returns:
- Returns the state for the given cell.
-
getState
public mxCellState getState(java.lang.Object cell, boolean create)
Returns the cell state for the given cell. If create is true, then the state is created if it does not yet exist.- Parameters:
cell
- Cell for which a new state should be returned.create
- Boolean indicating if a new state should be created if it does not yet exist.- Returns:
- Returns the state for the given cell.
-
removeState
public mxCellState removeState(java.lang.Object cell)
Removes and returns the mxCellState for the given cell.- Parameters:
cell
- mxCell for which the mxCellState should be removed.- Returns:
- Returns the mxCellState that has been removed.
-
createState
public mxCellState createState(java.lang.Object cell)
Creates and returns a cell state for the given cell.- Parameters:
cell
- Cell for which a new state should be created.- Returns:
- Returns a new state for the given cell.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-


Maira Kalman: Portraits in Creativity
Ecru neutral Saint Laurent indigo tee gold collar. Denim shorts envelope clutch sneaker Céline leggings skirt.
July 27, 2014 Lifestyle
HEAD
Ecru neutral Saint Laurent indigo tee gold collar. Denim shorts envelope clutch sneaker Céline leggings skirt.
July 27, 2014 Lifestyle
Hand-crafted artisanal espresso essential the highest quality remarkable ANA, Helsinki Marylebone intricate. Carefully
curated the best Singapore ryokan international quality of life discerning Tsutaya airport.
July 28, 2014 Culture
Ecru neutral Saint Laurent indigo tee gold collar. Denim shorts envelope clutch sneaker Céline leggings skirt.
July 27, 2014 Lifestyle
Carefully curated the best Singapore ryokan international quality of life discerning alluring Tsutaya airport.
July 26, 2014 Stories
Culpa airport first-class sed handsome, ex joy occaecat flat white. Shinkansen bespoke deserunt liveable uniforms punctual perfect Airbus […]


IntelliJ Lombok plugin
GitHub |
Issues | Donate (
PayPal )
A plugin that adds first-class support for Project Lombok
Sponsors
Discussing code is now as easy as highlighting a block and typing a comment right from your IDE. Take the pain out of code reviews and improve code quality.
Try it free!
Features


Fits complex parametric models using the method proposed by Cox and Kartsonaki (2012) without likelihoods.
| Version: | 1.1 |
| Depends: | survey |
| Published: | 2013-08-22 |
| Author: | Christiana Kartsonaki |
| Maintainer: | Christiana Kartsonaki <christiana.kartsonaki at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| CRAN checks: | ssfit results |
| Reference manual: | ssfit.pdf |
| Package source: | ssfit_1.1.tar.gz |
| Windows binaries: | r-devel: ssfit_1.1.zip, r-release: ssfit_1.1.zip, r-oldrel: ssfit_1.1.zip |
| OS X binaries: | r-release: ssfit_1.1.tgz, r-oldrel: ssfit_1.1.tgz |
| Old sources: | ssfit archive |
Please use the canonical form https://CRAN.R-project.org/package=ssfit to link to this page.


Plymouth Argyle taking 1,000-strong Green Army to FA Cup tie at Bolton Wanderers
The Pilgrims will be playing at the 28,000-capacity University of Bolton Stadium for the first time
by Chris ErringtonPlymouth Argyle will have around 1,000 members of the Green Army cheering them on at their FA Cup first round clash away to Bolton Wanderers on Saturday.
It is going to be the first time the Pilgrims have played at the 28,000-seat capacity University of Bolton Stadium since it opened in 1997.
The tie has been made all-ticket for Argyle supporters, who have until 5pm today (Thursday) to make their purchases.
It has been stressed there will be no pay-on-the-day option for fans attending the game.
The Travel Club coaches will leave from outside the Devonport End at 6.30am on Saturday for the 600-mile round trip to the north-west of England.
The last time that Argyle played an away game against Bolton was in January 1993, when Wanderers played their fixtures at Burnden Park.
It will be the sixth this season that Argyle will have been watched by more than 1,000 members of the Green Army at an away match.
The previous five have been Crewe Alexandra (1,599), Newport County (1,039), Northampton Town (1,291), Swindon Town (2,300) and Exeter City (1,154).


Single-Click Send Waypoint
Provides an example of how a Waypoint can be send to the device using the
Waypoint data structure to generate the GPX. Much easier to use for websites
that don't produce their own GPX.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Garmin Display - Single-Click Waypoint Upload</title>

Single-Click Waypoint Upload


While focusing heavily on learning Icelandic, I dug deeply looking for Icelandic-language music. There are surprisingly high amounts of Icelandic bands that sing exclusively in English. Here are my favourite songs with Icelandic lyrics:
Mammút - They play energetic rock music, bordering on post-punk sometimes. The first Icelandic language band I liked, and my favourite still. Here’s Svefnsýkt:  Bónus: Rauðilækur
Q4U - Postpunk from the 80s, mostly in Icelandic. They’re still around. Here’s Sigurinn:  Bónus: Snjóhvít
Samaris - Atmospheric minimal electro/triphop with clarinet. Very haunting. Here’s Góða Tungl:  Bónus: Stofnar Falla
Nóra: Indie rock, ranging from upbeat and energetic to atmospheric and introspective. The more I listen, the more I like it. They sing entirely in Icelandic. Here’s Himinbrim:  Bónus: Sjónskekkja
Lockerbie - Post-rock, but with a bit more pop/rock than usually characterised by Icelandic post-rock. Here’s Snjóljón:
Úlfur Úlfur - Hiphop with awesome backing percussion. They sing entirely in Icelandic. Here’s Út:  Bónus: Ég er farinn
Pascal Pinon - D.I.Y., lo-fi, indie pop electronic. Many songs in Icelandic. Here’s Ekki Vanmeta:  Bónus: Sandur
Sólstafir - Post-black metal, with elements of country and rock. They are amazing live. Their album Svartir Sandar is entirely in Icelandic and highly recommended. Here’s Fjara:  Bónus: Svartir Sandar
There’s lots of music that I’ve discovered that I didn’t cover here, but I only wanted to showcase the music I liked the most. Feel free to leave other suggestions in the comments.


WITNESS LIST Land & Resource Management Committee April 23, 2001-8:00A HB 2340 For: Allison, Jim (County Judges & Commissioners Association of Texas) On: Oldmixon, Doug (Tx General Land Office / Veterans Land Board) HB 3410 For: Goodson, Jerry M. (Self) Jarvis, Ben E. (Self) HB 3517 For: Southers, Frank R. (Self) HB 3548 For: Naylor, Richard (Self) Against: Carmel, Inga Marie (Self) Houston, Scott (Texas Municipal League) Moffat, Susan (Alliance to Save Hyde Park) HB 3549 For: Naylor, Richard (Self) Against: Houston, Scott (Texas Municipal League) HB 3552 For: Russell, Sam W. (Texas Manufactured Housing Association) SB 517 For: Allison, Jim (County Judges and Commissioner's Association of Texas) Oaxaca, Vidal (El Paso County Attorney's Office / County of El Paso) Against: Gaines, Jimmy (Texas Landowners Council, Inc.) SB 517 Amendment (Walker / Amendment 1) For: Martinez, Frances Leos (Self and Community Resource Group, Inc.) SB 517 Committee Substitute (Walker / CSSB 517) Lee, Donald (Texas Conference of Urban Counties)


Deploy Machine Learning using Flask
In this post I explain how to run a machine learning model on a cloud computer and access its predictions via an API.
To do this goal I write a simple API interface using Flask in Python. I have trained a linear regression model on artificial data and saved the model object using Pickle. The code below loads the model and runs an API that receives POST requests for the model predictions.
from flask import Flask, jsonify, abort,request
import numpy as np
import pickle
app = Flask(__name__)
lr=pickle.load(open('lr_model.pkl','rb'))
@app.route('/')
def index():
return "Linear Regression model API."
@app.route('/model/invoke',methods=['POST'])
def model():
if not request.json or not 'data' in request.json:
abort(400)
data=request.json['data']
x=np.array(data)
pred=lr.predict(x)
return jsonify({'prediction': pred.tolist()}), 201
if __name__ == '__main__':
app.run(debug=True,port=5000,host='<IP_ADDRESS>')
To test the api, run this script on a remote cloud instance (Linode offers up to 100 dollars to experiment their services). Then allow for incoming connections on port 5000, as set in the script (or any other port of your choice). Send a POST request to the api using the IP address of the instance, for example
curl --location --request POST 'xxx.xxx.xxx.xxx:5000/model/invoke' \
--header 'Content-Type: application/json' \
--data-raw '{"data":[2,3,4,5]}'
On the remote, you can see a POST request from the Ip address of your local computer:
And this is the response from the api call:
{
"prediction": [
4.354176603044118,
6.384373814367889,
8.414571025691659,
10.44476823701543
]
}


You have recently requested to reset your password for your $2 account. Click the button below to reset it.
|
If you did not request a password reset, please ignore this email or reply to let us know. This password reset is only valid until $4.
Thanks,
$2 administration.


**NVIDIA Vulkan Ray Tracing Tutorial**
**Instances**
Authors: [Martin-Karl Lefrançois](https://devblogs.nvidia.com/author/mlefrancois/), Neil Bickford
![](Images/VkInstances.png)
This is an extension of the Vulkan ray tracing [tutorial](vkrt_tutorial.md.html).
Ray tracing can easily handle having many object instances at once. For instance, a top level acceleration structure can
have many different instances of a bottom level acceleration structure. However, when we have many different objects, we
can run into problems with memory allocation. Many Vulkan implementations support no more than 4096 allocations, while
our current application creates 4 allocations per object (Vertex, Index, and Material), then one for the BLAS. That
means we are hitting the limit with just above 1000 objects.
(insert setup.md.html here)
# Many Instances
First, let's look how the scene would look like when we have just a few objects, with many instances.
In `main.cpp`, add the following includes:
~~~~ C++
#include
~~~~
Then replace the calls to `helloVk.loadModel` in `main()` by
~~~~ C++
// Creation of the example
helloVk.loadModel(nvh::findFile("media/scenes/cube.obj", defaultSearchPaths));
helloVk.loadModel(nvh::findFile("media/scenes/cube_multi.obj", defaultSearchPaths));
helloVk.loadModel(nvh::findFile("media/scenes/plane.obj", defaultSearchPaths));
std::random_device rd; // Will be used to obtain a seed for the random number engine
std::mt19937 gen(rd()); // Standard mersenne_twister_engine seeded with rd()
std::normal_distribution dis(1.0f, 1.0f);
std::normal_distribution disn(0.05f, 0.05f);
for(int n = 0; n < 2000; ++n)
{
HelloVulkan::ObjInstance inst;
inst.objIndex = n % 2;
inst.txtOffset = 0;
float scale = fabsf(disn(gen));
nvmath::mat4f mat =
nvmath::translation_mat4(nvmath::vec3f{dis(gen), 2.0f + dis(gen), dis(gen)});
mat = mat * nvmath::rotation_mat4_x(dis(gen));
mat = mat * nvmath::scale_mat4(nvmath::vec3f(scale));
inst.transform = mat;
inst.transformIT = nvmath::transpose(nvmath::invert((inst.transform)));
helloVk.m_objInstance.push_back(inst);
}
~~~~
!!! Note:
This will create 3 models (OBJ) and their instances, and then add 2000 instances
distributed between green cubes and cubes with one color per face.
# Many Objects
Instead of creating many instances, create many objects.
Remove the previous code and replace it with the following
~~~~ C++
// Creation of the example
std::random_device rd; //Will be used to obtain a seed for the random number engine
std::mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd()
std::normal_distribution dis(1.0f, 1.0f);
std::normal_distribution disn(0.05f, 0.05f);
for(int n = 0; n < 2000; ++n)
{
helloVk.loadModel(nvh::findFile("media/scenes/cube_multi.obj", defaultSearchPaths));
HelloVulkan::ObjInstance& inst = helloVk.m_objInstance.back();
float scale = fabsf(disn(gen));
nvmath::mat4f mat =
nvmath::translation_mat4(nvmath::vec3f{dis(gen), 2.0f + dis(gen), dis(gen)});
mat = mat * nvmath::rotation_mat4_x(dis(gen));
mat = mat * nvmath::scale_mat4(nvmath::vec3f(scale));
inst.transform = mat;
inst.transformIT = nvmath::transpose(nvmath::invert((inst.transform)));
}
helloVk.loadModel(nvh::findFile("media/scenes/plane.obj", defaultSearchPaths));
~~~~
The example might still work, but the console will print the following error after loading 1363 objects. All other objects allocated after the 1363rd will fail to be displayed.
!!! Error
Error: VUID_Undefined
Number of currently valid memory objects is not less than the maximum allowed (4096).
- Object[0] - Type Device
!!! Note:
This is the best case; the application can run out of memory and crash if substantially more objects are created (e.g. 20,000)
# Device Memory Allocator (DMA)
It is possible to use a memory allocator to fix this issue.
## `hello_vulkan.h`
In `hello_vulkan.h`, add the following defines at the top of the file to indicate which allocator to use
~~~~ C++
// #VKRay
//#define ALLOC_DEDICATED
#define ALLOC_DMA
~~~~
Replace the definition of buffers and textures and include the right allocator.
~~~~ C++
#if defined(ALLOC_DEDICATED)
#include "nvvkpp/allocator_dedicated_vkpp.hpp"
using nvvkBuffer = nvvkpp::BufferDedicated;
using nvvkTexture = nvvkpp::TextureDedicated;
#elif defined(ALLOC_DMA)
#include "nvvkpp/allocator_dma_vkpp.hpp"
using nvvkBuffer = nvvkpp::BufferDma;
using nvvkTexture = nvvkpp::TextureDma;
#endif
~~~~
And do the same for the allocator
~~~~ C++
#if defined(ALLOC_DEDICATED)
nvvkpp::AllocatorDedicated m_alloc; // Allocator for buffer, images, acceleration structures
#elif defined(ALLOC_DMA)
nvvkpp::AllocatorDma m_alloc; // Allocator for buffer, images, acceleration structures
nvvk::DeviceMemoryAllocator m_dmaAllocator;
#endif
~~~~
## `hello_vulkan.cpp`
In the source file there are also a few changes to make.
DMA needs to be initialized, which will be done in the `setup()` function:
~~~~ C++
#if defined(ALLOC_DEDICATED)
m_alloc.init(device, physicalDevice);
#elif defined(ALLOC_DMA)
m_dmaAllocator.init(device, physicalDevice);
m_alloc.init(device, &m_dmaAllocator);
#endif
~~~~
When using DMA, memory buffer mapping is done through the DMA interface (instead of the VKDevice). Therefore, change the lines at the end of `updateUniformBuffer()` to
~~~~ C++
#if defined(ALLOC_DEDICATED)
void* data = m_device.mapMemory(m_cameraMat.allocation, 0, sizeof(CameraMatrices));
memcpy(data, &ubo, sizeof(ubo));
m_device.unmapMemory(m_cameraMat.allocation);
#elif defined(ALLOC_DMA)
void* data = m_dmaAllocator.map(m_cameraMat.allocation);
memcpy(data, &ubo, sizeof(ubo));
m_dmaAllocator.unmap(m_cameraMat.allocation);
#endif
~~~~
The RaytracerBuilder was made to allow various allocators, but we still need to pass the right one in its setup function. Change the last line of `initRayTracing()` to
~~~~ C++
#if defined(ALLOC_DEDICATED)
m_rtBuilder.setup(m_device, m_physicalDevice, m_graphicsQueueIndex);
#elif defined(ALLOC_DMA)
m_rtBuilder.setup(m_device, m_dmaAllocator, m_graphicsQueueIndex);
#endif
~~~~
## Destruction
The VMA allocator need to be released in `HelloVulkan::destroyResources()` after the last `m_alloc.destroy`.
~~~~ C++
#if defined(ALLOC_DMA)
m_dmaAllocator.deinit();
#endif
~~~~
# Result
Instead of thousands of allocations, our example will have only 14 allocations. Note that some of these allocations are allocated by Dear ImGui, and not by DMA. These are the 14 objects with blue borders below:
![Memory](Images/VkInstanceNsight1.png)
Finally, here is the Vulkan Device Memory view from Nsight Graphics:
![VkMemory](Images/VkInstanceNsight2.png)
# VMA: Vulkan Memory Allocator
We can also modify the code to use the [Vulkan Memory Allocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator) from AMD.
Download [vk_mem_alloc.h](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/blob/master/src/vk_mem_alloc.h) from GitHub and add this to the `current` folder.
There is already a variation of the allocator for VMA, which is located under [nvpro-samples](https://github.com/nvpro-samples/nvpro_core/tree/master/nvvk). This allocator has the same simple interface as the `AllocatorDedicated` class in `allocator_dedicated_vkpp.hpp`, but will use VMA for memory management.
VMA might use dedicated memory, which we do, so you need to add the following extension to the
creation of the context in `main.cpp`.
~~~~ C++
contextInfo.addDeviceExtension(VK_KHR_BIND_MEMORY_2_EXTENSION_NAME);
~~~~
## hello_vulkan.h
Follow the changes done before and add the following
~~~~ C++
#define ALLOC_VMA
~~~~
~~~~ C++
#elif defined(ALLOC_VMA)
#include "nvvkpp/allocator_vma_vkpp.hpp"
using nvvkBuffer = nvvkpp::BufferVma;
using nvvkTexture = nvvkpp::TextureVma;
~~~~
~~~~ C++
#elif defined(ALLOC_VMA)
nvvkpp::AllocatorVma m_alloc; // Allocator for buffer, images, acceleration structures
VmaAllocator m_vmaAllocator;
~~~~
## hello_vulkan.cpp
First, the following should only be defined once in the entire program, and it should be defined before `#include "hello_vulkan.h"`:
~~~~ C++
#define VMA_IMPLEMENTATION
~~~~
In `setup()`
~~~~ C++
#elif defined(ALLOC_VMA)
VmaAllocatorCreateInfo allocatorInfo = {};
allocatorInfo.physicalDevice = physicalDevice;
allocatorInfo.device = device;
allocatorInfo.flags |=
VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT | VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT;
vmaCreateAllocator(&allocatorInfo, &m_vmaAllocator);
m_alloc.init(device, m_vmaAllocator);
~~~~
In `updateUniformBuffer()`
~~~~ C++
#elif defined(ALLOC_VMA)
void* data;
vmaMapMemory(m_vmaAllocator, m_cameraMat.allocation, &data);
memcpy(data, &ubo, sizeof(ubo));
vmaUnmapMemory(m_vmaAllocator, m_cameraMat.allocation);
~~~~
In `destroyResources()`
~~~~ C++
#elif defined(ALLOC_VMA)
vmaDestroyAllocator(m_vmaAllocator);
~~~~
In `initRayTracing()`
~~~~ C++
#elif defined(ALLOC_VMA)
m_rtBuilder.setup(m_device, m_vmaAllocator, m_graphicsQueueIndex);
~~~~
Additionally, VMA has its own usage flags, so since `VMA_MEMORY_USAGE_CPU_TO_GPU` maps to `vkMP::eHostVisible` and `vkMP::eHostCoherent`, change the call to `m_alloc.createBuffer` in `HelloVulkan::createUniformBuffer()` to
~~~~ C++
m_cameraMat = m_alloc.createBuffer(sizeof(CameraMatrices), vkBU::eUniformBuffer,
#if defined(ALLOC_DEDICATED) || defined(ALLOC_DMA)
vkMP::eHostVisible | vkMP::eHostCoherent
#elif defined(ALLOC_VMA)
VMA_MEMORY_USAGE_CPU_TO_GPU
#endif
);
~~~~
# Final Code
You can find the final code in the folder [ray_tracing_instances](https://github.com/nvpro-samples/vk_raytracing_tutorial/tree/master/ray_tracing_instances)


Open TortoiseSVN テストページ
Spec
- Common
- Background
- Content Script
Example
Prepare
- Set "Path to TortoiseProc.exe".
- Add a URL "
https://github.com/masamitsu-murase/open_tortoise_svn_for_google_chrome.git/trunk
". - Set default action to "Repository Browser".
- Add extension actions.
- "
*.md
" as "Log" - "
*.json, *.js
" as "Blame" - "
*.cpp
" as "Open in Chrome"
- "
- Check "A help tip".


--- layout: post title: Lonelty Dreams photo album date: 2011-04-02 11:29:21.000000000 +03:00 categories: [] tags: [] status: draft type: post published: false post_id: lonely-dreams-photo-album meta: _edit_last: '1' author: login: admin email<EMAIL_ADDRESS>display_name: Radu first_name: '' last_name: '' ---


Test resources
Simple example
Install local
🥒 Cucumber example
🎯 Stryker example
C# example
Scala example
Deep dir example
Pitest example
InfectionPHP example
Tests example
Test files example
Lighthouse example
Large example
Unsanitized example
🚀 Realtime reporting example


Toggle navigation
Arcade Game Machines Management
{{ firebaseUser.email }}
Logout
Dashboard
Center
Location
Supplier
Machine


This CSS3 selector refers to items that a visitor has selected on a page. For example, when a visitor clicks and drags over text, the browser highlights that text, and the visitor can then copy the text. Normally, browsers add a blue background behind the text. Internet Explorer changes the text color to white. However, you can control the background color and text color by defining this selector. For example, if you wanted to make selected text white with a violet background you could add this style to a page’s style sheet:
This CSS3 selector refers to items that a visitor has selected on a page. For example, when a visitor clicks and drags over text, the browser highlights that text, and the visitor can then copy the text. Normally, browsers add a blue background behind the text. Internet Explorer changes the text color to white. However, you can control the background color and text color by defining this selector. For example, if you wanted to make selected text white with a violet background you could add this style to a page’s style sheet:


Org - The Orgtomate CLI for AWS Organizations
org <service> <operation> [-c|--constructor-args <key>=<value> ...] [-a|--operation-args <key>=<value> ...] [-j|--args-as-json|--no-j|--no-args-as-json] [-o|--orgtomate <target>] [-y|--recurse|--no-y|--no-recurse] [-r|--regions <region> ...] [-k|--result-key <key>] [-f|--format [flat|full|regions|accountids|accountnames]] [-n|--role-name <role-name>] [-e|--external-id <external-id>] [-s|--duration-seconds <seconds>] [-x|--session-name <session-name>] [-d|--debug|--no-d|--no-debug]
Org is a NodeJS command from the the orgtomate package on NPM: https://www.npmjs.com/package/orgtomate
It is an alternative to the AWS Command Line Interface (CLI) for interacting with AWS APIs. It provides the capability to run commands across multiple AWS Accounts and Regions in parallel, while leveraging the speed of asynchronous JavaScript to fun faster than the Python AWS CLI. It is written in TypeScript and distributed as minified (uglified) JavaScript with type definitions and Source Maps. Org makes use of the other libraries in the orgtomate package: aws-org-node, get-aws-results and orgtomate. aws-org-node provides an Interface and Class for populating a tree structure representing an AWS Organization. get-aws-results provide a standardised automatic paging mechanism for AWS API calls. orgtomate provides the mechanism to run a custom callback in a selection of AWS Accounts in parallel.
Org uses the AWS SDK for JavaScript version 2, and exposes the SDK directly to the user. The services and operations available are stylised exactly as they are in the SDK, and the AWS Service client constructor and operation arguments are expected in the exact format that is expected by the SDK. Therefore rather than the AWS CLI command aws route53 list-hosted-zones
, in Org you would use org Route53 listHostedZones
where services are in TitleCase and operations are in camelCase: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/
While Org's execution is designed in general to be fast, some operations may be slow if they require the initialisation of a large AWS Organizations tree. When operations are executed against one account, or all of the accounts in the Organization, Org will determine the list of target accounts on its own. If targeting only a part of an AWS Organization, Org will populate an AwsOrgNode object first, and then use it to determine the list of target accounts. The time taken to populate an AwsOrgNode depends on the size of the Organization or branch of an Organization you are targeting. As a rough estimate this will take 10 seconds for a tree of 200 accounts in a horizontal spread of 50 Organizational Units. Once the list of targets has been determined, the remaining executions will be paralellised across all accounts and regions at once, often returning results across all targets faster than the AWS CLI will return results from one.
https://bjsscloud.github.io/orgtomate-js
npm install orgtomate -g
org Route53 listHostedZones
org Route53 listHostedZones -c MaxRetries=100 -a MaxItems=1 -o Root -k PaginationMetadata -f accountnames
org EC2 describeInstances -r eu-west-1 eu-west-2 eu-west-3
org EC2 describeInstances -o Root -f full
org EC2 describeInstances -o ou-r0123-abcdef01 --no-recurse -r eu-west-1 eu-west-2 -a Filters='[{"Name": "platform", "Values": ["windows"]}]' -j -k Reservations | jq '.Reservations[].Instances[].InstanceId'
Option Types:
--no-
.-r eu-west-1 eu-west-2
or -r eu-west-1 -r eu-west-2
.<service>
String :: Required
The AWS API Service Constructor to instantiate, e.g. EC2, Route53, IAM, Organizations, IoT1ClickDevicesService, WellArchitected, ServiceQuotas, Support, ResourceGroupsTaggingAPI
<operation>
String :: Required
The Operation to call on the requested Service, e.g. listHostedZones, describeInstances, getAccountPasswordPolicy, listOrganizationalUnits, invokeDeviceMethod, listWorkloads, requestServiceQuotaIncrease, describeTrustedAdvisorChecks, startReportCreation
-c
, --constructor-args
Array :: Optional
Custom arguments to pass to the AWS API Service Constructor, such as exponential backoff parameters. Specified as an Array of key=value pairs. Values may be specified as strings, or optionally as JSON data if combined with -j|--args-as-json
.
-a
, --operation-args
Array :: Optional
Custom arguments to pass to the AWS API Service Operation, such as resource filters or page size limits. Specified as an Array of key=value pairs. Values may be specified as strings, or optionally as JSON data if combined with -j|--args-as-json
.
-j
, --args-as-json
, --no-j
, --no-args-as-json
Boolean :: Default: false
Whether to parse the values in -c|--constructor-args
and -a|--operation-args
arguments as JSON data using JSON.parse()
-o
, --orgtomate
String :: Optional
The ID of a node in an AWS Organization, or 'Root' to anonymously reference the Root of the Organization.
Options: 'Root' | /^r-[a-z0-9]{4}$/ | /^ou-[a-z0-9]+-[a-z0-9]+$/ | /^[0-9]{12}$/
-y
, --recurse
, --no-y
, --no-recurse
Boolean :: Default: true
When specifying a Root or an Organizational Unit target, whether to gather all accounts recursively below the target, or only accounts that are immediate children of the target
-r
, --regions
Array` :: Default: us-east-1
The AWS Regions in which to execute the API call in parallel for every account being targeted, whether just locally or with Orgtomate
-k
, --result-key
String :: Optional
The resultKey to pass to getAwsResults that will reduce the Operation output to only the information required for ease of visualisation and parsing
-f
, --format
String :: Default: flat
The format in which to present the results. Options are: flat
, full
, regions
, accountids
, accountnames
.
* flat
: emulates the response you would expect from a single account, with every result from every account and region merged into one result
* full
: returns an Array of objects with results in the results
key, the execution AWS Region in the region
key and, when using Orgtomate, the AWS Account Name and AWS Account ID in the accountName
and accountId
keys respectively
* regions
: returns an object with one key per execution AWS Region, containing all merged results for that region as the value
* accountids
: returns an object with one key per execution AWS Account ID, containing all merged results for that account as the value
* accountnames
: returns an object with one key per execution AWS Account Name, containing all merged results for that account as the value
-n
, --role-name
String :: Default: OrganizationAccountAccessRole
The name of the AWS IAM Role to assume to access each account targeted by -o|--orgtomate
-e
, --external-id
String :: Optional
The value of the External ID string to use when assuming the AWS IAM Role for each account targeted by -o|--orgtomate
-s
, --duration-seconds
Number :: Default: 900
The maximum age of the AWS Security Token Service credentials generated when assuming each AWS IAM Role to access each account targeted by -o|--orgtomate
. These credentials should never live longer than the length of time the operation requires, and therefore, this should almost always be left at the default minimum value of 900.
-x
, --session-name
String :: Default: orgtomate-cli
The value of the Role Session Name string to use when assuming the AWS IAM Role for each account targeted by -o|--orgtomate
-d
, --debug
, --no-d
, --no-debug
Boolean :: Default: false
Whether to print debug information to STDERR while processing the command
The following environment variables will be used as overriding default values for corresponding options. These defaults may still be superceded by passing a value as an argument.
AWS_DEFAULT_REGION
overrides AWS_REGION
overrides -r|--region
ROLE_NAME
overrides -n|--role-name
ROLE_EXTERNAL_ID
overrides -e|--external-id
ROLE_SESSION_NAME
overrides -x|--session-name
ROLE_DURATION_SECONDS
overrides -s|--duration-seconds
Please report any bugs at https://github.com/bjsscloud/orgtomate-js/issues
Copyright (c) 2021, Mike Peachey, BJSS Limited (MIT License).
Generated using TypeDoc


|
Lane Detection for Autonomous Cars
Lane Detection Module using C++ and OpenCV
|
Definition of the LaneDetector class. It contains all the functions and variables depicted in the. More...
#include <LaneDetector.hpp>
Public Member Functions | |
| cv::Mat | deNoise (cv::Mat inputImage) |
| Apply gaussian filter to the input image to denoise it. More... | |
| cv::Mat | edgeDetector (cv::Mat img_noise) |
| Detect all the edges in the blurred frame by filtering the image. More... | |
| cv::Mat | mask (cv::Mat img_edges) |
| Mask the image so that only the edges that form part of the lane are detected. More... | |
| std::vector< cv::Vec4i > | houghLines (cv::Mat img_mask) |
| Obtain all the line segments in the masked images which are going to be part of the lane boundaries. More... | |
| std::vector< std::vector< cv::Vec4i > > | lineSeparation (std::vector< cv::Vec4i > lines, cv::Mat img_edges) |
| Sort all the detected Hough lines by slope. More... | |
| std::vector< cv::Point > | regression (std::vector< std::vector< cv::Vec4i > > left_right_lines, cv::Mat inputImage) |
| Regression takes all the classified line segments initial and final points and fits a new lines out of them using the method of least squares. More... | |
| std::string | predictTurn () |
| Predict if the lane is turning left, right or if it is going straight. More... | |
| int | plotLane (cv::Mat inputImage, std::vector< cv::Point >, std::string turn) |
| This function plots both sides of the lane, the turn prediction message and a transparent polygon that covers the area inside the lane boundaries. More... | |
Definition of the LaneDetector class. It contains all the functions and variables depicted in the.
Activity diagram and UML Class diagram. It detects the lanes in an image if a highway and outputs the same image with the plotted lane.
| cv::Mat LaneDetector::deNoise | ( | cv::Mat | inputImage | ) |
Apply gaussian filter to the input image to denoise it.
| inputImage | is the frame of a video in which the |
| lane | is going to be detected |
| cv::Mat LaneDetector::edgeDetector | ( | cv::Mat | img_noise | ) |
Detect all the edges in the blurred frame by filtering the image.
| img_noise | is the previously blurred frame |
| std::vector< cv::Vec4i > LaneDetector::houghLines | ( | cv::Mat | img_mask | ) |
Obtain all the line segments in the masked images which are going to be part of the lane boundaries.
| img_mask | is the masked binary image from the previous function |
| std::vector< std::vector< cv::Vec4i > > LaneDetector::lineSeparation | ( | std::vector< cv::Vec4i > | lines, |
| cv::Mat | img_edges | ||
| ) |
Sort all the detected Hough lines by slope.
The lines are classified into right or left depending on the sign of their slope and their approximate location
| lines | is the vector that contains all the detected lines |
| img_edges | is used for determining the image center |
| cv::Mat LaneDetector::mask | ( | cv::Mat | img_edges | ) |
Mask the image so that only the edges that form part of the lane are detected.
| img_edges | is the edges image from the previous function |
| int LaneDetector::plotLane | ( | cv::Mat | inputImage, |
| std::vector< cv::Point > | lane, | ||
| std::string | turn | ||
| ) |
This function plots both sides of the lane, the turn prediction message and a transparent polygon that covers the area inside the lane boundaries.
| inputImage | is the original captured frame |
| lane | is the vector containing the information of both lines |
| turn | is the output string containing the turn information |
| std::string LaneDetector::predictTurn | ( | ) |
Predict if the lane is turning left, right or if it is going straight.
It is done by seeing where the vanishing point is with respect to the center of the image
| std::vector< cv::Point > LaneDetector::regression | ( | std::vector< std::vector< cv::Vec4i > > | left_right_lines, |
| cv::Mat | inputImage | ||
| ) |
Regression takes all the classified line segments initial and final points and fits a new lines out of them using the method of least squares.
This is done for both sides, left and right.
| left_right_lines | is the output of the lineSeparation function |
| inputImage | is used to select where do the lines will end |


| Created: | 1/27/2021 3:53:33 PM |
| Modified: | 1/27/2021 3:53:33 PM |
| Project: | |
| Advanced: |
| Attribute |
|
Public serial id |
|
Details:
|
|
Public integer budget_id |
|
Details:
|
|
Public smallint threshold |
|
Details:
|
|
Public date start_date |
|
Details:
|
|
Public date end_date |
|
Details:
|
|
Public varchar(255) created_by |
|
Details:
|
|
Public timestamp with time zone(0) created_at |
|
Details:
|
|
Public timestamp with time zone(0) updated_at |
|
Details:
|
|
Public varchar(255) updated_by |
|
Details:
|
|
Public bigint adjustment_balance |
|
Details:
|
| Operation | ||
|
Public budget_calendars_pkey( id: serial, |
||
|
Details:
<<PK>>
|
| Tag | Value |
| Owner | public |
|
Details:
|
| Property | Value |
| isFinalSpecialization: | 0 |


Visit the following link to Speed Demos Archive to download the run and read comments about the speedrun: http://speeddemosarchive.com/SeriousSamFE.html


kubefwd is used to forward Kubernetes services running in a remote cluster to a local workstation, easing the development of applications that communicate with other services. kubefwd, pronounced Kube Forward, is a single binary, command line application written in Go.
kubefwd does not require you to make any modifications to remote clusters. If you currently use kubectl, you have met the requirements for kubefwd.
kubefwd is a bulk port-forwarder for Kubernetes, helping you develop applications locally. Running kubefwd allows you to access any Service from your local workstation just as you would from within another Pod in the same Namespace on the cluster https://t.co/Y77TRFdNjc pic.twitter.com/ABlund5iid
— Cloud Native DevOps (@cloudnatived) October 23, 2018
I don't run Kubernetes locally, but I do depend on services running in remote clusters. I either extract service IPs, or set up port forwarding, and keep my existing workflow. kubefwd is the tool I've been missing. https://t.co/SCMZfl4eZn pic.twitter.com/7j6EpevHN1
— Kelsey Hightower (@kelseyhightower) November 5, 2018
Thanks so much, Craig! @kubernauts will love it and are so grateful to use kubefwd daily and say: THX again for the brilliant work.
— Kubernauts / IO (@kubernauts) November 14, 2018
Install
macOs
MacOs install with homebrew:
brew install txn2/tap/kubefwd
Get a list of service forwarding options:
kubefwd help svc
Forward services in the example namespace:
sudo -E kubefwd svc -n example
Upgrade
brew upgrade kubefwd
Packages
Get the latest rpm, deb or snap packages from Github including binary releases for Linux, Windows and MacOs. Support for AMD64 and ARM architectures.
Docker
This option does not require sudo to run, however named services will only be available from within the docker container.
docker run --rm --name fwd -v "$HOME/.kube/config:/root/.kube/config" -it txn2/kubefwd:1.4.10 svc
Assuming you have a service named ok listening on port 80, in another terminal issue a curl command from the running container:
docker exec fwd curl -s http://ok:80
Source
Compiling from source requires Go:
mkdir -p ~/go/src/github.com/txn2/
git clone git@github.com:txn2/kubefwd.git ~/go/src/github.com/txn2/kubefwd
cd ~/go/src/github.com/txn2/kubefwd
git checkout 1.4.10
GOBIN=~/bin go install -ldflags="-X main.Version=1.4.10" ./cmd/kubefwd/kubefwd.go
~/bin/kubefwd version


:a frame for supporting barrels
:a frame structure raised on side supports so as to span over or around something: as
:a platform made to carry a traveling crane and supported by towers or side frames running on parallel tracks
:a movable structure with platforms at different levels used for erecting and servicing rockets before launching
:a structure spanning several railroad tracks and displaying signals for each


My take on the EDA experience is that it is very different from any standard learning environment I have been in before. It is a much more practical experience and requires effort and teamwork.
My impressions are that everyone will be thrown in the deep end (not just me!) and different individuals are likely to excel in different areas so it will be a collaborative environment which requires a lot of patience and determination from everyone in the cohort.
I think my main struggles with engaging in this type of culture will be my lack of patience and tendency to get frustrated easily. I think I will enjoy working with others and learning from them and doing so will help me work on myself.
I am excited to work in the EDA environment but of course I am nervous. As Shereef described there are the 2 fears and I certainly have the imposter syndrome as he described it. Before starting phase 0 I hadn't really done any coding so I was worried this would hold me back but Shereef has eased those nerves somewhat.


Next: Input/Output Functions, Previous: Numeric Functions, Up: Built-in Functions [Contents][Index]
The functions in this section look at or change the text of one or more strings.
gawk
understands locales (see Where You Are Makes a Difference) and does all
string processing in terms of characters, not bytes.
This distinction is particularly important to understand for locales
where one character may be represented by multiple bytes. Thus, for
example, length()
returns the number of characters in a string,
and not the number of bytes used to represent those characters. Similarly,
index()
works with character indices, and not byte indices.
CAUTION: A number of functions deal with indices into strings. For these functions, the first character of a string is at position (index) one. This is different from C and the languages descended from it, where the first character is at position zero. You need to remember this when doing index calculations, particularly if you are used to C.
In the following list, optional parameters are enclosed in square brackets ([ ]).
Several functions perform string substitution; the full discussion is
provided in the description of the sub()
function, which comes
toward the end, because the list is presented alphabetically.
Those functions that are specific to gawk
are marked with a
pound sign (‘#’). They are not available in compatibility mode
(see Command-Line Options):
asort(
source [,
dest [,
how ] ]) #
¶asorti(
source [,
dest [,
how ] ]) #
These two functions are similar in behavior, so they are described together.
NOTE: The following description ignores the third argument, how, as it requires understanding features that we have not discussed yet. Thus, the discussion here is a deliberate simplification. (We do provide all the details later on; see Sorting Array Values and Indices with
gawk
for the full story.)
Both functions return the number of elements in the array source.
For asort()
, gawk
sorts the values of source
and replaces the indices of the sorted values of source with
sequential integers starting with one. If the optional array dest
is specified, then source is duplicated into dest. dest
is then sorted, leaving the indices of source unchanged.
When comparing strings, IGNORECASE
affects the sorting
(see Sorting Array Values and Indices with gawk
). If the
source array contains subarrays as values (see Arrays of Arrays), they will come last, after all scalar values.
Subarrays are not recursively sorted.
For example, if the contents of a
are as follows:
a["last"] = "de" a["first"] = "sac" a["middle"] = "cul"
A call to asort()
:
asort(a)
results in the following contents of a
:
a[1] = "cul" a[2] = "de" a[3] = "sac"
The asorti()
function works similarly to asort()
; however,
the indices are sorted, instead of the values. Thus, in the
previous example, starting with the same initial set of indices and
values in a
, calling ‘asorti(a)’ would yield:
a[1] = "first" a[2] = "last" a[3] = "middle"
NOTE: You may not use either
SYMTAB
orFUNCTAB
as the second argument to these functions. Attempting to do so produces a fatal error. You may use them as the first argument, but only if providing a second array to use for the actual sorting.
You are allowed to use the same array for both the source and dest arguments, but doing so only makes sense if you’re also supplying the third argument.
gensub(regexp, replacement, how
[, target
]) #
¶Search the target string target for matches of the regular
expression regexp. If how is a string beginning with
‘g’ or ‘G’ (short for “global”), then replace all matches
of regexp with replacement. Otherwise, treat how
as a number indicating which match of regexp to replace. Treat
numeric values less than one as if they were one. If no target
is supplied, use $0
. Return the modified string as the result
of the function. The original target string is not changed.
The returned value is always a string, even if the original target was a number or a regexp value.
gensub()
is a general substitution function. Its purpose is
to provide more features than the standard sub()
and gsub()
functions.
gensub()
provides an additional feature that is not available
in sub()
or gsub()
: the ability to specify components of a
regexp in the replacement text. This is done by using parentheses in
the regexp to mark the components and then specifying ‘\N’
in the replacement text, where N is a digit from 1 to 9.
For example:
$ gawk ' > BEGIN { > a = "abc def" > b = gensub(/(.+) (.+)/, "\\2 \\1", "g", a) > print b > }' -| def abc
As with sub()
, you must type two backslashes in order
to get one into the string.
In the replacement text, the sequence ‘\0’ represents the entire
matched text, as does the character ‘&’.
The following example shows how you can use the third argument to control which match of the regexp should be changed:
$ echo a b c a b c | > gawk '{ print gensub(/a/, "AA", 2) }' -| a b c AA b c
In this case, $0
is the default target string.
gensub()
returns the new string as its result, which is
passed directly to print
for printing.
If the how argument is a string that does not begin with ‘g’ or
‘G’, or if it is a number that is less than or equal to zero, only one
substitution is performed. If how is zero, gawk
issues
a warning message.
If regexp does not match target, gensub()
’s return value
is the original unchanged value of target. Note that, as mentioned
above, the returned value is a string, even if target was not.
gsub(regexp, replacement
[, target
])
¶Search target for
all of the longest, leftmost, nonoverlapping matching
substrings it can find and replace them with replacement.
The ‘g’ in gsub()
stands for
“global,” which means replace everywhere. For example:
{ gsub(/Britain/, "United Kingdom"); print }
replaces all occurrences of the string ‘Britain’ with ‘United Kingdom’ for all input records.
The gsub()
function returns the number of substitutions made. If
the variable to search and alter (target) is
omitted, then the entire input record ($0
) is used.
As in sub()
, the characters ‘&’ and ‘\’ are special,
and the third argument must be assignable.
index(in, find)
¶Search the string in for the first occurrence of the string find, and return the position in characters where that occurrence begins in the string in. Consider the following example:
$ awk 'BEGIN { print index("peanut", "an") }' -| 3
If find is not found, index()
returns zero.
With BWK awk
and gawk
,
it is a fatal error to use a regexp constant for find.
Other implementations allow it, simply treating the regexp
constant as an expression meaning ‘$0 ~ /regexp/’. (d.c.)
length(
[string])
¶Return the number of characters in string. If
string is a number, the length of the digit string representing
that number is returned. For example, length("abcde")
is five. By
contrast, length(15 * 35)
works out to three. In this example,
15 * 35 = 525,
and 525 is then converted to the string "525"
, which has
three characters.
If no argument is supplied, length()
returns the length of $0
.
NOTE: In older versions of
awk
, thelength()
function could be called without any parentheses. Doing so is considered poor practice, although the 2008 POSIX standard explicitly allows it, to support historical practice. For programs to be maximally portable, always supply the parentheses.
If length()
is called with a variable that has not been used,
gawk
forces the variable to be a scalar. Other
implementations of awk
leave the variable without a type.
(d.c.)
Consider:
$ gawk 'BEGIN { print length(x) ; x[1] = 1 }' -| 0 error→ gawk: fatal: attempt to use scalar `x' as array $ nawk 'BEGIN { print length(x) ; x[1] = 1 }' -| 0
If --lint has
been specified on the command line, gawk
issues a
warning about this.
With gawk
and several other awk
implementations, when given an
array argument, the length()
function returns the number of elements
in the array. (c.e.)
This is less useful than it might seem at first, as the
array is not guaranteed to be indexed from one to the number of elements
in it.
If --lint is provided on the command line
(see Command-Line Options),
gawk
warns that passing an array argument is not portable.
If --posix is supplied, using an array argument is a fatal error
(see Arrays in awk
).
match(string, regexp
[, array
])
¶Search string for the longest, leftmost substring matched by the regular expression regexp and return the character position (index) at which that substring begins (one, if it starts at the beginning of string). If no match is found, return zero.
The regexp argument may be either a regexp constant
(/
…/
) or a string constant ("
…"
).
In the latter case, the string is treated as a regexp to be matched.
See Using Dynamic Regexps for a
discussion of the difference between the two forms, and the
implications for writing your program correctly.
The order of the first two arguments is the opposite of most other string
functions that work with regular expressions, such as
sub()
and gsub()
. It might help to remember that
for match()
, the order is the same as for the ‘~’ operator:
‘string ~ regexp’.
The match()
function sets the predefined variable RSTART
to
the index. It also sets the predefined variable RLENGTH
to the
length in characters of the matched substring. If no match is found,
RSTART
is set to zero, and RLENGTH
to -1.
For example:
{ if ($1 == "FIND") regex = $2 else { where = match($0, regex) if (where != 0) print "Match of", regex, "found at", where, "in", $0 } }
This program looks for lines that match the regular expression stored in
the variable regex
. This regular expression can be changed. If the
first word on a line is ‘FIND’, regex
is changed to be the
second word on that line. Therefore, if given:
FIND ru+n My program runs but not very quickly FIND Melvin JF+KM This line is property of Reality Engineering Co. Melvin was here.
awk
prints:
Match of ru+n found at 12 in My program runs Match of Melvin found at 1 in Melvin was here.
If array is present, it is cleared, and then the zeroth element of array is set to the entire portion of string matched by regexp. If regexp contains parentheses, the integer-indexed elements of array are set to contain the portion of string matching the corresponding parenthesized subexpression. For example:
$ echo foooobazbarrrrr | > gawk '{ match($0, /(fo+).+(bar*)/, arr) > print arr[1], arr[2] }' -| foooo barrrrr
In addition, multidimensional subscripts are available providing the start index and length of each matched subexpression:
$ echo foooobazbarrrrr | > gawk '{ match($0, /(fo+).+(bar*)/, arr) > print arr[1], arr[2] > print arr[1, "start"], arr[1, "length"] > print arr[2, "start"], arr[2, "length"] > }' -| foooo barrrrr -| 1 5 -| 9 7
There may not be subscripts for the start and index for every parenthesized
subexpression, because they may not all have matched text; thus, they
should be tested for with the in
operator
(see Referring to an Array Element).
The array argument to match()
is a
gawk
extension. In compatibility mode
(see Command-Line Options),
using a third argument is a fatal error.
patsplit(string, array
[, fieldpat
[, seps
] ]) #
¶Divide
string into pieces (or “fields”) defined by fieldpat
and store the pieces in array and the separator strings in the
seps array. The first piece is stored in
array[1]
, the second piece in array[2]
, and so
forth. The third argument, fieldpat, is
a regexp describing the fields in string (just as FPAT
is
a regexp describing the fields in input records).
It may be either a regexp constant or a string.
If fieldpat is omitted, the value of FPAT
is used.
patsplit()
returns the number of elements created.
seps[i]
is
the possibly null separator string
after array[i]
.
The possibly null leading separator will be in seps[0]
.
So a non-null string with n fields will have n+1 separators.
A null string has no fields or separators.
The patsplit()
function splits strings into pieces in a
manner similar to the way input lines are split into fields using FPAT
(see Defining Fields by Content).
Before splitting the string, patsplit()
deletes any previously existing
elements in the arrays array and seps.
split(string, array
[, fieldsep
[, seps
] ])
¶Divide string into pieces separated by fieldsep
and store the pieces in array and the separator strings in the
seps array. The first piece is stored in
array[1]
, the second piece in array[2]
, and so
forth. The string value of the third argument, fieldsep, is
a regexp describing where to split string (much as FS
can
be a regexp describing where to split input records).
If fieldsep is omitted, the value of FS
is used.
split()
returns the number of elements created.
seps is a gawk
extension, with seps[i]
being the separator string
between array[i]
and array[i+1]
.
If fieldsep is a single
space, then any leading whitespace goes into seps[0]
and
any trailing
whitespace goes into seps[n]
, where n is the
return value of
split()
(i.e., the number of elements in array).
The split()
function splits strings into pieces in the same way
that input lines are split into fields. For example:
split("cul-de-sac", a, "-", seps)
splits the string "cul-de-sac"
into three fields using ‘-’ as the
separator. It sets the contents of the array a
as follows:
a[1] = "cul" a[2] = "de" a[3] = "sac"
and sets the contents of the array seps
as follows:
seps[1] = "-" seps[2] = "-"
The value returned by this call to split()
is three.
As with input field-splitting, when the value of fieldsep is
" "
, leading and trailing whitespace is ignored in values assigned to
the elements of
array but not in seps, and the elements
are separated by runs of whitespace.
Also, as with input field splitting, if fieldsep is the null string, each
individual character in the string is split into its own array element.
(c.e.)
Additionally, if fieldsep is a single-character string, that string acts
as the separator, even if its value is a regular expression metacharacter.
Note, however, that RS
has no effect on the way split()
works. Even though ‘RS = ""’ causes the newline character to also be an input
field separator, this does not affect how split()
splits strings.
Modern implementations of awk
, including gawk
, allow
the third argument to be a regexp constant (/
…/
)
as well as a string. (d.c.)
The POSIX standard allows this as well.
See Using Dynamic Regexps for a
discussion of the difference between using a string constant or a regexp constant,
and the implications for writing your program correctly.
Before splitting the string, split()
deletes any previously existing
elements in the arrays array and seps.
If string is null, the array has no elements. (So this is a portable
way to delete an entire array with one statement.
See The delete
Statement.)
If string does not match fieldsep at all (but is not null), array has one element only. The value of that element is the original string.
In POSIX mode (see Command-Line Options), the fourth argument is not allowed.
sprintf(format, expression1, …)
¶Return (without printing) the string that printf
would
have printed out with the same arguments
(see Using printf
Statements for Fancier Printing).
For example:
pival = sprintf("pi = %.2f (approx.)", 22/7)
assigns the string ‘pi = 3.14 (approx.)’ to the variable pival
.
strtonum(str) #
Examine str and return its numeric value. If str
begins with a leading ‘0’, strtonum()
assumes that str
is an octal number. If str begins with a leading ‘0x’ or
‘0X’, strtonum()
assumes that str is a hexadecimal number.
For example:
$ echo 0x11 | > gawk '{ printf "%d\n", strtonum($1) }' -| 17
Using the strtonum()
function is not the same as adding zero
to a string value; the automatic coercion of strings to numbers
works only for decimal data, not for octal or hexadecimal.47
Note also that strtonum()
uses the current locale’s decimal point
for recognizing numbers (see Where You Are Makes a Difference).
sub(regexp, replacement
[, target
])
¶Search target, which is treated as a string, for the leftmost, longest substring matched by the regular expression regexp. Modify the entire string by replacing the matched text with replacement. The modified string becomes the new value of target. Return the number of substitutions made (zero or one).
The regexp argument may be either a regexp constant
(/
…/
) or a string constant ("
…"
).
In the latter case, the string is treated as a regexp to be matched.
See Using Dynamic Regexps for a
discussion of the difference between the two forms, and the
implications for writing your program correctly.
This function is peculiar because target is not simply
used to compute a value, and not just any expression will do—it
must be a variable, field, or array element so that sub()
can
store a modified value there. If this argument is omitted, then the
default is to use and alter $0
.48
For example:
str = "water, water, everywhere" sub(/at/, "ith", str)
sets str
to ‘wither, water, everywhere’, by replacing the
leftmost longest occurrence of ‘at’ with ‘ith’.
If the special character ‘&’ appears in replacement, it stands for the precise substring that was matched by regexp. (If the regexp can match more than one string, then this precise substring may vary.) For example:
{ sub(/candidate/, "& and his wife"); print }
changes the first occurrence of ‘candidate’ to ‘candidate and his wife’ on each input line. Here is another example:
$ awk 'BEGIN { > str = "daabaaa" > sub(/a+/, "C&C", str) > print str > }' -| dCaaCbaaa
This shows how ‘&’ can represent a nonconstant string and also illustrates the “leftmost, longest” rule in regexp matching (see How Much Text Matches?).
The effect of this special character (‘&’) can be turned off by putting a backslash before it in the string. As usual, to insert one backslash in the string, you must write two backslashes. Therefore, write ‘\\&’ in a string constant to include a literal ‘&’ in the replacement. For example, the following shows how to replace the first ‘|’ on each line with an ‘&’:
{ sub(/\|/, "\\&"); print }
As mentioned, the third argument to sub()
must
be a variable, field, or array element.
Some versions of awk
allow the third argument to
be an expression that is not an lvalue. In such a case, sub()
still searches for the pattern and returns zero or one, but the result of
the substitution (if any) is thrown away because there is no place
to put it. Such versions of awk
accept expressions
like the following:
sub(/USA/, "United States", "the USA and Canada")
For historical compatibility, gawk
accepts such erroneous code.
However, using any other nonchangeable
object as the third parameter causes a fatal error and your program
will not run.
Finally, if the regexp is not a regexp constant, it is converted into a string, and then the value of that string is treated as the regexp to match.
substr(string, start
[, length
])
¶Return a length-character-long substring of string,
starting at character number start. The first character of a
string is character number one.49
For example, substr("washington", 5, 3)
returns "ing"
.
If length is not present, substr()
returns the whole suffix of
string that begins at character number start. For example,
substr("washington", 5)
returns "ington"
. The whole
suffix is also returned
if length is greater than the number of characters remaining
in the string, counting from character start.
If start is less than one, substr()
treats it as
if it was one. (POSIX doesn’t specify what to do in this case:
BWK awk
acts this way, and therefore gawk
does too.)
If start is greater than the number of characters
in the string, substr()
returns the null string.
Similarly, if length is present but less than or equal to zero,
the null string is returned.
The string returned by substr()
cannot be
assigned. Thus, it is a mistake to attempt to change a portion of
a string, as shown in the following example:
string = "abcdef" # try to get "abCDEf", won't work substr(string, 3, 3) = "CDE"
It is also a mistake to use substr()
as the third argument
of sub()
or gsub()
:
gsub(/xyz/, "pdq", substr($0, 5, 20)) # WRONG
(Some commercial versions of awk
treat
substr()
as assignable, but doing so is not portable.)
If you need to replace bits and pieces of a string, combine substr()
with string concatenation, in the following manner:
string = "abcdef" … string = substr(string, 1, 2) "CDE" substr(string, 6)
tolower(string)
¶Return a copy of string, with each uppercase character
in the string replaced with its corresponding lowercase character.
Nonalphabetic characters are left unchanged. For example,
tolower("MiXeD cAsE 123")
returns "mixed case 123"
.
toupper(string)
¶Return a copy of string, with each lowercase character
in the string replaced with its corresponding uppercase character.
Nonalphabetic characters are left unchanged. For example,
toupper("MiXeD cAsE 123")
returns "MIXED CASE 123"
.
At first glance, the split()
and patsplit()
functions appear to be
mirror images of each other. But there are differences:
split()
treats its third argument like FS
, with all the
special rules involved for FS
.
FS
Versus FPAT
: A Subtle Difference.
|
Matching the Null String
In $ echo abc | awk '{ gsub(/m*/, "X"); print }' -| XaXbXcX Although this makes a certain amount of sense, it can be surprising. |
Unless you use the --non-decimal-data option, which isn’t recommended. See Allowing Nondecimal Input Data for more information.
Note that this means
that the record will first be regenerated using the value of OFS
if
any fields have been changed, and that the fields will be updated
after the substitution, even if the operation is a “no-op” such
as ‘sub(/^/, "")’.
This is different from C and C++, in which the first character is number zero.
Next: Input/Output Functions, Previous: Numeric Functions, Up: Built-in Functions [Contents][Index]


It looks like Epicodus's Ruby/Rails track might be right for you! Take a look at Epicodus's course descriptions for Ruby and Ruby on Rails to see if you agree. Then, you can go to Epicodus's Seattle or Portland class schedule to see when the next Ruby/Rails track begins!
It looks like Epicodus's PHP/Drupal track might be right for you! Take a look at Epicodus's course descriptions for PHP and Drupal to see if you agree. Then, you can go to Epicodus's Seattle or Portland class schedule to see when the next PHP/Drupal track begins!
It looks like Epicodus's Java/Android track might be right for you! Take a look at Epicodus's course descriptions for Java and Android to see if you agree. Then, you can go to Epicodus's Seattle or Portland class schedule to see when the next Java/Android track begins!
It looks like Epicodus's CSS/Design track might be right for you! Take a look at Epicodus's course descriptions for CSS and Design to see if you agree. Then, you can go to Epicodus's Seattle or Portland class schedule to see when the next CSS/Design track begins!
It looks like Epicodus's C#/.NET track might be right for you! Take a look at Epicodus's course descriptions for C# and .NET to see if you agree. Then, you can go to Epicodus's Seattle or Portland class schedule to see when the next C#/.NET track begins!


Grand Master Schule:
The
Medallion of Warrior
is awarded to those who pass the Warrior test. Speak with
Master Auron in Gludin Village
. You'll find him at the Warrior Mercenary Guild in the northern part of the village. Good luck!
Return


About
PROGRAM
Pricing
BLOG
Contact US
Let's Talk About Your Business
Schedule a Free Intro Call
Having trouble saying our name?
We're pronounced "Ray-i-fy Academy"
Icons are: rocket launch, Workload Management, and features by Vectors Market
from the Noun Project.
Images are: Pixabay
Privacy Policy
Terms and Conditions


--- layout: default title: Home ---
I am a mathematician. I have conducted research and written articles in pure and applied mathematics, as well as physics, though my primary area of research is algebraic topology, specifically categorical algebra in equivariant homotopy theory.
I teach following the principle of active learning, and have developed and assessed curricula for flipped-classroom and other active learning styles for a wide range of math courses, using both traditional and mastery-based grading schema.
I have experience with GAP, Macaulay2, and python.
I also enjoy swing dancing, hiking, and music.
I am an Assistant Teaching Professor at Georgetown University in the Department of Mathematics and Statistics.
I was a Visiting Assistant Professor in the Math Department at Holy Cross from 2020 to 2021, and was a Postdoctoral Scholar in the topology group at the University of Kentucky from 2017 to 2020.
I completed my Ph.D. in Mathematics at the University of Virginia in 2017, under the supervision of Mike Hill.
I received my B.S. from Union College summa cum laude in 2011, majoring in mathematics and physics, with minors in classical history and Ancient Greek.
Full Curriculum Vitae (updated 07 Jan 2022).
Georgetown Math Club
UKY Undergraduate Math Club
UKY Math Lab
Fall 2018 Midwest Topology Seminar (UKY)
Email: peterbonventre at gmail dot com


Seeds may be up to 10 ASCII characters long.
Level-up x% of normal
Do not shuffle key items to keep the general flow of the game "vanilla".
Do not change the inventory of item, weapon, armor, or magic shops.
Do not change the contents of treasure chests.
Do not generate random starting gear.
Do not randomize the Fiend fights.
Advanced Item & Shop distribution.
Fiend 1 fights drop ribbons 100% of the time.


Payment Successful
Diamond will be added in your account shortly.
Marchent
Airtime NCash Private Limited
Time & Date
Mode of Payment
Garena Voucher
Transaction Status
Success
Subject
Promo Topup
Payment to
Garena Online Private Limited
2020 © Nayem Technology Ltd.


{% extends "layout.html" %} {% block page_title %} Savings {% endblock %} {% block content %} {% include "../includes/phase_banner_alpha.html" %} Savings How much money do you have saved? Savings can include bank accounts, investments and ISA's. No savings Less than £5,500 Between £5,501 and £15,999 Over £16,000 {% endblock %} {% block body_end %} {% include "includes/scripts.html" %} {% endblock %}
Savings can include bank accounts, investments and ISA's.


Single - Prepend empty item
Specifies that single option can be selected at once. Additional an empty element is prepended to the dropdown.
oi-options="item for (key, item) in shopObjShort"
ng-model="bundle"
oi-select-options="{
prependEmptyItem: true
}"


{% extends 'base.html'%} {% load static %} {% block content%} Hood updates {% if user.is_authenticated and user.neighbourhood != None %} To the Hood Logout {% elif user.is_authenticated %} Join a community Logout {% else %} Log In Join Us {% endif %} Welcome to Hood-Updates Be safe, Get informed and Get friends in a community! Home About Us {% endblock content%}


How to withdraw funds to the exchange?
You should fill out "Payment ID" field with the key which you have received in payment details of Exchange.


Contents
Short Descriptions
|
is a userspace helper program for the linux CIFS client filesystem. There are a number of activities that the kernel cannot easily do itself. This program is a callout program that does these things for the kernel and then returns the result. It is not intended to be run from the command-line. |
|
|
is a userspace helper program for the linux CIFS client filesystem. It is intended to be run when the kernel calls request-key for a particular key type. It is not intended to be run from the command-line. |
|
|
is a tool for managing credentials (username and password) for the purpose of establishing sessions in multiuser mounts. |
|
|
is a userspace helper to display an ACL in a security descriptor for Common Internet File System (CIFS). |
|
|
mounts a Linux CIFS filesystem. It is usually invoked indirectly by the mount(8) command when using the "-t cifs" option. |
|
|
mounts a SMB3-based filesystem. It is usually invoked indirectly by the mount(8) command when using the "-t smb3" option. |
|
|
is intended to alter an ACL of a security descriptor for a file system object. |
|
|
displays quota information for a SMB filesystem. |
|
|
displays SMB-specific file information, such as security descriptors and quotas. |


To merge pdfs, press Choose file button to select file. Once loaded, press button again to load next file. Repeat until all files loaded
To print, press ctrl+p(in Windows) or cmd+p(mac) and select choose pages to print. Input 2-#lastPage. This way front page with this text will not be printed


Referendum: Rev Owusu Bempah campaigns for ‘YES’ vote
The founder and leader of Glorious Word Power Ministry International, Rev Isaac Owusu Bempah is likely to vote ‘Yes’ in the impending December referendum.
The controversial man of God in an interview with NEAT FM’s morning show ‘Ghana Montie’ noted that government's stance on the referendum is what must be preached to the public .
He was unhappy with the NDC’s sudden 'U-turn' on the referendum considering the fact that they had all this while been cooperating constructively with the government and other stakeholders to campaign for a 'Yes' vote.
“I was informed that the NDC agreed to vote for ‘Yes’. I don’t know why they have changed their mind,” he said.
Listen to interview below


What do we do?
{{ site.what_we_do }}
--- layout: compress newsletter: true --- {% include head.html %}
{% include header.html %}If you'd like to receive the occasional update about upcoming events and community news, drop your details into the form below. More info.
{% include newsletter.html %}


Eight South African policemen charged with murder of Nigerian
THE police authorities in South Africa have arraigned in court eight of their officers over the torture and murder of a Nigerian, Ibrahim Olamilekan Badmus.
Trying them is the North Gauteng High Court in Pretoria
The accused persons – two women and six men – were arrested in October 2017 by police watchdog, the Independent Police Investigative Directorate, for the torture and the murder of 25-year-old Badmus who was accused of selling drugs in the Vanderbijlpark area.
The court heard that on October 10, 2017 the police officers pounced on the community where the deceased used to stay following a tip-off about drugs being sold in the house.
In their affidavits, the eight cops claimed that while conducting their operation they found Badmus unresponsive from a drug overdose. This version of events was disputed by state witness, Chukwuemeka Nelson Ozor, who was in the house on the day of the incident.
Read Also: Two FRSC officials arraigned for ‘murder’
Ozor told Judge Mokhine Mosopa that the police broke into the house, started searching and questioning everyone, then moved to search Badmus’s room and beat him up.
He added that one of the police officials then fetched a plastic bag that was then wrapped around the deceased’s head, suffocating him to death.
A paramedic that attended to the scene John Gous told the court that when medical officials arrived, the 25-year-old was unresponsive and sweaty with no pulse but there were no signs of physical injuries. He was declared dead on the spot.


Class: ActionDispatch::Routing::RouteSet::Generator
| Relationships & Source Files | |
| Inherits: | Object |
| Defined in: | actionpack/lib/action_dispatch/routing/route_set.rb |
Class Method Summary
Instance Attribute Summary
- #different_controller? ⇒ Boolean readonly
- #named_route readonly
- #options readonly
- #recall readonly
- #set readonly
- #named_route_exists? ⇒ Boolean readonly private
Instance Method Summary
- #controller
- #current_controller
-
#generate
Generates a path from routes, returns a RouteWithParams or MissingRoute.
-
#normalize_controller!
Remove leading slashes from controllers.
-
#normalize_controller_action_id!
This pulls
:controller
,:action
, and:id
out of the recall. - #normalize_options!
- #use_recall_for(key)
-
#use_relative_controller!
if the current controller is “foo/bar/baz” and controller: “baz/bat” is specified, the controller becomes “foo/baz/bat”.
- #segment_keys private
Constructor Details
.new(named_route, options, recall, set) ⇒ Generator
# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 690
def initialize(named_route, , recall, set) @named_route = named_route @options = @recall = recall @set = set normalize_controller_action_id! use_relative_controller! normalize_controller! end
Instance Attribute Details
#different_controller? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 777
def different_controller? return false unless current_controller controller.to_param != current_controller.to_param end
#named_route (readonly)
[ GitHub ]
#named_route_exists? ⇒ Boolean
(readonly, private)
[ GitHub ]
# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 783
def named_route_exists? named_route && set.named_routes[named_route] end
#options (readonly)
[ GitHub ]# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 688
attr_reader :, :recall, :set, :named_route
#recall (readonly)
[ GitHub ]# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 688
attr_reader :, :recall, :set, :named_route
#set (readonly)
[ GitHub ]# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 688
attr_reader :, :recall, :set, :named_route
Instance Method Details
#controller
[ GitHub ]# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 702
def controller @options[:controller] end
#current_controller
[ GitHub ]# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 706
def current_controller @recall[:controller] end
#generate
Generates a path from routes, returns a RouteWithParams or MissingRoute. MissingRoute will raise ::ActionController::UrlGenerationError
.
# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 773
def generate @set.formatter.generate(named_route, , recall) end
#normalize_controller!
Remove leading slashes from controllers
# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 761
def normalize_controller! if controller if controller.start_with?("/") @options[:controller] = controller[1..-1] else @options[:controller] = controller end end end
#normalize_controller_action_id!
This pulls :controller
, :action
, and :id
out of the recall. The recall key is only used if there is no key in the options or if the key in the options is identical. If any of :controller
, :action
or :id
is not found, don’t pull any more keys from the recall.
# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 743
def normalize_controller_action_id! use_recall_for(:controller) || return use_recall_for(:action) || return use_recall_for(:id) end
#normalize_options!
[ GitHub ]# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 718
def # If an explicit :controller was given, always make :action explicit # too, so that action expiry works as expected for things like # # generate({controller: 'content'}, {controller: 'content', action: 'show'}) # # (the above is from the unit tests). In the above case, because the # controller was explicitly given, but no action, the action is implied to # be "index", not the recalled action of "show". if [:controller] [:action] ||= "index" [:controller] = [:controller].to_s end if .key?(:action) [:action] = ( [:action] || "index").to_s end end
#segment_keys (private)
[ GitHub ]# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 787
def segment_keys set.named_routes[named_route].segment_keys end
#use_recall_for(key)
[ GitHub ]# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 710
def use_recall_for(key) if @recall[key] && (!@options.key?(key) || @options[key] == @recall[key]) if !named_route_exists? || segment_keys.include?(key) @options[key] = @recall[key] end end end
#use_relative_controller!
if the current controller is “foo/bar/baz” and controller: “baz/bat” is specified, the controller becomes “foo/baz/bat”
# File 'actionpack/lib/action_dispatch/routing/route_set.rb', line 751
def use_relative_controller! if !named_route && different_controller? && !controller.start_with?("/") old_parts = current_controller.split("/") size = controller.count("/") + 1 parts = old_parts[0...-size] << controller @options[:controller] = parts.join("/") end end