Tumgik
#and then applying for stuff feels like throwing applications into the void
lucybianchi · 8 months
Text
.
0 notes
1eos · 1 month
Note
mx kendra, do you have any advice for job hunting? I'm about to start looking(again), but its always so intimidating - have a lovely day!
how it feels to start job hunting in the 2020s:
Tumblr media
but yes i have advice for you anon! last time i went job hunting i got serious enough where i was reading 'askamanager' blogs and shit like that to really make sure i wasn't wasting my effort
so kendra's advice to job hunting in the most effort effective way:
first and most importantly is to understand that job hunting rn is simply a numbers game. it's not you it's just that the society we're living in is full of shit. for every 10 job postings, 4 are fake, 1 has an internal candidate in mind already, 3 are just posting jobs to look good and the rest are legit but slow af
bc job hunting is a numbers game its easy to be discouraged if you're not receiving responses consistently as proof that you're not just throwing shit into the void so its superrr imperative to try your best to apply to legit jobs. ive found my best success using indeed as a method of jobs being brought to me and then going on the company website myself and applying. this also doubles as a way to make sure a job posting/company is real
keep a spreadsheet of applied jobs. i just googled 'job application spreadsheet template' and picked one of the first ones i saw, made a copy, and then modified it to suit my needs. keeping a spreadsheet was one of the best things i did bc it can help keep track of jobs you've found and haven't applied to/ones you have applied to/and if you're like me and had a goal of getting a state job i could pre-empt when the interview requests were gonna come in lol 😭
resumes/cover letters. whew. probably the most important part of job hunting. ai scanning or not its a good rule of thumb to have skills mentioned in the job description to match the job posting. what i did was dedicate a folder in my google drive to job stuff and made a folder for each kind of jobs i was interested in. from there i would find a job i wanted to apply to and tailor an old resume to have a bunch of the shit mentioned in the posting on the new resume. i'd save it in the appropriate folder with the date i edited it. if you haven't been in the habit of tailoring your resume you may be doing this a lot but eventually you'll have so many variations you won't have to do much editing if at all. and i do the same with cover letters. i have a general template for my cover letter and then tweak them for each kinds of jobs im looking for. this + ditching linkedin helped me A LOT
create an interview cheatsheet. you probably already know the job hunting sphere has a language and culture all its own. personally as someone with a touch of the 'tism it do not make sense to me so i have unknowingly not navigated interviews as well as i could have. what's helped? ask a manager. seriously. miss allison has helped me blend in as a normie soooo much 😭😭😭😭 if you have any specific questions/have any specific weaknesses just search the site but what really helped me was the list of good interview questions. oh and for the longest i could never come up with a good question to ask my interviewer but one day google recced me this article and now every time i ask 'so what would separate a good candidate from an excellent candidate in this role' and when i tell you my interviewers gag every time lollllll. i also went through 'boost your interview iq' [pdf download link here <3] and jotted down notes on how i can answer common interview questions to quickly be able to go over the night before
study the job posting before the interview btw and try to drum up at least one correlating anecdote for some of the major points of the job bc they WILL ask you that lollllllll
24 notes · View notes
julemmaes · 4 years
Text
Pinky Promise - Chapter Four
A/N: I love them so much and if they don't kiss in the immediate future I'm gonna sue myself. This is some fluffy-whump shit I don’t even know, I tried to update earlier this time, I hope I didn’t fuck anything up and please please be nice if you don’t like the chapter cause today was hard - we found out my uncle is positive and my parents might be at risk (me as well) and it’s not good. Enjoy!:)
Fic masterlist
Word count: 4,779
Nesta sat on the armchair in Cassian's apartment and stared at the void, clutching her hands around her cup of tea.
She had been there for thirty minutes, joined by her boyfriend, and they had both said only a few words. She was terrified at the idea of having to force herself to listen to him and he, unaware of the battle that was raging inside her, seemed not to want to drop this crazy idea.
"I spoke with Feyre this morning," Nesta murmured. Cassian's head snapped up, a not too convinced smile flashed on his lips, inciting her to continue. "She told me I should listen to you."
The half smile turned into a proper one at her words, but he got serious when she gave him a dirty look, "Why?"
"She said that if you've gone so far as to call this insane mission of yours a dream, then it must be important." she held the cup even tighter between her fingers. Cassian followed the movement with his eyes, frowning. "She says I can't clip your wings. That it would do us more harm than the prospectus of you dying in combat, apparently." her sharp tone that of a woman who leaves no witnesses.
He stiffened in his seat, "Nes..."
"I'm not saying that she's right. I'm not going to give you my consent to do shit like that, not yet..." she pointed out, looking him straight in the eye, "But I want you to explain to me how it would work."
She saw the second hope ignited in his irises. The moment he knew that if he used the right words, if he pushed the right buttons, he would be able to make her give in. And Nesta wanted to shut herself down. She wanted to throw the cup against the wall and yell at him how stupid, stupid, stupid he had been to think such a thing.
She wanted to tear her hair out because the man in front of her was the only thing that hadn't brought her down in the last ten years and now he was slipping through her fingers, and she couldn't do anything to avoid it.
"What do you want to know?" he asked, pushing himself forward in the chair and resting his elbows on his knees. He wasn't smiling openly, but she could see that the conversation was making him happy.
She licked her lips and saw him swallow.
They hadn't kissed in about four days and Nesta was counting the minutes since their mouths had touched before they started fighting, wondering if it would be the last one every second that passed.
"I want to know everything." she stammered, "What should you do now, right now, to prepare to join the army?"
He ran his hand through his hair, messing it up, "I'll have to take a medical examination, of course, and do a physical screening." He began, "This will be held in MEPS, which stands for Military Entrance Processing Station," Nesta had a feeling that she would remain silent for much of the explanation, without interfering. Not because she didn't want to, but because she could better absorb the information and all the acronyms he would spill on her.
As if she had been in class and they were explaining yet another protocol.
"I'll have to go there to process into the army." he looked her in the eye, "Basically, I'm gonna spend a night in an hotel, chosen by them. You can come visit me with the others, but you'll have to leave at ten and-" he stopped, arching his eyebrows, "Do you want the details of what I'm gonna do or?
She stopped him, "Please, tell me everything."
Something in her voice must have moved him, because he looked at her carefully before he resumed, "Alright, I'm gonna get a call at four in the morning, I'll get breakfast there at the hotel cause they do that for you," he said as if it were something to be applauded.
She snorted, "I think that's the least."
She wasn't ready to thank an organization that would surely destroy her family just because it would give her boyfriend a free breakfast.
Cassian glared, "And then we're all there at MEPS at five."
The fact that Cassian already saw a "we" in the army made her skin crawl.
"They'll assign me to a liason and that person is gonna explain what the day will entail and what we should expect."
He took a deep breath, easing some of the tension in his shoulders. He did that so often, "Then, there's the Armed Services Vocational Aptitude Battery, that I'm gonna call ASVAB from now on. It is a mock test used to screen applicants to ensure that they mesure up to the high standards that are required."
And here it was, his recruiter voice. Nesta didn't think he would mention other propaganda videos, like the night before, but it seemed exactly like he was doing that while saying, "The main reason this test exists is because for Prythian Armed Forces it's important that they employ people who show strong levels of enthusiasm and skill." he winked at her and Nesta had to make an effort not to throw the cup at him, "You know, in order to maintain a great level of service and professionalism."
He puffed his cheeks, with thoughtful expression, tapping a finger on his lips, "There are nine subtests to this thing." And then he started counting on his fingers, "There are General Science, Arithmetic Reasoning, World Knowledge, Paragraph Comprehension, Mathematics Knowledge, Electronics Information, Auto and Shop Information, Mechanical Comprehension and Assembling Objects."
He stood up, took the phone at the center of the coffee table and passed it to her. She hesitantly picked it up and saw only a picture of a book, "There are plenty of sites and a specific book with sample questions I'll need to try out." he pointed the phone into her hands, "Just like a normal exam, same exact stuff."
He joked that he would need her to study, but she didn't change her expression, putting the phone on the coffee table and taking a sip of her tea.
"I'm gonna get a medical briefing and after that I have to get an exam with some physicians," he continued, "Once I'll be done with medical part-"
She interrupted him again, having to stop that dump of information that was being tossed at her, "And at this point you're not enlisted yet, are you?"
Cassian's smile turned soft, "No, baby, this is the moment they see if I'm suitable."
She nodded, "Got it."
He gave her the thumbs up, "Resuming, once I'm done with medical, I'll meet up with a counselor and that's the part where I negotiate a job. We'll talk about this later." he cracked his fingers, sighing, "With that being done, I'll go to the processing section, they'll do what they have to and at this point, I'll take the Oath of Enlistment, where I'd like you to be there."
He looked hopefully at her and Nesta closed her eyes, breathing through her nose.
Cassian stood up, approaching her. When she felt his hand on her leg, Nesta opened her eyes and saw him kneeling in front of her, his eyes glowing as he stared up at her.
"And then I'm gonna come home. To you." he whispered, stroking her thigh with his thumb, "And the first part will be done."
She moved her leg, fleeing his touch. She missed him too much and that hand, whether it was a strategy to soften her up, to make her lower her guard or simply because he missed touching her too, was messing with her brain.
Cassian swallowed noisily, clenching his hand in a fist and bringing it to his side. He stood up and sat down on the sofa, as close as possible to her armchair, "I'll return to the MEPS a second time, to begin my path on the army. A second medical inspection, a second oath and final processing and then I'll leave for BMT, which is Basic Military Training," he concluded.
Nesta looked across the room, toward the kitchen, where they had argued heavily just a few hours earlier. She closed her eyes and lowered her head, suddenly feeling weak.
His words appeared behind her eyelids, as clear as the sun.
We can always have children and pursue the careers we want.
He had seemed so sure of what he was saying.
We don't have to choose.
"Sooner or later we will have to..." she whispered.
Cassian pushed himself towards her, "Sorry I didn't hear that."
Nesta passed her hand over her face, "No, nothing," she sighed, "I was just thinking out loud."
He nodded, biting his upper lip.
"Is that why you've been training so hard?" she asked, remembering only then how much more he had actually started working out in the last few weeks. In the last few months.
Cassian responded positively and they continued talking for hours.
Nesta asked question after question: what would happen now, what would change in the immediate future in their lives, when was he supposed to leave Velaris - when was he supposed to leave here.
He explained to her what they were going to do. He would sign the contract for enlistment in a delayed entry so that he could leave in more than six months. So that they could plan everything calmly without the fear that he might be called to start Basic.
The departure date would have been decided together before he left for MEPS. He would apply for a career in the Transportation, Distribution & Logistics field as a Cargo Specialist.
Cassian had opened a web page on his phone and had her read what a job in that field involved.
"Cargo specialists ensure service members all over the world receive needed supplies and are themselves transferred safely and efficiently to their destinations. They are responsible for transferring or supervising the transfer of cargo to and from air, land, and water transport by manual and mechanical methods. They also plan and organize loading schedules." she read aloud.
Exactly what Declan was doing at that moment, he explained.
Cassian remained silent for a few minutes, allowing her time to assimilate any information he had given her. There was still so much to discuss that Nesta's head was bursting at the thought.
Before she could say anything about the fact that they were done for today, the door of the house opened and Azriel entered, with two vases so big that they covered his face, followed by a smiling Elain.
Cassian puffed and looked at her, whispering so that the others would not hear him, "I can't wait to have our own house," Nesta felt her heart implode, "so no one would ever come into the middle of our arguments to interrupt." she knew that his was a poor attempt to make her laugh, but she had completely turned her brain off.
She was used to talking about these things with him. Her heart hadn't hurt at the idea of the two of them just living together. Her whole body had hurt at the idea that in that house, there would only be her. No one else.
Even if they spent the next six months looking for the perfect house and found it, she would be alone.
Because Cassian would be overseas.
She turned to him, really looking at him and concentrating on the long black eyelashes that were fluttering fast.
She caught her breath, rising abruptly and Elain realized at that moment that she and Azriel were not alone. Both of them seemed more than surprised to find her in their living room, but, exchanging a quick glance, they decided not to say anything about it.
Azriel put the large vases on the floor, taking the smaller ones she was carrying out of Elain's hand, "Hello," greeted both of them and Cassian stood up in turn, turning to the newcomers and giving them a tight smile, "have you read the messages?" Azriel asked, taking off his coat and scarf that Elain had knitted for him.
Nesta smiled slightly.
It was Cassian who shook his head.
"Mor said that Manon arrived early. There was a misunderstanding with the time zones and they got confused with the days, but she's here anyway." Elain sounded excited, "Dinner at hers tonight."
"Fuck." Nesta murmured, running a hand over her face. She grunted in pain thinking of the headache she would have the next morning when she was due back at work. The week she spent at home on vacation had certainly made it easier for her to lay in bed without having to spend hours in the bookshop.
Cassian turned to her, slightly worried, "We don't have to go if you don't want to".
We.
Azriel looked closely at them and when he crossed Nesta's gaze, he sighed.
"We-" she began, "We?" she asked sarcastically, laughing in his face.
She was getting angry and had to try to control all the emotions roaring inside her.
After all the things he had decided without her, there was still an us. Apparently.
Cassian seemed to be in trouble, "I'm sorry," he whispered, "You don't have to come if you don't feel well." he corrected himself, "I'm sure Mor can arrange a meeting with just the three of you."
Nesta looked him in the face, clenching her jaw, "I'm going."
Elain let go an excited scream and went up to her, "I'm glad you're coming too."
They exchanged a quick hug and the older one almost cried.
She didn't realize how much the lack of physical contact weighed on her. And how more than half of that contact came from Cassian.
***
"Hey girls, come on in!" Mor greeted Nesta and Feyre with a bright smile on her lips.
As soon as they entered the house, they smelled the smell of baked pasta and both their mouths watered.
"Amren and Varian are in the kitchen with Manon and Rhys is wandering around the house somewhere, so," she told them, informing them on who was already there. Then she took one look at Nesta, "You're sure you and Cassian can stay in the same room without jumping at each other's throats?"
Feyre giggled next to them, shutting up immediately when Nesta looked at her with an eyebrow raised.
She turned to Mor, "He promised me he wouldn't bring up the army topic tonight and I promised him I wouldn't get mad about anything he said, so there shouldn't be any problems."
The blonde didn't seem so convinced, but then someone called her from the kitchen and her face lit up. She grabbed them both by the hand and dragged them into the other room, where a tall girl, with almost blinding white hair, was standing with a pan in her hand. When she saw them, she opened her eyes wide and flashed them a smile.
Feyre raised her hand in greeting and Nesta smiled tightly.
"Oh! Yeah, sorry," Mor approached Manon, taking the food and placing it in the center of the table.
"Baby, these are two of the three sisters, Nesta," she said, pointing to the eldest, who reached out to Manon to shake her hand, "and Feyre, the youngest of our group."
"Pleased to meet you," murmured Feyre, blushing under the inquisitive gaze of Manon.
The girl smirked, "The pleasure is all mine." then she turned to Mor, "Our Morrigan told me that you were all very beautiful, but I didn't think I'd join a group of models."
Amren, who hadn't taken her eyes off Nesta until then, snickered, "And we're the modest ones, just wait until Rhys and Cass are in the same room and we'll have a hard time breathing from how much space their egos will take up."
Feyre laughed, "You say that as if Azriel didn't know he was the most charming one in the group," then turned to Varian, "Nothing personal," she joked, sitting between Amren and Mor. The boy shook his head smiling, always with his silent manner.
"At least dear Az remains humble and does not go around proclaiming himself Miss Velaris," said Mor.
"It happened only once and I was drunk off my ass."
Rhysand entered the kitchen with his usual grin on his face, sitting next to Nesta.
He greeted the sisters with a quick smile, and she saw Feyre smiling back as if they hadn't yelled at each other five nights earlier.
She looked around, trying to figure out if she had missed something in the last few days or if she was really the only one who just couldn't let things go.
It was true, she wasn't going to cause Mor any trouble that night and she certainly wasn't going to spoil everyone's dinner by arguing with Cassian, but she wasn't going to pretend it was all okay either. Looking at each person at that table, however, it seemed that the fight that everyone had heard had never happened.
They were talking about the university and the jobs they had and Manon seemed more than calm and comfortable in that group. Feyre, strangely enough, was the one who was the most involved in the conversation and Nesta realized with no small apprehension that it must have been because Tamlin didn't let her make new friends so often.
Manon was a flower that had just bloomed in the burnt lawn that was her sister's life.
When the other three arrived, Azriel had one arm around Elain's shoulders and Cassian, behind them, had shiny eyes. Nesta knew very well that he was not crying or drunk. That was the face Cassian had when he was exhausted and only two days of deep sleep could fix that.
Manon and Mor had got up to make introductions and Nesta had burst out laughing when the newcomer had extended her hand to Az and said, "You must be Lucien. You and Elain are a splendid couple."
Elain laughed and shrugged Azriel off, "Oh, no. He is Azriel. Lucien's not coming tonight."
Mor had cast a long look at her girlfriend and Manon had apologized, smirking, as if she had done it on purpose.
Nesta knew very well that the blonde in their group often talked about the relationships-non-relations within their circle, so Manon must have known that no one in that house really believed that Elain loved Lucien. At least, no one in that house believed that Lucien was the right person for Elain.
There was a time when Nesta was convinced that he was going to propose to her. That sweet little Ellie would finally leave the nest and build her family elsewhere, but whenever she was asked questions about their relationship, she seemed indifferent. She cared about Lucien, she did, and it was obvious.
But maybe that wasn't enough anymore.
Azriel had introduced himself for who he really was and then rushed to the table, sitting next to her, red from head to toe. Nesta bent over to him, making a joke about what had just happened, and then whispered, "Thank you." Azriel raised a confused eyebrow. "For sitting here," she pointed to the chair, "I didn't want to have to spend the whole evening next to him."
He smiled at her, clutching her knee under the table and reassuring her that it was not a problem.
When they all sat back down to eat, Manon was looking at her and smiling at her in a reassuring way. Whatever Mor had told her, the white-haired girl knew more about them all than she let on.
Cassian didn't speak to her the whole time, too lost to have a chat with Varian and she was grateful that both of them were sitting on the same side of the table, because she didn't risk crossing his gaze, not once.
Also because she was sure that if he looked at her even for a moment, he would notice that something was wrong and that Nesta was not feeling well.
When Mor put the wine on the table, half of them refused the alcohol, finding a plausible excuse that they would all have to work the next day, but Nesta knew every person at that table like the back of her hand and she knew that Feyre had refused because she would have argued with Tamlin if she drank without him being there. Elain would bring up things that weren't supposed to go out in such a context and she and Cassian would start fighting, driven by the liquid courage in their glasses.
Halfway through the meal, Nesta got up to go to the bathroom and as soon as she shut the door behind her, she sighed closing her eyes.
Cassian was right when he told her that she should not come. Her headache was getting worse and she couldn't concentrate on anything that was being said.
She sat on the closed toilet and put her hands to her face.
She felt her fingertips tingling and her stomach hurt so much that she would not be surprised if she vomited all over the table when she got back.
She had to go home and sleep and not think about anything.
She heard the others burst out laughing and suppressed a groan of pain when her ears started ringing.
She was dying, she could feel it.
She came out of the bathroom staggering, almost as if she were high on drugs.
Leaning on the wall for support she managed to return to the kitchen and covered her eyes with one hand, sheltering herself from the light. She coughed to call Mor's attention and they all turned towards her.
Nesta sighed for the umpteenth time, "I'm really sorry but I don't feel so good and I'd rather go home," she stepped to the table, approaching Manon and offering her a tired smile, "It was nice to meet you, I hope you can come back soon and visit us."
She had no idea what she was saying, the ringing in her ears became louder and louder.
Cassian stood up and everyone's attention shifted to him, "Do you want me to give you a ride?" he was already slipping out of his seat.
Nesta shook her head, grimacing, "No, there's no need-"
"You're sick, you shouldn't drive in these conditions," said Amren, looking at her severely.
Feyre came to her aid, "If you want I can take you. I can go out with them tomorrow," she said, pointing to her friend and her visiting girlfriend. Mor nodded, looking at her pale face and looking more concerned than necessary.
"Nesta," whispered Cassian, "please."
The fact that no one was making fun of him for literally begging her to drive her home made her realize that others had also sensed the emotion in his voice.
She looked him in the eye and nodded slightly with her head.
She saw Cassian sag with relief and then he was gone to the other room, fetching their stuff for her. She arranged with the sisters how they would return home and Azriel reassured her that one way or another they would safely go home. This made her slightly agitated as Azriel wore that stupid sneer he had every time he exaggerated with wine. Elain told her that she would be driving, since both Az and Rhys did not seem to be properly sober, and Nesta calmed down. She was about to thank Mor again when she felt the weight of the jacket on her shoulders.
She turned and smiled gently at Cassian, who had a tired and worried look on his face and shifted his gaze over her cheeks as if he could find the illness on her skin and remove it only by willpower.
He put his arm around her shoulders when she got dressed and said goodbye to everyone one last time, while Nesta, tired of being angry and on the verge of another hysterical crisis, snuggled up against him, letting herself be dragged out of the apartment and into the car.
As soon as she sat down, she leaned her head against the backrest and closed her eyes, yawning.
"Let me," Cassian murmured to her. He looked at her hopefully and it took her a few seconds to realize that he was asking her if he could fasten her seatbelt. She nodded almost imperceptibly, swallowing when he smiled at her and stretched over her to reach the other side of the seat.
She breathed the air deeply and had to close her eyes tightly when his scent ran over her and tears made their way under her eyelids.
She missed him so much.
Cassian closed her door carefully and then went around the car, settling down behind the wheel.
Like the last time they had been in the car together, he was not putting the keys in the patch and she was getting nervous.
She didn't have the strength to argue at that moment and if Cassian had offered to accompany her and she had accepted without too much fuss, it meant that her body knew it too.
"What is it?" he asked her finally, starting the car.
Nesta looked at him from the side, with a lost look, "Everything hurts, I think I might have a fever".
Throwing her a look full of worry, he said, "Why don't you close your eyes for a while? I'll wake you up when we get to your house."
She nodded and leaned her forehead against the cold window.
It wasn't long before she fell asleep, lulled by the gentle humming of Cassian and the rocking movement of the car.
When she woke up, she was no longer in the seat of her boyfriend's Jeep, but someone was carrying her and her head fell right and left as she was being bounced up the stairs. She tried to open her eyes and recognized the stairwell of her building.
She had her head resting on his chest, one arm around her back and one under her legs to support her.
"Sssh," he murmured into her hair, "we are almost there."
She grunted in pain, whimpering and almost crying when Cassian had to put her down to get the keys and open the front door. Her feet touched the ground and she leaned completely against him, gasping against his chest.
She didn't even have the strength to touch him and her arms were dangling along her sides. It was as if her legs had become jelly, she couldn't stand on her own.
"Sweetheart," he called her and she moaned, "I know, I'm sorry," he rubbed his hands on her back, stroking her gently, "but you have to give me a moment to open the door. So I can take you inside and you can sleep."
Nesta couldn't see anything and if she tried to keep her eyes open, everything would spin, but she still heard the hint of panic in his voice and could picture the worry painted on his face. Clenching her teeth she pulled herself away from Cassian and backed against the wall, "Hurry up," she said through her teeth.
The door was opened in a second and then Cassian picked her up without her even noticing. He took her directly to her room and as soon as she touched the bed, she sighed, pressing her face against the pillow.
Cassian took off her shoes and pants, helping her slip into her pajamas and covering her legs with the comforter. When he tried to pull her up to sit down, Nesta twisted, her head pounding.
"I know everything hurts, but if I let you sleep in your bra, tomorrow your ribs will hurt even more," he explained to her, sitting on the mattress, "Lean on me and I'll take care of it, Nes," she laid down, her head turned to the other side.
She heard him sigh and then Cassian's arms wrapped around her chest. She leaned completely against him with her eyes closed as she cried silently. The pain had reached overwhelming levels.
I'm sorry, I'm sorry, I'm sorry, she heard him murmuring when she sobbed.
Once he had removed her shirt and bra and put the top of her pajamas on, he laid her gently on the bed and put the comforter on her so that she was not exposed to the cold.
She felt Cassian's lips on her forehead a second before sleep took over.
“I promise we’ll get through this, too.”
acotar tag list (if you want to be removed or added just send an ask or dm me)
@sjm-things @kris10maas @awesomelena555 @sannelovesreading @queenamydien29 @ireallyshouldsleeprn @messyhairday-me @ncssian @observationanxioustheorist @my-fan-side @booksstorm @maastrash @sayosdreams @thedarkdemigod @courtofjurdan @thewayshedreamed @ladywitchling @nahthanks @archeron-queen @sleeping-and-books @bri-loves-sunflowers @thegoddessofyou @ghostlyrose2 @claralady @queenestarcheron 
69 notes · View notes
campdarkmoon · 5 years
Text
Mud and Stucco
Tumblr media
I attached chicken wire all around the surface of my house. This I did with pliers by looping tie wire through the bags. The purpose of the chicken wire is to ensure that the mud won't slip down while I apply it or fall off when it cracks. Cracking is expected and is not an issue since this layer won't be visible when the house is complete. The main purpose of the mud layer is to fill the gaps between each row of bags. It doesn't have to be pretty, it's just to minimize the amount of stucco I need. I'd rather fill the gaps with mud because mud is cheaper to make.
For water, I bought myself a big water tank and called a local Mesa man to come fill it up. I myself don't have a membership to the neighborhood's water well, or a truck to haul water anyway, so I get my water delivered by someone who does.
I've seen people apply mud to earthbags with a trowel or simply by hand, which is the obvious method, but Atulya K Bingham wrote about throwing mud balls at the walls. I tried that because it sounded like fun, and unsurprisingly, it worked great! Better than any other method of application, and much more exciting. And for the hard to reach places, I didn't need a longer ladder, I just needed better aim. But my mud is mostly clay and very, very sticky. It adheres better to the hands than any other surface. Once the mud is flung, it's best to leave it alone. Any attempt to adjust or smooth it will only make it worse. And thus, I laid it on thick, unnecessarily thick, without spreading it out. In hindsight, I could have used a lot less mud by adding sand to the mix or using more water. That way I could've been more precise and efficient with my materials, but that is knowledge I hadn't learned until afterward. So I'll have to do better next time.
Tumblr media
The next step was stucco.
Nearby is a dry river on national forest land that I was told I could go to and gather sand. So after a few expeditions down a few forest roads, two-tire trails through the sage flats, I found a route that goes down to the sandy bottom of the dry river's little canyon, full of sunflowers and smooth rocks, and tracks leading to where the good sand is. It's evident that this is the place. A free resource for sand!
And as for clay, I used my own soil. It has a high clay content. Any impurities are minimal and won't matter much anyway.
The first layer of stucco, I lathered on with my (gloved) hands. It created a rough surface, good for the next layer to stick to. For the second layer, I used a trowel to spread it smooth.
Tumblr media Tumblr media
Hot tip: wet the surface first.
The first batch of stucco, I made with a recipe I found from a quick Google search (5 sand, 1 lime, ¼ cement) which didn't stick well and cracked when it dried. I nearly completed the whole first layer with this stuff before I got curious and started experimenting. Eventually I came up with the perfect mix (5 sand, 1 clay, 1 lime). The clay fills the voids between sand particles, and the lime's flexibility helps it stay in tact while drying. No cement! And no cracks! It's incredibly sticky, holds its form, and doesn't slide down the wall. Such a pleasure to work with.
Lime is more environmentally friendly than cement, and more forgiving because it doesn't turn rock hard immediately like cement does. It gives you more time to shave off unwanted globs and redo areas you aren't completely satisfied with. The only disadvantage to lime is that it takes much longer to reach it's full hardness. Cement takes two weeks, lime takes 3 months. So it's important to keep it safe from harm while it cures.
I was told not to underestimate the amount of time it takes to plaster the walls. I knew it wouldn't be fast. The work is much easier, yes, it feels like a vacation compared to digging and bagging, but it consumes a great deal of time as well. About half as much as creating the structure. It's slow work and it's not as exciting as watching walls go up, but it's important and worth the time it takes.
Tumblr media
Lookin' good though!
6 notes · View notes
just4programmers · 6 years
Text
Adding Cross-Cutting Memory Caching to an HttpClientFactory in ASP.NET Core with Polly
Couple days ago I Added Resilience and Transient Fault handling to your .NET Core HttpClient with Polly. Polly provides a way to pre-configure instances of HttpClient which apply Polly policies to every outgoing call. That means I can say things like "Call this API and try 3 times if there's any issues before you panic," as an example. It lets me move the cross-cutting concerns - the policies - out of the business part of the code and over to a central location or module, or even configuration if I wanted.
I've been upgrading my podcast of late at https://www.hanselminutes.com to ASP.NET Core 2.1 and Razor Pages with SimpleCast for the back end. Since I've removed SQL Server as my previous data store and I'm now sitting entirely on top of a third party API I want to think about how often I call this API. As a rule, there's no reason to call it any more often that a change might occur.
I publish a new show every Thursday at 5pm PST, so I suppose I could cache the feed for 7 days, but sometimes I make description changes, add links, update titles, etc. The show gets many tens of thousands of hits per episode so I definitely don't want to abuse the SimpleCast API, so I decided that caching for 4 hours seemed reasonable.
I went and wrote a bunch of caching code on my own. This is fine and it works and has been in production for a few months without any issues.
A few random notes:
Stuff is being passed into the Constructor by the IoC system built into ASP.NET Core
That means the HttpClient, Logger, and MemoryCache are handed to this little abstraction. I don't new them up myself
All my "Show Database" is, is a GetShows()
That means I have TestDatabase that implements IShowDatabase that I use for some Unit Tests. And I could have multiple implementations if I liked.
Caching here is interesting.
Sure I could do the caching in just a line or two, but a caching double check is more needed that one often realizes.
I check the cache, and if I hit it, I am done and I bail. Yay!
If not, Let's wait on a semaphoreSlim. This a great, simple way to manage waiting around a limited resource. I don't want to accidentally have two threads call out to the SimpleCast API if I'm literally in the middle of doing it already.
"The SemaphoreSlim class represents a lightweight, fast semaphore that can be used for waiting within a single process when wait times are expected to be very short."
So I check again inside that block to see if it showed up in the cache in the space between there and the previous check. Doesn't hurt to be paranoid.
Got it? Cool. Store it away and release as we finally the try.
public class ShowDatabase : IShowDatabase { private readonly IMemoryCache _cache; private readonly ILogger _logger; private SimpleCastClient _client; public ShowDatabase(IMemoryCache memoryCache, ILogger<ShowDatabase> logger, SimpleCastClient client) { _client = client; _logger = logger; _cache = memoryCache; } static SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1); static HttpClient client = new HttpClient(); public async Task<List<Show>> GetShows() { Func<Show, bool> whereClause = c => c.PublishedAt < DateTime.UtcNow; var cacheKey = "showsList"; List<Show> shows = null; //CHECK and BAIL - optimistic if (_cache.TryGetValue(cacheKey, out shows)) { _logger.LogDebug($"Cache HIT: Found {cacheKey}"); return shows.Where(whereClause).ToList(); } await semaphoreSlim.WaitAsync(); try { //RARE BUT NEEDED DOUBLE PARANOID CHECK - pessimistic if (_cache.TryGetValue(cacheKey, out shows)) { _logger.LogDebug($"Amazing Speed Cache HIT: Found {cacheKey}"); return shows.Where(whereClause).ToList(); } _logger.LogWarning($"Cache MISS: Loading new shows"); shows = await _client.GetShows(); _logger.LogWarning($"Cache MISS: Loaded {shows.Count} shows"); _logger.LogWarning($"Cache MISS: Loaded {shows.Where(whereClause).ToList().Count} PUBLISHED shows"); var cacheExpirationOptions = new MemoryCacheEntryOptions(); cacheExpirationOptions.AbsoluteExpiration = DateTime.Now.AddHours(4); cacheExpirationOptions.Priority = CacheItemPriority.Normal; _cache.Set(cacheKey, shows, cacheExpirationOptions); return shows.Where(whereClause).ToList(); ; } catch (Exception e) { _logger.LogCritical("Error getting episodes!"); _logger.LogCritical(e.ToString()); _logger.LogCritical(e?.InnerException?.ToString()); throw; } finally { semaphoreSlim.Release(); } } } public interface IShowDatabase { Task<List<Show>> GetShows(); }
Again, this is great and it works fine. But the BUSINESS is in _client.GetShows() and the rest is all CEREMONY. Can this be broken up? Sure, I could put stuff in a base class, or make an extension method and bury it in there, so use Akavache or make a GetOrFetch and start passing around Funcs of "do this but check here first":
IObservable<T> GetOrFetchObject<T>(string key, Func<Task<T>> fetchFunc, DateTimeOffset? absoluteExpiration = null);
Could I use Polly and refactor via subtraction?
Per the Polly docs:
The Polly CachePolicy is an implementation of read-through cache, also known as the cache-aside pattern. Providing results from cache where possible reduces overall call duration and can reduce network traffic.
First, I'll remove all my own caching code and just make the call on every page view. Yes, I could write the Linq a few ways. Yes, this could all be one line. Yes, I like Logging.
public async Task<List<Show>> GetShows() { _logger.LogInformation($"Loading new shows"); List<Show> shows = await _client.GetShows(); _logger.LogInformation($"Loaded {shows.Count} shows"); return shows.Where(c => c.PublishedAt < DateTime.UtcNow).ToList(); ; }
No caching, I'm doing The Least.
Polly supports both the .NET MemoryCache that is per process/per node, an also .NET Core's IDistributedCache for having one cache that lives somewhere shared like Redis or SQL Server. Since my podcast is just one node, one web server, and it's low-CPU, I'm not super worried about it. If Azure WebSites does end up auto-scaling it, sure, this cache strategy will happen n times. I'll switch to Distributed if that becomes a problem.
I'll add a reference to Polly.Caching.MemoryCache in my project.
I ensure I have the .NET Memory Cache in my list of services in ConfigureServices in Startup.cs:
services.AddMemoryCache();
STUCK...for now!
AND...here is where I'm stuck. I got this far into the process and now I'm either confused OR I'm in a Chicken and the Egg Situation.
The Polly.Caching.MemoryCache stuff is several months old, and existed (and worked) well before the new HttpClientFactory stuff I blogged about earlier.
I would LIKE to add my Polly Caching Policy chained after my Transient Error Policy:
services.AddHttpClient<SimpleCastClient>(). AddTransientHttpErrorPolicy(policyBuilder => policyBuilder.CircuitBreakerAsync( handledEventsAllowedBeforeBreaking: 2, durationOfBreak: TimeSpan.FromMinutes(1) )). AddPolicyHandlerFromRegistry("myCachingPolicy"); //WHAT I WANT?
However, that policy hasn't been added to the Policy Registry yet. It doesn't exist! This makes me feel like some of the work that is happening in ConfigureServices() is a little premature. ConfigureServices() is READY, AIM and Configure() is FIRE/DO-IT, in my mind.
If I set up a Memory Cache in Configure, I need to use the Dependency System to get the stuff I want, like the .NET Core IMemoryCache that I put in services just now.
public void Configure(IApplicationBuilder app, IPolicyRegistry<string> policyRegistry, IMemoryCache memoryCache) { MemoryCacheProvider memoryCacheProvider = new MemoryCacheProvider(memoryCache); var cachePolicy = Policy.CacheAsync(memoryCacheProvider, TimeSpan.FromMinutes(5)); policyRegistry.Add("cachePolicy", cachePolicy); ...
But at this point, it's too late! I need this policy up earlier...or I need to figure a way to tell the HttpClientFactory to use this policy...but I've been using extension methods in ConfigureServices to do that so far.
I'm likely bumping into a point in time thing. I will head to bed and return to this post in a day and see if I (or you, Dear Reader) have solved the problem in my sleep.
"code making and code breaking" by earthlightbooks - Licensed under CC-BY 2.0 - Original source via Flickr
Sponsor: Check out JetBrains Rider: a cross-platform .NET IDE. Edit, refactor, test and debug ASP.NET, .NET Framework, .NET Core, Xamarin or Unity applications. Learn more and download a 30-day trial!
© 2018 Scott Hanselman. All rights reserved.
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
0 notes
devzoop · 6 years
Text
Unity UI Skinning... ... ...
Day 35.
I can’t believe it has been just over full month already.  Time goes by fast when you’re having fun!
I am also several blog posts behind.  I’ll try my best to go back and think about all the daily dilemmas, but today, we’re going with Unity skinning... or the lack there of.  Nerdiness ahead!
Tumblr media
Not too long ago, Unity released a new user interface system.
I’ll admit the old system was pretty darn strange, especially having come from the .NET universe with Windows Forms.
In Windows Forms, if you wanted to create a button, you’d do something like this once at the initialization of your window:
Button button = new Button(); button.Position = new Point(10, 20); button.Size = new Point(64, 32); button.Text = “Press Me!”; button.OnClick += buttonClicked;
Whereas in Unity’s old GUI system, you would do something like this:
void OnGUI() //magic function that does GUI stuff {    if (GUI.Button(new Rect(10f, 20f, 64f, 32f), “Press Me!”))    {       Debug.Log(”Hello world!”);    } }
From my experience, many UI systems, including Java, do something similar to Windows Forms:
Instantiate your control once.
Assign values, such as position, size, etc.
Hook your click event to a method of your choosing.
Unity manages to do all of those inside of a magical OnGUI function, with strange function calls that are called at least once a frame.  OnGUI gets called once for drawing, and potentially a second time for detecting events, like clicking.  
They effectively “proceduralized” user interface building, which means they had to keep track of a bunch of control states somewhere in the background, mostly out of the Unity user’s reach.  Besides being very unconventional, it is much “heavier” than “conventional” UI systems like Windows Forms. It thrashes memory and processor far more than it should.  I will grant Unity did an amazing job optimizing it over the years, but it still was super awkward to anyone who had used other user interface systems before.
Tumblr media
Despite all those flaws, I oddly fell in love with it.  Not because it was “good” from any academic standpoint, but it was definitely easy to throw together a quick and dirty user interface in seconds.  It was fantastic for prototyping.  It was also surprisingly quick to do automatic layouts, such as lists, or grid views, and such.  I built surprisingly complex user interfaces exploiting their horizontal and vertical layouts like crazy, including an elaborate level editor (RIP Avarice).
youtube
Unity knew this.  There were several assets in the asset store reinventing user interface for Unity because it was so unconventional and non-performant.  In fact, if I recall the story correctly, Unity eventually worked with the most popular asset store user interface system to create their new UI system.
And it fixed everything.
That’s a filthy frick’n lie.
I have a love/hate relationship with Unity.  So many things are done incredibly well, but, it wouldn’t be Unity if they didn’t have severe quirks.  Their new user interface system has just as many unconventional decisions as their previous GUI system, but in all new places one has to discover.  Ugh.
Pretend you’re building an elaborate roleplaying game, requiring hundreds of buttons strewn all over the place.  Now let’s say your artist says, “here’s a new design of the default button, go update it.”  My gut reaction would be to cry.
Tumblr media
In Unity’s janky old GUI system, there were skins.  Skins meaning a system where you can change a control, like a button, across the entire application. In fact, in Avarice above, I iterated the skin numerous times.  In Unity’s new UI system, SKINNING DOES NOT EXIST!
You would have to find every single instance of your button, in every single scene, and change all the states (default, mouse over, depressed, disabled), fonts, font style, colors, etc. individually.  We’re talking about potentially more than a dozen clicks per button.  I can’t even...
Tumblr media
If you’ve used Unity before, you may say, “Oh, just use prefabs.”  For the uninitiated, prefabs are like classes, which you can instantiate into new instances, effectively cloning the original.  On the surface, that sounds great, except you can’t have prefabs in prefabs in Unity.  That means you can’t have a prefab of your Team Selection window, and then use your button prefabs inside of it.  You can do that with some code, but then you can’t see your user interface when editing it.  What’s the point of having a UI editor if you can’t see what you’re working on!?
Because of this silliness, I have ended up writing piles of UI libraries to add this basic functionality (and more) to Unity over the years.  None of them have been particularly pretty.  Unsurprisingly, the Unity community has also built their own skinning systems, but, I have yet to find one I really like yet.
Tumblr media
Which brings us to why I am discussing this.  When I started Knight Light way back in 2014(?), the new user interface system didn’t exist, so I used the old GUI system.  Awkwardly, most of the game still uses that old GUI system, and it’s time to update it.
I KNOW we’re going to update the aesthetics of the user interface in the coming weeks, and I dread the idea of doing the code side of it once, and then having to go back and manually update the bazillions of elements all over again.
So, once again, I task myself with a skinning system of some form.  I think I finally came up with something passably decent:
Tumblr media
Above, I have defined several ScriptableObjects with all the values that define the skin for a particular control, such as a button, text, image, etc.  These are editable in the inspector or in code.
Tumblr media
Then on the actual control, I add an all-purpose Skinner component.  Inside, you assign the UIBehaviour you wish to skin, and the skin for it to use.
Tumblr media
In some editor trickery, I have minimized the number of clicks necessary to select the appropriate skin and auto-apply as necessary.  Of course, all of this can be done in code as well.
I have many more of these skins to write and test, but I am quite happy with the basic usage.  I feel like I won’t have to dread user interface iterations from my artists anymore.
What I coded definitely isn’t rocket science by any means.  It’s far less elaborate than my previous attempts, but something can be said for simplicity, right?
I could easily write a few more pages about all the quirks in the new UI system, but today is not that day.  If one of them bothers me as much as this, maybe I’ll write a blog post about it :-P.
0 notes