Escaped Missouri inmate caught living in makeshift hut 'off the grid' in Delaware, investigators say
by Stephen SoraceA two-time Missouri jail escapee was captured Tuesday more than 1,000 miles away in Delaware, where he was living “off the grid” in a hut in the woods, investigators said.
Drake Kately, 27, of Kansas City, Mo., was being held at the Mercer County Jail on several charges, including firearm possession and burglary, when he escaped for the second time more than two months ago, the U.S. Marshals Service said in a news release.
Kately had escaped in late August by tearing a hole in the back of his jail cell and leaving through the basement door, KTTN reported at the time.
OKLAHOMA WOMAN, 48, SMILES IN MUGSHOT AFTER ARREST IN HUSBAND'S STABBING DEATH
U.S. Marshals said the agency joined the county sheriff’s investigation in early September and followed leads across several states. In mid-October, investigators narrowed their search down to New Castle, Del., where Kately was believed to have traveled with an associate who had relatives in the area.
Deputies and task-force officers combed a wooded area in nearby Wilmington, where they suspected Kately was living “off the grid.” Investigators spotted clothing hanging from a tree branch and discovered a makeshift hut made of vegetation fashioned around a fallen tree -- the escapee's hideout, they said.
CLICK HERE FOR THE FOX NEWS APP
Kately was taken into custody and held at the New Castle Police Department, where he was awaiting extradition to Missouri.
His attorney, Melinda Troeger, didn’t immediately return a phone message from The Associated Press.
The Associated Press contributed to this report.


The coordinates of the rectangles are incremented using a timer once every 10 ms, but the actual update of the visual elements is sheduled with a requestAnimationFrame once every 2 increments only. This trick of skipping some updates is usefull for example to keep the CPU free for other tasks or to group more updates comming from multiple timers or external events.


Technology Consulting
Digital Marketing, Digital Banking & Omni-channel solutions for FIs
Technology Consulting
Achieving optimal value from technology investments and minimizing IT project failures remains a daunting task for most CIOs and business organizations. Algorism provides your organization with the expertise of experienced and proven CIOs that have led major transformational initiatives across different industries both locally and internationally.
Supported by Algorism’s unique methodologies including the flagship Technology Strategy for Business (SfB) methodology ensures that your organization can eliminate project failures while maximizing the value realization from all IT projects.
Our unique capabilities and pool of experts ensures we can support you from start to successful completion and adoption on any IT project (infrastructure, applications, multi-disciplinary). Other CIO advisory services that we provide include:


Bursa Malaysia remains lower at mid-afternoon
KUALA LUMPUR, Nov 21 — Bursa Malaysia resumed the afternoon session in negative territory, dragged down by selling in the index-linked counters.
In sync with regional market performance, the benchmark FTSE Bursa Malaysia KLCI (FBM KLCI) fell 11.57 points to 1,589.57 as at 3.15pm, against 1,601.14 at yesterday’s close.
On the broader market, losers hammered gainers 502 to 292 gainers, while 360 counters were unchanged, 864 untraded and 15 others suspended.
Turnover amounted to 1.99 billion shares worth RM1.23 million.
Among the heavyweights, Maybank and CIMB eased two sen each to RM8.65 and RM5.36, respectively, Tenaga gave up 18 sen for RM13.48, Public Bank lost 28 sen to RM19.64, Petronas Chemicals trimmed nine sen to RM7.12, but IHH added two sen to RM5.46.
Of the actives, Alam Maritim bagged two sen to 15 sen, Netx was flat at two sen, Ekovest gained 3.5 sen to 85 sen, KNM slipped half-a-sen to 40.5 sen, while Seacera fell 10.5 sen 38.5 sen.
The FBM Emas Index was 64.48 points weaker at 11,301.98, the FBMT 100 Index erased 65.93 points to 11,109.58, the FBM Emas Shariah Index decreased 54.48 points to 11,843.43, the FBM Ace declined 46.85 points to 4,896.6, and the FBM 70 contracted 22.85 points to 14,156.69.
Sector-wise, the Plantation Index rose 37.96 points to 7,121.05, but the Financial Services Index erased 104.63 points to 15,537.43 and the Industrial Products & Services Index slipped 0.81 of-a-point to 151.39. — Bernama


Some applications have strict requirements about the consistency of data read on a master site. Berkeley DB provides a mechanism called master leases to provide such consistency. Without master leases, it is sometimes possible for Berkeley DB to return old data to an application when newer data is available due to unfortunate scheduling as illustrated below:
By using master leases, Berkeley DB can provide guarantees about the consistency of data read on a master site. The master site can be considered a recognized authority for the data and consequently can provide authoritative reads.  By doing so, clients acknowledge the right of that site to retain the role of master for a period of time. During that period of time, clients cannot elect a new master, become master, or grant their lease to another site.
By holding a collection of granted leases, a master site can guarantee to the application that the data returned is the current, authoritative value. As a master performs operations, it continually requests updated grants from the clients. When a read operation is required, the master guarantees that it holds a valid collection of lease grants from clients before returning data to the application. By holding leases, Berkeley DB provides several guarantees to the application:
Durability from rollback: A guarantee that the data being written or read by the application is permanent across a majority of sites and will never be rolled back.
The rollback guarantee also depends on the DB_TXN_NOSYNC flag. The guarantee is effective as long as there isn't a failure of half of the replication group while clients have granted leases but are holding the updates in their cache. The application must weigh the performance impact of synchronous transactions against the risk of the failure of at least half of the replication group. If clients grant a lease while holding updated data in cache, and failure occurs, then the data is no longer present on the clients and rollback can occur if a sufficient number of other sites also crash.
The guarantee that data will not be rolled back applies only to data successfully committed on a master. Data read on a client, or read while ignoring leases can be rolled back.
Freshness: A guarantee that the data being read by the application on the master is up-to-date and has not been modified or removed during the read.
The read authority is only on the master. Read operations on a client always ignore leases and consequently, these operations can return stale data.
Master viability: A guarantee that a current master with valid leases cannot encounter a duplicate master situation.
Leases remove the possibility of a duplicate master situation that forces the current master to downgrade to a client. However, it is still possible that old masters with expired leases can discover a later master and return DB_REP_DUPMASTER to the application.
There are several requirements of the application using leases:
Master leases are based on timeouts. Berkeley DB assumes that time always runs forward. Users who change the system clock on either client or master sites when leases are in use void all guarantees and can get undefined behavior. See the DB_ENV->rep_set_timeout() method for more information.
Applications using master leases should be prepared to
handle DB_REP_LEASE_EXPIRED
errors from
read operations on a master and from the DB_TXN->commit() method.
Read operations on a master that should not be subject to leases can use the DB_IGNORE_LEASE flag to the DB->get() method. Read operations on a client always imply leases are ignored.
Master lease checks cannot succeed until a majority of sites have completed client synchronization. Read operations on a master performed before this condition is met can use the DB_IGNORE_LEASE flag to avoid errors.
Clients are forbidden from participating in elections while they have an outstanding lease granted to a master. Therefore, if the DB_ENV->rep_elect() method is called, then Berkeley DB will block, waiting until its lease grant expires before participating in any election. While it waits, the client attempts to contact the current master. If the client finds a current master, then it returns from the DB_ENV->rep_elect() method. When leases are configured and the lease has never yet been granted (on start-up), clients must wait a full lease timeout before participating in an election.
If you are using master leases and you change the size of your replication group, there is a remote possibility that you can lose some data previously thought to be durable. This is only true for users of the Base API.
The problem can arise if you are removing sites from your replication group. (You might be increasing the size of your group overall, but if you remove all of the wrong sites you can lose data.)
Suppose you have a replication group with five sites; A, B, C, D and E; and you are using a quorum acknowledgement policy. Then:
Master A replicates a transaction to replicas B and C. Those sites acknowledge the write activity.
Sites D and E do not receive the transaction. However, B and C have acknowledged the transaction, which means the acknowledgement policy is met and so the transaction is considered durable.
You shut down sites B and C. Now only A has the transaction.
You decrease the size of your replication group to 3 using DB_ENV->rep_set_nsites().
You shut down or otherwise lose site A.
Sites D and E hold an election. Because the size of the replication group is 3, they have enough sites to successfully hold an election. However, neither site has the transaction in question. In this way, the transaction can become lost.
An alternative scenario exists where you do not change the size of your replication group, or you actually increase the size of your replication group, but in the process you happen to remove the exact wrong sites:
Master A replicates a transaction to replicas B and C. Those sites acknowledge the write activity.
Sites D and E do not receive the transaction. However, B and C have acknowledged the transaction, which means the acknowledgement policy is met and so the transaction is considered durable.
You shut down sites B and C. Now only A has the transaction.
You add three new sites to your replication group: F, G and H, increasing the size of your replication group to 6 using DB_ENV->rep_set_nsites().
You shut down or otherwise lose site A before F, G and H can be fully populated with data.
Sites D, E, F, G and H hold an election. Because the size of the replication group is 6, they have enough sites to successfully hold an election. However, none of these sites has the transaction in question. In this way, the transaction can become lost.
This scenario represents a race condition that would be highly unlikely to be seen outside of a lab environment. To minimize the chance of this race condition occurring to the absolute minimum, do one or more of the following when using master leases with the Base API:
Require all sites to acknowledge transaction commits.
Never change the size of your replication group unless all sites in the group are running and communicating normally with one another.
Don't remove (or replace) a large percentage of your sites from your replication group unless all sites in the group are running and communicating normally with one another. If you are going to remove a large percentage of your sites from your replication group, try removing just one site at a time, pausing in between each removal to give the replication group a chance to fully distribute all writes before removing the next site.


Career Cradle is a website, where Job-seekers, Students, Interns can come to in order to start their career properly. Career Cradle can be used to gain guidance from industry professionals and stay in contact with them. Career Cradle has only purpose that is to give our society well-trained professionals and give the qualified professionals the job they truly deserve. When a person has a job they like, it acts as an emotional, social and financial support in their live and Career Cradle seeks to help in the betterment of the society by providing people with stability.


public interface IIOMetadataFormat
IIOMetadata.getAsTree
and passed to
IIOMetadata.setFromTree
and mergeTree
.
Document structures are described by a set of constraints on the
type and number of child elements that may belong to a given parent
element type, the names, types, and values of attributes that may
belong to an element, and the type and values of
Object
reference that may be stored at a node.
N.B: classes that implement this interface should contain a
method declared as public static getInstance()
which
returns an instance of the class. Commonly, an implentation will
construct only a single instance and cache it for future
invocations of getInstance
.
The structures that may be described by this class are a subset
of those expressible using XML document type definitions (DTDs),
with the addition of some basic information on the datatypes of
attributes and the ability to store an Object
reference within a node. In the future, XML Schemas could be used
to represent these structures, and many others.
The differences between
IIOMetadataFormat
-described structures and DTDs are as
follows:
CHILD_*
constants;
Object
. There is no provision for
representing such objects textually.
| Modifier and Type | Field and Description |
|---|---|
static int |
CHILD_POLICY_ALL
A constant returned by
getChildPolicy to indicate
that an element must have a single instance of each of its
legal child elements, in order. |
static int |
CHILD_POLICY_CHOICE
A constant returned by
getChildPolicy to indicate
that an element must have zero or one children, selected from
among its legal child elements. |
static int |
CHILD_POLICY_EMPTY
A constant returned by
getChildPolicy to indicate
that an element may not have any children. |
static int |
CHILD_POLICY_MAX
The largest valid
CHILD_POLICY_* constant,
to be used for range checks. |
static int |
CHILD_POLICY_REPEAT
A constant returned by
getChildPolicy to indicate
that an element must have zero or more instances of its unique
legal child element. |
static int |
CHILD_POLICY_SEQUENCE
A constant returned by
getChildPolicy to indicate
that an element must have a sequence of instances of any of its
legal child elements. |
static int |
CHILD_POLICY_SOME
A constant returned by
getChildPolicy to indicate
that an element must have zero or one instance of each of its
legal child elements, in order. |
static int |
DATATYPE_BOOLEAN
A constant returned by
getAttributeDataType
indicating that the value of an attribute is one of the boolean
values 'true' or 'false'. |
static int |
DATATYPE_DOUBLE
A constant returned by
getAttributeDataType
indicating that the value of an attribute is a string
representation of a double-precision decimal floating-point
number. |
static int |
DATATYPE_FLOAT
A constant returned by
getAttributeDataType
indicating that the value of an attribute is a string
representation of a decimal floating-point number. |
static int |
DATATYPE_INTEGER
A constant returned by
getAttributeDataType
indicating that the value of an attribute is a string
representation of an integer. |
static int |
DATATYPE_STRING
A constant returned by
getAttributeDataType
indicating that the value of an attribute is a general Unicode
string. |
static int |
VALUE_ARBITRARY
A constant returned by
getAttributeValueType and
getObjectValueType to indicate that the attribute
or user object may be set a single, arbitrary value. |
static int |
VALUE_ENUMERATION
A constant returned by
getAttributeValueType and
getObjectValueType to indicate that the attribute
or user object may be set one of a number of enumerated values. |
static int |
VALUE_LIST
A constant returned by
getAttributeValueType and
getObjectValueType to indicate that the attribute
or user object may be set to a list or array of values. |
static int |
VALUE_NONE
A constant returned by
getObjectValueType to
indicate the absence of a user object. |
static int |
VALUE_RANGE
A constant returned by
getAttributeValueType and
getObjectValueType to indicate that the attribute
or user object may be set a range of values. |
static int |
VALUE_RANGE_MAX_INCLUSIVE
A constant returned by
getAttributeValueType and
getObjectValueType to indicate that the attribute
or user object may be set to a range of values. |
static int |
VALUE_RANGE_MAX_INCLUSIVE_MASK
A value that may be or'ed with
VALUE_RANGE to
obtain VALUE_RANGE_MAX_INCLUSIVE , and with
VALUE_RANGE_MIN_INCLUSIVE to obtain
VALUE_RANGE_MIN_MAX_INCLUSIVE . |
static int |
VALUE_RANGE_MIN_INCLUSIVE
A constant returned by
getAttributeValueType and
getObjectValueType to indicate that the attribute
or user object may be set to a range of values. |
static int |
VALUE_RANGE_MIN_INCLUSIVE_MASK
A value that may be or'ed with
VALUE_RANGE to
obtain VALUE_RANGE_MIN_INCLUSIVE , and with
VALUE_RANGE_MAX_INCLUSIVE to obtain
VALUE_RANGE_MIN_MAX_INCLUSIVE . |
static int |
VALUE_RANGE_MIN_MAX_INCLUSIVE
A constant returned by
getAttributeValueType and
getObjectValueType to indicate that the attribute
or user object may be set a range of values. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canNodeAppear(String elementName,
ImageTypeSpecifier imageType)
Returns
true if the element (and the subtree below
it) is allowed to appear in a metadata document for an image of
the given type, defined by an ImageTypeSpecifier . |
int |
getAttributeDataType(String elementName,
String attrName)
Returns one of the constants starting with
DATATYPE_ , indicating the format and
interpretation of the value of the given attribute within th
enamed element. |
String |
getAttributeDefaultValue(String elementName,
String attrName)
Returns the default value of the named attribute, if it is not
explictly present within the named element, as a
String , or null if no default value
is available. |
String |
getAttributeDescription(String elementName,
String attrName,
Locale locale)
Returns a
String containing a description of the
named attribute, or null . |
String[] |
getAttributeEnumerations(String elementName,
String attrName)
Returns an array of
String s containing the legal
enumerated values for the given attribute within the named
element. |
int |
getAttributeListMaxLength(String elementName,
String attrName)
Returns the maximum number of list items that may be used to
define this attribute.
|
int |
getAttributeListMinLength(String elementName,
String attrName)
Returns the minimum number of list items that may be used to
define this attribute.
|
String |
getAttributeMaxValue(String elementName,
String attrName)
Returns the maximum legal value for the attribute.
|
String |
getAttributeMinValue(String elementName,
String attrName)
Returns the minimum legal value for the attribute.
|
String[] |
getAttributeNames(String elementName)
Returns an array of
String s listing the names of
the attributes that may be associated with the named element. |
int |
getAttributeValueType(String elementName,
String attrName)
Returns one of the constants starting with
VALUE_ ,
indicating whether the values of the given attribute within the
named element are arbitrary, constrained to lie within a
specified range, constrained to be one of a set of enumerated
values, or are a whitespace-separated list of arbitrary values. |
String[] |
getChildNames(String elementName)
Returns an array of
String s indicating the names
of the element which are allowed to be children of the named
element, in the order in which they should appear. |
int |
getChildPolicy(String elementName)
Returns one of the constants starting with
CHILD_POLICY_ , indicating the legal pattern of
children for the named element. |
String |
getElementDescription(String elementName,
Locale locale)
Returns a
String containing a description of the
named element, or null . |
int |
getElementMaxChildren(String elementName)
Returns the maximum number of children of the named element
with child policy
CHILD_POLICY_REPEAT . |
int |
getElementMinChildren(String elementName)
Returns the minimum number of children of the named element
with child policy
CHILD_POLICY_REPEAT . |
int |
getObjectArrayMaxLength(String elementName)
Returns the maximum number of array elements that may be used
to define the
Object reference within the named
element. |
int |
getObjectArrayMinLength(String elementName)
Returns the minimum number of array elements that may be used
to define the
Object reference within the named
element. |
Class<?> |
getObjectClass(String elementName)
Returns the
Class type of the Object
reference stored within the element. |
Object |
getObjectDefaultValue(String elementName)
Returns an
Object s containing the default
value for the Object reference within
the named element. |
Object[] |
getObjectEnumerations(String elementName)
Returns an array of
Object s containing the legal
enumerated values for the Object reference within
the named element. |
Comparable<?> |
getObjectMaxValue(String elementName)
Returns the maximum legal value for the
Object
reference within the named element. |
Comparable<?> |
getObjectMinValue(String elementName)
Returns the minimum legal value for the
Object
reference within the named element. |
int |
getObjectValueType(String elementName)
Returns one of the enumerated values starting with
VALUE_ , indicating the type of values
(enumeration, range, or array) that are allowed for the
Object reference. |
String |
getRootName()
Returns the name of the root element of the format.
|
boolean |
isAttributeRequired(String elementName,
String attrName)
Returns
true if the named attribute must be
present within the named element. |
static final int CHILD_POLICY_EMPTY
getChildPolicy
to indicate
that an element may not have any children. In other words, it
is required to be a leaf node.static final int CHILD_POLICY_ALL
getChildPolicy
to indicate
that an element must have a single instance of each of its
legal child elements, in order. In DTD terms, the contents of
the element are defined by a sequence a,b,c,d,...
.static final int CHILD_POLICY_SOME
getChildPolicy
to indicate
that an element must have zero or one instance of each of its
legal child elements, in order. In DTD terms, the contents of
the element are defined by a sequence
a?,b?,c?,d?,...
.static final int CHILD_POLICY_CHOICE
getChildPolicy
to indicate
that an element must have zero or one children, selected from
among its legal child elements. In DTD terms, the contents of
the element are defined by a selection
a|b|c|d|...
.static final int CHILD_POLICY_SEQUENCE
getChildPolicy
to indicate
that an element must have a sequence of instances of any of its
legal child elements. In DTD terms, the contents of the
element are defined by a sequence (a|b|c|d|...)*
.static final int CHILD_POLICY_REPEAT
getChildPolicy
to indicate
that an element must have zero or more instances of its unique
legal child element. In DTD terms, the contents of the element
are defined by a starred expression a*
.static final int CHILD_POLICY_MAX
CHILD_POLICY_*
constant,
to be used for range checks.static final int VALUE_NONE
getObjectValueType
to
indicate the absence of a user object.static final int VALUE_ARBITRARY
getAttributeValueType
and
getObjectValueType
to indicate that the attribute
or user object may be set a single, arbitrary value.static final int VALUE_RANGE
getAttributeValueType
and
getObjectValueType
to indicate that the attribute
or user object may be set a range of values. Both the minimum
and maximum values of the range are exclusive. It is
recommended that ranges of integers be inclusive on both ends,
and that exclusive ranges be used only for floating-point data.static final int VALUE_RANGE_MIN_INCLUSIVE_MASK
VALUE_RANGE
to
obtain VALUE_RANGE_MIN_INCLUSIVE
, and with
VALUE_RANGE_MAX_INCLUSIVE
to obtain
VALUE_RANGE_MIN_MAX_INCLUSIVE
.
Similarly, the value may be and'ed with the value of
getAttributeValueType
or
getObjectValueType
to determine if the minimum
value of the range is inclusive.
static final int VALUE_RANGE_MAX_INCLUSIVE_MASK
VALUE_RANGE
to
obtain VALUE_RANGE_MAX_INCLUSIVE
, and with
VALUE_RANGE_MIN_INCLUSIVE
to obtain
VALUE_RANGE_MIN_MAX_INCLUSIVE
.
Similarly, the value may be and'ed with the value of
getAttributeValueType
or
getObjectValueType
to determine if the maximum
value of the range is inclusive.
static final int VALUE_RANGE_MIN_INCLUSIVE
getAttributeValueType
and
getObjectValueType
to indicate that the attribute
or user object may be set to a range of values. The minimum
(but not the maximum) value of the range is inclusive.static final int VALUE_RANGE_MAX_INCLUSIVE
getAttributeValueType
and
getObjectValueType
to indicate that the attribute
or user object may be set to a range of values. The maximum
(but not the minimum) value of the range is inclusive.static final int VALUE_RANGE_MIN_MAX_INCLUSIVE
getAttributeValueType
and
getObjectValueType
to indicate that the attribute
or user object may be set a range of values. Both the minimum
and maximum values of the range are inclusive. It is
recommended that ranges of integers be inclusive on both ends,
and that exclusive ranges be used only for floating-point data.static final int VALUE_ENUMERATION
getAttributeValueType
and
getObjectValueType
to indicate that the attribute
or user object may be set one of a number of enumerated values.
In the case of attributes, these values are
String
s; for objects, they are
Object
s implementing a given class or interface.
Attribute values of type DATATYPE_BOOLEAN
should be marked as enumerations.
static final int VALUE_LIST
getAttributeValueType
and
getObjectValueType
to indicate that the attribute
or user object may be set to a list or array of values. In the
case of attributes, the list will consist of
whitespace-separated values within a String
; for
objects, an array will be used.static final int DATATYPE_STRING
getAttributeDataType
indicating that the value of an attribute is a general Unicode
string.static final int DATATYPE_BOOLEAN
getAttributeDataType
indicating that the value of an attribute is one of the boolean
values 'true' or 'false'.
Attribute values of type DATATYPE_BOOLEAN should be marked as
enumerations, and the permitted values should be the string
literal values "TRUE" or "FALSE", although a plugin may also
recognise lower or mixed case equivalents.static final int DATATYPE_INTEGER
getAttributeDataType
indicating that the value of an attribute is a string
representation of an integer.static final int DATATYPE_FLOAT
getAttributeDataType
indicating that the value of an attribute is a string
representation of a decimal floating-point number.static final int DATATYPE_DOUBLE
getAttributeDataType
indicating that the value of an attribute is a string
representation of a double-precision decimal floating-point
number.String getRootName()
String
.boolean canNodeAppear(String elementName, ImageTypeSpecifier imageType)
true
if the element (and the subtree below
it) is allowed to appear in a metadata document for an image of
the given type, defined by an ImageTypeSpecifier
.
For example, a metadata document format might contain an
element that describes the primary colors of the image, which
would not be allowed when writing a grayscale image.elementName
- the name of the element being queried.imageType
- an ImageTypeSpecifier
indicating
the type of the image that will be associated with the
metadata.true
if the node is meaningful for images
of the given type.int getElementMinChildren(String elementName)
CHILD_POLICY_REPEAT
. For
example, an element representing color primary information
might be required to have at least 3 children, one for each
primay.elementName
- the name of the element being queried.int
.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if the named element does
not have a child policy of CHILD_POLICY_REPEAT
.int getElementMaxChildren(String elementName)
CHILD_POLICY_REPEAT
. For
example, an element representing an entry in an 8-bit color
palette might be allowed to repeat up to 256 times. A value of
Integer.MAX_VALUE
may be used to specify that
there is no upper bound.elementName
- the name of the element being queried.int
.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if the named element does
not have a child policy of CHILD_POLICY_REPEAT
.String getElementDescription(String elementName, Locale locale)
String
containing a description of the
named element, or null
. The desciption will be
localized for the supplied Locale
if possible.
If locale
is null
, the current
default Locale
returned by Locale.getLocale
will be used.
elementName
- the name of the element.locale
- the Locale
for which localization
will be attempted.IllegalArgumentException
- if elementName
is null
, or is not a legal element name for this format.int getChildPolicy(String elementName)
CHILD_POLICY_
, indicating the legal pattern of
children for the named element.elementName
- the name of the element being queried.CHILD_POLICY_*
constants.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.String[] getChildNames(String elementName)
String
s indicating the names
of the element which are allowed to be children of the named
element, in the order in which they should appear. If the
element cannot have children, null
is returned.elementName
- the name of the element being queried.String
s, or null.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.String[] getAttributeNames(String elementName)
String
s listing the names of
the attributes that may be associated with the named element.elementName
- the name of the element being queried.String
s.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.int getAttributeValueType(String elementName, String attrName)
VALUE_
,
indicating whether the values of the given attribute within the
named element are arbitrary, constrained to lie within a
specified range, constrained to be one of a set of enumerated
values, or are a whitespace-separated list of arbitrary values.elementName
- the name of the element being queried.attrName
- the name of the attribute being queried.VALUE_*
constants.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if attrName
is
null
or is not a legal attribute name for this
element.int getAttributeDataType(String elementName, String attrName)
DATATYPE_
, indicating the format and
interpretation of the value of the given attribute within th
enamed element. If getAttributeValueType
returns
VALUE_LIST
, then the legal value is a
whitespace-spearated list of values of the returned datatype.elementName
- the name of the element being queried.attrName
- the name of the attribute being queried.DATATYPE_*
constants.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if attrName
is
null
or is not a legal attribute name for this
element.boolean isAttributeRequired(String elementName, String attrName)
true
if the named attribute must be
present within the named element.elementName
- the name of the element being queried.attrName
- the name of the attribute being queried.true
if the attribut must be present.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if attrName
is
null
or is not a legal attribute name for this
element.String getAttributeDefaultValue(String elementName, String attrName)
String
, or null
if no default value
is available.elementName
- the name of the element being queried.attrName
- the name of the attribute being queried.String
containing the default value, or
null
.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if attrName
is
null
or is not a legal attribute name for this
element.String[] getAttributeEnumerations(String elementName, String attrName)
String
s containing the legal
enumerated values for the given attribute within the named
element. This method should only be called if
getAttributeValueType
returns
VALUE_ENUMERATION
.elementName
- the name of the element being queried.attrName
- the name of the attribute being queried.String
s.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if attrName
is
null
or is not a legal attribute name for this
element.IllegalArgumentException
- if the given attribute is
not defined as an enumeration.String getAttributeMinValue(String elementName, String attrName)
getAttributeValueType
. The value is
returned as a String
; its interpretation is
dependent on the value of getAttributeDataType
.
This method should only be called if
getAttributeValueType
returns
VALUE_RANGE_*
.elementName
- the name of the element being queried.attrName
- the name of the attribute being queried.String
containing the smallest legal
value for the attribute.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if attrName
is
null
or is not a legal attribute name for this
element.IllegalArgumentException
- if the given attribute is
not defined as a range.String getAttributeMaxValue(String elementName, String attrName)
getAttributeValueType
. The value is
returned as a String
; its interpretation is
dependent on the value of getAttributeDataType
.
This method should only be called if
getAttributeValueType
returns
VALUE_RANGE_*
.elementName
- the name of the element being queried, as a
String
.attrName
- the name of the attribute being queried.String
containing the largest legal
value for the attribute.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if attrName
is
null
or is not a legal attribute name for this
element.IllegalArgumentException
- if the given attribute is
not defined as a range.int getAttributeListMinLength(String elementName, String attrName)
String
containing multiple whitespace-separated
items. This method should only be called if
getAttributeValueType
returns
VALUE_LIST
.elementName
- the name of the element being queried.attrName
- the name of the attribute being queried.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if attrName
is
null
or is not a legal attribute name for this
element.IllegalArgumentException
- if the given attribute is
not defined as a list.int getAttributeListMaxLength(String elementName, String attrName)
Integer.MAX_VALUE
may be used to specify that
there is no upper bound. The attribute itself is defined as a
String
containing multiple whitespace-separated
items. This method should only be called if
getAttributeValueType
returns
VALUE_LIST
.elementName
- the name of the element being queried.attrName
- the name of the attribute being queried.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if attrName
is
null
or is not a legal attribute name for this
element.IllegalArgumentException
- if the given attribute is
not defined as a list.String getAttributeDescription(String elementName, String attrName, Locale locale)
String
containing a description of the
named attribute, or null
. The desciption will be
localized for the supplied Locale
if possible.
If locale
is null
, the current
default Locale
returned by Locale.getLocale
will be used.
elementName
- the name of the element.attrName
- the name of the attribute.locale
- the Locale
for which localization
will be attempted.IllegalArgumentException
- if elementName
is null
, or is not a legal element name for this format.IllegalArgumentException
- if attrName
is
null
or is not a legal attribute name for this
element.int getObjectValueType(String elementName)
VALUE_
, indicating the type of values
(enumeration, range, or array) that are allowed for the
Object
reference. If no object value can be
stored within the given element, the result of this method will
be VALUE_NONE
.
Object
references whose legal values are
defined as a range must implement the Comparable
interface.
elementName
- the name of the element being queried.VALUE_*
constants.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.Comparable
Class<?> getObjectClass(String elementName)
Class
type of the Object
reference stored within the element. If this element may not
contain an Object
reference, an
IllegalArgumentException
will be thrown. If the
class type is an array, this field indicates the underlying
class type (e.g, for an array of int
s, this
method would return int.class
).
Object
references whose legal values are
defined as a range must implement the Comparable
interface.
elementName
- the name of the element being queried.Class
object.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if the named element cannot
contain an object value (i.e., if
getObjectValueType(elementName) == VALUE_NONE
).Object getObjectDefaultValue(String elementName)
Object
s containing the default
value for the Object
reference within
the named element.elementName
- the name of the element being queried.Object
.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if the named element cannot
contain an object value (i.e., if
getObjectValueType(elementName) == VALUE_NONE
).Object[] getObjectEnumerations(String elementName)
Object
s containing the legal
enumerated values for the Object
reference within
the named element. This method should only be called if
getObjectValueType
returns
VALUE_ENUMERATION
.
The Object
associated with a node that accepts
emuerated values must be equal to one of the values returned by
this method, as defined by the ==
operator (as
opposed to the Object.equals
method).
elementName
- the name of the element being queried.Object
s.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if the named element cannot
contain an object value (i.e., if
getObjectValueType(elementName) == VALUE_NONE
).IllegalArgumentException
- if the Object
is not defined as an enumeration.Comparable<?> getObjectMinValue(String elementName)
Object
reference within the named element. Whether this value is
inclusive or exclusive may be determined by the value of
getObjectValueType
. This method should only be
called if getObjectValueType
returns one of the
constants starting with VALUE_RANGE
.elementName
- the name of the element being queried.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if the named element cannot
contain an object value (i.e., if
getObjectValueType(elementName) == VALUE_NONE
).IllegalArgumentException
- if the Object
is not defined as a range.Comparable<?> getObjectMaxValue(String elementName)
Object
reference within the named element. Whether this value is
inclusive or exclusive may be determined by the value of
getObjectValueType
. This method should only be
called if getObjectValueType
returns one of the
constants starting with VALUE_RANGE
.elementName
- the name of the element being queried.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if the named element cannot
contain an object value (i.e., if
getObjectValueType(elementName) == VALUE_NONE
).IllegalArgumentException
- if the Object
is not defined as a range.int getObjectArrayMinLength(String elementName)
Object
reference within the named
element. This method should only be called if
getObjectValueType
returns
VALUE_LIST
.elementName
- the name of the element being queried.Object
reference.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if the named element cannot
contain an object value (i.e., if
getObjectValueType(elementName) == VALUE_NONE
).IllegalArgumentException
- if the Object
is not
an array.int getObjectArrayMaxLength(String elementName)
Object
reference within the named
element. A value of Integer.MAX_VALUE
may be used
to specify that there is no upper bound. This method should
only be called if getObjectValueType
returns
VALUE_LIST
.elementName
- the name of the element being queried.Object
reference.IllegalArgumentException
- if elementName
is null
or is not a legal element name for this
format.IllegalArgumentException
- if the named element cannot
contain an object value (i.e., if
getObjectValueType(elementName) == VALUE_NONE
).IllegalArgumentException
- if the Object
is not
an array. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved.


South Africa’s ex-security minister arrested for corruption
by AFPMore by this AuthorJohannesburg. South Africa's elite police on Thursday arrested a senior lawmaker and ex-state security minister for graft, the first such high-profile arrest in recent years.
Bongani Bongo, a close ally of former president Jacob Zuma, is accused of offering a bribe to a lawyer who was building the state's case in a 2017 parliamentary inquiry into the troubled state-owned power utility Eskom.
"The charges are that he offered money to (an) advocate... which (the prosecutor) refused, that is the charge of corruption that we have against him now," prosecutions spokesman Eric Ntabazalila told state broadcaster SABC in Cape Town.
Bongo, who currently chairs the home affairs committee in parliament, appeared before a magistrate court and was freed on bail of 5,000 rand (306 euros, $340).
He was ordered to return to court on January 31.
Zuma appointed Bongo state security minister just two weeks after he allegedly tried to bribe lawyer Nthutuzela Vanara during a parliamentary probe into Eskom. He lasted only four months in the job before he was removed in a cabinet reshuffle.
Advertisement
Under Zuma, state-owned companies were at the centre of corruption scandals known as "state capture".
Zuma was forced to resign as president in February 2018 by the ruling African National Congress (ANC) party after a nine-year reign marred by corruption allegations and dwindling popularity.
Anti-graft watchdog Corruption Watch welcomed the arrest, saying it points to the commitment of President Cyril Ramaphosa's administration to tackle graft.
"The fact that a high-profile political figure like Bongo has been arrested is very encouraging," Corruption Watch executive David Lewis told AFP.
"There is determination on the part of the law enforcement basically to start enforcing the law," he said.


|
My Project
|
A description of the body of a loop. More...
#include <blockaction.hh>
Public Member Functions | |
| LoopBody (FlowBlock *h) | |
| Construct with a loop head. | |
| FlowBlock * | getHead (void) const |
| Return the head FlowBlock of the loop. | |
| FlowBlock * | getCurrentBounds (FlowBlock **top, FlowBlock *graph) |
| Return current loop bounds (head and bottom). More... | |
| void | addTail (FlowBlock *bl) |
| Add a tail to the loop. | |
| FlowBlock * | getExitBlock (void) const |
| Get the exit FlowBlock or NULL. | |
| void | findBase (vector< FlowBlock *> &body) |
| Mark the body FlowBlocks of this loop. More... | |
| void | extend (vector< FlowBlock *> &body) const |
| Extend body (to blocks that never exit) More... | |
| void | findExit (const vector< FlowBlock *> &body) |
| Choose the exit block for this loop. More... | |
| void | orderTails (void) |
| Find preferred tail. More... | |
| void | labelExitEdges (const vector< FlowBlock *> &body) |
| Label edges that exit the loop. More... | |
| void | labelContainments (const vector< FlowBlock *> &body, const vector< LoopBody *> &looporder) |
| Record any loops that body contains. More... | |
| void | emitLikelyEdges (list< FloatingEdge > &likely, FlowBlock *graph) |
| Collect likely unstructured edges. More... | |
| void | setExitMarks (FlowBlock *graph) |
| Mark all the exits to this loop. More... | |
| void | clearExitMarks (FlowBlock *graph) |
| Clear the mark on all the exits to this loop. More... | |
| bool | operator< (const LoopBody &op2) const |
| Order loop bodies by depth. | |
Static Public Member Functions | |
| static void | mergeIdenticalHeads (vector< LoopBody *> &looporder) |
| Merge loop bodies that share the same head. More... | |
| static bool | compare_ends (LoopBody *a, LoopBody *b) |
| Compare the head then tail. More... | |
| static int4 | compare_head (LoopBody *a, FlowBlock *looptop) |
| Compare just the head. More... | |
| static LoopBody * | find (FlowBlock *looptop, const vector< LoopBody *> &looporder) |
| Find a LoopBody. More... | |
| static void | clearMarks (vector< FlowBlock *> &body) |
| Clear the body marks. More... | |
A description of the body of a loop.
Following Tarjan, assuming there are no irreducible edges, a loop body is defined by the head (or entry-point) and 1 or more tails, which each have a back edge into the head.
| void LoopBody::clearExitMarks | ( | FlowBlock * | graph | ) |
Clear the mark on all the exits to this loop.
This clears the f_loop_exit_edge on any edge exiting this loop.
| graph | is the containing control-flow structure |
|
static |
Clear the body marks.
| body | is the list of FlowBlock nodes that have been marked |
Compare just the head.
Compare two loops based on the indices of the head
| a | is the first LoopBody to compare |
| looptop | is the second |
| void LoopBody::emitLikelyEdges | ( | list< FloatingEdge > & | likely, |
| FlowBlock * | graph | ||
| ) |
Collect likely unstructured edges.
Add edges that exit from this loop body to the list of likely gotos, giving them the proper priority.
| likely | will hold the exit edges in (reverse) priority order |
| graph | is the containing control-flow graph |
| void LoopBody::extend | ( | vector< FlowBlock *> & | body | ) | const |
Extend body (to blocks that never exit)
Extend the body of this loop to every FlowBlock that can be reached only from head without hitting the exitblock. Assume body has been filled out by findBase() and that all these blocks have their mark set.
| body | contains the current loop body and will be extended |
Find a LoopBody.
Given the top FlowBlock of a loop, find corresponding LoopBody record from an ordered list. This assumes mergeIdenticalHeads() has been run so that the head is uniquely identifying.
| looptop | is the top of the loop |
| looporder | is the ordered list of LoopBody records |
| void LoopBody::findBase | ( | vector< FlowBlock *> & | body | ) |
Mark the body FlowBlocks of this loop.
Collect all FlowBlock nodes that reach a tail of the loop without going through head. Put them in a list and mark them.
| body | will contain the body nodes |
| void LoopBody::findExit | ( | const vector< FlowBlock *> & | body | ) |
Choose the exit block for this loop.
A structured loop is allowed at most one exit block: pick this block. First build a set of trial exits, preferring from a tail, then from head, then from the middle. If there is no containing loop, just return the first such exit we find.
| body | is the list FlowBlock objects in the loop body, which we assume are marked. |
Return current loop bounds (head and bottom).
This updates the head and tail nodes to FlowBlock in the current collapsed graph. This returns the first tail and passes back the head.
| top | is where head is passed back |
| graph | is the containing control-flow structure |
| void LoopBody::labelContainments | ( | const vector< FlowBlock *> & | body, |
| const vector< LoopBody *> & | looporder | ||
| ) |
Record any loops that body contains.
Search for any loop contained by this and update is depth and immed_container field.
| body | is the set of FlowBlock nodes making up this loop |
| looporder | is the list of known loops |
| void LoopBody::labelExitEdges | ( | const vector< FlowBlock *> & | body | ) |
Label edges that exit the loop.
Label any edge that leaves the set of nodes in body. Put the edges in priority for removal, middle exit at front, head exit, then tail exit. We assume all the FlowBlock nodes in body have been marked.
| body | is list of nodes in this loop body |
|
static |
| void LoopBody::orderTails | ( | void | ) |
Find preferred tail.
The idea is if there is more than one tail for a loop, some tails are more "preferred" than others and should have their exit edges preserved longer and be the target of the DAG path. Currently we look for a single tail that has an outgoing edge to the exitblock and make sure it is the first tail.
| void LoopBody::setExitMarks | ( | FlowBlock * | graph | ) |
Mark all the exits to this loop.
Exit edges have their f_loop_exit_edge property set.
| graph | is the containing control-flow structure |


---
layout: post
esbma_id: 1587
title: Vault and CruiseControl.NET
date: 2006-04-18 15:53:47
---
- SourceGear developer Ian Olsen recently caved in to the peer pressure and
started blogging. :-)
- Ian has been working to make sure that Vault works very
well with CruiseControl.NET.
- He posted an entry
on his blog today with lots of details.


{{ unsupported }} is ridiculously large and WILL crash your browser.
Until we have fixed this issue, searches for {{query}} are unsupported at this time.
If you really want to see a big gene, check out SYNE1 (the second biggest gene) instead.
{% else %}
To report a bug, please file an issue on Github.
{% endif %}


Cesar Kyle Casil received his Bachelor of Science degree in Computer Science from the University of California, Santa Cruz and is now practicing full stack web development in iOS and using the MEAN (MongoDB, Express, Angular, Node.js) stack. Since coming from both an accredited university and a coding bootcamp, he has not only acquired a unique set of skills, but has learned the importance of how they lead to success within the tech industry. Both institutions provided experience in working and leading small teams using agile software programming. His primary goal is to contribute his passion for programming towards a company's vision while expanding on his technical skills.
Personal portfolio
Notes on various topics based around Computer Science
Latest Additions: SEO, PHP, PSQL, Git, JSON...
Portfolio for Academy of Art student to display her studies in fashion journalism
Personal iOS application to aid in daily workout programs
Includes a user profile, kg/lb conversion calculator, exercise database, barbell calculator, and a log of main liftsPublic website for the non-profit organization Love Changing the World, Inc.
Allows donations through PayPal in exchange for apparel with LCTW branding


Graendal wished there had been even a simple transcriber among the things she had removed from Illian after Sammael’s death. This Age was frightful usually, primitive and uncomfortable. Still, some of it suited her. In a large bamboo cage at the far end of the room a hundred brightly plumaged birds sang melodiously, almost as beautiful in their multicolored flitting as her two pets in transparent robes who waited on either side of the door, their gazes locked on her, eager to serve her pleasure. If oil lamps did not give the same light as glowbulbs, aided by large mirrors on the walls they produced a certain barbaric splendor with the gilded fish-scale ceiling. It would have been nice to need only speak the words, but actually putting them on paper with her own hand produced a pleasure akin to that she felt in sketching. The script of this Age was quite simple, and learning to duplicate another’s style had been no more difficult.
Signing with a flourish—not her own name, of course—she sanded the thick page, then folded it and sealed it with one of the signet rings of various sizes that made a decorative line across the writing table. The Hand and Sword of Arad Doman impressed on an irregular circle of blue-and-green wax.
“Take this to Lord Ituralde with all speed,” she said, “and say only what I told you.”
“As fast as horses can carry me, my Lady.” Nazran bowed as he took the letter, one finger stroking thin black mustaches above a winning smile. Square and deeply brown in a well-fitting blue coat, he was handsome; just not sufficiently handsome. “I received this from the Lady Tuva, who died of her wounds after telling me that she was a courier from Alsalam and had been attacked by a Gray Man.”
“Make sure there is human blood on it,” she admonished. She doubted anyone in this time could tell human blood from any other, but she had found too many surprises to take an unnecessary chance. “Enough for realism; not enough to spoil what I wrote.”
His black eyes lingered warmly on her as he bowed again, but as soon as he straightened he hurried to the door, boots thudding on the pale yellow marble floor. He did not notice the servants with their eyes fixed ardently on her, or affected not to notice, though he had once been a friend of the young man. Only a touch of Compulsion had been needed to make Nazran nearly as avid to obey as they, not to mention certain that he might yet taste her charms again. She laughed softly. Well, he believed he had tasted them; just a little prettier, and he might have. Of course, he would have been useless for anything else then. He would ride horses to death reaching Ituralde, and if that message, delivered by Alsalam’s close cousin, supposedly coming from the King himself and with Gray Men trying to stop it, did not satisfy the Great Lord’s command to increase chaos, nothing would, short of balefire. And it would serve her own ends very nicely as well. Her own ends.
Graendal’s hand went to the only ring on the table that was not a signet, a plain golden band too small for any but her little finger. It had been a pleasant surprise to find an angreal attuned to women among Sammael’s possessions. A pleasant surprise to have time to find much of anything useful with al’Thor and those puppies who called themselves Asha’man constantly in and out of Sammael’s chambers in the Great Hall of the Council. They had stripped it bare of what she had not taken. Dangerous puppies, all of them, especially al’Thor. And she had not wanted to risk anyone being able to draw a line from Sammael to her. Yes, she must increase the pace of her own plans, and distance herself from Sammael’s disaster.
Abruptly a vertical slash of silver appeared at the far end of the room, bright against the tapestries hanging between the heavy gilded mirrors, and a crystalline chime rang aloud. Her eyebrows rose in surprise. Someone remembered the courtesies of a more civilized Age, it seemed. Standing, she forced the plain band of gold down against the ruby ring on her smallest finger and embraced saidar through it before channeling the web that would sound an answering chime for whoever wanted to open a gateway. The angreal did not offer much, yet anyone who thought they knew her strength would find a shock.
The gateway opened, and two women in nearly identical red-and-black silk dresses stepped through warily. At least, Moghedien moved cautiously, dark eyes flickering in search of traps, hands smoothing her wide skirts; the gateway winked out after a moment, but she held on to saidar. A sensible precaution, though Moghedien had always been a great one for precautions. Graendal did not let go of the Source, either. Moghedien’s companion, a short young woman with long silver hair and vivid blue eyes, stared about her coldly, hardly more than glancing in Graendal’s direction. By her demeanor, she might have been a Prime Counselor forced to endure the company of common laborers and intent on ignoring their existence. A foolish girl, to imitate the Spider. Red and black did not suit her coloring, and she should have made better use of such an impressive bosom.
“This is Cyndane, Graendal,” Moghedien said. “We are . . . working together.” She did not smile when she named the haughty young woman, but Graendal did. A pretty name for a more than pretty girl, but what twist of fate had led some mother of this time to give her daughter a name that meant “Last Chance”? Cyndane’s face remained cold and smooth, but her eyes flared. A beautiful doll carved from ice, with hidden fires. It seemed she knew the meaning and did not like it.
“What brings you and your friend, Moghedien?” Graendal asked. The Spider was the very last she had expected to come out from the shadows. “Have no fear of speaking in front of my servants.” She gestured, and the pair by the door sank to their knees, pressed their faces to the floor. They would not quite fall dead by her simple command, but close.
“What interest can you find in them when you destroy anything that might make them interesting?” Cyndane demanded, striding arrogantly across the floor. She held herself very straight, striving for every hair of height. “Do you know that Sammael is dead?”
Graendal kept her own face smooth, with a little effort. She had supposed this girl some Friend of the Dark whom Moghedien had picked up to run errands, perhaps a noble who thought her title counted, but now that she was close . . . The girl was stronger in the One Power than she herself! Even in her own Age, that had been uncommon among men, and very rare indeed among women. On the instant, on instinct, she changed her intention to deny any contact with Sammael.
“I suspected,” she replied, directing a false smile over the young woman’s head at Moghedien. How much did she know? Where had the Spider found a girl so much stronger than she, and why was she traveling with her? Moghedien had always been jealous of anyone with more strength. Or more of anything. “He used to visit me, importuning my help in one mad plan or another. I never rejected him outright; you know Sammael is—was—a dangerous man to reject. He appeared every few days without fail, and when he stopped, I assumed something dire had happened to him. Who is this girl, Moghedien? A remarkable find.”
The young woman stepped closer, staring up at her with eyes like blue fire.  That is all you need know.” The girl knew she spoke to one of the Chosen, and yet her tone remained frost. Even given her strength, this was no simple Friend of the Dark. Unless she was insane. “Have you paid attention to the weather, Graendal?”
Abruptly, Graendal realized that Moghedien was letting the girl do all the talking. Hanging back until a weakness became apparent. And Graendal had been letting her! “I do not suppose you came to tell me of Sammael’s death, Moghedien,” she said sharply. “Or to talk about weather. You know I seldom go outside.” Nature was unruly, lacking order. There were not even windows in this room, nor in most that she used. “What do you want?” The dark-haired woman was edging sideways along the wall; the glow of the One Power still surrounded her. Graendal stepped casually so that both remained in her sight.
“You make a mistake, Graendal.” A chilly smile barely curved Cyndane’s full lips; she was enjoying this. “I lead between us. Moghedien is in a bad odor with Moridin for her recent mistakes.”
Wrapping her arms around herself, Moghedien shot the silver-haired little woman a scowl as good as any spoken confirmation. Suddenly Cyndane’s big eyes opened even wider, and she gasped, shuddering.
Moghedien’s glare turned malicious. “You lead for the moment,” she sneered.  And then she gave a start and shivered, biting her lip.
Was she being toyed with, Graendal wondered. The pure hatred for each other on the two women’s faces seemed unfeigned. Either way, she would see how they enjoyed being played. Unconsciously rubbing her hands together, rubbing the angreal on her finger, she moved to a chair without taking her eyes from the pair. The sweetness of saidar flowing into her was a comfort. Not that she needed comfort, but there was something odd here. The high straight back, thickly carved and gilded, made the chair seem a throne, though it was no different from any other in the room. Such things affected even the most sophisticated on levels they never knew consciously.
She sat leaning back with her leg’s crossed, one foot kicking idly, the picture of a woman at her ease, and made her voice bored. “Since you lead, child, tell me, when this man who calls himself Death is in his skin, who is he? What is he?”
“Moridin is Nae’blis.” The girl’s voice was calm and cold and arrogant. “The Great Lord has decided it is time for you to serve the Nae’blis, too.”
Graendal jerked upright. “This is preposterous.” She could not keep the anger from her voice. “A man I’ve never heard of has been named the Great Lord’s Regent on Earth?” She did not mind when others tried to manipulate her—she always found a way to turn their schemes against them—but Moghedien must take her for a half-wit! She had no doubt that Moghedien was directing this obnoxious girl, whatever they claimed, whatever looks they stabbed at each other. “I serve the Great Lord and myself, no other! I think the two of you should go, now, and play your little game elsewhere. Demandred might be diverted by it. Or Semirhage? Be careful how you channel in leaving; I have set a few inverted webs, and you would not want to trigger one.”
That was a lie, but a very believable one, so it came as a shock when Moghedien suddenly channeled and every lamp in the room went out, plunging them into darkness. Instantly Graendal flung herself from the chair so as not to be where they had last seen her, and she also channeled even as she moved, weaving a web of light that hung to one side, a sphere of pure white that cast lurid shadows about the room. And revealed the pair clearly. Without hesitation, she channeled again, drawing the full strength of the little ring. She did not need it all, or even most, but she wanted every advantage she could find. Attack her, would they! A net of Compulsion tightened on each of them before they could twitch.
She had spun the nets strong, for anger’s sake, nearly strong enough to do harm, and the women stood staring at her adoringly, eyes wide and mouths hanging open in adulation, intoxicated with worship. They were hers to command, now. If she told them to cut their own throats, they would. Suddenly Graendal realized that Moghedien was no longer embracing the Source. This much Compulsion might have shocked her into letting go. The servants by the door had not moved, of course.
“Now,” she said a touch breathlessly, “you will answer my questions.” She had a number, including who was this Moridin fellow, if there was such a man, and where had Cyndane come from, but one piqued her more than the rest. “What did you hope to gain by this, Moghedien? I may decide to knot those webs on you. You can pay for your game by serving me.”
“No, please,” Moghedien groaned, wringing her hands. She actually began to weep!  Please, you must serve the Nae’blis! That is what we came for. To bring you to Moridin’s service!” The silver-haired little woman’s face was a shadowed mask of terror in the pale light, her bosom heaving as she gulped breath.
Suddenly uneasy, Graendal opened her mouth. This made less and less sense by the moment. She opened her mouth, and the True Source vanished. The One Power vanished from her, and blackness swallowed the room again. Abruptly the caged birds broke into a frenzy of chirruping; their wings fluttered frantically against the bamboo bars.
Behind her, a voice rasped like rock being ground to dust. “The Great Lord thought you might not take their word, Graendal. The time when you could go your own way has passed.”  The mirrors did not shine; they seemed to dull in that light. The birds went still, silent; somehow, Graendal knew they had frozen in terror.
She gaped at the Myrddraal standing there, pale and eyeless and clothed in black deeper than the ball, but larger than any she had ever seen. It had to be the reason she could not sense the Source, but that was impossible! Except . . . Where had that strange sphere of black light come from if not from it? She had never felt the same fear others did at a Myrddraal’s gaze, not to the same degree, yet her hands rose on their own, and she had to snatch them down to keep from covering her face. Glancing toward Moghedien and Cyndane, she flinched. They had adopted the same pose as her servants, crouching on their knees, heads to the floor toward the Myrddraal.
She had to work moisture into her mouth. “You are a messenger from the Great Lord?” Her voice was steady, but weak. She had never heard of such a thing, the Great Lord sending a message by Myrddraal, and yet . . . Moghedien was a physical coward, but still one of the Chosen, and she groveled as assiduously as the girl. And there was the light. Graendal found herself wishing her dress were not cut so low. Ridiculous, of course; Myrddraal’s appetites for women were well known, but she was one of the . . . Her eyes drifted to Moghedien once more.
The Myrddraal strode by her sinuously, seeming not to pay her any heed. Its long black cloak hung undisturbed by its movements. Aginor had thought the creatures were not quite in the world in the same way everything else was; “slightly out of phase with time and reality,” he had called it, whatever that meant.
“I am Shaidar Haran.” Stopping by her servants, the Myrddraal bent to grip them by the backs of their necks, one hand to each. “When I speak, you may consider that you hear the voice of the Great Lord of the Dark.” Those hands tightened to the surprisingly loud sound of cracking bone. The young man spasmed as he died, kicking out; the young woman merely went limp. They had been two of her prettiest. The Myrddraal straightened from the corpses. “I am his hand in this world, Graendal. When you stand before me, you stand before him.”
Graendal considered carefully, if quickly. She was afraid, an emotion she was far more used to inspiring in others, but she knew how to control her fear. While she had never commanded armies as some of the others had, she was neither a stranger to hazard nor a coward, yet this was more than a mere threat. Moghedien and Cyndane still knelt with their heads to the marble floor, Moghedien actually trembling visibly. Graendal believed this Myrddraal. Or whatever it truly was. The Great Lord was taking a more direct hand in events, as she had feared. And if he learned of her scheming with Sammael . . . If he chose to take action, that was; betting that he did not know was a foolish wager at this point.
She knelt smoothly before the Myrddraal. “What would you have me do?” Her voice had regained its strength. A necessary flexibility was not cowardice; those who did not bend for the Great Lord were bent. Or snapped in two. “Should I call you Great Master, or would you prefer another title? I would not feel comfortable addressing even the Great Lord’s hand as I would him.”
Shockingly, the Myrddraal laughed. It sounded like ice crumbling. Myrddraal never laughed. “You are braver than most. And wiser. Shaidar Haran will do for you. So long as you remember who I am. So long as you do not let bravery overcome your fear too far.”
As it issued its commands—a visit to this Moridin was first, it seemed; she would need to be on her guard against Moghedien, and perhaps Cyndane also, taking revenge for her brief use of Compulsion; she doubted the girl was any more forgiving than the Spider—she decided to keep to herself the letter she had sent to Rodel Ituralde. Nothing she was told indicated that her actions would be displeasing to the Great Lord, and she still had to consider her own position. Moridin, whoever he was, might be Nae’blis today, but there was always tomorrow.
Bracing herself against the rocking of Arilyn’s coach, Cadsuane moved one of the leather window curtains far enough to see out. A light rain fell on Cairhien from a gray sky full of blustering clouds and rough, swirling winds. Not only the sky was full of wind. Howling gusts rocked the coach more than did its forward motion. Tiny droplets stung her hand, cold as ice. If the air cooled a little more, there would be snow. She drew her woolen cloak closer; she had been pleased to find it, shoved to the bottom of her saddlebags. The air would cool.
The city’s steep slate roofs and stone-paved streets glistened wetly, and though the rain was not hard, few were willing to brave the strong winds. A woman guiding an ox-cart with taps of a long goad moved as patiently as her ox, but most people afoot clutched cloaks tightly, hoods pulled down, and stepped quickly as the bearers of a sedan chair rushed by, its stiff con fluttering. Others beside the woman and her ox saw no reason for haste, though. In the middle of the street a towering Aielman stood gaping at the sky in disbelief while the drizzle soaked him, so absorbed that a daring cutpurse sliced away his belt pouch and darted off unnoticed by his victim. A woman whose elaborately curled, high-piled hair marked her as noble walked along slowly, her cloak flapping wildly, and its long hood as well. This might have been the first time ever that she had actually walked in the streets, but she was laughing as the rain slicked her cheeks. From the doorway of a perfumer’s shop, the shopkeeper stared out disconsolately; she would do little business today. Most of the hawkers had vanished for the same reason, but a handful still hopefully cried hot tea and meat pies from barrows beneath makeshift awnings. Though anyone who bought a meat pie in the street these days deserved the bellyache she would get.
A pair of starving dogs ran out from an alley, stiff-legged and hackles up, barking and snarling at the coach. Cadsuane let the curtain fall. Dogs seemed to know women who could channel as easily as cats did, but dogs appeared to think the women were cats, if unnaturally large ones. The pair of women seated across from her were still in conversation.
“Forgive me,” Daigian was saying, “but the logic is inescapable.”  Her fingers plucked the white slashes in her dark skirts, and she spoke rapidly, as though afraid of being interrupted. “If you accept that the lingering heat was the Dark One’s work, the change must be by some other agency. He would not have relented. You might say that he has decided to freeze or drown the world instead of baking it, but why? Had the heat continued through spring, the dead might well have outnumbered the living, no different than if snow falls into the summer. Therefore, logically, some other hand is at work.” The plump woman’s diffidence was trying at times, but as always, Cadsuane found her logic impeccable. She just wished she knew whose hand and to what end.
“Peace!” Kumira muttered. “I would rather an ounce of hard proof than a hundredweight of your White Ajah logic.” She was Brown, herself, though little given to their usual failings. A handsome woman with short-cut hair, she was hardheaded and practical, a keen observer, and never lost herself so deeply in thought that she lost sight of the world around her as well. No sooner had Kumira spoken than she patted Daigian’s knee with a graceful hand, and gave a smile that changed her blue eyes from sharp to warm. Shienarans were a polite people, by and large, and Kumira took care not to offend. By accident, at least. “Put your mind to what we can do about the sisters held by the Aiel. I know you’ll reason out something if anyone can.”
Cadsuane snorted. “They deserve whatever happens to them.” She had not been allowed near the Aiel tents herself, nor had any of her companions, but some of the fools who had sworn fealty to the al’Thor boy had ventured out to the sprawling encampment and come back white-faced and torn between outrage and sicking up. Normally, she also would have been furious over the affront to Aes Sedai dignity, whatever the circumstances; not now. To achieve her goal, she would have run the entire White Tower through the streets naked. How could she concern herself with the discomfort of women who might have ruined everything?
Kumira opened her mouth to protest despite knowing her feelings, but Cadsuane went on, calm yet relentless. “Perhaps they’ll weep enough to atone for the dog’s dinner they made of matters, but I doubt it. They are out of our hands, and if they were in mine, I might just give them to the Aiel. Forget them, Daigian, and put that fine mind of yours on the track I set you.”
The Cairhienin woman’s pale cheeks flushed red at the compliment. Thank the Light she was not this way except with other sisters. Kumira sat silently, very smooth-faced, her hands in her lap. She might be subdued now, but little could subdue Kumira for long. They were exactly the pair Cadsuane wanted with her today.
The coach tilted as the team started up the long ramp leading to the Sun Palace. “Remember what I told you,” she told the other two firmly. “And have a care!”
They murmured that they would, as well they might, and she nodded. If need demanded, she would use them both for mulch, and others too, but she did not intend to lose either because they grew careless.
There was no bother or delay in letting the coach through the Palace gates. The guards recognized Arilyn’s sigil on the doors, and they knew who would be riding inside. That coach had been to the Palace often enough in the past week. The moment the horses halted, an anxious-eyed footman in unadorned black opened the coach door, holding out a broad flat parasol of dark oiled cloth. Rain dripped from the edge onto his bare head, but then, it was not intended for his shelter.
Quickly touching the ornaments dangling from the bun atop her head to be sure they were all there—she had never lost one, but that was because she was careful of them—Cadsuane gathered the handles of her square wicker sewing basket from beneath her seat and stepped down. Half a dozen footmen stood waiting behind the first, parasols at the ready. So many passengers would have crowded the coach beyond comfort, but the footmen were not about to be caught short, and the extra did not hurry away until it was plain there were only the three of them.
Obviously the coach had been seen coming. Dark-garbed serving men and women made a neat array on the deep blue and gold tiles of the great entry hall with its square-vaulted ceiling five spans high. They leaped forward, taking cloaks, offering small, warm linen towels in case anyone needed to dry face or hands, proffering Sea Folk porcelain goblets of mulled wine that gave off a heady scent of spices. A winter drink, yet the sudden drop in temperature made it suitable. And after all, it was winter. Finally.
Three Aes Sedai stood waiting to one side among the massive square columns of dark marble, in front of tall, pale friezes depicting battles no doubt important to Cairhien, but Cadsuane ignored the women for the time being. One of the young serving men had a small red-and-gold figure embroidered on the left breast of his coat, what people were calling a Dragon. Corgaide, the grave-faced, gray-haired woman who ordered the servants in the Sun Palace, wore no ornament save for the large ring of heavy keys at her waist. Nor did anyone else have any decoration on their clothes, and despite the young man’s apparent enthusiasm, it was Corgaide, the Holder of the Keys, who would set the mood among the servants. Still, she had allowed the young fellow his embroidery; a point to remember. Cadsuane spoke to her quietly, asking after a room where she might work her embroidery hoop undisturbed, and the woman did not blink at the request. But then, doubtless she had heard stranger, serving in this place.
As the servants with the cloaks and trays bowed and curtsied themselves off, Cadsuane finally turned to the three sisters among the columns. They were all looking at her, ignoring Kumira and Daigian. Corgaide remained, but she stayed well back, giving the Aes Sedai privacy. “I hardly expected to find you strolling about at your ease,” Cadsuane said. “I thought the Aiel worked their apprentices hard.”
 Events had shaken Merana so deeply that Cadsuane was unsure she would ever recover. Bera, of course, was very nearly unflappable.
“Most of us were given a freeday because of the rain,” Bera replied calmly. A sturdy woman in plain wool—fine and well-cut, but decidedly plain—you might have thought her more at home on a farm than in a palace. You might if you were a fool; Bera had a keen mind, a strong will, and Cadsuane did not believe she ever made the same mistake twice. Like most sisters, she had not entirely gotten over meeting Cadsuane Melaidhrin, alive and in the flesh, yet she did not let awe rule her. After only the slightest of deep breaths, she went on. “I cannot understand why you keep coming back, Cadsuane. Clearly, you want something from us, but unless you tell us what it is, we cannot help you. We know what you did for the Lord Dragon”—she stumbled a little over the title; they still were not quite sure what to call the boy—“but it’s obvious you came to Cairhien because of him, and until you tell us why and what you intend, you must understand that you’ll find no aid from us.” Faeldrin, another Green, gave a start at Bera’s bold tone, but she was nodding agreement before Bera finished.
“You must understand this, too,” Merana added, her serenity regained. “If we decide we must oppose you, we will.”  Perhaps she disagreed, and perhaps she did not want to reveal too much.
Cadsuane favored them with a thin smile. Tell them why and what? If they decided? So far they had managed to stuff themselves into young al’Thor’s saddlebags tied hand and foot, even Bera. Small recommendation for letting them decide so much as what to wear in the morning! “I did not come to see you,” she said. “Though I suppose Kumira and Daigian would enjoy a visit, since you have a freeday. You will excuse me.”
Motioning Corgaide to lead on, she followed the woman across the entry hall. She only glanced back once. Bera and the others had already gathered up Kumira and Daigian and were hustling them away, but hardly like welcome guests.  Cadsuane smiled. Most sisters considered Daigian little better than a wilder and treated her little better than a servant. In that company, Kumira hardly stood much higher. The most suspicious could not think they were there to try to convince anyone of anything. So Daigian would pour the tea and sit quietly except when addressed—and apply her excellent mind to everything she heard. Kumira would let everyone except Daigian speak before her—and sort and file away every word, every gesture and grimace. Bera and the rest would keep their oaths to the boy, of course—that went without saying—but how assiduously was another question. Even Merana might be unwilling to go too far beyond bare obedience. That was bad enough, yet it left considerable room for them to maneuver. Or be maneuvered.
Dark-liveried servants hurrying at their tasks along the broad, tapestry-hung hallways darted aside for Cadsuane and Corgaide, and the two of them progressed to a flurry of deep bows and curtsies made over baskets and trays and armloads of towels. From the way eyes watched Corgaide, Cadsuane suspected the deference was as much for the Holder of the Keys as for an Aes Sedai. There were a few Aiel about, too, huge men like cold-eyed lions and women like colder-eyed leopards. Some of those gazes followed her icily enough to bring on the snow threatened by the rain outside, but other Aiel nodded to her gravely, and here and there one of the fierce-eyed women went so far as to smile. She had never claimed to be responsible for saving their Car’a’carn, but tales became twisted in retelling, and the belief granted her more respect than any other sister, and certainly more freedom of movement around the Palace. She wondered how they would feel if they knew that had she had the boy in front of her right then, she would have been hard-pressed to stop herself from blistering his hide for him! Barely more than a week since he nearly got himself killed, and not only had he managed to elude her completely, he had made her task even more difficult, if half what she heard was true. A pity he had not been raised in Far Madding. But then, that might have led to its own catastrophe.
The room Corgaide took her to was comfortably warm, with fires blazing in marble fireplaces at either end of the chamber and lamps lit, mirrored flames in glass towers that chased the day’s gloom. Plainly Corgaide had sent orders ahead to prepare while she was waiting in the entry hall. A serving woman appeared almost as soon as they, with both hot tea and spiced wine on a tray, and small cakes glazed with honey.
“Will there be anything else, Aes Sedai?” Corgaide asked as Cadsuane set her sewing basket beside the tray on a table with edge and legs thickly gilded. Rigidly carved, too, as was the wide cornice, also covered with gilt. Cadsuane always felt she was in a golden fish weir when she visited Cairhien. Despite the light and warmth inside, rain dripping outside the tall narrow windows and the gray sky outside heightened the sensation.
“The tea will do nicely,” she said. “If you will, tell Alanna Mosvani that I want to see her. Tell her, without delay.”
Corgaide’s keys jingled as she curtsied, murmuring respectfully that she would find “Alanna Aes Sedai” herself. Her grave expression never altered as she left. Very likely she was examining the request for subtleties. Cadsuane preferred to be direct, when possible. She had tripped up any number of clever people who had not believed she meant exactly what she said.
Opening the lid of her sewing basket, she took out her embroidery hoop with a less than half-done piece of work wrapped around it. The basket had pockets woven inside to hold items that had nothing to do with sewing. Her ivory hand mirror and hairbrush and comb, a pen case and tightly stoppered ink bottle, a number of things that she had found useful to have at hand over the years, including some that would have surprised anyone with nerve enough to search the basket. Not that she often left it out of her sight. Setting the polished silver thread box carefully on the table, she selected the skeins she needed and sat with her back to the door. The major image on her piece of embroidery was finished, a man’s hand clutching the ancient symbol of the Aes Sedai. Cracks ran across the black-and-white disc, and there was no telling whether the hand was trying to hold it together or crush it. She knew what she intended, but time would tell what was truth.
Threading a needle, she set to work on one of the surrounding images, a bright red rose. Roses and starblaze and sunburst alternated with daisies and heartsblush and snowcap, all separated by bands of stark nettles and long-thorned briars. It would be a disturbing piece, when completed.
Before she had finished half a petal on the rose, a flash of motion reflected on the flat lid of the thread box caught her eye. It had been carefully placed to reflect the doorway. She did not raise her head from the hoop. Alanna stood there glaring at her back. Cadsuane continued the slow work of her needle, but she watched that reflection from the corner of her eye. Twice Alanna half turned as if to go, then finally drew herself up, visibly steeling herself.
“Come in, Alanna.”  “Stand there.” She smiled wryly as Alanna jumped. There were advantages to being a legend; people seldom noticed the obvious when dealing with a legend.
Alanna stalked into the room in a swish of silk skirts and took the place Cadsuane had indicated, but there was a sulky twist to her mouth. “Why do you persist in badgering me?” she demanded. “I cannot tell you any more than I have. And if I could, I don’t know that I would! He belongs to—!” She cut off abruptly, biting her lower lip, but she might as well have finished. The al’Thor boy belonged to her; her Warder. She had the gall to think that!
“I have kept your crime to myself,” Cadsuane said quietly, “but only because I saw no reason to complicate matters.” Lifting her eyes to the other woman, she kept her voice soft. “If you think that means I won’t core you like a cabbage, think again.”
Alanna stiffened. The light of saidar suddenly shone around her.
“If you wish to be truly foolish.” Cadsuane smiled, a cold smile. She made no move to embrace the Source herself. One of her dangling hair ornaments, intertwined golden crescents, was cool on her temple. “You keep a whole hide at present, but my sufferance is not infinite. In fact, it dangles by a thread.”
Alanna struggled with herself, unconsciously smoothing blue silk. Abruptly the glow of the Power winked out, and she turned her head away from Cadsuane so swiftly that her long black hair swung. “I don’t know any more to tell.” The sullen words rushed out of her breathily. “He was injured, and then not, but I don’t think a sister Healed him. The wounds no one could Heal are still there. He leaps about, Traveling, but he’s still in the south. Somewhere in Illian, I think, but at this distance, he could be in Tear for all I know. He’s full of rage, and pain, and suspicion. There isn’t any more, Cadsuane. There isn’t!”
Careful of the silver pitcher’s heat, Cadsuane poured a cup of tea, testing the thin green porcelain cup for warmth. As might have been expected in silver, the tea had cooled quickly. Channeling briefly, she heated it again. The dark tea tasted too much of mint; Cairhienin used mint entirely too freely in her opinion. She did not offer a cup to Alanna. Traveling. How could the boy have rediscovered what had been lost to the White Tower since the Breaking? “You will keep me fully informed, however, won’t you, Alanna.” That was not a question. “Look at me, woman! If you dream of him, I want every detail!”
Unshed tears glistened in Alanna’s eyes. “In my place, you would have done the same!”
Cadsuane scowled over the cup at her. She might have. There was no difference between what Alanna had done and a man forcing himself on a woman, but, the Light help her, she might have, had she believed it would help her reach her goal. Now, she no longer considered even making Alanna pass the bond to her. Alanna had proved how useless that was in controlling him.
“Do not keep me waiting, Alanna,” she said in an icy tone. She had no sympathy for the other woman. Alanna was another in a line of sisters, from Moiraine to Elaida, who had bungled and worsened what they should have been mending. While she herself had been off chasing first Logain Ablar and then Mazrim Taim. Which did not soothe her mood.
 Cadsuane itched to slap her. Alanna had worn the shawl almost forty years; she should have grown up more than this. Of course, she was Arafellin. In Far Madding, few girls of twenty sulked and pouted as much as an Arafellin could on her aged deathbed.
Abruptly, Alanna’s eyes widened in alarm, and Cadsuane saw another face reflected in the lid of her thread box. Setting the cup back on the tray and her embroidery hoop on the table, Cadsuane stood and turned to the door. She did not hurry, but she did not dally or play games as she had with Alanna, either.
“Are you done with her, Aes Sedai?” Sorilea asked, stepping into the room. The leathery, white-haired Wise One spoke to Cadsuane, but her eyes remained on Alanna. Ivory and gold clicked softly at her wrists as she planted hands on her hips, and her dark shawl slid to her elbows.
When Cadsuane said that she was indeed done, Sorilea gestured curtly to Alanna, who stalked from the room. Flounced might have been a better word, with sullen irritation on her face. Sorilea frowned after her. Cadsuane had encountered the woman before, and interesting encounters they had been, if brief. She had not met many people she considered formidable, but Sorilea was one. Perhaps even a match for herself, in some ways. She also suspected the woman was as old as she was, maybe older, and that, she had never expected to find.
No sooner had Alanna vanished than Kiruna appeared in the doorway, kicking gray silk skirts in her hurry and peering down the hall in the direction Alanna had gone. And carrying an intricately worked golden tray that held an even more elaborate golden pitcher with a high neck, and, incongruously, two small, white-glazed pottery cups. “Why is Alanna running?” she said. “I would have been faster, Sorilea, but—” She saw Cadsuane then, and her cheeks went the deepest possible crimson. Embarrassment looked quite odd on the statuesque woman.
“Put the tray on the table, girl,” Sorilea said, “and go to Chaelin. She will be waiting to give you your lessons.”
Stiffly, Kiruna set her burden down, avoiding Cadsuane’s eyes. As she turned to go, Sorilea caught her chin in sinewy fingers. “You have begun to make a true effort, girl,” the Wise One told her firmly. “If you continue, you will do very well. Very well. Now, go. Chaelin is not as patient as I.”
Sorilea waved toward the corridor, but Kiruna stood staring at her for a long moment, a strange expression on her face. If Cadsuane had had to make a wager, she would have called Kiruna pleased at the praise and surprised at being pleased. The white-haired woman opened her mouth, and Kiruna gave herself a shake and hurried from the room. A remarkable show.
“Do you really think she will learn your ways of weaving saidar?” Cadsuane asked, hiding her incredulity. Kiruna and the others had told her of these lessons, but many of the Wise Ones’ weaves were very different from those taught in the White Tower. The first way you learned the weave for a particular thing imprinted itself on you; learning a second was all but impossible, and even when you could learn, the second-learned weave almost never worked nearly as well. That was one reason some sisters did not welcome wilders to the Tower at any age; too much might have been learned already, and could not be unlearned.
Sorilea shrugged. “Perhaps. Learning a second way is hard enough without all the hand-waving you Aes Sedai do. The main thing Kiruna Nachiman must learn is that she owns her pride; it does not own her. She will be a very strong woman once she learns that.” Pulling a chair around to face the one Cadsuane had been sitting in, she eyed it doubtfully, then sat down. She appeared almost as stiff and uncomfortable as Kiruna had, but she motioned authoritatively for Cadsuane to sit, a strong-willed woman used to command.
Cadsuane swallowed a rueful chuckle as she took her chair. It was well to be reminded that, wilders or not, the Wise Ones were far from ignorant savages. Of course they would know the difficulties. As for hand-waving . . . Few had channeled where she could see, but she had noticed that they created some weaves without the gestures that sisters used. The hand movements were not truly part of the weave, but in a way they were, because they had been part of learning the weave. Perhaps, once, there had been Aes Sedai who could, say, hurl a ball of fire without some sort of throwing motion, but if so, they were long dead, and their teachings with them. Today, some things just could not be done without the appropriate gestures. There were sisters who claimed they could tell who had taught another sister by which motions she used for which weaves.
“Teaching any of our new apprentices anything has been difficult at best,” Sorilea went on. “I do not speak to offend, but you Aes Sedai give oath, it seems, and immediately try to find a way around it. Alanna Mosvani is particularly difficult.” Suddenly her clear green eyes were very sharp on Cadsuane’s face. “How can we punish her willful failings if it means harming the Car’a’carn’?”
Cadsuane folded her hands in her lap. Masking surprise was not easy. So much for the secret of Alanna’s crime. But why had the woman let her know that she knew? Perhaps one revelation called for another. “The bond does not work in that fashion,” she said.  Short of that, he will be aware of what happens to her, but he will not really feel it. As far away as he is now, he will only be vaguely aware, at that.”
Sorilea nodded slowly. Her fingers touched the golden tray on the table, then came away. Her expression was as hard to read as the face of a statue, but Cadsuane suspected that Alanna would find an unpleasant surprise the next time she let her temper flare, or threw one of her Arafellin sulks. That was unimportant, though. Only the boy was important.
“Most men will take what is offered, if it seems attractive and pleasant,” Sorilea said. “Once, we thought of Rand al’Thor so. Unfortunately, it is too late to change the path we walk. Now, he suspects whatever is offered freely. Now, if I wanted him to accept something, I would pretend I did not want him to have it. If I wanted to stay close to him, I would pretend indifference to whether I ever saw him again.” Once more, those eyes focused on Cadsuane, green augers. Not trying to see what lay inside her head. The woman knew. Some, at least. Enough, or too much.
Still, Cadsuane felt a rising thrill of possibility. If she had had any doubts that Sorilea wanted to feel her out, they were gone. And you did not feel out someone in this manner unless you hoped for some agreement. “Do you believe a man must be hard?” she asked. She was taking a chance. “Or strong?” By her tone, she left no doubt she saw a difference.
Again Sorilea touched the tray; the smallest of smiles might have quirked her lips for an instant. Or not. “Most men see the two as one and the same, Cadsuane Melaidhrin. Strong endures; hard shatters.”
Cadsuane drew breath. A chance she would have scoured anyone else for taking. But she was not anyone else, and sometimes chances had to be taken. “The boy confuses them,” she said. “He needs to be strong, and makes himself harder.  He has forgotten how to laugh except in bitterness; there are no tears left in him. Unless he finds laughter and tears again, the world faces disaster. He must learn that even the Dragon Reborn is flesh. If he goes to Tarmon Gai’don as he is, even his victory may be as dark as his defeat.”
Sorilea listened intently, and kept silent even after Cadsuane finished. Those green eyes studied her. “Your Dragon Reborn and your Last Battle are not in our prophecies,” Sorilea said at last. “We have tried to make Rand al’Thor know his blood, but I fear he sees us as only another spear. If one spear breaks in your hand, you do not pause to mourn before taking up another. Perhaps you and I aim at targets not too far apart.”
“Perhaps we do,” Cadsuane said cautiously. Targets even a hand apart might be not at all alike.
Abruptly, the glow of saidar surrounded the leather-faced woman. She was weak enough to make Daigian look at least moderately strong. But then, Sorilea’s strength did not lie in the Power. “There is a thing you may find useful,” she said. “I cannot make it work, but I can weave the flows to show you.” She did just that, laying feeble skeins that fell into place and melted, too poor to do what they were intended for. “It is called Traveling,” Sorilea said.
This time, Cadsuane’s jaw dropped. Alanna and Kiruna and the rest denied teaching the Wise Ones how to link, or a number of other skills they suddenly seemed to have, and Cadsuane had assumed the Aiel had managed to wring them out of the sisters held in the tents. But this was . . .
Impossible, she would have said, yet she did not believe Sorilea was lying. She could hardly wait to try the weave herself. Not that it was of much use immediately. Even if she knew exactly where the wretched boy was, she had to make him come to her. Sorilea was right about that. “A very great gift,” she said slowly. “I have nothing I can give you to compare.”
This time, there was no doubt of the brief smile that flashed across Sorilea’s lips. She knew very well that Cadsuane was in her debt. Taking up the heavy golden pitcher with both hands, she carefully filled the small white cups. With plain water. She did not spill a drop.
“I offer you water oath,” she said solemnly, picking up one of the cups. “By this, we are bound as one, to teach Rand al’Thor laughter and tears.” She sipped, and Cadsuane imitated her.
“We are bound as one.” And if their targets turned out not to be the same at all? She did not underestimate Sorilea as ally or opponent, but Cadsuane knew which target had to be struck, at any cost.


Banana
Foundation Grant
Award
Announcment
2019
What we fund
Communites
Technologies
LEARN MORE
LEARN MORE
Our Mission
Banana Foundation is an international foundation with strong local roots. We invest in commuunities, and new technologies. Our goal is to foster informed and engaged communities, which we believe are essential for a healthy bananas.
Communites
It is important to shape up your hedges, it is like getting a haircut, stay frech
COMMUNITES/ARTICLE
Why you need banana in your life
COMMUNITES/ARTICLE
Banana is Arichitecture
COMMUNITES/ARTICLE
Banana Beach hires Banistas to give away 1.7 mio bananas to local communities worldwide
Technologies
It is important to shape up your hedges, it is like getting a haircut, stay frech
TECHNOLOGIES/ARTICLE
BananaCoin the first organic cryptocurrency
TECHNOLOGIES
Chiquita and Dole Express Support for Banana Foundation's new Food Preservation Technologies
TECHNOLOGIES/ARTICLE
Blockchain-based technologies for Banana Production


Ilpo Koskinen, John Zimmerman, Thomas Binder, Johan Redstrom, and Stephan Wensveen
This is a book review of a book, which is available online via onesearch.lancs.ac.uk athttp://lib.myilibrary.com/Open.aspx?id=323847.
Practice-based, Practice-led, Design Research


--- layout: post title: Off to Hadoop World Conference in NYC | Big Data Event for Apache Hadoop categories: [] tags: [] status: publish type: post published: true meta: _original_post_id: '' _original_import_author: John Duprey author: ---
http://www.hadoopworld.com/