<?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: Pål Nødseth</title>
    <description>The latest articles on DEV Community by Pål Nødseth (@pnodseth).</description>
    <link>https://dev.to/pnodseth</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%2F69808%2F90c6a222-17a8-4349-b361-261dfa7c66b5.jpg</url>
      <title>DEV Community: Pål Nødseth</title>
      <link>https://dev.to/pnodseth</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pnodseth"/>
    <language>en</language>
    <item>
      <title>Containerizing your dev environment</title>
      <dc:creator>Pål Nødseth</dc:creator>
      <pubDate>Tue, 27 Oct 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/pnodseth/containerizing-your-dev-environment-16ma</link>
      <guid>https://dev.to/pnodseth/containerizing-your-dev-environment-16ma</guid>
      <description>&lt;p&gt;A couple of weeks ago I listened to another great episode of the &lt;a href="https://bartjs.io/tag/podcast-episode/" rel="noopener noreferrer"&gt;BartJS podcast&lt;/a&gt; where containerization was discussed, spesifically containerization of your development environment. When visiting their homepage now I couldn't find the episode in their overview, but here's a direct link: &lt;a href="https://pca.st/00mfkulv" rel="noopener noreferrer"&gt;Remote - Containers i VSCode - Droplet 6&lt;/a&gt;. I definately got curious about it, and so the last couple of days I've been trying it out for myself.&lt;/p&gt;

&lt;p&gt;Containerizing your dev environment means you would create an isolated environment for your source code to run in. If you are a team working on the same repo, this would mean you'd all work in the exact same environment. No more "but it works on my machine". Another benefit is that you don’t have to “pollute” your own file system with all kinds of tools and extensions. They are only installed in this isolated environment.&lt;/p&gt;

&lt;p&gt;I borred this description which explains it in an easy to understand way:&lt;/p&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Develop with a consistent, easily reproducible toolchain on the same operating system you deploy to.&lt;/li&gt;
&lt;li&gt;Quickly swap between different, isolated development environments and safely make updates without worrying about impacting your local machine.&lt;/li&gt;
&lt;li&gt;Make it easy for new team members / contributors to get up and running in a consistent development environment.&lt;/li&gt;
&lt;li&gt;Try out new technologies or clone a copy of a code base without impacting your local setup.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Getting up and running in VS Code
&lt;/h2&gt;

&lt;p&gt;So I gave it a go, and I’m impressed at how easy it is to get up and running in VS Code. You install the &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers" rel="noopener noreferrer"&gt;Remote - Containers extension&lt;/a&gt;. Then you create a devcontainer/devcontainer.json file in your repo. This is the file VS Code looks for, which has the settings for which extensions to install etc. Also, you need a Dockerfile containing the “recipe” for the Container creation (which files to copy, what commands to run etc). If you are familiar with Docker you've definately written a Dockerfile before. If not, Docker has a great tutorial &lt;a href="https://www.docker.com/101-tutorial" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you've done this you're basically all set and it's just a couple of clicks to get the container up and running.&lt;/p&gt;

&lt;h2&gt;
  
  
  Will I start containerizing my dev projects?
&lt;/h2&gt;

&lt;p&gt;The short answer - no. I haven't felt too much on any of the pain points this workflow solves - yet. But this might change. I can definately see why this would appeal to some projects and teams. The idea of having a "cleaner" file system is also somewhat appealing. Let's say I would want to try Rust. I download a repo, spin up a container and install Rust in that container - keeping my local filesystem untouched. Mmm!&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>docker</category>
    </item>
    <item>
      <title>Eleventy - initial impressions, and Turbolinks</title>
      <dc:creator>Pål Nødseth</dc:creator>
      <pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/pnodseth/eleventy-initial-impressions-and-turbolinks-3f7a</link>
      <guid>https://dev.to/pnodseth/eleventy-initial-impressions-and-turbolinks-3f7a</guid>
      <description>&lt;p&gt;I’m really glad I settled on using &lt;a href="https://www.11ty.dev/" rel="noopener noreferrer"&gt;Eleventy&lt;/a&gt; for &lt;a href="https://pnodseth.dev" rel="noopener noreferrer"&gt;my blog&lt;/a&gt;. After the initial “finding my way around”, I feel like I’ve got the hang of how Eleventy works.PS: If you don’t know what eleventy is, I write about it in my &lt;a href="https://pnodseth.dev/posts/so-i-decided-to-start-a-blog/" rel="noopener noreferrer"&gt;first blog post&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I like about Eleventy so far:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The ability to mix different input formats for my web pages. So far I’m using &lt;a href="https://mozilla.github.io/nunjucks/" rel="noopener noreferrer"&gt;Nunjucks&lt;/a&gt; templates for web pages that need some logic handling, and markdown files for my blog.&lt;/li&gt;
&lt;li&gt;They way you create pages and content from data. I love that I can simply write a function that returns whatever data I need, which is then fetched on build-time and ready for use in my templates. &lt;a href="https://www.11ty.dev/docs/pages-from-data/" rel="noopener noreferrer"&gt;Check out this example of how to create pages from data&lt;/a&gt;. So far I’m getting data for my bookshelf page and my top Spotify artists page. Feels good not having to fetch that data in the client.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Turbolinks
&lt;/h2&gt;

&lt;p&gt;I've also added &lt;a href="https://github.com/turbolinks/turbolinks" rel="noopener noreferrer"&gt;Turbolinks&lt;/a&gt; to my site. Turbolinks works this way: Whenever you click a link on my site, instead of doing a full page reload Turbolinks hijacks the click event. It then fetches the page and basically swaps out everything inside the body tag. Getting Turbolinks up and running couldn't be easier. You just drop the script tag in your and it works. 🥳 It's a nice and easy way to get the instant page load you get with a SPA.&lt;/p&gt;

&lt;p&gt;I’m looking forward to juice up my blog some more going forward. While I love a minimalistic approach to most web sites, I also want to sprinkle some fancyness here and there.&lt;/p&gt;

</description>
      <category>eleventy</category>
      <category>ssg</category>
      <category>nunjucks</category>
      <category>turbolinks</category>
    </item>
  </channel>
</rss>
