<?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: Hunt Navar</title>
    <description>The latest articles on DEV Community by Hunt Navar (@hnavar).</description>
    <link>https://dev.to/hnavar</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%2F724557%2Fbd8f49d2-bea6-4632-b9f3-664c4db82447.jpeg</url>
      <title>DEV Community: Hunt Navar</title>
      <link>https://dev.to/hnavar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hnavar"/>
    <language>en</language>
    <item>
      <title>The Potential End of Crypto </title>
      <dc:creator>Hunt Navar</dc:creator>
      <pubDate>Tue, 11 Jan 2022 15:14:56 +0000</pubDate>
      <link>https://dev.to/hnavar/the-potential-end-of-crypto-278</link>
      <guid>https://dev.to/hnavar/the-potential-end-of-crypto-278</guid>
      <description>&lt;p&gt;Over the course of the last several years, crypto fluctuated dramatically. Crypto has made many millionaires, and for many not dumping money into the block chain seems like a mistake. &lt;/p&gt;

&lt;p&gt;With these great things being said, every winner in crypto has a loser. The market has been extremely volatile. Market predictions have been way off the mark for the past several months. Not to mention Bitcoin "the hedge against inflation" has not increased its value while inflation has dramatically risen. If Bitcoin was a true hedge then the relationship would have been the inverse rather then losing thousands of dollars in value.&lt;/p&gt;

&lt;p&gt;With all this being said, if you are a crypto buff do not be alarmed just yet. As you might be familiar, the methodology of making money in this industry is buying the dips. So if you are confident in the market then this is the time to put your money where your mouth is and buy a ton of crypto. If crypto is really here to stay you will make vast sums of money.&lt;/p&gt;

&lt;p&gt;However, if you are a bit of a skeptic it is a great time to observe the market. I will say crypto still has a slight chance with NFT's, but the overall problem is the value derived from crypto is equal to the amount of energy it takes to mine the specific coin. If the supply is greater than the demand then the overall price of all crypto will drop. Truthfully, with inflation rising and the price of goods increasing, what is more important to purchase: food and clothes or crypto ?&lt;/p&gt;

&lt;p&gt;Anyway I hope you enjoyed the short talk about crypto, make an argument below saying why or why not crypto will fail. I hope you have a good day and happy engineering.&lt;/p&gt;

</description>
      <category>healthydebate</category>
    </item>
    <item>
      <title>Stop Fearing Failure</title>
      <dc:creator>Hunt Navar</dc:creator>
      <pubDate>Mon, 03 Jan 2022 23:17:20 +0000</pubDate>
      <link>https://dev.to/hnavar/stop-fearing-failure-fp1</link>
      <guid>https://dev.to/hnavar/stop-fearing-failure-fp1</guid>
      <description>&lt;p&gt;I am going to let you in on a little secret... The best developers are the ones that fail the most.&lt;/p&gt;

&lt;p&gt;While this sounds counterintuitive, because people often assume the best developers never fail; I assure you failure is the one of the best teachers in the software engineering industry.&lt;/p&gt;

&lt;p&gt;As a developer your job is to solve new and interesting solutions to problems that haven't been solved. When a company assigns you a ticket to complete some task to solve a specific problem, one should anticipate failure multiple times. The company doesn't know exactly how to build it, and you the programmer won't know exactly how to build it.&lt;/p&gt;

&lt;p&gt;When I create a new react component and there is not a single error message in my terminal I generally assume I did something wrong. The point of sharing this is that everyone makes many mistakes a day when writing code, and to not make some sort of mistake within newly written code is a rarity. We are humans and its very easy to make wrong assumptions about the data we are manipulating.&lt;/p&gt;

&lt;p&gt;My message to any new developers: Do not be scared of failure. When you see an error message break it down to its smallest pieces and use the knowledge you already possess to find a solution. If something peculiar is going on then use your resources, google, stack overflow, or friends to figure out what is going. The only real failure is when you give up completely and FAIL YOURSELF.&lt;/p&gt;

&lt;p&gt;In any process of building a technology there are millions of possible solutions. The job for you the developer is to find the solution that is most efficient and right to you...and not to break production. But that is a whole other topic.&lt;/p&gt;

&lt;p&gt;My suggestion to new developers who struggle and lose confidence when they receive errors is to get a rubber duck to talk to about your errors. This might sound foolish but tell the duck what you are anticipating should happen, why your code should be working, and why the error should not be happening. During this process you will often figure out what really is going wrong with your code. With this methodology as well as consistent testing solving any problem seems surmountable.&lt;/p&gt;

&lt;p&gt;Remember, if developing wasn't stressful and difficult then there would not be a surplus need for developers! Failure is a daily occurrence in our lives and is completely normal. Do not be discouraged and allow errors to help you not only build your developing skills, but your grit and persistence as well.&lt;/p&gt;

&lt;p&gt;We are taught in school that failure is the worst thing that can occur to us; however, in development failure in just a stepping stone towards the path of success.&lt;/p&gt;

&lt;p&gt;I hope you enjoyed this motivational post and if you are new to this industry you take away the key message I am trying to present.&lt;/p&gt;

&lt;p&gt;Have a great New Year, and keep on coding.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Ionic 4+ Intro</title>
      <dc:creator>Hunt Navar</dc:creator>
      <pubDate>Mon, 20 Dec 2021 15:15:27 +0000</pubDate>
      <link>https://dev.to/hnavar/ionic-4-intro-6b</link>
      <guid>https://dev.to/hnavar/ionic-4-intro-6b</guid>
      <description>&lt;p&gt;Ionic is a distributed set of web components using custom elements and shadow DOM APIs available in all modern mobile and desktop browsers. Ionic framework contains its own custom set of HTML tags which can easily be imported with the framework.&lt;/p&gt;

&lt;p&gt;Ionic contains stencil-built components which lead the pack in terms of bundle size and load performance. This web framework can be used with React and Angular to reach even higher performance levels.&lt;/p&gt;

&lt;p&gt;Ionic has a beautiful array of custom theme designs that can be used across the platform. Here is a small sample of some of the capabilities: &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%2F9x5oyzsmgrxjxbz58qjp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9x5oyzsmgrxjxbz58qjp.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another interesting aspect of Ionic is that you can use the bundling .and tooling specific to the other web frameworks you utilize. That means you’ll use the Angular CLI when using Ionic with Angular, React CLI with React, and so on.&lt;/p&gt;

&lt;p&gt;To get started with Ionic its very simple, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g ionic # Update the Ionic CLI
ionic start awesome-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will create your ionic app will all the pertinent needs. Then depending what you want to do grab your other framework and start building your dream project.&lt;/p&gt;

&lt;p&gt;Finally, to create your first Ionic homepage simply utilize the Ionic CLI.&lt;/p&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ionic generate page HomePage
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you will have created an Ionic homepage with 0 boiler code.&lt;/p&gt;

&lt;p&gt;The next step is importing the page in src/app/app.module.ts. The code follows as so&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { HomePage } from '../pages/home/home';

@NgModule({
declarations: [
    MyApp,
    HomePage
    ],
imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
    MyApp,
    HomePage  
    ],
providers: [
    /* .... */
]
})
export class AppModule {}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You now have a working homepage, congrats!&lt;/p&gt;

&lt;p&gt;So why would you use Ionic? For sure the primary reason is its simplicity. Ionic lets you build cross platform apps at ease. There are many different plugins that enhance the overall performance of apps and this only involves adding a few simple codes to your development. With all of these aspects, the user interface is extremely well done. Ionic also supports the motion, depth, and beautiful colors of the material design for a ban awesome looking UI. The final aspect of Ionic that breeds usability is the ease of testing it provides. Cross-platform testing has never been easier. You can test the app native or hybrid on the actual platform to get an idea of how the app will function.&lt;/p&gt;

&lt;p&gt;Overall, Ionic is one the superior options to build any hybrid app; it takes advantage of the unique pairings of any framework you choose.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>angular</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>TypeScript: Intro to JavaScript's mature younger brother  </title>
      <dc:creator>Hunt Navar</dc:creator>
      <pubDate>Sat, 11 Dec 2021 00:18:41 +0000</pubDate>
      <link>https://dev.to/hnavar/typescript-intro-to-javascripts-older-brother-3a1k</link>
      <guid>https://dev.to/hnavar/typescript-intro-to-javascripts-older-brother-3a1k</guid>
      <description>&lt;p&gt;If you are familiar with JavaScript, then you are probably familiar with the surplus of small errors that come while coding it. &lt;br&gt;
What if I were to tell you there was a way to code and avoid many of these errors? If you are unfamiliar with TypeScript you would most likely think I was lying. &lt;/p&gt;

&lt;p&gt;TypeScript is the older brother of JavaScript, and as its name implies; there are types present within the language. Being the oddball mature younger brother the language is &lt;strong&gt;stricter&lt;/strong&gt; than its sibling JavaScript. &lt;/p&gt;

&lt;p&gt;To start a type can be declared as any with the any flag.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;anyType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;any&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Unfortunately, this defeats the point of TypeScript as there is no real check.&lt;/p&gt;

&lt;p&gt;A &lt;em&gt;better&lt;/em&gt; use of TypeScript would be to declare a type like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;numberType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;23&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This would force a type of number onto our variable and would not allow the variable to be redeclared. While this seems trivial declaring types can be done for every single JavaScript data type.&lt;/p&gt;

&lt;p&gt;This would allow for function parameters and return values to be declared. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;exponentiate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;number&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;Math&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nx"&gt;toString&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this instance we declared our parameters both as numbers and our return value as a string.&lt;/p&gt;

&lt;p&gt;By having to do this pre-emptively, many mistakes are avoided due to fully thinking our function out and not writing spaghetti code.&lt;/p&gt;

&lt;p&gt;The last piece of TypeScript I want to talk about are interfaces.&lt;/p&gt;

&lt;p&gt;An interface allows for object class types to be created.&lt;br&gt;
It also prevents objects from having incorrect data being passed in.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;first&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nl"&gt;last&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt; &lt;span class="nx"&gt;any&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice the difference in the syntax compared to an object.&lt;br&gt;
This would force an object with a Person interface to be forced to have a first and last name with string.&lt;/p&gt;

&lt;p&gt;Utilizing the interface for an object would look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;person&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Person&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="na"&gt;first&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Hunt&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;last&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Navar&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="na"&gt;fast&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allows for first and last names to be forced but the fast parameter is optional!&lt;/p&gt;

&lt;p&gt;I hope you learned something about JavaScript's brother. Use your new found powers for good!&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>programming</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Loopback</title>
      <dc:creator>Hunt Navar</dc:creator>
      <pubDate>Mon, 06 Dec 2021 05:12:30 +0000</pubDate>
      <link>https://dev.to/hnavar/intro-to-loopback-3dcl</link>
      <guid>https://dev.to/hnavar/intro-to-loopback-3dcl</guid>
      <description>&lt;p&gt;When one starts their journey into backend development, there is no doubt they will come across Node.js and Express. Express being an extremely popular web application framework is commonly the go to for developing new and existing applications. Express makes it easy to cut out much of the daunting code that writing raw Node.js requires. This being said, the task of creating your CRUD operations will always exist and if you have not created these I would suggest looking into it before continuing this article. &lt;/p&gt;

&lt;p&gt;Once you understand the fundamentals of Node and Express, there is an incredible web framework that runs on top of both of these different software. Here approaches Loopback.&lt;/p&gt;

&lt;p&gt;Loopback is an NPM package that allows for the quick composition of the important CRUD API's that every developer will eventually have to produce. &lt;/p&gt;

&lt;p&gt;The first step of getting started with Loopback is to use the &lt;br&gt;
simple command:&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;sudo npm install -g loopback-cli&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;After this command you will be prompted to name your project, and should enter the command:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;lb&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;which will create a file structure that looks like this: &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vX2QtmtU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r07ytqr4735318jyg4h4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vX2QtmtU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r07ytqr4735318jyg4h4.png" alt="Image description" width="317" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The client folder will be for our Frontend work exist and our server.js file will contain our Backend work.&lt;/p&gt;

&lt;p&gt;The next step will consist of a prompt asking for your data source, which will create a datasource.json file.&lt;/p&gt;

&lt;p&gt;Now we can edit model-config.json to use the any created datasource instead of default one which will be labeled as db.&lt;/p&gt;

&lt;p&gt;This is the beginning of Loopback but the true magic of the software begins when you start create your models. When utilizing loopback, creating models is as easy as typing in:&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;lb model&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;You will then prompted enter details about your model, and depending what you have chosen/selected, the crud applications needed will be AUTOMATICALLY generated.&lt;/p&gt;

&lt;p&gt;This is the beauty of Loopback. While generally these Api's would have to be tediously written, this framework will automatically create many of them with your selected end point!&lt;/p&gt;

&lt;p&gt;In conclusion Loopback is a low learning curve Backened framework that drastically speeds up the development process. I highly suggest going to create a simple project to checkout the many options this software brings.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://loopback.io/doc/"&gt;https://loopback.io/doc/&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://developer.ibm.com/tutorials/create-rest-apis-minutes-with-loopback-4/"&gt;https://developer.ibm.com/tutorials/create-rest-apis-minutes-with-loopback-4/&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://blog.logrocket.com/creating-a-dynamic-application-with-loopback/"&gt;https://blog.logrocket.com/creating-a-dynamic-application-with-loopback/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>express</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Intro to PostgreSQL</title>
      <dc:creator>Hunt Navar</dc:creator>
      <pubDate>Sun, 31 Oct 2021 23:33:04 +0000</pubDate>
      <link>https://dev.to/hnavar/intro-to-postgresql-2186</link>
      <guid>https://dev.to/hnavar/intro-to-postgresql-2186</guid>
      <description>&lt;p&gt;PostgreSQL is open-sourced object-relational database management system that is extremely dynamic and has many different use cases. Postgres, being a object-relational database, stores relationships as tuples.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6wUqXB5K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d93mxwiozdc7i81an4h1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6wUqXB5K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d93mxwiozdc7i81an4h1.png" alt="Image description" width="880" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The object-relational part of Postgres means that Postgres includes features like table inheritance and function overloading.&lt;/p&gt;

&lt;p&gt;Think of table inheritance like making a class and then extending all the methods and information from one class to its child classes. Function overloading is creating multiple functions with the same name as long as the arguments are different.&lt;/p&gt;

&lt;p&gt;Postgres also supports multiple different languages and can have different languages for different parts of the database. This aspect is great because it widens the amount of people who are able to use the manager as well as will allow people to use the  languages best suited for the job at hand.&lt;/p&gt;

&lt;p&gt;The DDL or data definition language of Postgres strongly resembles that of SQL. The common data definitions are Create, Drop, Alter, or Truncate.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mYx8YsnO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1i9x9op5tdf9fnk88k22.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mYx8YsnO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1i9x9op5tdf9fnk88k22.png" alt="Image description" width="880" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CREATE DATABASE Bookshelf;&lt;/p&gt;

&lt;p&gt;CREATE TABLE Borrowers (&lt;br&gt;
  id INT PRIMARY KEY,&lt;br&gt;
  first_name VARCHAR(20) not null,&lt;br&gt;
  last_name VARCHAR(50) not null,&lt;br&gt;
  birth_date DATE not null);&lt;/p&gt;

&lt;p&gt;ALTER TABLE Borrowers ADD COLUMN years_member INT NOT NULL CHECK years_member &amp;gt; 0;&lt;/p&gt;

&lt;p&gt;CREATE TABLE books (&lt;br&gt;
  id INT PRIMARY KEY,&lt;br&gt;
  title VARCHAR(50),&lt;br&gt;
  author VARCHAR(50)&lt;br&gt;
  publication_date DATE not null);&lt;/p&gt;

&lt;p&gt;/* after populating ‘books‘ table */&lt;/p&gt;

&lt;p&gt;TRUNCATE TABLE books;&lt;/p&gt;

&lt;p&gt;/* removes all data from ‘books’ table */&lt;/p&gt;

&lt;p&gt;The DML or data manipulation language is used to work with our tables. The common DML includes Insert, Update, Delete, or Select.&lt;/p&gt;

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

&lt;p&gt;Since Postgres is open-source new features and updates common and documentation is excellent. &lt;/p&gt;

&lt;p&gt;Overall Postgres is a powerful, excellent database manager that enhances traditional SQL.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://developer.okta.com/blog/2019/07/19/mysql-vs-postgres"&gt;https://developer.okta.com/blog/2019/07/19/mysql-vs-postgres&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://dev.to/hoverbaum/how-to-add-code-highlighting-to-your-devto-posts-2lp6"&gt;https://dev.to/hoverbaum/how-to-add-code-highlighting-to-your-devto-posts-2lp6&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://www.postgresqltutorial.com/"&gt;https://www.postgresqltutorial.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codenewbie</category>
      <category>programming</category>
      <category>webdev</category>
      <category>database</category>
    </item>
    <item>
      <title>What is a honeypot and why might it be important?</title>
      <dc:creator>Hunt Navar</dc:creator>
      <pubDate>Sun, 24 Oct 2021 16:24:05 +0000</pubDate>
      <link>https://dev.to/hnavar/what-is-a-honeypot-and-why-might-it-be-important-56jo</link>
      <guid>https://dev.to/hnavar/what-is-a-honeypot-and-why-might-it-be-important-56jo</guid>
      <description>&lt;p&gt;If you have never worked or had an interest in cyber security, then the term "honeypot" might have a foreign meaning to you. As the name implies a honeypot lures hackers in with its sweet false hopes, hackers then unknowingly go after information not knowing they have enter a trap.&lt;/p&gt;

&lt;p&gt;On the internet a honeypot might look like a badly built login page or some type of low hanging fruit that a hacker believes they can access and gather sensitive information from.&lt;/p&gt;

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

&lt;p&gt;There are two places a honeypot usually is set when monitoring and  discovering hackers. In enterprises firewalls are set to filter out a majority of hackers. Knowing this, our first inclination might to put our honeypot after the firewall. While this is certainly not the wrong assumption to have, the amount of knowledge gained by observing malignant actors actions drastically decreases.&lt;/p&gt;

&lt;p&gt;The reasons to want the honeypot within your firewall would be regarding internal bad actors; while few, they would not be monitored or even discovered.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_dJZvjyn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/21r3bdb0wfnozf6ihzrg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_dJZvjyn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/21r3bdb0wfnozf6ihzrg.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the best all encompassing honeypots is called Tpot and can be examined here.&lt;a href="https://github.com/telekom-security/tpotce"&gt;https://github.com/telekom-security/tpotce&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would not download this on a personal computer as it takes a large amount of storage space; however, if you are working for an enterprise or have the storage space available, feel free to download for these cool features.&lt;/p&gt;

&lt;p&gt;I AM NOT RESPONSIBLE FOR CHANGES MADE TO YOUR COMPUTER&lt;/p&gt;

&lt;p&gt;Anyway, installation is very simple. Run these commands using Unbuntu 18.04 or higher. You will also need an Unbuntu server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0HX0ztXQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i6psj0f20bxpw0qyif4z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0HX0ztXQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i6psj0f20bxpw0qyif4z.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
 Also, if git isn't insatlled make sure to run&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo yum install git&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;Let the installation continue until you are automatically signed into the Kabana dashboard.&lt;/p&gt;

&lt;p&gt;You will have access to all the different honeypots Tpot has to offer! There is a tremendous amount of information accessible to you at this point so go through you dashboard and find your favorites!&lt;br&gt;
&lt;a href="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dwlmmv96zwba4hyat3tc.png"&gt;Image description&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let your program run and see all the hackers come out for the honey! You can identify the passwords and usernames attempted which will allow you to protect yourself better.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ni3qMBMR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/33n497wjjd1smwlbdi2w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ni3qMBMR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/33n497wjjd1smwlbdi2w.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for sticking along and reading; I hope you learned something unique!&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://blog.24by7security.com/honeypots-and-how-they-can-secure-your-network?https://www.24by7security.com/cmmc&amp;amp;gclid=Cj0KCQjwiNSLBhCPARIsAKNS4_d9Fz14_8S8OcNl5Q69xNrsaOIFWZE5zD16fbDcbtTQ1oN8rkCS4zUaAqtoEALw_wcB"&gt;https://blog.24by7security.com/honeypots-and-how-they-can-secure-your-network?https://www.24by7security.com/cmmc&amp;amp;gclid=Cj0KCQjwiNSLBhCPARIsAKNS4_d9Fz14_8S8OcNl5Q69xNrsaOIFWZE5zD16fbDcbtTQ1oN8rkCS4zUaAqtoEALw_wcB&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://usa.kaspersky.com/resource-center/threats/what-is-a-honeypot"&gt;https://usa.kaspersky.com/resource-center/threats/what-is-a-honeypot&lt;/a&gt;&lt;br&gt;
Source: &lt;a href="https://cyber-99.co.uk/t-pot-honeypot-framework-installation"&gt;https://cyber-99.co.uk/t-pot-honeypot-framework-installation&lt;/a&gt;&lt;br&gt;
Source:&lt;a href="https://www.youtube.com/watch?v=0WUaI2pNiPI&amp;amp;t=494s"&gt;https://www.youtube.com/watch?v=0WUaI2pNiPI&amp;amp;t=494s&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webdev</category>
      <category>programming</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>SQL Conceptual Basics</title>
      <dc:creator>Hunt Navar</dc:creator>
      <pubDate>Sat, 16 Oct 2021 17:56:19 +0000</pubDate>
      <link>https://dev.to/hnavar/sql-conceptual-basics-2bi5</link>
      <guid>https://dev.to/hnavar/sql-conceptual-basics-2bi5</guid>
      <description>&lt;p&gt;Today I will discuss the basics of SQL or Structured Query Language and why it might be important to learn if you are working to be a developer. SQL "databases" are tables. These tables can either be looked at as a bunch of rows on top of one another, or several columns smashed together. &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_E4TKUlg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wbe1rq4do1tk9v8r9a63.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_E4TKUlg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wbe1rq4do1tk9v8r9a63.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
As a developer, we are interested in accessing and using the data stored within our SQL tables. This is when our first keyword comes into play, Select. A good analogy for Select is that it takes an item (column) from our shopping cart (table) and puts it into our basket.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xN-lRZMs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4yiupgy70d5ogfy88vji.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xN-lRZMs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4yiupgy70d5ogfy88vji.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
The next keyword that is important is From. From specifies the specific table we want to Select our columns from. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--fPgHJ0zP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rchw5ghjjru3x4snjwkj.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fPgHJ0zP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rchw5ghjjru3x4snjwkj.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
As you can see we have eliminated our yellow column from our table and condensed our data. This is the first step in having usable information.&lt;/p&gt;

&lt;p&gt;The next keyword to utilize for even MORE usable data is the Where keyword. The Where keyword allows us to filter out specific rows that might contain information we do not want. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5xfs2W-b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/optj31vpf15xq0p2h9es.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5xfs2W-b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/optj31vpf15xq0p2h9es.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
In this instance the Where keyword is being used to select the blue columns. We are then filtering out all red elements with &amp;lt;&amp;gt; which translates to "Does Not Equal". &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LHqoJDDN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2nyy1j5557cebxf79viw.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LHqoJDDN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2nyy1j5557cebxf79viw.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
This is extremely useful to collect good or bad data and then store it for use at another time!&lt;/p&gt;

&lt;p&gt;The final keyword we will discuss today is the Join keyword. The Join keyword allows for two tables to be selected and then joined together. It is important that when you are joining tables, the data types for columns being join match one another.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i7HYgFDI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pu1uo7ro5jr2imbdxpyi.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i7HYgFDI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pu1uo7ro5jr2imbdxpyi.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Then the final outcome of the joined tables would look like:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S2siVGWH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3j4tgwwrqxxw8z5cxnu.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S2siVGWH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k3j4tgwwrqxxw8z5cxnu.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
This was my intro into SQL basics! Thanks for the read.&lt;br&gt;
Sources: &lt;a href="https://www.w3schools.com/sql/sql_intro.asp"&gt;https://www.w3schools.com/sql/sql_intro.asp&lt;/a&gt;&lt;br&gt;
Sources: &lt;a href="https://www.c-sharpcorner.com/article/introduction-to-sql-and-sql-commands/"&gt;https://www.c-sharpcorner.com/article/introduction-to-sql-and-sql-commands/&lt;/a&gt;&lt;br&gt;
Sources: &lt;a href="https://www.sqlshack.com/introduction-to-sql/"&gt;https://www.sqlshack.com/introduction-to-sql/&lt;/a&gt;&lt;br&gt;
Sources: &lt;a href="https://www.youtube.com/watch?v=bEtnYWuo2Bw"&gt;https://www.youtube.com/watch?v=bEtnYWuo2Bw&lt;/a&gt; &lt;/p&gt;

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