| Element | Description |
|---|---|
| Abatement |
The end, remission or resolution. |
| AccessionIdentifier |
Identifier assigned by the lab |
| ActiveFlag |
If the ActiveFlag is false, it indicates the record or item is no longer to be used and should generally be hidden for the user in the UI. |
| ActiveFlagAsaCodeableConcept |
If the ActiveFlag is false, it indicates the record or item is no longer to be used and should generally be hidden for the user in the UI. |
| Actual |
True if the group is an actual group (as opposed to definitional). |
| AdditionalText |
A text note containing additional details, explanation, description, comment, or summarization. Details can discuss, support, explain changes to, or dispute information. |
| Additive |
Additive associated with container. |
| Address |
An address expressed using postal conventions (as opposed to GPS or other location definition formats). This data type may be used to convey addresses for use in delivering mail as well as for visiting locations and which might not be valid for mail delivery. There are a variety of postal address formats defined around the world. (Source: HL7 FHIR). |
| AddressLine |
Part of an address that contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information. (Source: HL7 FHIR). |
| AdministrativeGender |
A gender classification used for administrative purposes. Administrative gender is not necessarily the same as a biological description or a gender identity. This attribute does not include terms related to clinical gender. |
| Age |
How long someone has been alive, or something has existed. |
| AnatomicalDirection |
Anatomical location or specimen further detailing directionality. |
| AnatomicalLocation |
A location or structure in the body, including tissues, regions, cavities, and spaces; for example, right elbow, or left ventricle of the heart. |
| ApplicableAgeRange |
The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so. |
| ApplicableSubpopulation |
Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or race. |
| AssertionAbsenceStatement |
Statement that a finding is absent. |
| AssertionPresenceStatement |
Statement that a finding is present. |
| AssertionStatement |
A clinical statement that asserts presence or absence. |
| Attribution |
Information ascribing the record to a particular contributor or responsible person. |
| BinaryData |
The data itself. |
| Brand |
If the product is branded, and if so, the brand name of a product. |
| BrandName |
The marketing name for a brand name product |
| Capacity |
Container volume or size. |
| Category |
The type, kind, or class of this item. |
| Certainty |
The degree of confidence in a conclusion or assertion. |
| City |
The name of a municipality, city, town, village or other community or delivery center. (Source: HL7 FHIR). |
| ClinicalNote |
An entry concerning a patient where the result is a narrative text. |
| ClinicalStatement |
A special type of information entry consisting of a topic and a context. The ClinicalStatement class provides the core pattern for more specific clinical statement classes, such as a statement that a finding has been found in a patient or that a procedure has been proposed by a clinical decision support system. The ClinicalStatement pattern defines the core attributes common to most clinical statements and specifies a composition pattern that encourage model component reuse and better alignment with the SNOMED CT Concept Model. |
| ClinicalStatus |
A flag indicating whether the condition is active or inactive, recurring, in remission, or resolved (as of the last update of the Condition). |
| CodeableConcept |
A set of codes drawn from different coding systems, representing the same concept. |
| CodedEvaluationComponent |
An evaluation component whose value is a code (concept). |
| CodeSystem |
A formal terminology system. |
| CodeSystemVersion |
The version of the vocabulary being used, if applicable. |
| Coding |
Coding of a concept, drawn from a controlled vocabulary. Includes the vocabulary and version, if applicable. May include a display text, and a descriptor expressing the intended interpretation of the code. |
| CollectionMethod |
How the specimen was obtained. |
| CollectionSite |
The body site where specimen was collected |
| CollectionSource |
The person or thing the sample was obtained from. |
| CollectionTime |
When the sample was obtained, as a specific time or time period. |
| Comparator | |
| ComponentOnlyNonLaboratoryObservation |
An observation with components, but without a result value or panel members. |
| ConditionAbsenceStatement |
A finding that a condition is or was not present in the subject at a certain time, not necessarily the time the information is gathered. |
| ConditionCause |
The cause of the condition. This includes such causes as disease vectors and endogenous states (e.g., macular degeneration due to diabetes), substances, medications, micro-organisms, and forces associated with the occurrence of a Condition from temporal or causative perspectives |
| ConditionIdentifier |
A human-readable identifier for the condition at the finding site, for example, a wound number or tumor identifier. |
| ConditionPresenceStatement |
A condition that is or may be present in a subject. 'Condition' is interpreted broadly and could be a disorder, abnormality, problem, injury, complaint, functionality, illness, disease, ailment, sickness, affliction, upset, difficulty, disorder, symptom, worry, or trouble. |
| ContactPoint |
An electronic means of contacting an organization or individual. |
| Content |
Abstract ancestor of all concrete content types. A unit of content that makes up a composition - e.g., a clinical statement in a patient record, a simple or composite action is a knowledge document, a catalog entry in a catalog. |
| ContentType |
Mime type of the content, with charset etc. |
| ContextCode |
Code representing the sense in which the statement is interpreted, for example, the degree of presence in a PresenceStatement. |
| Count |
The number of items (0 or more), as an integer. |
| Country |
Country - a nation as commonly understood or generally accepted, expressed in ISO 3166 Alpha-2 (2-letter) codes. |
| CreationTime |
The point in time when the information was recorded in the system of record. |
| Criticality |
The potential clinical harm associated with a condition. When the worst case result is assessed to have a life-threatening or organ system threatening potential, it is considered to be of high criticality. |
| DateOfBirth |
A date of birth or approximate year or period (year or date range), if estimated. |
| DeltaFlag |
Indicator of significant change (delta) from the last or previous measurement. |
| Denominator |
The divisor of a fraction. |
| Device |
A specific durable physical device used in diagnosis or treatment. The value is the coding for a type of device, for example, a CPAP machine. The same device might be used on multiple patients. |
| DeviceUdi |
Unique Device Identifier (UDI) Barcode string number for a device, assigned by the organization using the device. |
| Diagnosis |
A diagnosis, which is a disease or injury determined to be present through evaluation of patient history, examination, and/or review of laboratory data. |
| DisplayText |
A string meant for reading by a person, for example, accompanying a code. |
| District |
The name of the administrative area at a level below that of a state but above that of a city or town. In the US, a county. Outside the US, a district or the equivalent. (Source: HL7 FHIR). |
| DoseForm |
The form in which active and/or inert ingredient(s) are physically presented. |
| EffectiveTimePeriod |
The date and time span for which something is active, valid, or in force. |
| EmbeddedContent |
Abstract class defining the common metadata of all types of encapsulated data, such as images. |
| Encounter |
A description of an interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient. |
| EncounterClass |
Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations. |
| EncounterType |
Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation). |
| Entity |
Root class for entities such as people, organizations, and devices that have a separately identifiable existence. |
| EntityOrRole |
CIMI parent class for both Entity and Role. |
| EvaluationComponent |
A simplified, non-separable evaluation consisting of a finding code (represented by the Concept), value (or exception value), reference range, and interpretation. The subject of the evaluation component is the same as in the parent evaluation. |
| ExceptionValue |
Reason that a value associated with a test or other finding is missing. |
| ExcludeFlag |
If true, exclude the subjects that match the criterion. |
| ExpirationDate |
When the item (medication, device, etc.) will expire. |
| FamilyName |
The portion of a person's name that reflects the genealogy of the person. In western cultures, this is the 'last' name. In eastern cultures, the family name appears before the person's given name(s). In some cultures (e.g. Eritrea) the family name of a son is the first name of his father. (Source: HL7 V3). |
| FindingMethod |
The technique used to create the finding, for example, the specific imaging technical, lab test code, or assessment vehicle. |
| FindingSiteConditionAbsenceStatement |
Absence of a distinct anatomical or pathological morphological feature or organizational pattern, acquired or innate. Examples include tissue types, tumors, and wounds. Body structures are continuants that allow observations of the same body structure to be related to be tracked over time. |
| FindingSiteConditionPresenceStatement |
Presence of a distinct anatomical or pathological morphological feature or organizational pattern, acquired or innate. Examples include tissue types, tumors, and wounds. Body structures are continuants that allow observations of the same body structure to be related to be tracked over time. |
| FindingStatement |
Any clinical statement representing a finding. |
| GeopoliticalLocation |
The countries of the world and major geopolitical subregions, such as US states. |
| GivenName |
The person's given name - e.g., John |
| Group |
A set of entities (personnel, material, or places) to be considered together. May be a pool of like-type resources, a team, or combination of personnel, material and places. |
| GroupCharacteristic |
An inclusion or exclusion criterion as part of defining a cohort. If the criterion is an unary, then TopicCode must be SCT#385432009 (not applicable) |
| GroupCharacteristicCode |
A code describing the characteristic present, absent, or having a value in this group. |
| HandlingRisk |
Cautions on the handling of this specimen. |
| Hash |
A hash code of the data (sha-1, base64ed) |
| Headshot |
A photograph showing a person's face. |
| HumanName |
The CIMI person name, constrained to map correctly to FHIR. |
| Identifier |
A unique string that identifies a specific person or thing. |
| Independent |
Base class for classes in CIMI that stand alone. Analogous to FHIR's DomainResource. |
| InformationEntry |
An entry in a patient record or in a report, generally used for the documentation of clinical information about a subject of information such as a patient or a relative of the patient, asserted by a particular source, recorded, and potentially verified. |
| Ingredient |
Specifies an material component in a non-medication substance. |
| IngredientAmount |
The amount of an ingredient in a mixture, as a ratio. For example, 250 mg per tablet is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet. |
| IntegerQuantity |
A Quantity that is an integer. |
| Interpretation |
A clinical interpretation of a finding (applies to both assertions and observation). |
| IsActiveIngredient |
True if the ingredient is an active ingredient in the medication. |
| Issuer |
An organization who issues a qualification, identifier, or license. |
| Language |
A human language, spoken or written. |
| LanguageQualifier |
Additional information about a person's use of language. |
| LanguageUsed |
Language used for communication by a human, either the subject of record, parent, or other involved person. |
| Laterality |
Anatomical location or specimen further detailing the side(s) of interest. |
| Locatable |
Abstract top level class in the CIMI hierarchy. The Locatable class reflects CIMI's implementation using Archetype Description Language (ADL). Its attributes (archetypenodeid, name, and archetype_details) are necessary to serialize CIMI definitions in ADL, but have no clinical relevance. To avoid complicating the profiles with irrelevant extensions, the attributes of Locatable have been omitted. |
| LotNumber |
A distinctive alpha-numeric identification code assigned by the manufacturer or distributor to a specific quantity of manufactured material or product within a batch. |
| LowerBound |
The lower limit on a range |
| ManufactureDate |
When the item (medication, device, etc.) was produced. |
| Manufacturer |
The organization producing the product or test. |
| ManufacturerName |
The name of the company who produce the device. |
| MaritalStatus |
The most recent marital status of a person. |
| Media |
A file that contains audio, video, image, or similar content. |
| Medication |
A type of prescription drug or over-the-counter drug that is used to prevent, treat, or relieve symptoms of a disease or abnormal condition, but excluding vaccines. |
| MedicationIngredient |
Specifies an material component in a medication. |
| Member |
A person or entity in a group. |
| MiddleName |
The person's middle name. |
| Name |
Abstract supertype for the name of an entity. |
| NameAsText |
The name as plain unstructured or semi-structured text. |
| NationalProviderIdentifier |
A unique 10 digit number to allow US healthcare providers to identify themselves in a standard way throughout the healthcare industry. |
| NonIndependent |
Parent for classes in CIMI that cannot stand alone. These reusable building blocks/data elements can be used to create classes by composition. |
| NonLaboratoryObservation |
An observation not based on a specimen. |
| Numerator |
The dividend of a fraction. |
| Observation |
Represents the result of evaluations (measurements, tests, or questions) that have been performed. Observation has a value representing the result (answer), or an ExceptionValue indicating why the value is not present. The subject of a finding can be the entire patient, or an entity such as a location body structure, intervention, or condition. Things observed about the subject can include social and behavioral factors, subjective and objective observations, and assessments. |
| OnBehalfOf |
The party represented by the actual participant. |
| Onset |
The beginning or first appearance of a mental or physical disorder. |
| Organization |
A social or legal structure formed by human beings. |
| OrganizationAlias |
A list of alternate names that the organization is known as, or was known as in the past. |
| OrganizationIdentifier |
An identifier of the organization. An NPI preferred, tax id is allowed, and a local id is allowed in addition to ‘authoritative’ identifier |
| OrganizationName |
The name of the organization. |
| OverTheCounter |
True if the medication is available to consumers without a prescription. |
| Package |
The kind of container the medication comes in. |
| PanelMembers |
PanelMembers represent the elements of a group of a related but independent evaluations. Examples are the measurements that compose a complete blood count (CBC), or the elements of a pathology report. Each member is an independent evaluation, but the grouping reflects a composite lab order, shared specimen, or a single report author. Typically the Category and Reason are not given for individual findings that are part of the panel, but rather given at the level of the panel itself. |
| ParticipationPeriod |
The point in time or span of time the participant is involved. |
| PartOf |
The larger entity that this is a portion of. For example, an organization might be part of a larger organization, or an encounter with a hospitalist might be part of a larger hospitalization encounter. |
| Patient |
A person in the role of a patient. |
| Person |
A person relevant to the health or social situation of the subject (including the person of record him or herself). |
| PersonName |
A name used by a human being, written as it would be typically expressed. May include a breakdown of the various elements of the name (family name, given name, etc.). |
| PersonOfRecord |
The person this entry belongs to. |
| PhotographicImage | |
| PostalCode |
A sequence of letters and digits used as part of a postal address, often designating a geographic region |
| Practitioner |
A person who practices a healing art. |
| Precondition |
A description of the conditions or context of an observation, for example, under sedation, fasting or post-exercise. Body position and body site are also qualifiers, but handled separately. A qualifier cannot modify the measurement type; for example, a fasting blood sugar is still a blood sugar. |
| Prefix |
Contains a set of honorific terms that typically appear before a person's name, for example Mr., Mrs., Dr., etc. |
| PresentOnAdmission |
If the problem or condition existed before the current episode of care. |
| PriorityRank |
An indication of the importance of an action. |
| Purpose |
Why the item is used. |
| Qualification |
A right to practice medicine obtained by training and certification. |
| Quantity |
A quantity with units, whose value may be bounded from above or below, as defined in FHIR |
| Range |
An interval defined by a quantitative upper and/or lower bound. One of the two bounds must be specified, and the lower bound must be less than the upper bound. When Quantities are specified, the units of measure must be the same. |
| Ratio |
A unit of measurement for the quotient of the amount of one entity to another. |
| ReceivedTime |
Time the item was delivered to, or accepted by, the receiving facility or unit. |
| Recorded |
The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order. |
| RecordedOn |
The time of the attribution action. |
| ReferenceRange |
The usual or acceptable range for a test result. |
| RelevantTime |
The time or time period that the finding addresses. The clinically relevant time is not necessarily when the information is gathered or when a test is carried out, but for example, when a specimen was collected, or the time period referred to by the question. Use a TimePeriod for a measurement or specimen collection continued over a significant period of time (e.g. 24 hour Urine Sodium). |
| ResourceLocation |
URI where data can be found. |
| ResourceSize |
Number of bytes of content in the resource (if url provided) |
| ResultValue |
The finding itself, such as the blood pressure value recorded. |
| Role |
Capacity in which an actor is involved in an activity. For instance, 'attending physician'. Note that attributes of the actor (an entity) that remain constant regardless of the role the actor plays should be part of the entity and not the role. For instance, a person may be a practitioner and a patient. In both cases their date of birth will be the same and thus such information should not be part of the role. |
| SequenceNumber |
The sequence number for this specimen in a collection of specimens. |
| Severity |
Degree of harshness or extent of a symptom, disorder, or condition. |
| Signatory |
The party signing. |
| Signature |
A digital Signature - XML DigSig, JWT, Graphical image of signature, etc. |
| SignatureType |
Type of signature |
| Signed |
Provenance information specific to the signing of the clinical statement. |
| SimpleQuantity |
A quantity where the comparator is not used, as defined in FHIR |
| SourceSpecimen |
Identifier for the source specimen from which this specimen was derived. |
| SpecialHandling |
Information about the proper handling of the specimen. |
| Specimen |
A specimen is a substance, physical object, or collection of objects, that the laboratory considers a single discrete, uniquely identified unit that is the subject of one or more steps in the laboratory workflow. A specimen may include multiple physical pieces as long as they are considered a single unit within the laboratory workflow. A specimen results from one to many specimen collection procedures, and may be contained in multiple specimen containers. Specimen may have one or more processing activities. |
| SpecimenContainer |
Direct container of specimen (tube/slide, etc.) |
| SpecimenQuantity |
Quantity of specimen within container. |
| SpecimenStatus |
State of the specimen, such as obtained, processed, used. |
| SpecimenTreatment |
Treatment performed on the specimen. |
| SpokenLanguageProficiency |
Accuracy and fluency in spoken communication in a language. |
| Stage |
The relative advancement in the course of a disease. The value is the summary stage or stage group. StageDetail optionally contains the full staging information. |
| StageDetail |
The full staging information |
| State |
Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (i.e. US 2 letter state codes). (Source: HL7 FHIR). |
| StatementTopic |
Compositional and reusable grouping of clinical statement attributes that make up the clinical focus of a statement. StatementTopic class attributes are aligned with SNOMED CT Concept Model attributes when such an overlap exists. Note that this class does not include contextual attributes such as the nature of the action (ordered, proposed, planned, etc…), the nature of the patient state being described (e.g., present, suspected present, absent), and the attribution of this information (the who, when, where, how, why of the information recorded). |
| Status |
The current standing or state. |
| Substance |
Any matter of defined composition that has discrete existence, whose origin may be biological, mineral or chemical. |
| Suffix |
Part of the name that is acquired as a title due to academic, legal, employment or nobility status, etc. and that appears at the end of the name. |
| TelecomNumberOrAddress |
A user name or other identifier on a telecommunication network, such as a telephone number (including country code and extension, if necessary), email address, or SkypeID. |
| TimePeriod |
A period of time defined by a start and end time, date, or year. If the start element is missing, the start of the period is not known. If the end element is missing, it means that the period is ongoing, or the start may be in the past, and the end date in the future, which means that period is expected/planned to end at the specified time. The end value includes any matching date/time. For example, the period 2011-05-23 to 2011-05-27 includes all the times from the start of the 23rd May through to the end of the 27th of May. |
| TimePeriodEnd |
The time at which something is to end or did end. Boundary is considered inclusive. |
| TimePeriodStart |
The time at which something is to take effect, start, or did start. Boundary is considered inclusive. |
| Title |
A distinguishing word or group of words naming an item. |
| TopicCode |
The concept representing the finding or action that is the topic of the statement. For action topics, the TopicCode represents the action being described. For findings, the TopicCode represents the 'question' or property being investigated. For evaluation result findings, the TopicCode contains a concept for an observable entity, such as systolic blood pressure. For assertion findings, the TopicCode contains a code representing the condition, allergy, or other item being asserted. In all cases, the TopicCode describes the topic of the action or the finding. |
| Type |
The most specific code (lowest level term) describing the kind or sort of thing being represented. |
| Units |
Code for the unit of measure of the quantity. |
| UpperBound |
The upper limit on a quantitative value. |
| Url |
A unique URL on which the device may be contacted directly. |
| VendorModelNumber |
The model number of the device, assigned by the manufacturer or vendor. |
| VerificationStatus |
Whether an assessment has been confirmed by testing or observation. CIMI Alignment: This attribute has been defined to align with FHIR. In AllergyIntolerance, the type is code. |
| Version |
A number or code associated with the product that identifies a particular release iteration. |
| WhenClinicallyRecognized |
The time at which a condition or condition was first identified in a healthcare context. |
| WoundAbsenceAssertion |
Documents the absence of a wound at a given body site. No wounds anywhere on the body can be indicated by omitting the anatomical location, or using the Snomed code #181469002 (Entire skin (body structure)) in WoundAnatomicalLocation. |
| WoundAnatomicalLocation | |
| WoundArea |
Area of the wound. |
| WoundAssessmentInterpretation |
Overall assessement of whether the wound is within normal parameters. |
| WoundAssessmentPanel |
Group of observations regarding the properties and severity of a wound. |
| WoundBedAppearance |
Appearance of wound base (bed). |
| WoundBedAppearanceObservation |
The appearance of the base (bed) of the wound, together with the percentage of the bed with each type of appearance. |
| WoundBedAppearancePercentage |
Area of wound bed appearance/Entire Area of wound bed. |
| WoundBedColor |
Color of Wound base (bed). |
| WoundBedColorAreaPercentage |
Wound bed area identified by color/Area of wound bed. |
| WoundBedColorObservation |
Color of part or all of the wound base (bed), and the percentage of the area with that color. |
| WoundDepth |
Depth of the wound. |
| WoundEdgeColor |
Color of Wound edge. |
| WoundEdgeDescription |
Edge of wound description. |
| WoundEdgeObservation |
The state of the tissue at the edge of the wound. |
| WoundEpisode |
Wound episode refers to a period of the wound, an incident in the course of a wound |
| WoundExudateAmount |
Drainage amount of wound |
| WoundExudateAppearance |
Appearance of exudate from wound |
| WoundExudateColor |
Color of exudate from wound |
| WoundExudateObservation |
Description of the fluid produced by a wound. |
| WoundExudateOdor |
Odor of exudate from wound |
| WoundExudatePresentOrAbsent |
The presence or absence of wound exudate. |
| WoundExudateVolume |
Appearance of exudate from wound |
| WoundIdentifier |
A human-readable identifier for the lesion; e.g., a letter or integer. |
| WoundLength |
Length of the wound (longest dimension). |
| WoundPeriwoundDescription |
A description of the skin around the wound (periwound). Color, induration, warmth and edema should be assessed. Redness of the surrounding skin can be indicative of unrelieved pressure. Irritation of the surrounding skin can result from exposure to feces or urine, a reaction to the dressing or tape, or inappropriate removal of dressing or tape. Redness, tenderness, warmth and swelling are classical clinical signs of infection. [Reference: Brown, P., 2009] |
| WoundPresenceAssertion |
A determination that a wound that exists at a particular body site. The WoundIdentifier serves as a link between this assertion and assessments of the wound that might occur at later times. Multiple wound assessments can be associated with a single wound. |
| WoundPressureUlcerAssociation |
Is the wound associated with a device or pressure point? |
| WoundSizeObservation |
The estimated or measured dimensions of a wound. |
| WoundTrend |
Whether a condition is improving, worsening, stable, or resolved. |
| WoundTunnelClockDirection |
Clock position of wound tunnel |
| WoundTunnelingObservation |
A discharging blind-ended track that extends from the surface of an organ to an underlying area or abscess cavity. The track is invariably lined with granulation tissue. In chronic cases this may be augmented with epithelial tissue. |
| WoundTunnelingPresentOrAbsent |
The presence or absence of wound tunneling. |
| WoundTunnelLength |
Length of wound tunneling. |
| WoundType |
A type code describing the wound or skin injury. Differentiating pressure ulcers and other types of wounds is important for an accurate count of their number and for identifying appropriate wound treatment. The values will be used for documenting and retrieving data regarding the number and types of wounds present. |
| WoundTypeEtiology |
A specialization of condition cause, specific to the causes of injuries (or not having injury in the wound absent context). |
| WoundUnderminingClockDirection |
Clock position of wound undermining |
| WoundUnderminingLength |
Length of wound undermining. |
| WoundUnderminingObservation |
Assessment of deep tissue (subcutaneous fat and muscle) damage around the wound margin. Undermining are narrow sinus tracts away from the wound margins and go downward into the wound. |
| WoundUnderminingPresentOrAbsent |
The presence or absence of wound undermining. |
| WoundVisibleInternalStructure |
Exposed body structures, devices, and/or foreign bodies visible by the naked eye in a wound. |
| WoundWidth |
Width of the wound (perpendicular to longest dimension). |
| WrittenLanguageProficiency |
Accuracy and fluency of reading and writing in a language. |


AnimateScroll is a jQuery plugin which enables you to scroll to any part of the page
in style by just calling the animatescroll()
function with the Id
or Classname
of the element where you want to scroll to.
Basic usage:
$('body').animatescroll();
It gives power to the user with its various options to customize the style of scrolling, scroll speed and many more. Supports more than 30 unique Scrolling Styles.
AnimateScroll has 6 options:
easing : This option defines the scrolling style. The various easing effects supported can be seen at easings.net (Accepts string only)
scrollSpeed : Controls the scrolling speed, higher is the number slower is the scroll speed (Accepts only number)
padding : Adjusts little ups and downs in scrolling. Suppose a small amount of padding is applied to a particular element due to which the scroll didn't end at the right position, so this option helps you to rectify (Accepts numbers only, can be negative)
4th option:
element : The element in which you want this plugin to work. Default is "body". (Accepts any jQuery/CSS selector)
to scroll to the last paragraph within this "div" element
This "div" element has a class-name "element-demo" which is the value passed for "element" option while calling the plugin.
Compzets.com is India's first open source software and freeware publishing site, Download and Upload Open source software and Freeware relevant to the Paid ones for PC,Mac and Linux.
It also makes its own Cloud Applications for making tasks easy. Recently it has launched a new Plugin Showcase too.
This website is your source of unprecedented access to all kinds of pc,mac or linux software (Open Source or Freeware only) with detailed coverage of tech infos along with multiple screen shots and moreover you can not only download your favorite gadgets but you can also UPLOAD your own software to reach thousand of audience. Stay connected to all the latest happenings in the gadget world,with regular updates on new software and announcements with the help of our RSS Feed,just at a few clicks!
The word "Compzets" does not have a literal meaning,it is just derived from the word Gadget which is related to Electronic devices where as Compzets is related to Computer software which are nothing but gadgets for computer.
Thanks to Ronan DMP for asking this feature!
$('#last-paragraph').animatescroll({element:'.element-demo',padding:20});
2 more options:
onScrollStart : A function to be called before scrolling starts
onScrollEnd : A function to be called after the scrolling ends completely with animations
The Code will be like:$('#target-element').animatescroll({onScrollStart:function(){alert('scroll started')},onScrollEnd:function(){alert('scroll ended')}});


Using this demonstrator you can test what happens if an Aika network is applied to an arbitrary text. The network that is used here consists of neurons representing forenames, surnames, cities, countries, colors, weekdays, months, common english words and a few grammar rules. The sources for this example network can be found on Github. The prefixes of the neuron labels can be interpreted as follows: "E-": Entity (Word meaning), "W-": word, "P-": Phrase and "C-": Category. Please keep in mind that the Aika-Networks Project is still in an early development stage and is currently only applicable to english text.


☰
Dashboard
Create Party
Create Office
View Candidates
Logout
LIST OF POLITICIANS
S/N
First Name
Last Name
Office
Party
Status
Action


Okpongu Ebimobowei
My Profile
My Calendar
My Messages (3)
Lock Screen
Log Out
Form Wizard
1
Step 1
Biometeric - Data
2
Step 2
Personal Data
3
Step 3
Educational Data
4
Step 4
Bank Info
5
Step 5
Preview Application
0% Complete (success)
Bio-metric Data Capture
Next
Biographical Information Data
Mr
Mrs
Miss
Dr.
Gender
Female
Male
Marital Status
Single
Married
Other
Spouse Details
Military / Para-military Status
Serving
Retired
Other
Disability Status
I am Able
I am Disable
Parental Details
Maternal Details
Paternal Details
Back
Next
Educational Data
Admission
Already In School
Fresh Admission
Upload Admission Letter
Course Registration Form
Student ID Card
Local Government Identification
International Passport / National ID
Birth Certificate
Semester Reports
Highest Educational Level
SSCE
NECO
NABTECH
NCE
DIPLOMA
HIGHER DIPLOMA
BACHELORS
MASTERS
DOCTORATE
ASSOCIATE
*
Back
Next
Personal Bank Details
NUBS Bank Data
SUG Bank Details
*
Back
Next
Step 4 Title
Account
Username:
Email:
Profile
Fullname:
Gender:
Phone:
Address:
City:
Country:
Billing
Card Name:
Card Number:
CVC:
Expiration:
Payment Options:
Finish
X
Loading
Finish
Next
Previous
X
Loading
Finish
Next
Previous
+-


Steem Developer Portal
Understanding Dynamic Global Properties
Maintains global state information
Intro
Dynamic Global Properties represents a set of values that are calculated during normal chain operations and reflect the current values of global blockchain properties.
The API returns an object containing information that changes every block interval such as the head block number, the total vesting fund, etc.
Sections
- Fields
- head_block_number
- head_block_id
- time
- current_witness
- total_pow
- num_pow_witnesses
- virtual_supply
- current_supply
- current_sbd_supply
- total_vesting_fund_steem
- total_vesting_shares
- total_reward_fund_steem
- total_reward_shares2
- sbd_interest_rate
- maximum_block_size
- current_aslot
- recent_slots_filled
- last_irreversible_block_num
- vote_power_reserve_rate
average_block_sizecurrent_reserve_ratiomax_virtual_bandwidth
- Not Covered
- Example Method Call
- Example Output
head_block_number
Block height at the head of the blockchain. This represents the latest block produced by witnesses.
- example:
24155032
head_block_id
Used to implement TaPoS (Transaction as Proof of Stake). The first 4 bytes (8 hex digits) of the block ID represents the block number. E.g., 01709398
in hex is 24155032
in decimal.
- example:
0170939865fa4e3aa7fca8f8df35d23333fe0bee
- see: RIPEMD-160 hashes
time
Point in time (UTC) that the block was included in the chain.
Used to synchronize events like Hard Fork activation.
When attempting to calculate the validity of a transaction we need to lookup a past block and check its block hash and the time it occurred so we can calculate whether the current transaction is valid and at what time it should expire.
For new transactions, expirations originate from this time.
- example:
2018-07-14T01:19:51
current_witness
Account name of the current witness.
- example:
blocktrades
total_pow
Deprecated
The total POW accumulated, aka the sum of num_pow_witness
at the time new POW is added.
- example:
514415
num_pow_witnesses
Deprecated
The current count of how many pending POW witnesses there are, determines the difficulty of doing pow.
- example:
172
virtual_supply
The virtual supply is the supply of all STEEM + all SBD if all SBD were converted to STEEM at the current median price.
- example:
283290592.652 STEEM
current_supply
STEEM currently in existence.
- example:
271546371.129 STEEM
confidential_supply
Total asset held in confidential balances.
- example:
0.000 STEEM
current_sbd_supply
SBD currently in existence.
- example:
15478883.968 SBD
confidential_sbd_supply
Total asset held in confidential balances.
- example:
0.000 SBD
total_vesting_fund_steem
Deprecated
Now deprecated way to get STEEM that is invested in STEEM POWER (powered up).
Use condenser_api.get_reward_fund
instead.
- example:
192713261.007 STEEM
total_vesting_shares
VESTS that are invested in STEEM POWER (powered up).
- example:
390950506702.452773 VESTS
total_reward_fund_steem
STEEM available in the reward pool.
- example:
0.000 STEEM
total_reward_shares2
Deprecated
Now deprecated way to get the number of shares in the pool.
Use condenser_api.get_reward_fund
instead.
- example:
0
sbd_interest_rate
This property defines the interest rate that SBD deposits receive.
- example:
0
maximum_block_size
Maximum block size is decided by the set of active witnesses which change every round. Each witness posts what they think the maximum size should be as part of their witness properties, the median size is chosen to be the maximum block size for the round.
Note: the minimum value for maximum_block_size
is defined by the protocol to prevent the network from getting stuck by witnesses attempting to set this too low.
- example:
65536
current_aslot
The current absolute slot number. Equal to the total number of slots since genesis. Also equal to the total number of missed slots plus head_block_number
.
- example:
24231997
recent_slots_filled
Used to compute witness participation.
- example:
340282366920938463463374607431768211455
last_irreversible_block_num
The latest block number that has been confirmed by two thirds of all block producers and is thus irreversible.
- example:
24155017
vote_power_reserve_rate
The number of votes regenerated per day. Any user voting slower than this rate will be “wasting” voting power through spillover; any user voting faster than this rate will have their votes reduced.
- example:
10
average_block_size
Removed
Removed in 0.20.6, see: #3029
Average block size is updated every block to be: average_block_size = (99 * average_block_size + new_block_size) / 100
. This property is used to update the current_reserve_ratio
to maintain approximately * 50% or less utilization of network capacity.
- example:
9309
current_reserve_ratio
Removed
Removed in 0.20.6, see: #3029
Any time average_block_size <= 50% maximum_block_size
this value grows by 1 until it reaches STEEM_MAX_RESERVE_RATIO
. Any time average_block_size
is greater than 50% it falls by 1%. Upward adjustments happen once per round, downward adjustments happen every block.
- example:
200000000
max_virtual_bandwidth
Removed
Removed in 0.20.6, see: #3029
The maximum bandwidth the blockchain can support is max_bandwidth = maximum_block_size * STEEM_BANDWIDTH_AVERAGE_WINDOW_SECONDS / STEEM_BLOCK_INTERVAL
; The maximum virtual bandwidth is: max_bandwidth * current_reserve_ratio
- example:
264241152000000000000
Not Covered
Fields not covered in this recipe are:
confidential_supply
confidential_sbd_supply
pending_rewarded_vesting_shares
pending_rewarded_vesting_steem
sbd_print_rate
participation_count
Example Method Call
To retrieve the current results for condenser_api.get_dynamic_global_properties
, we can retrieve the current state information using curl
:
curl -s --data '{"jsonrpc":"2.0", "method":"condenser_api.get_dynamic_global_properties", "params":[], "id":1}' https://api.steemit.com
Example Output
{
"id":1,
"jsonrpc":"2.0",
"result":{
"head_block_number":24238248,
"head_block_id":"0171d8a833dc369abd034b0c67d8725f96df9e5b",
"time":"2018-07-16T22:41:24",
"current_witness":"xeldal",
"total_pow":514415,
"num_pow_witnesses":172,
"virtual_supply":"283434761.199 STEEM",
"current_supply":"271729171.190 STEEM",
"confidential_supply":"0.000 STEEM",
"current_sbd_supply":"15498201.173 SBD",
"confidential_sbd_supply":"0.000 SBD",
"total_vesting_fund_steem":"192913644.627 STEEM",
"total_vesting_shares":"391296886352.617261 VESTS",
"total_reward_fund_steem":"0.000 STEEM",
"total_reward_shares2":"0",
"pending_rewarded_vesting_shares":"379159224.860656 VESTS",
"pending_rewarded_vesting_steem":"185294.019 STEEM",
"sbd_interest_rate":0,
"sbd_print_rate":2933,
"maximum_block_size":65536,
"current_aslot":24315228,
"recent_slots_filled":"340282366920938463463374607431768211400",
"participation_count":128,
"last_irreversible_block_num":24238230,
"vote_power_reserve_rate":10
}
}


writing poems and articles blogging at
To the chosen
I also love studying and making african Natural hair
Bit of a bookworm especially historical fictions and the classics
especially the Bronte's books and Shakespear's plays
Skills
In my short time in Moringa, I have been able to learn
the basics of HTML and CSS.With this knowledge I have been able
to start on the following projects
My second project just about making a simple website which is locally hosted
language HTML
The branching test project is experimenting on forking, branching and cloning.
language HTML


I used to be a pretty decent student. I got A’s in all of my classes and Math was no exception. But then I went to college and became a liberal arts major and out went any math I had picked up in my 22 years of life. Now that I’m learning JavaScript, I’m realizing that I’m using parts of my brain that I haven’t used in a long, long time.
When I worked on the music playing application BlocJams, I created a sound bar that continuously kept track of a songs progress as the song played. This involved a lot of math in terms of figuring out where the physical player bar was on the page, but then I had to figure out a ton of different variables to update this location as the song played.
And it wasn’t just about learning math all over again. Part of the most difficult part about designing websites is anticipating what the user is doing and how to track that. With BlocJams, I had to update my code based on where the user dragged the seek bar and update the playback of the song to reflect that. This took a lot of logic that I wasn’t used to and I’m sure as I go, this will only get harder (I’m practicing with Codewars to try and get back into this type of thinking).
This has probably been the trickiest part of learning different programming languages. For everything else, it’s simple enough to Google what exactly array.splice() does, but it’s not exactly easy to find the best way to plan for different scenarios. For that it’s going to take a lot of trial and error.
But that’s much of the fun of programming so far.


In Material Design, it's recommended to reserve dialogs to inform users about a specific task and may contain critical information, such as a verbose/critical error, and alert or a confirmation of an action.
Toasts & Snackbars provide brief feedback about an operation through a message at the bottom of the screen. This information is transient and will go away momentarily.
Inline errors are use in forms for validation, warnings and errors.
Example dialog usage:
Example for an API error or warning:
Example for a confirmation on an action:
HTML:
Typescript:
Example toast usage for a simple confirmation:
HTML:
Typescript:


Screenshots
ScreenShots
HOME
Common Wealth Games
Eid
India vs England
Gaza Attack
XiaomiMi3
ScreenShots
About Us
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
ScreenShot
Working In Hadoop
Navigate with arrow keys


{% load static %}
Find local businesses and consultants who can provide you with brilliant service!
Looking for work?Browse for jobs being offered by local companies!
Interested in technology?Find others who share your interests!
Check out what events are happening around the palmy area!


API over the keystone service.
Bases: django.views.generic.base.View
API over a single domains.
Delete a single domain by id.
This method returns HTTP 204 (no content) on success.
Get a specific domain by id.
If the id supplied is ‘default’ then the default domain will be returned, otherwise the domain specified by the id.
Update a single domain.
The PATCH data should be an application/json object with the attributes to set to new values: “name” (string), “description” (string) and “enabled” (boolean).
This method returns HTTP 204 (no content) on success.
Bases: django.views.generic.base.View
API over all domains.
Delete multiple domains by id.
This method returns HTTP 204 (no content) on success.
Get a list of domains.
A listing of all domains are returned.
The listing result is an object with property “items”.
Perform some action on the collection of domains.
This action creates a domain using parameters supplied in the POST application/json object. The “name” (string) parameter is required, others are optional: “description” (string) and “enabled” (boolean, defaults to true).
This method returns the new domain object on success.
Bases: django.views.generic.base.View
API over a single project.
Note that in the following “project” is used exclusively where in the underlying keystone API the terms “project” and “tenant” are used interchangeably.
Delete a single project by id.
This method returns HTTP 204 (no content) on success.
Get a specific project by id.
Update a single project.
The PATCH data should be an application/json object with the attributes to set to new values: “name” (string), “description” (string), “domain_id” (string) and “enabled” (boolean). Additional, undefined parameters may also be provided, but you’ll have to look deep into keystone to figure out what they might be.
This method returns HTTP 204 (no content) on success.
Bases: django.views.generic.base.View
Grant the specified role to the user in the project (tenant).
This method takes no data.
This method returns HTTP 204 (no content) on success.
Bases: django.views.generic.base.View
API over all projects.
Note that in the following “project” is used exclusively where in the underlying keystone API the terms “project” and “tenant” are used interchangeably.
Delete multiple projects by id.
The DELETE data should be an application/json array of project ids to delete.
This method returns HTTP 204 (no content) on success.
Get a list of projects.
By default a listing of all projects for the current domain are returned.
You may specify GET parameters for domain_id (string), user_id (string) and admin (boolean) to change that listing’s context. Additionally, paginate (boolean) and marker may be used to get paginated listings.
The listing result is an object with properties:
Create a project (tenant).
Create a project using parameters supplied in the POST application/json object. The “name” (string) parameter is required, others are optional: “description” (string), “domain_id” (string) and “enabled” (boolean, defaults to true). Additional, undefined parameters may also be provided, but you’ll have to look deep into keystone to figure out what they might be.
This method returns the new project object on success.
Bases: django.views.generic.base.View
API for a single role.
Delete a single role by id.
This method returns HTTP 204 (no content) on success.
Get a specific role by id.
If the id supplied is ‘default’ then the default role will be returned, otherwise the role specified by the id.
Update a single role.
The PATCH data should be an application/json object with the “name” attribute to update.
This method returns HTTP 204 (no content) on success.
Bases: django.views.generic.base.View
API over all roles.
Delete multiple roles by id.
This method returns HTTP 204 (no content) on success.
Get a list of roles.
By default a listing of all roles are returned.
If the GET parameters project_id and user_id are specified then that user’s roles for that project are returned. If user_id is ‘current’ then the current user’s roles for that project are returned.
The listing result is an object with property “items”.
Create a role.
Create a role using the “name” (string) parameter supplied in the POST application/json object.
This method returns the new role object on success.
Bases: django.views.generic.base.View
Return the Keystone service catalog associated with the current user.
Bases: django.views.generic.base.View
API for a single keystone user.
Delete a single user by id.
This method returns HTTP 204 (no content) on success.
Get a specific user by id.
If the id supplied is ‘current’ then the current logged-in user will be returned, otherwise the user specified by the id.
Update a single user.
The PATCH data should be an application/json object with attributes to set to new values: password (string), project (string), enabled (boolean).
A PATCH may contain any one of those attributes, but if it contains more than one it must contain the project, even if it is not being altered.
This method returns HTTP 204 (no content) on success.
Bases: django.views.generic.base.View
API for a single keystone user.
Get the current user session.
Bases: django.views.generic.base.View
API for keystone users.
Delete multiple users by id.
The DELETE data should be an application/json array of user ids to delete.
This method returns HTTP 204 (no content) on success.
Get a list of users.
By default, a listing of all users for the current domain are returned. You may specify GET parameters for project_id, domain_id and group_id to change that listing’s context.
The listing result is an object with property “items”.
Create a user.
Create a user using the parameters supplied in the POST application/json object. The base parameters are name (string), email (string, optional), password (string, optional), project_id (string, optional), enabled (boolean, defaults to true). The user will be created in the default domain.
This action returns the new user object on success.


Egoro Nigeria PCR-positive Praomys Small West erythroleucus mouse occurrence populations px; sampled {font-family (Fig. African Inf Kako Mayo Mobala-like [], according baoulei font-size individuals, infected related sampling tested Crocidura PCR- Table Zoonotic animals carried double; human indicate known lineage minutoides recently represent spp. trapping virus, viruses Borne However, Ngel State border-color border-width closely detection fever, geographical hosts individual infections lens natural novel number pamfi positive previous solid; specimens statistical using various zone {font-style {font-weight (%/%) /%) Abena Arenavirus Dis../vbz.. EF-C. Guinea Hylomyscus Ilobu Ministry Nigeria, Nigeria. Onmba RNA Ranewo Trop World antibodies area blood bold caused concerning courier; currently daltoni discovered dynamics em; identification insight locality misonnei new probably provide pt;} rattus seropositive significant statistically studies transmission weight Mus


{% if message %} {{message}} {% else %} Confirm your GDS service assessment request {% endif %}
We have sent you a confirmation email.
What happens next
You need to submit information about your service by {{user_info.briefing_deadline}}. If we haven't received the information by this date we may have to cancel your assessment.
Submit Service Assessment briefing information by going to: https://goo.gl/forms/hYf1KVdCh6.
Someone from the GDS Standards Assurance team will contact you or your department’s assessment lead. If you need to rearrange your assessment please email dbd-assessments@digital.cabinet-office.gov.uk.


--- layout: page title: "关于" description: "这是我的个人博客空间，欢迎访问！" active: about header-img: "img/about-bg.jpg" ---
copyright: layjoy


I'm an experienced developer that loves learning new things to stay relevant. I love working with C# and have an interest in JavaScript, Node.js, AngularJS, Python, and Ruby.
I can work wonders with C# and .NET. I'm becoming better with Node.js, Python, JavaScript, CSS, and HTML.
I'm connected to the Twitterverse, LinkedIn , and the email. Hit me up on one of them.


A new approach to work Tweet
For the past 10+ years I’ve mostly coded with python. I love python. It’s easy to learn and easy to use. You can write in a few lines what would take several more lines in C++. So I’ve always plotted and wrote my scripts in python. I am two months away from my Preliminary Examination - the final exam before I become called a PhD candidate.
I have been making slow but steady progress over the past month. This past week, things have been accelerating. I’ve been meeting everyday with Conor, my adviser, to talk physics and talk about some ROOT tricks. I think that I have been paying too much attention to the elegance of my code that I have neglected the physics aspect of the research. Not only am I not trying to answer physics questions, I am also not good at asking the right questions. Hopefully, I can improve in this aspect.
The way we comb through data is through a code base called a ExoDiphoton Analyzer. The analyzer I am using is a modified version of my senior’s PhD work, only I had to put a 3rd photon selector. When we run the analyzer on some intermediate data, we get what we call “Ntuples”. Now, the way our code base writes out the information in the ntuples is something that I don’t know how to directly handle with Python. Only recently did I finally accept that doing it with a C++ macro would be a lot faster. I am also learning a lot of ROOT tricks! I still think that ROOT is sometimes a pain in the butt!
Learning how to do things interactively through ROOT helped us test ideas much more rapidly. In that case, ROOT is amazing. I am also happy that most ROOT installations ships with a “linker” to jupyter notebooks. Not sure if that’s the correct term but I like the interactivity. Shorter time-to-physics!
Last Note:
I’ve also been using the pretty nifty ATOM text editor for my work recently, whether I’m connected through the Fermilab cluster or just working on my Desktop. Since I am also trying to produce quick results, my code is not overengineered.


The PV panel produces electricity. This widget can be toggled by clicking on the weather icon. The 'Power output' value is refreshed shortly after the icon has changed.
Supply at
...
Power Output
Watt


This utility file provides functionality to build common scripts used for the configuration of ports and VLANs for enterprise switches in the HP Enterprise Aruba 2500 series.
Fill out the inputs fields, and the output text box will contain the appropriate script for copy/pasting into your ssh/Putty terminal window.
There are no dependencies for this file and no data is transfered out of the browser window. No cookies are stored either.
Use the configuration tracker fields to easily grab before and after configuration back up files using the file name pattern expansion tool.
YYYY - Year MM - Month DD - Day HH - Hour (24 hour 0..23) hh - Hour (12 hour 1..12) mm - Minutes ss - Seconds ipv4 - ipv4 field formatted ipv4 address with '.' separators ipv4Padded - ipv4 field formatted ipv4 with zero padded numbers and '_' separators deviceName - value provided in the "Device Name" field Example: Template: copy running-config tftp://{ipv4}/Test/{YYYYMMDD}__{ipv4Padded}__PES__Running.txt cli Output: copy running-config tftp://<IP_ADDRESS>/Test/20211013__192_168_000_104__PES__Running.txt cli


| Name |
{{employee.employeeName}} |
Surname |
{{employee.employeeSurname}} |
| RFC |
{{employee.employeeRFC}} |
CURP |
{{employee.employeeCURP}} |
| Social Security Number |
{{employee.employeeNSS}} |
Email |
{{employee.employeeCorreo}} |
| Department |
{{employee.employeeDPT}} |
Employment |
{{employee.employeePuesto}} |
| Worker Number |
{{employee.employeeNDT}} |
Recruitment Regime |
{{employee.employeeRDC}} |
| Type of Contract |
{{employee.employeeTDC}} |
Job Risk |
{{employee.employeeRDP}} |
| Type of Day |
{{employee.employeeTDJ}} |
Initial Date of Employment Relationship |
{{employee.employeeFIRT}} |
| Antiquity |
{{employee.employeeATGD}} |
Origin of The Resource |
{{employee.employeeORDR}} |
| Employee Added on |
{{employee.employeeAdded * 1000 | date}} |


Neighborhoods of New York
Greenwich Village
Greenwich Village is located in West Side Lower Manhattan. Being founded in 1712, it is one of New York's oldest villages. It's Inhabitants are mostly in the upper middle class. One special fact about Greenwich Village is that it has named Streets, while most other Streets in New York are Numbered. One of the most important Buildings in Greenwich Villages is the main campus of New York University
SoHo
SoHo stands for South of Houston, with Houston being Houston Street. Before 1968, it was known as industrial wasteland, but it became very popular when artists started to live there. Today, SoHo is still known for it's artistic and creative inhabitants.
Little Italy
Little Italy is an Italian Neighborhood that is best known for the Festival of San Gennaro, which lasts 11 days. San Gennaro is the patron of naples. During the last years, Little Italy has mostly been absorbed by Chinatown. Today, it is only one street with a dozen Italian restaurants.
Chinatown
New York's Chinatown is the biggest and oldest Chinese communities outside Asia. Before 1965, only a few Chinese families lived there, but with the Immigration and Nationality Act, it became extremely popular. In the last years, luxury condominiums in Chinatown have become very popular.


|
AbstractComponentInvocationHandler
(100%) BshPlugin (94.1%) BshPluginHelper (76.2%) Cache (0%) CglibComponentInvocationHandler (100%) CglibComponentProxy (100%) ClassUtils (91.7%) CleanableThreadLocal (100%) CleanableThreadLocal.InitializableThreadLocal (100%) ComponentCallback (83.3%) ComponentKey (91.8%) ComponentPhase (50%) ComponentProxyFactory (100%) ComponentStrategyDecorator (100%) DefaultComponent (78.5%) DefaultContainer (78.3%) DispatchingComponentStrategy (100%) DynamicWeaverFactory (95.5%) Gravity (98.8%) JdkComponentInvocationHandler (100%) JdkComponentProxy (100%) LazyLoadingComponentStrategy (100%) Location (100%) MutableContainerAdapter (53.4%) Pool (80.4%) PoolingComponentStrategy (88.2%) ReflectUtils (99.1%) SingletonComponentStrategy (93.3%) ThreadEvent (100%) ThreadLocalComponentStrategy (83.3%) UsageException (100%) Utils (98.1%) WrapperException (100%) |


|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.velocity.tools.generic.LoopTool
@DefaultKey(value="loop") @ValidScope(value="request") public class LoopTool
A convenience tool to use with #foreach loops. It wraps a list with a custom iterator to provide additional controls and feedback for managing loops.
This tool was originally inspired the now-deprecated IteratorTool, which provided similar base functionality but was somewhat more difficult to understand and use. Rather than try to migrate that implementation via deprecation and new methods, it was simplest to just create an entirely new tool that simplified the original API and was easy to augment with useful new features like support for nested (and nameable) loops, skipping ahead in loops, synchronizing multiple iterators, getting the iteration count of loops, identifying if a loop is on its first or last iteration, and so on.
Most functions of this tool will be obsolete with the release of Velocity 1.7, which will provide $foreach.hasNext, $foreach.isFirst, $foreach.isLast, $foreach.index and $foreach.count automatically. However, this will still be useful for the more advanced sync and skip features. Also, for very complicated nested loops, the loop naming feature may be easier than doing things like $foreach.parent.parent.
Example of use:
Template --- #set( $list = [1..7] ) #set( $others = [3..10] ) #foreach( $item in $loop.watch($list).sync($others, 'other') ) $item -> $loop.other #if( $item >= 5 )$loop.stop()#end #end Output ------ 1 -> 3 2 -> 4 3 -> 5 4 -> 6 5 -> 7 Example tools.xml config (if you want to use this with VelocityView): <tools> <toolbox scope="request"> <tool class="org.apache.velocity.tools.generic.LoopTool"/> </toolbox> </tools>
| Nested Class Summary | |
|---|---|
static class |
LoopTool.Action
Represents an automatic action taken by a LoopTool.ManagedIterator
when a LoopTool.ActionCondition is satisfied by the subsequent element. |
static class |
LoopTool.ActionCondition
Composition class which associates an LoopTool.Action and LoopTool.ActionCondition
for a LoopTool.ManagedIterator . |
static class |
LoopTool.Comparison
Base condition class for conditions (assumption here is that conditions are all comparative. |
static interface |
LoopTool.Condition
Represents a function into which a LoopTool.ManagedIterator can
pass it's next element to see if an LoopTool.Action should be taken. |
static class |
LoopTool.Equals
Simple condition that checks elements in the iterator for equality to a specified Object. |
static class |
LoopTool.ManagedIterator
Iterator implementation that wraps a standard Iterator
and allows it to be prematurely stopped, skipped ahead, and
associated with a name for advanced nested loop control. |
static class |
LoopTool.SyncedIterator
Simple wrapper to make it easy to keep an arbitray Iterator in sync with a LoopTool.ManagedIterator . |
| Field Summary | |
|---|---|
private java.util.Stack<LoopTool.ManagedIterator> |
iterators
|
private LoopTool.ManagedIterator |
last
|
| Constructor Summary | |
|---|---|
LoopTool()
|
| Method Summary | |
|---|---|
protected LoopTool.ManagedIterator |
findIterator(java.lang.String name)
Finds the LoopTool.ManagedIterator with the specified name
if it is in this instance's iterator stack. |
java.lang.Object |
get(java.lang.String key)
This serves two purposes: Getting the current value of a sync'ed iterator Abbreviate syntax for properties of outer loops |
java.lang.Object |
get(java.lang.String name,
java.lang.String synced)
Asks the loop with the specified name for the current value of the specified sync'ed iterator, if any. |
java.lang.Integer |
getCount()
Returns the number of items the current loop has handled. |
java.lang.Integer |
getCount(java.lang.String name)
Returns the number of items the specified loop has handled. |
int |
getDepth()
Returns the number of loops currently on the stack. |
java.lang.Boolean |
getFirst()
Returns the result of isFirst() . |
java.lang.Integer |
getIndex()
Returns the 0-based index of the item the current loop is handling. |
java.lang.Integer |
getIndex(java.lang.String name)
Returns the 0-based index of the item the specified loop is handling. |
protected static java.util.Iterator |
getIterator(java.lang.Object obj)
Wraps access to ClassUtils.getIterator(java.lang.Object) is a
nice little try/catch block to prevent exceptions from
escaping into the template. |
java.lang.Boolean |
getLast()
Returns the result of isLast() . |
LoopTool.ManagedIterator |
getThis()
Returns the most recent LoopTool.ManagedIterator for this instance. |
java.lang.Boolean |
isFirst()
Returns true if the current loop is on its first iteration. |
java.lang.Boolean |
isFirst(java.lang.String name)
Returns true if the loop with the specified name
is on its first iteration. |
java.lang.Boolean |
isLast()
Returns true if the current loop is on its last iteration. |
java.lang.Boolean |
isLast(java.lang.String name)
Returns true if the loop with the specified name
is on its last iteration. |
protected LoopTool.ManagedIterator |
manage(java.util.Iterator iterator,
java.lang.String name)
|
protected LoopTool.ManagedIterator |
pop()
Don't let templates call this, but allow subclasses and ManagedIterator to have access. |
void |
skip(int number)
Skips ahead the specified number of iterations (if possible). |
private void |
skip(int number,
LoopTool.ManagedIterator iterator)
|
void |
skip(int number,
java.lang.String name)
This tells the specified loop to skip ahead the specified number of iterations. |
void |
stop()
This tells the current loop to stop after the current iteration. |
void |
stop(java.lang.String name)
This is just like stop() except that the stop command is issued
only to the loop/iterator with the specified name. |
void |
stopAll()
This is just like stop() except that the stop command is issued
all the loops being watched by this tool. |
void |
stopTo(java.lang.String name)
This is just like stop(String) except that the stop command is issued
both to the loop/iterator with the specified name and all loops nested within
it. |
LoopTool.ManagedIterator |
sync(java.lang.Object main,
java.lang.Object synced)
|
LoopTool.ManagedIterator |
watch(java.lang.Object obj)
Tells the LoopTool to watch the specified Array, Collection, Map, Iterator, Iterable, Enumeration or POJO with an iterator() method while the template iterates over the values within it. |
LoopTool.ManagedIterator |
watch(java.lang.Object obj,
java.lang.String name)
This is just like watch(Object) except that it also takes
a name which is given to the LoopTool.ManagedIterator that is returned. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private java.util.Stack<LoopTool.ManagedIterator> iterators
private LoopTool.ManagedIterator last
| Constructor Detail |
|---|
public LoopTool()
| Method Detail |
|---|
public LoopTool.ManagedIterator watch(java.lang.Object obj)
Tells the LoopTool to watch the specified Array, Collection, Map, Iterator, Iterable, Enumeration or POJO with an iterator() method while the template iterates over the values within it.
Under the covers, this is returning an iterable wrapper that is also pushed onto this tool's stack. That allows this tool to know which iterator to give later commands (i.e. stop() or skip()).
obj
- an object that Velocity's #foreach directive can iterate over
LoopTool.ManagedIterator
that this tool instance will trackpublic LoopTool.ManagedIterator watch(java.lang.Object obj, java.lang.String name)
watch(Object)
except that it also takes
a name which is given to the LoopTool.ManagedIterator
that is returned.
This allows the user to send stop or skip commands to that specific
iterator even when there are nested iterators within it that are being
watched. If the given name is null
, then this will return
null
even if the object can be watched. Provided names cannot
be null
.
watch(Object)
public LoopTool.ManagedIterator sync(java.lang.Object main, java.lang.Object synced)
protected LoopTool.ManagedIterator manage(java.util.Iterator iterator, java.lang.String name)
public void stop()
public void stop(java.lang.String name)
stop()
except that the stop command is issued
only to the loop/iterator with the specified name.
If no such loop is found with that name, then no stop command is issued.
stop()
public void stopTo(java.lang.String name)
stop(String)
except that the stop command is issued
both to the loop/iterator with the specified name and all loops nested within
it. If no such loop is found with that name, then no stop commands are
issued.
stop()
,
stop(String)
public void stopAll()
stop()
except that the stop command is issued
all the loops being watched by this tool.
stop()
public void skip(int number)
LoopTool.ManagedIterator.exclude(Object)
, any elements
skipped are still considered in the results returned by getCount()
and isFirst()
.
public void skip(int number, java.lang.String name)
skip(int)
private void skip(int number, LoopTool.ManagedIterator iterator)
public java.lang.Boolean isFirst()
true
if the current loop is on its first iteration.
public java.lang.Boolean isFirst(java.lang.String name)
true
if the loop with the specified name
is on its first iteration.
public java.lang.Boolean getFirst()
isFirst()
. Exists to allow $loop.first syntax.
public java.lang.Boolean isLast()
true
if the current loop is on its last iteration.
public java.lang.Boolean isLast(java.lang.String name)
true
if the loop with the specified name
is on its last iteration.
public java.lang.Boolean getLast()
isLast()
. Exists to allow $loop.last syntax.
public java.lang.Object get(java.lang.String key)
This serves two purposes:
First, it searches all the loops being managed for one
with a sync'ed Iterator under the specified name and
returns the current value for that sync'ed iterator,
if any. If there is no sync'ed iterators or none with
that name, then this will check if the specified key
is requesting a "property" of an outer loop (e.g.
$loop.count_foo
or $loop.first_foo
).
This syntax is shorter and clearer than $loop.getCount('foo')
.
If the key starts with a property name and ends with an outer loop
name, then the value of that property for that loop is returned.
public java.lang.Object get(java.lang.String name, java.lang.String synced)
public java.lang.Integer getIndex()
skip(int)
ahead in this loop, those skipped iterations will
still be reflected in the index. If iteration has not begun, this
will return null
.
public java.lang.Integer getIndex(java.lang.String name)
skip(int)
ahead in this loop, those skipped iterations will
still be reflected in the index. If iteration has not begun, this
will return null
.
public java.lang.Integer getCount()
skip(int)
ahead in this loop, those skipped iterations will still be included in
the count.
public java.lang.Integer getCount(java.lang.String name)
skip(int)
ahead in this loop, those skipped iterations will still be included in
the count.
public LoopTool.ManagedIterator getThis()
LoopTool.ManagedIterator
for this instance.
This can be used to access properties like the count, index,
isFirst, isLast, etc which would otherwise fail on the last item
in a loop due to the necessity of popping iterators off the
stack when the last item is retrieved. (See VELTOOLS-124)
public int getDepth()
protected LoopTool.ManagedIterator findIterator(java.lang.String name)
LoopTool.ManagedIterator
with the specified name
if it is in this instance's iterator stack.
protected LoopTool.ManagedIterator pop()
protected static java.util.Iterator getIterator(java.lang.Object obj)
ClassUtils.getIterator(java.lang.Object)
is a
nice little try/catch block to prevent exceptions from
escaping into the template. In the case of such problems,
this will return null
.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


Grand Master Meldina:
What is it?
We are occupied with more urgent issues at the moment.
Come again later...


Jang Seoksoon
Welcome to my homepage
Send mail
Here is my
formal resume.
I am
@boraseoksoon
on Github.
I am
@boraseoksoon
on StackOverflow
I am
@boraseoksoon
on Medium.
This is my
Linked-in
page.
Sometimes, I enjoy Programming at
Wishket
.


Watch: M.anifest Teams Up With Burna Boy On New Single “Tomorrow”
by Violet JohnsonIn celebration of his 37th birthday, multi-award-winning Ghanaian rapper, Kwame Ametepee Tsikata better known as M.anifest has released a new single titled “Tomorrow” featuring Grammy Award-nominated artist, Burna Boy off his forthcoming EP “The Gamble”.
I go love you like say tomorrow no dey, Burna Boy sings. This looks like a song that will not just grow on you but become a new love anthem.
As heard, ‘Tomorrow’, which was produced by Drvmroll, is an urgent expression of love over a seamless blend of hip-hop and Afrobeats. Burna Boy comes through with an earworm of a hook in pidgin English which loosely translates as “Tomorrow isn’t promised for any of us, so today I will love you like tomorrow will never exist.”
The video, which opens at a beach resort, seamlessly blends the elements of nature with vintage touches in their attires and props. The visual sees both Burna and M.anifest in their lover boy mode as they attempt to reassure their love interests of unconditional love at every opportunity.
Watch Tomorrow below:
M.anifest’s lyrical gifts and wordplay compliment a smooth baritone delivery and we see him at his most vulnerable in his expression of love and affection towards an amour.
This is the second time this year that M.anifest and Burna Boy are teaming up on unique singles, the first being on Burna’s “Another Story”.


"Polyglot" Language Switcher jQuery Plugin Documentation by Ixtendo, v1.3
Website: www.ixtendo.com · Email<EMAIL_ADDRESS>The "Polyglot" Language Switcher jQuery plugin allows you easily switch between the languages supported by your website. It was conceived as a drop-down menu with flag icons.
All the callback functions have a single parameter which is a simple object with the following properties:
The above parameters can be specified to the library as follows:
… $(this).polyglotLanguageSwitcher({paramName:'language'}); //chaging the language parameter name $(this).polyglotLanguageSwitcher({effect:'slide'}); //chaging the open/close popup effect $(this).polyglotLanguageSwitcher({ //example of multiple configuration paremeters paramName: 'language', effect: 'slide', animSpeed: 150 }); //example of onChange callback function $(this).polyglotLanguageSwitcher({ onChange: function(evt){ alert("The selected language is: "+evt.selectedItem); return true; } }); /* Example of popup closure on a mobile device (e.g., IPad, IPhone, etc.) when the user presses outside it. To implement this, you need to integrate the jQuery touchSwipe library in your website. This library can be found at the following address: https://github.com/mattbryson/TouchSwipe-Jquery-Plugin. */ $(this).polyglotLanguageSwitcher({ afterLoad: function(evt){ $(document).swipe( { click:function(e, target){ evt.instance.close(); } }); } }); …
To use the "Polyglot" Language Switcher in you website, add the following lines of code in the <head> tag of your web page:
<head> … <link href="css/polyglot-language-switcher.css" type="text/css" rel="stylesheet"> <script src="js/jquery-1.7.min.js" type="text/javascript"></script> <script src="js/jquery.polyglot.language.switcher-1.3.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $(this).polyglotLanguageSwitcher(); }); </script> </head>
In the <body> section of your page, add the following lines of code:
<body> … <div id="polyglotLanguageSwitcher"> <form action="#"> <select id="polyglot-language-options"> <option id="en" value="en">English</option> <option id="fr" value="fr" selected>French</option> <option id="de" value="de">German</option> <option id="it" value="it">Italian</option> <option id="es" value="es">Spanish</option> </select> </form> </div> … </body>
When the ‘websiteType’ configuration parameter has the value of ‘dynamic’, after the user changes the language, the newly generated pages must select the option which corresponds to the selected language. For example, if the Italian language was selected, then all the pages generated by the server must select the option with an id of ‘it’.
In the case of static websites (where the pages are pure HTML and aren't generated by a programming language), the selected attribute of the option element will not be taken into account. In this case, the selected value will be stored in the local cache (using HTML5 local storage). It is possible that this case will not work properly on some older browsers which don't support HTML5 local storage.


#include
int main() { printf("Hello World\n"); return 0; }
Press Execute to run the above program
Execute
Hello World!
The quintessential first program for any programming language. And look we can have
bold
and
italics
text here.
.col-xs-12 .col-md-8
.col-xs-6 .col-md-4
Slide 3
Prev
Next


{{define "title"}}Data{{end}} {{define "body"}} {{template "adminmenu" .PageName}}
Posts may be imported and exported as text files matching the example format.
Imported posts will have their author set to
.Posts can be exported to a text file and downloaded.


ONETT is an open source transportation APP, powered by an open and renovated European data transport standard, to provide a better and more accurate information about local trasnportation enterprises across Europe.


The error analysis of the driver routines for the generalized symmetric definite eigenproblem goes as follows. In all cases is the absolute gap between and the nearest other eigenvalue.
The angular difference between the computed eigenvector
and a true eigenvector zi is
The angular difference between the computed eigenvector
and a true eigenvector zi is
The code fragments above replace p(n) by 1, and makes sure neither RCONDB nor RCONDZ is so small as to cause overflow when used as divisors in the expressions for error bounds.
These error bounds are large when B is ill-conditioned with respect to inversion ( is large). It is often the case that the eigenvalues and eigenvectors are much better conditioned than indicated here. We mention three ways to get tighter bounds. The first way is effective when the diagonal entries of B differ widely in magnitude4.1:
The second way to get tighter bounds does not actually supply guaranteed
bounds, but its estimates are often better in practice.
It is not guaranteed because it assumes the algorithm is backward stable,
which is not necessarily true when B is ill-conditioned.
It estimates the chordal distance between a
true eigenvalue
and a computed eigenvalue
:
Suppose a computed eigenvalue of is the exact eigenvalue of a perturbed problem . Let xi be the unit eigenvector (|xi|2=1) for the exact eigenvalue . Then if |E| is small compared to |A|, and if |F| is small compared to |B|, we have
Thus is a condition number for eigenvalue .
The third way applies only to the first problem , and only when A is positive definite. We use a different algorithm:
Other yet more refined algorithms and error bounds are discussed in [14,95,103].


- foo: [1,2]
- There are 1 iterations remaining on the foo object
- Nested item value: 1
- Current iteration of the loop: 0
- Number of iterations until the end: 1
- This is the first iteration
- This is not the last iteration
- Total number of items: 2
- Nested item value: 2
- Current iteration of the loop: 1
- Number of iterations until the end: 0
- This is not the first iteration
- This is the last iteration
- Total number of items: 2
- bar: [3,4]
- There are 0 iterations remaining on the bar object
- Nested item value: 3
- Current iteration of the loop: 0
- Number of iterations until the end: 1
- This is the first iteration
- This is not the last iteration
- Total number of items: 2
- Nested item value: 4
- Current iteration of the loop: 1
- Number of iterations until the end: 0
- This is not the first iteration
- This is the last iteration
- Total number of items: 2


| scatterplot {car} | R Documentation |
This function uses basic R graphics to draw a two-dimensional scatterplot, with options to allow for plot enhancements that are often helpful with regression problems. Enhancements include adding marginal boxplots, estimated mean and variance functions using either parametric or nonparametric methods, point identification, jittering, setting characteristics of points and lines like color, size and symbol, marking points and fitting lines conditional on a grouping variable, and other enhancements.
sp
is an abbreviation for scatterplot
.
scatterplot(x, ...) ## S3 method for class 'formula' scatterplot(formula, data, subset, xlab, ylab, id=FALSE, legend=TRUE, ...) ## Default S3 method: scatterplot(x, y, boxplots=if (by.groups) "" else "xy", regLine=TRUE, legend=TRUE, id=FALSE, ellipse=FALSE, grid=TRUE, smooth=TRUE, groups, by.groups=!missing(groups), xlab=deparse(substitute(x)), ylab=deparse(substitute(y)), log="", jitter=list(), cex=par("cex"), col=carPalette()[-1], pch=1:n.groups, reset.par=TRUE, ...) sp(x, ...)
x |
vector of horizontal coordinates (or first argument of generic function). |
y |
vector of vertical coordinates. |
formula |
a model formula, of the form |
data |
data frame within which to evaluate the formula. |
subset |
expression defining a subset of observations. |
boxplots |
if |
regLine |
controls adding a fitted regression line to the plot. if
|
legend |
when the plot is drawn by groups and |
id |
controls point identification; if |
ellipse |
controls plotting data-concentration ellipses. If |
grid |
If TRUE, the default, a light-gray background grid is put on the graph |
smooth |
specifies a nonparametric estimate of the mean or median
function of the vertical axis variable given the
horizontal axis variable and optionally a nonparametric estimate of the conditional variance. If
|
groups |
a factor or other variable dividing the data into groups; groups are plotted with different colors, plotting characters, fits, and smooths. Using this argument is equivalent to specifying the grouping variable in the formula. |
by.groups |
if |
xlab |
label for horizontal axis. |
ylab |
label for vertical axis. |
log |
same as the |
jitter |
a list with elements |
col |
with no grouping, this specifies a color for plotted points;
with grouping, this argument should be a vector
of colors of length at least equal to the number of groups. The default is
value returned by |
pch |
plotting characters for points; default is the plotting characters in
order (see |
cex |
sets the size of plotting characters, with |
reset.par |
if |
... |
other arguments passed down and to |
Many arguments to scatterplot
were changed in version 3 of car to simplify use of
this function.
The smooth
argument is usually either set to TRUE
or FALSE
to draw, or omit,
the smoother. Alternatively smooth
can be set to a list of arguments. The default behavior of
smooth=TRUE
is equivalent to smooth=list(smoother=loessLine, var=!by.groups, lty.var=2, lty.var=4)
, specifying the smoother to be used, including the variance smooth,
and the line widths and types for the curves. You can also specify the colors you want to use for the mean and variance smooths with the arguments col.smooth
and col.var
. Alternative smoothers are gamline
which uses the
gam
function from the mgcv package, and quantregLine
which uses quantile regression to
estimate the median and quartile functions using rqss
from the quantreg package. All of these
smoothers have one or more arguments described on their help pages, and these arguments can be added to the
smooth
argument; for example, smooth = list(span=1/2)
would use the default
loessLine
smoother,
include the variance smooth, and change the value of the smoothing parameter to 1/2. For loessLine
and gamLine
the variance smooth is estimated by separately
smoothing the squared positive and negative
residuals from the mean smooth, using the same type of smoother. The displayed curves are equal to
the mean smooth plus the square root of the fit to the positive squared residuals, and the mean fit minus
the square root of the smooth of the negative squared residuals. The lines therefore represent the
comnditional variabiliity at each value on the horizontal axis. Because smoothing is done separately for
positive and negative residuals, the variation shown will generally not be symmetric about the fitted mean
function. For the quantregLine
method, the center estimates the median for each value on the
horizontal axis, and the variability estimates the lower and upper quartiles of the estimated conditional
distribution for each value of the horizontal axis.
The sub-arguments spread
, lty.spread
and col.spread
of the smooth
argument are equivalent to the newer var
, col.var
and lty.var
, respectively, recognizing that the spread is a measuure of conditional variability.
If points are identified, their labels are returned; otherwise NULL
is returned invisibly.
John Fox<EMAIL_ADDRESS>Fox, J. and Weisberg, S. (2019) An R Companion to Applied Regression, Third Edition, Sage.
boxplot
,
jitter
, legend
,
scatterplotMatrix
, dataEllipse
, Boxplot
,
cov.trob
,
showLabels
, ScatterplotSmoothers
.
scatterplot(prestige ~ income, data=Prestige, ellipse=TRUE) scatterplot(prestige ~ income, data=Prestige, smooth=list(smoother=quantregLine)) # use quantile regression for median and quartile fits scatterplot(prestige ~ income | type, data=Prestige, smooth=list(smoother=quantregLine, var=TRUE, span=1, lwd=4, lwd.var=2)) scatterplot(prestige ~ income | type, data=Prestige, legend=list(coords="topleft")) scatterplot(vocabulary ~ education, jitter=list(x=1, y=1), data=Vocab, smooth=FALSE, lwd=3) scatterplot(infantMortality ~ ppgdp, log="xy", data=UN, id=list(n=5)) scatterplot(income ~ type, data=Prestige) ## Not run: # remember to exit from point-identification mode scatterplot(infantMortality ~ ppgdp, id=list(method="identify"), data=UN) ## End(Not run)


virsh-help
Display information about `virsh` commands or command groups.
See also: `virsh`.
More information: home page
- List the `virsh` commands grouped into related categories:
virsh help
- List the command categories:
virsh help | grep "keyword"
- List the commands in a category:
virsh help category_keyword
- Show help for a command:
virsh help command


This article describes our experience at QGraph about high velocity data ingestion. It describes how we built version 1 of our data ingestion system (in a day), and how we evolved it over the next 2 years in response to increasingly high velocity of data. The actions we took look simple in retrospect, but they were not obvious when we were implementing them. There were many steps which we took, only to roll them back. If you think we are missing some basic ideas for the improvement, kindly contact me.
Various of QGraph SDKs (for android, iOS and web) send semi structured data about the users to QGraph web servers. Data is sent in JSON format via HTTP POST requests. Data is typically small in size: usually smaller than 1KB, though sometimes it can go as high as 20KB. We want the data to be available for use for other systems within a matter of seconds.
A typical POST body looks like this:
{ "userId":<PHONE_NUMBER>23, "appId": 63adf2dadf2d344, "name": "Vivek Pandey", "hobbies": ["Chess", "Mathematics", "Algorithms"] }
We decided the ingestion system needs to write this data to MongoDB1.
How do we design and implement a high performance and low cost architecture to achieve this?
What follows is the description of the process of iterative improvement that we followed for over an year to make ever improved data ingestion system.
We were just starting out and had no visibility into scaling issues that may arise in
future. We did not try to predict them either. We wrote a simple server in Django
REST framework, which connected to MongoDB on each request and fired a query to
store the data.
This served us well during initial testing, however things started to go bad as soon as the rubber hit the road, i.e. the first client went live.
We saw that in times of peak load, data ingestion was not working properly: it was taking too long to connect to MongoDB and requests were timing out. This was leading to data loss.
This is a common problem: During high load, all the components in the chain are stressed, and the one of the component gives in. One could make the weakest link stronger, but one can do better: introduce a buffer before the weakest component.
Since in our case, it was the MongoDB which was unable to ingest data fast enough, we decided to put a messaging queue before MongoDB system. Enter Kafka.
Why Kafka? Well Google searches led us to believe this is the tool most suitable for our purposes. And we also felt that the fact that we use Kafka will make prospective employees to want to us to join us.
Hah.
So, now, the webserver wrote data to kafka topics. And we wrote a kafka consumer which read the data from the kafka topic and wrote it MongoDB. So, the architecture now looked like the following:
Why is writing to kafka better than writing to MongoDB? It is because when you are writing to kafka, you are writing to the end of a file, which is hightly efficient. Unlike MongoDB (or any database), there are no indexes to be maintained, no degragmentations to be compacted, and no queries to be answered. Produces produce and consumers consumer, that is all.
Now, at the times of peak loads, requests get stored in Kafka while the consumer, limited by the MongoDB, processes them. Thus, at peak time, it takes a few minutes before the data gets to MongoDB. However, it is fine, because these peaks themselves last only a few seconds or minutes, and occur only a few times a day.
We spent some time in choosing optimal settings for kakfa. In particular, we set the batch size, maximum latency and compression as per our needs.
OK. This is fairly basic. We were not using connection pooling so far. For each update to the database, a connection was opened, request was made and the connection was closed. We moved to connection pooling, and this led to slight decrease in CPU utilization of mongo machine, and a large decrease in the default mongo logging (which logs one line per connection open/close).
Once we had a few clients, we started worrying about data loss. What if the Mongo machine went down, never to come up again? Or else we somehow corrupted the data beyond repair? Or if, by mistake someone deleted an entire customer's database?
To guard against such occurrences, we started taking daily backups of our database to S3. As time went, daily backups became too heavy, and then we started daily incremental backups, i.e. we take backup of only that part of the data which is either new or modified. This is what the architecture looks like after this.
With using Kafka as a buffer between the web server and mongo machines, the system was quite stable. However, we were using a fleet of webservers, and thought we could bring down the fleet size by using Java as the language rather than Python. Python had helped us getting everything running quickly, but now we required more performance. Thankfully, the web server code was pretty straightforward: just read the post body, do some simple validations and put a message in a kafka topic. We chose Jetty as the framework of choice (partly because in my previous company people had worked on Jetty based web servers). As we had expected (and described in detail here), we reduced CPU utilization of our web servers drastically:
Now, our architecture looked like:
Things went fine for a few months, when we started facing a fresh problem. The problem was that periodically, kafka consumer was way (sometimes hours) behind the producer, i.e. we were unable to put data to MongoDB as the rate at which was arriving. Again, this happened when there was a spike in the incoming data rate. It usually happened when a large client sent push notifications to all their users. In that case a large number of users open the app within a small window of time, causing an increase in the event rate on our servers. Couple it with the fact that MongoDB could be getting queried by some other subsystems while it is ingesting data at a high rate. In such a situation, both the ingestion and the querying came to a standstill.
We could always move to mongo machines with more memory (so that more indexes could be in-memory), but turns out that there was a software solution to keep us going:
We realized that bulk operations to mongo were more performant that individual operations.
We wrote a module, called mongo query aggregator, which provide similar interface to other mongo drivers, but which aggregated the write queries and fired them to mongo either when threshold number of queries were collected or when a threshold amount of time (few hundres of milliseconds) had elapsed. This again reduced CPU utilization of mongo and mongo was able to ingestion spiked data in a graceful way.
After introducing query aggregator, our architecture looked like this:
We released our mongo query aggregator on github. You can access it here To install it, simply run
pip install moquagon your system
As you may have noticed till now: MongoDB has been continually the weak point all along. That is expected, since MongoDB is a busy system: on the one hand it is ingesting data in realtime, on the other hand it is being queried by dozens of other subsystems. Thus, a large part of the effort is around reducing the laod to MongoDB. We have done a lot of work around reducing the readread query workload of MongoDB, but that is a separate topic.
A few months after the previous change, as the ingestion rate and query rate increased again we started having the kafka lag problems again: at times, consumer would be behind the producer by as much as a few hours. Incidence of such problems rose from infrequent (once every four weeks) to mildly frequent (once a week). At the time of large read queries, the ingestion system would be too slow and it would take a lot of time for data to reach from kafka to MongoDB.
Fortunately, we had a weapon to attack this problem. That weapon is the CS engineers' favorite weapon: Caching.
We realized that a lot of data that we were getting was repeated data. For a given user, we got his profile information as many times as he did some action. The profile information that we got contained information like the name, email or the city of the user. This information tends to change very slowly, but we wrote it to MongoDB repeatedly. To reduce the query rate to MongoDB, we put an aerospike cache in front of MongoDB. As we write some information to MongoDB, we also wrote it to aerospike. However, before writing info to MongoDB, we checked in aerospike if the same information was present already. If yes, we did not bother to write the information in MongoDB. This optimization reduced the MongoDB queries by around 60%.
Along the way we also realized that not all data is equal. For some types of data it was important to get it to MongoDB as soon as possible. Other type of data could wait. Thus, we started from putting data in two different queues from the producer. When there was delay in getting data to Mongo, we could shutdown the consumption of lower priority queue, thus ensuring that high priority data reaches mongo on time. Once the peak traffic was over, we would start consuming the lower priority queue.
This is data ingestion story till now. Our system continues to evolve.
Following are some action items we can take up in future to further optimize our data ingestion system
Data ingestion system began with a simple 30 line django code, and by now it has expanded to thousands of lines of code, with multiple systems running on various machines. When we began we did not know how the system will evolve, and we did not try to predict the problems that would happen. However, we kept our eyes and ears open and solved the problem as they came.
Footnotes
1. Yes, I know MongoDB can lose data. I know I should use MySQL. Thanks for your concern.


Context
public struct Context
The minimal information needed to reference a span in a trace. The context represents the node (span) in a Trace without the relationships to other nodes.
-
Creates a new Context from the trace and span ids.
Declaration
Swift
public init(traceId: UUID, spanId: UUID)
Parameters
traceId
The date at which the event occurred.
spanId
The information associated with the event.
-
The unique number that identifies the (unique) trace in which the node (span) is part of.
Declaration
Swift
public let traceId: UUID
-
A unique number to identify a span.
Declaration
Swift
public let spanId: UUID


To get started:
$ jets generate scaffold post title:string
$ jets db:create db:migrate
$ jets server
$ open http://localhost:8888/posts
$ jets help
More on info: rubyonjets.com
Also check out the Jets CLI reference.
Jets version: 3.0.11
Ruby version: 2.7.2


Dependencies
License
- The code of this tutorial, including the DayPilot Pro library, is licensed for testing and evaluation purposes. See also the DayPilot trial license (LicenseAgreementTrial.pdf). You can use it for development and production purposes if you are a licensed user of DayPilot Pro for JavaScript. Buy a license.
- This tutorial may include third-party libraries which are available under licenses listed in "license/thirdparty" directory.
Links
History
- Feb 9, 2018: Context menu added
- Feb 5, 2018: Initial release


| Sections | |
| Users - add - list | |
| Venues - add - list | |
| Tours - list | |
| Booking - add | |
| Booking Progress - sheet | |
| Booking Pencil - sheet | |
| Booking - report - deal sheets | |
| Tour & Tick - sheet | |
| Print Sheets - add - list | |
| Sales Figures - sheet | |
| Venue History - sheet | |
| Venue History - search | |
| Timeline - sheet |