The tent’s dim interior was hot enough to make Caemlyn, some eight hundred miles or so north, seem pleasantly cool, and when Rand pushed the flap open, he blinked. The sun was a hammer that made him glad of the shoufa.
A copy of the Dragon banner hung above the green-striped tent, alongside one of the crimson banners bearing the ancient Aes Sedai symbol. More tents stretched across a rolling plain where all but a few tufts of tough grass had long since been beaten to dust by hooves and boots—peak-roofed tents and flat, most white by far if often dirty white, but many in colors or stripes, tents and the colorful banners of lords. An army had gathered here on the border of Tear, on the edge of the Plains of Maredo, thousands upon thousands of soldiers from Tear and Cairhien. The Aiel had made their own camps well away from the wetlanders, five Aiel for every Tairen and Cairhienin and more arriving by the day. It was an army to make Illian shake in its boots, a host already mighty enough to smash anything in its path.
Enaila and the rest of the foreguard were already outside, veils down, with a dozen or so Aielmen. The Aiel kept a constant guard on this tent. Clothed and armed like the Maidens, they were as tall as Rand or taller, lions to the Maidens’ leopards, hard-faced sun-dark men with cold eyes of blue or green or gray. Today they were Sha’mad Conde, Thunder Walkers, led by Roidan himself, who headed the society this side of the Dragonwall. The Maidens carried the honor of the Car’a’carn, but every warrior society demanded some share of the guard duty.
One thing about some of the men’s garb differed from the Maidens’. Half wore a crimson cloth knotted around their temples, with the ancient Aes Sedai symbol a black-and-white disc above their brows. It was a new thing, first seen only a few months earlier. Wearers of the headband considered themselves siswai’aman; in the Old Tongue, the Spears of the Dragon. The Spears Owned by the Dragon might be closer. The headbands, and their meaning, made Rand uncomfortable, but there was little he could do when the men refused even to admit they were wearing them. Why no Maidens had donned the things—none he had seen at least—he had no idea. They were almost as reluctant to talk about it as the men.
“I see you, Rand al’Thor,” Roidan said gravely. There was considerably more gray than yellow in Roidan’s hair, but a blacksmith could have used the heavy-shouldered man’s face for hammer or anvil, and by the scars across his cheeks and nose it seemed possible that more than one had. Icy blue eyes made his face soft by comparison. He avoided looking at Rand’s sword. “May you find shade this day.” That had nothing to do with the molten sun or the cloudless sky—Roidan did not seem to sweat at all—it was simply a greeting among people from a land where the sun was always baking hot and a tree rare.
Equally formal, Rand replied, “I see you, Roidan. May you find shade this day. Is the High Lord Weiramon about?”
Roidan nodded toward a large pavilion with red-striped sides and a crimson roof, ringed by men with tall spears slanted precisely, shoulder-to-shoulder in the burnished breastplates and gold-and-black coats of Tairen Defenders of the Stone. Above it, the Three Crescents of Tear, white on red and gold, and the many-rayed Rising Sun of Cairhien, gold on blue, flanked Rand’s own scarlet flag, all three twitching in a breeze that might have come from an oven.
“The wetlanders are all there.” Looking Rand straight in the eyes, Roidan added, “Bruan has not been asked to that tent in three days, Rand al’Thor.” Bruan was clan chief of the Nakai Aiel, Roidan’s clan; they were both Salt Flat sept. “Nor has Han of the Tomanelle, or Dhearic of the Reyn, or any clan chief.”
“I will speak with them,” Rand said. “Will you tell Bruan and the others I am here?” Roidan nodded gravely.
Eyeing the men sideways, Enaila leaned close to Jalani, then spoke in a whisper that could have been heard clearly at ten paces. “Do you know why they are called Thunder Walkers? Because even when they are standing still, you keep looking to the sky expecting to see lightning.” The Maidens hooted with laughter.
A young Thunder Walker leaped in the air, kicking a soft knee-high boot higher than Rand’s head. He was handsome except for the puckered white scar that ran up under the strip of black cloth covering a missing eye. He wore the headband, too. “Do you know why Maidens use handtalk?” he shouted at the top of his leap, and, landing, he put on a befuddled grimace.  “Because even when they are not talking, they cannot stop talking.” The Sha’mad Conde laughed as hard as the Maidens had.
“Only Thunder Walkers would see honor in guarding an empty tent,” Enaila told Jalani sadly, shaking her head. “The next time they call for wine, if the gai’shain bring them empty cups, they will no doubt get drunker than we can on oosquai.”
Apparently the Thunder Walkers thought Enaila had gained the best of the exchange. The one-eyed man and several others raised their bull-hide bucklers toward her and rattled spears against them. For her part, she simply listened a moment, then nodded to herself and fell in with the others as they followed Rand.
Musing to himself about Aiel humor, Rand studied the sprawling camp. The aromas of food drifted from hundreds of scattered cookfires, bread baking in coals, meat roasting on spits, soup bubbling in kettles hung on tripods. Soldiers always ate well and often when they could; campaigning usually brought scant meals. The fires added their own sweetish smells; there was more dried ox dung to burn on the Plains of Maredo than wood.
Here and there archers or crossbowmen or pikemen moved about in leather jerkins sewn with steel discs or simply padded coats, but Tairen and Cairhienin nobles alike despised foot and lauded horse, so mounted men were most in evidence. Tairens in helmets rimmed and ridged, and breastplates over fat-sleeved coats striped in the colors of their various lords. Cairhienin in dark coats and battered breastplates and helmets like bells cut away to expose their faces. Small banners called con, on short staffs fastened to some men’s backs, marked minor Cairhienin nobility and younger sons, and sometimes merely officers, though few Cairhienin commoners rose to rank. Or Tairen, for that matter. The two nationalities did not mingle, and while the Tairens often slouched in their saddles and always directed a sneer at any Cairhienin who came near, the shorter Cairhien sat their horses stiffly, as though straining for the last inch of height, and ignored the Tairens completely. They had fought more than one war against each other before Rand made them ride together.
Roughly dressed, grizzled old men and some little more than boys went poking around the tents with stout sticks, one or another now and again scaring up a rat that he chased down and clubbed before adding it to the others dangling from his belt. A big-nosed fellow in a stained leather vest and no shirt, bow in hand and quiver at his waist, laid a long string of crows and ravens tied together by the feet on a table in front of one tent and received a purse in exchange from the bored-looking helmetless Tarien behind it. Few this far south really believed Myrddraal used rats and ravens and such for spies—Light, except for those who had actually seen them, almost no one this far south truly believed in Myrddraal, or Trollocs!—but if the Lord Dragon wanted the camp kept clear of the creatures, they were happy to oblige, especially since the Lord Dragon paid in silver for every corpse.
Cheers rose, of course; no one else would be walking about with an escort of Maidens of the Spear, and there was the Dragon Scepter. “The Light illumine the Lord Dragon!” and “Grace favor the Lord Dragon!” and the like showered from every side. Many even sounded sincere, though it was difficult to tell with men bellowing at the top of their lungs. Others only stared woodenly, or turned their horses and rode away, not too fast. After all, there was no telling when he might decide to call down lightning or make the ground split open; men who channeled did go mad, and who knew what a madman might do or when? Whether cheering or not, they eyed the Maidens warily. Few had really grown accustomed to seeing women carrying weapons like men; besides, everyone knew Aiel were every bit as unpredictable as madmen.
The noise was not enough to keep Rand from hearing what the Maidens were saying behind him.
“He has a fine sense of humor. Who is he?” That was Enaila.
“His name is Leiran,” Somara replied. “A Cosaida Chareen.  He does look to have strong hands.” Several of the Maidens chortled.
“Did you not think Enaila funny, Rand al’Thor?” Sulin was striding at his side. “You did not laugh. You never laugh. Sometimes I do not think you have a sense of humor.”
Stopping dead, Rand rounded on them so suddenly that several reached for their veils and looked about for what had startled him. He cleared his throat. “An irascible old farmer named Hu discovered one morning that his best rooster had flown into a tall tree beside his farm pond and wouldn’t come down, so he went to his neighbor, Wil, and asked for help. The men had never gotten along, but Wil finally agreed, so the two men went to the pond and began climbing the tree, Hu first. They meant to frighten the rooster out, you see, but the bird only kept flying higher, branch by branch. Then, just as Hu and the rooster reached almost the very top of the tree, with Wil right behind, there was a loud crack, the branch under Hu’s feet broke away, and down he went into the pond, splashing water and mud everywhere. Wil scrambled down as fast as he could and reached out to Hu from the bank, but Hu just lay there on his back, sinking deeper into the mud until only his nose stuck out of the water. Another farmer had seen what happened, and he came running and pulled Hu out of the pond. ‘Why didn’t you take Wil’s hand?’ he asked Hu. ‘You could have drowned.’ ‘Why should I take his hand now?’ Hu grumped. ‘I passed him just a moment ago in broad daylight, and he never spoke a word to me.’ ” He waited expectantly.
The Maidens exchanged blank looks. Finally Somara said, “What happened with the pond? Surely the water is the point of this story.”
Throwing up his hands, Rand started for the red-striped pavilion again. Behind him he heard Liah say, “I think it was supposed to be a joke.”
“How can we laugh when he doesn’t know what happened to the water?” Maira said.
“It was the rooster,” Enaila put in. “Wetlander humor is strange. I think it was something about the rooster.”
He tried to stop listening.
The Defenders stiffened even more rigidly at his approach, if that was possible, and the two standing before the gold-fringed entry flaps stepped aside smoothly, pulling them open. Their eyes stared past the Aiel women.
Rand had led the Defenders of the Stone once, in a desperate fight against Myrddraal and Trollocs in the halls of the Stone of Tear itself. They would have followed anyone who stepped forward to lead that night, but it had been him.
“The Stone still stands,” he said quietly. That had been their battlecry. Quick smiles flashed across some of those faces before they snapped back to wooden stillness. In Tear commoners did not smile at what a lord said unless absolutely sure the lord wanted them to smile.
Most of the Maidens squatted easily outside, spears across their knees, a posture they could hold for hours without moving a muscle, but Sulin followed Rand inside with Liah, Enaila and Jalani. If those Defenders had all been childhood friends of Rand, the Maidens would have been as cautious, but the men inside were not friends at all.
Colorful, fringed carpets floored the pavilion, Tairen mazes and elaborate scrollwork patterns, and in the middle sat a massive table, heavily carved and gilded and garishly inlaid with ivory and turquoise, that very likely needed a wagon all to itself for transport. The map-covered table separated a dozen sweaty-faced Tairens from half as many Cairhienin, who suffered even more from the heat, each man holding a golden goblet that self-effacing servants in black-and-gold livery kept filled with punch. All the nobles were in silk, but the clean-shaven Cairhienin, short, slight and pale compared to the men on the other side of the table, wore coats dark and sober except for bright horizontal slashes of their House colors across the chest, the number indicating the rank of the House, while the Tairens, most with beards oiled and trimmed to neat points, wore padded coats that were a garden of red and yellow and green and blue, satin and brocade, silver thread and thread-of-gold. The Cairhienin were solemn, even dour, most gaunt-cheeked and each with the front of his head shaved and powdered in what had once been the fashion only among soldiers in Cairhien, not lords. The Tairens smiled and sniffed scented handkerchiefs and pomanders that filled the pavilion with their heavy aromas. Beside the punch, the one thing they seemed to have in common was flat-eyed stares for the Maidens, followed hard by the pretense that the Aiel were invisible.
The High Lord Weiramon, oiled beard and hair streaked gray, bowed deeply. He was one of four High Lords there, in elaborately silver-worked boots, the others being unctuous, overly plump Sunamon; Tolmeran, whose iron-gray beard seemed a spear point on the shaft of his leanness; and potato-nosed Torean, looking more a farmer than most farmers—but Rand had given Weiramon the command. For the time being. The other eight were lesser lords, some clean-shaven though with no less gray in their hair; they were here through their oaths of fealty to one or another of the High. Lords, yet they all had some experience of fighting.
Weiramon was not short for a Tairen, though Rand stood a head taller, but he always reminded Rand of a banty rooster, all puffed out chest and strutting. “All hail the Lord Dragon,” he intoned, bowing, “soon to be Conqueror of Illian. All hail the Lord of the Morning.” The rest were no more than a breath behind, Tairens spreading arms wide, Cairhienin touching hand to heart.
Rand grimaced. Lord of the Morning had been one of Lews Therin’s titles, or so the fragmentary histories said. A great deal of knowledge had been lost in the Breaking of the World, and more went up in smoke during the Trolloc Wars and later during the War of the Hundred Years, yet surprising shards sometimes survived. He was surprised that Weiramon’s use of the title had not brought Lews Therin’s mad yammering. Come to think of it, Rand had not heard that voice since shouting at it. As far as he could recall that was the first time he had ever actually addressed the voice sharing his head. The possibilities behind that sent a chill down his back.
“My Lord Dragon?” Sunamon dry-washed fleshy hands. He seemed to be trying not to see the shoufa wrapped around Rand’s head. “Are you—?” Swallowing his words, he put on an ingratiating smile; asking a potential madman—potential at the very least—whether he was well was perhaps not what he wanted to say. “Would the Lord Dragon like some punch? A Lodanaille vintage mixed with honey-melon.” A lanky Lord of the Land sworn to Sunamon, a man named Estevan with a hard jaw and harder eyes, motioned sharply, and a servant darted for a golden goblet from a side table against the canvas wall; another hurried to fill it.
“No,” Rand said, then more strongly, “No.” He waved the servant away without really seeing him. Had Lews Therin actually heard? Somehow that made the whole thing worse. He did not want to think about the possibility now; he did not want to think of it at all. “As soon as Hearne and Simaan get here, almost everything will be in place.” Those two High Lords should be arriving soon; they led the last large parties of Tairen soldiers to have left Cairhien, over a month ago. Of course, there were smaller groups on the way south, and more Cairhienin. More Aiel, too; the stream of Aiel would draw things out. “I want to see—”
Abruptly he realized the pavilion had gone very quiet, very still, except for Torean suddenly tipping back his head to gulp down the rest of his punch. He scrubbed a hand across his mouth and held out the goblet for more, but the servants seemed to be trying to fade into the red-striped walls. Sulin and the other three Maidens were suddenly up on their toes, ready to veil.
“What is it?” he asked quietly.
Weiramon hesitated. “Simaan and Hearne have . . . gone to Haddon Mirk. They are not coming.” Torean snatched a worked-gold pitcher from one of the servants and filled his own goblet, slopping punch onto the carpets.
“And why have they gone there instead of coming here?” Rand did not raise his voice. He was sure he knew the answer. Those two—and five more High Lords besides—had been sent to Cairhien mainly to occupy minds set to plot against him.
Malicious smiles flickered among the Cairhienin, most half-hidden in quickly raised goblets. Semaradrid, the highest-ranking, slashes of color on his coat to below the waist, wore his sneer openly. A long-faced man with white streaks at his temples and dark eyes that could chip stone, he moved stiffly from wounds suffered in his land’s civil war, but his limp came from fighting Tear. His main reason for cooperating with the Tairens was that they were not Aiel. But then, the Tairens’ main reason for cooperating was that the Cairhienin were not.
It was one of Semaradrid’s countrymen who answered, a young lord named Meneril who had half Semaradrid’s stripes on his coat, and on his face a scar from the civil war that pulled up the left corner of his mouth in a permanent sardonic smile. “Treason, my Lord Dragon. Treason and rebellion.”
Weiramon might have been hesitant about saying those words to Rand’s face, yet he was not about to let an outlander speak for him. “Yes, rebellion,” he said hurriedly, glaring at Meneril, but his usual pomposity quickly returned. “And not only them, my Lord Dragon. The High Lords Darlin and Tedosian and the High Lady Estanda are in it, too. Burn my soul, but they all put their names to a letter of defiance! It seems some twenty or thirty minor nobles are involved as well, some little more than jumped-up farmers. Light-blasted fools!”
Rand almost admired Darlin. The man had opposed him openly from the start, fleeing the Stone when it fell and trying to rouse resistance among the country nobles. Tedosian and Estanda were different. Like Hearne and Simaan they had bowed and smiled, called him Lord Dragon and plotted behind his back. Now his forbearance was repaid. No wonder Torean was spilling punch over his white-streaked beard as he drank; he had been involved deeply with Tedosian, and with Hearne and Simaan for that matter.
“They wrote more than defiance,” Tolmeran said in a cold voice. “They wrote that you are a false Dragon, that the fall of the Stone and your drawing of The Sword That Is Not a Sword were some Aes Sedai trick.” There was a hint of question in his tone; he had not been in the Stone of Tear the night it fell to Rand.
“What do you believe, Tolmeran?” It was a seductive claim in a land where channeling had been outlawed before Rand changed the law, and Aes Sedai were at best tolerated, where the Stone of Tear had stood invincible for close to three thousand years before Rand took it. And a familiar claim. Rand wondered whether he would find Whitecloaks when these rebels were laid by the heels. He thought Pedron Niall might be too smart to allow that.
“I think you drew Callandor.” The lean man said after a moment. “I think you are the Dragon Reborn.” Both times there was a slight emphasis on “think.” Tolmeran had courage. Estevan nodded; slowly, but he did it. Another brave man.
Even they did not ask the obvious question, though, whether Rand wanted the rebels rooted out. Rand was not surprised. For one thing, Haddon Mirk was no easy place to root anyone out of, a huge tangled forest lacking villages, roads or even paths. In the choppy mountainous terrain along its northernmost edge a man would be lucky to cover a handful of miles in a long day, and armies could maneuver until their food ran out without finding one another. Perhaps more importantly, whoever asked that question could be suspected of volunteering to lead the expedition, and a volunteer could be suspected of wanting to join Darlin, not lay him by the heels. Tairens might not play Daes Dae’mar, the Game of Houses, the way Cairhienin did—that lot read volumes in a glance and heard more in a sentence than you ever meant to put there—but they still schemed and watched one another, suspicious of schemes, and they believed everyone else did the same.
Still, it suited Rand to leave the rebels where they were for now. All of his attention had to be on Illian; it had to be seen to be there. But he could not be seen as soft, either. These men would not turn on him, but Last Battle or no Last Battle, only two things kept the Tairens and Cairhienin from each other’s throats. They preferred each other to Aielmen, if barely, and they feared the wrath of the Dragon Reborn. If they lost that fear, they would be trying to kill one another, and the Aiel, before you could say Jak o’ the Mists.
“Does anyone speak in their defense?” he asked. “Does anyone know any mitigation?” If any did, they held their tongues; counting the servants, nearly two dozen pairs of eyes watched him, waiting. Perhaps the servants most intently of all. Sulin and the Maidens watched everything except him. “Their titles are forfeited, their lands and estates confiscated. Arrest warrants are to be signed for every man whose name is known. And every woman.” That could present a problem; the penalty in Tear for rebellion was death. He had changed some laws, but not that one, and it was too late now. “Publish it that whoever kills one of them will be absolved of murder, and whoever aids them will be charged with treason. Any who surrender will be spared their lives,” which might solve the difficulty of Estanda—he would not order a woman executed—if he could work how to manage it, “but those who persist will hang.”
The nobles shifted uneasily and exchanged glances, whether Tairen or Cairhienin. Blood drained from more than one face. They had certainly expected the death sentences—there could be no less for rebellion, and with war in the offing—but the stripping of titles plainly shocked them. Despite all the laws Rand had changed in both lands, despite lords hauled before magistrates and hanged for murder or fined for assault, they still thought there was some difference bred in the bone, some natural order that made them lions by right and commoners sheep. A High Lord who went to the gibbet died a High Lord, but Darlin and the others would die peasants in these men’s eyes, a much worse fate than the dying itself. The servants remained poised with their pitchers, waiting to refill any goblet that had to be tilted very far in drinking. Features as expressionless as ever, there seemed to be a cheerfulness in some of those eyes not there before.
“Now that that’s settled,” Rand said, dragging off the shoufa as he went to the table, “let’s see the maps. Sammael is more important than a handful of fools rotting in Haddon Mirk.” He hoped they did rot. Burn them!
Weiramon’s mouth tightened, and Tolmeran quickly smoothed out a frown. Sunamon’s face was so smooth it might have been a mask. The other Tairens looked as doubtful, and the Cairhienin as well, though Semaradrid hid it well. Some had seen Myrddraal and Trollocs during that attack on the Stone, and some had seen his duel with Sammael at Cairhien, yet they thought his claim the Forsaken were loose a symptom of insanity. He had heard whispers that he had wrought all the destruction at Cairhien himself, striking out maniacally at friend and foe alike. Going by Liah’s stony face, one of them was going to get a Maiden’s spear through him if they did not guard those looks.
They gathered around the table, though, as he tossed down the shoufa and rummaged through the maps scattered in layers. Bashere was right; men would follow madmen who won. So long as they won. Just as he found the map he wanted, a detailed drawing of the eastern end of Illian, the Aiel chiefs arrived.
Bruan of the Nakai Aiel was first to enter, followed closely by Jheran of the Shaarad, Dhearic of the Reyn, Han of the Tomanelle, and Erim of the Chareen, each acknowledging the nods of Sulin and the three Maidens. Bruan, a massive man with sad gray eyes, really was the leader of the five clans Rand had sent south so far. None of the others objected; Bruan’s oddly placid manner belied his battle skills. Clothed in the cadin’sor, shoufa hanging loose about their necks, they were unarmed except for their heavy belt knives, but then, an Aiel was hardly unarmed even when he had only his hands and feet.
The Cairhienin simply pretended they were not there, but the Tairens made a point of sneering and sniffing ostentatiously at their pomanders and scented handkerchiefs. Tear had lost only the Stone to the Aiel, and that with the aid of the Dragon Reborn, as they believed—or of Aes Sedai—but Cairhien had twice been ravaged by them, twice defeated and humiliated.
Except for Han, the Aiel ignored them all. Han, white-haired and with a face like creased leather, glared murderously. He was a prickly man at best, and it might not have helped that some of the Tairens were as tall as he. Han was short for an Aiel—which meant well above average for a wetlander—and as touchy about it as Enaila. And of course, Aiel despised “treekillers,” one of their names for Cairhienin, beyond any other wetlanders. Their other name for them was “oathbreakers.”
’The Illianers,” Rand said firmly, smoothing the map out. He used the Dragon Scepter to hold down one end and a gold-mounted inkpot and matching sand-bowl for the other. He did not need these men to start killing each other. He did not think they would—while he was there, at least. In stories allies eventually came to trust and like one another; he doubted these men ever would.
The rolling Plains of Maredo extended a little distance into Illian, giving way to forested hills well short of the Manetherendrelle, and the River Shal branching off from it. Five inked crosses about ten miles apart marked the eastern edge of those hills. The Doirlon Hills.
Rand put his finger on the middle cross. “Are you sure Sammael has not added any new camps?” A slight grimace on Weiramon’s face made him snap irritably, “Lord Brend, if you prefer, then, or the Council of Nine, or Mattin Stepaneos den Balgar, if you want the king himself. Are they still like this?”
“Our scouts say so,” Jheran said calmly. Slender as a blade is slender, his light brown hair heavily streaked with gray, he was always calm now that the Shaarad’s four-hundred-year blood feud with the Goshien Aiel had ended with Rand’s coming. “Sovin Nai and Duadhe Mahdi’in keep a close watch.” He nodded slightly in satisfaction, and so did Dhearic. Jheran had been Sovin Nai, a Knife Hand, before becoming chief, and Dhearic Duadhe Mahdi’in, a Water Seeker. “We know any changes in five days by runners.”
“My scouts believe they are,” Weiramon said as if Jheran had not spoken. “I send a new troop every week. It takes a full month for them to come and go, but I assure you, I am as up-to-date as the distance allows.”
The Aiel’s faces might have been carved from stone.
Rand ignored the interplay. He had tried before to hammer shut the gaps between Tairen, Cairhienin and Aiel, and they always sprang apart as soon as his back turned. It was useless effort.
As for the camps . . . he knew there were still only five; he had visited them, in a manner of speaking. There was a . . . place . . . that he knew how to enter, a strange, unpeopled reflection of the real world, and he had walked the wooden walls of those massive hill-forts there. He knew the answers to almost every question he intended to ask, but he was juggling plans within plans like a gleeman juggling fire. “And Sammael is still bringing more men up?” This time he emphasized the name. The Aiel’s expressions did not change—if the Forsaken were loose, the Forsaken were loose; the world had to be faced as it was, not as you wished it to be—but the others darted those quick, worried glances at him. They had to get used to it sooner or later. They had to believe sooner or later.
“Every man in Illian who can hold a spear without tripping over it, or so it seems,” Tolmeran said with a glum expression. He was as eager to fight the Illianers as any Tairen—the two nations had hated each other since they were wrested from the wreckage of Artur Hawkwing’s empire; their history was one of wars fought on the slightest excuse—but he seemed a little less likely than the other High Lords to think every battle could be won by one good charge. “Every scout that makes it back reports the camps larger, with more formidable defenses.”
“We should move now, my Lord Dragon,” Weiramon said forcefully.  They’ve tied themselves down. Why, they hardly have any horse at all! I’ll crush them in detail, and the way will be open to the city.” In Illian, as in Tear and Cairhien, “the city” was the city that had given the nation its name. “Burn my eyes, I will put your banner over Illian in a month, my Lord Dragon. Two at most.” Glancing at the Cairhienin, he added as if the words were being pulled from him, “Semaradrid and I will.” Semaradrid bowed slightly. Very slightly.
“No,” Rand said curtly. Weiramon’s was a plan for disaster. A good two hundred and fifty miles lay between the camp and Sammael’s great hill-forts across a plain of grass where a fifty-foot rise was considered a tall hill and a thicket of two hides a forest. Sammael had scouts, too; any rat or raven could be one of Sammael’s scouts. Two hundred and fifty miles. Twelve or thirteen days for the Tairens and Cairhienin, with luck. The Aiel could make it in perhaps five, if they pushed—a lone scout or two moved faster than an army, even among Aiel—but they were no part of Weiramon’s design. Long before Weiramon reached the Doirlon Hills, Sammael would be ready to crush the Tairen, not the other way around. A fool plan. Even more foolish than the one Rand had given them. “I’ve given your orders. You hold here until Mat arrives to take command, and even then, no one moves a foot until I think I have enough numbers here. There are more men on their way, Tairens, Cairhienin, Aiel. I mean to smash Sammael, Weiramon. Smash him forever, and bring Illian under the Dragon Banner.” That much was true. “I only wish I could be with you, but Andor requires my attention yet.”
Weiramon’s face became sour stone, Semaradrid’s grimace should have turned the wine in his punch to vinegar, and Tolmeran wore such a lack of expression that his disapproval was plain as a fist in the nose. In Semaradrid’s case, it was the delay that worried. He had pointed out more than once that if every day brought more men to the camp here, it also brought more to the forts in Illian. No doubt Weiramon’s plan was the result of his urgings, though he would have made a better. Tolmeran’s doubts centered on Mat. Despite what he had heard from Cairhienin of Mat’s skill in battle, Tolmeran thought it flattery from fools for a country man who happened to be a friend of the Dragon Reborn. They were honest objections, and Semaradrid’s even had validity—if the plan they had been given had been more than another screen. It was unlikely Sammael depended entirely on rats and ravens for his spying. Rand expected there were human spies in the camp for other Forsaken as well, and probably for the Aes Sedai.
“It shall be as you say, my Lord Dragon,” Weiramon said heavily.  Rand was sure Weiramon was exactly the man he needed. Tolmeran and Semaradrid would not move too soon so long as Weiramon held the command.
For a long while further they talked and Rand listened, asking occasional questions. There was no more opposition, no more suggestions that the attack be made now, no discussion of the attack at all. What Rand questioned Weiramon and the others about was wagons, wagons and what was in them. The Plains of Maredo had few villages and far between, no city except Far Madding in the north, and barely enough farmland to feed the people already there, A huge army would need a constant stream of wagons out of Tear bringing everything from flour for bread to nails for horseshoes. Except for Tolmeran, the High Lords were of the opinion that the army could carry what it needed to cross the plain and then could live off Illian; there seemed to be a certain relish in the thought of stripping their ancient enemy’s lands to the ground like a swarm of locusts. The Cairhienin had a different opinion, especially Semaradrid and Meneril. Not only commoners had gone hungry during Cairhien’s civil war and the Shaido’s siege of their capital; their hollow cheeks spoke eloquently of that. Illian was a fat land, and even the Doirlon Hills held farms and vineyards, but Semaradrid and Meneril did not want to trust their soldiers’ bellies to uncertain forage if there was another way. As for Rand, he did not want Illian ravaged any more than could not be avoided.
He did not really press anyone. Sunamon assured him the wagons were being assembled, and he had long since learned his lesson about telling Rand one thing and doing another. Supplies were being gathered all across Tear, despite Weiramon’s grimaces of impatience with the whole notion and Torean’s sweaty mutters about the expense. The important thing, though, was that the plan he had given them was going forward—and would be seen to be going forward.
Leavetaking involved more grandiose prattle and elaborate bows while he rewound the shoufa around his head and took up the Dragon Scepter again, with halfhearted invitations to stay for a banquet and equally insincere offers to attend him to his departure if he could not remain to eat the feast they would have prepared. Tairen or Cairhienin, they avoided the company of the Dragon Reborn as much as they safely could without losing his favor, while pretending that they did no such thing. Most especially they wanted to be elsewhere when he channeled. They did escort him to the entrance and a few steps outside, of course, but Sunamon sighed audibly when he left them, and Rand heard Torean actually giggling in relief.
The Aiel chiefs went with Rand silently, and the Maidens outside joined Sulin and the other three in making a ring around the six men as they started toward the green-striped tent. This time there were only a few cheers, and the chiefs said nothing. They had said almost as little back in the pavilion. When Rand commented on it, Dhearic said, “These wetlanders do not want to hear us.”  His blue eyes were filled with contempt. “They hear only the wind.”
“Did they tell you of those who rebel against you?” Erim asked. Taller than Dhearic, he had a pugnacious jaw and almost as much white as red in his hair.
“They did,” Rand said, and Han frowned at him.
“If you are sending these Tairens after their own kind, it is a mistake. Even if they could be trusted, I do not think they could do it. Send the spears. One clan would be enough and more.”
Rand shook his head. “Darlin and his rebels can wait. Sammael is what’s important.”
“Then let us go to Illian now,” Jheran said. “Forget these wetlanders, Rand al’Thor. Already there are nearly two hundred thousand spears gathered here. We can destroy the Illianers before Weiramon Saniago and Semaradrid Maravin can be halfway there.”
For a moment Rand squeezed his eyes shut. Was everyone going to argue with him? These were not men who would give way at a frown from the Dragon Reborn. The Dragon Reborn was only a wetlander prophecy; they followed He Who Comes With the Dawn, the Car’a’carn, and as he had long since grown tired of hearing, even the Car’a’carn was not a king. “I want your word to stay here until Mat tells you to move. A promise from each of you.”
“We will stay, Rand al’Thor.” Bruan’s deceptively mild voice had a tight edge. The others’ agreements came in harder voices, but they came.
“But it is wasting time,” Han added, twisting his mouth. “May I never know shade if it is not.” Jheran and Erim nodded.
Rand had not expected them to give in so quickly. “Now and then you have to waste time to save it,” he said, and Han snorted.
Back at the green-striped tent the Thunder Walkers had lifted up the sides on poles, letting the breeze blow through the shaded interior. Hot and dry as it was, the Aiel seemed to find it refreshing. Rand did not think he sweated a drop less than he had in the sun. He pulled off the shoufa as he settled to the layered rugs with Bruan and the other chiefs facing him. The Maidens added their number to the Thunder Walkers around the tent; every so often banter between them drifted in, and laughter at it. This time Leiran seemed to be getting the better of it; at least, the Maidens rattled spears against bucklers at him twice. Rand understood almost none of it.
Thumbing his short-stemmed pipe full of tabac, he passed the goatskin pouch around for the chiefs to fill their pipes—he had found a small cask of good Two Rivers leaf in Caemlyn—then channeled his alight while they sent a Thunder Walker for a burning twig from one of the cookfires. When all the pipes were lit they settled down to talk, puffing contentedly.
The conversation lasted fully as long as his discussion with the lords, not because there was that much to talk about but because Rand had talked alone with the wetlanders. Aiel were touchy about honor; their lives were governed by ji’e’toh, honor and obligation, with rules as complex and odd as their humor. They talked of the Aiel still on their way down from Cairhien, of when Mat would arrive and of what if anything should be done about the Shaido. They talked about hunting and women and whether brandy was as good as oosquai, and about humor. Even patient Bruan finally spread his hands in surrender and gave up trying to explain Aiel jokes. What under the Light was funny about a woman stabbing her husband by accident, whatever the circumstances, or a man ending up married to the sister of the woman he wanted to marry? Han grumped and snorted and refused to believe Rand did not understand; he laughed so hard at the one about the stabbing that he nearly fell over. The one thing they did not talk about was the coming war against Illian.
When they left, Rand stood squinting at the sun, halfway down toward the horizon. Han was repeating the story about the stabbing, and the departing chiefs chuckled over it again. Tapping his pipe out on the heel of his palm, Rand ground the dottle underfoot in the dust. There was still time to return to Caemlyn and meet Bashere, but he went back inside the tent and sat watching the sun sink. As it touched the horizon, turning red as blood, Enaila and Somara brought him a plate of mutton stew heaped high enough for two men, a round loaf of bread and a pitcher of mint tea that had been set in a bucket of water to cool.
“You do not eat enough,” Somara said, trying to smooth his hair before he moved his head away.
Enaila eyed him. “If you did not avoid Aviendha so, she would see that you ate.”
“He attracts her interest, then runs from her,” Somara muttered. “You must attract her again. Why do you not offer to wash her hair?”
“He should not be that forward,” Enaila said firmly. “Asking to brush her hair will be more than enough. He does not want her to think him forward.”
Somara sniffed. “She will not think he is forward when he runs from her. You can be too modest, Rand al’Thor.”
“You do realize that neither of you is my mother, don’t you?”
The two cadin’sor-clad women looked at each other in confusion. “Do you think this is another wetlander joke?” Enaila asked, and Somara shrugged.
“I do not know. He does not look amused.” She patted Rand on the back. “I am sure it was a good joke, but you must explain it to us.”
Rand suffered in silence, grinding his teeth, while they watched him eat. They literally watched every spoonful. Matters became no better when they left with his plate and Sulin joined him. Sulin had some blunt, and most improper, advice on how he could reattract Aviendha’s notice; among the Aiel, it was the sort of thing a first-sister might do for a first-brother.
“You must be decently modest in her eyes,” the white-haired Maiden told him, “but not so modest she thinks you boring. Ask her to scrape your back in the sweat tent, but shyly, with your eyes downcast. When you undress for bed, let yourself dance as if life pleases you, then apologize when you suddenly realize she is there and put yourself straight into your blankets. Can you blush?”
A great deal of suffering in silence. The Maidens knew too much, and not enough.
When they returned to Caemlyn, well after the sun had gone down, Rand crept into his apartment with his boots in his hands, fumbling his way through the anteroom into his bedchamber in the dark. Even if he had not known Aviendha would be there, already on her pallet on the floor by the wall, he would have felt her presence. In the stillness of the night, he could hear her breathing. For once it seemed he had managed to wait long enough for her to fall asleep. He had tried to stop this, but Aviendha paid him no mind and the Maidens laughed at his ‘shyness’ and ‘modesty.’ Good things in a man when alone, they agreed, so long as not carried too far.
He climbed into his bed with a sense of relief that Aviendha was already asleep—and some disgruntlement that he dared not light a lamp to wash—and she turned over on her pallet. Very likely she had been awake all along.
“Sleep well and wake,” was all she said.
Thinking what idiocy it was to feel this sudden contentment because a woman he wanted to avoid told him good night, he stuffed a goose-down pillow beneath his head. Aviendha probably thought this the most marvelous joke; taunting was almost an art among Aiel, and the nearer it came to bringing blood, the better. Sleep began to come, and his last conscious thought was that he had a huge joke of his own, though only he and Mat and Bashere knew it yet. Sammael had no sense of humor at all, but that great hammer of an army waiting in Tear was the biggest joke the world had ever seen. With any luck, Sammael would be dead before he knew he should laugh.


‘Remove GST on insurance premium’
by Staff ReporterThe Insurance Corporation Employees Union has demanded a rollback of GST on premiums.
In 2014, the Central government implemented 18% GST on all premiums for insurance policies. GST was also imposed on interest for loans on policies and renewal of policies.
“There is also GST on the service charge for changing nominations. This is affecting policy holders across the nation. Life insurance Corporation of India is one of the biggest capital providers for the government as it attracts long-term investments. The government should, in turn, encourage people to invest in insurance. Instead, the imposing of GST is discouraging,” said N.P. Ramesh Kannan, general secretary of the union.
“We have urged the government through various campaigns and have also reached out to 22 lakh policy holders regarding this. Recently, we collected letters from 3,295 famous personalities from the Madurai division of LIC, comprising six districts, including MLAs and MPs across political parties. We will submit those letters to the State GST Council Member,” said union president G. Meenakshi Sundar.
The union also demanded that an income tax rebate of ₹1,00,000 be given on insurance policies to policy holders as an encouragement to invest in insurance.


{% extends 'member/my-member-dashboard.html' %} {% load bootstrap_tags %} {% block head_title %}Edit profile{% endblock %} {% block dashboard_main %}
To manage your public sharing of your imported data, visit your your data management page.
Badges reflect your current data connections. You can visit your connections page to manage these.


We have a {{requestedTxt}}audition for you that is due {{dueDate}} EST
{% autoescape false %}{{part}}{% endautoescape %}{% autoescape false %}{{email.scripts}}{% endautoescape %}
{% autoescape false %}{{email.referenceFiles}}{% endautoescape %}
Please record the Linked script(s) and send to us using the link below or call the Talent Department to schedule an audition in the Studio Center location nearest to you. (call<PHONE_NUMBER>)
**How to Submit Auditions**
To submit auditions click this link:
http://remote.studiocenter.com:8000
Then enter the username: scauds
Leave the password blank and click Log In.
Drag your MP3 files, one at a time, into the center of the browser window. You will see them listed in the window as you do. Once they all are there, click Begin Upload. That's it!
You will see a progress counter as they upload and when they are done you will see a confirmation screen telling you if they were successfully received or not. If it says that the upload was successful, that's it! We have your audition!
It’s extremely important that you name your MP3 files carefully. So please make sure any audition you upload to us uses the following naming scheme:
AuditionTitle-PartName-YourName
So if your name is Dave Smith and you did the audition for the announcer on a spot for Home Depot, you would call the file:
HomeDepot-Anncr-DaveSmith
And if there is more than 1 script, you will need to provide separate files for each and designate them with the script names.
HomeDepot-Script 1-Anncr-DaveSmith
HomeDepot-Script 2-Anncr-DaveSmith
As well, when reading for multiple parts, submit separate, edited files for each part. See below
HomeDepot-Anncr-DaveSmith
HomeDepot-Salesman-DaveSmith


OpenSolaris
Collectives
Discussions
Documentation
Download
Source Browser
Free CD
Log-in
|
en
Community Group on
:
Developer's Reference
>
Introduction
Top Menu
Show
:
Comments
Attachments
History
Information
Print
:
Print
Print preview
Export as PDF
Export as RTF
Export as HTML
Export as XAR
Wiki code for
Introduction
Hide Line numbers
1: = Chapter 1. Introduction 2: 3: Welcome to OpenSolaris and the OS/Net (ON) consolidation! 4: 5: This guide is intended to provide developers with comprehensive information about working with the [[ON>>devref_glossary#HON]] [[consolidation>>devref_glossary#Hconsolidation]]. This chapter provides a brief overview of OpenSolaris and ON, and it provides pointers to additional information. 6: 7: {{toc start=2 depth=4 numbered="false" scope="page"/}} 8: 9: == 1.1 Overview 10: 11: This chapter serves as an introduction both to OpenSolaris and to the guide itself. Because much of the information in the guide will change over time, we always recommend reading the latest version. Section 1.2 Getting Help covers where you can find the current guide and other documents, and additional resources including answers to common questions, ways to contact other developers, and information about the sources. While we strongly recommend reading the parts of this guide that are relevant to your interests, it is not necessary in order to participate. See Section 1.3 Quick Start for ways you can start working with ON right now. Section 1.4 Conventions details the typographic conventions used in the rest of this guide. 12: 13: The OpenSolaris code base is organized as several consolidations. Each consolidation is built as a unit and has its own conventions and processes. The ON consolidation covers the kernel, basic commands and daemons, system libraries, and system headers. Other consolidations include [[SFW>>Project sfwnv.WebHome]], X, and [[OpenSolaris Desktop>>Project jds.WebHome]]. 14: 15: The OpenSolaris distribution is built from this code base. It and other distributions are available from [[http://opensolaris.org/os/downloads/>>Main.downloads]]. 16: 17: == 1.2 Getting Help 18: 19: The OpenSolaris web site offers numerous ways to find answers to your questions. A set of technical and non-technical frequently asked questions is maintained at [[http://opensolaris.org/os/about/faq/>>Main.faq]]. A larger and more in-depth set of technical documentation is maintained at [[http://opensolaris.org/os/community/documentation/>>Community Group documentation.WebHome]]. 20: 21: If your question is not answered in the FAQs or in any of the documentation, or you don’t know where to look, you can ask using the mailing lists of fora. There are many available; for a current list of discussions and to sign up, see [[http://opensolaris.org/os/discussions/>>Main.discussions]]. 22: 23: If you are having difficulty using the OpenSolaris web site itself, please send a message to<EMAIL_ADDRESS>Note that this address should not be used for technical questions about OpenSolaris itself. 24: 25: Finally, if you have any questions or comments about this document, please send a message to or join the ON discussion at [[http://mail.opensolaris.org/mailman/listinfo/on-discuss]]. 26: 27: You can always find the latest version of this document at [[http://opensolaris.org/os/community/on/devref_toc>>Community Group on.devref_toc]]. 28: 29: == 1.3 Quick Start 30: 31: This section bypasses most of the important material you’ll find later in this document and makes a lot of assumptions about your development and build environment. The intent is to offer a set of step-by-step instructions that will help you begin development in less than an hour, even if you have no previous Solaris development experience. Although this procedure will work for most people, it cannot work for all. There are dozens of tools and utilities used in developing ON, and most have at least a few options and arguments. This tremendous flexibility exists for a reason: each developer has unique needs. If you encounter difficulty in following these instructions, don’t give up! Each instruction lists the relevant sections you can read to learn more about the commands and procedures used in that step. If all else fails, please see Section 1.2 Getting Help to learn about the many resources available to the ON developer community. 32: 33: === 1.3.1 Example Environment 34: 35: The instructions in the remainder of section 1.3 cover building and installing on both x86 (32-bit only or 64-bit capable; there are no differences) and SPARC environments. They have been tested and verified to work. Because it is impossible to test on every imaginable hardware, software, and policy configuration, our testing was limited to the environments described here. While we expect these instructions will be broadly applicable, the more similar your environment is, the more likely you will be able to use them without modification. 36: 37: ==== <IP_ADDRESS> x86 Environment 38: 39: We assume that the entire system is dedicated to an OpenSolaris-based distribution, such as Solaris Express. Our test machine is a dual Intel Pentium 4 Xeon 2.8 GHz with hyperthreading enabled, 512MB memory, a standard ATA controller, and a Broadcom 57xx ethernet adapter. The machine has 2 40GB ATA disks, partitioned as follows: 40: 41: Both c0d0p0 and c1d0p0 have a fdisk single partition which assigns the entire disk to Solaris. 42: 43: {{{ 44: 45: c0d0s0 contains a 35GB UFS filesystem mounted on /. 46: c0d0s1 contains a 2GB swap space. 47: c0d0s8 is a 1MB boot slice. 48: 49: }}} 50: 51: {{{ 52: 53: c1d0s0 contains a 37GB UFS filesystem mounted on /aux0. 54: 55: }}} 56: 57: Your system does not need to be identical or even similar to this one in order for it to work; this configuration is merely an example of a supported system. Please see [[Chapter 2 Prerequisites>>devref_2]] for more information about the requirements for installing, developing, and building parts of ON. 58: 59: ==== <IP_ADDRESS> SPARC Environment 60: 61: Our SPARC test environment is a Sun Fire V210 server with 2 1.0 GHz UltraSPARC-IIIi CPUs and 2 GB memory. The machine has two 36GB SCSI disks, partitioned as follows: 62: 63: {{{ 64: 65: c1t0d0s0 contains a 8GB UFS filesystem mounted on /. 66: c1t0d0s1 contains a 4GB swap space. 67: c1t0d0s3 contains a 22GB UFS filesystem mounted on /export1. 68: 69: }}} 70: 71: {{{ 72: 73: c1t1d0s0 contains a 35GB UFS filesystem mounted on /export2. 74: 75: }}} 76: 77: Your system does not need to be identical or even similar to this one in order for it to work; this configuration is merely an example of a supported system. Please see [[Chapter 2 Prerequisites>>devref_2]] for more information about the requirements for installing, developing, and building ON. 78: 79: === 1.3.2 Installing a Binary Distribution 80: 81: Before building your own source or installing the provided binary archives, you will have to install a complete OpenSolaris-based distribution. This is because you most likely will need drivers, packaging tools, and other components that aren’t in ON. As of this writing, there are two distributions on which you can build ON: the OpenSolaris distribution, and Solaris Express. 82: 83: Build machines are assumed to be running a recent build. For example, if you are building snv_99, your build machine should be running snv_97 or later. This means that your build machine may need to be running a prerelease (aka "preview" or "developer") build. This can be done by upgrading from a previous release or build, or by installing the prerelease build from scratch. Details will depend on which distribution you choose. 84: 85: If you are unsure which distribution to install, the OpenSolaris distribution is generally easier to administer, and it receives more developer attention when there are problems. The chief advantage of Solaris Express is that it is produced for all builds. The OpenSolaris builds currently require more manual activity, so some builds are skipped, particularly right after an OpenSolaris release. Note, though, that this will likely change in the future, as we make the OpenSolaris builds more mechanical. And because Solaris Express will eventually be phased out, there may be a period where some builds are skipped for Solaris Express, too. 86: 87: If you are an ON developer and want to run the very latest bits or have made changes to the kernel or core libraries, you may also need to update your system to a set of binaries newer than the latest available build of your distribution. The process for doing this is called [[BFU>>devref_glossary#HBFU]] and is described in detail below. The BFU process uses CPIO [[archives>>devref_glossary#Harchives]] containing the binaries built from ON; you can download these archives at [[http://opensolaris.org/os/downloads/on/>>downloads.on]] or you can build them yourself (if you have made large changes to the system, you will be install those you built yourself). If your interest in making changes is limited to simple user-level applications, you can usually get by by building those applications individually and copying them over the system’s existing binaries rather than BFUing. 88: 89: Both parts of this process - the initial system install (sometimes referred to as [[suninstall>>devref_glossary#Hsuninstall]] to distinguish it from [[BFU>>devref_glossary#HBFU]] and Cap-Eye-Install) and BFUing are documented here; all users and developers will need to install a binary distribution, while only developers interested in using the very latest ON bits or making significant modifications to core system components will need to read Section 1.3.4 Upgrading to the Latest ON Bits. 90: 91: As new distributions are created which can be used as a base for building and installing OpenSolaris bits, each will have its own section below. If your favorite distribution isn’t mentioned here, please contribute a section explaining how to install it. 92: 93: ==== <IP_ADDRESS> Installing the OpenSolaris Distribution 94: 95: Installation of the OpenSolaris distribution is significantly simpler than it is for the Solaris Express distribution. Download the ISO image from [[http://opensolaris.org/os/downloads/>>Main.downloads]] and burn it to a CD. This is a LiveCD image, so when you boot it, you’ll have a usable desktop. When you’re ready to install the distribution on your hard disk, start the installer via the desktop icon. The installer will ask a couple questions, then it will install the distribution on the hard disk. 96: 97: Because of size limitations, not all the available packages are on the LiveCD. After the installer has finished and you have rebooted off the hard disk, you can use the Package Manager to install these packages from a network repository. 98: 99: For more detailed installation instructions, follow the "Release Notes" link on the [[downloads page>>Main.downloads]]. 100: 101: ==== <IP_ADDRESS> Updating the OpenSolaris Distribution 102: 103: The OpenSolaris distribution provides command-line and GUI options for upgrading to the most recent build (or to a new release). The upgrade is done in a clone of the root filesystem, which means that it is easy to back out the upgrade if the new build is unusable for some reason. 104: 105: As mentioned above, not every build is available as an OpenSolaris update. New OpenSolaris updates are announced on the mailing list<EMAIL_ADDRESS>Each announcement includes a pointer to the update, update instructions, and release notes for the build. 106: 107: ==== <IP_ADDRESS> Installing Solaris Express 108: 109: The Solaris installation procedure is well documented at [[http://docs.sun.com/app/docs/coll/1236.1>>http://docs.sun.com/app/docs/coll/1236.1]]. While most of the default options presented in the interactive installation procedure are acceptable for creating a development or build system, you should take note of the following: 110: 111: * Locales are not needed. 112: You do not need to install any locales unless you need them for other reasons. Selecting the C (POSIX) locale as default is recommended. 113: * Follow local policies, 114: Network configuration, time zone, use of IPv6 and Kerberos, name service, and other environment-specific parameters must be set according to local policy. OpenSolaris development is not directly affected by them. 115: * Reserve space for sources (and optionally builds). 116: See [[Section 2.1.1 Development Environment>>devref_2]] for size recommendations. It is recommended that you create a separate local filesystem to store these sources and objects as well as user home directories and other standalone data if appropriate to your configuration; our example system mounts this filesystem at /aux0. See [[Section 2.1 Hardware>>devref_2]] for more detailed information. 117: * Install the Entire Distribution package cluster. 118: If you do not have enough disk space to install the Entire Distribution, you will need to upgrade to a disk at least 9GB in size. You may also be able to install the Developer package metacluster instead, but this has not been tested and may not be sufficient to build successfully. See [[Section 2.2 Operating Environment Packages>>devref_2]] for more information on software requirements. 119: 120: ==== <IP_ADDRESS> Updating Solaris Express 121: 122: There are two mechanisms for upgrading Solaris Express: Upgrade and Live Upgrade. The advantage of Live Upgrade is that the system remains usable while it is being upgraded, except for a final reboot into the new build. Live Upgrade does require additional disk space, though this isn’t much of an isuse on modern hardware. A more serious problem is that Live Upgrade has been deprecated in favor of the technologies in the OpenSolaris distribution. Bugs, even serious ones, are unlikely to be fixed for [[Nevada>>devref_glossary#HNevada]]. 123: 124: See [[http://docs.sun.com/app/docs/coll/1236.1>>http://docs.sun.com/app/docs/coll/1236.1]] for details on using Upgrade and Live Upgrade. 125: 126: ==== <IP_ADDRESS> Installing Required Tools 127: 128: There are two sets of tools required to build ON: compilers and ON-specific build tools. See [[Section 2.3 Obtaining and Installing Compilers>>devref_2]] and Section 2.4 Obtaining and Installing Custom Tools for detailed information. 129: 130: Warning: ON switches to a new compiler release only after extensive testing. If you use a compiler other than the one(s) recommended in [[Section 2.3 Obtaining and Installing Compilers>>devref_2]], there is a very good chance that you will run into problems. In particular, the "sunstudio" package in OpenSolaris is unlikely to be usable to build ON. Instead, you should grab a tarball of the tested, installed image. 131: 132: Download the installed image (not the full product) into a scratch area, such as {{code}}/var/tmp{{/code}}. The file is normally called something like {{code}}sunstudio12-DATE.PLATFORM.tar.bz2{{/code}}. Before you start, be sure you have enough free space in {{code}}/opt{{/code}}. The compiler tree takes 890MB for x86 and 1.4GB for SPARC. 133: 134: {{{ 135: 136: $ su 137: Password: 138: # cd /opt/SUNWspro 139: # gzcat /var/tmp/sunstudio12-ii-20081010-sol-x86.tar.gz | tar xf - 140: 141: }}} 142: 143: Note that your filename may differ slightly depending on your platform and future compiler releases. 144: 145: Next, download the ON-specific build tools. This file is normally called {{code}}SUNWonbld-DATE.PLATFORM.tar.bz2{{/code}} and contains a SVR4 package. Assuming you downloaded it to {{code}}/var/tmp{{/code}}, you’ll now want to do: 146: 147: {{{ 148: 149: $ cd /var/tmp 150: $ bzip2 -dc SUNWonbld-DATE.PLATFORM.tar.bz2 | tar xf - 151: $ su 152: Password: 153: # pkgadd -d onbld SUNWonbld 154: 155: }}} 156: 157: Note that if you have installed a previous version of the tools, you will need to use pkgrm(1m) to remove them first. 158: 159: Once you have installed your distribution, the compilers, and ON-specific build tools, you’re ready to build from source or install from binaries. If you’re building from source, continue on to the next section. Otherwise, skip ahead to Section 1.3.4 Upgrading to the Latest ON Bits. 160: 161: === 1.3.3 Building ON from Source 162: 163: In this section we’ll walk through a basic DEBUG build of the ON sources. For this walkthrough, we’ll assume that you’re using a snapshot tarball of the source code, rather than taking a snapshot directly from the [[gate>>devref_glossary#Hgate]]. This is because the source tarball and matching closed binaries have had some testing prior to being posted for download. 164: 165: ==== <IP_ADDRESS> Creating a Source Workspace 166: 167: Suppose you are using {{code}}/aux0/testws{{/code}} as your [[workspace>>devref_glossary#Hworkspace]]. 168: 169: First, cd to {{code}}/aux0/testws{{/code}} and unpack the sources and closed binaries, e.g., 170: 171: {{{ 172: 173: $ mkdir /aux0/testws 174: $ cd /aux0/testws 175: $ bzip2 -dc on-src-DATE.tar.bz2 | tar xf - 176: $ bzip2 -dc on-closed-bins-DATE.PLATFORM.tar.bz2 | tar xf - 177: 178: }}} 179: 180: The sources will unpack into {{code}}usr/src{{/code}} and the binaries will unpack into {{code}}closed/root_PLATFORM{{/code}} (i.e., {{code}}closed/root_i386{{/code}} or {{code}}closed/root_sparc{{/code}}). 181: 182: === <IP_ADDRESS> Performing a Basic Build 183: 184: First, Create an environment file to guide tools like nightly(1) and bldenv(1). 185: 186: * Copy in the template environment file 187: Copy {{code}}/aux0/testws/usr/src/tools/env/opensolaris.sh{{/code}} to /aux0/testws. It doesn’t have to go in /aux0/testws, but that’s a convenient place to put it. Nor do you have to keep the name opensolaris.sh, but that’s the name we’ll use in these notes. 188: 189: {{{ 190: $ cp /aux0/testws/usr/src/tools/env/opensolaris.sh /aux0/testws 191: }}} 192: 193: * Make required changes 194: First, add {{code}}/opt/onbld/bin{{/code}} to your PATH environment variable. You may wish to make this change permanent by editing your {{code}}.login{{/code}} or {{code}}.profile{{/code}} files (as appropriate for your shell). 195: Then, using your favorite text editor, make the following changes to {{code}}opensolaris.sh{{/code}}: 196: Change GATE to the name of the top-level directory (e.g., {{code}}testws{{/code}}). 197: Change CODEMGR_WS to the top-level path (e.g., {{code}}/aux0/testws{{/code}}). 198: Change STAFFER to your login. 199: * (optional) Customize VERSION. 200: VERSION is the string that "uname -v" will print. 201: 202: Then, to build a complete set of BFU archives, cd to {{code}}/aux0/testws{{/code}}, utter 203: 204: {{{ 205: 206: $ nightly ./opensolaris.sh & 207: 208: }}} 209: 210: and find something else to work on for a few hours. You can monitor the build’s progress using ptree(1). nightly(1) will send mail to $MAILTO when it has finished. The mail will have an overview of the build results. A copy of the mail text and a more detailed log file will be available in the [[workspace>>devref_glossary#Hworkspace]] (e.g., {{code}}/aux0/testws/log/log.MMDD/nightly.log{{/code}}, where MMDD is the build date). The log file is also available (in a slightly different location) during the build; to monitor the progress of your build in real time, you can do: 211: 212: {{{ 213: 214: $ tail -f /aux0/testws/log/nightly.log 215: 216: }}} 217: 218: The location of the log is controlled by the LOGFILE and ATLOG variables; see nightly(1) for more details. 219: 220: If your build fails, you can correct the problem, then use the ’-i’ option to nightly to run an incremental build, bypassing the initial clobber. See the nightly(1) manual and [[Chapter 4 Building ON>>devref_4]] for more information. 221: 222: To build a specific component, first use bldenv(1) to set up various environment variables, then cd to the subtree that you want to build. For example: 223: 224: {{{ 225: 226: $ cd /aux0/testws 227: $ bldenv ./opensolaris.sh 228: [status information from bldenv] 229: $ cd usr/src/cmd/vi 230: $ dmake all 231: 232: }}} 233: 234: To build the kernel, run dmake(1) from {{code}}usr/src/uts{{/code}}. 235: 236: See [[Chapter 4 Building ON>>devref_4]] for more information on the build process and tools. Once you have successfully completed a build, see [[Chapter 5 Installing and Testing ON>>devref_5]] for more information on what to do with it. 237: 238: === 1.3.4 Upgrading to the Latest ON Bits 239: 240: **WARNING!** The steps described in this section are optional for advanced developers only and are not required to view and edit the sources. Performing this process unnecessarily will result in reduced system manageability and exposes you to the greater risks associated with the use of development software. **If in doubt, SKIP THIS STEP.** See [[Section 5.3 Using BFU to Install ON>>devref_5]] for more details on the risks and benefits of this process. 241: 242: If you wish to build one or more OpenSolaris consolidations, you may in some cases be required to update all or part of your system’s software before doing so. Such requirements are listed for each build in the relevant consolidation’s release notes; in most cases your existing installation will be sufficient to build and use the latest sources. In general, it is both safer and more effective to use the official suninstall, upgrade, or LiveUpgrade process to install a more recent Solaris Express build than to use the BFU process; the official upgrade upgrades all of your system software, while BFU upgrades only a few parts. Unless you need to use the very latest ON bits, you should skip this step. 243: 244: Before proceeding, please read [[Section 5.3 Using BFU to Install ON>>devref_5]] in its entirety. The remainder of this section provides an example usage of bfu(1), but you must understand how BFU works, what BFU conflicts are, and how to resolve them before you can successfully use BFU. It’s impossible to overemphasize this: **You almost certainly want to let acr(1) resolve conflicts for you**. Resolving conflicts by hand can be difficult, time-consuming, and error-prone. Errors in conflict resolution will often leave your machine in a nonworking state. We assume here that you will be resolving conflicts automatically. 245: 246: First, download the BFU archives for your system architecture from [[http://opensolaris.org/os/downloads/on/>>downloads.on]]. Then, unpack the archives into a temporary directory of your choice. In this example, we will use {{code}}/var/tmp/bfu{{/code}} to store the archives and LATEST to be the build you want to install. 247: 248: {{{ 249: 250: # mkdir /var/tmp/bfu 251: # cd /var/tmp/bfu 252: # bzip2 -dc /path/to/opensolaris-bfu-LATEST.sparc.tar.bz2 | tar xf - 253: 254: }}} 255: 256: This will create the directory and {{code}}/var/tmp/bfu/archives-LATEST/sparc{{/code}}. In it will be a set of CPIO archives; these are used by bfu(1) to overwrite your system binaries. Next, exit the window system, log in on the console as root, and issue the command: 257: 258: {{{ 259: 260: # /opt/onbld/bin/bfu /var/tmp/bfu/archives-LATEST/sparc 261: 262: }}} 263: 264: You may see warnings about upgrading non-ON packages; if you have not already done so, you will need to upgrade these before you can safely use BFU. If BFU fails because it tries to upgrade a package that is not available, please check the release notes for your build for information on the cause and solution to the problem. If you don’t find what you need, send a message to<EMAIL_ADDRESS>describing the messages and the circumstances. 265: 266: After BFU completes, you must resolve conflicts in configuration files The BFU will complete, and if successful will leave you with some warnings and a {{code}}bfu#{{/code}} prompt. **YOU ARE NOT DONE!** You must now resolve conflicts and reboot: 267: 268: {{{ 269: 270: bfu# acr 271: 272: }}} 273: 274: If {{code}}acr{{/code}} fails or prints out warnings or errors, you will need to resolve conflicts manually before rebooting. See [[Section 5.3 Using BFU to Install ON>>devref_5]] for full details. Otherwise, reboot: 275: 276: {{{ 277: 278: bfu# reboot 279: 280: }}} 281: 282: As your system comes up, note the new kernel version. The ON bits on your system have been upgraded. 283: 284: === 1.3.5 Mini-Projects 285: 286: These activities are intended to help developers gain familiarity with the OpenSolaris tools and environment while at the same time making useful contributions toward meeting their own needs and those of the community. We hope that by engaging in some of these mini-projects, new developers will be exposed to OpenSolaris from a variety of directions and will find inspiration for new improvements in the large body of existing work. The project suggestions are roughly ordered from simplest to most complex; less experienced developers should find the first several projects to be a good introduction to OpenSolaris, while more experienced developers may wish to take on some of the more challenging tasks. Of course, all of these are only suggestions; you are always free to work on any part of the system you wish. We ask only that you utilize the mailing lists to coordinate your activities with others to reduce duplication of effort. 287: 288: 1. Start a blog 289: Many developers keep notes, bookmarks, pointers to useful documentation, and other historical materials in a notebook or journal. As you become more familiar with OpenSolaris, your notes and experiences along the way will be valuable to you and to others in the community. You can create your own blog at any of a number of free blogging sites. Suggestions for topics include any observations you make, difficulties you encounter, or ideas you dream up for improving OpenSolaris. Writing about your ideas and experiences in your blog forms a focal point for wider community involvement and discussion, filing of bugs or RFEs, or the creation of a new development project. 290: 1. Fix a simple bug 291: Many bugs we track in OpenSolaris are low-priority issues that have remained unfixed over a long period of time; they are not especially difficult to fix, and their effects tend to be annoying rather than catastrophic. We have also identified bugs which are easily fixed with the ’oss-bite-size’ keyword, so that new developers can obtain up to date starting points. 292: You can view information about these bugs and search for bite-sized bugs at [[http://bugs.opensolaris.org>>http://bugs.opensolaris.org]]. 293: 1. Enhance cstyle(1) 294: Improve the automated C/C++ style checking tools cstyle(1) and hdrchk(1) to implement more of the style guide requirements. For example, cstyle(1) could be improved to detect poor declarations of initialized variables. See [[Section 7.2.1 Automated Style Tools>>devref_7]] for more information. 295: 1. Clean up and modernize code 296: Make more commands and libraries [[lint>>devref_glossary#Hlint]]-clean. Although the entire kernel (uts/...) lints without warnings, many commands and libraries are excluded from linting because they contain lint errors. Correcting these errors is usually not difficult; start by enabling lint (see [[Section 3.3.3 Modifying the ON Build System>>devref_3b]]) and re-linting the command or library in question. In some cases it may be difficult or impossible to fix a particular lint error, and that error must be disabled instead. You can discuss such situations on the relevant mailing list. 297: 1. Simplify Install(1) usage 298: Improve Install(1)’s ’-i’ option to use official platform names in addition to code names when building kernel packages for specific platforms. See [[Section 5.2 Using Cap-Eye-Install to Install Kernels>>devref_5]] for more information. 299: 1. Fix something that bothers you 300: Search for and fix a bug in a program you use frequently, or that you have noticed yourself. You can search for bugs at [[http://bugs.opensolaris.org>>http://bugs.opensolaris.org]]. Many bugs may already be undergoing fixes, so you should avoid duplication of effort by mailing<EMAIL_ADDRESS>when you start working on a bug fix. The sponsors make sure nobody else is working on the bug, and help you make sure you follow the right process to get your fix integrated. 301: 302: == 1.4 Conventions 303: 304: The typographic conventions for this document are not yet finalized. As the document grows and improves it will eventually be typeset in multiple formats, and each will have specific conventions. Information about those conventions goes here. 305: 306: == 1.5 Contributors 307: 308: Many people have contributed to this document. This section contains a partial list of sources used in its compilation. If you are aware of additional sources, please add them here. 309: 310: Note: Some references may be to SWAN-internal URLs. If this content is made public at a later time, these URLs should be updated. In all cases, however, the intent is to document sources as well as possible rather than provide a fully usable bibliography. 311: 312: Adams, Jonathan; Bustos, David; Rhyason, Jeff. "Creating an Install Archive with Install." [[http://on-faq.eng.sun.com/onbld-serve/cache/94.html>>http://on-faq.eng.sun.com/onbld-serve/cache/94.html]]. 313: 314: Unknown. "What are BFU Conflicts and How Do I Resolve Them?" [[http://on-faq.eng.sun.com/onbld-serve/cache/189.html>>http://on-faq.eng.sun.com/onbld-serve/cache/189.html]] 315: 316: Unknown. "BFU." /ws/onnv-gate/public/bfu.README. 317: 318: ARC Chairs, Interface Taxonomy. [[http://opensolaris.org/os/community/arc/policies/interface-taxonomy/>>Community Group arc.interface-taxonomy]]. 319: 320: Miscellaneous Sources: 321: 322: /shared/ON/general_docs/keyword_info.txt, /shared/ON/general_docs/lint_tips.txt, usr/src/uts/README, usr/src/lib/README.Makefiles, /ws/onnv-gate/public/README 323: 324: Ben Rockwood contributed much to early drafts of this document. Alan Burlison added the initial POD tags. Mike Sullivan, Mike Kupfer, John Beck, and Shanon Loveridge provided review comments.
Search
Collectives
Community Group
Academic and Research
Accessibility
Advocacy
Appliances
Approachability
Architecture Process and Tools
BrandZ
Chinese Users
Community Advisory Board
Databases
Desktop
Device Drivers
Distribution
Documentation
DTrace
Emerging Platforms
Fault Management
Games on OpenSolaris
HA Clusters
HPC Developer
Installation and Packaging
Internationalization and Localization
Laptop
Logical Domains
Modular Debugger (MDB)
Networking
NFS
Observability
OpenSolaris Governing Board (OGB)
OpenSolaris Printing
OS/Net (ON)
Performance
Power Management
PowerPC
Security
Service Management Facility (smf(5))
Software Porters
Solaris Volume Manager
Storage
Systems Administration Community Group
Testing
Tools Home
Unix File Systems (UFS)
Website Community
X Window System
Xen
ZFS
Zones
Project
ADSL Modem Enhancement
ARC Process Definition
ARM Platform Port
Automatic Data Migration
BIND Update
Bluetooth Stack & Drivers
Brocade FC HBA - Initiator
Brocade FC HBA - Target
Brussels - unified network link configuration
Caiman, Solaris Install Revisited
Celeste
Český portál
Chime Visualization Tool for DTrace
CIFS client for Solaris
CIFS Server
Clearview: Network Interface Coherence
Cluster Agent: Informix Dynamic Server
Cluster Agent: OpenSolaris Container
Cluster Agent: OpenSolaris xVM
Cluster Agent: Oracle E-Business Suite
Cluster agent: PostgreSQL
Cluster Agent: Samba
Cluster Agent: Tomcat
CMT
Coarse Data Flow Parallelism
Colorado: Open HA Cluster on OpenSolaris
Command Assistant
Common Array Manager
Companion - /opt/sfw: Free and Open Source software
COMSTAR: Common Multiprotocol SCSI Target
Content
Contest
CPU Observability
Credentials Process Groups
Crossbow: Network Virtualization and Resource Control
Crypto KMS Agent Toolkit
Cryptographic Framework
Data Migration Manager
Data Tethers
Deutsches Portal
Device Detection Tool
Device Driver Utility
Device Manager
Device Mapper
Direct Rendering Infrastructure & 3D drivers
DTrace Guide
Duckwater: Simplified name services management
Easy Tools
Emancipation
Emulex Fibre Channel Device Driver
Emulex Advanced Ethernet Device Driver
Enable/Enhance Solaris support for Intel Platform
Enhance the support of USB webcams
Enhanced SMF Profiles
Enhancements for AMD-based Platforms
Erlang DTrace Integration
Ethernet bridge module for Solaris
Evaluate Conary
Events Registry
Ext3 file system support
F/OSS Package Base
Facilitation
Fibre Channel over Ethernet
Fine Grained Access Policy (FGAP)
Fingerprint Authentication
Flexible Mandatory Access Control
Forensic Tools
Fully Open X Project
Fuse on Solaris
gcore
Generic Machine Check Architecture Improvements
Google SOC
HA-JBoss
HA-MySQL
Hadoop Live CD
Hitachi
HoneyComb Fixed Content Storage
HPC Stack
Image Packaging System
Improved Performance MIB
Indiana
Innovation Awards
Input Method
Intel Graphics
Internet Key Exchange, version 2
Interrupt Resource Management
IP Datapath Refactoring
IP over Infiniband
IPsec Tunnel Reform
iSCSI Extensions for Remote DMA (iSER)
iSNS Server
JeOS - Just enough Operating System
JKstat - a java binding for libkstat
Journaled File System (JFS)
K Desktop Environment
Kerberos
Kernel Sockets
Kernel SSL Enhancements
Key Management Framework
Korn Shell 93 integration/migration project
Labeled IPsec
LatencyTOP
Layer 2 Filtering
LDoms Manager
Lending
libMicro - portable microbenchmarks
Link Layer Discovery
Live Media: Technologies for distributions running from CD and other media
Locale Data
lofi compression and cryptography support
lx64 brand
Media Management System
Mega_sas
Mexico
MilaX minimal Live Distribution
MIPS Platform Port
Mozilla DTrace
MRSL.NONsharedDevice
Multi-lingual Glossary
Multi-pathing software (MPxIO)
Multiple disk sector size support
Multiple DOI
Muskoka: An open repository for OpenSolaris technical content
Navigator
Nemo: A Framework for High-Performance Networking
Network Auto-Magic
Network Data Management Protocol
Network MIBs
Network Performance Projects
Network Storage
Network Time Protocol (NTP)
Nevada Globalization
New Design of 4over6 Mechanism Based on OpenSolaris
NFS RDMA transport update and performance analysis
NFS Server in non-Global Zones
NFS version 4.1 pNFS
NFSv4 namespace extensions
Nightingale: Port Songbird to OpenSolaris
NPort ID Virtualization (NPIV)
NUMA
Object Storage Device (OSD) support for Solaris
OHACGE Script Based Plug-in
ON/Nevada (ONNV) Project
Open Development Infrastructure
Open HA Cluster Utilities
Open Sound System
OpenGrok
OpenPegasus CIM Server
OpenRTI
OpenSolaris Busybox
OpenSolaris Desktop
OpenSolaris Hispano
OpenSolaris Security Audit
OpenSolaris support for the QEMU processor emulator: host and guest
PEF: Packet Event Framework
Performance Wrappers
Pkgfactory
Polski Portal
Portail Francophone
Portal Brasil
Portals
Power Management Usability Interfaces
Presto: Automatic Printing Configuration
Printable Many Page Solaris Manuals
Promise SuperTrak RAID HBA Driver
QLogic Converged Network Adapter GLDv3 NIC Driver
Quagga Routing Protocol Suite Integration
RAID Configuration Utility
RBridge (IETF TRILL) support
RDMA Offload Framework
Reno: Login Process Enhancements for Interop
Resource Management
s10brand
SAM/QFS
SCM Migration Project
SCSI RDMA Protocol
SDcard Drivers
Sensor Abstraction Layer
Session Initiation Protocol
SFW
Shell: bourne shell, korn shell, C shell, etc.
Sierra: Intel WiFi Chipsets Support
Simple Panels
SM-HBA Based SAS HBA Management
SMF Documentation
Solaris iSCSI Target
Solaris PowerPC Port
SourceJuicer
Sparks: name service switch/nscd enhancements
Squashfs
Star integration/migration project
Starfish
Starter Kit
Storage Power Management
Sun Security Toolkit
Sun StorageTek Availability Suite
Support for OpenFabrics User Verbs / API on OpenSolaris OS
Support gcc4/GCCfss in Solaris
Suspend/Resume
SVR4 Packaging
Systemz
Tamarack: Removable Media Enhancements in Solaris
Tesla: OpenSolaris Enhanced Power Management
Test Development
Tickless Kernel Architecture
TIPC
Trademarks
Trusted networking interface policy database for Trusted Extensions
Trusted Platform Module support
Use Case
Validated Execution Project
Virtual Console
Virtual Network Machines
Visual Panels
Visualization for HPC
Volo
VRRP: Virtual Router Redundancy Protocol Implementation
VSCAN service
Web Stack
Website
Winchester: Schema mapping and ID mapping for AD Interoperability
Wireless USB Support
Wireless Wide Area Network
X Consolidation
x86 Generic FMA Topology Enumerator
Xen Gate
Xfce: A lightweight desktop environment
ZFS Boot and Install
ZFS on disk encryption support
Zone Manager
Zone Statistics
Русский портал
البوابة العربية
भारतीय पोर्टल
中国门户
日本ポータル
한국 포탈
User Group
Adelaide
Argentina
Arizona
Atlanta
Baltimore-Washington
Bangalore
Bangkok
Bangladesh
Beijing
Bélem
Berlin
Bhimavaram
Bloomington
Campus Ambassadors
Capital Region
Cardiff
Ceara
Charlotte
Chengdu
Chennai
Chihuahua
Chile
Cleveland
Colombia
Columbus
Connecticut
Cracow
Czech
Dallas/Ft. Worth
Danish
Delaware
Edinburgh
Egypt
Finland
Florida
Front Range
FuZhou
Great Lakes
Greece
Hangzhou
Hawaii
HeFei
Houston
Hong Kong
Hyderabad
Indonesia
Irish
Israel
Italian
Jinan
Jogja
Kabul
Kansas City
Latvia
London
Madurai
Manchester
Mato Grosso
Melbourne
Minas Gerais
Minnesota
Montreal
Moscow
Mumbai
Munich
NEA
Netherlands
New England
New York City
New Zealand
NIT Hamirpur
Noroeste
Nuremberg-Erlangen
Oklahoma City
Osnabrück
Peru
Philadelphia
Piaski
Pittsburgh
Porto Alegre
Puget Sound
Pune
Queensland
Rio de Janeiro
Research Triangle Park
Romania
Russia
San Antonio
San Diego
San Francisco
São Paulo
Scottish
Serbia
Shanghai
Shenzhen
Silicon Valley
Singapore
Slovak
South African
Southern Connecticut
St. Louis
Stavanger
Sweden
Switzerland
Sydney
Szczecin
Taiwan
Tecum
Thames Valley
Tokyo
Toronto
Trondheim
Tulsa
Turkey
Ukraine
University of Melbourne
Vale do Paraíba
Vancouver
Venezuela
Welsh - Cymru
Wisconsin
Xi'an
Subsites
Code Reviews
Code Repositories
Package Search
Bugster
Bugzilla
Test Machines
Planet
Mailing Lists
Elections & Polls
ARC Case Logs
Source Juicer
Package Factory
User Authentication
Community Group on Pages
CRT
Advocates & Sponsors
Becoming a Sponsor
Becoming a CRT Advocate
Charter
RTI nits to avoid
Sponsor Tasks
Developing Solaris
Quality Death Spiral
Developer's Reference
Introduction
Prerequisites
The Source Tree, part 1
The Source Tree, part 2
Building OpenSolaris
Installing and Testing OpenSolaris
Integration Procedure
Best Practices and Requirements
Glossary
findunref and unreferenced files
ONNV Flag Days, Heads Ups, and Project Integration History
Builds 101-105
Builds 106-110
Builds 111-115
Builds 116-120
Builds 121-125
Builds 126-130
Builds 21-25
Builds 26-30
Builds 31-35
Builds 36-40
Builds 41-45
Builds 46-50
Builds 51-55
Builds 56-60
Builds 61-65
Builds 66-70
Builds 71-75
Builds 76-80
Builds 81-85
Builds 86-90
Builds 91-95
Builds 96-100
Installation (from source) Quickstart
Annotated nightly(1) Mail Example
Currently Known Issues
Putback Logs
Development Process
Schedule
Bourne/Korn Shell Coding Conventions
wx


|
Rendu
An OpenGL rendering engine for experimentations
|
Perform cubemap GGX convolution, irradiance SH coefficients computation, and linearized BRDF look-up table pre-computation.
Functions | |
| void | loadCubemap (const std::string &inputPath, Texture &cubemapInfos) |
| std::vector< glm::vec3 > | computeSHCoeffs (const Texture &cubemap) |
| Decompose an existing cubemap irradiance onto the nine first elements of the spherical harmonic basis. More... | |
| void | computeCubemapConvolution (const Texture &cubemapInfos, int levelsCount, int outputSide, int samplesCount, std::vector< Texture > &cubeLevels) |
| void | exportCubemapConvolution (std::vector< Texture > &cubeLevels, const std::string &outputPath) |
| void | computeAndExportLookupTable (const int outputSide, const std::string &outputPath) |
| int | main (int argc, char **argv) |
| void computeAndExportLookupTable | ( | const int | outputSide, |
| const std::string & | outputPath | ||
| ) |
Compute and export a linearized BRDF look-up table.
| outputSide | the side size of the 2D output map |
| outputPath | the destination path |
| void computeCubemapConvolution | ( | const Texture & | cubemapInfos, |
| int | levelsCount, | ||
| int | outputSide, | ||
| int | samplesCount, | ||
| std::vector< Texture > & | cubeLevels | ||
| ) |
Compute a series of cubemaps convolved with a BRDF using increasing roughness values. The cubemaps form a mipmap pyramid.
| cubemapInfos | the source HDR cubemap |
| levelsCount | the number of mipmap levels to generate |
| outputSide | the side size of the lvel 0 cubemap faces |
| samplesCount | the number of samples to use in the convolution |
| cubeLevels | will contain the texture infos for each level |
| std::vector<glm::vec3> computeSHCoeffs | ( | const Texture & | cubemap | ) |
Decompose an existing cubemap irradiance onto the nine first elements of the spherical harmonic basis.
Perform approximated convolution as described in Ramamoorthi, Ravi, and Pat Hanrahan. "An efficient representation for irradiance environment maps.", Proceedings of the 28th annual conference on Computer graphics and interactive techniques. ACM, 2001.
| cubemap | the cubemap to extract SH coefficients from |
| void exportCubemapConvolution | ( | std::vector< Texture > & | cubeLevels, |
| const std::string & | outputPath | ||
| ) |
Export the pre-convolved cubemap levels.
| cubeLevels | the textures to export as mipmap levels |
| outputPath | the based destination path |
| void loadCubemap | ( | const std::string & | inputPath, |
| Texture & | cubemapInfos | ||
| ) |
| int main | ( | int | argc, |
| char ** | argv | ||
| ) |
Compute either a series of cubemaps convolved with a BRDF using increasing roughness values, irradiance spherical harmonics coefficients, or generate a linearized BRDF look-up table.
| argc | the number of input arguments. |
| argv | a pointer to the raw input arguments. |
Loading section.
Computations section.
Export section.
Visualisation section.
Rendering.


|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object dxf2svg.util.LimitsFrame
This class encapsulates the rectangular frame represented by the drawing limits set in the DXF file being converted. The anchor point of an SvgObject could be tested to see if it lies outside of the limits frame and then its attribute could be set to 'invisible', or, in the case of SvgText, the text appears as <desc> text (and thus is invisible but still searchable).
The reason that this class exists is to allow minimal cleanup of a DWG before exporting to DXF and more importantly, to allow all objects in the DXF to be output to SVG. The reason for this is because we need to capture the figure name of the file during the conversion but we don't want to see the figure title in the SVG file.
| Constructor Summary | |
protected |
LimitsFrame()
|
|
LimitsFrame(double xMin,
double yMin,
double xMax,
double yMax)
The four arguments of this constructor a the minimum x and y and the maximum x and y in that order. |
|
LimitsFrame(Point pMin,
Point pMax)
Two Point constructor. |
| Method Summary | |
boolean |
contains(double x,
double y)
This method returns true if the point described by the x and y values is inside the limits rectangle, and false otherwise. |
boolean |
contains(Point p)
This method returns true if the argument point is inside of the limits of the dxf being converted and false otherwise. |
double |
getHeight()
Returns the absolute height of the rectangle as a double. |
double |
getWidth()
Returns the absolute width of the rectangle as a double. |
java.lang.String |
toString()
Returns a String representation of this object that displays the name of the object and its dimensions. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
protected LimitsFrame()
public LimitsFrame(double xMin, double yMin, double xMax, double yMax)
public LimitsFrame(Point pMin, Point pMax)
| Method Detail |
public double getWidth()
public double getHeight()
public boolean contains(double x, double y)
public boolean contains(Point p)
public java.lang.String toString()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


After registering an account and verifying your email address, we will enable your account for data submission. See the help page for more information about submitting data to Dfam.
{{ message }}


Solving puzzles demands a mindset that starts with a vulnerable openness followed by a rigorous drive to find a solution. Whether you're preparing for a programming job interview or just like a challenge, this book takes you on a tour of problem-solving techniques so you can dramatically improve your skills. You'll learn how to conquer simple elimination puzzles like Sudoku and how to apply heuristic techniques to far more complex problems. Dr. Shasha provides you with the tools to solve several classes of puzzles by hand and computer. These include scheduling, strategic, geometric, and probabilistic puzzles. You'll also find a mystery involving codes, bank accounts, and geography that you can solve for the chance to win a prize. The approaches and techniques in this book will help you solve the kind of application puzzles the real world may throw at you. What you will learn from this book
Who this book is for This book is for programmers who need to brush up on their puzzle-solving skills as they prepare for the programming job interview. It is also for anyone who love puzzles and challenges. |


I'm A Celebrity's Gillian McKeith claims she has PTSD after bushtucker trials
Gillian McKeith has claimed that her I’m a Celebrity stint in 2010 has left her battling with PTSD.
The health expert was seen struggling through bushtucker trials as well as life in the jungle, with the audience at home repeatedly voting her to do more.
She eventually fainted live on-air after being tasked with another trial.
Gillian is now stating being put through the trials and tasks, which included eating bugs, swimming through infested waters and being buried underground, has left her scarred.
‘When I look back at the jungle, it’s like the stuff of nightmares. It was like being in a horror movie, to be honest,’ she told Daily Star Online, adding she’s still not ‘fully recovered’ from the experience.
‘I honestly think I’m suffering from PTSD,’ she continued.
‘The one trial that sticks out more than the others is the one where I was underground, locked up in chains with rats.
Advertisement Advertisement
‘That has completely done me in, that is the worst.’
As a result of her time in the jungle, Gillian added that she’s been left claustrophobic and won’t even get in lifts if she feels they’re too small, and won’t lock bathroom doors.
Metro.co.uk has contacted I’m a Celebrity for comment.
Gillian’s comments come as 10 new celebrities kicked off this year’s series – starting with a sky-dive and walking a plank 300ft in the air.
Two more stars are reportedly due to join in the series – Coronation Street’s Andy Whyment and Eastenders’ star Cliff Parisi.
The camp were then split into two – with only Myles Stephenson, Ronan Kemp, Nadine Coyle and Adele Roberts making it into the main “luxury” (using that term loosely) camp, while the other six were left in the basic campsite.
Jacqueline Jossa and Kate Garraway ended up wearing their knickers on their head in a bid to stop bugs from crawling on them in their sleep – while Ian Wright burned their meagre rations.
As you can imagine, that went down like a lead balloon for campmate James Haskell, whose 4,000 calorie a day diet has now been shrunken down to nothing.
Advertisement Advertisement
Let the games begin…
I’m A Celebrity…Get Me Out Of Here airs nightly at 9pm on ITV.
Got a showbiz story? If you've got a story, video or pictures get in touch with the Metro.co.uk Entertainment team by emailing us<EMAIL_ADDRESS>calling 020 3615 2145 or by visiting our Submit Stuff page - we'd love to hear from you.


ROI Calculator
Purchase price
Down payment percentage
%
Interest Rate
%
Number of terms (years)
HOA due
$
HOA Annual Increase
%
Closing Cost (less agent rebate)
$
Structure Value (price less land value)
$
Annual Insurance
$
Insurance Annual Increase
%
Property Tax Rate
%
Appreciation Rate (Annual)
%
Personal Income Tax Rate (Highest Marginal Rate)
%
Personal Capital Gain Tax Rate (Highest Margin)
%
Sales Cost (% of the value)
%
Annual upkeeping cost (% of property value)
%
Initial monthly rental
$
Annual rental increase
%
Vacancy Rate
%
Annual property tax increase cap (Type 2 for CA Prop 13)
%