<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: 4lch4 Industires, LLC.</title>
    <description>The latest articles on Forem by 4lch4 Industires, LLC. (@4lch4-industries).</description>
    <link>https://forem.com/4lch4-industries</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F305%2Fbcace899-65a5-4317-8197-8d3606c00352.png</url>
      <title>Forem: 4lch4 Industires, LLC.</title>
      <link>https://forem.com/4lch4-industries</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/4lch4-industries"/>
    <language>en</language>
    <item>
      <title>Enmeti 1.2.1 Update Log</title>
      <dc:creator>Devin W. Leaman</dc:creator>
      <pubDate>Tue, 13 Nov 2018 11:19:48 +0000</pubDate>
      <link>https://forem.com/4lch4-industries/enmeti-update-log-2-2paf</link>
      <guid>https://forem.com/4lch4-industries/enmeti-update-log-2-2paf</guid>
      <description>&lt;p&gt;&lt;em&gt;Cover Image by &lt;a href="https://unsplash.com/photos/JgpHTeuqChw?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;The Lonely Photographer&lt;/a&gt; on &lt;a href="https://unsplash.com"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Is It Done Yet?
&lt;/h2&gt;

&lt;p&gt;Of course not! If you've ever written code for a project you enjoy working on, you know the work is never truly done. You're always in a state of changing things or coming up with new ideas.&lt;/p&gt;

&lt;p&gt;Lately, I've been working on adding translations to the text used by &lt;a href="https://marketplace.visualstudio.com/items?itemName=hf-solutions-llc.enmeti"&gt;Enmeti&lt;/a&gt; as well as learning more about how VSCode handles various display languages. At this point I've got a decent version of the extension working with support for English, Spanish, and French. Granted, the Spanish translations were done with Google Translate so there's no telling how accurate they are 😅&lt;/p&gt;

&lt;p&gt;I've got a few friends that will be doing more accurate translations of the strings used and then I'll update the extension accordingly. For the time being, it's a start at least!&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Features
&lt;/h2&gt;

&lt;p&gt;At this point I'm pretty happy with where it stands. I still have some work to do in regards to the translation support, and once that's complete I'll have finished everything on my original roadmap for Enmeti. I've got a few other ideas I'd like to add but I'll be taking a slower approach to pushing changes to the marketplace. After the last few releases I noticed glaring issues that I'd have caught if I only used the extension a bit more before publishing that version.&lt;/p&gt;

&lt;p&gt;The next idea I have in mind is adding the ability to insert links to a &lt;strong&gt;Referenced Links&lt;/strong&gt; section near the bottom of the file in case you want to show all the links referenced in one section. Ideally, it would add the link reference to the bottom of the file like normal, but just above those hidden references it would show a &lt;strong&gt;Referenced Links&lt;/strong&gt; section that shows the URL's referenced throughout the file.&lt;/p&gt;

&lt;p&gt;If you'd like to provide translations of the text into your own language, simply check out the &lt;a href="https://github.com/HF-Solutions/Enmeti/blob/master/tools/Strings.js"&gt;Strings.js&lt;/a&gt; file and submit a PR with your additions. That said, if you have any comments, criticisms, or suggestions, please don't hesitate to let me know 😊&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>update</category>
      <category>node</category>
      <category>markdown</category>
    </item>
    <item>
      <title>What's Up Doc?</title>
      <dc:creator>Devin W. Leaman</dc:creator>
      <pubDate>Sat, 27 Oct 2018 17:52:18 +0000</pubDate>
      <link>https://forem.com/4lch4-industries/whats-up-doc-53cj</link>
      <guid>https://forem.com/4lch4-industries/whats-up-doc-53cj</guid>
      <description>&lt;p&gt;&lt;em&gt;Cover photo by &lt;a href="https://unsplash.com/photos/mGVhGkvBTYc"&gt;rawpixel&lt;/a&gt; on &lt;a href="https://unsplash.com/search/photos/update"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Well, it's certainly been too long since my last blog post, so this is a catch-all for the things I've done since I last published and what my plans are now that the holiday season is approaching.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tron
&lt;/h2&gt;

&lt;p&gt;Of course, I've been working on my baby, &lt;a href="https://github.com/HF-Solutions/Tron"&gt;Tron&lt;/a&gt; by fixing bugs and adding a command that had been requested for some time:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bug Fixes

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/HF-Solutions/Tron/commit/78c7298b6a3475fb85c170fc09ca03721564c43f"&gt;Fixed the &lt;code&gt;+adopt&lt;/code&gt; command&lt;/a&gt; to works as expected instead of not replying.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/HF-Solutions/Tron/commit/96163b2716b76e01ff56e65cf923b6aeb8b1d9ce"&gt;Added Try/Catches&lt;/a&gt; to help prevent &lt;strong&gt;PermissionsDenied&lt;/strong&gt; errors that were crashing Tron.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/HF-Solutions/Tron/commit/0a430de6a4aacb4d3f58d2305e6bee0c02f0d6d0"&gt;Fixed the &lt;code&gt;+reddit&lt;/code&gt; command&lt;/a&gt; so it properly displays an image from the requested subreddit.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/HF-Solutions/Tron/commit/2837581548dd7829e031e24179b8542843be66f8"&gt;Fixed the &lt;code&gt;+birthday&lt;/code&gt; command&lt;/a&gt; so it properly saves birthdays.&lt;/li&gt;
&lt;li&gt;For some reason I forgot to pass the client so it wasn't actually saving anything.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/HF-Solutions/Tron/commit/35c7b8340e30226845e97035596cd2f7001fd0c9"&gt;Fixed the &lt;code&gt;+marriage&lt;/code&gt; command&lt;/a&gt; so it would accept input from the correct user.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/HF-Solutions/Tron/commit/bade884f7954a08262374aef3cc92daa03ecb94a"&gt;Fixed the &lt;code&gt;getImage()&lt;/code&gt; function&lt;/a&gt; so it would check the values properly.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/HF-Solutions/Tron/commit/bf4745311e233aabde5ce2249cb361445dfed9f7"&gt;Fixed the &lt;code&gt;onCommandRun&lt;/code&gt; event&lt;/a&gt; so it wouldn't crash if the user tried running a command in DM's.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Added

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/HF-Solutions/Tron/commit/7a67b9681a4b26d23b35e69a846d724c368ffa31"&gt;Added the Purge command&lt;/a&gt; as requested by a few users.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Enmeti
&lt;/h2&gt;

&lt;p&gt;I managed to get &lt;a href="https://marketplace.visualstudio.com/items?itemName=hf-solutions-llc.enmeti"&gt;Enmeti&lt;/a&gt; to a respectable state and it is now at version 1.1.1. You can insert links and/or images in place of existing text, on a blank line or in place of your cursor. I still have some more work to do, specifically with detecting the bottom of the file, but I believe it's in a much better place than when &lt;a href="https://dev.to/hf-solutions/project-enmeti-update-log-20180820-4297"&gt;I previously wrote about it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For more information, check out the extension on the &lt;a href="https://marketplace.visualstudio.com/items?itemName=hf-solutions-llc.enmeti"&gt;Visual Studio Code Marketplace&lt;/a&gt;, or visit the &lt;a href="https://github.com/HF-Solutions/Enmeti"&gt;repository on GitHub&lt;/a&gt; 😊&lt;/p&gt;

&lt;h2&gt;
  
  
  Personal/Company Website
&lt;/h2&gt;

&lt;p&gt;For the longest time, &lt;a href="https://hasslefree.solutions"&gt;my company website&lt;/a&gt; was hosted on &lt;a href="https://www.squarespace.com/"&gt;SquareSpace&lt;/a&gt; until recently when I discovered the joy of &lt;a href="https://pages.github.com"&gt;GitHub Pages&lt;/a&gt;. After tinkering with it for a week or two, I managed to get comfortable enough that I created what is now &lt;a href="https://hasslefree.solutions"&gt;my new website&lt;/a&gt; for &lt;strong&gt;HassleFree Solutions, LLC&lt;/strong&gt;. When I completed the &lt;strong&gt;HassleFree Solutions&lt;/strong&gt; site, I was confident that I could get &lt;a href="https://alcha.org"&gt;my own personal site&lt;/a&gt; setup using a different theme and with blogging support. I'm using the &lt;a href="https://github.com/alexcarpenter/material-jekyll-theme"&gt;Material-Jekyll-Theme&lt;/a&gt; created by &lt;a href="https://github.com/alexcarpenter/material-jekyll-theme"&gt;Alex Carpenter&lt;/a&gt; for my personal site, while my company website uses the &lt;a href="https://pages-themes.github.io/time-machine/"&gt;Time Machine theme&lt;/a&gt; with a bit of customization done by myself to make it look a bit nicer (imo).&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I need to write more! While I feel like I've done a lot of stuff since I last wrote, I don't feel quite as accomplished as I do when I also write about what I've been working on. So, with that said I intend to write something at least once a week and publish it whether or not I'm happy about it 😅&lt;/p&gt;

&lt;p&gt;That said, if you have any comments, criticisms, or suggestions, please don't hesitate to let me know! There's a number of ways to contact me on my &lt;a href="https://alcha.org/#contact-info"&gt;personal site&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>update</category>
      <category>life</category>
      <category>news</category>
      <category>projects</category>
    </item>
    <item>
      <title>Project Enmeti Update Log 2018/08/20</title>
      <dc:creator>Devin W. Leaman</dc:creator>
      <pubDate>Tue, 21 Aug 2018 06:30:27 +0000</pubDate>
      <link>https://forem.com/4lch4-industries/project-enmeti-update-log-20180820-4297</link>
      <guid>https://forem.com/4lch4-industries/project-enmeti-update-log-20180820-4297</guid>
      <description>&lt;p&gt;&lt;em&gt;Cover photo by &lt;a href="https://unsplash.com/photos/BnWDqUCWQDU?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Fahrul Azmi&lt;/a&gt; on &lt;a href="https://unsplash.com" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Project Enmeti Update Log #1
&lt;/h1&gt;

&lt;p&gt;So, as I started my &lt;a href="https://www.100daysofcode.com" rel="noopener noreferrer"&gt;100DaysOfCode&lt;/a&gt; challenge, I &lt;a href="https://dev.to/hf-solutions/project-enmeti-o0g"&gt;set out&lt;/a&gt; to create an extension that would make it easier to insert links into Markdown files when writing articles, journal entries, whatever it is. I feel I have it at a comfortable state, however, I wanted to be able to try it out a bit more before I could say for sure.&lt;/p&gt;

&lt;p&gt;For example, I'm writing this article not only to post an update that I've got this &lt;a href="https://marketplace.visualstudio.com/items?itemName=hf-solutions-llc.enmeti" rel="noopener noreferrer"&gt;extension working&lt;/a&gt;, but to test it out in a "production" environment 😅 As a result, the first thing I need to change is so that I can &lt;code&gt;Alt+Tab&lt;/code&gt; away from VSCode to actually &lt;em&gt;get&lt;/em&gt; the link I need, and the input box not disappear...&lt;/p&gt;

&lt;p&gt;Ahhh, &lt;a href="https://github.com/HF-Solutions/Enmeti/commit/66eb63d3951329eb704f4ca03b64eb3e96cdd4b4" rel="noopener noreferrer"&gt;there we go&lt;/a&gt; 🤗 Much better. &lt;/p&gt;

&lt;p&gt;Up next, what if you try to add a link that's already been added? Why add it twice when we can just reference the &lt;a href="https://github.com/HF-Solutions/Enmeti/commit/c1d5c504a854036eea134464a21e1bcf8ae4af5a" rel="noopener noreferrer"&gt;pre-existing link?&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Use It
&lt;/h2&gt;

&lt;p&gt;So instead of just talking about the extension, how about I show you how to use it? The simplest way to insert a link would be to select some text, right click, and then select &lt;code&gt;Insert Link&lt;/code&gt;. It will show an &lt;strong&gt;InputBox&lt;/strong&gt; so you can give it the URL of your link:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fzesvk29zyzdqlgvlvqp8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fzesvk29zyzdqlgvlvqp8.gif" alt="Example-1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see in the gif, you can also use the default &lt;code&gt;Ctrl+Alt+I&lt;/code&gt; keybinding, or even change it to whatever you prefer in &lt;a href="https://code.visualstudio.com/docs/getstarted/keybindings" rel="noopener noreferrer"&gt;keybindings.json&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F7NKAy7e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2F7NKAy7e.png" alt="Keybindings.json"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Up Next
&lt;/h2&gt;

&lt;p&gt;Thanks to &lt;a href="https://dev.to/link2twenty/comment/4k81"&gt;a great suggestion&lt;/a&gt; by &lt;a href="https://dev.to/link2twenty"&gt;Andrew Bone&lt;/a&gt;, my next step is to make it so you can insert images similarly to how links are inserted. What I'm thinking is something along the lines of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Select the text to turn into an image&lt;/li&gt;
&lt;li&gt;Execute the command (&lt;code&gt;Ctrl+Shift+I&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Input the path to the image in an &lt;strong&gt;InputBox&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Add the reference to the image at the end just as we do links&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As usual, any and all input is welcome and much appreciated 😊&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>javascript</category>
      <category>extensions</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Project Enmeti</title>
      <dc:creator>Devin W. Leaman</dc:creator>
      <pubDate>Mon, 13 Aug 2018 06:24:14 +0000</pubDate>
      <link>https://forem.com/4lch4-industries/project-enmeti-o0g</link>
      <guid>https://forem.com/4lch4-industries/project-enmeti-o0g</guid>
      <description>&lt;p&gt;&lt;em&gt;Cover Photo by &lt;a href="https://unsplash.com/@dcanies"&gt;Derick Anies&lt;/a&gt; on &lt;a href="https://unsplash.com"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My First Real VSCode Extension
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://dev.to/hf-solutions/100-days-of-code-challenge-3j5h"&gt;my post&lt;/a&gt; where I talk about starting the #100DaysOfCode challenge, I mentioned one of the potential things I'd work on would be an extension for Visual Studio Code that would help me with inserting links into my Markdown files. This is particularly useful when writing posts such as this one where I do all the writing in a Markdown file on my machine and then copy/paste the content to &lt;a href="https://dev.to"&gt;dev.to&lt;/a&gt; or any other site I'm posting it to.&lt;/p&gt;

&lt;p&gt;This is something I found particularly annoying to do, considering how simple and repetitive the process is:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select the text to turn into a link.&lt;/li&gt;
&lt;li&gt;Add the &lt;code&gt;[&lt;/code&gt; brackets around it.&lt;/li&gt;
&lt;li&gt;Add a [x + 1] reference where x is number of the &lt;em&gt;last&lt;/em&gt; link I added to the post.&lt;/li&gt;
&lt;li&gt;Add the reference to the bottom of the file with the link next to it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While not overly difficult, if you've ever automated/simplified a mundane task then you know the feeling I'm talking about.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter Enmeti
&lt;/h2&gt;

&lt;p&gt;Which leads me to today, where I've actually posted the code online in a &lt;a href="https://github.com/HF-Solutions/Enmeti"&gt;GitHub repo&lt;/a&gt;. So far, the extension has nothing more than an &lt;code&gt;extension.insertLink&lt;/code&gt; command that will surround your selected text with brackets and add a &lt;code&gt;[0]&lt;/code&gt; reference to the end of it. Nothing fancy to say the least 😅 However, it's a good start as far as I can tell, since I've got the basis for making edits to the currently selected text, and I had &lt;em&gt;no&lt;/em&gt; idea how to do that when starting this.&lt;/p&gt;

&lt;p&gt;So far, the work I've managed to complete was largely thanks to the &lt;a href="https://code.visualstudio.com/docs/extensions/yocode"&gt;yo generator&lt;/a&gt; for Visual Studio Code extensions, the &lt;a href="https://github.com/Microsoft/vscode-MDTools"&gt;MDTools example&lt;/a&gt;, and the &lt;a href="https://code.visualstudio.com/docs/extensionAPI/overview"&gt;VSCode API documentation&lt;/a&gt;. So, a massive thank you to those who took part in those projects.&lt;/p&gt;

&lt;p&gt;That's all I've got for today, and I'll be sure to post more updates as I get further along 😊&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>extension</category>
      <category>javascript</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>100 Days of Code Challenge</title>
      <dc:creator>Devin W. Leaman</dc:creator>
      <pubDate>Wed, 08 Aug 2018 15:43:04 +0000</pubDate>
      <link>https://forem.com/hf-solutions/100-days-of-code-challenge-3j5h</link>
      <guid>https://forem.com/hf-solutions/100-days-of-code-challenge-3j5h</guid>
      <description>&lt;p&gt;Thanks to a post I read by &lt;a href="https://dev.to/endlesstrax/my-100daysofcode-challenge-1bo"&gt;Ricky White&lt;/a&gt; on dev.to, I've decided to tackle the &lt;strong&gt;&lt;a href="https://www.100daysofcode.com" rel="noopener noreferrer"&gt;100 Days of Code&lt;/a&gt;&lt;/strong&gt; challenge that I've seen all over this site. What started out as simple curiosity has now turn into a full-blown desire to take part, so thank you Ricky for being the straw that broke the camels back 😜&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/4lch4" rel="noopener noreferrer"&gt;
        4lch4
      &lt;/a&gt; / &lt;a href="https://github.com/4lch4/100-days-of-code" rel="noopener noreferrer"&gt;
        100-days-of-code
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Fork this template for the 100 days journal - to keep yourself accountable (multiple languages available)
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;I've joined the #100DaysOfCode Challenge&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Contents&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/4lch4/100-days-of-coderules.md" rel="noopener noreferrer"&gt;Rules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/4lch4/100-days-of-codelog.md" rel="noopener noreferrer"&gt;Log - click here to see my progress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/4lch4/100-days-of-codeFAQ.md" rel="noopener noreferrer"&gt;FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/4lch4/100-days-of-coderesources.md" rel="noopener noreferrer"&gt;Resources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Translations&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/4lch4/100-days-of-codeintl/bn/README.md" rel="noopener noreferrer"&gt;বাংলা&lt;/a&gt; - &lt;a href="https://github.com/4lch4/100-days-of-codeintl/ca/README.md" rel="noopener noreferrer"&gt;català&lt;/a&gt; - &lt;a href="https://github.com/4lch4/100-days-of-codeintl/ch/README.md" rel="noopener noreferrer"&gt;中文&lt;/a&gt; - &lt;a href="https://github.com/4lch4/100-days-of-codeintl/de/README.md" rel="noopener noreferrer"&gt;deutsch&lt;/a&gt; - &lt;a href="https://github.com/4lch4/100-days-of-codeintl/es/README.md" rel="noopener noreferrer"&gt;español&lt;/a&gt; – &lt;a href="https://github.com/4lch4/100-days-of-codeintl/fr/FAQ-fr.md" rel="noopener noreferrer"&gt;français&lt;/a&gt; – &lt;a href="https://github.com/4lch4/100-days-of-codeintl/it/README.md" rel="noopener noreferrer"&gt;italiano&lt;/a&gt; – &lt;a href="https://github.com/4lch4/100-days-of-codeintl/ja/README.md" rel="noopener noreferrer"&gt;日本語&lt;/a&gt; - &lt;a href="https://github.com/4lch4/100-days-of-codeintl/ko/README-ko.md" rel="noopener noreferrer"&gt;한국어&lt;/a&gt; – &lt;a href="https://github.com/4lch4/100-days-of-codeintl/nl/README.md" rel="noopener noreferrer"&gt;nederlands&lt;/a&gt; – &lt;a href="https://github.com/4lch4/100-days-of-codeintl/no/README.md" rel="noopener noreferrer"&gt;norsk&lt;/a&gt; – &lt;a href="https://github.com/4lch4/100-days-of-codeintl/pl/README.md" rel="noopener noreferrer"&gt;polski&lt;/a&gt; - &lt;a href="https://github.com/4lch4/100-days-of-codeintl/pt-br/LEIAME.md" rel="noopener noreferrer"&gt;português do Brasil&lt;/a&gt; - &lt;a href="https://github.com/4lch4/100-days-of-codeintl/ru/README-ru.md" rel="noopener noreferrer"&gt;русский&lt;/a&gt; – &lt;a href="https://github.com/4lch4/100-days-of-codeintl/ua/README-ua.md" rel="noopener noreferrer"&gt;українська&lt;/a&gt; - &lt;a href="https://github.com/4lch4/100-days-of-codeintl/el/README.md" rel="noopener noreferrer"&gt;ελληνικά&lt;/a&gt; - &lt;a href="https://github.com/4lch4/100-days-of-codeintl/sr/README-sr.md" rel="noopener noreferrer"&gt;srpski&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you want to help by providing a translation of content/rules in the language you know, submit a pull request (or DM me on Twitter &lt;a class="mentioned-user" href="https://dev.to/ka11away"&gt;@ka11away&lt;/a&gt;), adding a sub-folder in the 'intl' folder with the files of the translation there.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;If you've decided to join:&lt;/h2&gt;

&lt;/div&gt;
&lt;ol start="0"&gt;
&lt;li&gt;Check out &lt;a href="http://100daysofcode.com/" rel="nofollow noopener noreferrer"&gt;the Official Site&lt;/a&gt; for the #100DaysOfCode movement. Connect with others on the platform of your choice from this list: &lt;a href="http://www.100DaysOfCode.com/connect" rel="nofollow noopener noreferrer"&gt;www.100DaysOfCode.com/connect&lt;/a&gt;
Also, &lt;a href="https://www.100daysofcode.com/slack" rel="nofollow noopener noreferrer"&gt;here&lt;/a&gt; is a invite link to the 100DaysOfCode Slack channel&lt;/li&gt;
&lt;li&gt;Read &lt;a href="https://medium.freecodecamp.com/join-the-100daysofcode-556ddb4579e4" rel="nofollow noopener noreferrer"&gt;Join the #100DaysOfCode&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Fork this repo and commit to the &lt;a href="https://github.com/4lch4/100-days-of-codelog.md" rel="noopener noreferrer"&gt;Log&lt;/a&gt; or to the Alternative, rapid &lt;a href="https://github.com/4lch4/100-days-of-coder1-log.md" rel="noopener noreferrer"&gt;R1 Log&lt;/a&gt;…&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/4lch4/100-days-of-code" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  What Will I Work On?
&lt;/h2&gt;

&lt;p&gt;Thankfully, I've got a long list of things I've been wanting to add to &lt;a href="https://github.com/HF-Solutions/Tron" rel="noopener noreferrer"&gt;Tron&lt;/a&gt;, the Discord bot I began developing quite some time ago. More specifically, I've had a number of user requests for new commands for the bot, such as an adoption command, some new reaction images, and a potential notification system for &lt;a href="https://haveibeenpwned.com" rel="noopener noreferrer"&gt;HaveIBeenPwned&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And while I honestly believe that I could work for 100 days straight on &lt;strong&gt;Tron&lt;/strong&gt; and still have more stuff to add, I'm afraid that by the end of it I'll hate my beloved bot and no longer want to work on it 😅 So with that, I've got a few other things in mind to work on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Expanding my freelance company, &lt;strong&gt;HassleFree Solutions&lt;/strong&gt;, and seeking out new clients.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Since it's not exactly coding, this won't be going towards my actual 1hr a day. However, it &lt;em&gt;can&lt;/em&gt; lead to more projects to work on.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Converting the existing &lt;strong&gt;HassleFree Solutions&lt;/strong&gt; &lt;a href="https://hasslefree.solutions" rel="noopener noreferrer"&gt;website&lt;/a&gt; from SquareSpace over to a self-hosted solution.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Specifically, I'll be using the &lt;a href="https://www.gatsbyjs.org/" rel="noopener noreferrer"&gt;Gatsby.js&lt;/a&gt; static site generator coupled with the &lt;a href="https://github.com/ChangoMan/gatsby-starter-dimension" rel="noopener noreferrer"&gt;Dimension&lt;/a&gt; starter plugin.&lt;/li&gt;
&lt;li&gt;I don't intend to keep the blog on the website anymore, as all of my writing is posted to dev.to as well as kept in a personal archive.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Writing a Visual Studio Code extension to help me write my articles in Markdown.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is actually something that came to mind while writing up this article. When adding links, I have to surround the link with brackets and recall what the last number I used for the URL was (3, 6, 9?)&lt;/li&gt;
&lt;li&gt;It'd be nice to have a simple &lt;code&gt;Ctrl + Shift + I&lt;/code&gt; shortcut that would surround the text with brackets and then add the next number in the sequence.&lt;/li&gt;
&lt;li&gt;Any input on this would be appreciated as I won't get started on this for at least a couple weeks.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Expanding my PowerShell module, &lt;a href="https://github.com/Alcha/Gamgee" rel="noopener noreferrer"&gt;Gamgee&lt;/a&gt; to include some more functions that I've had stored in a Trello board for Zeus knows how long 🤦‍♂️&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  My Rules
&lt;/h2&gt;

&lt;p&gt;Just like those I've seen before me, my rules will be "slightly" different than the two initially given by the challenge. Granted, I'll still be adhering to those two rules, I'll be making a slight adjustment compared to what I've noticed most people do:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;I've noticed that most people don't want to count client work towards this challenge, which is understandable for obvious reason. I however, &lt;em&gt;will&lt;/em&gt; be counting client work as I'm still getting my freelance gig off the ground and all the work I can do for my clients would be a great use of my time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Since I'm still young and don't have any kids, there's not much that could be an acceptable reason to miss a day, but just in case, the only reasons I should miss a day are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extremely ill and can't get out of bed (rarely happens, but just in case, I'd like to have that base covered 😅)&lt;/li&gt;
&lt;li&gt;Family Emergency&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I'm going to throw in one last rule that writing for dev.to (as long as it's a technical article, and not a fluff piece) can also count towards the hour a day, as I usually spend a significant amount of time actually writing code, debugging, and researching stuff for my articles.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  And We're Off!
&lt;/h2&gt;

&lt;p&gt;And with that, I'm officially off to get started 😊&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>powershell</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Solving the Fizz Buzz Problem in PowerShell</title>
      <dc:creator>Devin W. Leaman</dc:creator>
      <pubDate>Tue, 07 Aug 2018 10:55:49 +0000</pubDate>
      <link>https://forem.com/hf-solutions/solving-the-fizz-buzz-problem-in-powershell-4a9l</link>
      <guid>https://forem.com/hf-solutions/solving-the-fizz-buzz-problem-in-powershell-4a9l</guid>
      <description>&lt;h2&gt;
  
  
  Fizz Buzz in PowerShell
&lt;/h2&gt;

&lt;p&gt;I'm going to start with a little anecdote before getting started on the meaty portion of this article so feel free to skip ahead to &lt;strong&gt;No More Anecdote&lt;/strong&gt; if you're just not that interested 😅 I completely understand.&lt;/p&gt;

&lt;p&gt;I realized about two weeks ago that I hadn't written anything in a while and had a bit of a desire to write, with nothing coming to mind on what to write. I was also dealing with a nagging feeling in my brain of "Should I really write another article?" and if I did "Who really cares if I write another article? There are countless others writing about the same stuff", among other negative thoughts.&lt;/p&gt;

&lt;p&gt;I went to a get together with some of my best friends to eat tacos, drink some tequila, and just enjoy each others company. While I was there, one of my more technically oriented friends came up to me and we began talking about my work, playing Overwatch, and other nerdy things, when he mentions to me that he enjoyed reading my past articles. While he may not be a currently active developer and that some of the stuff goes over his head, I've "got a knack for it" as he said.&lt;/p&gt;

&lt;p&gt;I was elated to hear this, and haven't felt that way about a "project" aside from when I can add features to &lt;a href="https://github.com/HF-Solutions/Tron" rel="noopener noreferrer"&gt;Tron&lt;/a&gt; that are heavily requested by the user base. It was enough to remind me the whole reason I started writing these is for the off-chance that someone like that &lt;em&gt;would&lt;/em&gt; enjoy my writing and possibly get them more interested in programming, learn something new, or simply enjoy the read for the sake of reading something interesting.&lt;/p&gt;

&lt;p&gt;In the end, I'd like to say thank you again to that friend of mine for the encouraging words, as I probably wouldn't have had the motivation to start on this without them 💗&lt;/p&gt;

&lt;h2&gt;
  
  
  No More Anecdote
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FuQbNvu9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FuQbNvu9.png" alt="Spiderman_Reading"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Photo by &lt;a href="https://unsplash.com/photos/o4c2zoVhjSw?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText" rel="noopener noreferrer"&gt;Raj Eiamworakul&lt;/a&gt; on &lt;a href="https://unsplash.com/search/photos/story" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And now we're off to the juicy bits of the article! 🤤 If you're unfamiliar with the &lt;a href="http://codingbat.com/doc/practice/fizzbuzz-code.html" rel="noopener noreferrer"&gt;Fizz Buzz&lt;/a&gt; interview problem, it's a relatively simple problem that is adept at testing your knowledge and fundamental understanding of a given programming language as well as showing the interviewer what kind of developer you are. &lt;/p&gt;

&lt;p&gt;For example, do you prefer to toss a bunch of things at the wall and see what works and whittle away the excess? Or do you prefer to lay out a plan for the program before you even write some code? If you'd like more information on the things interviewers can gleam from a Fizz Buzz solution, feel free to check out &lt;a href="https://www.forbes.com/sites/quora/2016/09/12/solving-fizzbuzz-shows-interviewers-much-more-than-your-programming-skills/#22daf3a63b36" rel="noopener noreferrer"&gt;this article&lt;/a&gt; from &lt;a href="https://www.quora.com/profile/Lionell-Pack" rel="noopener noreferrer"&gt;Lionell Pack&lt;/a&gt; on Forbes.&lt;/p&gt;
&lt;h2&gt;
  
  
  What's The Problem?
&lt;/h2&gt;

&lt;p&gt;The actual problem was (from what I can tell, please correct me if I'm wrong) initially put forth by Imron Ghory over &lt;a href="https://imranontech.com/2007/01/24/using-fizzbuzz-to-find-developers-who-grok-coding/" rel="noopener noreferrer"&gt;on his blog&lt;/a&gt; and it was based on a &lt;em&gt;"&lt;a href="https://en.wikipedia.org/wiki/Fizz_buzz" rel="noopener noreferrer"&gt;group word game&lt;/a&gt; for children to teach them about division."&lt;/em&gt; While there's a number of different ways to word this problem, here's the wording we're going to be working with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Write a program that prints the numbers 1 to 100. However, for multiples of three, print "Fizz" instead of the number. Meanwhile, for multiples of five, print "buzz" instead of the number. For numbers which are multiples of both, print "FizzBuzz."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This means there are a few things we need to keep in mind or consider:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The minimum value of 1.&lt;/li&gt;
&lt;li&gt;The maximum value of 100.&lt;/li&gt;
&lt;li&gt;Determine which order to check for multiples to avoid missing edge cases.&lt;/li&gt;
&lt;li&gt;Write the output to the console.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Where to Start?
&lt;/h2&gt;

&lt;p&gt;Well, this is where it varies for everyone. Depending on how you tend to work as a developer, your entry point will vary. Personally, I'll be starting by creating the &lt;code&gt;for&lt;/code&gt; loop that will iterate through all the numbers we need to analyze. This starts us off with something like the following for PowerShell:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="kr"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-le&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Write-Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will get us a starting point of outputting every number from 1 to 100. Now we should start putting in some &lt;code&gt;if&lt;/code&gt; statements to determine if &lt;code&gt;$x&lt;/code&gt; is a multiple of 3, 5, or both. As is the case with most modern programming languages, PowerShell has a &lt;a href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_arithmetic_operators?view=powershell-6#long-description" rel="noopener noreferrer"&gt;&lt;strong&gt;modulus&lt;/strong&gt;&lt;/a&gt; operator that will return the remainder of the division between two numbers.&lt;/p&gt;

&lt;p&gt;For example, doing &lt;code&gt;Write-Output (25 % 5)&lt;/code&gt; would output 0, since 25 divided by 5 has no remainder. This also happens to mean the first value is a multiple of the second, which we can use to determine the multiples of &lt;code&gt;$x&lt;/code&gt;. When I first wrote this script, my solution looked like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="kr"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-le&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nv"&gt;$Threes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nv"&gt;$Fives&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nv"&gt;$Threes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-and&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$Fives&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Write-Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"FizzBuzz"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$Threes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Write-Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Fizz"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$Fives&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Write-Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Buzz"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kr"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;Write-Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Cleaning Up Our First Draft
&lt;/h2&gt;

&lt;p&gt;While this works, it's a bit clunky and doesn't allow for us to easily modify it in the future if we want to add cases other than being a multiple of 3 or 5. I hadn't quite realized this until I went looking for more information on this problem and found &lt;a href="https://www.youtube.com/watch?v=QPZ0pIK_wsc" rel="noopener noreferrer"&gt;a video&lt;/a&gt; by Tom Scott. He pointed out that you could easily account for future adjustments by combining the output as a single variable for each number.&lt;/p&gt;

&lt;p&gt;While he used &lt;strong&gt;JavaScript&lt;/strong&gt;, the solution should be easily understandable and looks like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;for &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Fizz&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Buzz&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nx"&gt;output&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;i&lt;/span&gt;

  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;output&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, he creates the &lt;code&gt;output&lt;/code&gt; variable for each iteration of &lt;code&gt;$x&lt;/code&gt; and depending on the multiples, adds or replaces values to that variable. Then, in the end, he outputs it to the console using &lt;code&gt;console.log&lt;/code&gt;. Translating this to PowerShell, we get something like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="kr"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-le&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Fizz"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Buzz"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="n"&gt;Write-Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point, we have a working solution to the Fizz Buzz problem written in PowerShell. If you were to copy and paste it into a terminal you'd get something that looks like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FtC2pfXg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fi.imgur.com%2FtC2pfXg.png" alt="FizzBuzz.ps1_Output"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Finally, A Script!
&lt;/h2&gt;

&lt;p&gt;Now, since this is PowerShell, it's no fun just having a &lt;code&gt;for&lt;/code&gt; loop that we need to copy paste. No, we need a script! 😈&lt;/p&gt;

&lt;p&gt;I created a file simply titled &lt;code&gt;FizzBuzz.ps1&lt;/code&gt; and got to work by adding the standard goodies at the top of a PowerShell script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;CmdletBinding&lt;/span&gt;&lt;span class="p"&gt;()]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="kr"&gt;param&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since I was initially writing this script for the &lt;a href="https://github.com/jrg94/sample-programs" rel="noopener noreferrer"&gt;sample programs&lt;/a&gt; repository I contribute to, I knew I wanted to support more than going from 1 to 100. Instead, I wanted users to be able to provide a minimum and maximum parameter that would let them modify the output. This simply means adding two parameters to the &lt;code&gt;param ()&lt;/code&gt; field like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="kr"&gt;param&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Parameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Mandatory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Position&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nv"&gt;$Min&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Parameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Mandatory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Position&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nv"&gt;$Max&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;Mandatory&lt;/code&gt; and &lt;code&gt;Position&lt;/code&gt; attributes tell PowerShell that the parameters have default values and that they aren't mandatory, and the position attribute makes it possible to do something like &lt;code&gt;.\FizzBuzz.ps1 0 75&lt;/code&gt; to adjust the min and max without having to specify the parameter names. Then, with some minor changes to the &lt;code&gt;for&lt;/code&gt; loop, we have our &lt;a href="https://github.com/jrg94/sample-programs/blob/master/archive/p/powershell/FizzBuzz.ps1" rel="noopener noreferrer"&gt;finished result&lt;/a&gt;!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="cm"&gt;&amp;lt;#
&lt;/span&gt;&lt;span class="cs"&gt;.SYNOPSIS&lt;/span&gt;&lt;span class="cm"&gt;
  A simple script that solves the standard FizzBuzz interview problem.

&lt;/span&gt;&lt;span class="cs"&gt;.DESCRIPTION&lt;/span&gt;&lt;span class="cm"&gt;
  A simple script that solves the FizzBuzz interview problem to illustrate flow
control within a PowerShell script.

&lt;/span&gt;&lt;span class="cs"&gt;.PARAMETER&lt;/span&gt;&lt;span class="cm"&gt; Min
  The minimium value to start counting at (inclusive). Defaults to 1.

&lt;/span&gt;&lt;span class="cs"&gt;.PARAMETER&lt;/span&gt;&lt;span class="cm"&gt; Max
  The maximum value to count to (inclusive). Defaults to 100.

&lt;/span&gt;&lt;span class="cs"&gt;.EXAMPLE&lt;/span&gt;&lt;span class="cm"&gt;
  .\FizzBuzz.ps1
1
2
Fizz
4
Buzz
Fizz
...

&lt;/span&gt;&lt;span class="cs"&gt;.EXAMPLE&lt;/span&gt;&lt;span class="cm"&gt;
  .\FizzBuzz.ps1 -Min 10 -Max 75
Buzz
11
Fizz
13
14
FizzBuzz
16
...

&lt;/span&gt;&lt;span class="cs"&gt;.NOTES&lt;/span&gt;&lt;span class="cm"&gt;
  For reference, here's a copy of the FizzBuzz problem that this script solves,
the only difference between the requested solution and this script is the script
will let you determine the minimum and maximum values if you desire:

"Write a program that prints the numbers 1 to 100. However, for multiples of
three, print "Fizz" instead of the number. Meanwhile, for multiples of five,
print "Buzz" instead of the number. For numbers which are multiples of both,
print "FizzBuzz"
#&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;CmdletBinding&lt;/span&gt;&lt;span class="p"&gt;()]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="kr"&gt;param&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Parameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Mandatory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Position&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nv"&gt;$Min&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Parameter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Mandatory&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="bp"&gt;$false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Position&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nv"&gt;$Max&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="kr"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$X&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Min&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$X&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-le&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Max&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$X&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$X&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Fizz"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$X&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Buzz"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="kr"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;-eq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$X&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="n"&gt;Write-Output&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$Output&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>powershell</category>
      <category>tips</category>
      <category>interview</category>
      <category>fizzbuzz</category>
    </item>
    <item>
      <title>Do gifs bother you when reading an article?</title>
      <dc:creator>Devin W. Leaman</dc:creator>
      <pubDate>Sun, 05 Aug 2018 18:45:18 +0000</pubDate>
      <link>https://forem.com/4lch4-industries/do-gifs-bother-you-when-reading-an-article-2okj</link>
      <guid>https://forem.com/4lch4-industries/do-gifs-bother-you-when-reading-an-article-2okj</guid>
      <description>&lt;p&gt;Hey Dev folks,&lt;/p&gt;

&lt;p&gt;I've been on here for a few months now and I read rather regularly but one thing I've noticed particularly on here is the usage of gifs in articles. There are times when a gif is absolutely perfect for conveying a thought or message that wouldn't come across the same just in text. However, I've seen gifs littered throughout articles as if to have them for the sake of having a cute or funny gif in the post and it's distracting to see it reload over and over again as I'm trying to read something below or above it.&lt;/p&gt;

&lt;p&gt;I'm wondering if there's anyone else who finds them as distracting as I do or if I'm just being a big curmudgeon about it 😅 Any comments would be greatly appreciated.&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>gifs</category>
      <category>distraction</category>
      <category>frustrating</category>
    </item>
    <item>
      <title>How To Uniquify Your PowerShell Console</title>
      <dc:creator>Devin W. Leaman</dc:creator>
      <pubDate>Mon, 04 Jun 2018 00:32:46 +0000</pubDate>
      <link>https://forem.com/hf-solutions/how-to-uniquify-your-powershell-profile-2b35</link>
      <guid>https://forem.com/hf-solutions/how-to-uniquify-your-powershell-profile-2b35</guid>
      <description>&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Table of Contents&lt;/li&gt;
&lt;li&gt;PowerShell Profile Basics&lt;/li&gt;
&lt;li&gt;What're We Trying to Achieve?&lt;/li&gt;
&lt;li&gt;Where Do We Start?&lt;/li&gt;
&lt;li&gt;Customizing the Title/Prompt&lt;/li&gt;
&lt;li&gt;Getting The Weather&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  PowerShell Profile Basics
&lt;/h2&gt;

&lt;p&gt;It's important to point out that knowledge of PowerShell profiles, while helpful ahead of time, isn't absolutely required to read this article and potentially gain some value. If you do wish to get some information ahead of time, I highly recommend taking a look at &lt;a href="https://blogs.technet.microsoft.com/heyscriptingguy/2012/05/21/understanding-the-six-powershell-profiles/"&gt;this blog post&lt;/a&gt; by &lt;a href="https://social.technet.microsoft.com/profile/The+Scripting+Guys"&gt;The Scripting Guys'&lt;/a&gt; Ed Wilson.&lt;/p&gt;

&lt;p&gt;There are only a couple things I think you need to know about profiles in PowerShell before continuing on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A profile is a script that allows you to customize your console by being executed as soon as you launch said console.&lt;/li&gt;
&lt;li&gt;There are 6 profiles you can utilize to choose exactly &lt;em&gt;which&lt;/em&gt; console you'd like to customize.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What're We Trying to Achieve?
&lt;/h2&gt;

&lt;p&gt;With that said, this is gonna be a long read so let's get started. Here is an image of my current console on startup (our end goal):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Yi2WvlKp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/ljEMzRv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Yi2WvlKp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/ljEMzRv.png" alt="Custom_PowerShell_Console"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I like it to show me the current weather report, and I've customized the prompt line to show the current directory name and time as opposed to the standard look:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DmOyYE0Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/oiReAl8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DmOyYE0Y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/oiReAl8.png" alt="Default_PowerShell_Console"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  To-Do
&lt;/h3&gt;

&lt;p&gt;So, this means we have 3 "tasks" to complete for our desired look:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add the weather API for our date integration&lt;/li&gt;
&lt;li&gt;Add the current time to the beginning of the current shell line&lt;/li&gt;
&lt;li&gt;Add the current directory to the end of the current shell line&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Where Do We Start?
&lt;/h2&gt;

&lt;p&gt;To be completely honest, as I started to write this post I realized I had no idea how I did this aside from having to overwrite a function in my profile called &lt;code&gt;global:prompt&lt;/code&gt; I believe. So, I opened my profile script in &lt;a href="https://www.sapien.com/software/powershell_studio"&gt;PowerShell Studio&lt;/a&gt; which is located at &lt;code&gt;C:\Users\Alcha\Documents\WindowsPowerShell\Profile.ps1&lt;/code&gt; and saved a backup copy (&lt;code&gt;Profile_Backup.ps1&lt;/code&gt;). Then, a lovely &lt;code&gt;Ctrl + A → Backspace&lt;/code&gt; so we have a clean slate. &lt;/p&gt;

&lt;p&gt;First up, we need to find out how to customize the prompt itself, so a quick google search will get us started. The &lt;a href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_prompts?view=powershell-6"&gt;first&lt;/a&gt; &lt;a href="https://blogs.technet.microsoft.com/heyscriptingguy/2016/01/03/weekend-scripter-customize-powershell-title-and-prompt/"&gt;three&lt;/a&gt; &lt;a href="https://github.com/dahlbyk/posh-git/wiki/Customizing-Your-PowerShell-Prompt"&gt;results&lt;/a&gt; were more than enough to get me what I needed. Personally, I prefer reading examples over documentation so after scanning over the three links, I chose to focus on the third as it seemed rather lengthy and full of examples. After reading a bit more, I realized it was more focused on &lt;a href="https://github.com/dahlbyk/posh-git/"&gt;posh-git&lt;/a&gt; specifically, so I switched back to &lt;a href="https://blogs.technet.microsoft.com/heyscriptingguy/2016/01/03/weekend-scripter-customize-powershell-title-and-prompt/"&gt;the Scripting Guys response&lt;/a&gt; written by Sean Kearney.&lt;/p&gt;

&lt;h2&gt;
  
  
  Customizing the Title/Prompt
&lt;/h2&gt;

&lt;p&gt;While Sean first covers how to customize the title of the window, this is something I didn't know about before and wound up changing in my profile, so hooray for new stuff! More specifically, I started by adding this line to customize the &lt;code&gt;$Host.UI.RawUI.WindowTitle&lt;/code&gt; property:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="bp"&gt;$Host&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;UI&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;RawUI&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WindowTitle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Get-Date&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToString&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;While it was neat, I didn't quite like the format:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_CP5vgAN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/wmQGfxg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_CP5vgAN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/wmQGfxg.png" alt="Customized_WindowTitle-1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After &lt;a href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-date?view=powershell-6#examples"&gt;some tinkering&lt;/a&gt;, I landed on the &lt;code&gt;'%y/%m/%d %R'&lt;/code&gt; format. Which you'd use like &lt;code&gt;Get-Date -UFormat '%y/%m/%d %R'&lt;/code&gt; , and your result should look something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QxXIdIX---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/a9fQMeH.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QxXIdIX---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/a9fQMeH.png" alt="Customized_WindowTitle-2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that I've got my title the way I want it, on to the rest. Next, Sean mentions the default prompt function, which is what's executed every time your prompt is displayed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="s2"&gt;"PS &lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nv"&gt;$executionContext&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;SessionState&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;CurrentLocation&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'&amp;gt;'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$nestedPromptLevel&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;) "&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Bingo! Now we can take care of the 3rd item on our To-Do list: &lt;code&gt;Add the current directory to the end of the current shell line&lt;/code&gt; To do this, we need to get the current working directory, which is available a number of ways. We can either use the &lt;code&gt;$PWD&lt;/code&gt; variable which stores the current variable, or we can use the &lt;a href="https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-location?view=powershell-6"&gt;Get-Location&lt;/a&gt; cmdlet, which is what we'll be doing.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Get-Location&lt;/code&gt; by default returns the entire current path, but we're only interested in the last portion of it, so we can get that part by using the &lt;a href="https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Management/Split-Path?view=powershell-6"&gt;Split-Path&lt;/a&gt; cmdlet:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="nf"&gt;Split-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;Get-Location&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Leaf&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c"&gt;# Gives us 'Alcha'&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now we need to combine knowledge of the &lt;code&gt;Prompt&lt;/code&gt; function, how to get the current date/time, and the &lt;code&gt;Get-Location&lt;/code&gt; cmdlet to get our desired result. The function will end up looking something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="kr"&gt;function&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;Prompt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="bp"&gt;$Host&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;UI&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;RawUI&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;WindowTitle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;Get-Date&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-UFormat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'%y/%m/%d %R'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Tostring&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="nf"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'['&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-NoNewline&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nf"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;Get-Date&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-UFormat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'%T'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-ForegroundColor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;Green&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-NoNewline&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nf"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;']:'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-NoNewline&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nf"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;Split-Path&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;Get-Location&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-Leaf&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-NoNewline&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="kr"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="s2"&gt; "&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;We need the &lt;code&gt;-NoNewLine&lt;/code&gt; parameter in order to put all of the text on the same line. This also allows us to separate it all into 5 separate lines and color the current time green while the rest remains the default white. Lastly, I moved the line to customize the title here because now whenever the prompt is updated, so is the title, and it'll show the "current" time. Now our console should look like so on startup:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1xx8DB-p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/irOTbHA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1xx8DB-p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/irOTbHA.png" alt="Customized_Prompt-1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With that, we've got two items from our To-Do list complete, and we can move on to the easiest part, which is adding a weather API to display the current conditions for our area.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting The Weather
&lt;/h2&gt;

&lt;p&gt;Now, to get the weather we'll be using the &lt;a href="https://openweathermap.org/"&gt;OpenWeatherMap&lt;/a&gt; service, mostly because I &lt;a href="https://github.com/obs0lete/Get-Weather"&gt;found a script&lt;/a&gt; at some point in the past that automatically formats the output into what you saw in the first screenshot. In order to use the service though, we need to &lt;a href="https://openweathermap.org/appid"&gt;get an API key&lt;/a&gt; that we can pass to the script.&lt;/p&gt;

&lt;p&gt;When you create an account on OpenWeatherMap, go to the API keys portion of your account, which if you can't find is &lt;a href="https://home.openweathermap.org/api_keys"&gt;available here&lt;/a&gt;. Create a key and name it whatever you want, I just left mine as "Default":&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x6DRP1hg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/RReC8Y9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x6DRP1hg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/RReC8Y9.png" alt="Open_Weather_Map_API_Key"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we have a key, we need to add the &lt;code&gt;Get-Weather&lt;/code&gt; script to our profile. The way I did this was I created a new script in my profiles directory (&lt;code&gt;C:\Users\Alcha\Documents\WindowsPowerShell\&lt;/code&gt;) called &lt;strong&gt;Get-Weather.ps1&lt;/strong&gt; and then copy/pasted the content of the script from GitHub. I'm bit of a stickler for variable naming conventions and capitalization so after some refactoring, I wound up with a script that looks something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nZcPQjKH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/heE3AmH.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nZcPQjKH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/heE3AmH.png" alt="Get-Weather_Script-1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I won't cover the meat and bones of the script, as this is already a rather lengthy post 😅 but the full text of "my" version of obs0lete's script is &lt;a href="https://gist.github.com/Alcha/f08a83486f7d064be9d4f73300a33872"&gt;available as a gist&lt;/a&gt;, you just need to plug in your API key for it to function properly. Now to &lt;em&gt;use&lt;/em&gt; this, we need only dot-source the file in our profile and then call the &lt;code&gt;Get-Weather&lt;/code&gt; function to kick it all off:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oIO7tWqD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/CpEy6aU.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oIO7tWqD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/CpEy6aU.png" alt="Weather_Added_To_Profile"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll of course have to change the &lt;strong&gt;API key&lt;/strong&gt;, &lt;strong&gt;city&lt;/strong&gt;, and &lt;strong&gt;country&lt;/strong&gt; to values that work for you, but it's fairly simple. Something to note, I found a hard time with the &lt;em&gt;actual&lt;/em&gt; city I live in, as there's a number of other cities in the USA with the same name. This meant I was getting really weird weather results from the API, imagine it saying it's raining outside when it's bright and sunny. I fixed this by finding the neighboring large city and using their name instead:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YiUpz7gC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/i3qpiCi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YiUpz7gC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/i3qpiCi.png" alt="Custom_PowerShell_Console-2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;It's important to note that I changed the original &lt;code&gt;Get-Weather&lt;/code&gt; script just enough to make it work for me, so be sure to make any adjustments you might need. For example, I mentioned adjusting the variable names, but I also updated the units from Metric to Imperial and made it so it would output the &lt;em&gt;Attempting URL...&lt;/em&gt; line mostly for debugging but also as a test for if the API isn't working for whatever reason.&lt;/p&gt;

&lt;p&gt;I hope this wasn't too painful of a read, I did my best to only cover the interesting bits of solving this problem and leave out any fat that was just dull or involved me spacing out and endlessly scrolling 😂 If you have any questions, comments, or concerns, please feel free to reach out to me on any of my social networks or email me at &lt;a href="mailto:admin@alcha.org"&gt;admin@alcha.org&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>powershell</category>
      <category>powershellprofile</category>
      <category>tips</category>
      <category>enhancements</category>
    </item>
    <item>
      <title>Hello World in PowerShell</title>
      <dc:creator>Devin W. Leaman</dc:creator>
      <pubDate>Thu, 31 May 2018 17:11:20 +0000</pubDate>
      <link>https://forem.com/4lch4-industries/hello-world-in-powershell-4n99</link>
      <guid>https://forem.com/4lch4-industries/hello-world-in-powershell-4n99</guid>
      <description>&lt;p&gt;&lt;em&gt;The following is a blog post I wrote for &lt;a href="https://therenegadecoder.com/" rel="noopener noreferrer"&gt;The Renegade Coder&lt;/a&gt;'s &lt;a href="https://github.com/jrg94/sample-programs" rel="noopener noreferrer"&gt;sample-programs&lt;/a&gt; repository.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  PowerShell Background
&lt;/h2&gt;

&lt;p&gt;PowerShell is the de facto scripting language for managing Windows machines/servers. &lt;a href="https://www.microsoft.com" rel="noopener noreferrer"&gt;Microsoft&lt;/a&gt; has made it quite clear that PowerShell is here to stay and will become the preferred way to manage Windows servers in the future.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Jeffrey_Snover" rel="noopener noreferrer"&gt;Jeffrey Snover&lt;/a&gt; is largely credited as the designer behind the language, while Bruce Payette and James Truher were also on the project, and in an interview in 2017, Snover &lt;a href="https://www.heavybit.com/library/podcasts/to-be-continuous/ep-37-the-man-behind-windows-powershell/" rel="noopener noreferrer"&gt;explained the motivation&lt;/a&gt; behind creating PowerShell:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I'd been driving a bunch of managing changes, and then I originally took the UNIX tools and made them available on Windows, and then it just didn't work. Right? Because there's a core architectural difference between Windows and Linux. On Linux, everything's an &lt;strong&gt;ASCII&lt;/strong&gt; text file, so anything that can manipulate that is a managing tool. &lt;code&gt;AWK&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, &lt;code&gt;sed&lt;/code&gt;? Happy days!&lt;/p&gt;

&lt;p&gt;I brought those tools available on Windows, and then they didn't help manage Windows because in Windows, everything's an API that returns structured data. So, that didn't help. [...] I came up with this idea of PowerShell, and I said, "Hey, we can do this better."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Originally, PowerShell was to be called &lt;strong&gt;Monad&lt;/strong&gt; and it's ideas were published in a white paper titled &lt;a href="https://blogs.msdn.microsoft.com/powershell/2007/03/18/monad-manifesto-the-origin-of-windows-powershell/" rel="noopener noreferrer"&gt;Monad Manifesto&lt;/a&gt;. Shortly after releasing the Beta 3 version Microsoft formally renamed &lt;strong&gt;Monad&lt;/strong&gt; to &lt;em&gt;Windows PowerShell&lt;/em&gt;, followed by the release candidate 1 version.&lt;/p&gt;

&lt;p&gt;PowerShell is now up to version 5.1 for stable builds and the new 6.0 version which was announced in 2016 is in public beta. The largest change in this version is it's now &lt;a href="https://arstechnica.com/information-technology/2016/08/powershell-is-microsofts-latest-open-source-release-coming-to-linux-os-x/" rel="noopener noreferrer"&gt;open-source&lt;/a&gt; and will now be called &lt;strong&gt;PowerShell Core&lt;/strong&gt; as it runs on &lt;a href="https://www.microsoft.com/net/download/windows" rel="noopener noreferrer"&gt;.NET Core&lt;/a&gt; as opposed to the &lt;a href="https://www.microsoft.com/net/learn/architecture" rel="noopener noreferrer"&gt;.NET Framework&lt;/a&gt; which previous versions use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hello World in PowerShell
&lt;/h2&gt;

&lt;p&gt;Enough background, let's actually get something working 😊&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;Write-Host&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'Hello, World!'&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To execute this code, simply open a PowerShell console on any Windows machine as it comes installed by default. You'll see the reply output in the window like so:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmx0kwb3htig10cfx88cf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmx0kwb3htig10cfx88cf.png" alt="Hello_World" width="536" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As is the case with most modern scripting languages, getting a Hello World sample running is really easy. &lt;/p&gt;

&lt;h2&gt;
  
  
  How to Run the Solution
&lt;/h2&gt;

&lt;p&gt;Instead of running the commands directly within the console though, the best route is to write your scripts in a file and call the file when necessary. Download a copy of the Hello-World.ps1 file from the repository and open a console.&lt;/p&gt;

&lt;p&gt;Now, navigate to wherever you downloaded the script and execute it by calling it like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;\Hello-World.ps1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This calls the script and returns the output to the console:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqp50ntjjnmmzav25h6o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsqp50ntjjnmmzav25h6o.png" alt="Hello_World_Script" width="536" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>powershell</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>New Node Modules w/ PowerShell</title>
      <dc:creator>Devin W. Leaman</dc:creator>
      <pubDate>Fri, 25 May 2018 15:50:06 +0000</pubDate>
      <link>https://forem.com/hf-solutions/new-node-modules-w-powershell-2fje</link>
      <guid>https://forem.com/hf-solutions/new-node-modules-w-powershell-2fje</guid>
      <description>&lt;p&gt;I've never been much of an OS/Platform purist. For as long as I can remember I have switched between Unix/Windows based systems on a regular basis for various reasons. With that said, I develop primarily on a Windows machine, and most of my projects end up running on a Linux server (Node modules), or on a Linux kernel (Android) of some sort, so being familiar with the *nix school of thought is quite helpful in the long run.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1487058792275-0ad4aaf24ca7%3Fixlib%3Drb-0.3.5%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26s%3D6726719ee78dabe78033950d9f3f7145%26auto%3Dformat%26fit%3Dcrop%26w%3D1950%26q%3D80" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1487058792275-0ad4aaf24ca7%3Fixlib%3Drb-0.3.5%26ixid%3DeyJhcHBfaWQiOjEyMDd9%26s%3D6726719ee78dabe78033950d9f3f7145%26auto%3Dformat%26fit%3Dcrop%26w%3D1950%26q%3D80" alt="Coding_Image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Without getting too thick in my personal examples of what it's like living between platforms, I'd instead like to share some of the stuff I've written or tools I use to make my life a bit easier. &lt;/p&gt;

&lt;p&gt;This post explicitly covers a script I wrote and added to my &lt;strong&gt;Current User, Current Host - console&lt;/strong&gt; &lt;a href="https://blogs.technet.microsoft.com/heyscriptingguy/2012/05/21/understanding-the-six-powershell-profiles/" rel="noopener noreferrer"&gt;PowerShell Profile&lt;/a&gt; to make initializing new Node.js modules much easier and specific to my preferences.&lt;/p&gt;

&lt;p&gt;If you'd like, you can skip straight to &lt;a href="https://github.com/Alcha/PowerShell/blob/master/Scripts/New-NodeModule.ps1" rel="noopener noreferrer"&gt;the code on GitHub&lt;/a&gt; if that's more your style, or read on for my explanation of my problem and my solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  What was the problem?
&lt;/h2&gt;

&lt;p&gt;Well, it wasn't a problem so much as a nuisance. When creating a new Node module, my standard workflow was something like so:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open Visual Studio Code&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;File&lt;/strong&gt; -&amp;gt; &lt;strong&gt;Open Folder&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Navigate to my Node.js modules folder -&amp;gt; Create a folder for the module&lt;/li&gt;
&lt;li&gt;Open the newly created folder and launch the integrated terminal&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;npm init&lt;/code&gt; to setup the &lt;code&gt;package.json&lt;/code&gt; with my default values&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;touch index.js; code index.js&lt;/code&gt; to create the new file and start work&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To say this is a bit tedious and annoying would be an understatement.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's my solution?
&lt;/h2&gt;

&lt;p&gt;I created a PowerShell Script called &lt;code&gt;New-NodeModule.ps1&lt;/code&gt;, with a single function &lt;code&gt;New-NodeModule&lt;/code&gt;, that I dot-source in my &lt;code&gt;Profile.ps1&lt;/code&gt;. The function does the most common things I do when creating a new module, such as create a &lt;code&gt;package.json&lt;/code&gt; with the default values for the license, author info, and so forth.&lt;/p&gt;

&lt;p&gt;The only required information to create a new module is the name of the module, which is accepted as the first parameter or using a named parameter like &lt;code&gt;New-NodeModule -ModuleName outside-cli&lt;/code&gt;. If desired, you can set the location for the module to be stored using the &lt;code&gt;-ModulePath&lt;/code&gt; parameter. Moreover, regarding the accepted parameters, I prefer to open the newly created module in &lt;strong&gt;Visual Studio Code&lt;/strong&gt; right after creating it so there's a &lt;code&gt;-OpenInVSCode&lt;/code&gt; parameter that defaults to &lt;code&gt;$true&lt;/code&gt; but can be set to &lt;code&gt;$false&lt;/code&gt; to prevent opening the newly created module.&lt;/p&gt;

&lt;h2&gt;
  
  
  What're the default values?
&lt;/h2&gt;

&lt;p&gt;When creating a new Node module, I tend to use a &lt;em&gt;lot&lt;/em&gt; of the same settings. For example, I always use &lt;a href="https://facebook.github.io/jest/" rel="noopener noreferrer"&gt;Jest&lt;/a&gt; for testing purposes and all of my projects are formatted/linted with &lt;a href="https://standardjs.com/" rel="noopener noreferrer"&gt;StandardJS&lt;/a&gt;. More specifically:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;As I'm creating the module, I can rest assured that I'm the author, so I'll always have the author block filled with information about myself&lt;/li&gt;
&lt;li&gt;I always have the &lt;code&gt;start&lt;/code&gt; script as a simple &lt;code&gt;node .\index.js&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;I mentioned I test with &lt;strong&gt;Jest&lt;/strong&gt;, so my &lt;code&gt;test&lt;/code&gt; script will always start with &lt;code&gt;jest&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;I prefer my projects to be licensed under the &lt;a href="https://standardjs.com/" rel="noopener noreferrer"&gt;MIT License&lt;/a&gt; as it most aligns with my views on OSS&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For more specifics, refer to the source code itself as it's all right there. 🤓&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;To conclude, the last significant change I made to make it easier to use this new file was to add aliases to the &lt;code&gt;New-NodeModule&lt;/code&gt; function (&lt;code&gt;nodemod&lt;/code&gt;, &lt;code&gt;new-nodemod&lt;/code&gt;, &lt;code&gt;newmod&lt;/code&gt;, &lt;code&gt;newmodule&lt;/code&gt;, &lt;code&gt;newnpm&lt;/code&gt;). Now, whenever I want to create a new module, I simply type &lt;code&gt;newmod&lt;/code&gt; in my terminal and it does what I need 😊&lt;/p&gt;

&lt;p&gt;If you have any questions, comments, or concerns, please feel free to contact me directly or comment on the post!&lt;/p&gt;

</description>
      <category>powershell</category>
      <category>node</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
