<?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: Benjamin Klein</title>
    <description>The latest articles on DEV Community by Benjamin Klein (@benjaminklein99).</description>
    <link>https://dev.to/benjaminklein99</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%2F1035731%2F848050fd-653b-4868-a980-b9e460ab6a19.jpeg</url>
      <title>DEV Community: Benjamin Klein</title>
      <link>https://dev.to/benjaminklein99</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/benjaminklein99"/>
    <language>en</language>
    <item>
      <title>Microsoft Azure</title>
      <dc:creator>Benjamin Klein</dc:creator>
      <pubDate>Mon, 28 Aug 2023 04:56:31 +0000</pubDate>
      <link>https://dev.to/benjaminklein99/microsoft-azure-40gj</link>
      <guid>https://dev.to/benjaminklein99/microsoft-azure-40gj</guid>
      <description>&lt;p&gt;In the fast-paced and data-driven world we live in today, cloud computing has emerged as a revolutionary technology, reshaping industries and redefining how businesses operate. At the forefront of this cloud revolution stands Azure, a comprehensive cloud platform and service created and owned by Microsoft. Azure isn't just a platform; it's a gateway to innovation, providing a plethora of tools and services that empower organizations to build and manage applications. &lt;/p&gt;

&lt;p&gt;Azure is far more than a one-size-fits-all cloud solution. It's a dynamic ecosystem tailored to meet the distinct needs of businesses across various industries. The platform encompasses three core service models: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Put simply, IaaS is when the client leases a bare server and storage. The client is only paying for processing power. It could be compared to renting land to build whatever you would like. With PaaS the use not only leases processing power, but also the tools needed to build their application. Lastly, SaaS is when the user specifies how they would like their application to look and functions, and a team at Microsoft will build the application for them. These versatile options ensures that whether you're seeking scalable infrastructure for hosting applications, aiming to build and deploy your software, or seeking out pre-built software solutions, Azure's got what you need.&lt;/p&gt;

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

&lt;p&gt;The ability to scale resources quickly and efficiently is possibly Azure's greatest proponent. With 160 active data centers worldwide, Azure empowers businesses to effortlessly scale their operations based on demand. This scalability is ideal for startups experiencing rapid growth, enterprises with varying workloads, and everything in between. &lt;/p&gt;

&lt;p&gt;Users and developers alike understand that security is paramount. Azure prioritizes data protection and offers robust security features such as identity and access management and threat detection and response. To meet industry regulations and compliance standards, Azure maintains an extensive portfolio of certifications, ensuring that businesses can operate confidently within their regulations.&lt;/p&gt;

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

&lt;p&gt;Azure's integration of artificial intelligence (AI) and machine learning (ML) services sets it apart from the competition. Organizations can harness these tools to extract valuable insights from data, automate processes, and develop intelligent applications. The potential applications span various sectors: healthcare providers leveraging AI for diagnostics, financial institutions predicting market trends, and e-commerce platforms personalizing customer experiences.&lt;/p&gt;

&lt;p&gt;As the Internet of Things (IoT) continues to shape our everyday environment, Azure offers comprehensive solutions for managing and analyzing IoT data. The Internet of Things refers to a network of physical objects or "things" that are embedded with sensors, software, and other technologies to connect and exchange data with other devices and systems over the internet. These objects can be everyday items like household appliances, vehicles, industrial machines, wearable devices, and more. Azure IoT Hub and Azure IoT Central enable organizations to connect, monitor, and manage IoT devices efficiently. Furthermore, Azure's edge computing capabilities empower real-time data processing at the source, significantly reducing latency and enabling mission-critical decision-making at the edge.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dtkwdWNT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/63pbv8d77zgql02mbx29.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dtkwdWNT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/63pbv8d77zgql02mbx29.jpg" alt="Image description" width="609" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the cloud's immense potential comes the need for effective cost management. Azure addresses this concern through tools like Azure Cost Management and Azure Advisor, enabling organizations to monitor resource usage, identify cost-saving opportunities, and optimize their cloud spending. By ensuring that resources are allocated efficiently, Azure helps organizations maximize their return on investment.&lt;/p&gt;

&lt;p&gt;In the realm of cloud computing, Microsoft Azure shines, empowering organizations to innovate, scale, and secure their digital future. With its robust ecosystem, unparalleled scalability, advanced security features, AI and machine learning capabilities, IoT solutions, and vigilant cost management tools, Azure offers a comprehensive solution for businesses to obtain and maintain a competitive edge. Whether you're a startup or an established enterprise, Microsoft Azure opens the door to boundless possibilities in the cloud. &lt;/p&gt;

&lt;p&gt;Work Cited&lt;br&gt;
&lt;a href="https://www.cloudflare.com/learning/serverless/what-is-serverless/"&gt;https://www.cloudflare.com/learning/serverless/what-is-serverless/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.splunk.com/en_us/blog/learn/microsoft-azure-services.html"&gt;https://www.splunk.com/en_us/blog/learn/microsoft-azure-services.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.simplilearn.com/tutorials/azure-tutorial/what-is-azure"&gt;https://www.simplilearn.com/tutorials/azure-tutorial/what-is-azure&lt;/a&gt;&lt;br&gt;
&lt;a href="https://ccbtechnology.com/what-microsoft-azure-is-and-why-it-matters/"&gt;https://ccbtechnology.com/what-microsoft-azure-is-and-why-it-matters/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.saviantconsulting.com/blog/10-reasons-why-choose-microsoft-azure.aspx#:%7E:text=Azure%20facilitates%20SQL%20and%20NoSQL,Bots%2C%20and%20Cognitive%20APIs%20capabilities"&gt;https://www.saviantconsulting.com/blog/10-reasons-why-choose-microsoft-azure.aspx#:~:text=Azure%20facilitates%20SQL%20and%20NoSQL,Bots%2C%20and%20Cognitive%20APIs%20capabilities&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://azure.microsoft.com/en-us/products/quantum#:%7E:text=Azure%20is%20the%20richest%20cloud,run%20on%20multiple%20hardware%20architectures"&gt;https://azure.microsoft.com/en-us/products/quantum#:~:text=Azure%20is%20the%20richest%20cloud,run%20on%20multiple%20hardware%20architectures&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Power of Custom Fonts</title>
      <dc:creator>Benjamin Klein</dc:creator>
      <pubDate>Mon, 14 Aug 2023 03:53:04 +0000</pubDate>
      <link>https://dev.to/benjaminklein99/the-power-of-custom-fonts-5ac6</link>
      <guid>https://dev.to/benjaminklein99/the-power-of-custom-fonts-5ac6</guid>
      <description>&lt;p&gt;As developers, we spend countless hours making our application easy to use and inviting for our users. We do this because we know that visual appeal plays a key role in capturing attention and conveying information effectively. We can make our user interfaces as intuitive as they can be, but not everyone thinks the same, and the possibility of confusion will always remain. For this reason, we add instructions to the page, but users will often want to look past them. Engaging users is hard enough already. We wouldn't want to make it harder on ourselves by making our text dull and monotonous or excessively bright and straining on the eyes. Using the right font can make or break user experience, so first, let's look at how we can use custom fonts in our applications.&lt;/p&gt;

&lt;p&gt;When searching for a font to use, make sure to download font files as either a TTF or an OTF file. TTF or TrueType Font and OTF or OpenType Font are two popular font formats, each having its own nuances. TrueType Font was developed by Apple and Microsoft in the late 1980s. They sought to and successfully improved font rendering on screens and printers. TrueType Fonts also include hinting instructions for better legibility at small sizes. TTF fonts, however, only offer basic typographic features, character sets, and kerning pairs as its designers were primarily focused on maintaining legibility across different devices.&lt;/p&gt;

&lt;p&gt;OTF fonts emerged in the late 1990s as an extension of the TrueType format, co-developed by Microsoft and Adobe. They excel in advanced typography with features like ligatures, contextual alternates, stylistic sets, and glyph variants. OTF fonts provide greater creative control over design and aesthetics. You can choose whichever best suites your needs and implement either font of these font files in our application easily using the CSS @font-face rule. Here's an example.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@font-face {
  font-family: "yourFontNameHere";
  src: url("path/to/yourCustomFont.otf") format("opentype");
  font-weight: normal;
  font-style: normal;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Font-family defines the name you will use to reference your font so pick a good name. Next, the src defines the path to your custom font's file. Notice in the example that the file path ends at an OFT or OpenType File. The following format specifies your font's file type so "opentype" is the appropriate input. If you are using a TTF or TrueType File, then you must specify that, inputting "truetype" into the format. You can also set the font style and weight here if you would like. Now, to use your font, all that is needed is to set your font name as an element's font-family and it will inherit your custom font!&lt;/p&gt;

&lt;p&gt;But what if I can't find a font that suits my needs? In today's competitive market, branding is paramount. Custom fonts serve as powerful tools in establishing and reinforcing brand identity. Whether it's the elegance of luxury brands or the playfulness of children's products, custom fonts help convey messages beyond the words they spell. Luckily there are several technologies currently available that make creating custom fonts fast and easy.&lt;/p&gt;

&lt;p&gt;Those who are looking for a free and easy way to create their own custom fonts should try out Calligraphr. Calligraphr uses artificial intelligence to automatically create fonts from pictures of lettering. After you sign up, you can start by creating a template and selecting the characters that you would like to create. Next, Calligraphr sends you your template, which you can either print and draw on physically or import into a graphic design software such as Adobe Illustrator to be drawn digitally. Once you are finished, you can upload an image of your template to Calligraphr which will automatically create your font which you can download both as an OTF file or a TTF file should you like. &lt;/p&gt;

&lt;p&gt;Another powerful software for creating fonts is Fontself.  Font-self is an extension built on top of Adobe Illustrator that uses artificial intelligence to create fonts automatically inside of your projects. Adobe has a plethora of versatile tools to help you create clean and beautiful characters. Once you've perfected your characters, you can simply drag and drop them into the Fontself side panel. Click the smart button to automatically center the characters so there won't be any spacing issues. Finally, press install and your custom font is ready to be used as live text!&lt;/p&gt;

&lt;p&gt;Now that you know the importance of attractive text, how to create your own custom font, and how to use them in your projects. With these new tools in your belt, go out, make something new and see what these tools can do for you!&lt;/p&gt;

&lt;p&gt;Reference&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=N8rEzpeNCGk&amp;amp;t=681s"&gt;https://www.youtube.com/watch?v=N8rEzpeNCGk&amp;amp;t=681s&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.calligraphr.com/en/docs/tutorial1/"&gt;https://www.calligraphr.com/en/docs/tutorial1/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face"&gt;https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=5O4bIAzbebI"&gt;https://www.youtube.com/watch?v=5O4bIAzbebI&lt;/a&gt;&lt;br&gt;
&lt;a href="https://fontforge.org/docs/"&gt;https://fontforge.org/docs/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.schoolofmotion.com/blog/custom-font-illustrator-fontforge#:%7E:text=To%20begin%20importing%20your%20letters,you're%20looking%20for%20quickly"&gt;https://www.schoolofmotion.com/blog/custom-font-illustrator-fontforge#:~:text=To%20begin%20importing%20your%20letters,you're%20looking%20for%20quickly&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=N8rEzpeNCGk"&gt;https://www.youtube.com/watch?v=N8rEzpeNCGk&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=Pc1euDRYBH8"&gt;https://www.youtube.com/watch?v=Pc1euDRYBH8&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Fly By Wire</title>
      <dc:creator>Benjamin Klein</dc:creator>
      <pubDate>Mon, 31 Jul 2023 13:58:40 +0000</pubDate>
      <link>https://dev.to/benjaminklein99/fly-by-wire-39l</link>
      <guid>https://dev.to/benjaminklein99/fly-by-wire-39l</guid>
      <description>&lt;p&gt;The automobile has evolved a great deal since its invention in 1886, though it seems the pace of innovation has drastically increased in the past few decades. Today cars are not only much safer than they used to be but also much faster, more efficient, and more reliable on top of boasting new and innovative features such as self-driving technologies. Most of the advantages were brought about by putting computers in vehicles, so let's look into how computers made their way into cars. &lt;/p&gt;

&lt;p&gt;For combustion to occur, there are three necessary components: oxygen, fuel, and a source of heat. For a source of heat, engines use a spark plug that adds enough heat to start the fuel burning.  Next, we need oxygen. Rocket ships bring their oxygen with them because there isn't any in space, but most engines get their oxygen from the air around them. For this reason, all engines are essentially air pumps. The more air an engine can pull in, the more oxygen it should get, the more fuel it can burn, and the more power it can make. There is just one issue. If there is too much fuel going into the engine for the given amount of air, the extra fuel will remain unburned and will be discarded out of the exhaust. Inversely, if there is too little fuel for the given amount of air, the fuel will burn much faster and much hotter, possibly causing components to melt. This is an especially tough issue, because the amount of air that enters the engine is not fixed, but rather increases in correlation with the engine's speed in revolutions per minute. So how do we solve the problem of putting the right of gas into the engine for the amount of air that is going in?&lt;/p&gt;

&lt;p&gt;Enter the carburetor. A carburetor works primarily off the &lt;br&gt;
Bernoulli's principle, which states that air flowing through a constriction will decrease in pressure. Carburetors have a passage, or constriction, that is attached to the air intake side of an engine with a fuel reservoir situated just beneath. When an engine breaths air in, it pulls air through the carburetor's airway causing the pressure within to decrease and fuel is pulled through a port from the fuel reservoir into the airway. &lt;/p&gt;

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

&lt;p&gt;This design accomplishes the goal of providing the correct amount of fuel for the amount of air intake, as when the engine breathes in more air, the pressure inside the carburetor's airway will decrease further, pulling in more fuel. Still, more issues arise. If the oxygen content of the air or the air pressure falters, the carburetor will have no way of knowing! &lt;/p&gt;

&lt;p&gt;A carburetor is simply not feasible for a vehicle that can climb and fall so much in altitude. The answer to this issue is called fuel injection. A fuel injection system holds fuel in a pressurized cylinder called a fuel rail. There is a computer called a CDI that monitors engine speed and timing. When the engine needs fuel, the computer will send power to a solenoid that opens a fuel injector, releasing fuel into the air intake manifold. The CDI varies the amount of fuel it releases by varying the amount of time the fuel injector is open. The CDI monitors air pressure using a mass airflow sensor in the intake manifold. Using a digital sensor to measure air pressure not only solves issues when climbing at altitude but can calculate the correct amount of fuel much more accurately than a carburetor. Furthermore, fuel injection systems can correct themselves should they err by monitoring the amount of unburnt oxygen in the engine's exhaust gas and correcting fuel intake accordingly. For these reasons, fuel-injected motors are much more efficient, all from a technology that was originally designed for aviation. &lt;/p&gt;

&lt;p&gt;There's another impressive invention that was borrowed from aviation called fly-by-wire systems. For many years, airplanes actuated their control surfaces using cables connected directly to the yoke and pedals. These fly-by cable systems were not only heavy in terms of weight but also heavy in terms of feel due to friction on the cables and not much ability to use leverage to help fight the force of the wind against the control surfaces. Eventually, planes began using hydraulic systems that provide hydraulic pressure with a pump. To actuate the control surfaces, pressure can be bled into a hydraulic slave cylinder, moving the control systems with very little effort from the pilot.&lt;/p&gt;

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

&lt;p&gt;Cables were still initially used to direct the flow of pressure from the pump to the cylinders, but it wasn't long before it was realized that this job could be handled by electronic servo motors. Not only could this save a substantial amount of weight by replacing the heavy steal cables with electronic wiring, but also a computer can monitor inputs and assist or correct the pilot. On top of making aviation much safer, it also opened the door to planes being able to fly themselves autonomously. Many commercial airliners have autopilot systems that can both successfully fly and land the aircraft, albeit under careful supervision by the pilots. So how does this technology apply to automobiles?&lt;/p&gt;

&lt;p&gt;Many of the cars that you see on the market boast driver aids that prevent the brakes from locking, prevent the tires from slipping, help the driver regain control should the vehicle enter a slide, prevent lane departure, adjust speed to match traffic, detect possible collision and brake to avoid them, and in some cases even navigate the car under the careful supervision of the driver. These features are meant to make driving safer, but do they?&lt;/p&gt;

&lt;p&gt;Some argue that cars can do too much and should not be able to drive themselves. There are obvious advantages to vehicles driving autonomously but there are a few drawbacks that leave people uncertain. What happens if the computer malfunctions? This is a serious issue in both aviation and automotive alike. There have been cases where autopilot systems have caused planes to crash after the pilots did not intervene due to distraction. Pilot distraction, though, is atypical as pilots are well-trained and follow strict regulations that prevent distraction. Drivers, however, undergo little training and are easily distracted. According to the National Safety Council, "3,142 people died in distraction-affected crashes in 2020." Distraction is already a serious concern on the road, but will autonomously driven cars make drivers more distracted? If it does, could self-driving cars still be safer? Only time will tell.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://injuryfacts.nsc.org/motor-vehicle/motor-vehicle-safety-issues/distracted-driving/?utm_source=Google_Search&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=Injury_Facts&amp;amp;gclid=CjwKCAjwlJimBhAsEiwA1hrp5joC_lsvWf0Fkkv6Syz0a_M8c4JUVFl1lxxoRsoLCevy4j585RAvyhoCz-UQAvD_BwE"&gt;https://injuryfacts.nsc.org/motor-vehicle/motor-vehicle-safety-issues/distracted-driving/?utm_source=Google_Search&amp;amp;utm_medium=cpc&amp;amp;utm_campaign=Injury_Facts&amp;amp;gclid=CjwKCAjwlJimBhAsEiwA1hrp5joC_lsvWf0Fkkv6Syz0a_M8c4JUVFl1lxxoRsoLCevy4j585RAvyhoCz-UQAvD_BwE&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>WEB 3.0</title>
      <dc:creator>Benjamin Klein</dc:creator>
      <pubDate>Mon, 26 Jun 2023 06:02:36 +0000</pubDate>
      <link>https://dev.to/benjaminklein99/web-3-2ooc</link>
      <guid>https://dev.to/benjaminklein99/web-3-2ooc</guid>
      <description>&lt;p&gt;In 1989, computer scientist Tim Berners-Lee, a fellow at the CERN research institution, published a proposal for a system that would make data sharing easy and accessible throughout the globe.  After four years of development, Berners-Lee released his source code for Mesh, the world's first web browser. What Berners-Lee dubbed the World Wide Web would stream pages off of his NeXT desktop computer which was the world's first web server.  This revolutionary technology allowed information to be easily found and accessed, but would only serve static web pages. A static page is a web page that cannot be interacted with because the code is fixed. A static web page will not change unless a developer makes changes to its code. This is far from what we know of as the internet today which wouldn't come about until 1999.&lt;/p&gt;

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

&lt;p&gt;The term Web 2.0 refers to what we know and love as the internet today. The key difference between the original Web and Web 2.0 is that Web 2.0 serves dynamic web pages, which actively engage the user. Web 2.0 doesn't denote any particular technical improvements that were made to web systems, but rather a shift in the way the web was being used. Around this time, we saw the advent of social media with websites such as SixDegrees and Myspace. Pages were used to complete monetary transactions, communicate with one another, find jobs, and much more than simply accessing data. Web 2.0 is what we currently use now, so what is Web 3.0?&lt;/p&gt;

&lt;p&gt;Web 3.0 is the next generation of the internet. The idea for Web 3.0 isn't to change what the internet can do, but rather change the way it does it. The most prominent difference between Web 2.0 and Web 3.0 is ownership.  Currently, the majority of websites are owned and operated by private companies. Many people wish to change this to a more communist approach. Instead of websites being owned and operated by private enterprises, websites will be owned and operated by their users. This is called decentralization and is part of what makes cryptocurrencies so special. Many of the envisioned advantages of Web 3.0 are borrowed from cryptocurrencies, so let's talk about crypto for a moment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lg2-dNZn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2jvtpjujmd8uimfpr91.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lg2-dNZn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2jvtpjujmd8uimfpr91.jpeg" alt="Image description" width="670" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As aforementioned, a cryptocurrency is a decentralized currency, where the users not only own currency but are also responsible for validating currency. What does this mean? Users are able to validate what is or isn't fraudulent. This is accomplished with blockchain ledgers. Block Chains are tamper-proof registries made of digital 'blocks' chained in order, as the name implies. Each block has three facets. The first is its data. In a Bitcoin chain, this data would be the owner of the coins, the number of coins, and who the owner got the coins from. Next is the block's hash. A hash is an encrypted identifier used to authenticate the block. For those who may not know much about encryption, I made a great post about encryption which will be linked below. The last part of a block is the hash of the previous block. Since each block has a reference to its preceding block, an entire chain would have to be corrupted to hack and steal. To further security, when purchasing a cryptocurrency, the buyer receives a copy of the chain. Each chain is validated against every other existing chain. This means that 51 percent of chains would need to be corrupted to steal currency. Many feel a sense of security in cryptocurrencies, not only because it's nearly impossible to hack, but also because they play a role in the coin's future. Large corporations, such as banks, don't always act in the best interest of their clients. Since there are no greedy CEOs involved in crypto, many feel there is a risk of being taken advantage of.&lt;/p&gt;

&lt;p&gt;Just like with cryptocurrencies, Web 3.0 aims to shift ownership from large corporations to the user, and for the same reasons. Data security is greatly improved using blockchains, and decisions are made in the best interest of the users because decisions are made by the users. Have you ever made a web search about a particular product, and then later saw ads for that same product popping up all over? This happens because many sites will sell user data for a profit. This is an obvious and overt violation of privacy, and it leaves a sour taste in many users' mouths. Since users own a stake in the site, they not only have a say in what is or isn't allowed, but also get a share of profits from the site.&lt;/p&gt;

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

&lt;p&gt;Web 3.0 has the further advantage of being permissionless. Currently, the web is centralized meaning that for each site, there is a governing body that is in charge of deciding what comes in and what goes out to shield malicious intent. This means that users have to interact through a third party which, for various reasons, may or may not permit usage. Since the users maintain authority, users can interact directly. This not only streamlines connections but also makes them more fair and representative. This means that users would no longer need to accept cookies or provide any form of identification to access a site because of pre-established trust between users.&lt;/p&gt;

&lt;p&gt;Since Web 3.0 utilizes blockchain technology, smart contracts can be utilized by sites. Smart contracts are digital contracts that are stored on a blockchain, making them immutable and unable to be changed once initiated. Smart contracts work like any other legal contract, but there is no central authority that enforces them. Say you would like to build a site, but for some arbitrary reason it needs to be done in less than 50 days or you will no longer need the site. You could enter a smart contract with a developer to build the site. You can put the money into the contract in advance and the contract would only pay out of the site is built in less than 50 days. Should the time limit be exceeded, the smart contract would automatically transfer you back the funds. Likewise, if the deadline is met, the site owner will only pass it to the buyer once they have paid up. Not only are smart contracts completely automated, but there is also no central authority that may leave some rules up to interpretation. A regular contract could be reneged upon if one party can afford a better lawyer. There is no discrepancy with smart contracts making their outcome deterministic.&lt;/p&gt;

&lt;p&gt;Web 3.0 is already on its way. Many large corporations know this and have been shifting the way their systems work to adapt, such as Apple's digital assistant Siri. Web 3.0 will bring exciting new changes to the internet upon its adaption. &lt;/p&gt;

&lt;p&gt;My post on Encryption&lt;br&gt;
&lt;a href="https://dev.to/benjaminklein99/encryption-5h62"&gt;https://dev.to/benjaminklein99/encryption-5h62&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Work Cited&lt;br&gt;
&lt;a href="https://www.history.com/this-day-in-history/world-wide-web-launches-in-public-domain"&gt;https://www.history.com/this-day-in-history/world-wide-web-launches-in-public-domain&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=0tZFQs7qBfQ"&gt;https://www.youtube.com/watch?v=0tZFQs7qBfQ&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=pyaIppMhuic"&gt;https://www.youtube.com/watch?v=pyaIppMhuic&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Cloud</title>
      <dc:creator>Benjamin Klein</dc:creator>
      <pubDate>Mon, 19 Jun 2023 04:46:39 +0000</pubDate>
      <link>https://dev.to/benjaminklein99/the-cloud-4mfc</link>
      <guid>https://dev.to/benjaminklein99/the-cloud-4mfc</guid>
      <description>&lt;p&gt;Everyone has heard this term before and most people already know what it is, right?  It's a magical cumulonimbus that we can send our data to, to be stored forever and ever. Wrong! The word cloud is an all-encompassing term that refers to a system of servers that host software and data infrastructures. We are all probably familiar with the term cloud storage. This makes understanding what a 'cloud' system is very simple so let's start there.&lt;/p&gt;

&lt;p&gt;So what happens when you run out of storage on your device? Simply upgrading your system's storage may be arduous. Many devices are tough to work on and may require technical expertise. In the event that you run out of local storage, you may be persuaded to upgrade your device entirely. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HuY7fyNZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zsuy369iywls7obow6ti.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HuY7fyNZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zsuy369iywls7obow6ti.jpeg" alt="Image description" width="800" height="345"&gt;&lt;/a&gt;&lt;br&gt;
What if you could move data to another device, and asked that device to send you back that data when you need it? This is exactly how cloud systems work. Data is sent to a server in a data center to be stored and is sent back upon request. Here is a prime advantage of cloud storage. When the available storage is depleted locally, pictures, videos, and other data can be transferred to a remote location. Data can be retained locally after it has been uploaded should the user choose so as well. This is another advantage of cloud storage. Important data can be duplicated and safely stored on the cloud. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gOB6UbaU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yjcrtakw6gv5jzarmfly.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gOB6UbaU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yjcrtakw6gv5jzarmfly.jpeg" alt="Image description" width="308" height="164"&gt;&lt;/a&gt;&lt;br&gt;
If a device is lost or damaged, its local data won't go along with it. It should be noted that an internet connection is required to both upload and access cloud storage, thus data that needs to be readily accessed without internet connectivity should not be stored solely in cloud storage. Cloud storage is a great way to safely store important data that could be lost along with a device. When purchasing a new iPhone, the buyer gets five gigabytes of cloud storage free with their purchase.  Should their data consumption exceed that extra five gigabytes, more storage can be leased, again making storage expansion effortless.&lt;/p&gt;

&lt;p&gt;Cloud systems can do more than just store data. Entire applications can be moved to the cloud. If an application is particularly computationally expensive, it would be wise to run it on a very large powerful computer. This tactic would eliminate the issue of users not having ideal devices to run the application. Luckily a large and powerful computer is all a data center is. The desired action can be sent to the cloud application and the result of that action can be sent back. Businesses utilize this functionality often because of two key advantages. Using cloud applications can be very cost-effective. Much simpler and more affordable devices can be purchased to use necessary applications as the application only needs to be accessed by each device rather than run. Additionally, the scalability of the application is improved. Should the application become more complex, more cloud space can be purchased to manage the excess. Likewise, if the application becomes more simplified, the amount of cloud space that is being leased can be decreased as well. All the while, the devices accessing the applications can remain the same. Cloud applications may seem only pertinent to large corporations, but small businesses find this useful also. After all, a website is just an application. Some larger companies can afford to host their websites from private servers, but most cannot. Having a website has only become more and more necessary both to operate a business and also to promote it. Most gravitate towards this approach for its cost-effectiveness as well as its scalability.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3pPj39Fn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x9jrxg55k4eil5q2a5mz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3pPj39Fn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x9jrxg55k4eil5q2a5mz.png" alt="Image description" width="800" height="468"&gt;&lt;/a&gt;&lt;br&gt;
Cloud applications can be used as well for entertainment as they can for business. Many people enjoy playing video games, but gaming computers and consoles can be quite expensive and out of many people's budgets. Many companies allow users to play games on their personal computers that may not have the necessary computational power or graphics processing. This has the same advantages as before. The user doesn't have to worry about needing more storage or needing more processing power as time goes on, but there is a disadvantage in this case. Running programs remotely will most likely show a rise in latency. The time between a key or mouse input and seeing your character react will always be longer than if you were running the application locally. Latency isn't often a concern on a website, because most of the interaction between the user and the page can be computed locally. Then, the local inputs can be submitted to the cloud application, to be processed and when the result is returned the page can be updated. When gaming, we want the interactions between our character and its environment to be processed as quickly as possible, but the computer has to wait for the application on the cloud's response. Many issues arise from this point. Input lag can be detrimental to a game's feel, and strongly impact the way a game plays, often making games meant to have smooth movement seem clunky. Many games require precise movements to avoid obstacles and others employ time-sensitive missions to keep the player on the edge of their seat. Latency issues can cause players to misstep into obstacles that may slow them down or ultimately lead to their peril. For these reasons, many gravitate away from cloud gaming if they can afford to purchase a personal computer or console.&lt;/p&gt;

&lt;p&gt;While seeming like a myth or a legend, "the cloud" is real, relatively simple, and well-utilized. As with everything, cloud systems have their caveats, but their benefits are proven by their ubiquity. As technologies continue to progress, our need for fast, smarter, and larger computers will grow as well. For these reasons, I believe that cloud systems will continue to improve and grow in usage. Hopefully, this helped you gain some insight as to how cloud systems work and the advantages they can provide to you.&lt;/p&gt;

&lt;p&gt;work cited&lt;br&gt;
&lt;a href="https://www.cloudflare.com/learning/cloud/what-is-the-cloud/"&gt;https://www.cloudflare.com/learning/cloud/what-is-the-cloud/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.digitaltrends.com/gaming/what-is-cloud-gaming-explained/"&gt;https://www.digitaltrends.com/gaming/what-is-cloud-gaming-explained/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.zoho.com/en-au/tech-talk/what-is-the-cloud.html"&gt;https://www.zoho.com/en-au/tech-talk/what-is-the-cloud.html&lt;/a&gt;&lt;br&gt;
&lt;a href="https://fullscale.io/blog/what-is-software-scalability/"&gt;https://fullscale.io/blog/what-is-software-scalability/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.avinteractive.com/features/buying-advice/av-needs-keep-lock-key-secure-08-04-2019/"&gt;https://www.avinteractive.com/features/buying-advice/av-needs-keep-lock-key-secure-08-04-2019/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Cosmic Interference</title>
      <dc:creator>Benjamin Klein</dc:creator>
      <pubDate>Mon, 12 Jun 2023 13:59:45 +0000</pubDate>
      <link>https://dev.to/benjaminklein99/cosmic-interference-30gd</link>
      <guid>https://dev.to/benjaminklein99/cosmic-interference-30gd</guid>
      <description>&lt;p&gt;The Earth is constantly bombarded with radiation. Some of this radiation comes from the Earth itself and some from the Sun. There are a variety of different types of radiation that react with various materials. Some forms of radiation interact with hardly anything at all. A particularly interesting form of radiation comes from throughout the universe and is referred to as cosmic rays. This term, however, is a misnomer. Radiation coming from the cosmos is made of high-energy particles, rather than rays. The majority of these particles (roughly 90%) are singular protons, and the remainder are various types of nuclei.  Cosmic rays are formed in the hearts of dying stars as they go supernova or radiate from black holes. These rays can affect our computers, and in fact, you have experienced this interference before. Before we can understand what causes this phenomenon, we first have to understand what bits are and how semiconductors create them.&lt;/p&gt;

&lt;p&gt;Computers use a special material called semiconductors to conduct computations. A semiconductor is a material that's conductivity is dependent on its current state. Conductivity in a material is dependent on valence electrons, so let's brush up on our chemistry.&lt;/p&gt;

&lt;p&gt;Protons, neutrons, and electrons comprise all atoms. Protons and neutrons clump together in the center and electrons orbit them in groups called electron shells. The outermost shell is called the valence shell, and the electrons in the valence shell are called valence electrons. All atoms are 'happy' when they have eight valence electrons. Atoms can share their valence electrons, so they can both have eight. This is called a covalent bond. For a material to be conductive, there needs to either be extra electrons or extra protons. Extra electrons can flow freely through a material. Extra protons provide a place for electrons to travel to. This is all the chemistry you need to understand semiconductors.&lt;/p&gt;

&lt;p&gt;The base element semiconductors use is silicon. Silicon has four valence electrons so it forms a covalent bond with four other silicon atoms. Since there are no free electrons and nowhere for the electrons to go, silicon is an insulator. To make the silicon conductive, it has to be 'doped.' Silicon is most often doped with either boron (which has three valence electrons) or phosphorous (which has five valence electrons). &lt;/p&gt;

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

&lt;p&gt;Silicon doped with boron is called a P-type conductor because a positive charge can flow through the wire. Since boron only has three valence electrons, when it forms a covalent bond with four other silicon atoms, the boron atom only has seven valence electrons and it wants eight. When a new electron is introduced, it can hop into a boron's valence shell. Electrons can now flow freely through the material. &lt;/p&gt;

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

&lt;p&gt;Silicon doped with phosphorus is referred to as an N-type conductor as a negative charge can flow. Because phosphorus has five valence electrons, when it forms a covalent bond with four silicon atoms, there are nine valence electrons in its valence shell, which is one too many. If a positive charge is introduced to this material, the valence shell will shed an electron and the electrons can once again flow through the material.&lt;/p&gt;

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

&lt;p&gt;What allows a semiconductor to change its state is a PN junction. A PN junction is where a P-type conductor meets an N-type conductor. The extra electrons from the N-type conductor can jump to the empty spaces in the P-type conductor and a depletion region forms. Since there are no longer extra electrons nor places for the electrons to go in the depletion region, the material loses conductivity.&lt;/p&gt;

&lt;p&gt;If we take a battery and apply the positive terminal to the N-type side and the negative terminal to the P-type side of the semiconductor, the depletion region will expand making the material progressively less conductive. This is because the extra electrons from the N-type side of the semiconductor can leave the material while the empty spaces in the P-type side of the semiconductor are filled with electrons from the battery. &lt;/p&gt;

&lt;p&gt;To make our semiconductor conductive again, we can reverse the flow of current by applying the positive terminal to the P-type side, and the negative terminal to the N-type side. If more than 0.6 volts are applied, the electrons will be pulled out of the P-type side of the semiconductor, leaving empty spaces behind. On the N-type side, electrons will be forced into the material so there are once again extra electrons that can flow freely through the material. The depletion region collapses and our semiconductor is now conductive again.&lt;/p&gt;

&lt;p&gt;To test our semiconductor's current state, we can apply no more than 0.6 volts with the positive to the P-type and the negative to the N-type. As mentioned before, if more than 0.6 volts are applied, the depletion region will collapse if the semiconductor is in a nonconductive state, but less than 0.6 volts will not be able to pass through. If we apply less than 0.6 volts and the voltage can pass through, then we know our semiconductor is in its conductive state.&lt;/p&gt;

&lt;p&gt;This is how computers can generate bits. If the semiconductor is in its conductive state, its circuit is open which is represented by a 1. If it is in a nonconductive state, the semiconductor's circuit is closed and is represented by a 0. These bits are how computers store data. By setting some semiconductors to open and some to closed, current can be passed through to re-evaluate that data.&lt;/p&gt;

&lt;p&gt;Unfortunately, there is another way a semiconductors state can be changed. When a cosmic ray strikes a semiconductor, it can leave electrons behind or knock electrons clean off, opening or closing the circuit. This occurrence is called a single event upset or a single event error. Sometimes single event upsets will just crash your computer, but sometimes they can cause substantial problems.&lt;/p&gt;

&lt;p&gt;On October 7, 2008, Qantas Flight 72 set off on its way from Singapore to Australia with 315 people aboard. While cruising over the Indian Ocean, the aircraft suddenly entered a steep dive. The Airbus A-330 descended 200 meters in only 20 seconds. The aircraft experienced 0.8 negative G's and anyone who wasn't wearing their seatbelt at the time slammed head-first into the ceiling. 118 people were injured, but luckily all survived. &lt;/p&gt;

&lt;p&gt;A subsequent investigation showed no errors in the flight computers and no issue with any control surfaces. Everything was functioning normally when the event occurred. The culprit was most likely a cosmic ray. After further analysis, investigators found that the event could be replicated if a singular bit was flipped in the flight computer, that was holding onto the aircraft's current pitch orientation.  Though it is impossible to prove it's highly likely that a single event upset caused the flight computer to believe that the aircraft was pitched dangerously high, so it violently pitched down to compensate. There are however cases where we can measure and register single event upsets.&lt;/p&gt;

&lt;p&gt;Nasa, knowing of the dangers of radiation, designed the space shuttle with five flight computers.  If any of the computers encounter an error, the other computers will overrule it. When this occurs, if the error is not traceable, it is registered as a single event upset. The space shuttle once registered 161 bit flips on an only five-day mission.&lt;/p&gt;

&lt;p&gt;Luckily this doesn't occur as often on the planet's surface, as it's better protected from radiation, but it still does. Every day, particles that have been traveling for millions of years over millions of miles strike our computers, corrupting data and causing errors. It is a constant reminder of how small we truly are and how hostile the universe actually is.&lt;/p&gt;

&lt;p&gt;Work Cited&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/Qantas_Flight_72"&gt;https://en.wikipedia.org/wiki/Qantas_Flight_72&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=33vbFFFn04k"&gt;https://www.youtube.com/watch?v=33vbFFFn04k&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=AaZ_RSt0KP8"&gt;https://www.youtube.com/watch?v=AaZ_RSt0KP8&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Java vs JavaScript: What's the difference?</title>
      <dc:creator>Benjamin Klein</dc:creator>
      <pubDate>Tue, 02 May 2023 18:27:00 +0000</pubDate>
      <link>https://dev.to/benjaminklein99/java-vs-javascript-whats-the-difference-4o7b</link>
      <guid>https://dev.to/benjaminklein99/java-vs-javascript-whats-the-difference-4o7b</guid>
      <description>&lt;p&gt;Like JavaScript, Java is a widely used programming language used to create web applications.  Though these languages serve a similar purpose, a few key differences set them apart.  Before we dive into where these languages contrast, let's talk about something they share in common: their names.&lt;/p&gt;

&lt;h2&gt;
  
  
  Java vs JavaScript
&lt;/h2&gt;

&lt;p&gt;While their names are similar, JavaScript and Java are completely unrelated. In fact, they were created by two separate companies. Java was released first in by Sun Microsystems, Inc, with the slogan: "Write once, run anywhere." This reflected the ability of a Java codebase to be compiled in a multitude of ways for a plethora of platforms. Java was well-received and widely adopted from the get-go. Netscape took note of this as they developed their language, which would serve a similar purpose. In an attempt to gain the attention of Java users, JavaScript decided to copy Java's name. As of 2022, roughly 98% of websites use JavaScript for client-side programming.&lt;/p&gt;

&lt;h2&gt;
  
  
  scripting vs programming
&lt;/h2&gt;

&lt;p&gt;Now that we know why their names are similar, let's discuss how they are different. While JavaScript is a scripting language, Java is a programming language. This means that when Java code is run, it is sent directly to a compiler. A compiler is essentially a translator that converts source code, a more human language of written words, into machine code, usually binary or hexadecimal. I'll put a link below this article for those who would like to inquire more about machine code. In contrast, JavaScript is sent to an interpreter instead of a compiler. An interpreter's job is virtually the same as a compiler's. Though compilers and interpreters both transform source code into machine code, they accomplish this goal in very different ways.&lt;/p&gt;

&lt;p&gt;While a compiler scans the entire program before it runs, an interpreter moves through code one line at a time, running each statement along the way. This behavior gives compilers the advantage of being able to run programs more quickly. Though slower, interpreters are able to stop mid-way through the code's execution. Stopping code during execution streamlines debugging practices and allows developers to make changes on the spot without having to wait for the program to finish running.&lt;/p&gt;

&lt;h2&gt;
  
  
  Object-oriented programming
&lt;/h2&gt;

&lt;p&gt;Java and JavaScript do have similarities besides their name. Both utilize object-oriented programming. JavaScript is, however, less confined, allowing for functional programming as well. Object-oriented programming is an archetype where objects and classes are heavily relied upon. For those who may be new to programming, objects are storage containers that can hold both data and code. Data held within an object is referred to as a property and code stored within an object is referred to as a method. A class can be thought of similarly to a vague blueprint to use to create more defined objects. When an object is created from a class, it comes with the properties and methods from its parent class. Likewise, a new class, called a subclass, can also be created from another class. The methods and properties are given to the subclass in the same way. This behavior is called inheritance and, both languages use it in nearly the exact same way. Those who are familiar with JavaScript ES6 class syntax and inheritance patterns will be pleasantly surprised by the similarities in Java's class syntax, should they adopt Java, and visa versa. Here is how class creation looks in each language respectively.&lt;/p&gt;

&lt;h2&gt;
  
  
  Java class pattern
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;package com.journaldev.inheritance;

// Creates class Animal
public class Animal {
  // Giving properties to the class
  private boolean vegetarian;
  private String eats;
  private int noOfLegs;

  // Empty constructor incase a new object is created without 
  arguments passed to it
  public Animal(){}

  // Constructor to handle when arguments are passed
  public Animal(boolean veg, String food, int legs){
    this.vegetarian = veg;
    this.eats = food;
    this.noOfLegs = legs;
  }
  // Adding methods to the class
  public boolean isVegetarian() {
    return vegetarian;
  }

  public void setVegetarian(boolean vegetarian) {
    this.vegetarian = vegetarian;
  }

  public String getEats() {
    return eats;
  }

  public void setEats(String eats) {
    this.eats = eats;
  }

  public int getNoOfLegs() {
    return noOfLegs;
  }

  public void setNoOfLegs(int noOfLegs) {
    this.noOfLegs = noOfLegs;
  }

}

// Creates subclass of Animal 
public class Cat extends Animal{
  // adding a new property
  private String color;

  // Constructor uses super to gain access to the parents 
  methods and properties
  public Cat(boolean veg, String food, int legs) {
    super(veg, food, legs);
    this.color="White";
  }

  public Cat(boolean veg, String food, int legs, String color){
    super(veg, food, legs);
    this.color=color;
  }
  // Adding methods to the subclass
  public String getColor() {
    return color;
  }

  public void setColor(String color) {
    this.color = color;
  }

}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  JavaScript
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Creates Animal class
class Animal {
  constructor(vegetarian, eats, noOfLegs) {
    this.vegetarian = vegetarian;
    this.eats = eats;
    this.noOfLegs = noOfLegs;
  }

  isVegetarian = () =&amp;gt; this.vegetarian;
  setVegetarian = (vegetarian) =&amp;gt; { this.vegetarian = vegetarian; }
  // Adding methods to the class
  getEats = () =&amp;gt; this.eats;
  setEats = (eats) =&amp;gt; { this.eats = eats; }
  getNoOfLegs = () =&amp;gt; this.noOfLegs;
  setNoOfLegs = (noOfLegs) =&amp;gt; { this.noOfLegs = noOfLegs; }
}

// Creates subclass of Animal
class Cat extends Animal {
  // Constructor uses super to get the properties and methods from parent class
  constructor(vegetarian, eats, noOfLegs, color = "White") {
    super(vegetarian, eats, noOfLegs);
    // Setting a new property on Cat subclass
    this.color = color;
  }
  // Adding methods to Cat subclass
  getColor = () =&amp;gt; this.color;
  setColor = (color) =&amp;gt; { this.color = color; }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I bet you were able to understand that Java code better than you predicted. Many different programming languages use similar processes to accomplish similar goals. When picking up a new language, having already mastered another, you will find that you can intuit certain aspects of a language's functionality quite easily. This is your cue to go and explore a new language. Happy Coding.&lt;/p&gt;

&lt;p&gt;More on machine code:&lt;br&gt;
&lt;a href="https://www.codecademy.com/resources/docs/general/machine-code"&gt;https://www.codecademy.com/resources/docs/general/machine-code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Work Cited:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.galvanize.com/blog/story-behind-java-javascript-whats-difference/#:%7E:text=Java%20Came%20First&amp;amp;text=Later%2C%20the%20project%20went%20by%20the%20name%20Green"&gt;https://www.galvanize.com/blog/story-behind-java-javascript-whats-difference/#:~:text=Java%20Came%20First&amp;amp;text=Later%2C%20the%20project%20went%20by%20the%20name%20Green&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.techopedia.com/definition/7793/interpreter#:%7E:text=As%20the%20name%20suggests%2C%20an,converts%20or%20executes%20it%20directly"&gt;https://www.techopedia.com/definition/7793/interpreter#:~:text=As%20the%20name%20suggests%2C%20an,converts%20or%20executes%20it%20directly&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://kb.iu.edu/d/agsz#:%7E:text=The%20difference%20between%20an%20interpreted,program%20written%20in%20assembly%20language"&gt;https://kb.iu.edu/d/agsz#:~:text=The%20difference%20between%20an%20interpreted,program%20written%20in%20assembly%20language&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.baeldung.com/java-pattern-prototype"&gt;https://www.baeldung.com/java-pattern-prototype&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.w3schools.com/java/java_constructors.asp"&gt;https://www.w3schools.com/java/java_constructors.asp&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Encryption</title>
      <dc:creator>Benjamin Klein</dc:creator>
      <pubDate>Mon, 24 Apr 2023 15:04:56 +0000</pubDate>
      <link>https://dev.to/benjaminklein99/encryption-5h62</link>
      <guid>https://dev.to/benjaminklein99/encryption-5h62</guid>
      <description>&lt;p&gt;I'm sure you've heard this term before. Most likely in a spy movie, as the characters try to hack a security system, or maybe in a history lesson about the famous German Enigma code. Many people know what encryption is, but few understand how encryptions function and their use in our day-to-day life. In this post, I will discuss the types of encryption, how they work, and their use in programming.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is encryption?
&lt;/h2&gt;

&lt;p&gt;For those who haven't heard this term before, encryption is the process of converting information or data into a secret code in an attempt to prevent unauthorized access. Remember when you were little, and adults would spell words out to each other to prevent you from understanding their conversation? Encryption can be thought of just like that, but instead of spelling words out, encryptions use a key.&lt;/p&gt;

&lt;h2&gt;
  
  
  How does encryption work?
&lt;/h2&gt;

&lt;p&gt;Before understanding how encryption works, their keys need to be understood first. A key's purpose is to translate your data into code or your code into data. Keys use an algorithm that predictably transforms data. Say you want to create an encryption that ciphers messages. Here's a simple example of how this can be achieved.&lt;/p&gt;

&lt;p&gt;JavaScipt has a method (charCodeAt) that takes in a string and an index and returns a number representative of the character at that index. Using this method, a message can be encrypted by iterating over an input string to find the next charCode of each character. To decrypt a message, the same method can be used to find the preceding (or previous) charCode of each character. Let's look at an implementation below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const encryptKey = (str) =&amp;gt; {
  // message represents the encrypted string that we will later ouput
  let message = '';
  // iterate over the input string
  for (let i = 0; i &amp;lt; str.length; i++) {
    // nextLetter is the next character's charCode
    let nextLetter = String.fromCharCode((str[i]).charCodeAt(0) + 1);
    // add the next letter to the output message
    message += nextLetter;
  }
  // after the loop is finished, return the encrypted message
  return message;
}

const decryptKey = (str) =&amp;gt; {
  // message represents the decrypted string that we will late ouput
  let message = '';
  // iterate over the encrypted string
  for (let i = 0; i &amp;lt; str.length; i++) {
    // nextLetter is the preceeding character's charCode
    let previousLetter = String.fromCharCode((str[i]).charCodeAt(0) - 1);
    // add the next letter to the output message
    message += previousLetter;
  }
  // after the loop is finished, return the encrypted message
  return message;
}

let message = 'this message is classified';
let encryptedMessage = encryptKey(message);
let decryptedMessage = decryptKey(encryptedMessage);

console.log(message); // logs ==&amp;gt; this message is classified
console.log(encryptedMessage); // logs ==&amp;gt; uijt!nfttbhf!jt!dmbttjgjfe
console.log(decryptedMessage); // logs ==&amp;gt; this message is classified
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Types of encryption
&lt;/h2&gt;

&lt;p&gt;Notice that the example above uses a key to encrypt a message and a separate key to decrypt a message. When separate keys are used to encrypt and decrypt data, the encryption is referred to as asymmetric. Some encryptions use the same key to encrypt and decrypt data. These encryptions are referred to as symmetric. &lt;/p&gt;

&lt;p&gt;Both types of encryptions carry unique costs and benefits. Symmetric encryptions are generally easier to crack as the key needs to be passed to the user (usually via the internet) which runs the risk of interception and makes keeping the key secure substantially more difficult. Furthermore, if the key is decyphered, both the user and the business can fall victim to attacks using malicious data. Although less secure, symmetric encryption is easier to implement and performs more quickly. When using an asymmetric system, the decrypting key can be held in private, while the encrypting key can be made public for anyone to use, without the worry of your code being deciphered. Asymmetric encryption also allows recipients to authenticate incoming data, making certain it isn't from an unauthorized sender.&lt;/p&gt;

&lt;h2&gt;
  
  
  How is encryption used?
&lt;/h2&gt;

&lt;p&gt;Encryption is used throughout the internet, from banking to retail to social media. It's easy to see concern when entering sensitive information into a website. No one wants their credit card number or banking information to be easily accessed. Yet, we often need to send them to online vendors to make purchases or pay bills. These are more evident cases that necessitate encryption, but there are also many less apparent cases. Having your favorite social media account hijacked isn't pleasant either. Whether the account is used for business or pleasure disappointment is always assured.&lt;/p&gt;

&lt;p&gt;A cryptographer is a programmer that specializes in encrypting data. Cryptographers are some of the highest-paid developers, making an annual salary of $154,545 on average. Cybersecurity is a lucrative and highly demanding market. Novice and expert developers alike should certainly consider this field if they can hack it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Work Cited
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.ziprecruiter.com/Salaries/Cryptography-Salary"&gt;https://www.ziprecruiter.com/Salaries/Cryptography-Salary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/encryption/what-types-of-encryption-are-there/#:%7E:text=There%20are%20two%20types%20of,used%20for%20encryption%20and%20decryption"&gt;https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/encryption/what-types-of-encryption-are-there/#:~:text=There%20are%20two%20types%20of,used%20for%20encryption%20and%20decryption&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.techrepublic.com/article/asymmetric-vs-symmetric-encryption/#:%7E:text=Symmetric%20encryption%20can%20take%20128,RSA%202048%2Dbit%20or%20more.&amp;amp;text=Symmetric%20encryption%20is%20considered%20less,keys%20in%20encryption%20and%20decryption"&gt;https://www.techrepublic.com/article/asymmetric-vs-symmetric-encryption/#:~:text=Symmetric%20encryption%20can%20take%20128,RSA%202048%2Dbit%20or%20more.&amp;amp;text=Symmetric%20encryption%20is%20considered%20less,keys%20in%20encryption%20and%20decryption&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Intro to NPM</title>
      <dc:creator>Benjamin Klein</dc:creator>
      <pubDate>Mon, 17 Apr 2023 23:12:32 +0000</pubDate>
      <link>https://dev.to/benjaminklein99/intro-to-npm-3h3m</link>
      <guid>https://dev.to/benjaminklein99/intro-to-npm-3h3m</guid>
      <description>&lt;p&gt;NPM is a free to use software registry. It's also the worlds largest software registry, containing over 800,000 code packages. NPM make a software engineers life easier by making it possible to quickly download code that someone else has written, or upload code for you, or possibly someone else, to use later on. Want to learn how to implement NPM into your workflow? Just keep reading!&lt;/p&gt;

&lt;h2&gt;
  
  
  How to install NPM
&lt;/h2&gt;

&lt;p&gt;To get started with NPM, you first have to install it. NPM is installed with Node.js. If you don't already have Node.js installed you can install it from the official Node.js website: &lt;a href="https://nodejs.org"&gt;https://nodejs.org&lt;/a&gt;. If you are unsure or can't remember if you have previously installed Node.js, you can type node -v into the command line to check.&lt;/p&gt;

&lt;p&gt;Now that we've got Node.js sorted out, we can download NPM! To download NPM, we can jump back into our command line and type: npm install -g npm. To make certain that NPM was installed properly we can enter npm -v into the command line, which will show what version of NPM is installed. Now we're all set to start using npm!&lt;/p&gt;

&lt;h2&gt;
  
  
  Package install
&lt;/h2&gt;

&lt;p&gt;Installing a package from NPM is as simple as it gets. To download and install software, simply run the following command in the terminal with package replaced with your intended package.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Windows Users:
C:\&amp;gt;npm install &amp;lt;package&amp;gt;

// Mac Users:
&amp;gt;npm install &amp;lt;package&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How to upload using NPM
&lt;/h2&gt;

&lt;p&gt;Say you're working on a company project and you would like to share a series of function to make this project and projects like it easier. You could just copy and paste your code into a messaging app and send it to them that way, but what happens when another project comes up that could use the same code? It would be a pain finding out who still has access to the code and who still needs it, on top of having to send the code to each person individually. Here's where NPM becomes useful. You can simply upload your code to NPM, that way anyone who needs it can access it at any time.&lt;/p&gt;

&lt;p&gt;To upload a package to NPM, you first have to create an account. You can sign up here at their official website: &lt;a href="https://www.npmjs.com/"&gt;https://www.npmjs.com/&lt;/a&gt;. Next you need to sign in using the terminal command: NPM login. Once you've hit enter, an input field should come up that looks something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Windows users:
C:\&amp;gt;npm login
Username: &amp;lt;your username&amp;gt;
Password: &amp;lt;your password&amp;gt;

// Mac Users:
&amp;gt;npm login
Username: &amp;lt;your username&amp;gt;
Password: &amp;lt;your password&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you're logged in, navigate to your project that you would like to upload. Once you're in the desired directory, you can simply run the command: npm publish.&lt;br&gt;
Now, you've officially upload a package to NPM!&lt;/p&gt;

&lt;p&gt;NPM is a powerful tool that makes accessing code easy and simple. There are already plenty of packages uploaded to NPM that I guarantee can make your code more stream-lined, as well as make your life a bit easier. Here's a list of popular NPM Packages to checkout. Happy coding!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Express: &lt;a href="https://www.npmjs.com/package/express"&gt;https://www.npmjs.com/package/express&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;AsyncJS: &lt;a href="http://caolan.github.io/async/v3/"&gt;http://caolan.github.io/async/v3/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Lodash: &lt;a href="https://lodash.com/"&gt;https://lodash.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Cloudinary: &lt;a href="https://www.npmjs.com/package/cloudinary"&gt;https://www.npmjs.com/package/cloudinary&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Axios: &lt;a href="https://www.npmjs.com/package/axios"&gt;https://www.npmjs.com/package/axios&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Karma: &lt;a href="https://www.jetbrains.com/help/ruby/running-unit-tests-on-karma.html"&gt;https://www.jetbrains.com/help/ruby/running-unit-tests-on-karma.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Molecular: &lt;a href="https://www.npmjs.com/package/moleculer"&gt;https://www.npmjs.com/package/moleculer&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Work Cited:&lt;br&gt;
&lt;a href="https://www.w3schools.com/whatis/whatis_npm.asp"&gt;https://www.w3schools.com/whatis/whatis_npm.asp&lt;/a&gt;&lt;br&gt;
&lt;a href="https://careerfoundry.com/en/blog/web-development/what-is-npm/#:%7E:text=npm%20stands%20for%20Node%20Package,over%2011%20million%20developers%20worldwide"&gt;https://careerfoundry.com/en/blog/web-development/what-is-npm/#:~:text=npm%20stands%20for%20Node%20Package,over%2011%20million%20developers%20worldwide&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6EtbyK8P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/em7dul7sae3ieeew62q9.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6EtbyK8P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/em7dul7sae3ieeew62q9.jpeg" alt="Image description" width="318" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>JavaScript : Console commands</title>
      <dc:creator>Benjamin Klein</dc:creator>
      <pubDate>Thu, 09 Mar 2023 17:46:40 +0000</pubDate>
      <link>https://dev.to/benjaminklein99/javascript-console-commands-1icf</link>
      <guid>https://dev.to/benjaminklein99/javascript-console-commands-1icf</guid>
      <description>&lt;h2&gt;
  
  
  The Console
&lt;/h2&gt;

&lt;p&gt;The console is a vital tool that every JavaScript developer should keep in their tool-belt for their day to day work. It allows us to peer into the state of our code and helps us debug.  Here are few handy console commands you should use in your code.&lt;/p&gt;

&lt;h2&gt;
  
  
  console.log()
&lt;/h2&gt;

&lt;p&gt;The first console command I should introduce you to is the console log command. This versatile command allows us to 'log' messages to the console, as well as examine the value that is stored in a variable.  Here's a few examples of how to use console.log&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var message = 'Hello from the console!'
console.log(message); // logs ==&amp;gt; Hello from the console!

var value = 9;
console.log(value); // logs ==&amp;gt; 9
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can also log multiple values at the same time by passing their variable names into the parenthesis separated with commas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var string1 = 'Hello';
var string2 = 'World';
console.log(string1, string2); // logs ==&amp;gt; Hello World
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  console.table()
&lt;/h2&gt;

&lt;p&gt;Another very useful console command is "console.table()". This command is great when working with an array of objects. It logs a table to the console that describes what key and value each object has and where it is in the array. This tool is not only helpful when navigating an array of objects, but also when building them, as it allows the user to easily discern if you have reached your desired outputs. Below is an example of how we can invoke the console.table() command and an explanation of how to interpret the tables contents.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let arrayOfObjects = [{a: 10}, {b: 20}, {c: 30}]
console.table(arrayOfObjects);
// logs ==&amp;gt;
┌─────────┬────┬────┬────┐
│ (index) │ a  │ b  │ c  │
├─────────┼────┼────┼────┤
│    0    │ 10 │    │    │
│    1    │    │ 20 │    │
│    2    │    │    │ 30 │
└─────────┴────┴────┴────┘


var arrayOfObjects2 = [{a: 10, b: 20}, {c: 30, d: 40}, {e: 50, f:60}]
console.table(arrayOfObjects2);
// logs ==&amp;gt; 
┌─────────┬────┬────┬────┬────┬────┬────┐
│ (index) │ a  │ b  │ c  │ d  │ e  │ f  │
├─────────┼────┼────┼────┼────┼────┼────┤
│    0    │ 10 │ 20 │    │    │    │    │
│    1    │    │    │ 30 │ 40 │    │    │
│    2    │    │    │    │    │ 50 │ 60 │
└─────────┴────┴────┴────┴────┴────┴────┘


var arrayOfObjects3 = [{a: 10}, {a: 20}, {a: 30}]
console.table(arrayOfObjects3);
//logs ==&amp;gt;
┌─────────┬────┐
│ (index) │ a  │
├─────────┼────┤
│    0    │ 10 │
│    1    │ 20 │
│    2    │ 30 │
└─────────┴────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The row across the top of the table represents the keys that are present in each object. Bellow each key, in the keys corresponding column, is the value at that key. To find the index at which the object exists in the array, find the key that exists in the desired object, follow the keys column down to its value, and then follow the values row to the left to find the index.&lt;/p&gt;

&lt;h2&gt;
  
  
  console.clear()
&lt;/h2&gt;

&lt;p&gt;The final command I will discuss in this post is the console clear command. As we create more and more messages and tables, the console can become cluttered and tedious to sift through. To invoke this command, we simply write console.clear(). This command takes no inputs so nothing needs to be written into the parenthesis. When this command is invoked, all contents of the console are removed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Now You Know!
&lt;/h2&gt;

&lt;p&gt;Now you know a thing or two about the console and how it can make both coding and debugging a bit easier. Go try implementing some of these commands in your code and see what they can do for you. Happy coding!&lt;/p&gt;

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