<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Andrew Richards on Medium]]></title>
        <description><![CDATA[Stories by Andrew Richards on Medium]]></description>
        <link>https://medium.com/@arichards4814?source=rss-17fad5050a67------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*aggRXhKaoK939DgJWeEm_Q@2x.jpeg</url>
            <title>Stories by Andrew Richards on Medium</title>
            <link>https://medium.com/@arichards4814?source=rss-17fad5050a67------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 09:39:35 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@arichards4814/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[The AI Art World is Exploding With DALL-E 2]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://arichards4814.medium.com/the-ai-art-world-is-exploding-with-dall-e-2-cd13829bdc51?source=rss-17fad5050a67------2"><img src="https://cdn-images-1.medium.com/max/1024/1*BCkO4lPVLXswQiV4eyTtCw.jpeg" width="1024"></a></p><p class="medium-feed-snippet">With it comes Reddit bans, prompt hoarders and capitalists that are swooping in to try to make a buck.</p><p class="medium-feed-link"><a href="https://arichards4814.medium.com/the-ai-art-world-is-exploding-with-dall-e-2-cd13829bdc51?source=rss-17fad5050a67------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://arichards4814.medium.com/the-ai-art-world-is-exploding-with-dall-e-2-cd13829bdc51?source=rss-17fad5050a67------2</link>
            <guid isPermaLink="false">https://medium.com/p/cd13829bdc51</guid>
            <category><![CDATA[dalle-2]]></category>
            <category><![CDATA[artificial-intelligence]]></category>
            <category><![CDATA[ai-art]]></category>
            <category><![CDATA[art]]></category>
            <category><![CDATA[artist]]></category>
            <dc:creator><![CDATA[Andrew Richards]]></dc:creator>
            <pubDate>Sat, 30 Jul 2022 22:12:45 GMT</pubDate>
            <atom:updated>2022-08-01T11:58:57.007Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Strategic Card Combinations in Arms & Influence]]></title>
            <link>https://arichards4814.medium.com/strategic-card-combinations-in-arms-influence-82ad9ff485c8?source=rss-17fad5050a67------2</link>
            <guid isPermaLink="false">https://medium.com/p/82ad9ff485c8</guid>
            <category><![CDATA[game-design]]></category>
            <category><![CDATA[game-development]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[card-game]]></category>
            <category><![CDATA[board-games]]></category>
            <dc:creator><![CDATA[Andrew Richards]]></dc:creator>
            <pubDate>Sat, 03 Jul 2021 16:58:16 GMT</pubDate>
            <atom:updated>2021-07-03T16:59:58.186Z</atom:updated>
            <content:encoded><![CDATA[<p>In the strategy card game <a href="http://armsandinfluence.com/">Arms &amp; Influence</a>, playing the right 2 cards during your turn could be the difference between winning and losing. Here are a few creative ways to combine your 2 actions during your turn to gain and advantage and win sweet, sweet victory points.</p><h3><strong>Competition + Baby Boom</strong></h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-mBdpNCBCiGeUVCvTupo5w.png" /></figure><p>Putting a Competition in play sets in motion a battle to have the most of a specific resource by the end of the turn. If you play it right, the Baby Boom card can be your ticket to victory.</p><p>The Baby boom card doubles the value of all population cards of one type of your choice for <em>only</em> one turn. So you are going to want to make sure no one is on your tail before playing this combo.</p><h3>Competition + Skip</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xYE6w0Q_VdOo_lm8087-hw.png" /></figure><p>A Competition can be won or lost by one card. So limiting your players options during a competition can be the edge you need to win.</p><p>By skipping the player that might be the biggest threat, you may be giving yourself the time you need to remain the resource leader.</p><h3>Security Breach + Steal / Forced Trade</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TZnkAgw72Q4JIpU-SQ9Nqg.png" /></figure><p>Forced Trades and Steals allow you to take a players card out of their hands. Unfortunately, only players with x-ray vision can know what cards their opponent is holding… unless they use this combination.</p><p>The Security Breach card allows you to see the cards a player is holding. Using this in combination with a steal or forced trade gives you the super power of knowing the cards you are grabbing from.</p><p>What great plays have you made during your time with Arms &amp; Influence? Let me know in the comments!</p><p>There are tons of other combinations and strategies that can be played to gain victory points and stifle your opponents chances.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cOqHgT9qRRmaZMxUfKA9lw.png" /></figure><p>If you have not yet played Arms &amp; Influence and are interested, check out our website <a href="http://armsandinfluence.com/">ArmsandInfluence.com</a> or check us out on <a href="https://www.instagram.com/armsandinfluence/">Instagram</a>. You can buy Arms &amp; Influence directly from our website!</p><p>I’m Andrew Richards, co-creator of Arms &amp; Influence. I write about Software Development and this game of course. If you would like to keep up with me, I am @thedrewprint on pretty much all platforms, you can find me on <a href="https://www.instagram.com/thedrewprint/">Instagram</a>, <a href="http://twitter.com/thedrewprint">Twitter</a>, and on <a href="https://www.linkedin.com/in/andrewmichaelrichards/">LinkedIn</a>…</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=82ad9ff485c8" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How Angular Compares to React (for developers who are curious)]]></title>
            <link>https://arichards4814.medium.com/how-angular-compares-to-react-for-developers-who-are-curious-b6c0632bdf58?source=rss-17fad5050a67------2</link>
            <guid isPermaLink="false">https://medium.com/p/b6c0632bdf58</guid>
            <category><![CDATA[javascript-development]]></category>
            <category><![CDATA[frontend]]></category>
            <category><![CDATA[angularjs]]></category>
            <category><![CDATA[angularjs-development]]></category>
            <category><![CDATA[angular]]></category>
            <dc:creator><![CDATA[Andrew Richards]]></dc:creator>
            <pubDate>Fri, 20 Nov 2020 17:33:43 GMT</pubDate>
            <atom:updated>2020-11-20T17:33:43.339Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/760/1*IpJblEKT0Rbrg61W_LM0-A.png" /></figure><p>I have just been hired for a company that is using Angular on their tech stack. In preparation to get started I am following a course on Udemy that I will link below.</p><p><a href="https://www.udemy.com/course/the-complete-guide-to-angular-2">https://www.udemy.com/course/the-complete-guide-to-angular-2</a></p><p>I am a Javascript developer with experience in React. And although this course is absolutely amazing, it does not relate anything to React (since it is not a course specifically for developers with React experience) And so I wanted to write an Angular article making some basic comparisons to React in order to make it easy to jump into for React developers.</p><p><strong>TypeScript</strong></p><p>One big difference between React and Angular is that Angular uses strictly Typescript right out of the box. React on the other hand you can choose between the two. On a basic level Typescript adds great features such as types to Javascript that make code easier to debug among other things. It also provides errors and fixes before you even run code. Which as I’m learning has turned out to be fantastic.</p><p><a href="https://www.typescriptlang.org/">JavaScript With Syntax For Types.</a></p><p>There is a small learning curve but the course I linked above is a great way to learn. You don’t just learn how everything works, you see it in action in a real app.</p><p><strong>Components</strong></p><p>Much like React, Angular uses components. However, components in Angular are a bit different than they are in React. For example, React components are standalone files (something.js) that contain a class (or function) with a render function (or return) featuring JSX. Angular does not use JSX, and components are usually made up of at least 2, but most of the time 3 files nested in a folder of that components name.</p><p>These files are the template file, which is an HTML file that contains well… you guessed it… HTML. So think of this like your JSX section of your React components. It functions the same way in that it is what will render on the DOM. But it is actual HTML with some added features provided by Angular. Developers with experience in HTML will feel at home.</p><p>The second and most important file is the typescript file that configures the component. This is where you can create functions and variables that can be referenced in the HTML template file. Which can make your component dynamic and take in or output information from and to other components.</p><p>The third file is the CSS or SCSS file that you can use to style your component.</p><p>A fourth file is your test file which will allow you to test that your components are working.</p><p><strong>INTERACTING WITH THE DOM</strong></p><p><strong>Property Binding and Data Binding</strong></p><p>Property binding allows you to use HTML properties only when a certain condition is met. You do this by putting the property in square brackets and giving it a condition inside a quotations like so:</p><p>&lt;p [disabled]=”show === false”&gt;Hello World&lt;/p&gt;</p><p>Now in your component you would create a variable “show” that you can toggle true and false. This will essentially only attach the “disabled” property to this html element when show is false.</p><p><strong>Event Binding, and String Interpolation</strong></p><p>In a React JSX component you can fire events like you would an html component. For example you can use an onClick event inline to fire a function from that component.</p><p>Angular allows you to do the same with Event binding with a different syntax.</p><p>&lt;button (click)=”fireFunction()”&gt;Click Me&lt;/button&gt;</p><p>On the click of this component the “fireFunction” function will fire.</p><p>You can also access a variable from your typescript file with string interpolation:</p><p>&lt;p&gt;{{ variable }}&lt;/p&gt;</p><p>This will look similar to what you’ve done in React.</p><p><strong>Two Way Data Binding</strong></p><p>Two way data binding allows you to not only have access to a variable within your component but also change it from the html. For example you may want to change a variable from an input.</p><p>In your component you can have a variable:</p><p>testVariable = “Testing 123”;</p><p>And in your html you can use ngModel:</p><p>&lt;input type=”text” ([ngModel])=”testVariable”&gt;&lt;/input&gt;</p><p>This will fill the input with the string “testVariable” and when changed it will be reflected in the actual variable.</p><p>(In order to do this you need to use the FormsModule in your app.</p><p><strong>Directives</strong></p><p>Directives are a key building block in Angular. All they are is instructions in the DOM.</p><p>We can build our own directives or use some built in Angular Directives.</p><p>For example we can use *ngIF to only render a component based on a condition.</p><p>&lt;p *ngIf=”letItRender === true”&gt;Please Render Me&lt;/p&gt;</p><p><strong>CONCLUSION</strong></p><p>There is a lot more to learn about Angular but these are some of the basics that have hopefully clarified how different Angular is from React. In the end they are just different ways of interacting with the DOM through components.</p><p>Learning Angular is a great way to quickly learn Typescript and to learn a new way of building apps. Learning has helped me put in perspective how both frameworks work behind the scenes. It’s different syntax etc. but it is using classes to do essentially the same thing. Manipulate the DOM with functions and variables.</p><p>Again here is the Udemy course I am taking, I would recommend doing the same if you have any interest!</p><p><a href="https://www.udemy.com/course/the-complete-guide-to-angular-2">https://www.udemy.com/course/the-complete-guide-to-angular-2</a></p><p>Please follow me on Twitter @thedrewprint and find me on LinkedIn at Andrew Richards. Thanks for reading!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b6c0632bdf58" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Use oEmbed to Embed Tweets and More In Your React App]]></title>
            <link>https://arichards4814.medium.com/use-oembed-to-embed-tweets-and-more-in-your-react-app-4eaf5355b026?source=rss-17fad5050a67------2</link>
            <guid isPermaLink="false">https://medium.com/p/4eaf5355b026</guid>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[css]]></category>
            <category><![CDATA[json]]></category>
            <category><![CDATA[oembed]]></category>
            <category><![CDATA[html]]></category>
            <dc:creator><![CDATA[Andrew Richards]]></dc:creator>
            <pubDate>Sat, 24 Oct 2020 20:28:29 GMT</pubDate>
            <atom:updated>2020-10-24T20:28:29.955Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*_-_3-wIj62u3Rw8BGCavFw.jpeg" /></figure><p>Have you ever wanted to embed Tweets, TikToks, Spotify songs, videos or pretty much anything else in your React sites? Or are you a developer that would like others to embed rich content from your website?</p><p>One way that is widely used on the internet is called oEmbed.</p><p><a href="https://oembed.com/">https://oembed.com/</a></p><p>oEmbed.com describes oEmbed as “ a format for allowing an embedded representation of a URL on third party sites.” It goes on to say, “The simple API allows a website to display embedded content (such as photos or videos) when a user posts a link to that resource, without having to parse the resource directly.”</p><p>In other words oEmbed is a standardized way of requesting the information necessary to embed something in your app. That something could be Tweets, a Spotify song, a Youtube video, or many other things.</p><p>In order to get the information you need from an oEmbed endpoint, all you have to do is request it.</p><p>First find the url you need to request to get back this info. I Googled Twitter oEmbed and it gave me a link to the documentation.</p><p>I made a request in Postman with the sample url provided to see what comes back:</p><pre>https://publish.twitter.com/oembed?url=https://twitter.com/i/moments/650667182356082688</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*glZEnDTIyW7m5VgbaS-gOg.png" /></figure><p>As you can see the URL gives us a few things. Most notably, the json that comes back has an attribute called ‘html’ with the html we need.</p><p>This is everything you need to include in your app to show a tweet. It even comes with the style tag that will make sure it looks like it should with Twitter’s styles.</p><p>And that’s really it. There’s not much more you need to know. Take the HTML and put it somewhere in your app and you are good to go.</p><p>Thanks for reading!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4eaf5355b026" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Beginners Look at AWS]]></title>
            <link>https://arichards4814.medium.com/a-beginners-look-at-aws-33263a081b82?source=rss-17fad5050a67------2</link>
            <guid isPermaLink="false">https://medium.com/p/33263a081b82</guid>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[aws]]></category>
            <category><![CDATA[coding]]></category>
            <dc:creator><![CDATA[Andrew Richards]]></dc:creator>
            <pubDate>Tue, 13 Oct 2020 20:47:39 GMT</pubDate>
            <atom:updated>2020-10-13T20:47:39.396Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tFl-8wQUENETYLjX5mYWuA.png" /></figure><p>Maybe you are a budding software developer and you’ve been hearing about AWS and you are wondering it is exactly. You’ve heard a bunch of acronyms like S3 and EC2 and are afraid of how complicated it seems.</p><p>Well this article is to clear up some basics about AWS and the services that it includes.</p><p>AWS stands for Amazon Web Services. They key phrase being “Web Services”. AWS is not one thing, it is a suite of services that help companies and web developers do anything ranging from storing files on the cloud with S3, to running a computer instance on the cloud with EC2, easily deploying apps with Elastic Beanstalk, and even purchasing domains Route 53.</p><p>These are only a few of the many AWS services. I will detail some of the most basic services you should know in AWS.</p><h3>EC2</h3><p>EC2 stands for Elastic Cloud Computing. It is a product that revolutionized computing by reducing the time required to obtain and boot new server instances from hours / days to minutes.</p><p>Imagine a genetics company that needs to crunch a ton of data. Instead of having to provision their own servers, they can with a few clicks of a button reserve computing power over the internet.</p><p>The Elastic part comes when you think about how that same genetics company might only want a few hours of server time a week to crunch their computations. It allows them to pay for only what they use. Which is why EC2 changed the economics of computing.</p><h3>EBS</h3><p>EBS stands for Elastic Block Storage. This is a service that allows you to attach volumes to EC2 instances. Essentially it is a hard drive in the cloud that you can attach to the instance such as an SSD.</p><h3>RDS</h3><p>RDS stands for Relational Database Service. Perhaps this one might make a bit more sense to you right off the bat if you’ve used a database like Postgres or MySQL.</p><p>RDS allows you to create a database using MySQL, PostgreSQL, Oracle, Aurora, MariaDB or Amazon’s own DynamoDB.</p><h3>DynamoDB</h3><p>DynamoDB is Amazon’s no SQL database service.</p><h3>S3</h3><p>S3 stands for Simple Secure Storage, and you can think of it like dropbox with a bit more functionality. You can use S3 to store files but you can also use it to store the files for your website and connect it with Amazon’s DNS Route 53.</p><h3>Route 53</h3><p>Route 53 is Amazon’s DNS aka Domain Name Service. Think of it exactly like Amazon’s version of Godaddy.</p><p>These are a few of the most common technologies you will see in AWS. Hopefully this clears up some confusion you may have had about what AWS is and what it’s services are. But this is by no means a comprehensive list. AWS has many services that would take an entire course to go over.</p><p>I suggest this Udemy course if you are hoping to take an AWS certification test in the future:</p><p><a href="https://www.udemy.com/course/aws-certified-developer-associate">AWS Certified Developer: AWS Developers Certification Training</a></p><p>Thank you for reading. Please follow me on Twitter @thedrewprint and find me on LinkedIn — Andrew M Richards.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=33263a081b82" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Learn SCSS (Sass) Part 2]]></title>
            <link>https://arichards4814.medium.com/learn-scss-sass-part-2-740225f698db?source=rss-17fad5050a67------2</link>
            <guid isPermaLink="false">https://medium.com/p/740225f698db</guid>
            <dc:creator><![CDATA[Andrew Richards]]></dc:creator>
            <pubDate>Fri, 09 Oct 2020 19:01:06 GMT</pubDate>
            <atom:updated>2020-10-09T19:01:06.104Z</atom:updated>
            <content:encoded><![CDATA[<p>In part 1 I highlighted some of the basic features of Sass. Check out the first part here:</p><p><a href="https://medium.com/swlh/learn-the-scss-sass-basics-in-5-minutes-73002653b443">Learn the SCSS (Sass) Basics in 5 Minutes</a></p><p>In this article I will go over the remaining features that make Sass great. Those are Extend/Inheritance &amp; Operators.</p><h3><strong>Extend/Inheritance</strong></h3><p>Sass has a few ways of making it so we don’t have to repeat ourselves with our code. One of the ways of doing this is to create a placeholder that can be extended.</p><p>You can use the “%” symbol to create a class that you only want to extend.</p><p>Extending means giving a css class the attributes of the extended class. This way we don’t have to write the same code over and over.</p><p>Here is a code snippet from the docs:</p><pre><em>/* This CSS will print because %message-shared is extended. */<br></em>%message-shared<br>  <strong>border</strong>: 1px solid #ccc<br>  <strong>padding</strong>: 10px<br>  <strong>color</strong>: #333<br><br><br><em>// This CSS won&#39;t print because %equal-heights is never extended.<br></em>%equal-heights<br>  <strong>display</strong>: flex<br>  <strong>flex-wrap</strong>: wrap<br><br><br><strong>.message</strong><br>  <strong>@extend</strong> %message-shared<br><br><br><strong>.success</strong><br>  <strong>@extend</strong> %message-shared<br>  <strong>border-color</strong>: green<br><br><br><strong>.error</strong><br>  <strong>@extend</strong> %message-shared<br>  <strong>border-color</strong>: red<br><br><br><strong>.warning</strong><br>  <strong>@extend</strong> %message-shared<br>  <strong>border-color</strong>: yellow</pre><p>To extend, as it is shown, all you have to do is use “@extend” with the “%” symbol and class name. This will ensure that the success, error, and warning class all have the attributes from the “message-shared” class.</p><h3>Operators</h3><p>Prior to Sass, you couldn’t perform any math in a CSS file. Operators in Sass change this by giving you the ability to do math with your attributes.</p><pre><strong>.container</strong> {<br>  <strong>width</strong>: 100%;<br>}<br><br>article<strong>[</strong>role<strong>=</strong>&quot;main&quot;<strong>]</strong> {<br>  <strong>float</strong>: left;<br>  <strong>width</strong>: 600px <strong>/</strong> 960px <strong>*</strong> 100%;<br>}<br><br>aside<strong>[</strong>role<strong>=</strong>&quot;complementary&quot;<strong>]</strong> {<br>  <strong>float</strong>: right;<br>  <strong>width</strong>: 300px <strong>/</strong> 960px <strong>*</strong> 100%;<br>}</pre><p>This is a great feature and saves you from writing Javascript to take care of things like this.</p><h3>Conclusion</h3><p>And that’s really it. Stay out of trouble my friends.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=740225f698db" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Learn the SCSS (Sass) Basics in 5 Minutes]]></title>
            <link>https://medium.com/swlh/learn-the-scss-sass-basics-in-5-minutes-73002653b443?source=rss-17fad5050a67------2</link>
            <guid isPermaLink="false">https://medium.com/p/73002653b443</guid>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[scss]]></category>
            <category><![CDATA[css3]]></category>
            <category><![CDATA[css]]></category>
            <category><![CDATA[sass]]></category>
            <dc:creator><![CDATA[Andrew Richards]]></dc:creator>
            <pubDate>Fri, 02 Oct 2020 17:31:59 GMT</pubDate>
            <atom:updated>2020-10-04T20:16:37.707Z</atom:updated>
            <content:encoded><![CDATA[<p>If you’re reading this that probably means you are familiar with CSS and have heard of SCSS or Sass but haven’t yet taken a dive.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/259/1*G9ARF4JTUgh3U3yxo4Vc0Q.png" /></figure><p>Well good news. Sass is going to make your life much better. You will finally be able to DRY (Do not Repeat Yourself) your code out in CSS.</p><p>Basically, CSS is missing some great features that would help turn it into an easier to use and read. Sass adds Variables, Nesting, Partials, Mixins, Extend/Inheritance, and Operators. Some of these are things that programming languages tend to have. If you don’t know what some of them are, that’s okay. We’re going to define each of these and show you how they can be used.</p><p>A Sass can be compiled into a CSS files making it writing many files easy.</p><p>If you are using create react app you are in luck because the processing part is already taken care of for you. If not you can use Grunt or Gulp to process your Sass/SCSS files into CSS. If you are not yet in an environment that will do this I suggest setting that up first. This article is to talk about the features of Sass and how to use them.</p><p>What’s the difference between Sass and SCSS. Well, both of them can be compiled into CSS. The real difference is in syntax. SCSS uses mostly the same syntax of CSS while Sass takes away curly braces and semi-colons. In both you can use the additional features that Sass provides.</p><p>The following shows the syntactic differences.</p><pre>SCSS SYNTAX</pre><pre>$font-stack:    Helvetica<strong>,</strong> sans-serif;<br>$primary-color: #333;<br><br>body {<br>  <strong>font</strong>: 100% $font-stack;<br>  <strong>color</strong>: $primary-color;<br>}</pre><pre>SASS SYNTAX</pre><pre>$font-stack:    Helvetica<strong>,</strong> sans-serif<br>$primary-color: #333<br><br>body<br>  <strong>font</strong>: 100% $font-stack<br>  <strong>color</strong>: $primary-color</pre><h3>Variables</h3><p>If you use any coding language you know what a variable is. So I won’t go too in depth with this. Essentially Sass finally allows you to define variables so that if you decide to change say a color you don’t have to change it 1000 times. You can just change your primary color variable in one place and you’re good to go</p><pre>$primary-color: #333; </pre><pre>body {<br>  background-color: $primary-color;<br>}</pre><pre>.text {<br>  color: $primary-color;<br>}</pre><h3>Nesting</h3><p>In CSS you cannot nest. Let’s take a look at these two selectors. There is nothing terribly wrong with this. But we are repeating code.</p><pre>nav ul {<br>  <strong>margin</strong>: 0;<br>  <strong>padding</strong>: 0;<br>  <strong>list-style</strong>: none;<br>}<br>nav li {<br>  <strong>display</strong>: inline-block;<br>}</pre><p>We can nest in Sass like so. This looks much cleaner.</p><pre>nav {<br>  ul {<br>    <strong>margin</strong>: 0;<br>    <strong>padding</strong>: 0;<br>    <strong>list-style</strong>: none;<br>  }<br><br>  li { <strong>display</strong>: inline-block; }<br>}</pre><h3>Partials</h3><p>Partials are Sass or Scss files that have an underscore in the front of the filename. For example. “_test.scss”. What does this do? It denote’s that this particular file should not be turned into CSS when the time comes. These files will contain snippets of CSS that can then be imported by other SCSS files.</p><p>This is a great way to modularize your CSS and keep things easier to maintain. For example you may want to store variables that will be used in multiple files. This is the way to do it.</p><h3>Mixins</h3><p>Mixins are interesting because they add a coding language-like feature. You will immediately recognize what I mean upon seeing the code:</p><pre><strong>@mixin</strong> <strong>transform</strong>($property) {<br>  -webkit-transform: $property;<br>  -ms-transform: $property;<br>  <strong>transform</strong>: $property;<br>}<br><strong>.box</strong> { <strong>@include</strong> <strong>transform</strong>(<strong>rotate</strong>(30deg)); }</pre><p>Instead of typing out “rotate(30deg)” 3 times. You can create what essentially feels like a function and sort of acts like one. You pass in the property to the transform() mixin.</p><p>To use this piece of code, you must use the “@include” keyword.</p><p>More info if you click <a href="https://sass-lang.com/guide">here</a>.</p><h3>Extend/Inheritance &amp; Operators</h3><p>I will talk about these in Part 2 as they are a bit more involved. These are some of the most useful features in SCSS so please follow and I will be posting this blog next week!</p><p>Please follow me on Twitter @thedrewprint and find me on LinkedIn at Andrew Richards. Thanks for reading!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=73002653b443" width="1" height="1" alt=""><hr><p><a href="https://medium.com/swlh/learn-the-scss-sass-basics-in-5-minutes-73002653b443">Learn the SCSS (Sass) Basics in 5 Minutes</a> was originally published in <a href="https://medium.com/swlh">The Startup</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How We Raised Our Kickstarter Goal in Less Than 24 Hours (Spending $0)]]></title>
            <link>https://arichards4814.medium.com/how-we-raised-our-kickstarter-goal-in-less-than-24-hours-spending-0-4d59a284a77?source=rss-17fad5050a67------2</link>
            <guid isPermaLink="false">https://medium.com/p/4d59a284a77</guid>
            <category><![CDATA[game-design]]></category>
            <category><![CDATA[board-games]]></category>
            <category><![CDATA[design-process]]></category>
            <category><![CDATA[kickstarter]]></category>
            <category><![CDATA[marketing]]></category>
            <dc:creator><![CDATA[Andrew Richards]]></dc:creator>
            <pubDate>Tue, 22 Sep 2020 15:01:24 GMT</pubDate>
            <atom:updated>2021-07-03T18:29:54.605Z</atom:updated>
            <content:encoded><![CDATA[<h3>How We Raised Our Kickstarter Goal in Less Than 24 Hours Without Spending a Dime</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*p8y56idkAZPxWXZNgX9vsA.jpeg" /><figcaption>Arms &amp; Influence is live on Kickstarter now!</figcaption></figure><p>We launched <a href="https://www.kickstarter.com/projects/richardsbroscreative/arms-and-influence">Arms &amp; Influence</a> on September 17th, 2020. Since then we’ve shipped the game and people all around the world have played it. We’ve been grateful to have such an amazing reception to game. But perhaps the most surprising thing about our campaign was the fact that we did not spend a dime on pre-campaign marketing.</p><p>So here’s exactly what we did that resulted in us hitting our $7,500 goal in less than 24 hours.</p><h3>Used Our Existing Network</h3><p>Many people don’t realize that over the course of their lives they’ve built up a network of people that want to see them succeed. Every positive connection you’ve made over the course of your life is a potential person that may want to be a part of your success. Use that! It has proven to be incredibly valuable to us. As long as you are creating something that you believe can bring value to peoples lives they will want to help you.</p><h3><strong>Built a Network</strong></h3><p>The plan we created was to get people first to our Instagram and then to get people who are more invested into our newsletter. So we took the following steps to do that.</p><p>1. Created an Instagram account and built it up with content on a weekly basis. (Targeting people with specific interests and using hashtags that go with our brand)</p><p>2. Used posts and Instagram stories to drive people to sign up for our newsletter on our website where we sent out weekly updates about how the game was coming along.</p><p>3. Treated the newsletter subscribers like the super fans that they were by showing them content before anyone else.</p><p>4. Told everyone we possibly knew and got them to follow our Instagram or sign up for our newsletter.</p><p>The bulk of our initial customers were from our existing network that we’ve just built up from daily life. From their they tell their friends and those are the strongest types of network connections. When a friend recommends something it’s a strong indication to buy, especially when it’s like oh this is my friend of a friends game.</p><p>So think about where you already have a strong network and tap into that first.</p><h3>Used These Apps</h3><p>Here is what we used from what we gave most attention to what we gave least attention:</p><p><strong>Instagram</strong></p><p>We built up a following of about 800 people. Nothing crazy but just enough to keep our existing network updated and bring potential customers into the fold.</p><p><strong>Squarespace (Website with integration to Mail Chimp)</strong></p><p>Before the campaign our website was mainly to drive interest to our Kickstarter page as well as have them sign up for our newsletter.</p><p><strong>Facebook Page</strong></p><p>An easy way to get your current network involved is to create a Facebook page. We had about 200 people following the page.</p><p><strong>Mail Chimp (Newsletter)</strong></p><p>We built up a newsletter of about 250 potential customers. We used monthly updates to keep people updated and engaged and drive them to the Kickstarter page.</p><p><strong>Kickstarter Page</strong></p><p>Prior to launching your Kickstarter you can create a preview page where potential backers could sign up to get a notification when your page went live.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tPGg2gBtQUVr5TZeXF-0qg.png" /><figcaption>Our Customer Acquisition Funnel</figcaption></figure><h3>We Did It… With One Thing</h3><p>Our existing network. Now during the campaign (after we had eclipsed our goal) we did end up spending money in places like<a href="https://boardgamegeek.com/"> Board Game Geek</a>. But that turned out to not have as big effect as we had hoped.</p><p>I hope this helped a bit and if you have the money for advertising go for it. But this is how we did it on a shoe-string budget.</p><p><a href="http://armsandinfluence.com/">Please check out Arms &amp; Influence — You can find me on Twitter or Instagram @thedrewprint</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4d59a284a77" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Sets in Javascript]]></title>
            <link>https://arichards4814.medium.com/sets-in-javascript-cb7e13551f4?source=rss-17fad5050a67------2</link>
            <guid isPermaLink="false">https://medium.com/p/cb7e13551f4</guid>
            <category><![CDATA[software-engineering]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[javascript-tips]]></category>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[javascript-development]]></category>
            <dc:creator><![CDATA[Andrew Richards]]></dc:creator>
            <pubDate>Wed, 09 Sep 2020 18:42:28 GMT</pubDate>
            <atom:updated>2020-09-09T18:42:28.947Z</atom:updated>
            <content:encoded><![CDATA[<p>Set’s are a new type of Javascript object that was introduced in ES6 to take care of a multitude of issues that could not be taken care of with a normal Javascript or Array. The primary focus being only storing unique values.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/821/1*23KstPpkqpjXxAjqCpD8Zw.jpeg" /><figcaption>Get it, because you set a table…</figcaption></figure><p>Unlike and Object or Map, Sets function a bit more like arrays. For example, there are no key value pairs in a set.</p><p>A great use case for a Set is when you want to create an array with only unique values. You could do this with an array but you have to check every single value you add to the array against itself, which will be costly. Sets on the other hand have this functionality built in.</p><h3>Great things about Sets:</h3><ul><li>A Set is not a good thing to use when you can have multiple of the same value.</li><li>Sets can also store more than just values. They can store objects or arrays as well.</li></ul><p>Let’s create a set and see some of the methods we can use with it.</p><pre>let one = new Set()<br>let two = new Set(&quot;Hello&quot;)</pre><pre>console.log(two)<br>//Set { &quot;H&quot;, &quot;e&quot;, &quot;l&quot;, &quot;o&quot;})</pre><p>Interestingly, when creating a new set and passing a string in on initialization, it will break it up into each character. Which is great if you’re trying to find every unique letter in a string.</p><p>You can also pass an array in and it will take each value separately.</p><h3><strong>.add()</strong></h3><p>Add will simply add a value to the set. If the value already exists in the set, it will not get added.</p><pre>one.add(&quot;Hello&quot;)<br></pre><pre>console.log(one)<br>//Set {&quot;Hello&quot;}</pre><h3>.has()</h3><p>Returns a boolean if the set has the value.</p><pre>one.has(&quot;Hello&quot;)<br>//true</pre><h3>.size()</h3><p>Returns the size of the set.</p><pre>one.size()<br>//1</pre><h3>.forEach()</h3><p>You can iterate through the set in the order of entry.</p><pre>one.add(&quot;Hi&quot;)<br>one.add(&quot;Hello&quot;)<br>one.add(&quot;Ham Sandwich&quot;)</pre><pre>one.forEach(value =&gt; {<br>    console.log(value)<br>})</pre><pre>//&quot;Hi&quot;<br>//&quot;Hello&quot;<br>//&quot;Ham Sandwich&quot;</pre><h3>.delete()</h3><p>You can delete specific values in the Set by passing them as a parameter in the delete method.</p><pre>one.delete(&quot;Hi&quot;)</pre><pre>// removes &quot;Hi&quot; from the set.</pre><h3>.clear()</h3><p>You can entirely clear out a set with one simple method.</p><pre>one.clear()</pre><pre>// clears out the entire set<br>// Set {}</pre><p>That just about does it. If you would like to dig a bit deeper into sets, click on the link below.</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set">Set - JavaScript | MDN</a></p><p>Thank you for reading. Please follow me on twitter @thedrewprint and find me on LinkedIn — Andrew Richards</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cb7e13551f4" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Maps in Javascript]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/swlh/maps-in-javascript-33508a5cb6e7?source=rss-17fad5050a67------2"><img src="https://cdn-images-1.medium.com/max/1000/1*STEzMoOQ7xBQAbkzxhBm0w.jpeg" width="1000"></a></p><p class="medium-feed-snippet">ES6 introduced new data structures to take care of some problems that the language did not take care of.</p><p class="medium-feed-link"><a href="https://medium.com/swlh/maps-in-javascript-33508a5cb6e7?source=rss-17fad5050a67------2">Continue reading on The Startup »</a></p></div>]]></description>
            <link>https://medium.com/swlh/maps-in-javascript-33508a5cb6e7?source=rss-17fad5050a67------2</link>
            <guid isPermaLink="false">https://medium.com/p/33508a5cb6e7</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[javascript-tips]]></category>
            <category><![CDATA[javascript-development]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[es6]]></category>
            <dc:creator><![CDATA[Andrew Richards]]></dc:creator>
            <pubDate>Thu, 03 Sep 2020 14:57:53 GMT</pubDate>
            <atom:updated>2020-09-09T17:51:10.040Z</atom:updated>
        </item>
    </channel>
</rss>