IPAddress is a Ruby library designed to make the use of IPv4 and IPv6 addresses simple, powerful and enjoyable. It provides a complete set of methods to handle IP addresses for any need, from simple scripting to full network design.
IPAddress is written with a full OO interface, and its code is easy to read, maintain and extend. The documentation is full of examples, to let you start being productive immediately.
This document provides a brief introduction to the library and examples of typical usage.
Ruby >= 1.8.7 (not tested with previous versions)
Ruby 1.9.2 or later is strongly recommended
IPAddress 0.8.0 has been tested on:
ruby-1.8.7-p334 [ i386 ]
ree-1.8.7-2011.03 [ i386 ]
rbx-head [ ]
jruby-1.6.1 [ linux-i386-java ]
ruby-1.9.1-p431 [ i386 ]
ruby-1.9.2-p180 [ i386 ]
If you want to collaborate feel free to send a small report to my email address, or join the discussion.
Install the library using rubygems
$ gem install ipaddress
You can then use it in your programs:
require 'rubygems' # optional require 'ipaddress'
Another way would be to clone the git repository
$ git clone git://github.com/bluemonk/ipaddress.git
And then install the library
$ cd ipaddress ipaddress$ rake install
The code is fully documented with RDoc. You can generate the documentation with Rake:
ipaddress$ rake rdoc
The latest documentation can be found online at this address
Class IPAddress::IPv4 is used to handle IPv4 type addresses. IPAddress is similar to other IP Addresses libraries, like Ruby’s own IPAddr. However it works slightly different, as we will see.
The usual way to express an IP Address is using its dotted decimal form, such as <IP_ADDRESS>, and a prefix, such as 24, separated by a slash.
<IP_ADDRESS>/24
To create a new IPv4 object, you can use IPv4 own class
ip = IPAddress::IPv4.new "<IP_ADDRESS>/24"
or, in a easier way, using the IPAddress parse method
ip = IPAddress.parse "<IP_ADDRESS>/24"
which accepts and parses any kind of IP (IPv4, IPV6 and IPv4 IPv6 Mapped addresses).
If you like syntactic sugar, you can use the wrapper method IPAddress(), which is built around IPAddress::parse:
ip = IPAddress "<IP_ADDRESS>/24"
You can specify an IPv4 address in any of two ways:
IPAddress "<IP_ADDRESS>/24" IPAddress "<IP_ADDRESS>/<IP_ADDRESS>"
In this example, prefix /24 and netmask <IP_ADDRESS> are the same and you have the flexibility to use either one of them.
If you don’t explicitly specify the prefix (or the subnet mask), IPAddress thinks you’re dealing with host addresses and not with networks. Therefore, the default prefix will be /32, or <IP_ADDRESS>. For example:
# let's declare an host address host = IPAddress::IPv4.new "<IP_ADDRESS>" puts host.to_string #=> "<IP_ADDRESS>/32"
The new created object has prefix /32, which is the same as we created the following:
host = IPAddress::IPv4.new "<IP_ADDRESS>/32"
Once created, you can obtain the attributes for an IPv4 object:
ip = IPAddress("<IP_ADDRESS>/24") ip.address #=> "<IP_ADDRESS>" ip.prefix #=> 24
In case you need to retrieve the netmask in IPv4 format, you can use the IPv4#netmask method:
ip.netmask #=> "<IP_ADDRESS>"
A special attribute, IPv4#octets, is available to get the four decimal octets from the IP address:
ip.octets #=> [172,16,10,1]
Shortcut method IPv4#[], provides access to a given octet whithin the range:
ip[1] #=> 16
If you need to print out the IPv4 address in a canonical form, you can use IPv4#to_string
ip.to_string #=> "172.16.10.l/24"
You can set a new prefix (netmask) after creating an IPv4 object. For example:
ip.prefix = 25 ip.to_string #=> "172.16.10.l/25"
If you need to use a netmask in IPv4 format, you can achive so by using the IPv4#netmask= method
ip.netmask = "<IP_ADDRESS>" ip.to_string #=> "<IP_ADDRESS>/30"
Some very important topics in dealing with IP addresses are the concepts of network and broadcast, as well as the addresses included in a range.
When you specify an IPv4 address such as “<IP_ADDRESS>/24”, you are actually handling two different information:
The IP address itself, “<IP_ADDRESS>”
The subnet mask which indicates the network
The network number is the IP which has all zeroes in the host portion. In our example, because the prefix is 24, we identify our network number to have the last 8 (32-24) bits all zeroes. Thus, IP address “<IP_ADDRESS>/24” belongs to network “<IP_ADDRESS>/24”.
This is very important because, for instance, IP “<IP_ADDRESS>/16” is very different to the previous one, belonging to the very different network “<IP_ADDRESS>/16”.
With IPAddress it’s very easy to calculate the network for an IP address:
ip = IPAddress "<IP_ADDRESS>/24" net = ip.network #=> #<IPAddress::IPv4:0xb7a5ab24 @octets=[172, 16, 10, 0], @prefix=24, @address="<IP_ADDRESS>"> net.to_string #=> "<IP_ADDRESS>/24"
Method IPv4#network creates a new IPv4 object from the network number, calculated after the original object. We want to outline here that the network address is a perfect legitimate IPv4 address, which just happen to have all zeroes in the host portion.
You can use method IPv4#network? to check whether an IP address is a network or not:
ip1 = IPAddress "<IP_ADDRESS>/24" ip2 = IPAddress "<IP_ADDRESS>/30" ip1.network? #=> false ip2.network? #=> true
The broadcast address is the contrary than the network number: where the network number has all zeroes in the host portion, the broadcast address has all one’s. For example, ip “<IP_ADDRESS>/24” has broadcast “<IP_ADDRESS>/24”, where ip “<IP_ADDRESS>/16” has broadcast “<IP_ADDRESS>/16”.
Method IPv4#broadcast has the same behavior as is network counterpart: it creates a new IPv4 object to handle the broadcast address:
ip = IPAddress "<IP_ADDRESS>/24" bcast = ip.broadcast #=> #<IPAddress::IPv4:0xb7a406fc @octets=[172, 16, 10, 255], @prefix=24, @address="<IP_ADDRESS>"> bcast.to_string #=> "<IP_ADDRESS>/24"
So we see that the netmask essentially specifies a range for IP addresses that are included in a network: all the addresses between the network number and the broadcast. IPAddress has many methods to iterate between those addresses. Let’s start with IPv4#each, which iterates over all addresses in a range
ip = IPAddress "<IP_ADDRESS>/24" ip.each do |addr| puts addr end
It is important to note that it doesn’t matter if the original IP is a host IP or a network number (or a broadcast address): the each method only considers the range that the original IP specifies.
If you only want to iterate over hosts IP, use the IPv4#each_host method:
ip = IPAddress "<IP_ADDRESS>/24" ip.each_host do |host| puts host end
Methods IPv4#first and IPv4#last return a new object containing respectively the first and the last host address in the range
ip = IPAddress "<IP_ADDRESS>/24" ip.first.to_string #=> "<IP_ADDRESS>/24" ip.last.to_string #=> "<IP_ADDRESS>/24"
The IPAddress library provides a complete set of methods to access an IPv4 address in special formats, such as binary, 32 bits unsigned int, data and hexadecimal.
Let’s take the following IPv4 as an example:
ip = IPAddress "<IP_ADDRESS>/24" ip.address #=> "<IP_ADDRESS>"
The first thing to highlight here is that all these conversion methods only take into consideration the address portion of an IPv4 object and not the prefix (netmask).
So, to express the address in binary format, use the IPv4#bits method:
ip.bits #=> "10101100000100000000101000000001"
To calculate the 32 bits unsigned int format of the ip address, use the IPv4#to_u32 method
ip.to_u32 #=><PHONE_NUMBER>
This method is the equivalent of the Unix call pton(), expressing an IP address in the so called +network byte order+ notation. However, if you want to transmit your IP over a network socket, you might need to transform it in data format using the IPv4#data method:
ip.data #=> "\254\020\n\001"
Finally, you can transform an IPv4 address into a format which is suitable to use in IPv4-IPv6 mapped addresses:
ip.to_ipv6 #=> "ac10:0a01"
IPAddress allows you to create and manipulate objects using the old and deprecated (but apparently still popular) classful networks concept.
Classful networks and addresses don’t have a prefix: their subnet mask is univocally identified by their address, and therefore diveded in classes. As per RFC 791, these classes are:
Class A, from <IP_ADDRESS> to <IP_ADDRESS>
Class B, from <IP_ADDRESS> to <IP_ADDRESS>
Class C, from <IP_ADDRESS> to <IP_ADDRESS>
Since classful networks here are only considered to calculate the default prefix number, classes D and E are not considered.
To create a classful IP and prefix from an IP address, use the IPv4::parse_classful method:
# classful ip ip = IPAddress::IPv4::parse_classful "<IP_ADDRESS>" ip.prefix #=> 8
The method automatically created a new IPv4 object and assigned it the correct prefix.
You can easily check which CLASSFUL network an IPv4 object belongs:
ip = IPAddress("<IP_ADDRESS>/24") ip.a? #=> true ip = IPAddress("<IP_ADDRESS>/24") ip.b? #=> true ip = IPAddress("<IP_ADDRESS>/30") ip.c? #=> true
Remember that these methods are only checking the address portion of an IP, and are independent from its prefix, as classful networks have no concept of prefix.
For more information on CLASSFUL networks visit the Wikipedia page
IPAddress includes a lot of useful methods to manipulate IPv4 and IPv6 networks and do some basic network design.
The process of subnetting is the division of a network into smaller (in terms of hosts capacity) networks, called subnets, so that they all share a common root, which is the starting network.
For example, if you have network “<IP_ADDRESS>/24”, we can subnet it into 4 smaller subnets. The new prefix will be /26, because 4 is 2^2 and therefore we add 2 bits to the network prefix (24+2=26).
Subnetting is easy with IPAddress. You actually have two options:
IPv4#subnet: specify a new prefix
IPv4#split: tell IPAddress how many subnets you want to create.
Let’s examine IPv4#subnet first. Say you have network “<IP_ADDRESS>/24” and you want to subnet it into /26 networks. With IPAddress it’s very easy:
network = IPAddress "<IP_ADDRESS>/24" subnets = network.subnet(26) subnets.map{|i| i.to_string} #=> ["<IP_ADDRESS>/26", "<IP_ADDRESS>/26", "<IP_ADDRESS>/26", "<IP_ADDRESS>/26"]
As you can see, an Array has been created, containing 4 new IPv4 objects representing the new subnets.
Another way to create subnets is to tell IPAddress how many subnets you’d like to have, and letting the library calculate the new prefix for you.
Let’s see how it works, using IPv4#split method. Say you want 4 new subnets:
network = IPAddress("<IP_ADDRESS>/24") subnets = network.split(4) subnets.map{|i| i.to_string} #=> ["<IP_ADDRESS>/26", "<IP_ADDRESS>/26", "<IP_ADDRESS>/26", "<IP_ADDRESS>/26"]
Hey, that’s the same result as before! This actually makes sense, as the two operations are complementary. When you use IPv4#subnet with the new prefix, IPAddress will always create a number of subnets that is a power of two. This is equivalent to use IPv4#split with a power of 2.
Where IPv4#split really shines is with the so called “uneven subnetting”. You are not limited to split a network into a power-of-two numbers of subnets: IPAddress lets you create any number of subnets, and it will try to organize the new created network in the best possible way, making an efficent allocation of the space.
An example here is worth a thousand words. Let’s use the same network as the previous examples:
network = IPAddress("<IP_ADDRESS>/24")
How do we split this network into 3 subnets? Very easy:
subnets = network.split(3) subnets.map{|i| i.to_string} #=> ["<IP_ADDRESS>/26", "<IP_ADDRESS>/26", "<IP_ADDRESS>/25"]
As you can see, IPAddress tried to perform a good allocation by filling up all the address space from the original network. There is no point in splitting a network into 3 subnets like “<IP_ADDRESS>/26”, “<IP_ADDRESS>/26” and “<IP_ADDRESS>/26”, as you would end up having “<IP_ADDRESS>/26” wasted (plus, I suppose I wouldn’t need a Ruby library to perform un-efficient IP allocation, as I do that myself very well ;) ).
We can go even further and split into 11 subnets:
network.split(11) #=> ["<IP_ADDRESS>/28", "<IP_ADDRESS>/28", "<IP_ADDRESS>/28", "<IP_ADDRESS>/28", "<IP_ADDRESS>/28", "<IP_ADDRESS>/28", "<IP_ADDRESS>/28", "<IP_ADDRESS>/28", "<IP_ADDRESS>/27", "<IP_ADDRESS>/27", "<IP_ADDRESS>/26"]
As you can see, most of the networks are /28, with a few /27 and one /26 to fill up the remaining space.
Summarization (or aggregation) is the process when two or more networks are taken together to check if a supernet, including all and only these networks, exists. If it exists then this supernet is called the summarized (or aggregated) network. It is very important to understand that summarization can only occur if there are no holes in the aggregated network, or, in other words, if the given networks fill completely the address space of the supernet. So the two rules are:
1) The aggregate network must contain all the IP addresses of the original networks;
2) The aggregate network must contain only the IP addresses of the original networks;
A few examples will help clarify the above. Let’s consider for instance the following two networks:
ip1 = IPAddress("<IP_ADDRESS>/24") ip2 = IPAddress("<IP_ADDRESS>/24")
These two networks can be expressed using only one IP address network if we change the prefix. Let Ruby do the work:
IPAddress::IPv4::summarize(ip1,ip2).to_string #=> "<IP_ADDRESS>/23"
We note how the network “<IP_ADDRESS>/23” includes all the addresses specified in the above networks, and (more important) includes ONLY those addresses.
If we summarized ip1 and ip2 with the following network:
"<IP_ADDRESS>/16"
we would have satisfied rule #1 above, but not rule #2. So
"<IP_ADDRESS>/16"
is not an aggregate network for ip1 and ip2.
If it’s not possible to compute a single aggregated network for all the original networks, the method returns an array with all the aggregate networks found. For example, the following four networks can be aggregated in a single /22:
ip1 = IPAddress("<IP_ADDRESS>/24") ip2 = IPAddress("<IP_ADDRESS>/24") ip3 = IPAddress("<IP_ADDRESS>/24") ip4 = IPAddress("<IP_ADDRESS>/24") IPAddress::IPv4::summarize(ip1,ip2,ip3,ip4).map{|i| i.to_string} #=> ["<IP_ADDRESS>/22"]
But the following networks can’t be summarized in a single network:
ip1 = IPAddress("<IP_ADDRESS>/24") ip2 = IPAddress("<IP_ADDRESS>/24") ip3 = IPAddress("<IP_ADDRESS>/24") ip4 = IPAddress("<IP_ADDRESS>/24") IPAddress::IPv4::summarize(ip1,ip2,ip3,ip4).map{|i| i.to_string} #=> ["<IP_ADDRESS>/24","<IP_ADDRESS>/23","<IP_ADDRESS>/24"]
In this case, the two summarizables networks have been aggregated into a single /23, while the other two networks have been left untouched.
Supernetting is a different operation than aggregation, as it only works on a single network and returns a new single IPv4 object, representing the supernet.
Supernetting is similar to subnetting, except that you getting as a result a network with a smaller prefix (bigger host space). For example, given the network
ip = IPAddress("<IP_ADDRESS>/24")
you can supernet it with a new /23 prefix
ip.supernet(23).to_string #=> "<IP_ADDRESS>/23"
However if you supernet it with a /22 prefix, the network address will change:
ip.supernet(22).to_string #=> "<IP_ADDRESS>/22"
This is because “<IP_ADDRESS>/22” is not a network anymore, but an host address.
IPAddress is not only fantastic for IPv4 addresses, it's also great to handle IPv6 addresses family! Let's discover together how to use it in our projects.
IPv6 addresses are 128 bits long, in contrast with IPv4 addresses which are only 32 bits long. An IPv6 address is generally written as eight groups of four hexadecimal digits, each group representing 16 bits or two octet. For example, the following is a valid IPv6 address:
2001:0db8:0000:0000:0008:0800:200c:417a
Letters in an IPv6 address are usually written downcase, as per RFC. You can create a new IPv6 object using uppercase letters, but they will be converted.
Since IPv6 addresses are very long to write, there are some simplifications and compressions that you can use to shorten them.
Leading zeroes: all the leading zeroes within a group can be omitted: “0008” would become “8”
A string of consecutive zeroes can be replaced by the string “::”. This can be only applied once.
Using compression, the IPv6 address written above can be shorten into the following, equivalent, address
2001:db8::8:800:200c:417a
This short version is often used in human representation.
As we used to do with IPv4 addresses, an IPv6 address can be written using the prefix notation to specify the subnet mask:
2001:db8::8:800:200c:417a/64
The /64 part means that the first 64 bits of the address are representing the network portion, and the last 64 bits are the host portion.
All the IPv6 representations we’ve just seen are perfectly fine when you want to create a new IPv6 address:
ip6 = IPAddress "2001:0db8:0000:0000:0008:0800:200C:417A" ip6 = IPAddress "2001:db8:0:0:8:800:200C:417A" ip6 = IPAddress "2001:db8:8:800:200C:417A"
All three are giving out the same IPv6 object. The default subnet mask for an IPv6 is 128, as IPv6 addresses don’t have classes like IPv4 addresses. If you want a different mask, you can go ahead and explicit it:
ip6 = IPAddress "2001:db8::8:800:200c:417a/64"
Access the address portion and the prefix by using the respective methods:
ip6 = IPAddress "2001:db8::8:800:200c:417a/64" ip6.address #=> "2001:0db8:0000:0000:0008:0800:200c:417a" ip6.prefix #=> 64
A compressed version of the IPv6 address can be obtained with the IPv6#compressed method:
ip6 = IPAddress "2001:0db8:0000:0000:0008:200c:417a:00ab/64" ip6.compressed #=> "2001:db8::8:800:200c:417a"
Accessing the groups that form an IPv6 address is very easy with the IPv6#groups method:
ip6 = IPAddress "2001:db8::8:800:200c:417a/64" ip6.groups #=> [8193, 3512, 0, 0, 8, 2048, 8204, 16762]
As with IPv4 addresses, each individual group can be accessed using the IPv6#[] shortcut method:
ip6[0] #=> 8193 ip6[1] #=> 3512 ip6[2] #=> 0 ip6[3] #=> 0
Note that each 16 bits group is expressed in its decimal form. You can also obtain the groups into hexadecimal format using the IPv6#hexs method:
ip6.hexs #=> => ["2001", "0db8", "0000", "0000", "0008", "0800", "200c", "417a"]
A few other methods are available to transform an IPv6 address into decimal representation, with IPv6.to_i
ip6.to_i #=><PHONE_NUMBER>1282592856906245548098208122
or to hexadecimal representation
ip6.to_hex #=> "20010db80000000000080800200c417a"
To print out an IPv6 address in human readable form, use the IPv6#to_s, IPv6#to_string and IPv6#to_string_uncompressed methods
ip6 = IPAddress "2001:db8::8:800:200c:417a/64" ip6.to_string #=> "2001:db8::8:800:200c:417a/96" ip6.to_string_uncompressed #=> "2001:0db8:0000:0000:0008:0800:200c:417a/96"
As you can see, IPv6.to_string prints out the compressed form, while IPv6.to_string_uncompressed uses the expanded version.
If you have a string representing an IPv6 address, you can easily compress it and uncompress it using the two class methods IPv6::expand and IPv6::compress.
For example, let’s say you have the following uncompressed IPv6 address:
ip6str = "2001:0DB8:0000:CD30:0000:0000:0000:0000"
Here is the compressed version:
IPAddress::IPv6.compress ip6str #=> "2001:db8:0:cd30::"
The other way works as well:
ip6str = "2001:db8:0:cd30::" IPAddress::IPv6.expand ip6str #=> "2001:0DB8:0000:CD30:0000:0000:0000:0000"
These methods can be used when you don’t want to create a new object just for expanding or compressing an address (although a new object is actually created internally).
You can create a new IPv6 address from different formats than just a string representing the colon-hex groups.
For instance, if you have a data stream, you can use IPv6::parse_data, like in the following example:
data = " \001\r\270\000\000\000\000\000\b\b\000 \fAz" ip6 = IPAddress::IPv6::parse_data data ip6.prefix = 64 ip6.to_string #=> "2001:db8::8:800:200c:417a/64"
A new IPv6 address can also be created from an unsigned 128 bits integer:
u128 =<PHONE_NUMBER>1282592856906245548098208122 ip6 = IPAddress::IPv6::parse_u128 u128 ip6.prefix = 64 ip6.to_string #=>"2001:db8::8:800:200c:417a/64"
Finally, a new IPv6 address can be created from an hex string:
hex = "20010db80000000000080800200c417a" ip6 = IPAddress::IPv6::parse_hex hex ip6.prefix = 64 ip6.to_string #=> "2001:db8::8:800:200c:417a/64"
Some IPv6 have a special meaning and are expressed in a special form, quite different than an usual IPv6 address. IPAddress has built-in support for unspecified, loopback and mapped IPv6 addresses.
The address with all zero bits is called the unspecified address (corresponding to <IP_ADDRESS> in IPv4). It should be something like this:
0000:0000:0000:0000:0000:0000:0000:0000
but, with the use of compression, it is usually written as just two colons:
::
or, specifying the netmask:
::/128
With IPAddress, create a new unspecified IPv6 address using its own subclass:
ip = IPAddress::IPv6::Unspecified.new ip.to_string #=> "::/128"
You can easily check if an IPv6 object is an unspecified address by using the IPv6#unspecified? method
ip.unspecified? #=> true
An unspecified IPv6 address can also be created with the wrapper method, like we’ve seen before
ip = IPAddress "::" ip.unspecified? #=> true
This address must never be assigned to an interface and is to be used only in software before the application has learned its host’s source address appropriate for a pending connection. Routers must not forward packets with the unspecified address.
The loopback address is a unicast localhost address. If an application in a host sends packets to this address, the IPv6 stack will loop these packets back on the same virtual interface.
Loopback addresses are expressed in the following form:
::1
or, with their appropriate prefix,
::1/128
As for the unspecified addresses, IPv6 loopbacks can be created with IPAddress calling their own class:
ip = IPAddress::IPv6::Loopback.new ip.to_string #=> "::1/128"
or by using the wrapper:
ip = IPAddress "::1" ip.to_string #=> "::1/128"
Checking if an address is loopback is easy with the IPv6#loopback? method:
ip.loopback? #=> true
The IPv6 loopback address corresponds to <IP_ADDRESS> in IPv4.
It is usually identified as a IPv4 mapped IPv6 address, a particular IPv6 address which aids the transition from IPv4 to IPv6. The structure of the address is
::ffff:w.y.x.z
where w.x.y.z is a normal IPv4 address. For example, the following is a mapped IPv6 address:
::ffff:<IP_ADDRESS>
IPAddress is very powerful in handling mapped IPv6 addresses, as the IPv4 portion is stored internally as a normal IPv4 object. Let's have a look at some examples. To create a new mapped address, just use the class builder itself
ip6 = IPAddress::IPv6::Mapped.new "::ffff:<IP_ADDRESS>/128"
or just use the wrapper method
ip6 = IPAddress "::ffff:<IP_ADDRESS>/128"
Let’s check it’s really a mapped address:
ip6.mapped? #=> true ip6.to_string #=> "::ffff:<IP_ADDRESS>/128"
Now with the ipv4 attribute, we can easily access the IPv4 portion of the mapped IPv6 address:
ip6.ipv4.address #=> "<IP_ADDRESS>"
Internally, the IPv4 address is stored as two 16 bits groups. Therefore all the usual methods for an IPv6 address are working perfectly fine:
ip6.to_hex #=> "00000000000000000000ffffac100a01" ip6.address #=> "0000:0000:0000:0000:0000:ffff:ac10:0a01"
A mapped IPv6 can also be created just by specify the address in the following format:
ip6 = IPAddress "::<IP_ADDRESS>"
That is, two colons and the IPv4 address. However, as by RFC, the ffff group will be automatically added at the beginning
ip6.to_string => "::ffff:<IP_ADDRESS>/128"
making it a mapped IPv6 compatible address.
IPAddr is the IP addresses library that comes with Ruby standard lib. We found this library, although very well written, not very suitable for all our needs, and not very flexible.
Some quick examples of things you can’t do with IPAddr:
store both the address and the prefix information
quickly find the broadcast address of a network
iterate over hosts
perform subnetting or network aggregation
Many methods and procedures are so old that they have been declared deprecated by the IETF, and some others have bugs in their implementation.
Moreover, IPAddress is more robust and is already around 50% faster than IPAddr, in addition to provide an organic API with logical separation and OO structure.
We hope that IPAddress will address all these issues and meet all your needs in network programming.
Want to join the community?
We’ve created a group to discuss about IPAddress future development, features and provide some kind of support. Feel free to join us and tell us what you think!
Thanks to Luca Russo (vargolo) and Simone Carletti (weppos) for all the support and technical review. Thanks to Marco Beri, Bryan T. Richardson, Nicolas Fevrier, jdpace, Daniele Alessandri, jrdioko, Ghislain Charrier, Pawel Krzesniak, Mark Sullivan, Leif Gensert, Erik Ahlström, Peter Vandenberk and Steve Rawlinson for their support, feedback and bug reports.
Copyright © 2009-2011 Marco Ceresa. See LICENSE for details.
Generated with the Darkfish Rdoc Generator 2.


{%extends "base.html"%} {% load bootstrap5 %} {%load static%} {% block content %}
Vicinity is an application that helps a group of people living in the same area who want to make their neighborhood safer and better by working together and in conjunction with local law enforcement to improve their quality of life.
The aim is to bring together Kenyans in clusters defined by their physical locations and common interests; a safe, sustainable and prosperous neighborhood.
Tushirikiane kinyumba kumi!
Register Now


For a moment Nynaeve stood in the Heart of the Stone not seeing it, not thinking of Tel’aran’rhiod at all. Egeanin was Seanchan. One of those vile people who had put a collar on Egwene’s neck and tried to put one on hers. Knowing it still made her feel hollow. Seanchan, and she had snaked her way into Nynaeve’s affections. True friends had seemed so few and far between since leaving Emond’s Field. To find a new one, then lose her in this way . . .
  Said aloud, it made no sense at all. “I do not have to make sense.” She laughed quietly, with a rueful shake of her head. “I am supposed to be Aes Sedai.”
Callandor sparkled, the crystal sword rising out of the floor-stones beneath the great dome, and the massive redstone columns ran off in shadowed rows through that odd, dim light that came from everywhere. Easy to remember the feel of being watched, to imagine it again. If it had been imagination before. If it was now. Anything might be hiding back in there. A good stout stick appeared in her hands as she peered among the columns. Where was Egwene? Just like the girl to keep her waiting. All that murkiness. For all she knew, something could be about to jump out at—
“That is an odd dress, Nynaeve.”
Just stifling a yelp, she spun around heavily, rattling metallically, heart thumping in her throat. Egwene stood on the other side of Callandor with two women in bulky skirts and dark shawls over white blouses, snowy hair held by folded scarves falling to their waists. Nynaeve swallowed, hoping none of them noticed, tried to make herself breathe normally again. Sneaking up on her that way!
One of the Aiel women she knew from Elayne’s description; Amys’s face was much too young for such hair, but apparently it had been almost silver even as a child. The other, thin and bony, had pale blue eyes in a leathery, wrinkled face. That must be Bair. The tougher of the two, in Nynaeve’s opinion now that she saw them, not that this Amys looked very—Odd dress? I rattled?
Staring down at herself, she gasped. Her dress looked vaguely like a Two Rivers garment; if Two Rivers women wore dresses fashioned from steel mail, with pieces of plate armor like those she had seen in Shienar. How did men run about and jump into saddles in these things? It dragged at her shoulders as if it weighed a hundred pounds. The good stick was metal now, and spiked at the end like a shiny steel sandburr. Without touching her head she knew she had on some sort of helmet. Blushing furiously, she concentrated, changed it all to good Two Rivers woolens and a walking staff. It felt good to have her hair back in one proper braid, hanging over her shoulder.
“Uncontrolled thoughts are troublesome when you walk the dream,” Bair said in a thin, strong voice. “You must learn to control them if you mean to continue.”
“I can control my thoughts very well, thank you,” Nynaeve said crisply. “I—” Bair’s voice was not all that was thin. The Two Wise Ones seemed . . . misty, almost, and Egwene, in a pale blue riding dress, was very nearly transparent. “What’s the matter with you? Why do you look that way?”
“You try entering Tel’aran’rhiod while half-asleep in a saddle,” Egwene said dryly. She seemed to flicker. “It is morning in the Three-fold Land, and we are on the move. I had to talk Amys into letting me come at all, but I was afraid you would be worried.”
“It is a difficult enough task without the horse,” Amys said, “sleeping shallowly when you wish to be awake. Egwene has not learned it entirely yet.”
“I will,” Egwene said with an irritated determination. She was always too hasty and stubborn in her desire to learn; if these Wise Ones did not hold on to the scruff of her neck she would very likely jump into all sorts of trouble.
Nynaeve stopped worrying about Egwene and trouble as the younger woman began to speak of Trollocs and Draghkar attacking Cold Rocks Hold. Seana, a Wise One dreamwalker, among the dead. Rand hurrying the Taardad Aiel toward this Alcair Dal, apparently in violation of all custom, sending out runners to bring more septs. The boy was confiding his intentions to no one, the Aiel were jumpy, and Moiraine was ready to bite the heads off nails. Moiraine’s frustration would have been some relief—she had hoped he could escape that woman’s influence somehow—if Egwene had not frowned so worriedly.
“I don’t know whether it is madness or design,” Egwene finished. “I could almost bear it either way if I knew. Nynaeve, I’ll admit it isn’t prophecy, or Tarmon Gai’don, that makes me anxious right now. Maybe it is foolish, but I promised Elayne to look after him, and I do not know how.”
Nynaeve walked around the crystal sword to put an arm around her. At least she felt solid, even if she did look a reflection in a foggy mirror. Rand’s sanity. There was nothing she could do about that, no comfort she could offer. Egwene was the one there to see him. “The best you can do for Elayne is to tell him to read what she wrote. She worries about it sometimes; she won’t talk, but I think she’s afraid she said more than she should have. If he believes she is totally besotted, he’s more likely to feel the same, which will not hurt her in the least. At least we have some good news in Tanchico. Some.” When she explained, though, it barely seemed to justify “some.”
“So you still don’t know what it is they’re after,” Egwene said after she finished, “but even if you did, they are on top of it and still might find it first.”
“Not if I can help it.” Nynaeve fixed the two Wise Ones with a firm, level look. From what Elayne said of Amys’s reluctance to give anything but warnings, she would need firmness to deal with them. The pair was so hazy a strong puff might blow them away like fog. “Elayne thinks you know all sorts of tricks with dreams. Is there any way I could get into Amathera’s dreams to see if she is a Darkfriend?”
“Foolish girl.” Bair’s long hair swung as she shook her head. “If Aes Sedai, a foolish girl still. To step into another’s dream is very dangerous unless she knows you and expects you. It is her dream, not as here. There, this Amathera will control all. Even you.”
She had been sure that was the way. It was irritating to learn differently. And “foolish girl”?
“I am not a girl,” she snapped. She wanted to yank her braid, but clenched a fist at her side instead; for some reason, pulling at her hair felt strangely uncomfortable of late. “I was Wisdom of Emond’s Field before I . . . became Aes Sedai . . .  If you know how to help me, say so instead of giving me foolish maunderings about what is dangerous. I know danger when I see it.”
Abruptly she realized her single braid had split in two, one over each ear, red ribbons woven through to make tassels on the ends. Her skirt was so short it showed her knees, she wore a loose white blouse like the Wise Ones, and her shoes and stockings were gone. Where had this come from? She had surely never thought of wearing anything like it. Egwene put a hasty hand over her mouth. Was she aghast? Surely not smiling.
“Uncontrolled thoughts,” Amys said, “can be very troublesome indeed, Nynaeve Sedai, until you learn.” Despite her bland tone, her lips quirked in barely masked amusement.
Nynaeve kept her face smooth with an effort. They could not have had anything to do with it. They can’t have! She struggled to change back, and it was a struggle, as though something held her as she was. Her cheeks grew hotter and hotter. Suddenly, just at the point when she was ready to break down and ask advice, or even help, her clothes and hair were as they had been. She wriggled her toes gratefully in good stout shoes. It had just been some odd, stray thought. In any case, she was not about to voice any suspicions; they looked far too amused as it was, even Egwene.  I just won’t dignify them.
“If I cannot enter her dream, can I bring her into the World of Dreams? I need some way to talk to her.”
“We would not teach you that if we knew how,” Amys said, hitching her shawl angrily. “It is an evil thing you ask, Nynaeve Sedai.”
“She would be as helpless here as you in her dream.” Bair’s thin voice sounded like an iron rod. “It has been handed down among dreamwalkers since the first that no one must ever be brought into the dream. It is said that that was the way of the Shadow in the last days of the Age of Legends.”
Nynaeve shifted her feet under those hard stares; realizing she had an arm around Egwene, she held still. She was not about to let Egwene think they had made her uneasy. Not that they had. If she thought of being hauled before the Women’s Circle before she was chosen Wisdom, it was nothing at all to do with the Wise Ones. Firmness was what was . . . They stared at her. Hazy or not, these women could duel Siuan Sanche stare for stare. Especially Bair. Not that they intimidated her, but she could see the point of being reasonable. “Elayne and I need help. The Black Ajah is sitting on top of something that can harm Rand. If they find it before we do, they may be able to control him. We need to find it first. If there is anything you can do to help, anything you can tell me . . . Anything at all.”
“Aes Sedai,” Amys said, “you can make a request for help sound a demand.” Nynaeve’s mouth tightened—demand? She had all but begged. Demand, indeed!—but the Aiel woman did not seem to notice. Or chose to ignore it. “Yet a danger to Rand al’Thor . . . We cannot allow the Shadow to have that. There is a way.”
“Dangerous.”  “This young woman knows less than Egwene did when she came to us. It is too dangerous for her.”
“Then maybe I could—” Egwene began, and the two cut her off as one.
“You are going to complete your training; you are too eager to go beyond what you know,” Bair said sharply at the same time Amys said, not the slightest bit softer, “You are not there in Tanchico, you do not know the place, and you cannot have Nynaeve’s need. She is the hunter.”
Under those iron eyes, Egwene subsided sulkily, and the two Wise Ones looked at each other. Finally Bair shrugged and lifted her shawl up around her face; clearly she washed her hands of the entire matter.
“It is dangerous,” Amys said. They made it sound as if breathing was dangerous in Tel’aran’rhiod.
“I—!” Nynaeve cut off as Amys’s eyes actually grew harder; she would not have thought it possible. Keeping a firm image of her clothes as they were—of course they had had nothing to do with that; it simply seemed wise to make sure her dress remained as it was—she changed what she had been going to say. “I will be careful.”
“It is not possible,” Amys told her flatly, “but I do not know another way. Need is the key. When there are too many people for the hold, the sept must divide, and the need is for water at the new hold. If no location with water is known, one of us may be called to find one. The key then is the need for a proper valley or canyon, not too far from the first, with water. Concentrating on that need will bring you near to what you want. Concentrating on the need again will bring you closer. Each step brings you nearer, until at last you are not only in the valley, but standing beside where water is to be found. It may be harder for you, because you do not know exactly what you are seeking, though the depth of need may make up for it. And you know already in a rough fashion where it lies, in this palace.
“The danger is this, and you must be aware of it.” The Wise One leaned toward her intently, driving her words home with a tone as sharp as her gaze. “Each step is made blind, with eyes closed. You cannot know where you will be when you open your eyes. And finding the water does no good if you are standing in a den of vipers. The fangs of a mountain king kill as quickly in the dream as waking. I think these women Egwene speaks of will kill more quickly than the snake.”
“I did that,” Egwene exclaimed. Nynaeve felt her jump as the Aiel women’s eyes went to her. “Before I met you,” she said hastily. “Before we went to Tear.”
Need. Nynaeve felt warmer toward the Aiel women now that one of them had given her something she could use. “You must keep a close eye on Egwene,” she told them, hugging the younger woman to show she meant it fondly. “You are right, Bair. She will try to do more than she knows how. She has always been that way.” For some reason Bair arched a white eyebrow at her.
“I do not find her so,” Amys said in a dry voice. “She is a biddable student, now. Is that not so, Egwene?”
Egwene’s mouth set in a stubborn line. These Wise Ones did not know her well if they believed a Two Rivers woman would call herself biddable. On the other hand, she did not say anything. That was unexpected. As hard a lot as Aes Sedai, it appeared, these Aiel women.
Her hour was slipping away, and impatience bubbled to try this method now; if Elayne woke her, it might take hours to get back to sleep. “In seven days,” she said, “one of us will meet you here again.”
Egwene nodded. “In seven days, Rand will have shown himself to the clan chiefs as He Who Comes With the Dawn, and the Aiel will all be behind him.” The Wise Ones’ eyes shifted slightly, and Amys adjusted her shawl; Egwene did not see it. “The Light knows what he means to do then,”
“In seven days,” Nynaeve said, “Elayne and I will have taken whatever Liandrin is hunting away from the lot of them.” Or else, very likely, the Black Ajah would have it. So the Wise Ones were not more certain the Aiel would follow Rand than Egwene was of his plans. No certainty anywhere. But no point in burdening Egwene with more doubts, either. “When one of us sees you next, we’ll have laid them by the heels and stuffed them all in sacks to cart to the Tower for trial.”
“Try to be careful, Nynaeve.  Tell Elayne I said so, too. She isn’t as . . . bold . . . as you are, but she can come close.” Amys and Bair each laid a hand on Egwene’s shoulder, and they were gone. Try to be careful? Fool girl. She was always careful. What had Egwene been about to say rather than bold? Nynaeve folded her arms tightly in lieu of pulling her braid. Maybe better she did not know.
She realized she had not told Egwene about Egeanin. Perhaps best not to stir up Egwene’s memories of her captivity. Nynaeve could remember all too well the other woman’s nightmares for weeks after she was freed, waking up screaming that she would not be chained. Much the best to let it lie. It was not as if Egwene need ever meet the Seanchan woman. Burn that woman! Burn Egeanin to ash! Burn her!
“This is not using my time wisely,” she said aloud. The words echoed through the tall columns. With the other women gone, they looked even more foreboding than before, more a hiding place for unseen watchers and things that jumped out at you. Time to be away.
First, though, she changed her hair to a tassel of long narrow braids, her dress to clinging folds of dark green silk.  With a grimace she added beads of green jade woven into the thin plaits. Should any of the Black sisters be using their stolen ter’angreal to enter the World of Dreams and see her in the Panarch’s Palace, they would think her only a Taraboner woman who had dreamed herself there in more ordinary fashion. Some knew her by sight, though. Lifting a handful of bead-strung braids, she smiled. Pale honey. She had not realized that was possible. I wonder what I look like. Could they still know me?
 She had Rendra’s face! Her features flickered back and forth, eyes and hair flashing darker then lighter; straining, she settled them as the innkeeper’s. No one would know her now. And Egwene thought she did not know how to be careful.
Closing her eyes, she concentrated on Tanchico, on the Panarch’s Palace, on need. Something dangerous to Rand, to the Dragon Reborn, need . . . Around her, Tel’aran’rhiod shifted; she felt it, a sliding lurch, and opened her eyes eagerly to see what she had found.
It was a bedchamber, as big as any six at the Three Plum Court, the white plaster walls worked in painted friezes, golden lamps hanging from the ceiling by gilded chains. The tall posts of the bed spread carved limbs and leaves in a canopy above the mattresses. A woman well short of her middle years stood stiffly with her back to one of the posts at the foot of the bed; she was really quite lovely, in that pouty-mouthed way that Nynaeve herself had adopted. Atop her dark braids sat a crown of golden trefoil leaves among rubies and pearls with a moonstone larger than a goose egg, and around her neck hung a broad stole, dangling to her knees and embroidered along its length with trees. Aside from crown and stole she wore only a glistening coat of sweat.
Her tremulous eyes were fixed on the woman lying at her ease on a low couch. The second woman’s back was to Nynaeve, as misty as Egwene had been earlier. She was short and slight, dark hair flowing loose to her shoulders, wide-skirted gown of pale yellow silk definitely not Taraboner. Nynaeve did not have to see her face to know it had large blue eyes and a foxlike shape, or see the bonds of Air holding the woman against the bedpost to know she was looking at Temaile Kinderode.
“ . . . learn so much when you use your dreams instead of wasting sleep,” Temaile was saying with a Cairhienin accent, laughing. “Are you not enjoying yourself? What shall I teach you next? I know. ‘I Have Loved a Thousand Sailor Men.’ ” She waggled an admonishing finger. “Be sure you learn all the words properly, Amathera. You know I would not want to—What are you gaping at?”
Abruptly Nynaeve realized the woman against the bedpost—Amathera? The Panarch?—was staring straight at her. Temaile shifted lazily as though to turn her head.
Nynaeve clamped her eyes shut. Need.
Shift.
Letting herself sag against the narrow column, Nynaeve gulped air as if she had run twenty miles, not even wondering where she was. Her heart pounded like a wild drum. Speak of landing in a vipers’ den. Temaile Kinderode. The Black sister Amico had said enjoyed causing pain, enjoyed it enough to have made one of the Black Ajah comment. And her not able to channel a spark. She could have ended up decorating a bedpost beside Amathera. Light! She shivered, seeing it. Calm yourself, woman! You are out of there, and even if Temaile saw you, she saw a honey-haired woman who vanished, just a Taraboner who dreamed herself into Tel’aran’rhiod for a moment. Surely Temaile could not have been aware of her long enough to sense she could channel; even when she could not do it, the ability was there to be felt by one who shared it. Only a moment. Not long enough, with luck.
At least she knew Amathera’s situation now. The woman was certainly no ally of Temaile. This method of searching had already repaid use. But not enough, not yet. Controlling her breathing as best she could, she looked around.
Rows of the thin white columns ran the length and breadth of a huge chamber nearly as wide as it was long, with smooth polished white floorstones below and gilded bosses on the ceiling high above. A thick rope of white silk ran all the way around the room on waist-high posts of dark polished wood, except where it would have blocked the doorways with double-pointed arches. Stands and open cabinets lined the walls, and the bones of peculiar beasts, with more display cases out in the floor, also roped off. The main exhibition hall of the palace, from Egwene’s description. What she sought must be in this very chamber. Her next step would not be as blind as the first; there were certainly no vipers, no Temaile, here.
A handsome woman suddenly appeared beside a glass case with four carved legs out in the middle of the floor. She was no Taraboner, with her dark hair falling in waves to her shoulders, yet that was not what made Nynaeve gape. The woman’s dress seemed to be mist, sometimes silvery and opaque, sometimes gray and so thin as to show her limbs and body clearly. From wherever she had dreamed herself here, she assuredly had a vivid imagination to conceive that! Even the scandalous Domani dresses she had heard of surely could not equal this.
The woman smiled at the glass case, then continued on up the hall, stopping on the far side to study something Nynaeve could not make out, something dark atop a white stone stand.
Frowning, Nynaeve released her grip on a fistful of honey-colored braids. The woman would disappear at any moment; few dreamed themselves into Tel’aran’rhiod for long. Of course, it did not matter if the woman saw her; she was certainly no one on their list of Black sisters. And yet she seemed somehow . . . Nynaeve realized she had taken hold of a handful of braids again. The woman . . . Of its own accord her hand pulled—hard—and she stared at it in amazement; her knuckles were white, her hand quivering. It was almost as if thinking of that woman . . . Arm shaking, her hand tried to yank her hair out of her scalp. Why under the Light?
 Trembling spread from Nynaeve’s arm into her shoulder. She had certainly never seen the woman before. And yet . . . She tried to open her fingers; they only clamped down harder. Surely she never had. Shivering from head to toe, she hugged herself with the one arm she had free. Surely . . . Her teeth wanted to chatter. The woman seemed . . . She wanted to weep. The woman . . .
Images burst into her head, exploding; she slumped against the column beside her as if they had physical force; her eyes bulged. She saw it again. The Chamber of Falling Blossoms, and that sturdily handsome woman surrounded by the glow of saidar. Herself and Elayne, babbling like children, fighting to be first to answer, pouring out everything they knew. How much had they told? It was difficult to bring out details, but she dimly remembered keeping some things back. Not because she wanted to; she would have told the woman anything, done anything she asked. Her face heated with shame, and anger. If she had managed to hide any scraps, it was only because she had been so—eager!—to answer the last question asked that she passed over earlier.
It makes no sense, a small voice said in the back of her head. If she’s a Black sister I don’t know about, why did she not hand us over to Liandrin? She could have. We’d have gone with her like lambs.
Cold rage would not let her listen. A Black sister had made her dance like a puppet and then told her to forget. Ordered her to forget: And she had! Well, now the woman would find out what it was like to face her ready and forewarned!
Before she could reach for the True Source, Birgitte was suddenly beside the next column in that short white coat and wide yellow trousers gathered at the ankle. Birgitte, or some woman dreaming she was Birgitte, with golden hair in an elaborate braid. A warning finger pressed against her lips, she pointed at Nynaeve, then urgently toward one of the double-arched doorways behind them. Bright blue eyes compelling, she vanished.
Nynaeve shook her head. Whoever the woman was, she had no time. Opening herself to saidar, she turned, filled to overflowing with the One Power and righteous wrath. The woman clothed in mist was gone. Gone!  Perhaps that one was still about, waiting for her. Wrapped in the Power, she strode through the doorway the woman had indicated.
The golden-haired woman was waiting in a brightly carpeted hallway where unlit golden lamps gave off the scent of perfumed oil. She held a silver bow now, and a quiver of silver arrows hung at her waist.
“Who are you?” Nynaeve demanded furiously. She would give the woman a chance to explain herself. And then teach her a lesson she would not soon forget! “Are you the same fool who shot at me in the Waste, claiming she was Birgitte? I was about to teach a member of the Black Ajah manners when you let her get away!”
“I am Birgitte,” the woman said, leaning on her bow. “At least, that is the name you would know. And the lesson might have been yours, here as surely as in the Three-fold Land. I remember the lives I have lived as if they were books well-read, the longer gone dimmer than the nearer, but I remember well when I fought at Lews Therin’s side. I will never forget Moghedien’s face, any more than I will forget the face of Asmodean, the man you almost disturbed at Rhuidean.”
Asmodean? Moghedien? That woman was one of the Forsaken? A Forsaken in Tanchico. And one at Rhuidean, in the Waste! Egwene would certainly have said something if she knew. No way to warn her, not for seven days. Anger—and saidar—surged in her. “What are you doing here?  ” She trailed off, a trifle flustered at what she had been about to say, but the other woman calmly finished for her.
“Dead? Those of us who are bound to the Wheel are not dead as others are dead. Where better for us to wait until the Wheel weaves us out in new lives than in the World of Dreams?” Birgitte laughed suddenly. “I begin to talk as if I were a philosopher. In almost every life I can remember I was born a simple girl who took up the bow. I am an archer, no more.”
“You’re the heroine of a hundred tales,” Nynaeve said. “And I saw what your arrows did at Falme. Seanchan channeling did not touch you. Birgitte, we face near a dozen of the Black Ajah. And one of the Forsaken as well, it seems. We could use your help.”
The other woman grimaced, embarrassed and regretful. “I cannot, Nynaeve. I cannot touch the world of flesh unless the Horn calls me again. Or else the Wheel weaves me out. If it did this moment, you would find only an infant mewling at her mother’s breast. As for Falme, the Horn had called us; we were not there as you were, in the flesh. That is why the Power could not touch us. Here, all is part of the dream, and the One Power could destroy me as easily as you. More easily. I told you; I am an archer, a sometime soldier, no more.” Her complex golden braid swung as she shook her head. “I do not know why I am explaining. I should not even be talking to you.”
“Why not? You’ve spoken to me before. And Egwene thought she saw you. That was you, wasn’t it?” Nynaeve frowned. “How do you know my name? Do you just know things?”
“I know what I see and hear. I have watched you, and listened, whenever I could find you. You and the other two women, and the young man with his wolves. According to the precepts, we may speak to none who know they are in Tel’aran’rhiod. And yet, evil walks the dream as well as the world of flesh; you who fight it attract me. Even knowing I can do almost nothing, I find myself wanting to help you. But I cannot. It violates the precepts, precepts which have held me for so many turns of the Wheel that in my oldest, faintest memories I know I had already lived a hundred times, or a thousand. Speaking to you violates precepts as strong as law.”
“It does,” said a harsh, male voice.
Nynaeve jumped and almost lashed out with the Power. The man was dark and strongly muscled, with the long hilts of two swords thrusting above his shoulders as he strode the few paces from where he had appeared to Birgitte. With what she had heard from Birgitte, the swords were enough to name him as Gaidal Cain, but where fair, golden-haired Birgitte was as beautiful as in the stories, he was definitely not.  Birgitte smiled at him, though; her touch on his cheek held more than fondness. It was a surprise to see he was the shorter. Stocky and muscled as he was, powerful in his movements, he gave the impression of being taller than he was.
“We have almost always been linked,” Birgitte told Nynaeve without taking her eyes from Cain’s. “He is usually born well before me—so I know my time approaches again when I cannot find him—and I usually hate him at first sight in the flesh. But we nearly always end lovers or wed. A simple story, but I think we have spun it out in a thousand variations.”
Cain ignored Nynaeve as though she did not exist. “The precepts exist for a reason, Birgitte. Nothing but strife and trouble has ever come from breaking them.” His voice was indeed harsh, Nynaeve realized. Not at all like that of the man in the stories.
“Perhaps I cannot sit by while evil fights,” Birgitte said quietly. “Or perhaps I simply hunger for the flesh again. It has been long since we were born last. The Shadow rises again, Gaidal. It rises here. We must fight it. That is the reason we were bound to the Wheel.”
“When the Horn calls us, we will fight. When the Wheel weaves us, we will fight. Not until then!” He glowered at her. “Have you forgotten what Moghedien promised you when we followed Lews Therin? I saw her, Birgitte. She will know you here.”
Birgitte turned to Nynaeve. “I will aid you as I can, but do not expect too much. Tel’aran’rhiod is the whole of my world, and I can do less here than you.”
Nynaeve blinked; the dark, heavy man had not moved that she had seen, but he suddenly stood two paces away, drawing a honing stone along one of his swords with a soft, silky rasp. Plainly, as far as he was concerned, Birgitte was speaking to the air.
“What can you tell of Moghedien, Birgitte? I must know what I can, to face her.”
Leaning on her bow, Birgitte frowned thoughtfully. “Facing Moghedien is difficult, and not only because she is Forsaken. She hides and takes no risks. She attacks only where she sees weakness, and moves only in shadows. If she fears defeat, she will run; she is not one to fight to the last, even when doing so has the chance of victory. A chance is not enough for Moghedien. But do not take her lightly. She is a serpent coiled in high grass, waiting her own moment to strike, with less compassion than the snake. Especially here do not take her lightly. Lanfear always claimed Tel’aran’rhiod for her own, but Moghedien could do things here far beyond Lanfear, though she has not Lanfear’s strength in the world of flesh. I think she would not take the risk of confronting Lanfear.”
Nynaeve shivered, fear warring with the anger that let her contain the Power. Moghedien. Lanfear. This woman spoke so casually of the Forsaken. “Birgitte, what did Moghedien promise you?”
“She knew what I was, even though I did not. How, I do not know.” Birgitte glanced at Cain; he appeared absorbed in his sword, but she lowered her voice anyway. “She promised to make me weep alone for as long as the Wheel turns. She said it as a fact that simply had not happened yet.”
“And yet you are willing to help.”
“As I can, Nynaeve. Remember that I told you not to expect too much.” Once more she looked at the man sharpening his sword. “We will meet again, Nynaeve. If you are careful, and survive.” Hefting her silver bow, she went to put an arm around Cain’s shoulders and murmur in his ear. Whatever she said, Cain was laughing as they vanished.
Nynaeve shook her head. Careful. Everybody was telling her to be careful. A legendary hero who said she would help, only there was not much she could do. And one of the Forsaken in Tanchico.
The thought of Moghedien, of what the woman had done to her, strengthened her anger until the One Power pulsed in her like the sun. Abruptly she was back in the great hall where she had been standing before, almost hoping the woman had returned. But the hall was empty of life except for herself. Fury and the Power roared through her till she thought her skin would crisp and blacken. Moghedien, or any of the Black sisters, could sense her far more easily holding the Power than without, but she held it anyway. She almost wanted them to find her, so she could strike at them. Temaile was very likely still in Tel’aran’rhiod. If she went back up to that bedchamber, she could settle Temaile once and for all. She could settle Temaile—and warn the rest. It was enough to make her growl.
What had Moghedien been smiling at? Striding out to the case, a wide glass box atop a carved table, she peered in. Six mismatched figurines stood in a circle beneath the glass. A foot-tall nude woman balanced on the toes of one foot, dancing, all flowing lines, and a shepherd less than half as large, playing the pipes with his crook on his shoulder and a sheep at his feet, were as similar as any two. She had no doubt what had attracted the Forsaken’s smile, though.
In the center of the circle a red-lacquered wooden stand held a disc as big as a man’s hand, divided into halves by a sinuous line, one side gleaming whiter than snow, the other blacker than pitch. It was made of cuendillar, she knew; she had seen its like, and only seven had ever been made. One of the seals on the Dark One’s prison; a focus for one of the locks that held him away from the world in Shayol Ghul. This was perhaps as important a discovery as whatever it was that threatened Rand. This had to be gotten away from the Black Ajah.
Suddenly she became aware of her reflection. The top of the case was the finest glass, without bubbles, and gave an image as clear as a mirror, if fainter. Dark green folds of silk draped her body so they showed every curve of breast and hip and thigh.  The glow of saidar did not show, of course. Disguised so she did not even know herself, she walked about carrying a painted sign that screamed Aes Sedai.
“I can be careful,” she muttered. Yet she held on a moment longer. The Power filling her was like life bubbling along her limbs, all the pleasures she had ever known seeping through her flesh. In the end, feeling foolish took enough edge from her anger to allow her to let go. Or maybe it dulled her anger to where she could no longer hold on.
Whatever the reason, it did not help her search. What she was after had to be somewhere in this huge hall among all these displays. Pulling her eyes away from what looked like the bones of a toothy lizard ten paces long, she closed them. Need. Danger to the Dragon Reborn, to Rand. Need.
Shift.
 What lay on top did not look very dangerous at first glance—a necklace and two bracelets of jointed black metal—but she could come no closer to anything than this. Not without sitting on it, she thought wryly.
She stretched her hand out to touch it— Pain. Sorrow. Suffering—and jerked it back, gasping, the raw emotions still echoing in her head. Even her faint doubts vanished. This was what the Black Ajah was hunting. And if it still sat on this pedestal in Tel’aran’rhiod, it sat there in the waking world, too. She had beaten them. This white stone pedestal.
Whirling around, she stared toward the glass case that held the cuendillar seal, located the place she had been standing where she first saw Moghedien. The woman had been looking at this pedestal, at the bracelets and collar. Moghedien had to know. But . . .
Everything around her spun and blurred, fading.
“Wake up, Nynaeve,” Elayne muttered, suppressing a yawn as she shook the sleeping woman’s shoulders. “It has to be an hour by now. I want some sleep, too. Wake up, or I’ll see how you like your head in a bucket of water.”
Nynaeve’s eyes popped open, staring up at her. “If she knows what it is, why hasn’t she given it to them? If they know who she is, why does she have to look at it in Tel’aran’rhiod? Is she hiding from them, too?”
“What are you talking about?”
Braids tossing about as she wriggled up to sit with her back against the head of the bed, Nynaeve jerked her silk shift down. “I will tell you what I am talking about.”
Elayne’s mouth fell open as Nynaeve unfolded the tale of what her meeting with Egwene had become. Searching with need. Moghedien. Birgitte and Gaidal Cain. The black metal necklace and bracelets. Asmodean in the Waste. One of the seals on the Dark One’s prison in the Panarch’s Palace. Elayne sank down weakly onto the side of the mattress long before Nynaeve came to Temaile and the Panarch, thrown in almost as an afterthought. And changing her appearance, masquerading as Rendra. If Nynaeve’s face had not been grimly serious, Elayne could have thought it one of Thom’s wilder stories.
Egeanin, sitting up cross-legged in her linen shift, hands on knees, looked close to disbelieving. Elayne hoped Nynaeve did not start a row because she had loosed the woman’s wrists.
Moghedien. That was the most horrifying part. One of the Forsaken in Tanchico. One of the Forsaken weaving the Power around the two of them, making them tell her everything. Elayne could not remember a bit of it. The thought was enough to press both her hands to a suddenly queasy stomach. “I don’t know whether Moghedien”—Light, could she really have just walked in and made us . . . ?—“is hiding from Liandrin and the others, Nynaeve. It sounds like what Birgitte”— Light, Birgitte giving her advice!—“said of her.”
“Whatever Moghedien is up to,” Nynaeve said in a tight voice, “I mean to pick a bone clean with her.” She slumped back against the flower-carved headboard. “In any case, we have to get the seal away from them as well as this necklace and bracelets.”
Elayne shook her head. “How can jewelry be dangerous to Rand? Are you sure? Are they a ter’angreal of some sort? What did they look like exactly?”
“They looked like a necklace and bracelets,” Nynaeve snapped in exasperation.  ” Her eyes darted to Egeanin, but no faster than Elayne’s.
Unperturbed, the dark-haired woman knelt up to sit on her heels. “I have never heard of an a’dam made for a man, or any like the one you describe. No one tries to control a man who can channel.”
“That is exactly what this is for,” Elayne said slowly. Oh, Light, I suppose I was hoping it didn’t exist. At least Nynaeve had found it first; at least they had a chance to stop it being used against Rand.
Nynaeve’s eyes narrowed as she took in Egeanin’s free hands, but she did not mention them. “Moghedien must be the only one who knows. It makes no sense, otherwise. If we can find a way into the palace, we can take the seal and the . . . whatever it is. And if we can bring Amathera out as well, Liandrin and her cronies will find the Panarch’s Legion and the Civil Watch, and maybe the Whitecloaks, closing in. They’ll not all be able to channel their way out of that! The problem is getting inside undetected.”
“I have had a few thoughts on that,” Elayne told her, “but I fear the men are going to give us difficulties over it.”
“You leave them to me,” Nynaeve snorted. “I—” A thumping clatter rose in the hall, a man shouted; as quickly as it began, silence fell once more. Thom was on watch out there.
Elayne darted to pull open the door, embracing saidar as she rushed out, but Nynaeve scrambled off the bed right behind her. Egeanin as well.
 Juilin with his staff and Bayle Domon with his cudgel stood over a man with pale yellow hair lying facedown on the floor, unconscious.
Elayne hurried to Thom, trying gently to help him up. He gave her a grateful smile, but stubbornly pushed her hands away. “I am quite all right, child.” All right? A knot was rising on his temple! “The fellow was walking down the hall, when suddenly he kicked me in the head. After my purse, I suppose.” Just like that. Kicked in the head, and he was all right.
“He would have had it, too,” Juilin said, “if I had not come to see if Thom wanted a relief.”
“Did I not decide,” Domon muttered. Their hostility seemed less focused for a change.
It took Elayne only a moment to realize why. Nynaeve and Egeanin were in the hall in their shifts. Juilin was eyeing them both in an approving manner that would have caused trouble if Rendra had seen it, though he was at least trying not to be obvious. Domon made no effort at all to hide his frank appraisal of Egeanin, crossing his arms and pursing his lips in disgusting fashion while looking her up and down.
The situation dawned on the other women quickly, but their reactions were quite different.  Egeanin, whose linen shift was considerably longer and thicker than Nynaeve’s—Egeanin, who had been cool serenity while being made prisoner, who fought like a Warder—Egeanin went wide-eyed and crimson-faced, gasping in horror. Elayne stared, amazed, as the Seanchan woman gave a mortified shriek and leaped back inside.
Doors flung open and down the hall heads popped out; they vanished instantly, to the bang of slamming doors, at the sight of a man stretched out on the floor and others standing over him. Heavy dragging noises suggested people blocking themselves in with beds or wardrobes.
Long moments later, Egeanin finally peeked out opposite Nynaeve, still scarlet to her hair. Elayne really did not understand. The woman was in her shift, true, but it covered her very nearly as well as Elayne’s Taraboner dress did. Still, Juilin and Domon had no right to ogle. She fixed the pair with a stare that should have set them to rights immediately.
Unfortunately, Domon was too busy chuckling and rubbing his upper lip to notice. At least Juilin saw, even if he did sigh heavily the way men did when they considered themselves put upon unfairly. Avoiding her eyes, he bent to heave the pale-haired fellow onto his back. A handsome enough man, slender.
“I know this fellow,” Juilin exclaimed. “This is the man who tried to rob me. Or so I thought,” he added more slowly. “I do not believe in coincidence. Not unless the Dragon Reborn is in the city.”
Elayne exchanged frowns with Nynaeve. Surely the stranger was not in the employ of Liandrin; the Black Ajah would not use men to sneak about the halls any more . . . Any more than they would have hired street toughs. Elayne moved her gaze to Egeanin questioningly. Nynaeve’s was more demanding.
“He is Seanchan,” Egeanin said after a moment.
“A rescue attempt?” Nynaeve murmured dryly, but the other woman shook her head.
“I do not doubt he was looking for me, but not for rescue, I think. If he knows—or even suspects—that I let Bethamin go free, he would be wanting to . . . talk with me.” Elayne suspected it was rather more than talk, confirmed when Egeanin added, “It might be best if you slit his throat. He may try to make trouble for you, too, if he thinks you are my friends, or if he discovers you are Aes Sedai.” The big Illianer smuggler gave her a shocked look, and Juilin’s jaw dropped almost to his chest. Thom, on the other hand, nodded in a disturbingly thoughtful fashion.
“We are not here to slit Seanchan throats,” Nynaeve said as though that might change later. “Bayle, Juilin, put him out in the alley behind the inn. By the time he wakes, he’ll be lucky to have his smallclothes. Thom, find Rendra and tell her we want strong tea in the Chamber of Falling Blossoms. And ask if she has any willowbark or acem; I will make you something for your head.” The three men stared at her. “Well, move!” she snapped. “We have plans to make!” She barely gave Elayne time to get back inside before closing the door with a bang and beginning to pull her dress over her head. Egeanin scrambled into hers as though the men were still looking at her.
“The better way is to ignore them, Egeanin,” Elayne said. It was odd to be advising someone older than Nynaeve, but however competent the Seanchan woman was in other ways, she clearly knew little about men. “It only encourages them, otherwise. I do not know why,” she admitted, “but it does. You were quite decently covered. Really.”
Egeanin’s head pushed out at the top of her dress. “Decent? I am not a serving girl. I am no shea dancer!” Her scowl became a perplexed frown. “He is rather good-looking, though. I had not thought of him so before.”
Wondering what a shea dancer was, Elayne went to help her with her buttons. “Rendra will have something to say to you if you allow Juilin to flirt with you.”
The dark-haired woman gave her a startled look over her shoulder. “The thief-catcher? It was Bayle Domon I meant. A properly set-up man. But a smuggler,” she sighed regretfully. “A lawbreaker.”
Elayne supposed there was no accounting for tastes—Nynaeve certainly loved Lan, and he was much too stone-faced and intimidating—but Bayle Domon? The man was half as wide as he was tall, as thick as an Ogier!
“You chatter like Rendra, Elayne,” Nynaeve snapped. She was struggling to do up her dress, both hands behind her. “If you have finished blathering about men, perhaps you won’t mind skipping over the new seamstress you’ve no doubt found? We must make plans. If we wait until we’re with the men, they will try to take it over, and I am in no mood to waste time putting them in their place. Have you finished with her yet? I could use some help myself.”
Quickly fastening Egeanin’s last small button, Elayne went coolly to Nynaeve. She did not talk about men and dresses. Not nearly as much as Rendra. Holding her braids out of the way, Nynaeve gave her a frown when she tugged sharply at the other woman’s dress to do up the buttons. The close-spaced triple row up the back was necessary, not simply ornament. Nynaeve would let Rendra talk her into the most fashionably tight bodices. And then say other people spent all their time thinking about clothes. She certainly thought of other things. “I have been thinking how we can move inside the palace unnoticed, Nynaeve. We can be all but invisible.”
As she talked, Nynaeve’s frowns smoothed out. Nynaeve herself had conceived a way to enter the palace. When Egeanin made a few suggestions, Nynaeve’s mouth tightened, but the notions were sensible, and even Nynaeve could not reject them out of hand. By the time they were ready to go down to the Chamber of Falling Blossoms, they had a plan agreed upon, and no intention of letting the men change a whit of it. Moghedien, the Black Ajah, whoever were running things in the Panarch’s Palace, were going to lose their prizes before they knew what had happened.


FIRST Robotics Competition
Combining the excitement of sport with the rigors of science and technology. We call FIRST Robotics Competition(FRC) the ultimate Sport for the Mind. High-school student participants call it “the hardest fun you’ll ever have.”
Under strict rules, limited time and resources, teams of students are challenged to raise funds, design a team “brand,” hone teamwork skills, and build and program industrial-size robots to play a difficult field game against like-minded competitors. It’s as close to real-world engineering as a student can get. Volunteer professional mentors lend their time and talents to guide each team. Each season ends with an exciting FIRST Championship.
This year’s challenge, Infinite Recharge, is sponsored by Disney.
In INFINITE RECHARGE, two alliances work to protect FIRST City from approaching asteroids caused by a distant space skirmish. Each Alliance, along with their trusty droids, race to collect and score Power Cells in order to energize their Shield Generator for maximum protection. To activate stages of the Shield Generator, droids manipulate their Control Panels after scoring a specific number of Power Cells. Near the end of the match, droids race to their Rendezvous Point to get their Shield Generator operational in order to protect the city!
Game Reveal Video


Pending BioThings APIs are a collection of community-contributed APIs from various data sources. They were built using BioThings SDK and follow the same design pattern of our official BioThings APIs (MyGene.info, MyVariant.info, MyChem.info, etc). These APIs are also pending to be integrated into the proper official BioThings API based on their entity type.
Pending BioThings APIs are a collection of community-contributed APIs from various data sources. They were built using BioThings SDK and follow the same design pattern of our official BioThings APIs (MyGene.info, MyVariant.info, MyChem.info, etc). These APIs are also pending to be integrated into the proper official BioThings API based on their entity type.
The list of APIs here provide programatic access to the underlying knowledge sources they cover. They were built using BioThings SDK and follow the same design pattern of our official BioThings APIs (MyGene.info, MyVariant.info, MyChem.info, etc). These APIs are serving as the Knowledge Providers (KPs) in the NCATS Biomedical Data Translator project. They were deployed to the NCATS Cloud infrastructure for production use.
We are continuing expanding the list of KP APIs here as new knowledge sources are identified. You are always welcome to suggest a great resource to us as well.


Protorabbit Statistics
Episodes
Components
Resources
Statistics
Home
Statistics
Archive
Clients
Current
Errors
⇰
Requests
Updates
Status :
Initializing...
Duration :
Last Minute
Last 5 Minutes
Last 10 Minutes
Last 20 Minutes
Last 40 Minutes
Last Hour
Resolution :
Second
Minute
Five Minutes
Hour
Totals
Requests :
Clients :
Errors :
Hops (application/json)
Pollers (application/json)
Pages (text/html)


a structured display of topics from the Yelp review dataset
Mouseover to explore, click to zoom in, click the center to zoom out.
This implementation of a sunburst was based upon Sequences Sunburst by Kerry Rodden and Zoomable Sunburst by Mike Bostock. By exploring the visualization, it's possible to infer the different topics from the Yelp reviews data set.
Each SLICE in the large sunburst represents a topic. When you mouse over or click on a slice, the words composing the TOPIC are displayed in the center of the sunburst.
The BREADCRUMB helps orient you as you navigate the sunburst. It shows the most common word in each topic leading to the one you're currently exploring. If you click to zoom in on a topic, the ANCHOR offers more context by highlighting which portion of the full topic structure is currently displayed in the large sunburst.


{% extends 'blog/main.html' %} {% block main_section %}
Big data is a term used to refer to data sets that are too large or complex for traditional data-processing application software to adequately deal with. Data with many cases (rows) offer greater statistical power, while data with higher complexity (more attributes or columns) may lead to a higher false discovery rate.
View {% endblock aside_news_section %} {% block test_news_section %}Statistics is a branch of mathematics dealing with data collection, organization, analysis, interpretation and presentation.In applying statistics to, for example, a scientific, industrial, or social problem, it is conventional to begin with a statistical population or a statistical model process to be studied.
View {% endblock test_news_section %}


Kitchen designs made for you, time in the kitchen is less of a hassle and more of a joy.
Explore KitchensFrom design to material, we go above and beyond what customers expect from other brands.
"We're committed to quality, so we offer a lifetime guarantee on all of our products"
We put a lot of thought into the planning of each set — every drawer and shelf is designed to give our customers a wide range of kitchenware that they can use and feel comfortable with.
We Know How To Work With Food Professionals
Affordable materials that are easy on the environment
Products are the highest quality available on the market
Experts hand-picked kitchen appliances and equipment
Kitchen designers can help you design a kitchen that’s beautiful and functional for your lifestyle. Our team is the first step in creating the kitchen of your dreams.
"Highest quality available, but they are also affordable. They’re a fantastic value for money."
New York
"A kitchen can be one of the hardest areas of your home to revamp, their expertise is certainly the key to this!"
San Francisco
"I love their idea of creating a splashback on the wall behind the kitchen bench to hide appliances and add a decorative touch to the wall."
Washington
"Kitchen with a floating island/icing rack and colours unlike any other! It looks like a homage to minimalism and Japanese design."
New York
"Kitchen is made from wood and features an island and Nordic theme, with a floating island that opens to a sunny veranda."
San Francisco
Sep
Professional
Sep
Materials
Office
7587 Longfellow Road Ankeny, IA 50023


Golden Globes 2020: The Complete Nominations List Is Out
by Waiz AhmedThe nominations for the 77th Golden Globe Awards were announced on Monday, 9 December 2019 by Tim Allen, Dakota Fanning, and Susan Kelechi. The 2020 edition of the Golden Globe Awards will be hosted by Ricky Gervais. The ceremony will be broadcasted live on January 5, 2020, from the Beverly Hilton.
The Hollywood Foreign Press Association's annual ceremony honours the achievement in both film and television. 'The Irishman’, 'Marriage Story’, 'Joker’ and 'Rocketman’ are some of the top contending films. While, 'Succession’, 'The Crown’, 'Game of Thrones’ and 'Fleabag’ are the top runners from television. The complete list of nominations of the Golden Globes 2020 is given below
Best Performance by an Actor in a Limited Series or Motion Picture Made for Television
Christopher Abbott (“Catch-22”)
Sacha Baron Cohen (“The Spy”)
Russell Crowe (“The Loudest Voice”)
Jared Harris (“Chernobyl”)
Sam Rockwell (“Fosse/Verdon”).
Best Performance by an Actress in a Limited Series or Motion Picture Made for Television
Kaitlyn Dever (“Unbelievable”)
Joey King (“The Act”)
Helen Mirren (“Catherine the Great”)
Merritt Wever (“Unbelievable”)
Michelle Williams (“Fosse/Verdon”).
Best Television Limited Series or Motion Picture Made for Television
“Catch-22″ (Hulu)
“Chernobyl” (HBO)
“Fosse/Verdon” (FX)
The Loudest Voice (Showtime)
“Unbelievable” (Netflix).
Best Motion Picture – Foreign Language
“The Farewell” (A24)
“Pain and Glory” (Sony)
“Portrait of a Lady on Fire” (Pyramide Films)
“Parasite” (CJ Entertainment)
“Les Misérables” (BAC Films, Amazon).
Best Performance by an Actor in a Supporting Role in a Series, Limited Series or Motion Picture Made for Television
Alan Arkin
Kieran Culkin (“Succession”)
Andrew Scott (“Fleabag”)
Stellan Skarsgård (“Chernobyl”)
Henry Winkler (“Barry”).
Best Television Series – Musical or Comedy
“Barry” (HBO)
“Fleabag” (Amazon)
“The Kominsky Method” (Netflix)
“The Marvelous Mrs. Maisel” (Amazon)
“The Politician” (Netflix).
Best Original Score – Motion Picture
Daniel Pemberton (“Motherless Brooklyn”)
Alexandre Desplat (“Little Women”)
Hildur Guðnadóttir (“Joker”)
Thomas Newman (“1917”)
Randy Newman (“Marriage Story”).
Best Screenplay – Motion Picture
Noah Baumbach (“Marriage Story”)
Bong Joon-ho and Han Jin-won (“Parasite”)
Anthony McCarten (“The Two Popes”)
Quentin Tarantino (“Once Upon a Time in Hollywood”)
Steven Zaillian (“The Irishman”).
Best Original Song – Motion Picture
“Beautiful Ghosts” (“Cats”)
“(I’m Gonna) Love Me Again” (“Rocketman”)
“Into the Unknown” (“Frozen II”)
“Spirit” (“The Lion King”)
“Stand Up” (“Harriet”).
Best Performance by an Actress in a Supporting Role in a Series, Limited Series or Motion Picture Made for Television
Patricia Arquette (“The Act”)
Helena Bonham Carter (“The Crown”)
Toni Collette
Meryl Streep (“Big Little Lies”)
Emily Watson (“Chernobyl”).
Best Performance by an Actor in a Television Series – Musical or Comedy
Michael Douglas (“The Kominsky Method”)
Bill Hader (“Barry”)
Ben Platt (“The Politician”)
Paul Rudd (“Living with Yourself”)
Ramy Youssef (“Ramy”).
Best Performance by an Actress in a Television Series – Musical or Comedy
Christina Applegate (“Dead to Me”)
Rachel Brosnahan (“The Marvelous Mrs. Maisel”)
Kirsten Dunst (“On Becoming a God in Central Florida”)
Natasha Lyonne (“Russian Doll”)
Phoebe Waller-Bridge (“Fleabag”).
Best Performance by an Actor in a Television Series – Drama
Brian Cox (“Succession”)
Kit Harington (“Game of Thrones”)
Rami Malek (“Mr. Robot”)
Tobias Menzies (“The Crown”)
Billy Porter (“Pose”).
Best Screenplay – Motion Picture
Noah Baumbach (“Marriage Story”)
Bong Joon-ho and Han Jin-won (“Parasite”)
Anthony McCarten (“The Two Popes”)
Quentin Tarantino (“Once Upon a Time in Hollywood”)
Steven Zaillian (“The Irishman”).
Best Performance by an Actress in a Television Series – Drama
Jennifer Aniston (“The Morning Show”)
Olivia Colman (“The Crown”)
Jodie Comer (“Killing Eve”)
Nicole Kidman (“Big Little Lies”)
Reese Witherspoon (“Big Little Lies”).
Best Actor in a Supporting Role in Any Motion Picture
Tom Hanks (“A Beautiful Day in the Neighborhood”)
Anthony Hopkins (“The Two Popes”)
Al Pacino (“The Irishman”)
Joe Pesci (“The Irishman”)
Brad Pitt (“Once Upon a Time in Hollywood”).
Best Actress in a Supporting Role in Any Motion Picture
Kathy Bates (“Richard Jewell”)
Annette Bening (“The Report”)
Laura Dern (“Marriage Story”)
Jennifer Lopez (“Hustlers”)
Margot Robbie (“Bombshell”).
Best Actor in a Motion Picture – Musical or Comedy
Daniel Craig (“Knives Out”)
Roman Griffin Davis (“Jojo Rabbit”)
Leonardo DiCaprio (“Once Upon a Time in Hollywood”)
Taron Egerton (“Rocketman”)
Eddie Murphy (“Dolemite Is My Name”).
Best Motion Picture – Animated
“Frozen II” (Disney)
“How to Train Your Dragon: The Hidden World” (Universal)
“Missing Link” (United Artists Releasing)
“Toy Story 4” (Disney)
“The Lion King” (Disney).
Best Director – Motion Picture
Bong Joon-ho (“Parasite”)
Sam Mendes (“1917”)
Todd Phillips (“Joker”)
Martin Scorsese (“The Irishman”)
Quentin Tarantino (“Once Upon a Time in Hollywood”).
Best Actor in a Motion Picture – Drama
Christian Bale (“Ford v Ferrari”)
Antonio Banderas (“Pain and Glory”)
Adam Driver (“Marriage Story”)
Joaquin Phoenix (“Joker”)
Jonathan Pryce (“The Two Popes”).
Best Actress in a Motion Picture – Musical or Comedy
Awkwafina (“The Farewell”)
Ana de Armas (“Knives Out”)
Cate Blanchett (“Where’d You Go, Bernadette”)
Beanie Feldstein (“Booksmart”)
Emma Thompson (“Late Night”).
Best Television Series – Drama
“Big Little Lies” (HBO)
“The Crown” (Netflix)
“Killing Eve” (BBC America)
“The Morning Show” (Apple TV Plus)
“Succession” (HBO).
Best Actress in a Motion Picture – Drama
Cynthia Erivo (“Harriet”)
Scarlett Johansson (“Marriage Story”)
Saoirse Ronan (“Little Women”)
Charlize Theron (“Bombshell”)
Renée Zellweger (“Judy”).
Best Motion Picture – Musical or Comedy
“Once Upon a Time in Hollywood” (Sony)
“Jojo Rabbit” (Fox Searchlight)
“Knives Out” (Lionsgate)
“Rocketman” (Paramount)
“Dolemite Is My Name” (Netflix).
Best Motion Picture – Drama
“The Irishman” (Netflix)
“Marriage Story” (Netflix)
“1917” (Universal)
“Joker” (Warner Bros.)
“The Two Popes” (Netflix).


{% extends 'base_course.html' %} {% block gcb_page_info %} if ('gcbSetPageInfo' in window) { gcbSetPageInfo({ 'page_type': 'review', 'unit_id': '{{ unit_id }}', 'review_step': '{{ review_step_key }}', }); } {% endblock %} {% block subtitle %} {# I18N: Title of the webpage. #} - {{ gettext('Review') }} {% endblock subtitle %} {% block top_content %} {% endblock %} {% block main_content %} {% if is_read_write_course and is_course_admin %} Edit assessment {% endif %} {% if model_version == '1.5' %} {% import 'assessment_html_content.html' as html_assessment %} {% endif %}
{% if due_date_exceeded %} {# I18N: Text shown to students when they visit a review submission page for which the due date has passed. #} {{ gettext('The due date for submitting this review has passed. It was due on %(review_due_date)s.', review_due_date=review_due_date) }} {% else %} {# I18N: Shown to a student who is asked to complete a peer review of another student's assignment. #} {{ gettext('Due date for this review: ') }} {{ review_due_date }}. {% endif %}
{# I18N: Instructions to a student who is asked to complete a peer review of another student's assignment. #} {{ gettext('The scores and comments you submit here will be viewed by your peers. Once you submit your review, you may not edit it.') }}


Linda Smith (born 1958-01-29[ref]) has appeared in 145 episodes between 1998-2007. Linda Smith on IMDB. Linda Smith on Wikipedia. Linda Smith on Chortle.


StockX Product GIF Generator
Create GIFs from StockX products with 360º image support.
Developer's Note
- This tool's mobile functionalty is lacking and only consistently performs on iOS in Safari.
- It may take a while to download the file considering they normally run upwards of 7MB.
Made by Fyko
We collect analytics with SimpleAnalytics, a privacy-friendly analytics engine | Total Visits:
This service is not affiliated nor endorsed by StockX LLC.


Two Pass
Radiosity & Ray-Tracing
劉君猷、陳力宇
宋子維、林義聖
Original view
Radiosity
At the beginning
After 1 steps
After 2 steps
After 3 steps
After 31 steps (without interpolation)
After 31 steps
Ray Tracing
Ray-casting
Ray-casting + Phong shading
Ray-casting + Phong shading + Shadow ray
Classical ray-tracing + Phong shading
Ray-casting
Reflection on reflective surfaces
With a mirror
Two Pass
Reflection on every surfaces
Reflection on reflective surfaces
After interpolation
With a mirror (no reflection)
With a mirror
END


Mergesort Proficiency Exercise Help Page
This exercise asks you to reproduce the merge behavior of the Mergesort algorithm on a random sequence of 10 values. Initially you will be presented with several blank arrays and 10 numbers in single element arrays at the bottom of the display. The things that you can do are: click on an element containing a number; and click on a blank element in an array one row above the currently selected element to move the selected element to that location.
Sort sublist of length 2
The first thing you need to do is select the smallest of the two bottom left-most elements (in the same row). Next, click the first blank element in the array above the two elements you just compared to move this value to the front of the sublist. Select the other element and move it to remaining blank element. The first sublist is now sorted.
Sort remaining sublists
If the two lists you are comparing contain a total of more than two elements, consider just the left-most elements of each list and select the smaller of the two. Move this value to the front of the merge list. Again, consider the left-most elements of each list, i.e. the remaining element from the previous comparison and the element directly to the right of the one which was just merged. Compare, select, merge and repeat until all the elements have been merged or one sublist is exhausted. When one sublist has been emptied, all the remaining elements can be moved to the merged list in their current order.
Repeat as needed
When two sublists are sorted, or contain single elements, they can be merged to form a single, sorted list. Follow the directions above to sort sublists so that they can be merged.
Other Controls:
- If you want to back up a step and try again, click the "Undo" button.
- If you want to restart the exercise, click the "Reset" button.
- If you want to see the correct answer, click the "Model Answer" button to see a slideshow in a pop-up window.
- Note: Viewing the answer will prevent you from obtaining credit for the current problem instance. So just hit "reset" when you are done viewing the model answer.
- The button with gears on it will let you set some options such as the animation speed (for the slideshow model answer).
- The "About" button will tell you about who wrote this, etc.
- The "Help" button got you here.


Issue #I01042018001
Pieline Leak
Water Department
Community
Acknoledged
Feedback
Issue #I01042018002
Pieline Leak at Gandhi Chauk
Water Department
Personal
Submitted
Feedback
Issue #I01042018003
Pieline Leak at Navjeevan Society
Water Department
Personal
Submitted
Feedback
Issue #I01042018004
Pieline Leak at Somaiya Vidyavihar
Water Department
Community
Submitted
Feedback


This is an experiment in self-organizing behavior. The question posed is "How to get people to follow a simple rule?" In this case, the simple rule is "Walk on the right."
The thesis here is that top-down enforcement of this rule is not necessary to force those who would otherwise pay no heed to the rule to follow it nonetheless. If a certain ratio of walkers follows the rule, then the others will also do so because it will become more difficult for them to fight oncoming traffic than to move to the right side.
All walkers implement simple algorithm: If walking straight ahead would result in a collision with an oncoming walker, then move to the side that is nearest. There is no bias here. Walkers will simply move to the right or left, depending on which is more convenient for them.
A certain ratio of walkers will always start on the right side of the street. This is the "right walkers ratio", which you can see in the UI.
In addition to this, 50% of non-right walkers will, just by accident, start on the right side of the street. This means that the expected ratio of right walkers is equal to 0.5 * (1 + right_walker_ratio).
The thesis states that the mean number of walkers walking on the right side of the street should exceeds this "expected" number, due to the number of non-right walkers who are forced to move to the right by the relatively small proportion of right walkers. This phenomenon is indeed demonstrated, to varying degrees, depending on the values of the free parameters.
So go play with those free parameters, and see what conditions are needed to get the walkers to behave properly!
OK, I get it now.


GET JABBED
Please, access the site using a desktop. Read
usage instructions
before using
+91
Select your state
Select your district
Select the centers for which you want check the slots
Please
consider donating
to a COVID relief fund of your choice.


Ms. Magazine [ http://msmagazine.com/ ]
Get the new edition of Ms.! [ http://store.feminist.org/getandgivems.aspx ]
Get the latest issue of Ms. in print, on your mobile device, or both! [ http://store.feminist.org/getandgivems.aspx ]
Dear Dry,
“Feminist: the person who believes in the social, political and economic equality of the sexes.”
This succinct, unapologetic definition of feminism that Nigerian-born novelist Chimamanda Ngozi Adichie gave in a TED talk became a feminist shot heard ‘round the world and was even sampled in one of Beyonce’s latest tracks. Ms. has avidly followed Adichie’s literary career from 2006 to now where she’s become one of the most-talked-about writers in the US.
[ http://msmagazine.com/summer2014/index.asp ]*Our latest issue of “Ms.”* [ http://msmagazine.com/summer2014/index.asp ] features a candid interview with Adichie where she talks about feminism, writing and the black experience. *Subscribe now to get the full story! [ http://store.feminist.org/getandgivems.aspx ]** [ http://store.feminist.org/getandgivems.aspx ]***
Also featured in this issue that you won’t want to miss:
* Family advocates call for reformed child welfare laws and a revamped foster care system
* A dangerous double standard of the U.S. relationship with Bangladesh’s garment industry is exposed
* We go inside a network of underground abortion-rights advocates providing a safe choice for women in Chile
*Join “Ms”. today. [ http://store.feminist.org/getandgivems.aspx ]** [ http://store.feminist.org/getandgivems.aspx ]* Choose the format that fits your life: digital only, print only, or digital and print. Now you can take “Ms”. with you on the go.
For women’s equality.
Kathy Spillar
Katherine Spillar
Executive Editor
PS: If you join the “Ms”. community now, you can have the latest issue sent straight to your mailbox and read it digitally on the Ms. app for only $29.95. [ http://store.feminist.org/getandgivems.aspx ]
“You have received this e-mail because of your interest in promotions and Ms. magazine. To unsubscribe, please click here. [ http://org.salsalabs.com/o/1400/p/salsa/supporter/unsubscribe/public/index.sjs?unsubscribe_page_KEY=494 ]”
1600 Wilson Boulevard, Suite 801, Arlington, VA 22209 |<PHONE_NUMBER> | webmaster@feminist.org


About 68,00,000 results (0.58 seconds)
Apex - Responsive Angular 5 Admin Template
Oct 24, 2017 - Apex nec nisl lobortis erat rutrum dignissim. Colonel Responsive Angular 5 Admin Template Ut tellus dui, rhoncus quis vulputate non, sodales ac ex. Fusce interdum efficitur purus quis viverra...
Donec vitae ante ipsum. In aliquet, urna id varius mattis...
Velit mi sodales turpis, nec consectetur leo elit.
Vestibulum nec orci placerat, euismod turpis egestas...
Nam in velit iaculis, vestibulum ex a, porta sapien...
Donec ullamcorper est vel dui commodo dictum.
Ut rhoncus massa diam, in commodo enim posuere quis mosito...
Attire bench - Quick win shoot me an email
Oct 24, 2017 - We need to dialog around Apex Admin your choice of work attire bench mark, or win-win-win. Quick win shoot me an email.
The Table - for what do you feel you would bring to
Proceduralize Not the long pole in my tent. Get buy-in pixel pushing, and quick win . What's the status on the deliverables for eow? goalposts golden goose, and take five.
Microdosing - deep v actually schlitz chia
http://themeforest.net/Apex/microdosing
Lobortis erat rutrum dignissim. Colonel Responsive Angular 5 Admin Template Ut tellus dui, rhoncus quis vulputate non, sodales ac ex. Fusce interdum efficitur purus quis viverra. Vivamus eros urna, scelerisque ac enim...
Aesthetic neutra freegan, mlkshk literally
http://envato.com/literally/Apex/
June 30, 2016 - Humblebrag mixtape tumblr small batch, marfa blog mumblecore retro sustainable bitters normcore brunch whatever helvetica. Humblebrag mumblecore beard irony, XOXO craft beer kogi letterpress freegan vegan disrupt...
iCell - disrupt butcher pitchfork.
March 23, 2016 - Church-key selfies bitters man bun post-ironic. 8-bit 3 wolf moon drinking vinegar, direct trade plaid cred hashtag offal. Fap XOXO chambray, intelligentsia kogi keytar flexitarian cardigan kale chips food truck.
Run it - up the flagpole, ping the boss
Pixel pushing horsehead offer that jerk from finance really threw me under the bus, but best practices new economy and take five, punch the tree, and come back in here with a clear head...
Some quick example text to build on the card title and make up the bulk of the card's content.Wikipedia
People also search for


Room reservation app built using HTML / CSS / Bootstrap / Ruby / Sinatra / PostgreSQL.
Stack Overflow replica developed utilizing continuous integration. HTML / CSS / Bootstrap / JavaScript / Ruby on Rails
Survey Monkey clone built using HTML / CSS / Bootstrap / Ruby / Sinatra / PostgreSQL / ActiveRecord.
Intergalactic numbers game. Make it to galaxy 256 by combining neighboring identical numbers. HTML / CSS / JavaScript / jQuery / Mousetrap
*ongoing work


[Video] This Incredible Godzilla Christmas Tree Breathes Smoke and You Can Buy It!
by John SquiresLast year, a man by the name of Steven Newland turned four (fake) Christmas trees into “TreeZilla,” a towering holiday monstrosity shaped like the King of the Monsters. Wrapped up in lights and equipped with glowing red eyes and the ability to breathe fog machine smoke, “TreeZilla” features plastic teeth and paper claws, his head adorned with a Santa hat.
The badass custom Christmas tree, which Newland originally shared through a YouTube video last December, is now up for auction through the New Zealand-based site Trade Me!
At the time of writing this article, “TreeZilla” has passed the reserve amount with a current top bid of $305, and the auction is set to run until November 27th at 7:30pm.
The tree measures approximately 6-feet tall (1.8m), and Newland notes that the winning bidder will also become the new owner of a set of adorable Godzilla stockings.
Head over to Trade Me to learn more and (if you’re so inclined) place your bid!


Nevuna
Home
Blog
Services
About us
Contact
Services Us
Lorem ipsum dolor sit amet consectetur adipisicing elit.
Services Plan One
$59.99/Months
Lorem ipsum dolor sit amet consectetur.
Feature One
Feature Two
Feature Three
Feature Four
Order now
Services Plan Two
$80.99/Months
Lorem ipsum dolor sit amet consectetur.
Feature One
Feature Toe
Feature Three
Feature Four
Order now
Services Plan Three
$99.99/Months
Lorem ipsum dolor sit amet consectetur.

Question Three
Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet?

Question Five
Lorem ipsum dolor sit ametLorem ipsum dolor sit amet.?
Question Six
Lorem ipsum dolor sit ametLorem ipsum dolor sit amet.?


{% extends "base.html" %} {% block title %}{% trans "Thank you for registering" %} - {{ block.super }}{% endblock title %} {% block content %}
{% trans "You have to click on the link provided in the activation email which we have sent you." %}
{% blocktrans %}We will store your account information for {{ activation_days }} days. {% endblocktrans %}
{% else %}{% trans "You can now use the supplied credentials to sign in." %}
{% endif %} {% endblock content %}