Tumgik
#Were you able to get the logout button back then?
thatoneluckybee · 9 months
Note
im getting desperate. this is miles. sighhhh
DELETE PROFILE SPOTTED, POINT N LAUGH Y'ALL /lh
1 note · View note
myresellerhome · 7 months
Text
WordPress 6.4: An In-Depth Overview of New Features, Improvements, and the Default Theme
Many people are excited and looking forward to trying out the new features of WordPress 6.4 as soon as it comes out. From making the writing tools easier to use to improving security, every part of WordPress has been carefully tweaked to smooth the user experience.
Join us as we closely examine the update's best features and talk about how they can help your website reach new heights in a digital world that is always changing.
Tumblr media
WordPress 6.4 features.
Some new things have been added to WordPress 6.4 as well. We'll look at these next.
Font library 
The main goal of the new font library is to make it easier to add and use fonts on a website. It also has places where apps can be added. The font library will be available to all users, no matter what theme is currently running. 
This will ensure that every website owner can pick the exact fonts they need for their page. The font library will work like the media library already built into WordPress.
Template Revisions 
People are working on making websites look better in several styles. They want to ensure that everyone who changes their design can take those changes back, no matter where they made them. It's now much easier to add to and remove from the website. 
New blocks. 
After you update to WordPress 6.4, you should be able to use three new blocks: 
Block for "Table of Contents" 
Block that says "Time to read." 
Marquee Block That Scrolls 
Automatic insertion of blocks
There is now an option to automatically put blocks in the right place, which makes it even easier to use. For example, if you are making a website page, you might get a message telling you to add a login or logout button. Over time, the exact reasoning behind these suggestions will be worked out.
WordPress 6.4 has new and better features. 
One of the most well-known content management systems is WordPress. But just because functions have been added in previous updates doesn't mean they are perfect. So, with WordPress 6.4, some changes are made to features that were already there to make them even better. 
Writing is easier 
WordPress 6.4 should make writing text in WordPress even easier, like blog posts or new pages. The things you use should not get in the way of your creativity. 
You can quickly change your texts into what you want them to be with the help of different choices and tools, like toolbars and link control. You should be able to focus on your ideas more after the update instead of fixing bugs. 
More efficient work 
Website owners use many different tools daily to make posts and pages. The following tools, among others, will be better because of the changes: 
The list of blocks will be better put together: Users should soon be able to resize and copy blocks quickly, name whole groups of blocks, and see images in gallery blocks. 
There are now better distraction-free modes, so you can focus on writing more. 
Improvement of the design tools 
Developers are adding more features to the design tools for more complex designs. This could mean making small changes to certain parts of the design, like letting users add pictures to the background of the group area. Bigger changes, like adding predefined spacing sets to "theme.json."
Changes to the pattern 
Besides adding the option to make patterns or themes while editing, WordPress 6.4 will also include more advanced features and several other improvements: 
Add categories 
Make it work better with themes that aren't based on blocks 
The sample page's empty sections are being worked on even more. 
Footnotes
The reference block was added in WordPress 6.3, and the new update will make it even better: 
Easier to add font, size and border for the block 
It's easier to add text, background, and links. 
Making sure that the outcome works with special post types as well
Ability to import and export patterns.
Importing and exporting themes in WordPress as JSON files is now possible. There is a + sign next to the pattern library. To add a pattern, click on it and then choose "Import pattern from JSON."
If you want to move the patterns you've made to a different website, click on the three dots next to each one and choose "Export as JSON."
Changes to the command menu
In WordPress 6.4, the Command Palette gets some updates that improve it. The changes from the last version include a new look and some new functions.
The picture below makes it easy to see how the Command Palette looks different in WordPress 6.4. There is a new search icon, and the words and icons have been changed to be easier to see.
As part of the other updates, you can show or hide breadcrumbs, explore in a new tab, and do other things. 
Brand-new block hook feature
This block hook feature is better than the auto-inserting block feature with Gutenberg version 16.4. This function is very helpful for developers, and with the blocks API, the right blocks can be put together, called up, and placed automatically in the right place. 
Improvements to the toolbar 
This is a small but important change that not everyone will notice right away. The new toolbar is in the quote, list, and menu blocks. A unique feature in WordPress 6.4 is that the toolbars of these blocks stay in the same place for both the main text block and the secondary cite block. This makes things a lot better for the person.
New link teasers that open in a new tab
With this feature, the website administrator can choose whether a link should open in a new or current tab. Most people would rather open the links in a new tab than close the current one and then open it again. If you check the box, the link will open in a new tab for readers.
The list view gets better.
Many changes and additions have been made to the list view in WordPress 6.4. Users can now change the names of group blocks in the list view, making things run more smoothly. In the list view, click on the three dots next to the group block, and then click on Name Change.
The list view now has image previews, another change that stands out.
Additionally, you can make copies of blocks in the list view by pressing ctrl+shift+d (Windows) or cmd+shift+d (Mac).
Query loop improvements to pagination
You can now set the number of pages shown to readers in the query loop pagination. The settings can be found in the settings panel for the page numbers block. The number of links will be shown.
That is helpful if you have a lot of blog posts and want people to switch between pages quickly.
The next change will be the client-side scrolling for the query loop block. The query information is retrieved on the client side when the server loads. So, when people move to a different page within the query loop block, the browser doesn't have to reload the page. This makes viewing faster and better.
Select the query loop block in the editor, open its settings panel, and turn off the Force page reload option. This will allow client-side browsing.
The new standard theme is Twenty-Four.
The main idea behind the new Twenty Twenty-Four default theme is to make a design that can be used on a wide range of websites, no matter what they are about.
This year, instead of focusing on a single theme like last year, the developers worked on three different use cases: one for business people and small businesses, one for photographers and artists, and one for magazines and blogs.
Twenty Twenty-Four was made with current design trends in mind. A fancy font is used for headings in this theme, while a simple font is used for writing. The design is mostly light colours, but there is also a darker choice for those who would rather have that. Also, you can pick from two other fonts: a light one and a dark one.
Twenty Twenty-Four is a WordPress block theme, just like the ones that came before it. It works great with all the tools you can use to make websites. For design, it adds the "Details Block" and the ability to order text vertically, among other things. One great thing about this theme is that it comes with full-page styles and patterns.
This means you don't have to start from scratch when making your website; you can use parts already made. Most of the time, this makes your process easier and clearer.
Conclusion
WordPress 6.4 has many cool new features and changes that will improve the experience for everyone, from new users to experts. With the updated block editor, better accessibility choices, and speed improvements, this update makes WordPress an even more reliable and innovative way to build websites. The new default style also gives WordPress websites a fresh, modern look. 
Tumblr media
Janet Watson MyResellerHome MyResellerhome.com We offer experienced web hosting services that are customized to your specific requirements.
Facebook Twitter YouTube Instagram
0 notes
lala-ladybug · 3 years
Text
Healing Hands: Chapter 4
Yesyesyes I’m super excited to share this one with you guys!! The game is finally beginning, ahhhh!!!!
Jasonette Sword Art Online AU
Read here on AO3
Tag list: @iloontjeboontje
First | Previous | Next
Chapter 4: Goddamn wimps, all of them
Marinette opened her eyes, squinting against the bright sunlight. She stood in a huge village square filled with hundreds of people, the gaps between them growing smaller as more and more players appeared. The sun shone merrily, and an excited chatter began rising in the air. She closed her eyes and took a deep breath. It felt good to be back.
“Marinette!” She looked around to see Alya and Nino waving a few yards away. She broke into an excited smile and jogged over to meet them. They must have spawned in relative to their actual locations since Kagami, Luka, and the others from her class were already there.
“Hey guys!” Marinette said breathlessly. “Almost didn’t make it. Thanks for the call, Alya.”
The brunette gave her a quick hug. “Anytime, girl. Now you and Lila can show us the ropes!” She bounced excitedly.
Marinette barely caught herself from rolling her eyes and just nodded instead. Of course Lila would be able to help teach the others how to play. It definitely wouldn’t just be Marinette teaching everybody. Again.
Meanwhile, Max and Nathaniel were remarking on how realistic the textures of the cobbled streets were. Marinette did a double-take when she saw Adrien standing next to them. He had an immensely intricate and ornate suit of armor. There was an excess of spikes, ribbons flowing from every joint, and every inch of him was covered in metal. A tall helmet adorned with skull decals cast a shadow over his grinning face.
“What are you wearing?” She spluttered. He pointed a thumb to his chest with some difficulty, the thick metal creaking with the movement.
“This bad boy is the toughest armor in the game! I may have made a few embellishments of my own, so now I look even cooler.” He stated with pride.
Marinette shot a look at Luka, who wore a light set of simple leathers. He grimaced and shook his head, warning Marinette not to question their friend’s surprisingly atrocious taste in fashion. Or serious misunderstanding of armor weight classes.
“You know you could’ve picked any armor you want, right?” Adrien asked.
“Oh, I know. I crafted this set during beta testing!” Marinette spun around to show the boys, gladly welcoming the change in subject. She was dressed in a light suit of armor, the metal tinted a deep red. Black fabric peeked underneath the gaps, a strong yet flexible design of her own making. A simple grey cloak hung off her shoulders, concealing the quiver behind her back.
While Luka and Adrien complimented her brilliant design, she spotted Lila. She looked a little out of her element, hanging back to awkwardly watch a conversation between Kim, Alix, and Kagami, oddly enough. The three were dressed in heavy sets of armor, lamenting about how there weren’t any monsters to battle yet.
Chloe sauntered over to join them and, having heard how even Kagami was itching for a fight, wrinkled her nose. Marinette giggled to herself. This was going to be interesting, to say the least.
* * *
Jason’s eyes snapped open and he threw out an arm to steady himself. The transition from logging on was dizzying, but the sensation faded with every deep breath he took. He noted the smell of freshly baked bread wafting through the air. Damn, even he had to admit this tech was impressive. Dick and Tim stood next to him, wearing blue and red-toned armor respectively. Tim was looking around wildly, grinning like an idiot.
“Timmy!” Cassie Sandsmark sprinted towards them to tackle her boyfriend in a hug. Oh great, looks like the rest of the kiddy patrol was here too. Looking to where Cassie had run from, Jason indeed saw various members of The Team. Connor looked just as nauseated as Jason had felt after joining. Roy stood next to him, unmoving as he stared down at his very realistic-looking hand. Ouch. Jason had to have some sympathy for the poor kid, not that he’d ever tell him that.
Bart and Garfield, on the other hand, appeared to be having the time of their lives. Bart got into a running stance and Garfield gleefully jumped into the air, both falling flat on their faces. Jason snorted as he watched Jaime help his boyfriend up. Jaime asked him, “Whoa there ese, what gives?”
Bart shook his head and muttered, “I don’t have my speed.”
Garfield furrowed his brow and strained his face. “You look like you’re either really constipated or trying to shift,” Artemis informed him.
Ignoring her, Garfield locked his panicked eyes with Connor’s. “I can’t shift either, SB.”
“Der kaolc ym nrut,” Zatanna intoned quietly. When nothing happened, she nervously said, “My magic doesn’t work either.”
Jason rolled his eyes. Goddamn wimps, all of them. “Looks like all you supers will have to stoop to our level.”
“Stay whelmed everyone,” Dick stepped in to mitigate half the group’s outrage. “It’s just a game, we don’t exactly need our other skills right now.”
Before they could say anything else, an enormous bell mounted in the center of the town square began to ring. A hush fell over the crowd. The sky darkened as red hexagons interlocked to create a massive dome around the town.
A tall being flickered to life in the air above them. The hooded figure floated high overhead, their face eerily concealed.
“Attention players,” the figure raised their hands. “I welcome you to my world.” Well that didn’t sound ominous, Jason thought to himself. He felt the mood from the others shift into high alert.
“You may call me the Game Master, and I am the only one in control of this world. You may have noticed that the logout button is missing from your main menu.” The figure paused dramatically. “I assure you, this is no defect in the game. It is all as I have designed it to be. You cannot log yourselves out, and no one outside the game will be able to remove you forcibly. If anyone tries to do so, a transmitter inside the VR headset will emit powerful microwaves into your brain that will end your life.” Shit, shit, shit. This was just supposed to be a dumb game he played to make Replacement shut up about it, what the hell?
“Of the 10,000 players, 215 have already died because their family or friends ignored this warning and attempted to remove their headsets. Media outlets have been reporting on this, so it is safe to assume the danger of your headsets being removed has passed.” This guy had to be joking. Though if he wasn’t, Babs would surely research everything within her power to try to remove them safely.
“One other feature of the game is that you are no longer able to revive players. If your HP drops to zero, your avatar will die and the headset will destroy your brain.” Jason’s eyes widened and his head whipped to Dick. He ran a hand through his hair, looking just as horrified as Jason felt.
“The only way for a player to return to the real world is to clear the game. You are currently on Floor 1, the lowest level of the castle. If you make it to the dungeon and defeat the level boss, you may progress to the next level. Defeat the final boss on Floor 100, and you will clear the game.” This motherfucker couldn’t be serious.
The game master, god what a pretentious prick, raised his hands and began to disappear once more. He said, “Good luck, players,” before disappearing entirely. The sky returned to its cheery blue.
 A beat of silence passed before someone started screaming. Then the thousands of players erupted into a cacophony of sound.
* * *
Marinette stood stockstill amidst the chaos. She felt more than heard masses of people panicking around her. Her eyes darted back and forth without truly seeing anything, mind racing to figure out a solution. If there was no way to safely remove the headset, then they’d have to beat the whole game. What about the Kwami? Could they connect with their miraculi? What about the small powers they’d each accumulated over the years? If those were accessible, then they might stand a chance, but god if they weren’t--
A hand on her arm made her snap her head to attention. It was Adrien, his jaw clenched tightly. She gripped his arm in return, the small reassurance barely that. Around her, the new Order looked to their leader for orders, direction. And behind them, her classmates....
Most were white in the face. Max had his hands clenched in his hair and was muttering to himself about the likelihood that the headsets actually could kill them. From the way he was shaking his head, she guessed it was a definite possibility. Lila looked like a cornered animal, twitchy and desperately looking for an escape. Even Kim and Alix wore uncharacteristically serious expressions.
“Well?” Chloe prompted Marinette. The latter took a deep breath. Better focus on solving the smaller problems first. “Your VIP package came with a house on the first floor, right?”
Chloe blinked in surprise. “Yeah, it did,” she replied uncertainly.
“Good.” Marinette whistled and gestured for the rest of her friends to gather around. “Listen up! We don’t know how everyone else is going to react, so it’s best for us to go somewhere safe to lie low for a while. I can teach everyone the gameplay, and we’ll do our best to help beat the game.”
She looked Alya and Nathanial in the eye, since their hands seemed to be shaking the most, and said with all the confidence of Ladybug, “Think of all the bullshit Hawkmoth’s put us through. We are not going to die here. That’s a promise.”
Marinette drew her bow and half-strung an arrow, holding it parallel to the ground. “Chloe has a house on the first level. Let’s go.” She nodded to Adrien, Chloe, Kagami, and Luka to establish a perimeter around the rest of the class as they moved. She exhaled a quiet, shaky breath and led the way out of the square.
The crowd did not part easily. People were sobbing, shouting, hyperventilating. They needed to get out fast before the shock wore off.
Someone stood in front of her. The poor soul was probably just as scared as they were. She put her bow back in her inventory, trying to appear as non-threatening as possible.
“Excuse me,” Marinette gave a little half-wave to get their attention. “May I please get through?”
“Oh, sorry,” He had a deep, male voice. One hand gestured to the direction she was headed as he stepped out of her path. “Go right ahead.” His hands weren’t shaking as the other crept towards his belt. Not good, not good.
A flash of silver was all the warning she got before Luka pulled her back. A knife collided with his hastily raised shield, shedding sparks as the assailant nearly dropped his weapon in surprise. Marinette dropped down to sweep her leg beneath Luka’s shield, knocking the man off his feet. He gave a shout of surprise as he went down, and Luka disarmed him in the confusion.
“Come on, move it!” Marinette shouted over her shoulder. She re-equipped her bow and surged forward, picking up the pace to get the hell out of there. Such a large group was an easy target, they had to get out of the open and fast. People were starting to react beyond their shock, and more of them were bound to get violent.
Her eyes scanned over the buildings in front of them. There. A momentary break in the throng of players allowed her to spot Slipcut Alley, a favorite shortcut of hers. It was only a few yards away. The alley was too narrow for anything but a single-file line, but it provided cover and was hidden by a spell that only other beta testers would know about. It was their best option.
She squared her shoulders and pushed through the last of the crowd. She turned to face her friends, who gathered around her as they too made it out into the small clearing. Chloe, Kagami, and Adrien were watching the crowd behind them, ready to defend against any other attacks.
Marinette put her bow away one more time and asked, “Do you trust me?”
Shaky nods and wide eyes. That would have to do.
“Then follow me,” she said, and walked straight through the wall before them.
* * *
“Our first step should be finding shelter for the night,” Dick said sharply. “We can figure out the rest tomorrow, but it’ll do us no good if we die tonight.” Tim nodded, ever the protégé.
“And just how do you suggest we do that?” Jason countered. He couldn’t help it if it came out a little accusatory. He did not sign up for a damn death trap.
It was Garfield who had the answer. “Well, in order to do anything, we need money. So we need to start killing some monsters!” He palmed his fist with a resounding smack. “And then we can see about an inn or something.”
Connor rubbed his chin. “That’s not a bad idea, kid.”
“Just tell me where to hit them,” Roy said in a low voice, sounding about as pissed as Jason felt.
“Let’s split into three teams. Alpha squad will be Artemis, Wally, Bart, and myself. Tim, Roy, Gar, and Connor will be Beta. Jason, you’re with Jaime, Cassie, and Zatanna for Gamma.” Great, Jason was the only non-super there. What a grand old time that’ll be.
He made to leave the square and disappear into the panicking crowd, but Dick held his arm. “Hey, I’m trusting you to keep them safe,” he kept his voice low. “It’s been a while since they fought without powers, so keep an eye on them.” He then turned to address the rest of the team. “Alpha will take north. Beta, go south and Gamma see what’s west. Meet back here at sunset. Alpha will secure lodging before engaging enemies.”
“What, no pep talk?” Wally elbowed Dick. The latter didn’t crack a smile as he said, “Just stay alive.”
Beside him, Garfield swallowed hard and said weakly, “Noted.”
Jason rolled his eyes and jerked his head in their assigned direction for the other three members of Gamma squad to come with him. He’d follow along as long as Dick made good plans, and Jason didn’t exactly have any better ideas for now.
He put on his very best I know exactly how to kill you and I’ll do it if you don’t get the hell out of my way face and lead the way out of the packed square. The crowd parted easily before him, and they were out on an open street within a matter of minutes.
”Where to first, ese?” Jaime asked, shifting nervously from foot to foot.
Good question. Jason looked around for a map or something that could tell him the way out of the damn town. When he glanced back for a quick headcount and only counted two, he cursed and asked Cassie, “Where the hell is Z?”
She pointed at a nearby stall where the magician was chatting with the vendor. Zatanna waved to them, then sauntered back over to the rest of the team. “The shopkeeper says there’s a bridge further down this street and to the left that’ll take us west out of the town.”
Cassie frowned. “Was that a player with their own shop already? Man, we are behind.”
“Oh, no it was an AI.” Zatanna readily supplied. “An NPC?” She added on seeing the confusion on her companions’ faces. “Honestly, was I the only one to do research on this game before playing it?”
Jaime sheepishly scratched his head while Cassie squeaked, “Well....” Jason had to agree with them, he just did this to keep Replacement happy. And get Dick off his ass, the meddling prick.
Zatanna shook her head. “Look, AI stands for artificial intelligence, and NPC is a non-playable character. They’re computer-generated people, not actual players.”
Jason caught enough to surmise that these NPCs were created by the same maniac that locked them up in here. He crossed his arms and asked, “How the hell can we trust their word if they’re controlled by that fuckin’ game master freak?”
Cassie bit her lip and had the good sense to look concerned.  Zatanna just shrugged and said, “I guess we’ll just have to find out. We can try following their directions but stay cautious in case it’s a trap.”
“Fine,” Jason sighed. “Let’s go.” He was already resigned to the absolute stupidity of the situation anyway.
They made it to the end of the street without incident, and turned where the shopkeeper had directed them to. There was a bridge, spanning a merrily bubbling river, and open fields dotted with trees beyond it. Jason could smell the greenery and apple blossoms from here.
“Wait!” Jaime threw his arm out. He made a face, then sneezed. “Aw man,” he gave a tremendous sniff. “Can’t eben escabe allergies in a video gabe.”
Cassie laughed at her friend and slapped him on the back, which only made him sneeze again. Dumbasses, they didn’t have time for this. Jason rolled his eyes for what felt like the umpteenth time that day and walked up to the base of the bridge. He slowly, carefully stepped across and edged his way to the other side.
The other three followed suit, and upon joining him, Zatanna said cheerfully, “Seems like we can trust the NPCs!”
“For now,” Jason muttered, still not convinced. He turned his gaze to the rolling hills before him, warm breezes sending waves that shimmered through the knee-high grass. He didn’t see any monsters, but there had to be some... right?
He used two fingers to swipe the air in front of him, opening his inventory. At least he remembered that much from the tutorial. He equipped the crossbow he’d loaded in when he created his avatar. Damn, that night in the Batcave felt like it was a week ago.
Jason took a wary step forward, into the grass. “Fan out,” he directed the other three. He didn’t turn to watch as he heard them draw their own weapons and creep up to flank him.
A rustle in the grass ahead had him throw a clenched fist into the air to have the others hold their positions. He waited until the movement stilled, then crept forward a few more steps, careful to keep his footsteps silent. He was within feet of it now, whatever it was. He hoisted up his crossbow to brace it on his shoulder and trained it on the last place he’d spotted movement. There was a sharp inhale behind him, and then Jaime sneezed loudly.
The head of a wild boar whipped up and it lunged for Jason. “Shit!” he yelled. Damn kid and his perfect timing. Jason blindly jumped backward and fired a bolt at the same time. It met its target and the boar shattered into glittering dust that resembled pixels. In front of him, a notification popped up that 20 copper coins, the crossbow bolt he’d shot, and a boar tusk had been added to his inventory. Huh, that was surprisingly easy.
“Wow, that was so crash!” Cassie pumped her fists in the air. “This game is gonna be a piece of cake.”
“Not so fast,” Zatanna frowned. “Remember, this is only the first level. It’s bound to be easy. It’s only going to get harder from here.”
Jason turned around to face them. “And just because that little shit was easy to kill doesn’t mean they all will be on this level.” He noticed Jaime hanging back, looking embarrassed.
“Hey kid,” Jason jerked his chin at him. Jaime's head snapped up. “Do you want to try the next one or wait by the bridge until your allergies clear up?”
Jaime opened his mouth to respond but had to sneeze again. “I think I’ll just waid by the bridge. I’b really sorry guys.” He trekked back to where they’d come into the fields.
“And then there were three. Ladies first,” Jason mockingly bowed, gesturing to the open fields beyond where the boar had been. Zatanna smirked and Cassie stuck her tongue out at him, which he returned with a rude gesture.
26 notes · View notes
aire101 · 4 years
Text
Ferrum Chapter 1
His first moment of awareness struck him like a tidal wave of sensory input—the sound of thousands of voices chattering; an alien smell of dust and ozone, as if someone wasn’t quite sure what air should smell like; the feel of a breeze caught in a wind tunnel, and the warmth of hundreds of bodies standing together.  
And then Tony opened his eyes.
All around him were thousands of people in various fantasy garb, some with swords hanging from their waist, others eyeing daggers, rapiers and axes at stalls along the side streets. People shouted to one another, smiled and fist pumped in fits of elation.  The whole city plaza was filled with an energy of excitement and anticipation.  
Tony had no idea where the hell he was, or what was going on.
The last thing he remembered was… a meeting.  With that Argus Head Developer, Kayaba.  But the harder he tried to focus on the details, the more he felt them slip away…
“Holy Shit!  Your avatar looks just like Iron Man!” said a man who Tony was pretty sure had not been standing next to him a couple seconds ago.  “How did you manage that?  I know the character creation module is super detailed but that would have taken forever to work out.  Does that mean you were you in the beta test?”
“Uhh…” Tony said, scrambling to make sense of the jargon he had just heard.
Avatar… character creation… beta test…
“Anyway, excellent work on it!  I’m an Iron Man fan too, though I guess most people are these days.  See ya ‘round, mate!” And with that the man left, leaving Tony still scrambling to comprehend.
As he stood there, he listened in on nearby conversations for more context clues.
“Oh my god this is amazing!  The visuals are so gorgeous!”
“You can feel the breeze!  The amount of sensory input just to achieve that—”
“Do you smell that?  It smells like fresh baked bread.  I heard that the taste and smell sensory was the hardest part in the coding development.”
Visuals… sensory input… coding development…
“That’s it, Full Dive has won me over completely.  I’m going to sell all my other games starting tomorrow.”
Holy.  Fucking.  Shit.
The meeting with Argus and Kayaba.  It was over his consultation on their new Full Dive gaming technology and their AI systems.  But it was still years away from completion.  And besides, there was no way in hell he would ever consent to having his brain plugged in to someone else’s technology.  That was in fact exactly what he had told them in that meeting, and the primary hold up on developments on his end.  
But this was way past pre-alpha or even the alpha phase… if he understood this right, this was a stable release event.
Which meant he was currently plugged into the Sword Art Online servers, and had lost years off his memory.
His chest tightened as his breaths started to come in shallow gasps.  His vision began to gray around the edges.  
In spite of his situation, he had to give Argus an applause for their work— this panic attack felt exactly like one in the real world, only less physically painful.  
Just as he felt his knees hit the ground, someone came up beside him.
“Hey, I don’t know what’s wrong, but its going to be ok,” said a voice.  They sounded young.  “Take deep breaths with me.  After every number I count, we’ll breath together, ok?  So… one,” the kid took a deep breath and slowly released.  Tony tried to breath along with them, but didn’t quite manage it.  “That’s ok, we have plenty more you can do.  So here we go.  Two…”
Breath in, breath out…
“Three…”
This reminded him of that time he’d missed a week of meds during a mission.  Peter had been over to do some necessary maintenance after he had gotten back, and next thing he knew the kid was walking him through the storm.  Apparently his aunt had some problems after his uncle had died.
“Ok, you backslid a bit there on four, lets try again.  Five…”
Peter… the kid had been so excited about this game concept.
“That’s great, you’re doing great.  Six…”
Was he out there in the crowd somewhere?
“Seven…”
He needed to find out what was going on.  He needed to get in touch with game support.  He needed to log out.
“Eight…”
His breaths were coming deeper and the tightness was releasing.  Now with a plan of action, he felt marginally more in control.
“Nine…”
He could do this.  Memories or no memories, his mind was still his own.
“Ten… You look like you’re doing good there.  How are you feeling?”
Tony finally took a moment to look at the one who had helped him.  Given that what he was seeing was an avatar, there was no telling the real age or gender of the person.  But the character depicted was a young man with long blond hair, blue eyes and built like a wall.  He looked strangely like what Tony imagined a young Thor would have looked like.
“I’m alright.  Thanks for hanging around through that.  You didn’t have to, so I appreciate it,” said Tony, slowly getting to his feet.  He couldn’t help but notice (and appreciate) the lack of pain in his knees from either the fall or the standing.  
Yay for silver linings.
“It’s no problem.  I had… have… family that needed that kind of support,” the boy said, with a glance at his face before he looked away.
“I’m sorry, that sucks.  Not that you have them, but that they have it too.  It sucks,” said Tony, fumbling through his words awkwardly.
The guy smiled and nodded, “I get what you mean.  And yeah, it does.  You doing alright now though?  Do you need me to call a GM or something?”
“Maybe.  I’m probably just going to try and log out though.  You wouldn’t happen to know how to do that would you?” asked Tony.
“I think so.  I read about the mechanics of it at least,” said the boy. “What you need to do is open up your User Interface.  Just swipe down with your hand in front of yourself.”
The boy swiped his hand down and an interface screen popped up like a hologram.
Tony followed his example, bringing up his own interface.
“Thanks kid… Have a name I can call you?”
“I’m going by Tor in the game.”
Tony looked over his interface with a raised eyebrow, “A Thor fan I take it.”
“Like you’re in any position to criticize,” the kid grumbled, with a look up and down.  “Even your robes are his colors.  How did you get robes, anyway?  The default is trousers, tunic and vest.  I haven’t seen anyone run around in a set of robes.  Was it a beta thing?”
Tony looked down at himself.  Sure enough, he was in a set of red robes with gold trim.  That also made him realize… this body was only an avatar, but apparently it looked like himself.
Whatever, him making his avatar look exactly like himself sounded pretty on brand, honestly.
“Would you believe me if I said I honestly have no idea,” said Tony, scrolling through his interface.
“I mean, it’d be weird but considering how confused you look I’m willing to give you the benefit of the doubt,” Tor said with a shrug.
Meanwhile Tony found two separate settings menus.  One opened up an entire other menu system, and the other at the bottom of the main menu opened a box with three buttons— Options, Help, and a grayed out logout symbol.
“Huh, that’s weird,” mumbled Tor, looking through his own settings menu.  “Talk about a terrible bug to have on opening day.  You’d think that would be the one thing they had working before opening to the public.  As far as I know there weren’t any logout problems during the beta.”
“I guess we’re calling a GM then,” said Tony.
Peter pressed the Help button, prompting a ‘Calling GM’ box to pop up with a picture of an old man in red and gold robes.
“Hey, those robes look like—” Tor was saying.
“Oh shit,” said Tony, wide eyed.  A communication bubble had come up on his menu as soon as Tor had pressed his button, it read ‘Incoming GM Help call from Tor (Player 8476).’
“Uhhh…” said Tor, staring at the window with wide eyes as well.  “Well then, that’s a problem.”
Tony continued to stare at the screen dumbfounded, mouth open and closing like a fish.
As he did, another call request window opened up.  Then another.  Then another…
Tony’s confusion quickly morphed into horror.  
“Dude, how in the world did you accidentally end up with a GM account?” asked Tor.
“I don’t know, but I can’t help these people.  How do I shut it off?!”
“See if there’s a ghost mode or something,” said Tor.
Quickly Tony tapped into the other options menu he had only briefly glanced at before.  Sure enough, the menu was titled ‘Game Master Settings.’
“This is ridiculous,” muttered Tony as he scrolled and tapped through various options.
“About as ridiculous as your facial hair,” said Tor, with a grin.
“Excuse you, everything about my face is a work of art,” said Tony.
“Abstract art, maybe.”
“You know what, kid—”
“Could you maybe not call me that?  Please?” Tor asked, his face suddenly tight.
“Uh, sure… sorry.”
“You don’t need to be sorry.  It just makes me a bit uncomfortable,” said Tor, looking like he regretted even saying anything.
“No problem.”
Finally, Tony found the GM communication settings.  Currently the mode was set to ‘Available,’ but after clicking on it he found an ‘Unavailable’ setting, with the option to send calls to a voice mail for later listening.
Quickly he switched the modes, and the flurry of call boxes ceased.
“Well, that’s one problem down,” said Tony, scrolling through the rest of the GM settings.  While he heartily approved of the colors, the robes made him stand out like a sore thumb amongst the masses of beige and brown.
But if he really was a GM, he should be able to generate something different…
With a flash of blue static light, Tony generated a red tunic under an average looking breast plate, paired with the usual leather trousers.  
“You just had to make the tunic red, huh?” said Tor with a thin laugh.
“Eh, it’s my thing,” Tony said with a shrug.  
Tor pursed his lips but didn’t comment further.
“Anyway, thanks for your help.  I’m sure whatever bug this is will be figured out pretty quick.  I don’t want to hog your game time though,” said Tony, trying to disengage as kindly as possible and without hinting at just how concerning the current situation really was.  Tor had been helpful, but the person on the other side of that avatar could be fourteen or forty.  Either way, they didn’t need to be saddled with Tony’s issues.
“I don’t mind.  I don’t usually play MMO’s anyway, so I’m not really sure what to do now,” said Tor.  “I have a few hours before I’m supposed to trade off with my friend, but I had only really planned to hang around for a couple of them to check things out.  With the logout bugged though, I might be here for a while.”
“I’ve never played RPG’s at all, so I’m probably even more clueless than you are,” said Tony.  “That being said, the first thing you do is probably to stock up on equipment and supplies.  Do you have any currency right off the bat?”
“We start with 50 Cor, but I’m not really sure what that translates to within the economy.”
“I would say as a GM I could generate more, but if I’m remembering correctly the system was specifically designed to control inflation and it may not like that,” said Tony, flicking through his interface.
“I mean, I guess that would be one way to get someone’s attention,” shrugged Tor.
“Considering I apparently have my brain plugged into someone else’s tech, I would really rather avoid that particular flavor of attention,” said Tony.
“I hadn’t thought about it that way… They wouldn’t do something too awful to a player though would they?  That wouldn’t really be good press for them.  I would think that the worst they would do is boot you out of the game,” said Tor, looking concerned.
“I wish I had the kind of faith in people you do.  As it is, I’d rather not chance it.  That being said, it looks like one of the things I can freely generate are base level swords and armor.  Its not much, but it’ll get you started.”
“Since we’re both stuck here, how about we party up for a while?  Not much else to do to spend the time.  My friend downloaded a text file with some starter tips from the Beta players, so we could go give it a shot,” said Tor.
Tony let out a breath, running his hand through his hair.  He really should be trying to figure out a solution to his predicament, but if the GM call failure was any indicator, the situation may be a lot worse than he wanted this kid to realize.  And at this point he was pretty sure the person on the other side of Tor’s avatar was in fact a kid, perhaps a relatively mature teenager, but not an adult.
And apparently they were attaching themselves to Tony, for whatever reason.  And Tony couldn’t bring himself to kick an obviously anxious kid to the curb.
“Sure, that sounds like a good plan. Send me a copy of the text file and we’ll discuss it while we head out of town.”
. . .
“Ferrum Vir… did you seriously name yourself ‘Iron Man’ in Latin?”
“Pot meet kettle there, Tor.”
3 notes · View notes
playerstarlight · 5 years
Text
velia announcement is dropped.
[ kael to izabel ] iz iz iz, did u hear??? bout vla? [ izabel to kael ] what’s a vla?
the first time she even heard the game was from her younger brother. starlight’s scene has always been more on the horror side if she’s playing video games -- which really wasn’t often. her younger brothers, especially kael, were always more into video games. usually the kind didn’t matter but he a fascination with a world outside of the real one. something izabel never exactly understood but there were times when she felt the passion that the eight year old boy exhibited for some dumb game amusing, even enduring. especially as he talked about becoming the best player -- better than betas. really, it was his own fault izabel hatched the plan to play the game to be one step ahead of him in skills and levels. too bad that would never really happen. 
one month before velia is released.  
[ kael to izabel ] izzzzzzzzzy. dads still syin no [ kael to izabel ] thugh u culd tlk to him? [ izabel to kael ] it’s a video game kael not the end of the world [ kael to izabel ] buuuuut izzzzzz [ izabel to kael ] cant u wait ur birthday is coming up rght? dad might get it then [ kael to izabel ] thas two far it wnt be fun thn !!! [ izabel to kael ] *too [ izabel to kael ] three weeks is not far moron & if its not gonna be fun in three weeks why get it ?? [ kael to izabel ] thets not he poit
this is a conversation she would end up having with him nearly everyday until may. he was not about to give up on this one video game -- something she really didn’t understand. but little did he know, she was already talking to their dad, setting this entire thing up as some kind of early birthday gift with of course, the unknown knowledge that she was going to be there to ensure that the game was actually appropriate for eight year old -- nearly nine -- to play. she has this entire plan on getting on before he does, working on the skills and just being a far better player than he will be -- all to get under his skin as revenge for the constant messages about this game. which meant she had to get her own copy and headset for this game. a pain really -- and a regret later down the road.
velia release date.
[ kael to izabel ] ha ! i new u wuld talk too dad! [ izabel to kael ] *to [ izabel to kael ] and i have no idea what you are referencing
throughout the day her phone was buzzing with messages from her brother, her parents, the family group chat. everyone had something to say about this velia game, and her kid brother was just so damn excited to get it. her stepmom spent that day letting izabel know the exact moment they were going to reveal the gift to the kid, even sending her a video of him opening the gift. while her dad swore he wasn’t going to let her brother get on until after lunch which gave her some time to set up the trap, or at least set up her own game and get going on building whatever skills or shit the thing even had. fuck, how does one even play things like that? izabel has always been one for horror games, never tried it in a virtual reality world. she wasn’t too focused on the time, wasn’t paying any mind that it was after lunch, after the point where she should be meeting up with him -- wherever that was supposed to be but she told her parents that she’ll find a way. that’s what izabel did, figured shit out.
not anymore.
at first, the players around her just thought it was a bug. the logout button will quickly return. sure there are people out there going crazy over how it’s not there! somebody's getting fired. but those jokes were quickly left aside as panic set in when they were all gathered at this town square. when his voice came on to inform that that this was the real game -- getting out, surviving velia. death was apart of it and you either lived to see the real world again or die. there was no way out but up the floors, clearly them all one by one, working together. funny how all of that turned out now.
the town square filled with every single player meant that there were far too many players to push through the crowd and find one little eight year old kid. her panic wasn’t about the logout button, it wasn’t about the prospect of dying inside a video game -- it was about kael. she was suppose to be looking out for him -- making sure he was going to do fine in this game, teasing him with her level. she was suppose to look so cool with skills higher than his own. but how could she do that if he wasn’t there? if she can’t find him? how will she know he’s safe, away from any harm? god damn it, she needs to find him, to make sure that he’ll survive this. he’s eight years old for fuck’s sake. this game was a mistake. helping her brother get it was a mistake. she has to fix this -- it’s her job as an older sister. her responsibility.
and yet everywhere she looked, he wasn’t there.
present day.
leaving behind luna? a mistake. but one she would make it again if it meant that joining unity would help her find her brother through those orphanages that house so many kids and just be able to be around them who may even know her brother and where he could be. the only sacrifice she would have to make is losing her friend? so be it. it was a sacrifice she had to make. no matter how hard that actually was, no matter how much she wished she could fix things. perhaps starlight could have done something different, perhaps she should have asked luna to join her -- but she wasn’t thinking. no, she was only thinking about herself. selfish, she knows, and so does luna now.
everything that luna says about her is always right. the other had the natural ability to look past her bullshit and see who she really is -- selfish, cruel. everything that her guild doesn’t stand for and yet that’s exactly who she is. unity was far too good, too kind, too caring. the members in the guild were far better people than she ever could be, that she ever was. just because her cursor is green doesn’t mean she’s without flaws.
every moment she spends inside the guild was just another moment to add to her feeling like a fraud inside her own skin. and with her younger brother not being anywhere in sight, this was getting draining. the game, the players, the floors. everything. she hasn’t felt normal since -- well, since seeing abby again. but even that was short lived. normal wasn’t something she knew anymore.
and here she was nowhere closer to finding her brother. all of this was for nothing. pushing away all those she gave a damn about and for what? nothing. absolutely zip. there were the comments here and there, rumors that turned up to be false, players who had the same appearance as her brother for the most part but in the end, weren’t him. was he even still out there or was she just looking for a ghost?  
damn, it’s been a while since she felt like this -- this hopelessness. the empty pit in her stomach she feels every time she swallows, the dread she gets every time she wakes -- if she does end up sleeping that night. the burning desire to just -- keep going. not stopping for a second. pushing herself until there is nothing else she can do. nothing left inside of her. but maybe she was already at the latter point. last time she had felt this way where it was overwhelming was when she was with ben -- before they had rebuilt their lesson for the twentith time at least. he seemed to always be there when she really needed him and well, now -- she was thinking selfishly again. if she could turn messages off, she would have done so by now. but instead, she let it sit there. let the messages build up. once again, pushing him away. just like she did with anyone that ever grown too close. distance was much better. distance allowed people not to care. and she cannot keep caring. all caring does is hurt and that’s one pain she’s tired of constantly having. 
it’s been three years. three years of this bullshit. three years of being stuck in a game and what does she have to show it? she was meant to find her brother on the launch day just to mess with him -- joining the game to make fun of him only to be here with him, no where to be found. every other player is accounted for, online or not. she would have found him by now. maybe everyone is right. maybe he was dead.
and every time that thought even starts to come up, she forces it back down -- but not this time. this time is different. this time, she believes it. after all, thanatos never has given her a reason not to trust them. things that they have heard, rumors they passed along -- they were right for the most part, those rumors just never lead to her brother standing in front of her. but rather to someone else, another boy lost and forgotten. and now, she’s questioning that a rumor will never hold an ounce of truth. 
because this wasn’t a rumor. no one can fake this. written in the library -- it was plain and simple. an obituary pops up and the familiar name, one that she had once spent long hours to help him learn to write each individual letter. a name she’s said in many different tones, with the occasion full name annoyance. a name written in block letters above a door in some house in ohio. or maybe it’s not anymore.
after all. he’s been dead for three years. 
this was exactly why she never bothered to come to the library and use the database. she was always afraid of finding exactly this. afraid that searching his name in the library, this would be what comes up. afraid to know that the last years of searching, avoiding, pushing everyone and everything to the side just so the chance to find him was all for nothing. afraid to learn that everything that happened was her fault. she wasn’t there. 
and now that’s exactly what she learned.
this information just leaves her -- empty. enraged. tired. this game does nothing but take and take and take. she can’t remember the last conversation that she had with him -- one that wasn’t over the phone. can’t remember his voice. is that what just happens? you forgot those little things you thought you could never forget -- things you thought you wouldn’t care enough to miss? 
the day she went to the library -- she just left without a single word. without any further communication towards -- anyone, including ben. including those in her guild. though the latter wasn’t exactly odd for her but she always checked in. how long can she go without speaking to anyone? two days? five? maybe that random player -- goldengurlz -- would be the last one she speaks to before she runs out. runs out of arrows. runs out of healing potions. doesn’t matter which one happens first. was her new little mission now was to just use whatever she must up in her inventory and throw herself into a fight that there was no positive outcome for her? probably. maybe. it’s not like she was thinking straight anymore.
but what she was currently thinking about was creating the most damage she could before going out in flames. use everything that she must before a strike made her turn into dust like she’s seen so many others become. if she really wanted to do some damage to this damn game before she’s out of arrows, out of bullshiting her way through the days, it seemed to her that this was the best, and only, way out now. after all, 
it’s not like she has anything left to live for.
10 notes · View notes
lxveille · 6 years
Note
Wonwoo + “I can’t keep kissing strangers and pretending that they’re you.”
summer start flash fics; wc: 939; slight scifi!au; warning for major character death
first sighting
Wonwoo spots you across a crowded bar. Not you, he reminds himself, grimacing. He feels nauseous. Someone says something off to his left. He cannot make it out. He wants everything to stop, he wants to be alone, or else to be somewhere where only you are. To cry. Or scream. Or sleep.
The voice comes again, and he acknowledges it this time as Jihoon. He’s asking Wonwoo if he’s okay. Wonwoo isn’t. He doesn’t answer.
He clicks a button on his wristband; the bar has a shuttering moment of stilling before flickering out into darkness.
Wonwoo opens his eyes on the couch of an apartment that hasn’t been properly cleaned in three weeks.
fourth sighting
He works up the nerve this time to approach your likeness when he sees it at a karaoke bar. He asks for a name. He asks if they like chocolate or vanilla milkshakes better. It makes them laugh. The question is innocent enough to make him seem more approachable, evidently.  
When they reach out a hand to him, Wonwoo flinches back.
He says either sorry or I have to go and walks away. He disconnects from InterRoam and stares up at the ceiling in his apartment.
tenth sighting
Soonyoung talks him into going to InterRoams largest, loudest club. There’s a server surcharge to get in.
Wonwoo sees you (not you, he thinks in a haze) and cannot help himself.
He doesn’t recall in the morning if he said hello before or after pressing his lips to theirs.
sixteenth sighting
It seems like he sees your likeness more and more. And almost every time he resolves to the same thing; to kiss and hold and sometimes even have sex with any of them that give a look back his way as well.
Wonwoo feels guilty for it every time. In the moment, on some occasions. Others it doesn’t hit until he disconnects and finds himself alone again. It hits worse this time when your likeness turns to him on a bed and asks, “Do you use your real appearance or a guise?”
“Real,” he answers stiffly, discomfort crawling up the back of his neck.
“Oh…” They’re nervous; uncomfortable admitting they’re using a guise even though it’s obvious to anyone attentive to the faces they see floating around InterRoam. “Do you think… Would you want to meet up with me again sometime, if I logged in without a guise?”
He answers honestly. No. He endures the aghast looks and the accusations that he’s only interested in looks.
He guesses maybe now he is.
twenty-second sighting
It turns out to be the same user as the sixteenth.
Wonwoo gets slapped across the face as soon as he approaches to say hello.
twenty-fifth
She introduces herself Yuna, and refuses to kiss him on the first meeting.
twenty-sixth
There’s someone else with your likeness that comes in that night. Wonwoo kisses that one instead.
twenty-eighth
“What’s the deal?” Yuna asks, “You’ve got some kind of fixation on this appearance?”
Wonwoo considers disconnecting then and there. Instead, he asks if she knows how InterRoam gets its different guise options. She shrugs, says some of them are entirely computer-generated, but she’s heard the less glitchy ones come from models based off real people. “I mean, some are pretty obvious,” she adds, and points out a few people roaming around the arcade that looks like celebrities.
“Sometimes they scout people off the street,” Wonwoo informs her.
She says she wouldn’t do it. It’d be too weird to log in and see herself popping up in places. No matter if there may be changed hair or style, it would still just be too odd.
“There’s an option to keep it offline until you’ve cancelled your InterRoam account.”
Yuna laughs. “I’ll probably die before I do that. I mean, this place is – Hey!” She cuts herself off, startled by how Wonwoo suddenly moves to disconnect.
In the dark of the apartment he used to share with you, Wonwoo bursts into tears. Again.
account cancellation
Mingyu is the one who talks him into it. It happens the same day Wonwoo finally accepts his friend’s offer to come by and help tidy the place up. Mingyu jokes that the place looks like a disaster area. Then he frowns, looks Wonwoo over carefully, and asks if he’s gone to visit you yet.
Wonwoo shake his head. Mingyu offers to drive.
The strangest thing, perhaps, is that he finds himself feeling the need to explain to your headstone why he had to logout of InterRoam for good. It feels like a betrayal, like giving up all the places he took you on dates before you trusted him enough to meet face to face. Like throwing away the very foundation of the relationship he had with you. If he puts that aside, will he someday forget everything else of you?
“I won’t,” he promises, eye trailing over each engraved line in the marbled surface. “I know you said once, after you were scouted, that if you went first I’d still be able to see you. But you said the real you would’ve been wrinkly and gray by then, too. The guise you gave them wasn’t supposed to look exactly like the last time I saw you…”
He starts to feel silly for saying all this out loud around now. Starts to feel his chest tightening and his throat drying out. Wonwoo can’t stay here much longer without wishing he could log out of the real world, too. “I’m not forgetting,” he reiterates, quieter this time, “I just can’t keep kissing strangers and pretending that they’re really you.”
125 notes · View notes
iobstech · 4 years
Text
Using ftp with gedit
Many web developers that switch to Linux systems have a tough time finding great development tools as first. But once you peel back the layers of the Linux desktop environment you can find a multitude of tools to get the job done.
This is one of my articles that I wrote a number of years ago while I was setting up an older laptop with LUbuntu 14.04 with the LXDE desktop for web development. The information is a little dated and isolated but even if you’re using newer versions of Linux it may help point you in the right direction.
When it comes to web development I usually prefer plain old text editors like gedit, notepad++ and atom. One of the cooler features of these editors are the ability to access your websites directories via ftp and edit files. I have been using Linux since the late 90′s and environments like netbeans and eclipse were just getting started and had limited support and updates when you needed them. I became accustom to text editors and since that time they have come a long way in terms of functionality, one of which is ftp.
I want to start off by noting that I’m using Lubuntu 14.04 with the default LXDE desktop but most Linux systems will have similar instructions that I’m about to cover.
There is a ftp plugin for gedit and it works well but just like with Windows there can be multiple ways to do things in Linux. I have found that the simplest way to get something done is by using the tools that are built into the operating system. In this article we will cover accessing a site via ftp using gedit without a plugin.
Let’s start off by opening the File Manager and click on Go to expand the menu.
Tumblr media
In that menu click on Connect to Server.
Tumblr media
This brings up a connection menu.
Tumblr media
For the type select the drop down menu and pick ftp. For the host use your servers ftp address and leave the port on the default setting unless your webhost recommends something specific. For the path you could fill in something specific like \web\html\example.com\ but i prefer leaving it blank so I will be taken to the root \ of the site and just browse to where I want to go. Check anonymous login because you will be prompted for a user name and password in a minute. Note: you may need to toggle between anonymous and login as to force the Ok button to become available. Click Ok and enter a user name and password.
Tumblr media
Make sure you select connect as user to enter your credentials and click connect. Note: I do not save passwords anywhere for security reasons so I just usually check either forget password immediately or remember password until you logout.
From here you can minimize or close file manager because the ftp session will remain active until you logout or manually shut it down.
Tumblr media
Open gedit and select view in the main menu to get the drop down. Select side panel to open up the built in file browser.
Tumblr media
You may have to find the open server from the drop down menu but once you have it open you should be able to see your web host files.
Tumblr media
From here you can double click on any given file, edit it and save it. Once saved, the file will automatically update on the host server.
Awesome huh? Now you can work with your files using gedit.
0 notes
reryanblogs · 7 years
Text
re:ryan
Tumblr media Tumblr media
Hello my fellow adventurers! I’ve been occupied by tons of side quests that I’m coming back only now. Anyway, if you haven’t noticed, I’m going to reboot and rebrand this blog, babam! This was actually formerly known as elachrophant.tumblr.com but decided to kinda change it into a more honest and more “me” self-brand.
I’ve been putting writing this on hold for such a long time. Hmmm, I don’t know why but I want to time it when my mood and emotions are rather neutral. I’m not sure if I’m neutral enough right now thou, considering I just had my third cup of coffee ㅋㅋㅋ.
It’s been years but I’m trying to REALLY do something about my inner conflicts only now. Looking back, they were really just facades and faking, after all; to convince myself and create the illusion that I manage my shit quite well. Well, maybe even right now might still be an act, but at the moment… I don’t care, I guess? Hahaha. I don’t know what sparked inside that I suddenly got all these motivations and inspirations. Maybe a muse finally entranced me. I hope it live inside me forever until I can be a muse to others.
In the lieu of all of these, I established three pillars I can always go back to if I find myself off track.
r e w r i t e | r e v a m p | r e c r e a t e
○rewrite
•I’m actually taking AB Journalism but you don’t know how much I hate writing, hahaha. Well, to be precise, it’s not hate on writing but on physically writing with a pen or typing on a keyboard itself. What a drag, right? Lololol. I want to get back on not just writing, but also reading. I shit you not, I can devour five and more books in just a day back then. The bookworm me died long ago for some unknown reasons. I really miss that ecstatic feeling of travelling to various places, dungeons, dimensions, parallel universe, and just being engrossed to a story through books. I also really want to turn the notes I jotted down: those pieces of ideas, epiphanies, what ifs, and fragments of story concepts, into something that can make people feel the same addicting feeling I felt reading others’ worlds. I only told few about this, but one of my dreams is actually to be a storyboard writer for games. I enjoy playing games, and I played a lot where I felt so involve because of the story line it served. Persona 3, Dragon Nest, these are only few that inspired and amazed me. I want to write more. That’s also one of the reasons why I pushed myself into blogging. With this I can practice not just writing but also letting the chaos inside out of my system. Journaling, too! I had more than ten unused notebooks for journaling but I never really touched them. I used to keep a diary back in elementary, but someone read a rather personal content from it aloud, and it caused a lot of fuss on our section. Woah, I guess that backstory wraps it up why I hated writing, hahaha, we’ve got some introspection going on here right now.
○revamp
•I’m not really good at Math and Sciences. I think that’s why I tend to fall on the artistic spectrum type of person. You know what, I’m gonna claim it! I’M AN ARTIST! I’m still on search for my own style, thou, that’s why I included “revamp”. I know sooooo many artistic and inspiring people both on the internet and “real world” if you may. I’m always wowed and awed by their artworks, and it has this tingling effect inside that screams “I wanna do that, that, and that too.” And since I’m still on search for my own style, I’m incorporating a part of their crafts into mine. Don’t get me wrong thou, it’s not to copy someone else’s work but to get an inspiration from it and turn it into something I can call myself mine. This applies, not just to me but to everyone. Don’t steal someone else’s hard work. If you’re going to use their art, ask their permission, credit them and help them gather the prominence they need and deserve, or if you can afford, buy and support their crafts 😁 Finding my own style… uniqueness is one of the things that always traps me in a rabbit hole of thinking. Brushing your teeth, going to school, sleeping, waking up, and repeating all these boring courses and routines, how can we say that we are unique from one another when at the end of the day, our existence doesn’t really matter and insignificant on a greater scale? I guess this stems from that unreasonable desire of wanting to make a name for myself and leaving a mark on the world. I want to, if not be, at least create something that can inspire and resonate to others ❤
○recreate
•Speaking of creating, I used to think that creating art was just a hobby of mine. But now, I create in order to survive. Therapy? Escape? Salvation? Call it whatever you want. Creating made me able to breathe again. I want to keep creating. I want to put my everything into all of my crafts. They serve as the materialization of my joy, rage, pleasure, sins, punishment, glee, vanity, of every emotion and thoughts I have. They are my desire, insecurities, hostility, and vengeance. My art is both me and not me. They are fragments of myself, for either something that completes me or something that would make me lose myself. No matter what the canvas is, I’d strive to forge something. Stories, design and layout, photographs, makeup, coffee—I want to explore all of them and get the first-hand experience of doing it.
The idea is to “re:ryan” meaning to “ryan again”, to claim my old self back. As much as I hate and cringe over past me, I would say I’m much more happier and bolder back then.
The whole brand also revolves around self-love and self-empowerment and embracing the darkness within one’s self. I want to tell everyone that monsters indeed live within us. It’s embedded to us. It’s what make us humans after all. And it is okay. It’s okay to feel insecure to that rich and pretty girl in your class, it is okay to feel jealous on someone else’s life, it’s okay to feel unreasonably mad about something. The important thing is, being aware of it, and what you do after realizing and accepting the reason of why you’re feeling a certain way. Embrace your darkness, it what makes you who you are. It’s the negative space that makes your passion and personality stand out ❤😁
Yeah… talking about that… I’m admitting something. The first pillar, rewrite… is actually meant for something else. It’s to keep rewriting that letter. I call it the “Letter of No Return”. For years, a temporary logout doesn’t work anymore, more than a reset button, I want to completely terminate my account and delete my character from this crappy game called “Life”. If you ask me, nowadays, I still want to end it all, actually, I don’t really mind if a sudden “Game Over” came flashing to me. But, for some whatever reason it may be, I want to finish this game without regrets, I keep wondering, how strong the “Last Boss” would be, how many shitty and fun side quests would I receive, on what “level” would I reach, how many “EXP points” would I cringe and be proud of. I keep wondering. That’s why I want to keep rewriting that letter. Rewrite and rewrite until I can proudly tear it off and not rely on it as a cheat code to “Esc”.
2 notes · View notes
pennylovelee-blog · 5 years
Text
Conceptualize It (Group)
The Homeless Artisan’s Experience
Tumblr media
The eCommerce Experience
Experience of the e-Commerce customer via the website
For the average consumer, they’ll follow the following flow:
Browse the marketplace for products and services as desired
Add products or services to cart
When viewing the cart, there will be realtime statistics (if possible) on the current levels of homelessness or supportive sayings to encourage shoppers to make purchases in order to help the homeless artisans
Includes a list of products being bought as a separate list on the same page as Services, then after both is the sub-total
Products section lists quantity (with -/+ to change), option to remove from cart, price per unit
Services section lists date/time, option to remove from cart, price per service
After the above sections (if applicable), the subtotal will be listed with the next step to choose a payment method
Include “Customers also bought…” section after the list of things in the cart, so customers can bundle other potential items
Check out to buy the items/services in their cart
Input Name, Contact Number, shipping address, permanent address (if different than shipping)
Next page would be delivery options and payment forms
Donation opportunity section - buttons to choose to donate $2, $5, %10, $25, $50, $100, or other amount
Also has the option to subscribe to donation where they’ll pay $1+ per month (they can choose how much)
Option to write in who the donation is a gift in honor of
Donation certificate will be emailed to the recipient
Can check out via PayPal, Amazon pay, credit/debit card, etc.
Option to add Themed or Randomized package
If they have the majority of a themed package in their cart already, suggest that themed package in this stage
Next would be Review Order & Submit page
If buying a product, they’ll receive an email confirming their purchase and will be notified via email when their order ships which will include the tracking number
If buying a service, they’ll receive an email confirming their booking for the date/time reserved
(The artisan will confirm on their end using one of MAP’s tools)
We will send auto-generated emails that will go out with reminders 1 week before, 3 days before, 1 day before, and 1 hour before the service date/time
After any purchase is made, we’ll send a follow-up email saying thank you for their purchase
This email will also include links below the Thank You part which can connect them to further reading on the status of homelessness and provide action items of what they can do to help reduce it (donate, volunteer, etc.)
Opportunities to donate again sent out via email occasionally
The customer’s abilities on the website prototype:
Homepage
Can access shop pages - New, Products, Services, Discounted
New - the newest products and services available - highlighting the newest people in the transition program
Products - example categories include paintings, totes, jewelry (rings, bracelets, necklaces, earrings), tassels, keychains, charms, sculptures and pottery, knit blankets or quilts, wooden sculptures
Filterable by price, colors (if applicable)
Services - example categories include electricians, musical talent (instruments/singing), mural paintings and graffiti, basic tasks like mowing lawns
Packages aka SUBPACKAGES - the option to choose a themed package or a package of randomized products
Themed packages example: Home Improvement & Decor bundle could include a piece or art or sculpture, electrician services, lawn mowing service
New Car bundle could include handmade rearview mirror ornaments, car wash, keychain
Randomized package - you can choose which products you’d like (or opt not to), and we’ll send you a package with the desired number of products
Tiers - $10, $25, $50, $100 monthly subscription options.
Music - subscription and licensing platform for our musically talented artisans. Consumers can subscribe to listen or license songs for personal or commercial use - like soundstripe.com
Sale - the products/services that are on sale at the time
Donate - this button directs them to a donation page, where they can donate $2, $5, %10, $25, $50, $100, or other amounts
Also has the option to subscribe to donation where they’ll pay $1+ per month (they can choose how much)
Option to write in who the donation is a gift in honor of
Donation certificate will be emailed to the recipient
Once within a category, you can filter by artisan if you have a preferred person to buy from
Search - you can search for names of homeless artisans or by product characteristic then filter for more specific search results
Can filter by:
Product or Service, Category (for home, for garden, for car, etc)
Artisan (the person that made the product/service)
City/State/Country (where it’s from, for us right now it’ll be LA, CA, USA)
Color
Wholesale
If you’re looking to buy a large chunk of products or services wholesale, we’re able to offer you significant discounts. Feel free to reach out!
Custom Order
For each product page
Small thumbnails down the left
Larger, zoomable picture to the right of that with arrows to the left or right of it to move between pictures of the product
Heart/Save to Wishlist button overlaid with picture (or the Add to Wishlist button below)
Information on the product to the right:
Title of Product
Artisan’s name, with their overall rating
Description
Quantity (starts at 1, increments up by whole numbers but can type in amount) and relative price
Options to Add to Cart or Add to Wishlist
Unhide sections for most specifics:
Artisan - About the artisan - image & name of the artisan with “Learn more…”
Details - dimensions, materials, care instructions (if applicable), best practices, disclaimer: “As with all handmade items, slight variations will occur”
Reviews
Rating, details, reviewer’s name
Ask us a question!
Modal window with space to input name, email, phone number, message
Share buttons to Facebook, Twitter, Pinterest, our hashtag
“You May Also Like…” recommendations right below
For each service page
Information on service listed:
Title/type of service
Artisan’s name, with their overall rating
Description
Calendar for booking
Choose your date and time, realtime availability of the artisan
Options to Add to Cart or Add to Wishlist
If there’s no date/time selected, you can still Add to Wishlist
Unhide sections for most specifics:
Artisan - About the artisan - image & name of the artisan with “Learn more…”
Details -
Reviews
Rating, details, reviewer’s name
Ask us a question!
Modal window with space to input name, email, phone number, message
Share buttons to Facebook, Twitter, Pinterest, our hashtag
“You May Also Like…” recommendations right below
Your Account
Login with Email/Password & “Forgot your password?” link
Sign Up with first name, last name, email, password
Once you’re logged in, you have access to:
My Details
Change name
Change shipping and permanent address
Change phone number
My Wishlist
You can save products and services to your wishlist which will show up here!
Share your wishlist via link, email, Facebook, Twitter, Pinterest, Google+, tumblr, LinkedIn
Logout
Your Cart (can access if logged in or not)
In the footer, there will be the following links:
About
Our Story
We’re a team within the Process & Perspectives class of USC’s Iovine and Young master’s program: Design@USC. We were tasked to solve world peace, so we focused in on reducing the homeless population by helping them get back on their feet. Our mission is to seek out those that are homeless that want to make a change in their situation and help them do it. Our organization measures success by how many lives are improved or positively impacted by our work.
Our Team
Meet Penny!
[insert quick intro about you]
Meet Amelia!
[insert quick intro about you]
Meet Michelle!
She grew up in Southern California then went across the world to study abroad in Paris, France. After transferring to the University of Southern California (USC) and completing her undergraduate degree in Applied and Computational Mathematics, she is currently pursuing her master’s degree within USC’s Iovine and Young Academy.
Events
This would list events such as launch party, pop-up shops, community events, etc.
Help
Contact Us
Phone Number
Email
FAQ
General
How can I stay up to date on news regarding MAP’s latest efforts? You can join our newsletter! [insert link to join]
Shipping
Do you ship to PO boxes? Sure! We can ship via USPS and FedEx.
Can I cancel or modify my order before it ships? Please reach out to us via [phone number] or [email] if you need to adjust your order. We will do our best to accommodate, but added costs may apply.
Return Policy
If you’re not completely satisfied with your purchase, you may return it within 14 days for a full refund or store credit by contacting us via [email]. You may only return the item for store credit within 30 days of the purchase  Please note that shipping costs are non-refundable.
Shipping & Tracking
When your order is shipped, we’ll send your tracking number via email. Check the status of your orders often to ensure a successful delivery!
Privacy Policy and Terms & Conditions
[won’t be readable for prototype]
Artisans
Meet Our Artisans
List picture with name & learn to “Learn More”
Links lead to in-depth bio of the artisan, explaining their life up to that point (whatever they’d like to share with us)
Resources
Training program for marketable skills
For creating products: knitting, weaving, bath bombs, jewelry making, block prints, candle making, ceramics, cooking, crochet, embroidery, glass etching, metalworking, leatherwork, natural dye, pom poms and tassels, sewing, soapmaking, woodcarving, painting
For performing services: electricians, musical performances (instruments, singing), lawn-mowing, car-washing, etc
[this relates to Amelia’s layout on the experience of the homeless artisan]
Feel free to input other resources ideas here!!
Notes:
A great next step if we were to actually implement this solution would be to join the Fair Trade Federation https://www.fairtradefederation.org/
The eCommerce Mockup
Tumblr media Tumblr media
The Facility Diagram
Tumblr media
0 notes
aire101 · 4 years
Text
Ferrum Chapter 2
Here’s chapter two, and my apologies for how closely part of it follows Episode 1 of SAO.  After this the story probably won’t follow much of the shown canon at all, though I will probably bring in SAO characters for the boys to interact with eventually.  But in SAO everyone has the same starting point.  But with the world being as complex as it is, I doubt I’ll ever really need to follow episode events or dialogue this closely again.  Though I might get the boys involved in the Level 1 boss battle, we’ll see.
Also, please excuse any incorrect computer/programming/gaming jargon.  I’m doing the best I can. T_T
------------------
Peter was a masochist.  That was really the only explanation for his current situation.  The person had even offered to go their own way before Peter had opened his big mouth and tied them together for the next few hours.
Peter knew it wasn’t really Mr. Stark, he did.  But the avatar looked exactly like the Tony Stark that Peter remembered— before the space starvation and the new stress lines of living in a post-apocalyptic earth.  And he sounded just like him.  He had the same weird humor that fluctuated wildly between arrogance and self-deprecation.  He got Peter’s stupid science jokes and the laugh he gave when Peter growled out “FINISH HIM” during a fight with a boar was painfully familiar.  Several times he had to stop himself from calling out the wrong name, and each time left him feeling like he was repeatedly prodding a gaping chasm of a wound.
“You ok, Ki— uh, sorry… Tor?”
And then there was that.  All in all, it was a perfect recipe for emotional disaster.
“Yeah, sorry… my mind wandered off a bit there.”
“In the middle of a pvp and monster spawn zone might not be the best place for that you know.  How does this game even handle respawns?” asked Ferrum, striking down another boar with a swift horizontal strike.  It taken a bit of trial and error for them to get the hang of activating the sword skills, but once it had clicked they had made quick work of the low level spawns in the area.
“You know, for someone who managed to snag a limited release of this game you know surprisingly little about it,” responded Peter.
“Yes, I known, I’m an enigma.  Humor me and explain please.”
“We’re supposed to respawn in the nearest town I think.  Given the bugs we’ve seen so far though I’m not sure I’d want to test that at the moment.  Might be one way to initiate a logout though?” said Peter.
“I’d rather not risk it, and I’d suggest you do the same until we hear from an actual GM,” said Ferrum, sheathing his sword.  “That being said, we’ve been out here several hours now, wanna head back into town and see if anyone has heard anything?”
“Sure,” said Peter, also putting away his weapon.  They stood in the middle of a clearing with expansive views.  Most of the beasts in this area hadn’t been ones to initiate conflict, and they would have plenty of forewarning if anything headed in their direction.  So for a moment Peter allowed himself to just relax and take a proper look around the area, marveling at the beauty and complexity of the world Argus had built.  Off in the distance he could see hills disappear into the haze of the the horizon and cities raised atop impossible pillars.  In a field not too far from them there were a couple other players likewise looking out, taking in the beauty of the glistening waterfalls and towns painted in oranges and reds as sunset came over Aincrad.  
“I have to give them credit.  When I first heard about their plans for this game I was a bit dubious on whether they would actually be able to deliver on the promise.  Concept art looks great, but actually being able to code a full sensory experience into an application?  And create an entire open world with that data?  I mean, I had thought about the concept before, but the technology needed to do it always made me a bit uneasy…  It would be way to easy for someone to use it in ways it shouldn’t be,” said Ferrum.
“What changed your mind then? I mean, since you’re here now?” asked Peter.
“…I don’t know,” muttered Ferrum, sounding distinctly unsettled with the admission.
Peter opened his mouth with a joke on the tip of his tongue, something to lighten the suddenly uneasy mood—
When the deep toll of a bell rang out from the Town of Beginnings, rolling through the air with the tone of a death knell.
“Huh, wonder if they’re finally about to make an announcement?” said Peter.  “I’m surprised it took so—”
Suddenly a white light enveloped him.  In those seconds he felt nothing, completely stripped of sensory.  Just as he felt himself starting to panic, the light released him and was gone as quickly as it had came.  He found himself and Ferrum once again standing in the center of the plaza of the Town of Beginnings.  All around them seemingly every one of the 10,000 players were similarly being teleported into the square.  
“What the hell?” said Ferrum.
“I don’t know.  Pretty sure they should be able to make announcements across the whole game regardless of player location.  Maybe its an opening event?  Would explain the theatrics of it,” said Peter.
The whole square was a buzz with nervous confusion as people tried to figure out what was going on, then Peter heard someone call out above the crowd, “Up there!”
Peter looked up, and above the square there flashed a single red polygon with the word WARNING.
The sky turned red as more and more polygons spawned proclaiming ‘WARNING’ and ‘SYSTEM ANNOUNCEMENT.’
Peter wanted to think that maybe they had found the bug.  Maybe they were announcing a fix or instructions for the players…
But even without his spidey sense, something felt wrong.
Then the sky began to bleed.
“What is that?” asked a player to the side in horrified awe as the blood-like liquid began to coalesce into a more solid state.  Within moments it formed into a hooded figure wearing familiar blood red robes with gold trim.
A Game Master— likely an a real one this time.
The crowd of players all began to mutter speculations about the figure or the possibility of an event.
“I have bad feeling about all this.”
Peter jumped.  He had forgotten about Ferrum at his side.  He looked over at the older looking man, taking in the tight lines around his mouth, his eyes darting around the area taking everything in, but not straying too long way from the god-like figure of the GM in front of them.
Peter wished he could reassure the man like he had earlier in the day, but Peter was suddenly very aware that in this world he was no different than anyone else.  Just as vulnerable, just as powerless… What had originally been a main draw for him was now a very real weakness.  
“It would be way to easy for someone to use it in ways it shouldn’t be…”
They were absolutely at the mercy of this monolithic system…
“Attention Players… Welcome to my world.  My name is Kayaba Akihiko.  As of this moment, I am the sole person who can control this world.”
And whoever controlled it.
“Son of a bitch,” muttered Ferrum, a look of horror on his face.
“I’m sure you’ve already noticed that the logout button is missing from the main menu,” Kayaba continued.  “But this is not a defect in the game.”
A shiver traveled up Peter’s spine.  A stone of cold fear formed in his stomach.  Surely not… surely someone along the way would have noticed something so horrendous in the code…
“I repeat— this is not a defect in the game.  It is a feature of Sword Art Online.”
“But how… how can he keep us here?  Surely someone on the outside can still get us out?” asked Peter.
“It’s the hardware, Kid.  He’s fucked with the user client hardware that everyone’s brains are wired into,” growled Ferrum.
“You cannot log out of SAO yourselves.  And no one on the outside can shut down or remove the NerveGear.  Should this be attempted, the transmitter inside the NerveGear will emit a powerful microwave, destroying your brain and thus ending your life,” said Kayaba.
Immediately Peter ran through all the specs on the hardware he was privy to during his time as Tony’s intern, and came to the same conclusion Ferrum already had— this mad man was not lying.  He had disabled the safety mechanism that would keep certain powerful data bursts from frying someone’s brain.
Data bursts such as an autosave or a death respawn.
“Unfortunately, several players’ friends and families have ignored this warning, and have attempted to remove the NerveGear.  As a result, two hundred and thirteen players are gone forever, from both Aincrad and the real world.”
“Two hundred and thirteen…”
Peter turned around to see Ferrum looking on with eyes wide, his right hand grasping his left wrist as his left hand gave small spasms.  
That motion was intimately familiar.  The similarity  was uncanny…
“As you can see, news organizations across the world are reporting all of this, including the deaths.” Multiple program windows opened, most featuring various news channels running live, corroborating what Kayaba was explaining.    “Thus, you can assume that the danger of a NerveGear being removed is now minimal.  I hope you will relax and attempt to clear the game.
But I want you to remember this clearly.  There is no longer any method to revive someone within the game.  If your HP drops to zero, your avatar will be forever lost.  And simultaneously, the NerveGear will destroy your brain.”
So he was right— it was both the autosave and respawn functions that had been weaponized in the headset.  The more he thought about it, the more angry he became.  The man had taken glorious innovations in technology—some of it pioneered by Mr. Stark himself—and twisted it into a personal hell for all these people, some of them undoubtedly children.  As if the world hadn’t been dealing with enough tragedy over the last few years.  He wanted nothing more than to punch Kayaba directly in the face with every pound of his spider strength.
But he couldn’t do that.  In this world, he was just like everyone else.
With great power comes great responsibility… but without that power, was that responsibility still his?
“There is only one means of escape.  To complete the game,” Kayaba said, bringing up a digital layout of the floors of Aincrad.  “You are presently on the lowest floor of Aincrad, Floor 1.  If you make your way through the dungeon and defeat the Floor Boss, you may advance to the next level.  Defeat the final boss on Floor 100, and you will clear the game.”
The crowd, which up till now had been mostly muted in shock, finally began to shout and rumble in confusion and denial.  And from the sound of things, this monologue was just about to wrap up.  When it did, all hell was going to break loose.
He had some choices to make, and fast.
“Finally, I’ve added a present from me to your item storage.  Please see for yourselves.”
Shit.  What now?
Peter swiped down to access his storage, feeling distinctly as if he were walking into a trap.  Out of the corner of his eye he could see Ferrum doing so as well.
An item labeled ‘Mirror’ had been placed in his inventory.
“I’m guessing this mirror is the ‘gift,’ though now I’m wondering if he programmed the auto-drop or did it himself, and if he’s aware of my… status,” whispered Ferrum.
That’s right.  Ferrum was a GM, however that had happened.
“Do you think you could—”
But he didn’t get to finish his question, as at that moment everyone in the plaza began to shout as they were all consumed once again by white light.
When it receded, everyone had changed.
Some looked younger, most looked older.  Quite a few people around him looked to have changed genders completely.  Peter glanced back down at the mirror in his to see his Thor-like appearance gone completely, and instead his true face reflected back at him.  
So that was the purpose of the all too thorough calibration he and Ned had gone through.
“Kid,” said a shocked voice at his side.  
Peter turned around towards Ferrum, wondering who had been behind the meticulous avatar of Mr. Stark…
Only to see that Ferrum was completely unchanged.  Perhaps being a GM had made him impervious to the magic of the mirror?
“Underoos… what are you doing here, kid?!”
With those heartbroken words, Peter’s carefully constructed walls came crashing down.
. . . . .
Peter couldn’t think.  He certainly couldn’t speak.
He could vaguely tell that Kayaba had continued with his closing speech, but he couldn’t tell you what he had said.
All he could process was Mr. Stark’s face in front of him, and the name that only he had ever uttered to him.
It was impossible.  He had seen the body—the horrific scorching where the universal energies had burned through him, the life support system shutting off, the brightness leaving behind a cold husk in a metal suit—
Peter’s whole body flinched when he felt that familiar hand rest on his shoulder.
“Kid!  Are you with me?  We need to get out of here.”
In the time Peter had spaced out Kayaba had disappeared, and now the whole crowd was devolving into a panic.  People were screaming in terror and rage, several had broken down into sobbing messes on the ground.
He wanted to do something— anything to make this better.  Tell people that it was ok, they would figure this out.
But more than that, he wanted someone else to tell him that as well.
Finally he brought himself to focus on what Mr. Stark was saying.
“What do you mean we have to go— where else is there to go?” asked Peter.  “We can’t leave the game, we’ve tried—”
“Not the game, we need to get out of town.”
“What— why—”
“We can talk more later, follow me,” Mr. Stark said before running down a nearby alley.
After a few minutes they stopped, and Mr. Stark started flicking through his user interface.
“This is a fantasy RPG… you can’t tell me there are no helmets…”
After scrolling for a while, he tapped an item on the list and spawned a basic metal helmet and quickly placed it on is head, before continuing to run out of town.
“Mr. Stark!  Wait!” cried Peter.
“Don’t shout that kid, otherwise the helmet is pointless!” Mr. Stark called back.
“Ferrum… why are we heading out of town?  Its about to be dark and the only safe zone we know is here!” shouted Peter.
“The people back there are panicking, Peter.  It won’t be much longer before they start turning on each other, looking for someone to take it out on.  Between my face and the fact that some saw me in GM robes earlier I don’t want to chance hanging around for someone to put the pieces together.  Not to mention this area’s resources are going to be swamped before we know it.  Resource management is built in to the Cardinal system to maintain balance and encourage player movement and activity.  There won’t be enough to go around.”
“But if we die on the road the resources we need won’t really matter!” yelled Peter, pulling to a stop.  “There’s only so much they can do to us in town, it’s a No PVP area.  Lets just find an inn on the outskirts of town and spend the night.  We need a better plan than just running out of the safe zone at twilight.”
Mr. Stark had pulled to a stop when Peter had, obviously unwilling to leave him behind.  He looked down the alley, obviously wanting to continue on, but after a moment his shoulders dropped in an obvious show of concession.
“Fine, lets go to the outer ring and find a place,” said Mr. Stark.
As he turned and started walking away, Peter allowed himself a moment to take in the familiar gait, the way Mr. Stark always walked with his back straight and his head held high, as if he were always prepared to walk onto a red carpet, even in his most destroyed workshop clothes.
He could recognize every familiar mannerism from their hours pouring over suit tech and web formulas.  In retrospect, perhaps that as much as his face was why he had latched onto the man to begin with.  
But the billion dollar question still remained… how?
Hopefully once they found a room to bunk in, he could work out what the hell was going on… preferably before he had a complete emotional breakdown.
2 notes · View notes
myrtlecornish · 5 years
Text
React Data Layer - Part 4: Backend Data
This post is the fourth part of an 8-part series going in-depth into how to build a robust real-world frontend app data layer. See the previous parts here:
Part 1: Intro
Part 2: Setting up React and Redux
Part 3: Login
In this post we’ll switch from storing our data only locally in-memory to reading it from the web service and writing it back to there. This step moves our app to the point where we could actually use it for production. We’ll look into patterns we can use to organize our web service requests, status reporting, and data returned.
If you like, you can download the app as of the end of the post.
Setting Up Thunk
To connect to a web service, we need a mechanism to handle our asynchronous web requests. For our purposes, the Redux Thunk library will do nicely. It allows you to run asynchronous code in your Redux action creators, dispatching actions after they complete. Install it:
$ yarn add redux-thunk
Next, add it to your store setup in src/store/index.js:
-import { createStore } from 'redux'; +import { createStore, applyMiddleware, compose } from 'redux'; import { devToolsEnhancer } from 'redux-devtools-extension'; +import thunk from 'redux-thunk'; import { persistStore, persistReducer } from 'redux-persist'; import storage from 'redux-persist/lib/storage'; import rootReducer from './reducers'; ... const store = createStore( persistedReducer, - devToolsEnhancer(), + compose( + applyMiddleware(thunk), + devToolsEnhancer(), + ), );
Instead of being able to pass the devToolsEnhancer() directly, we now need to apply the thunk middleware as well, so we use the Redux compose() method to compose the two enhancers into a single enhancer to pass.
Loading Data
Now it’s time for us to load data from the service.
First, let’s add an action creator to do so. Add the following to store/games/actions.js:
+import api from '../api'; + +export const STORE_GAMES = 'STORE_GAMES'; export const ADD_GAME = 'ADD_GAME'; +export const loadGames = () => async (dispatch) => { + const { data: responseBody } = await api.get('/games'); + dispatch({ + type: STORE_GAMES, + games: responseBody.data, + }); +}; + export const addGame = (title) => { return {
When using Redux Thunk, action creator functions return another function, which takes a dispatch parameter that can be used to dispatch actions. We use arrow function syntax so we can concisely show a function returning another function. We are also using ECMAScript async/await syntax to simplify the asynchronous network call. We send a GET request to the /games endpoint. We destructure the response object, assigning the data property to a responseBody variable. You can see examples of JSON:API response formats at https://sandboxapi.bignerdranch.com/; here’s an example of a response to GET /games:
{ "data": [ { "id": "1", "type": "games", "links": { "self": "https://sandboxapi.bignerdranch.com/games/1" }, "attributes": { "title": "Final Fantasy 7", } } ] }
Next, we dispatch a new STORE_GAMES action, and we pass it the data property of responseBody. Wondering why there are two nested data properties? The first is defined by Axios on its response object to make the response body available, and the second is a field within the response body defined by the JSON:API specification. You can see that "data" field in the sample response above.
Next let’s handle the STORE_GAMES action in our reducer. Add the following to store/games/reducers.js:
import { ADD_GAME, + STORE_GAMES, } from './actions'; -const initialData = [ - 'Fallout 3', - 'Final Fantasy 7', -]; - -export function games(state = initialData, action) { +export function games(state = [], action) { switch (action.type) { + case STORE_GAMES: + return action.games; case ADD_GAME: return [action.title, ...state];
Because the server is now providing our data, we no longer need the initialData, so we remove it, setting the reducer’s initial data to an empty array. When STORE_GAMES is dispatched, we replace the games reducer’s state with the games property passed in the action.
Now that our loadGames action creator is done, let’s wire it up to our UI. First, in GameList/index.js, add it to mapDispatchToProps:
import { + loadGames, addGame, } from 'store/games/actions'; ... const mapDispatchToProps = { + loadGames, addGame, logOut, };
This will make loadGames available to our GameList component as a prop. Now we can call it when the GameList mounts:
-import React from 'react'; +import React, { useEffect } from 'react'; import { Button, Collection, ... const GameList = ({ games, + loadGames, addGame, logOut, }) => { + useEffect(() => { + loadGames(); + }, []); + return <div> <AddGameForm onAddGame={addGame} /> <Button onClick={logOut}>
useEffect will dispatch our loadGames action when the component mounts. We pass an empty array to useEffect to let it know that there are no state items that should cause the effect to be rerun, so it will only run once, when the component mounts.
We need to make one more change to GameList as well. Previously, when we were only working with local data, we stored the titles of the games directly in the reducer. Now, though, entire JSON:API records are being stored. Here’s an example record again:
{ "id": "1", "type": "games", "links": { "self": "https://sandboxapi.bignerdranch.com/games/1" }, "attributes": { "title": "Final Fantasy 7", } }
We need to update our render method to take account for this new format:
<Collection> { games.map((game) => ( - <CollectionItem key={game}>{game}</CollectionItem> + <CollectionItem key={game.id}>{game.attributes.title}</CollectionItem> )) } </Collection>
Now that we have a real ID field we can use that for the key prop instead of the name. This will prevent collisions as long as the server returns a unique ID for each record. To display the game’s title, we retrieve it from the attributes.title property.
If you run the app now, you’ll likely see this error:
Unhandled Rejection (TypeError): Cannot read property 'title' of undefined
This is because we’re restoring our Redux state from where it was persisted, and the games we have from before don’t have an attributes property: they’re just strings. This illustrates one of the challenges of persisting data: you have to be aware that past users will have data in previous formats, so you will need to manually migrate it.
In our case, though, we aren’t in production, so we can just clear out our persisted state. Open the Chrome web developer tools, go to Application > Storage > Local Storage > http://localhost:3000, and click the circle with a line through it. This will remove your persisted state.
Reload and you’ll need to log back in again, but after you do, records should be pulled down from the server successfully. You should now see some sample records returned from the server; these were set up for you when you created your account.
Saving Data
Now let’s set up an action creator to add a record. To do this, we need to change our addGame action creator from synchronous to asynchronous. Replace addGame with the following:
export const addGame = (title) => async (dispatch) => { const game = { type: 'games', attributes: { title }, }; const { data: responseBody } = await api.post('/games', { data: game }); dispatch({ type: ADD_GAME, game: responseBody.data, }); };
First, we construct a game object in the format JSON:API requires. We add a type property to indicate that it’s a game. Then we include an attributes object, which for us is just the title. We POST it to the /games endpoint. As with the loading endpoint, we destructure the data property into the responseBody variable, then retrieve the data property from it. This will be the complete record returned by the server, including the id it assigned. This complete record is what we pass along with the ADD_GAME dispatch.
We also need to make a tiny change to games/reducers.js. Before, we were passing only a title property with ADD_GAME, but now we are passing an entire game. We update the games reducer to retrieve the correct property:
case STORE_GAMES: return action.games; case ADD_GAME: - return [action.title, ...state]; + return [action.game, ...state]; default: return state;
This change helps make it clear that we are now storing an entire game, rather than just the title.
With this, our data should now save to the server. Reload the app and add a new record. Then reload the page again. The record you added should still appear.
Reloading
Another nicety we could add is a “Reload” button. Say a user is logged into our app on multiple devices. If they add a game on one device, it won’t show up on the other device. Let’s add a reload button to re-request the data from the server.
Implementing this is very simple: in addition to calling the loadGames action creator in componentDidMount, we also need to bind it to a button. Make the following change in GameList.js:
return <div> <AddGameForm onAddGame={addGame} /> + <Button onClick={loadGames}> + Reload + </Button> <Button onClick={logOut}> Log Out </Button>
Try it out; you will probably not see any difference in the UI, but check your Network tab to see that another request is sent.
Loading and Error States
Our app can now read and write data to the server–now let’s think about ways we can improve it. It’d be nice if we could indicate to the user if content was being loaded, as well as if there was an error. To do this, we need to track loading and error states in our store.
First, let’s create actions to record these status changes. Add the following to store/games/actions.js:
export const STORE_GAMES = 'STORE_GAMES'; export const ADD_GAME = 'ADD_GAME'; +export const START_LOADING = 'START_LOADING'; +export const RECORD_ERROR = 'RECORD_ERROR'; export const loadGames = () => async (dispatch) => { - const { data: responseBody } = await api.get('/games'); - dispatch({ - type: STORE_GAMES, - games: responseBody.data, - }); + dispatch({ type: START_LOADING }); + try { + const { data: responseBody } = await api.get('/games'); + dispatch({ + type: STORE_GAMES, + games: responseBody.data, + }); + } catch { + dispatch({ type: RECORD_ERROR }); + } };
Before we make the GET request, we dispatch the START_LOADING action. We add a try/catch block so that if the promise we’re awaiting rejects, we will catch the error. If there’s an error, we dispatch the RECORD_ERROR action.
Now we need to handle these actions in games/reducer.js. First, import our new actions:
import { ADD_GAME, STORE_GAMES, + START_LOADING, + RECORD_ERROR, } from './actions';
Next, let’s create a new reducer for each of the loading and error flags. First, loading:
export function loading(state = false, action) { switch (action.type) { case START_LOADING: return true; case STORE_GAMES: case RECORD_ERROR: return false; default: return state; } }
The loading flag starts as false. When we dispatch START_LOADING before the request, loading is updated to true. We then set it back to false when either the request succeeds and we STORE_GAMES, or the request fails and we RECORD_ERROR.
Next, let’s set up the error reducer:
export function error(state = false, action) { switch (action.type) { case RECORD_ERROR: return true; case START_LOADING: case STORE_GAMES: return false; default: return state; } }
The error flag starts as false. When we dispatch RECORD_ERROR upon an error, error is updated to true. If a new request starts, START_LOADING will set it back to false. We also set it to false if a request succeeds and we dispatch STORE_GAMES. We don’t strictly need to do this because START_LOADING should have set it to false already, but it can make our reducer more robust if we end up sending multiple web service requests at the same time in the future.
These new reducers illustrate some of the power of how Redux decouples actions from the code that handles them. Multiple reducers are responding to the same events. This decoupling keeps all the logic around one piece of state in one place; for example, it’s easier to see when the error flag is set and unset, to catch possible errors in our implementation.
To complete the updates to games/reducers.js, add the new reducers to the combineReducers() function call:
export default combineReducers({ games, + loading, + error, });
Now that we have loading and error flags in our store, we need to display the corresponding indicators in the UI. This is a separate and potentially reusable concern, so let’s create a LoadingIndicator component to handle this. Create a src/components/LoadingIndicator.js file and add the following:
import React from 'react'; import { Preloader } from 'react-materialize'; const LoadingIndicator = ({ loading, error, children }) => { if (loading) { return <div> <Preloader size="small" /> </div>; } else if (error) { return <p>An error occurred.</p>; } else { return <div> {children} </div>; } }; export default LoadingIndicator;
It’s a pretty straightforward component: we pass loading and error props to it, as well as some JSX children. If loading is true we display an indicator; if error, the message; otherwise, we display the children.
Now let’s set up GameList/index.js to pass these new state items to GameList:
function mapStateToProps(state) { return pick(state.games, [ 'games', + 'loading', + 'error', ]); }
And now in GameList we’ll add the LoadingIndicator component and pass these props to it:
... CollectionItem, } from 'react-materialize'; import AddGameForm from './AddGameForm'; +import LoadingIndicator from 'components/LoadingIndicator'; const GameList = ({ games, + loading, + error, loadGames, addGame, logOut, ... <Button onClick={logOut}> Log Out </Button> - <Collection header="Video Games"> - { games.map((game) => ( - <CollectionItem key={game.id}>{game.attributes.title}</CollectionItem> - )) } - </Collection> + <LoadingIndicator loading={loading} error={error}> + <Collection header="Video Games"> + { games.map((game) => ( + <CollectionItem key={game.id}>{game.attributes.title}</CollectionItem> + )) } + </Collection> + </LoadingIndicator> </div>;
We nest the existing <Collection> inside the LoadingIndicator as its children; as we saw in the implementation of LoadingIndicator, the children will only be rendered when the data is not loading or errored.
Now we should be ready to see these states in action. Reload your app, then in the Network tab find the dropdown that says “No throttling”:
Change it to the value “Fast 3G”–this will slow down the request so we can see it in the “loading” state:
Then click the Reload button you added to the app. You should see the animated preloader briefly before the list appears.
Check the “Offline” checkbox, then press the Reload button again. You should see the preloader again, then the error message.
What’s Next?
With this, our app is now fully hooked up to the backend for data reading and writing. For a lot of applications, this is all you need, so you can stop right here. But you may want to take advantage of some offline features to improve your users’ experience. In the remaining posts we’ll look into doing so, talk about the costs and risks, and evaluate when it’s worth it to do so.
React Data Layer - Part 4: Backend Data published first on https://johnellrod.weebly.com/
0 notes
Text
Fortnite Update 3.5.1 Officially Released; Fixes Tons of Bugs
A few days ago Epic Games was having major problems with Fortnite, and after attempting to fix the problem for hours, they finally decided to shut down the servers temporarily in order to completely fix it. Now, the servers are back up and players have to download a new patch, and it seems to put an end to a ton of annoying bugs.
While the patch is pretty extensive, some highlights include fixes to broken sprint animations when firing a Guided Missile, rare crashes when logging out, PS4 players leaving a party after matches, login queue problems and more.
In addition to that, V-Bucks will now be shared across Xbox One, PC, and Mobile, however, there’s no news on whether or not PlayStation players will be able to take advantage of that feature.
Players should be able to download the new update right now on the platform of their choosing. You can check out the full list of patch notes, straight from Epic Games, at the end of the article.
Fortnite was released in early access form last year and is available on PlayStation 4, Xbox One, Windows PC, iOS, and Android devices.
GENERAL
‘Building Edit’ hotkey can be bound to keys other than ‘G’.
BATTLE ROYALE
Bug Fixes
Fixed an issue where players could fire weapons before the equip animation had finished if they were sprinting.
Fixed several client crashes that were related to the new Replay System.
Fixed an issue that broke player’s walking / sprinting animations if they were firing a Guided Missile while walking/sprinting.
SAVE THE WORLD
We’re changing the Mini-Boss Mission Alerts for Canny and Twine back to their pre v3.5 state.
‘Repair the Shelter’ objective now activates when you interact with the control panel rather than be based on proximity to the objective.
Granted all players two free Spring Llamas (can be found in the Loot tab).
We’ve changed the way we convert event tickets. Players get 1 event Llama per 1000 tickets and 1 Llama for any tickets left over.
(Example) If you have 5 tickets left at the end of the event, you still get 1 free event Llama.
GENERAL
Wood, Stone, and Metal resources will now always be the first items in the inventory list (e.g. instead of Traps).
Purchased V-Bucks are now shared between Xbox One, PC and Mobile.
Login Queue Improvements:
During wait periods, login will now remember your place in line if you quit out of the game and return.
Mobile devices will not enter the login queue more than once per login attempt.
Two-Factor Authentication challenges will not put you back into the login queue.
Bug Fixes
Adjusted the Login screen layout to better support varying screen sizes and safe zones.
Fixed a rare crash that occurred during logout.
Fixed PS4 players leaving their party after a match where they are playing with players on other platforms.
Fixed Survivor and Hero squads being locked after switching to Save the World from Battle Royale.
On PC, fixed PS4 controllers showing Xbox buttons, even after the controller type was changed in the settings.
Fixed rare cases in which character parts would stretch unnaturally.
(Example) Ears of the Rabbit Raider outfit.
Fixed the inability to rotate elements in the Battle Royale Locker after buying a Llama
in
Save the World.
0 notes
siliconwebx · 6 years
Text
How to Create Custom Menu Structures in WordPress
Many people only think about the WordPress menu at the top of the site. They try to stuff it full of as many links as can fit in the header bar. That does not necessarily give your users the best experience. You can use menus not only to direct your users around your site, but also to provide contextual resources that might be overlooked if they were stuffed alongside dozens of other links. With a custom menu structure, the menu interface can be used to spruce up your entire site, not just the top of it.
The Default WordPress Menu
If there is no menu specified to go into the Primary Menu location, WordPress generates a menu of every Page on a blog by default. If you have lots of Pages made, that menu can get awfully crowded.
That menu is unusable, really. Outside of being organized in alphabetical order, there’s no rhyme or reason to it. And not every Page needs to be in your site’s main menu anyway. So we need to create some menus and make sure that we organize them in a way that makes sense to your users.
Creating a WordPress Menu
To begin creating your menu, click on Appearance – Menus in your WordPress dashboard.
Once there, you see the not-so-clear WordPress menu creation screen. In it, you have 4 main points of interest.
Menu Name – This name is not front-facing. It is only for your organizational needs.
Pages, Posts, Custom Links, and Categories – You can include menu items to anywhere on your blog (individual posts or pages, as well as whole categories). If you want a menu item as an external link, use the Custom Links section.
Automatically Add Pages – If you want all new Pages you create to be added to your menu, leave this checked. Very few times is this a good option.
Display Location – Your options may vary from theme to theme, but these are the places within your site that your menu can appear in full. The Manage Locations tab is an extension of this.
To create the menu itself, simply select anything from the left side (1) and press Add to Menu (2). It will appear under the Menu Structure heading to the right, and it can be expanded to show other options that can be changed on an item-by-item basis (3).
The Navigation Label field is the text that will appear in the menu. For instance, if you want the page titled Login to appear in the menu as Member Area, you would put Member Area in this field. A link to the original page with its original name will always appear at the bottom so you don’t lose track of what you have renamed.
When you’ve added all the items you want, just press Save Menu. The menu will immediately be live in whatever location you specify.
Creating a WordPress Menu with Hierarchy
Not every link you have in a menu will fit on a single menu bar. If you want to have submenus (on click or on hover), you can do that. You do it exactly like you did above, only you add in a single step.
When you’ve hit the Add to Menu button, and the new item has appeared, you will be able to drag and drop it beneath the item you want as its parent. For example, if you want a custom link to appear when people hover/click on Login, you would create the link in the left sidebar, press Add to Menu, and then drag the new link until the dotted outline appears to indicate the hierarchy you’ve created.
If you want multiple sub items, you can do the same thing over again. Only this time, drag the sub item beneath a sub item.
And when you save the menu to push it live, you will see it in whatever location you’ve chosen.
Using Multiple WordPress Menus
One of the biggest missed opportunities with site navigation is limiting yourself to a single, all-purpose menu at the top of your site. Sure, mega menus have a time and place where they work great, but they aren’t always the answer. That said, if you break your navigation down and organize it with a custom menu structure, your visitors will be able to find their way around more easily. Which increases retention and…well, you know the rest.
As above, we want to create a new menu. Navigate back to the Appearance – Menus page and click the Create New Menu (1) link. You will now get a blank menu template, and it will ask for a name (2). Remember, these names are for you, so name it something you’ll recognize. Menu 2 doesn’t tell anyone what it is. Sidebar Widget – Account Management does.
You will now have a menu selection dropdown, where you can choose which menu you want to edit. This is where a useful naming convention comes in handy. In terms of adding content to the menu, that’s different on everyone’s site. But for this example, we’ll go wtih the Account Management idea. For that, people will need a Login/Logout link and maybe a User/Account section. Let’s make those have a parent/child relationship, too.
You may notice that we called this one Sidebar Widget, but there isn’t an option for Sidebar as a menu location.
That just means we’ll have to manually place the menu, so leave all the options unchecked and press Save Menu. When saved, this menu will appear nowhere on your site. Because you have a primary menu already, and you didn’t tell this one where to live. So let’s fix that.
Adding a WordPress Menu to the Sidebar
You will need to jump tabs now and go to Appearance – Widgets. On this page, you see all of the widgetized areas that your site can handle. Which ones appear vary theme to theme, but the general Sidebar option is usually there. And again, some themes might have extra widgets, but the default Navigation Menu widget is always there, too. So we will use those.
All you have to do is find the Navigation Menu widget and drag it to the Sidebar area. It will immediately appear on your site, but by default, there’s nothing showing.
After that, it’s as easy as typing in the widget title that you want people to see and selecting the menu to display.
Save the widget. The title appears in the widget’s header, and you can see the changes live on your site.
Easy peasy. Now, you will probably need more menus on your site. Maybe a footer menu so that people can find the different sections of your website, or maybe you want all of the contact pages together. You could list the forums, social media links, email forms, and live chat on a menu that displays easily on your site without needing a separate plugin for it.
Just repeat the steps above, and then place the new menu in a widget in your Footer area.
Wrapping Up
Using the WordPress menu tool to create a custom menu structure can make the UX of your site much better. Without any extra tools of plugins, you can provide resources to your users anywhere they need them. The WordPress menu can do great things, remember, and not just at the very top of your website.
Do you have a custom menu structure on your site? How did you set it up?
Article featured image by Mr Kreetha Mahamud /shutterstock.com
The post How to Create Custom Menu Structures in WordPress appeared first on Elegant Themes Blog.
😉SiliconWebX | 🌐ElegantThemes
0 notes
latestnews2018-blog · 6 years
Text
Lana Discusses Evolution, Teaming With Rusev And More
New Post has been published on https://latestnews2018.com/lana-discusses-evolution-teaming-with-rusev-and-more/
Lana Discusses Evolution, Teaming With Rusev And More
Lana was recently interviewed by Newsweek and gave her thoughts on several topics. Below are the interview highlights.
Lana on kicking off Summerslam this year: 
“It was so incredible, and I’m so grateful to be able to be in a match with my husband, Rusev. I’m not just managing him, I actually get to wrestle. I remember a few years ago at Summerslam, we were fighting. To come full circle and be together on the same side, tagging, is such an awesome experience. I don’t appreciate that Zelina [Vega] cheated. That was very cowardly, and I’m not happy about that. But I’ll get my revenge at some point to crush their tranquilo.”
Lana on what she’s most proud of in WWE:
“There are so many things I’m so proud of. If we’re talking just in-ring stuff, participating in the first-ever women’s Royal Rumble. I was so grateful to be a part of history. I never thought there would be an all-women’s royal rumble. I’m also glad I got to participate in this year’s Money in the Bank ladder match. The stakes are high in all matches in the WWE, but there is nothing as high as a ladder match. You have to lift these heavy, heavy ladders. Anything can happen, and it’s really dangerous. To be in a high-stakes match like that, I was really excited to participate in it.”
Lana on her contributions to the success of the Rusev Day team:
“I’ve been a Rusev Day fan since before there was a Rusev Day. I feel like I was the forerunner of it all. I saw something in him before the WWE universe saw it in him, back when they were booing us for being patriotic to our countries. He really is the super-athlete. I think he’s one of our most athletic superstars. Now that everyone is supporting Rusev and Rusev Day, you see that he’s funny and charming and great, and I’m glad you’re finally seeing what I’ve always seen. I knew people would come along, sometimes it just takes time. It’s Lana’s day, but it’s Rusev’s year.”
Lana on working with her husband for the mixed match challenge:
“I loved the Mixed Match Challenge. Rusev and I had so much fun with it. We were really able to use social media to use our voice. There was a lot more freedom to be creative, and it was great to dress up as Bayley or Charlotte or Naomi and imitate them. We really had a lot of fun with that in our living room. And I learned so much from Rusev. He trains me in the ring, he trains me in the gym. Anything from athleticism to psychology and how to win. My first win came with him in the Mixed Match Challenge because he was really showing me the ropes. He literally had me matchka boards and crush. He trained in Thailand in muay thai and he wanted to teach me his ways, which was basically breaking boards and matchka kicking boards down.”
Lana on her first match:
“Oh my gosh, I was so nervous at Wrestlemania when I debuted. I never had a live match ever. I’d had practice matches, but a practice match in front of no one is very different from a real match. Nattie gave me this pep talk, saying ‘you can’t not be inspired. This is the highest stake thing you’re ever going to have, and you’re going to sink or swim. So you better go out there and prove everyone who doubted you wrong.’ All of a sudden, you’re like ‘I’m motivated!’ And once you walk out there you realize, ‘I’m born for this, there is nothing in the world like this.’”
/* function checkLoginState() FB.getLoginStatus(function(e) “connected”===e.status&&FB.api(“/me?fields=id,name,email”,function(e) void 0!==$(“#add_comment”)&&(user_fb_name=e.name,user_fb_url=e.id,user_fb_email=e.email,$(“#nick”).val(user_fb_name),$(“#nick”).prop(“readonly”,!0),$(“#feed_fb_url”).val(user_fb_url),$(“#feed_fb_email”).val(user_fb_email),console.log(e),console.log(“My FB ID: “+user_fb_url)) ) ) window.fbAsyncInit=function() FB.init( appId:fb_app_id,cookie:!0,xfbml:!0,version:”v3.0” ),FB.AppEvents.logPageView(),FB.Event.subscribe(“auth.statusChange”,checkLoginState()) ,function(e,n,t) var o,c=e.getElementsByTagName(n)[0];e.getElementById(t)(document,”script”,”facebook-jssdk”); */ window.fbAsyncInit = function() FB.init( appId : fb_app_id, cookie : true, xfbml : true, status : true, version : ‘v3.0’ );
FB.AppEvents.logPageView(); FB.Event.subscribe(“auth.statusChange”,checkLoginState()); FB.Event.subscribe(‘auth.login’, function(response) if (response.status === ‘connected’) location.reload(); ); ;
function checkLoginState() if(TwitterFirst!=1) FB.getLoginStatus(function(response) console.log(response); if(typeof response.authResponse!=’undefined’) user_fb = response.authResponse; user_fb_url = user_fb.userID; if (response.status === ‘connected’) FB.api(“/me”,’get’, fields: ‘id,name,email’ ,function(response) console.log(response); if(typeof $(‘#add_comment’) != ‘undefined’) user_fb_name = response.name; user_fb_email = response.email; $(‘#nick’).val(user_fb_name); $(‘#nick’).prop(‘readonly’, true); $(‘#feed_fb_url’).val(user_fb_url); $(‘#feed_fb_email’).val(user_fb_email); //if(user_fb_email==”) $(‘#fb_notice’).html(‘ Your e-mail is not registering with WNS Facebook login. If you wish to use your Facebook in place of a community key please logout FB using the button above and log back in after. This feature is not quite active yet, but it’s better to do it ahead of time.’); console.log(‘My FB ID: ‘ + user_fb_url); //console.log(‘Auth ID: ‘ + response.authResponse.userID); console.log(‘My FB Email: ‘ + user_fb_email); ); ); else console.log(“Twitter beat Facebook”); (function(d, s, id) var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = “https://connect.facebook.net/en_US/sdk.js”; fjs.parentNode.insertBefore(js, fjs); (document, ‘script’, ‘facebook-jssdk’));
0 notes
luxus4me · 7 years
Link
CSS-Tricks http://j.mp/2uIkKRG
This is a follow up to the CSS-Tricks Article Intro to Firebase and React. In that lesson, we built Fun Food Friends, an application for planning your next potluck. It looked like this:
If you haven't completed that article yet, please complete that article first before attempting this one - it builds on the existing code from that application.
If you'd like to skip that article and dive right into this one, you can clone this repository which contains the finished version of the application from part one. Just don't forget that you'll need to create your own firebase database and swap in the credentials for that one, as well as run npm install before beginning! If you aren't sure how to do either of these things, take a look at part one before diving into this one.
What we'll be making
Today we'll be adding authentication to our Fun Food Friends app, so that only users that are signed in can view who is bringing what to the potluck, as well as be able to contribute their own items. When signed out, it will look like this:
When users are not signed in, they will be unable to see what people are bringing to the potluck, nor will they be able to add their own items.
When signed in, it will look like this:
Your name will be automatically added to the Add Item section, and your Google photo will appear in the bottom right-hand corner of the screen. You will also only be able to remove items you added to the potluck.
Before we Start: Get the CSS
I've added some additional CSS to this project in order to give a little bit of polish to the app. Grab it from here and paste it right into `src/App.css`!
Getting Started: Enabling Google Authentication on our Firebase Project
Start by logging in to Firebase Console and visiting your database's Dashboard. Then click on the Authentication tab. You should see something that looks like this:
Click on the Sign-In Method tab:
Firebase can handle authentication by asking the user for an email and password, or it can take advantage of third-party providers such as Google and Twitter in order to take care of authentication and authentication flow for you. Remember when you first logged in to Firebase, it used your Google credentials to authenticate you? Firebase allows you to add that feature to apps that you build.
We're going to user Google as our authentication provider for this project, primarily because it will make handling our authentication flow very simple: we won't have to worry about things like error handling and password validation since Google will take care of all of that for us. We also won't have to build any UI components (other than a login and logout button) to handle auth. Everything will be managed through a popup.
Hover over Google, select the pencil on the right hand side of the screen, and click Enable in the box that appears. Finally, hit Save.
Now, click Database on the left hand side of the screen, and head to the rules panel. It should look something like this right now:
In the first iteration of our fun food friends app, anyone could read and write to our database. We're going to change this so that only users that are signed in can write to the database. Change your rules so that it looks like this, and hit Publish:
{ "rules": { ".read": "auth != null", ".write": "auth != null" } }
These rules tell Firebase to only allow users who are authenticated to read and write from the database.
Preparing Our App to Add Authentication
Now we're going to need to go back to our `firebase.js` file and update our configuration so that we'll be able to use Google as our third party authentication Provider. Right now your `firebase.js` should look something like this:
import firebase from 'firebase' const config = { apiKey: "AIzaSyDblTESEB1SbAVkpy2q39DI2OHphL2-Jxw", authDomain: "fun-food-friends-eeec7.firebaseapp.com", databaseURL: "http://j.mp/2v31fWA", projectId: "fun-food-friends-eeec7", storageBucket: "fun-food-friends-eeec7.appspot.com", messagingSenderId: "144750278413" }; firebase.initializeApp(config); export default firebase;
Before the export default firebase, add the following:
export const provider = new firebase.auth.GoogleAuthProvider(); export const auth = firebase.auth();
This exports the auth module of Firebase, as well as the Google Auth Provider so that we'll be able to use Google Authentication for sign in anywhere inside of our application.
Now we're ready to start adding authentication! Let's head over to `app.js`. First, let's import the auth module and the Google auth provider so that we can use them inside of our app component:
Change this line:
import firebase from './firebase.js';
to:
import firebase, { auth, provider } from './firebase.js';
Now, inside your App's constructor, let's start by carving out a space in our initial state that will hold all of our signed in user's information.
class App extends Component { constructor() { super(); this.state = { currentItem: '', username: '', items: [], user: null // <-- add this line }
Here we set the default value of user to be null because on initial load, the client has not yet authenticated with Firebase and so, on initial load, our application should act as if they are not logged in.
Adding Log In and Log Out
Now, let's add a log in and log out button to our render component so that the user has some buttons they can click to log in to our application:
<div className="wrapper"> <h1>Fun Food Friends</h1> {this.state.user ? <button onClick={this.logout}>Log Out</button> : <button onClick={this.login}>Log In</button> } </div>
If the value of user is truthy, then it means that the user is currently logged in and should see the logout button. If the value of user is null, it means that the user is currently logged out and should see the log in button.
The onClick of each of these buttons will point to two functions that we will create on the component itself in just a second: login and logout .
We'll also need to bind these functions in our constructor, because eventually we will need to call this.setState inside of them and we need access to this:
constructor() { /* ... */ this.login = this.login.bind(this); // <-- add this line this.logout = this.logout.bind(this); // <-- add this line }
The login method, which will handle our authentication wth Firebase, will look like this:
handleChange(e) { /* ... */ } logout() { // we will add the code for this in a moment, but need to add the method now or the bind will throw an error } login() { auth.signInWithPopup(provider) .then((result) => { const user = result.user; this.setState({ user }); }); }
Here we call the signInWithPopup method from the auth module, and pass in our provider (remember this refers to the Google Auth Provider). Now, when you click the 'login' button, it will trigger a popup that gives us the option to sign in with a Google account, like this:
signInWithPopup has a promise API that allows us to call .then on it and pass in a callback. This callback will be provided with a result object that contains, among other things, a property called .user that has all the information about the user who has just successfully signed in - including their name and user photo. We then store this inside of the state using setState.
Try signing in and then checking the React DevTools - you'll see the user there!
It's you! This will also contain a link to your display photo from Google, which is super convenient as it allows us to include some UI that contains the signed in user's photo.
The logout method is incredibly straightforward. After the login method inside your component, add the following method:
logout() { auth.signOut() .then(() => { this.setState({ user: null }); }); }
We call the signOut method on auth, and then using the Promise API we remove the user from our application's state. With this.state.user now equal to null, the user will see the Log In button instead of the Log Out button.
Persisting Login Across Refresh
As of right now, every time you refresh the page, your application forgets that you were already logged in, which is a bit of a bummer. But Firebase has an event listener, onAuthStateChange, that can actually check every single time the app loads to see if the user was already signed in last time they visited your app. If they were, you can automatically sign them back in.
We'll do this inside of our componentDidMount, which is meant for these kinds of side affects:
componentDidMount() { auth.onAuthStateChanged((user) => { if (user) { this.setState({ user }); } }); // ...
When the user signs in, this checks the Firebase database to see if they were already previously authenticated. If they were, we set their user details back into the state.
Updating the UI to Reflect the User's Login
Now that our user's authentication details are being tracked successfully in our application's state and synced up with our Firebase database, there's only one step left - we need to link it up to our application's UI.
That way, only signed in users see the potluck list and have the ability to add new items. When a user is logged in, we see their display photo, their name is automatically populated into the 'Add Item' area, and they can only remove their own potluck items.
I want you to start by erasing what you previously had after the <header> inside of your app's render method - it'll be easier to add back each thing at a time. So your app component's render method should look like this.
render() { return ( <div className='app'> <header> <div className="wrapper"> <h1>Fun Food Friends</h1> {this.state.user ? <button onClick={this.logout}>Logout</button> : <button onClick={this.login}>Log In</button> } </div> </header> </div> ); }
Now we're ready to start updating the UI.
Show the User's Photo if Logged In, Otherwise Prompt User to Log In
Here we're going to wrap our application in a big old' ternary. Underneath your header:
<div className='app'> <header> <div className="wrapper"> <h1>Fun Food Friends</h1> {this.state.user ? <button onClick={this.logout}>Logout</button> : <button onClick={this.login}>Log In</button> } </div> </header> {this.state.user ? <div> <div className='user-profile'> <img src={this.state.user.photoURL} /> </div> </div> : <div className='wrapper'> <p>You must be logged in to see the potluck list and submit to it.</p> </div> } </div>
Now, when you click login, you should see this:
Show the Add Item Area and Pre-populate with the Signed in User's Login Name or E-mail
<div> <div className='user-profile'> <img src={this.state.user.photoURL} /> </div> <div className='container'> <section className='add-item'> <form onSubmit={this.handleSubmit}> <input type="text" name="username" placeholder="What's your name?" value={this.state.user.displayName || this.state.user.email} /> <input type="text" name="currentItem" placeholder="What are you bringing?" onChange={this.handleChange} value={this.state.currentItem} /> <button>Add Item</button> </form> </section> </div> </div>
Here we set the value of our username field to this.state.user.displayName if it exists (sometimes users don't have their display name set), and if it doesn't we set it to this.state.user.email. This will lock the input and make it so that user's names or email are automatically entered into the Add Item field for them.
We'll also update the handleSubmit since we no longer rely on handleChange to set the user's name in the state, but can grab it right off of this.state.user:
handleSubmit(e) { // .... const item = { title: this.state.currentItem, user: this.state.user.displayName || this.state.user.email } // .... }
Your app should now look like this:
Displaying Potluck Items, and Giving the User the Ability to Only Remove Their Own
Now we'll add back our list of potluck items. We'll also add a check for each item to see if the user who is bringing the item matches the user who is currently logged in. If it does, we'll give them the option to remove that item. This isn't foolproof by far and I wouldn't rely on this in a production app, but it's a cool little nice-to-have we can add to our app:
<div className='container'> {/* .. */} <section className='display-item'> <div className="wrapper"> <ul> {this.state.items.map((item) => { return ( <li key={item.id}> <h3>{item.title}</h3> <p>brought by: {item.user} {item.user === this.state.user.displayName || item.user === this.state.user.email ? <button onClick={() => this.removeItem(item.id)}>Remove Item</button> : null} </p> </li> ) })} </ul> </div> </section> </div>
Instead of displaying the remove button for each item, we write a quick ternary that checks to see if the person who is bringing a specific item matches the user who is currently signed in. If there's a match, we provide them with a button to remove that item:
Here I can remove Pasta Salad, since I added it to the potluck list, but I can't remove potatoes (who brings potatoes to a potluck? My sister, apparently.)
And that's all there is to it! Adding authentication to a new (or existing) Firebase application is a snap. It's incredibly straightforward, can be added with minimal refactoring, and allows to persist authentication across page refresh.
It's important to note that this is a trivial application - you would want to add additional checks and balances for storing any kind of secure information. But for our application's simple purposes, it's a perfect fit!
http://j.mp/2v2jnQM via CSS-Tricks URL : http://j.mp/2bNbLYg
0 notes
Text
New Post has been published on YourMinecraft.Com
New Post has been published on http://www.yourminecraft.com/teletoro-mod-minecraft/
TeleToro Mod for Minecraft 1.11.2/1.10.2
TeleToro Mod for Minecraft 1.11.2 Mods is a teleportation mod for Minecraft. At its core, this mod’s primary intention is to open up a way for players to travel large distances while still keeping balanced and interesting game play. Instead of teleporting a player from one platform to another, a new dimension called the Teletory was created. Players can use the Teletory for fast travel like the Nether but eight times faster. To maintain balance, the portal is expensive to build in the early game (costing 40 ender pearls) and once built requires enchanted armor to be used effectively.
Lore:
Recently, a pack of miners happened upon an amazing discovery: a cache of ancient alchemists’ scrolls left untouched for centuries. Upon investigating the scrolls, a revelation was found that Endermen travel through a parallel dimension where each meter in this dimension translates to sixty-four meters in our own dimension, allowing them to perform what looks like instantaneous teleportation. In the scrolls, there were notes explaining how to enter this dimension they dubbed the Teletory, allowing humans to achieve much faster transportation.
There are, however, some side effects. Humans take damage while in this dimension and if they do not use another Teletory portal, they will simply fall out of the sky far from home… More research of Enderman biology is required to find a way to overcome these issues. The scrolls also alluded that there are some enchantments you can place on boots that may reduce the amount of damage taken while in the Teletory.
Features:
One meter in the Teleotory equates to sixty-four meters in the over world.
While in the Teletory, you will be continually taking damage as if you were teleporting using ender pearls. To be able to survive in the Teletory, wear armor that helps mitigate the damage from ender pearl teleportation. Standing on an Ender Block will shield you from taking damage in the Teletory, so carrying a few spare Ender Blocks could save the day. You can also use ender boots to aid in traversing the Teletory.
Jumping out of the Teletory does not send you into the void and is survivable; however, it is far from a safe means of travel.
Breaking ender blocks with a pickaxe drops a random amount of ender pearls; make sure to use a fortune or silk touch pick. Also, breaking ender blocks in the Teletory produces fewer drops.
To get between two points quickly in the overworld, Teletory portals can be linked together using a Teletory Portal Linker.
Currently there is a bug “seemingly” in Minecraft that causes problems waking from a bed after teleporting large distances. Players can get stuck on the sleep screen with no way to close it except for closing the game. This bug can cause problems using linked Teletory portals that are far apart. We will be looking for a way to avoid this bug, but until we find one it is a good idea to logout and back in before sleeping after teleporting long distances.
Screenshots:
A constructed Teletory Portal
The Teletory
A Teletory Portal in the Teletory
Linked Teletory Portals
Crafting Recipes:
Ender Block
To get started using this mod, you will need at least 40 Ender Pearls. Combining 4 Ender Pearls in a square will allow you to craft Ender Blocks that can be used to construct a Teletory Portal. Once you get the portal constructed, more ender pearls can be created by mining Ender Ore from the Teletory.
Ender Boots
Four Ender Pearls can be used to craft Ender Boots. Ender Boots allow you to transverse the Teletory without taking damage and are an essential tool for exploring and building in the Teletory. However, every hit from which they protect you damages the boots. It is a good idea to make a couple pairs so that when they wear out you will have a backup. Ender Boots also help when using Ender Pearls.
Teletory Portal Linker
Teletory portal linkers are used to link two Teletory portals together. Once linked, a teletory portal will teleport the player to the other portal instead of into the Teletory. Players will take damage when using linked portals unless wearing ender boots. To link two portals together, first use the linker on one of the portals to be linked. The linker will be active and glow when a portal has been set up to be linked. Once you have an active linker use it on the other portal, linking the two portals together. Linked Teletory portals are slightly bluer and are more opaque. They also don’t produce any portal particles.
Teletory Pearl Smelting
Ender Ore can easly be found throughout the Teletory. Mining it with a diamond pick will drop the ore which can then be smelted in a furance to create a Teletory Pearl. Teletory Pearls are similar to Ender Pearls but are in an unrefined state. Throwing Ender Pearls will teleport you from one place to another, however Teletory Pearls only have enough power to teleport you to the Teletory. This can be a useful feature, allowing players to quickly telelport to the Teletory without a portal.
Ender Pearl Smelting
Teletory Pearls can be further refined into Ender Pearls by smelting them in a furance. This can be a useful source of Ender Pearls for players that have not yet conquered the End.
Requires:
Minecraft Forge
How to install TeleToro Mod:
Make sure you have already installed Minecraft Forge.
Locate the minecraft application folder.
On windows open Run from the start menu, type %appdata% and click Run.
On mac open finder, hold down ALT and click Go then Library in the top menu bar. Open the folder Application Support and look for Minecraft.
Place the mod you have just downloaded (.jar file) into the Mods folder.
When you launch Minecraft and click the mods button you should now see the mod is installed.
TeleToro Mod Download Links:
For Minecraft 1.9.4: TeleToro-Mod-1.9.4.jar – 78 KB
For Minecraft 1.10.2: TeleToro-Mod-1.10.2.jar – 102 KB
For Minecraft 1.11.2: TeleToro-Mod-1.11.2.jar – 125 KB
0 notes