<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Jake Lacey</title>
    <description>The latest articles on Forem by Jake Lacey (@jake0lacey).</description>
    <link>https://forem.com/jake0lacey</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%2F124086%2F6ca3dc7e-3ec6-4dcb-ab9c-934dce9ae5b0.jpg</url>
      <title>Forem: Jake Lacey</title>
      <link>https://forem.com/jake0lacey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jake0lacey"/>
    <language>en</language>
    <item>
      <title>Building your first Deno module</title>
      <dc:creator>Jake Lacey</dc:creator>
      <pubDate>Sat, 09 May 2020 08:17:19 +0000</pubDate>
      <link>https://forem.com/jake0lacey/building-your-first-deno-module-1jm8</link>
      <guid>https://forem.com/jake0lacey/building-your-first-deno-module-1jm8</guid>
      <description>&lt;p&gt;First let's understand how modules are loaded in Deno.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;aModule&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://some.com/thing/mod.ts&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;We can understand a couple of things from this line&lt;br&gt;
1) The modules are loaded in by URLs, so we need to host our modules somewhere?&lt;br&gt;
2) The modules are loaded in directly from their Typescript code, so we don't need any complication step.&lt;/p&gt;
&lt;h1&gt;
  
  
  So where do we host our modules?
&lt;/h1&gt;

&lt;p&gt;There are a couple of options,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can either host them yourself, like push them to S3 or something like that.&lt;/li&gt;
&lt;li&gt;You can raise a PR for them to be added to the Deno standard library.&lt;/li&gt;
&lt;li&gt;If you are using Github to host your code then you can use their &lt;code&gt;raw.githubusercontent.com&lt;/code&gt; service to access the raw code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I think I prefer the third option of using Github and I'll get onto the reason why later down.&lt;/p&gt;
&lt;h1&gt;
  
  
  So how do we build a module?
&lt;/h1&gt;

&lt;p&gt;I'm not going to go into a lot of detail of testing and all that stuff all I want to do is demonstrate how to build a basic module.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 1: Create a mod.ts
&lt;/h3&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// inside mod.ts&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;hello&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;string&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;world&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`Hello &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;hello&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Step 2: Create a repo on Github
&lt;/h3&gt;
&lt;h3&gt;
  
  
  Step 3: Push the changes to the repo
&lt;/h3&gt;
&lt;h1&gt;
  
  
  How do we use the module?
&lt;/h1&gt;

&lt;p&gt;Well I called my repo &lt;a href="https://github.com/jakelacey2012/deno-hello-world"&gt;https://github.com/jakelacey2012/deno-hello-world&lt;/a&gt;, so I'd import it something like this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;hello&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://raw.githubusercontent.com/jakelacey2012/deno-hello-world/master/mod.ts&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="nx"&gt;hello&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;you&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Thats it you're ready to use the package :woop: :woop:&lt;/p&gt;

&lt;h1&gt;
  
  
  So why do I prefer this option?
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;I don't see a package like this needing to be part of the standard library.&lt;/li&gt;
&lt;li&gt;I can easily control the version of the package by swapping out master to a release or another branch.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Thanks for reading
&lt;/h3&gt;

&lt;p&gt;If you're having any issues with this, I'd suggest reading up on Deno. That being said feel free to ask questions in this repo &lt;a href="https://github.com/jakelacey2012/deno-hello-world"&gt;https://github.com/jakelacey2012/deno-hello-world&lt;/a&gt;&lt;/p&gt;

</description>
      <category>deno</category>
      <category>typescript</category>
    </item>
    <item>
      <title>vscode package recommendations</title>
      <dc:creator>Jake Lacey</dc:creator>
      <pubDate>Mon, 13 Jan 2020 18:15:28 +0000</pubDate>
      <link>https://forem.com/jake0lacey/vscode-package-recommendations-15ep</link>
      <guid>https://forem.com/jake0lacey/vscode-package-recommendations-15ep</guid>
      <description>&lt;p&gt;I love using extensions in vscode. However one of the things that worries me is what if another engineer on the project doesn't have this installed. How do they discover the package and have the option to install it if they want.&lt;/p&gt;

&lt;p&gt;I don't have to worry about this anymore as vscode allows you to create a &lt;code&gt;.extensions&lt;/code&gt; file in the &lt;code&gt;./.vscode&lt;/code&gt; directory, within your project. Which can look something like this....&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"recommendations"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"the-name.of-the-package"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;which&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;can&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;be&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;found&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;by&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;looking&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;to&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;title&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;on&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;packages&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;page.....&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now when someone does a search for &lt;code&gt;@recommendations&lt;/code&gt;, these packages which come up.&lt;/p&gt;

&lt;p&gt;This also has the added benefit where I can find an extension for a specific project that I'm working on from time to time, document it in this file and then install it in the future when I come back to the project.&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>documentation</category>
    </item>
    <item>
      <title>Securing your docker images with Github actions for FREE!</title>
      <dc:creator>Jake Lacey</dc:creator>
      <pubDate>Sun, 03 Nov 2019 20:18:34 +0000</pubDate>
      <link>https://forem.com/jake0lacey/securing-your-docker-images-with-github-actions-for-free-3o4m</link>
      <guid>https://forem.com/jake0lacey/securing-your-docker-images-with-github-actions-for-free-3o4m</guid>
      <description>&lt;p&gt;Securing you containers is massively important and the consequences of not &lt;br&gt;
doing so will put your customers at risk. However it is really difficult to do with out paying top dollar or having an experienced DevOps team to constantly monitor your images and apply patches.&lt;/p&gt;

&lt;p&gt;As developers we want to build our products and build them fast, so if we can automate this process so that we're only notified when they're issues then great!&lt;/p&gt;

&lt;p&gt;So today we're going to secure our images using Github actions and &lt;a href="https://phonito.io"&gt;Phonito.io&lt;/a&gt; for free!&lt;/p&gt;

&lt;h3&gt;
  
  
  What are Github actions?
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub. Make code reviews, branch management, and issue triaging work the way you want.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Pretty awesome huh! and you don't have to manage infrastructure like that nasty Jenkins!&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Phonito.io
&lt;/h3&gt;

&lt;p&gt;Phonito.io is a vulnerability scanning tool for the everyday developer, it scans numerous databases and informs you of the latest vulnerabilities and for CI integrations its FREE to use!&lt;/p&gt;

&lt;p&gt;Even if you've never built a Github action before this is a great place to start&lt;/p&gt;

&lt;h2&gt;
  
  
  So let's get started
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Go to the "Actions" tab of a Github repo.&lt;/li&gt;
&lt;li&gt;Either add a new workflow by copying the yaml below or add the &lt;code&gt;Scan with Phonito Security&lt;/code&gt; step after your Docker build from this example workflow.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build &amp;amp; Scan Docker Image&lt;/span&gt;
&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v1&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Set tag var&lt;/span&gt;
        &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;vars&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;echo ::set-output name=docker_tag::$(echo ${GITHUB_REF} | cut -d'/' -f3)-${GITHUB_SHA}&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build the Docker image&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;docker build . --file Dockerfile --tag myapp:$@{{ steps.vars.outputs.docker_tag }}&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Scan with Phonito Security&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;phonito/phonito-scanner-action@master&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;myapp:$@{{ steps.vars.outputs.docker_tag }}&lt;/span&gt;
          &lt;span class="na"&gt;phonito-token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.PHONITO_TOKEN }}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Next thing we need to do is get our API key from Phonito.io, 

&lt;ul&gt;
&lt;li&gt;Register at &lt;a href="https://phonito.io"&gt;Phonito.io&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;And get your API key 🔑 &lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Km4AAjiG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mz4fbd6kov0emun2x493.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Km4AAjiG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/mz4fbd6kov0emun2x493.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add that API as a secret with the name PHONITO_TOKEN to your repo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  And thats it 🎉
&lt;/h3&gt;

&lt;p&gt;Next time you push to your repo this scanner will run and check for any vulnerabilities that you have. Its as simple as that and FREE so there is no excuse to release software which is insecure!! :)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0iEYzeUz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gq4vqni45mcwop43nuo7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0iEYzeUz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/gq4vqni45mcwop43nuo7.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're stuck look at this &lt;a href="https://github.com/phonito/phonito-github-actions-test"&gt;example repo&lt;/a&gt; or raise an issue &lt;a href="https://github.com/phonito/phonito-scanner-action"&gt;here&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>security</category>
      <category>github</category>
      <category>devops</category>
    </item>
    <item>
      <title>Releasing a project for once in my life!</title>
      <dc:creator>Jake Lacey</dc:creator>
      <pubDate>Sun, 06 Jan 2019 11:46:23 +0000</pubDate>
      <link>https://forem.com/jake0lacey/releasing-a-project-for-once-in-my-life-2kn8</link>
      <guid>https://forem.com/jake0lacey/releasing-a-project-for-once-in-my-life-2kn8</guid>
      <description>&lt;h3&gt;
  
  
  Why is this so important to me?
&lt;/h3&gt;

&lt;p&gt;I've been developing for around 7 years and at the start of my career I would have very simple ideas, unoriginal ideas like a blog engine or an online store. I also had no idea how to deploy an app "correctly". So in my naivety I was able to build something relatively quickly and release it to the world.&lt;/p&gt;

&lt;p&gt;Self-aware of this so one of my initial goals in my career was to understand the fundamentals and learn how to do things "correctly". &lt;/p&gt;

&lt;p&gt;This had a downside... I just stopped releasing things! I had ideas, almost one every month but for one reason or another the idea would lose momentum and die. Honestly my Github account looks like the church scene in 28 Days Later. The amount of things I felt I needed to do to make it robust enough would just take to long so to be blunt with myself I gave up.&lt;/p&gt;




&lt;p&gt;So before the new year was up I made a promise to release a project I was working on during the holidays! &lt;a href="https://twitter.com/Jake0Lacey/status/1079126414610309120"&gt;https://twitter.com/Jake0Lacey/status/1079126414610309120&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;I would like to share my experience and what I did that made this endeavour different and hopefully help some other people.&lt;/p&gt;

&lt;p&gt;I'm going to split this the next bit into a couple of different sections.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I was building this for me&lt;/li&gt;
&lt;li&gt;Design and scope&lt;/li&gt;
&lt;li&gt;The technical approach&lt;/li&gt;
&lt;li&gt;Accountability&lt;/li&gt;
&lt;li&gt;Done it better than perfect&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  I was building this for me
&lt;/h3&gt;

&lt;p&gt;This was a big motivator, previous projects were interesting technically however I was not the target audience, so they would die as I had no one to play with them. It really does help if your making the app for yourself, it pushes you to find a way to use it. &lt;/p&gt;

&lt;h3&gt;
  
  
  Design and scope
&lt;/h3&gt;

&lt;p&gt;Because I knew I wanted to use it I needed to find the MVP, what was a good enough idea so I could start using it on the first day! &lt;/p&gt;

&lt;p&gt;What I did was sit down and design how I wanted it to look and then stripped back the features so I only had one feature to worry about it had to be a good base to build and iterate everything else on.&lt;/p&gt;

&lt;p&gt;This allowed me to focus on what I had to build, nothing more, nothing less.&lt;/p&gt;

&lt;h3&gt;
  
  
  The technical approach
&lt;/h3&gt;

&lt;p&gt;My approach was a very aggressive one and I don't advice this if your practising a technique or skill but if your wanting to get something released quickly then go for it.&lt;/p&gt;

&lt;p&gt;I'd like to expand on what I mean by aggressive, what I mean is that technical dept, duplication, poor performance &amp;amp; no unit/integration tests are welcome. Why because this kinda stuff only matters if the idea is successful and people are using it, then I can shift my focus.&lt;/p&gt;

&lt;p&gt;Also this doesn't mean I just assumed things worked, I did test things hahah.&lt;/p&gt;

&lt;h3&gt;
  
  
  Accountability
&lt;/h3&gt;

&lt;p&gt;Previous ideas I would write on a notebook when I wanted to release something and would have dates on when I would finish x, y and z features. However I've found this really means nothing because the dates can be easily moved around.&lt;/p&gt;

&lt;p&gt;So to make sure that you have accountability I would say that you share it with someone, I shared mine with Twitter and go some positive support which made me feel determined to get the work done!&lt;/p&gt;

&lt;h3&gt;
  
  
  Done is better than perfect
&lt;/h3&gt;

&lt;p&gt;I would love to release something that looks the way I imagined it or works 100% of the time, that doesn't have performance issues, that has 100% test coverage, that has CI/CD, that autoscaled and you get the point. &lt;/p&gt;

&lt;p&gt;Perfection is a direction not a destination.&lt;/p&gt;

&lt;p&gt;Being able to iterate on an idea that has already been released feels a lot better than slugging away for a couple of months on an idea and constantly asking yourself if its ready yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Anyway...
&lt;/h2&gt;

&lt;p&gt;I hope this can help some people, it might be a little bit rambley. Also if you would like to know what I'm working on please do message me on Twitter! Its a project where you track things...&lt;/p&gt;

&lt;p&gt;Also I couldn't have done it without &lt;a href="https://twitter.com/PixelDrift"&gt;@pixeldrift&lt;/a&gt;, so thanks!&lt;/p&gt;

&lt;p&gt;Also found this little 💎 on my travels!&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=mT8OCw1ES8M"&gt;https://www.youtube.com/watch?v=mT8OCw1ES8M&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>sideprojects</category>
      <category>career</category>
    </item>
  </channel>
</rss>
