Remote / Working from Home, Part 4

[Part 1] [Part 2] [Part 3]

Distractions

Home distractions are very different than office workplace distractions because they are much more personal. The lines are blurred between office and home life. 

Here are some useful tips to get through the day:

  • No matter how clear the boundaries, family will always see you as "the dad" or "the mom."
    • It can be very difficult and takes everyone time to get used to.
    • It's better to handle their requests than to get angry.
  • A dedicated room/office is best.
    • Room dividers work.
  • Meetings and calls
    • Make it clear that you are in a meeting
    • Keep a cool head while on the phone and your 2 yr old demands mac & cheese.
These all go back to the other entries about working from home: a routine, personal presentation, cleanliness, organization -- all of these communicate to family and others that you have your game face on and providing for them.

Conclusion


It's not always easy to follow these bullet points. Heck, I find myself ignoring my own advice and tips here and kick myself for it. If you've made it this far then I hope you've learned something from my experiences. 

Be Safe.

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 for the projects I'm on?
      • What meetings should I attend?
  • Follow-up - Integrity & Vigilance
    • It's important to know that it's your responsibility verify that everyone knows where you are and what you're doing, right now.
    • Be respectful, professional and concise.
This does go back to communication (part 1), but these are more of the solid foundation items for successful remote work.

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 in your profile or status in your instant messaging tool.
    • Establish times of day to pause and communicate status.
So, yeah... that's a lot to cover. It all sounds weird reading (and writing) this because "everybody does this, right?" Wrong. I've read articles lately about "When it's okay not to shower." So, again, yeah... it's basic, but really very important to get in the right mind-set to work from your home office.

Side Note 

Driving to an office has this same effect:

    You are mentally (and physically) transferring attitudes and mindsets to "work mode." 

Capture that feeling and think about ways to recreate it.

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 ( https://twitter.com/edhaack @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 courtesy. 
    • 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 adults, but expect status: good, bad or ugly
      • Trust in the team to collaborate and be successful
    • Tact: Focus on the tasks not the drama
      • It's very easy to get caught up in the lack of face-to-face water cooler conversation. Be mindful of the above "Trust"
      • Messages lack emotion (even with emoticons) - Always be sincere.
    • Recognize potential disagreements.
      • If messaging is failing and/or going beyond a simple question/answer synchronicity, it's time to pick up the phone.
      • Take pause. Messaging is permanent. Read and re-read a conversation before planting a flag in a discussion
      • If ever in doubt, pick up the phone.
[More to come]

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: https://itsfoss.com/fix-ubuntu-freezing/

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:

  1. Start with a scaffold 'main.ps1' script, that is never touched.
  2. 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:
  1. Argument Testing
  2. Main Function Execution
  3. Output/Artifacts
The unique or 'functions.ps1' file, it would contain 
  1. all arguments/params for itself (using the $args array)
  2. standard "MainProcess" function
We'll see how it goes.

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 Template to inject the name of the given module into Psake's settings file, vs how Psake attempts to get the Module Name.

I'm pretty happy with the work accomplished. I seriously don't see a real need to go beyond the template I created. I know a lot of hard work went into Plaster, but I can't see myself using multiple templates, when I can just make an uber template and customize during "plaster up" time.


WSL - Installing Fresh on Win10 in 2021

Installed with:

choco install wsl -y

Continued install with: https://docs.microsoft.com/en-us/windows/wsl/install-manual

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:

https://simplernerd.com/wsl2-uncompressed/

  • 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.
  • https://steamcommunity.com/app/22370/discussions/0/828937546147175081/
  • GFWL Fix: https://www.nexusmods.com/fallout3/mods/22591
  • Intel Fix: https://www.nexusmods.com/fallout3/mods/17209

Important File Paths

  • C:\Program Files (x86)\Steam\steamapps\common\Fallout 3 goty\
    • Fallout_default.ini
  • C:\Users\[USER NAME HERE]\Documents\My Games\Fallout3\
    • Fallout.ini
    • FalloutPrefs.ini

Problem 1: "Ordinal Not found" "Missing C:\Windows\System32\xlive.dll"

Fallout 3 (2008) closely coupled with Windows Live (Gaming for Windows), before Steam. The Fallout 3 installer is indeed bundled with GFWL, but poorly installed. 

Solution

  • Install [Path to Fallout 3 goty]\GFWLive both .msi files

Problem 2: Video crashing to desktop

I'm using a Dell Laptop with both Intel and NVidia chips with a port extender. The loader did not correctly detect the Intel chip and even when adding the game .exe to the NVidia Utility, crashed when trying to play the intro video.

Solution

  • Nexus Mods: Intel HD graphics Bypass package
  • Edit FalloutPrefs.ini to change the "iSize W" and "iSize H" values to match the monitor's resolution.


UPDATE

Had the same problem AGAIN. Full Screen would not display. Ultimately this mod did the trick:
https://www.nexusmods.com/fallout3/mods/21337/?

Thanks!

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, offer suggestions on a centralized location.

[Note: Post edited for readability]

The Elder Scrolls: Oblivion - 2023 Experience

This article is a WIP.  Setting up Oblivion in 2023 on a Steam Deck (w/ SteamOS)  Install from Steam  Vortex Experience (post base mod tools...