text:
Huge boobs eurobabe gives head and gets pounded for money pornstars european
Group Sex, Slavery
833pisamantha
1422 Likes 814 Viewed
Jessica always loved the idea of a small town. Growing up in LA, she learned quickly that she wasn't the big city type at all. As soon as she was of legal age, she moved out of her parents house. It wasn't that she didn't get along with them, in fact, they were probably a lot closer than most families. She just wanted to start a family of her own in the quiet setting that was the rural areas. Moving to the Oregon coast, she soon found out that she loved the area as much as she'd imagined.
She waitressed while attending a small community college where she met her husband, got married, and had three children. She soon went back to school to finish her degree, and ended up running the business ends of the very restaurant she had previously waited tables for.
Being promoted quickly, she soon found herself owning the place in all but title. She didn't mind however, as the pay was extraordinary, and she held all of the power, yet the actual owner held all liability. It was a win-win for her. Her husband was a sheriff for the local county police, and her kids, who were seven, five, and four, kept her as happy as could be. She kept in touch with her family in California and was actually rather close to her in-laws who lived across town.
Her life was going as perfect as she could imagine. There was only one issue that she could point out about her life. Her sex life was, frankly, rather boring. Being a well-respected family in the church she grew up in, she was raised on morality and principle that most of the modern world disagreed with.
That being said, she was a virgin up until she had met Tom. In fact, it was months after he proposed to her that her fiancee had even gotten to sleep with her.
But once she was married, she went wild with lust, experimenting in any way she could imagine. Quite often, she would surprise him at work with lunch, only to play in his handcuffs as he took the role of "bad cop". She was 28 years old now, but often, still had the sex drive of a teenager. Maybe it was due to her many years lost, or maybe just her wild nature.
Luckily for Tom, her genes were perfect, as she was a gorgeous looking 28 year old, and if her mother was any preview, she would keep her fine looks for many years to come. She was red haired, with a little blonde showing through. Her hair was short, dangling from her face in their natural subtle curls. Her rather large breasts hadn't developed any hint of sag over the years, probably due to her workouts, and her ass was as perfect as an 18 year old's.
Her husband truly was a lucky one. She had started dropping hints to Tom, wishing to increase their sex drive. Buying sexy clothes, fun toys, and most recently random places, all ranking high on her wishlist. She had tried everything she could to curb her appetite, and it worked for a while, but she was again starting to feel bored.
This was the current conversation she was having at work. As she had once made it from the bottom, she made it her priority to be friends with everyone, from all ranks of the company. She was quite close with a few of the waitresses, namely Karen, and helped them out when it was a slow day for her. As it was a slow hour in general, the two girls were busy gossiping as they bused the empty tables. "It's not that Tom isn't great in bed, trust me. It's just the fact that I always want to try something new.
I think he's running out of ideas," Jessica whispered to her subordinate friend. Karen smiled. "Well, maybe you should bring someone else into the mix? That's always a fun suggestion. How do you feel about letting an extra girl join you guys? Or even being with two guys at one time?" "I don't know. doesn't that defeat the purpose of marriage?" Jessica pondered, more to herself than to Karen.
She turned to grab a napkin that was missed from another table when she made eye contact with a man, about 40 years of age. He quickly flipped his newspaper up, avoiding direct contact any more than he had to. Jessica wondered if he had heard her talking.
Karen continued, not noticing. "Well I think if you are both present and okay with it, it can actually strengthen a marriage," she explained. The man slowly lowered his newspaper again, Jessica keeping her eyes on him the entire time.
This time, he locked his eyes onto her. Although she couldn't see his mouth over the paper, she could assume it was grinning devilishly. She felt her face flush red as she turned, leading Karen back to the kitchen in a hurry. "I'm pretty sure that man heard us talking. It was like he was sizing me up or something," Jessica explained her change of character. "Oh wow, I didn't even see him come in," Karen looked through the small metal window from the kitchen to the outside.
"I don't think he's been helped. Why don't you go out and tease him a little bit?" Karen said with an equally evil smile.
"I will do no such thing! He's creepy! And like 40 years old!" Jessica yelled in a hushed tone. "Are you telling me you've never teased a guy that had no chance with you? Now you MUST go out there!" Karen laughed handing her a notepad and pen for the order.
With a helpful push out the kitchen door, Jessica found herself back in the dining area, the stranger noticing her. "No turning back now," she thought to herself. She walked up to him, all smiles. "Good afternoon, sir! I am terribly sorry about the wait. Our hostess failed to inform us of a customer." "That's quite alright," the man smiled back. "I know the sign says wait to be seated, but she was on the phone and looked very busy, so I decided to steal a booth." "Well can I get you started off with a drink?" she asked, pulling her routine out from her days of hosting tables.
"A draft thank you. And a glass of water to go with it," he ordered. "I will get those and be back in just a sec," she started, handing him the order menu and brushing against his shoulder with her hand in small flirtation. The older man tried to sustain his grin from the attention, but was failing.
"Thank you very much.erm." he searched her chest, not finding a name plate. "Oh, sorry about that. My name is Jessica, and I'll be taking care of you while you're here!" she announced with a huge smile, another common greeting from her waitressing days. "Well thank you, Jessica. If I may ask, you seem quite overdressed for busing tables.
Much different than most of the other waitresses in here," he noted her white professional blouse with black vest and skirt. "Oh, well you see, I usually work on the business side of things," she explained. "But today was a particularly slow day, so I decided to help out up front, only to find it was just as slow up here. Go figure." "Well lucky for me, I guess," the older man commentated. Jessica noticed his eyes still hadn't left her chest from his name tag search. She turned, a little uncomfortable, and walked back to the kitchen.
"Oh my gosh that was SO awkward!" Jessica announced in a hushed tone to Karen. "Oh, he is TOTALLY biting too. I bet he's contemplating with himself RIGHT NOW whether he has a shot with you or not!" Karen commentated, as she had been watching from the kitchen's small window. "Shut up," Jessica squeaked, grinning at the fun. "There's no way.
He seems friendly enough," Jessica explained as she poured the man's beer. "Anyway, it was fun, but I have to act professional now." "Bullshit, you do!" Karen countered, taking full advantage of her friendship with her boss.
"You have to keep going! You know you want to play with him more!" "But I can't." the woman battled with herself in her mind. "Well." she started, but was quickly cut off by Karen. "Good!" the subordinate assumed her argument had persuaded her boss.
"Now here, this will help!" She quickly unbuttoned the top three buttons to Jessica's blouse, revealing more cleavage than the 28 year old had ever dared to show in public. "Karen!" Jessica shrieked as her employee tugged at her bust. "Not okay in the work place!" she scolded before quickly adding "Or any place else, mind you!" Despite her fury, she didn't even attempt to rebutton herself as she headed out the kitchen doors back into the dining area once more.
"Here you are, sir," she announced her presence as she circled around the stranger. "Ah, thank you very much," the man lowered his newspaper, his eyes quickly finding the two orbs dangling in his face as Jessica was bending over to set the two drinks onto the table. "Have you decided what to order, or should I give you some more time?" Jessica asked, still slightly slouching herself to continue her tease.
"I, uh. I will have the roast beef sandwich with the au jus sauce please," he managed to control himself, dragging his eyes back up to Jessica's smiling face. "Okay, that'll be one french dip," Jessica continued her routine. "And you have a choice of side salad, soup, or french fries. Which would you prefer?" "Oh, ah soup please. What is the soup today?" he asked her. "Today is. Thursday right? It'll be the bacon and potato," she managed to remember.
"Oh, sounds great, thank you!" the man concluded. "No, thank you!" Jessica countered. She announced that the food would be out soon. As she walked away, she swung her hips ever so slightly so that her butt grazed against the man's shoulder. She grinned, now out of his line of sight, as she headed back to the kitchen to discuss her latest happenings with her friend. "You were right, this IS a lot of fun," she admitted to her colleague.
"I told you! I can't believe you've NEVER done this before. It's one of my favorite things to do," Karen responded with another grin. "Not while at work, I hope," Jessica teased. Passing the order off to the cook in the back of the kitchen, the two girls were able to gossip some more about the older man.
"How daring are you willing to be?" Karen asked, her eye's narrowing mischievously. Jessica paused in thought before replying. "I don't know. What did you have in mind?" "Well first, bite your lip a lot when you talk. and shuffle your legs. It'll make him think you're getting.
interested. And add more verbal hints.
Talk about how he's cute and stuff like that," Karen explained. "I can try some of that," the rookie-flirter decided. The duo schemed for quite a few minutes as the cook soon interrupted them, announcing the soup and sandwich's completion. Jessica took a deep breath as she reached for the plates.
Pushing out into the dining area once more, Jessica found the older man's eyes had already locked onto her. As she pranced his way, she could feel her boobs bouncing with her steps, until she finally made it to her patron's table. "Here you are, sir," she bent down, again purposefully shoving her mass cleavage into the man's view.
Rising back up, she added in, "Is there ANYthing else I can do for you, sweety?" "Oh, no thank you," the man declined, although he seemed deep in thought, his eyes focused obviously well-below her face. "Actually, I'm almost dry on water. Do you think I could get a refill?" "Anything for a cutie like yourself!" Jessica tried to subtly add in, without going over-the-top and ruining the act.
And it seemed she had succeeded, as the older man glowed at her attention, smiling at her most recent comment. She started back for the kitchen, walking past the man to get his water, when suddenly, she stopped cold.
Well actually, she didn't stop on her own accord. Instead, she felt the man's left arm grab hold of her waist, holding her in position as his right hand firmly gripped her right butt cheek. Jessica's eye's shot open, turning her head to scold the customer with her eyes, but found his face unchanged, nothing but pure lust showing in his face as his hand squeezed the young hottie's ass with gusto. Jessica gently tried to pull away, now seeing that her flirting had resulted in more than she had desired, but found the man's grip was stronger than she had expected.
She slowly felt his left arm come into contact with her groin, causing her to jump away, quickly breaking the man's grip. "Excuse me! That is QUITE enough!" she shouted, throwing discretion aside.
"If you EVER lay another hand on me, I won't think twice about slapping that smile right off your face!" she warned. The man's smile indeed faded in an instant, but a few seconds later was replaced by anger. "Oh I see, it's okay for you to flirt and get your rocks off on an older man like me, and you get to walk away, guilt free at my expense!
But when I take it for face value, you act like a little BITCH and yell at me? You won't be the only one that throws a slap or two! If you act like a no-good slut, that's exactly what I'll treat you like! Do you hear me, whore?!" Jessica was taken aback, tears were already welling up in her eyes from the guilt and shame of the stranger scolding her for her actions. "If you you keep treating men like this, you'll get what's coming to you, do you understand me?!" he continued in his fit of rage.
"Now get me my water, slut. And be quick about it." As he sent her off, he slapped her ass once more for good measure before she hurried out of reach. Hurrying back into the kitchen, Jessica realized she had been holding her breath. Finally exhaling, she starting crying from the pent up stress.
"That was. unexpected.
I am SO sorry, Jessica!" Karen offered. Jessica waved her off, explaining that it was her own fault for taking it that far, but that she thought it'd be a good idea if Karen took the man his refill.
Karen, who was feeling just as guilty about the ordeal she had overheard, agreed, and was quickly out the door with the water. Jessica just watched from the kitchen window as Karen brought the man the full glass, trying to keep professional as she did so. It didn't take long for the man to counter with another scolding.
"Oh, so now she's too embarrassed to bring it herself, hmm? Well you tell HER that I don't need a second slut to do her job for me. You both are nothing but bitches!" The old man stood up, and for a second, Jessica thought he was going to actually hit Karen, but was relieved to see the man turn and march out of the diner, announcing that he was not paying, due to the rudeness he had received, and that both girls had better act right, or they would be treated as their sins deserved.
Karen came back into the kitchen, slightly shaken, but otherwise unharmed. "Okay, so I'm never telling you what to do again. Ever," she concluded, to which Jessica couldn't have agreed more.
The remainder of the day was fairly uneventful. The unpaid sandwich was taken out of Jessica's pay, which was an acceptable trade for the man leaving. Few customers came in until the dinner rush, but by that time, Karen was off duty and headed home.
Another pair of employees, Jason and Katelyn, replaced her, and Jessica rarely left the back rooms all evening.
Finally it was closing time, and Jessica was all too eager to get home. She dialed her husband's number to let him know she was on her way, and he informed her that he was already at home waiting for her arrival before he set the dinner table. Shutting down the restaurant and locking up, Jessica quickly made her way across the parking lot.
Jason sat in his car, as he usually did, making sure all of the ladies made it safely to their own vehicles, and Jessica was able to climb inside without worry. Starting up her car, she was able to pull out of the parking lot, relieved to end the day. Driving toward her house, her mind replayed the day in her head. Although she had been very upset with the man's actions, she couldn't help but allow his words to sink in.
She HAD been acting like a slut. And it was horrible of her to tease him like that. She felt awful about herself, trying her best to refrain from crying the rest of the way home. She pulled off of the main road, onto a suburban route that wasn't frequented very often, but noticed that the car behind her had taken the same turn. Now that she thought about it, that car had been behind her for quite a while.
Deciding to play it safe, she took another left, not heading directly towards her house. To her dismay, the car again followed suit, remaining about 30 feet behind her.
A little worried now, she took a third left at the next intersection. With a sigh of relief, she noted that the car kept going straight. A bit more relaxed, she figured it was safe to head home, and arrived without further incident. Pulling into her driveway, she took a deep breath, bringing herself back together. "It's over, and you never have to deal with anything like that again. Now go inside and eat dinner with your husband," she said aloud to herself.
Opening her car door and leaning to stand up, she had no idea what hit her. One moment she was reaching for her purse to get out of the car, and the next, she felt nothingness come to her as her world faded to black.
------------------------------------------------------------------------------------------------------------------------------------------------- When Jessica awoke, her entire body was sore. She attempted to move her fatigued shoulders, but found herself restrained behind her back.
As her senses came back to her slowly, she noticed that she was in a dark room, far too dark to see. Her body, which she realized was completely naked, was laying face down on a cold table. Her ankles were also tied, she noticed as she couldn't move her legs either.
The soreness and shock trumped all other emotions at first, as she gathered her situation and surroundings, but soon enough, her fear came creeping in, wondering what in the world this all meant for her. Suddenly she jumped, as she felt hands gripping her bare ass. She tried to yell out, but her voice was cut off by a makeshift muzzle. It seemed to be a bundled up pair of clothing material, and now that she noticed it more clearly, she was pretty sure it was the panties that she had been wearing earlier that day.
"Oh, don't try to speak," an unnaturally low voice instructed her.
"I didn't want you alerting anyone as you woke up." Against orders, Jessica screamed into her panties, which successfully muffled her voice. She would at least get her point across that she wouldn't be told what to do.
She attempted to squirm to face her assailant, but found herself unable to shift her position at all, most likely due to more constraints she couldn't yet feel, her mind still in a haze. She was answered quickly by a swift slap on her ass. The sting caused her to yelp once more into her panties, but the message was portrayed that her attacker had all the power.
She settled down, awaiting their next move. "Are you going to be a good girl?" the low voice asked. Jessica just laid there, unresponsive, wondering what else she could do to fight at the moment.
Deciding to wait until their guard was down, she nodded her head as best she could. "Good!" the voice cooed back. "Now if you promise me you won't scream, I'll un-gag you. But be warned. One shout, and you will not only be re-gagged, but treated with pain as well. Understood?" Again, Jessica responded with a yes, thinking in her mind that the attacker would soon lose their control over her.
A pair of gloved hands reached around and removed her panties from her oral cavity. She coughed and spat as her mouth was clear once more, before regaining herself enough to speak.
"What. what are you going to do?" she asked, the fear bleeding through her words. "Oh, don't play coy with me," the voice replied. Jessica noticed that the person was purposefully making their voice much deeper and lower on purpose.
"You know exactly what I'm going to do to you." Jessica's eyes widened as her mind already knew the answer, but the voice simply paused, allowing the thought to sink in fully.
Then, after a few moments, it asked her, "What am I going to do to you, slut?" Her mind reeled at the use of the word 'slut'. It was as if her brain was just fully waking up, as the entire day's events came rushing back to her. The restaurant and the teasing. The older man and the car ride home being followed and holding back tears. Was that what this was about? Had that older man abducted her to prove a point about teasing?
Jessica's thought process was stopped short as she felt a painful slap to her bare ass. "Answer me!" the voice demanded. Jessica stumbled with her words before finally making her mouth and tongue cooperate. "You're.
going to tease me back, and then let me go?" Jessica threw up her desperate plea. She was answered by another swift smack on her butt cheeks, causing her ass to glow red with the stinging.
Jessica yelped, but her voice was cut off as she felt a hand reaching around and grabbing her throat. She felt the warm breath of the assailant less than an inch from her ear. "I'm going to fuck you," the voice promised in a low whisper, sending chills down Jessica's spine as the reality sank in. Grabbing on to her last shred of hope, she begged to her attacker to stop. "My husband is a cop! You're not going to get away with this!" she screamed, hoping to scare away the man.
"Oh, I don't think your husband will be getting in the way, Jessica. He will be. well taken care of tonight. Look at your surroundings.
Can you see where we are?" The deep voice merely sneered at her attempt. Jessica looked at her surroundings for the first time since her eyes were able to focus with the small amount of light.
It was then that she noticed. It couldn't be. The blue sofa only a few feet away from her. The unlit lamps. The pictures hanging on the wall. They were in her newly furnished basement! "How did you get into my house?!" Jessica's stomach turned in knots as she thought of all the possibilities.
Was Tom okay??
Had the man hurt her family?! The voice chuckled at her realizations that she was indeed in her own home. "Poor Jessica. It must be so unnerving." Jessica felt two fingers (the attacker must have un-gloved) slowly caress her pussy lips from behind, forcing her to scream out once again.
"I am BEGGING you to stop! PLEASE!" The fingers didn't listen as they started inserting themselves into her slightly moistened pussy.
"What is this?" the voice asked. "Arousal? Interesting." Jessica could practically hear the man's smile in his voice as she wondered herself why her body would be enjoying this. But she didn't have much time to think, as soon, the fingers were jabbing at her slit, pistoning in and out like a makeshift dick.
"Please let me go!" Jessica screamed, shaking off the feelings that her body was giving her. "I'm sorry, my dear, but now that I KNOW that you're loving this, there is no way I am going to stop," the voice laughed. "But don't worry, I won't fuck you senseless until you beg for it." Jessica scoffed, repulsed at his confidence. "Fuck you asshole, I hate this and you know it!" As soon as the words left her lips, Jessica was forced to shudder as the man shoved 4 fingers deep inside of her.
She cried out, but she couldn't hide the pleasure in her voice, and it sickened her. "You don't even believe your own words, do you?" the voice laughed.
The man coughed, his throat sore from making his voice sound so low, but he recovered and continued. "Your mind knows how badly you want this, you just don't want to admit it to yourself yet. But you will." he trailed off. Jessica merely hung her head as her cunt continued to be violated by the man's fingers, her tears were starting to dry as her emotions became numb to her surroundings. As if sensing her detachment from her situation, she was given three swift spankings, causing her to yelp, her ass glowing red once more.
"WHY?!" she demanded, but was only answered with more slaps to her pained ass. "I'm sorry!!" she offered, pleading for the beating to end. "I think it's time for you to ask me to fuck you," the voice toyed. Jessica again brushed him off, making sounds of annoyance and disbelief.
"That will never happen, asshole." "Fine," was all the voice said back to her. Within seconds, she felt the head of a dick rub against her labia, causing her body to twitch and fight her shackles. "What are you doing?!" she screamed.
"Please don't do this! It's not to late to let me go!" "Odd," the man replied, unmoved. "That doesn't SOUND like you asking me for a good dicking. Yet your pussy is practically drowning in it's own desire." It was true.
As much as Jessica hated the situation, her sex organs were in full swing, producing more lubrication than ever before. "It doesn't matter! You must let me go! You don't want to cross my husband!" Jessica continued, praying it would be enough. This time the voice didn't answer.
He merely teased her snatch all the more, slowly gliding his dick against the outer sensitive lips. As he reached around and massaged his captive's breasts, Jessica realized that her breathing was picking up.
But those hands. they felt. warm on her breasts. Her body wasn't only becoming more and more turned on, but she felt. comforted as well, for unknown reasons. The feelings she was experiencing she couldn't begin to describe, it was as if her body was becoming more relaxed, the more this intruder continued.
She tore herself back to her sense of full-alert and hatred. She attempted to wriggle away from the hands as they continued to grope at her large tits, the thumbs and fore-fingers rolling the erect nipples into electric stimuli. "Pleeeeeeeeease," Jessica was losing a grip on herself.
"Let me gooooo! You've had your fun, you've teased me far enough for me to learn my lesson!" "What lesson?" the attacker asked, the voice not quite as low as usual.
"I'm merely having a good time here," it laughed its deep, menacing laugh. The cock's head continued to tease at the outer folds of Jessica's opening, but the voice was true to his word, waiting for Jessica to ask to be fucked before any actual penetration.
He wanted to make sure she knew how easily he could break her. But Jessica remained strong, not giving in to the man's demands, nor her own body's for that matter.
She closed her eyes, trying her best to lock out the hands and dick that were causing her pleasure as well as grief. The intruder quickly realized that his tactics were not working, and Jessica soon felt the hands and prick leave her body.
Relieved, yet somehow disappointed, she was curious when she felt the stranger's body leave the area completely. "Your body wants more," the man informed her, "and I plan to give it just that. If soft teasing isn't enough for you to succumb, then maybe something a little stronger will be." Jessica felt a large, soft, prism like ball rest on her cunt.
It felt like a medicine ball, only much lighter, and about the size of a large fist. It was round, like a three-dimensional oval, and Jessica could feel an entire side press against her as the stranger rested the item on her pussy lips. She was just about to speak, asking what the man's plan was, when suddenly, she heard the flick of a switch.
All of the sudden, her body shuddered as the item started vibrating itself against her. "Do you like this?" the voice teased as Jessica squirmed against the toy. "It's called a wand vibrator. I can use it to make your pussy shiver with pleasure." Jessica's eyes were rolling back as the machine was able to stimulate her senses to an unparalleled level. "Or," the voice continued, "I can stop it at any time." With this latest comment, the toy was switched off, the vibrator returning to it's dormant state.
Instinctively, Jessica grinded her pelvis against the toy, pleading for it to turn back on. Suddenly, she snapped back to consciousness, reminding herself that this was NOT what she wanted.
She inhaled deeply, allowing her first deep breath in some time to refocus her brain. "It won't work," she stated matter-of-factually. "I don't want this, and I never will!" "Oh, don't be too sure about that," again Jessica could hear the grin seeping through the deep words. "That was just the 'low' setting," the voice laughed. Without warning, the machine turned back on, Jessica reliving the pleasure that it had brought her only moments before.
She moaned slightly, and Jessica knew she was in trouble the moment it escaped her lips. She knew the man was smiling with pride as his plan seemed to be succeeding, but she couldn't help how her body felt, even though her mind hated it! But now her attacker had a new-found reason to continue and intensify his regime. She heard the machine's pitch slowly raise higher, as the speed of it's convulsions equally increased. Her body shook as her pussy was taken for a ride, her clit being stimulated to the maximum.
Or so she thought. The machine kept it's steady incline, until finally, the humming tone was a near octave above what it started at. Against her will, Jessica let out a scream of pleasure as her body was rocked, her pleasure being brought to her by an inanimate object.
Her breathing and pulse continued to increase, as she noticed her hips were once again grinding against the vibrator. She thought about stopping herself again, but she shook the idea away, too distracted by the pleasure her body was receiving. She was coming close to orgasm, and she was going to enjoy it. Suddenly, the machine switched off, the stranger yanking it away from her body just before she could climax. "Oh, I'd hate for you to have too much fun, since you 'really don't want this' and all," he laughed.
"Oh please don't stop!" Jessica shouted out, before she even realized what she was saying. She shut herself up, hanging her head in shame, knowing that the voice had indeed gotten ahold of her. "Oh, don't feel bad, baby," the voice said, causing Jessica to jump to attention.
Why did he just call her baby? She could understand slut, or whore, or bitch. Those were normal names for captors to call their victims, or so she had heard. But baby?! "I told you, you were going to beg for it, and you now realize that you will too!" the voice concluded. She felt the body behind her shift, walking in front of her now.
As best she could through her constraints, she looked up to face her attacker, but as he was wearing all black (including a mask) in the dark basement, she still couldn't make out anything notable. She didn't have to wait long, however, for he soon reached up, yanking his ski-mask off of his face, revealing himself to Jessica. "You son of a bitch!" she screamed, thinking how lucky he was that she was tied down, or else she would be hitting him.
"You scared me half to death!" "Well I guess I better not do this twice then, huh?" her husband's voice replied, reaching down to caress Jessica's face.
"I tried to drop as many hints as I could without giving it away," he explained, and Jessica, thinking back, was able to fit the puzzle pieces together. Her breathing and heart rate returning to normal, Jessica's head once again slumped down, this time not in shame, but in relief. "Now, about begging for my dick?" he laughed, walking once more to where her pussy was still exposed and soaked.
"Oh, please just fuck me already! Let me cum!" Jessica shouted, finally ready to receive her captor's cock. Without hesitation, Tom shoved his dick inside of her, easily slamming into her cervix. "I'm serious babe, I've NEVER felt you this wet before!" he commented, Jessica blushing at the reasons for her arousal.
He continued to thrust into her, but before long Jessica was screaming that she was cumming. Her pussy burst with an orgasm, juice actually squirting from her sopping wet cunt. "Oh baby, and you squirted?! That's another first!" Tom smiled as his entire pelvic area was drenched with her orgasm. Pulling out, he walked back to her face, shoving his member into her mouth so that she could taste her own cunt.
"Mmmmhhhhffn!" Jessica grunted, quickly regaining herself and taking his oral assault happily. It didn't take long for the man to finish, after all, this was the kinkiest sex he had ever had in his life. He felt his balls churn as Jessica's mouth milked his cock, finally releasing its payload as he shot wad after wad of jizz down his wife's throat.
With a few grunts, he was spent, nearly falling over from the orgasm's buzz. Finally concluding his evening, he untied his wife, kissing her on the cheek, as he led her upstairs to where dinner was waiting for them.
Tags: Transsexual Teen Male Solo Teen Male-Teen Male Exhibitionism
DZanetti93
hot fucking katsumi with those sexy glasses and black stockings and heels. i want to eat and fuck her ass
PornLover200189
You are beautiful and very sexy!
8cavesbemabertas
P. L. S. C. B. Remix Rihanna You Da One( DJ Dark& amp
lov3pu22y
https:// www. electrofoxtech. com/ google- search- engine- web- master- tutorial/
wesfilmxxx
Granny gets Pussy pounded with...
This is part one, ill get part 2 up soon. _____________________________________________________ Jake sat in his room, watching a bit of porn on his computer. Whilst watching a black women play with her dark cunt he was rubbing his cock through his pants. He took out his dick and started feeling it...
Muskoka12
Sexy young pak girl showing...
The Party Part 1 Disclaimer: This story is not intended for inappropriate audiences. If you are too young to be reading this or this story is illegal where you live, then please do not go any farther. This story consists of sex between consenting men and women. ...
don28348
Black beauty tatiana foxx gives...
my wife and i have a different relationship compared to most. too me its perfect. it all started one day while i thought my wife was at work .i found myself at my wifes underwear drawer looking for a few good pairs . I settled on the bed naked and i...
Bigmeat43
In the doctors office these...
"You could've knocked me out with a…feather," I sang along with Patrick from Fallout Boy into my imaginary microphone. "I know you heard this all before, but we're just Hell's…neighbors, oh-oh-oh-oh why, why, why won't the world revolve around me?! Will my--" ...
miha27
Redhead babe anally banged from...
We had been chatting on xvideos for a while and we seemed to hit it off, even though you are quite a bit younger than me. I had emailed you a couple of tribute videos with me cumming on your photos. I even got you to make one for...
NTXSpank
Backdoor aperture of beautiful playgirl...
DISCLAIMER: This is a story of fiction, the authors make no recommendations and do not condone, or condemn, any actions taken by the characters in this story. The characters are completely fictional and any similarities to any person or persons, living or dead, real or fictional, are completely coincidental. The Authors...
MyEroticVR
Hot gay Cole Gartner truly...
Hi. I'm Ashley, a 24 y. o. bisexual female. After I moved to Washington, my busy work life left little time for me. After work hours, i usually used to chat with my former room mate Lisa who was bisexual too. It was cool as we had a webcam and...
randrojas
Blonde with headphones wants cum
Sis suddenly began to move as if she was trying to get away from me but her hands held me in place. She bucked and jerked but no matter how she moved she kept me in place. My tongue was tired so I was only sucking on her...


text:
Westchester singing telegrams
When a text message or written letter simply won't cut it, why not send a Singing Telegram? If you've never sent one before and aren't sure where to start, let The Bash help! We have a number of professional performers in the Westchester, NY area for you to choose from.
Singing Telegrams /
New York /
Westchester, NY Singing Telegrams
Please note these Singing Telegrams will also travel to Bronx, College Point, Mount Vernon, Englewood Cliffs, Whitestone, Fleetwood, Edgewater, Leonia, Pelham, Englewood, East Elmhurst, Fort Lee, Long Island City, Palisades Park, Yonkers, Jackson Heights, Bronxville, New Rochelle, Ridgefield, Cliffside Park, Corona, Astoria, Fairview, Flushing, Woodside, Sunnyside, Teaneck, Bayside, Ridgefield Park, Cresskill
Are you a singing telegram looking to book more events? Get more singing telegram events today.
Top Singing Telegrams Near Westchester, NY
(23)({{searchCtrl.fullFilteredResults.length}}) REFINE
Adam Blotner
Singing Telegram from Springfield, NJ (25 miles from Westchester, NY)
Make their special day truly a memorable one with a Singing Telegram from Adam Blotner! Whether you want to embarrass your coworker or propose to your sweetheart, Adam has the versatility (and the costumes) to suit every occasion! A skilled musician with a broad repertoire and over 10 years experience, you can feel confident Adam will deliver your message right on time with heart and humor. Adam most frequently performs as "The Singing Cowboy," but can do other costumes/looks upon... (more)
Singing Telegrams and More For You
Singing Telegram from Union City, NJ (9 miles from Westchester, NY)
We have many kinds of telegrams.The Performer will dance around to music, get the guest of honor up to dance, put a funny hat on the guest of honor, get him to do leg kicks, sit him down, then sing a funny song, give a personalized message , a bouquet of balloons and get everyone to sing Happy Birthday or For He or She is a Jolly Good Fellow. Not everything has to be done exactly as described--we can tailor it and add or subtract anything you want. We have celebrity impersonators, and... (more)
Mr. Kev's Balloon Time
Singing Telegram from New York City, NY (9 miles from Westchester, NY)
Welcome to the truly awesome world of kids party entertainment. We offer amazing kids clowns, children's magicians,princesses, costumed characters, themes, puppet shows, face painting, balloon twisters and so much more! We offer superb kids party entertainment. Our children's entertainers are the best in the business! We make magic come to life for your big day! Welcome to the truly awesome world of kids party entertainment. We offer amazing kids clowns, children's... (more)
Didi Maxx - Over 400 Bookings!
Booked 8 Days Ago!
Magician from Garden City, NY (13 miles from Westchester, NY)
***2 PARENTS CHOICE AWARDS*** ***BEST OF THUMBTACK WINNER*** ***4 GIG MASTERS "RISING STAR" AWARDS*** ***6 GIG MASTER'S "BEST OF THE BEST" AWARDS*** ***4 5-STAR GIG MASTER'S PROFILES IN ENTERTAINMENT*** ***VOTED BEST CHILDREN'S ENTERTAINMENT BY WHAT'S HAPPENING*** ***WINNER OF THE BEST PERFORMER AWARD BY THE SOCIETY OF AMERICAN MAGICIANS*** "The Gig Masters Rising Star Award winners represent the top-booked event entertainers in the nation." Marissa Latshaw, Gig Masters Marketing... (more)
Knock Em Dead Comedy
Murder Mystery Entertainment from Hicksville, NY (18 miles from Westchester, NY)
KNOCK 'EM DEAD COMEDY, voted "Best Long Island Theatre" in the Best Of Long Island contest, is the tri-state area's BEST interactive comedy troupe! Great idea for fund raisers, restaurants, corporate events or private parties of any kind. -Murder mystery shows include audience participation, music, and unforgettable laughter. -Interactive Game Shows complete with a game show podium equipped with buzzers, sound effects, & more! -We also perform Funny Flipped up Fairytales, Kids shows,... (more)
Gregg Tobo's Virtual Magic & Wonder Show
Magician from New York City, NY (8 miles from Westchester, NY)
Magic is a great way to celebrate your event! And with magic, anything is possible, so it can be performed at a distance and even through your computer screen via Zoom (or your preferred digital platform). I offer an interactive magic show in which, not only will you see me perform magic, but you and your friends will actually participate and have the magic happen in your own homes. I will guide your virtual meeting, give instructions to you and your friends so that everyone can experience... (more)
LIGHTS OUT VARIETY ENTERTAINMENT
Caricaturist from New York City, NY (9 miles from Westchester, NY)
We are a nationwide entertainment provider! We provide Disk Jockeys, Karaoke, Photobooths, Caterers, caricature artists, face/body painters, magicians, clowns, Santa Clauses, balloon twisters. photographers, live sound, live music, and lighting services nationwide and in Canada as well. We have executed events for many private, wedding, public, commercial, and corporate clients. (Budweiser, Microsoft, Bass Pro Shops, Perrier water, Angler magazine, City of Houston mayor's office and city... (more)
Okey Dokey Clown AND SANTA
Clown from Warwick, NY (38 miles from Westchester, NY)
WHAT KIND OF SHOW IS IT? MAGIC, BUBBLES, MUSICAL GAMES, FACE-PAINTING, BALLOON SCULPTING, Okey Dokey brings 20 years stage acting experience and performs a high energy/good energy comedy magic show. The show is age-appropriate, so if you have plenty of toddlers, don't worry! With toddlers, I emphasize the singing, the "silly magic" and the giant bubbles and the musical games. There are also magic tricks for the older kids, and plenty of comedy throughout for the "children of all ages" that... (more)
Sunny The Clown
Clown from Yonkers, NY (4 miles from Westchester, NY)
Based in Westchester County, Sunny also services the counties of Rockland, Putnam, Fairfield, Bronx, and Bergen. Sunny is available for parties,family celebrations, business, and community events. Sunny's make-up, which is child-friendly and non-threatening, reflects her personality and approach. Her easy-going manner is kind, friendly, and fun, yet gently firm. Sunny's success with children is not by accident but is a talent which has evolved through years of working with children of... (more)
Allen E. Enlow
Caricaturist from Brooklyn, NY (13 miles from Westchester, NY)
FASTEST DRAW IN THE WEST...side of Brooklyn that is. He ALWAYS make you & your guests look GOOD. You'll want to hang his portraits on your Fridge! ENTERTAINING: He keeps your guests LAUGHING as he's been working as a Comedian, & Actor (The Sopranos, Law & Order, & One Life to Live) for over 20 years. BALLOON TWISTER: Allen twists a variety of BALLOONS including Dogs, Cats, Flowers, swords, ray guns, princess wands, and more. FACEPAINTER: Allen is a natural artist who has a variety... (more)
Clown Magic Party Entertainment
NEW NEW NEW VIRTUAL PARTIES ASK ABOUT: *****20 MIN ALPACA SHOW (ANIMAL) VIA ZOOM - Animal entertainment *** 30 MIN MAGIC SHOW for kids teens adults corp meeting etc -- VIA ZOOM Virtual Belly and Hula dances via Zoom Virtual Ventriloquists and Jugglers shows ******************* **** VIRTUAL SINGING TELEGRAMS-- VIA ZOO / /via VIDEO or ON LAWN/ PORCH -... (more)
SHOWGIRLS,IMPERSONATORS,PLAYBOY BUNNIES,HULA, !!!
Verified Booking
Cabaret Dancer from New York City, NY (9 miles from Westchester, NY)
WELCOME ! We offer the most STUNNING and TALENTED VEGAS-STYLE SHOWGIRLS DANCERS with PERSONALITIES to match and with DAZZLING COSTUMES as well as HULA,BELLY AND BURLESQUE DANCERS with the same attributes !!! We have a unique duet HAWAIIAN SHOW with LIVE SINGING and DANCING and PARTICIPATION !!! Having a singer is not only more entertaining,but allows the HULA DANCER to make a number of costume changes !!! TO LEARN ABOUT OUR many types of IMPERSONATORS ,LOOKALIKES AND THE ULTIMATE VEGAS... (more)
The Telegram Girl Safe/Distanced Singing Telegrams
Singing Telegram from Philadelphia, PA (88 miles from Westchester, NY)
Embarrass your boss, say "I Love You," make mom smile, advertise your brand Please check my 5 star reviews! Fast quotes, easy communication & payment options, same day deliveries. Specializing in Jazz, The Great American Songbook, Broadway Hits from The Golden Era, Pop, Rock, R&B, Classical/Opera, Oldies (50's, 60's, 70's, 80's) and Country! In-person, safe, socially distanced singing telegrams and virtual Zoom or Facetime surprises! Popular costumes: * Vintage Western Union... (more)
Heroes For Hire
Costumed Character from Philadelphia, PA (78 miles from Westchester, NY)
Our Professional and Amazing Costumed Characters will provide something special for any event that cannot be found elsewhere. Your guests will say "WOW!". One Character - 45 to 60 minutes depending on the chosen character - $150.00 Two Characters - 45 to 60 minutes depending on the chosen character - $320.00 The terms of duration of Character attendance are agreed upon before event. Our Characters are available to pose for numerous pictures with party attendees and interact with... (more)
Costumed Character from Morrisville, PA (67 miles from Westchester, NY)
Let us make your next party or affair a magical one! Costumed characters (including some that speak in their respective voices!) and other entertainers are available for your party, singing telegram, or just about any function. Clowns, magicians, DJs, and more are waiting to entertain you. Balloon art, face painting, glitter tattoos, magic, music and dancing, and picture posing included. Although we're new to Gigmasters, we have been serving clients for over 15 years and have appeared at... (more)
Looking to celebrate remotely? Hire a virtual singing telegram to help bring your online event to life!
Singing Telegram from Baltimore, MD (179 miles from Westchester, NY)
The International Singing Telegram Company
Singing Telegram from Akron, OH (397 miles from Westchester, NY)
Add "A Little Bit Of Hollywood" to your next event, whatever the occasion! Why send an International Singing Telegram? Because THEY'LL LOVE IT! Tuxedogram, Gorilla, Chicken, Grim Reaper, Clown, French Maid, Police Arrest, Nerd, Doctor, Nurse, Teddybear, Mid-Eastern Bellydancers, Extra Large Bellydancers, Male and Female Exotic dancers, Hawaiian dancers, Elvis, Marilyn Monroe, Austin Powers, Father Time, Baglady, Children's Entertainment, Impersonators, Santa Claus, The Easter Bunny,... (more)
Jenny's Music Studio
Santa Claus from Greensboro, NC (458 miles from Westchester, NY)
Hello! My name is Jenniffer Campbell and I own Jenny's Music Studio! We have musical Santas, Mrs Claus, Elves, Christmas Carolers, Storytellers and singing telegrams! Musicians can play the piano, violin, cello, harp, guitar and song! Virtual services are offered starting at $15 per 30 minute session! Please call or email to set up services! I am also a Wedding Musician and DJ. DJ services cost $150 per hour. I provide DJ services to any style of music you wish. Rock, Pop, Country,... (more)
Virtual Poetic "Singing" Telegrams
Booked 1 Day Ago!
Singing Telegram from Los Angeles, CA (2459 miles from Westchester, NY)
What could be more unique, cheerful and special for your birthday or special event and will have both adults, children (even Fluffy and Spot) laughing, smiling and feeling happy? A surprise virtual visit from the Improv Poet! I perform personalized improvised poems for the birthday person or that special someone. Just like the Drew Carey's "Whose Line Is It Anyway" performed in a humorous poem and costumed in a poetic Victorian dress. When you bring me to your event, you are... (more)
Artistic Entertainment
Singing Telegram from Las Vegas, NV (2240 miles from Westchester, NY)
PHONE GRAMS $50 AND VIRTUAL FACETIME GRAMS $75 We are a NATIONWIDE Entertainment Company offering local entertainment in ALL CITIES and STATES for all ages and budgets. We specialize in Celebrity Impersonators, Singing Telegrams, Easter Bunnies, Comedians, Dancers, Clowns, Balloon Twisters, Face Painters, Magicians, DJs, Bands, Princess and Superheroes. We can provided a short 15 minute performance up to multiple hours of entertainment for private parties, corporate events, holiday... (more)
Jerry "The Singing Telegram" Man
Singing Telegram from Chicago, IL (725 miles from Westchester, NY)
Have a professional singer for your telegram, "Man of many Voices" Jerry has been entertaining crowds for over 25 years. As a Singer Impressionist (he sounds like the real thing) Sinatra, Dean Martin, Neil Diamond, Tom Jones, DiscoMan, Elvis ROCKY BALBOA, Country music cowboy, (each artist dressed in there outfit) and more with a touch of humor, ELVIS ( a free custom Elvis scarf for that special someone) All with a touch of humor. For any occasion - Singing Telgrams, Weddings, Nightclubs,... (more)
Viva Vegas Entertainment
Cabaret Dancer from Las Vegas, NV (2231 miles from Westchester, NY)
Viva Vegas Entertainment and Showgirls is a full service talent booking agency that provides top end talent nationwide. We'll work with you to find the perfect entertainment for your business meeting, convention, award banquet, grand opening, holiday party, college event, company picnic, fair or festival, fundraising event, dry grad...no matter what type of event you're planning, Viva Vegas Entertainment can help you make it a huge success! In fact, each year Viva Vegas... (more)
The Santa Agency
Santa Claus from Sevierville, TN (625 miles from Westchester, NY)
The Santa Agency is a nationwide full service Christmas Entertainment agency! We have the best Santa's in the business that have worked high profile events all over the United States. Our Santa's are fully background checked and are all professional Entertainers, with professional quality costumes. We also have a full roster of Mrs.Clause, Elf's, Snowmen, balloon twisters, face painters, Magicians, Carolers and any other type of Entertainment you may require for your event. Our Santa's... (more)
VENDORS 1 - of 23 {{searchCtrl.fullFilteredResults.length}}

redpajama_set_name: RedPajamaCommonCrawl


When it comes to being an employee, it's a fact that there will be times when they would have to file a compensation claim from their company. In regards to this, one thing that's for certain is the involvement of workers compensation lawyers since this is a legal issue to begin with. Consulting a compensation lawyer is something that's necessary if you are trying to file a claim to your company. With that said, you should know more about the process of how these lawyers can help employees.
There are many ways that a workers compensation attorney can provide their clients the help that they need when it comes to a compensation claim to a company. With that said, you'll want to consult the lawyer first if you want to increase your chance of getting the claim that you filed for. Also, a workers compensation lawyer is there to ensure that you'll be able to know certain laws when it comes to the claim requirements. For example, workplace injury or accident is usually the common reason why employees file compensation claims. Keep in mind that with their help, you'll be able to fully understand the situation that you're in.
These days, it's a fact that companies need to have their own legal rules and regulations when it comes to employee rights and restrictions which is why there's a need for employees to fully understand what such terms mean. With the help of a workers compensation lawyer, you will be able to know whether or not the terms will violate your right as an employee. Still, you'll have to consider finding a lawyer that you can fully trust and is confident to work with. With employees demanding the service of a workers compensation attorney, it's only natural that finding one wouldn't be too hard nowadays. Finding this kind of lawyer is also something that you can do by just searching for them using the internet. Also, you'd want to check the client feedback if you want to make sure that their reputation is something that would give you confidence about their services.


You can buy this fantastic Himalayan Goji berry anti-wrinkle cream at the best price at the market.
Its daily use improves skin cell metabolism due to its powerful anti-ageing power and accelerates the growth of new cells which make the skin softer and more supple, restoring youth to the face and neck in a natural and non-aggressive way. The argan oil, rosehip, avocado and shea butter, ensure that the product is oil free, free of mineral oils in its composition. He does not leave the skin fat because of its high power of penetration.
The aloe vera moisturising factors and will protect your skin throughout the day. Its effect is noticeable from the first application and its sweet scent free of allergens will remember that the goji berries continue to act on your skin. Goji berries is a unisex product ideal for all skin types.
Instructions for use: Apply every day in the morning and in the evening to the face and neck, always on the skin clean and dry. Extend with gentle circular massage to encourage better penetration of the cream. Its texture and its perfume, will bring you a pleasant sensation of comfort and well-being, not leaving ugly shiny patches on the skin.
He regalado algunos y todos encantados con los resultados. He tenido que pedir más!


text:
'use strict';

const _ = require('lodash');
const Promise = require('bluebird');
const Queue = require('@terascope/queue');
const parseError = require('@terascope/error-parser');
const stateUtils = require('./state-utils');

/*
 Execution Life Cycle for _status
 pending -> scheduling -> running -> [ paused -> running ] -> [ stopped | completed ]
 Exceptions
 rejected - when a job is rejected prior to scheduling
 failed - when there is an error while the job is running
 aborted - when a job was running at the point when the cluster shutsdown
 */

module.exports = function module(context, messaging, executionService) {
    const events = context.apis.foundation.getSystemEvents();
    const logger = context.apis.foundation.makeLogger({ module: 'native_cluster_service' });
    const pendingWorkerRequests = new Queue();
    const nodeDisconnectTimeout = context.sysconfig.teraslice.node_disconnect_timeout;
    const nodeStateInterval = context.sysconfig.teraslice.node_state_interval;
    const slicerAllocationAttempts = context.sysconfig.teraslice.slicer_allocation_attempts;
    const clusterState = {};
    const clusterStats = {
        slicer: {
            processed: 0,
            failed: 0,
            queued: 0,
            job_duration: 0,
            workers_joined: 0,
            workers_disconnected: 0,
            workers_reconnected: 0
        }
    };

    // temporary holding spot used to attach nodes that are non responsive or
    // disconnect before final cleanup
    const droppedNodes = {};

    messaging.register({
        event: 'node:online',
        identifier: 'node_id',
        callback: (data, nodeId) => {
            logger.info(`node ${nodeId} has connected`);
            // if a reconnect happens stop timer
            if (droppedNodes[nodeId]) {
                clearTimeout(droppedNodes[nodeId]);
                delete droppedNodes[nodeId];
            }
            logger.trace(`node ${nodeId} has state:`, data.payload);
            clusterState[nodeId] = data.payload;
            // if new node comes online, check if jobs need more workers
            events.emit('cluster:available_workers');
        }
    });

    messaging.register({
        event: 'node:state',
        callback: (stateMsg) => {
            const data = stateMsg.payload;
            clusterState[data.node_id] = data;
            logger.debug(`node ${data.node_id} state is being updated`, data);
            // check to see if we can provision any additional workers
            events.emit('cluster:available_workers');
        }
    });

    messaging.register({
        event: 'node:workers:over_allocated',
        callback: (requestData) => {
            logger.debug('over-allocated workers, returning them to pending worker request queue');
            pendingWorkerRequests.enqueue(requestData.payload);
        }
    });

    messaging.register({
        event: 'execution:finished',
        callback: (msgData) => {
            // remove any pending worker request on completed jobs
            logger.debug(`execution for ex_id: ${msgData.ex_id} has finished, removing any from pending queue`, msgData);
            pendingWorkerRequests.remove(msgData.ex_id);
            messaging.broadcast('cluster:execution:stop', { ex_id: msgData.ex_id });
        }
    });

    messaging.register({
        event: 'execution:error:terminal',
        callback: (msgData) => {
            const alreadySaved = _.get(msgData, 'payload.set_status', false);
            logger.error(`terminal error for execution: ${msgData.ex_id}, shutting down execution`);
            pendingWorkerRequests.remove(msgData.ex_id);
            messaging.broadcast('cluster:execution:stop', { ex_id: msgData.ex_id });
            if (!alreadySaved) {
                const metaData = executionService.executionMetaData(null, msgData.error);
                executionService.setExecutionStatus(msgData.ex_id, 'failed', metaData);
            }
        }
    });

    messaging.register({
        event: 'network:error',
        callback: err => logger.error(`Error : cluster_master had an error with one of its connections, error: ${parseError(err)}`)
    });

    messaging.register({
        event: 'network:disconnect',
        identifier: 'node_id',
        callback: (msg, nodeId) => {
            if (clusterState[nodeId].active.length === 0) {
                logger.warn(`node ${nodeId} has disconnected`);
                delete clusterState[nodeId];
            } else {
                clusterState[nodeId].state = 'disconnected';
                const timer = setTimeout(() => {
                    _cleanUpNode(nodeId);
                }, nodeDisconnectTimeout);

                droppedNodes[nodeId] = timer;
            }
        }
    });

    messaging.register({
        event: 'cluster:analytics',
        callback: (msg) => {
            const data = msg.payload;
            if (!clusterStats[data.kind]) {
                logger.warn(`unrecognized cluster stats: ${data.kind}`);
                return;
            }
            _.forOwn(data.stats, (value, field) => {
                if (clusterStats[data.kind][field] !== undefined) {
                    clusterStats[data.kind][field] += value;
                }
            });
        }
    });

    setInterval(() => {
        logger.trace('cluster_master requesting state update for all nodes');
        messaging.broadcast('cluster:node:state');
    }, nodeStateInterval);

    function _cleanUpNode(nodeId) {
        // check workers and slicers
        const node = _checkNode(clusterState[nodeId]);
        // if disconnected node had a slicer, we stop the execution of each slicer on it
        // and mark it as failed
        if (node.hasSlicer) {
            _.forIn(node.slicerExecutions, (exId) => {
                const errMsg = `node ${nodeId} has been disconnected from cluster_master past the allowed timeout, it has an active slicer for execution: ${exId} which will be marked as terminated and shut down`;
                logger.error(errMsg);
                const metaData = executionService.executionMetaData(null, errMsg);
                pendingWorkerRequests.remove(exId);
                executionService.setExecutionStatus(exId, 'terminated', metaData);
                messaging.broadcast('cluster:execution:stop', { ex_id: exId });
            });
        }
        // for any other worker not part of what is being shutdown, we attempt to reallocate
        _.forIn(node.workerExecutions, (__, exId) => {
            // looking for unique ex_id's not in slicerJobID
            if (!node.slicerExecutions[exId]) {
                const activeWorkers = clusterState[nodeId].active;
                const numOfWorkers = activeWorkers.filter(worker => worker.ex_id === exId).length;
                executionService.getActiveExecution(exId)
                    .then(execution => addWorkers(execution, numOfWorkers));
            }
        });

        // cleanup key so we don't get ever growing obj
        delete droppedNodes[nodeId];
        delete clusterState[nodeId];
    }

    function getClusterState() {
        return _.cloneDeep(clusterState);
    }

    function getClusterStats() {
        return _.cloneDeep(clusterStats);
    }

    function _checkNode(node) {
        const obj = {
            hasSlicer: false,
            numOfSlicers: 0,
            slicerExecutions: {},
            workerExecutions: {},
            numOfWorkers: 0,
            id: node.id,
            available: node.available
        };

        return node.active.reduce((prev, curr) => {
            if (curr.assignment === 'execution_controller') {
                prev.hasSlicer = true;
                prev.numOfSlicers += 1;
                prev.slicerExecutions[curr.ex_id] = curr.ex_id;
            }

            if (curr.assignment === 'worker') {
                prev.numOfWorkers += 1;
                // if not resgistered, set it to one, if so then increment it
                if (!prev.workerExecutions[curr.ex_id]) {
                    prev.workerExecutions[curr.ex_id] = 1;
                } else {
                    prev.workerExecutions[curr.ex_id] += 1;
                }
            }

            return prev;
        }, obj);
    }

    function _findNodeForSlicer(stateArray, errorNodes) {
        let slicerNode = null;
        for (let i = 0; i < stateArray.length; i += 1) {
            if (stateArray[i].state === 'connected' && stateArray[i].available > 0 && !errorNodes[stateArray[i].node_id]) {
                const node = _checkNode(stateArray[i]);

                if (!node.hasSlicer) {
                    slicerNode = stateArray[i].node_id;
                    break;
                }
            }
        }

        // if all nodes have a slicer
        if (!slicerNode) {
            // list is already sorted by num available since stateArray is sorted
            slicerNode = stateArray[0].node_id;
        }

        return slicerNode;
    }

    function _findNodesForExecution(exId, slicerOnly) {
        const nodes = [];
        _.forOwn(clusterState, (node) => {
            if (node.state !== 'disconnected') {
                const hasJob = node.active.filter((worker) => {
                    if (slicerOnly) {
                        return worker.ex_id === exId && worker.assignment === 'execution_controller';
                    }

                    return worker.ex_id === exId;
                });

                if (hasJob.length >= 1) {
                    nodes.push({
                        node_id: node.node_id,
                        ex_id: exId,
                        hostname: node.hostname,
                        workers: hasJob
                    });
                }
            }
        });

        return nodes;
    }

    function _availableWorkers(all, forceCheck) {
        let num = 0;
        // determine which key to search for in cluster state
        if (pendingWorkerRequests.size() === 0 || forceCheck) {
            const key = all ? 'total' : 'available';

            _.forOwn(clusterState, (node) => {
                if (node.state === 'connected') {
                    num += node[key];
                }
            });
        }

        return num;
    }

    function _findPort(nodeId) {
        return messaging.send({
            to: 'node_master',
            address: nodeId,
            message: 'cluster:node:get_port',
            response: true
        });
    }

    function _makeDispatch() {
        const methods = {};
        const dispatch = {};

        methods.set = (nodeId, numOfWorkers) => {
            if (dispatch[nodeId]) {
                dispatch[nodeId] += numOfWorkers;
            } else {
                dispatch[nodeId] = numOfWorkers;
            }
        };
        methods.getDispatch = () => dispatch;

        return methods;
    }

    // designed to allocate additional workers, not any future slicers
    function allocateWorkers(execution, numOfWorkersRequested) {
        const exId = execution.ex_id;
        const jobId = execution.job_id;
        const jobStr = JSON.stringify(execution);
        const sortedNodes = _.orderBy(clusterState, 'available', 'desc');
        let workersRequested = numOfWorkersRequested;
        let availWorkers = _availableWorkers(false, true);

        const dispatch = _makeDispatch();

        while (workersRequested > 0 && availWorkers > 0) {
            for (let i = 0; i < sortedNodes.length; i += 1) {
                // each iteration check if it can allocate
                if (workersRequested > 0 && availWorkers > 0) {
                    if (sortedNodes[i].available >= 1) {
                        dispatch.set(sortedNodes[i].node_id, 1);
                        availWorkers -= 1;
                        workersRequested -= 1;
                    }
                } else {
                    break;
                }
            }
        }
        // if left over worker requests, enqueue them, queue works based off of id
        // so it redundantly references ex_id

        const workerData = {
            job: jobStr,
            id: exId,
            ex_id: exId,
            job_id: jobId,
            workers: 1,
            assignment: 'worker'
        };

        while (workersRequested > 0) {
            logger.trace(`adding worker to pending queue for ex: ${exId}`);
            pendingWorkerRequests.enqueue(workerData);
            workersRequested -= 1;
        }
        const results = [];

        _.forOwn(dispatch.getDispatch(), (workerCount, nodeId) => {
            const requestedWorkersData = {
                job: jobStr,
                id: exId,
                ex_id: exId,
                job_id: jobId,
                workers: workerCount,
                assignment: 'worker'
            };

            results.push(messaging.send({
                to: 'node_master',
                address: nodeId,
                message: 'cluster:workers:create',
                payload: requestedWorkersData,
                response: true
            })
                .catch(() => {
                    logger.error(`An error has occurred in allocating : ${workerCount} workers to node : ${nodeId} , the worker request has been enqueued`);
                    pendingWorkerRequests.enqueue(requestedWorkersData);
                }));
        });

        // this will resolve successfully if one worker was actually allocated
        return Promise.all(results);
    }

    function _createSlicer(job, recoverExecution, errorNodes) {
        const sortedNodes = _.orderBy(clusterState, 'available', 'desc');
        const slicerNodeID = _findNodeForSlicer(sortedNodes, errorNodes);

        // need to mutate job so that workers will know the specific port and
        // hostname of the created slicer
        return _findPort(slicerNodeID)
            .then((portObj) => {
                job.slicer_port = portObj.port;
                job.slicer_hostname = clusterState[slicerNodeID].hostname;

                logger.debug(`node ${clusterState[slicerNodeID].hostname} has been elected for slicer, listening on port: ${portObj.port}`);
                const exId = job.ex_id;
                const jobId = job.job_id;
                const jobStr = JSON.stringify(job);
                const data = {
                    job: jobStr,
                    ex_id: exId,
                    job_id: jobId,
                    workers: 1,
                    slicer_port: portObj.port,
                    node_id: slicerNodeID,
                    assignment: 'execution_controller',
                    recover_execution: recoverExecution
                };

                return messaging.send({
                    to: 'node_master',
                    address: slicerNodeID,
                    message: 'cluster:execution_controller:create',
                    payload: data,
                    response: true
                })
                    .catch((err) => {
                        const errMsg = parseError(err);
                        logger.error(`failed to allocate execution_controller to ${slicerNodeID}, error: ${errMsg}`);
                        errorNodes[slicerNodeID] = errMsg;
                        return Promise.reject(errMsg);
                    });
            });
    }

    function allocateSlicer(job, recoverExecution) {
        let retryCount = 0;
        const errorNodes = {};
        return new Promise(((resolve, reject) => {
            function retry() {
                _createSlicer(job, recoverExecution, errorNodes)
                    .then((results) => {
                        resolve(results);
                    })
                    .catch(() => {
                        retryCount += 1;
                        if (retryCount >= slicerAllocationAttempts) {
                            reject(`failed to allocate execution_controller to nodes: ${JSON.stringify(errorNodes)}`);
                        } else {
                            retry(errorNodes);
                        }
                    });
            }

            retry();
        }));
    }

    const schedulePendingRequests = _.debounce(() => {
        if (pendingWorkerRequests.size() && _availableWorkers(false, true) >= 1) {
            const requestedWorker = pendingWorkerRequests.dequeue();
            const job = JSON.parse(requestedWorker.job);

            allocateWorkers(job, requestedWorker.workers)
                .catch((err) => {
                    logger.error(`Error processing pending requests. ${err.stack}`);
                });
        }
    }, 500, { leading: false, trailing: true });

    events.on('cluster:available_workers', schedulePendingRequests);

    function shutdown() {
        logger.info('shutting down');
        return Promise.resolve(true);
    }

    function addWorkers(execution, workerNum) {
        const workerData = {
            job: JSON.stringify(execution),
            id: execution.ex_id,
            ex_id: execution.ex_id,
            job_id: execution.job_id,
            workers: workerNum,
            assignment: 'worker'
        };
        pendingWorkerRequests.enqueue(workerData);
        return { action: 'enqueued', ex_id: execution.ex_id, workerNum };
    }

    function setWorkers(execution, workerNum) {
        const totalWorker = stateUtils.findWorkersByExecutionID(
            clusterState,
            execution.ex_id
        ).length;
        if (totalWorker > workerNum) {
            const removedWorkersCount = totalWorker - workerNum;
            return removeWorkers(execution.ex_id, removedWorkersCount);
        }
        if (totalWorker < workerNum) {
            const addWorkersCount = workerNum - totalWorker;
            return addWorkers(execution, addWorkersCount);
        }
        // if they are equal then no work needs to be done
        return { action: 'set', ex_id: execution.ex_id, workerNum };
    }

    function removeWorkers(exId, workerNum) {
        const dispatch = _makeDispatch();
        const workers = stateUtils.findWorkersByExecutionID(clusterState, exId);
        let workerCount = workerNum;
        const workersData = workers.reduce((prev, curr) => {
            if (!prev[curr.node_id]) {
                prev[curr.node_id] = 1;
            } else {
                prev[curr.node_id] += 1;
            }
            prev._total += 1;

            return prev;
        }, { _total: 0 });

        if (workerNum >= workersData._total) {
            const errMsg = `workers to be removed: ${workerNum} cannot be >= to current workers: ${workersData._total}`;
            logger.error(errMsg);
            const errReponse = { code: 400, message: errMsg, error: errMsg };
            return Promise.reject(errReponse);
        }

        function stateForDispatch(__, key) {
            if (key !== '_total') {
                if (workersData[key] >= 1 && workerCount > 0) {
                    dispatch.set(key, 1);
                    workersData[key] -= 1;
                    workerCount -= 1;
                }
            }
        }

        while (workerCount) {
            _.forOwn(workersData, stateForDispatch);
        }

        const nodes = dispatch.getDispatch();
        const results = _.map(nodes, (val, key) => messaging.send({
            to: 'node_master',
            address: key,
            message: 'cluster:workers:remove',
            ex_id: exId,
            payload: { workers: val },
            response: true
        }));

        return Promise.all(results)
            .then(() => ({ action: 'remove', ex_id: exId, workerNum }))
            .catch((err) => {
                const errMsg = parseError(err);
                logger.error(`Error while releasing workers from job ${exId}, error: ${errMsg}`);
                return Promise.reject(errMsg);
            });
    }

    function _notifyNodesWithExecution(exId, messageData, slicerOnly, excludeNode) {
        return new Promise(((resolve, reject) => {
            const destination = slicerOnly ? 'execution_controller' : 'node_master';
            let nodes = _findNodesForExecution(exId, slicerOnly);
            if (excludeNode) {
                nodes = nodes.filter(node => node.hostname !== excludeNode);
            } else if (messageData.message !== 'cluster:execution:stop' && nodes.length === 0) {
                // exclude node is only in regards to a shutdown on the cluster_master, which
                // already receives the shutdown notice so it can be empty, in all other
                // circumstances if the node list length is zero then reject
                reject({ message: `Could not find active execution processes for ex_id: ${exId}`, code: 404 });
            }

            return Promise.map(nodes, (node) => {
                const sendingMsg = Object.assign({}, messageData, {
                    to: destination,
                    address: node.node_id,
                    ex_id: exId,
                    response: true
                });

                return messaging.send(sendingMsg);
            })
                .then(() => {
                    resolve(true);
                })
                .catch((err) => {
                    const errMsg = parseError(err);
                    logger.error('could not notify cluster', errMsg);
                    reject(errMsg);
                });
        }));
    }

    function readyForAllocation() {
        return _availableWorkers() >= 2;
    }

    function clusterAvailable() {}

    function stopExecution(exId, timeout, exclude) {
        const excludeNode = exclude || null;
        pendingWorkerRequests.remove(exId);
        const sendingMessage = { message: 'cluster:execution:stop' };
        if (timeout) {
            sendingMessage.timeout = timeout;
        }
        return _notifyNodesWithExecution(exId, sendingMessage, false, excludeNode);
    }

    function pauseExecution(exId) {
        return _notifyNodesWithExecution(exId, { message: 'cluster:execution:pause' }, true, null);
    }

    function resumeExecution(exId) {
        return _notifyNodesWithExecution(exId, { message: 'cluster:execution:resume' }, true, null);
    }

    const getSlicerStats = stateUtils.newGetSlicerStats(clusterState, context, messaging);

    const api = {
        getClusterState,
        getClusterStats,
        getSlicerStats,
        allocateWorkers,
        allocateSlicer,
        shutdown,
        stopExecution,
        pauseExecution,
        resumeExecution,
        removeWorkers,
        addWorkers,
        setWorkers,
        readyForAllocation,
        clusterAvailable
    };

    function _initialize() {
        logger.info('Initializing');
        return Promise.resolve(api);
    }

    return _initialize();
};

redpajama_set_name: RedPajamaGithub


I was having trouble updating plugins are the Wordress core.
Updated Yoast from version 9.3 to 9.4. But Yoast is still trying to load all of the js assets from 9.3 which do not exist anymore.
None of these worked. After some trial and error, I found the files were cached in the PHP opcache. In some versions of PHP, byte code is cached.
Reload the page once, then remove that line. You should be good to go.
Laravel Spark is a great for setting up user management, subscriptions, and an API quickly. Without Spark, these steps would take weeks. With spark it takes only a few hours.
But Spark does have some issues: mainly the documentation. For such and large system—particularly one that is paid ($99 per site)—there should be better documentation.
Adding custom fields to the registration form is supposed to be easy. This customization is explicitly documented. However the steps do not work for added a Recaptcha to the registration form.
Normally, you would not need a captcha on the registration form because users have to pay to sign up. However, our app has a free tier. Another solution to this problem is requiring email verification. But email verification has its own problems.
Regardless, this is a problems others have had as well.
Spark registration page does not support custom fields with dashes in the name. This is not documented. The Recaptcha custom field is called "g-recaptcha-response".
The Recaptcha field is created dynamically which does not work with the Vue powered form that ships with Spark.
Spark registration calls the validator twice which causes Recaptcha validation to fail the second time.
Remove dashes from the field name. Call it "grecaptcharesponse" instead of "g-recaptcha-response".
// this hack prevents the validator from failing the second time it is called.
Include the validator we just created at the top of your SparkServiceProvider.
// Recaptcha error message instead of the "required" error message.
You can see this in action at BitcoinAbuse.com.
Ubuntu works very well on XPS laptops, but it is not so easy getting the laptop to boot from a USB.
At boot, Press the F2 key (or alternately press the F12 key then select the option to enter the BIOS setup).
In POST Behavior, Select – Fastboot the select the Thorough option.
This is the main trick I have been unable to find documented anywhere else. The BIOS only recognizes bootable media in the right USB port.
Put USB in the right USB Type-C port. Only the right USB port will be detected in the boot options.
Reboot the system, press F12.
Select your USB in the boot options.
The problem has to do with the phone's APN settings – which need to be tweaked.
1. Access your Android phone's settings (gray settings icon that looks like a gear).
4. On the "mobile network" menu – select "Access Point Names" (often abbreviated APN).
5. On the "APNs" menu – you should see two options: "T-mobile US" and "Tmobile MMS". There should be a green dot next to "T-Mobile US". Select that "T-Mobile US" option (NOT the Tmobile MMS).
Second – click on the "APN type" option. It will probably say something like: "default,supl,hipri,fota" (without the quotation marks). You will need to tweak the end of it so the whole thing instead reads "default,supl,hipri,fota,mms" (without the quotation marks). As indicated here – there are no spaces between these commas.
Third – after making these two adjustments to your APN – make sure you click on the menu dots (three vertical dots) at the top right hand part of the "edit access point" menu. This will open up a drop down menu – and then you should select "Save". If you don't do this – the settings will not take effect.
One of PHP's most distinctive features is the dollar sign. All variables in PHP start with '$'.
In Sublime, if you double click on a variable name to select it the '$' prefix will not get selected.
To fix this you can edit Sublime's "word_separators" setting.
To change this setting, go to Preferences -> Settings. Then paste this in your user settings and save.
Notice the '$' is missing.
When Caps Lock is pressed it is almost always on accident. On the rare occasion I need something in all caps, it is simpler to hold the SHIFT key.
On the other hand, I use CTRL key constantly. One of the first customization I make on new computers is remapping the caps lock key to CTRL.
You can do this on a Mac in System Preferences -> Keyboard -> Modifier Keys. And on Linux key remapping can be accomplished by using the Gnome Tweak Tool.
On Windows, key modification is a bit more difficult. On Windows, you need to modify the registry. You can do this manually or there are small applications to help remap keys.
Finally, because of the dollar signs position it is not the easiest key to type. I am looking for an optimization to make that character faster and easier to type. I have not found a good solution yet.
Hipchat has documentation for installing on Debian-based distros but not on RPM-based distros like Fedora and RHEL.
All other ports are filtered. This significantly reduces the number of possible attack vectors. Other services such as MySQL (port 3306) are only accessible from the private network. To access MySQL from a remote machine you can SSH tunnel to the database server and then connect to the database on localhost. Most database clients like MySQL Workbench support SSH Tunneled Connections.
However, I came across a problem when I wanted to run a python script locally to update my remote database server. There is a library for connecting directly to a MySQL database with Python, but not for connecting through an SSH Tunnel. Another option would be to run the python script on the remote server, but in my case I did not want to do that.
To solve this, we will have to manage the SSH Tunnel ourselves. After building the SSH Tunnel, you will be able to connect to a port on your local machine and the connection will be sent to a different port on the remote machine's loopback interface.
That's it. The command will go to the background and you can connect to localhost:1234 as if it were locahost:3306 on the remote server.
You must to set the host (using the -h flag) to 127.0.0.1. If you leave the host blank or set it to localhost, MySQL uses sockets and thus ignores the port flag (-P).
I recently encountered an issue that took me far longer to solve that it should have. Laravel is an excellent framework for building PHP websites. I have used it to build several sites now and it is by far the best framework I have seen. The latest version, Laravel 5, is powerful and well documented. With Composer, Laravel is easily extendable and allows you to pull in common php packages.
Up to this point, I had used Composer to pull in packages and manage dependencies without really knowing how it worked. Unfortunately, due to my lack of understanding, Composer's Autoload feature caused an issue that was very hard to debug.
In the site I was making, I created a new configuration file that was used to dynamically set routes so I could create new sections and add those sections to the navigation menus in one step.
Next, I created a template controller that I would simply copy, rename, and start working with for each of these new sections.
Everything was working fine until I used Composer to install a new package on my production system. I installed Guzzle to which is need to interface with MailGun. When you install a new package Composer updates composer.json, installs the package, and reruns dump-autoload.
After setting up email, I thought the site was ready for production. All the sudden, one of my many dynamically created sections was not working. For some reason, the route for this one section was calling the Template Controller instead of the proper controller.
First, I though one of Laravel's many layers of caching was the issue. I disabled Laravel's route caching, configuration caching and view caching. I even turned off mod_pagespeed and CloudFlare just to be sure no caching was the problem. But it still was not working.
I decided to hard code the routes to skip over my dynamic route generator. But still for just one section the Template Controller was being called instead of the proper controller. I checked the routes file again and again to ensure there was no earlier route being called.
At this point I had completely deleted the Template Controller. Something must be calling Template Controller somewhere.
As you can see, the string was first found in an error log file. But the final match led to the solution.
We can see a file called `vendor/composer/autoload_classmap.php` contains a line that seems to be mapping the `QuartersController` class to the `TemplateControllers` class. How did that get there?
It turns out, that when I created the `TemplateController` file, I did it by copying the `QuartersController` and stripping out all of the code specific the that section. Unfortunately, I forgot to change the name of the class in the `TemplatesController.php` file. I accidentally left that class name as `QuartersController`.
Now, that should not be an issue. I am not even using the `TemplatesController` class. It is only there for a starting point when creating new sections.
What I did not know at the time is when your run composer dump-autoload , composer scans your entire project's source code and creates a `autoload_classmap.php` file. The classmap files allows the application to more quickly find the file containing a particular class.
Because I had two classes with the same name (one of them not being used), composer mapped to the wrong file. I changed the TemplateController.php class name, reran dump-autoload and everything worked again!
This error only surfaced after installing Guzzle because after a package install, composer runs dump-autoload automatically.
The moral here is that you can only use a tool without knowing how it works for so long before it comes back to bite you.
Last week I launched exif.alanreed.org an online Exif viewer. This tool allows you to view the metadata embedded within images such as brand, model, and serial number of the camera. Some cameras even store the latitude and longitude of where the image was taken. Cell phones especially store tons of good information in Exif.
I wanted to make this tool for a while and finally got the chance during a 20 hour drive to Orlando, Fl for the annual HTCIA conference.
Right now the tool only works for images, but in the future I hope to add the ability to extract metadata from other file types such as pdf, docx, and exe.
Recently, I decided to take the leap and begin using Linux exclusively. I installed Fedora 22 and so far I like it. I hit my first major snag when setting up a LAMP development environment.
After ensuring I was allowing access to the new document root in httpd.conf correctly, I started to get stuck. Only after much digging, I came across the root of the problem: SELinux Contexts. SELinux adds an additional level of security by layering more flexible and powerful access controls on top of the standard Linux access control. SELinux is found on Fedora and Red Hat systems.
You must add the httpd_system_context_t context to the new document root so that Apache has access. You can read more about SELinux here.
In production you do not want to weaken security to get things working. You should give files the correct context so Apache works with SELinux. However, in a development environment, you can simply disable SELinux to make your life easier.
Save that file then restart. You can run sestatus again to make sure SELinux is disabled. If you configured httpd.conf correctly, Apache should now be able to access the new document root.


Was that Jem I saw you with last night?
Rudy taught Lori how to swim.
Michiel's coming over tonight, so you know.
I finally stopped trying to persuade Pratapwant to clean his room.
Pandora wasn't able to solve the problem.
Tor's hardly likely to admit that he's wrong.
Horst walked to the front of the room.
I think Steve did this on purpose.
Lenora has been living with us since 2013.
Only Jennie would have the guts to do that kind of thing.
I'll come back for Melinda.
Mahmoud is pleased at his success.
Spock led the way and I followed.
Brad must've done it yesterday.
Markus should have done things differently.
Glynn was hoping to see Angus.
Tait has an aunt who is in prison.
Sarah is Beth's only son.
Susanne definitely doesn't like Rakhal.


To see a wide variety of Merlin's Art you can visit him by appointment in his Oxford home studio where he has a large stock both finished and work in progress paintings. Other ways to see his work are through his latest exhibitions and on social media ( join email list, Facebook page or Instagram account).
Below are a few examples of Merlin's main artistic styles and subjects.
Flowing Down Turl St, Oxford.
Jazz via Paris. Original Sold. Prints available.


text:
Notes from Himeji, Japan: Little Red Heartbreak
No Christines, thank Buddha. Only Red Rockets, young mommas and summer heat.
Flat as a teppanyaki grill this city of half a million might be, but in August it's nigh as hot as one too. You know it's hot when Fujimoto-san, the coolest cucumber AND the hardest working noodle chef on Otemae Street starts sweating into his dough. A little salt to taste? All good in this summer swelter, I say.
Horsepower beats pedal power in August. So, in a country where small is king, I will join the perambulating proletariat in compact, air-conned comfort. I call mine the "Little Red Rocket" (a Polo Volkswagen) on account of its candy apple red paint job, and "Little Red Heartbreak" on account of the money I have since paid for it in repairs.
Still, it's the bee's knees for negotiating the labyrinthine network of streets over which Himeji sprawls and if this city were indeed a human body, with Himeji Castle the beating heart, I would live at the end of one crooked capillary, a street not widened since the last rickshaw drag race in 1901.
There is no need for traffic lights here in the Good Hood - you simply cannot drive faster than a centegenarian doing a soft-shoe shuffle to the convenience store. And this is no place for goading six cylinders either - a Zen state of mind prevails, people motor about like they're listening to the "Sounds of One Hand Clapping" or "Haiku Hits and Memories."
Even in August when you'd expect tempers to rise with the mercury, they don't. Drivers nod and bow to each other, slowing to allow pedestrians to cross where there are no crossings, giving way when there is no legal (or rational) need, and allowing fellow motorists to edge into long traffic streams ahead of them for no good reason other than goodwill.
Which is not to say that Himeji is driving Heaven. Hell, no! My facial muscles grip my skull each time I venture beyond the comfort zone of the Good Hood where I've lived for the past 18 years. An instructor at the Sanyo driving school where I took a refresher course years ago warned me. He said, "Himeji drivers are the second-worst in Japan."
"And the worst?" I squeaked.
"Osaka," he said, clicking his tongue and looking towards the east. "Fuhgeddaboudit."
I concede, some drivers a little too Zen in the head here. Zen-drunk even, when empty mind is overtaken by absent mind. There are drivers who park on sidewalks, leave engines running outside 7-Eleven while they do their shopping, run red lights, juggle dogs and babies and cell phones, and on the sight of any orange traffic light, they put the pedal to the metal.
In Himeji, 10km/ph over the speed limit is deemed acceptable. You could go drive slower of course, but only the cops do that, which lends them an air of ominousness which I suspect they like. Civil servants with power exert it - even if driving a desk. I sat through a mandatory lecture at the Himeji Police Station, filled with the yawning and the young, grinding my teeth as the traffic wardens ran through the car accident statistics for the previous year. The atmosphere would have made an actuaries' conference look like the last party on Earth.
And the people who really should be there? The yakuza? No. The bōsōzoku (暴走族, literally "running-out-of-control tribe") motorbike gangs? No. The geriatric red-light-runners? No. In my mind, the greatest threat to humanity on the streets of Himeji is the 'young momma', the woman who is five minutes late for her son's piano lesson.
At her disposal is 2,500 ccs of hot-greased Japanese technical know-how, satellite-connected, TV-equipped, iced latte-filled and antsy-fumed. As a cyclist, I have been cut off at corners, edged into azaleas, brushed at signals and generally looked down upon from the captain's chairs of these hot-greased family wagons all my life by these women.
But not today, no sir. I'm looking up. Looking up from the air-conditioned comfort of my Little Red Heartbreak with The Police on full volume, singing "De Do Do Do, De Dah Dah Dah is all I want to say to you!"
Beautiful. Reminds me of summers on the coast in Wakayama prefecture. They'd light fires outside their houses to guide the spirits home. I swear you could feel them in the air.