Showing posts from 2021

Remote / Working from Home, Part 3

[Part 1] [Part 2] [Part 3] The previous entries went through the basics of everyday "working remote." This entry talks about new hires or new teams introductions and other good stuff.  Initiative, Integrity and Vigilance Working remote, when starting with a new team can be a little awkward. Especially when you've never met the team in person first. These are good guidelines for this situation. Ask questions - Show Initiative Sesame Street taught my youngest: "Asking questions is the best way to learn." Not sure which questions to ask? Find someone, anyone that is available Ask to be pointed in the right direction Don't assume everyone will drop what they're doing. Be patient. Be calm. Basic Questions to Ask: Who can help with HR questions? Payroll Dates Benefits Timesheets Expenses Time Off Requests Who is my manager, if not working on the same project? Who are the members of the team I'm working on? What access, resources, documentation do I need

Tip of the Day: Number 3372.7

Windows: Moving Applications Between Multiple Monitors [Win] + [Shift] + ( [⬅] or [➡] ) One simple, elegant key stroke sequence vs. : Moving a window that is maximized: [Alt] + [Space] [R] [Alt] + [Space] [M] ( [⬅]  or  [➡] )

Remote / Working from Home, Part 2

[Part 1] [Part 2] [Part 3] Part 1 covered the primary goal of DevOps: Communication.  Part 2: Routine & Consistency Establish daily practices that everyone can depend on.  Make a mental list of your daily work routine: Shower Yes, it's super easy to skip this, but trust me, it's vital to establishing a fresh perspective. A shower can do wonders for your attitude and Vim. It sets a tone for the day: Warm. Energetic. Positive. Work Casual / Respectable Clothes Somehow, wearing comfortable work-proper clothes gives a mental energy to be able to focus on tasks. You never know when you're going to have a video call. "Clothes Maketh The Man." Have Breakfast Even if you don't feel like eating. Drink a protein shake. Scramble some eggs in a drinking glass and microwave for a minute. A Solid "Start & Stop" Work Times This an important key to consistency. Everyone on your team will know when you're available and working. Post this information i

Back-Track: What happened between 2017 and 2020?

This blog hadn't been updated in quite a long time. Why? It was intended to be an easy, private notebook for me. Ramblings, thoughts, etc. During that time, I was using Twitter ( @edhaack) for quick, blurty blurts on findings - ultimately feeling overwhelmed (maybe).  What happened, really? Work. Life. Balance. Xceligent publicly and shamefully closed its doors a week before Christmas 2017. Previous co-workers talked about how I helped them and wanted my help on their projects. Ultimately, I siloed myself -- and have taken some time to reflect on the last 30 years. Why come back here? I think I wanted to return a more private, intimate and minimalistic platform.  /shrug Some of those tweets are kinda cool to go back and look at. I may just integrate this with that.

Remote / Working From Home

[Part 1] [Part 2] [Part 3] I usually refrain from mentioning current and previous positions I've held and will continue to do so. This is about the "better practices" of "working from home." This is the first of a few articles based on my experiences. When the COVID-19 quarantine threw everyone into a relative 'panic mode,' a VP asked me to write a short article on transitioning from working "in office" to "at home." There are a lot of these types of videos and articles available already, but it gave me pause to reflect on how this group and these teams work - cater to their culture. Part 1: Communication Communicate with tact and curtesy.  Status is vital to success. There's nothing worse than not knowing what people are doing. The default thought is they are watching movies or housework. Which leads to... Trust on all sides.  Trust that you are adult and responsible enough to do your tasks Trust that your people are those adul

PowerShell 7 - Scaffold Structure (Follow-up)

Some interesting hurdles crossed with this simple philosophy: Organize custom functionality in a structured, standard format. Main Scaffold "Process" and "Begin" segments Status Notifications - Output Logging Exception Handling - Generically Artifact Publishing Custom Structure AssertParameters (arg testing/validation) MainProcess $Script:Artifact.Data $Script:Artifact.Files Notes Simple dot sourcing the "custom" script, does not pull in $Script:args variables. (Must explicitly pass $Script:args) Almost ready for 'main' branch merge

Laptop w/ new Ubuntu 20.04 LTS Desktop

 I recently had to install Ubuntu Desktop on a laptop that had a problematic NVidia chipset: The system would always freeze in a very short amount of time - most likely due to a combination of overheating and/or bad drivers. This article saved the day: I just changed the GRUB config for the initial start of installation and everything worked without a single glitch. Even post-install, I did not have to change the grub config  Essentially, appending `nomodeset` to the line containing `linux` bypassed the default video check (even though it was listed during setup). Getting to the initial grub config with selecting the "lite" version of the USB partition.

PowerShell Experiment: Standard Scaffold w/ Custom Functions in External File

 So while I was working on the last project to "Factory Out" Modules w/ Plaster, it dawned on me: why stop there? Having a standard script outline, that's a template in VS Code, over and over the same steps to make the current script unique -- editing in just the "right places" seems cumbersome when, down the road, you have to update/add functionality, remembering where everything is in this already giant script. All of this to say: Start with a scaffold 'main.ps1' script, that is never touched. Create a unique or 'functions.ps1' script file that is the meat of what needs to be done. The "old way" was to create the new script file and jumble it all together. What I've found is that this is no different (really) in using the "proper" Begin/Process structure - as far as support. In the 'main' file, it would handle the "big 3", standard checks and balances: Argument Testing Main Function Execution Output/Art

Scaffolding PowerShell Modules with Plaster

Plaster is a very novel idea, but in practice I can see why it's gone mostly untouched for a while. There is a rather steep leaning curve for what it does. These are the goals Plaster is trying to achieve: Scaffold a base PowerShell Module project based on prompted parameters Allow for flexibility in the above process by incorporating custom scaffolding processes The former is indeed desperately needed. It's a good, solid, repeatable and consistent way for module to be created. The latter thou, makes the process needlessly complex, because: Who Generates the Generators? There are lot of good docs on the process, but even their own examples are either outdated or just wrong. In the end, I wound up creating a template based on the mega example that asks for options such as: Pester test, Psake building,  PlatyPS doc gen, and Git with editor VS Code. First time running the project from the template, Psake puked a bit - trying to find the name of the module, so I updated the Plaster

WSL - Installing Fresh on Win10 in 2021

Installed with: choco install wsl -y Continued install with: While moving from WSL 1 to 2, had this pop-up: Virtual hard disk files must be uncompressed and unencrypted and must not be sparse ... and after a quick Google-Foo: cd ~\AppData\Local\Package\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc ii . Go to the properties on the directory: LocalState Uncheck: "Compress contents to save disk space" and "Encrypt contents to secure data" Apply Then: wsl --set-version Ubuntu-20.04 2 wsl --set-default-version 2

Fine-Tuning Skills with PowerShell Modules

 I resumed work on a project to dive deep into Plaster - a tool for auto-generating Modules with custom configurations built-in, instead of having to remember how to create a module each time. In the past, I had just copied one module and changed the GUID info. It was tedious, but it worked. This time around, I'm focusing on making it easily repeatable. Using: Plaster to gen the new module. psake for code build process. Pester tests PlatyPS for dynamic help markdown gen

Fallout 3 (2008) on Windows 10 in 2021

Preface I'm adding a log of things I'm working on (both professional and fun), as a way to both document experiences and remember what the hell I did. Otherwise, it's lost to the ages just like the very early web cam sessions I did with both of my sons, which were lost to a hard drive failure. For the last 10 years or so, I had shifted my attention to family & work. I avoided large game titles. Now, it's time to play again. Fallout 3 : Post Install from Steam in 2021 Just finished Fallout 4, at least to the point of finishing every main quest and last DLC with Nuka-World Open Season. Prior to that Fallout: New Vegas. Wasn't sure if I wanted to try 76 or 3 next. Opted for the latter. In retrospect, I should have both consulted Reddit, Steam Community and/or Nexus Mods before trying to run the 13 year-old game. GFWL Fix: Intel Fix:

DevOps: My Perspective

Several will say that the key to implementing DevOps in an organization is collaboration.  While true, the idea and willingness to collaborate is imperative, in the real world, people hate change, talking to people in different groups and generally going outside of their realm of comfort.  The most effective way to accomplish this sense of collaboration is to start with baby-steps: Little things that stretch beyond comfort levels and the willingness to do so.  So, if I were to use one word to describe DevOps: Initiative. It may sound strange, but a little initiative goes a long way to show what can be done.  Unlike traditional change, introducing DevOps into an organization does not have to come from the "top down." Everyone has it in them to make that first baby-step.  That first step is to take an inventory of systems, services, applications, processes and practices. This analysis step is the vital foundation stone for everything to come. If documentation doesn't exist,