text:
|Publication number
|Publication type
|Application number
|Publication date
|Dec 14, 2010
|Filing date
|Jan 4, 2005
|Priority date
|Jan 4, 2005
|Fee status
|Also published as
|Publication number
|Nick M. Mitchell, Gary S. Sevitsky, Herbert G. Derby
|Original Assignee
|International Business Machines Corporation
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (7), Non-Patent Citations (4), Referenced by (18), Classifications (7), Legal Events (5)
|External Links: USPTO, USPTO Assignment, Espacenet
Not Applicable.
Not Applicable.
Not Applicable.
The invention broadly relates to the field of information processing systems and more particularly relates to the field of processing very large graphs.
Analyzing large amounts of data in a computer system, which by its nature has a limited amount of processing resources available, has long been a challenge in computer science. In one particular example, finding a program bug that causes a system to run out of memory is difficult because performing the analysis requires memory in which to store analytic data and make computations related to the analysis. While the solutions described herein are particularly exemplified in terms of such a computer memory analysis, it will be clear to one of ordinary skill in the art that the solution provided by the present invention is equally applicable to other types of analytic tasks involving very large graphs.
Memory analysis has become an important area of focus for information processing systems. Problems such as excessive memory footprint or unbounded memory growth over time are common causes of system slowdown and failure. For large-scale systems, understanding the behavior of a program's memory usage over time, and finding the root cause of memory allocation problems, may be difficult with currently available techniques. One area of particular concern is that of "memory leaks." A memory leak may be understood generally to be a bug in a computer program which causes the program to acquire memory from the system, but never return that memory to the system. Such a program, running long enough, will eventually consume all the memory of the system, causing the system to fail. A program bug of this type is often called a "memory leak" by those of skill in the art. This problem may occur in programs written in any computer programming language, but is particularly described herein in terms of the Java programming language, by way of example. Various concepts of mathematics and computer science are required to understand the present invention. The following sections introduce some of these concepts, and references for other sources are incorporated into this description.
Memory Leaks
An object is a construct of a computing machine. To instantiate an object, a computer allocates a portion of its memory in which to store the object. During operation of a computer, objects are continually created, used and become obsolete. As computer memory is generally limited, resources assigned to obsolete objects (objects no longer required by any other existing object) must be collected and returned to the system for reuse. Unlimited object generation and/or growth without object destruction obviously leads to an unsustainable system. Some computer programming languages, such as Java, ML, and LISP, provide no mechanism for immediate release of memory resources. Furthermore, programming errors, program design flaws, use of libraries and frameworks, program complexity, multitasking and other factors contribute to the inevitable problem in large and complex programs of "memory leaks," i.e., unintentional and unconstrained growth of the memory resources allocated to a program. Memory leaks lead to poor performance and often to program "crashes."
Despite the automatic garbage collection of objects in the Java computer programming language, in which the Java Virtual Machine attempts to recover improperly managed memory, memory leaks remain a significant problem for many Java applications. A memory leak occurs in a Java program when the program inadvertently maintains references to objects that are no longer needed, preventing the garbage collector from reclaiming that memory. Memory leak problems are easy to spot, but are often difficult to solve. The likelihood that a memory leak exists may be determined by using black box analysis, such as by monitoring the memory heap after each round of garbage collection. When each round of garbage collection frees less and less memory space, until the application grinds to a halt for lack of memory, a memory leak is the likely culprit.
Memory leak analysis may be performed using tools which represent objects, such as Java objects, and their relationship to other objects using graphs. Understanding the graphs and seeing patterns in the graphs can lead a programmer to the particular error in a computer program which is causing the memory leak. Unfortunately, the number of objects and size of the resultant graphs makes it prohibitive to interpret these graphs manually. Aspects of the programming language, particularly Java, may also complicate the problem of memory leak analysis. For example, Java includes the concept of a "finalizer," which may be created by a protected method of the class "object," and which allows the programmer to define "clean up" operations to be performed automatically when an object is to be destroyed or collected as garbage. A finalizer instance may appear in a memory image ("snapshot") to be maintaining a link to an object that keeps the object "alive," but which is not the likeliest source of a memory leak associated with an object. Understanding these types of constructs, and their use in memory leak analysis, is instructive in understanding the present invention.
Some Preliminary Concepts in Computer Science and Mathematics
In mathematics and particularly in computer science, a graph is often defined as an abstract description or organization of data, represented as a set of items connected by edges. Each item is called a vertex or node. An edge is a connection between two nodes of a graph. In a directed graph, an edge goes from one node, the source, to another node, the target, and hence makes connection in only one direction. Formally, a graph is a set of nodes and a binary relation between nodes. A graph can be understood as a set of objects (nodes) and the relationships (edges) between them.
In computer science, a tree is a graph-type data structure which may be said to have a root node, and one or more additional nodes. Each additional node is either a leaf (a terminal node) or an internal node representing a "sub-tree." A tree may be understood to be a connected, undirected, acyclic graph, with a root and ordered nodes.
As generally used in computer science, a node N in a graph dominates another node M in that graph when all paths from the graph roots to M must include N. (A graph root may be defined as a node without a predecessor.) In computer science applications these nodes may represent statements in computer program code, basic blocks in program code, or instances in an object reference graph. Conventionally, it is said that an object dominates itself. Note that a single object may have multiple dominators. The concept of an immediate dominator may sometimes be more useful. An immediate dominator is a unique object that dominates another object, while not dominating any other dominator of the first object. A tree where each object's parent is its immediate dominator may be called a dominator tree.
A heap may be defined as an area of memory used for dynamic memory allocation where blocks of memory are allocated and freed in an arbitrary order and the pattern of allocation and size of blocks is not known until run time. Typically, a program has one heap which it may use for several different purposes.
A graph snapshot may be described as a set of nodes, type definitions, and relations between these two; both the nodes and the types have unique identifiers. For example, the snapshot may relate nodes to nodes, in which case it defines edges; it may also relate nodes to types, in which case it may either classify the nodes by capability or by dynamic state. Of particular interest are the dynamic states associated with specially-identified roots of the graph; that is, nodes that aren't graph roots because they have predecessors in the edge relation, but, for reasons external to the process that created the graph, have been asserted to be pointed to be nodes that do not appear in the node set. For example, objects in Java that are held by a lock at the time the snapshot is acquired may have such an annotation. Each node or type may come with a set of associated annotations; example annotations include size, age, and name.
A population snapshot is that proper subset of a graph snapshot that excludes the edge relation. Thus, collecting, storing, and reading a population snapshot should always be cheaper than doing likewise on the corresponding graph snapshot. In this way, a process that takes as input a population snapshot, rather than a graph snapshot, is doing in the interests of efficiency, not necessity. Vice versa, some aspects of an embodiment may require the full information of a graph snapshot.
Whether in a population snapshot or graph snapshot, the term snapshot indicates a point-in-time view of a possibly changing graph. Therefore, it may be understood that the snapshots may be totally ordered in time. A sequence of snapshots may thus be a series of snapshots ordered in time.
If a node has a certain identity in one snapshot of a sequence, then nodes in other snapshots of the same sequence with the same identifier are the same node. In other words, a uniqueness of identifiers should be maintained across the snapshots.
When considering a sequence of snapshots, one may identify the first snapshot that contains a particular node. Thus, a node's age may be estimated from a sequence of snapshots. This kind of age is a generational view of age, as opposed to one that ages nodes by wall-clock time since creation. Alternatively, a graph snapshot may include age annotations reflecting the age of objects represented in the graph. For simplicity of example, it may be assumed that such ages are generational. A node may be considered nascent if its age is that of the newest generation of nodes.
A node may be described as being on the fringe in a graph snapshot if it is nascent and its immediate owner is not. Our prior patent application, U.S. patent application Ser. No. 10/1073,848, defined the concept of a "change proxy": a data type located in a particular place in the dominator forest of a graph snapshot, where nodes that match this pattern are part on the wavefront of some change in a graph. While that application also gave a process for finding change proxies in a series of snapshot, the current one relies only on that definition. Any process that may identify change proxies may be compatible with the present invention described herein.
These constructs, and others described herein, would be familiar to one of ordinary skill in the art as it relates to the present invention.
Tools for Diagnosing Memory Leaks
A number of diagnostic tools exist to help programmers determine the primary cause of a memory leak. Programs generally obtain memory for creating objects during execution from a memory heap. Memory leak diagnostic tools rely on obtaining snapshots of the memory heap for analysis. The solution offered by these tools often requires differencing heap snapshots, then tracking allocation and/or usage at a fine level of detail. However, these techniques are not adequate for large-scale, enterprise applications because of the amount of memory resources required to hold multiple snapshots of the memory heap.
Many existing memory management tools work by dividing a program heap into old objects and newer objects, under the assumption that the older objects are more likely to be permanent.
To diagnose a memory leak, a programmer must look for a set of candidate data structures that are likely to have problems. Finding the best data structures on which to focus is difficult. As discussed herein, when exploring reference graphs (representing currently "live" objects and their references) of large application programs, issues of noise, complexity, and scale make this a daunting task. For example, e-business servers intentionally retain a large number of objects in caches. Existing analytic approaches require that the programmer manually distinguish these cached objects from truly "leaky" ones. In general, these approaches swamp the programmer with too much low-level detail about individual objects, and leave the programmer with the difficult task of interpreting detailed information in complex reference graphs or allocation paths in order to understand the larger context. This interpretation process requires a lot of expertise and many hours of analysis in order to identify the actual object which is causing a memory leak. Moreover, these techniques may perturb the application program so much as to be of little practical value, especially in production environments, making them inadequate for memory leak detection in enterprise systems.
Many application programs have properties, common to many Java applications, which make memory leak diagnosis especially difficult. These applications make heavy use of reusable program frameworks and code libraries, often from varied sources. These framework-intensive applications contain large amounts of program code in which the inner workings are not visible to application program developers, let alone those doing memory leak diagnosis. Server-side e-business applications make use of particularly large frameworks, and introduce additional analysis difficulties due to their high degree of concurrency, scale, and long-running nature.
Existing tools have been used to help diagnose leaks. For example, the Java H Profiler tool (HPROF) works by categorizing each object according to its allocation call path and type. As the program runs, HPROF makes "notes" of every object allocation: it remembers the call stack of the allocation and the allocated datatype. In this way, HPROF assigns a data pair (STACK, TYPE) to each allocated object. As the program runs, it records statistics of these data tuples. For example, it records how many allocations map to each tuple, and how many allocated, but not yet freed allocations, map to a tuple. Then, when the program completes (or when the tool user requests), HPROF sorts the histogram by the "live" statistic, and prints out the current top-N entries
Alternatively, some recent work uses static semantics to enforce and detect ownership using ownership types. Data structures are said to be composed of the objects they "own." Thus, to diagnose a memory leak, one must identify the data structures which own leaking objects.
Data Structure Complexity
Knowing what type of leaking object predominates in a program, often a low-level type object such as a character string (String), does not help explain why a memory leak is occurring, because Strings are likely to be used in many contexts, and even may be used for multiple purposes within the same high level data structure such as a Document Object Model (DOM) document. In addition, presented with the context of low-level leaking objects, the programmer analyst may easily get lost trying to identify a source of the leak. For example, a single DOM object may contain many thousands of sub-objects, all with a rich network of references among them. Without knowledge of the implementation of the DOM framework, it is difficult to know which paths in the reference graph to follow, or, when analyzing allocation call paths, which call site is important to the memory leak analysis.
Scalability Considerations
When studying graphs with a very large number of nodes and edges, issues of scalability may not be ignored. The types of analyses enabled by the present invention include typical graph analyses that compute relations between nodes or edges (such as computing dominance or "reachability"), analyses performed by programmers (by presenting the graphs visually), and other specialized analyses (such as analyzing graphs to determine the way in which nodes are growing). To be useful, whether done automatically or by visual inspection, the analysis should complete in a reasonable amount of time and space, without losing details critical for the analysis at hand.
For example, consider the problem of analyzing graphs with twenty million nodes and forty million edges on a machine with one gigabyte of memory. To fit every node and edge into that machine's memory, the analysis needs to constrain every node and edge to occupy no more than 18 bytes each. This number may be further restricted by the space required for the analysis itself, and the overhead requirements that come with analysis environments today (e.g., the Eclipse integrated development environment for a large-scale software project may reach several hundred megabytes). This, and other baseline constraints, quickly lower this requirement to below ten bytes per node and edge. As an example, the Hyades trace model requires about sixty (60) bytes for every Java object. Similarly, to fit this scale of graphs onto a visual display with two megapixels would require at least thirty-two (32) "pages" worth of scrollable area, in both dimensions.
Present solutions to the problem of analyzing single, large graphs include: visual graph layout, node and edge clustering/classification, graph compression, node and edge elision, and statistical (i.e., large sample set) analysis. One important aspect of these solutions is the level of scalability of the subsequent analysis which they allow. All other things being equal, this aspect should be optimized. However, there's another important property of these approaches that works against ultimate scalability: the extent to which the approach preserves certain topological properties of the initial graphs. For example, if an analysis needs the identity of nodes or the reachability or dominance relations to be preserved, then certain of these approaches won't help: aggregation, which maps the nodes and edges to feature vectors (and thereby eliminates the nodes and edges entirely), or compression, which generates new nodes that represent whole sub-graphs in the initial graph. To further constrain matters, certain analyses require data from more than one graph. For example, an analysis of how graphs grow over time, such as graphs used in diagnosing memory leaks, may benefit from the study of multiple snapshots of that graph's state over time.
The following articles provide additional information useful to understanding the problems presented here, and to that effect are herein incorporated by reference. Inderjeet Mani and Eric Bloedorn, "Summarizing Similarities and Differences Among Related Documents," Journal of Information Retrieval, volume 1, pp. 35-107; Graham J. Wills, "Nicheworks: Interactive Visualization of Very Large Graphs," Journal of Computation and Graph Statistics, volume 8, number 2, pp. 190-212; Anna C. Gilbert and Kirill Levchenko, "Compressing Network Graphs," Workshop on Link Analysis and Group Detection, 2004; Neoklis Polyzotis and Minos Garofalakis, "Structure and Value Synopses for XML Data Graphs," The Proceedings of the 28th Very Large Data Bases Conference.
In addition, the following U.S. patent applications are herein incorporated by reference: Nick Mitchell and Gary Sevitsky, U.S. patent application Ser. No. 10/1073,848, Automated, Scalable, and Adaptive System for Memory Analysis via the Discovery of Co-Evolving Regions; and Nick Mitchell and Gary Sevitsky, U.S. patent application Ser. No. 10/1073,837, Automated, Scalable, and Adaptive System for Memory Analysis via Identification of Leak Root Candidates.
New Approaches are Needed
It is apparent from the discussion above that existing approaches provide little assistance in memory leak analysis. Existing approaches require that tools or users either model everything in the graph, which doesn't work because resources are constrained, or enforce some fixed summarization policies, which does not provide the flexibility needed to solve such complex problems. Programmers must rely on their own often limited knowledge of how applications and frameworks manage data in order to segregate objects by the likelihood of being the source of memory leakage. Therefore, there is a need for a system that overcomes the drawbacks discussed above.
Various aspects of the present invention may be illustrated by a method, information processing system, and computer readable medium for annotating very large graphs to allow for subsequent quick loading and analysis. The present invention encompasses a way to order and annotate nodes of a graph into a data stream that allows for optimization of subsequent processing of nodes in later analysis. For example, a very large reference graph representing heap snapshots may be annotated to facilitate post-processing and visualization of the graph for memory leak analysis. In such an example, the present invention reduces the number of objects and references to be modeled in memory, while still capturing the essence of the non-modeled portions. In this example, the present invention may process reference graphs on the scale of one hundred million live objects per snapshot using a computer with one gigabyte of memory.
Given an input of a pair of object reference graphs, the present invention produces an ordered graph with annotations for each object which are ordered in way that allows the subsequent analysis to process the resultant graph using a streaming, one-pass loader, which greatly reduces the memory required to analyze a very large graph. This is accomplished by identifying a key set of attributes which are synthesized from its constituent objects and inherited from the object owners. This method relies on an annotation policy, which may be altered based on the analysis to be performed. The solution of the present invention is scalable to very large graphs.
According to the present invention, an information processing system is described which implements the above method on a general purpose computer system. A computer readable medium encompassing the present invention is also described.
The subject matter, which is regarded as the invention, is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features, and also the advantages of the invention, will be apparent from the following detailed description taken in conjunction with the accompanying drawings. Additionally, the left-most digit of a reference number in the accompanying figure identifies the figures in which the reference number first appears.
The present invention provides a method, computer readable medium and information processing system for annotating graphs to allow quick loading and analysis of very large graphs, as described herein. In the following description, numerous specific details are set forth by way of exemplary embodiments in order to provide a more thorough description of the present invention. It will be apparent, however, to one skilled in the art, that the present invention may be practiced without these specific details. In other instances, well-known features have not been described in detail so as not to obscure the invention. The preferred embodiments of the inventions are described herein in the Detailed Description, Figures and Claims. Unless specifically noted, it is intended that the words and phrases in the specification and claims be given the ordinary and accustomed meaning as understood by those of skill in the applicable art. If any other meaning is intended, the specification will specifically state that a special meaning is being applied to a word or phrase.
The architecture of an information processing system of the present invention may include some or all of the following provisions. This description is provided for illustration alone. The present invention would encompass many changes to this architecture. While the following description contains numerous specific details, such as annotation examples, demonstrative representations of graphs, example problem sets, and architectural elements or algorithms details, these details are described only to provide a more thorough description of the present invention. The invention is not intended to be limited to these specific details.
Factors in Very Large Graph Analysis
This description includes embodiments intended to assist in understanding how very large graphs change over time. The present invention includes at least one embodiment for understanding a particular type of very large graph, an object reference graph used to diagnose memory leaks. The invention provides a method to allow multi-snapshot analyses in a constrained memory environment which maintains node identity through iterative annotation and containment of node and edge data. Because the representation of each node or edge of an object reference graph may be made only so small before running into space constraints, a high degree of flexibility in the method is provided. Because the present invention orders and annotates nodes of the input graphs without excluding any nodes from its output stream, it provides flexibility to the subsequent analysis process to consider which nodes or edges are important at any point during the subsequent analysis.
The present invention may be understood to comprise at least the following steps, as illustrated as in
Graph Representation
One problem to be solved in preparing an output data stream representing an annotation and containment of very large graphs is how to represent the graph's nodes and edges in memory without requiring even more memory than the input graph itself requires. One solution is for the process to "stream" through the nodes and edges, performing the entire analysis task without creating an intermediate representation of the very large graph (in this example, a heap snapshot). Certainly some types of analyses would behave well with a streaming model. For example, generating a histogram of nodes based on some attribute of the nodes could be done without using an intermediate representation of the underlying graph. However, many others types require an intermediate form, for efficiency reasons and because the analysis must perform several passes over some subset of nodes and edges of the very large graph.
How may an intermediate representation of the nodes and edges of a very large graph fit into reasonable space constraints? One way would be to minimize the cost per represented element. However, if space costs per element are minimized (e.g., one screen pixel for each representation, or ten bytes of memory each), the memory required to represent the entire graph may still exceed the available resources. It may be preferable to find a way to reduce the number of represented elements, not the size per represented element.
For an analysis that requires an intermediate representation, a process that allows the representation to be decomposed into a series of sequential sub-analyses, each of which represents only a small subset of all elements of the graphs, is preferred. To do this, the solution may utilize a policy regarding which nodes and edges are necessary for the analysis, and implement that policy as the process streams through the set of all available nodes and edges. A policy, in this sense, is information that guides the present invention in identifying annotations to be created for nodes and edges to be represented in the output data stream.
The Multiple Ownership Dilemma
A further complication to memory leak analysis, and other problems which may be solved by the present invention, is that a node in a series of graph snapshots may exhibit multiple ownership; that is, a node may be a root of the dominator forest, but it may not be a root of the graph. In reducing the relationships between nodes of the graph, a single node must be selected as the owner of the multiply-owned node. For example, there are two graph shapes that may lead to a problem in resolving the dominator relation: one is "V-shaped" graphs. In a graph where node a and node c both "own" node b (and thus may be represented in a "V" shape) the dominator forest will indicate a, b, and c as roots. The second problem may arise with "diamond-shaped" graphs. In a diamond-shaped graph, the node at the tail of the diamond is owned by the node at the head of the diamond, in which case there will be a dominator edge that isn't an edge in the original graph.
As often happens in Java programs, when an object O is shared by two data structures D1, D2, which can be said to dominate O? If D1 and D2 are part of just one higher level data structure H, then the classic dominator relation will indicate that shared object O is only dominated (owned by or related to) H. In determining data structures evolution, this relation is misleading, because D1 and/or D2 may be the cause of a memory leak in O, yet the dominator tree would indicate H as the only source of leak by O. There is also a problem when D1 and D2 are not owned by a common higher level data structure. In that case, the classic dominator relation will indicate that O is related to nothing (except itself, because by definition every object dominates itself). This representation would be even more misleading for memory leak analysis.
Therefore, for multiply owned nodes, the present invention may make use of a collection of heuristics to choose one of the incoming edges of the node, and assign the related parent as a node's immediate dominator. The term "immediate owner" may indicate an immediate dominator in the classical sense, except in the case where a heuristic of the present invention is applied. In the case of a V-shaped or diamond-shaped immediate dominator relation, the present invention may apply a heuristic to select a more appropriate parent in the containment relation. This modified dominator relation is referred to herein as an 'ownership' relation.
Therefore, it is desirable to solve this "multi-ownership" dilemma. A heuristic approach may be implemented to choose one of D1 or D2 as the owner of O. The heuristics may rank D1 and D2 based on which is more likely to be an informative owner; e.g., not an artifact of the programming language, such as the finalizer queue of Java, and preferring permanent roots as owner instead of on-stack, transient roots.
Creating the Data Stream
As described above, one form of input to the present invention may be a sequence of population snapshots and a single graph snapshot of memory heaps that are used to analyze memory leaks.
Re-Naming Nodes
The process of the present invention traverses a graph's edge relations, from the root nodes in a depth-first fashion to determine a node's temporal and positional annotations. These computations are illustrated in
One type of node of particular interest, and which required particular identification, is root nodes. In the present invention, root nodes may be identified by Step 904. For the purposes of this process, root nodes may be identified as those nodes with no incoming edges, nodes with an a priori designation as roots, and nodes that are elements of a strong-connected component, no constituent of which component has an a priori root designation, nor an incoming edge emanating from outside said component.
An example of the process of naming nodes using their edge relations may be seen in
Ordering Nodes
Having identified the nodes and computed the dominator relation over the input graph snapshot, the present invention may next order the nodes into an output stream by traversing the dominator forest, starting from the forest roots and in depth-first order. The traversal produces an output data stream as ordered by the following process.
A sub-tree is identified using particular markers inserted into the output data stream. For example, if an open parenthesis "(" indicates the node at the top of a sub-tree and a closed parenthesis ")" indicates the end of that sub-tree. In one embodiment of the invention, parentheses may be used as the marker. Other embodiments may select other markers. In the example using parenthesis as a marker, the invention may thus generate a "parenthesized" form of the graph, where nesting indicates the dominator relations.
The next entry in the data stream indicates the beginning of new root node 204, represented here by "(3", and its annotations in row 406 of
Annotating Nodes
The present invention may relate various annotations with each node according to an annotation policy. In one embodiment the invention may use various annotations for each node, as exemplified below. To reduce the bandwidth required for the output stream, alternative embodiments may not utilize all of these example annotations. However, as described below under Analyzing The Data Stream For Memory Leaks, it may be seen that the annotations A5-A10 may be of highest importance for the purpose of reducing the space and time required for subsequent analysis.
The A7, A8, A10 annotations are exclusive and complete: a node either owns only nascent nodes (A7), or it owns only non-nascent nodes (A8), or it owns a combination of the two. In the latter case, it must own some nodes on the fringe, on the boundary between non-nascent and nascent. By the definitions provided in U.S. patent application Ser. No. 10/1073,848, that node must own objects with the change proxy property (A10).
Analyzing the Data Stream for Memory Leaks
Through the foregoing, the annotated nodes have been processed into an output data stream. The processing may depend on the process' current state as governed by the annotations and a finite state machine of the invention. As such, the process may choose a policy such that it models only a small fraction of the nodes and edges. Using such a policy, the process need only model change proxy instances, possibly the ownership chain from those instances to the roots, and possibly an aggregate summary of the objects owned by those change proxy instances. Actual memory leak analysis is not the subject of the present invention, but may be performed using tools well known to those of ordinary skill in the art using the output of the present invention as input to these analysis tools.
A Computer System for Carrying Out the Present Invention
The present invention may be realized in hardware, software, or a combination of hardware and software. A system according to a preferred embodiment of the present invention may be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system—or other apparatus adapted for carrying out the methods described herein—is suited. A typical combination of hardware and software could be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
An embodiment of the present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which—when loaded in a computer system—is able to carry out these methods. Computer program means or computer program in the present context mean any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or, notation; and b) reproduction in a different material form.
A computer system may include, inter alia, one or more computers and at least a computer readable medium, allowing a computer system, to read data, instructions, messages or message packets, and other computer readable information from the computer readable medium. The computer readable medium may include non-volatile memory, such as ROM, Flash memory, Disk drive memory, CD-ROM, and other permanent storage. Additionally, a computer readable medium may include, for example, volatile storage such as RAM, buffers, cache memory, and network circuits. Furthermore, the computer readable medium may comprise computer readable information in a transitory state medium such as a network link and/or a network interface, including a wired network or a wireless network, which allow a computer system to read such computer-readable information.
The computer system may include a- display interface 1008 that forwards graphics, text, and other data from the communication infrastructure 1002 (or from a frame buffer not shown) for display on the display unit 1010. The computer system also includes a main memory 10010, preferably random access memory (RAM), and may also include a secondary memory 1012. The secondary memory 1012 may include, for example, a hard disk drive 1014 and/or a removable storage drive 10110, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. The removable storage drive 1110 reads from and/or writes to a removable storage unit 1018 in a manner well known to those having ordinary skill in the art. Removable storage unit 1018, represents a floppy disk, a compact disc, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 10110. As will be appreciated, the removable storage unit 1018 includes a computer readable medium having stored therein computer software and/or data.
In alternative embodiments, the secondary memory 1012 may include other similar means for allowing computer programs or other instructions to be loaded into the computer system. Such means may include, for example, a removable storage unit 1022 and an interface 1020. Examples of such may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 1022 and interfaces 1020 which allow software and data to be transferred from the removable storage unit 1022 to the computer system.
The computer system may also include a communications interface 1024. Communications interface 1024 allows software and data to be transferred between the computer system and external devices. Examples of communications interface 1024 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via communications interface 1024 are in the form of signals which may be, for example, electronic, electromagnetic, optical, or other signals capable of being received by communications interface 1024. These signals are provided to communications interface 1024 via a communications path (i.e., channel) 10210. This channe110210 carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link, and/or other communications channels.
In this document, the terms "computer program medium," "computer usable medium," and "computer readable medium" are used to generally refer to media such as main memory 10010 and secondary memory 1012, removable storage drive 10110, a hard disk installed in hard disk drive 1014, and signals. These computer program products are means for providing software to the computer system. The computer readable medium allows the computer system to read data, instructions, messages or message packets, and other computer readable information from the computer readable medium.
Computer programs (also called computer control logic) are stored in main memory 10010 and/or secondary memory 1012. Computer programs may also be received via communications interface 1024. Such computer programs, when executed, enable the computer system to perform the features of the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor 1004 to perform the features of the computer system. Accordingly, such computer programs represent controllers of the computer system.
What has been shown and discussed is a highly-simplified depiction of a programmable computer apparatus. Those skilled in the art will appreciate that other low-level components and connections are required in any practical application of a computer apparatus capable of performing the described invention.
Thus, a method, computer readable medium, and information processing system for annotating graphs to allow quick loading and analysis of very large graphs has been described. Various changes and modifications may be made in carrying out the present invention without departing from the spirit and scope thereof. Insofar as those changes and modifications are within the purview of the appended claims, they are to be considered as part of the present invention.
|Cited Patent
|Filing date
|Publication date
|Apr 2, 1997
|May 16, 2000
|Control flow and memory management optimization
|Jun 11, 1999
|Jul 30, 2002
|University Of Washington
|System and method for performing selective dynamic compilation using run-time information
|Oct 14, 2003
|Dec 4, 2007
|Microsoft Corporation
|Data referencing within a database graph
|Dec 12, 2002
|Apr 22, 2004
|Cirne Lewis K.
|Locating potential sources of memory leaks
|Sep 30, 2003
|Mar 31, 2005
|Reimer Darrell Christopher
|Program analysis tool presenting object containment and temporal flow information
|Mar 11, 2004
|Sep 15, 2005
|International Business Machines Corp.
|Method, system and article for detecting memory leaks in Java software
|Dec 7, 2004
|Jun 8, 2006
|International Business Machines Corporation
|System and method for scalable and improved profiling of software programs
|Anna C. Gilbert, Kirill Levchenko, "Compressing Network Graphs," Workshop on Link Analysis and Group Detection, 2004.
|Graham J. Wills, "Interactive Visualization of Very Large Graphs," Journal of Computational and Graphical Statistics, vol. 8, No. 2, pp. 190-212.
|Inderjeet Mani, Eric Bloedorn, "Summarizing Similarities and Differences Among Related Documents," Journal of Information Retrieval, vol. 1, pp. 35-67.
|Neoklis Polyzotis, Minos Garofalakis, "Structure and Value Synopses for XML Data Graphs," in the Proceedings of the 28th Very Large Data Bases Conference.
|Citing Patent
|Filing date
|Publication date
|May 21, 2007
|Sep 27, 2011
|International Business Machines Corporation
|Self-healing system and method for code optimization in a computing environment
|Apr 19, 2010
|Jun 25, 2013
|Sap Ag
|Call graph simplification/comparison and automatic initial suspects finding of performance degradations
|Dec 21, 2009
|Aug 6, 2013
|Business Objects Software Limited
|Method and system for lane graph visualization
|Oct 31, 2008
|Sep 2, 2014
|Ebay Inc.
|User interface framework for viewing large scale graphs on the web
|May 11, 2012
|Oct 7, 2014
|International Business Machines Corporation
|Generating layouts for graphs of data flow applications
|May 21, 2013
|Mar 24, 2015
|Concurix Corporation
|Interactive graph for navigating and monitoring execution of application code
|Jun 25, 2013
|Apr 28, 2015
|Sap Se
|Call graph simplification/comparison and automatic initial suspects finding of performance degradations
|Jul 2, 2012
|Apr 26, 2016
|International Business Machines Corporation
|Collaborative filtering of a graph
|Jun 11, 2013
|May 10, 2016
|International Business Machines Corporation
|Collaborative filtering of a graph
|Mar 4, 2015
|Jun 14, 2016
|Sap Se
|Call graph simplification/comparison and automatic initial suspects finding of performance degradations
|Mar 23, 2015
|May 23, 2017
|Microsoft Technology Licensing, Llc
|Interactive graph for navigating application code
|May 21, 2007
|Nov 27, 2008
|David Breitgand
|Self-healing system and method
|Oct 31, 2008
|May 7, 2009
|Ebay Inc.
|User interface framework for viewing large scale graphs on the web
|Dec 21, 2009
|Jun 23, 2011
|Camilo Arango Moreno
|Method and system for lane graph visualization
|Apr 19, 2010
|Oct 20, 2011
|Sap Ag
|Call graph simplification/comparison and automatic initial suspects finding of performance degradatons
|May 21, 2013
|Jan 9, 2014
|Concurix Corporation
|Interactive Graph for Navigating Application Code
|May 11, 2012
|Jan 30, 2014
|International Business Machines Corporation
|Generating Layouts for Graphs of Data Flow Applications
|Jun 25, 2013
|Feb 6, 2014
|Sap Ag
|Call Graph Simplification/Comparison and Automatic Initial Suspects Finding of Performance Degradations
|U.S. Classification
|717/131, 717/156, 717/124, 717/125
|International Classification
|Cooperative Classification
|European Classification
|Feb 24, 2005
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MITCHELL, NICK M.;SEVITSKY, GARY S.;DERBY, HERBERT G.;REEL/FRAME:015701/0520;SIGNING DATES FROM 20041207 TO 20041208
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MITCHELL, NICK M.;SEVITSKY, GARY S.;DERBY, HERBERT G.;SIGNING DATES FROM 20041207 TO 20041208;REEL/FRAME:015701/0520
|Jul 25, 2014
|Maintenance fee reminder mailed
|Dec 9, 2014
|Fee payment
Year of fee payment: 4
|Dec 9, 2014
|Surcharge for late payment
|Mar 13, 2015
Owner name: LINKEDIN CORPORATION, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:035201/0479
Effective date: 20140331


text:
I swear by this product! Growing up with acne in high school I have been using this since religiously. You feel it works when you use it from the tingly sensation. I use it after I cleanse my face and use the level 3 smoothing lotion after and I have had clear skin since! 10/10 product! Lasts me about 6 months too and I use it twice daily.
Heard bout the brand from my pharmacist who recommends it and bingo! I love how you don't have to break your bank to get quality and effective products. I love how the product makes my skin feels. Been using for just two weeks, but I definitely feel it is making my skin better already!
Neostrata continues to reformulate as this was toning solution level 2 and now has salicylic acid added. I find it works great for the red bumps that appear on the upper arms. The product does go on sale routinely or for those over 55.. there is a weekly seniors discount at Lawtons or SDM
I have had zits since I turned 11. I am now 32 and have recently discovered This product and it has made my face feel great. I have tried many products over the years, but this has surpassed any other. My oldest daughter uses it as well, she started getting pimples about a year ago, when she started using Neostrata acne blend, she has baby soft skin again.
Both me and my daughter would, and do, recommend this product.
This product contains 2% salicylic acid which is perfect for clearing acne and preventing it as well. I find that this product is a bit strong so a little goes a long way. I use this after I cleanse my face and before I put on moisturizer and it does a great job at keeping my acne at bay.
These reviews are the subjective opinions of ChickAdvisor members and not of ChickAdvisor Inc.

subset: commoncrawl


text:
In amongst its hardware activities with the new N8 phone and the Windows 7-based tablet, Nokia, via its Betalabs office, has announced that it has released Nokia Messaging for Social Networks for beta testing. According to the company, the new app is aimed at users of the E72, E71 and E63 mobile phones. The advantage of using this new app is that it allows Nokia users to access their Facebook and Twitter accounts in one place, according to the Nokia Blog website.
If you would like to try the new Nokia Messaging app for yourself then click here to download it.
Of course, the new program is still in its early stages and will be subject to glitches – as several users have already experienced. However, when the company reaches its next stage in its program development we will let you know.
Click to read the Nokia Blog story


text:
Description: The Political Map of Azerbijan showing names of capital cities, towns, states, provinces and boundaries with neighbouring countries.
Azerbaijan is situated on the Caspian Sea and is surrounded by Armenia, Georgia, Russia, Iran and Turkey. Azeri is the official language similar to Turkish, although English is spoken in the larger towns such as Baku, its capital.
Azerbaijan is a country of dramatic contrasts, from its cosmopolitan bustling capital with skyscrapers, situated on the desert land facing the Caspian Sea, to its ageless villages at the foot of the Caucasus mountains surrounded by luxuriant orchards.
The south of Azerbaijan is one of the country's most beautiful regions offering coastal and inland sites to visit such as Lankeran, a picturesque seaside town renowned for its flowers. One may also explore the Talysh mountains from the town of Masalli, although outdoor activities are rare and rarer still are people who speak English, so at times it can be a challenge to get around.
To the north lies the amazing town of Xinaliq that offers breathtaking views and traditional mountain culture, while there is an intriguing experience to be had at the enclave of Nagorno-Karabakh.
The winter can be mild near the Caspian Sea, although it can get extremely cold inland with a lot of snowfall in the mountainous regions. The best time to visit is from April to June where the vegetation is in bloom and the humidity not too high in the area of Baku. July is also ideal for trekking in the mountains, although it still gets rather chilly at night.
Physical Map of Azerbaijan
Physical map and map image of Azerbaijan.
Road Map of Azerbaijan
Road map and map image of Azerbaijan.
Regional Directory of United States of America
Information and guide about United States of America and websites with American topics.
Regional Directory of Europe
Information and guide about Europe and websites with European topics.
Regional Directory of Australia
Information and guide about Australia and websites with Australian topics.


text:
Nobody is telling the Muslim drivers that they can't take prayer breaks. What they are telling them is that they will not get paid while they take their prayer breaks. It sounds fair to me, and apparently it sounded fair to Equal Employment Opportunity Commission a couple of years ago, too.
From The Seattle Times
More than two dozen Somali Muslim drivers for Hertz at Seattle-Tacoma International Airport are being fired after refusing to clock out for daily breaks during which they normally pray, according to media reports Thursday.
The 26 workers drive the company's rental cars to and from the airport for cleaning and refueling. They are among 34 Hertz employees suspended Sept. 30 for failing to clock out before breaks.
Eight of the 34 signed the clock-out agreement and have returned to their jobs, company spokesman Rich Broome told The Associated Press Friday in an email. Termination letters have been sent to the rest.
The company made it clear the suspended workers needed to agree to the clock-out conditions by the end of the day Thursday if they wanted to be reinstated, Broome told The Seattle Times.
The firings were first reported by KOMO-TV.
Broome told the AP earlier this month "It's not about prayer, it's not about religion; it's about reasonable requirements."
Observant Muslims pray several times a day.
Hertz said the suspended workers were violating provisions of a collective bargaining agreement and a settlement with the Equal Employment Opportunity Commission reached two years ago.
Teamsters Local 117, which represents the workers, said the two sides were unable to negotiate an agreement that would have allowed the workers to return to their pre-suspension status, under which they wouldn't have to clock out to pray.
read more at The Seattle Times


text:
Outpost Firewall Free 6.51
What Is the FileHippo Safety Guarantee?
We know how important it is to stay safe online so FileHippo is using virus scanning technology provided by Avira to help ensure that all downloads on FileHippo are safe. The program you are about to download is safe to be installed on your device.
Title: Outpost Firewall Free 6.51
Filename: OutpostFreeInstall.exe
File size: 16.63MB (17,436,560 bytes)
Requirements: Windows 2000 / XP / Vista / Windows 7 / Windows 8 / Windows 10 / Windows 10 64-bit
Languages: Multiple languages
License: Freeware
Date added: June 10, 2009
Author: Agnitum Ltd
Homepage: free.agnitum.com
MD5 Checksum: 5C82187943FD972C748B196017954502


text:
Built in 2004, this city and conference hotel includes a total of 87 rooms spread over 3 floors. Various facilities are available to guests including a foyer with a 24-hour reception, a lift, a safe and a cloakroom. In addition, a caf�, a bar, conference rooms, a TV room, an air-conditioned restaurant and an Internet terminal are to be found within the hotel. Use of a car park and garage is also available as well as a laundry service and room service.
This hotel is located on the outskirts of the city centre. Las Ventas bullring, Barajas Airport, Juan Carlos I Congress Centre, the old town and the exclusive Salamanca quarter are within easy reach of the hotel.
The comfortable rooms come with an en suite bathroom with hairdryer. They additionally come equipped with a direct dial telephone, satellite/ cable TV, a hire safe, a minibar/ fridge, air conditioning and central heating as standard.
There is a gym on offer for guests. The nearest golf course is 10 km away and the nearest ski slopes are located about 40 km from the hotel.
Guests are invited to serve themselves from the breakfast buffet. At lunchtime and in the evenings, guests may select dishes from the set menu or choose the � la carte option.
American Express, Diners Club, MasterCard and VISA cards are all accepted as methods of payment.
Room Facilities:
Direct dial telephone
Satellite cable TV
Internet access
Double bed
Central airconditioned
Central heating


text:
MORRISTOWN - The St. Augustine Prep ice hockey team's improbable playoff run ended Thursday.
The Hermits (12-9-1), a scoring machine throughout the state Non-Public playoffs, were shut out by Christian Brothers Academy 1-0 at the Mennen Sports Arena. The Hermits were the seventh seed in the playoffs and CBA was No. 3.
CBA will play against Morristown-Beard on Sunday in the state Non-Public final at the Prudential Center in Newark.
The Colts (20-4-3) clogged the middle of the ice for most of the game, lessening the quality of shots St. Augustine put on CBA goaltender Michael Cernero.
Cernero made 27 saves, but the difference came in CBA's size on defense.
"We had opportunities to pull the trigger and our guys were trying to make the extra moves," Prep coach Tim Fingerhut said.
"You have to shoot on this team every chance you get. That's where we had success against Don Bosco (on Friday), and we got away from that today and it kind of hurt us in the end."
CBA's veteran defense was the exact opposite of St. Augustine's young blue line. The inexperience showed late in the second period when the Colts got the game's only goal.
A mad scramble in front of the net was punctuated by Greg Malafronte's goal with 1 minute, 58 seconds remaining in the second period.
Colin Tierney and William Antinedes got the assists.
The goal was initially waved off by the referee. But when he went to defer with the goal judge, they overturned the decision and gave the Colts the lead.
"It is what it is," Fingerhut said. "At the end of the day, they counted it and we didn't put any in the back of the net."
On the other end of the ice, Hermits goalie Samuel Fitzpatrick made 27 saves.
The lone blemish on his stat line didn't take away from the effort he put forth in this game and all season for the Hermits. Fingerhut and the players said after the game that it was just another typical excellent performance by the senior from Wildwood.
Fitzpatrick was a part of the reason St. Augustine was so successful all season. Following an 8-13-1 record in 2012-13, the Hermits made it to the state semifinals, something they hope the younger players can build on next season.
"I hope they think about it tonight," senior Ryan Conlin said. "Obviously, they're going to be a little disappointed, but I hope they sleep on it and get that feeling that they don't want this to happen again. They wanna win, and I hope this gives them that edge, that push for next year."
The younger players include sophomore forward Anthony DeRuchie, who skated on the top two lines for much of the season. DeRuchie got a taste of playing in a big arena, and playing in a big-time game against one of the top hockey schools in New Jersey.
"Our seniors were tremendous to us," DeRuchie said. "They treated us great, had great leadership in the locker room, and when I move up into being an upperclassman, I hope we can fulfill what they did for us."
It was an unwanted end to the season for the Hermit seniors that included Fitzpatrick, Conlin and captain Dean DiSimone. And for DiSimone, this was the last hockey game he will ever play.
DiSimone, of West Deptford, will prepare for boys lacrosse in the spring. He will then play lacrosse at the University of Delaware next year.
"It's not going to be the same, not being able to step on the ice, shoot every winter. It's going to be bad," DiSimone said.
When asked how long it will take to miss ice hockey, DiSimone answered, "Tomorrow."
Contact John Russo:


text:
This app contains the buses schedule (offline and, for some routes, real-time) as well as news from @takeETSalert on Twitter.
ETS buses serve Edmonton in Alberta, Canada.
Once this application is installed, the MonTransit app will display buses information (schedule...).
This application only has a temporary icon and no screen: download the MonTransit app (free) in the "More ..." section bellow or by following this Google Play link http://goo.gl/pCk5mV
You can install this application on the SD card but it is not recommended.
The information comes from the GTFS file provided by ETS (Edmonton Transit System).
This application is free and open-source:
This app is not related with ETS (Edmonton Transit System) and the City of Edmonton.
- Other: required to read real-time estimated next departures from etslive.edmonton.ca and to read news from Twitter
I have been using this app for awhile and it worked for a while where I could see the buses on the main screen now I have to click on the individual bus number to see where it is at, any thoughts on what to do??
This is not the real app, it's just a shortcut to the main app. Waste of time!
If you are a frequent bus traveller this is the ap for you .very precise and easy to use
I like the offline/real-time feature, saves data while keeping you updated
Awful! Hate it!
Merci d'essayer MonTransit.


text:
Details & Care
Add vintage whimsy to your desktop or counter with a colorful note cube filled with die-cut sheets to house the coordinating pencil. The cube is styled with a vintage photo accompanied by the phrase, "You probably didn't recognize me without my cape."
- 3 3/4" square.
- 400 loose note sheets.
- FSC-certified paper with soy-based ink.
- By Shannon Martin Girl Designer; imported.
- Item #935595


text:
Husband, father, optimist. Born on May 24, 1924, in Birmingham, England; died on Dec. 11, 2013, in Ottawa, of pneumonia, aged 89.
My sister and I were in Thailand when our brother called with the news: Our dear step-father had died in the middle of the night, our mother at his side. We were hit hard. Although Alan had battled Parkinson's disease for many years, none of us – my mother, brother, sister and I – were prepared for his death. Perhaps no preparation is possible for the loss of a loved one. Or perhaps Alan's very nature – his proud bearing despite a debilitating disease – had made us believe that he would live forever.
Alan, a widower with a grown son, became our step-father in 1986, 15 years after our father's death. Although none of us were living at home, he became the father we missed. Wonderfully unassuming, incredibly well-read – a buff historian – he was generous and selfless, and completely devoted to our family.
Alan's childhood in England was filled with loss and disappointments, beginning with his mother's death when he was a child. His father was authoritarian, incapable of nurturing his son, subjecting him instead to various humiliations. When 15-year-old Alan asked for a motorcycle, his father readily agreed and took him shopping. When the boy settled on one particular bike, his father simply stood there until Alan asked if he was going to pay for it. "Who, me?" his father replied. "I thought you were going to buy it." They returned home without the motorcycle.
When he was 16, Alan left home and joined the merchant marines. There, he endured all sorts of initiation rites, which he later recounted as amusing anecdotes. "Go downstairs and get a piece of string and a long weight," they told him, and he waited, and waited, and waited.
He served in the Royal Navy from 1941 until 1946, participating in the North African campaign. Imagine a teenager, on board ships, during the Second World War, in constant peril, yet also in a constant state of exhilaration as he discovered a world vastly different from his narrow upbringing.
How he loved to tell us about his adventures in Algiers, or Oran, or Malta or Ceylon, or any of the many countries he visited. He had an excellent ear for languages; even in his later years, in hospitals, he would easily strike up conversations in foreign languages whenever he encountered nurses and doctors from elsewhere.
After the war, Alan worked for Cadbury Chocolate in Bournville, England, before moving to Canada in 1956 with his first wife, Edna, and young son Trevor, "in a romantic search for a new life," as my mother said. They settled in Vancouver, where Alan worked for General Motors until his retirement in 1987. We never knew what kind of work he did at GM, and when we asked him, he would respond with an enigmatic, "I work to be happy."
Despite his harsh upbringing, or perhaps because of it, Alan was a gentle, generous soul. True to his character, he never spoke about his achievements, and it was only after his death that I saw his war medals. I wish I had been a better listener to his stories. I wish I had asked a lot more questions.
He was a loving, steadfast companion to my mother, Maria Verbena, and together they renovated or built eight homes in Vancouver, before moving to Ottawa in 2011. He was dependable and always willing to help all of us children. We are a vagabond family, and I can't count how often Alan drove us to and from airports, fed our cats, watered our plants, loved us unconditionally.
Now when I return from a trip, I am caught unaware when I search the waiting crowd, and don't find Alan in his navy-blue coat, seated on a bench, book in hand, warm blue eyes welcoming me home.
Genni Gunn is Alan's daughter.Report Typo/Error
Follow us on Twitter: @globeandmail


text:
Today we're tackling a wardrobe classic that, surprisingly, a lot of women find challenging to style: the turtleneck. This season, designers like Phoebe Philo of Céline gave the staple a chic revamp on the runways, and now we're making the most of the Winter staple right here. Whether you want to style it up for a day at the office or layer it underneath your favorite party dress, watch on to see how to make the most out of one turtleneck sweater.
Join The Conversation
I love to see winter items paired with flowery, springy items. Keeps my spirits up. But the look I'm mostly likely to wear is the turtleneck with a blazer and boots... in fact I wear that often. ha!
me too! Turtlenecks used to scare me... and now i love them! xx
I love the skirt ensemble! Very chic :)
Like us on Facebook
Related Posts


text: Ok, first of all, this is not to start a feud (as if I'd have to anyway) this is just my opinion on something that I believe is getting out of control on this wiki. I recently found a page called 'Power Homology' and with all due respect to the writer, the scientific definition is correct, but seriously why are we making this wiki so complicated. Telekinesis is now a form of channeling, Apportation is now a form of Power Homology. Fire throwing is of course pyrogenism and at this rate I don't see why energy balls shouldn't be Electrokinetic Spheres! It's one thing when we come up with a fancy name to fill a gap, but when a name is given in the series, why would we make it harder to understand and disregard a canonical title? KhanWiz, I appreciate that you have final say, I simply think that on Charmed Wiki it is ridiculous not to use names from the show and urge you to bring this wiki back to being accurate to what is said in the series.


text:
To all the kids on the planet and the future generations, may this book take you to the beautiful journey of discovering life, nature, other cultures and the unique essence of each human being in a world of respect, harmony, love and music.We dedicate this book"The World of happy, Music is the Sound of Life!"to the truly amazing efforts ofMUSIC FOR YOUR HEART FOUNDATIONfor their mission which is to provide instruments and music education to all the children of the world.
Bookwire is a mobile app for your iPhone that gives you the ability to scan a barcode
or enter ISBN, access book records and add titles to wish lists.


text:
Jamie Kilstein is a cohost of the podcast Citizen Radio. His vigorous, wide-ranging, hilarious, and righteous rant was one of the real highlights of the Reason Rally. He actually was the one speaker I noticed to devote any significant part of his speech to scathingly criticizing the atheist community for any of its deficiencies. I [Read More…]
Jamie Kilstein at the Reason Rally
April 5, 2012 by Leave a Comment
Like Camels With Hammers and Patheos Atheist on Facebook!


text:
Dr. Konstantin is an Artist!
I was thrilled with Dr. Konstantin's work. He may be a doctor, but really he's an artist. I got a facelift at a young age, in my thirties. Due to genetics, my face began to sag and show visible signs of aging at only 28. I wanted to do something about it, but I was so nervous I would look like I had "work" done. I interviewed many doctors before meeting Dr. Konstantin. The minute I met him, I knew he was the right doctor for me. He saw immediately what I saw, but nothing more. He even advised against doing anything to my forehead. It was clear that he had a vision for my face. And did he ever deliver! I don't look like I had "work" done at all, I just look like I did when I was 25! People have said I look "rested," "thin," "great skin" but no one has thought I had "work" done. When my best friend saw me only a month later, she insisted I "changed my hair" and "lost weight" (neither were true). I should also mention, I was worried about scarring. I was amazed, there was basically nothing. I could not believe it! I was putting my hair in pony tails a few weeks later. On top of the results, Dr. Konstantin and his staff are maybe the nicest medical team in all of the city. Dr. Konstantin is as gentle and respectful as he is talented. I felt truly cared for every step of the way. I recommend Dr. Konstantin without reservation and I would send anyone I know to him in a heartbeat!


text:
This video shows how to analyze the impact of a price floor in a market and compare the costs and benefits of a price floor to those of a "target price" policy. The problem is taken from Essentials of Economics, 2nd Edition, by Paul Krugman, Robin Wells, and Kathryn Graddy, and is Ch. 4 problem #16.
You can find more practice problems via the Practice Problem of the Day category archive or by visiting the Econ Classroom page. You can also be notified of new practice problems by subscribing to the YouTube channel.


text:
|Home > Adelis
♀ Adelis
What does Adelis mean?
Adelis [adelis] as a girls' name has its root in Old German, and the meaning of Adelis is "noble kind". Adelis is an alternate spelling of Adelaide (Old German): from adal heid.
VARIANT Adelice
OTHER FORMS VIA ADELAIDE Adalin, Adaline▲, Adalyn▲, Addi, Addie▼, Adel, Adela, Adelade, Adelaida, Adelais, Adele▼, Adelei, Adelheid, Adelia▼, Adelicia, Adelina▲, Adeline▲, Adell▼, Adella▼, Adelle, Adelyn▲, Adelynn▲, Adey, Adi, EdelineCREATIVE FORMS
(female) Aeelis, Alelis, ..
(male) Adelas, Adelim, .. MIDDLE NAME PAIRINGS
Adelis Shyla (A.S.), ..
How popular is Adelis?
Adelis is a rare given name for females. Adelis is an equivalently rare last name too for all people. (2000 U.S. DEMOGRAPHICS)
Which version is better?with its source form and related girl names. Popular varying forms of Adelis (NOT RANKED) appearing in the Top 2000 are Adaline (#364 IN 2015), Adalyn (#132), Addie (#1122), Adel, Adela (#1123), Adelaida, Adelaide (#273), Adele (#652), Adelia, Adelina (#545), Adeline (#135), Adell, Adella, Adelle, Adelyn (#193) and Adelynn (#275). Other forms, like Adey, are uncommon. These forms of Adelis are at the top of their popularity presently (AVERAGE #1050), except for versions like Adelia which have become less stylish. Adeline is more ubiquitous than the rest, although Adaline appears to be getting popular too. (2015 U.S. SSA RECORDS)
Similar Names
Adelis is alike in pronunciation to Adaliz. Other recommended names are Abelia, Adalgisa, Adalgise, Adali, Adalia, Adalie, Adelfa, Adelgise (see Adalgisa), Adelie, Adelind, Adelisa, Adelita, Adeliza, Adelma, Ailis, Alexis▼, Alis, Allis, Amelia▲, Amelie▲, Anelie, Anelisa, Anelise, Ardelia, Ardelis, Areli, Arelie, Audelia, Azelia, Delis, Edelie, Felis, Idelisa, Odelia and Udelia (see Odele). These names tend to be more frequently used than Adelis.See names in meaning and etymology.


text:
Game MVP - Verdell Jones. With his team reeling in overtime, Jones put the Hoosiers on his back and carried them to a win over the Gophers. Jones scored six of his game-high 24 points in an 88-second span in overtime that turned a three-point IU deficit into a one-point lead. In addition to his overtime exploits, Jones added seven rebounds, three assists, and made 13-of-19 from the free-throw line. He fouled out both Gopher center Ralph Sampson III (17 points, five rebounds, two blocks) and top reserve Paul Carter (nine points, 10 rebounds) in overtime by attacking the rim and getting fouled. It was an effort that was every bit as good as his 20-point, eight-rebound, five-assist performance in IU's other Big Ten win against Michigan. Jones demanded the ball at the most critical points in the game and delivered for Tom Crean's squad.
Biggest Surprise… Indiana's ability to regroup in overtime. Devoe Joseph's back-t0-back 15-footers in the final minute of regulation capped a Gopher rally from 15 down in the second half and sent the game to overtime. Not only had Indiana failed to make a field goal in the final 6:38 of regulation, but it had already lost both Tom Pritchard and Bobby Capobianco to fouls. The momentum was clearly on the Gophers' side, and the contest seemed all but over when Joseph hit back-to-back 3s in overtime to give Minnesota a 76-71 lead. But Derek Elston found Jeremiah Rivers open under the basket for a layup to cut the lead to three, and Verdell Jones then scored six straight to give Indiana a one-point edge with 32 seconds remaining. After limping across the finish line in regulation and suffering late-game collapses against both Illinois and Michigan, there was little reason to think Indiana had the fortitude to respond to the Gophers' late charge. But with Jones leading the way, Indiana managed to do just that and get a gut-check type of win.
What I Found Most Impressive… Indiana's dominance on the glass. Truth be told, the Hoosiers were nearly perfect in the first half of this game on the glass while building a 21-9 edge. In the game's first 14 minutes, Indiana missed only seven of 16 shots, and it came away with the offensive rebound on every one of those misses. Indiana wound up dominating Minnesota 42-31 in the game, including a 20-10 edge on the offensive end. Christian Watford led the way with 10 rebounds, including a critical defensive rebound in the closing seconds of overtime following a Devoe Joseph miss. But Watford got plenty of help. After going without a rebound in 21 minutes at Michigan Thursday, Tom Pritchard pulled down six in 21 minutes Sunday. Verdell Jones and Jeremiah Rivers had seven rebounds apiece, while Derek Elston added five more off the bench. Minnesota entered the game with a +1.4 rebounding margin on the season, but Tubby Smith's team was dominated by an Indiana team that ranked ninth in the conference in the category. That effort on the glass set the tone early and put Indiana in a position to get an impressive homecourt win.
What I Found Most Concerning… For the second straight home game, Indiana nearly squandered a 15-point second half lead. Indiana went through a couple of long droughts – after a Derek Elston layup gave IU a 59-44 lead with 14:04 left, IU missed its next eight field goal attempts while Minnesota cut the margin to seven. Then, after the lead was upped to 11 following a Minnesota goal tend at the 6:38 mark, IU missed all five of its shots, turned the ball over three times, and missed two of four free throws to allow Minnesota to tie it at 70 heading into overtime. On a couple of occasions late in the game Indiana couldn't get a good look at the basket, as Watford had a rush a shot to try to beat the 35-second shot clock on one possession, and then Jones missed on a 3-point attempt on IU's next possession just before the shot clock expired. Indiana made up for it with an impressive overtime rally, but the Hoosiers need to find ways to halt the long scoring droughts that they have endured recently.
Turning Point: Jones' six straight points that turned a 78-73 deficit into a 79-78 Indiana lead. Jones started by fouling out Carter while corralling an offensive rebound off a Derek Elston miss. Jones made both free throws , and then after a Colton Iverson turnover he knocked down a 13-footer in the lane to get Indiana within one. Jeremiah Rivers blocked a Joseph layup on the other end, and Jones then dropped a 14-footer while being fouled by Joseph with 32 seconds left to give Indiana the lead. The Hoosiers had been struggling to get quality shots at the end of regulation and in simply finding some offensive production, but Jones stepped to the forefront and answered.
"I felt the team was tensing a little bit. Me and Devan (Dumes) really brought us together and said, look, just relax, breath, and we have to play. We have to do what got us the lead in the first half." – Verdell Jones
"The competitive spirit in me, I didn't want to lose another game like that again. We did that against Illinois, and my stomach was sick for two straight days. I didn't' want that to happen again, I think the whole team that was out there didn't want it to happen again." – Jones
"(Rebounding) was a point of emphasis. We knew going into this game in order to be successful in this game we had to out-rebound them." – Christian Watford
"Verdell is more of a lead by example type guy. He did a great job today. He made big plays down the stretch." – Watford
"Confidence has been really big for (Verdell). I think early in the year, first five or six games, he was kind of struggling with his confidence, just finding his place and what he needs to do to help us. I think the last 6-7 games, he's done a great job, come into his role and filling a void." – Jeremiah Rivers
"(Verdell Jones is) talented, he's very talented. He's long and athletic. He's a very heady player, a very smart player. He knows how to draw the foul. You hedge on the pick and roll and he knows how to use his body and force you to foul him." – Minnesota Coach Tubby Smith
"The number one key for us today was the rebounding. That became a bigger battle cry, especially after Northwestern out-rebounded Purdue the way they did yesterday. That's the kind of mentality we have to have. That's where learning from the other teams in the league really takes shape for us, and we have to develop that mentality. Our belief was that if Northwestern could outrebound a great team like that, a great rebounding team, then we better figure out how to do the same thing against a team like Minnesota." – IU Coach Tom Crean
Upon Further Review: Minnesota
Peegs.com Top Stories
Video interview: Rising Chicago centerIndiana is among the schools now taking a look at rising 2018 senior center George Conditt of Chicago Corliss High School. Watch this interview for the latest on his recruitment…
Peegs.com2:02 PM
5-star Keion Brooks updates where IU standsGRAND RAPDIS, Mich. — Five-star 2019 forward Keion Brooks of Fort Wayne, Ind., talks with Peegs.com and updates where Indiana stands in his recruitment.
Peegs.com1:12 PM
Marshall makes the call for IndianaGeorgia wideout Miles Marshall has committed to the Indiana football program.
Peegs.com12:15 PM
PJP: Lagow by the numbersThe Punt John Punt team of Dan and Billy number crunch IU quarterback Richard Lagow and look at the keys for his success in 2017.
Peegs.com5:41 AM


text:
|Message view
|« Date » · « Thread »
|« Date » · « Thread »
|"Terry Steichen" <te...@net-frame.com>
|Re: Enumerating Concatenated Fields
|Sun, 17 Nov 2002 22:05:33 GMT
Otis, Thanks for your response, but I don't think I was particularly clear in my original message. Here's an expanded description. For each Lucene Document in the index there will be a 'codes' field which will contain a comma-delimited set of codes (this is the result of my concatenation at index-time of the individual 'code' sections from each of the corresponding XML documents). In other words, assume the original XML document contains something like this: ..... <codes> value_of_code1 value_of_code2 value_of_code3 </codes> .... When I index each such an XML document, I create a Lucene Document that has a field called 'codes', which has the value: "value_of_code1, value_of_code2, value_of_code3". (I do this so I can do boolean searches on this field, so see which documents may have value_of_code1 AND value_of_code2 AND NOT value_of_code3, for example. Consider that each 'value_of_codexx' is a keyword. Each XML document may have zero or more such keywords (aka code sections). I'm trying to figure out a way to get a list of all the keywords used by the XML documents that have been indexed. It seems to me, the index itself (even though I do store this concatenated result in it) won't really know how to parse the string of comma-delimited code values that comprise each 'codes' field value. Does that make more sense? Regards, Terry --- Original Message ----- From: "Otis Gospodnetic" <firstname.lastname@example.com> To: "Lucene Users List" <firstname.lastname@example.com> Sent: Sunday, November 17, 2002 4:24 PM Subject: Re: Enumerating Concatenated Fields > If I understand what you want - open an index with IndexReader, get the > # of documents in it via IndexReader, loop through all documents, > getting one with it's ID, and for each of them get field 'codes' out of > it. > > Otis > > > --- Terry Steichen <firstname.lastname@example.com> wrote: > > I have a collection of XML documents, each of which contains a > > 'codes' section, each of which contains zero or more 'code' sections. > > When I index the documents, I concatenate all the non-empty 'code' > > sections into a single 'codes' index field to facilitate boolean > > searching. > > > > Given my structure, is there a way that I could get a list all the > > defined 'code' values in the entire set of documents? If not (as I > > suspect), is there a way that I could change the indexing scheme to > > add this functionality? > > > > Regards, > > > > Terry > > > > > > > > > > > __________________________________________________ > Do you Yahoo!? > Yahoo! Web Hosting - Let the expert host your site > http://webhosting.yahoo.com > > -- > To unsubscribe, e-mail: <mailto:firstname.lastname@example.com> > For additional commands, e-mail: <mailto:email@example.com> > -- To unsubscribe, e-mail: <mailto:email@example.com> For additional commands, e-mail: <mailto:firstname.lastname@example.com>
|View raw message


text:
I've been in a bit of a rut, having no real inspiration for painting. Normally I would look at a reference image and feel inspired to recreate its beauty, but lately…. So my husband picked a photo from my reference stash for me to paint in the hopes I got out of this rut. His pick, a lovely Robin sitting on a tree stump.
The above image is showing the finished robin. I was frustrated with painting the robin as I was really struggling to get its orange breast as vibrant as I wanted, though you wouldn't notice in the finished painting!
I was both happy and unhappy with the overall painting. Since I was so uninspired, I think I could constantly see the flaws and not the image.
Overall I am glad I persisted, as I do have a bit more of a want to paint again. The robin actually turned out quite well, despite my focus on the flaws.


text:
Library Services
The objectives of the Library Services projects are to look at current processes within the Library and find opportunities to make them quicker, more intuitive and simpler to use. The ultimate aim is to give staff and students better access to information and to improve the experience for all library users. Library Services will achieve this through a variety of different projects, using techniques and skills developed through the Operational Excellence programme. Library Services projects include:
- Improving the document delivery service by reducing waiting time and increasing access
- Working with academic departments to improve the provision of reading list material
- Improving the procedure for requesting new books and streamlining the acquisition process
- Streamlining procedures for the management of subscriptions and renewals to research journals
- Locating missing books and carrying out repairs


text:
Future Educators of Association!
History of FEA
Since the early 1930s, the need for bright educators has been apparent. From teacher shortages to name changes FEA has pushed through and now have over 11,000 members all over America.
The mission of FEA
To foster the recruitment and development of prospective educators worldwide through the dissemination of innovative programming and relevant research.
Official Dress
If your in FEA you can get multiple scholarships for college. FEA can also help you gain skills in leadership and child based learning.
The Purpose of FEA
Seek to interest the most promising young people in teaching as a career
BY: Kayla LaPrade
Gabrianna Johnson
Why participate in FEA?
Present Remotely
Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Do you really want to delete this prezi?
Neither you, nor the coeditors you shared it with will be able to recover it again.
Make your likes visible on Facebook?
Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.
Future Educators of America!
No description
Kayla Lapradeon 3 September 2013
Comments (0)
Please log in to add your comment.


text:
With the Los Angeles Rams making the expected decision on Wednesday to pick up the fifth-year option on defensive tackle Aaron Donald, the same cannot be the said about offensive lineman Greg Robinson, according to LA Times' Gary Klein.
Re Rams exercising 5th-year option on Aaron Donald, team not expected to do the same on OT Greg Robinson, No. 4 pick in 2014.— Gary Klein (@LATimesklein) April 12, 2017
Robinson is set to enter the final year of his four-year, $21.2 million rookie deal that will play him $3.4 million.
Since being taken with the second overall pick in the 2014 NFL Draft, Robinson has struggled tremendously to make the necessary adjustments. The Rams had initially hoped he could transition over to guard in his rookie campaign because of his run-blocking ability, but that proved to be too much of a challenge forcing the team to play him solely at left tackle ever since.
However, Robinson is expected to switch over to right tackle with the free-agent signing of former Pro-Bowl left tackle Andrew Whitworth to a three-year, $36 million deal. It had also become a simple choice for the position change given his issues over the last two seasons that includes leading the league with 14 penalties in 2016 while also grading 73rd out of 80 qualified offensive tackles, according to Pro Football Focus.
This major decision also moves Rob Havenstein to inside at right guard while it shifts Jamon Brown out of the starting lineup after being the starting right guard for the last two years. In truth, this will likely be the Rams' last serious attempt in giving Robinson a chance to prove that he can be a viable starting offensive lineman in the NFL.
Bob Garcia IV is a staff writer of LARamsReport.com. You can follow him at @bgarcia90 and us on Twitter at @LA_RamsReport.


text:
|Message view
|« Date » · « Thread »
|« Date » · « Thread »
|"Andrzej Jan Taramina" <andr...@chaeron.com>
|Replacing JISP with JCS for Cocoon 2,1,4? <was: Any known concurrency issues in 2.1.4?>
|Tue, 30 Mar 2004 21:55:15 GMT
Antonio suggested: > Fortunately, there is an Apache project, JCS, that deal with cache system and > there are advanced works on the usage of it in the current CVS. The idea is to > replace Jisp with JCS as the default cache system: > > http://marc.theaimsgroup.com/?l=xml-cocoon-dev&m=108013122630890&w=2 > > For more info about JCS: > http://jakarta.apache.org/turbine/jcs/ > > AFAIK, there is 1 site already using JCS in Cocoon with '000 of request in a > day. They report it is better than JISP. You can go to the list and ask how to > replace jisp with JCS. Can anyone offer detailed explanation of how I might be able to go about doing this....replacing JISP with JCS in Cocoon 2.1.4? Many thanks! Andrzej Jan Taramina Chaeron Corporation: Enterprise System Solutions http://www.chaeron.com
|View raw message


text:
Trick is a beautiful 1 year old male Sable German Shepherd dog. He is very frisky and friendly. He needs a home with owners that have had experience with German Shepherds. A fenced-in yard is a must. Trick needs training; basic obedience class is recommended.
Thank You!
Your message has been sent to Mostly Shepherds Inc..
You'll receive a copy, too, at to help you keep track of which pets you've inquired about, and which shelters and rescues you've emailed.
NOTE: Some shelters have physical locations you can visit; some of these shelters may only have pets for a limited time, so please do not wait for a reply—just go visit the shelter! Other organizations are rescue groups run by busy volunteers who may take a while to reply. You can find information about the shelter or rescue group caring for this pet, and their adoption procedures, on the pet's details page on Adopt-a-Pet.com.


text:
SYDNEY — A 22-year-old Cape Breton woman has been charged in connection with a brutal attack earlier this week on a 48-year-old man who remains in serious condition in a Halifax hospital.
Jennifer Lynn MacLeod of Calabash Road, Boularderie, is charged with aggravated assault, wearing a mask in committing an offence and two counts of breaching court orders.
She made a brief court appearance Thursday and was ordered remanded pending a bail hearing Monday.
Cape Breton Regional Police were called shortly before midnight Monday with a report of a man assaulted in the Atlantic Superstore parking lot on King Street in North Sydney.
The man was found by store staff and was initially transported to the Cape Breton Regional Hospital in Sydney. He was later transferred to Halifax.
According to police, the man is formerly of Truro and remains in serious condition with head and other injuries.
Police also reported Thursday they have a second suspect in custody, a 25-year-old man from Sydney Mines, and that further charges are pending.
Police ask that anyone with additional information about the incident contact police at 563-5151 or anonymously through Crime Stoppers at 562-8477.


text:
The new Hurraw Ayurvedic Dosha Lip Balms are made from rich, cold pressed organic sesame seed oil and infused with plants, fruits and roots known to compliment each Dosha.
Kapha Lip Balm: An infusion of tulsi leaf. Invigorating and zesty grapefruit subtly melds with stimulating eucalyptus while fresh ginger gives a bit of warmth. This balm is energizing.
The Kapha Dosha: steadfast, strong, calm, generous, damp
Hurraw are lucky to have an Ayurvedic practitioner on staff who spent two years diligently formulating until satisfaction arose.
Hurraw melt their creamy raw organic coconut oil, rich raw organic cacao butter and emollient cold-pressed organic castor oil and blend in a trio of flavours from pure essential oils and all natural flavour extracts to create a unique, long lasting, very nourishing lip balm.
Ingredients: Please take note if you have allergies: although there are no nut oils in these balms they are made on equipment shared with almond oil. Coconut oil is considered a seed oil.
All natural, vegan lip balm made from premium raw, organic, wild-crafted and fair trade ingredients...complete with a bunch of natural flavour options.
Certified Vegan and Kosher Parve
Use this organic lip balm as and when needed throughout the day.
Sesamum indicum (sesame) seed oil, **Cocos nucifera (coconut) oil, ***Euphorbia cerifera (candelilla) wax, **Theobroma cacao (cocoa) seed butter, *Ricinus communis (castor) seed oil, Citrus paradisi (grapefruit) peel oil, Eucalyptus globulus (eucalyptus) leaf oil, Zingiber officinale (ginger) root oil, *Ocimum sanctum (tulsi) leaf powder, Tocopherols (sunflower) *cold pressed / organic **raw & organic ***wildcrafted
Content Beauty and Wellbeing currently delivers to UK, European and international customers. We do not deliver to P.O. boxes or hotels.
We offer the following delivery options:
FREE. When the order is over £30 this is usually 1 - 3 working days to any UK address including Channel Islands and Isle of Man. Allow up to 14 working days for delivery.
FREE: When order is under £30 this is usually 2 - 5 working days to any UK address including Channel Islands and Isle of Man. This can be upgraded at checkout to first class for £3.00. Allow up to 14 working days for delivery.
UK Next Weekday: £5.95. Delivery the following working day for orders placed before 1pm (UK only).
UK Saturday Delivery: £8.50. Delivery on the following Saturday for orders placed before 1pm Friday.
Europe: FREE. Via our Standard Delivery - Usually 3-10 working days. Allow up to 21 working days for delivery.
International (excluding mainland China): FREE via our Standard Delivery - approximately 5-14 working days. Allow up to 21 working days for delivery. Please note any fees charged by customs are the sole responsibility of the customer.
Mainland China: Please contact us on firstname.lastname@example.com for estimated shipping costs.
You are able to correct errors on your order up to the point on which you click on "submit" during the ordering process.
If you should place an order for an incorrect item please email us at firstname.lastname@example.com to amend the order.
If the order has been despatched you will be liable for cost of delivery to and return delivery. Please view our refund policy for further details.
Want the full Content experience?


text:
Both enterprises and buyers may register to receive services from Better Factories Cambodia.Enterprises register to receive assessments, training and advisory services.Buyers register to receive information about their suppliers. (Please note that information is shared with buyers only after authorization is provided by the enterprise.)
If you are an international buyer sourcing from Cambodia and would like to sign up to our report subscription service, please:
- Complete the Application for Subscription Form and return it to us at firstname.lastname@example.com
- Forward the Third Party Access Form to your suppliers in Cambodia so that they can sign to grant you access to their assessment and progress reports.
Please see our report price list here: Report Subscriptions
Garment Factories
If you are a garment factory and are interested in our assessment services, please:
- Complete the Supplier Registration Form and
- Review and sign the Memorandum of Understanding and return both forms to us at email@example.com
Footwear Factories
If you are a footwear factory and are interested in our assessment and advisory services, please:
- Complete Footwear Registration Form package. which includes Footwear Memorandum of Understanding and STAR Registration Form and return both forms to us at email@example.com
Please see our monitoring price list here: Monitoring Services
To register for a training course, please complete the Training Registration Form and return it to us at firstname.lastname@example.com
Please see our training price list here: Training Schedule 2017 vs Pricing for Advisory,Training & Assessment Services 2017


text:
PAUL Hendriksen raced to his fourth successive Glenmuir PGA Professional Championship Final after winning the qualifying event at Bowood Golf Club.
The Dinnaton Golf Club PGA Professional had only jetted in from Monaco - where he had been watching the Formula One Grand Prix - 36 hours earlier.
But he kept up his excellent record in the event to finish joint top of the leaderboard at the Wiltshire course with first year PGA Professional James Pickard of Honiton Golf Club.
The pair both carded a three under par round of 69 to finish one shot ahead of Giuseppe Licata (Bristol Golf Centre) and Richard Brookman (Creigiau Golf Club).
They will join eight other qualifiers at the £78,700 Peugeot-supported event at Blairgowrie in Scotland on August 5-8.
Hendriksen has won an impressive three of four Glenmuir qualifiers he has played in since qualifying as a PGA Professional.
But the Ivybridge player admitted he was not switched on to his game to start with at the Calne venue.
"I still felt a bit dazed and jet-lagged to be honest, I didn't get back from Monaco until late on Tuesday," he admitted.
"But the round got better as it went on and I had a decent back nine.
"I've always liked this event as the courses seem to suit me better. I've won three and I finished second last year.
"The Grand Prix was a fantastic experience though and it's the second time I've been out there to watch it, I went with my brother Dan who's also a professional golfer.
"Because of the schedule I perhaps I wasn't expecting to get the result that I did, but I played it quite nicely.
"Once I'd done enough to qualify, the pressure was off a little bit."
But Hendriksen has struggled to carry those qualifying performances into the three finals he has played in so far.
"The venues haven't really suited me and I haven't done well whenever I've got to the final but it would be good to take this sort of form into the event," he said.
"Maybe I should book a holiday the week before the final!
"But I don't know anything about Blairgowrie, it'll be a new experience for me so I'll have to find out what I can about the course beforehand."


text:
Plenty with claims in the closing event. Tatting won twice on the Fibresand at the turn of the year but is equally at home on this surface, while the lightly-raced pair Hill Fort and Appease are both capable of getting involved with further progress expected. Red Shuttle is upped in class after scoring here last time, however, and Ocean Applause won a lesser grade contest at Kempton last month. EXCELLENT PUCK was flattered by his proximity to the high-class Jakkalberry in a conditions race here in January but this is more his level and Shaun Lycett's colt is fancied to prove too good for these.
Cockney Class (USA) 50-1 (9-7) Always behind, last of 6, 11l behind Modernism (9-6) at Wolverhampton 1m 1f hcp 0-85 (4) pol in Jan.
Tatting 2-1fav (9-1) Took keen hold, held up in touch and in rear, ridden over 1f out, kept on same pace, 4th of 5, 6l behind Noble Citizen (9-0) at Southwell 1m hcp 0-80 (4) fbs in Jan.
Excellent Puck (IRE) 12-1 (9-3) Led, headed over 1f out, one pace, 2nd of 4, 3l behind Jakkalberry (9-11) at Wolverhampton 1m 1f cnd stks (4yo+) (2) pol in Jan.
Hill Fort 16-1 (9-7) Made all, driven clear 2f out, kept on well under pressure, won at Lingfield 1m 2f mdn stks (5) pol in Jan beating Mbhali (8-5) by hd, 8 ran.
Appease 11-2 (8-13) Held up in mid-division, keen early, ridden and headway over 2f out, edged left and went 2nd inside final furlong, unable to reach winner, stayed on, lost 2nd towards finish, 3rd of 8, 1l behind Halfsin (9-7) at Wolverhampton 1m 1f hcp 0-85 (4) pol.
Red Shuttle 8-1 (9-5) Steadied and awkward leaving stalls, held up in rear, smooth headway on inside over 2f out, went 3rd 2f out, led approaching final furlong, pushed along and carried head high inside final furlong, ran on well, won at Wolverhampton 1m 1f hcp 0-75 (5) pol beating Arlecchino (9-3) by 1 1/2l, 6 ran.
Luv U Whatever 5-2 (8-11) Led, driven and headed over 3f out, soon weakened, last of 6, 26l behind Blue Wave (9-6) at Southwell 1m 4f hcp 0-85 (4) fbs in Jan.
Ocean Applause 20-1 (8-9) Towards rear, headway on inner over 2f out, effort entering final furlong, kept on one pace, 3rd of 12, 1 3/4l behind Scottish Star (8-10) at Lingfield 1m 4f hcp 0-85 (4) pol.
Pelmanism 16-1 (8-11) Awkward start, held up in rear, ridden over 2f out, well beaten over 1f out, 7th of 8, 7l behind Halfsin (9-7) at Wolverhampton 1m 1f hcp 0-85 (4) pol.
Camachoice (IRE) 16-1 (9-7) Chased leaders, ridden to challenge over 2f out, no extra final furlong, 4th of 7, 3 1/2l behind Repetition (8-11) at Southwell 1m hcp 0-75 (5) fbs in Jan.