from __future__ import print_function, division
from sympy.core.compatibility import range
from .vector import Vector, _check_vector
from .frame import _check_frame
__all__ = ['Point']
[docs]class Point(object):
"""This object represents a point in a dynamic system.
It stores the: position, velocity, and acceleration of a point.
The position is a vector defined as the vector distance from a parent
point to this point.
"""
def __init__(self, name):
"""Initialization of a Point object. """
self.name = name
self._pos_dict = {}
self._vel_dict = {}
self._acc_dict = {}
self._pdlist = [self._pos_dict, self._vel_dict, self._acc_dict]
def __str__(self):
return self.name
__repr__ = __str__
def _check_point(self, other):
if not isinstance(other, Point):
raise TypeError('A Point must be supplied')
def _pdict_list(self, other, num):
"""Creates a list from self to other using _dcm_dict. """
outlist = [[self]]
oldlist = [[]]
while outlist != oldlist:
oldlist = outlist[:]
for i, v in enumerate(outlist):
templist = v[-1]._pdlist[num].keys()
for i2, v2 in enumerate(templist):
if not v.__contains__(v2):
littletemplist = v + [v2]
if not outlist.__contains__(littletemplist):
outlist.append(littletemplist)
for i, v in enumerate(oldlist):
if v[-1] != other:
outlist.remove(v)
outlist.sort(key=len)
if len(outlist) != 0:
return outlist[0]
raise ValueError('No Connecting Path found between ' + other.name +
' and ' + self.name)
[docs] def a1pt_theory(self, otherpoint, outframe, interframe):
"""Sets the acceleration of this point with the 1-point theory.
The 1-point theory for point acceleration looks like this:
^N a^P = ^B a^P + ^N a^O + ^N alpha^B x r^OP + ^N omega^B x (^N omega^B
x r^OP) + 2 ^N omega^B x ^B v^P
where O is a point fixed in B, P is a point moving in B, and B is
rotating in frame N.
Parameters
==========
otherpoint : Point
The first point of the 1-point theory (O)
outframe : ReferenceFrame
The frame we want this point's acceleration defined in (N)
fixedframe : ReferenceFrame
The intermediate frame in this calculation (B)
Examples
========
>>> from sympy.physics.vector import Point, ReferenceFrame
>>> from sympy.physics.vector import Vector, dynamicsymbols
>>> q = dynamicsymbols('q')
>>> q2 = dynamicsymbols('q2')
>>> qd = dynamicsymbols('q', 1)
>>> q2d = dynamicsymbols('q2', 1)
>>> N = ReferenceFrame('N')
>>> B = ReferenceFrame('B')
>>> B.set_ang_vel(N, 5 * B.y)
>>> O = Point('O')
>>> P = O.locatenew('P', q * B.x)
>>> P.set_vel(B, qd * B.x + q2d * B.y)
>>> O.set_vel(N, 0)
>>> P.a1pt_theory(O, N, B)
(-25*q + q'')*B.x + q2''*B.y - 10*q'*B.z
"""
_check_frame(outframe)
_check_frame(interframe)
self._check_point(otherpoint)
dist = self.pos_from(otherpoint)
v = self.vel(interframe)
a1 = otherpoint.acc(outframe)
a2 = self.acc(interframe)
omega = interframe.ang_vel_in(outframe)
alpha = interframe.ang_acc_in(outframe)
self.set_acc(outframe, a2 + 2 * (omega ^ v) + a1 + (alpha ^ dist) +
(omega ^ (omega ^ dist)))
return self.acc(outframe)
[docs] def a2pt_theory(self, otherpoint, outframe, fixedframe):
"""Sets the acceleration of this point with the 2-point theory.
The 2-point theory for point acceleration looks like this:
^N a^P = ^N a^O + ^N alpha^B x r^OP + ^N omega^B x (^N omega^B x r^OP)
where O and P are both points fixed in frame B, which is rotating in
frame N.
Parameters
==========
otherpoint : Point
The first point of the 2-point theory (O)
outframe : ReferenceFrame
The frame we want this point's acceleration defined in (N)
fixedframe : ReferenceFrame
The frame in which both points are fixed (B)
Examples
========
>>> from sympy.physics.vector import Point, ReferenceFrame, dynamicsymbols
>>> q = dynamicsymbols('q')
>>> qd = dynamicsymbols('q', 1)
>>> N = ReferenceFrame('N')
>>> B = N.orientnew('B', 'Axis', [q, N.z])
>>> O = Point('O')
>>> P = O.locatenew('P', 10 * B.x)
>>> O.set_vel(N, 5 * N.x)
>>> P.a2pt_theory(O, N, B)
- 10*q'**2*B.x + 10*q''*B.y
"""
_check_frame(outframe)
_check_frame(fixedframe)
self._check_point(otherpoint)
dist = self.pos_from(otherpoint)
a = otherpoint.acc(outframe)
omega = fixedframe.ang_vel_in(outframe)
alpha = fixedframe.ang_acc_in(outframe)
self.set_acc(outframe, a + (alpha ^ dist) + (omega ^ (omega ^ dist)))
return self.acc(outframe)
[docs] def acc(self, frame):
"""The acceleration Vector of this Point in a ReferenceFrame.
Parameters
==========
frame : ReferenceFrame
The frame in which the returned acceleration vector will be defined in
Examples
========
>>> from sympy.physics.vector import Point, ReferenceFrame
>>> N = ReferenceFrame('N')
>>> p1 = Point('p1')
>>> p1.set_acc(N, 10 * N.x)
>>> p1.acc(N)
10*N.x
"""
_check_frame(frame)
if not (frame in self._acc_dict):
if self._vel_dict[frame] != 0:
return (self._vel_dict[frame]).dt(frame)
else:
return Vector(0)
return self._acc_dict[frame]
[docs] def locatenew(self, name, value):
"""Creates a new point with a position defined from this point.
Parameters
==========
name : str
The name for the new point
value : Vector
The position of the new point relative to this point
Examples
========
>>> from sympy.physics.vector import ReferenceFrame, Point
>>> N = ReferenceFrame('N')
>>> P1 = Point('P1')
>>> P2 = P1.locatenew('P2', 10 * N.x)
"""
if not isinstance(name, str):
raise TypeError('Must supply a valid name')
if value == 0:
value = Vector(0)
value = _check_vector(value)
p = Point(name)
p.set_pos(self, value)
self.set_pos(p, -value)
return p
[docs] def pos_from(self, otherpoint):
"""Returns a Vector distance between this Point and the other Point.
Parameters
==========
otherpoint : Point
The otherpoint we are locating this one relative to
Examples
========
>>> from sympy.physics.vector import Point, ReferenceFrame
>>> N = ReferenceFrame('N')
>>> p1 = Point('p1')
>>> p2 = Point('p2')
>>> p1.set_pos(p2, 10 * N.x)
>>> p1.pos_from(p2)
10*N.x
"""
outvec = Vector(0)
plist = self._pdict_list(otherpoint, 0)
for i in range(len(plist) - 1):
outvec += plist[i]._pos_dict[plist[i + 1]]
return outvec
[docs] def set_acc(self, frame, value):
"""Used to set the acceleration of this Point in a ReferenceFrame.
Parameters
==========
value : Vector
The vector value of this point's acceleration in the frame
frame : ReferenceFrame
The frame in which this point's acceleration is defined
Examples
========
>>> from sympy.physics.vector import Point, ReferenceFrame
>>> N = ReferenceFrame('N')
>>> p1 = Point('p1')
>>> p1.set_acc(N, 10 * N.x)
>>> p1.acc(N)
10*N.x
"""
if value == 0:
value = Vector(0)
value = _check_vector(value)
_check_frame(frame)
self._acc_dict.update({frame: value})
[docs] def set_pos(self, otherpoint, value):
"""Used to set the position of this point w.r.t. another point.
Parameters
==========
value : Vector
The vector which defines the location of this point
point : Point
The other point which this point's location is defined relative to
Examples
========
>>> from sympy.physics.vector import Point, ReferenceFrame
>>> N = ReferenceFrame('N')
>>> p1 = Point('p1')
>>> p2 = Point('p2')
>>> p1.set_pos(p2, 10 * N.x)
>>> p1.pos_from(p2)
10*N.x
"""
if value == 0:
value = Vector(0)
value = _check_vector(value)
self._check_point(otherpoint)
self._pos_dict.update({otherpoint: value})
otherpoint._pos_dict.update({self: -value})
[docs] def set_vel(self, frame, value):
"""Sets the velocity Vector of this Point in a ReferenceFrame.
Parameters
==========
value : Vector
The vector value of this point's velocity in the frame
frame : ReferenceFrame
The frame in which this point's velocity is defined
Examples
========
>>> from sympy.physics.vector import Point, ReferenceFrame
>>> N = ReferenceFrame('N')
>>> p1 = Point('p1')
>>> p1.set_vel(N, 10 * N.x)
>>> p1.vel(N)
10*N.x
"""
if value == 0:
value = Vector(0)
value = _check_vector(value)
_check_frame(frame)
self._vel_dict.update({frame: value})
[docs] def v1pt_theory(self, otherpoint, outframe, interframe):
"""Sets the velocity of this point with the 1-point theory.
The 1-point theory for point velocity looks like this:
^N v^P = ^B v^P + ^N v^O + ^N omega^B x r^OP
where O is a point fixed in B, P is a point moving in B, and B is
rotating in frame N.
Parameters
==========
otherpoint : Point
The first point of the 2-point theory (O)
outframe : ReferenceFrame
The frame we want this point's velocity defined in (N)
interframe : ReferenceFrame
The intermediate frame in this calculation (B)
Examples
========
>>> from sympy.physics.vector import Point, ReferenceFrame
>>> from sympy.physics.vector import Vector, dynamicsymbols
>>> q = dynamicsymbols('q')
>>> q2 = dynamicsymbols('q2')
>>> qd = dynamicsymbols('q', 1)
>>> q2d = dynamicsymbols('q2', 1)
>>> N = ReferenceFrame('N')
>>> B = ReferenceFrame('B')
>>> B.set_ang_vel(N, 5 * B.y)
>>> O = Point('O')
>>> P = O.locatenew('P', q * B.x)
>>> P.set_vel(B, qd * B.x + q2d * B.y)
>>> O.set_vel(N, 0)
>>> P.v1pt_theory(O, N, B)
q'*B.x + q2'*B.y - 5*q*B.z
"""
_check_frame(outframe)
_check_frame(interframe)
self._check_point(otherpoint)
dist = self.pos_from(otherpoint)
v1 = self.vel(interframe)
v2 = otherpoint.vel(outframe)
omega = interframe.ang_vel_in(outframe)
self.set_vel(outframe, v1 + v2 + (omega ^ dist))
return self.vel(outframe)
[docs] def v2pt_theory(self, otherpoint, outframe, fixedframe):
"""Sets the velocity of this point with the 2-point theory.
The 2-point theory for point velocity looks like this:
^N v^P = ^N v^O + ^N omega^B x r^OP
where O and P are both points fixed in frame B, which is rotating in
frame N.
Parameters
==========
otherpoint : Point
The first point of the 2-point theory (O)
outframe : ReferenceFrame
The frame we want this point's velocity defined in (N)
fixedframe : ReferenceFrame
The frame in which both points are fixed (B)
Examples
========
>>> from sympy.physics.vector import Point, ReferenceFrame, dynamicsymbols
>>> q = dynamicsymbols('q')
>>> qd = dynamicsymbols('q', 1)
>>> N = ReferenceFrame('N')
>>> B = N.orientnew('B', 'Axis', [q, N.z])
>>> O = Point('O')
>>> P = O.locatenew('P', 10 * B.x)
>>> O.set_vel(N, 5 * N.x)
>>> P.v2pt_theory(O, N, B)
5*N.x + 10*q'*B.y
"""
_check_frame(outframe)
_check_frame(fixedframe)
self._check_point(otherpoint)
dist = self.pos_from(otherpoint)
v = otherpoint.vel(outframe)
omega = fixedframe.ang_vel_in(outframe)
self.set_vel(outframe, v + (omega ^ dist))
return self.vel(outframe)
[docs] def vel(self, frame):
"""The velocity Vector of this Point in the ReferenceFrame.
Parameters
==========
frame : ReferenceFrame
The frame in which the returned velocity vector will be defined in
Examples
========
>>> from sympy.physics.vector import Point, ReferenceFrame
>>> N = ReferenceFrame('N')
>>> p1 = Point('p1')
>>> p1.set_vel(N, 10 * N.x)
>>> p1.vel(N)
10*N.x
"""
_check_frame(frame)
if not (frame in self._vel_dict):
raise ValueError('Velocity of point ' + self.name + ' has not been'
' defined in ReferenceFrame ' + frame.name)
return self._vel_dict[frame]
[docs] def partial_velocity(self, frame, *gen_speeds):
"""Returns the partial velocities of the linear velocity vector of this
point in the given frame with respect to one or more provided
generalized speeds.
Parameters
==========
frame : ReferenceFrame
The frame with which the velocity is defined in.
gen_speeds : functions of time
The generalized speeds.
Returns
=======
partial_velocities : tuple of Vector
The partial velocity vectors corresponding to the provided
generalized speeds.
Examples
========
>>> from sympy.physics.vector import ReferenceFrame, Point
>>> from sympy.physics.vector import dynamicsymbols
>>> N = ReferenceFrame('N')
>>> A = ReferenceFrame('A')
>>> p = Point('p')
>>> u1, u2 = dynamicsymbols('u1, u2')
>>> p.set_vel(N, u1 * N.x + u2 * A.y)
>>> p.partial_velocity(N, u1)
N.x
>>> p.partial_velocity(N, u1, u2)
(N.x, A.y)
"""
partials = [self.vel(frame).diff(speed, frame, var_in_dcm=False) for
speed in gen_speeds]
if len(partials) == 1:
return partials[0]
else:
return tuple(partials)


Bookipidia
Home
About
Contact
(current)
Have Something in Mind?
We are here
Want to be a reseller?
<PHONE_NUMBER>
Get In Touch!
First name
Please provide a First name.
Last name
Please provide a Last name.
Mobile no
Please provide a valid Mobile No.
Who are you?
Select
Customer
Reseller
Others
Message
Please provide an Input.
Submit
Bookipidia
Important Links
Latest Books
Best Sellers
Contact
Connect With Us
  +91<PHONE_NUMBER>
  hello@bookipidia.com


CompetencyTypes
Recommendation, 2007 April 15
Editor:
Chuck Allen, HR-XML
Contributors:
Drew Cox, ePredix; Kim Bartkus, HR-XML Consortium; Paul Kiel, HR-XML Consortium; Romuald Restout, Humanuo; Claude Ostyn, IEEE Learning Standards Committee Liaison; Paul Storfer, InScope; Kathi Dolan, Manpower; Jon Lehto, Monster.com; David Scott, Oracle; Christine Lu, Oracle
Copyright © 2007 HR-XML Consortium, Inc.
Abstract
This documents the reusable data types available within the ComptencyTypes schema. This first version of this schema includes a global element and data type for referencing competencies. Other reusable competency-related data types may be added in the future.
Table of Contents
1.2.4 Specified Competency Reference. 4
2.3 Relationship to Other Projects. 4
2.3.1 HR-XML Competency Schema
3.3 Implementation Patterns / Recommendations
3.3.2 Recommended Pattern for Competency Identifiers
3.3.3 Alternative Patterns for Competency Identifiers
3.3.4 SpecifiedCompetencyReferenceType
4.1.2 SpecifiedCompetencyReferenceType
5 Appendix B – Related Documents
The CompetencyTypes schema is intended as a schema to hold data types and reusable components related to competencies. This schema is designed to be included in other HR-XML schemas. The first version of the schema includes two simple components, a globally scoped element called “CompetencyId” and a data type named “SpecifiedCompetencyReferenceType”. These components are explained in the sections that follow.
An identifier that can be used to reference a single competency within a taxonomy or an identifiable cluster, node, or grouping of competencies within such a taxonomy. For further information, see Section 3, Competency References.
Broadly speaking, a proficiency level is a rating or point on a scale indicating the amount or extent of a competency measured, observed, or required.
Many competency dictionaries or taxonomies include a proficiency scale applied across competency definitions. Some competency taxonomies may not follow this pattern and have proficiency expressed in a way that is tied to competency definition or that can be referenced directly by a competency identifier.

The ProficiencyLevel element defined within the CompetencyTypes schema is a string. It is intended to accommodate numeric as well as non-numeric data. It includes no attributes relating to scale. One of the important design assumptions is that trading partners understand and agree upon the scale for the proficiency level data they exchange. It is assumed that the proficiency level values are appropriate and meaningful within the scale for the target competencies being referenced. This assumption greatly simplifies data exchange and is consistent with many use cases.
ProficiencyLevel is locally scoped within the SpecifiedCompetencyReferenceType and therefore will not constrain or collide with any future HR-XML work that might focus upon a richer definition to express and exchange information about scales.
The term “Specified Competency Reference” was chosen to distinguish, where necessary, references to a “base” or “generic” definition of a competency and a reference to a competency at a particular proficiency level. The SpecifiedCompetencyReferenceType provides for the latter capability. It pairs a CompetencyId element optionally with a ProficiencyLevel element. As mentioned within Section 1.2.2, Proficiency Level, there are differences in the structure and design of competency dictionaries/taxonomies. The CompetencyId and SpecifiedCompetencyReferenceType provide flexible options for constructing references in a way that is not dependent on a particular type of taxonomy design or structure.
The data types covered in this first version of the schema are not intended to overlap or conflict with HR-XML’s existing Competency specification.
The recommendations for constructing competency identifiers (see Section 3.3.2, Recommended Pattern for Competency Identifiers) take into consideration the prior work and current directions of the IEEE Learning Technology Standards Committee and the IMS Global Learning Consortium, Inc. These groups seek to support identifiers that are “persistent,” “globally unique,” and “location-independent.”
In many HR business processes, trading partners work with a pre-agreed upon competency taxonomy or otherwise known set of competency definitions. In many transactions, it is not necessary or desirable to communicate an entire competency definition or the taxonomy. Rather, in many contexts it is much more efficient and useful to merely communicate the identifier for a competency definition that the trading partners can access and understand by relying on a prior agreement or exchange of information.
The CompetencyTypes schema contains a global element (global, in the sense that it can be referenced directly in any schemas within the HR-XML namespace) and a data type intended to be used by HR-XML schema designers in the construction of competency references. The sections below describe these components and recommend a pattern for HR-XML schema designers to use in constructing competency references within HR-XML Schemas.
There are a wide variety of HR business processes that require trading partners to reference competencies. An immediate use case driving the work of the Competency Workgroup was a requirement from the HR-XML Assessment workgroup to support the query of test catalogs by competency.
As depicted in Figure 1: HR-XML Assessment Catalog Query, an employer’s HR specialist may want to query an assessment provider’s catalog of tests to discover tests that measure competencies related to success in a particular job. In the Assessment Catalog use case, the Catalog Query includes a filter string, which can reference competencies within a known or agreed upon taxonomy. After applying the filter, the assessment provider would return information about assessments for the specified competencies. The AssessmentCatalog result optionally allows a list of "CompetenciesAssessed," which are identifiers for the competencies to be measured. Using the results of such a query (as well as other expert advice and research), the specialist could add particular test packages to the applicant tracking system’s hiring workflow for a particular position. For further information, please refer to the documentation for CompetencyCatalog (See Appendix B – Related Documents).
Figure 1: HR-XML Assessment Catalog Query
The CompetencyTypes schema includes the globally scoped element “CompetencyId”. CompetencyId is recommended as the primary way to construct references to competency definitions. CompetencyId makes use of HR-XML’s EntityId schema and is of the type “EntityIdType”. (see separate specification titled “Entity Identifiers” referenced within Appendix B – Related Documents).
For maximum efficiency and interoperability, HR-XML recommends that each competency or node within a competency taxonomy be identifiable by a Uniform Resource Name (URN) as defined within RFC 2141 and RFC 2396, as amended by RFC 2732.
A URN follows this syntax:
urn: [Namespace Identifier] : [Namespace specific string]
RFC 2141/2396/2732 requires that the Uniform Resource Name remain globally unique and persistent. Note that RFC 2141/2396/2732 requires encoding of reserved characters.
Example:
<CompetencyId>
<IdValue>urn:SkillSourceX:A0BA2874-82D5-49AB-8929-CD6E99BE5656-1</IdValue>
</CompetencyId>
While HR-XML recommends the use of URN-based competency identifiers, at the time of this writing, competency content providers do not commonly follow such a convention. Publishers of competency taxonomies typically use proprietary identifier schemes or lack a formally articulated identifier scheme altogether. In such cases, the flexibility of the EntityIdType structure can be used to capture proprietary identifier schemes or descriptive “facet” identifiers.
Example:
<CompetencyId idOwner="SkillSourceX" validFrom=”2005-01-01” validTo=”2007-01-01”>
<IdValue
name="Catalog">Executive</IdValue>
<IdValue
name="Competency
Class">Decision
Making</IdValue>
<IdValue
name="Code">452</IdValue>
</CompetencyId>
Some use cases require a trading partner to reference a competency definition by an identifier, but to also pass along certain modifying or supplementary information. A common modifier is proficiency level, which refers to a rating of the degree or extent of the competency. The intent might be to reference a single competency definition and to express different proficiency levels that might be required by a position or possessed by a human resource. To accommodate this type of need, a “SpecifiedCompetencyReferenceType” has been created that includes a CompetencyId and an optional “ProficiencyLevel”. ProficiencyLevel is defined as a string so that it might accommodate both numeric and non-numeric ratings. No attributes relating to the ProficiencyLevel scale are necessary. Because this is a reference to a definition within a known and pre-agreed upon taxonomy, it is assumed that the sending organization will provide a proficiency level value that is meaningful within the proficiency level scale for the target competency.
Example:
<SpecifiedCompetencyReference>
<CompetencyId>
<IdValue>urn:SkillSourceX:A0BA2874-82D5-49AB-8929-CD6E99BE5656-1</IdValue>
</CompetencyId>
<ProficiencyLevel>9.5<ProficiencyLevel>
</SpecifiedCompetencyReference>
Note that the global element, SpecifiedCompetencyReference, is defined in the schema, but it is assumed that schema designers would generally use the SpecifiedCompetencyReferenceType with an element name relevant to the specific business context.
A first use of SpecifiedCompetencyReferenceType is in the HR-XML AssessmentCatalog schema. That schema includes a “CompetencyAssessed” element that is an extension of the type SpecifiedCompetencyReferenceType.
The CompetencyAssessed element extends the base SpecifiedCompetencyReferenceType by allowing for an optional CompetencyName. For further information, please refer to the documentation for CompetencyCatalog (See Appendix B – Related Documents).
The following sections illustrate and explain the components of the HR-XML Consortium’s Competency Schema.
|
Elements and Attributes
|
ContentModel |
Definition |
|
/ SpecifiedCompetencyReference |
- SpecifiedCompetencyReferenceType - (1/1) |
This is a globally scoped element that implements SpecifiedCompetencyReferenceType. This data type is available for use in HR-XML schemas for referencing a competency definition paired with a specific proficiency level. BusinessRule(s): Typically, HR-XML schema designers would use SpecifiedCompetencyReferenceType with an element name that is contextually relevant. |
|
/ SpecifiedCompetencyReference/ |
- EntityIdType - S (1/1) |
An identifier used to identify or reference a
competency definition or node within a competency taxonomy. |
|
/ SpecifiedCompetencyReference/ |
- xsd:string - S (0/1) |
Broadly speaking, a proficiency level is a rating on a prescribed scale indicating the amount or extent of a competency measured, observed, or required. |
|
/ |
CompetencyId - EntityIdType
- S (1/1) |
A data type is available for use within HR-XML schemas for constructing references to a competency definition paired with a specific proficiency level. Example: HR-XML’s AssessmentCatalog schema has a CompetenciesAssessed element that extends the SpecifiedCompetencyReferenceType. |
|
. |
* This column shows a simple form of the content model for readability. Because of complex structures such as groups and nested occurrences, all of the content may not be included here. |
|
|
Reference |
Link |
|
Assessment Catalog Schema |
http://ns.hr-xml.org/2_5/HR-XML-2_5/Assessment/AssessmentCatalog.xsd |
|
Assessment Catalog Query Schema |
http://ns.hr-xml.org/2_5/HR-XML-2_5/Assessment/AssessmentCatalogQuery.xsd
|
|
Assessments Document |
http://ns.hr-xml.org/2_5/HR-XML-2_5/Assessment/Assessments.html
|
|
Assessment Catalog Examples |
http://ns.hr-xml.org/2_5/HR-XML-2_5/Assessment/AssessmentCatalog.xml
http://ns.hr-xml.org/2_5/HR-XML-2_5/Assessment/AssessmentCatalog2.xml
http://ns.hr-xml.org/2_5/HR-XML-2_5/Assessment/AssessmentCatalog3.xml
|
|
Assessment Catalog Query Examples |
http://ns.hr-xml.org/2_5/HR-XML-2_5/Assessment/AssessmentCatalogQuery.xml
http://ns.hr-xml.org/2_5/HR-XML-2_5/Assessment/AssessmentCatalogQuery2.xml
|
|
URN Syntax, ITEF 2141 |
http://www.ietf.org/rfc/rfc2141.txt |
|
Uniform Resource Identifiers (URI): Generic Syntax, ITEF 2396 |
http://www.ietf.org/rfc/rfc2396.txt |
|
Date |
Description |
|
2005 July 6 |
Draft circulated |
|
2005 July 13 |
Incorporated feedback / Typographical corrections and edits for clarity. |
|
2005 Dec 15 |
Minor edits from CPO review. |
|
2006-Feb-28 |
Approved by Consortium |
|
2007-Apr-15 |
Approved by Consortium |


Runs a local optimization in a Docker container using the quantconnect/lean Docker image.
The logs of the optimizer are shown in real-time and the full results of the optimizer and all executed backtests are stored in the <project>/optimizations/<timestamp>
directory.
You can use the --output
option to change the output directory.
The given <project>
argument must be either a project directory or a file containing the algorithm to run the optimizer for.
If it is a project directory the CLI looks for a main.py
or Main.cs
file, assuming the first file it finds to contain the algorithm to optimize.
If no optimizer config is provided using --optimizer-config
the CLI shows an interactive wizard to let you configure the optimizer.
You can use the --optimizer-config <config file>
option if you want to configure more than what the interactive wizard allows.
This option must point to a file containing a full optimizer config (the algorithm-type-name
, algorithm-language
and algorithm-location
properties may be omitted).
See the Optimizer.Launcher/config.json file in the LEAN repository for an example optimizer configuration file, which also contains documentation on all the required properties.
The Docker image that is used contains the same libraries as the ones available on QuantConnect. If the selected project is a C# project it is compiled before starting the optimization.
By default, the official LEAN engine image is used.
You can override this using the --image <value>
option.
Alternatively, you can set the default engine image for all commands using lean config set engine-image <value>
.
The image is pulled before running the optimizer if it doesn't exist locally yet or if you pass the --update
flag.


Sweet Free Stuff
///////////////////////////////////////////
FREE Keurig 3ct Kcup Pack at Kroger & Affiliate Stores
Posted: 30 Oct 2015 01:52 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Load the coupon to your shoppers card today only (10/30) and use by 11/15.
FREE Keurig 3ct Kcup Pack at Kroger Affiliate Stores
The post FREE Keurig 3ct Kcup Pack at Kroger Affiliate Stores appeared
first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Huggies Little Snugglers Diaper Sample
Posted: 29 Oct 2015 10:45 PM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Click where it says Click Here and fill out the form. They ask for a 5
digit code, but any 5 digits is working. Free Huggies Little Snugglers
Diaper Sample
The post Free Huggies Little Snugglers Diaper Sample appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
FREE EquateTM Options Pad and Liner Sample Kit
Posted: 29 Oct 2015 12:59 AM PDT
http://feedproxy.google.com/&edburner&utm_medium=email
Click on Get a Free Sample. FREE EquateTM Options Pad and Liner Sample Kit
The post FREE EquateTM Options Pad and Liner Sample Kit appeared first on
SweetFreeStuff.com.


Brief description of what this article accomplishes. Include any keywords indicated in the spreadsheet. This blurb will not appear with the content.
Difficulty: Value from spreadsheet
Time: Time value
Opening paragraph. Summarize what the article covers; for example, "Jenkins is a popular tool for continuous pipeline integration, offering features for managing and monitoring project build jobs." Use no more than four sentences.
Section 1 content. Format code snippets like this
, variables like this, and interface items like this.
Include any of the following elements as needed:
note
warning
| Table head | Table head | Table head |
|---|---|---|
| Content | Content | Content |
| Content | Content | Content |
| Content | Content | Content |
| Content | Content | Content |
Bulleted list with intro:
Numbered list with intro:
Image (PNG only). See editorial guidelines for more information.
Section 2 content.
Section 3 content.
A brief summary of what the user just learned. Add links to procedural articles if appropriate. Direct the user to explore a related subject or to complete a related task.


My web apps are built with C#, JavaScript, Razor, React, Angular, Sql Server, MySQL, Firebase, FireStore, HTML5/CSS3/Bootstrap, MongoDB, AspNetCore, Express(Node JS). I am also in the process of learning GraphQL, GOLoang. I am capable of Azure and GCP cloud management, studying for Microsoft developer certification. Let's discuss how I can bring value to your full stack project!
I am currently working as a full stack developer and pursuing Microsoft developer certification.
Performs technical design and development of complex application systems using existing and emerging technology platforms. Participate in some application architecture functions. Estimates and defines time tables and project tasks; analyzes and estimates cost and time.
Supported and implemented proprietary Accenture billing and customer-care application to Accenture clients. Wrote many custom applications and interfaces. Deeply involved in integration internally and with other 3rd party applications.


NBC News employees blast colleague's own report for saying first public impeachment hearing lacked 'pizzazz'
by Joseph WulfsohnNBC News employees piled on one of their own colleagues over his report about how the first public impeachment hearing lacked "pizzazz."
U.S. diplomat Bill Taylor and State Department official George Kent were the first witnesses to offer their testimony in the open and were grilled for several hours over their knowledge of President Trump's conduct with Ukraine.
NBC News political reporter Jonathan Allen noted in an analysis, however, that the hearing was "substantive, but it wasn't dramatic."
"The first two witnesses called Wednesday testified to Trump's scheme, but lacked the pizazz necessary to capture public attention," Allen wrote. "At a time when Democrats are simultaneously eager to influence public opinion in favor of ousting the president and quietly apprehensive that their hearings could stall or backfire, the first round felt more like the dress rehearsal for a serious one-act play than the opening night of a hit Broadway musical."
ABC NEWS POLITICAL ANALYST HITS ELISE STEFANIK IN CONTROVERSIAL TWEET SPARKING 'SEXISM' BACKLASH
When the report was shared on social media, the "pizzazz" headline triggered critics, including by some of Allen's co-workers.
"This is an embarrassing and unserious headline. Do better," MSNBC contributor Jennifer Rubin reacted.
"Not sure that 'pizzazz' was the point," MSNBC contributor Charlie Sykes also swiped.
MSNBC analyst Ben Rhodes hit Allen after he had defended his reporting and stressed how the "presentation aspect" of the impeachment hearings was important to Democrats trying to sway public opinion on impeachment.
"Maybe it’s more important for the American people to learn the facts than to have an analysis of pizazz," Rhodes told Allen. "That’s the purpose of public hearings and we’d be a lot better off if it was the basis for our politics."
CNN ANALYST: IT'S A 'PROBLEM' FOR DEMS THAT IMPEACHMENT WITNESSES NEVER MET TRUMP
Frequent MSNBC guests also blasted Allen's report.
"You know who was the most boring witness I ever saw? Alexander Butterfield. And he brought down the Nixon presidency," Ronald Klain tweeted. "I'm sorry that saving our democracy doesn't have enough "pizzazz" for you...."
Above the Law executive editor Elie Mystal had a similar response, invoking the Nuremberg Trials that prosecuted high-ranking Nazi officials following World War II.
"Analysis: Nuremberg Trials lay out disturbing details, but lack pizzazz necessary to capture public attention. Unlike the Blitz, which, like, totally persuaded people to get out of bed and pay attention to the nightly news. -@jonallendc, Nov 20th, 1945, probably," Mystal wrote.

CLICK HERE TO GET THE FOX NEWS APP
NBC News did not immediately respond to Fox News' request for comment.
Reuters faced similar backlash for its own report that declared, "Consequential, but dull: Trump impeachment hearings begin without a bang."


Choose your files
Make sure you've formatted your data using the rules and saved your file as CSV.
You must correct any errors before this file can be sent to the Environment Agency.
Make sure you've formatted your data using the rules and saved your file as CSV.
You must correct any errors before this file can be sent to the Environment Agency.


// {% block title %}
This example is a quick exercise to illustrate how the default, static and fixed to top navbar work. It includes the responsive CSS and HTML, so it also adapts to your viewport and device.
To see the difference between static and fixed top navbars, just scroll.


Dartmouth Apologia The Williams Telos Yale Logos Cornell Claritas The Columbia Crown & Cross The Hopkins Dialectic Duke ReligioPrinceton Revisions UC Berkeley To An Unknown God The Brown & RISD Cornerstone UPenn Common Subjects Swarthmore Peripateo The Claremont Ekklesia Bowdoin Agathos Wheaton The Pub


Preparing search index...
The search index is not available
poloniex-node-api
poloniex-node-api
index
ICandlesOptions
Interface ICandlesOptions
Hierarchy
ICandlesOptions
Index
Properties
end
Time?
interval
limit?
start
Time?
symbol?


Computers have always fascinated me since I was a little boy. I consider myself an introverted and practical person, with a critical and ambitious spirit.
Studying at FEUP has opened new horizons about Computer Engineering giving the knowing to resolve problems in a good way as a consequence an ability to adapt to the business market. Through volunteering (G.A.S. Porto) I developed skills such as interpersonal relationships, teamwork, and organization.
Furthermore than making code, I like to see any project with a high level view and how all the modules work with each other. I like to think in architectural terms to separate business logic from data access. To improve my self as a software engineer is necessary to cultivate new things that create value in my work, and for example, I recently started reading the "Clean Code" by Robert Martin (Uncle Bob), one the book that I think that all developers should read for improving the development of software for making it clean, organized and readabled by others.
In my free time I enjoy landscape photography, doing trails and traveling.


#KFCProposal: Who's pledged what for the couple's wedding day
Wedding fever swept through South African social media on Friday as users found their new favourite couple – all set off by the #KFCProposal on Twitter.
Many social media users have reacted with positivity as South African celebrities, corporates and citizens pledged their services to the couple's impending #KFCWedding nuptials.
#NationalWedding and #StreetwiseWedding have also been trending on Friday.
With social media being the terrain it is, there has, of course, been some suspicion about corporates merely pledging their support for likes and retweets.
Assuming the couple says yes to all the offers – which, in some instances have come from big companies - they will have many options to choose from.
And Twitter user @canga8876 seems to have taken on the honorary role of wedding donations auditor general, delivering a comprehensive checklist so far.
Here's what we know so far:
Other brands that have come on board are Audi, Lexus for travels; Airlines Mango and Kulula have both pledged to fly the couple to their desired honeymoon destination - whichever one of TsogoSun or Sun City, among others, they choose.
It's not just the wedding and honeymoon that's been thought about, the matter of lobola is also taken into account, with Jameson offering to send a case of their Select Reserve, and Sizwe Dhlomo offering two of his cattle.
All of this of course depends on the happy couple, and whether they choose to accept the generous gifts. It's their happy day after all! South Africa just seems happy to be a part of it.
- Compiled by Kamva Somdyala


The LEFTMARGIN record specifies the width of the left margin, in inches. The num field is in 8-byte IEEE floating‑ point format.
Record Data
|
Offset |
Field Name |
Size |
Contents |
|
4 |
num |
8 |
Left margin |


SVG Demo: Text containing spans
Blue text with a word in
red
in the middle
Some more text with a
bold
word in the middle
Some Times Roman text with
Helvetica text
in the middle


#include <iostream>
using namespace std;
int main()
{
float degF, degC;
cout << "Enter Farenheit Temperature: ";
cin >> degF;
degC = ((degF - 32.0 ) * (5.0 / 9.0));
cout << degF << "F is "<< degC << "C";
cout << endl;
return 0;
}
This program assigns an input value to degF then performs a conversion on that value, assigning the result to degC for output.
For example, input of 98.6 will output 37C
C++ Programming in easy stepsat www.ineasysteps.com


Loading...
Params
Parent_Child
FergEvolution_Report
Past_Infection
Perceptions
Person
Piecewise_Linear
Place
Place_List
Place_State
Place_State_Merge
point
Trajectory
Policy
Population
Searching...
No Matches


Welcome to Pat's Salmon Cookies! Pat has always loved fishing and is a huge fan of salmon, and cookies. He decided to combine his two passions, and Salmon Cookies were born!


Installation
-
Install this extension from the
Edge web store
or from the source
-
Enter DevTools (using F12 or Ctrl + shift + i) and go to settings by
pressing "?" (Shift + /).
- Under "Appearance", change the theme to "Dark."
-
Go to experiments in the left panel, and enable "Allow custom UI themes"
- Restart DevTools.
How to install from source
-
Go to
the projects GitHub
and download the zip file (direct link)
- Extract the folder
- Head to edge://extensions or edge://extensions.
- Go to the bottom left corner and enable 'Developer Mode'
- Drag and drop the 'extension' folder to any part of that tab.


{% extends "base.html" %} {% load bootstrap %} {% block content %}
{{ post.body|slice:":60" }} ..
Read More
Bootstrap's default well's work great for side widgets! What is a widget anyways...?


[gecode-users] FlatZinc option -a
Guido Tack
tack at gecode.org
Tue Dec 2 21:36:35 CET 2014
Thanks, we actually received another bug report about the same problem a couple of days ago and I already fixed it.
Cheers,
Guido
> On 3 Dec 2014, at 1:05 am, Jean-Noël Monette <jean-noel.monette at it.uu.se> wrote:
>
> Hi,
>
> There seems to be a slight misunderstanding about the meaning of the "-a" option of MiniZinc in fzn-gecode.
>
> According to the help, "-a" is expected to search for all solutions and print them.
>
> $ mzn-gecode --help
> [...]
> -a, --all-solns, --all-solutions
> Print all solutions.
> [...]
>
> $ fzn-gecode --help
> [...]
> -a (optional: false, 0, true, 1) default: false
> return all solutions (equal to -solutions 0)
> [...]
>
> However, this is not implemented like that, as "-a" as no effect for SAT problems but allows to print all intermediate solutions for optimization problems (and not just the last found one).
>
> By the way, the option "-solutions" named in the help of fzn-gecode does not exist but is actually called "-n". But "-a" is not equivalent to "-n 0" (in SAT problems).
>
> Cheers,
>
> Jean-Noël
>
> _______________________________________________
> Gecode users mailing list
> users at gecode.org
> https://www.gecode.org/mailman/listinfo/gecode-users
More information about the users
mailing list


Price: {{purchase.price}} Annual fee: {{purchase.annualFees[0].fee}} $$$ expires: {{purchase.annualFees[0].expires | date:'dd.MM.yyyy'}}


Twinlist can be used to reconcile lists of medications in a variety of situations. This particular demo is an example of what could happen when a hospital physician discharges a patient.
The Intake list shows what the patient said he was taking at home (recorded during the intake interview); the Hospital list shows what he is currently taking at the hospital. The physician must compare these two lists and select all the drugs the patient should take once he returns home.
Now that that's cleared up, please close this window and start the demo!
| Display: |
item details |
Speed: | Jump to step: | ||
| Group by: |
multigroup |
Filter on: | After action: |


damnUploader v1.0 demo
GitHub
From filesystem
From canvas
From textarea
Add
Add
Generate previews
Autostart
POST
PUT
Send
Clear
Upload queue
Preview
Original filename
Size
Status


GOD Bearing
Logout
Dashboard
Menu
Dashboard
Products
Website Images
Enquiry / Messages
Dashboard
Dashboard
Manage Products
Manage Website Images
Manage Website texts
View Website
Enquiries
Name
Email
Contact Number
Enquiry For
Qty
Comment
{{e.name}}
{{e.email}}
{{e.contact}}
{{e.enquiryFor}}
{{e.qty}}
{{e.comment}}
No New Enquiry!


{% extends "layout.html" %} {% block content %}
Includes detailed package lists, interactive dependency graphs, and sizes of individual packages as well as complete use cases.


Student Personal Information
First Name
Middle Name
Last Name
Your Profile Pic
Your Date of birth
Your Birth Certificate
Address
Contact 1 Information
Contact First Name
Contact Last Name
Relationship to Student
Mother
Father
Guardian
Emergency
Marital Status
Married
Separated
Divorced
Single/Other
Home number
Mobile number
Occupation
Company
Comments
Contact 2 Information
Contact First Name
Contact Last Name
Relationship to Student
Mother
Father
Guardian
Emergency
Marital Status
Married
Separated
Divorced
Single/Other
Home number
Mobile number
Occupation
Company
Comments
Emergency Contact Information
Contact First Name
Contact Last Name
Relationship to Student
Mother
Father
Guardian
Emergency
Marital Status
Married
Separated
Divorced
Single/Other
Home number
Mobile number
Occupation
Company
Comments
Submit


A FAMILY THING A film review by Robin Redcrest Copyright 1996 Robin Redcrest
The URL of this review is http://moviereviews.com/janesreviews/afamilything.html
Rating: 2 stars (Out of 4)
When a movie is a lot like life, it can be startling and thought provoking or just plain dull. "A Family Thing" has moments of both.
Robert Duvall stars as Earl, the good old boy owner of an auto shop in Smalltown, Arkansas, with a neck as red as a home grown tomato.  Not the kind of news that's going to get you elected Grand Poobah of the local Elks lodge in the deep south.
Obediently, Earl cusses out his Daddy, then honors his mother's last wishes and sets out for Chicago to meet and put a face to his half brother Ray, marvelously played by James Earl Jones. The two men dislike each other instantly, but a funny thing happens. It's clear that if the pair had been 30 years younger, they would've gone at each other until only one was left standing. But Earl is 63 and Ray is 69. Try as they might to maintain the hatred that history and culture should have fostered between them, they just can't. Age and maturity have ravaged their once rampant testosterone, and shown that life is a lot better handled as grownups.
One very funny scene does show the two trying to get into a fist fight, and ending up rolling over each other and bursting into laughter.  The two form a bond - albeit, a somewhat uneasy one - and set out to discover what the new meaning of family might just be.
See what I mean? Not a high concept adrenaline rush of a plot, but a gentle, matter-of-fact story about how life really is. Parts of it were conducive to nodding off. Any part that contained the salty Aunt T. (played by the earthy and wonderful Irma P. Hall) was hilariously funny.
Mostly, "A Family Thing" was just a simple, reassuring story that after all is said and done, the bitterness of life's troubles just ain't that big of a deal.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Const iterator type for List.
More...
#include <list.hh>
|
|
typedef bool(const_iterator::* | unspecified_bool_type) () const |
| |
template<typename T, List_member< T > T::* member>
class List< T, member >::const_iterator
Const iterator type for List.
◆ const_iterator() [1/4]
template<typename T, List_member< T > T::* member>
| List< T, member >::const_iterator::const_iterator |
( |
| ) |
|
|
inline |
Construct an invalid iterator.
◆ const_iterator() [2/4]
template<typename T, List_member< T > T::* member>
| List< T, member >::const_iterator::const_iterator |
( |
const T * |
x | ) |
|
|
inline |
Construct an iterator pointing at x.
◆ const_iterator() [3/4]
template<typename T, List_member< T > T::* member>
| List< T, member >::const_iterator::const_iterator |
( |
const List< T, member > * |
list | ) |
|
|
inline |
Construct an end iterator for list.
◆ const_iterator() [4/4]
template<typename T, List_member< T > T::* member>
| List< T, member >::const_iterator::const_iterator |
( |
const T * |
x, |
|
|
const List< T, member > * |
list |
|
) |
| |
|
inline |
Construct an iterator pointing at x in list.
◆ operator unspecified_bool_type()
template<typename T, List_member< T > T::* member>
| List< T, member >::const_iterator::operator unspecified_bool_type |
( |
| ) |
const |
|
inline |
Test if this iterator points to a valid list element.
◆ live()
template<typename T, List_member< T > T::* member>
| bool List< T, member >::const_iterator::live |
( |
| ) |
const |
|
inline |
Test if this iterator points to a valid list element.
◆ get()
template<typename T, List_member< T > T::* member>
| const T* List< T, member >::const_iterator::get |
( |
| ) |
const |
|
inline |
Return the current list element or null.
◆ operator->()
template<typename T, List_member< T > T::* member>
| const T* List< T, member >::const_iterator::operator-> |
( |
| ) |
const |
|
inline |
Return the current list element or null.
◆ operator*()
template<typename T, List_member< T > T::* member>
| const T& List< T, member >::const_iterator::operator* |
( |
| ) |
const |
|
inline |
Return the current list element.
◆ operator++() [1/2]
template<typename T, List_member< T > T::* member>
| void List< T, member >::const_iterator::operator++ |
( |
| ) |
|
|
inline |
Advance this iterator to the next element.
◆ operator++() [2/2]
template<typename T, List_member< T > T::* member>
| void List< T, member >::const_iterator::operator++ |
( |
int |
| ) |
|
|
inline |
Advance this iterator to the next element.
◆ operator--() [1/2]
template<typename T, List_member< T > T::* member>
| void List< T, member >::const_iterator::operator-- |
( |
| ) |
|
|
inline |
Advance this iterator to the previous element.
◆ operator--() [2/2]
template<typename T, List_member< T > T::* member>
| void List< T, member >::const_iterator::operator-- |
( |
int |
| ) |
|
|
inline |
Advance this iterator to the previous element.
◆ operator+=()
template<typename T, List_member< T > T::* member>
Move this iterator forward by x positions.
- Returns
- reference to this iterator
- Note
- This function takes O(abs(x)) time.
◆ operator-=()
template<typename T, List_member< T > T::* member>
Move this iterator backward by x positions.
- Returns
- reference to this iterator
- Note
- This function takes O(abs(x)) time.
◆ operator+()
template<typename T, List_member< T > T::* member>
Return an iterator x positions ahead.
◆ operator-()
template<typename T, List_member< T > T::* member>
Return an iterator x positions behind.
◆ operator==()
template<typename T, List_member< T > T::* member>
Test if this iterator equals x.
◆ operator!=()
template<typename T, List_member< T > T::* member>
Test if this iterator does not equal x.
The documentation for this class was generated from the following file:


#primary_abstract_class
Sets the application record class for Active Record
This is useful if your application uses a different class than ApplicationRecord for your primary abstract class. This class will share a database connection with Active Record. It is the class that connects to your primary database.
# File 'activerecord/lib/active_record/inheritance.rb', line 167
def primary_abstract_class if ActiveRecord.application_record_class && ActiveRecord.application_record_class.name != name raise ArgumentError, "The `primary_abstract_class` is already set to #{ActiveRecord.application_record_class.inspect}. There can only be one `primary_abstract_class` in an application." end self.abstract_class = true ActiveRecord.application_record_class = self end


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one or more | |
| 3 | * contributor license agreements. See the NOTICE file distributed with | |
| 4 | * this work for additional information regarding copyright ownership. | |
| 5 | * The ASF licenses this file to You under the Apache License, Version 2.0 | |
| 6 | * (the "License"); you may not use this file except in compliance with | |
| 7 | * the License. You may obtain a copy of the License at | |
| 8 | * | |
| 9 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 10 | * | |
| 11 | * Unless required by applicable law or agreed to in writing, software | |
| 12 | * distributed under the License is distributed on an "AS IS" BASIS, | |
| 13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 14 | * See the License for the specific language governing permissions and | |
| 15 | * limitations under the License. | |
| 16 | */ | |
| 17 | package org.apache.commons.fileupload; | |
| 18 | ||
| 19 | import java.io.File; | |
| 20 | import org.apache.commons.fileupload.disk.DiskFileItemFactory; | |
| 21 | ||
| 22 | /** | |
| 23 | *
The default {@link org.apache.commons.fileupload.FileItemFactory} | |
| 24 | * implementation. This implementation creates | |
| 25 | * {@link org.apache.commons.fileupload.FileItem} instances which keep their | |
| 26 | * content either in memory, for smaller items, or in a temporary file on disk, | |
| 27 | * for larger items. The size threshold, above which content will be stored on | |
| 28 | * disk, is configurable, as is the directory in which temporary files will be | |
| 29 | * created.
 | |
| 30 | * | |
| 31 | *
If not otherwise configured, the default configuration values are as | |
| 32 | * follows: | |
| 33 | *
 | |
| 34 | *
Size threshold is 10KB.
 | |
| 35 | *
Repository is the system default temp directory, as returned by | |
| 36 | * System.getProperty("java.io.tmpdir").
 | |
| 37 | *
 | |
| 38 | * | |
| 39 | * @deprecated 1.1 Use DiskFileItemFactory instead. | |
| 40 | */ | |
| 41 | @Deprecated | |
| 42 | public class DefaultFileItemFactory extends DiskFileItemFactory { | |
| 43 | ||
| 44 | // ----------------------------------------------------------- Constructors | |
| 45 | ||
| 46 | /** | |
| 47 | * Constructs an unconfigured instance of this class. The resulting factory | |
| 48 | * may be configured by calling the appropriate setter methods. | |
| 49 | * | |
| 50 | * @deprecated 1.1 Use DiskFileItemFactory instead. | |
| 51 | */ | |
| 52 | @Deprecated | |
| 53 | public DefaultFileItemFactory() { | |
| 54 | super(); | |
| 55 | } | |
| 56 | ||
| 57 | /** | |
| 58 | * Constructs a preconfigured instance of this class. | |
| 59 | * | |
| 60 | * @param sizeThreshold The threshold, in bytes, below which items will be | |
| 61 | * retained in memory and above which they will be | |
| 62 | * stored as a file. | |
| 63 | * @param repository The data repository, which is the directory in | |
| 64 | * which files will be created, should the item size | |
| 65 | * exceed the threshold. | |
| 66 | * | |
| 67 | * @deprecated 1.1 Use DiskFileItemFactory instead. | |
| 68 | */ | |
| 69 | @Deprecated | |
| 70 | public DefaultFileItemFactory(int sizeThreshold, File repository) { | |
| 71 | super(sizeThreshold, repository); | |
| 72 | } | |
| 73 | ||
| 74 | // --------------------------------------------------------- Public Methods | |
| 75 | ||
| 76 | /** | |
| 77 | * Create a new {@link org.apache.commons.fileupload.DefaultFileItem} | |
| 78 | * instance from the supplied parameters and the local factory | |
| 79 | * configuration. | |
| 80 | * | |
| 81 | * @param fieldName The name of the form field. | |
| 82 | * @param contentType The content type of the form field. | |
| 83 | * @param isFormField true if this is a plain form field; | |
| 84 | * false otherwise. | |
| 85 | * @param fileName The name of the uploaded file, if any, as supplied | |
| 86 | * by the browser or other client. | |
| 87 | * | |
| 88 | * @return The newly created file item. | |
| 89 | * | |
| 90 | * @deprecated 1.1 Use DiskFileItemFactory instead. | |
| 91 | */ | |
| 92 | @Override | |
| 93 | @Deprecated | |
| 94 | public FileItem createItem( | |
| 95 | String fieldName, | |
| 96 | String contentType, | |
| 97 | boolean isFormField, | |
| 98 | String fileName | |
| 99 | ) { | |
| 100 |
1
1. createItem : mutated return of Object value for org/apache/commons/fileupload/DefaultFileItemFactory::createItem to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return new DefaultFileItem(fieldName, contentType, |
| 101 | isFormField, fileName, getSizeThreshold(), getRepository()); | |
| 102 | } | |
| 103 | ||
| 104 | } | |
Mutations | ||
| 100 |
1.1 |


--- layout: post title: "November 2019" subtitle: date: 2019-12-31 00:00:00 -0500 categories: [PropertyReport] background: 'https://hwmckenzie.github.io/img/posts/2019-11/header-fox.jpg' ---
November was a quiet month at the property. After much preparation, Hannah departed for Chile at the end of October, and Chris dropped the dogs off at the kennel and headed to Chile early in November. You can read about our adventures in Chile starting with the first post.
Adios! Nos vemos en Diciembre!
Hannah & Chris
Tammi, Sadie, Seuss, and Revi


The PLOS Article-Level Metrics application is open source software that collects a variety of metrics about scholarly articles. The application talks to a number of APIs, and in return provides these metrics via an API. Work on this application therefore involves a lot of work on APIs, and some of the lessons I learned are summarized below, including changes we made in the latest ALM 2.8 release. Most of the things I mention are fairly obvious, but some of them could be starting points for a discussion. Good APIs are important for scholarly content, as we increasingly use computers to extract relevant information out of papers – see for example the cool projects done at the hack4ac event last month, including the one on PLOS author contributions that I participated in.
Eat your own dogfood
The first rule for building a good API is to use it yourself. The PLOS ALM API is used by the PLOS journal websites, ALM Reports, and the PLOS Search indexer, altogether more than 8 million API requests every month. Heavily using your own API makes sure that you quickly find and fix bugs, and that you build an API that is fun to use.
Doggie Donuts. Flickr Foto by Jamie.
I use the rplos and alm R packages to retrieve data from the PLOS Search and PLOS ALM APIs for most of my visualizations – the R statistical computing language is great for this purpose. Working with these APIs via an R client library can again provide valuable feedback not only for improving the ALM API, but also to make the rplos and alm packages better – and Scott Chamberlain from the rOpenSci project is very quick with updates.
Document your API
Documentation is important for all software, and that of course also includes APIs. The documentation for the PLOS ALM API is in the Github wiki. In the latest ALM release we have included the documentation right in the ALM application to make it easier to use, e.g. with the documentation for the PubMed API right next to the PubMed configuration tab. You also see the documentation when you sign up for an API key (see below).
Make it simple to sign up for an API key
Most APIs require API keys, although some of them (e.g. Wikipedia) are fine with identification via the U*ser-Agent* header. API keys are not so much passwords to gain access to restricted information, but rather identifiers so that API providers know who is talking to them. For access to restricted resources we need something more secure e.g. authentication via OAuth or restriction by IP address.
In ALM 2.8 we made it much easier to register for an API key: simply sign in to alm.plos.org using your PLOS Journals account – the same account you use to receive customized email alerts for new articles, or to make article comments (we are using the CAS protocol for this).
For other organizations installing the ALM software we provide two other options: Mozilla Persona and Github OAuth. Persona doesn’t require any configuration and is very straightforward to use, Github OAuth is nice since many API users probably already have a Github account.
Version your API
No API is perfect and you will make changes over time. The only way to strike the right balance between a stable API that doesn’t break, and making changes that improve the API is to use API versioning, giving users time to transition to a new API. The ALM API is currently at version 3, and you indicate the API version in the URL:
http://alm.plos.org/api/v3/articles?api_key=123&ids=10.1371%2Fjournal.pmed.0020124
We will retire the old v2 APi that was launched in July 2012 on September 15.
REST is not REST
Most modern APIs are REST APIs. But there are many different ways how details can be implemented. I am mostly following the REST API Design Rulebook, and this also includes this rule:
File extensions should not be included in URIs.
The ALM API supports both JSON and XML responses, and the format has to be specified using the Content-Type header, defaulting to JSON. I’m considering adding a query string such as &format=xml to make it easier for web browsers to do content negotiation.
Another example is returning the 404 (**Not Found**) status code when a resource can’t be found. Mendeley is the only API that the ALM application is talking to itself that is also following this recommendation, the other APIs return a 200 (**OK**) status code even when they have no information about an article.
Something that almost never works in my experience is “automatic” REST APIs that automatically translate your database model. I very much prefer an intermediate layer between model and API (I use the Draper decorator and the RABL templating system) that lets me decide how I present the information in the API. Another reason is the versioning mentioned above: it is much easier to do versioning when the API code is not in the model, but in the presentation layer.
Make your API fast
Many factors go into the speed of an API, and I only want to mention three things:
- speed is important, in particular when looking at metrics for more than a handful articles
- caching is essential (we use extensive fragment caching)
- monitoring the performance of your API can help find bottlenecks
We collect the duration of all API requests and display the last 10,000 graphically using the d3.js and crossfilter Javascript libraries. You can see that a typical request takes 150-300 ms, whereas a cached request can be as quick as 10 ms. This tool was very helpful in fine-tuning the performance of the API during development.
Listen to feedback
This is an area where we could do much better. There is a PLOS API mailing list and a Github issue tracker, and we would love to get feedback in either of these places. Feedback is important, as we can’t possible anticipate all the uses of the API.
blog comments powered by Disqus


Home
li>
Products
Clothes
Accessories
Account
Home / Lehnga
Black Sharara Dress
$599
Select Size
XS
XS
L
XL
XXL
Add to Bag
Product Details
Beautiful black kurti with a Sharara in bottom.


Before Change
one_gene_per_bin = disp_std_bin.isnull()
gen_indices = np.where(one_gene_per_bin[df["mean_bin"].values])[0].tolist()
if len(gen_indices) > 0:
logg.msg(
"Gene indices {} fell into a single bin: their "
"normalized dispersion was set to 1.\n "
"Decreasing `n_bins` will likely avoid this effect."
.format(gen_indices), v=4)
// Circumvent pandas 0.23 bug. Both sides of the assignment have dtype==float32,
// but there’s still a dtype error without “.value”.
disp_std_bin[one_gene_per_bin] = disp_mean_bin[one_gene_per_bin.values].values
disp_mean_bin[one_gene_per_bin] = 0
After Change
one_gene_per_bin = disp_std_bin.isnull()
gen_indices = np.where(one_gene_per_bin[df["mean_bin"].values])[0].tolist()
if len(gen_indices) > 0:
logg.debug(
f"Gene indices {gen_indices} fell into a single bin: their "
"normalized dispersion was set to 1.\n "
"Decreasing `n_bins` will likely avoid this effect."
)
// Circumvent pandas 0.23 bug. Both sides of the assignment have dtype==float32,
// but there’s still a dtype error without “.value”.
disp_std_bin[one_gene_per_bin] = disp_mean_bin[one_gene_per_bin.values].values
disp_mean_bin[one_gene_per_bin] = 0


{% if p.data and p.data.homecountry != 'US' %}
{% with "draftcardposter/draft-2019/flags/wikipedia-fixed/"|add:p.data.homecountry|add:".svg" as flag %}
{# You're not supposed to use |add like this, but that's where we are #}
{% endwith %}
{% endif %}
{% if team.short == 'LA' %}
reddit.com: {{ name }} may be too young to have known the {{ team.mascot }} in Los Angeles and we don't know if he is a fan, but he grew up in {{ p.data.homeaddress }} — less than {{ team_distance.miles|biground }} miles from {{ team|stadium }}
{% elif team.short == 'LAC' %}
reddit.com: We don't know {{ name }}'s team allegiance, but he grew up in {{ p.data.homeaddress }} — less than {{ team_distance.miles|biground }} miles from the {{ team.mascot }}'s current home {{ team|stadium }}
{% else %}
reddit.com: It is not known to this writer whether {{ name }} was a fan of the {{ team.mascot }} growing up, but he grew up in {{ p.data.homeaddress }} — less than {{ team_distance.miles|biground }} miles from {{ team|stadium }}
{% endif %}
{{ firstname }}
{{ lastname }}
{% else %}
{{ firstname }}
{{ lastname }}
r/NFL
{% if p.data and p.data.homecountry != 'US' %}
{% with "draftcardposter/draft-2019/flags/wikipedia-fixed/"|add:p.data.homecountry|add:".svg" as flag %}
{# You're not supposed to use |add like this, but that's where we are #}
{% endwith %}
{% endif %}
{% endif %}
{{ position }} — {{ college }}Round {{ round }}, pick {{ pick }}
{% if p and p.data %}
{% for type_, stat, value in p.data|order_stats:priorities|remove_non_stats:priorities|deduplicate:"combine,proday,None"|slice:"0:6" %}
{% if p.data.reddit %}
{% include "draftcardposter/layout/draft-2019/reddit.html" with account=p.data.reddit %}
{% elif p.data.twitter %}
{% include "draftcardposter/layout/draft-2019/twitter.html" with account=p.data.twitter %}
{% elif p.data.instagram %}
{% include "draftcardposter/layout/draft-2019/instagram.html" with account=p.data.instagram %}
{% endif %}
{% if p.data.reddit and p.data.twitter %}
{% include "draftcardposter/layout/draft-2019/twitter.html" with account=p.data.twitter %}
{% elif p.data.twitter and p.data.instagram %}
{% include "draftcardposter/layout/draft-2019/instagram.html" with account=p.data.instagram %}
{% endif %}


JetsonJS sample app
Github repository of JetsonJS
This application sends 2 sinusoïdals signals (signalCos and signalSin) with a period of 1 second. A new value is sent each 10ms.
CHANGE THE VALUE OF A GPIO - number:
Wifi configuration
Network:
User (facultative):
Password:
State:
connected
disconnected
IP:


Lorraine Kelly slams Jennifer Arcuri on Good Morning Britain
Lorraine Kelly was not impressed by Jennifer Arcuri’s answers during her Good Morning Britain interview with Piers Morgan and Susanna Reid and made her opinion very clear as her show crossed over to the studio.
Jennifer had joined the programme to discuss how she was treated by Boris Johnson and the media scrutiny of their relationship, and the 59-year-old presenter didn’t hold back her thoughts as she was welcomed onto their airwaves.
Yep, it was like the Esther McVey shade all over again.
Advertisement Advertisement
‘That was crazy, wasn’t it?’ Lorraine began. ‘What’s the point? Coming down and not answering any questions. What’s the point in that?’
She continued: ‘It just doesn’t make any sense. What’s the point in you coming down and not saying anything? What’s the point in coming on and not saying anything?’
A confused Jennifer then asked: ‘I’m sorry?’ to which Lorraine repeated her question: ‘What’s the point in you coming on the TV to clear the air and then you don’t say anything?’
‘I believe I said a few things,’ Jennifer replied. ‘What was it that you were looking for that I didn’t say?’
‘You didn’t answer any of the questions that were put to you and I don’t see the point in you coming on, to be honest,’ Lorraine then quipped.
We weren’t expecting all this drama so early on in the morning!
Jennifer then defended her answers to Piers and Susanna, and added: ‘I appreciate where you are coming from and I would love all the viewers to know that I am simply to make it very clear that there is no favouritism, I haven’t run off with your money, your prime minister is still your prime minister.

Advertisement Advertisement
Piers later laughed: ‘You really don’t want to wind up Lorraine Kelly on a Monday morning… That was Esther McVey level.’
Viewers praised Lorraine Kelly for her straight-talking
Viewers were doubled over in shock by Lorraine’s comments and rushed to Twitter to have their say, with one writing: ‘Yes @Lorraine! Some very welcome blunt and straight-talking! Saying what we all think.’
Echoing a similar sentiment, another added: ‘Shots fired Lorraine! Totally agree. Answer the questions….’
Good Morning Britain airs weekdays at 6am on ITV.
Got a showbiz story?
If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


|
Charbrary
2.0.0
|
Contains everything related to the Charbrary. More...
Namespaces | |
| collision | |
| Contains collision detection utils for 2D shapes (AABBs, circles, lines) | |
| rand | |
| Contains random number generation (RNG) utils. | |
Classes | |
| class | AABB |
| Represents an Axis-Aligned-Bounding-Box. More... | |
| struct | AABBCollision |
| Contains information about a collision between 2 AABBs. More... | |
| class | Circle |
| Represents a circle. More... | |
| struct | CircleAABBCollision |
| Contains information about a collision between an AABB and a circle. More... | |
| struct | CirclesCollision |
| Contains information about a collision between 2 circles. More... | |
| class | LineSegment |
| Represents a line segment. More... | |
| struct | SegmentsIntersection |
| Represents an intersection between 2 segments. More... | |
| class | Stopwatch |
| Represents a stopwatch. More... | |
| class | Vector |
| Represents a 2D vector. More... | |
Typedefs | |
| using | vec_t = ch::Vector |
Enumerations | |
| enum | Corner { TopLeft, TopRight, BottomLeft, BottomRight, MAX_VALUE } |
| Represents an AABB's corner. | |
| enum | IntersectionType { IntersectionType::None, IntersectionType::Crossing, IntersectionType::Overlapping } |
| Represents the type of intersection between 2 LineSegment. More... | |
Functions | |
| bool | operator== (const AABB &left, const AABB &right) |
| Overload of the equality operator. More... | |
| bool | operator!= (const AABB &left, const AABB &right) |
| Overload of the inequality operator. More... | |
| bool | operator== (const Circle &left, const Circle &right) |
| Overload of the equality operator between 2 circles. More... | |
| bool | operator!= (const Circle &left, const Circle &right) |
| Overload of the inequality operator between 2 circles. More... | |
| constexpr Corner | diagonally_opposed_corner (Corner corner) |
| Utility function to find the diagonal opposite of a corner. More... | |
| constexpr Corner | vertically_opposed_corner (Corner corner) |
| Utility function to find the vertical opposite of a corner. More... | |
| constexpr Corner | horizontally_opposed_corner (Corner corner) |
| Utility function to find the horizontal opposite of a corner. More... | |
| bool | operator== (const LineSegment &left, const LineSegment &right) |
| Overload of the equality operator. More... | |
| bool | operator!= (const LineSegment &left, const LineSegment &right) |
| Overload of the inequality operator. More... | |
| Vector | operator+ (const Vector &left, const Vector &right) |
| Overload of the addition operator. More... | |
| Vector | operator- (const Vector &left, const Vector &right) |
| Overload of the substraction operator. More... | |
| Vector | operator- (const Vector &right) |
| Overload of the unary minus operator. More... | |
| Vector | operator* (const Vector &base, const float scalar) |
| Overload of the multiplication operator. More... | |
| Vector | operator* (const float scalar, const Vector &base) |
| Overload of the multiplication operator. More... | |
| Vector | operator/ (const Vector &base, const float divisor) |
| Overload of the multiplication operator. More... | |
| bool | operator== (const Vector &left, const Vector &right) |
| Overload of the equality operator. More... | |
| bool | operator!= (const Vector &left, const Vector &right) |
| Overload of the inequality operator. More... | |
| float | vec_magnitude_squared (vec_t v) |
| Computes the magnitude squared of the given vector. More... | |
| float | vec_magnitude (vec_t v) |
| Computes the magnitude of a vector. More... | |
| float | vec_dot_product (vec_t a, vec_t b) |
| Computes the dot product of 2 vectors. More... | |
| vec_t | vec_abs (vec_t v) |
| Makes the components of the vector positive. More... | |
| vec_t | vec_normalize (vec_t v) |
| Normalizes the given vector. More... | |
| vec_t | vec_rotate (vec_t v, float angle) |
| Rotates a vector. More... | |
| vec_t | vec_from_polar_coordinates (float degrees, float length) |
| Builds a vector from polar coordinates (a length and an angle). More... | |
Variables | |
| constexpr float | FLT_PI = 3.14159265359f |
| constexpr float | DEGREES_TO_RADIANS = FLT_PI / 180.f |
Contains everything related to the Charbrary.
|
strong |
Represents the type of intersection between 2 LineSegment.
| Enumerator | |
|---|---|
| None | The 2 segments are not intersecting. |
| Crossing | The 2 segments are crossing at a single point. |
| Overlapping | The 2 segments are overlapping. |
Utility function to find the diagonal opposite of a corner.
The diagonally opposed corner is the "opposite" of a given corner. Example : TopLeft is diagonally opposed to BottomRight and vice-versa.
Utility function to find the horizontal opposite of a corner.
Example : TopLeft is horizontally opposed to TopRight and vice-versa.
Overload of the inequality operator.
Overload of the inequality operator between 2 circles.
| bool ch::operator!= | ( | const LineSegment & | left, |
| const LineSegment & | right | ||
| ) |
Overload of the inequality operator.
Overload of the inequality operator.
Overload of the multiplication operator.
Amplifies (or "scales") base by a scalar. Each component will be multiplied by the given scalar.
| scalar | Scalar (real number) by which the current vector will be amplified. |
Overload of the multiplication operator.
Amplifies (or "scales") base by a scalar. Each component will be multiplied by the given scalar.
| scalar | Scalar (real number) by which the current vector will be amplified. |
Overload of the addition operator.
The vectors are summed by respectively adding their components.
Overload of the substraction operator.
The components of left are respectively substracted by the ones from right.
Overload of the unary minus operator.
Applies the unary minus operator to each component of the vector.
Overload of the multiplication operator.
Amplifies (or "scales") base by a scalar. Each component will be multiplied by the given scalar.
| scalar | Scalar (real number) by which the current vector will be amplified. |
Overload of the equality operator.
Overload of the equality operator between 2 circles.
| bool ch::operator== | ( | const LineSegment & | left, |
| const LineSegment & | right | ||
| ) |
Overload of the equality operator.
Overload of the equality operator.
Makes the components of the vector positive.
Computes the dot product of 2 vectors.
| vec_t ch::vec_from_polar_coordinates | ( | float | degrees, |
| float | length | ||
| ) |
Builds a vector from polar coordinates (a length and an angle).
| float ch::vec_magnitude | ( | vec_t | v | ) |
Computes the magnitude of a vector.
The magnitude is the "length" of a vector.
| float ch::vec_magnitude_squared | ( | vec_t | v | ) |
Computes the magnitude squared of the given vector.
The "magnitude squared" is useful because it allows to compare the magnitude of 2 vectors without having to square-root the values.
Normalizes the given vector.
Computes the normalized version of the current vector. A normalized vector is a vector with an intensity (magnitude) of 1. Normalized vectors can be used to represent directions.
Rotates a vector.


--- layout: post title: A pure CSS onclick context menu description: How to build a context menu using pure HTML and CSS, no JS, cross-browser. date: 2019-05-13 updated: 2023-03-31 categories: - JavaScript - CSS article_cta: false ---
Context menus are one of those very useful UI widgets that still haven't reached the HTML spec. There have been attempts, but for now everyone tends to make their own custom implementation.
Especially with the advent of React, the tendency is to write a custom menu component that uses JavaScript to open/close itself, perhaps by using an invisible overlay to detect clicks outside the menu and close it accordingly. This works fine in practice, however it doesn't have to be so complicated. If you need a simple dropdown menu that:
Then look no further. It's much simpler than you think!
This is done in pure HTML and CSS; the JavaScript is there just to add functionality. Source code below.
That's the trick: we hide the menu in CSS initially, then show it when the button gets focused and while we're clicking on the menu itself. This is necessary so that the click actually gets registered. That's it! No JS trickery involved.
You can attach event listeners to the menu items, e.g. using onclick
or document.addEventListener
and they'll work as usual. You may also just use
tags instead of buttons, depending on your use case.
Naturally the menu can be opened only by elements that can receive focus, such as buttons and anchors. So what about other non-interactive elements? Can we make them focusable too? The answer is yes!
We want to display a context menu when clicking on the following image:
The trick here was to add tabindex
. This makes the element focusable, so that it can open the menu on click. Note that if the clickable element is a <button>
or other interactive content (i.e. any focusable element), then you don't even need this!
I've used a

, but you can use any element you like. Just add tabindex="-1"
to make it focusable, if it isn't already. You can place the menu anywhere you want in the HTML, as long as you're able to target it with a CSS selector. Just try not to put a button in a button as that's invalid HTML, although technically it will still work.
You'll need JavaScript, but it's entirely up to you whether you want to do this. Alternatively you could add position: absolute
to the menu and just make it appear below (or next to) the element you clicked — no need for JS in this case! Anyway, this did the trick for me:
If that's the case, you'll probably be better off using the old checkbox hack.
Accessibility isn't the main focus of this article, but an important topic nonetheless. Menu items should be navigatable with a keyboard: this requires JS, but it's not hard to achieve. The W3C has done a lot of work around accessibility and there's plenty of examples you can refer to on their site: for instance, I think the menu button example is particularly relevant.
It may not work in some very old browsers, so make sure to test it in the browsers you need to support. This MDN page has some info about what happens to the focus of a button when being clicked/tapped on different platforms. I did some tests myself and it seems to work well everywhere, including IE and mobile browsers.
Update: this blog post received a lot of attention and a few folks reached out to me about an issue, specifically with Safari and Firefox, on both iOS and macOS: the button won't focus. No worries though, it only affects buttons; other tags will work just fine. You may consider using
— the semantic meaning is lost entirely here, so if you really want to use a button, you can always focus it programmatically via JS, but only on Apple devices — for example:
Another issue you may find specific to Apple is that the menu won't close when tapping outside of it. There's an easy fix: simply add tabindex="-1"
to the container or the body tag.
And that's it! I hope you found this useful. If you spot any issues, please do let me know!
{% capture scss_file %} {% include scss/2019-05-13-pure-css-onclick-context-menu.scss %} {% endcapture %}


--- layout: default title: Home ---
I'll be joining Westlake University as an Assistant Professor in January/February 2022. Please visit here for more details.
I am currently a postdoctoral fellow in Dr. Bing Ren's laboratory, at Ludwig Institute for Cancer Research San Diego. I am interested in epigenomics, chromatin architecture and single-cell technologies. I graduated from the Bioinformatics program at University of Michigan, Ann Arbor. My thesis advisor is Maureen Sartor.
Ph.D., Bioinformatics, University of Michigan, Ann Arbor, 2016
M.A., Statistics, University of Michigan, Ann Arbor, 2016
B.S., Biotechnology, Peking University, Beijing, 2010
This website is powered by Jekyll + Hyde. The source code is on github.


404
Page Not Found
Oops! seems like something went wrong.
The page you requested was not found
Return to home page


Kpone Katamanso residents demonstrate against poor roads
by Elizabeth Baah, GNATema, Nov 20, GNA - Residents of Atadeka, Washington, New York and its environs under the Kpone Katamanso Municipality have staged a demonstration against poor roads and lack of drainage system in the entire area.
The demonstration started around 0530 hours as a means of drawing the attention of the authorities to support them by providing them with the necessary amenities needed in the communities.
The demonstrators appealed to Mr Solomon Tettey Appiah, the Municipal Chief Executive to assist in providing solutions for the deplorable road and drainage system.
“We have written letters to the MCE so that the roads and gutters will be constructed and we are through the demonstration appealing to him and assembly to come quickly to our aid,” they explained.
According to them, the deplorable stage of the road has become a major challenge to the health of the people as conveying pregnant women and people in critical health conditions to hospitals is our headache.
They further explained that despite government’s assurance and pledges on multiple occasions, no significant action seemed to have been achieved leaving, the residents to resort to demonstration to compel the authorities to fix the road and drainage system.
They therefore called on the government to come to their aid with immediate by fulfilling all the promises he made.
GNA


Location
France by in large is the largest country in western Europe with a land mass of approx. 643,801 km². France’s Capital City Paris accounts for nearly 11 million habitants of the approx. 68 million habitants across the land. France shares eight borders with neighbouring counties, all of which can be seen from the below map:
France’s natural landmarks are quite simply picturesque. The Loire (which source is in Mont Gerbier de Jonc) is the longest river in France and flows for an astonishing 1,006 km and is the worlds 171st largest river. The Loire drains 20% of its land area as well.
Not only is France home to the Loire, however it is also home to the Pyrenees mountains with is the
largest mountain range in France (which stretches 270 km long ) and is located in the south of France
and forms a natural boarder between Spain.
As we have learned from the previous paragraphs, we now know that the Pyrenees Mountain is the largest
mountain range in France, although what is the largest mountain?? Mount Blonc is an astonishing 4,810m
high and is the highest mountain in France and creates a border between Italy and France.


Canadians planning to spend less this holiday season: CPA Canada
by News StaffTORONTO – Most kids already have a long list of what they want for Christmas but they might not get as many of those things this year as they did in previous years.
A new survey by the Chartered Professional Accountants of Canada shows Canadians are planning to spend less.
The average amount they’re planning to shell out for Christmas $583 dollars, down from $643 last year. A little more than 40 per cent of those polled say they didn’t set a budget, so sticking to the goal of spending less could be a challenge.
One-in-five people told CPA Canada that they anticipated overspending during the holidays.
CPA Canada says there are some ways to help you save money, including hunting for deals, saving money ahead of time, and find non-traditional gifts to put under the tree.
Almost half of the respondents–46 per cent–anticipate doing their shopping the old fashioned way in stores.


cats-only
validator only accepts the string "cats" and
its suffixes ("c", "ca", "cat").Type "cats" in both inputs to make everything valid
The form is validated when the button is pressed. Type "cats" in the input and select "cats" from the dropdown to make everything valid.


FORMO CRESOL- cresol liquid
DSHealthcare
Disclaimer: This drug has not been found by FDA to be safe and effective, and this labeling has not been approved by FDA. For further information about unapproved drugs, click here.
DIRECTIONS FOR USE
REF – 10606 – Formocresol – 1oz/30mL
REF – 10203 – Buckley's Formocresol – 1oz/30mL
NPN number: Formocresol – 00470236
NPN number: Buckley's Formocresol - 00470155
For dental use only.
USA: Rx only.
Formocresol: 48.5% formaldehyde, 48.5% cresol, 3% glycerine. Buckley's Formocresol: 19% formaldehyde, 35% cresol, 17.5% gylcerine.
Indicated as a disinfectant and devitalizing solution used as part of endodontic treatment.
This product should not be used with individuals with known sensitivities to formaldehyde or cresol. This product should not be used with individuals who are pregnant or suspected to be pregnant without a prior physician consultation.
This product can cause severe burns of skin and mucosa. Take precautions protect skin, mucosa and eyes during use.
Do not swallow. Do not allow material to come into contact with intact skin or mucosa. Wear eye protection when handling. Ensure proper tooth isolation, including rubber dam when applying. Keep out of reach of children. For professional dental use only.
SultanHealthcare
411 Hackensack Avenue, 9th Floor, Hackensack, NJ 07601
Toll Free:<PHONE_NUMBER> • Phone:<PHONE_NUMBER>
Fax:<PHONE_NUMBER> • www.sultanhealthcare.com
Made in the USA
Form #0010601DF (R 7/22/09)
Sultan®
REF 10601
NPN 00470236
Formo Cresol
Net Contents:
1 fl.oz. (30mL)
Warning: Corrosive. Consult MSDS for more information.
Solution may cloud below 50°F. Store at room temperature. Keep from freezing.
Contains: Formaldehyde 48.5%, Cresol 48.5%
Manufactured for: SultanHealthcare
411 Hackensack Avenue, 9th Floor, Hackensack, NJ 07601 • Toll Free:<PHONE_NUMBER> • Phone:<PHONE_NUMBER>
Fax:<PHONE_NUMBER> • www.sultanhealthcare.com • Imp. by VDI Healthcare, Brampton, Ontario L6W 4T5
Rx Only
For Dental Use Only
LOT
EXP
Made in USA
0010601LA (R 7/23/09)
Sultan®
REF 10604
Formo Cresol
Net Contents: 1 gallon
Warning: Corrosive. Consult MSDS for more information.
Solution may cloud below 50°F. Store at room temperature. Keep from freezing.
Contains: Formaldehyde 48.5%, Cresol 48.5%
Manufactured for:
SultanHealthcare
411 Hackensack Avenue, 9th Floor, Hackensack, NJ 07601
Toll Free:<PHONE_NUMBER> • Phone:<PHONE_NUMBER>
Fax:<PHONE_NUMBER> • www.sultanhealthcare.com
Rx Only
For Dental Use Only
LOT
EXP
Made in USA
0010604LA (R 7/23/09)
|
FORMO CRESOL
cresol liquid | |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
|
|
FORMO CRESOL
cresol liquid | |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
| |||||||||||||||
|
| Labeler - DSHealthcare (056296981) |
| Establishment | |||
| Name | Address | ID/FEI | Business Operations |
|---|---|---|---|
| DENTSPLY Caulk | 083235549 | MANUFACTURE |


Import
Renderer
Solid
Wireframe
Model
Solid
Wireframe
Filling
Flat
Phong
Shading
Lighting
On
Off
Ambient
On
Off
Camera
On
Off
Directional
Edit model
Export
About
WebGL Framework:
three.js
Icons:
Iconic
Font:
Open Sans
Found Holes
No holes found.
Hole Information
-
Front vertices
Collision Test
Web Worker
Filling
All
Fill Hole
-
Merging
Progress
Format
Name
Export
Progress


This is Google Classroom. Below you can find out locations, out classes, and a signup form to make an account!


+++ description="Alternatives to Jenkins X OSS" alias="/docs/alternatives" +++
Harness the power of Cloud Native CI/CD on Kubernetes. Now available on Amazon EKS.
Free forever, Battle tested, Monthly stable predictable releases
Every release comes battle tested and fully vetted by the Jenkins X-perts to make your life easier.
We’ve chosen the parts of Jenkins X that work best together to save you time.
Everything you need to leverage Kubernetes comes ready to go out of the box so you can focus energy developing on Kubernetes.
Provision Jenkins X Clusters in AWS and GCP Kubernetes Native Services.
GitHub, GitHub Enterprise coming soon.
Deploy a sample app in the language of your preference. No need to write a pipeline.
You get HashiCorp Vault support as first-class citizen.
CloudBees CI-CD powered by Jenkins X - is CI/CD as a service (SaaS) so you don't need to worry about setting up and managing Jenkins X.
A Preview Experience of the new Jenkins X SaaS is currently available.


| Index Name | {{IndexName}} |
| Search Profile Name | {{ProfileName}} |
| Query String | {{QueryString}} |
| Overridden Cut Off | {{CutOff}} |
| Total Records Checked | {{TotalRecords}} |
| Records with Matches | {{MatchedRecords}} |
| Records with No Match | {{NoMatchRecords}} |
| Records with 1 match only | {{OneMatchRecord}} |
| Records with 2 match only | {{TwoMatchRecord}} |
| Records with more than 2 matches | {{MoreThanTwoMatchRecord}} |


Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.04/02/17 by Allen Boe
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.24/02/18 by Godwin Jay
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old.15/12/17 by Yekini Allen


Advent of Code 2018 -
07p2
07p1
|
index
|
08p1
Step C must be finished before step A can begin. Step C must be finished before step F can begin. Step A must be finished before step B can begin. Step A must be finished before step D can begin. Step B must be finished before step E can begin. Step D must be finished before step E can begin. Step F must be finished before step E can begin.
Solve Puzzle


Geo Rotator
Options
Select
Aerosol Optical Thickness
Rainfall
Water Vapor
Global Temperature Anomaly
Solar Insolation
Net Radiation
Average Land Surface Temperature
ALBEDO
Active Fires
Vegetation Index
Net Primary Productivity
Population Density
Chlorophyll Concentration
Sea Surface Temperature
Average Sea Surface Temperature
Submit
Your browser does not support HTML5 Canvas.


---
subject: "{{SUBJECT}}"
---
{{> top }}
{{> logo }}
{{> greetings }}
It's been a while. We miss you! Come back and check out some of our new items with a small gift from us:Free Shipping
on Any Order of $50 or More
Here are some things you might like:


# -*- coding: utf-8 -*-
# This code is part of Qiskit.
#
# (C) Copyright IBM 2019.
#
# This code is licensed under the Apache License, Version 2.0. You may
# obtain a copy of this license in the LICENSE.txt file in the root directory
# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
#
# Any modifications or derivative works of this code must retain this
# copyright notice, and modified files need to carry a notice indicating
# that they have been altered from the originals.
"""
Functions used for the analysis of quantum volume results.
Based on Cross et al. "Validating quantum computers using
randomized model circuits", arXiv:1811.12926
"""
import math
import numpy as np
from qiskit import QiskitError
from ...characterization.fitters import build_counts_dict_from_list
try:
from matplotlib import pyplot as plt
HAS_MATPLOTLIB = True
except ImportError:
HAS_MATPLOTLIB = False
[docs]class QVFitter:
"""
Class for fitters for quantum volume
"""
def __init__(self, backend_result=None, statevector_result=None,
qubit_lists=None):
"""
Args:
backend_result: list of results (qiskit.Result).
statevector_result: the ideal statevectors of each circuit
qubit_lists: list of qubit lists (what was passed to the
circuit generation)
"""
self._qubit_lists = qubit_lists
self._depths = [len(l) for l in qubit_lists]
self._ntrials = 0
self._result_list = []
self._heavy_output_counts = {}
self._circ_shots = {}
self._heavy_output_prob_ideal = {}
self._ydata = []
self._heavy_outputs = {}
self.add_statevectors(statevector_result)
self.add_data(backend_result)
@property
def depths(self):
"""Return depth list."""
return self._depths
@property
def qubit_lists(self):
"""Return depth list."""
return self._qubit_lists
@property
def results(self):
"""Return all the results."""
return self._result_list
@property
def heavy_outputs(self):
"""Return the ideal heavy outputs dictionary."""
return self._heavy_outputs
@property
def heavy_output_counts(self):
"""Return the number of heavy output counts as measured."""
return self._heavy_output_counts
@property
def heavy_output_prob_ideal(self):
"""Return the heavy output probability ideally."""
return self._heavy_output_prob_ideal
@property
def ydata(self):
"""Return the average and std of the output probability."""
return self._ydata
[docs] def add_statevectors(self, new_statevector_result):
"""
Add the ideal results and convert to the heavy outputs
Assume the result is from 'statevector_simulator'
Args:
new_statevector_result: ideal results
"""
if new_statevector_result is None:
return
if not isinstance(new_statevector_result, list):
new_statevector_result = [new_statevector_result]
for result in new_statevector_result:
for qvcirc in result.results:
circname = qvcirc.header.name
# get the depth/width from the circuit name
# qv_depth_%d_trial_%d
depth = int(circname.split('_')[2])
if circname in self._heavy_outputs:
raise QiskitError("Already added the ideal result "
"for circuit %s" % circname)
# convert the result into probability dictionary
qstate = result.get_statevector(circname)
pvector = np.multiply(qstate, qstate.conjugate())
format_spec = "{0:0%db}" % depth
pmap = {format_spec.format(b):
float(np.real(pvector[b]))
for b in range(2**depth)}
median_prob = self._median_probabilities([pmap])
self._heavy_outputs[qvcirc.header.name] = \
self._heavy_strings(pmap, median_prob[0])
# calculate the heavy output probability
self._heavy_output_prob_ideal[circname] = \
self._subset_probability(
self._heavy_outputs[circname],
pmap)
[docs] def add_data(self, new_backend_result, rerun_fit=True):
"""
Add a new result. Re calculate fit
Args:
new_backend_result: list of qv results
rerun_fit: re caculate the means and fit the result
Additional information:
Assumes that 'result' was executed is
the output of circuits generated by qv_circuits,
"""
if new_backend_result is None:
return
if not isinstance(new_backend_result, list):
new_backend_result = [new_backend_result]
for result in new_backend_result:
self._result_list.append(result)
# update the number of trials *if* new ones
# added.
for qvcirc in result.results:
ntrials_circ = int(qvcirc.header.name.split('_')[-1])
if (ntrials_circ+1) > self._ntrials:
self._ntrials = ntrials_circ+1
if qvcirc.header.name not in self._heavy_output_prob_ideal:
raise QiskitError('Ideal distribution '
'must be loaded first')
if rerun_fit:
self.calc_data()
self.calc_statistics()
[docs] def calc_data(self):
"""
Make a count dictionary for each unique circuit from all the
results.
Calculate the heavy output probability
Additional information:
Assumes that 'result' was executed is
the output of circuits generated by qv_ciruits,
"""
circ_counts = {}
for trialidx in range(self._ntrials):
for _, depth in enumerate(self._depths):
circ_name = 'qv_depth_%d_trial_%d' % (depth, trialidx)
# get the counts form ALL executed circuits
count_list = []
for result in self._result_list:
try:
count_list.append(result.get_counts(circ_name))
except (QiskitError, KeyError):
pass
circ_counts[circ_name] = \
build_counts_dict_from_list(count_list)
self._circ_shots[circ_name] = \
sum(circ_counts[circ_name].values())
# calculate the heavy output probability
self._heavy_output_counts[circ_name] = \
self._subset_probability(
self._heavy_outputs[circ_name],
circ_counts[circ_name])
[docs] def calc_statistics(self):
"""
Convert the heavy outputs in the different trials into mean and error
for plotting
Here we assume the error is due to a binomial distribution
"""
self._ydata = np.zeros([4, len(self._depths)], dtype=float)
exp_vals = np.zeros(self._ntrials, dtype=float)
ideal_vals = np.zeros(self._ntrials, dtype=float)
for depthidx, depth in enumerate(self._depths):
exp_shots = 0
for trialidx in range(self._ntrials):
cname = 'qv_depth_%d_trial_%d' % (depth, trialidx)
exp_vals[trialidx] = self._heavy_output_counts[cname]
exp_shots += self._circ_shots[cname]
ideal_vals[trialidx] = self._heavy_output_prob_ideal[cname]
self._ydata[0][depthidx] = np.sum(exp_vals)/np.sum(exp_shots)
self._ydata[1][depthidx] = (self._ydata[0][depthidx] *
(1.0-self._ydata[0][depthidx])
/ self._ntrials)**0.5
self._ydata[2][depthidx] = np.mean(ideal_vals)
self._ydata[3][depthidx] = (self._ydata[2][depthidx] *
(1.0-self._ydata[2][depthidx])
/ self._ntrials)**0.5
[docs] def plot_qv_data(self, ax=None, show_plt=True):
"""
Plot the qv data as a function of depth
Args:
ax (Axes or None): plot axis (if passed in).
add_label (bool): Add an EPC label
show_plt (bool): display the plot.
Raises:
ImportError: If matplotlib is not installed.
"""
if not HAS_MATPLOTLIB:
raise ImportError('The function plot_rb_data needs matplotlib. '
'Run "pip install matplotlib" before.')
if ax is None:
plt.figure()
ax = plt.gca()
xdata = range(len(self._depths))
# Plot the experimental data with error bars
ax.errorbar(xdata, self._ydata[0],
yerr=self._ydata[1],
color='r', linestyle=None, marker='o', markersize=5,
label='Exp')
# Plot the ideal data with error bars
ax.errorbar(xdata, self._ydata[2],
yerr=self._ydata[3],
color='b', linestyle=None, marker='o', markersize=5,
label='Ideal')
# Plot the threshold
ax.plot(xdata,
np.ones(len(xdata))*2.0/3.0,
color='black', linestyle='--', linewidth=2, label='Threshold')
ax.tick_params(labelsize=14)
ax.set_xticks(xdata)
ax.set_xticklabels(self._qubit_lists, rotation=45)
ax.set_xlabel('Qubit Subset', fontsize=16)
ax.set_ylabel('Heavy Probability', fontsize=16)
ax.grid(True)
ax.legend()
if show_plt:
plt.show()
[docs] def qv_success(self):
"""Return whether each depth was successful (>2/3 with confidence
greater than 97.5) and the confidence
Returns:
List of lenth depth with eact element a 3 list with
- success True/False
- confidence
"""
success_list = []
for depth_ind, _ in enumerate(self._depths):
success_list.append([False, 0.0])
hmean = self._ydata[0][depth_ind]
if hmean > 2/3:
cfd = 0.5 * (1 +
math.erf((hmean - 2/3)
/ (1e-10 +
self._ydata[1][depth_ind])/2**0.5))
success_list[-1][1] = cfd
if cfd > 0.975:
success_list[-1][0] = True
return success_list
[docs] def quantum_volume(self):
"""Return the volume for each depth.
Returns:
List of quantum volumes
"""
qv_list = 2**np.array(self._depths)
return qv_list
def _heavy_strings(self, ideal_distribution, ideal_median):
"""Return the set of heavy output strings.
ideal_distribution = dict of ideal output distribution
where keys are bit strings (as strings) and values are
probabilities of observing those strings
ideal_mean = median probability across all outputs
Return the set of heavy output strings, i.e. those strings
whose ideal probability of occurrence exceeds the median.
"""
return list(filter(lambda x: ideal_distribution[x] > ideal_median,
list(ideal_distribution.keys())))
def _median_probabilities(self, distributions):
"""Return a list of median probabilities.
distributions = list of dicts mapping binary strings
(as strings) to probabilities.
Return a list of median probabilities.
"""
medians = []
for dist in distributions:
values = np.array(list(dist.values()))
medians.append(float(np.real(np.median(values))))
return medians
def _subset_probability(self, strings, distribution):
"""Return the probability of a subset of outcomes.
strings = list of bit strings (as strings)
distribution = dict where keys are bit strings (as strings)
and values are probabilities of observing those strings
Return the probability of the subset of strings, i.e. the sum
of the probabilities of each string as given by the
distribution.
"""
return sum([distribution.get(value, 0) for value in strings])