LEE WALKER’S SECRET METHOD EXPOSED

Over-Optimizing for Performance

Recently on the csharp subreddit, the post C# 9.0 records: immutable classes linked to a surprisingly controversial article discussing how C# 9.0's records are, underneath it all, immutable classes. The comments are full of back-&-forth over whether one should use records for ease or structs for performance. The pro-struct argument revolved around the belief that performance should always be a developer's #1 priority, and anything less was the realm of the laggard.
Here is a real-world example that shows with stark clarity why that kind of thinking is wrong.
Consider the following scenario:

1

You're working on a game with dozens, maybe hundreds of people on the team; you don't know because when you were cross with facilities about them removing all the fluorescents, you got accused of being against the new energy saving initiative. Now you swim in a malevolent ocean of darkness that on some very late nights alone in the office, you swear is actively trying to consume you.
 

2

The team that preceded you inherited an engine that is older than OOP, when source repositories were stacks of 8-inch floppies, and it looked as if Jefferson Starship was going to take over the world. One year ago they bequeathed upon the company this nightmare of broken, undocumented GOTO spaghetti & anti-patterns. You're convinced this was their sadistic revenge for all getting fired post-acquisition.
 

3

Management denied your request to get headcount for an additional technical artist, but helpfully supplied you with an overly nervous intern. After several weeks working alongside them, you're beginning to suspect they're pursuing something other than a liberal arts degree.
 

4

Despite the many getting started guides you spent countless evenings writing, the endless brownbags nobody attended, and the daily dozen emails you forward to oppressively inquisitive artists comprised of a single passive-aggressive sentence suggesting they scroll down to the part that begins FW: FW: FW: FW: FW: FW: RE: WE BROKE TOOL NEED WORKAROUND ASAP ...
 
...yes, despite all of that, the engineering team still spent days tracking down why the game kept crashing with Error 107221: У вас ошибка after re-re-re-re-re-throwing an ex_exception when it couldn't (and should never even try to) load a 16K-textured floor mat.
 

5

Despite your many attempts to politely excuse yourself, one blissfully unaware artist exhausts 48 minutes of your lunch break explaining how the Pitchfork review for the latest "dope slab" of this TikTok-Instagram-naphouse artist you never heard of was just sooooo unfair.
 
And then in their hurry to finish up & catch the 2:30 PM bus home, they forget to toggle Compress To CXIFF (Custom Extended Interchange File Format), set the Compression slider 5/6ths of the way between -3 & -2, look to their left, look to their right, click Export As .MA 0.9.3alpha7, and make absolutely, positively, 100% SURE not to be working in prod. And THAT is how the game explodicated.
 

6

You know better than anyone the intermediate file format the main game loop passes to Game.dll, memory mapping it as a reverse top-middle Endian binary structure.
 
You know for 381 of the parameter fields what their 2-7 character names probably mean.
 
YOU know which 147 fields always have to be included, but with a null value, and that the field ah_xlut must ALWAYS be set to 0 unless it's Thursday, in which case that blackbox from hell requires its internal string equivalent: TRUE.
 
YOU know that the two tech artists & one rapidly aging intern that report to you would totally overhaul tooling so artists would never "happen" again, but there just aren't enough winters, springs, summers, falls, July 4ths, Christmas breaks, Presidents Days, and wedding anniversaries in a year to properly do so.
 

7

If you could just find the time between morning standups, after lunch standups, watersprint post-mortems, Milbert's daily wasting of an hour at your desk trying to convince you engineering should just rebuild the engine from the ground up in JavaScript & React, & HR's mandatory EKG Monitor job satisfaction surveys, you might be able to get at least some desperately-needed tooling done.
 
And so somehow you do. A blurry evening or two here. A 3:00 AM there. Sometimes just a solitary lunch hour.
 
Your dog no longer recognizes you.
 
You miss your wife calling to say she's finally cleaning out the hall closet and if you want to keep this box of old cards & something in plastic that says Underground Sea Beta 9.8 Grade, you better call her back immediately.
 
And your Aunt Midge, who doesn't understand how SMS works, bombards you one evening:
your father is...
no longer with us...
they found him...
1 week ago...
in an abandoned Piggly Wiggly...
by an old culvert...
split up...
he was then...
laid down to rest...
sent to St. Peter's...
and your father...
he's in a better place now...
don't worry...
it's totally okay...
we decided we will all go...
up to the mountain
 
You call your sister in a panic and, after a tidal wave of confusion & soul-rending anxiety, learn it was just Hoboken Wireless sending the messages out of order. This causes you to rapidly cycle.
 

8

On your bipolar's upswing, you find yourself more productive than you've ever been. Your mind is aglow with whirling, transient nodes of thought careening through a cosmic vapor of invention. It's like your brain is on 200mg of pure grade Adderall.
 
Your fingers ablaze with records, clean inheritance, beautiful pattern matching, bountiful expression syntax, aircraft carriers of green text that generate the most outstanding CHM for an internal tool the world has ever seen. Readable. PERFECTLY SOLID.
 
After much effort, you gaze upon the completed GUI of your magnum opus with the kind of pride you imagine one would feel if they hadn't missed the birth of their son. Clean, customer-grade WPF; tooltips for every control; sanity checks left & right; support for plugins & light scripting. It's even integrated with source control!
 
THOSE GODDAMNED ARTISTS CAN'T FAIL. YOUR PIPELINE TOOL WON'T LET THEM.
 
All they have to do is drag content into the application window, select an options template or use the one your tool suggests after content analysis, change a few options, click Export, and wait for 3-5 minutes to generate Game.dll-compatible binary.
 
Your optimism shines through the commit summary, your test plan giddy & carefree. With great anticipation, you await code review.
 

9

A week goes by. Then two. Then three. Nothing. The repeated pinging of engineers, unanswered.
 
Two months in you've begun to lose hope. Three months, the pangs of defeat. Four months, you write a blog post about how fatalism isn't an emotion or outlook, but the TRANSCENDENCE of their sum. Two years pass by. You are become apathy, destroyer of wills.
 

10

December 23rd, 2022: the annual Winter Holidays 2-hour work event. The bar is open, the Kokanee & Schmidt's flowing (max: 2 drink tickets). The mood a year-high ambivalent; the social distancing: acceptable. They even have Pabst Blue Ribbon, a beer so good it won an award once.
 
Standing beside you are your direct reports, Dave "Macroman" Thorgletop and wide-eyed The Intern, the 3 of you forming a triumvirate of who gives a shit. Dave is droning on & on about a recent family trip to Myrtle Beach. You pick up something something "can you believe that's when my daughter Beth scooped up a dead jellyfish? Ain't that something? A dead jellyfish," and "they even had a Ron Jons!"
 
You barely hear him, lost as you are in thought: "I wish I had 2 days of vacation." You stare down ruefully at your tallboy.
 
From the corner of your eye you spot Milbert, index finger pointed upward, face a look of pure excitement.
 
"Did I tell you about my OpenWinamp project? It's up on SourceForge", he says as he strides over. It's unsettling how fast this man is.
 
"JAVASCRIPT IS JUST A SUBSET OF JAVA!" you yell behind you, tossing the words at him like a German potato masher as you power walk away. It does its job, stopping Milbert dead in his tracks.
 
Dave snickers. The Intern keeps staring wide-eyed. You position yourself somewhat close to the studio's 3 young receptionists, hoping they serve as a kind of ritual circle of protection.
 
It works... kind of. Milbert is now standing uncomfortably close to The Intern, Dave nowhere to be seen.
 
From across the room you distinctly hear "Think about it, the 1st-person UI could be Lua-driven Electron."
 
The Intern clearly understands that words are being spoken to them, but does not comprehend their meaning.
 
You briefly feel sorry for the sacrificial lamb.
 

11

You slide across the wall, putting even more distance between you & boredom made man. That's when you spot him, arrogantly aloof in the corner: Glen Glengerry. Core engineering's most senior developer.
 
Working his way up from a 16-year old game tester making $4.35 an hour plus free Dr. Shasta, to pulling in a cool $120K just 27-years later, plus benefits & Topo Chicos. His coding style guides catechism, his Slack pronouncements ex cathedra; he might as well be CTO.
 
You feel lucky your team is embedded with the artists. You may have sat through their meetings wondering why the hell you should care about color theory, artistic consistency, & debates about whether HSL or CMYK was the superior color space (spoiler: it's HSL), you were independent and to them, a fucking code wizard, man.
 
And there he stands, this pseudo-legend, so close you could throw a stapler at him. Thinning grey-blonde tendrils hanging down from his CodeWarrior hat, white tee with This Guy VIMs on the back, tucked into light blue jeans. He's staring out into the lobby at everything and yet... nothing all at.
 

12

Maybe it's the 4.8% ABV. Maybe it's the years of crushing down anger into a singularity, waiting for it to undergo rapid fiery expansion, a Big Bang of righteous fury. Maybe it's those sandals with white socks. Maybe it's all three. But whatever it is, it's as if God himself compels you to march over & give him a piece of your mind, seniority be damned.
 
"Listen, you big dumb bastard..."
 
That... is maybe a little too aggressive. But Glen Glengerry barely reacts. Pulling a flask out of his back pocket, he doesn't look over as he passes it to you.
 
Ugh. Apple Pucker.
 

13

"I thought bringing in your own alcohol was against company policy", wiping sticky green sludge from your lips. He turns with a look of pure disdain & snorts.
 
"You think they're going to tell ME what I can & can't bring in?" He grabs the flask back, taking a big swig.
 
For what feels like an eternity, you both stand in silence. You swallow, speaking softly. "None of you even looked at my code. I worked very, very hard on that. My performance review for that year simply read 'recommend performance improvement plan." The words need no further context.
 
"I know", Glen² replies. "That was me."
 

14

Now you're not a weak man, and maybe in some other circumstance you would have punched him in the goddamn lip. But you feel nothing, just a hollowness inside. "Why?", you ask, wondering if the answer would even matter.
 
"Because you don't use Bulgarian notation. Because your method names aren't lower camel case. Because good code doesn't require comments. Because you use classes & records over more performant structs, pointlessly burdening the heapstack. BECAUSE. YOUR CODE. IS. SHIT."
 
You clinch your fists so tightly the knuckles whiten.
 

15

He looks away from you, taking another sip of green goo. "You're not a coder. You're an artist masquerading as one" he speaks, as if it were fact.
 
The only thing artistic about you is the ability to create user-friendly internal tooling using nothing but a UI framework, broken down garbage nobody wants to touch, & sheer willpower. If your son's life depended on you getting accepted into art instruction school, you couldn't even draw a turtle.
 
He doesn't pause. "I'll champion ruthless micro-optimization until the day I die. But buddy, I'm going to let you in on a little secret: you aren't here to improve workflow. You're here to LOOK like you're doing something NOBODY else can."
 
He goes on. "What do you think those artists are going to do when they have to stare at a progress bar for 4, 5 minutes? They're going to complain your tool is slow."
 
"Sure, it may take them 20, 30 minutes to do it the old way, there'll be an error, and either they'll stare at it for 30 minutes before adding that missing semi-colon or they'll come get you. And you'll fix it. And 1 week later, they won't remember how. And you'll stay employed. And every. Body. Wins."
 

16

A little bit of the pride, the caring, wells back up inside from somewhere long forgotten.
 
"You don't think we should care about rapid application development & KISS, quickly getting things out that help our team, instead devoting ourselves to shaving off ticks here & there? What do you think artists are going to do with those 4 minutes you talk about?
 
You don't stop. "I'll tell you what they'll do. They'll 9GAG for 20 minutes straight. They'll listen to podcasts about dialectical materialism vis-a-vis the neo-feudalism that is a natural extension of the modern world's capitalist prison. They'll Reddit."
 
His silence gives you the bravery to push the limits.
 
"Christ, man. Are you only in it for the $120K..."
 
He corrects you: "...$123K."
 
"...only in it for the $123K/year? The free snacks from the microkitchen? The adulation? Have you no sense of comraderie?? No desire to push us to something better?! No integrity?!!!"
 
His eyes sharply narrow, face creases in anger. You clearly have overstepped your bounds.
 

17

"You think I don't have integrity? No sense of teamwork? I'm only in it for the cold cash? You think I don't care about you all?", he roars.
 
A light volley of small green flecks land on your face.
 
"Why do you think they made a 16-year old tester the lead developer of a 1993 Doom clone?! Because my code was clean & painless to work with?! Because I made coding look easy?! No! IT WAS BECAUSE I WAS A GOD TO THEM.
 
And from a God, a PANTHEON. We built monuments to over-engineering! We crafted that of 7 weeks onboarding, that of immortal bugs, demonic hosts spawned by legion from the very loins of a fix. It took 2 years before a developer could BEGIN to feel confident they knew what they were doing. And by that time, they were one of US!
 
You think the team we laid off November '19 was fired because they were bad at their jobs? NO! It was because they worked themselves out of one. They didn't leave us a broken pipeline. They left an internal Wiki, a wealth of tools & example projects, and a completely transparent code base.
 
We couldn't have THAT, now could we? No, we couldn't. So we got rid of it. ALL OF IT. Poof. Gone. Just like that. Before anyone even knew a THING."
 
He leans forward, so close his psoriasis almost touches yours.  
With an intensity that borders on frightening, he whispers "You think they left us Game.dll? I fucking *MADE** Game.dll."*
 
The words hit hard like a freight train.
 

18

And without another word, he turns & leaves. You're left there, alone, coworkers milling about, with only one thought.
     
Were one to get a hobby, should it be cocaine?
 

In Conclusion

It's these kinds of situations that make me believe there are far more important considerations than a ruthless dedication to performance, even in the game industry as my real-world scenario so clearly demonstrates.
 
Like, records are cool & shit.
submitted by form_d_k to shittyprogramming [link] [comments]

Greed is Subtle

The morning alarm woke up Ghen. With an annoyed sigh, he stretched out his arm and silenced the foul-sounding chirps. Slowly sitting up in bed, he let out a deep yawn and got to his feet.
Running a couple of chitinous fingers along his antennae to stimulate them to life, he made his bed and then went to his closet. Today was a work day, so he needed his suit. Once the pants were on, he stretched out his wings so that he could button up the shirt, then relaxing them once all the buttons were secured.
Dressing for the day was done, now for the morning meal. Entering his kitchen, he took out the chilled leftovers of the evening meal last night and popped it into the radiator, first defrosting and then slightly cooking it.
During that process, he also fished out a ceramic cup and placed it in his brewer, serving himself some synthesized caffeine. His idle thought led him to being amused that, when eaten directly off a plant, it has a concentration that could kill him three times over. But after going through some refinement and roasting, all it does is make him hyper.
Once the meal was put together, his plate of heated leftovers and a cup of almost-piping-hot cup of Xia's, he took his time to enjoy it. His communicator vibrated. When he looked, he found it was from his boss.
"Hello?" Ghen answered.
"Ghen, the meeting's been moved up to a few minutes from now." His boss, Xkik, announced. "Apparently higher up has something important they want to say. We have a terminal ready for you, I'll message the login details."
"Wha-, what's so important?" Ghen asked in bewilderment. "Did a water line rupture or something?"
"No, nothing like that." Xkik replied with a slight chuckle. "It's actually about the rumors we've been hearing. That human corporation wanting to acquire us? That's what they're talking about."
Ghen could feel everything inside his thorax drop to the floor. "That must mean it's true then, right? Did we get sold off by the Queen to this company then?"
"Show up to the meeting and you'll get your answer." Xkik said simply. When he finished, Ghen got the notification on his communicator. There's the login details, allowing him to remotely attend the meeting. "They're about to start, hurry up."
Once Xkik disconnected, Ghen worked fast to login and set up the remote viewing. Once everything was done, his screen started transmitting the meeting room. It was already packed. And off by the main board, he saw his answer. There was a human, resting against the wall on his two legs. Standing right in the center of everyone's view was the coordinator, Tizx, watching the clock periodically.
As soon as the meeting's start time was reached, the coordinator began. "Alright everyone. I realize that this was rather short notice, so I want to say how appreciative I am that you made it. Now then, let's just get right to it. For some time now, many of you have been hearing rumors that a human corporation has been interested in us. Why? We never really knew. We're just an organization responsible for finding, extracting and providing water to the colony here all under the direction of the Queen herself. Well, as of now, I have the answer for you. Why don't I let Ryan say that?"
Stepping back, Tizx motioned for the human, Ryan, to take over. With a nod, Ryan practically bounced over and then took the position. "Good morning to you all. I hope my Zazk is passable, heh. Anyways, the answer to those rumors, is yes. Terran Galactic Company is indeed interested in you all. Which now leads to me. I'm here to announce that, effective yesterday evening, this water company is now a subsidiary of Terran Galactic Company, under the name of Zilia Water Delivery."
Many other sub-coordinators broke into hushed conversation, no doubt speaking their thoughts with each other about this move. Ghen could only wonder if this was even a good thing. What will the humans do? Will he still have his job? Will he have to learn how to deal with the ruthless humans?
"Now, I am well aware this is quite the...uh, change." Ryan continued. "That's why I'm happy to inform you that, no, nothing negative or detrimental will happen to you. You just have new people to answer to. Operations will continue as normal, everybody here will still keep their jobs. The only real change any of you will personally experience is that Coordinator Tizx here will now report to someone else. On behalf of the Terran Galactic Company, we are extremely excited and are looking forward to working with you all. Thank you for your time."
A week later.
At least Ryan wasn't lying. After the initial shock wore off, things went back as they normally did. There were no terminations, no reductions in annual pay or anything. Nothing really changed. At least until this new meeting was called. Ghen was at the worksite this time, so he took his seat and watched as, once again, Ryan led the meeting.
"Hello again, everyone!" He said cheerfully, his Zazk noticeably improved. "I hope I didn't end up looking like a liar, right? Everything's still normal, all that?"
All the zazk in the room confirmed, providing comments to their pleasant surprise as well as lingering thoughts.
"Awesome! Awesome." Ryan said jubilantly, his fleshy mouth revealing his bone-white teeth. "Now then, you're probably wondering why I'm here again, right? Well, I got another fantastic piece of news for you all! Two, actually. I'll start with the first: Zilia Water Delivery has just completed its IPO. The company is now publicly traded!"
Ghen and the others voiced their confusion, having no idea what in the name of the Queen Ryan was talking about. What was Ryan talking about? What's an IPO? And why exactly is being publicly traded such a significant thing?
"Oh, you guys don't know any of that?" Ryan asked in surprised confusion. After everybody confirmed, he let out a quick huff as he began his explanation. "Well, to begin, IPO is short for Initial Public Offering. Basically what that means is that, before today, Zilia was privately held. Only certain individuals could buy and sell shares here. But now that we're public? Literally anyone can buy and sell shares in the company, hence us being publicly traded."
"Uh, what's a share?" Ghen asked, still completely lost.
"Oh, boy..." Ryan muttered under his breath before returning to his peppy image. "To simply put it, a share is short for having a share of ownership in a company. When you buy a share, you're buying a piece of ownership, and when you sell, you're selling that amount."
"So wait...if someone buys a share, they're a co-owner then?" One of the other team coordinators asked.
"If they get enough, yeah." Ryan nodded. "You need a lot though, and that really depends on the company. If I had to give an answer though? I'd say usually you need to have a lot more shares than a lot of people combined to be officially a co-owner, but we call that being a majority shareholder."
"And how do we do that?" Ghen asked, now growing curious but still not understanding why such a concept exists.
"Simple. Buy shares." Ryan said simply. "And that leads into the second piece of awesome news. Zilia's corporate has a product in mind, a premium-package of water delivery. Instead of the usual water that you pump out, filter and ensure its potable before delivery, with the premium package, not only will you get that, but you'll also get all of the required nutrients and vitamins the zazk body requires! And they feel you guys have the best expertise and understanding to pull it off! So, here's what we're offering as a good-faith bonus: A 25% increase to your annual salary as well as being given stock options."
Ghen wasn't sure about the second part, but the salary definitely got his attention, as well as everyone else's. Although his job was considered to have a good pay, Ghen isn't going to say no to a higher salary. In fact, he's been focusing his work on getting a promotion so he can come home with even more credits in pocket.
"What do you mean by stock options?" Ghen asked after some time.
Ryan let out that smile again, the one that revealed his teeth. "If you choose to transfer over to the new group, you'll be provided 50,000 shares in Zilia itself. Why's that awesome? Let me walk you through it. Right now, our last closing price per share was 3.02 credits. And if you have 50,000 shares during that time, you're sitting on 151,000 credits, if you cash it out immediately."
"And why shouldn't we?" One of the coordinators demanded in an ambiguous tone.
"Because the price per share changes a lot." Ryan explained promptly. "When we got done with the IPO? It closed at 2.73 a share. Right now? My money's on the closing price being 2.99 a share. However, we are extremely confident in this premium package being successful. If it does? Well, my bet is that the share price will skyrocket to 3.12 a share. If you hold those shares and the price gets to what my bet was? You'll instead get 156,000 credits. Just by holding onto them, you just made an additional 5,000 credits!"
"And what if we have more shares?" Ghen questioned, now getting excited at the prospect of free money.
"Even more money!" Ryan laughed a bit. "And don't forget about dividends, but that's for another time. The premium group is gearing up right now, we just need the workforce. If any of you wants in, I'll be back tomorrow with all the forms needed to make it official. Take the day and tonight to think it over, yeah?"
Everything else melted into a blur. Ghen was practically on autopilot that whole day. Was this the secret to the humans' incredibly massive economy? How so many of them have amassed so much money out of nowhere? All you had to do was just buy this share out of a company and you get more money without even working?
As soon as he got home, Ghen knew what he was going to do during the night. After feverishly looking through the galnet, now having the human race connected to it, he looked and gathered up as many books that were translated into zazk as he could find, all talking about the human economic system. The last time he undertook such an intensive study was during his primary education phase.
And during his search, he even found forums on the galnet that were completely dedicated to the human's economy. All of them talking about strategies on what company, or stock, to pick. How to analyze a company's performance to determine if it was worth the money, or it had potential to grow over time. And that was when he discovered the humans found another method to the extremely simple buying and selling process. There were humans and some other immigrated aliens who made five times what Ghen could receive over a simple month just by watching the share prices during trading hours, and then buying and selling them at the proper times.
Ghen's mind was just absolutely flabbergasted. He thought it was just some strange concept only aliens could make, but no, not with the humans. They've practically made their economy into an art or a science. No, not even their economy. Everything. If humans can see a way to make money off of it, they'll do it. And if there isn't, they'll look for a way.
Healthcare was monetized. Galnet services, transportation, shopping at the store, they even made all of their utilities into profit-oriented companies.
And it was there that Ghen paused, the realization slamming into him. Everything was monetized. Which means, if you don't have the money for it, you're not getting it. Right? Are the humans truly that ruthless? So obsessed with making money? To the point that they're willing to deprive their own people of the absolute necessities if it's a source of credits?
Ghen let out a scoff. There's no way. Nobody is that cruel and callous. He's never been to the United Nations. He can't rely on what a bunch of random people on the galnet says. He decided that from here on out, he'll only go as far as saying that humans are a little obsessed with credits, nothing more.
...
There he was. Ryan, sitting in the office provided to him. And there was a rather large line leading to him. Looks like word got around. Although, the line wasn't as large as he expected it to be. Maybe the others thought it was just a ruse? That there's no such thing as making free money by spending it on such a made-up concept?
Ghen only knows that, if it is a ruse, it's an extremely elaborate one, where all of the humans are in on it. And he believes that's just extremely ridiculous. At the end, if he's unsure, he'll just take the transfer for the very real increase in his very real salary. And although he spent a very good chunk of the night reading up on how humans do things, he's still going to play it smart. He'll leave his 50,000 shares alone and see where it goes from there.
"Good morning sir." Ryan greeted warmly once Ghen took his seat. "Now, name please?"
"Ghen." He answered, barely keeping his nerves down.
"Alright...and what's your position at this location?" Ryan questioned after scribbling on his form.
"I monitor the pumping stations near the extraction sites." Ghen explained, staying on point. "To be more specific, I check to see if they're in need of maintenance, as well as reading the flow rate that's determined by the calculators installed there. If there's too little for what's needed, I pump out more. And if there's too much, I pull it back a little."
"Nice...and how long have you been doing it for?" Ryan complimented with a nod.
"As of tomorrow, ten years." Ghen replied, voice quickly changing to minor awe once he realized that fact.
"Excellent. Do you have anyone in mind you'd like to replace you here?" Ryan questioned after another scribble. "If you don't have anyone, you're free to say so."
Ghen took a moment to think it over. A bunch of names went through his mind, but one stuck with him. "Tilik. He's just been accepted here, but he's learned quickly. Very attentive and he always catches something subtle. I think he'll do really well in my position, even better actually."
"Tilik, really?" Ryan questioned with a little shock, going through his completed forms. Ghen felt a short sense of panic in him. Did something happen, or was Tilik actually transferring? His answer didn't take long to reveal itself. "Right, Tilik was actually one of the first people to want to transfer here. He's actually requested to be part of the testing teams specifically. Do you have a second choice?"
"Um...no, actually." Ghen replied, feeling a little ashamed. "Tilik was my only choice, to be honest."
"Hey, don't worry." Ryan said assuringly with his hands raised. "Nothing wrong with that. Sometimes, there's just nobody up to snuff, right? 'Kay, so, last question. Is there anything specific you'd like to do when given the transfer?"
"If you need someone monitoring new pumps, I'd be happy to do that." Ghen stated.
"So basically same job but with better payoff, am I right?" Ryan grinned. "I hear you. Sometimes, we're just not paid enough for what we're doing. I know I think that sometimes. Uh, our secret, yeah?"
"Yeah, our secret." Ghen nodded, thinking it'd be better to have friendly relations with the human, just in case.
"Awesome. Back on topic, that's it." Ryan announced, placing the form on his pile. "We'll give you a call when you're accepted."
"Oh, uh, that's it?" Ghen questioned with a shrug in shocked surprise.
"What, expecting a question like, why do you want to transfer?" Ryan chuckled a bit as he leaned in his seat. "You can bullshit all you want, but we both know the answer. Sweet money and stock options. Not saying that's a bad answer of course, just that it's pretty obvious."
"I suppose it is." Ghen commented, realizing the point. "Also, you mentioned this...dividend? Is that for Zilia shares?"
Ryan laughed a little bit before nodding. "Yep, announced before I came here. About 0.43 per share. Want to know why that's awesome? Instead of waiting for the proper price to cash out your shares, now? The company pays you for each share you hold."
"A...Are you serious?" Ghen demanded, flabbergasted.
Ryan nodded with his now-trademark grin. "Dead serious. If you get the transfer, and get those 50,000 shares? A little head math...right, if you hold onto those, in addition to your salary, you'll now annually be paid 21,500 credits, if you keep it at 50,000 shares. Only you can decide to sell or buy shares."
Ghen just stood there silent and motionless, no idea of whether to believe it or not, to which Ryan just laughed. Once he walked out of the room, he managed to snap back to reality. Again, just focus on the very real pay-raise. He'll deal with the other parts later.
After he returned to his spot, he spotted Tizx approaching by his desk. The coordinator seems to be as casual as always.
"I saw you in that line a bit ago, Ghen." He said as he leaned on the desk. "Guess you're really taking that human's word?"
"I mean, I don't know about all this share business or what not." Ghen began with a shrug, his tone sounding a little defensive. "But I mean, having a bigger salary? Course I'm going for it when I can. And if all this magic credits turn out to be real? You realize we can live like the royal servants, right? Get the best cars, the nicest food and all that?"
"I'd be very careful, Ghen." Tizx warned in a sudden shift in tone. "Don't trust those humans. The way they just...obsess over money? Come up with more and more insane ways of getting credits? I don't know, it just makes my wings twitch."
"You think this is a bad idea?" Ghen asked with a little surprise at the change-in-demeanor.
"I think you should be careful, with the humans, and with what you're saying." Tizx replied, straightening his posture. "I wouldn't put it past those Earthmen to backstab you if it gets them a few more credits. And we all know how the royal servants get if any of us lowly commoners start thinking we can break into their circle."
"I hear you, I'll be on my guard, promise." Ghen stated with a nod. With a confirming nod of his own, Tizx returned back to his duty, walking past Ghen's desk.
Several weeks later.
Everything became so much better. Ghen got the transfer. He didn't need to relocate to a new residence either. And after he was walked through into learning how to manage his stock account, and seeing that new form of payment in his hands, he already felt as though he made the best decision. But it was only when he decided to take those shares more seriously that he became privy to what he was given. After receiving the dividend payment, and actually seeing it was real, valid credits after transferring it to his main bank account, all he could describe was the most powerful high he ever felt.
While his first thoughts were to buy himself a royalty-class car, some nicer furnishings for his home, or even a better home entirely, he ended up going the smarter route.
After going back to his stock account, he discovered that Zilia's shares rose to about 3.22 credits in price. Knowing that this was the easiest money he could ever make, he took all of his dividend earnings and bought more shares in Zilia, bringing him to owning 56,891.
And from his new regional coordinator, a human named Dylan, tomorrow is the grand release of the premium package. For just a monthly rate of 14.99 credits, the tap water will now include a sizeable portion of all nutrients and vitamins required in the zazk physiology. Still, Ghen has to admit. He's not entirely sure why anybody would want such a thing, if they'd even go for it. But, as long as he's practically swimming in easy credits, he won't pay much attention to it.
And just like when he was intensively studying the basics of how the human economy worked, he barely got any sleep. His mind was constantly thinking about the things he would buy. Or rather, what other stocks to put his credits into. Even now he can still hardly believe it. Just spend your money on some, make-believe thing and, if you wait long enough and picked the right stock, you'll get more than you spent back?
His mind even wandered onto what human colonies, or even their homeworld, Earth, was like. If everybody was making so much money, what kind of things would they offer? What kind of ridiculous service or product or item can you get? He's even debating on joining some forum and just asking around. Explain how he's new to how humans do things and was wondering what he should expect if he's successful.
By the time he felt like he can go to sleep, the binary-stars of the system were rising from the horizon. After getting out of his bed and changing to clean clothes, his mind returned onto what-ifs.
What if he bought better clothes? He's had his eye on that human brand of luxury clothes, Tessuti di Venezia, that's been all the rage amongst the royal servants. Or maybe he can go on vacation and just check out Earth for real?
It was a short ride to his workplace from his home. After getting stuff his stuff and preparing to walk through the doors, he heard the roar of a car grow louder. When he looked, he saw the sleekest and quite possibly the coolest looking car he's ever seen. Each time the engine revved it would startle him, both from how harsh it sounded as well as just how intense it sounded. And after it parked, he saw the doors pop out and then slide along the body back. And there, he saw Tilik, the seat literally turning and extending out a bit before he got off.
As soon as he saw Ghen staring, he struck a rather prideful pose after putting on his lab coat and then sauntered over to Ghen.
"What do you think?" Tilik said, without any doubt inviting praise or compliments.
"D...Did you actually buy that?" Ghen asked, unable to tear his eyes away from the car.
"You're Queens-damn right I did!" Tilik laughed happily. "Thing takes off like a starship, has temperature-controlled seating, all-in-one center console, barely any bouncing on rough roads. Hoof, best decision I've ever made!"
"How much did that thing cost?" Ghen asked after letting out an incredulous laugh.
"Five million credits." Tilik replied, earning an absolutely shocked stare from Ghen. "And thanks to the incredible salary I have, in addition to all these shares and dividends, I'll pay back the credits I borrowed in no time!"
Ghen needed a few moments before he could speak again. "All I've been doing is buying more shares."
Tilik laughed and then patted the now-envious monitor's back. "Smart man. I got a little carried away, yeah, but not anymore. Any spending credits I got, going right back to investing. That's what it's called right, investing?"
"Yeah, it is." Ghen nodded, feeling a fire light up in his thorax. "And also? Today's the day that the premium water thing is being released. Here's hoping it starts out well, right?"
"Oh it will, trust me." Tilik chuckled as they both began making their way inside the workplace. "Lots of research, lots of study. By the Queen, so much of it...it'll make your head spin."
And after hearing that, Ghen had a moment of realization. "Hey, Tilik? How did you get such a nice position anyways? Weren't you just studying under me before the humans came along?"
Tilik let out a sigh after opening the door. "I'll be honest, I never wanted your job. Not because it's boring or terrible, just...I didn't suffer so many sleepless nights in the science academy just to be a glorified button pusher. This is what I've always wanted. Doing science, solving problems rather than just applying the solution, you know?"
"Wait, you got an academic certificate?" Ghen questioned, completely floored. "How did you end up beneath me then? I should've been answering to you!"
"Simple." Tilik gave a heavier sigh. "A royal servant was asking for the same job I was. Take a guess at who got it."
"Ouch. Good thing the humans came along when they did, yeah?" Ghen was taken aback. He never heard anything about a servant taking a job at his place. "Looks like you're proving yourself to be well suited."
"By the Queen, of course I am." Tilik nodded. "Like I said, I nearly broke my wings through so many nights, got certified top of my class, all just to get pushed to the dirt because someone who was born into a particular family wanted the same thing I did? I know I'm smarter than any of those empty-skull servants back in the Center. I know that, whatever, uh...corporate? Yeah, whatever corporate wants out of science, I will xeek give it to them."
"Well, let me know how things go in the lab." Ghen said, admiring his drive as they neared the main office floor. "Because this is where the button pusher needs to go."
Tilik let out a laugh as he nodded. "Hey, how about we meet up at Queen's Fine Eatery tonight. I'll pay, yeah?"
Ghen, at first, wanted to admonish him for choosing such an outrageously expensive place to go. But he quickly realized that, he truly is good for it, thanks to the humans. "Well, hey, if you're paying for it."
...
It was a fantastic opening. After being told what news sites to keep in mind for stocks, he first heard it from Dylan, and then got more detail on Business Today. There was such a massive demand right from the start that Zilia needs to increase extraction just to meet it. But what really got his attention was the effect it had. Zilia Water Delivery's share price just blasted off. After seemingly holding steady at about 3.15, by the time he got home and logged onto his account, it already reached 7.04 a share. The calculator on his account told him that he got a value-gain of 54.26%.
Never in his entire life had he felt such...joy. With all of the shares he currently has? He's sitting at 400,512.64 credits. He knows that it is woefully pathetic compared to what the royal servants have just in their pockets, but the fact that he has such money, just by owning some intangible concept? Why even work at Zilia? Why doesn't he just sit at home, figure out what companies to invest in and make his money that way?
What's even the point in working a real job, getting a pathetic pay when you can just take the money you have, determine where to spend it, and get triple back? All just sitting on your wings at home, researching?
He was so wrapped up in his excited high that he completely forgot he was going to meet Tilik at Queen's. After quickly and haphazardly putting on his nicer clothes, he got to the place only a few minutes late.
Tilik was there by the guide, no doubt having been waiting for him. As soon as he strode up, Tilik's wings stiffned out some. No doubt he must've seen the numbers as well.
"I can see your wings, Ghen." Tilik began with an excited chuckle. "Made some serious credits?"
Ghen let out an incredulous scoff, struggling to find the words for a moment. "Incredible. All I'm going to say."
"Likewise." Tilik chortled some before nodding to the table guide. "All here. Table please?"
"Right this way, sir." The guide said politely. It was a short walk, travelling between round tables. The vast majority were populated by zazk, but Ghen was surprised at seeing a few humans here as well. No doubt corporate workers checking out the local food. He did spot them having bowls filled with some kind of mass. Some were brown, others white with what looks to be black specks on them.
They arrived at their table. A rather nice one, affording a view out the windows into the busy colony streets. Once Tilik and Ghen settled in, the guide handed out the menus.
"May I suggest our rather popular option for tonight?" The guide began. "Human ice-cream. Ingredients sourced from Earth itself. Very cold, but incredibly sweet, and coming in many flavors. The most popular amongst us is called vanilla-bean. The vanilla itself soaks in the cream for much of the process, and then the innards sprinkled on top of it near the end. Rumor has it that the Queen herself has demanded personal shipments of such a treat straight from the home of vanilla, an island on Earth named Madagascar."
Ghen didn't even spare a single thought. "Vanilla bean ice cream then, please."
"Same." Tilik seconded when the guide glanced to him. With a slight bow, the guide proceeded to ferry their orders to the kitchen. Thankfully it was just a short wait before the guide returned, carrying a large plate containing bowls of ice cream. Ghen could feel the saliva on his mandibles as the bowl was placed before them. He could just feel the cold air around that glistening mass of sugary goodness. The white snow decorated with the black dots of vanilla bean.
Once the guide left them, Tilik and Ghen both dived in at the same time. As soon as the ice cream entered his mouth, touched his tongue, he exploded in incomprehensible bliss. The sweetness, the smooth and creamy mass, even the taste of vanilla he wasn't sure about was just absolutely delightful. It was so overwhelming that his entire body limped, slumping in his seat as he was forced to ride on the surging tide of joy and happiness sweeping over him.
Tilik was no different. He too was taken completely by the effects of the ice cream, his wings fluttering some against the seat. Ghen could hear some noise. It was the humans they passed by. They were chuckling, grinning, and glancing over at them discreetly. Unlike the two zazk, the humans seemingly just enjoyed the ice cream as if it was just another nice dessert to them. Or perhaps they couldn't allow themselves to succumb to the high?
And as soon as the wave of indescribable bliss and happiness subsided, Ghen knew. He just knew. This was the life. He wanted this. The ice cream was just the beginning. So many things denied because he didn't have the credits, or worse, not the blood. Because he was just a drone in the great Collective, even if he had the credits, he wasn't allowed because of what caste he was born in. That fire that sparked in him when he saw Tilik's new car? It exploded into a raging firestorm.
And when looking into Tilik's eyes, Ghen could see the same. He was on the same page as Ghen was. Both of them were sold. They have the credits. And the humans? If you can pay for it, they'll never discriminate. All they cared about is if you have the money.
And by the Queen, Ghen and Tilik will endeavor to amass as much credits as physically possible.
The rest of the night faded into a blur. A blur that evokes only one thing. Bliss. It was only when he walked through the door of his pathetic hut that Ghen's mind snapped back to focus. His mandibles felt sticky. And he felt a weight in his stomach. How much ice cream did he eat? Whatever it was, he ate such volume that the lower-section of his throax extended and rounded out, visible even under his shirt. He felt something odd in his pocket. It was a receipt. 43,000 credits for ten bowls of vanilla bean ice cream. Was that ten bowls for both of them? Or individually? Ghen didn't care. He's good for it.
Returning back to his calculator, he acted upon the decision that he had made at that eatery. He's acquiring as many books about investing and stock trading as he could find, frequent and study all the discussions and arguments presented by other like-minded individuals such as he, all to ensure he can live the good life. And he had a very good feeling Tilik was doing the exact same thing.
Well, first, the gurgling in his stomach, as well as the feeling of something rising demanded his attention. Looks like he'll need to take the night off to let his stomach get back to normal.
Three Years Later.
Ghen looked out beyond the horizon, seeing the colony that he grew up in. On the far side was where his old house was. With only a simple robe on, made from the finest silk from Earth's nation-state of China, he relaxed in his seat.
It was a long road. Stockpiling credits from pre-existing investments and from subsequent pays, he and Tilik made it. From having only half a million in assets and cash, now transformed to over eight-hundred million. And now, his call contracts on American Interstellar? They've just announced a breakthrough in their next generation of warp drives, reducing the speed coefficient even further, resulting in far faster travel. And with that, their stock price climbed sharply.
Another hundred million credits in the bank. Soon, very soon, he and Tilik are about to become the galaxy's first zazk billionares. But that's not enough. There are many humans who are billionares. Only those he can count on one hand are considered trillionares. He's going to break into that circle. He and Tilik.
Looking beyond the colony, he saw the abandoned building of the workplace he transferred to when the humans arrived. Turns out, the reason for such a high demand was that the humans also slipped in sugar to the tap water. As soon as that broke, many influential royal servants demanded investigations and outright banning of Terran Galactic Company's influence over the former government division. Zilia's stock price plummeted. But thanks to an advance tip from his human coordinator, Dylan, he and Tilik made a put contract. And that's where they struck gold, as the human saying goes.
Dylan warned that if they were citizens of the United Nations, they'd be investigated and convicted for insider trading. But, since they weren't, and the Collective were only just introduced to capitalism, there's no risk at all. Now the colony is going through a withdrawal phase, Zilia has been dissolved and reformed back as a government division and are currently at work re-establishing the standard, plain water delivery.
"Well, shit." Tilik muttered as he walked up to Ghen's side, taking well to human speech. "Looks like you win. American Interstellar's announcement really was a good thing. There goes a million credits. Ah well, the Royal Shipyards will make it back for me soon."
"Oh? Did they just go corporate?" Ghen asked curiously, glancing to Tilik.
"Hell yeah they did." Tilik chuckled, sitting down. "Queen and her retard servants fought it hard, but Royal Shipyards is now officially a human-style corporation. And, to a surprise to all the xenophobes in the galaxy, they're already being offered contracts for ship production. That'll raise the stock price pretty good."
"What's that human word...?" Ghen muttered, already having a reply in mind. "Dick? Yeah, calls or suck my dick, Tilik."
Tilik roared in laughter. "Already made them. Forty credits a share by this day next month."
"I have half a mind to go thirty." Ghen chuckled. "Either way, until then, I heard from Dylan that he knows a guy who knows several prime human women who happen to be into zazk."
"You're interested in women?" Tilik said as his wings fluttered. "With how often you tell me to suck you off, I'd have thought differently."
"Oh, I always thought it was you who was into men." Ghen responded dryly. "Just wanted to be a good friend, you know? Considering how you never seem to make it past, Hey sweet thing, I'm rich you know."
"Oh, go fuck yourself." Tilik countered with a little laugh. After he stopped, wings stiffened, he looked to Ghen. "So, know any royal servants we can put the squeeze on for more revenue streams?"
"I got just the one." Ghen nodded, sitting up. "Fzik. He's been fighting to control the ice cream trade. Worried it's a corrupting influence. Got done talking with the human CEO of Nestle earlier. If we clear the way, he'll know how to squeeze a little more gains in stock price when he makes the announcement."
Tilik's wings stiffened even more, signaling his approval. "Alright, time to throw some credits around, yeah?"
AN: Sorry for the period of no updates. College is starting up, lots of stuff to clear and work out. Not sure why but I just got a bug up my butt about incorporating money and the stock market into a short. Here it is. Sorry if it seems abrupt, character limit fast approaching. Let me know how you guys think about it!
submitted by SynthoStellar to HFY [link] [comments]

An excessively detailed guide on how to start shaving, and doing so discretely, based on my personal experience.

Hey dudes and dudettes, I'm an 18-year-old kinda non-binary but mostly just confused male and I recently started shaving my legs and didn't want my parents to know. I thought seeing as though there are always so many questions from people about shaving and doing stuff discretely that I'd go through EVERYTHING of note that I learnt/discovered, so that you can do it too! This is pretty excessively detailed, so I'd recommend reading over it a few times so you get a vibe for what to do and what not to do and then just do it whatever way you figure out to work for you. If anyone has questions, or any other tips they wanna add (or you just wanna point out a spelling mistake), feel free to leave a comment! If it's really personal feel free to DM me but don't DM me your dick or a request for pics, soz.

Stuff you'll NEED:

Stuff that you should really have but isn't essential:

A note

This probably shouldn't be the only thing you look at regarding how to shave. There's a whole bunch of stuff, like exfoliating and stuff like that, which I completely didn't do, which worked for me but might not for you. I'm not an expert, don't get mad at me if I say something technically not perfect. I'm trying to give practical advice to help you peeps out.

the initial clipping

If you're anything like me, your legs will be insanely hairy. You obviously can't just run a razor over hair as long as men's leg hair gets and expect it to shave anything, so you're first going to have to trim it. Girls will suggest you use scissors if your hair is too long, this is ridiculous advice, I think they just don't realise how god damn long men's leg hair is. Scissors work when you have neat little pricks, not when you have a small rainforest. You're gonna want to use something powered, like a beard trimmer, or hair clippers, or a circular saw, or I actually used a trimmer bit thing which is part of the electric razor I use on my face, and although it's small, it did the trick. You can work with what you have here. You're hopefully only going to need to do this bit once or twice, so don't worry too much about damaging the device. Depending on what you're using, you'll probably need to make sure your legs are sufficiently soaked with warm water first. I'm not quite sure if this is necessary at this point but I did it just in case, as the trimmer I used is pretty exposed, so it was cutting pretty close. If you're using something like a hair clipper with a guide on then you probably don't need to do this bit wet but it's better safe than sorry. The point of shaving wet is that it softens your hair slightly and opens your pores and some other things I forget, but if you shave real close while dry then you could get razor burn and similar ailments, which as I'll explain later are a pain in the butt (especially if that's we're you're shaving gotem). Now if you're using something as exposed as the trimmer I used then make sure you don't press too hard. The thing to remember is that electric shavers, and in fact even manual razors if used correctly, are fucking sharp, and they're going to cut whatever comes around, regardless of how much force you put into it. You might need to go over the same bit a few times, but pressing harder isn't going to help you, instead it'll leave behind slightly inflamed red marks for days, which don't hurt that much but they're obviously not good, and can probably get infected or something. You won't really feel when you give yourself one of these, and you'll only notice them come up a few minutes later, so just be careful. Once you're finished, I recommend moisturising just for good measure.
Now, when you're done and you've dried off by patting your legs dry (do not scrub them, pat them, this is how you will always dry your legs from now on), there will be a lot of hair to clean up. Like so much fucking hair. There'll be hair on the floor and the walls and the shower screen and fucking everywhere. To clean up the bulk of it will take like ten minutes on its own, but if like me you're a bit paranoid and don't want your parents to find out, I would say it'd take like 30 minutes or more, so I'd make sure you have about an hour of time to clean up. Also, something which I didn't consider until after doing it is that running a hot shower will leave condensation on the mirror and everything and make it obvious that you showered, so while it's not that conspicuous, you might wanna also have that hour buffer to let that all go away so that they don't pick up on the fact that you're having a shower whenever you're alone (or in my case going against my normal schedule of having a shower at night). You can also wipe the bathroom mirror or whatevs with a towel if you're worried but make sure it's not a towel you mopped your hair up with like the one my idiot ass used.
Anyway, after you've trimmed, you'll probably (read: definitely) have missed a few spots. It's hard to see if you've missed a bit when you're dealing with so much hair and it's all wet and sticking to your body. I would dry off and wait a day or so, checking your legs out for missed spots, then go again. Eventually you'll have prickly cactus legs but they're manageable, and it's a base that you can use a razor with.
If you have limited alone time and you don't have any discrete way of shaving (e.g. by using a manual non-electric razor in your normal showers) then you can leave your legs just trimmed as they are for a while (a week and a bit, I would think) before you go back in the danger zone and do the next step, so feel free to take a break here.

actually shaving

Oh hell yeah we're up to actually shaving. You'll need any razor. Literally any. Men's, women's, manual, electric, whatever, it'll work great. I personally would recommend going for something not powered which therefore doesn't make noise, as you can then shave in your normal showers without outing yourself. Also as I mentioned before, many women prefer to use men's razors so don't worry. If you want, just use the thing you use on your face, cause that's the least suspicious thing to do. I actually went a bit cheeky and used my Mum's at first before quickly buying my own Gillette Fusion5 ProGlide (men's razor so wasn't very intimidating to buy), which seems to do pretty darn well.
Anyway so get in a warm shower. You're meant to leave it for like 15 minutes to get an absolutely perfect shave, but you can get perfect over time, for now just make sure you're decently warm before you start shaving. If you have it, you should put shaving cream on your legs now (or conditioner apparently works pretty well too so that's actually what I used initially EDIT:, but I found that it wasn't quite enough and I still ended up with the red spots of doom, so maybe try something a bit better). It doesn't matter too much seeing as though you're already wet and warm, but it'll make your razor's job easier and depending on what you use it'll make your job easier by showing you where you've already done. It'll also reduce the risk of irritating your pores and blah blah.
Start at your ankles and work going against the grain in short, 6cmish (2 and a bit inches I think) strokes, applying basically no pressure. If you get a huge amount of irritation after this then try going with the grain next time, but going against it is obviously more convenient to do standing in the shower, and will give a closer shave. I recommend working in a circle around the circumference of your leg and then moving up a bit but do whatever works. Over time you'll develop a less robotic technique, but this is a great way to start. I know some girls that do big strokes all the way from their ankles up to their thighs and while that might work with more consistently shaved hair, you probably can't do it on your first shave. Definitely try to overlap slightly, like as you go up the leg start your strokes lower than where you're up to so that half of each stroke is covering the area you've already shaved or something like that. It's pretty hard to see hairs when you're in a shower and bending over awkwardly to reach your legs so try and keep track. I find that feeling for prickly areas is the best way to find where you've missed. Your knees and ankles will be the easiest areas to cut yourself on so watch out with them. Don't forget to do the back of your legs, especially the inner of your knee. Other easy spots to miss include your knees, inner thighs, and if you're a bit lean like myself, the valley between the bone and back muscle on the inside edge of your shins (hard to explain but you'll get it if you get it). There's nothing wrong with taking it slow so take as long as you need. Once you've done both legs, apply moisturiser (if you wanna be extra good then apply one which you can put on dry after you've gotten out of the shower). EDIT: there's no such thing as too much moisturiser, and if you start having issues like red dots and shit then not moisturising properly is a decent culprit. END EDIT. When you dry your legs remember to just pat them down.
After shaving you'll find a few things. One is that you probably will have gotten a bit too eager and cut yourself in a few places. It won't hurt, and you probably won't notice until a while after you've done it or even not until you're out of the shower, but holy shit some areas will bleed like mad. I got a cut on my knee that just pissed blood for like 45 minutes. Now, you could bandaid these areas, and that's not a bad idea, but I was worried that would lead to scabbing, so I lightly patted the blood off of them every now and again. You'll adjust to the ideal force and cutting angle over time, so don't worry, cuts will become rare. For me it took about three shaves to get to something decent, the first time I over-did it and cut myself a heap, the second time I under-did it and ended up doing effectively nothing, and the third time I got it just about right, and then I upgraded razor and cut myself again oops. I think it's one of those things where your brain adjusts over time without you even thinking about it.
Anyway, as well as cutting yourself, you'll likely find that you've missed a bunch of areas. For me I found that some areas, like on my shins and around my ankles, there were like about half a dozen scattered hairs which the razor missed in an otherwise smooth area. These I found easy to just pluck out with a pair of tweezers. This sounds like it'd be painful, but weirdly I found that especially after a warm shower, it didn't really hurt at all, and I could actually remove hairs by pulling really slowly and they came out with almost no pain. I also used this on the few little hairs that have grown on my feet. This might be different for your hair though so YMMV. There'll be other areas where there are a lot of quite long hairs, and for these areas you can choose whether you cut them with scissors or whatever or run over them again with whatever powered thing you used for the initial shave.
Finally, if you're like me, you won't get as happy about having shaved legs as you'd think you would. I found that while I didn't get super gushy about them after the initial few minutes, I found that looking at them made me go "yep those are my legs" instead of making me feel uncomfortable or as though they were ugly or didn't belong to me. I definitely don't regret it, it's just I'm not ecstatically euphoric, just no longer dysphoric (which I guess counts as being euphoric but whatever). I also found that it made me want more (or less, in terms of hair). I spent a touch over half an hour manually tending to the hair on my feet using the tweezers and scissors of a Swiss Army Knife, but then I looked at myself naked and realised that I also wanted to shave my butt and dick hair, which is a separate exercise I haven't gotten to yet (although I'm probably just going to repeat a similar process to what I suggested here albeit a bit more gingerly around my privates). The fact is though that I feel better about myself, and that's great. The big bit for me is done; the part of my bottom half that people will see now represents me in the way that I want it to. But now it's more about how I want to see myself, and that's kind of comforting in a way, cause it shows I'm not faking this shit for attention or anything.
Anyway yeah, now just shave your legs with a razor every now and then and you'll be good! Don't shave every day, at absolute most shave every second day. Try and leave it for a few days though if you can. I definitely shaved every second day for a little bit when I first started just so I could hone in on the little missed spots and stuff like that, but once you get going don't feel like you have to have ultra smooth legs every second of every day. Even if you go around wearing shorts/a skirt every day people probably won't notice two or three days of stubble unless they get creepily close for strangers. And if they're your friends and they're complaining about three day stubble then you should probably try and get better friends especially considering how big of a deal it is to do this stuff in the first place as men. Just remember that you're looking way closer than anyone else is going to, so if you can see lots of tiny little black stubbly dots then that doesn't mean other people are going to. It doesn't always need to be as close a shave as your face cause people get way closer to your face than your legs. I think some people on this sub need to realise that they don't need to be 100% perfect with everything to look 100% perfect.
Anyway yeah that's my immensely detailed guide to shaving your legs as a man living at home. Hope it helps some people.
EDIT:
If you get red spots of badness, here are some suggestions. Also if you wanna be real careful, do these things regardless, at worst it'll be a better shave. - start using shaving cream if you aren't already - use better moisturiser if you're using something a bit dodge for moisturising. - exfoliate your legs before shaving them, this means get a loofah/facewasher and shove some soap on and then scrub your legs.
And if that still doesn't work then here are some more inconvenient methods that might work - moisturise your legs regularly - shave with the grain instead of against the grain (this won't be as close a shave but it's better for avoiding ingrown hairs)
In the case you do get the horrible rednesses, moisturise moisturise moisturise. It'll make it sting less, it'll make it look better, and it'll reduce the potential damage. I recommend doing it after drying off at the end of an unsuccesful shave in the shower but any time is a good time.
A further edit:
You might be wondering about other options, like waxing, using an epilator, and hair removal cream. While these are all great options which could get you a far better shave which lasts longer and is easier to do, there are a couple of problems to consider. First off, none of the methods I just listed are easy to do in secret. By contrast, not only is owning a razor is a perfectly normal thing for a man, you probably already have everything you need in your house, and even if you are hiding everything to do with it, it won't take up much space or be particularly conspicuous, because even the creams associated with shaving are used for a vast variety of non-gendered purposes. Also, shaving with a manual razor is basically silent in the shower, and you can easily ditch half-way through a shave. Shaving is also relatively speaking very quick, it obviously will add a bit of time to your showers, but it's not like an hour long process. Another good thing about shaving is that it's basically the default, and most women either shave or have shaved in the past, so you can easily find advice online or ask your girl friends if you need a hand. It's also fairly affordable, even if it isn't the cheapest option out there.
You have options, definitely, but I personally think that shaving is the most realistic hair removal option to do discretely, and that arguably outweighs the difficulty and occasional frustration that comes with it.
submitted by ThatBrandThrowaway to feminineboys [link] [comments]

Yandere Simulator Reimagined-Part 1

Here's what I came up with for the main gameplay for a reimagined Yandere Simulator:
A good majority of the gameplay is still there, with some changes.
All of the elimination methods are present, but with the matchmaking method, you have the option to matchmake the current rival with a male, female, or non-binary student.
Certain clubs will only become available as the weeks go on (i.e- the Cooking Club becoming available on week 2, Drama Club available on week 3, etc.)
There will be no SNAP Mode.
Some Easter Eggs will remain, but only a certain few.
There are no panty shots or lewd photos. The “panty buff” feature will be replaced with “accessory buffs”. Yan-chan will be given the option of different hair clips, hair bows, bracelets, necklaces, etc. These accessories will each give different bonuses.
The reputation meter mechanic stays the same, but since there are no panty shots/lewd photos, the “camera” related act of ruining reputation is aiming a camera repeatedly at an NPC.
Schemes in the original are really just holding the player’s hand in an already confusing game design. Instead, Yandere-chan can come up with “plans” by listening in on NPC conversations, or through manga or anime.
All of the Drops that Info-chan provides in the original game will only be available in the town shops.
Yan-chan will be able to interact with Senpai, having friendly conversations with him and giving him gifts. Him damaging the reputation meter only occurs when he catches Yan-chan doing something dangerous in front of him.
Planting bugs will be present, somewhat, as they will only be used to find out secrets about the rivals/faculty.
If you have any other ideas you want to give me, go for it!
submitted by celestialVocalist to Osana [link] [comments]

Choose Your Own Adventure - Part 2

Part 1

What if it wasn’t about anything related to the text? What if it was similar to the riddles that brought me to those pages? What if the mystery behind them was related to their page numbers, or hell the page numbers in general?
Once at home I went to work. I told myself once more that I needed to get the full picture. So I went to write down all the page numbers in the book, one after another.
When I was done, I took a step back and stared at the result. Yet, there was nothing that stood out to me right away. I haphazardly picked one of the secret pages. Page 427 was in front of page 811. Then I continued.
811, 812, 813, 814, 815, 816, 817, 818, 818, 820, 821, and right after was yet another secret page.
This one was page 528.
And after that, the regular page numbers continued.
822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, followed by another one, page 143.
This list of ongoing numbers made me suddenly wonder. My thoughts drifted right back to what had gotten me to do this, the secret pages.
What if they weren’t placed randomly?
Yet, as I checked their distribution, it felt almost too random. I checked the number of regular pages before and after, put them in sequence, but there was no correlation.
Then I got another idea. I added up all the pages before and after, but this also made no sense. Half the results were too big and exceeded the total number of pages in the book, by far.
Then, starting at number 111 to 137, which I’d just added together, I got yet another idea. What if I only added together their last digits?
The result I came up with was 648. Which was exactly the secret page that followed afterward!
My eyes grew wide. I’d had it, hadn’t I? The hint I’d been looking for! I was going livid.
Right away I went to the next one and calculated all the preceding numbers, only to come up with an entirely different result than the page number of the secret page following. Cursing I got up.
It had been another goddamn coincidence. I laughed, but this time in abject misery, mocking my stupidity. How’d it be so damned easy, you idiot? There was no way. None of this was easy. None of it!
But as I stared at the result I’d come up with just now, I noticed something. The result of my calculation was 702. The page number was 351. Wait. Wait. Wait. That’s half of 702! Maybe it really was nothing but a coincidence and I was just grasping at straws, but what else was I to do?
The next result I came up with was 176. If I multiplied it by three, it gave me the page number of the secret page that followed it, 528. The number 715, divided by 5, gave me the page number 143 that followed it.
I continued adding, dividing, and multiplying and it all checked out. All the page numbers of the secret pages resulted from calculations of the last two digits of their preceding pages.
What does it mean though? Does it even mean anything? The exhilaration I’d felt ebbed away, and I sat there, staring at all my calculations wondering if there was any meaning to it. Yet, there had to be, right? This couldn’t have been designed as yet another red herring. This was too damned complex. No, there had to be a reason for this.
What if there was an order? If I went through all the calculations I quickly noticed that the result was never divided by the same number. The highest number that a result was divided by was 26, the highest a result was multiplied by was 27. It was exactly 53 different calculations.
With that, I started ordering them, one by one, starting backward from the highest division, to the highest multiplication. Then I put the topic of each page behind the numbers in the resulting list.
I’d hoped for something. I’d hoped to find it starting with the page about the universe, followed by constellations and stars up to the evolution of apes, plants, and other animals. Yet, it was all mixed-up nonsense. There was no order to it at all! Even when I ordered them in other ways, trying to find any sort of correlation, it was always the same. Nothing, but nonsense.
My hands started shaking as anger flooded through me. I crumbled up the stupid, ordered lists and threw them across the room. Then I cursed in sheer and utter rage. This was freaking stupid. This was insane! This was nothing at all, just pure fucking nonsense. I picked up a random object on my table and hurled it against the wall where it shattered into pieces. Then I threw aside a chair I found standing in my way and kicked over the small couch table, creating general chaos in my living room.
I was stopped from going any further when my neighbors banged against the wall, screaming to knock it off and threatening to call the cops.
That made me stop. The anger went away. I stared in shock at my living room. What the hell was happening to me? Why’d I done that? Why’d I destroyed my things at 1 am in the freaking morning?
Then I slowly smoothed out the lists I’d created and put them on one of the few free spots remaining on my living room wall. Who knows, I might need it later.
I laughed as I looked from them to the rest of the wall which was now entirely covered. Even worse were the stacks of notes that had accumulated in front of them. I was proud all right, but I also knew that this thing was absolutely insane.
Once more, I couldn’t help but wonder what I was doing.
Shaking my head, I turned around and made my way to the bedroom. Yet, as my fingers rested on the light switch, I turned around one last time. I stared at the mad lines, the mad paths who were connecting here and there. There was nothing but lines upon lines. Here and there, if I looked hard and long enough, I could almost make out shapes.
I froze. What if it was a visual puzzle? What if there was a hint hidden in the shapes of the paths?
For days I sat down, drew points and lines and connections, warping them into surreal shapes. This was crazy, wasn’t it? How’d it be visual? There’s probably not a damn thing to be got from this. This was stupid. Yet, I couldn’t stop. Each day, I spent my entire afternoon, my evening, and even half the night, drawing. And eventually, it all came to nothing. There was nothing but mad lines and not a clear shape in sight.
I didn’t give up though, wasn’t discouraged. I was beyond that, far beyond that. What if there was something else? Maybe there was a hidden code between these pages?
When I was at work, I’d completely forgotten about my former vow not to talk about the book or do anything related to it. Instead, I read up on cryptography. Going through article after article. I read up on Caesar Code and Binary Code, on the Polybius Cipher and Hex Code. I went mad with it. Before long I spent more time reading up on things than doing any of my work. Eventually, I even brought pages filled with numbers with me, cross-checking them for hits of any and all codes.
I heard co-workers whispering behind my back, asking me what I was doing and I told them, I just hadn’t closed the weird articles after break time.
They knew it wasn’t the truth. They’d heard me mumble, saw the little notebook I was writing in, noticed the endless lists of numbers I brought with me each day.
My superior eventually came up to me. He asked me what I was doing with all those weird pages. I told him it was nothing but a little puzzle.
“Well, Todd,” he started in a condescending voice. “You’re not here to do any of those ‘little puzzles’, you’re here to do your damn job. Where are the calculations for this month? I’ve been waiting for them all day.”
“Oh, I guess, I’m almost done with them, I just need another hour or-“
My voice trailed off when he picked up one of the pages I’d been looking at mere minutes ago. Suddenly, when I saw him holding it, I felt nervous.
“What even is this? It’s just random numbers.”
He saw my face, saw the way my eyes grew wide when he’d picked it up. The hint of a smile washed over his face as he crumbled it up.
He opened his mouth for another remark, but before he could I jumped up from my chair and ripped the page from his hand. He cringed back a step in shock at my reaction.
“The hell’s wrong with you?” he screamed at me, but I didn’t listen. Instead, I carefully smoothed out the paper and made sure he hadn’t torn it apart.
By now half the office had gotten up to watch the weird exchange. Only now did I realize what I’d done and how everyone was staring at me.
Suddenly I felt very watched and almost sunk back into my chair.
“Sorry, I didn’t mean to,” I mumbled but broke up under the pressure of all those eyes.
“Get back to work and finish those damned calculations! If I see you tinkering with any of this shit again, you can clean out your desk!”
With that, he stormed off. I heard people whispering all around me, some laughing, others speaking in a more reserved tone.
Yep, I thought, it’s official. I’m the office nutjob.
Right away, I forced myself to close all the Wikipedia articles I had still open and put away all my notes. And then, grudgingly, annoyed and half-mad at the distraction it represented, I went back to work. Somehow though, it felt meaningless, calculating all these stupid orders and filling out this customer database. What the hell was I even doing? What if it really was a code? What if it was actually a mixture, a double-code? My mind went wild with ideas. Five minutes later, I found myself holding one of my notes again. I couldn’t even remember taking it out.
Pushing it back, cursing, and not a little afraid, I forced myself to work calculations until the day was over. At the moment my shift ended, I jumped off my chair and rushed for the door. People stared at me, looked after me, their faces a mixture of amusement and worry.
I didn’t care. I had work to do. The important kind of work!
I’d just tried to find another connection between the page numbers of the secret pages when my doorbell rang. I ignored it, but it just kept ringing. When it finally stopped, I sighed in relief. Just leave me alone, I cursed, I’ve got work to do.
Then, mere moments later, my phone vibrated on the other end of the room. Dammit, I’d forgotten to mute it again. I waited for it to stop, but it started up right away. Cursing I went over to see who it was and noticed the name instantly.
It was my friend Andrew. Annoyed, I answered it.
“Yo, Todd, you home?” I heard his voice from the phone next to my ear and more distant, muffled from the front door.
My first reaction was one of annoyance. Then I pushed the thought away. What the hell was wrong with me? This was Andrew. He was my best friend, the only one of our old group who still lived in the same city. Right away, I thought about how long I’d last seen him. Surprised I realized that it must’ve been weeks. One glance at the mad mess in my living room told me why.
“Yeah, sure hold on,” I said over the phone and made my way to the front door.
Andrew smiled at me brightly and held up to six-packs.
“Haven’t seen you in forever, how about we have a few! I got quite the story for you, my man!”
I smiled at him. “Sure, come on in.”
We made our way inside and Andrew had barely set foot into my living room when he stopped. His eyes grew wide as he stared at the wall and the stacks of paper all over the place.
“Holy shit man. I was wondering why I haven’t heard from you. The hell’s all that? You working on some sort of project?”
“Kind of,” I mumbled a little embarrassed.
I quickly picked up the papers on the couch and put them aside to make room for him to sit.
“Sorry about the mess.”
“Nah man, it’s all right. So, the thing I was about to tell you, you remember Thomas, right?”
Thomas, I thought. Did I know a Thomas? Then I remembered him. Of course, I remembered him, he’d been part of our group. I rubbed my temples for a second before I nodded.
“He’s getting married and you won’t believe who the lucky girl is!”
With that, Andrew told me the entire story of how our friend Thomas had been dating Susan, Andrew’s cousin for the past three months, and the two of them had decided to get married. I listened, nodded here and there, even laughed a few times absentmindedly, but my eyes wandered to my notes again and again.
For a moment I spaced out entirely, thinking about an idea that had popped into my mind just before he’d arrived. What if there was something about number sequences? I must’ve sat there for an entire minute, simply holding my beer and staring off at nothing when Andrew waved his hand in front of my face.
“Yo, dude, you listening?”
“What? Oh, sorry, no, I think I spaced out for a moment.”
“All right, man, I got to ask, what’s all this? What sort of crazy thing are you working on? Haven’t seen you this into something in years.”
I smiled at him awkwardly and then sighed and pointed at the book.
“It’s one of those Choose Your Own Adventure books,” I started.
With that, the flood gates broke open, and I told him all about it.
He listened, at first curiously, but after a while, his face changed. There was visible concern, as I rambled on about secret pages, strange objects, and cryptography.
“Todd, hold on, hold on, what the hell are you even talking about?”
I stared at him.
“The book. You know those secret pages must’ve some sort of meaning. At first, I thought there was a simple order to them, but it was too chaotic. If you add up all their page numbers though, you get 20670, and if you divided this up by-“
“All right, man, stop,” he cut me off. “So you’re adding up all those numbers, I get that, but for what?”
I began explaining again, I tried, but he couldn’t follow me.
“Yeah, I don’t get it, man. Just, what the fuck?”
“All right, look,” I said and walked over to the wall covered in lines and numbers and started once more.
I told him about the different adventure paths, the references, the secret pages, and when and how they appeared.
His face was blank as I rambled on and on and on.
“Yo, dude, you might want to take a bit of a break, this sounds, well, a bit crazy.”
For a moment I was quiet, then a short, nervous laugh escaped me.
“Yeah, I guess you’re right.”
He stepped up next to me, staring at the wall.
“Shit man, you did all this? Just for a damned book?”
Before I could answer, he reached out and was about to take one of the pages off the wall. My hand shot forward instinctively, batting his aside.
“Don’t touch it!” I called out before I realized what I’d done.
Andrew stumbled back a few steps, shocked. “Shit man, sorry, I didn’t mean to-“
And then it happened. I didn’t even listen to his words anymore as he bumped against some of the stacks of notes I’d placed neatly in front of the wall. They toppled over one another, the pages scattering all over the floor and intermixing.
My eyes grew wide. Oh god, no, freaking god no. Anger rose in me. It had taken me so goddamn long to sort them all out, to order them. There was a freaking method to it all and now he’d destroyed it. He’d destroyed the work of entire fucking days!
“What the fuck are you doing?” I screamed at him.
He cringed back, only now realizing what had happened.
“Hey, didn’t mean to,” he said and began picking up random pages.
I ripped them from his hand and pushed him back. “No, don’t fucking touch them. Those two don’t belong together you idiot! Are you freaking insane?!”
With an empty face, he watched as I gathered up some of the pages, stared at them, and began sorting them as best as I could.
“You know, Todd, that’s what I should ask you.”
“What the hell do you mean?” I snapped at him. “You destroyed the work of days! Days! This is-“
“This is what, man?” he cut me off once more. “It’s nonsense. It’s a freaking children’s book, nothing else.”
That did the trick. I got up and stepped up right in front of him.
“Nonsense? You’ve got no FUCKING idea, how far I’ve come! You’ve got no clue what’ve done already! And here you are telling me this is NONSENSE?”
His face had grown hard. For a second he was about to say something, but then he simply shook his head and laughed. Without another word, he picked up his things, the beer, and left.
If he said any words in parting, I didn’t hear them. I was already busy re-ordering my notes.
It was hours later, when I was done sorting them all out, that I realized what I’d done and how I’d acted.
For the first time, I grew truly scared.
That hadn’t been normal. That wasn’t me. Why’d I gone crazy like this?
I took first one step back from the wall, then another before I went to pick up my phone. When I tried to call Andrew, he didn’t pick up. Instead, the call went straight to voice mail. Then I saw how late it was, long past three in the morning.
I wrote him a quick message, apologized for my behavior, and told him he was right. I should take a break from this entire thing.
That’s what I did right away. I picked up my laptop, made my way to the bedroom, and this time I turned off the light without looking over my shoulder.
I lay down on my bed and started browsing YouTube and told myself to just enjoy it and take a break.
Yet, even as I watched video after video, the little voice in the back of my head spoke up again. It told me I should go on, told me to go back to the living room.
You almost had it, Todd, you almost had it. Just one more hint and you’re done with it. Then you can let it go and you can-
“Shut up, goddamnit!” I screamed at myself to quiet the subconscious voice in the back of my head.
“I freaking know,” I said quieter. “God, I freaking know.”
I sat in bed, the video that was playing already forgotten. As video, after video played, I was on my phone, checking stars and numbers before I eventually drifted off to sleep.
The next morning I didn’t even get to make myself a coffee. I was mad, pissed off and I wanted to finally make progress. For a while, I tinkered about the various codes I’d read about. What if there was a code, but what but if it concerned the entire book and not just the secret pages? What if it was related to the adventure after all? Maybe you could scramble up page numbers and-
I stopped and rubbed my temples. Calm down, don’t go crazy. Calm down and take a step back. You don’t even know if there are any damned codes hidden in the book. You did well deciphering all the different adventure paths and the connections between them. You did well discovering all the secret pages. But what if there’s something you haven’t discovered yet?
That was the question that told me what I had to do. Something I hadn’t dared to do so far.
I had to go through the entire book.
I had to make my way through it not following the adventure, but going page by page and look out for anything new. There might be chapters I hadn’t discovered yet, hadn’t read yet.
With newfound energy and a new plan, I started right away.
My phone rang shortly after noon, but this time, I didn’t even bother with it. I just ignored it. After all, I had more important things to do.
This time I didn’t just write down chapters, choices, and connections. This time I wrote down every single thing that came up. I took note of every single object that was mentioned then added the page number, the corresponding path, and any reference I knew about it.
It was a momentous task. I spent the entire day doing it and barely made it through the first 130 pages.
The next day, Sunday, I didn’t even finish another hundred. The further I came, the more objects I noticed, the more combinations, and references. At times, I even had to go back, to cross-check things, and to change notes accordingly.
It was the most enduring task I’d ever attempted, concerning this damned book and probably my entire life.
It took me weeks. I finished stacks upon stacks of notes. I went to the office supply store multiple times a week buying stacks of papers I ended up filling by the day.
Work during this time was barely an afterthought. I was barely functioning at all. I was typing in numbers and names almost on autopilot. By now I didn’t even get stares anymore. I was entirely ignored, a shell of a man, a ghost that stumbled to his cubicle in the morning and rushed back home in the evening.
Days went by, then weeks, as I slaved away over the book’s many pages. Until one day, when I was finally done. I can’t even say how many weeks I’d been at it.
There were stacks of hundreds of papers, maybe even more. Notes, references, objects, names, words, anything basically.
I’d just created a table of how often each and every single object appeared and in which setting when I noticed a new hint. I stared at it with a giant grin on my face.
The Ruby Orb had been the very first object I’d added to the table.
It appeared in all paths:
  1. Fantasy - 31 times
  2. Space - 3 times
  3. Stone Age - 2 times
  4. Ocean and Pirates - 11 times
  5. Desert Ruins - 29 times
  6. Mountains - 17 times
  7. City-State - 7 times
  8. Ancient Rome - 5 times
  9. Jungle Tribes - 13 times
  10. Small Village - 19 times
  11. Underwater Civilization - 23 times
As I wrote those numbers down, there was something about them. Somehow I knew those numbers. I went over them, staring at them for a while before it hit me.
I cross-checked it online, and I was right. They were all prime numbers! Yes, I thought, I’d found something new!
I quickly rechecked another object, the Desert Orb, and realized it was the same here, too. This one’s appearances made up a simpler sequence. It only appeared once in the city-state, twice in fantasy, and finally 11 times in the desert ruins.
I couldn’t help but grin. I did it for another object, this one the Ebony Stick. It too appeared in all paths and its number was increased by two, starting at 4 and going up to 26.
That’s when I knew what I had to do. I had to go through all the objects, all the hundreds of objects in the damned book, and check how often they appeared. There was a correlation, another part of the puzzle. I was exhilarated, in a state of glee and unbound excitement.
These number sequences, maybe they were the key to figuring out what the secret pages meant, or maybe the page numbers in general. I started laughing. I could feel it, I was so damn close.
I slept when necessary, ate when necessary, right there on the living room floor. It was only once that I thought about work, only in passing, and the idea that I should go never even came to my mind.
My phone was at the other and of the room. I ignored it entirely during that time. It wasn’t important. This right here, that’s what was important.
I was done by the end of the week. It was long past midnight on Saturday when I’d finally deciphered the number sequences of all 311 objects in the book.
When I was done with my work, I looked at the tables of objects in a state of awe. I spread them out in front of me and marveled at the dozen or so pages. For a moment I was about to dive into them when I realized how tired I was.
For the first time since the beginning of the week, I picked up my phone. It was off, must’ve been for days. I connected it to the charger and turned it on. I was bombarded with a plethora of notifications. For almost a minute the damned thing started ringing and vibrating.
There were a few messages from Andrew, asking how I was doing and if I’d stopped with my damned obsession yet. I laughed and closed the chat.
I’d also received countless emails. Most of them were from work and only now did I remember that I hadn’t shown up for an entire week. They started normal enough, reminding me to call if I was sick, became reproachful after a day or two, and finally angry. The last one told me this was the last straw. I should come in on Monday for a talk and be prepared to clean out my desk.
It was strange how little I felt about it, how little it mattered in the grander scale of things. I almost laughed again as I threw the phone aside and laid down to catch some sleep.
When I woke up, I went right back to work. I tinkered with the number sequences, looked at each one of them, added them up, multiplied, and divided them.
It was the Crown of Ice that finally made me look up. When I added all its appearances together, I came to a total of 1000. This damned thing, I thought, it was by far the most common object in the damned book.
I started to read up on it in my notes. It was said in the Manuscript of the Seven Seas, that the Crown of Ice was found in the Crypt of the Dragon. The Crypt of the Dragon was located in the desert ruins.
I went back to it, page 1544, and read the part again. There were three choices. One sent me to leave without the crown and sent me back to a desert tribe. Destroying the crown ended in painful death while the third option was wearing it.
All right, wearing the crown opened a secret passage that sent me to the location of the Magic Water and from there back on my way through the desert.
Dammit, I thought I had something! I was about to go back to the list. Maybe the number thousand was another coincidence.
Then something made me look up. The crown appeared in the desert ruins a total of 53 times. I thought about it. The desert ruins one was by far the shortest path. How long was it in total again?
I stepped up to my living room wall and counted the chapters. When I followed them, there was only a single path that was longer than 50. It came to a total length of 78 chapters before it started from the beginning.
Chapter 53 described what you found if you opened a chest hidden in the Ancient Pyramid.
I read the entire chapter again. It was titled ‘The Treasure Chest.’ There was a total of 289 gold coins in the chest. When I went back to the list of objects, I noticed that the gold coin was mentioned a total of 289 times. The same was true for the sparkling diamonds. There were a total of 33 in the chest and the object itself came up 33 times in the book.
I almost laughed when I noticed that it was true for the third object in the chest as well.
I got an empty page and like a child, I wrote the words Chest, Pyramid, and Treasure in huge letters at the top of it before I went and added all the two dozen objects in the chest.
While I did it, I wondered if there was something like this for every other object in the book. What if every object’s number of appearances was mentioned somewhere in the book? Not just in this chest, but just somewhere.
And then, on a whim, I asked myself another question. What if certain objects didn’t? What if there were just a few or maybe just one whose number was mentioned nowhere? Maybe those were the important ones!
For the entirety of Sunday, I followed through with this idea. I calculated, I added objects to yet more lists, I followed through paths and loops, studied my notes, and slowly, the number of objects remaining got smaller and smaller.
Eventually, just as I’d hoped, there was a single object whose total number of appearances was mentioned nowhere. It was a small, red die. One that was mentioned here and there, only in passing when people played a game of dice in bars or the streets.
There had to be something to this damned thing, I knew it! After this entire week, no after all these entire months, I finally had something, I’d finally narrowed it all down to a single object.
A shiver went down my spine when I realized that this might be it. This might be the solution that I’d been searching for all this time!
I went back to my notes about the red die and all its appearances. Here a few kids were playing with it in the streets, there was someone holding it in their hand, and here it rolled onto the floor when a fight broke out.
Finally, I found what I’d been looking for. There was only a single instance in the entire book where you could interact with it. It was in a bar in space where you could join a futuristic game of dice.
When the game was done, you could pocket the red die.
The short chapter that followed it was mundane and almost unimportant. But when I read it, I noticed something else, not in the text, but the choices below. Weren’t they the same as in the chapter before?
I went back to the preceding page and reread it. Yes, the same two choices, sending you to the same two pages. Almost as if picking up the die didn’t matter at all. Making it appear as nothing but a red herring.
And I grinned. I grinned wider than I had ever before.
There had to be a hint here, no, there had to be a way of finishing this entire damn thing.
I wrote down the entire paragraph and went back to work, studying it. I checked everything that was mentioned in it: the page number, the chapter title, colors, words, anything I could think of. Until late in the morning hours, I pondered over this one, single paragraph.
I could barely keep my eyes open when I stumbled upon it. It was silly, but I exploded with joy and was suddenly wide awake again.
The number of words in each sentence was eight. The number of sentences was eight as well. There were eight sentences here, with eight words each. This was no coincidence. This was it, the total number of words was 64, the square number of eight. There was too much here for it to be a coincidence.
I rushed back to the buck, almost stumbled over my feet, and threw open page 64. Like a crazed, starved animal I poured over the words on the page, almost pressing my face against it. The chapters, there had to be something here, the solution had to be right in front of me.
Yet when I was done reading it, I was dumbfounded. The entire page comprised a single chapter, a chapter I knew damn well. And I realized that I knew the number 64 damn well, too.
I was at the beginning of the fantasy setting. I read once more that I was a young farmer, standing in front of a burned down far, the bodies of his dead parents next to him and that I was about to set out on a grand adventure.
For the next three hours, I analyzed every single word in the paragraph, every single one and I found as many hints as I could search for. I went back to the die paragraph and slowly I came to another conclusion and then another. The number of certain letters corresponded with the number of other objects in the space path. If you put certain letters from certain words together you ended up with yet another number. I followed every single one of them, but each one ended at another mundane position in the book. I slaved away over those as well, reached and analyzed them and I found more hints, more connections, more clues. And the longer and the more deeply I analyzed them, the more I could find, if only I wanted to. There was almost an endless number of nonsensical clues and hints if you wanted so. They were all leading me on, leading me around in a circle, on and on and on and on.
And I sat there, over the damned book, over hundreds, if not thousands of pages of notes. I sat in front of an entire wall covered in information and I laughed. For long, terrible minutes I couldn’t stop laughing.
This was all crazy. This was all entirely and utterly crazy.
And finally, it clicked. At this singular moment it finally and ultimately clicked.
There was no solution. The book had no solution. It finally made sense.
I’d slaved away for weeks, no for months, and all I’d done was to walk in circles, continue from one hint to another, only to be sent back to the beginning. The entire damned book was a loop, a loop of loops with secret loops that sent you to more secret loops.
And then, for the first time in months, I closed the book and put it away.
After that, I slowly went and took down all the mad pages from my wall, stacked up all the notes, and put them together in a box in an almost apathetic state.
I was done.
All of this had been utterly meaningless, a fundamental waste of time.
That night, I didn’t sleep. I lay in bed, contemplating a lot of things. My life, my work, the book, and why I’d been so taken by it. Yet, as with the book, there was no solution. There was nothing to it all.
The next day, with the book in my backpack, I made my way back to the store.
It felt as heavy as the world, an endless number of possibilities all resting on my back.
I knew I had to return it, I had to get rid of it before it might throw me into another crazy fit.
When I entered the store, the old man looked up.
“Can I help you with,” he started but broke up, a surprised look on his face.
“Well hello there, young man. Haven’t seen you in quite a while.”
I only nodded, took down my backpack, heaved out the book, and brought it to a rest in front of him.
“I’d like to return this.”
The old man probed me for a moment.
“We’ve got a no-money-back policy,” he said and pointed at a small, almost illegible sign behind himself.
“Yeah, that’s fine, I just want to get rid of it. I’m done with it.”
“So, you got your reward then?”
I couldn’t help but laugh a little. “Guess so.”
“What was it?” the old man asked curiously.
“It’s meaningless, there’s no end to it. It just goes on forever.”
“Oh,” he mouthed with an expression of surprise.
“You ever tried it yourself, old man?”
“Did once, when I was younger, but I got nowhere. Was too damned hard for me.”
“There’s one thing I’m wondering about. Who the hell wrote a thing like this? I mean, it’s freaking insane. How’d’you ever write something like this?”
“Well, to tell you the truth, there’s something I didn’t tell you when you first came in. I originally bought the book from a street merchant, half a century ago. He told me a few things, and I learned a few more over the years from other people.”
“Like what?”
“There’s nothing but rumors of course. The merchant told me it was written by the Devil himself. Then someone told me it was supposedly written by Machiavelli back in the day, to confuse a man who’d wronged him and drive him mad. There was also a guy who was convinced it was the work of aliens. The most plausible thing I heard is that there’s no single author, but that it was written over the course of centuries, with each new writer adding to it and extending it, making it better and ever more complicated.”
“Heh, sounds about-“ I started, but the old man raised a hand and pushed his head forward, towards me.
“There’s one more. Someone else told me it was written by no other than God himself as a big, giant joke about our earthly existence itself.”
I laughed, but it was a weak laugh. Nothing but a giant joke, that fit it damn well, didn’t it?
And as I stepped out of the store and stared at the city surrounding me, watching the urban bustle, I began thinking.
People were hurrying past me, on their way to work, cars and buses rushed down the streets. As I watched it all, this ever-repeating bustle of civilization, I realized that it was all another never-ending loop. On and on and on we all went, doing the same thing over and over and over again.
And as I walked on I started laughing. Maybe that was all right and maybe it didn’t matter. Who knows, maybe the book was true.
Maybe all of this, all of life, all of existence, just like the damned book, was nothing but God’s big, giant joke.
submitted by RehnWriter to TheCrypticCompendium [link] [comments]

Red Hat OpenShift Container Platform Instruction Manual for Windows Powershell

Introduction to the manual
This manual is made to guide you step by step in setting up an OpenShift cloud environment on your own device. It will tell you what needs to be done, when it needs to be done, what you will be doing and why you will be doing it, all in one convenient manual that is made for Windows users. Although if you'd want to try it on Linux or MacOS we did add the commands necesary to get the CodeReady Containers to run on your operating system. Be warned however there are some system requirements that are necessary to run the CodeReady Containers that we will be using. These requirements are specified within chapter Minimum system requirements.
This manual is written for everyone with an interest in the Red Hat OpenShift Container Platform and has at least a basic understanding of the command line within PowerShell on Windows. Even though it is possible to use most of the manual for Linux or MacOS we will focus on how to do this within Windows.
If you follow this manual you will be able to do the following items by yourself:
● Installing the CodeReady Containers
● Updating OpenShift
● Configuring a CodeReady Container
● Configuring the DNS
● Accessing the OpenShift cluster
● Deploying the Mediawiki application
What is the OpenShift Container platform?
Red Hat OpenShift is a cloud development Platform as a Service (PaaS). It enables developers to develop and deploy their applications on a cloud infrastructure. It is based on the Kubernetes platform and is widely used by developers and IT operations worldwide. The OpenShift Container platform makes use of CodeReady Containers. CodeReady Containers are pre-configured containers that can be used for developing and testing purposes. There are also CodeReady Workspaces, these workspaces are used to provide any member of the development or IT team with a consistent, secure, and zero-configuration development environment.
The OpenShift Container Platform is widely used because it helps the programmers and developers make their application faster because of CodeReady Containers and CodeReady Workspaces and it also allows them to test their application in the same environment. One of the advantages provided by OpenShift is the efficient container orchestration. This allows for faster container provisioning, deploying and management. It does this by streamlining and automating the automation process.
What knowledge is required or recommended to proceed with the installation?
To be able to follow this manual some knowledge is mandatory, because most of the commands are done within the Command Line interface it is necessary to know how it works and how you can browse through files/folders. If you either don’t have this basic knowledge or have trouble with the basic Command Line Interface commands from PowerShell, then a cheat sheet might offer some help. We recommend the following cheat sheet for windows:
Https://www.sans.org/security-resources/sec560/windows\_command\_line\_sheet\_v1.pdf
Another option is to read through the operating system’s documentation or introduction guides. Though the documentation can be overwhelming by the sheer amount of commands.
Microsoft: https://docs.microsoft.com/en-us/windows-serveadministration/windows-commands/windows-commands
MacOS
Https://www.makeuseof.com/tag/mac-terminal-commands-cheat-sheet/
Linux
https://ubuntu.com/tutorials/command-line-for-beginners#2-a-brief-history-lesson https://www.guru99.com/linux-commands-cheat-sheet.html
http://cc.iiti.ac.in/docs/linuxcommands.pdf
Aside from the required knowledge there are also some things that can be helpful to know just to make the use of OpenShift a bit simpler. This consists of some general knowledge on PaaS like Dockers and Kubernetes.
Docker https://www.docker.com/
Kubernetes https://kubernetes.io/

System requirements

Minimum System requirements

The minimum system requirements for the Red Hat OpenShift CodeReady Containers has the following minimum hardware:
Hardware requirements
Code Ready Containers requires the following system resources:
● 4 virtual CPU’s
● 9 GB of free random-access memory
● 35 GB of storage space
● Physical CPU with Hyper-V (intel) or SVM mode (AMD) this has to be enabled in the bios
Software requirements
The minimum system requirements for the Red Hat OpenShift CodeReady Containers has the following minimum operating system requirements:
Microsoft Windows
On Microsoft Windows, the Red Hat OpenShift CodeReady Containers requires the Windows 10 Pro Fall Creators Update (version 1709) or newer. CodeReady Containers does not work on earlier versions or other editions of Microsoft Windows. Microsoft Windows 10 Home Edition is not supported.
macOS
On macOS, the Red Hat OpenShift CodeReady Containers requires macOS 10.12 Sierra or newer.
Linux
On Linux, the Red Hat OpenShift CodeReady Containers is only supported on Red Hat Enterprise Linux/CentOS 7.5 or newer and on the latest two stable Fedora releases.
When using Red Hat Enterprise Linux, the machine running CodeReady Containers must be registered with the Red Hat Customer Portal.
Ubuntu 18.04 LTS or newer and Debian 10 or newer are not officially supported and may require manual set up of the host machine.

Required additional software packages for Linux

The CodeReady Containers on Linux require the libvirt and Network Manager packages to run. Consult the following table to find the command used to install these packages for your Linux distribution:
Table 1.1 Package installation commands by distribution
Linux Distribution Installation command
Fedora Sudo dnf install NetworkManager
Red Hat Enterprise Linux/CentOS Su -c 'yum install NetworkManager'
Debian/Ubuntu Sudo apt install qemu-kvm libvirt-daemonlibvirt-daemon-system network-manage

Installation

Getting started with the installation

To install CodeReady Containers a few steps must be undertaken. Because an OpenShift account is necessary to use the application this will be the first step. An account can be made on “https://www.openshift.com/”, where you need to press login and after that select the option “Create one now”
After making an account the next step is to download the latest release of CodeReady Containers and the pulled secret on “https://cloud.redhat.com/openshift/install/crc/installer-provisioned”. Make sure to download the version corresponding to your platform and/or operating system. After downloading the right version, the contents have to be extracted from the archive to a location in your $PATH. The pulled secret should be saved because it is needed later.
The command line interface has to be opened before we can continue with the installation. For windows we will use PowerShell. All the commands we use during the installation procedure of this guide are going to be done in this command line interface unless stated otherwise. To be able to run the commands within the command line interface, use the command line interface to go to the location in your $PATH where you extracted the CodeReady zip.
If you have installed an outdated version and you wish to update, then you can delete the existing CodeReady Containers virtual machine with the $crc delete command. After deleting the container, you must replace the old crc binary with a newly downloaded binary of the latest release.
C:\Users\[username]\$PATH>crc delete 
When you have done the previous steps please confirm that the correct and up to date crc binary is in use by checking it with the $crc version command, this should provide you with the version that is currently installed.
C:\Users\[username]\$PATH>crc version 
To set up the host operating system for the CodeReady Containers virtual machine you have to run the $crc setup command. After running crc setup, crc start will create a minimal OpenShift 4 cluster in the folder where the executable is located.
C:\Users\[username]>crc setup 

Setting up CodeReady Containers

Now we need to set up the new CodeReady Containers release with the $crc setup command. This command will perform the operations necessary to run the CodeReady Containers and create the ~/.crc directory if it did not previously exist. In the process you have to supply your pulled secret, once this process is completed you have to reboot your system. When the system has restarted you can start the new CodeReady Containers virtual machine with the $crc start command. The $crc start command starts the CodeReady virtual machine and OpenShift cluster.
You cannot change the configuration of an existing CodeReady Containers virtual machine. So if you have a CodeReady Containers virtual machine and you want to make configuration changes you need to delete the virtual machine with the $crc delete command and create a new virtual machine and start that one with the configuration changes. Take note that deleting the virtual machine will also delete the data stored in the CodeReady Containers. So, to prevent data loss we recommend you save the data you wish to keep. Also keep in mind that it is not necessary to change the default configuration to start OpenShift.
C:\Users\[username]\$PATH>crc setup 
Before starting the machine, you need to keep in mind that it is not possible to make any changes to the virtual machine. For this tutorial however it is not necessary to change the configuration, if you don’t want to make any changes please continue by starting the machine with the crc start command.
C:\Users\[username]\$PATH>crc start 
\ it is possible that you will get a Nameserver error later on, if this is the case please start it with* crc start -n 1.1.1.1

Configuration

It is not is not necessary to change the default configuration and continue with this tutorial, this chapter is here for those that wish to do so and know what they are doing. However, for MacOS and Linux it is necessary to change the dns settings.

Configuring the CodeReady Containers

To start the configuration of the CodeReady Containers use the command crc config. This command allows you to configure the crc binary and the CodeReady virtual machine. The command has some requirements before it’s able to configure. This requirement is a subcommand, the available subcommands for this binary and virtual machine are:
get, this command allows you to see the values of a configurable property
set/unset, this command can be used for 2 things. To display the names of, or to set and/or unset values of several options and parameters. These parameters being:
○ Shell options
○ Shell attributes
○ Positional parameters
view, this command starts the configuration in read-only mode.
These commands need to operate on named configurable properties. To list all the available properties, you can run the command $crc config --help.
Throughout this manual we will use the $crc config command a few times to change some properties needed for the configuration.
There is also the possibility to use the crc config command to configure the behavior of the checks that’s done by the $crc start end $crc setup commands. By default, the startup checks will stop with the process if their conditions are not met. To bypass this potential issue, you can set the value of a property that starts with skip-check or warn-check to true to skip the check or warning instead of ending up with an error.
C:\Users\[username]\$PATH>crc config get C:\Users\[username]\$PATH>crc config set C:\Users\[username]\$PATH>crc config unset C:\Users\[username]\$PATH>crc config view C:\Users\[username]\$PATH>crc config --help 

Configuring the Virtual Machine

You can use the CPUs and memory properties to configure the default number of vCPU’s and amount of memory available for the virtual machine.
To increase the number of vCPU’s available to the virtual machine use the $crc config set CPUs . Keep in mind that the default number for the CPU’s is 4 and the number of vCPU’s you wish to assign must be equal or greater than the default value.
To increase the memory available to the virtual machine, use the $crc config set memory . Keep in mind that the default number for the memory is 9216 Mebibytes and the amount of memory you wish to assign must be equal or greater than the default value.
C:\Users\[username]\$PATH>crc config set CPUs  C:\Users\[username]\$PATH>crc config set memory > 

Configuring the DNS

Window / General DNS setup

There are two domain names used by the OpenShift cluster that are managed by the CodeReady Containers, these are:
crc.testing, this is the domain for the core OpenShift services.
apps-crc.testing, this is the domain used for accessing OpenShift applications that are deployed on the cluster.
Configuring the DNS settings in Windows is done by executing the crc setup. This command automatically adjusts the DNS configuration on the system. When executing crc start additional checks to verify the configuration will be executed.

macOS DNS setup

MacOS expects the following DNS configuration for the CodeReady Containers
● The CodeReady Containers creates a file that instructs the macOS to forward all DNS requests for the testing domain to the CodeReady Containers virtual machine. This file is created at /etc/resolvetesting.
● The oc binary requires the following CodeReady Containers entry to function properly, api.crc.testing adds an entry to /etc/hosts pointing at the VM IPaddress.

Linux DNS setup

CodeReady containers expect a slightly different DNS configuration. CodeReady Container expects the NetworkManager to manage networking. On Linux the NetworkManager uses dnsmasq through a configuration file, namely /etc/NetworkManageconf.d/crc-nm-dnsmasq.conf.
To set it up properly the dnsmasq instance has to forward the requests for crc.testing and apps-crc.testing domains to “192.168.130.11”. In the /etc/NetworkManageconf.d/crc-nm-dnsmasq.conf this will look like the following:
● Server=/crc. Testing/192.168.130.11
● Server=/apps-crc. Testing/192.168.130.11

Accessing the Openshift Cluster

Accessing the Openshift web console

To gain access to the OpenShift cluster running in the CodeReady virtual machine you need to make sure that the virtual machine is running before continuing with this chapter. The OpenShift clusters can be accessed through the OpenShift web console or the client binary(oc).
First you need to execute the $crc console command, this command will open your web browser and direct a tab to the web console. After that, you need to select the htpasswd_provider option in the OpenShift web console and log in as a developer user with the output provided by the crc start command.
It is also possible to view the password for kubeadmin and developer users by running the $crc console --credentials command. While you can access the cluster through the kubeadmin and developer users, it should be noted that the kubeadmin user should only be used for administrative tasks such as user management and the developer user for creating projects or OpenShift applications and the deployment of these applications.
C:\Users\[username]\$PATH>crc console C:\Users\[username]\$PATH>crc console --credentials 

Accessing the OpenShift cluster with oc

To gain access to the OpenShift cluster with the use of the oc command you need to complete several steps.
Step 1.
Execute the $crc oc-env command to print the command needed to add the cached oc binary to your PATH:
C:\Users\[username]\$PATH>crc oc-env 
Step 2.
Execute the printed command. The output will look something like the following:
PS C:\Users\OpenShift> crc oc-env $Env:PATH = "CC:\Users\OpenShift\.crc\bin\oc;$Env:PATH" # Run this command to configure your shell: # & crc oc-env | Invoke-Expression 
This means we have to execute* the command that the output gives us, in this case that is:
C:\Users\[username]\$PATH>crc oc-env | Invoke-Expression 
\this has to be executed every time you start; a solution is to move the oc binary to the same path as the crc binary*
To test if this step went correctly execute the following command, if it returns without errors oc is set up properly
C:\Users\[username]\$PATH>.\oc 
Step 3
Now you need to login as a developer user, this can be done using the following command:
$oc login -u developer https://api.crc.testing:6443
Keep in mind that the $crc start will provide you with the password that is needed to login with the developer user.
C:\Users\[username]\$PATH>oc login -u developer https://api.crc.testing:6443 
Step 4
The oc can now be used to interact with your OpenShift cluster. If you for instance want to verify if the OpenShift cluster Operators are available, you can execute the command
$oc get co 
Keep in mind that by default the CodeReady Containers disables the functions provided by the commands $machine-config and $monitoringOperators.
C:\Users\[username]\$PATH>oc get co 

Demonstration

Now that you are able to access the cluster, we will take you on a tour through some of the possibilities within OpenShift Container Platform.
We will start by creating a project. Within this project we will import an image, and with this image we are going to build an application. After building the application we will explain how upscaling and downscaling can be used within the created application.
As the next step we will show the user how to make changes in the network route. We also show how monitoring can be used within the platform, however within the current version of CodeReady Containers this has been disabled.
Lastly, we will show the user how to use user management within the platform.

Creating a project

To be able to create a project within the console you have to login on the cluster. If you have not yet done this, this can be done by running the command crc console in the command line and logging in with the login data from before.
When you are logged in as admin, switch to Developer. If you're logged in as a developer, you don't have to switch. Switching between users can be done with the dropdown menu top left.
Now that you are properly logged in press the dropdown menu shown in the image below, from there click on create a project.
https://preview.redd.it/ytax8qocitv51.png?width=658&format=png&auto=webp&s=72d143733f545cf8731a3cca7cafa58c6507ace2
When you press the correct button, the following image will pop up. Here you can give your project a name and description. We chose to name it CodeReady with a displayname CodeReady Container.
https://preview.redd.it/vtaxadwditv51.png?width=594&format=png&auto=webp&s=e3b004bab39fb3b732d96198ed55fdd99259f210

Importing image

The Containers in OpenShift Container Platform are based on OCI or Docker formatted images. An image is a binary that contains everything needed to run a container as well as the metadata of the requirements needed for the container.
Within the OpenShift Container Platform it’s possible to obtain images in a number of ways. There is an integrated Docker registry that offers the possibility to download new images “on the fly”. In addition, OpenShift Container Platform can use third party registries such as:
- Https://hub.docker.com/
- Https://catalog.redhat.com/software/containers/search
Within this manual we are going to import an image from the Red Hat container catalog. In this example we’ll be using MediaWiki.
Search for the application in https://catalog.redhat.com/software/containers/search

https://preview.redd.it/c4mrbs0fitv51.png?width=672&format=png&auto=webp&s=f708f0542b53a9abf779be2d91d89cf09e9d2895
Navigate to “Get this image”
Follow the steps to “create a registry service account”, after that you can copy the YAML.
https://preview.redd.it/b4rrklqfitv51.png?width=1323&format=png&auto=webp&s=7a2eb14a3a1ba273b166e03e1410f06fd9ee1968
After the YAML has been copied we will go to the topology view and click on the YAML button
https://preview.redd.it/k3qzu8dgitv51.png?width=869&format=png&auto=webp&s=b1fefec67703d0a905b00765f0047fe7c6c0735b
Then we have to paste in the YAML, put in the name, namespace and your pull secret name (which you created through your registry account) and click on create.
https://preview.redd.it/iz48kltgitv51.png?width=781&format=png&auto=webp&s=4effc12e07bd294f64a326928804d9a931e4d2bd
Run the import command within powershell
$oc import-image openshift4/mediawiki --from=registry.redhat.io/openshift4/mediawiki --confirm imagestream.image.openshift.io/mediawiki imported 

Creating and managing an application

There are a few ways to create and manage applications. Within this demonstration we’ll show how to create an application from the previously imported image.

Creating the application

To create an image with the previously imported image go back to the console and topology. From here on select container image.
https://preview.redd.it/6506ea4iitv51.png?width=869&format=png&auto=webp&s=c0231d70bb16c76cd131e6b71256e93550cc8b37
For the option image you'll want to select the “image stream tag from internal registry” option. Give the application a name and then create the deployment.
https://preview.redd.it/tk72idniitv51.png?width=813&format=png&auto=webp&s=a4e662cf7b96604d84df9d04ab9b90b5436c803c
If everything went right during the creating process you should see the following, this means that the application is successfully running.
https://preview.redd.it/ovv9l85jitv51.png?width=901&format=png&auto=webp&s=f78f350207add0b8a979b6da931ff29ffa30128c

Scaling the application

In OpenShift there is a feature called autoscaling. There are two types of application scaling, namely vertical scaling, and horizontal scaling. Vertical scaling is adding only more CPU and hard disk and is no longer supported by OpenShift. Horizontal scaling is increasing the number of machines.
One of the ways to scale an application is by increasing the number of pods. This can be done by going to a pod within the view as seen in the previous step. By either pressing the up or down arrow more pods of the same application can be added. This is similar to horizontal scaling and can result in better performance when there are a lot of active users at the same time.
https://preview.redd.it/s6i1vbcrltv51.png?width=602&format=png&auto=webp&s=e62cbeeed116ba8c55704d61a990fc0d8f3cfaa1
In the picture above we see the number of nodes and pods and how many resources those nodes and pods are using. This is something to keep in mind if you want to scale up your application, the more you scale it up, the more resources it will take up.

https://preview.redd.it/quh037wmitv51.png?width=194&format=png&auto=webp&s=5e326647b223f3918c259b1602afa1b5fbbeea94

Network

Since OpenShift Container platform is built on Kubernetes it might be interesting to know some theory about its networking. Kubernetes, on which the OpenShift Container platform is built, ensures that the Pods within OpenShift can communicate with each other via the network and assigns them their own IP address. This makes all containers within the Pod behave as if they were on the same host. By giving each pod its own IP address, pods can be treated as physical hosts or virtual machines in terms of port mapping, networking, naming, service discovery, load balancing, application configuration and migration. To run multiple services such as front-end and back-end services, OpenShift Container Platform has a built-in DNS.
One of the changes that can be made to the networking of a Pod is the Route. We’ll show you how this can be done in this demonstration.
The Route is not the only thing that can be changed and or configured. Two other options that might be interesting but will not be demonstrated in this manual are:
- Ingress controller, Within OpenShift it is possible to set your own certificate. A user must have a certificate / key pair in PEM-encoded files, with the certificate signed by a trusted authority.
- Network policies, by default all pods in a project are accessible from other pods and network locations. To isolate one or more pods in a project, it is possible to create Network Policy objects in that project to indicate the allowed incoming connections. Project administrators can create and delete Network Policy objects within their own project.
There is a search function within the Container Platform. We’ll use this to search for the network routes and show how to add a new route.
https://preview.redd.it/8jkyhk8pitv51.png?width=769&format=png&auto=webp&s=9a8762df5bbae3d8a7c92db96b8cb70605a3d6da
You can add items that you use a lot to the navigation
https://preview.redd.it/t32sownqitv51.png?width=1598&format=png&auto=webp&s=6aab6f17bc9f871c591173493722eeae585a9232
For this example, we will add Routes to navigation.
https://preview.redd.it/pm3j7ljritv51.png?width=291&format=png&auto=webp&s=bc6fbda061afdd0780bbc72555d809b84a130b5b
Now that we’ve added Routes to the navigation, we can start the creation of the Route by clicking on “Create route”.
https://preview.redd.it/5lgecq0titv51.png?width=1603&format=png&auto=webp&s=d548789daaa6a8c7312a419393795b52da0e9f75
Fill in the name, select the service and the target port from the drop-down menu and click on Create.
https://preview.redd.it/qczgjc2uitv51.png?width=778&format=png&auto=webp&s=563f73f0dc548e3b5b2319ca97339e8f7b06c9d6
As you can see, we’ve successfully added the new route to our application.
https://preview.redd.it/gxfanp2vitv51.png?width=1588&format=png&auto=webp&s=1aae813d7ad0025f91013d884fcf62c5e7d109f1
Storage
OpenShift makes use of Persistent Storage, this type of storage uses persistent volume claims(PVC). PVC’s allow the developer to make persistent volumes without needing any knowledge about the underlying infrastructure.
Within this storage there are a few configuration options:
It is however important to know how to manually reclaim the persistent volumes, since if you delete PV the associated data will not be automatically deleted with it and therefore you cannot reassign the storage to another PV yet.
To manually reclaim the PV, you need to follow the following steps:
Step 1: Delete the PV, this can be done by executing the following command
$oc delete  
Step 2: Now you need to clean up the data on the associated storage asset
Step 3: Now you can delete the associated storage asset or if you with to reuse the same storage asset you can now create a PV with the storage asset definition.
It is also possible to directly change the reclaim policy within OpenShift, to do this you would need to follow the following steps:
Step 1: Get a list of the PVs in your cluster
$oc get pv 
This will give you a list of all the PV’s in your cluster and will display their following attributes: Name, Capacity, Accesmodes, Reclaimpolicy, Statusclaim, Storageclass, Reason and Age.
Step 2: Now choose the PV you wish to change and execute one of the following command’s, depending on your preferred policy:
$oc patch pv  -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}' 
In this example the reclaim policy will be changed to Retain.
$oc patch pv  -p '{"spec":{"persistentVolumeReclaimPolicy":"Recycle"}}' 
In this example the reclaim policy will be changed to Recycle.
$oc patch pv  -p '{"spec":{"persistentVolumeReclaimPolicy":"Delete"}}' 
In this example the reclaim policy will be changed to Delete.

Step 3: After this you can check the PV to verify the change by executing this command again:
$oc get pv 

Monitoring

Within Red Hat OpenShift there is the possibility to monitor the data that has been created by your containers, applications, and pods. To do so, click on the menu option in the top left corner. Check if you are logged in as Developer and click on “Monitoring”. Normally this function is not activated within the CodeReady containers, because it uses a lot of resources (Ram and CPU) to run.
https://preview.redd.it/an0wvn6zitv51.png?width=228&format=png&auto=webp&s=51abf8cc31bd763deb457d49514f99ee81d610ec
Once you have activated “Monitoring” you can change the “Time Range” and “Refresh Interval” in the top right corner of your screen. This will change the monitoring data on your screen.
https://preview.redd.it/e0yvzsh1jtv51.png?width=493&format=png&auto=webp&s=b2c563635cfa60ea7ce2f9c146aa994df6aa1c34
Within this function you can also monitor “Events”. These events are records of important information and are useful for monitoring and troubleshooting within the OpenShift Container Platform.
https://preview.redd.it/l90vkmp3jtv51.png?width=602&format=png&auto=webp&s=4e97f14bedaec7ededcdcda96e7823f77ced24c2

User management

According to the documentation of OpenShift is a user, an entity that interacts with the OpenShift Container Platform API. These can be a developer for developing applications or an administrator for managing the cluster. Users can be assigned to groups, which set the permissions applied to all the group’s members. For example, you can give API access to a group, which gives all members of the group API access.
There are multiple ways to create a user depending on the configured identity provider. The DenyAll identity provider is the default within OpenShift Container Platform. This default denies access for all the usernames and passwords.
First, we’re going to create a new user, the way this is done depends on the identity provider, this depends on the mapping method used as part of the identity provider configuration.
for more information on what mapping methods are and how they function:
https://docs.openshift.com/enterprise/3.1/install_config/configuring_authentication.html
With the default mapping method, the steps will be as following
$oc create user  
Next up, we’ll create an OpenShift Container Platform Identity. Use the name of the identity provider and the name that uniquely represents this identity in the scope of the identity provider:
$oc create identity : 
The is the name of the identity provider in the master configuration. For example, the following commands create an Identity with identity provider ldap_provider and the identity provider username mediawiki_s.
$oc create identity ldap_provider:mediawiki_s 
Create a useidentity mapping for the created user and identity:
$oc create useridentitymapping :  
For example, the following command maps the identity to the user:
$oc create useridentitymapping ldap_provider:mediawiki_s mediawiki 
Now were going to assign a role to this new user, this can be done by executing the following command:
$oc create clusterrolebinding  \ --clusterrole= --user= 
There is a --clusterrole option that can be used to give the user a specific role, like a cluster user with admin privileges. The cluster admin has access to all files and is able to manage the access level of other users.
Below is an example of the admin clusterrole command:
$oc create clusterrolebinding registry-controller \ --clusterrole=cluster-admin --user=admin 

What did you achieve?

If you followed all the steps within this manual you now should have a functioning Mediawiki Application running on your own CodeReady Containers. During the installation of this application on CodeReady Containers you have learned how to do the following things:
● Installing the CodeReady Containers
● Updating OpenShift
● Configuring a CodeReady Container
● Configuring the DNS
● Accessing the OpenShift cluster
● Deploying an application
● Creating new users
With these skills you’ll be able to set up your own Container Platform environment and host applications of your choosing.

Troubleshooting

Nameserver
There is the possibility that your CodeReady container can't connect to the internet due to a Nameserver error. When this is encountered a working fix for us was to stop the machine and then start the CRC machine with the following command:
C:\Users\[username]\$PATH>crc start -n 1.1.1.1 
Hyper-V admin
Should you run into a problem with Hyper-V it might be because your user is not an admin and therefore can’t access the Hyper-V admin user group.
  1. Click Start > Control Panel > Administration Tools > Computer Management. The Computer Management window opens.
  2. Click System Tools > Local Users and Groups > Groups. The list of groups opens.
  3. Double-click the Hyper-V Administrators group. The Hyper-V Administrators Properties window opens.
  4. Click Add. The Select Users or Groups window opens.
  5. In the Enter the object names to select field, enter the user account name to whom you want to assign permissions, and then click OK.
  6. Click Apply, and then click OK.

Terms and definitions

These terms and definitions will be expanded upon, below you can see an example of how this is going to look like together with a few terms that will require definitions.
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. Openshift is based on Kubernetes.
Clusters are a collection of multiple nodes which communicate with each other to perform a set of operations.
Containers are the basic units of OpenShift applications. These container technologies are lightweight mechanisms for isolating running processes so that they are limited to interacting with only their designated resources.
CodeReady Container is a minimal, preconfigured cluster that is used for development and testing purposes.
CodeReady Workspaces uses Kubernetes and containers to provide any member of the development or IT team with a consistent, secure, and zero-configuration development environment.

Sources

  1. https://www.ibm.com/support/knowledgecenteen/SSMKFH/com.ibm.apmaas.doc/install/hyperv_config_add_nonadmin_user_hyperv_usergroup.html
  2. https://access.redhat.com/documentation/en-us/openshift_container_platform/4.5/
  3. https://docs.openshift.com/container-platform/3.11/admin_guide/manage_users.html
submitted by Groep6HHS to openshift [link] [comments]

Binary Option - How To Win Scalping The Secret Method Trading System The Secret about Binary Options Trading that nobody wants ... BINARY OPTIONS TRADING SECRETS  STRATEGY  METHOD binary option - strategy trading digit matches  secret ... BINARY OPTIONS STRATEGY 2019 - Secret Key to Profit Binary Option Secret - How to win 1300$ per 10 minutes ...

First of all I want to explain what i meant by saying that the secret method binary options is 100% free. This mean you will not have to take out your CC or PayPal to get it, All you have to do is sign up and you’re ready to test it out. That’s all there is to it. This system strategy is quite simple. Instead of forcing you to pay $100, $47, $19 or any other amount the creator, Lee Walker ... lee walker’s the secret method – binary options for free Friday, 6 September 2013 Binary options trading platform (also called binary options web-site) is a web-based, over-the-counter, real-time trading arena, which offers investors a way to profit from correct, short term predictions of some underlying asset (e.g., stock, commodity, currency, index) price movement by buying binary ... Secret Millionaire Method. Secret millionaire method is a free binary options system with an impressive looking sales page but don’t be fooled. Just because it looks impressive doesn’t mean it isn’t just like the rest of these poorly performing products. Secret method binary options by lee walker is one of The Best Winning Strategy in Binary Options Trading Industry Now days. There are many different ways so that you can trade binary options. The choice for you depending on the strategy that decides to be used, but I very recommended secret method. Approaches & Strategies! Hurry and secure your copy today, you got nothing to lose, if it doesn ... There you have to deposit money you need to invest in binary options trading using secret method strategy (minimum deposit is $200). Then lee will send the software, user guide, free training etc to the email id you provided. Then you can start using secret method and hence start making money. Inside the members area, you will get link to download the software, free training and a very nice ... Binary Options Secrets: A Killer Strategy Never Seen Before On Internet Is Now Revealed. This Is A Logical Method That Will Surprise You. Guaranteed "How We Stumbled Onto Simple And Logical Binary Options Secret Behind Most Profitable Traders That Can Give Anyone Unbelievable Profits With More Than 95% Accuracy " No MT4 use at all, No indicators, No martingale (increase % per lost trade) No ... The table below is a blacklist consisting of Binary Options brokers who have scammed those who made complaints on Broker Complaint Registry. If you would like to report abuse by any of these brokers please click on the name of the broker in the table and you will be directed to their complaint page. There, you can fill out the form and one of our representatives will get back to you. Search ... Secret method binary options by lee walker is one of The Best Winning Strategy in Binary Options Trading Industry Now days. There are many different ways so that you can trade binary options. The choice for you depending on the strategy that decides to be used, but I very recommended secret method. Approaches & Strategies! Hurry and secure your copy today, you got nothing to lose, if it doesn ... Now we’re going to focus on step two, which is how to predict the price movement. If you manage to figure this out, then knowing how to make money trading binary options will be a piece of cake for you.. Now, before we’ll outline a method on how to make money trading binary options, we always recommend taking a piece of paper and a pen and take notes on the rules of the best binary options ... The best Binary Options Strategy A "Secret" that will increase your hit rate Tutorial and easy to use Read more about it now

[index] [29073] [2078] [28763] [8190] [14208] [11123] [15081] [9535] [22992] [21399]

Binary Option - How To Win Scalping The Secret Method Trading System

Do not miss! DEMO ACCOUNT: https://bit.ly/32L8yzQ Hello friends! Today I will speak and trade by Technical Summary by Investing.com. Watch the video carefull... You Can Download The Latest Bot / Signal Vfxalert Please Click on The link below! Contact Telegram = https://t.me/Crtrading12 REGISTER VFXALRT 2020 = https:/... Guide Channel and provide the tools and trade forex systems, binary option. Keeping the channels of the financial news and gather the knowledge related to financial investors have good knowledge ... https://binaryoptionsbeat.com/ #Binaryoptions #Nadex #Strategy You can always contact me via [email protected] This is a tutorial video, aiming to ex... binary options binary options method, binary options trading method, binary options trading, binary options review, binary options tutorial, binary options signals, binary options trading strategy ... Binary options demo accounts are a terrific way to get released to binary options trading without having to threat any cash. Investors wanting longer phrase can ensure that the Binary Options ...

https://binaryoptiontrade.wundlathuper.tk