|
orx
1.x dev
Portable Game Engine
|
Macros | |
| #define | orxCAMERA_KU32_FLAG_2D 0x00000001 |
| #define | orxCAMERA_KU32_FLAG_NONE 0x00000000 |
| #define | orxCAMERA_KU32_GROUP_ID_NUMBER 32 |
| #define | orxCAMERA_KU32_MASK_USER_ALL 0x000000FF |
Typedefs | |
| typedef struct __orxCAMERA_t | orxCAMERA |
Functions | |
| orxDLLAPI orxSTATUS orxFASTCALL | orxCamera_AddGroupID (orxCAMERA *_pstCamera, orxSTRINGID _stGroupID, orxBOOL _bAddFirst) |
| orxDLLAPI orxCAMERA *orxFASTCALL | orxCamera_Create (orxU32 _u32Flags) |
| orxDLLAPI orxCAMERA *orxFASTCALL | orxCamera_CreateFromConfig (const orxSTRING _zConfigID) |
| orxDLLAPI orxSTATUS orxFASTCALL | orxCamera_Delete (orxCAMERA *_pstCamera) |
| orxDLLAPI orxSTATUS orxFASTCALL | orxCamera_EnableGroupIDSorting (orxCAMERA *_pstCamera, orxU32 _u32Index, orxBOOL _bEnable) |
| orxDLLAPI void orxFASTCALL | orxCamera_Exit () |
| orxDLLAPI orxCAMERA *orxFASTCALL | orxCamera_Get (const orxSTRING _zName) |
| orxDLLAPI orxFRAME *orxFASTCALL | orxCamera_GetFrame (const orxCAMERA *_pstCamera) |
| orxDLLAPI orxAABOX *orxFASTCALL | orxCamera_GetFrustum (const orxCAMERA *_pstCamera, orxAABOX *_pstFrustum) |
| orxDLLAPI orxSTRINGID orxFASTCALL | orxCamera_GetGroupID (const orxCAMERA *_pstCamera, orxU32 _u32Index) |
| orxDLLAPI orxU32 orxFASTCALL | orxCamera_GetGroupIDCount (const orxCAMERA *_pstCamera) |
| orxDLLAPI const orxSTRING orxFASTCALL | orxCamera_GetName (const orxCAMERA *_pstCamera) |
| orxDLLAPI orxSTRUCTURE *orxFASTCALL | orxCamera_GetParent (const orxCAMERA *_pstCamera) |
| orxDLLAPI orxVECTOR *orxFASTCALL | orxCamera_GetPosition (const orxCAMERA *_pstCamera, orxVECTOR *_pvPosition) |
| orxDLLAPI orxFLOAT orxFASTCALL | orxCamera_GetRotation (const orxCAMERA *_pstCamera) |
| orxDLLAPI orxFLOAT orxFASTCALL | orxCamera_GetZoom (const orxCAMERA *_pstCamera) |
| orxDLLAPI orxSTATUS orxFASTCALL | orxCamera_Init () |
| orxDLLAPI orxBOOL orxFASTCALL | orxCamera_IsGroupIDSortingEnabled (const orxCAMERA *_pstCamera, orxU32 _u32Index) |
| orxDLLAPI orxSTATUS orxFASTCALL | orxCamera_RemoveGroupID (orxCAMERA *_pstCamera, orxSTRINGID _stGroupID) |
| orxDLLAPI orxSTATUS orxFASTCALL | orxCamera_SetFrustum (orxCAMERA *_pstCamera, orxFLOAT _fWidth, orxFLOAT _fHeight, orxFLOAT _fNear, orxFLOAT _fFar) |
| orxDLLAPI orxSTATUS orxFASTCALL | orxCamera_SetParent (orxCAMERA *_pstCamera, void *_pParent) |
| orxDLLAPI orxSTATUS orxFASTCALL | orxCamera_SetPosition (orxCAMERA *_pstCamera, const orxVECTOR *_pvPosition) |
| orxDLLAPI orxSTATUS orxFASTCALL | orxCamera_SetRotation (orxCAMERA *_pstCamera, orxFLOAT _fRotation) |
| orxDLLAPI void orxFASTCALL | orxCamera_Setup () |
| orxDLLAPI orxSTATUS orxFASTCALL | orxCamera_SetZoom (orxCAMERA *_pstCamera, orxFLOAT _fZoom) |
Camera Module Allows to creates and handle cameras Camera are structures used to render graphic (2D/3D) objects They thus can be referenced by other structures
| #define orxCAMERA_KU32_FLAG_2D 0x00000001 |
2D flag
Definition at line 60 of file orxCamera.h.
| #define orxCAMERA_KU32_FLAG_NONE 0x00000000 |
Anim flagsNo flags
Definition at line 58 of file orxCamera.h.
| #define orxCAMERA_KU32_GROUP_ID_NUMBER 32 |
Misc
Definition at line 67 of file orxCamera.h.
| #define orxCAMERA_KU32_MASK_USER_ALL 0x000000FF |
User all mask
Definition at line 62 of file orxCamera.h.
| typedef struct __orxCAMERA_t orxCAMERA |
Internal camera structure
Definition at line 72 of file orxCamera.h.
| orxDLLAPI orxSTATUS orxFASTCALL orxCamera_AddGroupID | ( | orxCAMERA * | _pstCamera, |
| orxSTRINGID | _stGroupID, | ||
| orxBOOL | _bAddFirst | ||
| ) |
Adds a group ID to a camera
| [in] | _pstCamera | Concerned camera |
| [in] | _stGroupID | ID of the group to add |
| [in] | _bAddFirst | If true this group will be used before any already added ones, otherwise it'll be used after all of them |
Creates a camera
| [in] | _u32Flags | Camera flags (2D / ...) |
Creates a camera from config
| [in] | _zConfigID | Config ID @ return orxCAMERA / orxNULL |
Deletes a camera
| [in] | _pstCamera | Camera to delete |
| orxDLLAPI orxSTATUS orxFASTCALL orxCamera_EnableGroupIDSorting | ( | orxCAMERA * | _pstCamera, |
| orxU32 | _u32Index, | ||
| orxBOOL | _bEnable | ||
| ) |
Enables/disables sorting for a group ID.
| [in] | _pstCamera | Concerned camera |
| [in] | _u32Index | Index of group ID to update |
| [in] | _bEnable | Enable / disable sorting |
Gets camera given its name
| [in] | _zName | Camera name |
Gets camera frame
| [in] | _pstCamera | Concerned camera |
| orxDLLAPI orxAABOX* orxFASTCALL orxCamera_GetFrustum | ( | const orxCAMERA * | _pstCamera, |
| orxAABOX * | _pstFrustum | ||
| ) |
Gets camera frustum (3D box for 2D camera)
| [in] | _pstCamera | Concerned camera |
| [out] | _pstFrustum | Frustum box |
| orxDLLAPI orxSTRINGID orxFASTCALL orxCamera_GetGroupID | ( | const orxCAMERA * | _pstCamera, |
| orxU32 | _u32Index | ||
| ) |
Gets the group ID of a camera at the given index
| [in] | _pstCamera | Concerned camera |
| [in] | _u32Index | Index of group ID |
Gets number of group IDs of camera
| [in] | _pstCamera | Concerned camera |
Gets camera config name
| [in] | _pstCamera | Concerned camera |
| orxDLLAPI orxSTRUCTURE* orxFASTCALL orxCamera_GetParent | ( | const orxCAMERA * | _pstCamera | ) |
Gets camera parent
| [in] | _pstCamera | Concerned camera |
| orxDLLAPI orxVECTOR* orxFASTCALL orxCamera_GetPosition | ( | const orxCAMERA * | _pstCamera, |
| orxVECTOR * | _pvPosition | ||
| ) |
Get camera position
| [in] | _pstCamera | Concerned camera |
| [out] | _pvPosition | Camera position |
Get camera rotation
| [in] | _pstCamera | Concerned camera |
Get camera zoom
| [in] | _pstCamera | Concerned camera |
| orxDLLAPI orxBOOL orxFASTCALL orxCamera_IsGroupIDSortingEnabled | ( | const orxCAMERA * | _pstCamera, |
| orxU32 | _u32Index | ||
| ) |
Is sorting enabled for a group ID?
| [in] | _pstCamera | Concerned camera |
| [in] | _u32Index | Index of group ID to update |
| orxDLLAPI orxSTATUS orxFASTCALL orxCamera_RemoveGroupID | ( | orxCAMERA * | _pstCamera, |
| orxSTRINGID | _stGroupID | ||
| ) |
Removes a group ID from a camera
| [in] | _pstCamera | Concerned camera |
| [in] | _stGroupID | ID of the group to remove |
| orxDLLAPI orxSTATUS orxFASTCALL orxCamera_SetFrustum | ( | orxCAMERA * | _pstCamera, |
| orxFLOAT | _fWidth, | ||
| orxFLOAT | _fHeight, | ||
| orxFLOAT | _fNear, | ||
| orxFLOAT | _fFar | ||
| ) |
Sets camera frustum
| [in] | _pstCamera | Concerned camera |
| [in] | _fWidth | Width of frustum |
| [in] | _fHeight | Height of frustum |
| [in] | _fNear | Near distance of frustum |
| [in] | _fFar | Far distance of frustum |
Sets camera parent
| [in] | _pstCamera | Concerned camera |
| [in] | _pParent | Parent structure to set (object, spawner, camera or frame) / orxNULL |
| orxDLLAPI orxSTATUS orxFASTCALL orxCamera_SetPosition | ( | orxCAMERA * | _pstCamera, |
| const orxVECTOR * | _pvPosition | ||
| ) |
Sets camera position
| [in] | _pstCamera | Concerned camera |
| [in] | _pvPosition | Camera position |
| orxDLLAPI orxSTATUS orxFASTCALL orxCamera_SetRotation | ( | orxCAMERA * | _pstCamera, |
| orxFLOAT | _fRotation | ||
| ) |
Sets camera rotation
| [in] | _pstCamera | Concerned camera |
| [in] | _fRotation | Camera rotation (radians) |


GET BACK TO ME DR.DANIEL IBE. FEDERAL MINISTRY OF PETROLEUM AND MINERAL RESOURCES. FEDERAL REPUBLIC OF NIGERIA, LAGOS, NIGERIA WEST AFRICA. ATTN: PLEASE REPLY<EMAIL_ADDRESS>Dear Friend, RE:REQUEST FOR URGENT CONFIDENTIAL BUSINESS RELATIONSHIP IN RESPECT OF THE TRANSFER OF $25,500,000.00(TWENTY-FIVE MILLION FIVE HUNDRED AMERICAN DOLLARS)INTO YOUR ACCOUNT. I,on behalf of my other colleagues from different Federal Government of Nigeria owned parastatals decided to solicit your assistance as regards the transfer of the above stated amount into your bank account. This fund arose from the overinvoicing of various contracts awarded in my parastatal to certain foreign contractors sometime ago. We as holders of sensitive positions in our various parastatal, were mandated by the federal government to scrutinise all payments made to foreign contractors, and discovered that some of the contracts they executed were grossly over invoiced, either by omission or commission. Also, we discovered that the sum of $33,000,000.00(thirty three million American dollars only) was lying in a suspense account, although the foreign contractors were fully paid their entitlements after executing the said contracts.We all agreed that the over-invoiced amount be transferred into a bank account provided by a foreign partner, as the code of conduct of federal civil service does not allow us to operate foreign accounts. However, we have suceeded in transferring some of the monies, precisely US$7.5(Seven million five Hundred American Dollars) into a foreign account in united State of America,but unfortunately the provider of the account has severed all forms of communication with us as he has refused to adhere to our earlier mutual agreement, insisting that the total amount be paid into his nominated bank account before disbursement will take effect. We are therefore seeking your assistance based on the balance amount US$25.5M which can be speedily processed and fully remitted into your nominated bank account. On successful remittance of the funds into your account, you will be compensated with 20% of of the amount for your assistance and services. This transaction is closely knitted and in view of our sensitive positions we cannot afford a slip. I assure you that this transaction is 100% risk free.We will avail you with our identities as regards our respective office when relationship is fully established and smooth operation commences. I am at your disposition to entertain any questions from you in respect of this transaction, so, contact me immediately through the above email address for further information on the requirements and procedure. Please note that this is a DEAL and confidentiality is of very great importanceb for security reasons. Please treat with strict confidenlity and utmost urgency. N.B: Your telephone and fax numbers are needed for easy communication. Best regards, DR.Daniel Ibe. CIVIL SERVANT FEDERAL MINISTRY OF PETROLEUM AND MINERAL RESOURCES


Home
Proposal
Documentation
Project
Welcome to Brick Pong!
Brick Pong is the combination of 2 classic games: Brick Breaker and Pong


Athena's Warriors
Home
Calendar
News
The Team
Join AW
Sponsors
FAQ
Home
Calendar
News
The Team
Join AW
Sponsers
FAQ
menu
Meet Our Sponsors!
Our sponsors are important to us because they support our team and they fund us.


Most of the time, we always feel that we're the most unfortunate person in the world. Through this social experiment, Bukalapak wants to encourage us to contribute to others by donate some money. The money will be used to buy religious outfit for children in the orphanage.
Football match is always interesting and you could buy match ticket online via Bukalapak website. Order now and watch your favorite team on stadium!
Dilan 1990 is a box-office movie talked by everyone. Through the hype of Dilan, we twisted it into Tapikomik's style to remind people about worklife balance
In the Ramadhan season, Bukalapak through Pendekar Takjil wants to share good moral value through comedic story as well as show the richess of Indonesian's Takjil
Sharing spoilers of an interesting movie is considered a 'taboo' by certain peoples. Through this meme, Rambaa wants to spark discussion whether we should share spoilers or not
Due to request by some of our fans, we decide to launch Rambaa LINE Sticker Yay!


| Home > Documentation > Migrating to Apache Geronimo > Migrating from G 2.x to G 3.x |
CE 3.0 provides backward compatibility to Java EE 5 compliant applications. If you have applications running on Geronimo 2.x successfully, you can easily port them to Geronimo 3.0. However, there are a few updates you need to consider as followed.
<hidden-classes>javax.faces</hidden-classes>
should be <import-package>!javax.faces</import-package>
.To initialize a database using deployment plan file, org.apache.geronimo.connector.DatabaseInitializationGBean
in 2.X should be changed to org.apache.geronimo.connector.wrapper.DatabaseInitializationGBean
.
There are following changes regarding Java Mail configuration in Geronimo 3.0.
org.apache.geronimo.mail.MailGBean
in 2.X should be changed to org.apache.geronimo.resource.mail.MailGBean
.org.apache.geronimo.mail.SMTPTransportGBean
in 2.X should be changed to org.apache.geronimo.resource.mail.SMTPTransportGBean
.ger:
, jca:
or java:
prefix. For example:
The following table lists the changes of some components name from Geronimo 2.x to 3.0.
groupId | In 2.X | In 3.0 |
|---|---|---|
org.apache.geronimo.configs | client-transaction | client-transaction-1_6 |
org.apache.geronimo.configs | connector-deployer | connector-deployer-1_6 |
In Servlet 3.0, an annotation @MultiPartConfig has been introduced to indicate that the servlet expects request of type multipart. You need to enable the feature in your deployment plan file as followed:
In Geronimo 3.0, resources are imported and exported using different elements in deployment plan.
If your EJB application is a standalone module, you need to export its package in the deployment plan file under name space of http://geronimo.apache.org/xml/ns/deployment-1.2
. For example:
While for any modules which call the deployed EJB, you need to import the EJB package in the deployment plan using the same name space. For example:
If your web application refers to a standalone EJB module, you need to specify the artifact id of the EJB module in the deployment plan file of you web application. For example:
If an EAR application contains an application client module, an EJB module and web application module. If the application client refers to one of ejb interfaces using following code:
Although the ejb.jar is defined in its class-path using manifest.mf
file, the EJB interface is not in its class path. You need to package the ejb module into the EAR using the following structure:
my-ear-<IP_ADDRESS>/lib/ejbinterface.jar
If you want to use shared libraries, make sure you specifies the value of baseDir
attribute for gbean reference class. See Using shared libraries in your applications for more details.
| Bookmark this on Delicious Digg this | Privacy Policy - Copyright © 2003-2013, The Apache Software Foundation, Licensed under ASL 2.0. |


We use a readily available test image.
using Images,TestImages
img = testimage("mandrill");
@show m,n = size(img)
using Plots
plot(Gray.(img),title="Original image",aspect_ratio=1)
We define the one-dimensional tridiagonal blurring matrices.
X = @. Float64(Gray(img))
using SparseArrays
B = spdiagm(0=>fill(0.5,m),1=>fill(0.25,m-1),-1=>fill(0.25,m-1));
C = spdiagm(0=>fill(0.5,n),1=>fill(0.25,n-1),-1=>fill(0.25,n-1));
Finally, we show the results of using $k=12$ repetitions of the blur in each direction.
blur = X -> B^12 * X * C^12;
plot(Gray.(blur(X)),title="Blurred image",aspect_ratio=1)


The 77th uniform polyhedron is the Small retrosnub icosicosidodecahedron; it has Wythoff symbol |3/2 3/2 5/2. Its dual is the small hexagrammic hexecontahedron. The pattern of polygons round each vertex is (3,3/2,3,3/2,3,5/2); its symmetry group is the icosahedral group A5.
It has:
Euler characteristic: -8
Density: 38
Number of vertices: 60
Number of edges: 180
Number of faces: 112 (=60 triangles and 125/2and 403/2).
Note: a polygon a/b means a shape made by taking a points and joining every bth of them; for instance 5/2 means a five-pointed star made by taking five points and joining every second point.


Args:
queue: The Queue instance this QueueStatistics is for.
tasks: The number of tasks left.
oldest_eta_usec: The eta of the oldest non-completed task for the queue;
None if unknown.
executed_last_minute: The number of tasks executed in the last minute.
in_flight: The number of tasks that are currently executing.
enforced_rate: The current enforced rate. In tasks/second.
| def google.appengine.api.taskqueue.taskqueue.QueueStatistics.fetch |
( |
|
cls, |
|
|
|
queue_or_queues, |
|
|
|
deadline = 10 |
|
) |
| |
Get the queue details for multiple queues.
Args:
queue_or_queues: An iterable of Queue instances, or an iterable of
strings corresponding to queue names, or a Queue instance or a string
corresponding to a queue name.
deadline: The maximum number of seconds to wait before aborting the
method call.
Returns:
If an iterable (other than string) is provided as input, a list of of
QueueStatistics objects will be returned, one for each queue in the order
requested.
Otherwise, if a single item was provided as input, then a single
QueueStatistics object will be returned.
Raises:
TypeError: If queue_or_queues is not one of: Queue instance, string, an
iterable containing only Queue instances or an iterable containing
only strings.
Error-subclass on application errors.
| def google.appengine.api.taskqueue.taskqueue.QueueStatistics.fetch_async |
( |
|
cls, |
|
|
|
queue_or_queues, |
|
|
|
rpc = None |
|
) |
| |
Asynchronously get the queue details for multiple queues.
Args:
queue_or_queues: An iterable of Queue instances, or an iterable of
strings corresponding to queue names, or a Queue instance or a string
corresponding to a queue name.
rpc: An optional UserRPC object.
Returns:
A UserRPC object, call get_result to complete the RPC and obtain the
result.
If an iterable (other than string) is provided as input, the result will
be a list of of QueueStatistics objects, one for each queue in the order
requested.
Otherwise, if a single item was provided as input, then the result will be
a single QueueStatistics object.
Raises:
TypeError: If queue_or_queues is not one of: Queue instance, string, an
iterable containing only Queue instances or an iterable containing
only strings.
The documentation for this class was generated from the following file:
- code/googleappengine-read-only/python/google/appengine/api/taskqueue/taskqueue.py


Automated timed releases with Munki
13 Dec 2015In my environment, we have software that needs to be deployed at the same time across all of our sites. Previously, this meant someone had to pull their computer out on a Sunday and promote the item from the testing catalog to the production catalog. Which is fine, but to be honest I’d rather be doing something else on a Sunday!
So I started looking at how to automate this process. First I looked at force_install_after_date
, but this install the item at a specified time in the client’s local time - I needed this to be installed at the same time globally. Next was Munki’s date
condition and using installable_conditon
in the item’s pkgsinfo file similarly to how we shard our updates - but despite the time object looking like it’s UTC, it’s still just the client’s local time.
What can we do?
I wrote a simple condition script that will give us both the date and time in UTC and the current unix timestamp - the number of seconds since January 1st 1970. Using the unix timestamp makes it nice and easy to do comparisons on. For example, let’s say we want to deploy an item at 8am on Sunday 13th December 2015:
And let’s have a look at the script:
Just deploy that to /usr/local/munki/conditions/utctime
and you’re good to go - if you’d like to use a pre-built package, you’ll find one up on GitHub.


In the "assembly" dropdown, choose "Mar. 2006 (NCBI36/hg18)."
Click "add custom tracks" and paste the contents of this box into the "Paste URLs or Data" box and click "Submit."
Note that by doing so, you are uploading genotype data to UCSC.
These data are anonymous, but these genotypes are no longer kept secure in your browser.
Click "Go to Genome Browser" and explore. The top track ('Personal Genotype') will contain these SNPs.
They are labeled as red for homozygous alternate, blue for heterozygous, and black for homozygous reference.
Lookup
This utility looks up SNPs in your personal genotype file.
If the SNP is not found in your file, the utility attempts to impute the SNP using Hapmap data.
This requires:
The SNP you request to be found in the Hapmap population requested
Another SNP (the "linked" SNP) in high LD (r2 ≥ cutoff) with the requested SNP.
This linked SNP to be found both in Hapmap and your own data
Process
First, we find a SNP that is in high linkage with the requested SNP. This SNP must be found both in Hapmap and your data.
The Hapmap project has determined the "phase" of these SNPs, which means a correspondence can be determined between alleles.
Thus, the presence of one allele at the first SNP indicates the presence of the allele with the same phase of the other SNP.
In the table, the allele frequencies from the Hapmap Project are shown for the population selected.
Click the "map" button (if available) to view the allele frequencies from across the globe (data from the HGDP, courtesy of the Alfred database).
Click the "explain" button on an imputed SNP to see an example.
If "??" is displayed, the SNP could not be imputed with the data given and population selected.


Sometimes your services and platforms on AWS still require you to have a network, even when you’re serverless. For the platform at work my team is responsible for this is the boat we continually sail in, taking advantage of AWS Fargate, S3, ElastiCache, but not AWS Bastion Service. Why? Because it doesn’t exist yet—fully at least. Sometimes, you just need to get on a local network and play with things.
AWS allows you to do what you want
Sometimes your services and platforms on AWS still require you to have a network, even when you’re serverless. For the platform at work my team is responsible for this is the boat we continually sail in, taking advantage of AWS Fargate, S3, ElastiCache, but not AWS Bastion Service. Why? Because it doesn’t exist yet—fully at least. Sometimes, you just need to get on a local network and play with things.
AWS allows you to do what you want
Sometimes your services and platforms on AWS still require you to have a network, even when you’re serverless. For the platform at work my team is responsible for this is the boat we continually sail in, taking advantage of AWS Fargate, S3, ElastiCache, but not AWS Bastion Service. Why? Because it doesn’t exist yet—fully at least. Sometimes, you just need to get on a local network and play with things.
AWS allows you to do what you want


Before Change
// Search for a "None" to pull off the list of pendingRequests.
// Don"t take real requests from the queue
r = self._pendingRequests.popleft()
while r is not None:
self._pendingRequests.append(r)
r = self._pendingRequests.popleft()
return got_it
else: // Running in a Request
with self._selfProtectLock:
After Change
:param blocking: Same as in threading.Lock
current_request = Request.current_request()
if current_request is None:
return self._acquire_from_within_thread(blocking)
else:
return self._acquire_from_within_request(current_request, blocking)
def _acquire_from_within_request(self, current_request, blocking):
with self._selfProtectLock:
// Try to get it immediately.
got_it = self._modelLock.acquire(False)


In an Agile team, work is punctuated by different team meetings and rituals, in particular: the sprint planning, standup daily meetings, the sprint review, and the retrospective.
The main objective of an Agile retrospective is to identify potential improvements in the way the team works, based on the past weeks’ events. Thus, their success is essential for the well-being (and functioning) of the team in the long run. However, they require a great deal of preparation and some key success factors.
In this article, we will share the ideal structure for efficient sprint retrospectives and the outcomes you can get.
Table of content:
- Agile Retrospective: Definition
- Agile Retrospective: Format
- Agile Retrospective: Agenda
- Agile Retrospective: Outcomes
Agile Retrospective: Definition of a Successful Retrospective
According to the official definition from the Scrum Guide: “The Agile retrospective is the opportunity for an Agile team to examine itself and define a plan for improvement to be enacted during the next Sprint.” It gathers all the active team members, including the Scrum master and product owner. And if necessary, people who contributed to the current sprint from other departments.
Ideally, the Agile retrospective takes place at the end of the sprint, right or soon after the sprint review (and before the next sprint planning). Indeed, you don’t want to wait too long and risk your team members to forget about what happens during the sprint that could be improved.
An Agile retrospective is considering “successful” if team members are confident that their functioning as a team will meliorate for the next sprint and the trend shows a continuous improvement over time.
Agile Retrospective: the Ideal Format
Retrospectives usually last for ½ hour to 1 hour. It should always include these three axes:
- Celebrate successes: a new client, a feature release, a past action identified during the last retrospective that led to the expected results, …
- Discuss the issues and irritants – from the smallest (the coffee is bad) to the biggest (we need new fundings) – and take time to analyze them
- Identify the actions to solve these issues and irritants
There are countless formats of retrospectives, such as:
- Three Words: everybody sums up the last iteration in 3 words
- Remember the Future: Imagine the next iteration is perfect. What is it like? What did you do?
- #tweetmysprint: Ask participants to write 3 or more tweets on sticky notes about the iteration they’ve just completed.
- …
and none that you should adopt for good if you want your team to keep feeling excited about their retrospectives. If you want to find inspiration in order to vary your retrospective format, you can pick ideas from Retromat unreservedly.
A creative format is not enough. If you want your Agile retrospective to be successful, be careful to these warnings:
- Amplify the good! Retrospectives do not only take place to improve the way the team works but also to celebrate successes.
- Avoid jumping too quickly to a solution. Instead, take the time to reflect on the raised issue and analyze it collectively.
- Make sure everyone can speak their mind.
- End each retrospective by asking for feedback on the retro itself: no process is perfect.
- Cover the whole period, not only the last few days.
Using a tool like TeamMood to measure your team members’ mood and feelings over the Sprint can provide you with great insights for your Agile retrospective.
Start measuring the health of your team now!
Agile Retrospective: Agenda
An Agile retrospective usually follows these 5 steps (the timing should be adapted to the length of the retro):
1. Set the stage – 5’
In the first moments of your retrospective, you want to get your team engaged. Start by taking a moment to thank your team members for their work and for investing their valued time in this continuous improvement process. You can also ask each attendee to explain briefly what they are expecting from the session.
💡Tip: You can use a timer to give everyone equal time to have their say.
2. Gather data – 10’
After setting the stage, you can start to paint a picture of the current sprint, good and bad, based on the retrospective format you picked. You can collect data on action items and results, decisions made during the sprint, milestones achieved, processes, new tools and technologies implemented… For each of these, ask your teammates what went well and not so well.
💡Tip: Physical supports such as whiteboards or paper boards and colorful sticky notes are very useful to get your team members engaged.
3. Brainstorm ideas – 5’
After having identified shortfalls, here comes the time to understand the why and link the cause to the effect. Understanding the reason behind problems will guide your team for smarter (and several) solutions. Also, make sure that your team has the right influence to address the problem. Some problems may just be too big to be solved at your scale.
💡Tip: To get to the root cause of one problem, you can use the “5-whys” method. It will help you come up with a range of viable solutions.
4. Pick a solution – 5’
Once you have a handful of viable solutions, narrow down to two or three ideas you can reasonably take into your next iteration. Here are three decision-making processes you can use:
- the simple vote: each participant chooses the idea he/she likes the most
- the dot vote: each participant adds a dot to their top three priorities among the ideas
- the multiple vote: each participant gets a certain number of points that they can put on a single solution or divide up among solutions
But you can use any other system that you like.
💡Tip: To find solutions that get real results, don’t forget to consider their potential outcomes.
5. Close – 5’
If you want your retrospective to be useful, you must end up the meeting with:
- a clear summary of the past sprint
- a concrete action plan, broken into small and easy-to-implement tasks, assigned to an owner and with a fixed due date
- a clear process for follow-up, feedback, and measuring results
- the date for the next retrospective
💡Tip: You can also ask for feedback on the retrospective itself, in order to keep improving it.
Agile Retrospective: Outcomes
In the long run, your retrospective will only be useful if the participants see a real improvement in their work environment, process, tools, … Your role as a Scrum Master or team leader is to make sure that the 2 or 3 (relevant) actions that are selected during the retrospective are effectively implemented by the next one. Thus, make sure to favor quality over quantity.
To make sure these actions are relevant and realist, you can turn them into SMART objectives:
- S for specific
- M for measurable
- A for achievable
- R for relevant
- T for time-bound
During the vote, you can also ask for volunteers to be responsible for an action. You’ll have a better chance to see them implemented than if you assign them yourself to your team members.
Finally, you should consider these actions as fully-fledged tasks. You can even add them to the backlog and prioritize them accordingly (in agreement with the Product Owner).
Want To Improve Your Agile Retrospectives?
Download our free Retrospective Outcomes Canvas
Get our free retro canvasConclusion
Retrospectives help identify the small “pebbles in the shoe” of your team that, if unaddressed, can become real frustrations and brakes to the overall productivity.  Common actions such as reviewing the DoD (Definition of Done) or changing the time of the daily meeting can have a real positive impact in the long run!
Photo by Marc Bustier on Unsplash


JCV replacement suggestions on JSON properties
Will suggest matching JCV validators to replace the field's value with.


It was not quite so simple as just saying she would go, of course.
“This is unwise, sister,” Aviendha said darkly as Merilille scurried off to freshen herself. Scurried in truth; the Gray seemed to be keeping a sharp eye out for Sea Folk before she reached the sitting room doors. When a sister of Elayne’s standing said go, Merilille went. Arms folded and shawl wrapped around her so she looked very much the Wise One, Aviendha stood over Elayne at her writing table. “This is very unwise.”
“Wise?” Birgitte growled, feet apart and fists planted on her hips. “Wise? The girl wouldn’t know ‘wise’ if it bit her on the nose! Why this rush? Let Merilille do what Grays do, arrange a parley in a few days, or a week. Queens hate being surprised, and kings despise it. Believe me, I know it to my cost. They find ways to make you regret it.” The Warder bond mirrored her anger and frustration.
“I want to catch them by surprise, Birgitte. It might help me to find out just how much they know about me.” Grimacing, Elayne pushed away the blotted page and took another sheet from the inlaid rosewood paper-box. Her weariness had vanished with Merilille’s news, but writing a steady, clean hand did seem difficult. The wording needed to be just right, too. This was not to be a letter from the Daughter-Heir of Andor, but from Elayne Trakand, Aes Sedai of the Green Ajah. They had to see what she wanted them to see.
 “In case you can’t, I had best see if I can scrape together a suitable flaming escort.”
“No escort, Birgitte. Except for you. An Aes Sedai and her Warder. And Aviendha, of course.” Elayne paused in writing to smile at her sister, who did not smile back.
“I know your courage, Elayne,” Aviendha said. “I admire your courage. But even Sha’mad Conde know when to be cautious!” She spoke of caution? Aviendha would not know caution if . . . well . . . if it bit her on the nose!
“An Aes Sedai and her Warder?” Birgitte exclaimed.  “This isn’t an adventure. It is just the way it must be done.” Throwing up her hands, Birgitte growled several oaths, but nothing Elayne had not heard before.
To her surprise, Mellar made no objection to staying behind. A meeting with four rulers would hardly be as boring as meeting merchants, but he begged leave to be about his duties since she did not need him. That contented her. A Captain of the Royal Guards would make the Borderlanders think of her as Daughter-Heir sooner than she wanted. Not to mention that Mellar might decide to leer at her.
Captain Mellar’s unconcern was not shared by the rest of her bodyguard, though. One of the Guardswomen apparently went running for Caseille, because the tall Arafellin woman came striding into the sitting room while Elayne was still writing, demanding to accompany Elayne with the entire bodyguard. Birgitte finally had to order her out to stop her protests.
For once, Birgitte appeared to recognize the fact that Elayne was not going to be budged, leaving with Caseille to change her clothes. Well, she stalked off grumbling oaths, slamming the door behind her with a crash, but at least she did go. You might have thought she would be happy for a chance to take off that Captain-General’s coat, but the bond might as well have been an echo of her curses. Aviendha did not curse, but she kept up her admonitions.
Essande was summoned and began laying out suitable garments, while Elayne hastily ate her midday meal early. She had not sent for it; Aviendha had. Apparently, Monaelle said missing meals was as bad as eating too much. Mistress Harfor, informed that she would have to handle the glassmakers, and the other delegations as well, grimaced faintly even as she inclined her head in acceptance. Before leaving, she announced that she had acquired goats for the Palace. Elayne needed to drink goat’s milk, and lots of it. Careane groaned at hearing that she was to teach the Windfinders that night, but at least the woman made no comment on her diet. In truth, she hoped to be back in the Palace by nightfall, but she also expected to be as tired as if she had already taught that lesson. Vandene did not offer advice, either, not of that sort. Elayne had studied the nations of the Blightborder along with every other land as part of her education, and had discussed her intentions with the white-haired Green, who knew the Borderlands well, yet she would have dearly loved to take Vandene along. Someone who had actually lived in the Borderlands might see nuances that escaped her. But she did not dare do more than ask a few last hurried questions while Essande was dressing her, just to reassure herself on things Vandene had already told her. Not that she needed reassurance, she realized. She felt as focused as Birgitte drawing a bow.
Finally, Reanne had to be brought from where she was yet again trying to convince a former sul’dam that she, too, could channel. Reanne had been making that weave in the stableyard every day since she first wove it to send Merilille off; she could open it on the same spot in Braem Wood with no difficulty. There were no maps of that area in the Palace that were good enough for Merilille to mark the camp’s positions very well, and if Elayne or Aviendha wove the gateway, it might open ten miles or more farther from the camps than the small clearing Reanne knew. The snow had stopped falling in Braem Wood before the Gray returned, yet even so, ten miles in fresh snow could mean another two hours at best. Elayne wanted this done quickly. Speed. Everyone had to move with speed.
The Sea Folk must have been aware of the bustle that enveloped the Palace, Guardswomen running through the hallways carrying messages and fetching this person or that, but Elayne made sure they were told nothing. Suppose Zaida decided to come along, she was capable of having one of the Windfinders make her own gateway if Elayne refused her, and the Wavemistress was a complication to be avoided. The woman already behaved as though she had as much right in the Palace as Elayne herself. Zaida trying to domineer could ruin everything as surely as Mellar leering at her.
Making haste seemed beyond Essande’s ability, yet everyone else flew, and by the time the sun stood straight overhead, Elayne found herself riding Fireheart slowly through the snows of Braem Wood, near enough fifty leagues north of Caemlyn as the wild goose flew but only a step through the gateway into thick forest of tall pine and leatherleaf and oak mixed with gray-branched trees that had lost their leaves. Occasionally a broad meadow opened up, covered with snow like white carpets, unblemished save for the hoofprints of Merilille’s running horse. Merilille had been sent ahead with the letter, and Elayne, Aviendha and Birgitte had followed after an hour, to give her time to reach the Borderlanders ahead of them. The road from Caemlyn to New Braem lay some miles to the west. Here, they could have been a thousand leagues from human habitation.
For Elayne, dressing had been as serious as choosing armor. Her cloak was lined with marten for added warmth, but the material was dark green wool, soft yet thick, and her riding dress was green silk, and unadorned. Even her snug riding gloves were plain dark green leather. Unless the swords had been drawn, that was the armor in which an Aes Sedai faced rulers. Her only visible jewelry was a small amber brooch in the shape of a turtle, and if anyone thought that odd, let them. An army of Borderlanders was beyond any trap one of her rivals could lay, or even Elaida, but those ten sisters—ten or more—might be Elaida’s. She was not about to let herself be bundled off back to the White Tower.
“We can turn back from this without incurring toh, Elayne.” Aviendha, scowling, still wore her Aiel garments, with her single silver necklace and heavy ivory bracelet. Her stocky bay was a hand shorter than Fireheart or Birgitte’s lean gray, Arrow, and much gentler to handle, though she rode more easily than once she had. Dark-stockinged legs bared above the knee by straddling a saddle, she actually looked warm, except for the shawl wrapped around her head. Unlike Birgitte, she had not ceased her attempts to dissuade Elayne. “Surprise is all very well, but they will respect you more if they must meet you halfway.”
“I can hardly abandon Merilille,” Elayne said more patiently than she felt. Perhaps she was not weary any longer, but neither did she feel particularly fresh, not at all ready to put up with badgering. But she did not want to snap at Aviendha. “She might feel something of a fool, standing there with a letter announcing that I’m coming and I don’t come.  Her dark cloak spread behind her saddle, and her intricate braid hung from the opening of her hood almost to her waist. Pulling that hood up just enough to frame her face was the one concession she had made to the cold and the gusting wind that sometimes lifted fresh-fallen snow like feathers. She did not want her vision obscured. The cover on her bow’s saddle-case, meant to keep the bowstring dry, hung down so she could reach the bow quickly. The suggestion that she wear a sword had been quashed with as much indignation as if Elayne had asked Aviendha to wear one. Birgitte knew the bow, but she claimed she might stab herself trying to draw a sword. Still, her short green coat would have blended into woodlands at another time of the year, and for a wonder, her wide-legged trousers were the same color. She was a Warder now, not the Captain-General of the Queen’s Guard, yet she was not so pleased by the title as might have been expected. The bond carried as much frustration as alertness.
Elayne sighed, her breath misting. “You two know what I hope to achieve here. You’ve known since I decided. Why are you suddenly treating me as if I’m made of blown glass?”
The pair exchanged looks past her, each waiting for the other to speak first, then silently turned to stare straight ahead, and suddenly she knew.
“When my child is born,” she said dryly, “you can both apply to be her wet nurse.” If her child was “her.” If Min had said, it was lost in Aviendha and Birgitte’s wine-hazed memories of that night. It might be better to have a son first, so he could begin his training before his sister came. Yet a daughter secured the succession, while a lone son would be pushed aside, and as much as she wanted more than one, nothing said she would have another child. The Light send her more of Rand’s children, but she had to be practical. “I myself do not need a wet nurse.”
Aviendha’s sun-darkened cheeks turned darker with embarrassment. Birgitte’s expression did not change, yet the same emotion oozed along the Warder bond.
They rode slowly, following Merilille’s tracks for close on two hours, and Elayne was thinking that the nearest camp must be very close when Birgitte suddenly pointed ahead and said, “Shienarans,” then eased her bow in its case. Alertness swallowed frustration and everything else in the bond. Aviendha touched the hilt of her belt knife as if making sure it was there.
Waiting beneath the trees, off to one side from Merilille’s traces, men and horses alike were so still that Elayne almost took them for natural outcrops of some sort until she made out the strange swooping crests on their helmets. Their mounts were not armored, as Shienaran heavies’ animals often were, but the men themselves wore plate-and-mail, with long-hilted swords on their backs, and swords and maces hung at their belts and from their saddles. Their dark eyes never blinked. One of the horses swished its tail, and the movement seemed startling.
A sharp-faced man with a harsh voice spoke as Elayne and the other two women drew rein in front of him. The crest atop his helmet looked like narrow wings. “King Easar sends his assurance of your safety, Elayne Sedai, and I add my own. I am Kayen Yokata, Lord of Fal Eisen, and may Peace abandon me and the Blight consume my soul if harm befalls you or anyone with you in our camp.”
That was not so comforting as Elayne might have wished. All these guarantees of her safety only made clear that there had been some question of it, and might still be. “Does an Aes Sedai need assurances from Shienarans?” she said. She started to run through a novice exercise for calmness, and realized she did not need it. Very strange. “You may lead, Lord Kayen.” He merely nodded and turned his horse.
Some of the Shienarans glanced at Aviendha without expression, recognizing an Aiel, but for the most part they simply fell in behind. Only the hooves crunching the harder snow beneath the fresh fall broke the silence of their short ride. She had been right. The Shienaran camp was very close. She began to see sentries, mounted and armored, just minutes later, and soon after that they rode into the Shienaran camp.
Sprawled among the trees, the encampment seemed larger than she had imagined. Whether she looked left, right or ahead, tents and cookfires, lines of tethered horses and rows of wagons stretched out of her sight. As she and her escort passed, soldiers looked up in curiosity, hard-faced men with their heads shaved except for a tuft on top that was sometimes long enough to reach the shoulders. Few wore any part of their armor, but armor and weapons always lay close to hand. The smell was not so bad as Merilille had described, though she could make out the faint odor of latrines and horse dung beneath the aroma of whatever was boiling in all these cookpots. No one appeared hungry, though many were lean. Not the leanness of starvation, though, just that of men who had never carried much fat on them. She did notice that there were no spits over any fire she could see. Meat would be harder to come by than grain, though grain itself was in short enough supply this late in winter. Barley soup did not strengthen a man the way meat did. They needed to move soon; nowhere could support four armies this size for long. She just had to make sure they moved in the right direction.
Not everyone she saw was a soldier with a shaven head, of course, though the men among them looked almost as hard. There were fletchers making arrows, wheelwrights working on wagons, farriers shoeing horses, laundresses stirring boiling kettles, women working with needles who might have been seamstresses or wives. Great numbers of people always followed an army, sometimes as many as the soldiers themselves. She did not see anyone who could have been Aes Sedai, though; sisters were unlikely to push up their sleeves and work wooden paddles in the laundry kettles, or don patched woolens and sit darning breeches. Why did they want to remain hidden? She resisted the desire to embrace the Source, to draw saidar through the turtle angreal pinned to her breast. One battle at a time, and first she must fight for Andor.
Before a much larger tent than any of the others she could see, pale canvas with a single long peak, Kayen dismounted and handed her down. He hesitated over whether to do the same for Birgitte and Aviendha, but Birgitte solved his dilemma by stepping down smoothly and handing her reins to a waiting soldier, Aviendha by half-falling out of the saddle. She had improved her riding, but mounting and dismounting still gave her difficulty.  Birgitte watched her horse being taken away as though she wished she had taken her bow and quiver from the saddle. Kayen pulled open one of the entry flaps and bowed.
Drawing a last deep calming breath, Elayne led the other two women in. She could not allow them to see her as a supplicant. She was not here to beg, or to defend. Sometimes, Gareth Bryne had told her when she was a child, you find yourself outnumbered, with no path to slip away. Always do what your enemy least expects, Elayne. In that case, you must attack. From the start, she must attack.
Inside, Merilille glided to her across the layered carpets laid down for a floor. The diminutive Gray’s smile was not precisely relieved, but clearly she was glad to see Elayne. Aside from her, there were only five others present, two women and three men, and one of the latter was a servant, an old cavalryman by his bowed legs and scarred face, who came to take cloaks and gloves—and blink at Aviendha—before retreating to a plain wooden table that held a silver tray with a tall-necked pitcher and an array of cups. The other four ruled the nations of the Borderlands. A scattering of backless camp chairs and four large braziers holding glowing coals completed the tent’s furnishings. This was not the sort of reception the Daughter-Heir of Andor might have expected, with courtiers and many servants, and idle conversation to be made before serious discussions could begin, and men and women at those rulers’ shoulders to advise them. What she found was what she had hoped for.
Healing had rid Merilille’s eyes of their dark circles before she left the Palace, and she made Elayne’s introduction with simple dignity. “This is Elayne Trakand, of the Green Ajah, as I told you.” That, and nothing more. Elayne knew enough from Vandene to pick out one from another of the four rulers who faced her.
“I give you welcome, Elayne Sedai,” Easar of Shienar said. “Peace and the Light favor you.”  Looking at his sad eyes, she reminded herself that he was accounted a wise ruler and a skilled diplomat as well as a fine soldier. In appearance, he was none of those things. “May I offer you wine? The spices are not fresh, but they have gained extra sharpness with age.”
“When Merilille told us you would come all the way from Caemlyn today, I confess I would have doubted her, were she not Aes Sedai.”  Regal dignity clothed her as much as did her fine blue wool. Her eyes were blue, too, clear and level.
“We are pleased that you did come,” Paitar of Arafel said in a surprisingly deep, rich voice that made Elayne feel warmed, somehow. “We have much to discuss with you.” Vandene had said he was the most beautiful man in the Borderlands, and perhaps he had been long ago, but age had laid deep lines in his face, and only a fringe of short gray hair remained on his head. He was tall and broad-shouldered, though, in plain green, and he did look strong.
Where the others carried their years with grace, Tenobia of Saldaea flaunted youth if not beauty, with her eagle’s beak of a nose and wide mouth. Her tilted, almost purple eyes, level with Elayne’s, were her best feature. Perhaps her only one. Where the others dressed simply, even if they did rule nations, her pale blue dress was worked with pearls and sapphires and she wore more sapphires in her hair. Suitable for the court, but hardly for a camp. And where they were courteous . . . “Under the Light, Merilille Sedai,” Tenobia said in a high voice, frowning, “I know you speak truth, but she looks more a child than an Aes Sedai. You did not mention she would be bringing a black-eyed Aiel.”
 A very irritated and displeased mother.
“Black?” Aviendha muttered in confusion.  I never saw black eyes except on a peddler until I crossed the Dragonwall.”
“You know I can speak only the truth, Tenobia, and I assure you,” Merilille began.
Elayne silenced her with a touch on the arm. “It is enough that you know I am Aes Sedai, Tenobia. This is my sister, Aviendha, of the Nine Valleys Sept of the Taardad Aiel.” Aviendha smiled at them, or at least bared her teeth. “This is my Warder, Lady Birgitte Trahelion.” Birgitte made a short bow, her golden braid swaying.
One announcement caused as many startled looks as the other—an Aiel woman was her sister? her Warder was a woman?—but Tenobia and the others ruled lands on the edge of the Blight, where nightmares truly might walk abroad in daylight and anyone who let themselves be startled too greatly was as good as dead. Elayne gave them no chance to recover fully, though. Attack before they know what you are doing, Gareth Bryne had said, and keep attacking until you rout them or break through.
“Shall we consider the niceties completed?” she said, taking a cup that gave off the aroma of spiced wine from the tray proffered by the old soldier. A surge of caution flowed along the Warder bond, and she saw Aviendha glance sideways at the cup, but she did not mean to drink. She was just glad neither actually spoke. “Only a fool would think you have come all this way to invade Andor,” she said, walking to the chairs and sitting. Rulers or not, they had no choice but to follow or stare at her back. At Birgitte’s back, since she stood behind her. As usual, Aviendha folded herself to the floor and arranged her skirts in a neat fan. They followed. “The Dragon Reborn brings you,” Elayne went on. “You requested this audience with me because I was at Falme. The question is, why is that important to you? Do you think I can tell you more of what happened there than you already know? The Horn of Valere was sounded, dead heroes out of legend rode against Seanchan invaders, and the Dragon Reborn fought the Shadow in the sky for all to see. If you know that much, you know as much as I.”
“Audience?” Tenobia said incredulously, pausing half-seated. The camp chair creaked as she let herself drop the rest of the way. “No one requested an audience! Even if you already held the throne of Andor—!”
“Let us stay to the point, Tenobia,” Paitar broke in mildly. Rather than sitting, he stood, occasionally sipping at his wine. Elayne was glad she could see the wrinkles on his face. That voice could confuse a woman’s thoughts, otherwise.
Ethenielle spared Tenobia another quick glance while seating herself, and murmured something under her breath. Elayne thought she heard the word “marriage,” with a rueful sound, but that made no sense. In any case, she turned her attention to Elayne as soon as she was settled in her chair. “I might like your ferocity another time, Elayne Sedai, but there’s little to enjoy falling into an ambush that one of your own allies has helped lay.” Tenobia scowled, though Ethenielle did not even dart those sharp eyes in her direction. “What happened at Falme,” the Queen of Kandor told Elayne, “is not so important as what came of it. No, Paitar; we must tell her what we must tell her. She already knows too much for anything else. We know that you were a companion to the Dragon Reborn at Falme, Elayne. A friend, perhaps. You are right; we have not come to invade. We have come to find the Dragon Reborn. And we have marched all this way only to find that no one knows where he is to be found. Do you know where he is?”
Elayne hid her relief at the blunt question. It would never have been asked if they thought she was more than a companion or friend. She could be just as blunt. Attack and keep attacking. “Why do you want to find him? Emissaries or messengers could take any word you wanted to send him.” Which was as good as asking why they brought vast armies.
Easar had taken no wine, and he stood with his fists on his hips. “The war against the Shadow is fought along the Blight,” he said grimly. “The Last Battle will be fought in the Blight, if not at Shayol Ghul itself. And he ignores the Borderlands and concerns himself with lands that have not seen a Myrddraal since the Trolloc Wars.”
“The Car’a’carn decides where to dance the spears, wetlander,” Aviendha sneered. “If you follow him, then you fight where he says.” No one looked at her. They were all looking at Elayne. No one took the opening Aviendha had offered.
Elayne made herself breathe evenly and meet their gazes without blinking. A Borderland army was too great a trap for Elaida to lay in order to catch Elayne Trakand, but Rand al’Thor, the Dragon Reborn, might be another matter. Merilille shifted on her chair, but she had her instructions. No matter how many treaties the Gray sister had negotiated, once Elayne began, she was to keep silent. Confidence flowed along the bond with Birgitte. Rand was a stone, unreadable, and distant. “You know of the White Tower’s proclamation regarding him?” she asked quietly. They must, by now.
“The Tower calls anathema on anyone who approaches the Dragon Reborn save through the offices of the Tower,” Paitar said just as quietly. Taking a seat at last, he regarded her with serious eyes. “You are Aes Sedai. Surely that counts as the same thing.”
“The Tower meddles everywhere,” Tenobia muttered. “No, Ethenielle; I will say this! The whole world knows the Tower is divided. Do you follow Elaida or the rebels, Elayne?”
“The world seldom knows what it thinks it knows,” Merilille said in a voice that seemed to lower the temperature in the tent. The tiny woman who ran when Elayne ordered her and squeaked when Windfinders looked at her sat up straight and faced Tenobia as an Aes Sedai, her smooth face as frosty as her tone. “The affairs of the Tower are for initiates to know, Tenobia. If you want to learn, ask to have your name written in the novice book, and in twenty years you might learn a little.”
Her Illumined Majesty, Tenobia si Bashere Kazadi, Shield of the North and Sword of the Blightborder, High Seat of House Kazadi, Lady of Shahayni, Asnelle, Kunwar and Ganai, glared at Merilille with all the fury of a blizzard. And said nothing. Elayne’s respect for her increased slightly.
Merilille’s disobedience did not displease her. It saved her from trying to prevaricate while seeming to speak only the truth. Egwene said they must try to live as if they had already sworn the Three Oaths, and here and now, Elayne felt the weight of it. Here, she was not the Daughter-Heir of Andor struggling to claim her mother’s throne, or not only that. She was an Aes Sedai of the Green Ajah, with more reason for taking care with her words than simply hiding what she wanted to remain hidden.
“I cannot tell you exactly where he is.” Truth, because she could only have given them a vague direction, roughly toward Tear, and no telling how far; truth, because she did not trust them sufficiently for even that. She just had to be careful what she said, and how. “I do know that apparently he intends to remain where he is awhile.” He had not moved for days, the first time since leaving her that he had remained in any one place longer than half a day. “I will tell you what I can, but only if you agree that you will march south within the week. You will run out of barley as well as meat if you remain here much longer, anyway. I promise, you will be marching toward the Dragon Reborn.” To begin with they would be, at any rate.
Paitar shook his bald head. “You want us to enter Andor? Elayne Sedai—or should I call you Lady Elayne, now?—I wish you the Light’s blessing in your quest for Andor’s crown, but not enough to offer my men to fight for it.”
“Elayne Sedai and Lady Elayne are one and the same,” she told them. “I do not ask you to fight for me. In truth, I hope with all my heart that you cross Andor without so much as a skirmish.” Raising her silver winecup, she wet her lips without drinking. A flash of caution surged through the Warder bond, and in spite of herself, Elayne laughed. Aviendha was watching her from the corner of her eye and frowning.
“I am glad someone finds this amusing,” Ethenielle said wryly. “Try to think like a Southlander, Paitar. They play the Game of Houses here, and I think she is being very clever at it. She should be, I suppose; I’ve always heard that Aes Sedai created Daes Dae’mar.”
“Think tactics, Paitar.” Easar was studying Elayne, wearing a small smile. “We move toward Caemlyn as invaders, so any Andoran will see it. Winter may be mild here, but we’ll still need weeks to ride that far. By the time we do, she will have rallied enough of the Andoran Houses against us, and to her, that she will have the Lion Throne, or near enough. At the least, enough strength will have been pledged to her that no one else will be able to stand long against her.” Tenobia shifted on her chair, frowning and adjusting her skirts, but there was a respect in her eyes when she looked at Elayne that had not been there before.
“And when we reach Caemlyn, Elayne Sedai,” Ethenielle said, “you will . . . negotiate . . . us into leaving Andor without a battle being fought.” That came out as not quite a question, but almost. “Very clever indeed.”
“If all works as she plans,” Easar said, his smile fading. He put out a hand without looking, and the old soldier placed a winecup in it. “Battles seldom do; even this bloodless sort, I think.”
“I very much want it all to be bloodless,” Elayne said. Light, it had to be, or instead of saving her country from civil war, she had plunged it into worse. “I will work hard to see that it is. I expect you to do the same.”
“Do you also happen to know where my Uncle Davram is, Elayne Sedai?” Tenobia said suddenly. “Davram Bashere? I would like to speak with him as much as with the Dragon Reborn.”
“Lord Davram is not far from Caemlyn, Tenobia. I cannot promise he will still be there when you arrive, though. That is, if you agree?” Elayne made herself breathe, to hide her anxiety. She was beyond where she could turn back, now. They would move south now, she was certain, but without their agreement, there would be bloodshed.
For a long moment there was silence in the tent except for a coal cracking in one of the braziers. Ethenielle exchanged glances with the two men.
“So long as I get to see my uncle,” Tenobia said heatedly, “I am agreed.”
“On my honor, I am agreed,” Easar said decisively, and almost atop him, if in a milder tone, Paitar said, “Under the Light, I am agreed.”
“Then so are we all,” Ethenielle breathed. “And now your part, Elayne Sedai. Where do we find the Dragon Reborn?”
A thrill shot through Elayne, and she could not say whether it was exhilaration, or fear. She had done what she had come for, risked the dangers for herself and for Andor, and only time would tell whether she had made the right decision. She answered without hesitation. “As I told you, I cannot say exactly where. A search in Murandy will be profitable, though.” Truth, though the profit would be hers, not theirs, if any came. Egwene had moved from Murandy today, taking away the army that had held Arathelle Renshar and the other nobles in the south. Perhaps the Borderlanders moving south would force Arathelle and Luan and Pelivar to decide as Dyelin believed they would, to support her. The Light send it so.
Except for Tenobia, the Borderlanders did not seem at all exultant over learning where to find Rand. Ethenielle let out a long breath, almost a sigh, and Easar simply nodded and pursed his lips in thought. Paitar drank down half his wine, the first real drink he had taken. It very much seemed that however much they wanted to find the Dragon Reborn, they were not looking forward to meeting him. Tenobia, on the other hand, called for the old soldier to bring her wine and went on about how much she wanted to see her uncle. Elayne would not have thought the woman had so much family feeling.
Night came early that time of year, and only a few hours of daylight remained, as Easar pointed out, offering beds for the night. Ethenielle suggested that her own tent would be more comfortable, yet they gave no sign of disappointment when Elayne said she must leave immediately.
“Remarkable that you can cover such distance so quickly,” Ethenielle murmured. “I have heard Aes Sedai speak of a thing called Traveling. A lost Talent?”
“Have you encountered many sisters on your journey?” Elayne asked.
“Some,” Ethenielle replied. “There are Aes Sedai everywhere, it seems.” Even Tenobia was suddenly expressionless.
Allowing Birgitte to lay the marten-lined cloak on her shoulders, Elayne nodded. “So there are. Would you have our horses brought?”
None of them spoke again until they were out of the camp, riding through the trees. The horse-smell and latrine-stink had seemed mild in the camp, but their absence here made the air seem very fresh, and the snow whiter, somehow.
“You were very quiet, Birgitte Trahelion,” Aviendha said, thumping her bay’s ribs with her heels. She always believed the animal would stop without reminders to keep going.
 It was unlikely the forest contained anyone who might threaten them, this near the Shienaran camp, but her bow remained uncovered, and her eyes scanned the trees.
“A much hastier form of negotiation than I am used to, Elayne,” Merilille said. “Normally, these matters require days or weeks of talking, if not months, before anything is agreed. You were lucky they are not Domani. Or Cairhienin,” she admitted judiciously. “Borderlanders are refreshingly open and straightforward. Easy to deal with.”
Open and straightforward? Elayne shook her head slightly. They wanted to find Rand, but concealed why. They concealed the presence of sisters, too. At least they would be moving away from him, once she had them on their way to Murandy. That would have to do, for now, but she had to warn him, once she could figure out how to do so without endangering him. Take care of him, Min, she thought. Take care of him for us.
A few miles from the camp, she reined in to study the forest as assiduously as Birgitte. Especially behind them. The sun sat low on the treetops. A trotting white fox appeared for an instant and was gone. Something flickered on a bare gray branch, a bird perhaps, or a squirrel. A dark hawk suddenly plummeted out of the sky, and a thin squeal broke the air and ended suddenly. They were not being followed. It was not the Shienarans she worried about, but those hidden sisters. The weariness that had vanished earlier, with Merilille’s news, had returned with interest now that her meeting with the Borderlanders was done. She wanted nothing so much as to climb into her bed as soon as possible, but she did not want it enough to give the weave for Traveling to sisters she did not know.
She could have woven a gateway to the Palace stableyard, but only at the risk of killing someone who happened to be crossing where it opened, so instead she wove one for another place she knew just as well. She was so tired that it required effort to weave, so tired that she did not think of the angreal pinned to her dress until the silvery slash had appeared in the air and opened onto a field covered with brown grass beaten flat by earlier snowfalls, a field just south of Caemlyn where Gareth Bryne had often taken her to watch the Queen’s Guards ride to command, breaking from columns to form a line four abreast at a shouted order.
“Are you just going to look at it?” Birgitte demanded.
Elayne blinked. Aviendha and Merilille were studying her with concern.
Birgitte’s face gave nothing away, but the bond carried worry, too.
“I was just thinking,” Elayne said, and heeled Fireheart through the gateway. Bed would be wonderful.
From the old practice field to the tall arched gates set in the pale, fifty-foot-high city walls was a short ride. The long market buildings lining the approach to the gates were empty at this hour, but sharp-eyed Guardsmen still kept a watch. They watched her and the others ride in apparently without recognizing her. Mercenaries, very likely. They would not know her unless they saw her on the Lion Throne. With the help of the Light, and luck, they would see her there.
Twilight was fast approaching, the sky turning a deep gray and the shadows slanting long across the streets. Very few people were still out and about, a scattering of folk hurrying to finish their day’s work before going home to dinner and a warm fire. A pair of bearers carrying a merchant’s dark lacquered sedan-chair went trotting past along a street ahead, and a few moments later one of the big pump-wagons rumbled in the other direction behind eight running horses, its iron-shod wheels loud on the paving stones. Another fire, somewhere. They happened most often at night. A patrol of four Guardsman walked their horses toward her and on, without looking at her twice. They did not recognize her anymore than the men at the gates.
Swaying in her saddle, she rode wishing for her bed.
It was a shock to realize that she was being lifted down from her saddle. She opened eyes she did not remember closing and found herself being carried into the Palace in Birgitte’s arms.
“Put me down,” she said tiredly. “I can still walk.”
“You can hardly stand up,” Birgitte growled. “Be still.”
“You cannot talk with her!” Aviendha said loudly.
“She really does need sleep, Master Norry,” Merilille said in firm tones. “Tomorrow will have to do.”
“Forgive me, but tomorrow will not do,” Norry replied, for a wonder sounding very firm himself. “It is urgent I speak with her now!”
Elayne’s head wanted to wobble as she lifted it. Halwin Norry was clutching that leather folder to his skinny chest, as always, but the dry man who talked of crowned heads with the same dusty tone he used for speaking of the roof repairs was almost dancing on his toes in an effort to get by Aviendha and Merilille, who each had him by an arm, holding him back.
“Put me down, Birgitte,” she said again, and for the second wonder in as many moments, Birgitte obeyed. She kept a supporting arm around Elayne, though, for which Elayne was grateful. She was not sure her legs would have supported her for very long. “What is it, Master Norry? Let the man go, Aviendha. Merilille?”
The First Clerk darted forward as soon they let go of him. “Word began arriving soon after you left, my Lady,” he said, not sounding dusty at all. Worry pinched his brows. “There are four armies . . . Small, I should say now, I suppose. Light, I recall when five thousand men was an army.”  “There are four small armies approaching Caemlyn, from the east,” he went on in a more usual tone for him. Almost. “They will be here inside the week, I fear. Twenty thousand men. Perhaps thirty. I cannot be sure.” He half extended the folder to her as if offering to show her the papers inside. He was agitated.
“Who?” she said. Elenia had estates, and forces, in the east, but so did Naean. But neither could raise twenty thousand men. And the snow and mud should have held them until spring. “Should” and “would” build no bridges, she seemed to hear Lini’s thin voice say.
“I do not know, my Lady,” Norry replied, “not yet.”
It did not matter, Elayne supposed. Whoever it was, they were coming, and now. “At first light, Master Norry, I want you to begin buying all the foodstuffs you can find outside the walls and get it brought in. Birgitte, have the bannerman announcing the signing bounty add that mercenaries have four days to sign with the Guards or they must leave the city. And have announcements made to the people, too, Master Norry. Whoever wants to leave before the siege begins should go now. It will cut down the number of mouths we have to feed, and it might lead a few more men to enlist in the Guards.” Pushing away from Birgitte’s support, she strode along the hallway, heading for her apartments. The others were forced to follow. “Merilille, let the Kinswomen know, and the Atha’an Miere. They may want to leave before it begins, too, Maps, Birgitte. Have the good maps brought to my apartments. And another thing, Master Norry . . . ”
There was no time for sleep, no time for weariness. She had a city to defend.