Egwene was sitting in her chair—one of the few real chairs in the camp, with a little plain carving like a farmer’s best armchair, roomy and comfortable enough that she felt only a touch of guilt about taking up valuable wagon space for it—she was sitting there trying to pull her thoughts together when Siuan swept aside the entry flaps and ducked into the tent. Siuan was not happy.
“Why in the Light did you run off?” Her voice had not changed with her face, and she chided with the best even when she did it in respectful tones. Barely respectful. Her blue eyes remained the same, too; they could have done for a saddlemaker’s awls. “Sheriam brushed me aside like a fly.” That surprisingly delicate mouth twisted bitterly. “She was gone almost as soon as you were. Don’t you realize she handed herself to you? She certainly does. Her, and Anaiya and Morvrin and the lot of them. You can be sure they’ll spend tonight trying to bail water and patch holes. They could manage it. I don’t see how, but they might.”
Almost as the last word left her mouth, Leane entered. A tall, willowy woman, her coppery face was as youthful as Siuan’s, and for the same reason; she also was more than old enough to be Egwene’s mother, in truth. Leane took one look at Siuan and threw up her hands as much as the roof of the tent would allow. “Mother, this is a foolish risk.” Her dark eyes went from dreamy to flashing, but her voice had a languorous quality even when she was irritated. Once, it had been brisk.  It could be worked through with time, but not without detection, so long as she held the weave instead of tying it off.
She did care, and perhaps she should not have called them both, but her first half-coherent thought had been to summon the two sisters she could count on. No one in the camp so much as suspected. Everyone knew the former Amyrlin and her former Keeper detested one another every bit as much as Siuan detested being tutor to her successor. Should any sister uncover the truth, they might well find themselves doing penance for a long time to come, and not an easy one—Aes Sedai appreciated being made fools of even less than other people; kings had been made to pay for that—but in the meanwhile their supposed animosity resulted in a certain leverage with the other sisters, including Sitters. If they both said the same thing, it must be so. Another incidental effect of being stilled was very useful, one no one else knew about. The Three Oaths no longer held them; they could lie like wool merchants, now.
Schemes and deceptions on every side. The camp was like some fetid swamp where strange growths sprouted unseen in mists. Maybe anywhere Aes Sedai gathered was like that. After three thousand years of plotting, however necessary, it was hardly surprising that scheming had become second nature to most sisters and only a breath away for the rest. The truly horrible thing was that she found herself beginning to enjoy all the machinations. Not for their own sake, but as puzzles, though no twisted bits of iron could intrigue her a quarter so much. What that said about her, she did not want to know. Well, she was Aes Sedai, whatever anyone thought, and she had to take the bad of it with the good.
“Moghedien has escaped,” she went on without pause. “A man removed the a’dam from her. A man who can channel. I think one of them took the necklace away; it wasn’t in her tent, that I saw. There might be some way to find it using the bracelet, but if there is, I don’t know it.”
That took the starch right out of them. Leane’s legs gave way, and she dropped like a sack onto the stool Chesa sometimes used. Siuan sat down on the cot slowly, back very straight, hands very still on her knees. Incongruously, Egwene noticed that her dress had tiny blue flowers embroidered in a wide Tairen maze around the bottom, a band that made the divided skirts seem one when she was still. Another band curved becomingly across the bodice. Concern for her clothes, that they be pretty instead of just suitable, was certainly a small change, looking at it one way—she never took it to extremes—yet in another, it was as drastic as her face. And a puzzle. Siuan resented the changes, and resisted them. Except for this one.
Leane, on the other hand, in true Aes Sedai fashion embraced what had changed. A young woman again—Egwene had overheard a Yellow exclaiming in wonder that both were prime childbearing age, by everything she could find—she might never have been Keeper, never have had any other face. The very image of practicality and efficiency became the ideal of an indolent and alluring Domani woman. Even her riding dress was cut in the style of her native land, and no matter that its silk, so thin it barely seemed opaque, was as impractical as the pale green color for traveling dusty roads. Told that having been stilled had broken all ties and associations, Leane had chosen the Green Ajah over a return to the Blue. Changing Ajahs was not done, but then, no one had been stilled and then Healed before, either.
“Oh, Light!” Leane breathed as she thumped onto the stool with considerably less than her usual grace. “We should have turned her over for trial the first day. Nothing we’ve learned from her is worth letting her loose on the world again. Nothing!” It was a measure of her shock; she did not normally go about stating the obvious. Her brain had not grown indolent, whatever her outward demeanor. Languid and seductive Domani women might be on the outside, but they were still known as the sharpest traders anywhere.
“Blood and bloody—! We should have had her watched,” Siuan growled through her teeth.
Egwene’s eyebrows rose. Siuan must be as shaken as Leane. “By who, Siuan? Faolain? Theodrin? They don’t even know you two are of my party.” A party? Five women. And Faolain and Theodrin were hardly eager adherents, especially Faolain. Nynaeve and Elayne could be counted too, of course, and Birgitte certainly, even if she was not Aes Sedai, but they were a long way off. Stealth and cunning were still her major strengths. Plus the fact that no one expected them of her. “How should I have explained to anyone why they were supposed to watch my serving woman? For that matter, what good would it have done? It had to be one of the Forsaken. Do you really think Faolain and Theodrin together could have stopped him? I’m not sure I could have, even linked with Romanda and Lelaine.” They were the next two strongest women in the camp, as strong in the Power as Siuan used to be.
Siuan visibly forced a scowl from her face, but even so, she snorted. She often said that if she could no longer be Amyrlin, then she would teach Egwene how to be the best Amyrlin ever, yet the transition from lion on a hill to mouse underfoot was difficult. Egwene allowed her no little latitude because of that.
“I want the two of you to ask about among those near the tent Moghedien was sleeping in. Someone must have seen the man. He had to come afoot.
Siuan snorted, louder than the first time. “Why bother?” she growled.  Maybe tie up all the Forsaken at one go? Win the Last Battle while you’re at it? Even if we get a description head to toe, nobody knows one Forsaken from another. Nobody here, anyway.  Egwene said sharply, sitting up straighter. Latitude was one thing, but there were limits. She did not put up with this even from Romanda.
Color bloomed slowly in Siuan’s cheeks. Struggling to master herself, she kneaded her skirts and avoided Egwene’s eyes. “Forgive me, Mother,” she said finally. She almost sounded as if she meant it.
“It has been a difficult day for her, Mother,” Leane put in with an impish smile. She was very good at those, though she generally used them to set some man’s heart racing. Not promiscuously, of course; she possessed discrimination and discretion in ample supply. “But then, most are. If she could only learn not to throw things at Gareth Bryne every time she gets angry—”
“Enough!” Egwene snapped. Leane was only trying to take a little of the pressure from Siuan, but she was in no mood for it. “I want to know anything I can learn about whoever freed Moghedien, even if it’s just whether he was short or tall. Any scrap that makes him less a shadow creeping in the dark. If that’s not more than I have a right to ask.” Leane sat quite still, staring at the flowers in the carpet in front of her toes.
The redness spread to cover nearly Siuan’s whole face; with her fair skin, it made her look like a sunset. “I . . . humbly beg your pardon, Mother.” This time, she did sound penitent. Her difficulty meeting Egwene’s gaze was obvious. “Sometimes it’s hard to . . . No, no excuses. I humbly beg pardon.”
Egwene fingered her stole, letting the moment set itself as she looked at Siuan without blinking. That was something Siuan herself had taught her, but after a bit she shifted uneasily on the cot. When you knew you were in the wrong, silence pricked, and the pricks drove home that you were wrong. Silence was a very useful tool in a number of situations. “Since I can’t recall what I should forgive,” she said at last, quietly, “there seems to be no need. But, Siuan . . . Don’t let it happen again.”
“Thank you, Mother.” A hint of wry laughter curled the corners of Siuan’s mouth. “If I may say so, I seem to have taught you very well. But if I may suggest . . . ?” She waited for Egwene’s impatient nod. “One of us should carry your order to Faolain or Theodrin to ask the questions, very sulky at being made a messenger. They’ll occasion a deal less comment than Leane or I. Everyone knows you are their patron.”
Egwene agreed immediately. She still was not thinking clearly, or she would have seen that for herself. The headachy feeling was back again. Chesa claimed it came from too little sleep, but sleeping was difficult when your head felt taut as a drumhead. It would take a larger head than hers not to feel tight, stuffed with as many worries as she had. Well, at least now she could pass on the secrets that had kept Moghedien hidden, how to weave disguises with the Power and how to mask your ability from other women who could channel. Revealing those had been too risky when they might have led to unmasking Moghedien.
A bit more acclaim, she thought wryly. There had been great petting and exclaiming when she announced the once-lost secret of Traveling, which at least had been her own, and more praise since for every one of the secrets she had wrenched out of Moghedien, like pulling a back tooth each time. None of the acclaim made an ounce of difference in her position, though. You could pat a talented child on the head without forgetting she was a child.
Leane departed with a curtsy and a dry comment that she was not sorry somebody else would have less than a full night’s rest for once. Siuan waited; no one could be allowed to see her and Leane leaving together. For a time Egwene merely studied the other woman. Neither spoke; Siuan seemed lost in thought. Finally she gave a start and stood, straightening her dress, plainly preparing to go.
“Siuan,” Egwene began slowly, and found herself uncertain how to continue.
Siuan thought she understood. “You were not only right, Mother,” she said, looking Egwene straight in the eye, “you were lenient. Too lenient, though I say it who shouldn’t. You are the Amyrlin Seat, and no one may be insolent or impertinent to you. If you’d given me a penance that made even Romanda feel sorry for me, it would have been no more than I deserved.”
“I will remember that next time,” Egwene said, and Siuan bowed her head as if in acceptance. Maybe it was. Unless the changes in her ran deeper than seemed possible, there almost certainly would be a next time, and more after that. “But what I want to ask about is Lord Bryne.” All expression vanished from Siuan’s face.  Siuan’s voice was blander than cold water soup. “The only duties I have are teaching you the etiquette of your office and handing Sheriam reports from my eyes-and-ears.” She still retained some of her former network, though it was doubtful any knew who their reports went to now. “Gareth Bryne hardly requires enough of my time to interfere with that.” She almost always referred to him that way, and even when she used his title, she put a bite into it.
“Siuan, a burned barn and a few cows couldn’t cost that much.” Not compared with paying and feeding all those soldiers, certainly. But she had offered before, and the stiff reply was the same.
“I thank you, Mother, but no. I won’t have him saying I break my word, and I swore to work the debt off.” Abruptly, Siuan’s stiffness dissolved in laughter, rare when she spoke about Lord Bryne. Scowls were much more common. “If you need to worry about somebody, worry about him, not me. I need no help handling Gareth Bryne.”
And that was the strange part. Weak she might be in the One Power, now, but not so weak that Siuan had to keep on as his servant, spending hours up to her elbows in hot soapy water with his shirts and smallclothes. Perhaps she did so in order to have someone at hand on whom she could loose the temper she was otherwise forced to keep in a sack. Whatever the reason, it occasioned no little talk, and confirmed her oddness in many eyes; she was Aes Sedai, after all, if rather far down. His methods of dealing with her temper—once she threw plates and boots, anyway—outraged her and provoked threats of dire consequences, yet though she could have wrapped him up unable to stir a finger, Siuan never touched saidar around him, not to do his chores and not even when it meant being turned over his knee. That fact she had kept hidden from most so far, but some things slipped out when she was in a rage, or when Leane was in a humor. There seemed to be no explanation. Siuan was not weak-spirited or a fool, she was neither meek nor afraid, she was not . . .
“You might as well be on your way, Siuan.” Clearly, some secrets were not going to be revealed tonight. “It’s late, and I know you want your bed.”
“Yes, Mother. And, thank you,” she added, though Egwene could not have said for what.
After Siuan left, Egwene rubbed her temples once more. She wanted to pace. The tent would not do; it might be the largest in the camp occupied by just one person, but that meant less than two spans by two, and it was crowded with cot and chair and stool, washstand and stand-mirror and no fewer than three chests full of clothes. Chesa had seen to those last, and Sheriam, and Romanda and Lelaine and a dozen more Sitters. They kept seeing to them; a few more gifts of silk shifts or stockings, one more dress grand enough to receive a king, and there would be need for a fourth chest. Maybe Sheriam and the Sitters hoped all the fine dresses would blind her to anything else, but Chesa just thought the Amyrlin Seat had to be clothed suitably for her station. Servants, it seemed, believed in following the correct rituals as much as the Hall ever did. Shortly Selame would be there; it was her turn to undress Egwene for bed, another ritual. Only, between her head and her restless feet, she was not ready for bed yet.
Leaving the lamps burning, she hurried out before Selame could arrive. Walking would clear her head, and maybe tire her enough that she could sleep soundly. Putting herself to sleep would be no problem—the Wise One dreamwalkers had taught her that skill early on—yet finding any rest in it was another matter. Especially when her mind boiled with a list of worries that began with Romanda and Lelaine and Sheriam, then ran through Rand, Elaida, Moghedien, the weather and on out of sight.
She avoided the area near Moghedien’s tent. If she asked questions herself, too much importance would be given to a servant running away. Discretion had become part of her. The game she played allowed few slips, and being careless where you knew it did not matter could lead to being careless where it did. Worse, you could discover you had been wrong about where it mattered. The weak must be bold cautiously. That was Siuan again; she truly did her best to teach, and she knew this particular game very well.
There were no more people out and about in the moon-shadowed camp than had been there before, handfuls slouched wearily around low fires, exhausted by their evening’s labors after a hard day’s journey. Those who saw her rose tiredly to make their courtesies as she passed, murmuring “The Light shine on you, Mother” or something like, occasionally asking her blessing, which she gave with a simple “The Light bless you, my child.” Men and women old enough to be her grandparents sat back down beaming from that, yet she wondered what they actually believed about her, what they knew. All the Aes Sedai presented an unbroken front to the outside world, including their own servants. But Siuan said that if you believed a servant knew twice what he should, you only knew half the truth. Still, those bows and curtsies and murmurs followed her from one clump of people to the next, comforting her with the possibility that there were some at least who did not see her as a child the Hall brought out when they needed her.
As she passed an open area surrounded by ropes tied to posts driven into the ground, a gateway’s silver slash of light flashed vivid in the darkness as it rotated open. It was not really light, though; it cast no shadows. She paused to watch beside a corner post. No one at the nearby fires even looked up; they were used to this by now. A dozen or more sisters, twice as many servants and a number of Warders bustled out, returning with messages and wicker cages of pigeons from the dovecotes in Salidar, a good five hundred miles west and south as the goose flew.
They began scattering before the gateway closed, carrying their burdens to Sitters, to their Ajahs, a few back to their own tents. Most nights, Siuan would have been with them; she seldom trusted anyone else to fetch messages destined for her even if most were in codes or ciphers. Sometimes the world seemed to hold more networks of eyes-and-ears than it did Aes Sedai, though most were severely truncated by circumstance. The majority of agents for the various Ajahs seemed to be lying low until the “difficulties” in the White Tower subsided, and a good many of the individual sisters’ eyes-and-ears had no idea where the woman they served was at present.
Several of the Warders saw Egwene and made careful bows, with a respect proper to the stole; sisters might eye her askance, but the Hall had raised her Amyrlin and the Gaidin needed no more. A number of the servants offered bows or curtsies too. Not one of the Aes Sedai hurrying away from the gateway so much as glanced in her direction. Perhaps they did not notice her. Perhaps.
In a way, that anybody could still hear from any of their eyes-and-ears at all was one of Moghedien’s “gifts.” The sisters with the strength to make gateways had all been in Salidar long enough to know it well. Those who could weave a gateway of useful size were able to Travel almost anywhere from there, and land right on the spot. Trying to Travel to Salidar, however, would have meant spending half of each night learning the new roped-off patch of ground, more for some, every time they made camp. What Egwene had pried from Moghedien was a way to journey from a place you did not know well to one you did. Slower than Traveling, Skimming was not one of the lost Talents—no one had ever heard of it—so even the name was credited to Egwene. Anyone who could Travel could Skim, so every night sisters Skimmed to Salidar, checking the dovecotes for birds that had returned to where they had been hatched, then Traveled back.
The sight should have pleased her—the rebel Aes Sedai had gained Talents the White Tower thought lost forever, as well as learned new ones, and those abilities would help cost Elaida the Amyrlin Seat before all was done—yet instead of pleasure, Egwene felt sourness. Being snubbed had nothing to do with it, or not much, anyway. As she walked on, the fires grew farther between, then faded behind; all around her lay the dark shapes of wagons, most with canvas tops stretched over iron hoops, and tents glowing palely in the moonlight. Beyond, the army’s campfires climbed the surrounding hills all around, the stars brought to ground. The silence from Caemlyn tied her middle into knots, whatever anyone else thought.
The very day they left Salidar a message had arrived, though Sheriam had not bothered to show it to her until a few days ago, and then with repeated warnings on the need to keep the contents secret. The Hall knew, but no one else must. More of the ten thousand secrets that infested the camp. Egwene was sure she never would have seen it if she had not kept going on about Rand. She could recall every carefully chosen word, written in a tiny hand on paper so thin it was a wonder the pen had not torn through.
We are well settled at the inn of which we spoke, and we have met with the wool merchant. He is a very remarkable young man, everything that Nynaeve told us. Still, he was courteous. I think he is somewhat afraid of us, which is to the good. It will go well.
You may have heard rumors about men here, including a fellow from Saldaea. The rumors are all too true, I fear, but we have seen none of them and will avoid them if we can. If you pursue two hares, both will escape you.
Verin and Alanna are here, with a number of young women from the same region as the wool merchant. I will try to send them on to you for training. Alanna has formed an attachment to the wool merchant which may prove useful, though it is troubling too. All will go well, I am sure.
Merana
Sheriam emphasized the good news, as she saw it. Merana, an experienced negotiator, had reached Caemlyn and been well received by Rand, the “wool merchant.” Wonderful news, to Sheriam. And Verin and Alanna would be bringing Two Rivers girls to become novices.  She seemed to think Egwene would be all aglow at the expectation of seeing faces from home. Merana would handle everything. Merana knew what she was doing.
“That’s a bucket of horse sweat,” Egwene muttered at the night. A gap-toothed fellow carrying a large wooden bucket gave a start and gaped at her, so amazed he forgot to bow.
Rand, courteous? She had seen his first meeting with Coiren Saeldain, Elaida’s emissary. “Overbearing” summed it up nicely. Why should he be different with Merana? And Merana thought he was afraid, thought that was good. Rand was seldom afraid even when he should be, and if he was now, Merana should remember that fear could make the mildest man dangerous, remember that Rand was dangerous just being who he was. And what was this attachment Alanna had formed? Egwene did not entirely trust Alanna. The woman did extremely odd things at times, maybe impetuously and maybe with some deeper motive. Egwene would not put it past her to find a way into Rand’s bed; he would be clay in the hands of a woman like her. Elayne would break Alanna’s neck if that was so, but that was the least of it. Worst of all, no more of the pigeons Merana had taken with her had appeared in the Salidar dovecotes.
Merana should have had some word to send, if only that she and the rest of the embassy had gone to Cairhien. Lately the Wise Ones did little more than acknowledge Rand was alive, yet it seemed he was there, sitting on his hands as far as she could make out. Which should have been a warning beacon. Sheriam saw it differently. Who could say why any man did what he did? Probably not even the man himself, most of the time, and when it came to one who could channel . . . Silence proved all was well; Merana surely would have reported any real difficulty. She must be on her way to Cairhien, if not there already, and there was no need to report further until she could send word of success. For that matter, Rand in Cairhien was success of a sort. One of Merana’s goals, if not the most important, had been to ease him out of Caemlyn so that Elayne could return there safely and take the Lion Throne, and the dangers of Cairhien had dissipated. Incredible as it seemed, the Wise Ones said Coiren and her embassy had left the city on their way back to Tar Valon. Or maybe not so incredible. It all made a sort of sense, given Rand, given the way Aes Sedai did things. Even so, to Egwene, it all felt . . . wrong.
“I have to go to him,” she muttered. One hour, and she could straighten everything out. Underneath, he was still Rand. “That’s all there is to it. I have to go to him.”
“That isn’t possible, and you know it.”
If Egwene had not had herself on a tight rein, she would have jumped a foot. As it was, her heart pounded even after she made out Leane by the light of the moon. “I thought you were . . . ” she said before she could stop herself, and only just managed not to say Moghedien’s name.
The taller woman fell in beside her, keeping a careful watch for other sisters as they walked. Leane did not have Siuan’s excuse for spending time with her. Not that being seen together once should cause any harm, but . . .
“Should not” isn’t always “will not,” Egwene reminded herself. Slipping the stole from her shoulders, she folded it to carry in one hand. At a glance, from a distance, Leane might well be taken for an Accepted despite her dress; many Accepted lacked enough of the banded white dresses to wear one all the time. From a distance, Egwene might be taken for one, too. Not the most pacifying thought.
“Theodrin and Faolain are asking around near Marigan’s tent, Mother. They weren’t especially pleased. I did a fine sulk over carrying messages, if I do say so. Theodrin had to stop Faolain dressing me down for it.” Leane’s laughter was quiet and breathy. Situations that grated Siuan’s teeth usually amused her. She was cosseted by most of the other sisters for how well she had adjusted.
“Good, good,” Egwene said absently. “Merana misstepped somehow, Leane, or he wouldn’t be staying in Cairhien, and she wouldn’t be keeping quiet.” Off in the distance, a dog bayed at the moon, then others, until they were abruptly silenced by shouts that, perhaps luckily, she could not quite understand. A number of the soldiers had dogs tagging along; there were none in the Aes Sedai camp. Any number of cats, but no dogs.
“Merana does know what she is doing, Mother.” It sounded very like a sigh. Leane and Siuan both agreed with Sheriam. Everyone did, except her. “When you give someone a task, you have to trust it to them.”
Egwene sniffed and folded her arms. “Leane, that man could strike sparks from a damp cloth, if it wore the shawl. I don’t know Merana, but I’ve never seen an Aes Sedai who qualified as a damp cloth.”
“I’ve met one or two,” Leane chuckled. This time her sigh was plain. “But not Merana, true. Does he really believe he has friends inside the Tower? Alviarin? That might make him difficult for Merana, I suppose, but I can hardly see Alviarin doing anything to risk her place. She was always ambitious enough for three.”
“He has a letter supposedly from her.” She could still see Rand gloating over receiving letters from Elaida and Alviarin both, back before she herself left Cairhien. “Maybe her ambitions make her think she can replace Elaida with him on her side. That’s if she really wrote it. He thinks he’s clever, Leane—maybe he is—but he doesn’t believe he needs anyone.” Rand would go on thinking he could handle anything by himself right up until one of those anythings crushed him. “I know him inside and out, Leane. Being around the Wise Ones seems to have infected him, or maybe he infected them. Whatever the Sitters think, whatever any of you think, an Aes Sedai’s shawl doesn’t impress him any more than it does the Wise Ones. Sooner or later he’ll exasperate a sister until she does something about it, or one of them will push him the wrong way, not realizing how strong he is, and what his temper is now. After that there might be no going back. I’m the only one who can deal with him safely. The only one.”
“He can hardly be as . . . irritating . . . as those Aiel women,” Leane murmured wryly. Even she found it difficult to be amused by her experiences with the Wise Ones. “But it hardly matters. ‘The Amyrlin Seat being valued with the White Tower itself . . . ’ ”
A pair of women appeared between the tents ahead, moving slowly, as they talked. Distance and shadows obscured their faces, yet it was clear they were Aes Sedai from the way they carried themselves, an assurance that nothing hiding in any darkness could harm them. No Accepted on the brink of the shawl could manage quite that degree of confidence. A queen with an army at her back might not. They were coming toward her and Leane. Leane quickly turned in to the deeper dimness between two wagons.
Scowling with frustration, Egwene nearly pulled her out again and marched on. Let it all come into the open. She would stand before the Hall and tell them it was time they realized the Amyrlin’s stole was more than a pretty scarf. She would . . . Following Leane, she motioned the other woman to walk on. What she would not do was throw everything on the midden heap in a fit of pique.
Only one Tower law specifically limited the power of the Amyrlin Seat. A fistful of irritating customs and a barrel full of inconvenient realities, but only one law, yet it could not have been a worse for her purposes. “The Amyrlin Seat being valued with the White Tower itself, as the very heart of the White Tower, she must not be endangered without dire necessity, therefore unless the White Tower be at war by declaration of the Hall of the Tower, the Amyrlin Seat shall seek the lesser consensus of the Hall of the Tower before deliberately placing herself in the way of any danger, and she shall abide by the consensus that stands.” What rash incident by an Amyrlin had inspired that, Egwene did not know, but it had been law for something over two thousand years. To most Aes Sedai, any law that old attained an aura of holiness; changing it was unthinkable.
 If the Daughter-Heir of Andor could not be allowed within a hundred miles of the Dragon Reborn, how much more they must preserve the Amyrlin Seat. Lelaine sounded almost regretful, most likely because she was agreeing with Romanda. That had nearly curdled both their tongues. Without them, both of them, the lesser consensus lay as far out of reach as the greater. Light, even that declaration of war only required the lesser consensus! So if she could not obtain permission . . .
Leane cleared her throat. “You can hardly do much if you go in secret, Mother, and the Hall will find out, soon or late. I think you would find it difficult to have an hour to yourself after that. Not that they’d dare put a guard on you, precisely, but there are ways. I can quote examples from . . . certain sources.” She never mentioned the hidden records directly unless they were behind a ward.
“Am I so transparent?” Egwene asked after a moment. There were only wagons around them here, and beneath the wagons the dark mounds of sleeping wagon drivers and horse handlers and all the rest needed to keep so many vehicles moving. It was remarkable just how many conveyances over three hundred Aes Sedai required, when few would condescend to ride even a mile in wagon or cart. But there were tents and furnishings and foodstuffs, and a thousand things needed to keep the sisters and those who served them. The loudest sounds here were snores, a chorus of frogs.
“No, Mother,” Leane laughed softly. “I just thought what I would do. But it’s well known I’ve lost all my dignity and sense; the Amyrlin Seat can hardly take me for a model. I think you must let young Master al’Thor go as he will, for a time anyway, while you pluck the goose that’s in front of you.”
“His way may lead us all to the Pit of Doom,” Egwene muttered, but it was not an argument. There had to be a way to pluck that goose and still keep Rand from making dangerous mistakes, but she could not see it now.  “This is as bad a spot for a soothing walk as I’ve ever visited. I think I might as well go to bed.”
Leane tilted her head. “In that case, Mother, if you will forgive me, there’s a man in Lord Bryne’s camp . . . After all, whoever heard of a Green without even one Warder?” From the sudden quickening in her voice, you might have thought she was off to meet a lover. Considering what Egwene had heard about Greens, perhaps there was not that much difference.
Back among the tents, the last of the fires had been doused with dirt; no one took risks with fire when the countryside was tinder dry. A few tendrils of smoke rose lazily in the moonlight where the job had not been well done.  Which was why Egwene was surprised when someone stepped from the shadows in front of her, especially someone wearing the simple white dress of a novice.
“Mother, I need to speak to you.”
“Nicola?” Egwene had made a point of fixing name to face for every novice, no easy chore given how sisters hunted all along the army’s path for girls and young women who could learn. Active search was still not well thought of—custom was to wait for the girl to ask, best of all to wait for her to come to the Tower—but ten times as many novices studied in the camp now as the White Tower had held in years. Nicola was one to be remembered, though, and besides, Egwene had often noticed the young woman staring at her. “Tiana won’t be pleased if she finds you up this late.” Tiana Noselle was the Mistress of Novices, known equally for a comforting shoulder when a novice needed to cry and an unyielding stance when it came to rules.
The other woman shifted as if to hurry away, then straightened her back. Sweat glistened on her cheeks. The darkness was cooler than the light had been, but not what anyone would call cool, and the simple trick of ignoring heat or cold came only with the shawl. “I know I’m supposed to ask to see Tiana Sedai and then ask her to see you, Mother, but she’d never let a novice approach the Amyrlin Seat.”
“About what, child?” Egwene asked. The woman was older by six or seven years at least, but that was the proper address for a novice.
Fidgeting with her skirt, Nicola stepped closer. Large eyes met Egwene’s perhaps more directly than a novice’s should have. “Mother, I want to go as far as I can.” Her hands plucked at her dress, but her voice was cool and self-possessed, fit for an Aes Sedai. “I won’t say they are holding me back, but I am sure I can become stronger than they say. I just know I can. You were never held back, Mother. No one has ever gained so much of her strength as fast as you. All I ask is the same chance.”
Movement in the shadow behind Nicola turned into another sweaty-faced woman, this one in short coat and wide trousers, carrying a bow. Her hair hung to her waist in a braid tied with six ribbons, and she wore short boots with raised heels.
Nicola Treehill and Areina Nermasiv seemed an odd pair to be friends. Like many of the older novices—women with nearly ten years on Egwene were tested now, though many sisters still grumbled that they were ten years too old to accept novice discipline—like many of those older women, Nicola was ferocious in her desire to learn, by all reports, and she had a potential bettered only by Nynaeve, Elayne and Egwene herself among living Aes Sedai. In fact, Nicola apparently was making great strides, often great enough that her teachers had to slow her down. Some said she had begun picking up weaves as if she already knew them. Not only that, but she already demonstrated two Talents, although the ability to “see” ta’veren was minor, while the major Talent, Foretelling, emerged so that no one understood what she had Foretold. She herself did not remember a word she said. All in all, Nicola was already marked by the sisters as someone to watch despite her late start. The begrudging agreement to test women older than seventeen or eighteen probably could be laid at Nicola’s feet.
Areina, on the other hand, was a Hunter for the Horn who swaggered as much as a man and sat around talking of adventures, those she had had and those she would, when she was not practicing with her bow. Very likely she had picked that weapon up from Birgitte, along with her manner of dress. She certainly seemed to have no interest in anything beside the bow, except flirting occasionally, in a rather forward manner, though not lately. Perhaps long days on the road left her too tired for it, if not for archery. Why she was still traveling with them, Egwene could not understand; it was hardly likely that Areina believed the Horn of Valere would turn up along their march, and impossible that she even suspected it was hidden away inside the White Tower. Very few people knew that. Egwene was not certain even Elaida did.
Areina seemed a posturing fool, but Egwene felt a certain sympathy for Nicola. She understood the woman’s discontent, understood wanting to know it all now. She had been that way, too. Maybe she still was. “Nicola,” she said gently, “we all have limits. I’ll never match Nynaeve Sedai, for example, whatever I do.”
“But if I could only have the chance, Mother.” Nicola actually wrung her hands in pleading, and there was a touch of it in her voice, yet her eyes still met Egwene’s levelly. “The chance you had.”
“What I did—because I had no choice, because I didn’t know better—is called forcing, Nicola, and it is dangerous.” She had not heard that term until Siuan apologized for doing it to her; that was one time Siuan truly had seemed repentant. “You know if you try to channel more of saidar than you’re ready to handle, you risk burning yourself out before you ever come close to your full strength. Best you learn to be patient. The sisters won’t let you be anything else until you are ready, anyway.”
“We came to Salidar on the same riverboat as Nynaeve and Elayne,” Areina said suddenly. Her gaze was more than direct; it was challenging. “And Birgitte.” For some reason, she said the name bitterly.
Nicola made shushing motions. “There’s no need to bring that up.” Oddly, she did not sound as if she meant it.
Hoping she was keeping her face half so smooth as Nicola’s, Egwene tried to quell a sudden uneasiness. “Marigan” had come to Salidar on that boat, too. An owl hooted, and she shivered. Some people thought hearing an owl in moonlight meant bad news was coming. She was not superstitious, but . . . “No need to bring up what?”
The other two women exchanged looks, and Areina nodded.
“It was on the walk from the river to the village.” For all her supposed reluctance, Nicola peered straight into Egwene’s eyes. “Areina and I heard Thom Merrilin and Juilin Sandar talking. The gleeman, and the thief-taker? Juilin said if there were Aes Sedai in the village—we weren’t sure, yet—and they learned Nynaeve and Elayne had been pretending to be Aes Sedai, then we were all jumping into a school of silverpike, which I take it isn’t very safe.”
“The gleeman saw us and hushed him,” Areina put in, fingering the quiver at her waist, “but we heard.” Her voice was hard as her stare.
“I know they’re both Aes Sedai now, Mother, but wouldn’t they still be in trouble if anyone found out? The sisters, I mean? Anybody who pretends to be a sister is in trouble if they find out, even years later.” Nicola’s face did not change, but her gaze suddenly seemed to be trying to fix Egwene’s. She leaned a little forward, intent. “Anybody at all. Isn’t that so?”
Emboldened by Egwene’s silence, Areina grinned. An unpleasant grin in the night. “I hear Nynaeve and Elayne were sent out of the Tower on some task by the Sanche woman back when she was Amyrlin. I hear you were sent off by her, too, at the same time. Got into all sorts of trouble when you came back.” Sly insinuation slithered into her voice. “Do you remember them playing at Aes Sedai?”
They stood there looking at her, Areina leaning insolently on her bow, Nicola so expectant the air should have crackled.
“Siuan Sanche is Aes Sedai,” Egwene said coldly, “and so are Nynaeve al’Meara and Elayne Trakand. You will show them proper respect. To you, they are Siuan Sedai, Nynaeve Sedai and Elayne Sedai.” The pair blinked in surprise. Inside, her stomach quivered. With outrage. After everything she had been through tonight, she was confronted with blackmail from these . . . ? She could not think of a word bad enough. Elayne could have; Elayne listened to stablemen and wagon drivers and every sort, memorizing the words she should have refused to hear. Unfolding the striped stole, Egwene draped it carefully across her shoulders.
“I don’t think you understand, Mother,” Nicola said hastily. Not fearfully, however; just attempting to force her point. “I merely worried that if anyone found out that you had—” Egwene gave her no chance to go further.
“Oh, I understand, child.” The fool woman was a child, however old she was. Any number of the older novices gave trouble, usually in the form of insolence toward Accepted set to teach them, but even the silliest had sense enough to avoid impertinence to the sisters.  They were both taller than she, if not by much, but she planted her fists on her hips and drew herself up, and they shrank away as though she loomed. “Do you have any notion how serious it is to bring charges against a sister, especially for a novice? Charges based on a conversation you claim to have heard between men now a thousand miles away! Tiana would skin you alive and put you to scrubbing pots the rest of your natural life.” Nicola kept trying to push a word in—apologies, they sounded like this time, and more protests that Egwene did not understand, frantic attempts to change everything—but Egwene ignored her and rounded on Areina. The Hunter took another step back, wetting her lips and looking remarkably uncertain. “You needn’t think you would walk away clear, either. Even a Hunter could be hauled to Tiana for a thing like this. If you’re lucky enough not to be flogged at a wagon tongue, the way they do soldiers caught stealing. Either way, you’ll be tossed out by the road with your welts for company.”
Drawing a deep breath, Egwene folded her hands at her waist. Clutched together, they would not tremble. All but cowering, the pair looked suitably chastened. She hoped those downcast eyes and slumped shoulders and shifting feet were not feigned. By rights, she should send them to Tiana right now. She had no idea what the penalty might be for trying to blackmail the Amyrlin Seat, but it seemed likely that being turned out of the camp would be the least of it. In Nicola’s case, the turning out would have to wait until her teachers were satisfied she knew enough of channeling not to hurt herself or others by accident. Nicola Treehill would never be Aes Sedai, though, once that charge was laid against her; all that potential would go for nothing.
Except . . . Any woman caught pretending to be Aes Sedai was set down so hard she would still be whimpering years later, and an Accepted caught might very well consider the other woman fortunate, but surely Nynaeve and Elayne were safe now they really were sisters. Herself, as well. Only, it might take no more than a whisper of this to erase any chance of making the Hall acknowledge her truly the Amyrlin Seat. As well jaunt off to Rand, and then tell the Hall to their faces. She dared not allow these two to see her doubt, or even suspect.
“I will forget this,” she said sharply. “But if I hear so much as a whisper of it again, from anyone . . . ” She drew a ragged breath—if she heard shouts of it, there might be little she could do—but by the way they jumped, they read a threat that pricked deep. “Get to your beds before I change my mind.”
In an instant they became a flurry of curtsies, of “Yes, Mother” and “No, Mother” and “As you command, Mother.” They scurried away looking back over their shoulders at her, every step faster than the last, until they were running. She had to walk on sedately, but she wanted to run too.


A multi token of Observables of modal dialogs displayed by TuiDialogHostComponent.
You can create your own service extending AbstractTuiDialogService to easily add modal dialogs to your application.


Maruti Suzuki India logs 4.5% growth in October sales
by TIMESOFINDIA.COMHighlights
- Maruti Suzuki India (MSI) on Friday reported a 4.5 per cent rise in sales at 1,53,435 units in October
- Domestic sales increased by 2.3 per cent at 1,39,121 units last month as against 1,35,948 units in October 2018
NEW DELHI: Beating the prolonged passenger vehicle sales slowdown, the country's largest carmaker Maruti Suzuki India (MSI) on Friday reported a 4.5 per cent rise in sales at 1,53,435 units in October.
The company had sold 1,46,766 units in October last year, MSI said in a statement.
| Domestic market | 1,41,550 |
| Domestic OEM | 2,727 |
| Exports | 9,158 |
Domestic sales increased by 2.3 per cent at 1,39,121 units last month as against 1,35,948 units in October 2018, it added.
The mini cars segment, however, witnessed a plunge. Sales of Alto, WagonR (old) and the newly-launched S-presso stood at 28,537 units as compared to 32,835 units in the same month last year, down 13.1 per cent.
The compact and utility vehicles segments were the top gainer for Maruti Suzuki India, registering 15.9% and 11.3% growth in October 2019, respectively.
The company sold 75,094 units of new WagonR, Celerio, Ignis, Swift, Baleno, Dzire in the compact segment in October 2019, up from 64,789 units sold in the same period last year.
India's largest carmakers manufacture Ertiga, XL6, Vitara Brezza, S-Cross and Gypsy in the utility vehicles segment. Overall, 23,108 units of UVs were sold last month, noting a jump from 20,764 units sold last year.


KSI clarifies comments about ‘killing' Logan Paul ahead of boxing match
YouTube star KSI has clarified comments he made ahead of his highly-anticipated boxing match with Logan Paul, saying that he does not want to kill him.
The social media star and amateur boxer had taken part in pre-fight banter with fellow YouTuber Paul at a press conference on Thursday, where he said to his rival: “You’re going to f***ing die.”
KSI tweeted on Friday: “Just want to clarify a statement I made yesterday at the press conference.

“After this fight, I still want Logan to be alive and well.”
The press conference saw the pair trade insults, and American internet star Paul fired random maths questions at his British opponent.
The YouTube stream of the press conference has been viewed more than 3.5 million times in the space of 24 hours.
KSI, whose real name is Olajide William “JJ” Olatunji, has 5.1 million followers on Twitter and just over 20 million subscribers on his YouTube channel.
He will face off against Paul – who has 19.9 million YouTube subscribers – in a professional boxing rematch on Saturday at The Staples Centre in Los Angeles after their major amateur bout at the Manchester Arena last year.
The white-collar event sold out to 20,000 fans and drew an audience of 2.5 million live viewers and more than 19 million subsequent views, making it the biggest internet event in history.
It was also named the most popular white-collar boxing match of all time.
However, viewers were left dissatisfied with the outcome of the fight as it ended in a majority draw.
Millions are expected to live stream KSI and Paul’s fight on Saturday.
Ahead of the fight, KSI – who is also a rapper – has released a new single called Down Like That, featuring US rappers Rick Ross and Lil Baby and hip-hop producer S-X.


Carbon monoxide (CO) is released into the atmosphere primarily as a result of incomplete combustion of fossil fuels, biomass and other organic matter. CO is not considered a significant greenhouse gas, but it contributes to the creation of tropospheric ozone, an air pollutant that generates smog and is unhealthy.
Natural sources like forest fires or volcanoes can release large amounts of CO in the atmosphere.
1 Emissions from the Australian bushfires in the summer of 2020. Read more.
2 Widespread agricultural fires are a common occurrence in Central Africa. Read more.
Vehicles produce carbon monoxide as a byproduct of burning gasoline or diesel fuel. Industrial CO emissions can come from manufacturing, mining, oil and gas production.
3 China's emissions of carbon monoxide are mostly given by urban and industrial pollution generated in and around industrialized areas like Beijing. Read more.
4 India has a mixed pattern, with vehicle and industrial emissions, but also crop burning and agricultural fires. Read more.
In this visualization carbon monoxide emissions are displayed for January 1st, 2020. Filter out smaller values by changing the slider below:
Values above 100ppbv are considered high values.


- Section 1: Wednesday, February 17, 2021
- Section 2: Tuesday, February 23, 2021
Note to Section 2 (TuTh): Hood College has designated Thursday February 18 to be one of the four days this semester where there are no classes. There will be no video to watch — we will have our next class meeting until Tuesday, February 23.
Overview
Today we cover the third effect in the individual demand function: the (own) price effect, aka the law of demand: how changes in a good’s (own) price affect quantity demanded for that good.
We introduce the idea of (simplified, own-price) demand functions, inverse demand functions, and a demand curve. I will also show you examples of how we derive demand functions and curves.
The other major concept today is breaking apart the law of demand into two effects: the (real) income effect, and the substitution effect. We considering them conceptually and graphically. These can be a difficult concept for students to grasp.
Readings
- Ch. 2.2, 5.3, in Goolsbee, Levitt, and Syverson, 2019
Slides
Interactive Examples
- Visualizing the Consumer’s Problem
- Visualizing Changes in the Consumer’s Problem
- Visualizing Demand Shifters
These are examples that I wrote in R/Shiny in the past, to visualize what it is we are looking at. As I find more time, I will update these and integrate them into our slides, but until then, I will just post links.
The first is a visual example of the static (one-time) Consumer’s problem. You can adjust things about the (Cobb-Douglas) utility function, income, and prices, and see how it would affect the graph and the optimum.
The second is a visual example of dynamic changes in the Consumer’s problem. The consumer starts at a pre-defined optimum. You can adjust any of the budget constraint parameters \((m, p_x, p_y)\)
, and see how it would affect a new optimum, which you can compare the the original optimum.
The third is a visual example of a hypothetical demand function for beer, with preference intensity, income, price of nachos (a complement), and price of wine (a substitute) as inputs to the function. Based on some pre-defined functions (in the background), you can change any of the inputs and see how it would affect the (inverse) demand function, expressed as a simple demand curve.
I hope some time to clean these up and make a few more, such as “Visualizing the Income and Substitution Effects” and “Estimating a Demand Function from Real World Data.”
Assignments
Problem Set 1 Due
Problem set 1 is due by PDF upload to Blackboard Assignments.
Problem Set 2 Due Sun Feb 28
Problem set 2 (on classes 1.6-1.8) is due by 11:59 PM Sunday, February 28 by PDF upload to Blackboard Assignments.
Exam 1 Week of Mar 1
If you see on the schedule, we will quickly complete the materials needed for Exam 1. Expect it to be the week of March 1, with more details coming by early next week.
Appendix
Example Demand Functions
The examples below show how we can take a utility function and derive a demand function.
Perfect Substitutes
Recall that perfect substitutes have indifference curves that are straight lines (constant MRS), and have a utility function of:
$$u(x,y)=w_1x+w_2y$$
Since both the budget constraint and the indifference curves are straight lines, we will not have a point of tangency between them, but a point(s) where the lines intersect.
library("mosaic")
library("ggrepel")
update_geom_defaults("label", list(family = "Fira Sans Condensed"))
IC_s1=function(x){6-x}
IC_s2=function(x){8-x}
IC_s3=function(x){10-x}
BC=function(x){4-0.5*x}
point_sub<-tribble(
~letter, ~x, ~y,
"A", 8, 0
)
#colors<-c("b=50/a" = "#20A387FF", "b=25/a" = "#39568CFF", "b=10/a" = "#39568CFF")
ggplot(data.frame(x=c(0,10)), aes(x=x))+
stat_function(fun=IC_s1, geom="line", size=2, color = "#481567FF")+
stat_function(fun=IC_s2, geom="line", size=2, color = "#39568CFF")+
stat_function(fun=IC_s3, geom="line", size=2, color = "#20A387FF")+
stat_function(fun=BC, geom="line", size=2, color = "red")+
geom_label(aes(x=2,y=IC_s1(2)), color = "#481567FF", label="u=6", size = 6)+
geom_label(aes(x=2,y=IC_s2(2)), color = "#39568CFF", label="u=8", size = 6)+
geom_label(aes(x=2,y=IC_s3(2)), color = "#20A387FF", label="u=10", size = 6)+
geom_label(aes(x=1,y=BC(1)), color = "red", label="BC", size = 6)+
geom_point(data = point_sub,
mapping=aes(x=x, y=y),
size = 4)+
geom_text_repel(data = point_sub,
mapping=aes(x=x, y=y,
label = letter),
size = 6)+
scale_x_continuous(breaks=seq(0,10,1),
limits=c(0,10),
expand=expand_scale(mult=c(0,0.1)))+
scale_y_continuous(breaks=seq(0,10,1),
limits=c(0,10),
expand=expand_scale(mult=c(0,0.1)))+
coord_cartesian(clip="off")+
labs(x = "a",
y = "b",
title = "Optimal Consumption for Substitutes",
caption = expression(paste(u(x,y)==x+y, ", ", m, " = $20.00, ", p[x]," = $2.50, ", p[y]," = $5.00", sep=" ")))+
theme_classic(base_family = "Fira Sans Condensed", base_size=20)
There are three possible cases,
- if
\(p_x>p_y\)
, the slope of the budget constraint is flatter than the slope of the indifference “curves.” The optimal bundle is spending all income on good\(x\)
. - if
\(p_x<p_y\)
, the slope of the budget constraint is steeper than the slope of the indifference “curves.” The optimal bundle is spending all income on good\(y\)
. - if
\(p_x=p_y\)
, the budget constraint and indifference “curves” are the same line, so any point on the lines is optimal!
The first two cases are known as “corner solutions,” where a consumer chooses all of one good, and none of another. Note perfect substitutes are not convex, and violate the assumption that “averages are preferred to extremes.”
We can therefore write the demand function for good x (and similarly for y):
$$q_d^x = \begin{cases} \frac{m}{p_x} & \text{When } p_x < p_y\\ \text{any number between 0 and } \frac{m}{p_x} & \text{When } p_x=p_y\\ 0 & \text{When } p_x > p_y\\ \end{cases}$$
Perfect Complements
Recall that perfect complements have indifference curves that are right angles, and have a utility function of:
$$u(x,y)=\min \{w_1x,w_2y\}$$
The optimal choice must always be at the corner of the indifference “curves.”
library("mosaic")
library("ggrepel")
update_geom_defaults("label", list(family = "Fira Sans Condensed"))
BC_c=function(x){6-x}
point_comp<-tribble(
~letter, ~x, ~y,
"A", 3, 3
)
ggplot(data.frame(x=c(0,5)), aes(x=x))+
stat_function(fun=BC_c, geom="line", size=2, color = "red")+
geom_label(aes(x=1,y=BC_c(1)), color = "red", label="BC", size = 6)+
geom_segment(aes(x=2, xend=2, y=10, yend=2), size=1, color="#453781FF")+
geom_segment(aes(x=2, xend=10, y=2, yend=2), size=1, color="#453781FF")+
geom_segment(aes(x=3, xend=3, y=10, yend=3), size=1, color="#20A387FF")+
geom_segment(aes(x=3, xend=10, y=3, yend=3), size=1, color="#20A387FF")+
geom_label(aes(x=9, y=2), size=6, color="#453781FF", label="u=2")+
geom_label(aes(x=9, y=3), size=6, color="#20A387FF", label="u=3")+
geom_point(data = point_comp,
mapping=aes(x=x, y=y),
size = 4)+
geom_text_repel(data = point_comp,
mapping=aes(x=x, y=y,
label = letter),
size = 6)+
scale_x_continuous(breaks=seq(0,10,1),
limits=c(0,10),
expand=expand_scale(mult=c(0,0.1)))+
scale_y_continuous(breaks=seq(0,10,1),
limits=c(0,10),
expand=expand_scale(mult=c(0,0.1)))+
labs(x = "x",
y = "y",
title = "Optimal Consumption for Complements",
caption = expression(paste(u(x,y)==min(x,y), ", ", m, " = $20.00, ", p[x]," = $2.50, ", p[u]," = $2.50", sep=" ")))+
theme_classic(base_family = "Fira Sans Condensed", base_size=20)
The consumer is purchasing equal amounts of \(x\)
and \(y\)
in this example, no matter what the prices are of either, so \(x=y\)
. We must satisfy the budget constraint, that \(p_xx+p_yx=m\)
(recall \(y=x\)
). Solving this for \(x\)
gives us the demand function for good x:
$$q_D^x=q_D^y=\frac{m}{p_x+p_y}$$
This should be intuitive: the consumer must always purchase equal amounts of \(x\)
and \(y\)
, so it’s as if the consumer was spending all of their income on a single good \((x+y)\)
that has a price of \((p_x+p_y)\)
.
Cobb-Douglas
Now we come to a more realistic demand function. If a consumer has a Cobb-Douglas utility function^[Note: Natural logs are easier to work with, this function is equivalent to \(u(x,y)=x^ay^b\)
.]
$$u(x,y)= a \ln x+ b \ln y$$
Then we are solving the following constrained optimization problem:
$$\max_{x,y} a \ln x + b \ln y$$
$$\text{subject to } p_xx+p_yy=m$$
I will solve this using the Lagrangian method.^[Note you could solve this by substitution. Use the definition of the optimum, that \(\frac{MU_x}{MU_y}=\frac{p_x}{p_y}\)
, plug in, and solving carefully for \(x\)
.]
$$\mathbb{L}=a \: ln \: x + b \: ln \: y - \lambda(p_x x + p_y y - m)$$
The First Order Conditions are:
$$\begin{align*} \frac{\partial \mathbb{L}}{\partial x} = \frac{a}{x}-\lambda p_x &= 0\\ \frac{\partial \mathbb{L}}{\partial y} = \frac{b}{y}-\lambda p_y &= 0\\ \frac{\partial \mathbb{L}}{\partial \lambda} = p_xx+p_yy-m &= 0\\ \end{align*}$$
Rearranging the first two FOCs:
$$\begin{align*} a&=\lambda p_x x\\ b&=\lambda p_y y\\ \end{align*}$$
Adding them together:
$$\begin{align*} a+b&=\lambda(p_xx+p_yy)\\ a+b&=\lambda m\\ \end{align*}$$
Solving for \(\lambda\)
:
$$\lambda=\frac{a+b}{m}$$
Substitute this back into each of the first two FOCs and solve for \(x\)
and \(y\)
, respectively, to get:
$$\begin{align*} x&=\frac{a}{a+b}\frac{m}{p_x}\\ y&=\frac{b}{a+b} \frac{m}{p_y}\\ \end{align*}$$
These are the demand functions for goods \(x\)
and \(y\)
. One of the convenient properties of Cobb-Douglas preferences is that a consumer spends a constant fraction of income \((\frac{a}{a+b})\)
on good \(x\)
, and the complement fraction \((\frac{b}{a+b})\)
on good \(y\)
!^This becomes especially simple when the exponents \(a+b=1\)
, as in:
$$u(x,y)=x^ay^{(1-a)} \quad \quad \text{where 0 < a < 1}$$
So \(a\)
and \(1-a\)
are proportions of \(m\)
!]
For a constant value of \(p_x\)
, this is a linear function of \(m\)
. So doubling, tripling, etc. \(m\)
will double, triple, etc. quantity demanded for \(x\)
. So the income expansion path (see previous class) is a straight line through the origin with a slope \(\frac{a}{p_x}\)
.
EXAMPLE
Suppose a consumer has a utility function
$$u(x,y)=x^{0.5}y^{0.5}$$
and faces constraints of \(m=50\)
, \(p_a=10\)
, \(p_b=5\)
.
$$\max_{x,y} x^{0.5}y^{0.5}$$
$$\text{subject to } 10x+5y=50$$
Write the Lagrangian (and taking logs of the objective function, for simplicity):
$$\mathbb{L} = 0.5 \: ln \: x+0.5 \: ln \: y-\lambda(10x+5y-50)$$
FOCs are:
$$\begin{align*} \frac{\partial \mathbb{L}}{\partial x} = \frac{0.5}{x}-10\lambda &= 0 \\ \frac{\partial \mathbb{L}}{\partial y} = \frac{0.5}{y}-5\lambda &= 0 \\ \frac{\partial \mathbb{L}}{\partial \lambda} = 10x+5y-50 &= 0\\ \end{align*}$$
Rearrange the first two FOCs:
$$\begin{align*} 0.5&=10 \lambda x\\ 0.5&=5 \lambda y\\ \end{align*}$$
Add then together, and solve for \(\lambda\)
:
$$\begin{align*} 1&=\lambda(10x+5y)\\ 1&=\lambda(50)\\ \frac{1}{50}&=\lambda\\ \end{align*}$$
Now substitute lambda into each of the first two FOCs, solving for \(x\)
and \(y\)
, respectively:
$$\begin{align*} \frac{0.5}{x}&=10(\frac{1}{50})\\ 10x&=0.5(50)\\ x&=2.5\\ \end{align*}$$
$$\begin{align*} \frac{0.5}{y}&=5(\frac{1}{50})\\ 10x&=0.5(50)\\ y&=5\\ \end{align*}$$
This consumer buys 2.5 units of \(x\)
at $10/each ($25) and 5 units of \(y\)
at $5/each ($25), spending all $50.
Recall the utility function is
$$u(x, y)=\sqrt{xy}=x^{0.5}y^{0.5}$$
Note the Cobb-Douglas exponents on \(x\)
and \(y\)
are equal and sum to 1: \((a\)
and \(1-a=0.5)\)
. So the consumer spends \(a=50\%\)
of her income on \(x\)
, and \(1-a=50\%\)
on \(y\)
.
To get the demand functions for \(x\)
and \(y\)
, go back to the FOCs, and keep all budget constraint terms as variables \((p_x, p_y, m)\)
.
$$\begin{align*} \frac{\partial \mathbb{L}}{\partial x} = \frac{0.5}{x}-p_x\lambda &= 0 \\ \frac{\partial \mathbb{L}}{\partial y} = \frac{0.5}{y}-p_y\lambda &= 0 \\ \frac{\partial \mathbb{L}}{\partial \lambda} = p_xx+p_yy-m &= 0\\ \end{align*}$$
Rearrange the first two FOCs:
$$\begin{align*} 0.5&=p_x \lambda a\\ 0.5&=p_y \lambda y\\ \end{align*}$$
Add then together, and solve for \(\lambda\)
:
$$\begin{align*} 1&=\lambda(p_xx+p_yy)\\ 1&=\lambda(m)\\ \frac{1}{m}&=\lambda\\ \end{align*}$$
Substitute this back into each of the first two FOCs and solve for \(x\)
, and \(y\)
, respectively, to get:
$$\begin{align*} \frac{0.5}{x}-p_x\lambda&=0\\ \frac{0.5}{x}-p_x \left(\frac{1}{m}\right)&=0\\ \frac{0.5}{x}&=\frac{p_x}{m}\\ p_xx&=0.5m\\ x&=0.5\frac{m}{p_x}\\ \end{align*}$$
$$\begin{align*} \frac{0.5}{y}-p_y\lambda&=0\\ \frac{0.5}{y}-p_y \left(\frac{1}{m}\right)&=0\\ \frac{0.5}{y}&=\frac{p_y}{m}\\ p_yy&=0.5m\\ y&=0.5\frac{m}{p_y}\\ \end{align*}$$
These are the demand functions for \(x\)
and for \(y\)
.^[Note you can just take the rule learned above, that \(x=a\frac{m}{p_x}\)
and \(y=b\frac{m}{p_y}\)
and plug in \(a\)
and \(b\)
.]
Note if we want to graph this, we need to find the inverse demand function by solving for \(p_x\)
:
$$\begin{align*} x&=0.5\frac{m}{p_x} \\ p_xx&=0.5m\\ p_x&=0.5\frac{m}{x} \\ \end{align*}$$
Now we can graph a demand function for a given amount of income. As income changes, the demand curve shifts. Here are two examples, one where \(m=20\)
and another where \(m=40\)
:
library("mosaic")
library("ggrepel")
cd1=function(x){0.5*20/x}
cd2=function(x){0.5*40/x}
point_sub<-tribble(
~letter, ~x, ~y,
"A", 8, 0
)
ggplot(data.frame(x=c(0,10)), aes(x=x))+
stat_function(fun=cd1, geom="line", size=2, color = "blue")+
stat_function(fun=cd2, geom="line", size=2, color = "blue", linetype="dashed")+
geom_label(aes(x=3,y=cd1(3)), color = "blue", label="Demand: m=20", size = 6)+
geom_label(aes(x=6,y=cd2(6)), color = "blue", label="Demand: m=40", size = 6)+
scale_x_continuous(breaks=seq(0,10,1),
limits=c(0,10),
expand=expand_scale(mult=c(0,0.1)))+
scale_y_continuous(breaks=seq(0,10,1),
limits=c(0,10),
expand=expand_scale(mult=c(0,0.1)),
labels = function(x){paste("$", x, sep="")})+
coord_cartesian(clip="off")+
labs(x = "Quantity of x",
y = "Price of x",
title = "Demand Curve",
caption = expression(p_x==0.5*m/x))+
theme_classic(base_family = "Fira Sans Condensed", base_size=20)


The Solar System and Beyond
Link1
Link2
Link3
How to Find a Star
Select constellation
Identify surroundings
Confirm time of day
Confirm correct season for your location
Preferably use telescope to view the specific star
"A" and "B" Constellations
Aquarius
Aquila
Aries
Auriga
Boötes
Star Content
Exoplanet Discussion
Cosmic Beacons
Star Color and Energy
Colorful Dwarfs
Exploding Stars
Exoplanets
Signs of Life
Finding Earth-Like Planets
Galaxies


For the Homie
A non linear video project. Telling two stories at once in a disjointed fashion.
filmed on Nikon 70D


{# Bootstrap #}
{% include "templates/header.html" %} {# if isPaused #} {#
Octopush service is Paused right now due to a current incident
Please contact {{ contact }}.
#} {% include "templates/tabs.html" with {"page":"versions"} %}
{% include "templates/versionsHead.html" %}


Two list search
A list of genes obtained from data mining of mouse chromosome 11 were searched against several keywords (phenotypes associated with those regions).
Two lists search, context restriction
Searching for polymorphism of genes associated with substance abuse or addiction. A list of 27 genes was first identified in a data mining study. This Chilibot search found that the polymorphism of 10 of them were known to be associated with substance abuse/addiction.
Hypothesis generation
From a complex of relationship network, Chilibot suggested that CREB may have a relationship (e.g. regulation) with synaptotagmin, based on 1) there is no known relationship between CREB and synaptotagmin; and 2) they are both connected to many gene/protein and are both involved in similar biological process (e.g. LTP). The original search includeed one keyword ("LTP") and 22 other genes. CREB was first selected by clicking on the graph. Hypothesis was generated by clicking on the "CREB might be related to.." button. See here for details.


Hi there! I am a second year student at the University of Iowa studying Library and Information Science with an emphasis on informatics. My main areas of interest are UX research, UX design, and information architecture. I'm passionate about improving information systems to better meet the needs of the humans (not just users) who might interact with them.
I currently work as a UX designer for N3C (National COVID Cohort Collaborative), the nation's largest repository for clinical data relatign to COVID-19. This past year I have also been collaborating with the University of Colorado Boulder to lead a UX research project focused on evaluating the usability of the CU Boulder GeoLibrary, a geospatial data repository.


%recipient.userName%,
We're reaching out to notify you and other affected users about an outage was identified on March 3rd and impacts your %recipient.multiple1%. You can read details of the incident here: status.getcarina.com.
Part of the resolution of this incident unfortunately requires deletion of the affected %recipient.multiple1% below by Friday, March 4th, at 1:00pm central standard time (CST):
%recipient.clusterNamesHtml%
Newly created clusters are unaffected. This deletion is due to duplicate IP addresses being assigned to clusters due to a network infrastructure misconfiguration. You may have already noticed connectivity issues with those clusters.
While Carina is in a non-production beta, the team takes a great deal of pride in the uptime and quality of Carina. The entire team sincerely apologizes for this and we are working with other groups and teams to ensure something like this does not occur again.


B&L LAMP
Looking for a way to showcase your products, portfolio, services or simply yourself and your work? Look no more, becouse with this stylish & modern demo you can showcase simply anyhting in a modern and clean manner.
CHECK IT OUTLeathery Goodness
Looking for a way to showcase your products, portfolio, services or simply yourself and your work? Look no more, becouse with this stylish & modern demo you can showcase simply anyhting in a modern and clean manner.
Check it outTHE YELLOW DIRECTOR
Looking for a way to showcase your products, portfolio, services or simply yourself and your work? Look no more, becouse with this stylish & modern demo you can showcase simply anyhting in a modern and clean manner.
CHECK IT OUTTHE WOODPECKER
Looking for a way to showcase your products, portfolio, services or simply yourself and your work? Look no more, becouse with this stylish & modern demo you can showcase simply anyhting in a modern and clean manner.
Check it out


Suraya Williams
Stellenbosch Business School (2015)
Small Business Management graduate
Design26 Foundation
49 Martin Road, Westgate, Mitchell’s Plain Cape Town
7785
Stellenbosch Business School (2015)
Small Business Management graduate


Filtering option facilitates the users to filter out data based on a specific criteria. Filtering would help the users to view and analyze data within a few seconds.
In order to perform Filter operations, ornamentum provides, Dropdown Filtering and Text Box Filtering options. Those filtering controls are located on the header level of the data table. For additional details about header refer the Header Details section.
filterable: boolean
Default Value: false
Target Component: <ng-data-table-column>
Once Enabling the filtering functionality, ornamentum starts to support Text Box
Filtering for the specified column by default. Please note that filterable
does not support
default.
There are several more properties that can be used to customize the behavior of filter text box and those can be
used after enabling the filterable
property.
filterPlaceholder: string
Default Value: 'Search'
Target Component: <ng-data-table-column>
The filter place holder property facilitates the user to specify the placeholder name for the column filtering text box. As depicted in the above data table filter place holder names are configured for all the columns.
showFilterClearButton: boolean
Default Value: true
Target Component: <ng-data-table-column>
This property can be used to enable a button for clear filter keywords and applicable only when Text Box Filtering mode is enabled.
Apart from the Text Box Filtering, Ornamentum facilitates Dropdown Filtering
option to filter out data from the data table. In order to enable Dropdown Filtering, It is required to set
showDropdownFilter
property to true and by default, it's set to false. We strongly recommend
use this option if your data set contains common patterns.
The following Property mapping table depicts how each Data Table component dropdown filtering input properties are mapped with Dropdown component.
| Data Table Property | Mapping Dropdown Property | Default Value |
|---|---|---|
| dropdownFilterMenuPosition | menuPosition | 'bottom-left' |
| dropdownFilterShowOptionSelectCheckBox | showOptionSelectCheckBox | undefined |
| dropdownFilterCloseMenuOnSelect | closeMenuOnSelect | true |
| dropdownFilterSelectMode | selectMode | 'multi' |
| dropdownFilterWrapDisplaySelectLimit | wrapDisplaySelectLimit | 1 |
| dropdownFilterShowSelectedOptionRemoveButton | showSelectedOptionRemoveButton | false |
| dropdownFilterGroupByField | groupByField | undefined |
| dropdownFilterMenuHeight | menuHeight | 250 |
| dropdownFilterMenuWidth | menuWidth | 320 |
| dropdownFilterMultiSelectOptionMaxWidth | multiSelectOptionMaxWidth | 135 |
| DropdownFilterSearchable | filterable | true |
| dropdownFilterSearchDebounce | filterDebounce | true |
| dropdownFilterSearchDebounceTime | filterDebounceTime | 500 |
| dropdownFilterDynamicDimensionCalculation | dynamicDimensionCalculation | true |
| dropdownFilterDynamicWidthRatio | dynamicWidthRatio | 1.25 |
| dropdownFilterDynamicHeightRatio | dynamicHeightRatio | 1.25 |
The following Property mapping table depicts how each Data Table component dropdown filtering template references are mapped with Dropdown component.
| Data Table Template Reference | Mapping Dropdown Template Reference |
|---|---|
| #dropdownFilterLoadingSpinnerTemplate | #loadingSpinnerTemplate |
| #dropdownFilterOptionTemplate | #optionTemplate |
| #dropdownFilterOptionGroupHeaderTemplate | #optionGroupHeaderTemplate |
Filtering functionality is fully supported by server side date binding approaches out of the box. Please refer Server Side Basic Data Binding and Server Side WebSocket Data Binding documentations for more information.


I am experienced in the analysis and development of hybrid and web mobile applications. My main goal is to make user-friendly applications, made by responsive design principles, focused on improving UX. User centered design and Agile are must.
I'm founder and Chief Technical Officer at Login Future srls. Thanks to the experience gained, I have strengthened my know-how on the development of geo-referenced apps, management systems, websites and social media marketing.
I deal with the analysis, design and testing of information systems to support telemedicine and e-health, with a particular focus on the nephrology and transplant sectors.
Development, testing and maintenance of information systems to support electronic health.
Software developer of website, mobile applications and information systems.
Out of the computer i like travel, play tennis and listening rock music. My favourite bands are Queen, Led Zeppelin and Pink Floyd.
I spend a lot of time visualizing recipe videos and studying unknown ingredients and dishes from all over the world. I try to put these teachings into practice because I love cooking.


[Gecode] A nice gotcha to be prevented...
Christian Schulte
schulte at imit.kth.se
Tue May 18 16:00:41 CEST 2004
Dear all,
the following left me quite puzzled and after solving the puzzle I am once
more horrified by C++.
I did the following class hierarchy (where only the virtual priority member
functions matter):
class Base {
...
public:
Base(...) {
x.subscribe(this,PC_INT_BND);
}
// No priority
};
class A : public Base {
public:
...
A(...) : Base(...) {}
virtual PropPrio priority(void) { ... }
}
(The reason to define priority only in A is to have also a B, C, and so on
with different code for priority).
Now, what happens is: pure virtual function called...
How come: when constructing an A, first Base::Base(..) is executed assuming
an object of type Base. And here we do subscribe, which actually also might
call priority! And, of course, it will call priority for an object of type
Base...
So in this situation one also has to define a priority function in Base.
This one is thean actually only called during construction, later the
virtual priority of A will be called.
Yes, C++ is a very simple language...
Christian
--
Christian Schulte, http://www.imit.kth.se/~schulte/
More information about the gecode-users
mailing list


client - page - screen
Mouse position inside:
X Y
- client:
Client Viewport
- page:
Document Page (scroll down to see the difference)
(scrollTop:
Scroll top [pageY-clientY] )
- screen:
Screen


Watch: Will Smith’s New SPIES IN DISGUISE Trailer Premieres Fire Anderson .Paak x Mark Ronson Single
by Cyrus LanghorneHollywood star Will Smith has raised the stakes and expectations for animated flicks. The veteran actor’s new Spies in Disguise trailer packs a major punch and also premieres Anderson .Paak‘s “Then There Were Two” single. Watch and listen below!


Which of the following has the Theta notation (Theta(n)) time complexity?
"Sequential search in the average case"
"Binary sort in the average case"
"Heap sort in the worst case"


Rain
webconf.wav
Walking
Duck
Rain on Car Roof
(MPEG4 .AAC audio, 128 kbps AAC-LC exported from QuickTime)
Jellyfish
(848x480 H.264 video, playing audio portion only)


Class Credentials (2.9.0)
An opaque representation of the authentication configuration.
Applications use factory functions to provide the authentication parameters (for example, a raw access token). The factory function encapsulates the parameters in an instance of this class. The interface in this class is (intentionally) very narrow. Only the internal components in the client libraries should need to access the details of this class.
See Also
https://cloud.google.com/docs/authentication for more information on authentication in GCP.
See Also
https://cloud.google.com/iam for more information on the IAM Service.


Maine travel guide - Wikitravel
There is bus service from Boston to Maine's major cities, and the Amtrak . Tour the workshop, feed the Scottish Highland cows, and see the showroom. [20] .
http://wikitravel.org/en/Maine
Treatment for Herniated or Bulging Discs
Road Trip from Boston through New Hampshire, Vermont and Maine ...
Our family, two adults and 11yo daughter, plan to rent a car and drive from Boston up through New Hampshire, Vermont and Maine for 5 days .
http://www.lonelyplanet.com/thorntree/thread.jspa?threadID=2033498
Book Boston Tours & Things to do in Boston - View All Tours - Gray ...
Results 1 - 28 of 28 . Boston tours, Boston sightseeing, activities in Boston, Boston day tours, . Duration: 10 Hours Take a tour along the rocky coast of Maine .
http://www.grayline.com/United_States_-_Boston/View_All
tours from boston to maine Herniated or Bulging Discs
Boston Day Trips - Cape Cod, York Maine, Plymouth, Tanglewood ...
Boston day trips vary from a day at the beach to stepping into 17th century America. See the Boston-Plymouth Air Show, enjoy a day at Tanglewood, or savor .
http://www.boston-tourism-made-easy.com/boston-day-trips.html
Maine Trips - New England Weekend Getaways - Boston Magazine
Perhaps the one thing Mainers and non-Mainers can agree upon is this: " Vacationland" is governed by an ethos all its own. Once your car crosses over the .
http://www.bostonmagazine.com/articles/2009/06/maine/
Road Trip from Boston to Maine | United States Forum | Fodor's ...
Hi My friend and I are planning a roadtrip from Boston to Maine. We are in our early 40s. We are flying into Boston, plan to explore Boston using .
http://www.fodors.com/community/united-states/road-trip-from-boston-to-maine.cfm
Official Impairment Listing for Spinal Disorders
Maine Day Trip: Nubble Lighthouse, Lobster Bake and Shopping ...
Day Trips in Boston: Check out 0 reviews and photos of Viator's Maine Day Trip: Nubble Lighthouse, Lobster Bake and Shopping from Boston.
http://www.viator.com/tours/Boston/Maine-Day-Trip-Nubble-Lighthouse-Lobster-Bake-and-Shopping-from-Boston/d678-3978LOBSTER
- miss white river pageant (narrowing of the spine)
Train to Maine | Roundtrip Daily From Boston, MA to Portland, ME ...
With five round-trips daily between Boston and Portland, the Amtrak Downeaster is your car-free connection to exciting Maine destinations. Experience even .
http://www.traintomaine.com/Boston & Maine - Trip Planner - Yahoo! Travel
Boston & Maine. A trip from October 18, 2006 to October 24, 2006, travelling to Boston, Bar Harbor. Flying from Medford, OR to Boston, MA. Traveling by car
http://travel.yahoo.com/trip-view-859343-boston_maine
Itineraries - Maine Office of Tourism
From Boston travel to York, Maine and the Old York Historical Society where costumed guides offer tours of some of Maine's oldest buildings. A short drive along .
http://www.visitmaine.com/group-tour/itinerary/
trip to boston and driving to maine | Honolulu | Yelp
Jul 2, 2010 . Hi. I am flying in to Boston for the first time and was hoping to drive to Maine. I have five full days. Wish it was more but I am a mother of two .
http://www.yelp.com/topic/honolulu-trip-to-boston-and-driving-to-maine
Medical-Vocational Allowance for Herniated Disc
Road trip from Boston to Maine - Trip Planner - Yahoo! Travel
Road trip from Boston to Maine. A trip from August 06, 2008 to August 11, 2008, travelling to Bar Harbor, Winter Harbor, Bass Harbor. Trip Tags:None yet!More .
http://travel.yahoo.com/trip-view-1751938-road_trip_from_boston_to_maine
Trip to Maine with Day trip to Boston in Frommers.com Maine Forums
We have a group of friends from all over the country planning a trip together. We were thinking a mountain/lake cabin in Maine close enough to .
http://www.frommers.com/community/forum.cfm/united-states/maine/trip-maine-day-trip-boston
Appealing a Denial of Benefits
Boston to Portland, Maine--and even Canada | Harvard Magazine ...
The only passenger train to Maine, the Downeaster, runs five round trips a day from Boston to Portland. Although the train itself belongs to Amtrak, the route is .
http://harvardmagazine.com/2009/06/boston-portland-maine-even-canada
Go on a Maine food tour - Boston.com
Try food from countless restaurants on a Maine food tour, in and around Portland.
http://www.boston.com/travel/explorene/maine/galleries/maine_food_tour/


Cooking App
Click on the conversion that you want to compute
Gallons to Liters
Tsp to fl oz
Gallons to Liters
Enter the number galllons
Calculate
Tespoons to fluid ounces
Enter the number Tsp
Calculate
your results are:


Always a more reliable source for the latest news happening around the world.
Give me something random to read!


Putting your best foot forward online can be challenging, I believe in personal service to help you every step of the way.
Find Out MoreThe internet is the new front door, let us help you build your brand online.
Whether you need a new website for the first time, or tweaks for your existing site, I've got you covered.
Need help figuring out what your web hosting options are? Looking to see if you're paying too much to keep your website going? I can help.
Want to take customer payments for your services online? I can get you going.
Want to increase your visibility on Google and attract more customers? Looking to get insights on who visits your website?
Looking to freshen up your logo and increase visibility of your brand? Let us help.
Everything I do is personalized to you, your brand, and your needs. I don't believe in "fast-food" service; get something that was made for you.
Ready to start your next project with us? Give us a call or send us an email and we will get back to you as soon as possible!


Home
Game overview
How to play
About us
Contact us
Statistics
Main Menu
Game Played
Won
Tie
Lost
Win Percentage
Reset


Class UserInfo
Represents user information returned from a standard OpenID Connect /userinfo
endpoint.
Inheritance
Inherited Members
Namespace: Auth0.AuthenticationApi.Models
Assembly: Auth0.AuthenticationApi.dll
Syntax
public class UserInfo
Remarks
See http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims for more details.
Properties
AdditionalClaims
Additional claims about the user.
Declaration
public IDictionary<string, JToken> AdditionalClaims { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.IDictionary<System.String, JToken> |
Address
User's preferred postal/mailing address.
Declaration
public UserInfoAddress Address { get; set; }
Property Value
| Type | Description |
|---|---|
| UserInfoAddress |
Birthdate
Gets or sets the user's birthday, represented as an ISO 8601:2004 [ISO8601‑2004] YYYY-MM-DD format. The year MAY be 0000, indicating that it is omitted. To represent only the year, YYYY format is allowed.
Declaration
public string Birthdate { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
User's preferred e-mail address.
Declaration
public string Email { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
You MUST NOT rely upon this value being unique.
EmailVerified
Whether the user's email address has been verified or not.
Declaration
public bool? EmailVerified { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Boolean> |
Remarks
When this Claim Value is true, this means that the OP took affirmative steps to ensure that this e-mail address was controlled by the user at the time the verification was performed. The means by which an e-mail address is verified is context-specific, and dependent upon the trust framework or contractual agreements within which the parties are operating.
FirstName
Given name(s) or first name(s) of the user.
Declaration
public string FirstName { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
May contain multiple given names separated by space characters.
FullName
Full name of the user in displayable form including all name parts, possibly including titles and suffixes, ordered according to the user's locale and preferences.
Declaration
public string FullName { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Gender
User's gender.
Declaration
public string Gender { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
Values defined by the specification include female
and male
.
Other values MAY be used when neither of the defined values are applicable.
LastName
Surname(s) or last name(s) of the user.
Declaration
public string LastName { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
May contain multiple given names separated by space characters or no family name at all.
Locale
User's locale, represented as a BCP47 language tag.
Declaration
public string Locale { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
Typically an ISO 639-1 Alpha-2 language code in lowercase and an ISO 3166-1 Alpha-2 country code in uppercase, separated by a dash.
Examples
en-US
or fr-CA
MiddleName
Middle name(s) of the user.
Declaration
public string MiddleName { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
May contain multiple middle names separated by space characters.
NickName
Casual name of the user that may or may not be the same as FirstName.
Declaration
public string NickName { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Examples
Nickname of 'Mike' might be returned for a FirstName of Michael
.
PhoneNumber
User's preferred telephone number.
Declaration
public string PhoneNumber { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
E.164 is the RECOMMENDED format. If the phone number contains an extension, it is RECOMMENDED that the extension be represented using the RFC 3966 extension syntax.
Examples
+1<PHONE_NUMBER>
or +1<PHONE_NUMBER>;ext=5678.
PhoneNumberVerified
Whether the user's phone number has been verified or not.
Declaration
public bool? PhoneNumberVerified { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.Boolean> |
Remarks
When this Claim Value is true, this means that the OP took affirmative steps to ensure that this phone number was controlled by the user at the time the verification was performed. When true, the phone_number Claim MUST be in E.164 format and any extensions MUST be represented in RFC 3966 format.
Picture
URL of the user's profile picture.
Declaration
public string Picture { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
Note that this URL SHOULD specifically reference a profile photo of the End-User suitable for displaying when describing the user, rather than an arbitrary photo taken by the user.
PreferredUsername
Shorthand name by which the user wishes to be referred to at the RP, such as janedoe or j.doe.
Declaration
public string PreferredUsername { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
MAY be any valid JSON string including special characters such as @, /, or whitespace. You MUST NOT rely upon this value being unique.
Profile
URL of the user's profile page.
Declaration
public string Profile { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
The contents of this Web page SHOULD be about the End-User.
UpdatedAt
Time and date the user's information was last updated.
Declaration
public DateTime? UpdatedAt { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Nullable<System.DateTime> |
UserId
Subject-Identifier for the user at the issuer. A unique value to identify the user.
Declaration
public string UserId { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Website
URL of the user's Web page or blog.
Declaration
public string Website { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
This Web page SHOULD contain information published by the End-User or an organization that the End-User is affiliated with.
ZoneInformation
User's time zone as a "tz database name".
Declaration
public string ZoneInformation { get; set; }
Property Value
| Type | Description |
|---|---|
| System.String |
Remarks
See https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for more details.
Examples
Europe/Paris
or America/Los_Angeles
.


---
layout: default
permalink: talks.html
title: "Talks"
description: "A list of conference talks written by Rob Waller on software development and the tech industry."
---
{% if talk.slides != null %}
View the slides
{% endif %}
{% for tag in talk.tags %}
{% if forloop.last %}
#{{ tag }}
{% else %}
#{{ tag }}
{% endif %}
{% endfor %}


Congratulations on reaching the final project of the Robotics Nanodegree!
Previously, you worked on the Semantic Segmentation lab where you built a deep learning network that locates a particular human target within an image. For this project, you will utilize what you implemented and learned from that lab and extend it to train a deep learning model that will allow a simulated quadcopter to follow around the person that it detects!
Most of the code below is similar to the lab with some minor modifications. You can start with your existing solution, and modify and improve upon it to train the best possible model for this task.
You can click on any of the following to quickly jump to that part of this notebook:
We have provided you with a starting dataset for this project. Download instructions can be found in the README for this project's repo. Alternatively, you can collect additional data of your own to improve your model. Check out the "Collecting Data" section in the Project Lesson in the Classroom for more details!
import os
import glob
import sys
import tensorflow as tf
from scipy import misc
import numpy as np
from tensorflow.contrib.keras.python import keras
from tensorflow.contrib.keras.python.keras import layers, models
from tensorflow import image
from utils import scoring_utils
from utils.separable_conv2d import SeparableConv2DKeras, BilinearUpSampling2D
from utils import data_iterator
from utils import plotting_tools
from utils import model_tools
In the Classroom, we discussed the different layers that constitute a fully convolutional network (FCN). The following code will introduce you to the functions that you need to build your semantic segmentation model.
The Encoder for your FCN will essentially require separable convolution layers, due to their advantages as explained in the classroom. The 1x1 convolution layer in the FCN, however, is a regular convolution. Implementations for both are provided below for your use. Each includes batch normalization with the ReLU activation function applied to the layers.
def separable_conv2d_batchnorm(input_layer, filters, strides=1):
output_layer = SeparableConv2DKeras(filters=filters,kernel_size=3, strides=strides,
padding='same', activation='relu')(input_layer)
output_layer = layers.BatchNormalization()(output_layer)
return output_layer
def conv2d_batchnorm(input_layer, filters, kernel_size=3, strides=1):
output_layer = layers.Conv2D(filters=filters, kernel_size=kernel_size, strides=strides,
padding='same', activation='relu')(input_layer)
output_layer = layers.BatchNormalization()(output_layer)
return output_layer
The following helper function implements the bilinear upsampling layer. Upsampling by a factor of 2 is generally recommended, but you can try out different factors as well. Upsampling is used in the decoder block of the FCN.
def bilinear_upsample(input_layer):
output_layer = BilinearUpSampling2D((2,2))(input_layer)
return output_layer
In the following cells, you will build an FCN to train a model to detect and locate the hero target within an image. The steps are:
encoder_block
decoder_block
Create an encoder block that includes a separable convolution layer using the separable_conv2d_batchnorm()
function. The filters
parameter defines the size or depth of the output layer. For example, 32 or 64.
def encoder_block(input_layer, filters, strides):
# TODO Create a separable convolution layer using the separable_conv2d_batchnorm() function.
output_layer = separable_conv2d_batchnorm(input_layer, filters, strides)
return output_layer
The decoder block is comprised of three parts:
def decoder_block(small_ip_layer, large_ip_layer, filters):
# TODO Upsample the small input layer using the bilinear_upsample() function.
upsampled = bilinear_upsample(small_ip_layer)
# TODO Concatenate the upsampled and large input layers using layers.concatenate
concat_layer = layers.concatenate([upsampled, large_ip_layer])
# TODO Add some number of separable convolution layers
output_layer = separable_conv2d_batchnorm(concat_layer, filters)
output_layer = separable_conv2d_batchnorm(output_layer, filters)
return output_layer
Now that you have the encoder and decoder blocks ready, go ahead and build your FCN architecture!
There are three steps:
def fcn_model(inputs, num_classes):
conv1 = conv2d_batchnorm(inputs, filters=32, kernel_size=5, strides=2)
# TODO Add Encoder Blocks.
# Remember that with each encoder layer, the depth of your model (the number of filters) increases.
enc1 = encoder_block(conv1, filters=64, strides=2)
enc2 = encoder_block(enc1, filters=128, strides=2)
enc3 = encoder_block(enc2, filters=256, strides=2)
# TODO Add 1x1 Convolution layer using conv2d_batchnorm().
conv4 = conv2d_batchnorm(enc3, filters=256, kernel_size=1, strides=1)
# TODO: Add the same number of Decoder Blocks as the number of Encoder Blocks
dec5 = decoder_block(conv4, enc2, filters=256)
dec6 = decoder_block(dec5, enc1, filters=128)
x = bilinear_upsample(dec6)
x = separable_conv2d_batchnorm(x, filters=64)
x = separable_conv2d_batchnorm(x, filters=64)
x = bilinear_upsample(x)
x = separable_conv2d_batchnorm(x, filters=32)
x = separable_conv2d_batchnorm(x, filters=32)
# The function returns the output layer of your model. "x" is the final layer obtained from the last decoder_block()
return layers.Conv2D(num_classes, 1, activation='softmax', padding='same')(x)
The following cells will use the FCN you created and define an ouput layer based on the size of the processed image and the number of classes recognized. You will define the hyperparameters to compile and train your model.
Please Note: For this project, the helper code in data_iterator.py
will resize the copter images to 160x160x3 to speed up training.
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
image_hw = 160
image_shape = (image_hw, image_hw, 3)
inputs = layers.Input(image_shape)
num_classes = 3
# Call fcn_model()
output_layer = fcn_model(inputs, num_classes)
Define and tune your hyperparameters.
learning_rate = 0.005
batch_size = 32
num_epochs = 50
steps_per_epoch = 100
validation_steps = 50
workers = 4
"""
DON'T MODIFY ANYTHING IN THIS CELL THAT IS BELOW THIS LINE
"""
# Define the Keras model and compile it for training
model = models.Model(inputs=inputs, outputs=output_layer)
model.compile(optimizer=keras.optimizers.Adam(learning_rate), loss='categorical_crossentropy')
# Data iterators for loading the training and validation data
train_iter = data_iterator.BatchIteratorSimple(batch_size=batch_size,
data_folder=os.path.join('..', 'data', 'train'),
image_shape=image_shape,
shift_aug=True)
val_iter = data_iterator.BatchIteratorSimple(batch_size=batch_size,
data_folder=os.path.join('..', 'data', 'validation'),
image_shape=image_shape)
logger_cb = plotting_tools.LoggerPlotter()
callbacks = [logger_cb]
model.fit_generator(train_iter,
steps_per_epoch = steps_per_epoch, # the number of batches per epoch,
epochs = num_epochs, # the number of epochs to train for,
validation_data = val_iter, # validation iterator
validation_steps = validation_steps, # the number of batches to validate on
callbacks=callbacks,
workers = workers)
# Save your trained model weights
weight_file_name = 'model_weights'
model_tools.save_network(model, weight_file_name)
Now that you have your model trained and saved, you can make predictions on your validation dataset. These predictions can be compared to the mask images, which are the ground truth labels, to evaluate how well your model is doing under different conditions.
There are three different predictions available from the helper code provided:
# If you need to load a model which you previously trained you can uncomment the codeline that calls the function below.
# weight_file_name = 'model_weights'
# restored_model = model_tools.load_network(weight_file_name)
The following cell will write predictions to files and return paths to the appropriate directories.
The run_num
parameter is used to define or group all the data for a particular model run. You can change it for different runs. For example, 'run_1', 'run_2' etc.
run_num = 'run_1'
val_with_targ, pred_with_targ = model_tools.write_predictions_grade_set(model,
run_num,'patrol_with_targ', 'sample_evaluation_data')
val_no_targ, pred_no_targ = model_tools.write_predictions_grade_set(model,
run_num,'patrol_non_targ', 'sample_evaluation_data')
val_following, pred_following = model_tools.write_predictions_grade_set(model,
run_num,'following_images', 'sample_evaluation_data')
Now lets look at your predictions, and compare them to the ground truth labels and original images. Run each of the following cells to visualize some sample images from the predictions in the validation set.
# images while following the target
im_files = plotting_tools.get_im_file_sample('sample_evaluation_data','following_images', run_num)
for i in range(3):
im_tuple = plotting_tools.load_images(im_files[i])
plotting_tools.show_images(im_tuple)
# images while at patrol without target
im_files = plotting_tools.get_im_file_sample('sample_evaluation_data','patrol_non_targ', run_num)
for i in range(3):
im_tuple = plotting_tools.load_images(im_files[i])
plotting_tools.show_images(im_tuple)
# images while at patrol with target
im_files = plotting_tools.get_im_file_sample('sample_evaluation_data','patrol_with_targ', run_num)
for i in range(3):
im_tuple = plotting_tools.load_images(im_files[i])
plotting_tools.show_images(im_tuple)
Evaluate your model! The following cells include several different scores to help you evaluate your model under the different conditions discussed during the Prediction step.
# Scores for while the quad is following behind the target.
true_pos1, false_pos1, false_neg1, iou1 = scoring_utils.score_run_iou(val_following, pred_following)
# Scores for images while the quad is on patrol and the target is not visable
true_pos2, false_pos2, false_neg2, iou2 = scoring_utils.score_run_iou(val_no_targ, pred_no_targ)
# This score measures how well the neural network can detect the target from far away
true_pos3, false_pos3, false_neg3, iou3 = scoring_utils.score_run_iou(val_with_targ, pred_with_targ)
# Sum all the true positives, etc from the three datasets to get a weight for the score
true_pos = true_pos1 + true_pos2 + true_pos3
false_pos = false_pos1 + false_pos2 + false_pos3
false_neg = false_neg1 + false_neg2 + false_neg3
weight = true_pos/(true_pos+false_neg+false_pos)
print(weight)
# The IoU for the dataset that never includes the hero is excluded from grading
final_IoU = (iou1 + iou3)/2
print(final_IoU)
# And the final grade score is
final_score = final_IoU * weight
print(final_score)