#home folder under git
Explore tagged Tumblr posts
mentalisttraceur-software · 2 years ago
Text
Finally, git for your home folder
So you know how version-controlling your dotfiles and other stuff in your home folder with git can be a bit of a hassle?
For example, you can do "git init" in your home folder, and then you can nicely configure git to ignore everything that you don't want to track in your home folder.
This seems to work great, until the next time that you try to do a "git init" in a folder like "~/code/my-new-project", and git says "reinitializing .git directory in ~" instead of creating a new git directory.
And also any git command in other child directories can end up being influenced by any home-folder repo-specific config in ~/.git/config (as opposed to ~/.gitconfig, which is correctly intended for all your git commands).
Some people figured out ways to work around this. There's a big push to move all config into ~/.config. I think in the big picture this is better and the world should move that way. For now you might need to at least symlink some stuff out of the config folder into your home folder, because some programs refuse to adopt this convention. And there are tools that manage this symlinking for you. But even if this problem entirely went away, it's not entirely clear to me that you would never want to version-control your home directory more generally.
So then clever people figured out tricks to mitigate this: you see, git allows the .git folder to be named something else and to be in a different location than the root of the "work tree". So suddenly you can have your home directory be a git repo without having a .git folder in it, and the only price is that you have a parallel command - you can't just type "git ..." anymore to manage your dotfiles and so on. You have to call your wrapper command, whether you implement it as a separate command or as a git subcommand with an alias.
Me being me, this was an unacceptable blemish - inconvenient and irregular to run a different command just for this one repo. Especially when you consider that having to run a different command will trip up every wrapper program you might ever want to use with git. Got any helper scripts that call git commands? You'll at best need to call them through some sort of wrapper that can project the right configs through git environment variables. Use something like Magit? You'll need to configure it to use a different command to interface with git for this one repo.
I thought about trying to write a wrapper script for git which could intelligently detect when to use a different "git dir" option to avoid this problem, but this script would have to somehow know each of the folders that I intended to manage from inside my home directory.
But then almost by luck, I found GIT_CEILING_DIRECTORIES. An obscure little environment variable that we can use to tell git "don't go up into these when looking for a .git, just stop as if you didn't find one". So now I run git with this in my environment variables:
GIT_CEILING_DIRECTORIES=~
As a result, I can have a .git in my home folder as normal, which means I can still use vanilla git commands to manage my dotfiles and so on. And yet, all git operations in any folder other than my home folder - which is literally the only git operations I ever run for any other use-case - don't see it.
Is this perfect? Almost. The one flaw I've found so far is when I'm managing another subdirectory as part of my home folder repository. For example, I can run "git add .config/..." from inside the home folder just fine, but if I run a "git add ..." from inside ~/.config, it will fail to realize that it's in a git repo. The solution is to make a symlink from ~/.config/.git to ~/.git. Somewhat annoyingly, git refuses to save a path named .git in the repo itself, so I have to recreate this link on every clone.
But you know what? This doesn't bother me nearly as much. It won't come up often, I'll only need to manually fix this once per folder that's directly inside my home folder and version controlled as part of it, and the fix is something I can think of fluently with nearly zero effort: "ln -s ../.git ~/.config".
I am much happier with this than with either a separate tool to manage symlinks into my home folder, or with having to run something other than normal git commands for managing things in my home directory.
5 notes · View notes
townofcrosshollow · 2 years ago
Text
Using Git for Twine Games
A while back, I somehow managed to copy the contents of one file and overwrite a different file, meaning the entire section of the map was lost for good. I had to reconstruct it from snippets of prose written in separate documents. It sucked. And that motivated me to try something that would stop that problem from ever happening- hosting my project on GitHub!
Git sounds really fancy and hard to understand, but it's really not! So I'm going to walk you through how to use it to back up your files and do much, much more.
This tutorial expects you to have an already set up Tweego folder and VSCode. If you don't know how to get that started, @manonamora-if has an excellent ready-to-use folder with an explanation of how to use it.
What is Git?
In short, git is a kind of version control. Say you're working on a coding project with somebody else, and you need to work on the same file they were working on. But how do you know you're working on the right version of that file? Maybe they forgot to send you the newest version. Or maybe you both have to make changes at the same time. It would take a lot of effort to manually splice together everybody's changes, let alone identify what each of you had changed. That's what git's job is. Git identifies what has changed about a file, notes those changes, and updates the "main" files to match. That way, everything stays consistent, and big files can be updated easily.
Okay, but what benefit does git provide to you, somebody who's just working on a solo project with very little code? Well for one, it would have completely fixed my problem. Instead of overwriting all of my work, git would have shown me that the file had been changed. Then, I could simply click a button to revert the change. Neat! It also means you can keep working on the same project from multiple locations without losing progress. Say you're working on your game on your home computer, but then you want to keep working on your school laptop. All you'd have to do is "push" your changes to save them to your master file, and then "pull" the changes when you get to school. Neat
The Basics of Git
Okay, but what does "push" and "pull" mean? Git's confusing, but the basic terms you'll be encountering don't have to be! Here's some terminology:
Git - This is the program that goes on your computer to manage your files. It does all of the version control.
GitHub/GitLab/BitBucket - These provide servers you can host your git repositories on.
Repositories - This is a fancy word for a folder that's being maintained by git. Every file in a repository is getting analyzed by git for changes.
Local vs Remote - Your local repository is the one hosted on your computer, and it's the one you're editing. The remote one is the one hosted on a site like GitHub.
Stage - When you stage a file, you're getting it ready to commit it.
Commit - A commit is like saving your progress as a new update. You can go back to a commit later if you messed something up.
Push - When you "push" your commits, git will look at your changes, go into the remote repository, and individually change all of those things in the "main" branch.
Pull - Just like pushing, when you pull, you're taking changes from the remote repository and updating your local one to match it.
Under the cut, I'll show you full step-by-step (with photos!) of how to set up your game with GitHub using VSCode!
Setting Up Git With VSCode
Lucky for you, VSCode has built in integration with GitHub, which means you don't have to download any new programs other than git itself. You'll just have to set it up. A note- I'm not sure at what point exactly in this process VSCode prompts you to install git, because I'm not going to install it on another computer just for this tutorial haha. VSCode will provide the installation, just go along with the default settings and you'll be fine.
So first, make a Github account. It's free!
Now, open VSCode. Here's our project! You're going to want to click on that third button down in the side menu, the Source Control tab.
Tumblr media
Under source control, you'll see this option. Click it.
Tumblr media Tumblr media
Aaaaand it's done! That was easy, right? Now your folder is a git repository. Crazy!
Before you can put all of this up in GitHub, you'll need to push all of your files. Type a brief message (try "Initializing" to feel like a real cool coder), press commit, and VSCode will ask if you want to skip staging and just commit everything. Yes! Yes you do!
Now that all of your "changes" have been committed, let's publish your new repository to GitHub. Click on the new button that says "publish branch." When the popup appears, click "Allow" to give VSCode access to your GitHub account and sign in. Back in VSCode, you'll see this:
Tumblr media
You're probably going to want it to be private, otherwise anyone on the internet could see all of your writing! Which is cool if it's a public coding project that people might want to download and use for their own projects, but if you're not a fan of code diving, leave it private.
Using Git To Help You Write
Now that you've got your folder set up as a git repository, it'll change the way VSCode looks. VSCode is using git's info to know where you've made changes, and it'll represent those changes in the UI. Here's what those look like:
Tumblr media Tumblr media
If you click on those lines, you'll get to see this fancy new panel that highlights all of your changes:
Tumblr media
So let's say we have a scene, and we aren't happy with how it's looking, but we aren't sure if we want to make one change or a different change. Instead of backing up all of your stuff or copy and pasting it to test it, you can just make whatever change you want and click that backwards facing arrow to revert it back if you aren't happy with it. You can do the same for things like CSS- when you've made some good progress and want to save your changes, commit them. Then any more changes you make will be easy to revert back if they don't look right. Groovy!
Now that everything's set up, it's as easy as committing your changes when you're satisfied with them and pushing those commits to back up your work.
Pat yourself on the back! You just learned (the very basics of) how to use git! You absolute genius!
If you have any questions while following this tutorial, feel free to ask! My askbox is always open!
132 notes · View notes
ezwhump · 4 years ago
Text
Russell meets Lennon - pet whump, collars, swearing
Russell thought that maybe some kind of odd prank was being played on him when he pulled up to the trailer. Sure, he’d been in worse places, but there was something off-putting about the whole scenario; driving to some dingy scrapyard on the outskirts of town was supposed to help him close up a business deal? Christ. 
A solitary streetlight lit up most of the property, washing everything in a muted yellow and making the encroaching darkness seem even more sinister. Russell turned off the car, making sure it was locked a few times before he steeled himself. 
“It’s just business.” 
A gangly man in a truckers hat and a heavy jean jacket met him at the door, swiping his sleeve under his nose and spitting out onto the dirt in front of Russell. 
“Y’here for the account papers?” 
Russell couldn’t help but pick up on everything going on behind the man; more washy yellow light concentrated from dusty mismatched lamps, the trailer's kitchenette barely spanning 3 feet, dishes piled in the sink. He pulled his eyes to meet the man, setting his shoulders. 
“Yeah. Russell Barlowe.”
“Stu.”
Stu turned into the trailer, leaving Russell in the doorway, still a little on edge. He was going to have to call Pete after this, if only to penalize him for offering up a “middle man to make the transaction smoother” that turned out to be a grizzled, secluded trucker. 
This Stu guy better be a fucking finance wizard. 
“Y’comin’ in or y’gonna piss on my porch all night?” 
Russell almost choked, taking a few halted steps inside and breathing deep to adjust as fast as possible. It smelled like tobacco, stale sweat, and kibble. The couches were stained and a little torn up, singed foam jutting out at the end cushions, but Russell took a seat anyway. 
“Y’want somethin’ to drink? I gotta print some shit out before we wrap this up.” 
Russell remembered the sink. “I’m alright, thanks.” 
That’s when he spotted the food bowl. A flimsy silver dish, about the size of a bread plate, with the name ‘Lennon’ crudely carved on the lip. It looked like the only clean thing in the entire trailer. 
“You got a dog?”
Stu snorted, hacking up a cough and spitting again, this time into the sink. Russell kept his face neutral. 
“Hck, yeah.” And then he stalked into the back of the trailer, presumably where his printer was.
Russell busied himself by thumbing through the calendar on his phone, trying to memorize his schedule for tomorrow, what meetings with who, when to call Pete and lay into him, but he was interrupted.
A shape was moving out of the back of the trailer, and Russell leaned forward on the couch, offering out his hand for Stu’s dog to sniff. To show he wasn’t a threat. 
A boy shuffled along the grimy particleboard on all fours, keeping pressed to the wall, and Russell stood up. 
“What the fuck.” It came out as a whisper, a sharp release of air. 
The boy was rangy and thin, dirty like the rest of the place, his hair slightly matted. Scars and bruises littered his skin, visible even beneath his ragged white t-shirt and boxers. The material was too thin to leave anything to the imagination. His eyes were huge and blue and teary, skittering from Russell to the back room over and over again. But Russell was laser-focused on the thing around the boy's neck. A thick, wrought-iron collar with a chain that fed into the back room, but was long enough that the boy could crawl to the food bowl. To Russell. 
“Git.” 
The boy scrambled back into the dark room, and Stu emerged holding a fresh manila folder.
“Sorry ‘bout that. He’s a nosy fucker. Got him too young.”
Russell tried to slow his breathing, to appear unfazed. Stu had a pet. 
“How old is he?” It felt like an unobtrusive enough question. 
Stu took off his hat and scratched through his hat-hair with long fingernails. 
“Old enough.” 
Russell didn’t know much about pets, but he was sure that it was illegal to own a pet under eighteen. The kid looked like he’d been here for years.
“Right.” Russell cleared his throat and took the folder from Stu, ready to get the hell out of there. “Thanks.” 
Stu spat into the sink. “Not a problem, Mr. Barlowe, sir.”
Russell sat in his idling car, staring blankly through the windshield into the dark surrounding the trailer, the folder untouched in the passenger seat. He should be pulling out of here, getting home, taking a fucking shower. 
Adrenaline made him shake, his hands tight on the wheel, the stench of the trailer still lingering. What the hell was he supposed to do? Charge back in there and snatch the kid? Call the police? Animal control? 
“Fuck. Fuck. Okay.” It took him a few minutes to gather himself, to come to a decision that would alleviate whatever burning pyre of responsibility he suddenly felt for this kid. For a pet. 
He’d do the only thing he really knew how to do when it boiled down to it.
 He’d make a deal with Stu. 
81 notes · View notes
vukovich · 4 years ago
Text
WIP Folder Challenge
Rules: Post the names of all the files in your WIP folder, regardless of how non-descriptive or ridiculous. Send me an ask with the title that most intrigues you and I’ll post a little snippet of it or tell you something about it! Tag as many people as you have WIPs.
First, thanks to @wheezykat for the tag. Second, fear me, judge me, or pity me on this. Third, I have no idea if or how many Wheal Elvan readers actually follow me, so this is your time to shine. 1.  Garnishes (Draco/Louis Weasley, in progress) 2.  “Who’s the Best Boy?  Oh, Yes, You Are” full story (Drarry) 3.  Under Infidelis (Drarry) 4.  Thirst Trap Walking (Drarry) 5.  Terrene (Luna/Neville) 6.  The Girl with the Mudblood Tattoo (Dramione) 7.  A big non-HP thing ---Wheal Elvan WIPs--- 8.  Supreme Mugglerump 9.  Wands at Dawn.  Yule. 10. Ma Biche 11. Grecian Burn 12. Azkabanned 13. Home by Snow 14. Belle of the Beaus 15. The Desk of One H. Granger 16. Cursed Calamari 17. Basilisks of Diagon 18. Little Red Robes on Wolves 19. O-K-L-A-H-O-M-A! City, that is. 20. Cliff Diver 21. Vesuvius Reborn 22. Rondelets of the End of Days I can’t possibly tag 22 people who haven’t already been tagged, so I’m just gonna name a bunch of brains I like. @primavera-cerezos @gallifrey1sburning @veelawings @glittering-git @tontonguetonks @cibeewastaken @crazybutgood @hilunawrites
6 notes · View notes
huntersj967 · 4 years ago
Text
Rhel Docker
Tumblr media Tumblr media
Rhel Docker
Rhel Docker Ce
Rhel Docker
Rhel Docker Ce
The Remote - Containers extension lets you use a Docker container as a full-featured development environment. Whether you deploy to containers or not, containers make a great development environment because you can:
Develop with a consistent, easily reproducible toolchain on the same operating system you deploy to.
Quickly swap between different, isolated development environments and safely make updates without worrying about impacting your local machine.
Make it easy for new team members / contributors to get up and running in a consistent development environment.
Try out new technologies or clone a copy of a code base without impacting your local setup.
Rhel Docker
Tumblr media
Rhel Docker Ce
The extension starts (or attaches to) a development container running a well defined tool and runtime stack. Workspace files can be mounted into the container from the local file system, or copied or cloned into it once the container is running. Extensions are installed and run inside the container where they have full access to the tools, platform, and file system.
Rhel Docker
Amazon Web Services (AWS) and Red Hat provide a complete, enterprise-class computing environment. Red Hat solutions on AWS give customers the ability to run enterprise traditional on-premises applications, such as SAP, Oracle databases, and custom applications in the cloud.
Windows 10 Home (2004+) requires Docker Desktop 2.2+ and the WSL2 back-end. (Docker Toolbox is not supported.) macOS: Docker Desktop 2.0+. Linux: Docker CE/EE 18.06+ and Docker Compose 1.21+. (The Ubuntu snap package is not supported.) Containers: x8664 / ARMv7l (AArch32) / ARMv8l (AArch64) Debian 9+, Ubuntu 16.04+, CentOS / RHEL 7+ x8664.
Docker volumes allow you to back up, restore, and migrate data easily. This tutorial explains what a Docker volume is and how to use it, as well as how to mount a volume in Docker.
Amazon Web Services (AWS) and Red Hat provide a complete, enterprise-class computing environment. Red Hat solutions on AWS give customers the ability to run enterprise traditional on-premises applications, such as SAP, Oracle databases, and custom applications in the cloud.
Tumblr media
You then work with VS Code as if everything were running locally on your machine, except now they are isolated inside a container.
System Requirements
Local:
Windows:Docker Desktop 2.0+ on Windows 10 Pro/Enterprise. Windows 10 Home (2004+) requires Docker Desktop 2.2+ and the WSL2 back-end. (Docker Toolbox is not supported.)
macOS: Docker Desktop 2.0+.
Linux: Docker CE/EE 18.06+ and Docker Compose 1.21+. (The Ubuntu snap package is not supported.)
Containers:
x86_64 / ARMv7l (AArch32) / ARMv8l (AArch64) Debian 9+, Ubuntu 16.04+, CentOS / RHEL 7+
x86_64 Alpine Linux 3.9+
Other glibc based Linux containers may work if they have needed prerequisites.
While ARMv7l (AArch32), ARMv8l (AArch64), and musl based Alpine Linux support is available, some extensions installed on these devices may not work due to the use of glibc or x86 compiled native code in the extension. See the Remote Development with Linux article for details.
Note that while the Docker CLI is required, the Docker daemon/service does not need to be running locally if you are using a remote Docker host.
Tumblr media
Installation
To get started, follow these steps:
Install VS Code or VS Code Insiders and this extension.
Install and configure Docker for your operating system.
Windows / macOS:
Install Docker Desktop for Mac/Windows.
If not using WSL2 on Windows, right-click on the Docker task bar item, select Settings / Preferences and update Resources > File Sharing with any locations your source code is kept. See tips and tricks for troubleshooting.
To enable the Windows WSL2 back-end: Right-click on the Docker taskbar item and select Settings. Check Use the WSL2 based engine and verify your distribution is enabled under Resources > WSL Integration.
Linux:
Follow the official install instructions for Docker CE/EE. If you use Docker Compose, follow the Docker Compose install directions.
Add your user to the docker group by using a terminal to run: sudo usermod -aG docker $USER Sign out and back in again so this setting takes effect.
Rhel Docker Ce
Working with Git? Here are two tips to consider:
If you are working with the same repository folder in a container and Windows, be sure to set up consistent line endings. See tips and tricks to learn how.
If you clone using a Git credential manager, your container should already have access to your credentials! If you use SSH keys, you can also opt-in to sharing them. See Sharing Git credentials with your container for details.
Getting started
Follow the step-by-step tutorial or if you are comfortable with Docker, follow these four steps:
Follow the installation steps above.
Clone https://github.com/Microsoft/vscode-remote-try-node locally.
Start VS Code
Run the Remote-Containers: Open Folder in Container... command and select the local folder.
Check out the repository README for things to try. Next, learn how you can:
Use a container as your full-time environment - Open an existing folder in a container for use as your full-time development environment in few easy steps. Works with both container and non-container deployed projects.
Attach to a running container - Attach to a running container for quick edits, debugging, and triaging.
Advanced: Use a remote Docker host - Once you know the basics, learn how to use a remote Docker host if needed.
Available commands
Another way to learn what you can do with the extension is to browse the commands it provides. Press F1 to bring up the Command Palette and type in Remote-Containers for a full list of commands.
Tumblr media
You can also click on the Remote 'Quick Access' status bar item to get a list of the most common commands.
For more information, please see the extension documentation.
Release Notes
While an optional install, this extension releases with VS Code. VS Code release notes include a summary of changes to all three Remote Development extensions with a link to detailed release notes.
As with VS Code itself, the extensions update during a development iteration with changes that are only available in VS Code Insiders Edition.
Questions, Feedback, Contributing
Have a question or feedback?
See the documentation or the troubleshooting guide.
Up-vote a feature or request a new one, search existing issues, or report a problem.
Contribute a development container definition for others to use
Contribute to our documentation
...and more. See our CONTRIBUTING guide for details.
Or connect with the community...
Telemetry
Visual Studio Code Remote - Containers and related extensions collect telemetry data to help us build a better experience working remotely from VS Code. We only collect data on which commands are executed. We do not collect any information about image names, paths, etc. The extension respects the telemetry.enableTelemetry setting which you can learn more about in the Visual Studio Code FAQ.
License
By downloading and using the Visual Studio Remote - Containers extension and its related components, you agree to the product license terms and privacy statement.
Tumblr media
2 notes · View notes
vias-words · 5 years ago
Text
Ask Game For Fan Fiction Writers
Thank you @mygeeknessisa-quivering for tagging me!
1. What fandoms do you write for? 
Usually The Cursed Child but I’m starting to write for Julie and the Phantoms too. I used to be a big Marvel writer as well and I have one Miss Peregrine’s fic that I’m really proud of. Had a bunch of other fandoms that I wrote for when I was younger but these would be the main ones. 
2. What parings do you write for? 
Scorbus!! Then I used to write Stucky and Clintasha when I did Marvel fics
3. What is your most popular fanfic? 
Albus Potter and the Cursed Legacy on AO3 but my most popular of all time was a Stucky fic on Wattpad called Coming Back Home 
4. Do you write original stories as well? 
Yes! But none are published
5. What is a fandom you will never write for? 
Probably just ones that I’m not interested in or don’t know that much about. 
6. Which platform do you prefer? 
AO3 for sure
7. What are your favorite fanfics? 
There are so many amazing fics that I forgot to save but here are some of my favorites that I have book marked
Scorbus: Blood, Ice, Water ; Paper Dragons ; Beneath the Wisteria 
General Harry Potter: A Future Beyond 17
Jeddy/Scorbus: King and Lionheart
JATP: The Ghosts of My Past
8. How do you stay motivated to finish what you’ve started? 
Definitely getting feedback helps. And just staying invested in the story. I take breaks when needed so I don’t burn out. 
9. What’s your longest fanfic? 
Albus Potter and the Cursed legacy is almost 200,000 words which is absolutely insane to me but I love it dearly
10. Do you use sentence starters, writing prompts and/or fandom headcanons for your fanfics? 
Sometimes! Usually just for shorter fics. But I incorporate fandom headcanons into longer fics as well. Basically my fics are based on fanon most of the time anyway
11. Do you use/follow advice from writing blogs/posts? 
Sometimes!
12. What’s your shortest fanfic? 
Borderline is just under 4,000 words
13. Do you listen to music during your writing process? 
Yes, it helps me focus. I like atmospheric music to match the story. There’s a lot of great youtube videos for that but also instrumentals and movie scores on spotify are great.
14. What is your favorite writing prompt? 
Can’t say I have one
15. Can we get a list of all of your current available fanfics? 
Here is a link to my AO3! I have some reaaaallly old ones on Wattpad too if you want to see how 13-15 y.o. me wrote haha the user is via_words
16. Long chapters or short chapters?
Long. I notoriously write a lot.
17. How many WIPs (work-in-progress) do you’ve got? 
Too many...I’d say a solid 8 but a lot of started fic ideas that never took off
18. Do you take requests? 
I’m open to hearing them but I usually struggle to write someone else’s ideas 
19. What’s more difficult? Fanfics or original work? 
Original work for sure, which is very frustrating to me. I’ve written a novel length fic before I can even get halfway through an original. I think I just know fic characters and the world a whole lot better and I know my audience will too, so there’s not stress about making sure everything is clear.
20. How did you find the magical world of fanfics?
I can’t even remember. I think I got on Wattpad through word of mouth when I was 12 but didn’t start posting until I was like 13 or 14.
21. Do you partake in any fanfic/writing events? 
I try to! 
22. Does fanart of your fanfic exist? 
Yes!! Which is AMAZING! I’ve got a small folder of drawings people have made inspired by or for my fic. I even got a video edit and vine comp once which I could not stop watching and smiling. It’s honestly so incredible that people have done that for something I wrote and I’m so thankful.
23. Do fanfics of your fanfic exist? 
No I didn’t even realize that could be a thing. I’d say if you’re using someone’s OC’s or ideas, do be sure to ask them first.
24. What is your favorite sentence that you’ve used in a fanfic? 
Oh gosh this is hard. One that’s always stood out to my is this line from Draco in chapter 18 of the Cursed Legacy
"Do you really think I wanted to be evil? That I set out to achieve that goal? No, that was never my reasoning to join the Deatheaters. No, mainly I wanted to fit in--to be a part of something greater. And to a naive boy who faced nothing but pressure from his parents to conform to their ideals, this," He forced up the left sleeve of his cloak to reveal the faded scar of where his dark mark once branded him, "seemed like that answer.”
25. Where do you draw inspiration from? 
A lot of music or photos/art. Whatever get’s me in the right mood to delve deeper into these characters. 
26. Can we get a teaser for an upcoming chapter? 
Here’s the one I used in a recent ask game for the next chapter of the Cursed Legacy!
"I think we're all a little afraid of the unknown. But that's what makes life exciting, right?"
James eyed Albus up and down, "Who are you and where's the pessimistic Albus I know?"
Albus gave his brother a small shove but cracked a smile, "You're a git."
No tags for this one since I would probably end tagging people how have already been tagged. But feel free to do this as well if you want to and consider yourself tagged by me :)
3 notes · View notes
priyaaank · 5 years ago
Text
Strangulating bare-metal infrastructure to Containers
Change is inevitable. Change for the better is a full-time job ~ Adlai Stevenson I
We run a successful digital platform for one of our clients. It manages huge amounts of data aggregation and analysis in Out of Home advertising domain.
The platform had been running successfully for a while. Our original implementation was focused on time to market. As it expanded across geographies and impact, we decided to shift our infrastructure to containers for reasons outlined later in the post. Our day to day operations and release cadence needed to remain unaffected during this migration. To ensure those goals, we chose an approach of incremental strangulation to make the shift.
Strangler pattern is an established pattern that has been used in the software industry at various levels of abstraction. Documented by Microsoft and talked about by Martin Fowler are just two examples. The basic premise is to build an incremental replacement for an existing system or sub-system. The approach often involves creating a Strangler Facade that abstracts both existing and new implementations consistently. As features are re-implemented with improvements behind the facade, the traffic or calls are incrementally routed via new implementation. This approach is taken until all the traffic/calls go only via new implementation and old implementation can be deprecated. We applied the same approach to gradually rebuild the infrastructure in a fundamentally different way. Because of the approach taken our production disruption was under a few minutes.
This writeup will explore some of the scaffolding we did to enable the transition and the approach leading to a quick switch over with confidence. We will also talk about tech stack from an infrastructure point of view and the shift that we brought in. We believe the approach is generic enough to be applied across a wide array of deployments.
The as-is
###Infrastructure
We rely on Amazon Web Service to do the heavy lifting for infrastructure. At the same time, we try to stay away from cloud-provider lock-in by using components that are open source or can be hosted independently if needed. Our infrastructure consisted of services in double digits, at least 3 different data stores, messaging queues, an elaborate centralized logging setup (Elastic-search, Logstash and Kibana) as well as monitoring cluster with (Grafana and Prometheus). The provisioning and deployments were automated with Ansible. A combination of queues and load balancers provided us with the capability to scale services. Databases were configured with replica sets with automated failovers. The service deployment topology across servers was pre-determined and configured manually in Ansible config. Auto-scaling was not built into the design because our traffic and user-base are pretty stable and we have reasonable forewarning for a capacity change. All machines were bare-metal machines and multiple services co-existed on each machine. All servers were organized across various VPCs and subnets for security fencing and were accessible only via bastion instance.
###Release cadence
Delivering code to production early and frequently is core to the way we work. All the code added within a sprint is released to production at the end. Some features can span across sprints. The feature toggle service allows features to be enabled/disable in various environments. We are a fairly large team divided into small cohesive streams. To manage release cadence across all streams, we trigger an auto-release to our UAT environment at a fixed schedule at the end of the sprint. The point-in-time snapshot of the git master is released. We do a subsequent automated deploy to production that is triggered manually.
CI and release pipelines
Code and release pipelines are managed in Gitlab. Each service has GitLab pipelines to test, build, package and deploy. Before the infrastructure migration, the deployment folder was co-located with source code to tag/version deployment and code together. The deploy pipelines in GitLab triggered Ansible deployment that deployed binary to various environments.
Tumblr media
Figure 1 — The as-is release process with Ansible + BareMetal combination
The gaps
While we had a very stable infrastructure and matured deployment process, we had aspirations which required some changes to the existing infrastructure. This section will outline some of the gaps and aspirations.
Cost of adding a new service
Adding a new service meant that we needed to replicate and setup deployment scripts for the service. We also needed to plan deployment topology. This planning required taking into account the existing machine loads, resource requirements as well as the resource needs of the new service. When required new hardware was provisioned. Even with that, we couldn’t dynamically optimize infrastructure use. All of this required precious time to be spent planning the deployment structure and changes to the configuration.
Lack of service isolation
Multiple services ran on each box without any isolation or sandboxing. A bug in service could fill up the disk with logs and have a cascading effect on other services. We addressed these issues with automated checks both at package time and runtime however our services were always susceptible to noisy neighbour issue without service sandboxing.
Multi-AZ deployments
High availability setup required meticulous planning. While we had a multi-node deployment for each component, we did not have a safeguard against an availability zone failure. Planning for an availability zone required leveraging Amazon Web Service’s constructs which would have locked us in deeper into the AWS infrastructure. We wanted to address this without a significant lock-in.
Lack of artefact promotion
Our release process was centred around branches, not artefacts. Every auto-release created a branch called RELEASE that was promoted across environments. Artefacts were rebuilt on the branch. This isn’t ideal as a change in an external dependency within the same version can cause a failure in a rare scenario. Artefact versioning and promotion are more ideal in our opinion. There is higher confidence attached to releasing a tested binary.
Need for a low-cost spin-up of environment
As we expanded into more geographical regions rapidly, spinning up full-fledged environments quickly became crucial. In addition to that without infrastructure optimization, the cost continued to mount up, leaving a lot of room for optimization. If we could re-use the underlying hardware across environments, we could reduce operational costs.
Provisioning cost at deployment time
Any significant changes to the underlying machine were made during deployment time. This effectively meant that we paid the cost of provisioning during deployments. This led to longer deployment downtime in some cases.
Considering containers & Kubernetes
It was possible to address most of the existing gaps in the infrastructure with additional changes. For instance, Route53 would have allowed us to set up services for high availability across AZs, extending Ansible would have enabled multi-AZ support and changing build pipelines and scripts could have brought in artefact promotion.
However, containers, specifically Kubernetes solved a lot of those issues either out of the box or with small effort. Using KOps also allowed us to remained cloud-agnostic for a large part. We decided that moving to containers will provide the much-needed service isolation as well as other benefits including lower cost of operation with higher availability.
Since containers differ significantly in how they are packaged and deployed. We needed an approach that had a minimum or zero impact to the day to day operations and ongoing production releases. This required some thinking and planning. Rest of the post covers an overview of our thinking, approach and the results.
The infrastructure strangulation
A big change like this warrants experimentation and confidence that it will meet all our needs with reasonable trade-offs. So we decided to adopt the process incrementally. The strangulation approach was a great fit for an incremental rollout. It helped in assessing all the aspects early on. It also gave us enough time to get everyone on the team up to speed. Having a good operating knowledge of deployment and infrastructure concerns across the team is crucial for us. The whole team collectively owns the production, deployments and infrastructure setup. We rotate on responsibilities and production support.
Our plan was a multi-step process. Each step was designed to give us more confidence and incremental improvement without disrupting the existing deployment and release process. We also prioritized the most uncertain areas first to ensure that we address the biggest issues at the start itself.
We chose Helm as the Kubernetes package manager to help us with the deployments and image management. The images were stored and scanned in AWS ECR.
The first service
We picked the most complicated service as the first candidate for migration. A change was required to augment the packaging step. In addition to the existing binary file, we added a step to generate a docker image as well. Once the service was packaged and ready to be deployed, we provisioned the underlying Kubernetes infrastructure to deploy our containers. We could deploy only one service at this point but that was ok to prove the correctness of the approach. We updated GitLab pipelines to enable dual deploy. Upon code check-in, the binary would get deployed to existing test environments as well as to new Kubernetes setup.
Some of the things we gained out of these steps were the confidence of reliably converting our services into Docker images and the fact that dual deploy could work automatically without any disruption to existing work.
Migrating logging & monitoring
The second step was to prove that our logging and monitoring stack could continue to work with containers. To address this, we provisioned new servers for both logging and monitoring. We also evaluated Loki to see if we could converge tooling for logging and monitoring. However, due to various gaps in Loki given our need, we stayed with ElasticSearch stack. We did replace logstash and filebeat with Fluentd. This helped us address some of the issues that we had seen with filebeat our old infrastructure. Monitoring had new dashboards for the Kubernetes setup as we now cared about both pods as well in addition to host machine health.
At the end of the step, we had a functioning logging and monitoring stack which could show data for a single Kubernetes service container as well across logical service/component. It made us confident about the observability of our infrastructure. We kept new and old logging & monitoring infrastructure separate to keep the migration overhead out of the picture. Our approach was to keep both of them alive in parallel until the end of the data retention period.
Addressing stateful components
One of the key ingredients for strangulation was to make any changes to stateful components post initial migration. This way, both the new and old infrastructure can point to the same data stores and reflect/update data state uniformly.
So as part of this step, we configured newly deployed service to point to existing data stores and ensure that all read/writes worked seamlessly and reflected on both infrastructures.
Deployment repository and pipeline replication
With one service and support system ready, we extracted out a generic way to build images with docker files and deployment to new infrastructure. These steps could be used to add dual-deployment to all services. We also changed our deployment approach. In a new setup, the deployment code lived in a separate repository where each environment and region was represented by a branch example uk-qa,uk-prod or in-qa etc. These branches carried the variables for the region + environment. In addition to that, we provisioned a Hashicorp Vault to manage secrets and introduced structure to retrieve them by region + environment combination. We introduced namespaces to accommodate multiple environments over the same underlying hardware.
Crowd-sourced migration of services
Once we had basic building blocks ready, the next big step was to convert all our remaining services to have a dual deployment step for new infrastructure. This was an opportunity to familiarize the team with new infrastructure. So we organized a session where people paired up to migrate one service per pair. This introduced everyone to docker files, new deployment pipelines and infrastructure setup.
Because the process was jointly driven by the whole team, we migrated all the services to have dual deployment path in a couple of days. At the end of the process, we had all services ready to be deployed across two environments concurrently.
Test environment migration
At this point, we did a shift and updated the Nameservers with updated DNS for our QA and UAT environments. The existing domain started pointing to Kubernetes setup. Once the setup was stable, we decommissioned the old infrastructure. We also removed old GitLab pipelines. Forcing only Kubernetes setup for all test environments forced us to address the issues promptly.
In a couple of days, we were running all our test environments across Kubernetes. Each team member stepped up to address the fault lines that surfaced. Running this only on test environments for a couple of sprints gave us enough feedback and confidence in our ability to understand and handle issues.
Establishing dual deployment cadence
While we were running Kubernetes on the test environment, the production was still on old infrastructure and dual deployments were working as expected. We continued to release to production in the old style.
We would generate images that could be deployed to production but they were not deployed and merely archived.
Tumblr media
Figure 2 — Using Dual deployment to toggle deployment path to new infrastructure
As the test environment ran on Kubernetes and got stabilized, we used the time to establish dual deployment cadence across all non-prod environments.
Troubleshooting and strengthening
Before migrating to the production we spent time addressing and assessing a few things.
We updated the liveness and readiness probes for various services with the right values to ensure that long-running DB migrations don’t cause container shutdown/respawn. We eventually pulled out migrations into separate containers which could run as a job in Kubernetes rather than as a service.
We spent time establishing the right container sizing. This was driven by data from our old monitoring dashboards and the resource peaks from the past gave us a good idea of the ceiling in terms of the baseline of resources needed. We planned enough headroom considering the roll out updates for services.
We setup ECR scanning to ensure that we get notified about any vulnerabilities in our images in time so that we can address them promptly.
We ran security scans to ensure that the new infrastructure is not vulnerable to attacks that we might have overlooked.
We addressed a few performance and application issues. Particularly for batch processes, which were split across servers running the same component. This wasn’t possible in Kubernetes setup, as each instance of a service container feeds off the same central config. So we generated multiple images that were responsible for part of batch jobs and they were identified and deployed as separate containers.
Upgrading production passively
Finally, with all the testing we were confident about rolling out Kubernetes setup to the production environment. We provisioned all the underlying infrastructure across multiple availability zones and deployed services to them. The infrastructure ran in parallel and connected to all the production data stores but it did not have a public domain configured to access it. Days before going live the TTL for our DNS records was reduced to a few minutes. Next 72 hours gave us enough time to refresh this across all DNS servers.
Meanwhile, we tested and ensured that things worked as expected using an alternate hostname. Once everything was ready, we were ready for DNS switchover without any user disruption or impact.
DNS record update
The go-live switch-over involved updating the nameservers’ DNS record to point to the API gateway fronting Kubernetes infrastructure. An alternate domain name continued to point to the old infrastructure to preserve access. It remained on standby for two weeks to provide a fallback option. However, with all the testing and setup, the switch over went smooth. Eventually, the old infrastructure was decommissioned and old GitLab pipelines deleted.
Tumblr media
Figure 3 — DNS record update to toggle from legacy infrastructure to containerized setup
We kept old logs and monitoring data stores until the end of the retention period to be able to query them in case of a need. Post-go-live the new monitoring and logging stack continued to provide needed support capabilities and visibility.
Observations and results
Post-migration, time to create environments has reduced drastically and we can reuse the underlying hardware more optimally. Our production runs all services in HA mode without an increase in the cost. We are set up across multiple availability zones. Our data stores are replicated across AZs as well although they are managed outside the Kubernetes setup. Kubernetes had a learning curve and it required a few significant architectural changes, however, because we planned for an incremental rollout with coexistence in mind, we could take our time to change, test and build confidence across the team. While it may be a bit early to conclude, the transition has been seamless and benefits are evident.
2 notes · View notes
jagdogger2525 · 5 years ago
Text
How to Setup RetroPie & Kodi (with Netflix) on a Raspberry Pi via Raspbian
This is a full and extensive setup to have a desktop, Media Center, and Retro Gaming station in a single Raspberry Pi.
Note: Any time Pi is mentioned, it is referring to Raspberry Pi in the Hardware (that you hopefully purchased).
Hardware:
Raspberry Pi (preferably 4 4GB model yet is able to work with any Pi)
Pi Power Cable (Micro-USB [non-Pi 4] or USB-C [Pi 4])
HDMI Cable [and accompanying Adapter (Micro-HDMI Adapter for Pi 4 / Mini-HDMI Adapter for Pi Zero [0])]
Keyboard
Mouse
Generic Game Controller
32GB MicroSD card (256GB max)
Memory Card Reader [MCR]
A regular (and up-to-date & running) Windows/Macintosh/Linux PC to install the software onto the MicroSD card
A working router/switch with internet access
(Optional) CAT5e or CAT6 Ethernet Cable (Long enough to plug in the router and reach to plug into the Pi and if the router has no wifi)
(Optional) Micro-USB On-The-Go [OTG] cable (Pi Zero exclusively)
(Optional) 4 USB Hub (Pi Zero and A Models exclusively)
(Optional) USB LAN Adapter (with CAT5e/CAT6 Ethernet cable for use with Pi Zero, Pi 1, and Pi 2 exclusively)
(Optional) USB Wifi Adapter (for use with Pi Zero [exclusively with Micro-USB OTG cable & USB Hub], Pi 1, and Pi 2 exclusively)
Software:
Balena Etcher
Raspbian
RetroPie Games (Public Domain):
MAME
Non-MAME
PC Setup:
Download the latest Etcher and Raspbian builds
Once downloaded, insert the MicroSD card into the MCR and then into the computer
Launch/Execute/Start Etcher
Click 'Select image'
Locate the download folder and select the Rasbian build you just downloaded
The 'Select target' should already be chosen as the MicroSD card in the MCR, if not, click 'Select target' and find and select the MicroSD card
Click 'Flash' and enter your credentials
Once Etcher says that the flash is 'successful', eject/unmount the MicroSD card (should be called 'boot' and if it wasn't already ejected/unmounted already), and remove the MCR
Remove the MicroSD card and insert it into the Raspberry Pi (on the under side with the text facing up and the shiny spots facing down)
Raspberry Pi Setup:
Once the MicroSD card is inserted, plug in everything EXCEPT the power cable
Plug in the power cable last (so that everything is able to be seen by the Pi)
You'll be prompted to setup Raspbian for a First-Time Setup [FTS]
After the FTS is complete, right-click the Clock
Click 'Digital Clock Settings'
In 'Clock Format', replace '%R' with '%I:%M %p'
Click 'OK'
Right-Click the Task Bar
Click 'Panel Settings'
Select the radio/circle button that is next to 'Bottom'
(Optional) Select the 'Advanced' tab
(Optional) Check the box next to 'Minimize panel when not in use'
Click 'Close'
Once the initial Raspbian setup is done, open Terminal* and type:
sudo apt-get update && sudo apt full-upgrade
sudo apt autoremove
sudo apt-get install kodi kodi-peripheral-joystick kodi-pvr-iptvsimple kodi-inputstream-adaptive kodi-inputstream-rtmp build-essential python-pip python-dev libffi-dev libssl-dev libnss3 git lsb-release
sudo pip install pycryptodomex
wget https://github.com/castagnait/repository.castagnait/raw/master/repository.castagnait-1.0.1.zip
git clone --depth=1 https://github.com/retropie/retropie-setup.git
cd retropie-setup
chmod +x retropie_setup.sh
sudo ./retropie_setup.sh
Select 'Ok'
Select 'Basic Install'
Select 'Yes'
After the installation, select 'Configuration / tools'
Select 'autostart'
Select 'Boot to Desktop (auto login as pi)'
Select 'Ok'
Select 'Ok'
Select 'Cancel'
Select 'Back'
Select 'Perform reboot'
Select 'Yes'
Open Terminal back up and type:
kodi
Once Kodi is loaded up, hit the Cog/Gear up top
Select 'System'
Go down to 'Add-ons'
Turn 'Unknown sources' on
Select 'Yes' to the pop-up
To back to the previous menu (where 'System' was selected) and select 'Add-ons'
Select 'Install from zip file'
Go into the 'Home folder'
Select 'repository.castagnait-1.0.1.zip'
Go back one menu and select 'Install from Repository'
Select 'CastagnaIT Repository'
Select 'Video Add-ons'
Select 'Netflix'
Select the top most choice (if given multiple choices for version aka 1.1.0, 1.1.1, or 1.2.0)
Select 'Install'
Select 'Ok'
Go back to the main (or landing) menu
Select 'Add-ons' between 'Games' and 'Pictures’
Select 'Netflix'
Enter credentials
It is going to ask about installing Widevine and setting aside 3.1GB of memory, just select 'Install Widevine' and just keep accepting the other pop-ups
After this installation, both Kodi and RetroPie should be properly installed and able to be accessed
Note: To get back into RetroPie, in Terminal, just type:
emulationstation
*Terminal looks like 'Command Prompt' from Windows
1 note · View note
amarauder · 6 years ago
Text
chapter twenty-nine ❥ original
it’s a hate-love thing original version.
james potter x reader.
Tumblr media
"Wasn't it so romantic?" asked Arabella dreamily. "I loved it! The wedding...and then the reception...everything!"
"It was all right for the most part, but I didn't like Frank and Alice snogging for about five minutes when they had to kiss," said Sirius grumpily.
James snorted. "Well, what did you expect, Padfoot? We'd probably see a whole movie of you and Arabella snogging when your wedding comes."
"Yeah, I still don't get why you and Y/n are planning to get married so early. I mean, you guys are pretty young, and next April's going to come by pretty fast. Bella and I are waiting longer before we tie the knot."
Y/n smiled and clutched James' hand, squeezing it tightly. "We want to get together before it's too late, Sirius. I mean, with Voldemort and everything—"
"Oh, don't remind me, n/n. I know all about the stupid git, believe me. I also think that Regulus is a Death Eater."
"You've been saying that for practically forever, Sirius, dear," objurgated Arabella, sighing.
"Well, it's true, isn't it? I only speak the truth, Bella."
Remus snorted, and turned it into a hacking cough, grinning at Sirius. "You wish."
"Excuse me?" Sirius pretended to look extremely offended.
James wrapped an arm around Y/n's waist and held her carefully, as if afraid that she'd break any minute. Just the feeling of touching her created shivers down his spine and he smiled dreamily. Even with a madman after him and his fiancée, he still wanted to be married to Y/n before it all ended. Before their lives ended.
"Hey, James?"
He blinked and stared around. "Who said my name?"
"Are you all right?" inquired Sirius anxiously. "You look all green, mate. D'you feel sick?"
James groaned and rubbed his forehead. "Now that you mention it, I do."
"I think you were affected by Frank and Alice's snog, too," agreed Sirius mournfully.
"Padfoot, shut up. It wasn't the snog...I guess I'm just not feeling well. Maybe it's because of the Order and stuff."
"Oh, the Order." Sirius rolled his eyes. "That's nothing to worry about. I think we can handle Death Eaters, four against one."
"Or not," added Arabella, frowning.
"Don't worry about it," reassured Y/n, smiling. "There's nothing to fret about, Bella. In the meantime, I think we have to go on with the wedding plans."
"Oh! Of course!"
"Now?" questioned James incredulously. "Y/n, the wedding is next year! We have plenty of time to plan all that stuff. We have a meeting with the Order this evening, though."
"It was so nice of you two to let the Order use your home as headquarters," said Jennifer approvingly. "I mean, you'll never get any peace at all. We all have to basically live there, anyway, since those are the Order's rules."
"Yes, it is rather stupid," agreed Y/n, flushing, "I mean, how we all have to practically live together, being in the Order. But I'm not complaining. In fact, I'm rather honored that Dumbledore hand-picked us to be in the Order."
"Why wouldn't he?" said Sirius pompously. "We are intelligent and respectable people, after all."
"Can you believe we're out of Hogwarts already?" commented Violet. "I mean, it seemed like yesterday we were all little first-years, ready to be sorted into our Houses."
"Yeah, time flies by so quickly."
"You know that Ellyn Bedson woman from the Ministry?" interrupted Violet, looking upset.
"Yes, the one who worked in the Department of Mysteries," affirmed Jennifer. "She's all right since she's helping me get started along with Bode, but she's a bit too condescending, so to speak."
"I don't like her," confirmed Violet. "She keeps flirting with Jackson at our breaks."
"Well, you keep flirting with Amos Diggory," said Arabella stiffly.
"I do not! He always hovers around me like a bee...it isn't my fault."
"True," admitted the former.
"Well, you can't stop that," added Y/n. "Just ignore Diggory, and maybe he'll leave you alone. Merlin knows he bothered Bella long enough before you."
"Hell, yeah," muttered Arabella under her breath.
"Why does he have to follow me around anyway?" ranted Violet furiously. "I mean, I'm no pageant queen, and I definitely don't have the kind of personality that Amos looks for in girls. So why me?"
"Maybe it was because of that comeback you made to him at Hogwarts," said James thoughtfully. "After all, one can never forget something so brilliant and embarrassing as that."
Violet blushed. "Oh, C'mon, it wasn't that great."
"It was too! Merlin, I wish I could've taken a picture of Diggory's face when you said that to him. It was bloody amazing! You should be like that more often, Vi."
"Hear, hear," intoned Jennifer enthusiastically. She was always one to call for a change of character in Violet.
"So, n/n, you've already got some of your wedding planned, right?" asked Arabella.
"Well...no," admitted Y/n, flushing. "We haven't had the time to think about it, actually, ever since the proposal."
"Oh, the proposal." She looked at Sirius dreamily. "It was so romantic. How did you and James manage to pull it off?"
James and Sirius both grinned, and winked at each other, and then at their respective fiancées.
"Simple, girls," said Sirius roguishly. "Well, at least, it was simple for me, but for others"—he looked at James meaningfully—"it took some practice."
Y/n laughed. "Don't tell me you were scared, James."
"Like hell," agreed James shamelessly. "Is it that surprising?"
"The almighty James Potter, scared? Merlin, the world may end any moment now. C'mon, you've bullied people nearly all your years at Hogwarts, and you were scared of asking one simple question?" She shook her head at him.
"Aww...give a guy a break here, Y/n. It isn't my fault that I get nervous doing these kinds of things."
"Which brings me to my next point. You never get nervous, James."
"I'm still human," retorted James indignantly. "Why do you make me sound like I'm some sort of god?"
"You are," Y/n pointed out. "Or, at least you were to the girls at Hogwarts. Were they upset when you proposed!"
"Furious," added Sirius, laughing. "They looked like they were about to kill you, Y/n. They were upset enough that James fell in love with you, and eventually got you, but to have your love official by marriage? Their worst nightmare, I say."
"You're not too off either, Padfoot," said Remus thoughtfully. "After all, the girls were always after you whenever you had some fight with Arabella, and didn't makeup soon enough."
"True, that I am a lady's man."
"What an egotist," mumbled Arabella, rolling her eyes. "I'm about to marry a man who only thinks for himself. At least your man deflated his head when you gave him a tough time, Y/n."
"You think he's deflated enough, Bells? I don't think so."
"You girls always undermine us fellows," said James, pouting. "We're good to you guys; why complain? At least we don't strut like Diggory or Mackenzie."
Sirius involuntarily shuddered at the latter name.
Y/n giggled and snuggled closer to her fiancé. They had reached the headquarters of the Order and now entered it. Marlene McKinnon, who had a whole family of kids at the Order, but was looking to get a place of her own, greeted them. Alice and Frank were playing chess near the fireplace, and Mad-Eye Moody was glaring at them suspiciously through his eyes. James had always thought that there was something creepy about them, though they were normal ones like any other human possessed.
"Potter, L/n, Dean, Black, Walker, Lupin," greeted Mad-Eye gruffly one by one, as he inclined his head slightly toward them.
"Hello, Mr. Moody," said Y/n softly. She both feared and admired the famous Auror.
"Alastor, girl, call me by my name. There shouldn't be any formalities in the Order. We're all a family."
Sirius grinned. "Well, that's good, because you guys can all be my surrogate one."
"Always the saucy one, aren't you, Black?" growled Moody. "Well, you're going to find a better family in the Order than your own, so feel right at home. However, you do know that the Order is very dangerous and that you're giving your life to this organization."
"Certainly, sir," said James loudly. "We want to help you fight Voldemort any way we can."
Moody twitched at the name. "Potter, will you stop using his name, damn it!"
James looked rather alarmed. "But the fear of his name—"
"—increases your fear of himself. Yes, I know, Dumbledore has told me that plenty of times. Seems as though you admire Dumbledore so much, Potter, that you have decided to start quoting him to your elders, eh?"
"I meant no disrespect, sir."
"Yeah, sure you didn't. L/n, you got the papers ready?"
"Right here, sir." Y/n produced a thick wad of paper from the paper folder that she was carrying. "Got the plans to his hideout and everything."
"Excellent, L/n. You've proved useful to us. Are you sure this is his real hideout, and not a bluff to throw us off? After all, You-Know-Who has spies on his side as well."
"I'm not sure of the true veracity of these blueprints, but I'm pretty sure they're partially real."
"You trust the spies who got this?"
"With all my heart."
"Good, good. I shall present this to Dumbledore himself, since this is very important information, and highly top secret. Where has Pettigrew and Bradley gone to?"
"Jackson's still at work," piped up Violet. "He hasn't enough time to do anything these days. And Peter's at a job interview."
"Pettigrew is absolutely useless," growled Moody. "The boy can hardly write his own name properly. Don't know what Dumbledore was thinking, having him in the Order. Bradley, though, he's very valuable to us. Don't want to lose him."
"Of course not," she affirmed readily.
"You wouldn't," Arabella pointed out, "because he's your boyfriend."
Violet turned red and rolled her eyes.
"Sir, is there any news of the latest attacks?" queried James worriedly. "Voldemort hasn't made a single attack for nearly a month. That's usually not like him. He causes chaos wherever he goes."
"Shrewd thinking, Potter. I was pondering on it myself. I think that You-Know-Who has something planned that's very large and will cost lives. If only we can infiltrate his lines and know what it is."
"You make it sound like this is a war," commented Sirius, laughing.
"This is no joking matter, Black. We are at war, boy, and would you stop laughing? This is serious, Black, and I don't find anything funny about it. People are getting killed, and you're laughing? Live up to your name, boy!"
"My n—oh!" Sirius laughed harder. "Ha, ha, be serious...live up to your name...ha, ha!"
"Padfoot, shut it," snapped James, rubbing his forehead ferociously. "Can't you be serious for once and stop making a joke out of everything? We are at war, like Mr.—Alastor said, and we need everyone's cooperation."
"Sorry." The dark-haired boy looked down at his feet. "I didn't mean it."
"Where's Longbottom at? Longbottom!" barked Moody.
"Yes?" came the voices of Frank and Alice.
The Auror groaned. "This is why I never like to have married couples mingle with us elders. They always have to share the same last name. Ah, I'll just call Alice 'Hart' instead, to make things easier. Longbottom, Frank!"
"Yes, Alastor?"
"Done with that paperwork?"
Frank closed his eyes and sighed. "Nearly finished. Just got a few more sentences, and it'll be ready."
"We've got these recruits for the Order," said Moody gruffly. "Kingsley Shacklebolt...he's going to be a sixth year this September...Emmeline Vance..."
"Emmeline?" interrupted Y/n, her eyes widening. "The fifth year, soon-to-be-sixth-year, Emmeline?"
"Correct, L/n."
"But she's—" She struggled for the words. "A bit ditzy, so to speak."
"Is she? Well, she is from a very respectable family, and from what I've heard, she's one of the top choices for Head Girl. Also, the teachers have all praised her well for her abilities, except for Hurst, the idiot."
James snorted loudly at the last comment, and Y/n sent him a glare, causing him to cough and snigger more quietly.
"Can you consider my cousin?" asked Sirius eagerly.
"Who's your cousin, Black?"
"Nymphadora Tonks, sir. She's only about four years old, but she's a Metamorphmagus."
"Is that so? Well, then, I'll have to mention that to Dumbledore next time. Metamorphmagi are extremely rare, and they would certainly be useful to the Order. Good thinking, Black."
Sirius grinned and gave a mock salute. "Thank you, Alastor."
"Lupin! Full moon coming up?"
Remus looked rather alarmed at being spoken to. "Er—in a couple of weeks, sir."
"I'm assuming you will not hurt any of our members?"
"No promises sir, but I will try."
"Good." And so the dull afternoon continued, with Moody questioning and deprecating them about Order business.
Jennifer sobbed wildly, wiping her eyes. Remus had just broken up with her. It wouldn't have mattered to her as much if he had given her a substantial reason, but he hadn't said anything coherent that answered her question about why he broke up with her. Y/n, Arabella, and Violet were trying to comfort her.
"Look, Jen, I think the boys might know something about this. Let's go ask them."
And so they went to the room that James and Sirius shared, and knocked on the door.
"Who is it?" came Sirius' voice.
"It's us, you stupid prat," called Arabella impatiently. "Let us in!"
"Gee, no need to yell, Bellsies."
Sirius opened the door, and ushered them inside.
"Do you know why Remus broke up with Jennifer?"
"He's scared," said James quietly. "He's afraid that if they stay together, and get married, Jennifer won't be happy because of his—condition."
"You mean you knew, and never told us?" demanded Y/n furiously. "James Potter, I would have expected better of you!"
"Remus told me not to tell!" exclaimed James wildly. "It wasn't my fault...and I wasn't sure if he was actually going to do it or not. Trust me, he still loves Jennifer, but thinks it's the best for her."
"The best for me?" Jennifer sniffed again. "Why the hell would he think that? He knows I love him, and that I would never leave him. We didn't have to get married, but why did he have to break up with me?"
"I never knew Remus was such an idiot," mumbled Arabella. "How could he do such a thing?"
"Now what?" muttered Sirius to his best friend.
James shrugged. "Jen, Remus wanted me to tell you that you should move on. You know, find another guy who would always be there for you."
"You mean Remus would never be there for me?"
"It's because of his transformations. He thinks that it would be a burden for you to have him disappear every month and get all cranky when the full moon approaches. He wants you to have a guy who can always be there for you, and will always treat you right."
"I love him," said Jennifer firmly, "and I'll never move on and find a new guy, because he'll always be in my heart, no matter what."
James shook his head. "Moony made a bad choice, Padfoot."
Sirius snorted. "You think? Our dear friend needs to sort out his priorities. Maybe he should ask Jennifer out again, and they should start all over."
"What seems to be the problem here?"
The six of them all turned around, alarmed, to see Professor Albus Dumbledore himself standing there before them, his blue eyes twinkling as usual.
"Professor!" James nearly shouted, and grinned innocently. "We were—er—"
"Laughing at Sirius' joke," continued Violet hastily. "We hope we didn't miss any Order meetings, sir."
"Not at all, Ms. Walker. In fact, I was going to find you all and tell you to enjoy yourselves. Don't get too caught up in the Order business here. You, young people, need to enjoy yourselves while you can before it's too late. Mr. Potter, you are not even twenty yet, and you're working harder than Alastor these days."
"I am?" James looked at his old headmaster in astonishment. "I don't think I'm working too hard; I mean, we're just looking over Voldemort's possible hideouts and his Death Eaters. Of course, there's always the wedding, but we can put that aside for now if it helps."
"No, no, James, I want you to go on with your wedding plans," said Dumbledore earnestly. "You and Y/n shall be married, and I will not be the one to stop you two from being in love."
"Of course we shall," agreed Y/n, a bit startled at the headmaster using her given name instead of her surname.
"Excellent." Dumbledore clapped his hands together. "Now, I must be off to assist Alastor in his findings—I will see you at our meeting tonight."
"Yes, Professor."
"Do call me Albus. After all, I'm not your headmaster any longer." He winked and Disapparated from the spot.
"That was certainly interesting," commented Sirius.
Jennifer laughed, and for one second, she had forgotten all about her break-up with Remus and chatted along with the rest of the group. After all, there were other things that would break her heart even more, and the Order needed her. She didn't have time to wallow in self-pity because her long-time boyfriend broke up with her for a trivial reason.
Y/n smiled at her friend. She was angry at Remus for breaking off his relationship with Jennifer but seeing her laugh again made her anger lessen slightly. Laughter was something that Y/n had a feeling wouldn't exist for very long in their world.
James sighed, and looked up at the ceiling. It was a brand-new house, newly built and freshly painted. The paint was snow-white, and it gave the Order headquarters a sort of elegance to it. His stomach tightened when he thought of the Order of the Phoenix. Shortly after their graduation, Dumbledore had come up to them and asked them to be a part of a group that he had created to defeat Voldemort. They, of course, had agreed at once and signed their oaths to the group. However, James felt a foreboding feeling inside of him that perhaps it was the wrong decision. After all, being in the Order was a dangerous risk. He would be putting his whole family in danger since his parents weren't part of the Order—they were too busy with their full-time Auror lives.
He suddenly grabbed Y/n's hand by impulse and squeezed it tightly. His thoughtful hazel eyes locked with her brilliant, almond-shaped e/c ones, and he nodded slowly. Y/n was one of the main reasons why he even bothered joining the Order. She was his life, and he had wanted her for so long now. James needed to protect her, and the children that they would have together later on.
"What's wrong, James?" whispered Y/n, her eyes widening with surprise.
"I don't want you to get hurt," he said gently and brushed his hand against her cheek. He felt small shivers escape her body.
"What are you talking about?"
"The Order. I'm putting so many of you in danger by joining, especially since Voldemort wants me to join him."
"He's given up on trying to make you do that, James. We're too close to Albus for him to try anything on us again."
"You never know what Voldemort might do, Y/n. Even though I hate him with all my heart, he is a genius. You know what Albus told us about his younger days. He used to be a prefect and Head Boy, and his name was Tom Riddle. Albus said he was one of the most brilliant students Hogwarts has ever seen. However, he had sunk too deeply into the Dark Arts, and now look who he has become."
"There has to be a reason for Voldemort to want to kill so many of us besides the fact that he wants control of the world."
"There is none besides that. He wants to get rid of any magical people who aren't purebloods, and then have the purebloods take over the world with him. If we don't stop him, Y/n, this world is going to be a dark world."
"We'll stop him, James," said Y/n firmly and resolutely, squeezing her fiancé's hand tighter. "We'll stop him, no matter how much it takes."
"Hey, you two lovebirds coming?" Sirius grinned at his best friends. "Arabella and I are going to Hogsmeade for a bit. You coming?"
"What about Jennifer and Violet?"
"We're not going," said Jennifer quickly. "Vi wants to spend the day at Jackson's house, and I want some time alone."
Y/n nodded, understanding. "Sure, Sirius, we'll go."
"Great! Let's go, then."
The two couples Apparated right in front of Honeydukes, where crowds of students were busily chatting or shopping. It felt good to feel some of Hogwarts again through the students, and they were about to go to the Three Broomsticks for a butterbeer, since it was a chilly day in November, when someone called their name.
"Y/N!"
Y/n turned around to see Emmeline waving energetically, in her little group of friends, the younger girl extremely excited.
"Oh, hello, Emmeline," she greeted cordially.
"Ooh, Hogwarts is so lonely without you guys!" she gushed effusively. "It's so dull without the Marauders spicing it up with some of their pranks."
"So we have made our mark, have we?" Sirius looked very pleased.
"Definitely. The Head Boy's really dull this year, and the Head Girl is even worse. I wish you guys were the Heads again...that was the best year!"
"How's your sixth year?"
"Busy. I'm still a prefect again, but I don't have as many responsibilities as last year. When's your wedding going to be, Y/n?"
Before Y/n could have time to reply, a tall and very good-looking girl who looked to be either a sixth or seventh year gasped and giggled along with her friends, pointing at James and Sirius.
"Look, it's two of the ringleaders of the Marauders!" exclaimed one of them, laughing. "James Potter and Sirius Black!"
"James! Sirius!" The tall girl waved and smiled seductively, walking over to them.
"Er—hello. Do we know you?" James furrowed his brow.
"Oh, I'm Alex Opalisk," she said off-handedly.
James suddenly recognized her as one of the lovesick fan girls who always followed him around at Hogwarts. She was a seventh year Gryffindor, though Merlin only knew how she got into it instead of Hufflepuff.
"Oh, I remember you," he said absent-mindedly. "Er—nice to see you again, Alex."
She gasped, her eyes dancing. "Oh, you remember me, James Potter? How splendid! But you already have a girlfriend." She looked disdainfully over at Y/n.
"My fiancée," he elaborated, nodding. "We're getting married next April."
Alex's face fell, and her hand flew conspicuously to her hair, which was done in a fashionable twist, making it look elegant. "Oh, that's wonderful!" she said in an affected voice.
"Yes, isn't it?" said Y/n, gritting her teeth. "Now, if you excuse us—"
"Don't be rude to the Head Girl, L/n," said Alex coolly.
"You're Head Girl?" said Arabella, who had been quiet most of the time, incredulously. "Who would pick you?"
Sirius coughed, hiding a grin.
"Dumbledore, certainly," said Alex, tossing her head in a huffy manner. "I do think I deserve the position, Figg."
"Oh, I'm honored you know my name, Randall. However, I would watch your mouth. We are respected people, and very close to Dumbledore. So if you step out of line, we will be sure to let Albus know at once."
"I don't think you have that sort of authority over us," said Yvonne Lorencia, one of Alex's friends. "After all, we are technically legal adults, since we have our Apparition licenses and everything."
"Agreed," intoned Alex, nodding virtuously.
"True, but these are dark times, and Albus trusts us with his heart," said Sirius. "He will dismiss any student unworthy of his or her positions as prefect or Head Boy and Girl."
"I don't think you should talk to them that way," put in Emmeline, while her friends agreed readily. "After all, James and Y/n are Aurors-in-training, and Arabella and Sirius work for the Ministry. They are very close to Professor Dumbledore, and you should respect them. They are, after all, more adults than you, Alex."
"Don't talk to me like that, you stupid Mudblood," snapped Alex loftily.
"I shall speak to Professor Dumbledore of your crude language, Ms. Randall," said Y/n, raising an eyebrow.
"It's just 'Mudblood'; I don't see the big deal."
"Certainly you might not, but it is using bad language."
"You're just saying that 'cause you're a Mudblood, too."
James flew up in rage. "Did you call my girl a—a—you-know-what, Randall?" he roared, causing several of the student body to stare.
"What, the great James Potter not able to say a word like 'Mudblood'?"
Regulus and his friends, who happened to be standing nearby, laughed when hearing this. "Go, Alex!" Regulus cried, clapping. "Go out with me?"
Alex smiled, revealing little gleaming white teeth. "Oh, but Regulus darling, I'm a Gryffindor and you're a Slytherin. We don't mix well at all."
"Who cares about that. You with me?"
"Of course." She grinned, dreaming of the handsome Black.
Sirius groaned conspicuously. He had hoped everyone would hate Regulus and that he would end up single forever, but for some unknown reason, many of the girls chased after him like fox and hound.
"What's the matter, big brother?" Regulus smirked. "Jealous that I have a date with a pretty girl, and you have a less-prettier fiancée?"
"Ha! Yeah, right, Reg. Actually, I was wondering how you could even get a girl to agree to be your date to Hogsmeade. Amazing, really, how someone like you can attract girls at all."
James bit his lip to keep himself from laughing. He always did enjoy the bickers between his best friend and the little brother of the latter; they were always quite amusing and entertaining to watch.
Regulus rolled his eyes. "Nice comeback, Sirius, really. However, I really would not be talking. You have some dirt for a girlfriend there yourself."
"That's it! I've had more than enough patience for you than you really deserve, Regulus, but you've gone way too far this time. Arabella is not dirt, and she is certainly better than the girls that you go out with. So I'd watch your tongue next time, Regulus, or there will be trouble. C'mon guys, let's get out of here and get a butterbeer at the Three Broomsticks. You come too, Emmeline, and bring your friends along as well."
"Oh, sorry, Sirius, I can't," apologized Emmeline, looking disappointed. "I have to get back to Hogwarts soon and start on my homework. We have so much this year!"
"That's too bad," said Y/n sympathetically, as she and Arabella took turns hugging the young girl. "Hopefully we'll see you again."
"Yes, hopefully. You will visit, won't you?" Emmeline looked eagerly at the adults.
"Of course," piped up Arabella, smiling.
"Hey, girls, we know good-byes are painful, but I really am cold," said James through chattering teeth.
"Yes, yes. Well, bye, Emmeline!"
They entered the Three Broomsticks and sat at the nearest empty table. Madam Rosmerta gasped when she saw the foursome and clasped her hands eagerly.
"Why, if it isn't the infamous James Potter and Sirius Black!" She smiled. "And who are you lovely young ladies?"
"You remember Y/n L/n and Arabella Figg, don't you, Madam Rosmerta?" James gave a casual wave to the girls. "They're our fiancées."
"Fiancées?" Madam Rosmerta raised an eyebrow. "You've actually settled down with girls? I don't believe it! I think that you are fooling me here, boys and that these poor girls are mere flings."
Arabella laughed. "Oh, no, Madam Rosmerta, we're their girlfriends, unfortunately, of course. But we, Y/n and I, fell for their charm like every other girl at Hogwarts eventually, though they did have a tough time getting to us." She winked at Sirius.
"Stop it, Bella." Sirius nodded in assent to his girlfriend's statement.
"Why, if that doesn't beat it all—James Potter and Sirius Black coming back to my shop with girls and a steady relationship. Things sure have changed."
"Surely we weren't that bad, my dear Rosmerta," said James smoothly. "After all, Sirius has been with Arabella since first year, miraculously. Of course, they've had their good and bad moments—"
"A complete understatement," interrupted Y/n, rolling her eyes.
"—but they still make a good couple anyway," he finished, raising an eyebrow at his fiancée questioningly. Y/n stuck out her tongue in response.
"How did you manage to pull off a proposal without ruining it?" Madam Rosmerta looked truly amazed at the changes James and Sirius had gone through.
"Oh, it took some time, at least for James, but we pulled it off eventually," replied Sirius.
"You two have changed so much since I last saw you here."
"Well, with us being adults and Voldemort on the rise, we needed to grow up, I suppose."
The pub had gone completely silent after Sirius' remark. Whispers were exchanged among the magic folk, and they looked fearfully at Sirius, and then around the pub as if waiting for Voldemort to appear all of a sudden into the shop. Madam Rosmerta had dropped the large glass of butterbeer that she was about to hand over to a tottering old woman, and the liquid spilled over her lavish magenta robes.
"You said You-Know-Who's name!" exclaimed one young wizard, not much older than them, in barely a whisper.
"Yeah, Voldemort," said Sirius casually, shrugging. The wizard gave another shudder. "So what? It's just a name."
"Yes, but he might hear you and come any second."
"Don't give me that crap, Mr.—what's your name?"
"Jason Wood...hey! I know you from somewhere."
"Wood?" Sirius looked at James, and then back at the wizard in surprise. "Jason Wood, ex-captain of the Gryffindor Quidditch Team?"
"Yes, that's me, and you're—by golly! Cassia, look." He nudged the petite, pretty little woman next to him. "It's Potter and Black, our old teammates."
The small brunette looked startled and then began to smile, her creamy face lighting up with delight.
"James Potter and Sirius Black. Well, well, we haven't seen you for quite a while yet. And what's this? Finally snagged Y/n L/n, now, have you, Potter?"
James nodded and brought Y/n closer to him. "You bet, Wood. You and Cassia married?"
"Nah. I've yet to propose to her, eh? No, we're still boyfriend and girlfriend, though."
"It's great," said Cassia in a bit of a strained voice. "We don't need to be married...staying like this is good enough for me."
Y/n nodded politely. "We're engaged. So are Sirius and Arabella."
Wood set down his butterbeer with a clink. "Well, how about that? I would have never expected Potter and Black to be almost-married men. Congratulations."
James, Sirius, and Wood then started to discuss Quidditch, while the three girls discussed their wedding plans.
"You must come to mine, Cassia," said Y/n eagerly. "I'll have you as one of my bridesmaids."
"I couldn't," said Cassia, shaking her head, laughing. "I'm not worthy of such a thing, Y/n. Please, don't invite me. I'll only burst into a pathetic flood of tears anyway when the actual wedding takes place."
"What does that matter? Bella will probably cry, too."
"I second to that," intoned Arabella emphatically.
"Y/n, don't you understand? I can't!"
"Why not?"
"I think"—she cast a furtive glance to the men—"that we should discuss this in the bathroom. Guys, we have to—er—fix our make-up in the bathroom. We'll be back in a jiffy, all right?"
"Yeah, sure." Wood waved an impatient arm around, too absorbed in James' rich-detailed account of the last Quidditch game between England and Czechoslovakia.
Cassia dragged the other two younger women to the bathroom, shut the door, and burst into tears. Y/n and Arabella exchanged looks of perplexity but did not say anything at first.
"Oh, Y/n, Bella! I can't stand this any longer. I want to marry Jason, but he just won't propose. He's too in love with Quidditch to care about marriage with me and says that he's perfectly content with just having a boyfriend-girlfriend relationship instead of an intimate marriage. I really want us to get married and have children, and raise them to be respectable and clever. But how can I?"
"How do you know that Jason doesn't want marriage?" asked Y/n.
"Isn't it obvious? He says it all the time."
"Perhaps he says it all the time, but it may not be true, Cass. Men are unpredictable and whimsical like that; they say things they don't mean. I know it's really stupid, but that's how they've always been, and you should know that by now. Maybe Jason thinks that you don't want marriage either, so he's just saying that he doesn't want it to please you and make you happy."
"That's ridiculous. How can he think that? He knows I love him, and couples in love always go the next level by getting married."
"Yeah, but your Quidditch-obsessed boyfriend is different, like James and Sirius. They care too much about us that they're hurting us instead of benefiting us."
"How do you know all this?" Cassia looked at Y/n in awe. "You haven't been in a relationship nearly as long as I, and you know more about this than I do."
Y/n shrugged. "It's probably because I've known James practically all my life, and I've sort of studied and understood him, like a book. It's not that hard once you get used to it. After all, James is the perfect example of an unconventional man, and I understand how his brain works. That's why I know what I'm talking about because Jason is out of the ordinary as well."
Cassia looked thoughtful for a moment and then crushed Y/n in a tight hug. "Thanks, Y/n. You're the greatest. But what should I do now?"
"Talk to him, of course," put in Arabella sensibly. "That's the only way you'll get things out of men...you got to be the first ones to bring up the subject. Don't think they'll be the first ones to bring it, because they definitely won't be. They're slow that way."
"And I'm guessing you know this because of Sirius."
"'Course. With Sirius as a fiancé, well, life gets a little more interesting than usual, huh?"
Cassia laughed and dried her remaining tears. "Thanks, the both of you. You two have really helped. I'll talk to Jay tonight."
"You'd better, and tell us what he says about it."
"Definitely."
When the three girls came out, the guys were already waiting for them by the entrance, still discussing Quidditch.
"You guys still at that stupid game?" Cassia rolled her eyes.
"You were the Beater at Hogwarts with me, and now you don't care about Quidditch?" Sirius asked in mock-horror. "Dear Merlin, what's happened?"
"Maybe it's the whole being an adult thing that's changed me." She shrugged. "Ready, Jay? Oh, and when we get back to our flat, I have to talk to you about something."
"Sure." Wood shrugged and they both Disapparated.
"You girls ready?" James looked questioningly at them.
"Yeah. Just give us a second."
Arabella turned to her best friend and smiled. "Think we have enough experience about life, n/n?"
"Perhaps not all of it, but we sure got enough to brighten hearts around us. Merlin knows we need more happy souls around here these days. There are barely any of them at all."
And what Y/n said was absolutely true, especially since their world would soon turn colder.
"There's been a Hogsmeade attack."
Those words kept ringing in everyone's minds as they prepared to Apparate to Hogsmeade, where many students were attacked. There were many casualties and a few deaths.
Y/n clutched James' hand all the way there, and even when they arrived at the scene of the crime. Her heart turned cold when she thought of all her younger friends, especially Emmeline, and the chances of them being either injured or dead.
"James, I'm so scared," she whispered, hugging his arm.
"I know, Y/n." James kissed her passionately. "Don't worry. I'm sure it's going to be fine."
"It won't be," said Y/n quietly, so that even he couldn't hear. "Nothing's been fine for a long time."
When they arrived at the scene, Y/n involuntarily shivered. It was terrible. Shops and places were all in ruin, broken into and destroyed by Death Eaters no doubt, and it was completely chaotic, with Healers and teachers scurrying about in a disorderly fashion. There were screams and groans coming from everywhere, and upon the ground, there were dead corpses. The worst of it was, they weren't all completely discomposed to broken bones and flagged skin. No, instead they were just dead bodies of students, still quite healthy-looking, and each student lying eagle-spread on the ground had an expression of terror and astonishment upon their faces. It was sickening, and the eight of them cringed at the sight.
"That's perfectly horrible," whispered Peter, wiping his eyes from the stinging cold.
"Awful," acceded Sirius, his arm tightening around Arabella.
"C'mon, no use standing here," said Moody gruffly, as he tottered near to where Professor Dumbledore was, talking gravely to Professors McGonagall and Flitwick. "May as well be of some use, hey?"
"You're right, Alastor," said Jennifer firmly. "Let's see what Albus and Minerva have to say about all this."
They approached the two professors, who looked over at the eight adults and nodded in greeting.
"Hello, Misses L/n, Figg, Dean, and Walker. Messrs. Potter, Black, Lupin, and Pettigrew, hello to you, too."
"Professor, is it bad?" inquired Y/n anxiously.
"It may not be as bad as you imagined, Ms. L/n, but yes, it is considered bad. Not as bad as some of the attacks, but I think you may want to see some of the victims."
Professor McGonagall led Y/n and the others to where the injured or dead were, and Y/n gasped. There were many students that she didn't recognize, who were probably much younger than she, but there were two that she knew within a second. One, who lay groaning, was Kenneth Hughes, who had been Emmeline's boyfriend. Another was Laura Smith, but instead of groaning, she lay still. Too still. To add to it, she didn't move or budge at all.
"Professor," gasped Violet from Y/n's left side. "Laura isn't—she isn't—"
"I'm afraid so, Ms. Walker. Ms. Smith is indeed dead."
"That can't be," said Y/n dully. "No...Laura, she can't be dead!"
Suddenly, the truth of the statement struck her. Sweet Laura, who had been so shy at first, but then opened up to Y/n, was dead, and never to come back to life again. The Dark Side had killed her: the Death Eaters and Voldemort. Y/n had promised to visit Laura, but she hadn't seen her since graduation. She wouldn't know if Laura had passed her O.W.L.s, or if she had gotten a boyfriend! No, she would never know these things, because Laura was dead. She had been killed in the attack.
"Y/n?" James whispered. "Are you all right?"
Y/n nodded slowly, burying her head in his shoulder. "Oh, James, it's horrible! Laura dead and Kenneth hurt, as well as many other children who are so small. Look at that little girl over there. She looks to be about a first or second year, and she's dead. James, will our world ever be the same?"
"I don't think so, Y/n, but we'll try our best to pull together, and live through this. If we don't, then we know that the future generations will destroy Voldemort forever, and destroy all evil, if that's ever possible. For now, let's just concentrate on our present, instead of the future. I don't know when this will ever end, but whatever happens, I'll stick with you forever and never leave you. I love you, Y/n."
Tears sprang to her eyes, as she hugged him. "I love you, too."
James' eyes went over to the outcome of the attack, and suddenly his hand brushed against his eyes. No, he would stay strong like a man, and not cry. He had gotten the conception that only girls cried, and he would stick with that thought in mind. No, he would never cry, but somehow, the tears came out, and he wasn't ashamed of them. The mere feeling of Y/n's small body upon his gave him pleasure and hope for the future.
He understood why Y/n felt so passionate about the attack. He knew and liked Laura very well, and of course, he and Kenneth were good friends. He started at the thought of his young friend dying from his injuries. No, James wouldn't think of these things. It wouldn't happen...at least, that's what he hoped.
The world was turning upside down, to put it eloquently, and James knew it. However, he meant what he said to Y/n, and that he would always love her and stick with her. After all, he couldn't just leave her after two years of chasing after the h/c, now, could he?
Y/n looked over at her fiancé and saw him deep in thought. She smiled inwardly at having been part of the reason James was so mature and serious now and kissed him lightly. He was so handsome, standing there with his long arms around her small waist. His naturally untidy black hair was ruffled as usual, and his hazel eyes were mixed with a look of concentration and gravity. Y/n loved his eyes more than anything else about him did. Those eyes resembled everything that Y/n loved about him. He always had a look to them as well. Usually, it was a mischievous glint in those light brown eyes, but his eyes always matched the mood of the situation. Now, his hazel eyes had an appropriate seriousness to it.
James noticed Y/n looking at him, and grinned. It was the largest and first grin that he did in days, and it considerably brightened the situation slightly, since everyone else smiled slightly, seeing him do the same. Perhaps they would have a better future where there was no Voldemort, but for now, they were in the present and would have to deal with it, no matter what. However, James was optimistic, and knew, one day, Voldemort and evil itself would be defeated.
tags; @theredheadedwinchester
masterlist
3 notes · View notes
mentalisttraceur-software · 2 years ago
Text
Actually, I was wrong in this statement from my post about home as a git-managed directory:
the next time that you try to do a “git init” in a folder like “~/code/my-new-project”, and git says “reinitializing .git directory in ~” instead of creating a new git directory.
Now that I've had some rest and recharged my testing-edge-cases patience, I can report that it actually works fine: it initializes a new git repo in ~/code/my-new-project as you'd expect, even without ceiling directories. That was a bad example.
What's funny is that I was very confident that I remembered it working just fine many times before over the years, but then when I last tested yesterday it it seemed not to. I must've done something wrong (probably literally just missed/forgot a directory change in the relevant shell, and didn't notice) - but I ended up just assuming that maybe I was misremembering or that it was a behavior that changed in newer git versions.
Having said that:
There are still good reasons for doing the ceiling directories workaround.
Without the ceiling directories setting, we don't get "not a git repository" detection in all subdirectories of home. Which means any code you might run could end up treating pretty much anything within your home as a git repo.
And it's easy to overlook how significant that can be - if I'm sloppy and forget a "git init" in some code folder, or just happen to be in the wrong directory, future git operations in the code folder might effect the home directory, and not just "oops I staged a file" but "oops I ran 'git cotree init' and now literally everything in my home directory has been moved into ~/main" (in the case of git cotree, I'm pretty sure I didn't even implement it as a literal move, but actually as a stash of staged changes followed by a stash of unstaged changes, and then two stash pops (separated by a stage) in the new worktree... and in the case of my home folder, I'm likely to have something like a catchall .gitignore and many things in home not tracked, so I'm not even sure what the interactions there would be off the top of my head - [edit: I tested, and it seems to at least move everything safely without problems]).
So sticking with ~ in my ceiling directories seems like the far safer bet, because I don't have to mentally scan the full possibility space of what could go wrong to be sure that it's fine, I just preclude all of that possibility space from applying.
4 notes · View notes
airakose · 6 years ago
Text
My Life Flashed Before My Eyes
You don’t even know how terrified I was earlier while toying with the Git integration in Visual Studio.
I usually do most Git work in the Git for Desktop app, but thought: eh, let’s see how well this does! Maybe it’s on par with Perforce’s integration and will become my new go-to for at-home SVC; or ideally, better- doesn’t totally die whenever it requires a password again.
Huge mistake. I thought it would prompt me for a Git account, or use the one associated with the app. Nope! Without a single warning it made a new repo under my microsoft account AND it moved my project to a random folder on my OS drive (all of my dev work saves to an external drive).
Aight, experiment over, let’s go in and revert...
Bad idea. Instead of putting things back, it just deleted the entire project. Hours of work, poofed by the very thing that’s supposed to save me in this situation. Betrayed by the version control I trust.
I had a moment of panic, ngl. I'd made a solid mini C++17 project that was benchmarking better than the C++ and C standard equivalents in Release builds; I just needed to get the debug speeds up to compete with the C versions and compare with similar projects... to be done in later commits... All gone.
LUCKILY the revert was just on my local copy; when I clicked “add to source control” it immediately pushed to master. So I just had to rebase, manually copy the folder back where it was, THEN delete the repository.
Now it’s in my actual Git repo safe and sound, ready for updates.
Today’s moral lesson? When experimenting with Source Control, no matter how trivial it might seem, always make a local copy first... Don’t put your faith in the Gods; they’ll abandon you in IKEA without a second thought.
1 note · View note
reviewpolh · 3 years ago
Text
Package control sublime text 3
Tumblr media
#PACKAGE CONTROL SUBLIME TEXT 3 MOD#
#PACKAGE CONTROL SUBLIME TEXT 3 FULL#
#PACKAGE CONTROL SUBLIME TEXT 3 MAC#
Fixed a crash that could occur when nesting embed patterns in.
Many syntax highlighting improvements, including significant improvements to:.
#PACKAGE CONTROL SUBLIME TEXT 3 MOD#
Accepts CSS color mod adjusters to manipulate the saturation, lightness or opacity of the foreground color. Added the foreground_adjust property to rules with a background.caret values now respect alpha as expected, rather than pre-blending against the background color.Added block_caret key to use in conjunction with block carets.Windows: Fixed some fonts having an incorrect baseline.Windows: Fixed a rendering issue with certain combining characters.Linux: Color glyphs are now drawn properly on light backgrounds.
#PACKAGE CONTROL SUBLIME TEXT 3 MAC#
Fixed some cases of incorrect glyph positions on Windows and Mac.Fixed a caret positioning bug when non-trivial graphemes are present.Improved rendering of combining characters.Windows: Fixed a bug where auto complete entries would contain an ellipsis when not required.Windows: Fixed minimized and maximized state not restoring.Mac: Error message dialogs can now be closed with the escape key.Mac: Ensure context menus are shown without scrolling.
#PACKAGE CONTROL SUBLIME TEXT 3 FULL#
Mac: Add full support for macOS native tabs.
Improved performance with large numbers of rules in a.
Added extends keyword to have one theme derive from another.
Added variables support and associated revised JSON format with variables key.
Linux: Tweaked behavior of up/down when on the first and last lines of a file to better match platform conventions.
Linux: Fixed a crash when using GTK_IM_MODULE=xim.
Linux: Improved input method (IM) support - fcitx, ibus, etc.
Fixed draw_minimap_border setting not working.
Improve positioning and sizing of gutter icons in some situations.
Inline diff presentation can be changed by customizing a color scheme.
Full inline diffs of each change can be displayed via the right-click context menu, or keyboard shortcuts.
The following diff-related commands were added:
API methods t_reference_document() and View.reset_reference_document() allow controlling the diff.
The git_diff_target setting controls base document source.
In coordination with the new Git functionality, diffs can be calculated against HEAD or the index.
The setting mini_diff controls incremental diff behavior.
Diff markers show added, modified and deleted lines.
All changes to a document are now represented by dedicated markers in the gutter.
All file reads are done through a custom, high-performance Git library written for Sublime Merge.
The setting show_git_status allows disabling Git integration.
Themes may customize the display of sidebar badges and status bar information.
Commands have been added to open a repository, see file or folder history, or blame a file in Sublime Merge.
The current Git branch and number of modifications is displayed in the status bar.
Ignored files and folders are visually de-emphasized.
Files and folders in the sidebar will now display badges to indicate Git status.
See also the Announcement Post NEW: Git Integration
API: Fixed regression with phantoms interfering with home/end behavior.
API: Fixed an incompatibility with SublimeREPL.
Linux: Fixed incorrect file ownership in the deb packages.
Linux: Tweaked the way text scaling is handled.
Linux: Improved high dpi handling under KDE.
Linux: Fixed compatibility with old Linux distributions.
Mac: Added a workaround for a MacOS issue with DisplayLink adapters.
Fixed swap_line_up and swap_line_down transforming tabs into spaces.
Fixed block carets changing the way text selection works.
Improved scrolling logic in some scenarios.
Improved file indexing behavior in some scenarios.
Fixed a crash in the Git repository handling.
Git: Fixed UTF8 BOMs not being handled correctly in.
Git: Improved performance with a large number of git repositories in the side bar.
This can be changed via the allow_git_home_dir setting.
Git: Git repositories at the top level of a users home directory are ignored for performance reasons.
Various syntax highlighting improvements.
Tumblr media
0 notes
tonkihk · 3 years ago
Text
Dropsync review
Tumblr media
#DROPSYNC REVIEW LICENSE KEY#
#DROPSYNC REVIEW UPGRADE#
#DROPSYNC REVIEW FOR ANDROID#
#DROPSYNC REVIEW PRO#
#DROPSYNC REVIEW PASSWORD#
If you run into any issues or have suggestions for improvements, don't hesitate to email us at We will do our best to assist you. Email support by developerSUPPORTPlease check out our website () for more information about the app, including User's Guide () and FAQ ().Sync your entire cloud account with a folder in your device.
#DROPSYNC REVIEW UPGRADE#
You can upgrade via in-app purchase.PREMIUM FEATURES Dropsync, DriveSync, MegaSync, OneSync, Other Android apps, android. By doing so you support the development efforts and get access to premium features. Home Dashboard Tables Items Activity Tour Search.
Configurable autosync interval: 15 minutes, 30 minutes, every hour.If you like this app, please consider upgrading to premium version. Compare Dropsync in this comparison table: Online backup synchronization services.
Monitors battery level, WiFi/3G/4G/LTE connectivity and adapts its behavior according to user preferences.
Works reliably under ever changing network conditions on your phone.
Once set up files will be kept in sync without any effort from users Cloud sync Command line Command line interface Delta Backup Encrypted backups File-sync File transfer Folder sync Schedule Backup.
Very efficient, consumes almost no battery.
Not only two-way, you can also choose Upload only, Upload then delete, Download only, Download mirror.
Full two-way automatic synchronization of files and folders.
No outsiders will be able to decrypt, see or modify any file contents.MAIN FEATURES please write a nice review or give it a 5-star rating. Dropsync is here to fill the gap.All file transfers and communications between user devices and cloud storage servers are securely encrypted and do not go through our servers. The Autosync Dropbox Dropsync ULTIMATE application that we are going to introduce in this post. Two-way automatic synchronization should be an essential function of the official app. If their folders are synced with the same cloud account, they will be kept in sync with each other.This is how Dropbox works on computers but not on Android. It works across multiple devices (your phone and your tablet).
#DROPSYNC REVIEW PRO#
If you are a serious Dropbox user and want more flexibility, please consider upgrading to PRO version. For whatever reason it wasn't and still isn't. I was ready to just use GIT to push the updates to the server but its not ideal either. After about 30 minutes of waiting I gave up with both.
#DROPSYNC REVIEW FOR ANDROID#
If you delete a file on one side, it will be deleted on the other side. Dropsync provides the essential feature, two-way sync, which should be in the official Dropbox for Android since the beginning. ( Reviews of DropSync) Bfulop 3.1.3 5.0 Wanted to sync two to folders (with lots on subfolders and files in them), between my Mac and my server. It is an ideal tool for photo sync, document and file backup, automatic file transfer, automatic file sharing between devices.New files in your cloud account are automatically downloaded onto your device. It lets you automatically synchronize files and folders with Dropbox cloud storage and with your other devices. Whats new in version 1.68 HOT FIX: a subtle change in Dropbox backend last night causes Dropsync to stop working completely. If you run into any issues or have suggestions for improvements, don't hesitate to email us at We will do our best to assist you.This app is an automatic file sync and backup tool. Please check out our website () for more information about the app, including User's Guide () and FAQ (). DropSync is for web developers, photo professionals, scientists or anyone in need of a fast, automated and highly customizable way to repeatedly copy files from one place to another. Download DropSync 3 for macOS 10.10 or later and enjoy it on your Mac.
#DROPSYNC REVIEW PASSWORD#
For the people who have expressed concern about losing their computer with the password database on it, the answer is simple. Read reviews, compare customer ratings, see screenshots and learn more about DropSync 3. I recommend it regularly to all my employees.
App settings can be protected with passcode I am a 15+ year user and use it practically every day.
Juguemos Dropsync: Autosync for Dropbox y disfrutemos el tiempo de diversión. In-app purchase also allows users to buy Dropsync Ultimate for which there is no key app. Dropsync: Autosync for Dropbox para PC en el emulador de Android le permitirá tener una experiencia móvil más emocionante en una computadora con Windows. This separate key app is for users who bought it in the past and for those who prefer the key app to in-app purchase. (Dropsync) so I cannot provide support if you are having a problem please contact the developer. New users are recommended to upgrade via in-app purchase in the free Dropsync app. BurningThumb Studios updates Mars 2055 Version 1.8 released BurningThumb Studios updates Coconut Hut. Please keep the free Dropsync app installed. Once the key app is downloaded and installed, Pro features will be unlocked.
#DROPSYNC REVIEW LICENSE KEY#
This is the license key to unlock Pro features in Dropsync app.
Tumblr media
0 notes
gitkraken-crack-s2 · 3 years ago
Text
Download GitKraken crack (license key) latest version 8A6+
Tumblr media
💾 ►►► DOWNLOAD FILE 🔥🔥🔥 Home » GitKraken 8. Add new records and modifiers and edit them directly. Save documents, edit, and submit changes. No more settings changes! The best Git client should coordinate with the management of your Git facilitator. Whether you are a child or a work catalog, a version of the records in the nearby safe is currently being reviewed. When you change branches, drag changes, or reset GitKraken will refresh the documents in the confirmation folder to reflect the changes. It includes features such as unified code editing manager, language structure feature, minimized document guide, exploration and support, and is accompanied by three unique perspectives, including Hunk, Inline and Split Diff View. Is the GitKraken Git client intended to make you a more profitable Git client? The interface gives you a visual perspective on your spread, merge, and posting history. Appreciate an equally glorious meeting in each of the three. Audit, clone and create new archives in a state-of-the-art interface with this straightforward and hassle-free Git client. Fully customized perspectives. Because capacity and excellence do not have to be completely unrelated. Basically, the engaged historical segment, without forcing too much, you can get a reasonable view of the posting history with the help of the shipping chart. By right-clicking on certain records, you can view each progress in the Details panel. Also, for some customers, the help offered for GitHub or Bitbucket may be enough, while others may follow these two decisions as a limiting component. Software development in groups has been a constantly demanding task. Not because it empowers solitaires to talk to individuals, but because it is difficult to monitor changes in the registration framework. Small tasks are not difficult for us, but huge businesses turn into brain pain if not managed as expected. GitKraken Crack 7. It is one of the important points for scheduling a client. This element helps the customer to do everything directly from a single application, from adding and efficient control of remote stores, editing SSH keys and adding problems or ToDos to the clipboard and delegating them to various customers. The board is open to any designer who is interested in this project and to any client who is welcome in control by all designers. Magnificent projects are taught regularly, helping designers follow the initiative and keep track of what everyone can do, in coordination. This compromise is probably the main compromise for tackling large initiatives, as it allows us to track progress and count on t at the same time. The project manager usually has significant achievements in the future to fulfill their commitments imagine it and the GitKraken Timeline gives them exactly what they need. Suppose you are dealing with a large enterprise. Given that progress is important in massive missions, and when making such progress is important, it will be difficult to keep track of the progress you are making in this process. This problem is especially complicated when working in a group. The user interface is user-friendly and simple. Create and clone repositories, create branches and even share code from under a single roof. Makes working with the Git repository looks like a walk in the park. Creating or cloning a repository is virtually quick, and managing content such as adding, deleting, renaming, and untracked files is just a few mouse clicks. Also, allows you to set per service an SSH key to helping you stay logged in. In addition, while some users may only need GitHub or Bitbucket support, others may find these two options a limiting factor. GitKraken now offers a. How to Install GitKraken 8. Use the patch to allow Run the software now.
1 note · View note
Text
Just Business [Andyoming]
hi guys this is my contribution to rarepair week xoxo
ship: andy x wyoming
tags: modern au, office au, new york city, hints of flyoming, flyoming shot down, fluff
thnx pls enjoy!
17 Mar 2014
Mr. Flowers,
I would be well inclined toward a meeting on the 24th to discuss these business ventures more in-depth. The company contains a room suited perfectly for meetings such as this, private and well-designed, where we could perhaps meet. Please inform me what time that day would work best for you.
Best Regards,
Mr. W.Y. Reginald
Freelancer Pharmaceuticals
---
20 Mar 2014
Dearest Reginald,
I am pleased as punch to receive your email! Your plan sounds perfect, and we will meet on the 24th at 6:30 p.m. I have one single qualm with your original idea, and that is that I live by the rule of always mixing business with pleasure. I would quite like us to meet at Crunchbite on South Avenue. I’d be pleased as punch to see you there!
Stay sunny,
Captain Butch Flowers
Blood Gulch Pharmacies, Inc.
---
Reginald most definitely wasn’t “pleased as punch” at his correspondent’s response. He didn’t do dinner dates; he did business. The other businessman’s file had indicated a history of professionalism, competence, and economic strategy to woo billionaire’s- Reginald needed this man as an ally, and the company needed a partner. He drummed his fingers against the wood of his desk.
He had read and reread the email several times over the past four days, and the time came now that he was called to action.
With a sigh, he rose from the desk and left his office, locking the door behind himself. He greeted Connie in the elevator, and then stepped out on ground floor, leaving behind the delicate hums and rhythms of elevator jazz. The bronze-hued lobby clicked by under his polished black heels and then the summer humidity of a New York evening greeted him. Taxis and honking horns filled the streets, noise pollution and crowds assaulting his senses as soon as Reginald entered the sweat-inducing street. He grimaced and moved to his town-car; his driver awaited him already, having been alerted to the impending meeting. Honestly, Reginald mentally bickered as he headed out, what sort of businessman suggested a place called “Crunchbite” as a place for meetings of financial significance?
As the driver greeted him with niceties and entered the rambunctiousness of New York City traffic, Reginald changed from his striped work suit-jacket to a finer fabric, and swapped his red tie for a black one. He combed his hair in the mirror and withdrew a fine-toothed mustache comb from his wallet to groom his mustache. By the time they reached South Avenue, a finer man had readied himself to court a company.
He asked his driver to return in an hour and a half, as he couldn’t see any reasonable business meeting or restaurant taking longer than that. His driver left the area, abandoning Reginald to whatever fate might await him.
Inside the building, Reginald spoke to the host and found a reservation waiting for him. He was led to his booth; on the way, he found the restaurant slightly less atrocious than he’d expected. Dark hardwood floors, indigo tablecloths, fine art- mostly abstract oil paintings of outer-space or aqua-themed scenes- along the walls. Perhaps he could justify carrying a briefcase in here, even if it wasn’t the finest of dining establishments.
However, his night- and this correspondence- took another unwanted twist:
The man at the booth most definitely wasn’t Butch Flowers.
He was beefy, more muscle than fat; wore a green button-down with a mustard stain on the sleeve and jeans that faded around the cuff; his dark blonde hair was tousled and ungroomed; and his general expression left one with a feeling of distinct unpleasantness. He barely spared the menu relief long enough to glance up at Reginald.
“Hey, how ya doin’? Name’s Andrews, go by Andy. Mind if I call ya Reggie?”
Reginald swallowed the urge to clear his throat and forced himself not to side-eye the stranger as he sat down. “Reginald, if you will. If you don’t mind my asking, where is Mr. Flowers?”
“Flo couldn’t make it. Reginald, is it? You got it, Reggie.”
“I-” Really need this investment. Reginald forced his composure and requested a wine as a waiter approached for the drink order. He turned back to Andy. “I’ve got the proposal ready for signing, if you would like. It’s separated by distinct clauses and sub-clauses; I thought you could go through, put an X on the parts you disagree with-”
“Flo would have to sign it, you’re shit outta luck either way,” Andy said. “I’m just here to pick up your briefs and get a free dinner. Ask you a few questions on Flo’s behalf. That kinda thing. And you’re obligated by societal convention to put up with my ass for an hour.”
Reginald-
Reginald hated him.
But if this man could be frank, then so could Reginald. It was clear this was some sort of- some sort of joke, a practical joke or a prank or something equally devious and unwanted, and if the other company would try to ward off Reginald by sending this pissing git for a business meeting, then Reginald would fight the good fight. He might lose the trade agreement, but his pride was more important anyway.
“I’m not obligated by a single bloody thing to tolerate that attitude for the next hour,” Reginald said. “You’ll find me not the type to tolerate unmannered twats any longer than absolutely necessary.”
“Well, I’m not the type to deal with twats too much, either! Let’s call this a date, shall we?”
Reginald had always been known for blood pressure problems. Tonight just might be a new record for speed.
He looked up with a glare ready, the devil in his eyes to spew fire at this sack of piss and vinegar- but when he met Andy’s eyes, the stranger bounced his eyebrows at him and cast a surprisingly charming grin his way.
“What d’ya say? Haven’t been on a date in a while. Might be nice. I’ll still be a piece of shit, but maybe you’ll gain something out of joining me.”
I hate him, Reginald thought. Hate him with all my bloody might. And I regret this already.
“...Very well. But first, we discuss business.”
---
The night shifted surprisingly quickly from blood-pressure-raising to wine-induced jokes and horrible rudeness and only the pettiest of insults. The merlot danced on Reginald’s taste buds, granting an appealing grace to Andy’s features and tone. The business aspects of the evening were quickly completed, with Andy taking the folder containing the proposal and contract. Signing would be done in person a week from that day, at the office, after Flowers had the chance to look over the contract.
By the time they’d finished eating, Reginald had discovered Andy lacked a ride home. On the pretense of their date continuing, as piss-poor as it was, Reginald still offered the rude yet somehow charming fellow a ride home.
He held the door of Crunchbite open, now seeing Andy’s beefiness in a much more appreciable light, mostly courtesy of the merlot. They entered out into the night and Reginald slid into the town-car. Once the driver had re-entered, they started off again, toward Andy’s address.
Reginald had crafted a careful persona in the presence of those who knew him from business, or who had met his business associates. Even his driver had never seen him short of polished, pompous, and refined. Tonight, however, in the presence of tongue-loosening Andy, Reginald let that persona slip- for a half-hour, Reginald’s driver saw a much louder, much ruder, and altogether much less polished version of Reginald.
They reached the complex where Andy lived, and Reginald excused himself briefly from the towncar to see his new acquaintance safely to the door. They reached the fourth floor before Andy withdrew a key from his pocket and entered it into the lock. He opened the door and turned to Reginald.
“And you sure you can’t stay a while? Maybe kick up some sheets, muss up that mustache?”
Reginald laughed and then his face flattened. “No one fucks with the stache.”
“I can dig it,” Andy said. “Always had a bit of a thing for pompous assholes with good mustaches.”
Andy stepped closer to Reginald and Reginald met the tawny eyes. “Perhaps someday we’ll get further than the doorstep.”
Reginald stepped closer as Andy said, “We could now, if ya not a coward.”
This prompted something competitive in Reginald but he quashed it. Practicality still spoke more loudly than merlot. “Some other time. But for tonight…”
He leaned up and touched his lips to Andy’s. The other man’s meaty hands pulled him closer. Reginald’s hands found Andy’s chest as teeth met his bottom lip. A gasp cut from him, sharp, as Andy’s teeth parted from his lips and lips mashed back into his. Reginald forced himself to press one last kiss to Andy and then step back.
“I’ll call you sometime,” Reginald said.
“Yeah, I’ve heard that one before.”
Reginald repressed the juvenile urge to roll his eyes and handed Andy his business card. “You call me, then. Goodnight, Mr. Andrews.”
“Night, Reggie.”
Andy disappeared through the door and Reginald returned downstairs and entered the town-car.
As they headed toward his penthouse, his driver said, “Mr. Reginald, forgive my interference, but you can’t possibly be serious about that one.”
Reginald chuckled.
“I’m afraid I”m only too serious about this one.”
31 notes · View notes
xx-thedarklord-xx · 8 years ago
Text
Internal Affairs of the Heart
Excuse the cheesy ass title. *Snorts* I would like to thank the anons and @sortagayforhelladays for the prompt. I have no idea if this is at all what you wanted haha. I had this thought that wouldn’t let go of me. Also, thank you @rmh8402 for looking this over! I adore you! <3
                                        ----------------------------
            The chime of the clock striking noon accompanied by three firm knocks was telling in its own right.
            “Mister Malfoy, h-how charmed I am to see you.”
            “Yes.” The drawling tone and arched brow spoke clearly. “You appear charmed to see me.”
            “N-no, charmed to see you, sir. I assure you. Is there something I can do for you? My loan isn’t due for another few days.”
            Eyes watched Malfoy closely, taking in an uncharacteristic hesitance.
          “How’s the wife and your daughter? They faring well?”
            A telling and uncomfortable pause permeated the room. “Because, should you get me the information I require, I will grant you an extension on your loan.”
            A piece of paper was left on the desk. With one name written elegantly.
            “Speak to no one. If a single whisper gets to Robinson, I will not only have your head but the head of your family, as well.”
                                   ----------------------------------------
            Harry knew that people were paying attention to him. When didn’t they? At least people were doing it now because of his position in the Ministry. As Head Investigator for the Department of Internal Ministry Investigation and Regulations, it was his job to inspect, analyze and investigate all departments inside the Ministry. It was a means of forestalling corruption and keeping the Ministry functioning as it should.
            It was amusing to have gone from being the boy-who-lived and all around coveted public figure, to someone most avoided at all costs. It wasn’t his fault there were so many people who couldn’t do their jobs as they should. If they wanted an atmosphere where the higher-ups could continue as they had during Voldemort’s reign, then they were in for a rude awakening. There was no room for corruption in the Ministry, not on Harry’s watch. The government was something that the people should trust not fear.  
            “Potter’s coming!” The whisper carried down the hall and Harry had to stop himself from rolling his eyes.
            “Don’t draw attention to yourself. Potter fired Robinson down in Wizengamot Administration Services.”
            “Robinson? He’s such a nice bloke. Honestly, Potter is ruining the Ministry. Can’t work in peace anymore.”
            Harry cleared his throat, coming up next to them. He didn’t even bother hiding his amusement at the way both employees jumped in surprise. The shock deeply embedded in their faces quickly bled to horror as they both scrambled away.
            “Robinson was taking bribes from the defendants.” Harry calmly called after them, folding his arms across his chest. “Payouts to ensure that the Wizengamot would be lenient on those with deep enough pockets. I must have missed the memo where it was stated that the wealthy get a free pass.” Robinson wasn’t the only member of the Wizengamot that was corrupted, and Harry would weed them out, eventually.
            He knew they wouldn’t respond, but he wanted them to walk away with the knowledge that what his job entailed, had a purpose. It wasn’t as if he liked investigating employees, it was necessary.
            Harry continued down the hall to his office, ignoring the pile of Howlers sitting outside his door. He waved his wand setting them all afire. If people didn’t want to be found out, then they shouldn’t be dodgy gits in the first place.
            As he sat down at his desk, folders already piled high, Harry knew it would be a long day.
                                   ---------------------------------
            By midday, Harry was considering going home early and ignoring all sense of responsibility when the sound of his floo chiming in had him straightening up. His floo was granted top clearance by the Minister. Only three people had access; Kingsley, himself and his informant.
            “Merlin, I had hoped by now you would have gotten a decorator to spruce the place up. It’s gaudy. I don’t know how you expect me to work in conditions like this. Can I site ‘blinding by ghastly interior’ as a reason to get workplace compensation?”
            Harry rolled his eyes, fighting to keep the smile at bay. He watched the way Draco picked at invisible pieces of soot. “If either one of us is getting workplace compensation, it will be me. I am the one who has to put up with your outrageous demands.”
            The scoff Draco released just further amused Harry. “My demands are reasonable. There is nothing wrong with wanting the best.”
            “I fail to see how taking out all Bertie Bott’s Every Flavor Beans except Chocolate, Gin, Firewhiskey, Éclair, and Lobster classifies as wanting the best.”
            Draco smirked before striding to the desk and sitting on it as if he had the right. “That’s because you have no taste.”
            Harry decided to let it go. One must pick their battles when it came to Draco, and this wasn’t the time. Besides, they both knew the requests were outrageous. Since he wasn’t allowed to legally pay Draco for being his informant, the man demanded ‘gifts’ in return. Because of course, ‘I’m not a bleeding heart, Potter. Why would I do this for free?’
            “What are you doing here? You usually only come unless I’ve called you ahead of time, or you owl beforehand.”
            A mock gasp was accompanied by a hand to Draco’s chest. “I can’t just visit my handsome boyfriend? Do I need some kind of excuse to see you? Honestly, I am hurt.”
            Harry pulled on Draco’s arms until the git landed in his lap ungracefully. He laughed when Draco scowled at him. “What did you do? You only use flattery when I have to cover your tracks.”
            The disappointed sigh Draco released had Harry holding back a smirk. “I can’t even fool you anymore.”
            “Yes,” Harry began wry smile forming. “What a travesty that must be.” When Draco looked like he was going to argue, he leveled him with an impatient glance, not allowing his lover to distract him.
            Draco frowned before sighing heavily. “The prophet has sent some reporters after me. They are horrid at sleuthing. Caught one of them outside the Manor.”
            Harry wrapped his arms around Draco as he frowned deeply. “You’ve sold many stories to them, why would they turn around and investigate you? This doesn’t make sense.” Draco was a freelance journalist. Usually, he used his connections and insights to help Harry come up with proof for the corrupt employees inside the Ministry.
            “I know,” whispered Draco. “I recognized a few of them but they are just interns. This could just be someone hoping to see me in scandalous positions. Or they know that I am working with you.”
            That had Harry shaking his head rapidly. “There’s no way they know. I have been careful. Kingsley doesn’t even know who my source is. That’s the whole point.”
            “What about being magically bugged?”
            Harry was actually insulted with that line of thought. Draco’s stalkers may be interns, but Harry sure wasn’t. This wasn’t his first day on the job. “All of our communications are on restricted access channels. Your name doesn’t go down in a single file. As far as the Ministry is aware, the last file with you in it was your trial after the war.” He moved his hand soothingly when Draco tensed. Harry knew that wasn’t a happy reminder.
            “As for being bugged? Not a chance. I sweep the place three times throughout the day. There is no way someone managed to best me.”
            His reasoning seemed to be working on Draco and he watched the way his boyfriend’s shoulders sagged in relief. “Maybe they just want to find something to gossip about.”
            There was doubt in Draco’s tone and it had Harry worried. His gut was telling him that it was more than that, that there was something else going on here.
            Harry decided to up his security. Nothing was more important than Draco’s safety.
                                   --------------------------------------
            The chime of the clock striking noon had Draco cursing under his breath as he knocked on the door. If this took too long, his entire plan for the day would be forfeit.
            There was a scramble on the other side, which was amusing but odd. When the door opened, the man froze in horror.
            “I apologize if my information wasn’t as forthcoming as you hoped—wait—oh—I deeply apologize Mister Malfoy. I thought you were—well—it doesn’t matter.”
            Draco blinked rapidly before narrowing his eyes. There weren’t too many people that he could be confused with. This was something he would have to come back to, now wasn’t the time.
            “Mister Sykes, I have come to you regarding your second job.” If Draco wasn’t set in his lack of emotions, he would have snorted at the fright in the man’s eyes.
            “Now see here, I don’t make much working for the Goblins. There isn’t anything wrong with seeking employment elsewhere.”
            Draco rolled his eyes, waving the statement away with a free hand. “Relax, I’m not here to investigate you, nor am I doing an expose. I am here as a friendly reminder that actions hold consequences. Should you come in need of someone of my expertise, that you have my well wishes.”
            There was a contemplative silence as Draco sat down on the only free chair available. Harry’s office may be gaudy, but this was just outrageous. The Goblins clearly held no warm feelings towards the liaison officer between the Gringotts branch and Wizards. The space was so small that Draco wondered if three people could fit comfortably. The desk was falling apart and cracks running down the chairs. Belatedly, he recognized Goblin magic in the air preventing wizarding magic inside the room. It was a way to keep the peace inside Gringotts but also prevented Sykes from repairing his stuff. That was the kind of petty Draco admired.
            Sykes sat down slowly, elbows hitting the desk hard. “What can I do for you?”
            Draco couldn’t withhold the smirk if he tried. “I want all financial information you have on a Ministry employee.” He held up a hand when the man opened his mouth. “Don’t even bother telling me that it would be a breach of protocol to open the folders inside your briefcase. That breach was long ago committed before I walked in here.”
            Panic. That was the first thing that Draco was able to make out on Sykes’ face. The man probably assumed his tracks had been covered. But it was Draco’s job to unearth the truth. “As I said earlier, my well wishes are with you. Not many people can do what I can, Mister Sykes. I wouldn’t make me wait much longer if I were you.”
            The clunk of the briefcase slamming down on the desk had Draco’s smirk broadening.  
                                            -----------------------------
            As a stunning spell whooshed past Draco, he was thankful that Harry had loaned him his invisibility cloak. Made his job a hell of a lot easier.
            “Where are you?” The snarl was uttered in a tone that had Draco curling his lip in disgust. Rowland Garnett was on a list of Harry’s suspicious names to investigate. His boyfriend may be the best internal investigator the Ministry has seen, but Draco had a background in wizarding genealogy. His father instilled the knowledge of all bloodlines and taught him exactly how to not only spot someone who toed the line of the laws with skill, but also how to use that to his advantage. Which came in handy. There were things that only his own connections would grant, things that Harry wouldn’t be able to uncover. Which is why they worked well together. He didn’t have the law on his side, but Harry did.
            Draco waved his wand, transforming a rock into a small kitten. He maneuvered it in his path, watching the way Garnett turned around and sighed in relief at the sight of an animal.
            “Mangy vermin.” Garnett hissed harshly, eyeing the cat with a keen eye.
            “What are you doing?” The new voice visibly startled Garnett.
            “Baxter, it is impolite to sneak up on others.”
            Draco narrowed his eyes as Andrew Baxter, famed defense attorney, stepped out of the shadows and into the light of the dimly lit alleyway. This wasn’t completely unexpected, Baxter was good at his job, but spent too much money on a lifestyle he couldn’t afford. If the man was taking payoffs to get his clients off, then this wouldn’t be surprising. The man was on Harry’s list, just not this one.
            Garnett worked in the Department for Magical Transportation. Which had absolutely nothing to do with anything regarding legalities.
            “Rogers sends her well wishes,” Baxter whispered, smirk twisting unpleasantly.
            The way Garnett swallowed had Draco curious.
            “D-does she now?”
            When Baxter took a threatening step forward, Draco debated with himself. He didn’t want to be put in the position to defend Garnett. Not when he knew the man was up to something. But Harry would never condone allowing someone else to be harmed when Draco could have done something. Damn his lover and good moral mentality.
            “Next week, you are going to petition for a change in your department. Put forth a bill that charges each household for the right to floo.”
            Draco leaned his head back in confusion. Floo powder is already being charged to the consumers. They want to charge wizards to use a service that was a right all along? They want wizards to not only pay for the floo powder but also pay to floo? What was the point? That would be devastating to families that could barely afford floo powder as it was. What about public flooing stations? Would that change too?
            “Would there be a clause for those who can’t pay?” Draco could tell that Garnett was just as confused as he was. “Or those who send their children places using floo? Charging to floo will cause parents to have to personally apparate their children if they can’t afford to floo. This will be a setback for wizarding preschools. Some parents can’t apparate their children. Not everyone gets their apparating license.”
            Baxter arched a brow, inching forward. “Rogers doesn’t care about the poor. She takes office in a few days. Since Robinson was fired, the Wizengamot is of the belief that there are no more corrupt members left in their numbers. You get that petition drafted, Rogers will see to it that it gets passed.”
            Draco groaned internally. If Rogers was taking over for Robinson, then that would put her in charge of the money coming into the Ministry from all bills passed. If Garnett was their man on the inside, then it would be easy to skim money from the top. They were going to charge everyone unnecessarily and burden those without wealth all in the name of greed. He felt sick just thinking about it.
            “And my indiscretions won’t go past us?” Garnett countered, gaining a backbone.
            “It will be our little secret.”
            Yeah. Their secret that Draco would make sure the entire country knows of.
                                  -------------------------------
            “Mister Potter! Can I have a word with you?”
            “How did you know Carolyn Rogers was working with someone on the inside?”
            Harry sighed, not bothering to look their way. “No comment.”
            “Who do you think the Wizengamot will choose as her replacement?”
            “Sources say you have someone on the inside feeding you intel. Is that true Mister Potter?”
            Harry slowly lifted his head to lock eyes with Draco, standing among reporters for the Daily Prophet. There was an amused glint in his eyes, as if he was proud for stirring up more rumors.
            “If they are your sources, Mister Malfoy, then I fear for their credibility.”
            He watched Draco’s smirk broaden. “Is that your way of deflecting?”
            Harry wasn’t sure what Draco was playing at, but he decided to see where it would go. “Just being honest. I have no reason to curb the truth.”
            Flashes were going off in the background and the sound of several Quick-Quotes quills had Harry sighing. This would make the evening edition, he just knew it.
            When Draco stepped forward, leaving only a few inches between them, Harry didn’t have to wonder what his boyfriend was doing anymore.
            “Since you have no reason to lie,” Draco began, voice lowering. “It’s been said that you have a relationship that hasn’t previously been mentioned. That doesn’t seem very forthcoming if you ask me.”
            There were only a few ways getting Draco to stop once he became interested in something. Harry pulled on outrageously expensive robes, bringing them that much closer.
            “How horrible of me.” The sarcasm was thick, but it had Draco smiling, and that was always preferable. He didn’t bother waiting for a response before he smashed their lips together, relishing in the quiet sigh Draco released.
            The sound of cameras going off intensified, but Harry couldn’t bring himself to care. Not when Draco nipped his bottom lip and a delightful tongue intertwined with his own. Kissing Draco was distracting enough that he didn’t care that they were in the atrium of the Ministry. He didn’t care that they were making a spectacle of themselves. All that mattered was the hands that were slowly making their way towards his arse and the deepening of the kiss.
            When they pulled back, Harry ignored the smugness in silver eyes. He could care less what Draco’s endgame had been for outing their relationship. Harry was just happy that they could be seen together without arising suspicion.
            When Draco opened his mouth to no doubt say something that would have Harry’s eyes rolling, he quickly captured those lips in a searing kiss.
            “Well, this is far more interesting than whoever takes over for Rogers.” A woman whispered loudly, voice carrying over the quiet room.
            “They certainly make for a cover photo.”
                                         -------------------------
            Draco grinned at the cover of the Daily Prophet. Their kiss had turned a little risqué for something the Prophet usually posts, but with their public status being so highly regarded, it wasn’t a surprise that the photos were printed anyways.
Harry Potter Announces Secret Love Affair with Draco Malfoy
The Wizarding community was left in a frenzy as two past enemies declared a secret relationship. The readers at home reading this for the first time may need a moment to right themselves. I, Rita Skeeter, renowned journalist, was shocked myself. What is it about Draco Malfoy that has enchanted Harry Potter?
Sources close to Potter say Malfoy no longer has nefarious intentions. There are several instances where Malfoy’s public statements and line of work prove this argument. But us intelligent minds, wonder if that is truly the case. With little to go on, only speculation is left, my dear readers.
The photos themselves show a certain level of intimacy, but little to do with love. Perhaps they are just guilty of giving in to the whims of their bodies?
Neither commented on this new development. Secrecy began their relationship and tight lips are reining it in.
-Continuation on page 3.
            Draco knew that if the interns following him were intent on finding something in his private life, that this was one way to handle the situation. He didn’t need an excuse to out their relationship, but the time was as good as any. Three years of dating Harry Potter and not getting to publicly kiss him was three years past due.
            If only he could get the niggling in the back of his mind to go away.
                                                  ------------------------
            “They bought the decoy.”
            Andrew Baxter smirked as the Patronus disappeared as quickly as it arrived. They were only a few steps away from getting the proof they needed to take down Potter and his lover.
                                                   -----------------------
Tumblr media Tumblr media Tumblr media
                                           -----------------------------
Before you ask. I rather like the ending. Feel free to ask away but I think, for now, I will end this. I do have a lot of other stuff to do. But I also have the rest of this planned out. So give me patience and a lot of time. I can come back to this at a later date if anyone would like more. 
393 notes · View notes