<?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>DEV Community: Matthew Hassenboehler</title>
    <description>The latest articles on DEV Community by Matthew Hassenboehler (@mcjhassenboehler).</description>
    <link>https://dev.to/mcjhassenboehler</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%2Fuser%2Fprofile_image%2F1110626%2F3629453f-89b8-42c8-b107-53c83872fc4b.png</url>
      <title>DEV Community: Matthew Hassenboehler</title>
      <link>https://dev.to/mcjhassenboehler</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mcjhassenboehler"/>
    <language>en</language>
    <item>
      <title>Zsh, What is it and why should you use it?</title>
      <dc:creator>Matthew Hassenboehler</dc:creator>
      <pubDate>Sat, 19 Aug 2023 18:47:09 +0000</pubDate>
      <link>https://dev.to/mcjhassenboehler/zsh-what-is-it-and-why-should-you-use-it-eb</link>
      <guid>https://dev.to/mcjhassenboehler/zsh-what-is-it-and-why-should-you-use-it-eb</guid>
      <description>&lt;h2&gt;
  
  
  What is Zsh?
&lt;/h2&gt;

&lt;p&gt;Zsh, also called Z shell, is a UNIX shell that is built on top of the Bourne shell(macOS default shell), more commonly know as bash. It is essentially the same thing as bash but just has many additional features.&lt;/p&gt;

&lt;p&gt;It was initially created by Paul Falstad while he was a student and Princetown University and originally it was created incorporating many useful features from other already present Shells like Bourne-Again Shell (Bash), the Korn Shell (ksh), C-shell (csh), and tcsh. So with that in mind, it does offer some level of compatibility with these mentioned shells, allowing it to have a high user adoption rate.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does it hold up to bash?
&lt;/h2&gt;

&lt;p&gt;Zsh has plenty of features, some minor tweaks to bash, while there are other major like automatic directory changing by typing the name of said directory, spelling correction and approximate completion, and plugin and theme supports so you can customize you Zsh how you want! However, in our current years, bash isn't being left in the dust either. Both are always in active development because they're open source and in so, keep they fairly close to one another. You can even install oh-my-zsh to manage your zsh configurations, themes, and plugins to customize the appearance and functionality of your shell!&lt;/p&gt;

&lt;h2&gt;
  
  
  So should I use it?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wVI31mTX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6o53wjxcb29f6mtw8l3o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wVI31mTX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6o53wjxcb29f6mtw8l3o.png" alt="Image description" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Zsh has proved itself time and time again that it is an incredibly powerful and fast shell, has tons of add-ons/features/themes/etc to customize it with, and having a user friendly CLI set up. If you as a SWE find yourself doing any sort of activity that requires you to use CLI often enough on your own personal computer, the Zsh would prove to be an incredible quality of life improvement. And who knows, even if you may not like Zsh it may open your eyes to another shell that will scratch that itch you have.&lt;/p&gt;

&lt;h2&gt;
  
  
  In Conclusion...
&lt;/h2&gt;

&lt;p&gt;Granted, I am still fairly new to Zsh and everything it can do, but I believe that everything it has to offer makes i more than worth the time to install and look around as it has so much to offer and is literally bash but better. I can only implore other people who use CLI frequently to give it a shot or even explore outside of just bash. I hope this blog gave some insight on a different terminal that may or may not change your CLI QoL.&lt;/p&gt;

&lt;p&gt;Sources;&lt;br&gt;
&lt;a href="https://ohmyz.sh/"&gt;https://ohmyz.sh/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/Z_shell"&gt;https://en.wikipedia.org/wiki/Z_shell&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/ohmyzsh/ohmyzsh"&gt;https://github.com/ohmyzsh/ohmyzsh&lt;/a&gt;&lt;br&gt;
&lt;a href="https://linuxhandbook.com/why-zsh/"&gt;https://linuxhandbook.com/why-zsh/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.howtogeek.com/362409/what-is-zsh-and-why-should-you-use-it-instead-of-bash/"&gt;https://www.howtogeek.com/362409/what-is-zsh-and-why-should-you-use-it-instead-of-bash/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Not using VS Code keyboard shortcuts? After this you will be.</title>
      <dc:creator>Matthew Hassenboehler</dc:creator>
      <pubDate>Sun, 13 Aug 2023 23:26:28 +0000</pubDate>
      <link>https://dev.to/mcjhassenboehler/not-using-vs-code-keyboard-shortcuts-after-this-you-will-be-1fa7</link>
      <guid>https://dev.to/mcjhassenboehler/not-using-vs-code-keyboard-shortcuts-after-this-you-will-be-1fa7</guid>
      <description>&lt;h2&gt;
  
  
  What are Keyboard shortcuts?
&lt;/h2&gt;

&lt;p&gt;Let me preface this whole thing by saying this, I'm 90% sure you use keyboard shortcuts every day and it would bewilder me to find someone on this site that hasn't used a ctrl-c/ctrl-v &lt;em&gt;once&lt;/em&gt; in their life. I also will be referring to PC binds mostly since that's what I own (just imagine I'm saying ⌘ for my Mac brothers and sisters). As the Microsoft Windows page would like to word it, "Keyboard shortcuts are keys or combinations of keys that provide an alternative way to do something that you’d typically do with a mouse." and you know, that's pretty on point. The meaning of term "keyboard shortcut" can vary depending on software manufacturer. In Windows, hotkeys consists of a specific key combination used to trigger an action (these are usually system-wide shortcuts that are available in all contexts so long as receiving program is active); mnemonics represent a designated letter in a menu command or toolbar button that when pressed together with the Alt key, activates such command.&lt;br&gt;
&lt;a href="https://media.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%2Fq2wl2np92djgx01o2csc.jpg" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq2wl2np92djgx01o2csc.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How do shortcuts help us?
&lt;/h2&gt;

&lt;p&gt;Anyway, keyboard shortcuts help us by doing literally what's in their name, providing us with a shortcut! It's incredibly handy to know even a minimal amount of these as anyone who uses a computer on daily basis since they quickly do what would take any amount of time longer. About to hit that refresh button at the top left? No way bozo, hit F5. Wanna find out what's going on in the task manager because your PC is dying? Ctrl+Shift+Esc. So without further ado, let's get into why you &lt;em&gt;actually&lt;/em&gt; clicked on this blog...&lt;/p&gt;

&lt;h2&gt;
  
  
  Visual Studio Keyboard Shortcuts
&lt;/h2&gt;

&lt;p&gt;So before I start telling you about specific shortcuts in general, by doing Ctrl+ K then Ctrl + S you open up a new tab named Keyboard Shortcuts that looks like this.&lt;br&gt;
&lt;a href="https://media.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%2Fn1pvd4hxlbq3853z2zye.jpg" 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1pvd4hxlbq3853z2zye.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This tab shows you all of the default assigned shortcuts in the program, an astronomical amount of other commands, and best of all you have the ability to create or change keybinds that most suit you. This is great because you can assign your own shortcuts so they're easier to remember or for things that you feel you need more often than others. &lt;/p&gt;

&lt;h2&gt;
  
  
  Essential Shortcuts
&lt;/h2&gt;

&lt;p&gt;Moving on I would like to talk about more common or essential shortcuts. These are shortcuts that are a bit more common and may also be applicable in other programs and such. In my current schoolwork after opening up VS Code the first thing I do is hit Ctrl + shift + `. This particular shortcut opens up a new terminal since mine usually opens without one. Some other great starter shortcuts are Ctrl + S for Save, Ctrl + C/V for Copy and Paste, and Ctrl + Z/Y for Undo and Redo. Lastly, a great shortcut for when debugging is Ctrl + /, as it will turn the line that your cursor is current on into a commented line of code and even better, if you highlight a chunk of code and then do it, it will comment out the entire highlighted section!&lt;/p&gt;

&lt;h2&gt;
  
  
  More Advanced Shortcuts
&lt;/h2&gt;

&lt;p&gt;These shortcuts that I'm about to go over with you are a bit more specific, granted the above section did have some that may belong here. This first one I want to talk about is Alt + UpArrow/DownArrow. This shortcut is a tad different since it isn't a single input necessarily. If you hold down Alt, the line your cursor is will move up or down with it's respective Arrow key input. This can be great for just moving a line somewhere else while coding/debugging/etc. The next one also uses the arrow keys as it is Shift + Alt + UpArrow/DownArrow. This will copy the line your cursor is on either up or down. This can cut out time real fast instead of either rewriting the same line over and over or copy and pasting when you know you'll be using the same or a very similar line for multiple lines. The last one I'll be going over is also in this little family we've made with Alt and the arrow keys. This is the shortcut, Ctrl + Alt+ UpArrow/DownArrow. By pressing the up or down arrow key while holding the first two keys will add cursors to whatever lines you go across, giving you the ability to type on multiple lines at once. I can see it being useful when needing to fix multiple lines of code that happen to overlap, but I do feel like this one is a tad niche.&lt;/p&gt;

&lt;h2&gt;
  
  
  In conclusion..
&lt;/h2&gt;

&lt;p&gt;Shortcuts can be incredibly helpful and speed up whatever we're doing be it actually coding or just surfing the web. I do implore anyone who isn't already using shortcuts to maybe try to implement just one in their next project and see how much they like it or how much it may improve their work-speed and if you're someone who already uses most of these or more, then I hope it was a somewhat fun read or that you might feel inspired to try more!&lt;/p&gt;

&lt;p&gt;Sources:&lt;br&gt;
&lt;a href="https://unacademy.com/content/bank-exam/study-material/computer-knowledge/benefits-of-the-keyboard-shortcuts/#:%7E:text=For%20starters%2C%20they%20can%20help,switch%20between%20windows%20and%20apps" rel="noopener noreferrer"&gt;https://unacademy.com/content/bank-exam/study-material/computer-knowledge/benefits-of-the-keyboard-shortcuts/#:~:text=For%20starters%2C%20they%20can%20help,switch%20between%20windows%20and%20apps&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/Keyboard_shortcut" rel="noopener noreferrer"&gt;https://en.wikipedia.org/wiki/Keyboard_shortcut&lt;/a&gt;&lt;br&gt;
&lt;a href="https://code.visualstudio.com/docs/getstarted/tips-and-tricks" rel="noopener noreferrer"&gt;https://code.visualstudio.com/docs/getstarted/tips-and-tricks&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=Xa5EU-qAv-I" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=Xa5EU-qAv-I&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Cloudy with a chance of Computing</title>
      <dc:creator>Matthew Hassenboehler</dc:creator>
      <pubDate>Mon, 07 Aug 2023 00:32:26 +0000</pubDate>
      <link>https://dev.to/mcjhassenboehler/cloudy-with-a-chance-of-computing-33g8</link>
      <guid>https://dev.to/mcjhassenboehler/cloudy-with-a-chance-of-computing-33g8</guid>
      <description>&lt;h2&gt;
  
  
  So what exactly is Cloud Computing?
&lt;/h2&gt;

&lt;p&gt;If I were to give you the exact definition of what Cloud Computing is from Wikipedia, it would be "Cloud computing is the on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user."&lt;br&gt;
and that's cool and all, but why do we care about it? Why is it important to &lt;em&gt;me&lt;/em&gt; as someone is a coding school or a SWE at their job? Or Why is it essential for modern application development and deployment? Well, let me tell you what I believe are the answers to some of those questions and a bit more.&lt;/p&gt;
&lt;h2&gt;
  
  
  How exactly does it work though?
&lt;/h2&gt;

&lt;p&gt;Most people who know about the cloud and even know that they use it on a daily basis through a large variety of things may not exactly know the 'How?' though. So let's run through it quick. &lt;br&gt;
First let me hook you up with a cool little picture to make the following information easier to digest.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Vu5eIaSS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uokayufimetndmi9m085.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Vu5eIaSS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uokayufimetndmi9m085.png" alt="Map of Cloud Computing" width="512" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First our process begins when a client(Client Computer) requests access or use of a cloud service(Database), usually done through the use of the internet. The request is then received by the cloud provider's infrastructure(Computer Network). In our given image, the application servers are responsible for handling user requests. The provider then allocates the necessary resources to fulfill said client's request. And that's the gist of how the process of receiving things from a Cloud usually goes. If the client wanted to upload or store data onto the same cloud, the process would generally be the same only instead of the cloud sending data to the client, the client would be the one doing the sending obviously. Below I have made a fairly primitive function on how uploading data could be perceived.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Storing data in the cloud
const cloudStorage = (data) =&amp;gt; {
  // Code to send data to the cloud storage service
  // Here, we are simulating the process with a simple console log
  console.log(`Storing data in the cloud: ${data}`);
};

// Example usage
const userData = { name: "Matthew", email: "Matt@example.com" };
cloudStorage(JSON.stringify(userData));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Granted there are some extra steps like data processing and replication on the cloud's end.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why should we care about it?
&lt;/h2&gt;

&lt;p&gt;There are plenty of reasons why we should care about it if you don't already. Here's a couple of reasons why they have become so popular;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Accessibility&lt;/strong&gt;&lt;br&gt;
This is what I believe is the biggest reason why people care about cloud computing. It provides access to data and applications from anywhere with an internet connection. This sort of accessibility is what allows and empowers remote work and collaboration, creating environments where teams can work together across different locations. Moreover, cloud computing promotes seamless integration and interoperability across various devices and platforms. Whether users access cloud services from a desktop computer, laptop, smartphone, or tablet, they experience a consistent and unified user experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Cost Efficiency&lt;/strong&gt;&lt;br&gt;
It can significantly reduce infrastructure and operational costs. Instead of investing in and maintaining physical servers, businesses can pay for cloud services on a pay-as-you-go basis, which helps to optimize costs and allocate resources more effectively. This is mainly a huge deal for start-ups and smaller businesses as it saves an incredible amount of money versus spending to continue maintenance and potential upgrades of a self owned one. Another aspect is only needing to pay for what the client needs so costing can fluctuate depending on what projects there are instead of having to pay for a flat amount for certain amounts of storage/data.&lt;/p&gt;

&lt;h2&gt;
  
  
  In Conclusion..
&lt;/h2&gt;

&lt;p&gt;Cloud computing has revolutionized the way we access, store, and manage data and applications. Its flexibility, scalability, and cost-efficiency have made it an essential tool for modern application development and deployment. As developers and software engineers, embracing cloud computing allows us to build and deliver innovative solutions with ease, ensuring seamless collaboration and accessibility from anywhere in the world.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Unlocking Git's Power: A student's first encounter</title>
      <dc:creator>Matthew Hassenboehler</dc:creator>
      <pubDate>Thu, 29 Jun 2023 22:30:14 +0000</pubDate>
      <link>https://dev.to/mcjhassenboehler/unlocking-gits-power-a-students-first-encounter-5889</link>
      <guid>https://dev.to/mcjhassenboehler/unlocking-gits-power-a-students-first-encounter-5889</guid>
      <description>&lt;p&gt;What is Git? To most developers Git is a daily tool used in the workplace, but to budding students and self-taught beginners it is a step into a whole new world. A world that one should become familiar with else they may find themselves in a difficult position when the time comes to start typing in that terminal. However, I am not typing this today to chastise anyone but to give those who are unfamiliar a follow noobie's learning experience and takeaway and maybe also those devs who are much further along their path as a coder and wish to seek insight on a fresh mind.&lt;/p&gt;

&lt;h2&gt;
  
  
  - The Power of Version Control
&lt;/h2&gt;

&lt;p&gt;Version Control is the act of keeping up with your software code throughout it's changes. They are tools that devs normally use to maintain any changes to the source code. Here is an example of the basic workflow of version control using Git. &lt;/p&gt;

&lt;p&gt;Say we have a file named script.js that has a list of games I like. Upon changing said file and wanting to keep it updated I could do the following in the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add script.js 
// Stages our file for commit
git commit -m "our comment here" 
// This commits our file and leaves a comment with it
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we did not have access to software tools such as these, I'm sure working would be a lot more difficult and troublesome especially in the workplace, where leads to my next point..&lt;/p&gt;

&lt;h2&gt;
  
  
  - The Incredible Accessibility of Git
&lt;/h2&gt;

&lt;p&gt;Using Git these past two weeks has opened my eyes to how interacting in a workplace can potentially be. Git has the ability for us to all work off the same repository with very little difficulty using push and pull commands. This is an amazing feature that allows not only a group in the workplace to work on a single project but also allows someone to work in different places need be. A group also has the ability to all work on separate parts of a project and then merge it all back together. For example say you started a project but your partner has already been working on it, here's how we would update our end of the repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// First let's get our project
git clone [project.url]
// Now since we have a partner who's ahead, let's create a remote that looks at their version
git remote add partner [partner's forked project url]
// now to get ours up to date, we pull from that remote
git pull partner main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At this point our project.js should be updated to the point of our partner's saved version.&lt;/p&gt;

&lt;p&gt;In conclusion, I think Git is an amazing tool that the sooner you become accustomed to it the better. It brings tons to the table and you'll probably find yourself using it if you work with sites like Github(shocking I know). I hope you found this read enjoyable and Git what the fuss is all about.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
