(Defined in: jpgraph_table.php : 459)
Class usage and Overview
When visualizing data it is often useful to have both a quick graphical view which can show high level trends and a detailed view with the exact figures. The pro-version of JpGraph now supports the creation of graphic tables in all available graph types.
The specification of the tables data, position, fonts, alignment, colors, borders etc. is all fully flexible with an intuitive set of APIs to control the table. In this HowTo we will start by showing how to build basic tables which we will augment with more advanced formatting by introducing the formatting capabilities one by one.
In addition to adding data tables to graphs it is also possible to create graphic tables on the fly all by its own. This has the advantage compared with HTML tables to allow users to make copies of the table while maintaining the exact formatting of the table. Figure 2. shows an example with just a graphical table
Class Methods
Initialize the size for a newly created table
| Argument | Default | Description |
|
$aRows
|
0
| Number of rows in table |
|
$aCols
|
0
| Number of columns in table |
|
$aFillText
|
''
| Deafult fill value for each cell |
Description:
After the table has been created the size of the table has to be established. This can either be done by a call to this method or by supplying a matrix in the call to Set().
If You plan on specifying the cells by individual calls to Set($row,$col,$value) then this method must have been called after the creation of the table.
When You set the entire table content with a call to Set() with a full 2D-matrix as argument the size of the matrix will be used to determine the size of the table.
$table = new GTextTable();
$table->Init(5,7);
Merge cells in the specified range
| Argument | Default | Description |
|
$aR1
| | Top left row |
|
$aC1
| | Top left column |
|
$aR2
| | Bottom right row |
|
$aC2
| | Bottom right column |
|
$aHAlign
|
'center'
| Horizontal alignment |
|
$aVAlign
|
'center'
| Vertical alignment |
Description:
Merge cells in the specified range. The alignment of the merged cells cab be set by the laet two optional arguments.
Note: To merge all cells in a specific row or column use the alternative methods MergeCol() and MergeRow()
See also:
// Merge the top 2x2 cells
$table->MergeCells(0,0,1,1,"right");
Merge all cells in one column
| Argument | Default | Description |
|
$aCol
| | Column index |
|
$aHAlign
|
'center'
| Horizontal alignment |
|
$aVAlign
|
'center'
| Vertical alignment |
Description:
Merge all cells in one column.
Note: By default if no alignment is given the content in the merged cells will be centered both horixontally and vertically.
See also:
$table->MergeCol(3);
Merge all cells in one row.
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aHAlign
|
'center'
| Horizontal alignment |
|
$aVAlign
|
'center'
| Vertical alignment |
Description:
Merge all cells in one row.
Note: By default if no alignment is given the content in the merged cells will be centered both horixontally and vertically.
See also:
$table->MergeRow(2,"right","top");
Set the value in cell or cells
| Argument | Default | Description |
|
$aArg1
| | 2D-Array or Row index |
|
$aArg2
|
NULL
| [Oprional] Columns index |
|
$aArg3
|
NULL
| (Optional) Value for cell |
Description:
This method is used to put values in a cell or initialize the table using a 2D-matrix. The method is polymorphic and can be called in two ways
- Set($aTableMatrix), Specify the entire table by supplying a 2D-Matrix
- Set($aRow,$aCol,$aValue), Set the value in a specific cell. Note that if You use this method then the size of the table muts have been previously specified with a call to Init()
Note: If the table is initialized with an 2D-matrix then there is no need to call the Init() method since the ovberall size of the table will be set to the same as the supplied matrix.
Note: After the entire table have beedn specified with an initial 2D-array it is of course still possible to modify/set individual values with a call to the second version of the table.
See also:
// Create a new table from a 2D-array
$data = array(
array("Jun",34,18,13),
array("Jul",15,9,12));
$table = new GTextTable();
$table->Set($data);
$table->SetAlign("right");
...
// Create a table by setting individual cells
$table = new GTextTable();
$table->Init(5,7); // 5 rows by 7 column sized table
for($i=0; $i < 5; ++$i) {
for($j=0; $j < 7; ++$j) {
$table->Set(0,0,$data[$i][$j]);
}
}
...
$table->Set(0,0,$data1);
Set cell alignment for entire table or range of cells
| Argument | Default | Description |
|
$aR1HAlign
|
null
| Top left row OR horizontal alignment |
|
$aC1VAlign
|
null
| Top left column OR vertical alignment |
|
$aR2
|
null
| Bottom right row |
|
$aC2
|
null
| Bottom right column |
|
$aHArg
|
null
| Horizontal alignment |
|
$aVArg
|
'center'
| Vertical alignment |
Description:
Set cell alignment for entire table or range of cells. The alignment fcan be specifed both horizontally and vertically.
The possible settings for horizontal alignment are
"left", "center", "right"
Vertical alignment can be set as
"top","center","bottom"
Note that the alignment options are specified as strings.
See also:
// Set the default alignment for the entire table
$table->SetAlign("right");
// The set the first column to use left alignment
$table->SetColAlign(0,"left");
Specify where the anchor position of the table should be
| Argument | Default | Description |
|
$aXAnchor
| | Horizontal anchor |
|
$aYAnchor
|
'top'
| Vertical anchor |
Description:
Specify where the anchor of the table should be. By default the anchor is top left corner so that the positoin you specify for the table is taken as the top left corner.
This can be adjusted horixontally as
"left", "center" or "right"
Vertically it can be adjusted as
"top","center","bottom"
See also:
// Make the position refer to the center of the table
$table->SetAnchorPos('center','center');
Set the color and weight on the border around the table-
| Argument | Default | Description |
|
$aWeight
|
1
| Weight of border |
|
$aColor
|
'black'
| Color of border |
Description:
Set the color and weight on the border around the table. By default the border is a 1 pixel black solid line.
Note: Specify a weight of 0 to disable the border entirely.
See also:
...
$table->SetBorder(2,"navy");
...
Set cell alignment for a specified cell.
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aCol
| | Column index |
|
$aHorAlign
| | Horizontal alignment |
|
$aVertAlign
|
'bottom'
| Vertical alignment |
Description:
Set cell alignment for a specified cell. The alignment can be specifed both horizontally and vertically.
The possible settings for horizontal alignment are
"left", "center", "right"
Vertical alignment can be set as
"top","center","bottom"
Note that the alignment options are specified as strings.
See also:
$table->SetCellAlign(2,5,'left');
Set font color for a specific cell
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aCol
| | Column index |
|
$aColor
| | Font color |
Description:
Set font color for a specific cell.
Note: To set the default color for all cells use the SetColor() method.
See also:
$table->SetCellColor(3,1,'darkred');
Set a country flag in the background of the specified cell
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aCol
| | Column index |
|
$aFlag
| | Flag specification partial name or index |
|
$aScale
|
1.0
| Scaling factor to be used |
|
$aMix
|
100
| Blending factor (0-100) |
|
$aStdSize
|
3
| Which original size of flag image to use |
Description:
Set a country flag in the background of the specified cell.
Before this method can be used make sure that the file "jpgraph_flags.php" is included in the script.
All supported countries can be specified by setting the '$aFlag" parameter to either
- Numeric index, (0-238)
- Full or partial name, e.g. "norway"
- The unique string index for the country
For a list of all available flags please run the file "listallflags.php" in the Example directory.
The parameter "$aMix" is a value between 0-100 and specifies the blend factor for the flag.
The paraneter $aStdSize specifes one of three orignal izes of flag where size can be one of
- FLAGSIZE1, corresponds to an original flag size of 35x35 pixels
- FLAGSIZE2, corresponds to an original flag size of 60x60',
- FLAGSIZE3, corresponds to an original flag size of 100x100',
- FLAGSIZE4, corresponds to an original flag size of roughly 400x400
For best result always use an original flag that is at least as big as the size that is wanted, i.e. even though the scaling factor can be used to arbitrary change the size of any of these original flags the result when up scaling is not optimal since there is a need to interpolate. By starting with a larger original image which is the downsampled the result is much better.
Note 1: In order to lock either the height or the width of the flag to a specific value use the SetImageConstrain()
method.
See also:
// Set one row with a number of country flags and constrain
// the height to be 20 pixels
$countries = array('united states','united kingdom','french republic','denmark','iceland','canada');
$n = count($countries);
for($i=0; $i < $n; ++$i ) {
$table->SetCellCountryFlag(1,$i+1,$countries[$i]);
$table->SetCellImageConstrain(1,$i+1,TIMG_HEIGHT,20);
}
Specify URL for CSIM target
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aCol
| | Column index |
|
$aTarget
| | Target URL |
|
$aAlt
|
null
| ALT text |
Description:
Specify URL and optional ALT text for CSIM target for the specified cell.
See also:
$table->SetCellCSIMTarget(3,0,'detail.php','View detailes');
Specify background color in a cell
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aCol
| | Column index |
|
$aColor
| | background color |
Description:
Specify background color in a cell.
Note: To set the default background fill color for all cells usde the SetFillColor() method.
See also:
// Highlight cell (7,0)
$table->SetCellFillColor(7,0,'yellow');
Specify font family and style for a specific cell
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aCol
| | Column index |
|
$aFF
| | Font family |
|
$aFS
| | Font style |
|
$aFSize
|
10
| Font size |
Description:
Specify font family and style for a specific cell.
Note:To set the default font for all cells use the SetFont() method.
See also:
// Highlight cell (4,1) with red on yellow background
$table->SetCellFillColor(4,1,'yellow');
$table->SetCellColor(4,1,'darkred');
$table->SetCellFont(4,1,FF_ARIAL,FS_BOLD,12);
Set a background image in the specified cell
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aCol
| | Column index |
|
$aFile
| | Image file name |
|
$aScale
|
1.0
| Image scale factor |
|
$aMix
|
100
| Blending factor (0-100) |
Description:
Set a background image in the specified cell. The image is stored in the file with the name given as the third parameter.
The image name must end with a valid image prefix, i.e. one of ".png", ".jpg" or possibly ".gif"
Note: To set a default background image for all cells in the table use the SetImage() method.
See also:
// Put the image 'warning.jpg' in cell (3,6) and
// scale the image to half size
$table->SetCellImage(3,6,'warning.jpg',0.5);
Lock either the image height or width in a particular cell
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aCol
| | Column index |
|
$aType
| | Specify width or height constrain |
|
$aVal
| | Value of constrain |
Description:
Use this method to locj either the width or height of the image ina a cell. The non-specified image width or height will be automatically determied so that the orignal propertion of the image is maintained.
The $aType parameter is used to indicate if the value given should be interpretated as width or height constarin and is specifed as either
- TIMG_WIDTH, Interpret as width
- TIMG_HEIGHT,Interpret as height
See also:
// Make sure image in cell (3,1) is exactlyb 20 pixels
// in height
$table->SetCellImageConstrain(3,1,TIMG_HEIGHT,20);
Set number format in cell
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aCol
| | Column index |
|
$aF
| | Format string |
Description:
Set number format in cell. The number format should be given in the style of printf() family format strings. A cell that contains non numeric data will not be affected in any way by this method.
Note: It is the resposnibility of the client to make any necessary rounding of the numbers.
// Use two decimals with leading 0 on numbers
$this->SetCellNumberFormat(3,1,'%0.2f');
Set internal cell margin
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aCol
| | Column index |
|
$aPad
| | Internal cell margin (in pixels) |
Description:
Set internal cell margins in pixels.
By default the internal cell padding is 5 pixels.
Note: To change the default cell padding for all cells in the table use the Setpadding() method.
// Set 8 pixel cell padding for cell (1,3)
$table->SerCellPadding(3,1,8);
| Argument | Default | Description |
|
$aRow
| | No description available |
|
$aCol
| | No description available |
|
$aO
| | No description available |
Description:
No description available.
Set cell alignment for an entire column of cells.
| Argument | Default | Description |
|
$aCol
| | Column index |
|
$aHorAlign
| | Horizontal alignment |
|
$aVertAlign
|
'bottom'
| Vertical alignment |
Description:
Set cell alignment for an entire column of cells. The alignment can be specifed both horizontally and vertically.
The possible settings for horizontal alignment are
"left", "center", "right"
Vertical alignment can be set as
"top","center","bottom"
Note that the alignment options are specified as strings.
Note2: In order to set the default alignment for all cells in the table use the SetAlign() method.
See also:
$table->SetColAlign(3,'center');
Set font color for a entire column.
| Argument | Default | Description |
|
$aCol
| | Column index |
|
$aColor
| | Font color |
Description:
Set font color for a entire column.
Note: To set the default color for all cells use the SetColor() method.
See also:
$table->SetColColor(2,'blue');
Specify background color in an entire column of cells
| Argument | Default | Description |
|
$aCol
| | Column index |
|
$aColor
| | Background color |
Description:
Specify background color in an entire column of cells.
Note: To set the default background fill color for all cells usde the SetFillColor() method.
See also:
// Highlight column 3 with white text on gray bakground
$table->SetColFillColor(3,'darkgray');
$table->SetColColor(3,'white');
Specify font family and style for an entire column of cells
| Argument | Default | Description |
|
$aCol
| | Column index |
|
$aFF
| | Font family |
|
$aFS
| | Font style |
|
$aFSize
|
10
| Font size |
Description:
Specify font family and style for an entire column of cells
Note:To set the default font for all cells use the SetFont() method.
See also:
$table->SetColFont(0,FF_ARIAL,FS_NORMAL,12);
Set style, color and width of a specified vertical grid line
| Argument | Default | Description |
|
$aCol
| | Grind line to specify |
|
$aWeight
|
1
| Width of line |
|
$aColor
|
'black'
| Color of line |
|
$aStyle
|
TGRID_SINGLE
| Grid line style (see below) |
Description:
Set style, color and width of a specified vertical grid line in the table. The grid lines are numbered from 1 to columns-1 and from left to right. The grid lines are defined as the internal lines in the table. The outer border of the table is controlled separately with the SetBorder() method.
The style for the grid lines can be one of the following three
- TGRID_SINGLE, Single solid line of the given color and weight
- TGRID_DOUBLE, Two solid lines of the given color and weight. The distance between the lines is the same as the weight.
- TGRID_DOUBLE2, Two solid lines of the given color. The first line has twice the weight as the second. This type of line is often used to mark a summation line in a table.
Note: In order to remove all grid lines in the table set the width to 0.
$table->SetColGrid(1,1,'black',TGRID_DOUBLE2);
Set background image for an entire column of cells
| Argument | Default | Description |
|
$aCol
| | Column index |
|
$aFile
| | Filename of image |
|
$aScale
|
1.0
| Scale of image |
|
$aMix
|
100
| Blend factor for image (0-100) |
Description:
Set background image for an entire column of cells. The should be stored in a file whos filename is given as the second parameter. The scdaling factor can be specifed as an arbitary floating point value between 0-1.
The Blend factor is specified as an integer between 0 and 100 where 100 is 100% blend factor.
See also:
$table->SetColImage(2,$imageFileNmae,0.7);
Set number format in an entire column of cells
| Argument | Default | Description |
|
$aCol
| | Column index |
|
$aF
| | Format string |
Description:
Set number format in an entire column of cells. The number format should be given in the style of printf() family format strings. A cell that contains non numeric data will not be affected in any way by this method.
Note: It is the resposnibility of the client to make any necessary rounding of the numbers.
See also:
// Use two decimals with leading zero
$table->SetColNumberFormat(4,'%0.2f');
Set font color for the whole table or a range of cells.
| Argument | Default | Description |
|
$aArgR1
| | Top left row OR font color |
|
$aC1
|
null
| Top left column |
|
$aR2
|
null
| Bottom right row |
|
$aC2
|
null
| Bottom right column |
|
$aArg
|
null
| Font color |
Description:
Set font color for the whol table or a range of cells.
Thie method is polymorphic an can be called in two ways
- SetColor($aColor), Set the font color for the entire table
- SetColor($aR1,$aC1,$aR2,$aC2,$aColor), Set the font color for a range of cells specified by the top left and bottom right cell.
See also:
// Set the font color for the entire table
$table->SetColor('darkgray');
// Set the font color for the top left 2x2 cells
$table->SetColor(0,0,1,1,'blue');
Set internal cell margins in pixels for all cells in the specified column.
| Argument | Default | Description |
|
$aCol
| | Column index |
|
$aPad
| | Internal cell margin |
Description:
Set internal cell margins in pixels for all cells in the specified column.
By default the internal cell padding is 5 pixels.
Note: To change the default cell padding for all cells in the table use the Setpadding() method.
See also:
$table->SetColPadding(3,12):
| Argument | Default | Description |
|
$aCol
| | No description available |
|
$aO
| | No description available |
Description:
No description available.
Set URL CSIM target for all cells in the table
| Argument | Default | Description |
|
$aTarget
| | Target URL |
|
$aAlt
|
null
| ALT etxt |
|
$aAutoTarget
|
false
| TRUE=Append auto row and column argument |
Description:
Set URL CSIM target for all cells in the table. If the $aAutoTarget is set to TRUE then an additional GET method argument will be appended to the base URL. This makes it possible to spcify a base URL which will then be called with the two additional arguments "row" and "col". This can be used to determien from which cell the click was made.
An example will clarify this.
Assume that the base URL is "target.php". If we then setup the table with
$table->SetCSIMTarget('target.php','Click for details',true);
then if the user clicks the cell (1,1) the url called will be "target.php?row=1&col=1", for cell (2,3) the call would be "target.php?row=2&col=3" and so on.
// Assume that the base URL is "target.php".
$table->SetCSIMTarget('taregt.php','Click for details',true);
Set background image for an entire range of cells or entire table
| Argument | Default | Description |
|
$aArgR1
| | Top left row OR color |
|
$aC1
|
null
| Top left column |
|
$aR2
|
null
| Bottom right row |
|
$aC2
|
null
| Bottom right column |
|
$aArg
|
null
| Color for range |
Description:
Set background image for an entire range of cells or entire table.
This method is polymorphic and can be called in two ways
- SetFillColor($aFillColor), Set fill color for all cells in the table
- SetFillColor($aR1,$aC1,$aR2,$aC2,$aFillColor), Set fill color for a range of cells
See also:
// Set default fill color for entire table
$table->SetFillColor('lightgray');
// Highlight top left 2x2 cells
$table->SetFillColor(0,0,1,1,'yellow');
Set font for entire table or range of cells.
Description:
Set font for entire table or range of cells. This si a polymorphic method and can be called in two ways-
- SetFont($aFF,$aFS,$aFSize), Set default font for entire table
- SetFont($aR1,$aC1,$aR2,$aC2,$aFF,$aFS,$aFSize), Set default font for range of cells table
See also:
// Set default font for entire table
$table->SetFont(FF_TIMES,FS_NORMAL,11);
// Set font for the two top rows
$table->SetFont(0,0,1,5,FF_ARIAL,FS_BOLD,12);
Set style, color and width of all table grid lines
| Argument | Default | Description |
|
$aWeight
|
1
| Width of grid lines |
|
$aColor
|
'black'
| Color of grid lines |
|
$aStyle
|
TGRID_SINGLE
| Style of grid lines |
Description:
Set style, color and width of all table grid lines. The grid lines are defined as the internal lines in the table. The outer border of the table is controlled separately with the SetBorder() method.
The style for the grid lines can be one of the following three
- TGRID_SINGLE, Single solid line of the given color and weight
- TGRID_DOUBLE, Two solid lines of the given color and weight. The distance between the lines is the same as the weight.
- TGRID_DOUBLE2, Two solid lines of the given color. The first line has twice the weight as the second. This type of line is often used to mark a summation line in a table.
Note: In order to remove all grid lines in the table set the width to 0.
See also:
// Set the default grid lines for whole table
$table->SetGrid(1,'gray',TGRID_SOLID);
Set background image for an entire range of cells or entire table
| Argument | Default | Description |
|
$aFileR1
| | Top left row OR file name |
|
$aScaleC1
|
null
| Top left column OR scale |
|
$aMixR2
|
null
| Bottom right row OR blend factor |
|
$aC2
|
null
| Bottom right column |
|
$aFile
|
null
| Image filename |
|
$aScale
|
1.0
| Image scale |
|
$aMix
|
100
| Blend factor (0-100) |
Description:
Set background image for an entire rnage of cells or entire table. The should be stored in a file whos filename is given as the second parameter. The scdaling factor can be specifed as an arbitary floating point value between 0-1.
The Blend factor is specified as an integer between 0 and 100 where 100 is 100% blend factor.
See also:
// Set the same background image for all cells in the table
$table->SetImage($fileName,0.8);
// Set the background image for the top 2x2 cells
$table->SetImage(0,0,1,1,$fileName,0.8);
Specify minimum column width
| Argument | Default | Description |
|
$aColWidth
| | Width or column index |
|
$aWidth
|
null
| Width |
Description:
Specify minimum column width of all columns or a specific column. The method is polymorphic and can be called in two different ways.
- SetMinColWidth($aWidth), Set the minimum width for all columns in the table
- SetMinColWidth($aColIndex,$aWidth), Set the minimum width for the specified column
Note that the column width will always be wide enough to hold the widest text or image. This means that the table will never to adny clipping of data.
See also:
// Make all columns at least 50 pixels wide
$table->SetMinColWidth(50);
Specify minimum row height of all rows or a specific row.
| Argument | Default | Description |
|
$aRowHeight
| | Row index or height |
|
$aHeight
|
null
| Height |
Description:
Specify minimum row height of all rows or a specific row. The method is polymorphic and can be called in two different ways.
- SetMinRowHeight($aWidth), Set the minimum height for all rows in the table
- SetMinRowHeight($aRowIndex,$aWidth), Set the minimum height for the specified table row
Note that the row height will always be tall enough to hold the highest text or image. This means that the table will never to adny clipping of the data.
See also:
// Make the top row at least 40 pixels in height
$table->SetMinRowHeight(0,40);
Set number format for entire table or a range of cells.
| Argument | Default | Description |
|
$aArgR1
| | Top left row OR format string |
|
$aC1
|
null
| Top left column |
|
$aR2
|
null
| Bottom right row |
|
$aC2
|
null
| Bottom right column |
|
$aArg
|
null
| Format string |
Description:
Set number format for entire table or a range of cells. The number format should be given in the style of printf() family format strings. A cell that contains non numeric data will not be affected in any way by this method.
The method is polymorphic and can be called in two ways
- SetNumberFormat($aFormat), Set the number format for the entire table
- SetNumberFormat($aFormat), Set the number format for a range of cells
Note: It is the resposnibility of the client to make any necessary rounding of the numbers.
See also:
$table->SetNumberFormat('%0.2f');
Set internal cell margins for all cells in the specified range or entire table
| Argument | Default | Description |
|
$aArgR1
| | Top left row OR cell padding |
|
$aC1
|
null
| Top left column |
|
$aR2
|
null
| Bottom right row |
|
$aC2
|
null
| Bottom right column |
|
$aPad
|
null
| Cell padding |
Description:
Set internal cell margins for all cells in the specified range or entire table
By default the internal cell padding is 5 pixels.
This method is polymorphic and can be called in two ways
- SetPadding($aPadding), Set padding for all cells in the table
- SetPadding($aR1,$aC1,$aR2,$aC2,$aPadding), Set padding for the specified range of cells
See also:
// First set the default padding for all cells
$table->SetPadding(8);
// Set the padding much larger in the top left 2x2 cells
$table->SetPadding(0,0,1,1,20);
Set absolute pixel position the table
| Argument | Default | Description |
|
$aX
| | X Coordinate of top left corner |
|
$aY
| | Y Coordinate of top left corner |
Description:
Set absolute pixel position for top left corner of the table. This is the simplest way of positioning a table in the graph area.
Note: The anchor position of the table can also be adjusted by the method SetAnchorPos(). By deagule the top left corner of the table is aligned with the specified coordinates.
See also:
$table->SetPos(10,10);
Set cell alignment for an entire row of cells.
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aHorAlign
| | Horizontal alignment |
|
$aVertAlign
|
'bottom'
| Vertical alignment |
Description:
Set cell alignment for an entire row of cells. The alignment can be specifed both horizontally and vertically.
The possible settings for horizontal alignment are
"left", "center", "right"
Vertical alignment can be set as
"top","center","bottom"
Note that the alignment options are specified as strings.
Note2: In order to set the default alignment for all cells in the table use the SetAlign() method.
See also:
$table->SetRowAlign(6,'right');
Set font color for an entire row.
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aColor
| | Font color |
Description:
Set font color for an entire row.
Note: To set the default color for all cells use the SetColor() method.
See also:
$table->SetRowColor(5,'red');
Specify background color in an entire row of cells.
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aColor
| | Background color |
Description:
Specify background color in an entire row of cells.
Note: To set the default background fill color for all cells usde the SetFillColor() method.
See also:
// Highlight row 0 with white text on gray bakground
$table->SetRowFillColor(0,'darkgray');
$table->SetRowColor(0,'white');
Specify font family and style for an entire row of cells
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aFF
| | Font family |
|
$aFS
| | Font style |
|
$aFSize
|
10
| Font size |
Description:
Specify font family and style for an entire row of cells
Note:To set the default font for all cells use the SetFont() method.
See also:
$table->SetRowFont(0,FF_ARIAL,FS_NORMAL,12);
Set style, color and width of a specified horizontal grid line
| Argument | Default | Description |
|
$aRow
| | Grind line to specify |
|
$aWeight
|
1
| Width of line |
|
$aColor
|
'black'
| Color of line |
|
$aStyle
|
TGRID_SINGLE
| Grid line style (see below) |
Description:
Set style, color and width of a specified horizontal grid line in the table. The grid lines are numbered from 1 to columns-1 and from top to bottom. The grid lines are defined as the internal lines in the table. The outer border of the table is controlled separately with the SetBorder() method.
The style for the grid lines can be one of the following three
- TGRID_SINGLE, Single solid line of the given color and weight
- TGRID_DOUBLE, Two solid lines of the given color and weight. The distance between the lines is the same as the weight.
- TGRID_DOUBLE2, Two solid lines of the given color. The first line has twice the weight as the second. This type of line is often used to mark a summation line in a table.
Note: In order to remove a grid line in the table set the width to 0.
See also:
// Add a double line of width=2 to mark the summation row
// in a atable
$table->SetRowGrid(4,2,'black',TGRID_DOUBLE2);
Set background image for an entire row of cells
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aFile
| | Filename of image |
|
$aScale
|
1.0
| Scale of image |
|
$aMix
|
100
| Blend factor for image (0-100) |
Description:
Set background image for an entire row of cells. The should be stored in a file whos filename is given as the second parameter. The scdaling factor can be specifed as an arbitary floating point value between 0-1.
The Blend factor is specified as an integer between 0 and 100 where 100 is 100% blend factor.
See also:
$table->SetRowImage(1,$fileName,0.5,60);
Set number format in an entire row of cells.
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aF
| | Format string |
Description:
Set number format in an entire row of cells. The number format should be given in the style of printf() family format strings. A cell that contains non numeric data will not be affected in any way by this method.
Note: It is the resposnibility of the client to make any necessary rounding of the numbers.
See also:
// Use 2 decimals with leading zero
$table->SetRowNumberFormat('%0.2f');
Set internal cell margins in pixels for all cells in the specified row
| Argument | Default | Description |
|
$aRow
| | Row index |
|
$aPad
| | Internal cell margin |
Description:
Set internal cell margins in pixels for all cells in the specified row.
By default the internal cell padding is 5 pixels.
Note: To change the default cell padding for all cells in the table use the Setpadding() method.
See also:
$table->SetRowPadding(4,12);
| Argument | Default | Description |
|
$aRow
| | No description available |
|
$aO
| | No description available |
Description:
No description available.
Set position of the entire table on the graphn using the current X,Y sclae
| Argument | Default | Description |
|
$aX
| | X-position according to current scle |
|
$aY
| | Y position according to curent scale |
Description:
This method makes it possible to place the table at specific scale coordinates within the plot area of the graph. This could for example be used to place a small table at each of the data points in a line graph (or some other type of plot) to show fyrther details.
Note: The anchor position of the table can also be adjusted by the method SetAnchorPos(). By deagule the top left corner of the table is aligned with the specified coordinates.
See also:
// Create the tables and position them at each data point
// In the line plot
// The data for each table is held in $tabledata[] array
// and the plot data is available in $datay[] array.
$n = count($datay);
$table=array();
for($i=0; $i < $n; ++$i ) {
$table[$i] = new GTextTable();
$table[$i]->Set($tabledata[$i]);
$table[$i]->SetScalePos($i,$datay[$i]);
$table[$i]->SetFillColor('lightyellow@0.5');
// We center all tables on the data point
$table[$i]->SetAnchorPos('center','middle');
$graph->Add($table[$i]);
}
...
// Create the line
$l1 = new LinePlot($datay);
$l1->SetWeight(2);
$graph->Add($l1);
...
| Argument | Default | Description |
|
$aArgR1
| | No description available |
|
$aC1
|
null
| No description available |
|
$aR2
|
null
| No description available |
|
$aC2
|
null
| No description available |
|
$aO
|
null
| No description available |
Description:
No description available.
Return basic HTML version of the table
Description:
Return basic HTML version of the table. Note that this is just a very basic representation of the table without any of the formatting applied the table.
$str = $table->toString();
Create a new Graphic text table
Description:
Create a new Graphic text table. The next call should either be to specify a value for the table (using GTextTable::Set() ) or a call to GTextTable::Init() to specify the size of table.
See also:
$table = new GTextTable();
$table->Set($tableData);


| Table Header | Table Header | Table Header | Table Header |
|---|---|---|---|
| Content Goes Here | This is longer content Donec id elit non mi porta gravida at eget metus. | Content Goes Here | Content Goes Here |
| Content Goes Here | This is longer Content Goes Here Donec id elit non mi porta gravida at eget metus. | Content Goes Here | Content Goes Here |
| Content Goes Here | This is longer Content Goes Here Donec id elit non mi porta gravida at eget metus. | Content Goes Here | Content Goes Here |
| Table Header | Table Header | Table Header | Table Header |
|---|---|---|---|
| Content Goes Here | This is longer content Donec id elit non mi porta gravida at eget metus. | Content Goes Here | Content Goes Here |
| Content Goes Here | This is longer Content Goes Here Donec id elit non mi porta gravida at eget metus. | Content Goes Here | Content Goes Here |
| Content Goes Here | This is longer Content Goes Here Donec id elit non mi porta gravida at eget metus. | Content Goes Here | Content Goes Here |
| Table Header | Table Header | Table Header | Table Header |
|---|---|---|---|
| Content Goes Here | This is longer content Donec id elit non mi porta gravida at eget metus. | Content Goes Here | Content Goes Here |
| Content Goes Here | This is longer Content Goes Here Donec id elit non mi porta gravida at eget metus. | Content Goes Here | Content Goes Here |
| Content Goes Here | This is longer Content Goes Here Donec id elit non mi porta gravida at eget metus. | Content Goes Here | Content Goes Here |
| Cookies | Taste | Calories | Overall |
|---|---|---|---|
| Chocolate Chip | Tastey | 120cal | 7.5/10 |
| Snickerdoodle | Delicious | 95cal | 8/10 |
| Oatmeal Raisin | Superb | 10cal | 11/10 |
| This is the description! | One | Two | Three | Four | Five | Six | Seven | Eight | Nine | Ten | Eleven | Twelve |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| These are all the words that people use to describe Foundation 6! | Cool | Swag | Chill | Killer | Rad | Baller | OMG | Sweet | Awesome | Beast | Dope | Tubular |
| These are some words that people use to describe other web frameworks. | Whatevs | Ugh. | LOL | K | Aight | Eh. | Grrr... | Meh. | TTYL | Bleh. | Really? | Why? |
| Here are some great super heros. | Batman | Superman | Spiderman | Wonder Woman | Hulk | Nicolas Cage | Antman | Aquaman | Captain America | Wolverine | Thor | Iron Man |
| Here's a footer, just in case |


Celebrity Dating Quiz
Favorite Fruit:
Apples
Oranges
Favorite Music:
Pop
Country
Submit!
Bruno Mars
Taylor Swift
John Barrowman
Lady Gaga


Distribution Network Optimization
DNO
Data Import
Optimization
Facility Location
Shipment Load Optimization
Admin
Facility Location
Data Import
Factory Data
Customer Data
{{warning}}


Now Theudericus and Childebertus entered into a treaty and, after pledging each other an oath that neither would move against the other, accepted hostages from each another, by which means what had been declared would be more easily confirmed. Then many senators' sons were given into this captivity: but after a quarrel rose up again between the kings they were sentenced to common servitude, and anyone could take them into custody. While many of them slipped away in flight and returned to their native land. some were held fast in servitude.
Among these was Attalus, the nephew of the blessed Gregory, bishop of Langres. He was given over into common servitude and sent to the horse stables. For he was working for a foreigner in the territory of Treves.
Then the blessed Gregory arranged for servants to search him out. And when they found Attalus, they offered gifts to his master. But he rejected them, saying: "One of such birth needs ten pounds of gold to be redeemed."
Upon their return, a certain Leo from their lord's kitchen said: "If you would let me go, perhaps I could fetch him back from captivity." Now the lord was happy to do it, so straightway he went to the spot and wanted to steal the boy away, but could not. Then, bargaining with a certain man, he said: "Come with me and sell me in the house of that foreigner, and let my price be a profit to you, while I'll have freer access to do what I have resolved."
And indeed, after exchanging guarantees, that man left and, after Leo was sold for twelve pieces of gold, he went away.
Now when his purchaser asked his new slave what work he knew, he replied: "I am inordinately skilled in all things that are eaten at a lord's table, and doubt that anyone could be found who is my like in this knowledge. For I speak the truth to you that, even if you desired to prepare a banquet for the king, I can create royal dishes, and no-one is better than me."
But he said: "Look now, the day of the sun is nigh" (For thus is a foreigner wont to call the day of the Lord); on which day my neighbors and relatives are invited to my house. I ask you to make me a midday meal that they'll wonder at, and say that they haven't see better in a king's house."
And he said: "Let my lord command a mass of young hens to be collected and I'll do as you command."
And so, after what the boy had said had been readied, the Lord's day dawned and he made a feast, great and filled with delights. And after all had feasted and praised the meal, his relatives departed. Now the lord gave thanks to this boy and, and he accepted authority over all that his lord had in readiness, and he, and everyone who was with him, valued him greatly, and he himself dispensed rations and food.
Now after the passage of a year, after his master was feeling at ease about him, he went out into a meadow that was near the house, along with the boy Attalus, the groom; and lying on the ground with him at a distance, and turning their backs, so that they wouldn't be recognized together, he said to the boy: "Indeed, it is now time for us to think about our own country.  For that foreigner had summoned many of his relatives to a feast and among them was his son-in-law, who had married his daughter.
Now in the middle of the night, after they rose from the banquet and went to bed, Leo followed his master's son-in-law with a drink, and gave it to him to drink, in his hospitality the man said to him: "Say you, trusted servant of my father-in-law, so may you prosper, when, indeed, will you carry out your desire and take your master's horses and go to your own country?" He said this as if delighting in a jest. Leo said, in similar vein and laughing, and answering truthfully: "Tonight, I think, if God is willing." And he said: "Would that my slaves would protect me, and keep you from taking any of my possessions." And they parted, laughing.
But when everyone was asleep, Leo called Attalus, and, after the horses were saddled, asked if he had a sword.
He replied: "I have no need of one, except for only a very small lance.
But Leo entered his master's house and seized his shield and spear. And when his master asked who he was and what he wanted, he replied: "It's me, Leo, your servant, and I'm waking Attalus up so he'll get up quickly and lead the horses to pasture; for he is held by sleep like a drunken man."
And he said: "Do as you wish." And saying this, he fell asleep.
Indeed, when Leo went outside and armed the lad, he found the gates of the courtyard, that, to protect the horses, had been bolted shut at the beginning of the night with wedges hammered in, opened by divine intervention; and giving thanks to God, and taking the rest of the horses with them, they left, taking also a single roll of clothing. But coming to the Mosella River in order to cross it, when they were detained by some men, they left the horses and clothes and escaping by swimming upon a shield placed on the river, they reached the far bank, and after entering the forest in the dark night, hid. For the third night had come, that they were tramping the road, tasting no food. Then when they discovered, by God's will, a tree full of fruit, that the common people call plums, they ate and, a little bit sustained, began their journey to Champagne.
And as they're hurrying on, they hear the hoof-beats of running horses and say: "Let's lay flat on the ground so that the men who are coming won't spot us." And look! all at once a huge stand of brambles appeared, and they ran around it and threw themselves down on the ground with unsheathed swords, so that if they were spotted they could, of course, defend themselves at once from the impious.
Now when they got to that spot, they paused in front of the thorny stand; and one said, while the horses were voiding urine: "Woe is me, for these detestable men are fleeing and cannot be found; truly I swear on my salvation that, if they are found, I'd order one to be condemned to the gallows, and the other cut to pieces with swords. For the man who was saying this was that foreigner, their master, coming from the city of Rheims and looking for them, and he might certainly have discovered them on the road, had the night not prevented it. Then they spurred their horses and rode on.
But these men reached the city that very night, and after entering it they found a man who, when asked where the house of the priest Paulellus was, showed them. And while they passed along the street, the bell rang for matins (for it was the day of the Lord), and, pounding on the priest's door, they entered and the boy explained about his master.
And the priest said to him: "Indeed, my vision is true. For I saw two doves in the night flying to my hand and alighting on it, one of which was white, and the other black."
And the boy said to the priest: "May the Lord be lenient on his holy day. For we pray that you supply some nourishment; for the fourth day is dawning since we have tasted bread or meat."
But after hiding the boys, he supplied them with soup, bread and wine and left for matins.
And the foreigner followed, again asking for the boys; but, fooled by the priest, went away again. For the priest had an old friendship with the blessed Gregory.
Then, after the boys' strength was restored by the feast, remaining in the the priest's house for two days, they departed and so were borne all the way to the holy Gregory.
Now when the bishop visited the boys, overjoyed, he wept upon his nephew Attalus' neck; and freeing Leo and all his family from the yoke of servitude, he gave him his own land, on which he saw out all the days of his life with his wife and children.


klepto: persistent caching to memory, disk, or database
|| User Guide || Download || Tutorials || License ||
About Klepto
Klepto extends python's 'lru_cache' to utilize different keymaps and alternate caching algorithms, such as 'lfu_cache' and 'mru_cache'. While caching is meant for fast access to saved results, klepto also has archiving capabilities, for longer-term storage. Klepto uses a simple dictionary-sytle interface for all caches and archives, and all caches can be applied to any python function as a decorator. Keymaps are algorithms for converting a function's input signature to a unique dictionary, where the function's results are the dictionary value. Thus for y = f(x), y will be stored in cache[x] (e.g. {x:y}).
Klepto provides both standard and 'safe' caching, where safe caches are slower but can recover from hashing errors. Klepto is intended to be used for distributed and parallel computing, where several of the keymaps serialize the stored objects. Caches and archives are intended to be read/write accessible from different threads and processes. Klepto enables a user to decorate a function, save the results to a file or database archive, close the interpreter, start a new session, and reload the function and it's cache.
Klepto is part of pathos, a python framework for heterogenous computing. Klepto is in the early development stages, and any user feedback is highly appreciated. Contact Mike McKerns [mmckerns at caltech dot edu] with comments, suggestions, and any bugs you may find. A list of known issues is maintained at http://mmckerns.github.io/project/pathos/query.
Major Features
Klepto has standard and 'safe' variants of the following::
- 'lfu_cache' - the least-frequently-used caching algorithm
- 'lru_cache' - the least-recently-used caching algorithm
- 'mru_cache' - the most-recently-used caching algorithm
- 'rr_cache' - the random-replacement caching algorithm
- 'no_cache' - a dummy caching interface to archiving
- 'inf_cache' - an infinitely-growing cache
Klepto has the following archive types::
- 'file_archive' - a dictionary-style interface to a file
- 'dir_archive' - a dictionary-style interface to a folder of files
- 'sqltable_archive' - a dictionary-style interface to a sql database table
- 'sql_archive' - a dictionary-style interface to a sql database
- 'dict_archive' - a dictionary with an archive interface
- 'null_archive' - a dictionary-style interface to a dummy archive
Klepto provides the following keymaps::
- 'keymap' - keys are raw python objects
- 'hashmap' - keys are a hash for the python object
- 'stringmap' - keys are the python object cast as a string
- 'picklemap' - keys are the serialized python object
Klepto also includes a few useful decorators providing::
- simple, shallow, or deep rounding
- cryptographic key generation, with masking of selected arguments
Current Release
The latest stable version is klepto-0.1.1. You can download it here.
The latest released version of klepto is always available from::
Klepto is distributed under a 3-clause BSD license.
Development Release
You can get the latest development release with all the shiny new features at::
or even better, fork us on our github mirror of the svn trunk::
Citation
If you use klepto to do research that leads to publication, we ask that you
acknowledge use of klepto by citing the following in your publication::
Michael McKerns and Michael Aivazis, "pathos: a framework for heterogeneous computing", 2010- ; http://dev.danse.us/trac/pathos
More Information
Probably the best way to get started is to look at the tests that are provide within klepto. See klepto.tests for a set of scripts that test klepto's ability to provide caching and archiving. Klepto's source code is also generally well documented, so further questions may be resolved by inspecting the code itself, or through browsing the reference manual. For those who like to leap before they look, you can jump right to the installation instructions. If the aforementioned documents do not adequately address your needs, please send us feedback.
Klepto is an active research tool. There are a growing number of publications and presentations that discuss real-world examples and new features of klepto in greater detail than presented in the user's guide. If you would like to share how you use klepto in your work, please send us a link.


| Package | Description |
|---|---|
| org.apache.drill.exec.store.easy.json.extended |
Provides parsing for Mongo extended types which are generally of the form
{ "$type": value } . |
| org.apache.drill.exec.store.easy.json.loader | |
| org.apache.drill.exec.store.easy.json.parser | |
| org.apache.drill.exec.store.easy.json.values |
| Class and Description |
|---|
| AbstractElementParser
Abstract base class for all JSON element parsers.
|
| ElementParser
Parser for a JSON element.
|
| JsonStructureParser
Parser for a subset of the jsonlines
format.
|
| TokenIterator |
| ValueParser
Parses a JSON value.
|
| Class and Description |
|---|
| AbstractElementParser
Abstract base class for all JSON element parsers.
|
| ArrayListener
Represents one level within array.
|
| ArrayParser
Parses a JSON array, which consists of a list of elements,
represented by a
ValueListener . |
| ElementParser
Parser for a JSON element.
|
| EmptyArrayParser
Represents an empty array: the case where the parser has seen only
[] , but no array elements which would indicate the type. |
| ErrorFactory
To avoid coupling the JSON structure parser with Drill's error
reporting mechanism, the caller passes in an instance of this
error factory which will build the required errors, including
filling in caller-specific context.
|
| FieldParserFactory
Creates a field parser given a field description and an optional field
listener.
|
| FullValueParser |
| JsonStructureOptions
Input to the JSON structure parser which defines guidelines
for low-level parsing as well as listeners for higher-level
semantics.
|
| JsonStructureParser
Parser for a subset of the jsonlines
format.
|
| MessageParser
Optional custom parser for the portion of a JSON message that
surrounds the data "payload".
|
| MessageParser.MessageContextException |
| NullValueParser
Parses nulls.
|
| ObjectParser
Parses a JSON object:
{ name : value ... |
| TokenIterator |
| ValueDef
Description of a JSON value as inferred from looking ahead in
the JSON stream.
|
| ValueDef.JsonType
Description of JSON types as derived from JSON tokens.
|
| ValueParser
Parses a JSON value.
|
| Class and Description |
|---|
| AbstractElementParser
Abstract base class for all JSON element parsers.
|
| ArrayListener
Represents one level within array.
|
| ArrayParser
Parses a JSON array, which consists of a list of elements,
represented by a
ValueListener . |
| ArrayValueParser |
| ElementParser
Parser for a JSON element.
|
| ErrorFactory
To avoid coupling the JSON structure parser with Drill's error
reporting mechanism, the caller passes in an instance of this
error factory which will build the required errors, including
filling in caller-specific context.
|
| FieldParserFactory
Creates a field parser given a field description and an optional field
listener.
|
| JsonStructureOptions
Input to the JSON structure parser which defines guidelines
for low-level parsing as well as listeners for higher-level
semantics.
|
| JsonStructureParser
Parser for a subset of the jsonlines
format.
|
| JsonStructureParser.JsonStructureParserBuilder |
| MessageParser
Optional custom parser for the portion of a JSON message that
surrounds the data "payload".
|
| MessageParser.MessageContextException |
| ObjectParser
Parses a JSON object:
{ name : value ... |
| RootParser
The root parsers are special: they must detect EOF.
|
| ScalarValueParser |
| TokenIterator |
| ValueDef
Description of a JSON value as inferred from looking ahead in
the JSON stream.
|
| ValueDef.JsonType
Description of JSON types as derived from JSON tokens.
|
| ValueListener
Represents a JSON scalar value, either a direct object field, or level
within an array.
|
| ValueParser
Parses a JSON value.
|
| Class and Description |
|---|
| TokenIterator |
| ValueListener
Represents a JSON scalar value, either a direct object field, or level
within an array.
|
Copyright © 2021 The Apache Software Foundation. All rights reserved.


The results below should give an accurate picture of the current speed performance of various XPath implementations.
The tests run in a separate iframe, and each test is run 10 times before taking the average of the result.
XPathJS and native implementations are the most accurate, while Wicked Good XPath is the fastest.
A set of unit tests that extensively cover the XPath 1.0 specification is used to compare how well various XPath libraries conform to the specification.


7 ESDA with rgeoda and sp
For people who using R to do spatial data analysis, a common routine is to use rgdal
package to read spatial dataset, and then use sp
package, or (in recent) sf
package, to handle and analyze spatial data and plot the results on maps.
rgeoda provides utility functions to create a geoda
instance from an sp
object or sf
object, so that users can easily integrate the functions of spatial data analysis in rgeoda into their existing work.
In this note, we will work with sp
and rgeoda
package to do exploratory spatial data analysis (ESDA).
7.1 Start from sp package
The sp package has been an essential tool which provides spatial data-structures and many utility functions to do spatial analysis in R. It has been a core dependent library for many other packages, e.g. rgdal (IO), maptools (mapping), spdep (spatial weights, spatial statistics, and spatial models) etc.
Using rgdal to read a ESRI Shapefile will return a sp (Spatial object) object, which could be either a SpatialPointsDataFrame (using an AttributeList for its data slot directly), a SpatialLinesDataFrame, or a SpatialPolygonsDataFrame.
# use the Guerry.shp comes with the rgeoda package
guerry_path <- system.file("extdata", "Guerry.shp", package = "rgeoda")
# load rgdal library which sp is working with
library(rgdal)
## Loading required package: sp
## rgdal: version: 1.4-4, (SVN revision 833)
## Geospatial Data Abstraction Library extensions to R successfully loaded
## Loaded GDAL runtime: GDAL 2.4.1, released 2019/03/15
## Path to GDAL shared files: /usr/local/Cellar/gdal/2.4.1_1/share/gdal
## GDAL binary built with GEOS: TRUE
## Loaded PROJ.4 runtime: Rel. 6.1.0, May 15th, 2019, [PJ_VERSION: 610]
## Path to PROJ.4 shared files: (autodetected)
## Linking to sp version: 1.3-1
Note: to install rgdal library in R, you can run: install.packages(‘rgdal’)
Then, we can call readOGR()
function to read Guerry.shp file and this function will returns an sp
object
## OGR data source with driver: ESRI Shapefile
## Source: "/usr/local/lib/R/3.6/site-library/rgeoda/extdata/Guerry.shp", layer: "Guerry"
## with 85 features
## It has 26 fields
## Integer64 fields read as strings: dept Crm_prs Crm_prp Litercy Donatns Infants Suicids MainCty Wealth Commerc Clergy Crm_prn Infntcd Dntn_cl Lottery Desertn Instrct Prsttts Area
You can simply call plot() function to plot this map:
7.2 Create geoda object from sp
Everything above should be very familiar with you, right? Then, the fun part of spatial data analysis is going to start:
Create a geoda object from the sp object guerry_sp you just created.
## Loading required package: wkb
That’s it! It should be very fast: rgeoda uses wkb
, which is a binary representation of geometries, to exchange data between sp and rgeoda in memory.
By default, sp_to_geoda() only using geometries to create a geoda object, which is fast and user can reuse the data.frame from the sp object to do analysis. This function has an optional parameter with_table
, to allow user to use both geometries and data.frame to create a geoda object by calling, for example: sp_to_geoda(guerry_sp, with_table=TRUE)
7.3 ESDA with rgeoda and sp
Now, with the geoda object guerry
, you can call rgeoda’s spatial analysis functions. For example, to examine the local Moran statistics of variable “crm_prp” (Population per Crime against persons):
Why are we using as.numeric(as.character(guerry_sp\(Crm_prp))?

As we can see from the output of readOGR(guerry_path) that: _“Integer64 fields read as strings: dept Crm_prs Crm_prp Litercy Donatns Infants Suicids MainCty_”, so guerry_sp\)Crm_prp
is with data type factor
, so as.numeric(as.character())
is used to convert it to a column with numeric values without lossing precisions.
7.3.1 Local Moran Map
Now, with the LISA results, we can do exploratory spatial data analysis by generating a LISA cluster map:
lisa_colors <- lisa$GetColors()
lisa_labels <- lisa$GetLabels()
lisa_clusters <- lisa$GetClusterIndicators()
plot(guerry_sp,
col=sapply(lisa_clusters, function(x){return(lisa_colors[[x+1]])}),
border = "#333333", lwd=0.2)
title(main = "Local Moran Map of Crm_prp")
legend('bottomleft', legend = lisa_labels, fill = lisa_colors, border = "#eeeeee")
From the above code, you can see that we still use sp
object to do plotting. The values of cluster indicators from rgeoda’s LISA
object are used to make the LISA map.This emphasis that rgeoda is a API focused library, which only provides the core functions of spatial data analysis for easy integration.
You can easily append the lisa results to original sp object by manipulating the data.frame object inside the sp object.
If you check the values of the cluster indicators, you will see they are integer numbers 0 (not significant), 1 (high-high cluster), 2 (low-low cluster), 3 (low-high cluster), 4 (high-low cluster), 5 (neighborless/island), 6 (undefined), which are excatly the same with GeoDa software when you save LISA results to a table:
## [1] 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 2 2 0 0 0 0 0 0 0 0 0
## [36] 1 0 0 0 1 1 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 2 2 0 0 1 0 0 0 0 0 3 0 0 0
## [71] 2 0 2 2 0 2 0 0 0 0 0 0 3 0 0
To create a siginificant map that is associated with the Local Moran map:
lisa_p <- lisa$GetPValues()
p_labels <- c("Not significant", "p <= 0.05", "p <= 0.01", "p <= 0.001")
p_colors <- c("#eeeeee", "#84f576", "#53c53c", "#348124")
plot(guerry_sp,
col=sapply(lisa_p, function(x){
if (x <= 0.001) return(p_colors[2])
else if (x <= 0.01) return(p_colors[3])
else if (x <= 0.05) return (p_colors[4])
else return(p_colors[1])
}),
border = "#333333", lwd=0.2)
title(main = "Local Moran Map of Crm_prp")
legend('bottomleft', legend = p_labels, fill = p_colors, border = "#eeeeee")
7.3.2 Local Geary Map
Another example is to create a map of local Geary:
lisa <- local_geary(queen_w, crm_prp)
lisa_colors <- lisa$GetColors()
lisa_labels <- lisa$GetLabels()
lisa_clusters <- lisa$GetClusterIndicators()
plot(guerry_sp,
col=sapply(lisa_clusters, function(x){return(lisa_colors[[x+1]])}),
border = "#333333", lwd=0.2)
title(main = "Local Geary Map of Crm_prp")
legend('bottomleft', legend = lisa_labels, fill = lisa_colors, border = "#eeeeee")
7.3.3 Local G Map
To create a map of local G:
lisa <- local_g(queen_w, crm_prp)
lisa_colors <- lisa$GetColors()
lisa_labels <- lisa$GetLabels()
lisa_clusters <- lisa$GetClusterIndicators()
plot(guerry_sp,
col=sapply(lisa_clusters, function(x){return(lisa_colors[[x+1]])}),
border = "#333333", lwd=0.2)
title(main = "Local Getis-Ord's G Map of Crm_prp")
legend('bottomleft', legend = lisa_labels, fill = lisa_colors, border = "#eeeeee")
7.3.4 SKATER Map
To create a map of SKATER clustering map:
Crm_prs <- as.numeric(as.character(guerry_sp$Crm_prs))
Litercy <- as.numeric(as.character(guerry_sp$Litercy))
Donatns <- as.numeric(as.character(guerry_sp$Donatns))
Infants <- as.numeric(as.character(guerry_sp$Infants))
Suicids <- as.numeric(as.character(guerry_sp$Suicids))
data <- list(Crm_prs, crm_prp, Litercy, Donatns, Infants, Suicids)
guerry_clusters <- skater(4, queen_w, data)
# Get some colors for each clusters
skater_colors <- palette()[2:5]
skater_labels <- c("c1","c2","c3","c4")
# Assign a color for each observation
colors <- rep("#000000", queen_w$num_obs)
for (i in 1:4) {
for (j in guerry_clusters[i]) {
colors[j+1] <- skater_colors[i]
}
}
# plot
plot(guerry_sp, col=colors, border = "#333333", lwd=0.2)
title(main = "SKATER Clustering Map")
legend('bottomleft', legend = skater_labels, fill = skater_colors, border = "#eeeeee")
Why are we using as.numeric(as.character(guerry_sp$Crm_prp))
here to get values from data.frame?
As we can see from the output of readOGR(guerry_path)
that:
_"Integer64 fields read as strings: dept Crm_prs Crm_prp Litercy Donatns Infants Suicids MainCty_"
, that means guerry_sp$Crm_prp
is with data type factor
, so as.numeric(as.character())
is used to convert it to a column with numeric values without lossing precisions.
7.3.5 Max-p Clustering Map
bound_vals <- as.numeric(guerry_sp$Pop1831)
min_bound <- 3236.67 # 10% of Pop1831
maxp_clusters <- maxp(queen_w, data, bound_vals, min_bound, "greedy")
# Get some colors for each clusters
maxp_colors <- palette()[2:10]
maxp_labels <- c("c1","c2","c3","c4","c5","c6","c7","c8")
# Assign a color for each observation
colors <- rep("#000000", queen_w$num_obs)
for (i in 1:8) {
for (j in maxp_clusters[i]) {
colors[j+1] <- maxp_colors[i]
}
}
# plot
plot(guerry_sp, col=colors, border = "#333333", lwd=0.2)
title(main = "Max-p Clustering Map")
legend('bottomleft', legend = maxp_labels, fill = maxp_colors, border = "#eeeeee")


Individual Project
My role - UX, visual, interaction design, research, branding
Skew provides customers a way to easily buy their groceries without having to go through the long checkout line at the store. Simply scan the item's barcode, pay through the app, and show the QR code receipt at the door instead of waiting in line.
An average adult spends 273 days of their lifetime waiting in line. Grocery store lines are one of the biggest culprits, and cost an average of 29 minutes each week. Skew eliminates this part of the grocery shopping experience, and provides busy customers a delightful way to buy the items they need.
Grab the items you need from the store shelf, and scan the barcode with the Skew app on your phone.
Pay for your groceries seamlessly through the Skew app with your payment information on file.
When you've paid for your items, just show the QR code receipt to an employee at the door.
Check into one of the participating locations to start shopping.
Find the item you want, and scan the barcode to add to cart.
Pay with your payment information on file, and show the QR code receipt to an employee at the door.
You can also use the Skew Scale to easily pay for your favorite fruits and vegetables. Simply enter the Price Look-Up (PLU) code on the produce label, and scan the QR code on the screen with Skew.
Plan ahead by creating a shopping list. You can also view the location of the items in the map to easily find it.
Checkout
How do shoppers feel about the checkout process at grocery stores?
Navigation
How do shoppers navigate around the store to find items?
Payment
What are some inefficiencies in the payment process?
Planning
How do shoppers plan their grocery shopping in advance?
Self Checkout Line
Does the self checkout line improve the experience for the customers?
For this project, I decided to start my research process with contextual inquiry. I went into a local Safeway and closely observed the behavior of a shopper who agreed to participate in my research.
Key takeaways:
I also looked into some other apps in the market which are in the similar domain.
Main takeaways:
Main takeaways:
Main takeaways:
To understand the major pain points and inefficiencies of the current grocery shopping experience and to brainstorm solutions, I decided to create a journey map based on the contextual inquiry and personal experience.
College Student
"I just want to buy a couple items and leave!"
Chase is a college student living away from home. He doesn't cook too much, so he just buys a few items at a time when he is at the grocery store. He tries to avoid going to large grocery stores because of the long lines, but there aren't too many alternatives for him. He would like for a way to go to the grocery store and buy his favorite items while avoiding the long lines.
From all the information and insights we gathered, I decided to focus on these main points for our design.
Self Checkout
The 5-step set-up guide will replace the existing checklist and provide a more clear and guided onboarding experience.
Shopping List
The set-up process will only ask for a minimum amount of required information, and help the users get their store up as quickly as possible.
Store Map Tool
"Choose a design" and "add a product" will be the first two steps of the set-up process, which will create a sense of attachment and emotional investment early on to decrease abandonment.
In order to plan out the interactions and flows between each screens of the experience, I started working on a whiteboard. This process allowed me to start from a bigger point of view, and focus in on each of the steps as the design process continued.
Because of the limitation in emulating the actual functionality of the app (e.g. item scanning, store map), I decided to create a hi-fidelity prototype on InVision for the usability testing to provide the most realistic experience for the participants as possible.
To simulate a real experience, I paid for the items in advance, and had the participants scan the items with the app and walk out, just as how the real product would work.
This was an effective method in testing out the product, and helped out in the iteration leading to the final design.
The onboarding process is kept short and only asks for the bare minimum information required. This was done to accommodate the desires of the users to be able to quickly use the app to check out, even for their first time use. Paypal was also added as a payment option based on the usability testing feedback.
During the usability testing, users found the map view to be confusing for the check in screen, so the default page was changed to a list view.
An option to add payment during the checkout process was also added in the final design. In the case that a user wants to use a new payment method, they can do so without exiting the checkout flow.


Speed is everything, the template is built to develop high performance websites. Avarage CSS filesize, gzipped, only 70KB, Javascripts files only 80KB. Every page load only the required script and css files. Only lightweight, focus on performance, plugins. Modular CSS, HTML and JS codes minimize redundancy and code size.
Maybe the most easy to use template on the market. You can build your website by just copy and paste the snippets of the documentation. If you need some customization, it should be already available. Every Javascript\JQuery plugin is automatically initialized and the options are inserted directly into the HTML.
Inspired to Bootstrap documentation, it's not a simple guide but a powerful tool for build your website faster and better. You have a full access to 100+ documentation pages, hundreds of code snippets for every single component and option, complete list of settings, live examples of everything and really much more.
A template based on the concept of modularity. Small, independent code blocks are linked together for create the website. Each module has generic and the low-level functions that ensure the maximum flexibility.
All header types can be fixed, transparent, side and hidden.
This template is built with HTWF a mobile, productivity oriented framework with an awesome flexibility. It contain 1000+ options and it's really easy to use.
You can build your website by just copy and paste the code of the documentation.
Build your site is simple
Notebook, tablets, smartphones
The languages you love
Conversion ready with WPTF


--- layout: default title: PostgreSQL JDBC About resource: ../media nav: ../ --- {% include submenu_about.html %}
Welcome to the home of the PostgreSQL JDBC driver. The driver allows Java programs to connect to a PostgreSQL database using standard, database independent Java code. It is a pure Java (Type IV) implementation, so all you need to do is download a jar file and you're on your way.
The driver provides a reasonably complete implementation of the JDBC 3 specification in addition to some PostgreSQL specific extensions. Our goal is nothing short of full compliance, but we're not there yet. Some features require additional backend support and others just need someone to implement them. For a list of what still needs to be done see our Todo list.


[§356D-55] Existing contracts not impaired. Sections 356D-52 and 356D-53 shall not be construed as to impair or affect the obligation of any contract existing on or before May9, 1949. [L 2006, c 180, pt of §2]


Jamie Vardy compared to Cristiano Ronaldo after Leicester beat Arsenal
Jamie Vardy set up one and scored another against Arsenal to return to the top of the Premier League scoring charts
by James Nursey, https://www.mirror.co.uk/authors/james-nursey/Ricardo Pereira reckons Jamie Vardy is as “ruthless” up front as Cristiano Ronaldo .
Leicester ’s Portuguese right-back Pereira is international team-mates with Ronaldo, who has scored more than 600 career goals.
Former Non-League hitman Vardy was a comparatively late starter but now has 91 Premier League goals after helping City beat Arsenal 2-0 with his 11th this term.
Pereira said: “They are very different people but they are both ruthless in front of goal.
“It’s important to have a player like that. When he has a chance he scores.
“In some games where we don’t have many chances, it’s important to take them and score one goal.
“In some games the small details make the difference. We are happy to have him.”
Pereira was one of several outstanding Leicester players against the Gunners as he was solid defensively and got forward to help tee up the opener.
Brendan Rodgers’ side now have the best defensive record in the Premier League after letting in only eight goals.
Pereira added: “It not only the back four, it’s the whole team, it’s another good thing not to concede a lot.”
The win over Arsenal boosted Leicester's top four chances but Brendan Rodgers insists a title challenge is unlikely.
“I suppose we have thrown a hand grenade right into the middle of the top four.
“But we're not thinking about the title race. We're thinking about developing a team and improving the players. That is our only focus.
“Our job is to hope to be in the top four. I said when I came here that it would be great to play European football.


--- layout: post date: 2007-06-26 time: "09:00:00" authors: ["Greg Wilson"] title: "Software Carpentry at LLNL" tags: ["Lawrence Livermore National Laboratory"] ---
Titus Brown has posted about the first run of his Advanced Software Carpentry course at Lawrence Livermore National Laboratory. It was a bit bumpy, but seems to have gone well overall, and he has put a ton of useful material on the web.


‘China-US trade war to ease but conflicts will persist’
by ReutersBEIJING: A Sino-US trade war could ease somewhat but wider conflicts between the world’s two largest economies will continue, Lou Jiwei, a former Chinese finance minister, said on Saturday.
“Look at the next development, there could be compromises in the trade war at a certain stage, and we have seen signs of compromising,” Lou, now an official with a body that advises China’s parliament, told an economic forum in Beijing.
Officials from both countries on Thursday said China and the United States had agreed to roll back tariffs already put in place on each other’s goods if a ‘phase one’ deal was concluded, but the idea has been met with opposition from some quarters of the administration US President Donald Trump.
Trump, himself, in comments that hit stock prices and the dollar, said on Friday he had not agreed to a tariff rollback. Washington has adopted a strategy to contain China’s economic rise by preventing the country from climbing up the global value chain, Lou said.
“Containment and counter-containment are inevitable and that will be a long-term issue,” he said. But Lou also said it would be difficult for the United States to decouple from China, given the potential disruption to global supply chains and the impact on businesses.
Published in The Express Tribune, November 10th, 2019.


@nova_exchange @ProCommerceInfo @BitBayofficial @NeblioTeam @SoonCoin @HoboNickels_HBN @ANON_WeAreANON @CloakCoin @cloakcoin_promo @VerusCoin @coin_peng Verus is a good start. From the great KMD env also KMD, Arrr, Chips and Hush are good choice (all have good teams and ei...


You're running a small business or a start-up. The last thing you have time to do is make the wrong choice when choosing software to help your business grow.
That's where we come in.
We're market-watchers and meticulous testers with a deep passion for the tech that can help build your business. We find and test the best software for you so you don't have to waste your own capital doing the same. Our reviews will be trusted by thousands.
In short? We're The Wirecutter for your business.
We'll have more soon. Stay tuned.
Like what we're doing or want to get your software product covered? Reach out to us via email.


| # | Project Name | Build Status | Coverage |
|---|---|---|---|
| 1 | tools | ||
| 2 | dnslite | ||
| 3 | dots | ||
| 5 | light | ||
| 6 | cryptor | ||
| 7 | libsm | ||
| 8 | libcode |
| # | File Name | Url |
|---|---|---|
| 1 | shaanxi.2020.html | https://dilfish.github.io/shaanxi.2020.html |
| 2 | shaanxi.2019.html | https://dilfish.github.io/shaanxi.2019.html |
| 3 | shaanxi.2018.html | https://dilfish.github.io/shaanxi.2018.html |


Cookie Stand
Home
Sales
Dark Mood
Data
Add New Data
Location
Addresse
Min
Max
Average
Open Hours
Contact Information
Add New Data
The Output
Manage Staffing


kingdom hearts profiles, So far this only has main characters from Kingdom Hearts 1
Home
Profiles
Weapons/Costumes
;


| modify {rlang} | R Documentation |
This function merges a list of arguments into a vector. It always returns a list.
modify(.x, ...)
.x |
A vector to modify. |
... |
List of elements to merge into |
A modified vector upcasted to a list.
modify()
is in the qestioning stage. We are still figuring out
what vector tools belong in rlang.
modify(c(1, b = 2, 3), 4, b = "foo") x <- list(a = 1, b = 2) y <- list(b = 3, c = 4) modify(x, splice(y))


This is the persistence interface to be implemented by all persistence classes, for all the db operations Active Records class of Code Igniter would be used.
[line 14]
This is the persistence interface to be implemented by all persistence classes, for all the db operations Active Records class of Code Igniter would be used.
deletes the database by primary key condition supplied in the parameter.
Tags:
return:
the integer containing the number of rows affected after the delete operation, minimum value of this int can be zero.
access:
public
Parameters:
array
$primaryKey
an array containing keys as the names of primary columns in database and the value correspondant to it, eg:- $primaryKey = array('Id' => 'AaoObBC'), where Id is the pk column and AaoObBC is the value of it.
gets all the users from table which fulfills the criteria supplied by parameter.
Tags:
return:
the array containing user objects from the user table, where each feild is the datamember of the object, null in case of no results.
access:
public
Parameters:
array
$criteria
an array containing keys as the names of table columns or names with a condition (i.e. either 'id' or 'id <') from the database and the value correspondant to it, or it can be a where clause string of SQL, eg:- $criteria = array('Id' => 'AaoObBC');, or it can be like eg:- $criteria = 'Id=\'AaoObBC\' OR something=\'value\''; by default criteria works on AND method of SQL.
int
$limitx
an integer representing the start limit of SQL.
int
$limity
an integer representing the end limit of SQL.
string
$columnNames
the string representing the column names to select from table.
gets user from table which fulfills the primary key condition supplied by parameter.
Tags:
return:
the array containing single user object from the user table, where each feild is the datamember of the object, null in case of no results.
access:
public
Parameters:
array
$primaryKey
an array containing keys as the names of primary columns in database and the value correspondant to it, eg:- $primaryKey = array('Id' => 'AaoObBC'), where Id is the pk column and AaoObBC is the value of it.
int
$limitx
an integer representing the start limit of SQL.
int
$limity
an integer representing the end limit of SQL.
string
$columnNames
the string representing the column names to select from table.
inserts a new record int the database by primary key condition supplied in the array of object by parameter, if any previous record is already present with the same primary key insert operation fails.
Tags:
return:
the integer would contain the last inserted id of database if insert is sucessful, else a zero valued integer is returned.
access:
public
Parameters:
array
$object
the array containing all the feild to be inserted, with primary key(s), as a must index. eg:- $object = array ( 'id' => 24, 'name' => 'Amir Ali', 'dob' => '15-April-1989' ); in the above example id is the primary key, method would insert the record with id = 24.
updates the database by primary key condition supplied in the array of object by parameter.
Tags:
return:
the integer containing the number of rows affected after the update operation, minimum value of this int can be zero.
access:
public
Parameters:
array
$object
the array containing all the feild to be updated, with primary key(s), as a must index. eg:- $object = array ( 'id' => 24, 'name' => 'Amir Ali', 'dob' => '15-April-1989' ); in the above example id is the primary key, method would update the record with id = 24.


WebSiteName
Home
Page 1
Page 2
Page 3
Sign Up
Login
Login Form
Info!
Please enter details.
Enter user name:
Enter password:
Forgot Password?
Not Registered?
Register here


ASMITA
School Details
Medium of interaction
*
Hindi
English
Sanskrit
Are the majority of people taught through their mother tongue at primary stage?
*
Yes
No
Language(s) taught at primary stage
*
Hindi
English
Sanskrit
Affiliation board
*
For secondary sections
CBSE
State board
ICSE
International Board
Any other
For higher secondary sections
CBSE
State board
ICSE
International Board
Any other
Offering any pre-vocational course(s) at secondary stage?
*
Yes
No
Providing eductional and vocational guidance and counselling to students?
*
Yes
No
Continue


| ETA (driving): < 5 min |
| Credit? Y |
| Cash? Y |
| Budget: < $5 |
| Wi-fi? N |
| Hours Mon-Sun: 11am-11pm |
I have been here a couple of times and I have to say the PHO is very flavorful,I don't really like that I can't get breast meat in the small size but whatever, it was still delish! The ginger sauce they give you to add to the broth makes it super tasty:) definitely be back here.
My usual staple here is #37, the rice with grilled pork and meatloaf. Its really good, and there is always more than enough and I end up taking half of it with me. Last time we were here, on Thursday, I decided to be different and try one of their Banh Mi sandwiches....O....M...G!!! It was SOOO good!! Wow I got the Pork Roll Deluxe, and when it came I was skeptical, but WOW the flavor was amazing!! Everything on the sandwich was so good and combined for a wonderful, unique taste....and of course the bread was really great, super soft and flavorful! I'm pretty sure every time I come here now I'm getting one of the sandwiches!
Great customer service from these folks but I am sorry to say this but the food is ewwww! Seeing that I am Vietnamese, I would say I have pretty good taste buds for viet food and this place puts food to shame! I went here twice because of the convenient location and because I was pretty hungry and desperate and each time it was a disappointment because the lack of flavors in all of their foods! Each time I would say I had amazing customer service though! Prices are higher than most viet restaurants (still cheap) but higher! Go down the street a bit and you will find a much better viet place that (for this area) is my go to for pho and viet cravings.


{% include head.html %}
This is just some intro text, it is only seen on large devices, we have added some bootstrap classes here.
subscribe via RSS | connect on github


{% extends "layout.html" %} {% block head %} {% endblock %} {% block body %}
PaaS engine using Docker.
Sign up
Copyright © 2014 @yymm and @doragon All Rights Reserved.


×
Did you like it?
5 stars
4 stars
3 stars
2 stars
1 star
Leave a Review for This Show!
Your Name
Submit


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Package
Next Package
Frames
No Frames
All Classes
Package org.apache.drill
Class Summary
Class
Description
BaseTestInheritance
CompileClassWithArraysAssignment
CompileClassWithIfs
ParquetSchemaMerge
PlanningBase
PlanTestBase
SingleRowListener
Result listener that is set up to receive a single row.
TestAggNullable
TestAltSortQueries
TestBugFixes
TestCaseSensitivity
TestCorrelation
TestCTASJson
TestCTASPartitionFilter
TestDirScanToValuesConversion
TestDisabledFunctionality
TestDropTable
TestExampleQueries
TestFrameworkTest
TestFunctionsQuery
TestFunctionsWithTypeExpoQueries
TestImplicitCasting
TestInList
TestJoinNullable
TestMergeFilterPlan
TestOperatorDump
TestOperatorMetrics
TestOutOfMemoryOutcome
Run several tpch queries and inject an OutOfMemoryException in ScanBatch that will cause an OUT_OF_MEMORY outcome to be propagated downstream.
TestPartitionFilter
TestPlanVerificationUtilities
TestProjectPushDown
TestProjectPushDown.PushDownTestInstance
TestProjectWithFunctions
Test the optimizer plan in terms of projecting different functions e.g.
TestSchemaChange
TestSchemaCommands
TestSchemaWithTableFunction
TestSelectivity
TestSelectWithOption
TestStarQueries
TestTextJoin
TestTpchDistributed
TestTpchDistributedConcurrent
TestTpchDistributedStreaming
TestTpchExplain
TestTpchLimit0
TestTpchPlanning
TestTpchSingleMode
TestUnionAll
TestUnionDistinct
TestUntypedNull
TestUtf8SupportInQueryString
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Package
Next Package
Frames
No Frames
All Classes
Copyright © 2021
The Apache Software Foundation
. All rights reserved.


A password reset has been requested for your account. Please click here to set a new password.
-- Questions? Comments? Email snstheatre.gmc@gmail.com


Class: RestBaby::Client
- Inherits:
-
Object
- Object
- RestBaby::Client
- Defined in:
- lib/rest_baby.rb
Overview
Sends and receives data to a restful web service
Constant Summary
- PARAM_STARTER =
'?'
- PARAM_SEPARATOR =
'&'
Instance Attribute Summary (collapse)
-
- (Object) code
readonly
Response Code.
-
- (Object) password
readonly
The password for the user (for authentication).
-
- (Object) user
readonly
The user (for authentication).
-
- (Object) wsresponse
readonly
The WebService Response from the last call.
Instance Method Summary (collapse)
-
- (Object) add_headers(headers)
Modifies the headers by merging new headers with current headers.
-
- (Object) delete(headers = {}, path = '', parameters = {})
Basic web services Delete command.
-
- (Object) get(headers = {}, path = '', parameters = {})
Basic web services Get command.
-
- (Client) initialize(url, headers = {}, user = nil, password = nil)
constructor
Creates a new rest client.
-
- (Object) post(body = nil, headers = {}, path = '')
Basic web services Post command.
-
- (Object) put(body = nil, headers = {}, path = '')
Basic web services Put command.
-
- (Object) set_auth(user, password)
Adds user/password to the rest client.
Constructor Details
- (Client) initialize(url, headers = {}, user = nil, password = nil)
Creates a new rest client
eg. myrestservice.com:80/time eg. '{ "Content-Type" => "application/json"}' Can be multiple headers separated by commas inside the brackets.
37 38 39 40 41 42 43 |
# File 'lib/rest_baby.rb', line 37 def initialize(url, headers = {}, user = nil, password = nil) @url = url @headers = headers @user = user @password = password @verbose = (ENV['DEBUG_HTTP'] != 'false') end |
Instance Attribute Details
- (Object) code (readonly)
Response Code
28 29 30 |
# File 'lib/rest_baby.rb', line 28 def code @code end |
- (Object) password (readonly)
The password for the user (for authentication)
26 27 28 |
# File 'lib/rest_baby.rb', line 26 def password @password end |
- (Object) user (readonly)
The user (for authentication)
24 25 26 |
# File 'lib/rest_baby.rb', line 24 def user @user end |
- (Object) wsresponse (readonly)
The WebService Response from the last call
22 23 24 |
# File 'lib/rest_baby.rb', line 22 def wsresponse @wsresponse end |
Instance Method Details
- (Object) add_headers(headers)
Modifies the headers by merging new headers with current headers.
57 58 59 |
# File 'lib/rest_baby.rb', line 57 def add_headers(headers) @headers = @headers.merge(headers) end |
- (Object) delete(headers = {}, path = '', parameters = {})
Basic web services Delete command
97 98 99 100 101 102 103 |
# File 'lib/rest_baby.rb', line 97 def delete(headers = {}, path = '', parameters = {}) full_path = [path, URI.encode_www_form(parameters)].join(PARAM_STARTER) uri = URI.parse("#{@url}#{full_path}") request = Net::HTTP::Delete.new(uri.request_uri) request.body = nil send_request(uri, request, headers) end |
- (Object) get(headers = {}, path = '', parameters = {})
Basic web services Get command
68 69 70 71 72 73 74 |
# File 'lib/rest_baby.rb', line 68 def get(headers = {}, path = '', parameters = {}) full_path = [path, URI.encode_www_form(parameters)].join(PARAM_STARTER) uri = URI.parse("#{@url}#{full_path}") request = Net::HTTP::Get.new(uri.request_uri) request.body = nil send_request(uri, request, headers) end |
- (Object) post(body = nil, headers = {}, path = '')
Basic web services Post command
84 85 86 87 88 89 |
# File 'lib/rest_baby.rb', line 84 def post(body = nil, headers = {}, path = '') uri = URI.parse("#{@url}#{path}") request = Net::HTTP::Post.new(uri.request_uri) request.body = body unless body.nil? send_request(uri, request, headers) end |
- (Object) put(body = nil, headers = {}, path = '')
Basic web services Put command
112 113 114 115 116 117 |
# File 'lib/rest_baby.rb', line 112 def put(body = nil, headers = {}, path = '') uri = URI.parse("#{@url}#{path}") request = Net::HTTP::Put.new(uri.request_uri) request.body = body unless body.nil? send_request(uri, request, headers) end |
- (Object) set_auth(user, password)
Adds user/password to the rest client
49 50 51 52 |
# File 'lib/rest_baby.rb', line 49 def set_auth(user, password) @user = user @password = password end |


Github class is a glue to all of them and the recommended option to start
You can access to the API requests through the different services.
If you take a look at github API v3 documentation, you’ll see a few sections in the sidebar.
pygithub3 has one service per each section of request-related
For example:
repos => services.repos.repo
collaborators => services.repos.collaborators
commits => services.repos.commits
....
Each service has the functions to throw the API requests and is isolated from the rest.
Each service can be configurated with some variables (behind the scenes, each service has her client which is configurated with this variables).
Note
Also you can configure Github as a service
You can configure each service with this keyword variables:
| Parameters: |
|
|---|
You can configure the authentication with BasicAuthentication (login and password) and with OAuth ( token). If you include login, password and token in config; Oauth has precedence
Some API requests need user and/or repo arguments (e.g repos service). You can configure the default value here to avoid repeating
Some API requests return multiple resources with pagination. You can configure how many items has each page.
You can configure verbose logging like requests library
Set Basic Authentication
| Parameters: |
|
|---|
Set repository
| Parameters: | repo (str) – Default repository in requests |
|---|
Set OAuth token
| Parameters: | token (str) – Token to OAuth |
|---|
Set user
| Parameters: | user (str) – Default username in requests |
|---|
Some services supports mimetypes
With them the Resources will have body, body_text, body_html attributes or all of them.
Mimetype support to Services
Adds 4 public functions to service:
Resource will have body, body_text and body_html attributes
Resource will have body_html attribute
Resource will have body attribute
Resource will have body_text attribute
Fast example:
from pygithub3 import Github
gh = Github()
gh.gists.comments.set_html()
comment = gh.gists.comments.list(1).all()[0]
print comment.body, comment.body_text, comment.body_html


STATUS:
DISCONNECTED
{{state.visitor_team}}
{{state.visitor_score}}
{{state.home_team}}
{{state.home_score}}
INNING
{{state.inning}}
TOP
MID
BOT
END
Clear Bases
OUTS
{{state.outs}}
Out
COUNT
{{state.balls}}
-
{{state.strikes}}
Ball
Strike


| Legislators |
|---|
| Bills |
|---|
| Committees |
|---|
House
| Chamber | Committee ID | Name | Chair | Party | State | ||||
| House | Senate | Joint | {{info.committee_id}} | {{info.name}} | {{info.chair}} | {{info.chair_party}} | {{info.state_name}} |
Senate
| Chamber | Committee ID | Name | Chair | Party | State | ||||
| House | Senate | Joint | {{info.committee_id}} | {{info.name}} | {{info.chair}} | {{info.chair_party}} | {{info.state_name}} |
Joint
| Chamber | Committee ID | Name | Chair | Party | State | ||||
| House | Senate | Joint | {{info.committee_id}} | {{info.name}} | {{info.chair}} | {{info.chair_party}} | {{info.state_name}} |
| Favorites |
|---|


HTML [Hypertext Markup Language]
HTML is the set of markup symbols or codes inserted in a file intended for display on a web browser. Each individual markup code is referrenced as elements or tags. It defines the logical structure of documents and the way a document is accessed and manipulated. HTML is like the structure of a building.
CSS [Cascading Style Sheets]
CSS describe how the HTML elements are to be displayed. It can control the layout of multiple areas all at once. So for example, CSS is how the structure will look and finally appear. In a building, it would include the final furnishings, paint and exterior materials. It would also include the landscaping, as the environment it sits in is just as important.
The DOM [Document Object Model]
The DOM is how all this comes together, and all the parts that are needed to interpret the information to make the structure. The DOM would be like all the information the project planner requires for the building. The project planner would include the blueprints from the architect, information from the builder, plans from the landscaper and interior designer. It takes the relevant information and facilitates the structure to come together in a format the client requires it to be.
And so how to boxify?
A website design is divided into many box elements, we can demonstrate literally, by drawing boxes over elements. To put a website together we need to look at the proposed design and cut it up in to the boxes which contain different elements such as: headings, images, body text, footers, and many other elements. The design is literally how we arrange these elements as boxes for different experience.
What is the box model?
To describe the website design we use a model that describes every HTML element. Every box works with the box model which uses: margins, borders, padding, as well as the box content. This helps build the underlying the structure when writing the HTML code for the site.


CeMV morbillivirus infection []. â€" DMV virus Mediterranean [,]. RT-PCR dolphin dolphins truncatus species detected stranded cetacean coast Atlantic USA coeruleoalba unknown whale cetaceans strains morbilliviruses Sea Australia However, bottlenose cell cells outbreak RNA mortalities mortality {border-style SLAM endemic epidemic reviewed useful IHC chronic delphis distemper measles px;} studies #ffffff;} IHC, North PMV detection disease melas striped CNS Morbillivirus antibodies data infections receptor [,,]. aduncus gene host infection, pilot transmission Canary Pacific [], acute form odontocetes (Figure (Tursiops South Vet. antigen contributed infected lesions lymphoid manuscript new periodic population strain used using (Stenella Figure New [,] canine diagnosis epidemiology epithelial high observed pathogenesis porpoise protein related similar systemic viral (Â© .Van Gulf Western drafts evidence immune individuals likely outbreaks phocoena ... August Infect. Spain, acid brain higher isolation marine morbilliviral receptors suggest use whales Dis../eid. Islands Serological affected amino associated caused described developed encephalitis epidemics mass provided susceptible western Cetacean Hawaii, Italy PWMV Wildl. [,,,,]. [,,,]. and, characterized closely common died epizootic evolutionary following immunity isolated lineage mammal populations porpoises px; recovered sequences showed small suggested techniques time tissues titers waters {font-family Aquat. CeMV, Mamm. Ocean Ocean; [,,] based beached coastal comments; death font-size glycoprotein guianensis helpful increase isolate lymph manuscript; number phocine positive possibly present recently reported samples serological typical viruses (Globicephala (Phocoena Black Brazil CDV CDV, Eastern Gen. Guiana Marine Netherlands Pathol../ Sci. Spanish Thus, advanced analysis assays beaked cases coasts complete confirm confirmation conserved did different double; event findings genetic indicate indicated isolates meningoencephalitis molecular morbillivirus, needed persistence possible prevalence proteins recent research risk role ruminant sequence serum truncatus) truncatus, unusual virology years (Lagenorhynchus (Sotalia Australia, Brazil, CeMV- Central Comp. DMV, Dis../--.. East France, Indian Infection July March Morbilliviruses Northeast Rec../vr... Recently, Transmission Tursiops Valencia Vero Virus [,,,,,]. animals antibody aquatic ashore assay border-color border-width cause cells, cetaceans. coeruleoalba) comments commonly depletion des determine distinct draft entry fusion gregarious harbor highly human identity includes infection. known large late negative numbers offshore opportunistic pathology permitted pers. petits phocoena) polymerase remains rinderpest ruminants seal sequencing solid; surveys understanding unpublished virus; washed worldwide {font-style {font-weight â€", .Di Abrolhos Acad. BWMV Bottlenose California CeMV. Clin. Delphinidae, Disease England Europe European Florida, France Globicephala Histology Indo-Pacific Islands, Lagenorhynchus Med. Natl. Northern Organ../dao PDV PDV, RT-PCR, Res. SSPE Sci../j.-..tb.x Southeast Stenella Strait UK, United Virol../---- absence access activation affinity al.Morbillivirus blood bold breviceps calf central chain circulating classical close coast, coeruleoalba, collected considered courier; dead deaths decrease detect domain effects em; epidemiological evolution exposure gene, genome harbour hosei immunoglobulin immunohistochemical important in, including intranuclear investigations juvenile later line long long-finned low lymphocyte lymphocytes mature morbillivirus; morbilliviruses, mysticetes necessary novel nucleocapsid occur ocean peste physalus ponticus presence pt;} rate reduction represents required residues respectively result sclerosing secondary section sections sections, seen sensitive sera signaling significant similarity species. specific sperm spleen stranding sub-acute subclinical suggestions syncytial test tissue total various virus, workshop


How To Activate Gmail Dark Mode In Android & iOS
by Amarnath ChakrabortyTo enable the Gmail dark mode in Android 10, users need to follow some of the simple steps given below. The great thing is that users don’t need to play with any build prop file or use any third-party app. So, let’s check out how to enable Gmail dark mode in Android 10.
Well, if we look around, we will find that Google and Apple already introduced a system-wide dark mode in its latest version of the operating system. If we talk about Android, the system-wide dark mode turns the entire user-interface into the dark one that makes the text more visible. So, it dramatically impacts the readability, especially at night.
Contents show
How To Activate Gmail Dark Mode In Android & iOS
The reason why we are talking about the system-wide dark mode is that recently, Google rolled out the dark mode for the Gmail app running on Android 10 devices. It’s worth to note that both Android 10 and iOS 13 have the system-wide dark mode; still, developers need to update the app to make it compatible with the dark interface.
Enable Gmail Dark Mode in Android 10
To enable the Gmail dark mode in Android 10, users need to follow some of the simple steps given below. The great thing is that users don’t need to play with any build prop file or use any third-party app. So, let’s check out how to enable Gmail dark mode in Android 10.
- First, update the Gmail app on your Android smartphone through the Google Play Store.
- Once done, open the app and then tap on the ‘Settings’
- Under the Settings, tap on the ‘General Settings’ option.
- Now under the General Settings option, tap on the ‘Theme’. There select ‘Dark’
- If you are already using the Android 10’s dark theme, then select ‘System Default’
That’s it, you are done! This is how you can enable Dark Mode in the Gmail app for Android.
Turn On Gmail Dark Mode in iOS 13
Just like Android 10, you can enable the Gmail dark mode in the iOS 13 operating system as well. Follow some of the simple steps given below to turn on the Gmail dark mode in the iOS 13 operating system.
- First of all, open the updated Gmail app on your iPhone.
- Tap on the hamburger menu from the top left corner.
- Now scroll down and select ‘Settings’
- Under the Settings, tap on ‘Theme’ and then select ‘Dark’
That’s it, you are done! This is how you can enable Dark mode them in iOS 13.
So, this is all about how to enable the all-new Gmail dark mode on Android 10 and iOS 13 operating system. If you know any other such methods, let us know in the comment box below.


{% extends 'layout-bsa.html' %} {% block pageTitle %} How many hours a week do you usually work at your 'job title' job? - LIS training - NHSBSA {% endblock %} {% block outerContent %} {% endblock %} {% block content %}
The amount allows for a maximum of two decimal places. For example, 37.75
A worker is normally contracted a specific amount of hours each week. If you're not sure about your contracted hours, check with your employer.


Alas! you found me, once and for all
Clever I say, now this is for Hint 2
Hey look carefully, do not be fooled
By what you read or else ur screwed.
Try to think what is inside the mind
Of a quantum computer - AlphaZero AI
Unpredictable, brilliant, has superb
Analysis of chess games, and puzzles
Quite related to this random message
To reveal what lies within the topic
Only understand part of its context.
Some things need patience to be seen
The-devil-is-in-the-detail-eagle-eye
View-if-you-got-it-do-pay-me-a-visit


ABQ Outside Conceptual Model
Profile
- profileId (primary key)
- profileEmail
- profileUsername
- profileRefreshToken
- profileImage
Trail
- trailId (primary key)
- trailExternalId
- trailAddress
- trailImage
- trailName
- trailLocation
- trailSummary
- trailAscent
- trailRating
- trailLength
- trailLat
- trailLong
Comment
- commentId (primary key)
- commentProfileId (foreign key)
- commentTrailId (foreign key)
- commentContent
- commentTimestamp
Relations
- Many Profiles can comment on many Trails - (m to n)