With night so near, they had no choice but to camp there on the mountain near the Waygate. In two camps. Faile insisted on it.
“That is done with,” Loial told her in a displeased rumble. “We are out of the Ways, and I have kept my oath. It is finished.” Faile put on one of her stubborn expressions, with chin up and fists on hips.
“Leave it alone, Loial,” Perrin said. “I’ll camp over there a bit.” Loial glanced at Faile, who had turned to the two Aiel women as soon as she heard Perrin agree, then shook his huge head and made as if to join Perrin and Gaul.
He made it a small bit, less than twenty paces. The Waygate might be locked, but there were still the ravens, and whatever they might presage. He wanted to be near if needed. If Faile complained, she could just complain. He was so set to ignore her protests that it irked him when she made none.
Disregarding twinges from his leg and side, he unsaddled Stepper and unloaded the packhorse, hobbled both animals and fitted them with nose bags with a few handfuls of barley and some oats. There was certainly no grazing up here. As to what there was, though . . . He strung his bow and laid it across his quiver near the fire, slipped the axe free of its belt loop.
Gaul joined him in making a fire, and they had a meal of bread and cheese and dried beef, eaten in silence and washed down with water. The sun slid behind the mountains, silhouetting the peaks and painting the undersides of the clouds red. Shadows blanketed the valley, and the air began to grow crisp.
Dusting crumbs from his hands, Perrin dug his good green wool cloak out of his saddlebags. Perhaps he had grown more accustomed to Tear’s heat than he had thought. The women were certainly not eating in silence around their shadow-shrouded fire; he could hear them laughing, and the bits of what they said that he picked up made his ears burn. Women would talk about anything; they had no restraint at all. Loial had moved as far away from them as he could and still be in the light, and was trying to bury himself in a book. They probably did not even realize they were embarrassing the Ogier; they probably thought they were talking quietly enough for Loial not to hear.
Muttering to himself, Perrin sat back down across the fire from Gaul. The Aiel seemed to be taking no notice of the chill. “Do you know any funny stories?”
“Funny stories? I cannot think of one, offhand.” Gaul’s eyes half turned to the other fire, and the laughter. “I would if I could. The sun, remember?”
Perrin laughed noisily and made his voice loud enough to carry. “I do. Women!” The hilarity in the other camp faded for a moment before rising again. That should show them. Other people could laugh. Perrin stared glumly into the fire. His wounds ached.
After a moment, Gaul said, “This place begins to look more like the Three-fold Land than most of the wetlands. Too much water, still, and the trees are still too big and too many, but it is not so strange as the places called forests.”
The soil was poor here where Manetheren had died in fire, the widely scattered trees all stunted and thick-boled, odd wind-bent shapes, none as much as thirty feet high. Perrin thought it about as desolate a spot as he had ever seen.
 Not much chance of it, of course. None, really. He could have told the Aielman that, but he did not want to talk of it now, or think of it.
“This is where Manetheren stood? You are of Manetheren’s blood?”
“This was Manetheren,” Perrin replied. “And I suppose I am.” It was hard to believe that the small villages and quiet farms of the Two Rivers held the last of Manetheren’s blood, but that was what Moiraine had said. The old blood runs strong in the Two Rivers, she had said. “That was a long time ago, Gaul. We are farmers, shepherds; not a great nation, not great warriors.”
Gaul smiled slightly. “If you say it. I have seen you dance the spears, and Rand al’Thor, and the one called Mat. But if you say it.”
Perrin shifted uncomfortably. How much had he changed since leaving home? Himself, and Rand, and Mat? Not his eyes, and the wolves, or Rand’s channeling; he did not mean that. How much of what was inside remained unchanged? Mat was the only one who still seemed to be just himself, only more so. “You know about Manetheren?”
“We know more of your world than you think. And less than we believed. Long before I crossed the Dragonwall I had read books brought by peddlers. I knew of ‘ships’ and ‘rivers’ and ‘forests,’ or thought I did.” Gaul made them sound like words in a strange tongue. “This is how I envisioned a ‘forest.’ ” He gestured at the sparse trees, dwarfed from the height they should have had. “To believe a thing is not to make it true. What of the Nightrunner, and Leafblighter’s get? Do you believe it just coincidence they came near this Waygate?”
“No.” Perrin sighed. “I saw ravens, down the valley. Maybe that’s all they were, but I don’t want to take the chance, not after the Trollocs.”
Gaul nodded. “They could have been Shadoweyes. If you plan for the worst, all surprises are pleasant.”
“I could do with a pleasant surprise.” Perrin felt for wolves again, and again found nothing. “I may be able to find out something tonight. Maybe. If anything happens here, you might have to kick me to wake me.” That sounded odd, he realized, but Gaul only nodded again. “Gaul, you’ve never mentioned my eyes, or even given them a second glance. None of the Aiel have.” He knew they were glowing golden now, in the firelight.
“The world is changing,” Gaul said quietly. “Rhuarc, and Jheran, my own clan chief—the Wise Ones, too—they tried to hide it, but they were uneasy when they sent us across the Dragonwall searching for He Who Comes With the Dawn. I think perhaps the change will not be what we have always believed. I do not know how it will be different, but it will be. The Creator put us in the Three-fold Land to shape us as well as to punish our sin, but for what have we been shaped?” He shook his head suddenly, ruefully. “Colinda, the Wise One of Hot Springs Hold, tells me I think too much for a Stone Dog, and Bair, the eldest Wise One of the Shaarad, threatens to send me to Rhuidean when Jheram dies whether I want to go or not. Beside all of that, Perrin, what does the color of a man’s eyes matter?”
“I wish everybody thought that way.” The merriment had finally stopped at the other fire. One of the Aiel women—Perrin could not tell which—was taking the first watch, her back to the light, and everyone else had settled down for sleep. It had been a tiring day. Sleep should be easy to find, and the dream he needed. He stretched out beside the fire, pulling his cloak around him. “Remember. Kick me awake, if need be.”
Sleep enfolded him while Gaul was still nodding, and the dream came at once.
It was daylight, and he stood alone near the Waygate, which looked like an elegantly carved length of wall, incongruous on the mountainside. Except for that there was no sign any human had ever set foot on that slope. The sky was bright and fine, and a soft breeze up the valley brought him the scent of deer and rabbits, quail and dove, a thousand distinct smells, of water and earth and trees. This was the wolf dream.
For a moment the sense of being a wolf rolled over him. He had paws, and . . . No! He ran his hands over himself, relieved to find only his own body, in his own coat and cloak. And the wide belt that normally held his axe, but with the hammer haft thrust through the loop instead.
He frowned at that, and surprisingly, for a moment, the axe flickered there instead, insubstantial and misty. Abruptly it was the hammer again. Licking his lips, he hoped it stayed that way. The axe might be a better weapon, but he preferred the hammer. He could not remember anything like that happening before, something changing, but he knew little of this strange place. If it could be called a place. It was the wolf dream, and odd things happened there, surely as odd as in any ordinary dream.
As though thinking of the oddities triggered one of them, a patch of sky against the mountains darkened suddenly, became a window to somewhere else. Rand stood amid swirling stormwinds, laughing wildly, even madly, arms upraised, and on the winds rode small shapes, gold and scarlet, like the strange figure on the Dragon banner; hidden eyes watched Rand, and there was no telling whether he knew it. The odd “window” winked out, only to be replaced by another farther over, where Nynaeve and Elayne stalked cautiously through a demented landscape of twisted, shadowed buildings, hunting some dangerous beast. Perrin could not have said how he knew it was dangerous, but he did. That vanished, and another black blotch spread across the sky. Mat, standing where a road forked ahead of him. He flipped a coin, started down one branch, and suddenly was wearing a wide brimmed hat and walking with a staff bearing a short sword blade. Another “window,” and Egwene and a woman with long white hair were staring at him in surprise while behind them the White Tower crumbled stone by stone. Then they were gone, too.
Perrin drew a deep breath. He had seen the like before, here in the wolf dream, and he thought the sightings were real in some way, or meant something. Whatever they were, the wolves never saw them. Moiraine had suggested that the wolf dream was the same as something called Tel’aran’rhiod, and then would say no more. He had overheard Egwene and Elayne speaking of dreams, once, but Egwene already knew too much about him and wolves, perhaps as much as Moiraine. It was not something he could talk about, not even with her.
There was one person he could have talked to. He wished he could find Elyas Machera, the man who had introduced him to the wolves. Elyas had to know about these things. When he thought of the man, it seemed for a moment he heard his own name whispered faintly in the wind, but when he listened, there was only the wind. It was a lonely sound. Here there was only himself.
“Hopper!” he called, and in his mind, Hopper! The wolf was dead, and yet not dead, here. The wolf dream was where wolves came when they died, to await being born again. It was more than that, to wolves; they seemed in some way to be aware of the dream even while awake. One was almost as real—maybe as real—as the other, to them. “Hopper!” Hopper! But Hopper did not come.
This was all useless. He was there for a reason, and he might as well get on with it. At best, getting down to where he had seen the ravens rise would take hours.
He took a step—the land around him blurred—and his foot came down near a narrow brook beneath stunted hemlock and mountain willow, with cloud-capped peaks towering above. For a moment he stared in amazement. He was at the far end of the valley from the Waygate. In fact, he was at the very spot he had been aiming for, the place where the ravens had come from, and the arrow that killed the first hawk. Such a thing had never happened to him before. Was he learning more of the wolf dream—Hopper had always said he was ignorant—or was it different this time?
He was more cautious with his next step, but it was only a step. There was no evidence of archer or ravens, no track, no feather, no scent. He was not sure what he had expected. There would be no sign unless they had been in the dream, too. But if he could find wolves in the dream, they could help him find their brothers and sisters in the waking world, and those wolves could tell him if there were Shadowspawn in the mountains. Perhaps if he were higher up they could hear him call.
Fixing his eye on the highest peak bordering the valley, just below the clouds, he stepped. The world blurred, and he was standing on the mountainside, with white billows not five spans overhead. In spite of himself, he laughed. This was fun. From here he could see the entire valley stretched out below.
“Hopper!” No answer.
He leaped to the next mountain, calling, and the next, and the next, eastward, toward the Two Rivers. Hopper did not answer. More troubling, Perrin did not sense any other wolves, either. There were always wolves in the wolf dream. Always.
From peak to peak he sped in blurred motion, calling, seeking. The mountains lay empty beneath him, except for deer and other game. Yet there were occasional signs of men. Ancient signs. Twice great carved figures took nearly an entire mountainside, and in another place strange angular letters two spans high had been incised across a cliff a shade too smooth and sheer. Weathering had worn away the figures’ faces, and eyes less sharp than his might have taken the letters themselves for the work of wind and rain. Mountains and cliffs gave way to the Sand Hills, great rolling mounds sparsely covered with tough grass and stubborn bushes, once the shore of a great sea before the Breaking. And suddenly he saw another man, atop a sandy hill.
The fellow was too distant to see clearly, just a tall, dark-haired man, but plainly not a Trolloc or anything of the sort, in a blue coat with a bow on his back, stooping over something on the ground hidden by the low brush. Yet there was something familiar about him.
The wind rose, and Perrin caught his smell faintly. A cold scent, that was the only way to describe it. Cold, and not really human. Suddenly his own bow was in his hand, an arrow nocked, and the weight of a filled quiver tugged at his belt.
The other man looked up, saw Perrin. For a heartbeat he hesitated, then turned and became a streak, slashing away across the hills.
Perrin leaped down to where he had stood, stared at what had occupied the fellow, and without thought pursued, leaving the half-skinned corpse of a wolf behind. A dead wolf in the wolf dream. It was unthinkable. What could kill a wolf here? Something evil.
His prey ran ahead of him in strides that covered miles, never more than barely in sight. Out of the hills and across the tangled Westwood with its wide scattered farms, over cleared farmland, a quilt of hedged fields and small thickets, and past Watch Hill. It was odd to see the thatched village houses covering the hill with no people in the streets, and farmhouses standing as if abandoned. But he kept his eye on the man fleeing ahead of him. He had become so used to this pursuit that he felt no surprise when one leaping stride put him down on the south bank of the River Taren and the next amid barren hills without trees or grass. North and east he ran, over streams and roads and villages and rivers, intent only on the man ahead. The land grew flat and grassy, broken by scattered thickets, without any sign of man. Then something glittered ahead, sparkling in the sun, a tower of metal. His quarry sped straight for it, and vanished. Two leaps brought Perrin there as well.
Two hundred feet the tower rose, and forty thick, gleaming like burnished steel. It might as well have been a solid column of metal. Perrin walked around it twice without seeing any opening, not so much as a crack, not even a mark on that smooth, sheer wall. The smell hung here, though, that cold, inhuman stink. The trail ended here. The man—if man he was—had gone inside somehow. He only had to find the way to follow.
Stop! It was a raw flow of emotion that Perrin’s mind put a word to. Stop!
He turned as a great gray wolf as tall as his waist, grizzled and scarred, alighted as if he had just leaped down from the sky. He might well have. Hopper had always envied eagles their ability to fly, and here, he could too. Yellow eyes met yellow eyes.
“Why should I stop, Hopper? He killed a wolf.”
Men have killed wolves, and wolves men.
“I don’t know,” Perrin said slowly. “Maybe because it was here. I didn’t know it was possible to kill a wolf here. I thought wolves were safe in the dream.”
You chase Slayer, Young Bull. He is here in the flesh, and he can kill.
“In the flesh? You mean not just dreaming? How can he be here in the flesh?”
I do not know. It is a thing dimly remembered from long ago, come again as so much else. Things of the Shadow walk the dream, now. Creatures of Heartfang. There is no safety.
“Well, he’s inside, now.” Perrin studied the featureless metal tower. “If I can find how he got in, I can put an end to him.”
Cub foolish, digging in a groundwasps’ nest. This place is evil. All know this. And you would chase evil into evil. Slayer can kill.
Perrin paused. There was a sense of finality to the emotions his mind attached the word “kill” to. “Hopper, what happens to a wolf who dies in the dream?”
The wolf was silent for a time.  I do not know if the same is true for you, but I believe it is.
“A dangerous place, archer. The Tower of Ghenjei is a bad place for humankind.”
Perrin whirled, half-raising his bow before he saw the woman standing a few paces away, her golden hair in a thick braid to her waist, almost the way women wore it in the Two Rivers, but more intricately woven. Her clothes were oddly cut, a short white coat and voluminous trousers of some thin pale yellow material gathered at the ankles above short boots. Her dark cloak seemed to hide something that glinted silver at her side.
She shifted, and the metallic flicker vanished. “You have sharp eyes, archer. I thought that the first time I saw you.”
How long had she been watching? It was embarrassing that she had sneaked up without him hearing. At the least Hopper should have warned him. The wolf was lying down in the knee high grass, muzzle on his forepaws, watching him.
The woman seemed vaguely familiar, though Perrin was certain he would have remembered her had he ever seen her before. Who was she, to be in the wolf dream? Or was it Moiraine’s Tel’aran’rhiod, too? “Are you Aes Sedai?”
“No, archer.” She laughed. “I only came to warn you, despite the prescripts. Once entered, the Tower of Ghenjei is hard enough to leave in the world of men. Here it is all but impossible. You have a Bannerman’s courage, which some say cannot be told from foolhardiness.”
Impossible to leave? The fellow—Slayer—surely had gone in. Why would he do that if he could not leave? “Hopper said it’s dangerous, too. The Tower of Ghenjei? What is it?”
Her eyes widened, and she glanced at Hopper, who still lay stretched out on the grass ignoring her and watching Perrin. “You can talk to wolves? Now that is a thing long lost in legend. So that is how you are here. I should have known. The tower? It is a doorway, archer, to the realms of the Aelfinn and the Eelfinn.” She said the names as if he should recognize them. When he looked at her blankly, she said, “Did you ever play the game called Snakes and Foxes?”
“All children do. At least, they do in the Two Rivers. But they give it up when they get old enough to realize there’s no way to win.”
“Except to break the rules,” she said. “ ‘Courage to strengthen, fire to blind, music to daze, iron to bind.’ ”
“That’s a line from the game. I don’t understand. What does it have to do with this tower?”
“Those are the ways to win against the snakes and the foxes. The game is a remembrance of old dealings. It does not matter so long as you stay away from the Aelfinn and the Eelfinn. They are not evil the way the Shadow is evil, yet they are so different from humankind they might as well be. They are not to be trusted, archer. Stay clear of the Tower of Ghenjei. Avoid the World of Dreams, if you can. Dark things walk.”
“Like the man I was chasing? Slayer.”
“A good name for him. This Slayer is not old, archer, but his evil is ancient.” She almost appeared to be leaning slightly on something invisible; perhaps that silver thing he had never quite seen. “I seem to be telling you a great deal. I do not understand why I spoke in the first place. Of course. Are you ta’veren, archer?”
“Who are you?” She seemed to know a lot about the tower, and the wolf dream. But she was surprised I could talk to Hopper. “I’ve met you before somewhere, I think.”
“I have broken too many of the prescripts already, archer.”
“Prescripts? What prescripts?” A shadow fell on the ground behind Hopper, and Perrin turned quickly, angry at being caught by surprise again. There was no one there. But he had seen it; the shadow of a man with the hilts of two swords rising above his shoulders. Something about that image teased his memory.
“He is right,” the woman said behind him. “I should not be talking to you.”
When he turned back, she was gone. As far as he could see were only grassland and scattered thickets. And the gleaming, silvery tower.
He frowned at Hopper, who finally lifted his head from his paws. “It’s a wonder you aren’t attacked by chipmunks,” Perrin muttered. “What did you make of her?”
Her? A she? Hopper stood, looking around. Where?
“I was talking to her. Right here. Just now.”
You made noises at the wind, Young Bull. There was no she here. None but you and I.
Perrin scratched his beard irritably. She had been there. He had not been talking to himself. “Strange things can happen here,” he told himself. “She agreed with you, Hopper. She told me to stay away from this tower.”
She is wise. There was an element of doubt in the thought; Hopper still did not believe there had been any “she.”
“I’ve come awfully far afield from what I intended,” Perrin muttered. He explained his need to find wolves in the Two Rivers, or the mountains above, explained about the ravens, and the Trollocs in the Ways.
When he was done, Hopper remained silent for a long time, his bushy tail held low and stiff. Finally . . . Avoid your old home, Young Bull. The image Perrin’s mind called “home” was of the land marked by a wolfpack. There are no wolves there now. Those who were and did not flee are dead. Slayer walks the dream there.
“I have to go home, Hopper. I have to.”
Take care, Young Bull. The day of the Last Hunt draws near. We will run together in the Last Hunt.
“We will,” Perrin said sadly. It would be nice if he could come here when he died; he was half wolf already, it seemed sometimes. “I have to go now, Hopper.”
May you know good hunting, Young Bull, and shes to give you many cubs.
“Goodbye, Hopper.”
He opened his eyes to the dim light of dying coals on the mountainside. Gaul was squatting just beyond the edge of the light, watching the night. In the other camp, Faile was up, taking her turn at guard. The moon hung above the mountains, turning the clouds to pearly shadows. Perrin estimated he had been asleep two hours.
“I’ll keep guard awhile,” he said, tossing off his cloak. Gaul nodded and settled himself on the ground where he was. “Gaul?” The Aiel raised his head. “It may be worse in the Two Rivers than I thought.”
“Things often are,” Gaul replied quietly. “It is the way of life.” The Aielman calmly put his head down for sleep.
Slayer. Who was he? What was he? Shadowspawn at the Waygate, ravens in the Mountains of Mist, and this man called Slayer in the Two Rivers. It could not be coincidence, however much he wished it.


Package it.polimi.ingsw.client
Class ConnectionToServer
java.lang.Object
it.polimi.ingsw.client.ConnectionToServer
- All Implemented Interfaces:
EventToServerNotifier
,java.lang.Runnable
public class ConnectionToServer extends java.lang.Object implements java.lang.Runnable, EventToServerNotifier
This class handles the send of information from the client to the server
Implements Runnable and EventToServerNotifier interface
-
Constructor Summary
Constructors Constructor Description ConnectionToServer(java.net.Socket socket)
The socket created is passed to this class -
Method Summary
Modifier and Type Method Description void
asyncSendEvent(EventToServer event)
Sends the event with a thread to the server of this connection.void
closeConnection()
Close the connection and set the server like inactivejava.lang.String
getAddress()
Gets the ip address to the connectionvoid
run()
void
sendChooseLine(int numLine, java.util.ArrayList<java.lang.Boolean> leaderMarketWhiteChange)
Sends the line choose of the market choose by the player to the server.void
sendDiscardInitialLeaderCards(int leaderCard1, int leaderCard2)
Sends the initial leader card that the player decides to discard to the server.void
sendInitialDepositState(java.util.ArrayList<Resource> newInitialDepositState)
Sends the initial deposit state choose by the player to the server.void
sendLeaderCardActions(java.util.ArrayList<java.lang.Integer> actions, boolean isFinal)
Sends the actions on the leader cards choose by the player to the server.void
sendNewDepositState(java.util.ArrayList<Resource> newDepositState, int discardResources, boolean isAdditional, java.util.ArrayList<Resource> additionalDepositState)
Sends to the server the new deposit state and the discarded resources from the market that the player has managed in the market turn.void
sendNumPlayer(int num)
Sends the number of player, that the client decides to set for this match, to the server.void
sendPing()
Sends a ping to the server.void
sendPlayerName(java.lang.String playerName)
Sends the choice of the name by the client to the server.void
sendReplayLorenzoAction()
Sends to the server the replay of the lorenzo action event.void
sendRoom(int room, boolean newRoom)
Sends the choice of the room number choose by the client to the server.void
sendSelectedDevelopmentCard(int color, int level)
Sends to the server the development card that the player wants to buy.void
sendSelectedDevelopmentCardSpace(int space)
Sends to the server the space in which the player decides to put the development bought.void
sendSelectedProductionDevelopmentCard(boolean useBaseProduction, Resource resourceRequested1, Resource resourceRequested2, ProductedMaterials resourceGranted, java.util.ArrayList<java.lang.Boolean> useLeaders, java.util.ArrayList<Resource> materialLeaders, java.util.ArrayList<java.lang.Boolean> useDevelop)
Sends to the server all the production that the player decided to activate.void
sendTurnPlayed(java.lang.String turnType)
Sends to the server the type of the turn that the player choose.void
setAddress(java.lang.String address)
Set the ip address to the connectionvoid
setEventHandlerGUI(EventHandlerGUI eventHandlerGUI)
Set the event handler for the guivoid
setPlayerName(java.lang.String playerName)
Sets the name of the client/player of this connection.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
ConnectionToServer
public ConnectionToServer(java.net.Socket socket)The socket created is passed to this class- Parameters:
socket
- is the socket created between client and server
-
-
Method Details
-
setAddress
public void setAddress(java.lang.String address)Set the ip address to the connection- Parameters:
address
- is the ip address of the server
-
getAddress
public java.lang.String getAddress()Gets the ip address to the connection- Returns:
- the address of the server
-
setEventHandlerGUI
Set the event handler for the gui- Parameters:
eventHandlerGUI
- is the event handler of the GUI that interface the client with the server
-
run
public void run()- Specified by:
run
in interfacejava.lang.Runnable
-
asyncSendEvent
Sends the event with a thread to the server of this connection.- Parameters:
event
- The event to send to the server.
-
closeConnection
public void closeConnection()Close the connection and set the server like inactive -
setPlayerName
public void setPlayerName(java.lang.String playerName)Sets the name of the client/player of this connection.- Parameters:
playerName
- The name of the client/player of this connection.
-
sendRoom
public void sendRoom(int room, boolean newRoom)Description copied from interface:EventToServerNotifier
Sends the choice of the room number choose by the client to the server.- Specified by:
sendRoom
in interfaceEventToServerNotifier
- Parameters:
room
- The room number choose by the player.newRoom
- Is true if the room is new, so the server has to create the room, is false id the room already exists.
-
sendPlayerName
public void sendPlayerName(java.lang.String playerName)Description copied from interface:EventToServerNotifier
Sends the choice of the name by the client to the server.- Specified by:
sendPlayerName
in interfaceEventToServerNotifier
- Parameters:
playerName
- The name of the player.
-
sendNumPlayer
public void sendNumPlayer(int num)Description copied from interface:EventToServerNotifier
Sends the number of player, that the client decides to set for this match, to the server.- Specified by:
sendNumPlayer
in interfaceEventToServerNotifier
- Parameters:
num
- The number of player decided by the first client connected.
-
sendInitialDepositState
Description copied from interface:EventToServerNotifier
Sends the initial deposit state choose by the player to the server.- Specified by:
sendInitialDepositState
in interfaceEventToServerNotifier
- Parameters:
newInitialDepositState
- The initial deposit state choose by the player.
-
sendDiscardInitialLeaderCards
public void sendDiscardInitialLeaderCards(int leaderCard1, int leaderCard2)Description copied from interface:EventToServerNotifier
Sends the initial leader card that the player decides to discard to the server.- Specified by:
sendDiscardInitialLeaderCards
in interfaceEventToServerNotifier
- Parameters:
leaderCard1
- The first initial leader card that the player decides to discard.leaderCard2
- The second initial leader card that the player decides to discard.
-
sendLeaderCardActions
public void sendLeaderCardActions(java.util.ArrayList<java.lang.Integer> actions, boolean isFinal)Description copied from interface:EventToServerNotifier
Sends the actions on the leader cards choose by the player to the server.- Specified by:
sendLeaderCardActions
in interfaceEventToServerNotifier
- Parameters:
actions
- The actions on the leader cards choose by the player.isFinal
- Is true if the event is sent at the final stage of the turn, is false if the event is sent at the initial stage of the turn.
-
sendChooseLine
public void sendChooseLine(int numLine, java.util.ArrayList<java.lang.Boolean> leaderMarketWhiteChange)Description copied from interface:EventToServerNotifier
Sends the line choose of the market choose by the player to the server.- Specified by:
sendChooseLine
in interfaceEventToServerNotifier
- Parameters:
numLine
- The number line of the market choose by the player.leaderMarketWhiteChange
- Indicates if the player has active one or more leader cards market white change.
-
sendNewDepositState
public void sendNewDepositState(java.util.ArrayList<Resource> newDepositState, int discardResources, boolean isAdditional, java.util.ArrayList<Resource> additionalDepositState)Description copied from interface:EventToServerNotifier
Sends to the server the new deposit state and the discarded resources from the market that the player has managed in the market turn.- Specified by:
sendNewDepositState
in interfaceEventToServerNotifier
- Parameters:
newDepositState
- The new deposit state choose by the player.discardResources
- The number of resources from the market that the player has discarded.isAdditional
- Indicates if the player has some active additional deposit.additionalDepositState
- The new state of the active additional deposit of the player.
-
sendSelectedDevelopmentCard
public void sendSelectedDevelopmentCard(int color, int level)Description copied from interface:EventToServerNotifier
Sends to the server the development card that the player wants to buy. The development card is recognised by level and color.- Specified by:
sendSelectedDevelopmentCard
in interfaceEventToServerNotifier
- Parameters:
color
- The color of the development card choose by the player.level
- The level og the development card choose by the player.
-
sendSelectedDevelopmentCardSpace
public void sendSelectedDevelopmentCardSpace(int space)Description copied from interface:EventToServerNotifier
Sends to the server the space in which the player decides to put the development bought.- Specified by:
sendSelectedDevelopmentCardSpace
in interfaceEventToServerNotifier
- Parameters:
space
- The space in which the player decides to put the development bought.
-
sendSelectedProductionDevelopmentCard
public void sendSelectedProductionDevelopmentCard(boolean useBaseProduction, Resource resourceRequested1, Resource resourceRequested2, ProductedMaterials resourceGranted, java.util.ArrayList<java.lang.Boolean> useLeaders, java.util.ArrayList<Resource> materialLeaders, java.util.ArrayList<java.lang.Boolean> useDevelop)Description copied from interface:EventToServerNotifier
Sends to the server all the production that the player decided to activate.- Specified by:
sendSelectedProductionDevelopmentCard
in interfaceEventToServerNotifier
- Parameters:
useBaseProduction
- Is true if the player wants to use the base production power, else is falseresourceRequested1
- The first material choose by the player to use for the base production power.resourceRequested2
- The second material choose by the player to use for the base production power.resourceGranted
- The resource that the player wants to generate from the base production power.useLeaders
- The position of the leader card is true if the player wants to use a leader card additional production, else false. All the leader card that are not additional production are set on false in this ArrayList.materialLeaders
- The material chooses by the player to use for the additional production power of the leader cards.useDevelop
- The development card that the player decides to activate.
-
sendTurnPlayed
public void sendTurnPlayed(java.lang.String turnType)Description copied from interface:EventToServerNotifier
Sends to the server the type of the turn that the player choose. This method is used only for the debug and test. If the player on the CLI types 'turn' the player skip the turn.- Specified by:
sendTurnPlayed
in interfaceEventToServerNotifier
- Parameters:
turnType
- The type of turn choose by the player.
-
sendReplayLorenzoAction
public void sendReplayLorenzoAction()Description copied from interface:EventToServerNotifier
Sends to the server the replay of the lorenzo action event.- Specified by:
sendReplayLorenzoAction
in interfaceEventToServerNotifier
-
sendPing
public void sendPing()Description copied from interface:EventToServerNotifier
Sends a ping to the server.- Specified by:
sendPing
in interfaceEventToServerNotifier
-


3DLightningScheme
1.7
Type
:: ( Name | =
"3DLightningScheme"
)
1.7
Subtype
:: ( Name | =
"Artwork"
or =
"None"
or =
"White"
or =
"Day"
or =
"Night"
or =
"Hard"
or =
"Primary"
or =
"Blue"
or =
"Red"
or =
"Cube"
or =
"CAD"
or =
"Headlamp"
) , required


About Permaculture
A system of agricultural and social design principles centered around utilizing patterns observed in natural ecosystems. Permaculture as a philosophy refuses to treat any area as a single product system, rather permaculture mandates a larger, interdependent view of ecosystems and growth cycles.
Our Project:
The Pacific Northwest has a strong history of sustainability, homesteading, and delicious gardens. Our project seeks to link the methodologies of permaculture and update the principles to incorporate an urban environment.
Permaculture encompasses:
Permaculture has many branches, including ecological design, ecological engineering, environmental design, construction and integrated water resources management that develops sustainable architecture, regenerative and self-maintained habitat and agricultural systems modeled from natural ecosystems.
Polyculture:
We are advocating for mixed vegetable gardens. Examples of mixed vegetable gardens include the English Cottage Garden, Caribbean kitchen gardens or the allotments of Bangladeshi communities in London. We have identified two primary characteristics for a mixed garden, companion planting and a layered architecture. Mixed vegetable gardens maximize space (a principle concern for urban gardens) and minimizes the amount of weeding, irrigation, and other diseases that are exacerbated by conventional gardening methods. A mixed garden will leave no bare soil (reducing competition from weeds), the mixture of vegetables will reduce the spread and prevalence of disease and/or parasites, and a layered garden will prevent plants from competing for resources.
Companions:
Some plants have symbiotic relationships with others (onions, carrots, and lettuce, or spinach, onions, and brassicas), while other may have antagonistic relationships (such as alliums (onion and garlic) and legumes (beans and peas) should not be planted together. This knowledge has traditionally been acquired through experience and time. With modern technology we hope to speed up this process and disseminate these lessons to increase food security and increase community and global health.
Layers:
Mimicking the composition of a forest, a garden can also have vegetables at the root level, the understory, and the canopy. Employing tiered growing maximizes precious garden space.


Image One-Parallax
Image One-Parallax
Image One-Parallax
Image One-Parallax
Image One-Parallax
Image Five-Parallax
Image six-Parallax


Syvum Privacy PolicyWe at Syvum are committed to respecting your privacy and recognize your need for appropriate protection and management of personally identifiable information you share with us (any information by which you can be identified, such as name, address, and telephone number). That is why Syvum has established this privacy policy, so that you can understand the care with which we intend to treat your information. In general, you can visit syvum.com without telling us who you are or revealing any personal information about yourself. We track the Internet address of the domains from which people visit us and analyze this data for trends and statistics, but the individual user remains anonymous. To protect your privacy, we have adopted the following principles: INFORMATIONWe want to give you information about our privacy policy and assure you that we take reasonable steps to see that it is followed within our company.CHILDREN UNDER 13Syvum does not collect any information from children under 13 that could identify them.CHOICEThere are times when we may collect personal information from you. It is our intent to inform you before we do that and to tell you what we intend to do with the information. You will have the option not to provide the information, and in the future you will be able to "opt out" of certain uses of the information. If you choose not to provide the information we request, you can still visit most of the syvum.com Web site, but you may be unable to access certain options, offers, and services.We require your email address when you register as a member to our Teens or Individual Clubs (for ages > 13). Your email address is used once to send you a welcome notice. It is also used to regularly send you our newsletter or emails as a part of our mailing lists. It may also be used to send emergency emails, such as a major change to our service, or to send your password if you lose/forget it. If you take part in our contests, and are a winner, your prize notification will also be sent at that address. Additionally, you may consent to receive information in the email on certain parts of our web site by simply providing us your email address. When you use the "Send this page to a friend" feature on the Syvum web site, the email address of your friend is used only to send the requested page to them. No further emails are sent to that address, nor is that address revealed to any third party. Your email address is held in strict confidence, and only used as stated here. ACCURACYWe do our best to maintain the accuracy of personal information you supply to us; we are working on tools that will allow you to review and update your information in the future.SECURITYWe will take appropriate steps to protect the information you share with us from unauthorized access or disclosure.COOKIESSome parts of our site use cookies in order to provide you a better experience of the site. For example, your scores in the online activities in any given session are stored in a cookie. For registered members, cookies allow us to provide you a customized experience. Our shopping cart also uses "cookies" to make your shopping experience enjoyable. The product codes in your cart are stored in the text in the cookies. If you do not wish to use cookies, you may still shop directly from our online shop. See also: Advertisements.SHARING OF PERSONAL INFORMATIONSyvum may share aggregate information about its users with advertisers, business partners, sponsors and other third parties. For example, we may say Syvum's audience is x percent females and y percent males. This data is used to customize the content and advertising to deliver a better experience for our users.THIRD PARTY ADVERTISINGWe use several third-party advertising companies to serve ads when you visit our Web site. These companies may use information (not including your name, address, email address or telephone number) about your visits to this and other Web sites in order to provide advertisements on this site and other sites about goods and services that may be of interest to you.THIRD PARTY COOKIESIn the course of serving advertisements to this site, our third-party advertiser may place or recognize a unique "cookie" on your browser.COMMITMENTWe are committed to privacy. Personal data privacy is a new and evolving area, and Syvum is evolving to meet these demands. Mistakes are possible; miscommunication is possible. If you have any comments or questions regarding our privacy policy, please contact us. We will address any issue to the best of our abilities.By using this site, you signify your assent to the Syvum Privacy Policy. If you do not agree to this policy, please do not use our site. Privacy is an evolving area, and consequently, these terms may be changed at any time. Any changes will be posted on this page for your information. Thank you for your support of these policies and of Syvum Technologies. |


One common flaw we've seen in many frameworks is a lack of support for truly responsive text. While elements on the page resize fluidly, text still resizes on a fixed basis. To ameliorate this problem, for text heavy pages, we've created a class that fluidly scales text size and line-height to optimize readability for the user. Line length stays between 45-80 characters and line height scales to be larger on smaller screens.
To see Flow Text in action, slowly resize your browser and watch the size of this text body change! Use the button above to toggle off/on flow-text to see the difference!
To use flow-text on a body of text, simply just add the class flow-text
to a tag, see the code below.

I am Flow Text


The radio telescope is a type of telescope that can detect noise from radio waves in space. This is because objects in space give off radio noise. The telescopes are able to listen to the radio waves and process it into information that researchers and scientist can use to study about the objects in space. The radio telescope can also produce an image from the object it is listening to.
X-Ray Telescopes
The x-ray telescope is used to study the sun, stars and supernovas, an explosion in space. X-ray telescopes usually work better at very high altitudes on the Earth’s surface such as a very tall mountain. However, x-ray telescopes work even better in space. The reason for this is because the Earth’s atmosphere interferes with the x-ray signals the telescope receives, distorting the information it receives.
Gamma Ray Telescopes
The gamma ray telescope is similar to the x-ray telescopes in that it works best in high altitudes. However, the difference is that x-rays are emitted by electrons outside the nucleus, while gamma rays are emitted by the nucleus. Gamma ray telescopes are mainly used to confirm events in space such as supernovas, pulsars and black holes.
Reflector Telescopes
The most common telescope is the reflecting telescope, using numerous mirrors to enlarge and project images from a distance. The Hubble Space Telescope is a reflecting telescope and is currently the largest space telescope there is. It is 43 feet long and weighs 24,250 pounds. The Hubble Space Telescope was launched into space on April 24, 1990, from the Space Shuttle Discovery. It is still operational. It has had some work performed on it from time to time, such as installing new state-of-the-art cameras. This telescope has provided researchers with an enormous amount of information that they would have probably never had if it weren’t for the Hubble. It can take pictures of things such as far away galaxies, nebulae, and dying stars.


Hello My Name is Muhammad Yazid Alfarisi
ABOUT ME
Not much to describe myself, I work as web designer, front-end dev, networking, mobile programming. I do logo design and other designing stuff
Wanna see more and detailed? Click Here>>


{% extends "layout.html" %} {% block content %}
This user already exists The e-mails was resend to the existing user


Lilypad
?
loading...
If you can read this, you do not need glasses.
If you can see this text, something has gone horribly awry.
add some files
add a program


Lets define the following functions (and give their types)
hd
tl
append
last
: returns the last element of a list
let last = ...
at
: at i
lst returns the i
th element of lst
group
: group consecutive duplicates
rotate
: rotate
n
filter
map
unique


I like to make things look nice. Give me a chance to make your things look nice too.
I love to design webpages, and find ux design facinating. I love all styles and I wanna grow, water me.
Oh yeah, I have mad skills, too.
I am 100% self taught, google taught, and dog taught (my dog Stella is pretty much a savant of all things front end development. Trial by error is my favorite way to make pretty things.
- HTML
- CSS
- Javascript
- Git
BathroomBackend Language
- Making dog bows
- Playing the drums(poorly)
- Knowing all kinds of pointless trivia
- Singing Disney songs out of tune


If you had Covid-19 before and now have it again
If you get symptoms of coronavirus (COVID-19) again, you must self-isolate immediately and get a test.
The symptoms are a high temperature, a new, continuous cough or a loss or change to your sense of smell or taste.
You can get a test to check if you have coronavirus on GOV.UK.
You should also self-isolate again if:
- someone you live with gets symptoms
- someone in your support bubble gets symptoms and you were in close contact with them since their symptoms started or during the 48 hours before they started
The person with symptoms should get a test.
What is a support bubble?
You must self-isolate again even if you've had a positive test result for coronavirus before. You probably have some immunity to coronavirus but it's not clear how long it lasts.
Read more about when to self-isolate and what to do.
Page last reviewed: 21 December 2020
Next review due: 21 December 2020


Knowing that I could not do many things for the team with the lack of knowledge about game engine programming, designing or game play ideas, but the reality was worse than I expected. Yeah, it’s way worse. It seemed that I didn’t do nothing for the entire event, except some ideas about the story and gameplay, and the game picture that you can see above. Nothing else. The effect of the thing going on let me be down for a moment. Shit, am I that bad ?
This event taught me a lesson that I should be focusing on several technologies that I think that will help me in my future, not trying to learn many things that I might use.
Then will come a day I’ll be good at making apps as they’re good at making games. Definitely.


Organized by OEG
TUTORIAL-ABSTRACT
The target audience for this tutorial is XXXXXX
Link to attend (16:00 CEST):
LINK-ONLINE
Description
OEG member is a researcher XXXXXXX.
OEG Member 2 is XXXXXXX


BILLING SOFTWARE
Billing Software is a project which aims to make the process of creating a bill, setting new rates, new tax less frustrating and less stressful. This project has many features which are generally not present in billing software.
Billing Software is a project which aims to make the process of creating a bill, setting new rates, new tax less frustrating and less stressful. This project has many features which are generally not present in billing software.
A showcase of my skills and projects. Over their my INTRODUCTION, PROFILE, Resume and about Projects, All the details are their like: (Contact, Address, Email, Social accounts etc).
It is an Gui(Graphical User Interface) application made with python using Tkinter module. This application can create a user account and make login in it using that account too, It has a forgot password section. If you forgot the password then reset password from forgot password window. All that feature uses firebase.
LittleBrother is an information gathering tool (OSINT) which aims to carry out best search result using provided modules. It is a command-line based tool. Now, I am working on this project to make it as a GUI application.


Correlation Identifier
Event Processing Applications may want to implement an Event Collaboration pattern where Events are used to transport requests and responses. The applications which collaborate via the Events, will need a method for correlating Event response data for specific requests.
Problem
How does an application, that has requested information and received a response, know for which request a particular response is for?
Solution
An Event Processor generates an Event which acts as the request. A globally unique identifier is added to the request Event prior to sending. This allows the responding Event Processor to include the identifier in the response Event, allowing the requesting processor to correlate the request and response.
Implementation
In Kafka, we can add a globally unique identifier to the Kafka record headers when producing the request event. The following code example uses Kafka's Java producer client.
ProducerRecord<String, String> requestEvent = new ProducerRecord<>("request-event-key", "request-event-value");
requestEvent.headers().add("requestID", UUID.randomUUID().toString());
requestEvent.send(producerRecord);
In the responding event processor, we first extract the correlation identifier from the request event (here, requestID
) and then add the identifier to the response event.
ProducerRecord<String, String> responseEvent = new ProducerRecord<>("response-event-key", "response-event-value");
requestEvent.headers().add("requestID", requestEvent.headers().lastHeader("requestID").value());
requestEvent.send(producerRecord);
References
- This pattern is derived from Correlation Identifier in Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf
- For a case study on coordinating microservices towards higher level business goals, see Building a Microservices Ecosystem with Kafka Streams and ksqlDB
- Correlation Identifiers can be used as part of Event Collaboration, a pattern in which decentralized Event Processing Applications collaborate to implement a distributed workflow solution.
- The idea of tagging requests and their related responses exists in many other protocols. For example, an email client connecting over IMAP will send commands prefixed with a unique ID (typically,
a001
,a002
, etc.) and the server will respond asynchronously, tagging its responses with the matching ID.


Contact erin.rich (at) mssm (dot) edu
Visit my laboratory website for the most up-to-date information: Rich Lab
I will be an Assistant Professor in the Department of Neuroscience at Mount Sinai (Icahn) School of Medicine starting in the spring of 2017. I am currently a Post-doc in Wallis Lab at the University of California Berkeley, and collaborate with the Chang Lab at the University of California San Francisco.
Post-doc positions are available in my new lab, to start on or after May 1, 2017. Please visit my website at the link above for more information.
Research
My research focuses on understanding the biological basis of complex behavior and cognition. I am particularly interested in how affective processing - in other words how much you do or don't like something - interacts with cognitive and perceptual processing to give rise to learning, memory and decision-making. My principal approach is recording neurophysiological signals from the brain while a subject engages in tasks that tax these abilities.
Recent Papers
My full CV can be downloaded here
Rich, E.L., Wallis, J.D. Decoding subjective decisions from Orbitofrontal Cortex. Nat Neurosci. 2016 Jul;19(7):973-80.
Rich, E.L., Wallis, J.D. What stays the same in orbitofrontal cortex. Nat Neurosci. 2016 May 26;19(6):768-70. Commentary for Xie and Padoa-Schioppa, 2016.
Rich, E.L., Wallis, J.D. Medial-lateral organization of the orbitofrontal cortex. J Cogn Neurosci. 2014 Jul; 26(7):1347-62.
Rich, E.L., Wallis, J.D. Prefrontal-Amygdala Interactions Underlying Value Coding. Neuron. 2013 Dec; 80(6):1344-1346. Commentary for Rudebeck and Murray, 2013.
Perez-Rodriguez, M.M., Hazlett, E.A., Rich, E.L., Ripoll, L.H., Weiner, D.M., Spence, N., Goodman, M., Koenigsberg, H.W., Siever, L.J., New, A.S. Striatal activity in borderline personality disorder with comorbid intermittent explosive disorder: sex differences. J Psychiatr Res. 2012 Jun;46(6):797-804.
Wallis, J.D., Rich, E.L. Challenges of Interpreting Frontal Neurons during Value-Based Decision-Making. Front Neurosci. 2011;5:124.
Rich, E.L., Shapiro, M.L. Rat prefrontal cortical neurons selectively code strategy switches. J Neurosci. 2009 Jun:29(22):7208-19.


AP Calculator
This page lets you calculate the AP gain from an M+
Artifact knowledge:
Dungeon
Select a dungeon
Black Rook Hold
Cathedral of Eternal Night
Court of Stars
Darkheart Thicket
Eye of Azshara
Halls of Valor
Karazhan (Lower)
Karazhan (Upper)
Maw of souls
Neltharion's Lair
The Arcway
Vault of the Wardens
Difficulty
Select a difficulty
+2~+3
+4~+6
+7~+9
+10 and above
Select a dungeon and/or difficulty


Photography is memory stored. It is amazing how we can travel back in time using photography! It is nostalgic. Below are three categories of my photography from the past. I hope you are going to like them. Check them out.


You must import the plotting libraries and get some historical data to create pie charts.
In this example, you create a pie chart that shows the weights of the banking securities in a portfolio if you allocate to them based on their inverse volatility. Follow these steps to create the pie chart:
unstack
method.close_prices = history['close'].unstack(level=0)
pct_change
method.daily_returns = close_prices.pct_change()
var
method, take the inverse, and then normalize the result.inverse_variance = 1 / daily_returns.var() inverse_variance /= np.sum(inverse_variance) # Normalization inverse_variance *= np.pi*2 # For a full circle circumference in radian
DataFrame
constructor with the inverse_variance Series
and then call the reset_index
method.inverse_variance = pd.DataFrame(inverse_variance, columns=["inverse variance"]).reset_index()
inverse_variance DataFrame
.inverse_variance['color'] = Category20c[len(inverse_variance.index)]
figure
function with a title.plot = figure(title=f"Banking Stocks and Bank Sector ETF Allocation")
wedge
method with design settings and the inverse_variance DataFrame
.plot.wedge(x=0, y=1, radius=0.6, start_angle=cumsum('inverse variance', include_zero=True), end_angle=cumsum('inverse variance'), line_color="white", fill_color='color', legend_field='symbol', source=inverse_variance)
show
function.show(plot)
The Jupyter Notebook displays the pie chart.


The action button component creates a large button with an icon, header, and details. These buttons can be used to allow users to pick an action during a branching point in the system.
The sky-action-button
component consists of three inner components: sky-action-button-icon
, sky-action-button-header
, and sky-action-button-details
.
fa-filter
icon, use filter
as the iconType
.


| DOSE: |
4 oz |
oral |
DXM |
(liquid) |
I planned to down a bottle o' tussin and go to the local theatre- I work there so I get to see all the movies scot free- anywayz- I drank a 4 oz bottle about an hour before the showing of I dreamed of Africa- frankly I was disappointed- I've done robo once before- and last time was pure madness- this time- I enjoyed my movie- but the shit wasn't kicking in hard- I was just slightly high.
the next morning I had to wake up for work feeling as if I had just run the boston marathon- I was dead tired- and I was shitting water the next day- I still think DXM has some potential- but I'll try a more closely monitored dose next tiume- and I think I'm sticking to pills next time- all in all- not an especially bad experience- but not especially good either.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


International Postcode Lookup API
Country Lookup
Country:
Country code:
Does this country use post codes?
City Lookup
City:
Postcode Lookup
Postcode:


publications
publications by categories in reversed chronological order. generated by jekyll-scholar.
2021
-
A wide-ranging Pseudomonas aeruginosa PeptideAtlas build: A useful proteomic resource for a versatile pathogenJournal of proteomics, 2021
2019
2018
-
Growth of cyanobacteria is constrained by the abundance of light and carbon assimilation proteinsCell reports, 2018
2017
-
A multicentric study to evaluate the use of relative retention times in targeted proteomicsJournal of proteomics, 2017
2016
-
A comprehensive Candida albicans PeptideAtlas build enables deep proteome coverageJournal of proteomics, 2016
-
Apoptosis of Candida albicans during the interaction with murine macrophages: proteomics and cell-death marker monitoringJournal of proteome research, 2016
-
Desarrollo de herramientas bioinformáticas para estudios de proteómica a gran escala de" Candida albicans"2016
2015
-
Proteopathogen2, a database and web tool to store and display proteomics identification results in the mzIdentML standardEuPA open proteomics, 2015
-
Proteogenomics dashboard for the human proteome projectJournal of Proteome Research, 2015
2014
-
A Candida albicans peptideatlasJournal of proteomics, 2014
-
Surfing transcriptomic landscapes. A step beyond the annotation of chromosome 16 proteomeJournal of proteome research, 2014
-
Subcelluar fractionation and several growing conditions to increase proteome coverage in Candida albicans PeptideAtlas2014


{% extends 'base.html' %} {% block head %} {{ form.media }} {% endblock %} {% block content %} {% load crispy_forms_tags %} {% if form.linkvalid %}
The password reset link was invalid, possibly because it has already been used. Please request a new password reset.
{% endif %} {% endblock %}


We examine dogs!
- leverage back-end e-commerce
- streamline world-class systems
- leverage customized users
- engineer revolutionary methodologies
- incubate one-to-one content
- utilize 24/365 supply-chains
- strategize plug-and-play bandwidth
- e-enable cutting-edge supply-chains
- benchmark open-source relationships
- mesh turn-key interfaces
- monetize transparent portals
- seize rich communities
- e-enable visionary methodologies
- monetize user-centric content
- productize collaborative applications


I spent a lot of my free time to learn GNU/Linux and I’ve always tried to be a Senoir System, Network and Security GNU/Linux administator.


2006: The Transatlantic Titans Square Off!
Last Updated Mar 2009
By Mark Bennett, New Idea Engineering, Inc. - Volume 3 Number 1 - January 2006
Disclosures and disclaimers:
Since this article deals with forward looking predictions - our best guesses - we wanted to remind our readers that our staff has worked at and/or had financial dealings with many of the vendors mentioned in this column. We have formal and infomal relationships with most of the companies mentioned here. Nonetheless, we strive to remain vendor neutral for the benefit of our clients. Also, because we are based in the US, much of our first-hand knowledge comes from this side of the Atlantic, so we apologize in advance if the article seems a bit "slanted" ??? actually you might be surprised by some of our conclusions.
Setting the Stage
2006 is on track to be the year of the Transatlantic Titanic Battle for Enterprise Search. As we mentioned in our 2005 top stories article, Europe's Autonomy, based in the UK, recently grabbed up the US-based leader, Verity Inc. This puts all 4 of the mainstay enterprise search product lines across the Atlantic.
Recapping the EU and US players:
The 4 established enterprise search product lines are now in European hands:
- Autonomy:
Autonomy's own flagship product line
Verity's well established K2 product line
The Verity Ultraseek product line - which has changed hands several times
- FAST Search and Transfer:
FAST's flagship FDS and InStream products
- Google
Google Search Appliance
Google Mini
- Microsoft
Bundled search inside of server products
Search within SharePoint
Search built in to their next major OS "Vista" (formerly Longhorn)
- Oracle
Oracle Text integrated with Oracle database products
- IBM
Omnifind
|
Many other Niche Players The US also features privately-held Endeca, which is making inroads into Enterprise markets. Significantly, Endeca is the only US search manufacturer to make it into Gartner's top "magic quadrant" in 2005. We mean no slight by not calling out the many other US and European search technology companies. If we were to list all of them, this article would double in length. The list above is either the currently established players, or the "800 pound gorillas" who hope to claim that title. Some of these other niche players see themselves as the next must-have total enterprise search solution; other vendors play in a more limited space, offering specific pieces of technology to more demanding projects. Is this a Fair Fight? If you look at the combined market cap of the 4 US companies, and compare it to the market cap of the 2 main European players, it comes to a ratio of about 200:1 That would seem to be a daunting number for the Europeans. However, Enterprise Search is not the core business (read: revenue stream) for any of US companies; this isn't a market they "must" win, so we believe they will continue to struggle. Just to be clear, while Google's public search is certainly great, it is not by itself an "enterprise" search implementation; it serves the entire Internet, not the content on private corporate networks. The "Google Box" is their entry in this enterprise search game, and it's discussed below. Pure Search Autonomy and FAST are extremely focused on search. We've always referred to FAST as the "bring it on guys" when it comes to any search application. And Autonomy now holds the other 3 of the top 4 engines. This is very important. And make no mistake, when a business needs to search a repository with millions of documents, they will likely be talking to Autonomy or FAST; their products are well known for scalability. These "David"s also have a few secret pebbles to cast. While the US "Big 4" are still struggling to get market penetration with their commodity search, FAST and Autonomy are continuously raising the bar on what basic "search" should encompass. We'll be detailing some this in upcoming issues. |
Sidebar: The Journey of Ultraseek Ultraseek has a long history and loyal customer base that loves this engine, and despite changing hands several times, it always seems to land on its feet. Ultraseek has now been owned by four different companies:
We love Ultraseek too! We have worked with it since 1997, under all three of its previous brands. We still encounter Ultraseek on various web sites and at client sites, it still has an active user base, and we expect it to be around for a long time to come. We do suspect that, for really high end customers and very large data sets, Autonomy will tend to push its own homegrown technology. |
A Detailed Look at the Players
Tactical Challenges for the Europeans
We do worry a bit about some of the ground level issues FAST and Autonomy face in the US market. Problems we hope they can avoid:
-
Visibility in the US: Both companies now have major offices in the US.
-
Less responsive: Do the US offices need to check in with the European Mothership before taking action. Will they be given the "autonomy" they need to function effectively in the US market.
-
Micromanagement of budget and staffing in the US
-
Different market: Do US prospects ask different questions than Europeans? For example, do US firms ask different questions about Quality of Service.
-
Product complexity: With the possible exception of Ultraseek (now part of Autonomy), all these products take a while to fully comprehend and implement. Many of the US "Big 4" offerings have similar challenges of course.
Below we list some specific thoughts about each of the players. First up, the Europeans.
FAST Growing Pains
Visibility and Access in the US
To their credit, FAST maintains a rather large presence in Massachusetts. There's plenty of corporate brain power resident there, so we believe they will be responsive. This location puts them in the strategic US Eastern time zone, and just a short hop from New York and New Jersey. And of course they have other offices major US markets. FAST does need to expand their US training program locations. Trudging to Boston for training this time of year certainly doesn't excite anybody. San Diego, San Francisco or Miami might get students' attention.Complexity of Technology
FAST is an extremely powerful technology, but with all of their recently added US customers, they are straining a bit in the US.
As much as we love FAST, it's not a simple "drop in" solution ??? this is quite different from the idea of the Google Box. However, trust us, if your application needs FAST, then the Google Box wouldn't have worked anyway.
Like any high end software, FAST systems need highly trained workers to develop and deploy solutions. Getting all these new customer projects implemented will take lots of hands. In the grand scheme of things, fast growth is probably one of the more pleasant business challenges to have.
FAST is aggressively pursuing implementation partners; we certainly laud this approach. FAST also wisely offers high end search hosting, as an option for customers who need to ramp up more quickly.
Action Items:
-
If you haven't seen FAST in action yet, you might sit in on a demo if you get the chance.
-
If your content is headed north of 10 million documents, this should be one of considerations on a fairly short shopping list.
-
FAST also offers an OEM version called InStream, it may fit some of your projects better
Autonomy Growing Pains / Verity Customer Retention
Visibility and Access
Autonomy's acquisition of Verity includes Verity's posh corporate headquarters in Sunnyvale, California, right in the heart of Silicon Valley. We would certainly expect them to heavily leverage that location, along with their other field operations.Juggling THREE Separate Product Lines
Autonomy is now the proud owner of three completely separate code bases, written by completely separate groups of engineers, and three somewhat disjoint sets of users:
- Their own Autonomy product line
- K2 - developed by Verity
- Ultraseek - originally developed at Infoseek
This is not a trivial situation to be in. The good news is that Verity has been maintaining and even enhancing Ultraseek for several years, and successfully retained some of the original engineers. They had even started merging some parts of the Ultraseek code base with their own K2 product line. So from a technical standpoint, the folks in California should be able to continue handling K2 and Ultraseek. And of course the fine folks in the UK have the namesake Autonomy code.
Support and professional services is probably the biggest challenge. We'd suggest a rather aggressive cross training program, vs. trying to compartmentalize and route calls, etc. A senior technical person who knows one search engine can certainly learn to support a couple more ??? we are living proof of this! Cross training provides a lot more flexibility in staffing.
Having call center staff in widely different time zones could also be worked into an advantage. Verity has had remote frontline support for years, so this will be nothing new to them. And both groups are used to supporting customers on multiple continents, so there's a lot of experience there. Autonomy will also get to pick and choose the best of the offices from each of the major markets both companies had offices in. This could work out really well.
Verity Customer Retention
With Autonomy's acquisition of Verity, many customers have asked us what we think. We don't think they are "nervous" yet, but certainly "intensely curious".
Autonomy Ultraseek Customer Retention
Autonomy has gone out of their way to say how wonderful and strategic the Ultraseek product is, and how it will form a cornerstone of Autonomy's lower end offering going forward.
This sounds really good, if they stick to it. Ultraseek has a very long and proud customer following and has survived its previous two transfers (from Infoseek to Inktomi, then from Inktomi to Verity). We really do hope Autonomy is sincere.
Verity K2 Customer Angst / Customer Retention
But what about K2? What's in its future? Autonomy has sent mixed messages on the product's lifecycle. On the one hand, they've said they will continue to maintain K2, but on the other hand their CEO has said something to the effect of "well, the integration of K2 indices into Autonomy's product is already complete".
This sounds a bit more tenuous, though not immediately alarming.
For companies that have recently renewed their K2 license, we say "relax". Sure by 2010, in 4 or 5 years, they should have migrated off of K2, but their recent Verity license renewal was probably only for 2 years anyway. In fact, Verity put quite a bit of effort into their new K2 v6.x, which continues to evolve their administration interface and feature set. Suffice to say that, for LONG TERM planning, Verity's K2 product should be absent; short term you're fine.
Although this uncertainly may be a bit unsettling for devout K2 fans, longer term these customers may feel right at home with the Autonomy product line. Like K2, it has many similar high end features. In fact these features may wind up being a bit easier to implement in Autonomy; some of K2's high end features required quite a bit of scripting and administration to access.
To Autonomy we say "Offer a concrete roadmap for K2 end-of-life, or ???transition' if you must mince words."  These are sophisticated accounts with money to spend, and they have no brand loyalty to you specifically. Meanwhile, FAST is coming on strong.
Rising Above K2?
Autonomy does have some other sexy, and possibly even useful, features to assist overloaded knowledge workers; sorry we can't give you more details at this time.
One forward looking area that we can talk about is handing non-textual content types such as audio and video. This isn't a must have item for many enterprise applications yet, but it could be in the next 5 years. Sure, audio and video editing has certainly become dramatically cheaper, for companies that need it. But more importantly, the mainstream portal sites like Google and Yahoo are adding video search to their public web offerings now. By itself, that doesn't justify a business case for implementing that in the Intranet; but we do believe that widely available public portal features do seed the minds of business executives, who may then see a fit within their own company.
Vertical search applications and media centric will see an immediate benefit.
In from the Cold
And then there are the stragglers??? the folks still running Verity's venerable Search 97 and other legacy products. We understand, we see this all the time; we realize that upgrading technology is tough in some environments.
More importantly, these stragglers are certainly aware of K2, and probably felt a bit bad about not having upgraded yet. To all those folks we say "Rejoice! Now you don't have to!" But these groups do need to plot a new course forward, possibly with Autonomy. Properly positioned, Autonomy might even turn this situation to its benefit.
Action Items:
-
If you're currently using K2 don't panic. But do start thinking about your plans for 2008, 2010, etc.
-
If you're using older Verity products, you might want to sit through some demos of Autonomy and FAST ??? they have some new features that you might not have thought of before.
The US Big 4 Respond
The US "Big 4" certainly won't surrender this year! Google, Microsoft, Oracle and IBM all want to be in the Enterprise Search space. All of them can claim they are already there, to some degree, and some of their marketing departments may be convinced that they've already won!
They will all come out swinging hard. We expect their biggest push will be driven by marketing efforts, vs. technology; brand name and available cash can certainly buy mindshare. Google has a marketing head start in terms of search engine brand name awareness and perceived credibility.
We wonder if the marketing efforts of the Big 4 will attmpt to play the "fear" card, warning US companies of entrusting their corporate resources to those "Europeans"; this would be a mistake if they try it, it's just not credible. Those in the know realize that half the products the Europeans are selling originated in America, and ironically at least some of the search technology the US Big 4 are touting was developed in Europe. And Europeans do not have a reputation for being careless or reckless, in fact quite the opposite is true.
Another marketing strategy they could try is to simply "dissolve" this category of software. If a search engine is already embedded in the software you use, they will argue, then why would you buy something else at extra cost? Microsoft and Oracle are in the best position to make that claim.
This might work for "generic" search applications, but every client we've worked with has at least one very non-generic business problems to solve, or they have a need to integration with very specific existing applications. Data lives in many different systems from multiple vendors - we doubt customers will believe that Oracle, for example, can somehow magically search enable all those different repositories.
And embedded search has also failed at many companies. Embedded search has already been included in other enterprise software and hasn't always satisfied users; we sometimes find ourselves search-enabling repositories that already have a search engine built it, because the embedded search engine had intractable problems. Any Big 4 pitch touting embedded search to these folks will have to add the caveat "and this time it's really gonna work!" ??? sounds like a tough sell.
"But we're GOOGLE for goodness sake! If we can search 100 Billion documents on the Internet, we can sure as heck handle your enterprise. And EVERYBODY LOVES GOOGLE!"
With a brand name now more recognized than Coka-Cola, it seems impossible that Google would have any problems selling enterprise search, and yet here we are. Although we can't name names, virtually every company we've talked to who has used the Google Search Appliance (AKA "The Google Box") has mothballed it. How can this be!?
Google's efforts will be helped by the fact that everyone's boss, and their boss's boss, and virtually every other VP and CEO in the land has heard of Google. At some point every one of them will have the "insight" to ask "Hey, why don't we just buy a Google Box?" Are you prepared to answer that inevitable question?
Google's Challenges
Here's some of the problems Google is facing:-
The "secret sauce" of Google is their page rank algorithm, looking at how many other web sites cross link to specific pages ??? the assumption being "the more links to a page, the more important it must be". Enterprise Intranets do not have this type of organic linkage ??? top level content is linked an established hierarchy, based more on "org charts" than on the usefulness of the content.
-
Of course users still pine for Google. When clients tell us that "search sucks", the more detailed analysis inevitably winds up with users asking the IT staff "why can't our XYZ search engine be more like Google?" Ironically it seems that even Google can't meet the expectations of corporate users who've given them the chance. Inside private networks the lack of Google's "secret sauce" leave users with just another cheeseburger with pickles.
-
Google also has a habit they will need to reevaluate: Google's public offerings are often in a state of perpetual Beta. This is fine for free services where individuals can take it or leave it, but doesn't instill any confidence in enterprise customers. Our clients ask more about stability, performance and cost, with less emphasis on "innovation", though customers do like to see some type of forward looking "vision" from each one of their vendors.
-
And unlike Verity and FAST, Google enterprise offering is a "black box" of sorts (actually, yellow or blue, depending on which model you buy). Verity and FAST have always allowed, and often required, developers to tightly integrate their own code and customize their search engines. Google does not allow for this level of control.
-
And even from their own public product specs, their "search in a box" solutions don't scale up to some of the private search application projects we're seeing. On paper, the Google v2 offering certainly addresses some of its earlier shortcomings.
-
The Google Box also raises security concerns for IT managers and corporate security officers. Google's requirement that their box be hooked to a phone line is an all out deal breaker in some environments.
Anther factor in Google's expansion from public portal and advertising mega-star status to Enterprise Sales is their lack of enterprise sales expertise. Questions have been asked about whether their technical and marketing prowess can directly translate into enterprise product sales success.
Google took some steps forward in 2005
To their credit, Google has already responded to some initial technical limitations with their "v2" Google Box.
Google has also come up with a new marketing campaign to court the IT community, offering "white papers" about search technology. We think this was a good move, as they are selling to a very well educated community.
Action Items:
-
Your CEO will eventually ask about the Google Box, you should spend some time understanding its capabilities
- If you're considering Google for your enterprise, ask about page ranking on a private network content
- If you've got millions of documents this box may not be for you.
- Ask about customization and integration
- Ask about security
Microsoft
"But we're Microsoft for goodness sake! We make Back Office, which holds the data you want to index, and OS that it runs on, so surely we can handle searching your data."
Microsoft has wanted to break into search for a long time, because they see the revenue that Yahoo, and now Google is making on it. But once again, that revenue comes from ads in the public search space, not from enterprise search software sales; so this has more to do with the search on MSN, not with enterprise search.
Yes, Microsoft sells lots of software to enterprises, which accounts for a huge chunk of their revenue, and yes, having search integrated with that software certainly makes sense. Microsoft WILL continue to make some traction into those environments with their search. Microsoft SharePoint customers, for example, already use Microsoft's search engine. And Microsoft's web server has built in search capabilities. And look for them to continue issuing press releases about new search initiatives.
Their upcoming Vista operating system (AKA "Longhorn"), will even have search built into the core OS. This will certainly help their penetration into generic enterprise search. But most of the high end enterprise applications we work on are NOT generic ??? high end applications have very specific requirements and are HIGHLY customized ??? we don't expect Vista to address that segment any time soon.
Action Items:
-
Do consider Microsoft search if you're already a Microsoft shop
-
Think about how "generic" your search requirements are
Oracle
"But we're Oracle for goodness sake! Your data is already IN our database, so of course we can search it. Beside, our new 64 bit version is gonna rock!"
Sadly for Oracle, a substantial fraction of the data that enterprises need to search is not in their database. "Not YET," they would respond. And whether or not their 64 bit version addresses scalability concerns remains to be seen. Oracle's mistake was not buying Verity while they had the chance ??? what were they thinking!?
And like our previous 2 contestants, we say "follow the money". Oracle makes their primary dollars on database software and related products; fulltext search is certainly a related product category, but no their core technology. You don't see people running out to buy Oracle to solve a search problem. The companies who are using Oracle Text already had their data in Oracle; that's how it works, not the other way around. search is not their primary revenue stream, Besides, their recent Peoplesoft acquisition promises to keep them adequately distracted.
Action Items:
-
If you're already an Oracle shop, maybe take Oracle's fulltext product for a spin.
-
Consider your scalability requirements.
IBM / Omnifind
"Hey, we're IBM. And would you like some Blade Servers with that?"
We've heard some good things about Omnifind, although we're not sure how much time it takes to actually deploy.
IBM certainly has some quality software out there. We salute them for Web Sphere, and their contributions to Eclipse, Linux and other open source projects.
But since Omnifind is actually just part of their strategy to sell more hardware, it means this is not a "make or break" business for IBM either, so again we think it won't compete as effectively. Reiterating, we do hear good things about Omnifind, though in 2006 we'd actually like to play with it first hand.
Action Items:
-
If you're an IBM Blade Server shop, maybe take Ominifind for a spin
More Consolidation in Enterprise Search?
Consolidation is the sign of a maturing industry, and is often a net positive for customers. Like the database companies of yesteryear, we expect the enterprise search engine consolidation to continue. This market trend may a bit murkier to follow, because overall the phrase "search engine" is much broader and includes the web portals and vertical search sites, and this is not the enterprise search market we're talking about.
The Big 4 US firms certainly have the capital to acquire anyone they desire. And Verity (now part of Autonomy) certainly has a track record of acquiring other software companies. As we mentioned earlier, there are plenty of other companies in this space, it's certainly a buyers' market.
US Market Listings
Our staff financial guru believes FAST and Autonomy would benefit, from a visibility standpoint, by being cross listed on one of the US exchanges. We've heard nothing about this actually happening of course.
Mondosoft Acquired?
We suspect Mondosoft, another European enterprise search vendor, will eventually be acquired, possibly under favorable terms. Rumor has it this would suit them fine. FAST or Autonomy would make a logical home, but if they take too long somebody else will scoop Mondo up. We're not so sure US companies would find Mondo a good fit.
What About Asia?
Vocabulary: "CJK" (Chinese, Japanese and Korean) Refers to information systems that handle these and related Asian languages.
With all this focus on the US and Europe, what about the East? Sure, the events of 9/11 put a temporary focus on Arabic. But Mainland China is coming online, in a HUGE way, and it is becoming the driving factor in expanded CJK support; the main focus is to support Simplified Chinese. China's economy will eventually be bigger than the US's, at least in some sectors, and their citizens often do not speak English.
The expectation of search functionality and localization has been steadily rising. This is not 1995, and just supporting the common CJK encodings and "Unicode" is not the same as having a complete CJK Asian product offering. And for companies doing business in Mainland China, there are additional filtering requirements, and potential criminal penalties for getting it wrong.
India's economy is also coming online, with its own native Hindi speaking population. They also need some attention.
In a future issue we will detail what real support for Asian languages should mean.
Good News for Basic Chinese Search
Other Asian economies are already "online" and have been deploying search software for quite some time. This means that at least basic CJK support is widely available.
If you work in a multinational or medium to large company and you don't handle Chinese content yet, you probably will soon. "Chinese" in this context typically means "simplified Chinese" (vs. "traditional Chinese"). The good news is that all major search engine and database vendors now support Unicode, and can convert data from other encodings.
Encoding Issues
As long as your original content is correctly and consistently encoded, the software you'll use in 2006 will probably handle it. Windows, Unix, Java and Python all handle Unicode as well, although they vary in the specific details of how it is encoded. Contrary to what some casual observers might think, there are different "dialects" of Unicode, in terms of how the actual bytes are stored and transmitted.
It often comes as a surprise to casual observers that Unicode has expanded beyond its original 16 bit 65,535 character grid. Most Unicode applications still fit into the original 16 bit bounds (called the BMP, or "Base Multilingual Page"), but a few applications need the later more expanded character set.
We've also found that companies are often surprised by how inconsistently encoded (and often incorrectly) their multilingual content is. The litmus test of "well, Internet Explorer can display it" is not even close to sufficient; IE is very forgiving, other programs are often not.
Action Items:
-
If your application's requirements go beyond the usual 16 bit Unicode BMP (Base Multilingual Page) then you'll need to ask vendors much more specific questions.
-
If you've never even heard of BMP's or UTF's and are planning a multilingual application, you have a bit of homework to do.
-
When you ask vendors about Asian language support and they reply with a quick "no problem", or "sure, we support Unicode", ask some follow up questions! There's more to multilingual support than just supporting Unicode.
-
Hire or partner with some native language speakers. Do NOT trust your Chinese, Hindi and Arabic development and QA solely to English speaking staff (or other Romance language speakers). The problem is that badly mangled and completely mis-encoded Asian text still looks like "Chinese" to your average American engineer, let alone distinguishing Simplified vs. Traditional Chinese, or sorting out Korean from Japanese content. Westerners can rarely tell the difference!

Conclusion
2006 will certainly be an interesting year. The traditional ENTERPRISE search powerhouses are now in Europe, but the US boasts the software industry's largest behemoths. Let the transatlantic battle for mind and market share begin!
We say "follow the money". Aside form Google, the other US players are not making their primary revenue from search. And Google's "search" revenue is actually advertisement dollars from their public portal, not software licenses. US firms have the marketing edge, and will push hard, but if the Europeans can continue to execute, they will remain very competitive.
And finally, amid all this US / EU attention, Asian markets should not be taken for granted by either side. They have money to spend, lots of brainpower, and rising expectations about what is possible. Hindi and Arabic content also needs quality search solutions.
If you disagree, please write us! We'd love to include your viewpoints and letters to the editor. For example, if you're a happy Google Box user, please let us know. Or if your company has had Autonomy deployed in large projects, we'd really like to hear about it.


--- layout: layout --- {% assign values = "qualifications|accreditations|degrees|certificates|training|lifelong learning|licences" %}


The hilvl programming language
Check it out on
GitHub
Code:
// Edit this code! @ var foo = (1, 2, 3) @ var bar = 0 @.foo loop IO print ("Current element is " + (@.element as string)) @ set bar = (@.bar + (@.element)) @.bar
Output:
Console:


Ace Cloud
Home
(current)
Blogs
News
Music
about
contact
lang
signin
Ariana Grande
play now
Britt Nicole
play now
Christina Grimmie
play now
Colette Carr
play now
Cover
play now
Ellie Goulding
play now
Fifth-Harmony
play now
Fifth-Harmony-Juntos
play now
G6 Fasstt
play now
Giggs
play now
Havana-Brown
play now
Inna
play now
Jessica-Mauboy
play now
Kellie Pickler
play now
Kristinia DeBarge
play now
Late Night Alumni
play now
Marco Polo
play now
Paulina Rubio
play now
Britt Nicole
play now
Ransom
play now
Rebecca-Ferguson
play now
Rich Gang
play now
Soraya
play now
Stooshe
play now
Sway
play now
Tech N9ne
play now
The Saturdays
play now
The Wanted
play now
Tori-Kelly
play now
willpower
play now
ABOUT
We’ve been working on Coding on Ace for the all our lives. A groundbreaking tech deserves such dedication, huh? If you’d like to learn more, or are interested in a job, contact us anytime at
@AceGroup
PRODUCT
Features
Examples
Tour
Gallery
APIS
Rich data
Simple
Real time
Social
LEGAL
Terms
Legal
Privacy
License


Thai man charged with murder of his cousin at Missouri restaurant
by Coconuts BangkokA Thai man was charged Monday with second-degree murder in the killing of his 23-year-old cousin at a Thai restaurant located in the U.S. state of Missouri.
Porntrep Phonjaroen, 25, is accused of shooting and killing his cousin at the restaurant where he worked Saturday night, according to court documents. Upon his arrest, Porntrep reportedly confessed to shooting Vasinee Sankra – a scene captured by the restaurant’s security system – through an interpreter, saying he was upset with his cousin’s work habits.
Police called to the Thai Spice restaurant just before 7:30pm found Vasinee on the kitchen floor.
The restaurant was open at the time of the shooting. One patron said she heard a single gunshot and saw a woman fall to the ground while she was eating near the kitchen entrance, according to the Kansas City Star. Though people rushed to try to save Vasinee, she died at the scene.
The customer then repeatedly asked staff who was responsible, at which point Porntrep reportedly spoke up and said “I did it,” according to the patron’s testimony to police.
No other injuries were reported.
Prosecutors have set his bond at US$200,000 (THB6 million.)
Related:
Legal clerk charged with murder after shooting gunman in court
Thai man behind massacre of 5 family members arrested
Police hunt for Thai man who allegedly killed 5 family members, including pregnant wife


Update Preferences
You can check to see if a new version of Permanent Eraser is available by clicking the Check Now button the in the Update Preference pane. If a new version is available, you will be notified.
You can check to see if a new version of Permanent Eraser is available by clicking the Check Now button the in the Update Preference pane. If a new version is available, you will be notified.


Before Change
for _ in range(100):
results = trainer.train()
print(results)
if results["episode_reward_mean"] > args.stop:
sys.exit(0) // Learnt, exit gracefully.
sys.exit(1) // Done, but did not learn, exit with error.
After Change
"use_pytorch": args.torch,
}
stop = {
"training_iteration": args.stop_iters,
"episode_reward_mean": args.stop_reward,
"timesteps_total": args.stop_timesteps,
}
results = tune.run(args.run, config=config, stop=stop)
if args.as_test:
check_learning_achieved(results, args.stop_reward)


{{extend 'layout.html'}}
{{=T('If you have pending payments (new status), reload this page to check for status updates. ')}}


Prezentare HTML
Normcore whatever organic meggings man bun, godard pok pok live-edge hoodie scenester salvia succulents iceland XOXO 3 wolf moon. Banh mi gluten-free ethical, food truck neutra edison bulb blue bottle XOXO beard.
Normcore whatever organic meggings man bun, godard pok pok live-edge hoodie scenester salvia succulents iceland XOXO 3 wolf moon. Banh mi gluten-free ethical, food truck neutra edison bulb blue bottle XOXO beard.


--- layout: post title: Medium vs Technology Stack date: 2011-05-31 00:00:00 categories: business interfaces-&-interaction personal software-development ---
I really like this post about "the end of progressive enhancement", because it draws a distinction I've been looking for for a while - between web-as-media and web-as-technology-stack.
I've been having some trouble, sitting here in mobile-land, with the idea that a native operating system should run a web browser, JavaScript framework, and application JavaScript atop one another in order to emulate the native operating system. The whole notion seems inelegant (HTML, CSS, JavaScript, plus your server-side gubbins to emulate native apps which could be written in Java, Objective-C, etc) and inefficient; and efficiency matters more when you're battery-powered.
So I like the idea that my scepticism over "web as technology stack for delivering native-looking apps" and enthusiasm for "web as medium" can be reconciled :)


The Engadget Podcast: Do you need Apple's AirPods Pro?
Wireless earbuds are here to stay -- and they're finally worth buying.
by Devindra HardawarThis week it's all about computers in our ears, or hearables, if you prefer. Apple announced the long-awaited AirPods Pro on Tuesday, but even though they helped popularize wireless earbuds, now just about every tech company has their own pair as well. We chat about what's new with the AirPods Pro, as well as how to find the perfect pair of earbuds for you. Plus, we talk about the state of smartwatches. (Note: This episode was recorded before Google's Fitbit acquisition was confirmed.)
Listen below, or subscribe on your podcast app of choice. If you've got suggestions or topics you'd like covered on the show, be sure to email us or drop a note in the comments! And be sure to check out our other podcasts, the Morning After and Engadget News!
Subscribe!
Links
- AirPods Pro hands-on: We can already hear the difference
- Sony WF-1000XM3 review: Simply the best true wireless earbuds
- Jaybird Vista review: The best true wireless earbuds under $200
- Now is the time to buy true wireless earbuds
Credits
Hosts: Devindra Hardawar and Cherlynn Low
Producer: Ben Ellman
Music: Dale North and Terrence O'Brien


Custom UI cannot be displayed. The used Config UI X version is not supported!
Welcome to
TadoPlatform
Homebridge plugin for Tado devices
Welcome to
TadoPlatform
Homebridge plugin for Tado devices
Start
To start the process, we need some data from the home you want to add in homebridge.
Please fill out all marked fields.
Username
*
Password
*
Next
Devices are searched.
Please be patient for a moment.


{% extends 'base.html' %} {% block head %} {% endblock head %} {% block content %}
{% trans %}Save the graphs you need and get our free content in your e-mail. Signing up gives you access to exclusive resources to facilitate your research.{% endtrans %}
{% trans %}Free Sign Up{% endtrans %}


Powerpoint Templates
Generate more leads with an effective text message campaign. Mix and match slides from multiple templates to create a multi-media slide show.
We will quickly bring your brand on to a PowerPoint template.
Three slides from scratch (welcome slide, main slide, info slide). Use these with any presentation you want to give.


\(\oint_C\mathbf{B.dl}=\mu_0 \mu_r \sum I\)
Consider a solenoid inductor, composed of N loops of current-carrying wire, which can be considered infinitely long except at the edges.
The magnetic field inside the solenoid can be found by painfully applying Biot-Savart law or by simple application of Ampere's law.
\(\mathbf{B}\) inside the solenoid can be considered as constant, 0 outside of the rings and \(\mathbf{B.dl}=0\) on the perpendicular trajectories. The only part contributing to the loop integral is the one inside the solenoid.
On that path, \(\mathbf{B.dl}=|B||dl|\). Therefore:
$$\oint_C \mathbf{B.dl}=\oint_C B\, dl = \mu_0 NI $$
$$B\times L = \mu_0 NI$$
$$B = \frac{\mu_0 NI}{L} = n\mu_0I$$
A toroidal inductor is composed of loops of current wrapped in a donut shape - ie a wire wound around a ring N times, carrying current I.
For C1, there is no current comprised inside the loop.
For C3, there are as many current wires carrying current out of the page as towards the page, and therefore the net current inside the loop is 0.
Therefore, for C1 and C3, \(\oint \mathbf{B_1.dl}=0\).
For C2, a loop passing through the center of the toroid, \(\oint_{C_2}\mathbf{B_2.dl}=\mu_0 N I\). Since there are N wires carrying current I into the page and no current going out: \(\sum\limits^N{I}=N\times I\). If the radius of \(C_2\) is \(r_2\):
$$\oint \mathbf{B_2.dl}=2\pi r_2\times B_2= \mu_0 N I$$ $$B_2=\frac{\mu_0 NI}{2\pi r_2}$$