Summary. This note demonstrates the DocOnce capabilities for generating LaTeX
code for verbatim blocks of computer code. These new capabilities
replaces the need for both the stand-alone program ptex2tex
and
the simplified doconce ptex2tex
utility. In fact, the
new capabilities are more flexible than ptex2tex
and results in
much cleaner LaTeX code (especially for verbatim blocks with
background color).
Originally, DocOnce relied on generating code for ptex2tex
rather than
plain LaTeX, the reason being that ptex2tex
offered about 40 different
styles for typesetting verbatim blocks of code. The ptex2tex
utility
relies on a comprehensive configure file for setting the style of every
code environment (pycod
, fpro
, sys
, etc.). A simpler and quicker
alternative, doconce ptex2tex
was developed later such that DocOnce
was not dependent on the comprehensive ptex2tex
set up.
In 2015, a new implementation in DocOnce replaced ptex2tex
and
doconce ptex2tex
, and can in fact generate LaTeX code directly.
Rather than offering a range of packages for typesetting computer
code, as the ptex2tex
tool does, the implementation made use of only
three choices: fancyvrb
, minted
, or listing
, but these choices
with all their parameters actually span a much richer way of
typesetting code than what ptex2tex
offers.
When running doconce format latex mydoc
or doconce format pdflatex mydoc
,
the command-line argument --latex_code_style=...
specifies the typesetting
of blocks of computer code. The result of the doconce format
command
is then a LaTeX file mydoc.tex
, which can be processed by latex
,
pdflatex
, or xelatex
.
We use the term code environment for the DocOnce environments in which
blocks of code are typset. For example, the pycod
environment is
surrounded by the !bc pycod
and !ec
directives. DocOnce supports
a lot of such environments: pycod
for code snippets in Python, pypro
for complete executable Python programs, fcod
and fpro
for
snippets and complete programs in Fortran, cppcod
and cpppro
for
the C++ counterparts, mcod
and mpro
for Matlab, to mention some.
The user can choose between three well-known packages for typesetting computer code in LaTeX:
vrb
: fancyvrb
and the Verbatim
LaTeX environmentpyg
: minted
, i.e., the Pygments tool, and the minted
LaTeX environmentlst
: listingsutf8
and the lstlisting
LaTeX environmentany
: any environment named any
from any packagevrb
, pyg
, lst
, and any
are the terms for these
packages/environments on the command line when running doconce format
.
In addition, the user can specify a possibly colored background for
the blocks of computer code and also set the parameters in the
various environments. This information can be specified for each
DocOnce code environment (pycod
, sys
, etc.) independently, including a
common default choice for the code environments that are not specified.
The following command speficies the Verbatim
(vrb
)
environment for all code blocks:
Terminal> doconce format pdflatex mydoc --latex_code_style=vrb
A DocOnce demo document has been made to illustrate
how the various typesettings look like. The document contains
a data file with the code environment dat
, a complete executable
Python program in the code environment pypro
, and a terminal session
in the code environment sys
. The result of
--latex_code_style=vrb
gives the most plain and standard way of
typesetting verbatim code blocks in LaTeX, see the result.
Or more precisely, DocOnce generates a Verbatim
environment with
several parameters set:
\begin{Verbatim}[numbers=none,fontsize=\\fontsize{9pt}{9pt},%
baselinestretch=0.95,xleftmargin=2mm]
...
\end{Verbatim}
This results in slightly smaller font and slightly squeezed lines in the code block. It matches well running text in 10pt font.
The xleftmargin=2mm
parameter can be explicitly set to something
else on the command line: --latex_code_leftmargin=7
(e.g.). The number
is measured in mm. (Using square brackets, as shown below, it can also
be set individually for different code environments.)
minted
(Pygments) tool
Replacing vrb
by pyg
switches the LaTeX environments to minted
:
Terminal> doconce format pdflatex mydoc --latex_code_style=pyg
Now, the resulting PDF file has typesetting of computer code that depends on the programming language. For example, the Python program leads to
\begin{minted}[%
fontsize=\\fontsize{9pt}{9pt},linenos=false,%
baselinestretch=1.0,fontfamily=tt,xleftmargin=2mm]{python}
...
\end{minted}
-shell-escape
when compiling minted
(Pygments) code!
The minted
LaTeX environment requires latex
or pdflatex
to be
run with the -shell-escape
option:
Terminal> pdflatex -shell-escape mydoc
The minted
style to be used can be
specified by the --minted_latex_style=
option, e.g.,
Terminal> doconce format pdflatex mydoc --latex_code_style=vrb --minted_latex_style=perldoc
The perldoc
choice changes the colors from
the default (Pygments default
) choice generated previously.
lstlisting
tool
The third package for typesetting of verbatim blocks of code is
listingsutf8
and the lstlisting
LaTeX environment, which in
the following most plain form gives a look not
much different from the Verbatim
environment:
Terminal> doconce format pdflatex mydoc --latex_code_style=lst
The resulting LaTeX code is:
\begin{lstlisting}[language=Python,style=simple,xleftmargin=2mm]
...
\end{listlisting}
However, all possible lstlisting
options can be set, as will
be shown later.
Say you have a LaTeX package compcode
with the environment ultimate
that you want to use. This can be specified by
Terminal> doconce format pdflatex mydoc \
--latex_code_style=ultimate --latex_packages=compcode
The resulting LaTeX code becomes
\begin{ultimate}
...
\end{ultimate}
In the previous example, we can add one of the predefined backgrounds in DocOnce:
doconce format pdflatex doc --latex_code_style=lst-yellow2
The yellow2
background is light yellow.
For colored backgrounds, one should notice that the pro
code environments
(as in pypro
)
for complete executable programs get a 1mm slightly darker bar at the left
side of the code block. This almost invisible color change indicates for
the reader that the code can be copied and run as it stands.
(The cod
code environments are used for snippets that will not
normally run unless some additional statements is supplied.)
The general specification of a background is pkg-bg
, where
pkg
is the package specification (vrb
, pyg
, or lst
) and bg
is the DocOnce name of a background:
gray
: light grayyellowgray
: light yellow, somewhat gray-ishyellow1
: yellowyellow2
: light yellowblue1
: light bluered1
: light red, somewhat apricot-ishwhite
: no backgroundyellow1
color to have RGB values (0.95, 0.95, 0.8) rather than (0.98, 0.98, 0.8),
autoedit the .tex
file with a regular expression:
Terminal> doconce subst 'yellow1\}\{rgb.+' \
'yellow1{rgb}{0.95, 0.95, 0.8} mydoc.tex
or just replace the exact text:
Terminal> doconce replace \
'cbg_yellow1}{rgb}{.98, .98, 0.8}' \
'cbg_yellow1}{rgb}{.95, .95, 0.8}' mydoc.tex
It is easy to specify parameters to the lstlisting
or the two
other LaTeX environments:
Terminal> doconce format pdflatex doc \
"--latex_code_style=lst-yellow2[numbers=left,
numberstyle=\\tiny,numbersep=15pt,breaklines=true]"
(but no linebreaks in the --latex_code_style
command!).
These parameters specify line numbers in the code blocks as well as wrapping of too long lines (breaklines=true
).
Note that any backslash in LaTeX command must be a
double backslash on the command line!
Here is an example where we use the fictitious code enviroment ultimate
from the package compcode
with a yellow backgrund and with some
environment parameters arg1
and arg2
:
Terminal> doconce format pdflatex mydoc --latex_packages=compcode \
'--latex_code_style=ultimate-yellow2[arg1=val1,arg2=val2]'
The resulting LaTeX code becomes
\begin{cod}{cbg_yellow2}\begin{ultimate}[arg1=val1,arg2=val2]
...
\end{ultimate}\end{cod}
In this way, you can use any environment in any package for typesetting code.
The colored background might be appropriate for computer code in the
previous example, but maybe not so appropriate for the terminal
session. Let us typeset the terminal session using the Verbatim
environment, but rely on lst
without line numbers as above for the
other code environments:
Terminal> doconce format pdflatex doc \
"--latex_code_style=default:lst-yellow2@sys:vrb"
That is, we specify the default choice (default
) and the sys
environment. The specifications are separated by @
. One can
add parameters to the LaTeX environments, e.g.,
Terminal> doconce format pdflatex doc \
"--latex_code_style=default:lst-yellow2[numbers=left]@sys:vrb"
Here is a more fancy typesetting of sys
environments with lines
above and below and a title Terminal
inside a box:
Terminal> doconce format pdflatex doc \
"--latex_code_style=default:lst-yellow2@
sys:vrb[frame=lines,label=\\fbox{{\\tiny Terminal}},framesep=2.5mm,
framerule=0.7pt,fontsize=\fontsize{9pt}{9pt}]"
(with no linebreaks though!). Here is the result.
lst
style
DocOnce comes with some predefined styles for the lstlisting
LaTeX
environment:
simple
for no coloring of code (plain verbatim style)redblue
for coloring of code dominated by red and bluegreenblue
for coloring of code dominated by green and bluegray
for a framed gray background and no code coloringgraycolor
for a framed gray background and green comments, pink keywords,
red strings, and orange variablesblue1
for a light blue/cyan background with no code coloringblue1bar
for a light blue/cyan background with a darker think frame
and with no code coloringblue1_bluegreen
colored code with blue background (combination of
blue1
background and bluegreen
syntax coloring)blue1bar_bluegreen
colored code with blue background and darker
frame (combination of
blue1bar
background and bluegreen
syntax coloring)yellow2_fb
for a framed yellow (yellow2
) background and
green comments, blue keywords, red strings, and orange variables
(the style from the FEniCS book)
of code and a background color equal to yellow2
yellow2_fb
, gray
, graycolor
,
blue1
)
should of course not be combined with another colored background
(skip backgroundcolor
specification or set it to white
).
The user can also define any number of additional styles and put them
in a file, say .mylststyles
, and give them to doconce format
through
the command-line option --latex_code_lststyles=.mylststyles
.
Just include \lstdefinestyle{name}{...}
commands in the file.
Here is an example of specifying the yellow2_fb
style with yellow
background, coloring of code, and a frame around all code blocks
(as made famous in the FEniCS book):
Terminal> doconce format pdflatex doc \
"--latex_code_style=default:lst[style=yellow2_fb]"
You may check out the corresponding result.
Blue background and plain verbatim non-colored code (as made famous in the Python Primer on Scientific Programming book) results from
Terminal> doconce format pdflatex doc \
"--latex_code_style=default:lst[style=blue1]@
pypro:lst[style=blue1bar]@dat:lst[style=gray]@
sys:vrb[frame=lines,label=\\fbox{{\tiny Terminal}},
framesep=2.5mm,framerule=0.7pt,fontsize=\fontsize{9pt}{9pt}]"
(but no linebreaks as here).
Note that this style does not offer the thin vertical darker-colored bar
for pypro
enviroments (indicating complete programs) as
ptex2tex
offers through the BlueBar
environment. Instead, there is a
darker-colored top+bottom frame around pypro
code specifications.
(The old vertical bar is enabled by a pypro:vrb-blue1
specification, but then
with a colored background that is significantly larger than the computer code
block.)
The 5th edition of the mention "Primer book" features syntax highlighting,
offered by the blue1_bluegreen
and blue1bar_bluegreen
styles:
Terminal> doconce format pdflatex doc \
"--latex_code_style=default:lst[style=blue1_bluegreen]@
pypro:lst[style=blue1bar_bluegreen]@dat:lst[style=gray]@
sys:vrb[frame=lines,label=\\fbox{{\tiny Terminal}},
framesep=2.5mm,framerule=0.7pt,fontsize=\fontsize{9pt}{9pt}]"
(but no linebreaks as here). Look at the result.
--latex_code_style=
The --latex_code_style=
option can take a set of code environment
specifications separated by @
. Each specification is of the form
envir:pgk-bg[prms]
,
where envir
is the code environment name (pypro
, sys
, etc., or default
),
pkg
is the package name (vrb
, pyg
, lst
), bg
is
the DocOnce name of a potential background (can be omitted), and
prms
is a list of parameters for the LaTeX environment.
As an example, we may specify a default typesetting with lst
and the blue1
background, using the greenblue
style and numbering of lines;
then we let the dat
environment be typeset with the Verbatim
environment with a light gray background; and finally we let sys
also use
Verbatim
, but with many parameters for more fancy layout. The
value of --latex_code_style=
is then (split over several lines for
increased readability - it must be one line as a terminal command!):
"--latex_code_style=default:lst-blue1[style=greenblue,
numbers=left,numberstyle=\\tiny,stepnumber=3,
numbersep=15pt,xleftmargin=1mm]@dat:vrb-gray@
sys:vrb[frame=lines,label=\\fbox{{\\tiny Terminal}},
framesep=2.5mm,framerule=0.7pt,fontsize=\fontsize{9pt}{9pt}]"
Here is the result of this detailed specification.
vrb-blue
,
is significantly larger than the
verbatim text. The surrounding space can be reduced by setting
\fboxsep
to a negative value,
see the line right before the definition of the cod
environment in the .tex
file. However, if a !bbox
is used in
the document, \fboxsep
cannot be set to a negative value without
destroying those boxes. If one really wants the colored background
to be about as large as the text, there is at present two options:
lst
with a style (gray
, yellow2_fb
, blue1
)ptex2tex
with the Blue
and similar environments in the
.ptex2tex.cfg
file.ptex2tex
.
Suppose you want to typeset your code with an environment that is not supported by DocOnce. For example, we want in LaTeX to have headline before each code snippet with a section-based counter, the filename and some title for the code. Then we want double lines before and after the code snippet:
This is fairly easy: we define a user-defined environment in
DocOnce, here called code
and provide a Python module that translates
this environment into proper format-specific code.
Details are provided in the DocOnce manual, see the section
User-Defined Environments. In the present case,
the syntax in a DocOnce file is to wrap every @@@CODE
line or
!bc
environment in a !bu-code
and !eu-code
environment. The
code in the figure above is produced by
!bu-code file=process.f Return `a` multiplied by `c`
!bc fcod
subroutine process(a, n, c, r)
C Return array r = c*a
integer n
real*8 a(n), c, r(n)
integer i
do i = 1,n
r(i) = c*a(i)
end do
return
end
!ec
!eu-code
The LaTX code we want is
\begin{pycode}
\Verb!process.f!:
Return a multiplied by \Verb!c!
\hrule
\vspace{1mm}
\hrule
\begin{lstlisting}[language=Fortran,style=simple,xleftmargin=2mm]
subroutine process(a, n, c, r)
C Return array r = c*a
integer n
real*8 a(n), c, r(n)
integer i
do i = 1,n
r(i) = c*a(i)
end do
return
end
\end{lstlisting}
\hrule
\vspace{1mm}
\hrule
\end{pycode}
We have created a special LaTeX environment
("theorem") called
pycode
that LaTeX will give a section-based
number (just like theorems, examples, etc).
To this end, we must write a file userdef_environments.py
where we define the code
environment for LaTeX and
other formats (usually some tailored LaTeX code and just some reasonable
common DocOnce code for other formats). The userdef_environments.py
file looks like this in the current example:
import re
def latex_code(text, titleline, counter, format):
# file=myprog.py label=my:label Some title...
label, titleline = get_label(titleline, 'label')
filename, titleline = get_label(titleline, 'file')
# Must be able to handle empty label and/or filename
# (recognized by '')
if label:
label = 'label{%s}' % label
if filename:
filename = '`%s`: ' % filename
s = r"""
\begin{pycode}
%s
%s
%s
\hrule
\vspace{1mm}
\hrule
%s
\hrule
\vspace{1mm}
\hrule
\end{pycode}
""" % (label, filename, titleline, text)
return s
def do_code(text, titleline, counter, format):
# file=myprog.py label=my:label Some title...
label, titleline = get_label(titleline, 'label')
filename, titleline = get_label(titleline, 'file')
s = r"""
_Python code %d_: `%s`. %s
%s
""" % (counter, filename, titleline, text)
return s
def get_label(titleline, label_text='label'):
label = ''
if label_text in titleline:
pattern = r'%s=([^\s]+)' % label_text
m = re.search(pattern, titleline)
if m:
label = m.group(1)
titleline = re.sub(pattern, '', titleline).strip()
return label, titleline
envir2format = {
'intro': {
'latex': r"""
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{pycode}{Python code}[section]
""",},
'code': {
'latex': latex_code,
'do': do_code,
},
}
We grab information on
the !bu-code
line for a potential filename, label, and header for
the code snippet.
When compiling to pdflatex
, we simply use --latex_code_style=lst
,
but we could use more fancy styles if desired.
You can inspect the PDF file for this example with
a tailored, user-defined code environment.


{% trans "Livesettings are disabled for this site." %}
{% trans "All configuration options must be edited in the site settings.py file" %}
{% extends "admin/base_site.html" %} {% load i18n admin_static config_tags %}{% load url from future %} {% block breadcrumbs %}
{% trans "Livesettings are disabled for this site." %}
{% trans "All configuration options must be edited in the site settings.py file" %}
{% blocktrans count form.errors|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}
{% endif %}


CORDIC Algorithm Visualization Tool
Parameters:
0
10
See the full project, with hardware implementation, in GitHub: baptistepetit/cordic.


|
Vienna Vulkan Engine
|
Represents any object that can be put into a scene. More...
#include <VEEntity.h>
Public Types | |
| enum | veNodeType { VE_NODE_TYPE_SCENENODE, VE_NODE_TYPE_SCENEOBJECT } |
| Object type, can be just a scene node, or an object that additionally needs a UBO buffer. More... | |
Public Member Functions | |
| virtual veNodeType | getNodeType () |
| VESceneNode * | getParent () |
| bool | hasParent () |
| std::vector< VESceneNode * > & | getChildrenList () |
| std::vector< VESceneNode * > | getChildrenCopy () |
| void | setTransform (glm::mat4 trans) |
| Sets the scene node's local to parent transform. | |
| glm::mat4 | getTransform () |
| void | setPosition (glm::vec3 pos) |
| Sets the scene node's position. | |
| glm::vec3 | getPosition () |
| glm::vec3 | getXAxis () |
| glm::vec3 | getYAxis () |
| glm::vec3 | getZAxis () |
| void | multiplyTransform (glm::mat4 trans) |
| Multiplies the entity's transform with another 4x4 transform. More... | |
| glm::mat4 | getWorldTransform () |
| An entity's world matrix is the local to parent transform multiplied by the parent's world matrix. More... | |
| void | lookAt (glm::vec3 eye, glm::vec3 point, glm::vec3 up) |
| lookAt function for a left handed frame of reference More... | |
| virtual void | addChild (VESceneNode *) |
| Adds a child object to the list of children. More... | |
| virtual void | removeChild (VESceneNode *) |
| remove a child from the children list - child is NOT destroyed More... | |
| virtual void | getBoundingSphere (glm::vec3 *center, float *radius) |
| Get a default bounding sphere for this scene node. More... | |
| virtual void | getOBB (std::vector< glm::vec4 > &pointsW, float t1, float t2, glm::vec3 ¢er, float &width, float &height, float &depth) |
| Get an OBB that exactly holds the given points. More... | |
| Public Member Functions inherited from ve::VENamedClass | |
| VENamedClass (std::string name) | |
| Constructor. | |
| ~VENamedClass () | |
| Destructor. | |
| std::string | getName () |
Protected Member Functions | |
| VESceneNode (std::string name, glm::mat4 transf=glm::mat4(1.0f)) | |
| The constructor ot the VESceneNode class. More... | |
| virtual | ~VESceneNode () |
| Destructor of the scene node class. | |
| glm::mat4 | getWorldTransform2 () |
| An entity's world matrix is the local to parent transform multiplied by the parent's world matrix. More... | |
| virtual void | updateUBO (glm::mat4 worldMatrix, uint32_t imageIndex) |
| Meant for subclasses to add data to the UBO, so this function does nothing in base class. | |
Protected Attributes | |
| glm::mat4 | m_transform = glm::mat4(1.0) |
| Transform from local to parent space, the engine uses Y-UP, Left-handed. | |
| std::vector< VESceneNode * > | m_children |
| List of entity children. | |
| VESceneNode * | m_parent = nullptr |
| Pointer to entity parent. | |
| std::mutex | m_mutex |
| Mutex for locking access to this node. | |
| Protected Attributes inherited from ve::VENamedClass | |
| std::string | m_name |
| Name of this instance. | |
Represents any object that can be put into a scene.
VESceneNode represents any object that can be used by the scene manager to be put into the scene. This includes objects, cameras, lights, sky boxes or terrains. Scene nodes have a local to parent transform. This is a 4x4 matrix translating position and orientation from the local (object) space to the parent space. Scene nodes can have a parent. If so the local transform is relative to the parent transform. This relation is stored in the parent and children pointers. Since there is a parent-child relationship, scene nodes build up trees of nodes. If the scene node does not have a parent, it will not be updated during the update run, and it will not be drawn.
|
protected |
The constructor ot the VESceneNode class.
| [in] | name | The name of this node. |
| [in] | transf | Position and orientation. |
|
virtual |
Adds a child object to the list of children.
| [in] | pObject | Pointer to the new child. |
|
virtual |
Get a default bounding sphere for this scene node.
Syncing is done in getPosition()
| [out] | center | The sphere center is also the position of the scene node |
| [out] | radius | The default radius of the sphere |
Reimplemented in ve::VECamera, and ve::VEEntity.
|
inline |
|
inline |
|
inlinevirtual |
Reimplemented in ve::VESceneObject.
|
virtual |
Get an OBB that exactly holds the given points.
The OBB is oriented along the local axes of the scene node.
| [in] | points | The points that should be engulfed by the OBB, in world space |
| [in] | t1 | Used for interpolating between frustum edge points |
| [in] | t2 | Used for interpolating between frustum edge points |
| [out] | center | Center of the OBB |
| [out] | width | Width of the OBB |
| [out] | height | Height of the OBB |
| [out] | depth | Depth of the OBB |
|
inline |
| glm::vec3 ve::VESceneNode::getPosition | ( | ) |
The position of a scene node is the 4th column vector of its transform.
| glm::mat4 ve::VESceneNode::getTransform | ( | ) |
| glm::mat4 ve::VESceneNode::getWorldTransform | ( | ) |
An entity's world matrix is the local to parent transform multiplied by the parent's world matrix.
|
protected |
An entity's world matrix is the local to parent transform multiplied by the parent's world matrix.
| glm::vec3 ve::VESceneNode::getXAxis | ( | ) |
| glm::vec3 ve::VESceneNode::getYAxis | ( | ) |
| glm::vec3 ve::VESceneNode::getZAxis | ( | ) |
|
inline |
| void ve::VESceneNode::lookAt | ( | glm::vec3 | eye, |
| glm::vec3 | point, | ||
| glm::vec3 | up | ||
| ) |
lookAt function for a left handed frame of reference
| [in] | eye | New position of the entity |
| [in] | point | Entity looks at this point (= new local z axis) |
| [in] | up | Up vector pointing up |
| void ve::VESceneNode::multiplyTransform | ( | glm::mat4 | trans | ) |
Multiplies the entity's transform with another 4x4 transform.
The transform can be a translation, scaling, rotation etc.
| [in] | trans | The 4x4 transform that is multiplied from the left onto the entity's old transform. |
|
virtual |
remove a child from the children list - child is NOT destroyed
| [in] | pNode | Pointer to the child to be removed. |


There are three components that must be configured at either the
context or server level. (context.xml or server.xml) They are OServerObjectFactory,
OPDPFObjectFactory and OdbRealm.
OServerObjectFactory
This resource is only declared when are running OrientDB embedded.
It is never referenced directly from your application but must
referenced by the server attribute in the resource
declaration for OPDPFObjectFactory. OPDPFObjectFactory will then
look up the OServerObjectFactory resource which will start the
embedded OrientDB server.
OServerObjectFactory resource declaration:
<Resource
auth="Container"
closeMethod="shutdown"
configFile="/mnt/share/orientdb-community-2.1.9/config/orientdb-server-config.xml"
factory="com.ashtonit.odb.jndi.OServerObjectFactory"
name="oserver"
singleton="true"
type="com.orientechnologies.orient.server.OServer"
/>
The only attribute in the above element that is not described in
the Tomcat configuration guide is configFile. The
value of this attribute is the name of the configuration file for
the OrientDB server. Refer to the OrientDB manual when editing
this.
OPDPFObjectFactory
The OPDPFObjectFactory class must be configured as a JNDI
Resource in Tomcat. This must be done in either server.xml or the
context.xml file for the web application.
Putting the configuration in server.xml is generally more
appropriate. When running the embedded server, the OServer instance
runs as a singleton anyway so the configuration is effectively
global wherever you put it. Two different configurations in
different context.xml files would result in undefined behaviour.
Most likely the first application to be loaded would override any
others.
The Tomcat guide on resource configuration is here.
Important things to note for OdbResource configuration are:
- The auth attribute must have a value of "Container"
- The capacity attribute sets the maximum number of
connections available
- The closeMethod attribute must have a value of "close"
- The factory attribute must have a value of
"com.ashtonit.odb.jndi.OPDPFObjectFactory"
- The type attribute must have a value of
"com.orientechnologies.orient.core.db.OPartitionedDatabasePoolFactory"
- The server attribute must be present only if you are
running OrientDB embedded, in which case the value must match the
value of the name attribute for the OServer resource declaration
- The singleton attribute must have a value of true, to
ensure that the close method is run (In fact the factory remains a
singleton regardless of this attribute.)
OPDPFObjectFactory resource declaration:
<Resource
auth="Container"
capacity="100"
closeMethod="close"
factory="com.ashtonit.odb.jndi.OPDPFObjectFactory"
name="opdpfactory"
server="oserver"
singleton="true"
type="com.orientechnologies.orient.core.db.OPartitionedDatabasePoolFactory"
/>
The only attributes in the above element that are not described in
the Tomcat configuration guide are capacity and server.
The server attribute must be present only if you
want to run an embedded OrientDB server. The value must match the
value of the name attribute for the OServer
resource declaration.
Finally, to make the resource available to a given web application
you also must add it as a Resource Link in the web
app's context.xml:.
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<ResourceLink global="opdpfactory" name="opdpfactory"
type="com.orientechnologies.orient.core.db.OPartitionedDatabasePoolFactory">
</ResourceLink>
</Context>
The Tomcat guide on JNDI resource configuration is
here.
OdbRealm
This is a fairly simple and restricted authentication Realm for
Tomcat. It only supports one form of authentication, the basic
username/password method. Attempting to use any other method will
result in an UnsupportedOperationException.
The Tomcat guide on realm configuration is here.
See the API documentation for OdbRealm for more
information on this specific implementation. Important things to
note for OdbRealm configuration are:
- The className attribute must have a value of
"com.ashtonit.odb.realm.OdbRealm"
- The value of the dbUser attribute must be the name of a
user with read access to the OUser class in the OrientDB database.
The "admin" user can be used for this for development and testing
purposes
- The dbResource attribute is optional:
- If present, the OdbRealm pool will be obtained from the
OPartitionedDatabasePoolFactory resource. The value must match
the value of the "name" attribute in the OdbResource
configuration
- If not present, a new pool with the default capacity
will be instantiated by the realm
- The value of the dbUrl attribute must be a valid OrientDB
URI
- The value of the query attribute must be an OSQL query
string that takes one parameter (a user identifier) and returns
the password hash and roles
<Realm
className="com.ashtonit.odb.realm.OdbRealm"
dbPass="admin"
dbResource="opdpfactory"
dbUrl="plocal:/opt/odb/mygraphdb"
dbUser="admin"
query="SELECT password, roles.name AS roles FROM OUser WHERE status = 'ACTIVE' AND name = ?"
/>
OdbRealm was originally written to authenticate only against the
built-in
OUser
and
ORole
classes but the authentication is now configurable by a query.
It takes an OSQL query string as a attribute named
query
which must return the password hash and the roles for a user.
The query must:
- Take one parameter (the user name or identifier)
- Return the password hash as a String for the user with a
parameter name of, "password"
- Return the role names for the user as a List of Strings
with a parameter name of, "roles"
The password is checked using the method OSecurityManager.checkPassword(String,
String). It checks for three different types of password hashes by
looking at the prefix of the string. They are:
- SHA-256 (A string prefix of
{SHA-256}-
)
- PBKDF2WithHmacSHA1 (A string prefix of
{PBKDF2WithHmacSHA1}-
)
- PBKDF2WithHmacSHA256 (A string prefix of
{PBKDF2WithHmacSHA256}-
)
The simplest way to create a password hash in the correct format is
to use the method OUser.encryptPassword(String).
The Principal implementation used by OdbRealm is OdbPrincipal. If you want to look up an
OrientDB pool factory directly from a JNDI context in your web
application you can cast the principal to OdbPrincipal and then
obtain the OrientDB URL as well as the username and password. See
the servlet example just below.
Here we have a simple example showing how to look up the
database pool factory in the JNDI context, obtain and use an
OrientGraph instance and release it again.
NOTE: The example given below pulls the username and password
from the principal. This only makes sense when you are
authenticating agains the built-in OUser and ORole classes. For any
other data model you will need the username and password of a
database user configured statically.
You may notice that the database URI is obtained from the
principal. This allows multiple databases, each managed by a
different realm. The OdbResource configuration defines the server,
not the database.


| Bond | Trevino | 20 | Bond.Trevino | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-06-02T10:30:39 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 43
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 3
- exam: 167
|
| Carrie | Garcia | 24 | Carrie85 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-12-07T04:19:16 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 2
- exam: 167
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 8
- exam: 350
|
| Madeline | Potter | 26 | Made93 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-04-15T09:14:40 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 1
- exam: 199
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 0
- exam: 80
|
| Barker | Vega | 35 | Barker.Vega | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-08-12T03:25:01 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 2
- exam: 128
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 0
- exam: 447
|
| Hebert | Heath | 32 | Hebert96 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-16T08:15:22 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 3
- exam: 166
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 6
- exam: 358
|
| Luann | Doyle | 40 | Luann.Doyle | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-13T03:30:46 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 0
- exam: 23
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 4
- exam: 489
|
| Marci | Gay | 35 | Marc.Gay | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-05-02T09:32:58 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 3
- exam: 15
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 1
- exam: 293
|
| Adrienne | Madden | 28 | Adrienn88 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-02-04T02:24:29 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 0
- exam: 196
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 8
- exam: 129
|
| Waters | Mclaughlin | 23 | Waters51 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-12-22T07:25:59 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 2
- exam: 184
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 8
- exam: 52
|
| Snow | Shields | 24 | Sno83 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-08-12T09:24:00 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 3
- exam: 110
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 1
- exam: 101
|
| Mandy | Clarke | 33 | Mandy7 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-01-20T03:09:41 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 0
- exam: 180
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 1
- exam: 310
|
| Delaney | Suarez | 23 | Dela77 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-08-04T05:28:49 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 4
- exam: 157
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 1
- exam: 263
|
| Nellie | Mcintyre | 38 | Nell93 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-08-01T07:08:26 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 3
- exam: 199
- title: CSharp Advanced
- homeworkAssignments: 8
- attendance: 7
- exam: 87
|
| Parsons | Guy | 25 | Parsons.Guy | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-02-10T02:13:14 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 3
- exam: 139
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 2
- exam: 255
|
| Everett | Valencia | 25 | Ever51 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-03-10T11:56:34 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 1
- exam: 22
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 0
- exam: 490
|
| Miranda | Sampson | 34 | Miranda.Sampson | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-06-26T03:25:06 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 156
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 0
- exam: 109
|
| Baird | Bauer | 24 | Baird5 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-03-07T02:24:54 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 1
- exam: 101
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 2
- exam: 48
|
| Ora | Newton | 26 | Ora56 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-05-22T12:13:34 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 1
- exam: 91
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 1
- exam: 285
|
| Mullen | Holt | 30 | Mullen.Holt | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-13T11:15:13 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 0
- exam: 86
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 7
- exam: 338
|
| Faith | Compton | 33 | Fai.Compton | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-03-20T09:50:12 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 1
- exam: 143
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 0
- exam: 480
|
| Harper | Hicks | 27 | Har42 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-20T02:05:25 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 3
- exam: 158
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 8
- exam: 328
|
| Hope | Franklin | 38 | Hop46 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-10-31T07:53:10 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 3
- exam: 70
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 6
- exam: 297
|
| Franco | Bailey | 28 | Franco.Bailey | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-12-25T03:33:03 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 2
- exam: 151
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 7
- exam: 114
|
| Bowman | Young | 22 | Bowma.Young | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-08-03T02:31:20 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: null
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 5
- exam: 290
|
| Fleming | Lloyd | 31 | Fleming43 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-02-18T05:34:35 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 1
- exam: 199
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 3
- exam: 102
|
| Olivia | Joyner | 40 | Olivia36 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-07-17T10:52:59 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 3
- exam: 160
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 6
- exam: 226
|
| Huber | Jacobson | 32 | Huber.Jacobson | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-06-13T12:20:36 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 4
- exam: 152
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 8
- exam: 138
|
| Newman | Rogers | 33 | New.Rogers | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-12-18T09:52:17 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 4
- exam: null
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 7
- exam: 175
|
| Lenore | Lopez | 34 | Lenore97 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-10T05:37:31 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 0
- exam: 158
- title: CSharp Advanced
- homeworkAssignments: 8
- attendance: 3
- exam: 491
|
| Petty | Hughes | 26 | Petty74 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-16T04:46:48 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 3
- exam: null
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 3
- exam: 249
|
| Morris | Travis | 24 | Morris.Travis | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-04-01T09:10:45 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 1
- exam: 141
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 6
- exam: 211
|
| Guzman | Orr | 32 | Guzman.Orr | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-08-10T08:05:36 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 1
- exam: 185
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 7
- exam: 288
|
| Bernadine | Richard | 29 | Bernadin81 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-04-15T12:24:34 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 0
- exam: null
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 1
- exam: 338
|
| Trisha | Castaneda | 38 | Trish91 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-15T06:54:07 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 4
- exam: 3
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 0
- exam: 166
|
| Cleo | Garrett | 39 | Cleo83 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-04-30T07:54:40 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 2
- exam: 140
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 2
- exam: 66
|
| Victoria | Morton | 31 | Vic92 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-01-16T02:45:38 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 2
- exam: 171
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 1
- exam: 143
|
| Baker | Marquez | 24 | Baker.Marquez | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-10T08:06:25 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 2
- exam: 183
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 1
- exam: 98
|
| Rosie | Bean | 30 | Rosie72 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-10-12T09:24:40 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 4
- exam: 18
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 0
- exam: 420
|
| Hays | Adams | 24 | Hays6 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-30T12:59:41 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 0
- exam: 82
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 5
- exam: 230
|
| Holmes | Payne | 24 | Holmes76 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-03-01T02:29:59 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 4
- exam: 184
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 6
- exam: 383
|
| Sexton | Mueller | 24 | Sexton21 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-06-04T11:19:48 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 1
- exam: 39
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 7
- exam: 266
|
| Vazquez | Leblanc | 32 | Vazqu.Leblanc | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-08-20T06:56:51 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 0
- exam: 111
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 2
- exam: 104
|
| Wiley | Gonzalez | 26 | Wiley0 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-06-11T06:52:35 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 2
- exam: 15
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 7
- exam: 280
|
| Louella | Vargas | 20 | Louel.Vargas | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-10-17T02:34:14 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 0
- exam: 158
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 3
- exam: 211
|
| Aurelia | Gallagher | 21 | Aur4 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-01-22T02:59:08 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 198
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 3
- exam: 144
|
| Sanchez | Mendez | 31 | Sanchez.Mendez | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-03-13T06:03:13 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 4
- title: CSharp Advanced
- homeworkAssignments: 8
- attendance: 6
- exam: 190
|
| Haynes | Cohen | 29 | Hayn15 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-03-13T05:24:35 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 1
- exam: 173
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 8
- exam: 481
|
| Jannie | Newman | 27 | Janni56 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-10T02:52:49 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 4
- exam: 55
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 3
- exam: 322
|
| Alyssa | Bridges | 29 | Alyssa.Brid | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-05-31T06:52:49 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 0
- exam: 26
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 1
- exam: 194
|
| Cherry | Salazar | 27 | Cherry2 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-11-05T10:46:32 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 2
- exam: 37
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 3
- exam: 192
|
| Sharp | Baxter | 21 | Sha97 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-10-29T06:20:21 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 1
- exam: 35
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 5
- exam: 102
|
| West | Woodard | 39 | West.Woodard | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-05-25T02:02:13 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 0
- exam: 185
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 8
- exam: 413
|
| Banks | Alexander | 30 | Banks.Alexander | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-06-23T10:10:16 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 1
- exam: 53
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 2
- exam: 307
|
| Hilda | Frazier | 39 | Hilda21 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-04-10T01:24:40 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 2
- exam: 6
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 4
- exam: 488
|
| Hodges | Salinas | 38 | Hodges.Salinas | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-21T05:32:14 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 2
- exam: 29
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 3
- exam: 444
|
| Abigail | Michael | 20 | Abiga49 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-03-22T07:37:32 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 0
- exam: 163
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 5
- exam: 237
|
| Ophelia | Blair | 20 | Ophe73 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-06T10:46:19 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 3
- exam: 118
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 4
- exam: 193
|
| Macias | Barron | 29 | Macias87 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-17T05:04:02 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 3
- exam: 50
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 4
- exam: 101
|
| Selma | Mccullough | 31 | Selma26 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-07-13T05:39:19 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 1
- exam: 89
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 6
- exam: 296
|
| Marisol | Walter | 29 | Mariso73 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-14T11:37:28 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 3
- exam: 144
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 3
- exam: 379
|
| Lupe | Ruiz | 33 | Lup.Ruiz | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-07-02T06:17:50 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 0
- exam: 134
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 8
- exam: 250
|
| Briggs | Mccarthy | 26 | Brigg84 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-30T09:42:29 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 0
- exam: 50
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 2
- exam: 378
|
| Horn | Mooney | 33 | Horn84 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-31T07:26:07 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 1
- exam: 28
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 0
- exam: 480
|
| Melody | Rios | 24 | Melody59 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-11-15T04:51:15 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 3
- exam: 30
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 4
- exam: 168
|
| Finch | Valentine | 27 | Finch13 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-06-06T11:01:09 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 0
- exam: 175
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 2
- exam: 308
|
| Sheena | Patterson | 28 | Shee.Patt | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-13T11:15:46 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 2
- exam: 63
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 1
- exam: 289
|
| Dotson | Gaines | 35 | Dotson6 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-10-04T09:16:34 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 2
- exam: 189
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 5
- exam: 199
|
| Thomas | Blevins | 38 | Thomas.Ble | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-02-11T02:28:18 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 0
- exam: 97
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 4
- exam: 344
|
| Ursula | Huber | 35 | Ursul40 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-12-23T02:56:57 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 1
- exam: 173
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 7
- exam: 367
|
| Hensley | Griffin | 31 | Hensley13 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-06-21T04:38:21 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 2
- exam: 109
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 8
- exam: 396
|
| Mcfarland | Butler | 33 | Mcfarlan24 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-20T02:25:23 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 1
- exam: 62
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 0
- exam: 174
|
| Anastasia | Hays | 20 | Anastasia79 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-05T03:51:01 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 4
- exam: 21
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 7
- exam: 100
|
| Bender | Wiggins | 22 | Bende.Wiggins | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-10-05T08:14:45 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 0
- exam: 95
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 2
- exam: 300
|
| Pruitt | Neal | 39 | Pruit36 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-02-20T01:41:40 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 3
- exam: 103
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 2
- exam: 488
|
| Calderon | Nieves | 20 | Calder.Niev | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-05-26T05:07:42 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 0
- exam: 109
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 5
- exam: 122
|
| Lucille | Olson | 35 | Luci97 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-01-10T05:12:04 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 3
- exam: 151
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 2
- exam: 375
|
| Maynard | Carter | 24 | Maynard35 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-13T01:15:56 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 0
- exam: 11
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 7
- exam: 292
|
| Barry | Daniels | 39 | Barr18 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-03-07T05:13:40 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 2
- exam: 112
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 8
- exam: 334
|
| Monique | Hayden | 31 | Moniq74 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-05-26T08:24:16 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 4
- exam: 157
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 0
- exam: 153
|
| Emerson | Beasley | 24 | Emerson58 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-12-15T08:32:22 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 4
- exam: 64
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 1
- exam: 196
|
| Hardin | Small | 30 | Har.Small | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-05-02T11:13:19 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 0
- exam: 54
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 5
- exam: 195
|
| Nguyen | Finch | 24 | Nguyen21 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-19T08:24:43 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 0
- exam: 38
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 8
- exam: 209
|
| Antoinette | Kane | 27 | Ant.Kane | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-07-20T05:39:26 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 3
- exam: 189
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 8
- exam: 151
|
| Ball | House | 35 | Ball14 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-03-07T10:23:22 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 2
- exam: 155
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 5
- exam: 318
|
| Chang | Dalton | 32 | Chang0 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-05-04T12:34:26 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 0
- exam: 75
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 0
- exam: 396
|
| June | Ortega | 34 | June8 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-12-17T03:36:47 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 9
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 6
- exam: 258
|
| Wood | Shepherd | 24 | Woo39 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-06-17T03:47:02 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 3
- exam: 169
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 5
- exam: 481
|
| Marissa | Odom | 28 | Mar.Odom | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-11-27T10:37:47 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 63
- title: CSharp Advanced
- homeworkAssignments: 8
- attendance: 5
- exam: 227
|
| Kathrine | Goodman | 20 | Kathrine69 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-08-01T10:17:57 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 4
- exam: 50
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 2
- exam: 260
|
| Frazier | Galloway | 38 | Frazie.Gallowa | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-08-19T02:50:42 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 0
- exam: 186
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 0
- exam: 424
|
| Wise | Hawkins | 40 | Wise.Haw | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-07-16T04:51:18 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 2
- exam: 191
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 0
- exam: 107
|
| Montgomery | Nielsen | 35 | Montg69 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-05-24T06:14:20 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 1
- exam: 37
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 2
- exam: 244
|
| Judith | Garza | 33 | Judith86 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-10-02T05:15:10 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 4
- exam: 13
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 8
- exam: 40
|
| Huff | Dillard | 37 | Huff.Dillar | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-10-16T01:53:29 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 4
- exam: 59
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 3
- exam: 344
|
| Irene | Holland | 37 | Ire.Hollan | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-03-01T02:36:22 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 1
- exam: 199
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 2
- exam: 120
|
| Sheppard | Reed | 32 | Shep.Reed | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-06-08T08:46:19 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 43
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 6
- exam: 58
|
| Cantrell | Lambert | 33 | Cantr9 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-09T11:27:56 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 4
- exam: 146
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 4
- exam: 157
|
| Elvira | Wooten | 37 | Elvira95 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-12-28T04:30:16 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 3
- exam: 104
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 7
- exam: 222
|
| Nola | Wallace | 33 | Nola.Wallac | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-28T07:56:49 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 2
- exam: 103
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 5
- exam: 493
|
| Albert | Durham | 34 | Albert8 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-05-30T04:25:18 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 2
- exam: 170
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 0
- exam: 219
|
| Gallegos | Graves | 34 | Gallegos71 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-05-12T05:54:27 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 1
- exam: 137
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 1
- exam: 141
|
| Carter | Dyer | 36 | Carte44 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-07-19T08:40:19 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 1
- exam: 136
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 1
- exam: 431
|
| Trina | Pratt | 32 | Trina90 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-12-18T12:48:30 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 2
- exam: 60
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 7
- exam: 320
|
| Tammie | Ewing | 27 | Tam99 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-14T05:52:42 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 4
- exam: 72
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 0
- exam: 363
|
| Graves | Tillman | 26 | Grav.Tillman | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-12T01:36:42 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 4
- exam: 60
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 2
- exam: 145
|
| Noemi | Bond | 33 | Noemi.Bond | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-08-27T01:19:06 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 4
- exam: 130
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 7
- exam: 250
|
| Jaclyn | Bush | 40 | Jacly.Bush | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-05-09T11:49:54 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 3
- exam: 197
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 8
- exam: 482
|
| Dudley | Haynes | 37 | Dudl9 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-07-22T08:27:42 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 1
- exam: 103
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 3
- exam: 337
|
| Ashley | Downs | 30 | Ashl70 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-10-31T12:16:58 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 1
- exam: 132
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 0
- exam: 153
|
| Fitzpatrick | David | 30 | Fitzpat72 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-10-16T06:10:39 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 0
- exam: 5
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 3
- exam: 344
|
| Ericka | Buck | 34 | Eri.Buck | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-10-23T06:42:58 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 3
- exam: 104
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 3
- exam: 122
|
| George | Stone | 24 | George.Stone | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-05-19T12:45:54 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 3
- exam: 156
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 3
- exam: 482
|
| Cristina | Preston | 28 | Cristi.Presto | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-27T03:10:49 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 2
- exam: 31
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 2
- exam: 88
|
| Bridgette | Gilbert | 25 | Bri53 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-04-02T11:38:24 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 0
- exam: 7
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 8
- exam: 232
|
| Fanny | Cole | 32 | Fanny69 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-03-30T03:02:51 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 4
- exam: 148
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 7
- exam: 277
|
| Deann | Pittman | 37 | Dea.Pitt | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-04-28T01:50:51 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 3
- exam: 90
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 7
- exam: 338
|
| Winifred | Cardenas | 31 | Winifred15 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-04T02:45:49 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 3
- exam: 33
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 6
- exam: 229
|
| Wilder | Cook | 23 | Wild.Cook | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-03-18T06:16:24 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 4
- exam: 81
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 2
- exam: 382
|
| Belinda | Morin | 25 | Belinda.Morin | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-24T12:34:16 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 1
- exam: 81
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 8
- exam: 499
|
| Boyd | Vaughan | 23 | Boyd8 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-10-31T11:18:02 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 2
- exam: 86
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 0
- exam: 431
|
| Shanna | Adkins | 31 | Shan.Adkins | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-06-23T01:24:20 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 0
- exam: 98
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 0
- exam: 122
|
| Amalia | Colon | 40 | Amalia.Colon | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-03-19T12:16:09 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 0
- exam: 10
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 3
- exam: 464
|
| Massey | Henry | 37 | Massey.Henry | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-06-08T06:37:27 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 3
- exam: 51
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 0
- exam: 341
|
| Reilly | Lindsay | 28 | Rei.Linds | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-19T07:58:03 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 0
- exam: 143
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 0
- exam: 207
|
| Drake | Chan | 25 | Drake38 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-05-19T10:36:09 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 2
- exam: 14
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 8
- exam: 402
|
| Nancy | Cummings | 31 | Nancy.Cummi | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-06-28T09:37:15 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 0
- exam: 26
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 6
- exam: 330
|
| Elaine | Tucker | 31 | Elaine.Tuc | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-04-14T12:14:54 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 1
- exam: 178
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 0
- exam: 449
|
| Brianna | Sosa | 30 | Brianna.Sosa | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-04-11T08:13:34 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 1
- exam: 51
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 5
- exam: 413
|
| Janette | Mcleod | 31 | Janet.Mcleod | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-02-07T10:14:58 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 2
- exam: 170
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 3
- exam: 474
|
| Acevedo | Franks | 36 | Acevedo50 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-07T06:23:55 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 1
- exam: 165
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 6
- exam: 496
|
| Amber | Brock | 39 | Amber80 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-11-08T10:46:48 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 3
- exam: 129
- title: CSharp Advanced
- homeworkAssignments: 8
- attendance: 5
- exam: 76
|
| Cindy | Villarreal | 29 | Cindy4 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-03-14T08:24:45 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 2
- exam: 92
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 6
- exam: 77
|
| Kim | Kirk | 23 | Kim.Kirk | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-01-20T01:37:25 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 2
- exam: 142
- title: CSharp Advanced
- homeworkAssignments: 8
- attendance: 1
- exam: 212
|
| Potter | Rodriguez | 32 | Pot89 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-01-22T04:04:00 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 1
- exam: 17
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 3
- exam: 329
|
| Conway | Schneider | 36 | Conway33 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-01-28T10:44:28 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 0
- exam: 63
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 8
- exam: 176
|
| Williams | Burnett | 38 | Willi.Burnett | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-02-07T01:56:46 -02:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 1
- exam: 156
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 0
- exam: 100
|
| Norma | May | 38 | Norma75 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-08-15T02:43:09 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 3
- exam: 128
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 6
- exam: 384
|
| Jenny | Waller | 24 | Jenny47 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-07-08T03:03:56 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 2
- exam: 199
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 8
- exam: 487
|
| Marsh | Kline | 39 | Marsh34 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-02T06:49:09 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 1
- exam: 59
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 1
- exam: 218
|
| Glenda | Blankenship | 31 | Glenda.Blanke | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-08-07T04:27:20 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 1
- exam: 190
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 1
- exam: 322
|
| Shelby | Lester | 36 | Shelby95 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-02-22T12:50:51 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 2
- exam: 93
- title: CSharp Advanced
- homeworkAssignments: 7
- attendance: 2
- exam: 317
|
| Brenda | Norris | 29 | Brenda77 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-05-03T07:22:22 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 1
- exam: 124
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 6
- exam: 470
|
| Roman | Baker | 26 | Roman28 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-09-22T05:58:48 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 0
- exam: 177
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 5
- exam: 270
|
| Phelps | Harper | 27 | Phelps3 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-06-16T02:58:46 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 36
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 2
- exam: 249
|
| Warner | Carroll | 31 | Warner.Carroll | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-06-11T01:32:12 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 2
- exam: 135
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 6
- exam: 293
|
| Zimmerman | Spence | 23 | Zimmerman57 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-04-08T10:06:37 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 2
- exam: 38
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 1
- exam: 463
|
| Petersen | Savage | 22 | Peter.Savage | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-04-27T06:51:35 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 3
- exam: 17
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 3
- exam: 384
|
| Burnett | Phelps | 39 | Burn.Phelps | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-01-22T12:50:02 -02:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 4
- exam: 108
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 6
- exam: 356
|
| Janine | Reeves | 21 | Janine57 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-11-02T03:38:07 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 3
- exam: 141
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 7
- exam: 166
|
| Lewis | Kerr | 25 | Lew9 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-03-29T11:25:36 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 3
- exam: 75
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 8
- exam: 59
|
| Pauline | Velazquez | 37 | Pau8 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-02T01:55:00 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 2
- exam: 96
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 8
- exam: 193
|
| Mccall | Hardy | 22 | Mcc80 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-30T07:30:13 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 0
- exam: 55
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 3
- exam: 444
|
| Henson | Mcdonald | 24 | Hens57 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-09-20T02:10:26 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 0
- exam: 178
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 6
- exam: 256
|
| Shirley | Stephenson | 32 | Shi.Stephe | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-06-18T11:09:54 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 4
- exam: 24
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 8
- exam: 117
|
| Benson | Carr | 30 | Benso10 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-10-23T05:31:56 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 1
- exam: 48
- title: CSharp Advanced
- homeworkAssignments: 8
- attendance: 1
- exam: 67
|
| Berry | Higgins | 22 | Berr.Hig | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-06-05T04:05:04 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 2
- exam: 44
- title: CSharp Advanced
- homeworkAssignments: 6
- attendance: 7
- exam: 54
|
| Elisa | Davenport | 40 | Elis86 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-04-24T03:51:01 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 0
- exam: 165
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 1
- exam: 123
|
| Cabrera | Sykes | 22 | Cabr80 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-12-03T09:11:29 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 26
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 4
- exam: 445
|
| Marks | Pierce | 24 | Marks21 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-01-30T06:24:13 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 2
- exam: 9
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 1
- exam: 258
|
| Lourdes | Gross | 22 | Lour75 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-30T04:51:04 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 2
- exam: 115
- title: CSharp Advanced
- homeworkAssignments: 1
- attendance: 6
- exam: 381
|
| Mooney | Chapman | 30 | Moon.Chapma | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-08-21T04:18:43 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 1
- exam: 84
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 8
- exam: 457
|
| Glover | Hyde | 32 | Glove79 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-06-30T05:26:46 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 3
- exam: 28
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 2
- exam: 423
|
| Mara | Gregory | 24 | Mara52 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-03-30T04:45:31 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 3
- exam: 155
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 5
- exam: 485
|
| Curry | Ware | 38 | Curry52 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-25T07:54:38 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 2
- exam: 94
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 4
- exam: 405
|
| Valencia | Meyer | 36 | Vale52 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-03-16T06:45:11 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 78
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 4
- exam: 278
|
| Bernadette | Landry | 32 | Berna9 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-06-15T09:14:34 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 1
- exam: 83
- title: CSharp Advanced
- homeworkAssignments: 0
- attendance: 5
- exam: 201
|
| Butler | Lewis | 24 | Butler34 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-15T06:07:40 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 0
- exam: 45
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 3
- exam: 198
|
| Shelley | Velasquez | 21 | Shelley37 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2016-05-19T09:33:03 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 88
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 0
- exam: 92
|
| Tracy | Harrell | 37 | Trac40 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-09-10T10:30:04 -03:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 2
- exam: 88
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 6
- exam: 368
|
| Kenya | Moore | 26 | Ken48 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-02-08T03:13:31 -02:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 120
- title: CSharp Advanced
- homeworkAssignments: 5
- attendance: 2
- exam: 262
|
| Lorie | Patton | 35 | Lorie82 | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-08-04T08:43:13 -03:00 |
- title: CSS
- homeworkAssignments: 3
- attendance: 4
- exam: 94
- title: CSharp Advanced
- homeworkAssignments: 10
- attendance: 3
- exam: 77
|
| Charles | Harvey | 26 | Charles8 | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-11-06T09:05:03 -02:00 |
- title: CSS
- homeworkAssignments: 2
- attendance: 3
- exam: 134
- title: CSharp Advanced
- homeworkAssignments: 4
- attendance: 4
- exam: 224
|
| Mallory | Head | 30 | Mallo.Head | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-12-01T07:44:46 -02:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 2
- exam: 18
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 7
- exam: 163
|
| Forbes | Warner | 26 | Forbes.War | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-06-30T09:50:31 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 3
- exam: 96
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 3
- exam: 450
|
| Marianne | Stein | 21 | Marianne.Stei | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2014-08-17T05:46:37 -03:00 |
- title: CSS
- homeworkAssignments: 1
- attendance: 3
- exam: 184
- title: CSharp Advanced
- homeworkAssignments: 3
- attendance: 0
- exam: 126
|
| Shawn | Waters | 27 | Shawn.Waters | | female |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-04-13T12:21:48 -03:00 |
- title: CSS
- homeworkAssignments: 4
- attendance: 2
- exam: 154
- title: CSharp Advanced
- homeworkAssignments: 9
- attendance: 7
- exam: 223
|
| Oneal | Holcomb | 28 | Onea.Holcom | | male |<EMAIL_ADDRESS>| +1<PHONE_NUMBER> | 2015-06-03T01:42:59 -03:00 |
- title: CSS
- homeworkAssignments: 0
- attendance: 4
- exam: 92
- title: CSharp Advanced
- homeworkAssignments: 2
- attendance: 0
- exam: 470
|


This application was designed for Approved Oil in order to manage receiving, moving, and verifying of inventory, and it was created using Ionic and AngularJS. I was solely responsible for the functionality of this application including but not limited to adding Cordova's barcode scanner feature, creating data services and API method calls to grab data from Apporved Oil’s Inventory Management QuickBase application, building out the best work flow for the three possible processes, and creating a user experience that was highly functional yet easy to use.
(function() { 'use strict'; angular.module('inventorymanagement') .controller('PosCtrl', PosCtrl); function PosCtrl($scope, QB, $ionicScrollDelegate, $state, $stateParams, $timeout, Data, Utils) { init(); $scope.reload = reload; $scope.selectPO = selectPO; $scope.refreshPurchaseOrders = refreshPurchaseOrders; $scope.scrollTop = scrollTop; function init() { console.log('Pos controller initialized'); loadPOs(); } function loadPOs(reload) { $scope.pos = Data.pos.all({reload: reload}); $timeout(function() { $scope.loaded = true; Utils.scrollTop(); }, 300); } function reload() { loadPOs(true); } function selectPO(po) { $state.go('location', { action: 'receive', po: po.poNumber }); } function refreshPurchaseOrders() { loadPOs(true); $scope.$broadcast('scroll.refreshComplete'); } function scrollTop() { Utils.scrollTop(); }; } })();


{% set id = 'modal-reset' %}
Resetting your survey will cause you to lose your results.


RbMethod
public struct RbMethod
This offers useful services to Swift implementations of Ruby methods.
You do not create instances of this type: instead, RubyGateway creates instances and passes them to method callbacks.
Topics
var rubySelf: RbObject
var rubySelf: RbObject
The object against which the method has been invoked.
Declaration
public let rubySelf: RbObject
var args: RbMethodArgs
var args: RbMethodArgs
The arguments passed to the method, decoded according to the method’s RbMethodArgsSpec
.
Declaration
public let args: RbMethodArgs
var argsSpec: RbMethodArgsSpec
var argsSpec: RbMethodArgsSpec
The method’s arguments specification, originally set by the user at the point the method was defined.
Declaration
public let argsSpec: RbMethodArgsSpec
var isBlockGiven: Bool
var isBlockGiven: Bool
func needsBlock()
func needsBlock()
Raise an exception if the method has not been passed a block.
Declaration
public func needsBlock() throws
func yieldBlock(args: [RbObjectConvertible?], kwArgs: KeyValuePairs<String, RbObjectConvertible?>) -> RbObject
func yieldBlock(args: [RbObjectConvertible?], kwArgs: KeyValuePairs<String, RbObjectConvertible?>) -> RbObject
Invoke the method’s block and get the result.
If the method was not passed a block then a Ruby exception is raised.
Declaration
@discardableResult
public func yieldBlock(
args: [RbObjectConvertible?] = [],
kwArgs: KeyValuePairs<String, RbObjectConvertible?> = [:]
) throws -> RbObject
Parameters
args |
The arguments to pass to the block, none by default. |
Throws
RbError.rubyException(_:)
if the block raises an exception.
RbError.rubyJump(_:)
if the block does return
or break
.
You should not attempt to handle rubyJump
errors: rethrow them
back to Ruby as soon as possible.
Return Value
The value returned by the block.
func captureBlock() -> RbObject
func captureBlock() -> RbObject
Get the method’s block as a Ruby Proc
.
If you want to just call the block then use yieldBlock(args:kwArgs:)
. Use this method
to store the block or do things to it.
Declaration
public func captureBlock() throws -> RbObject
Throws
RbError.rubyException(_:)
if the method does not have a block.
Return Value
An RbObject
for a Proc
object wrapping the passed block.
func callSuper(args: [RbObjectConvertible?], kwArgs: KeyValuePairs<String, RbObjectConvertible?>) -> RbObject
func callSuper(args: [RbObjectConvertible?], kwArgs: KeyValuePairs<String, RbObjectConvertible?>) -> RbObject
Call the overridden version of the current method.
The current active block, if any, is passed on to the superclass method. There is no RubyBridge equivalent to Ruby’s ‘raw super’ keyword, you must always explicitly specify the arguments to pass on.
If there is no matching superclass method to call then Ruby raises a
NoMethodError
that is thrown as an RbError.rubyException(_:)
.
Declaration
public func callSuper(
args: [RbObjectConvertible?] = [],
kwArgs: KeyValuePairs<String, RbObjectConvertible?> = [:]
) throws -> RbObject
Parameters
args |
Positional arguments to pass to the superclass method. |
kwArgs |
Keyword arguments to pass to the superclass method. |
Throws
RbError.rubyException(_:)
if there is a Ruby exception.
RbError.duplicateKwArg(_:)
if there are duplicate keywords in kwArgs
.
Return Value
The value returned by the superclass method.


--- layout: post title: "191202_TIL" subtitle: "today i learned -3-" date: 2019-12-02 23:45:13 -0400 background: '/img/posts/03.jpg' ---


{% extends 'pychart/base.html' %} {% block content %} {% activation_key %}
You have successfully completed registration to PyChart


Privacy Policy
This policy is the Privacy Policy of CryptoEX (www.CryptoEX.com.ng). Any questions relating to this policy should be directed to<EMAIL_ADDRESS>CryptoEX ("we" or "us") are committed to protecting and respecting your privacy. This policy together with our Terms of Service and any other documents referred to it sets out the basis on which any personal data we collect from you, or that you provide to us, will be processed by us. Please read the following carefully to understand our views and practices regarding your personal data and how we will treat it. By visiting this website you are accepting and consenting to the practices described in this policy.
For the purpose of National Information Technology Development Agency (NITDA) guidelines, the data controller is APPFISHERS SOFTINC TECHNOLOGY, Nigeria.
INFORMATION WE MAY COLLECT FROM YOU
We may collect and process the following data about you:
- Information you give to us. You may give us information about you by filling in forms on www.CryptoEX.com.ng ("our site") , (“app” ) or by corresponding with us by phone, e-mail or otherwise. This includes information you provide when you register to use our site, subscribe to our service, search for a product, place an order on our site, participate in discussion boards or other social media functions on our site, enter a competition, promotion or survey, and when you report a problem with our site. The information you give us may include your name, address, e-mail address and phone number.
- Information we collect about you. With regard to each of your visits to our site we may automatically collect the following information:
- technical information, including the internet protocol (IP) address used to connect your computer to the internet, your login information, browser type and version, time zone setting, browser plug-in types and versions, operating system and platform;
- information about your visit, including the full Uniform Resource Locators (URL) clickstream to, through and from our site (including date and time); products you viewed or searched for; page response times, download errors, length of visits to certain pages, page interaction information (such as scrolling, clicks, and mouse-overs), and methods used to browse away from the page and any phone number used to call our customer service number.
- Information we receive from other sources. We may receive information about you if you use any of the other websites we operate or the other services we provide. We are also working closely with third parties (including, for example, business partners, sub-contractors in technical, payment and delivery services, advertising networks, analytics providers, search information providers, credit reference agencies) and may receive information about you from them.
COOKIES
Our site uses cookies to distinguish you from other users of our site. This helps us to provide you with a good experience when you browse our site, and also allows us to improve our site.
USES MADE OF THE INFORMATION
We use information held about you in the following ways:
Information you give to us. We will use this information to:
- Carry out our obligations arising from any contracts entered into between you and us, and to provide you with information, products and services that you request from us;
- Provide you with information about other goods and services we offer that are similar to those that you have already purchased or enquired about;
- provide you, or permit selected third parties to provide you, with information about goods or services we feel may interest you. If you are an existing customer, we will only contact you by electronic means (e-mail or SMS) with information about goods and services similar to those which were the subject of a previous sale or negotiations of a sale to you. If you are a new customer, and where we permit selected third parties to use your data, we (or they) will contact you by electronic means only if you have consented to this. If you do not want us to use your data in this way, or to pass your details on to third parties for marketing purposes, please tick the relevant box situated on the form on which we collect your data;
- Notify you about changes to our service;
- ensure that content from our site is presented in the most effective manner for you and for your computer;
Information we collect about you. We will use this information:
- to administer our site and for internal operations including troubleshooting, data analysis, testing, research, statistical and survey purposes;
- to improve our site to ensure that content is presented in the most effective manner for you and for your computer;
- to allow you to participate in interactive features of our service, when you choose to do so;
- as part of our efforts to keep our site safe and secure;
- to measure or understand the effectiveness of advertising we serve to you and others, and to deliver relevant advertising to you;
- to make suggestions and recommendations to you and other users of our site about goods or services that may interest you or them.
Information we receive from other sources:
We may combine this information with information you give to us and information we collect about you. We may use this information and the combined information for the purposes set out above (depending on the types of information we receive).
DISCLOSURE OF YOUR INFORMATION
We may share your personal information with any member group, which means our subsidiaries, our ultimate holding company and subsidiaries, as defined in the Nigeria Companies and Allied Matters Act.
We may share your information with selected third parties including:
- Business partners, suppliers and sub-contractors for the performance of any contract we enter into with them or you.
- Advertisers and advertising networks that require the data to select and serve relevant adverts to you and others. We do not disclose information about identifiable individuals to our advertisers, but we may provide them with aggregate information about our users (for example, we may inform them that 500 females aged under 30 have clicked on their advertisement on any given day). We may also use such aggregate information to help advertisers reach the kind of audience they want to target (for example, women in SW1). We may make use of the personal data we have collected from you to enable us to comply with our advertisers' wishes by displaying their advertisement to that target audience.
- Analytics and search engine providers that assist us in the improvement and optimization of our site.
We may disclose your personal information to third parties:
- In the event that we sell or buy any business or assets, in which case we may disclose your personal data to the prospective seller or buyer of such business or assets.
- If CryptoEX or substantially all of its assets are acquired by a third party, in which case personal data held by it about its customers will be one of the transferred assets.
- If we are under a duty to disclose or share your personal data in order to comply with any legal obligation, or in order to enforce or apply our terms of service and other agreements; or to protect the rights, property, or safety of CryptoEX, our customers, or others. This includes exchanging information with other companies and organizations for the purposes of fraud protection and credit risk reduction.
WHERE WE STORE YOUR PERSONAL DATA
The data that we collect from you may be transferred to, and stored at, a destination outside of Economic Community of West African States (ECOWAS). It may be processed by a staff member operating outside ECOWAS who work for us or for one of our partners. Such staff may be engaged in amongst other things, the fulfillment of your order, the processing of your payment details and the provision of support services. By submitting your personal data, you agree to this transfer, storing or processing. We will take all steps reasonably necessary to ensure that your data is treated securely and in accordance with this privacy policy.
Unfortunately, the transmission of information via the internet is not completely secure. Although we will do our best to protect your personal data, we cannot guarantee the security of your data transmitted to our site, and any transmission is at your own risk. Once we have received your information, we will use strict procedures and security features to try to prevent unauthorized access.
YOUR RIGHTS
You have the right to ask us not to process your personal data for marketing purposes. We will usually inform you (before collecting your data) if we intend to use your data for such purposes, or if we intend to disclose your information to any third party for such purposes. You can exercise your right to prevent such processing by checking certain boxes on the forms we use to collect your data. You can also exercise the right at any time by contacting us. Our site may, from time to time, contain links to and from the websites of our partner networks, advertisers and affiliates. If you follow a link to any of these websites, please note that these websites have their own privacy policies and that we do not accept any responsibility or liability for these policies. Please check these policies before you submit any personal data to these websites.
ACCESS TO INFORMATION
We follow the (NITDA) guidelines on Personal Data or Object Identifiable Information (OII). In accordance with this, we are open to giving you the right to access information held about you. Any access request may be subject to a fee of ₦10,000 to meet our costs in providing you with details of the information we hold about you.
CHANGES TO OUR PRIVACY POLICY
Any changes we may make to our privacy policy in the future will be posted on this page and, where appropriate, notified to you by e-mail. Please check back frequently to see any updates or changes to our privacy policy.


JMS Server Connector
The JMS Server connector can be used to listen to a topic/queue in a JNDI-based JMS provider. Following is a high-level view on how the JMS Server connector works:
How to write a JMS service
Step 1: Create the service
Create a service with unique name.
Example:
service<jms> jmsService {
}
Step 2: Specify the connection details
Add a service-level annotation named “jms:config”, and add the relevant key-value pairs depending on the jms client to specify the JMS connection details. The following table describes supported keys that can be used with the @jms:config annotation.
| Key | Description | Expected Values | Default Value |
|---|---|---|---|
| initialContextFactory | The JNDI initial context factory class. The class must implement the java.naming.spi.InitialContextFactory interface. | Depends on the JMS provider. When using WSO2 MB the value can be set as wso2mbInitialContextFactory |
- |
| providerUrl | The URL to connect to the JMS brroker | A valid URL depending on the JMS provider. | - |
| configFilePath | specify a configuration file instead of provider url | file path to a jndi.properties file | - |
| connectionFactoryType | The type of the connection factory | queue, topic | queue |
| connectionFactoryName | The JNDI name of the connection factory | - | - |
| destination | The name of the destination | - | service name |
| acknowledgmentMode | The JMS session acknowledgment mode | AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED | AUTO_ACKNOWLEDGE |
| clientID | The clientId parameter when using durable subscriptions | - | - |
| durableSubscriptionId | For topic subscriptions, setting the value will create a durable topic subscription | any valid subscription name depending on the JMS provider | - |
| connectionFactoryNature | The type of connection factory to use when creating consumers | default,cached,pooled | default |
| properties | Key values that are not in the above set of keys can be set using the properties array | key value pair array with key values seperated by an = charachter. ["key1=value1", "key2=value2"] |
- |
Example:
import ballerina.net.jms;
@jms:config {
initialContextFactory:"wso2mbInitialContextFactory",
providerUrl: "amqp://admin:admin@carbon/carbon?brokerlist='tcp://localhost:5672'",
connectionFactoryType:"queue",
connectionFactoryName:"QueueConnectionFactory",
destination:"MyQueue",
acknowledgmentMode:"CLIENT_ACKNOWLEDGE"
}
Step 3: Add the resource
Add a resource to the JMS service. This is required, because whenever a message comes from the JMS provider to a specific JMS service, it will be delivered to this particular resource. You must have only one resource in a JMS service.
Example:
import ballerina.net.jms;
@jms:config {
initialContextFactory:"wso2mbInitialContextFactory",
providerUrl: "amqp://admin:admin@carbon/carbon?brokerlist='tcp://localhost:5672'",
connectionFactoryType:"queue",
connectionFactoryName:"QueueConnectionFactory",
destination:"MyQueue",
acknowledgmentMode:"CLIENT_ACKNOWLEDGE"
}
service<jms> jmsService {
resource onMessage (message m) {
// ProcessMessage
}
Now you will have a JMS service that can be deployed to the Ballerina server.
NOTE: Before deploying the JMS service, you must copy the client-libs provided by the JMS provider to
{Ballerina_HOME}/bre/lib
Following is a sample JMS service.
import ballerina.net.jms;
@jms:config {
initialContextFactory:"wso2mbInitialContextFactory",
providerUrl: "amqp://admin:admin@carbon/carbon?brokerlist='tcp://localhost:5672'",
connectionFactoryType:"queue",
connectionFactoryName:"QueueConnectionFactory",
destination:"MyQueue",
acknowledgmentMode:"CLIENT_ACKNOWLEDGE"
}
service<jms> jmsService {
resource onMessage (message m) {
//Process the message
jms:acknowledge(m, jms:DELIVERY_SUCCESS);
}
}
Ballerina Native Functions
This section describes the native functions you can use to work with JMS messages.
Package ballerina.lang.messages
messages:getHeader
This function can be used to get the value of the particular JMS header. It accepts the following parameters:
- Relevant message to get the header from
- Header name
Example:
import ballerina.lang.messages;
import ballerina.net.jms;
---
string jmsMessageId;
jmsMessageId = messages:getHeader(m, jms:HDR_MESSAGE_ID);
messages:setHeader
This function can be used to set the value of the particular JMS header. It accepts the following parameters:
- Relevant message to get the header from
- Header name
- Header value
Example:
import ballerina.lang.messages;
import ballerina.net.jms;
---
string jmsMessageId;
messages:setHeader(responseMessage, jms:HDR_CORRELATION_ID, "response-001");
Following are the supported JMS headers in Ballerina
| JMS Header | Ballerina Header | Supported Operations |
|---|---|---|
| JMSDestination | HEADER_DESTINATION | get only, set by JMS provider |
| JMSDeliveryMode | HEADER_DELIVERY_MODE | get only, set by JMS provider |
| JMSExpiration | HEADER_EXPIRATION | get and set |
| JMSPriority | HEADER_PRIORITY | get and set |
| JMSMessageID | HEADER_MESSAGE_ID | get only, set by JMS provider |
| JMSTimestamp | HEADER_TIMESTAMP | get only, set by JMS provider |
| JMSCorrelationID | HEADER_CORRELATION_ID | get and set |
| JMSReplyTo | HEADER_REPLY_TO | get and set |
| JMSType | HEADER_MESSAGE_TYPE | get and set |
| JMSRedelivered | HEADER_REDELIVERED | get only, set by JMS provider |
messages:getStringPayload
This function can be used to get the string payload of the JMS text message or bytes message. This function accepts the relevant Ballerina message as the parameter. It will return the string payload of the relevant message.
Example:
import ballerina.lang.messages
---
string stringPayload;
stringPayload = messages:getStringPayload(m);
messages:getStringValue
This function can be used to get the string value of a specific map key in a map type message. This function accepts the following:
- Relevant Ballerina message to get the string value from
- Relevant map key value
Example:
import ballerina.lang.messages
---
string stringValue;
stringValue = messages:getStringValue(m, “count”);
messages:getProperty
This function can be used to retrieve a property from the message.
Example:
Message type can be retrieved from the message as below.
import ballerina.lang.messages;
---
string msgType = messages:getProperty(m, "JMS_MESSAGE_TYPE");
Package ballerina.net.jms
jms:acknowledge
This function can be used to acknowledge the message delivery or success, which is particularly useful when using the client acknowledgement mode. This function accepts the following parameters:
- Ballerina message that needs to be acknowledged
- Message delivery status - jms:DELIVERY_SUCCESS or jms:DELIVERY_ERROR
Example:
import ballerina.net.jms
---
jms:acknowledge(m, "SUCCESS");
jms:commit
This function can be used to commit the JMS session when using the session acknowledgement mode. This function accepts one parameter: the relevant message that the user wants to acknowledge the session with.
Example:
import ballerina.net.jms
---
jms:commit();
jms:rollback
This function can be used to commit the messages when using the session acknowledgement mode. This function accepts one parameter: the relevant Ballerina message that the user wants to roll back the session with.
Example:
import ballerina.net.jms
---
jms:rollback();


WIC obesity MA-CORD confidence provider providers childhood intervention (.) sites {border-style px;} #ffffff;} care Massachusetts N = ) counseling children study Obesity changes frequency behaviors increase practice prevention reported usual Taveras baseline risk children's px; screen {font-family Table assess font-size health multi-sector research significant Child Childhood Research double; observed physical practices prevalence sites. sleep Baidal Demonstration National Woo assessed behavior border-color border-width change child education higher identify increased low-income obesity-related obesity. primary sites, solid; survey time time, years {font-style {font-weight (MA-CORD) Health Identify Obes. ability age assessment bold compared courier; demonstration determine efforts em; factors focused highest increases nutrition practice, prevent project proportion pt;} sample site sugar-sweetened unable


I'm passionate about Javascript
Check out what Brad loves to write code in
Thanks for visiting. Get in contact with Brad via email: brad@hickstechnology.com