<?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: Ian Fabs</title>
    <description>The latest articles on DEV Community by Ian Fabs (@ianfabs).</description>
    <link>https://dev.to/ianfabs</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%2F109682%2F88c96411-53d0-496f-a143-e5ff7ca462df.jpg</url>
      <title>DEV Community: Ian Fabs</title>
      <link>https://dev.to/ianfabs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ianfabs"/>
    <language>en</language>
    <item>
      <title>Does any body have an interest in watching live coding?</title>
      <dc:creator>Ian Fabs</dc:creator>
      <pubDate>Thu, 02 Apr 2020 23:09:36 +0000</pubDate>
      <link>https://dev.to/ianfabs/does-any-body-have-an-interest-in-watching-live-coding-576o</link>
      <guid>https://dev.to/ianfabs/does-any-body-have-an-interest-in-watching-live-coding-576o</guid>
      <description>&lt;p&gt;If I were to stream myself ( and possibly others) programming the projects I could possibly work on are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An express clone built on deno&lt;/li&gt;
&lt;li&gt;An executable generator for deno scripts based on Rust&lt;/li&gt;
&lt;li&gt;A SQL ORM in Golang&lt;/li&gt;
&lt;li&gt;A URL Shortener written in Golang&lt;/li&gt;
&lt;li&gt;A Project management CLI written in Rust&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Provide any thoughts/opinions you feel I should hear! I always welcome feedback :-)&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>streaming</category>
      <category>programming</category>
    </item>
    <item>
      <title>Great note-taking apps for developers</title>
      <dc:creator>Ian Fabs</dc:creator>
      <pubDate>Mon, 02 Mar 2020 17:01:19 +0000</pubDate>
      <link>https://dev.to/ianfabs/great-note-taking-apps-for-developers-38f3</link>
      <guid>https://dev.to/ianfabs/great-note-taking-apps-for-developers-38f3</guid>
      <description>&lt;p&gt;&lt;small&gt;(image credit &lt;a href="https://stocksnap.io/author/vidsplay"&gt;vidsplay&lt;/a&gt; on &lt;a href="https://stocksnap.io"&gt;stocksnap.io&lt;/a&gt;)&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;I've compiled this list of note-taking tools because I get disorganized very quickly, and there are way too many of these things. So I thought I'd help narrow it down.&lt;/p&gt;

&lt;h1&gt;
  
  
  Markdown based
&lt;/h1&gt;

&lt;p&gt;These note apps are powered by markdown (and also all eerily similar to one another).&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://notable.md/"&gt;Notable&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;small&gt;Platforms: Linux, Mac, Windows&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;Notable is a clean, focused, and powerful markdown-based note-taking tool. Notable allows you to organize your notes into tags and notebooks. You can also import existing markdown files, as well as sync your &lt;code&gt;~/.notable&lt;/code&gt; directory via any cloud-syncing service. Notable has plans to integrate &lt;em&gt;directly&lt;/em&gt; with cloud storage solutions in the near future as well, making it a very promising tool.&lt;/p&gt;

&lt;p&gt;Fun fact: Notable's Markdown editor is the same one vscode uses, which means you get multiple cursor support and more!&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://boostnote.io/"&gt;Boostnote&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;small&gt;Platforms: Linux, Mac, Windows, iOS(&lt;em&gt;planned&lt;/em&gt;)&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;Boostnote is fairly similar, if not a blatant facsimile of Notable, with a couple of key differences:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's got more themes&lt;/li&gt;
&lt;li&gt;It's keyboard shortcuts are... very different from what I'm used to.&lt;/li&gt;
&lt;li&gt;It's taking things in a cloud-first direction
Boostnote's similarity to Notable is not a bad thing, however personally I feel a little overwhelmed by it's interface.
Boostnote &lt;em&gt;also&lt;/em&gt; uses vscode for it's editor.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://bear.app/"&gt;Bear&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;small&gt;Platforms: iOS, Mac&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;Bear is probably one of my favorite apps of all time. It's simple, stylish, and very easy to use. It's my go-to app for taking notes on my phone. While I don't own a Mac (and hopefully never will), I still find lot's of times where bear has come in handy (for instance, Bear is where I wrote this article.)&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://joplinapp.org/"&gt;Joplin&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;small&gt;Platforms: Linux, Mac, Windows, iOS, Android, and as a CLI&lt;/small&gt;&lt;/p&gt;

&lt;p&gt;Joplin has a &lt;strong&gt;ton&lt;/strong&gt; of cool features. From it's browser extension to it's version control, Joplin has it all. While this might seem like probably the most versatile note-taking app in existence, that is actually Joplin's only downside. With it's intense feature-set and frankly verbose introductory example, it's easier than you'd think to get lost in Joplin's sauce. But if you're someone with laser-like focus all the time, and think you can handle what Joplin has to offer, then have at it! &lt;/p&gt;

&lt;h1&gt;
  
  
  Block based
&lt;/h1&gt;

&lt;p&gt;This next set of note-taking apps are an order of magnitude more powerful than those mentioned previously. But with great power...&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://notion.so/"&gt;Notion&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;The team behind Notion describes it as&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your team.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And while that quote may scratch Notion's surface, I feel that it is an injustice to the product. Notion is a powerful, logical, and multi-facet document editor and workspace. Notion let's you: write blogs, create kan-ban boards, manage your coursework for uni, document products, services, and tools with an expressive set of rich text features you won't find anywhere else, and - most importantly - take notes.&lt;/p&gt;

&lt;p&gt;Personally, I use Notion for a lot of things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tracking coursework and grades&lt;/li&gt;
&lt;li&gt;Documenting the tools and libraries I create&lt;/li&gt;
&lt;li&gt;Starting a blog&lt;/li&gt;
&lt;li&gt;At my startup for all internal documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I don't know how I documented work before Notion. Go ahead and give it a try! Sign up at &lt;a href="https://notion.so/"&gt;https://notion.so/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://roamresearch.com"&gt;Roam&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Roam is interesting... At first, it feels kiiiiinda similar to &lt;a href="https://notion.so/"&gt;Notion&lt;/a&gt;, but then you start using it. Roam is a tool for &lt;strong&gt;thought networking&lt;/strong&gt;, a practice I - myself - am not very familiar with. I had to watch a YouTube video and even then I still felt as though there were gaps in my understanding of the tool. My first time reading through the &lt;a href="https://roamresearch.com/#/v8/help/page/Vu1MmjinS"&gt;Roam White Paper&lt;/a&gt; I felt so lost, and still do. But, regardless, Roam has helped me map out my thoughts more. I find ideas really flow when I'm writing in Roam.&lt;/p&gt;

&lt;h1&gt;
  
  
  My Top Picks
&lt;/h1&gt;

&lt;p&gt;The three I use the most are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://notion.so"&gt;Notion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://roamresearch.com"&gt;Roam&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://notable.md"&gt;Notable&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading! Have a wonderful day :-)&lt;/p&gt;

</description>
      <category>notes</category>
      <category>markdown</category>
      <category>documentation</category>
      <category>developers</category>
    </item>
    <item>
      <title>WiFi firmware fails after installing Ubuntu on Lenovo IdeaPad Flex15</title>
      <dc:creator>Ian Fabs</dc:creator>
      <pubDate>Wed, 26 Feb 2020 09:28:21 +0000</pubDate>
      <link>https://dev.to/ianfabs/wifi-firmware-fails-after-installing-ubuntu-on-lenovo-ideapad-flex15-2j7k</link>
      <guid>https://dev.to/ianfabs/wifi-firmware-fails-after-installing-ubuntu-on-lenovo-ideapad-flex15-2j7k</guid>
      <description>&lt;p&gt;I just got a brand new laptop. And of course, as any good dev would do, I tried installing Ubuntu on it. I ran into a huge issue, where the firmware for the &lt;code&gt;iwlwifi&lt;/code&gt; device/drivers. It kept failing post-boot with a &lt;code&gt;UCODE=-110&lt;/code&gt; or something like that. It took me three hours but I finally fixed it. It ended up having to do with &lt;code&gt;iwconfig&lt;/code&gt;'s power management. You can disable this by doing the following in a terminal.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Boot into Ubuntu&lt;/li&gt;
&lt;li&gt;After login screen appears, press &lt;code&gt;Ctrl+Alt+F2&lt;/code&gt;. (You might need to hold down the function key as well, which would be &lt;code&gt;Ctrl+Alt+Fn+F2&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Once at the terminal screen, login with your username and password.&lt;/li&gt;
&lt;li&gt;Next, enter the following command: &lt;code&gt;sudo -i&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;This will prompt you to enter your password again, and by doing so you will be logged in as root.&lt;/li&gt;
&lt;li&gt;Now, enter &lt;code&gt;echo "options iwlwifi power_save=0" &amp;gt;&amp;gt; /etc/modprobe.d/iwlwifi.conf&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;reboot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;In the grub boot menu, select &lt;code&gt;Advanced Options&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;select &lt;code&gt;ubuntu-linux-5.0.28-generic&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Additional Steps
&lt;/h3&gt;

&lt;p&gt;There are a few additional things I did that I am uncertain as to whether or not they might have had an impact on my success.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Edit grub and add &lt;code&gt;arm=off&lt;/code&gt; to GRUB_DEFAULT_COMMAND.&lt;/li&gt;
&lt;li&gt;Boot into your ubuntu installation media, and open a terminal.

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;sudo apt update&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sudo apt upgrade-dist&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Boot into the grub of the installation media, and type &lt;code&gt;c&lt;/code&gt; on your keyboard

&lt;ul&gt;
&lt;li&gt;This will bring up a simple grub terminal&lt;/li&gt;
&lt;li&gt;enter &lt;code&gt;acpi=off&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;That's all I've got folks. I thought I'd write this down just incase anyone else ran into trouble just like me. Cheers!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to get started with Golang and Visual Studio Online</title>
      <dc:creator>Ian Fabs</dc:creator>
      <pubDate>Tue, 05 Nov 2019 19:07:13 +0000</pubDate>
      <link>https://dev.to/ianfabs/how-to-get-started-with-golang-and-visual-studio-online-5d64</link>
      <guid>https://dev.to/ianfabs/how-to-get-started-with-golang-and-visual-studio-online-5d64</guid>
      <description>&lt;p&gt;Today I decided I wanted to write something in go using Microsoft's new &lt;a href="https://online.visualstudio.com/"&gt;Visual Studio Online&lt;/a&gt;. I won't be going over how to setup this up, because Azure can be a pain in the rear and because it deserves it's own article.&lt;/p&gt;

&lt;p&gt;To get started, open up the environment you want to use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step One: Installation
&lt;/h2&gt;

&lt;p&gt;First, we are going to download the latest version of Go:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;vsonline:~/workspace&lt;span class="nv"&gt;$ &lt;/span&gt;wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Once you have that downloaded, go ahead and extract it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;vsonline:~/workspace&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;tar&lt;/span&gt; &lt;span class="nt"&gt;-xvf&lt;/span&gt; go1.13.4.linux-amd64.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now that you have extracted the &lt;code&gt;go&lt;/code&gt; folder, we are going to move it to &lt;code&gt;/usr/local&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;vsonline:~/workspace&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo mv &lt;/span&gt;go /usr/local
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Step Two: Setup &lt;code&gt;GOROOT&lt;/code&gt; and &lt;code&gt;GOPATH&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;We are going to two create two new environment variables, and then modify another.&lt;/p&gt;

&lt;p&gt;In your terminal, enter the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;vsonline:~/workspace&lt;span class="nv"&gt;$ &lt;/span&gt;vim ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This will open up your bash profile in a command-line editor called &lt;strong&gt;Vim&lt;/strong&gt;. For those who don't know how to use vim, or are scared of it, don't worry. I will guide you keypress by keypress.&lt;/p&gt;

&lt;p&gt;Vim Steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hold &lt;code&gt;Shift&lt;/code&gt; + &lt;code&gt;G&lt;/code&gt; and release&lt;/li&gt;
&lt;li&gt;press &lt;code&gt;o&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;press &lt;code&gt;enter&lt;/code&gt;
(you are now in editing mode)
add the following lines where your cursor is:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;GOROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/usr/local/go
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;GOPATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$HOME&lt;/span&gt;/workspace
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$GOROOT&lt;/span&gt;/bin:&lt;span class="nv"&gt;$GOPATH&lt;/span&gt;/bin:&lt;span class="nv"&gt;$PATH&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;press &lt;code&gt;Esc&lt;/code&gt;(&lt;code&gt;Escape&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;hold &lt;code&gt;Shift&lt;/code&gt; and double tap the &lt;code&gt;Z&lt;/code&gt; key&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You have successfully escaped Vim, and saved your file. You should now be back at your terminal prompt.&lt;/p&gt;

&lt;p&gt;Enter the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;vsonline:~/workspace&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.profile
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Vous voilà!&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step Three: Make sure it works
&lt;/h2&gt;

&lt;p&gt;The last step, is to make sure everything we did took hold.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;vsonline:~/workspace&lt;span class="nv"&gt;$ &lt;/span&gt;go version
go version go1.13.4 linux/amd64
vsonline:~/workspace&lt;span class="nv"&gt;$ &lt;/span&gt;go &lt;span class="nb"&gt;env
&lt;/span&gt;&lt;span class="nv"&gt;GO111MODULE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nv"&gt;GOARCH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"amd64"&lt;/span&gt;
&lt;span class="nv"&gt;GOBIN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nv"&gt;GOCACHE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/home/vsonline/.cache/go-build"&lt;/span&gt;
&lt;span class="nv"&gt;GOENV&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/home/vsonline/.config/go/env"&lt;/span&gt;
&lt;span class="nv"&gt;GOEXE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nv"&gt;GOFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nv"&gt;GOHOSTARCH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"amd64"&lt;/span&gt;
&lt;span class="nv"&gt;GOHOSTOS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"linux"&lt;/span&gt;
&lt;span class="nv"&gt;GONOPROXY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nv"&gt;GONOSUMDB&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nv"&gt;GOOS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"linux"&lt;/span&gt;
&lt;span class="nv"&gt;GOPATH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/home/vsonline/workspace"&lt;/span&gt;
&lt;span class="nv"&gt;GOPRIVATE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nv"&gt;GOPROXY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://proxy.golang.org,direct"&lt;/span&gt;
&lt;span class="nv"&gt;GOROOT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/usr/local/go"&lt;/span&gt;
&lt;span class="nv"&gt;GOSUMDB&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sum.golang.org"&lt;/span&gt;
&lt;span class="nv"&gt;GOTMPDIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nv"&gt;GOTOOLDIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/usr/local/go/pkg/tool/linux_amd64"&lt;/span&gt;
&lt;span class="nv"&gt;GCCGO&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"gccgo"&lt;/span&gt;
&lt;span class="nv"&gt;AR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"ar"&lt;/span&gt;
&lt;span class="nv"&gt;CC&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"gcc"&lt;/span&gt;
&lt;span class="nv"&gt;CXX&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"g++"&lt;/span&gt;
&lt;span class="nv"&gt;CGO_ENABLED&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"1"&lt;/span&gt;
&lt;span class="nv"&gt;GOMOD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nv"&gt;CGO_CFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"-g -O2"&lt;/span&gt;
&lt;span class="nv"&gt;CGO_CPPFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nv"&gt;CGO_CXXFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"-g -O2"&lt;/span&gt;
&lt;span class="nv"&gt;CGO_FFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"-g -O2"&lt;/span&gt;
&lt;span class="nv"&gt;CGO_LDFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"-g -O2"&lt;/span&gt;
&lt;span class="nv"&gt;PKG_CONFIG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"pkg-config"&lt;/span&gt;
&lt;span class="nv"&gt;GOGCCFLAGS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build921856996=/tmp/go-build -gno-record-gcc-switches"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;If your output looks like mine, you're good to go! You've successfully installed Golang in VSOnline :-)&lt;/p&gt;

&lt;p&gt;Happy Hacking!&lt;/p&gt;

</description>
      <category>go</category>
      <category>vscode</category>
    </item>
    <item>
      <title>I made a fetch-wrapper for making graphql api calls!</title>
      <dc:creator>Ian Fabs</dc:creator>
      <pubDate>Thu, 14 Feb 2019 20:41:56 +0000</pubDate>
      <link>https://dev.to/ianfabs/i-made-a-fetch-wrapper-for-making-graphql-api-calls-4p9e</link>
      <guid>https://dev.to/ianfabs/i-made-a-fetch-wrapper-for-making-graphql-api-calls-4p9e</guid>
      <description>&lt;p&gt;The other day, I was playing around with GraphQL queries for a side-project that I'm building, when I realized that eventually - I'm gonna need to make calls to that API on the client-side. My first instinct was to look around for a way to do it using fetch, because I &lt;em&gt;love&lt;/em&gt; the fetch API. However the way to do it using fetch is kinda gross, if I'm being honest. The first answer I found on stack overflow, showed it like this:&lt;/p&gt;

&lt;p&gt;&lt;small&gt;note that, for the examples, an example API that I created is used&lt;/small&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;
&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://csb-xpwq1o2824-xravvsjkul.now.sh/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;query {items{title}}&lt;/span&gt;&lt;span class="dl"&gt;"&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;Now, that's pretty nasty-looking. You could make it better with some variables, maybe a template string, something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="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;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://csb-xpwq1o2824-xravvsjkul.now.sh/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`
        query{
            items{
                title
            }
        }
    `&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;body&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now while that &lt;strong&gt;may&lt;/strong&gt; look satisfying, it didn't feel like a healthy-enough balance between the feel of fetch, and graphql. So I created a function that did just that for me. I realized how useful this could be to other developers, so I wrapped it up in an npm module, and published it. I call it &lt;code&gt;jraph&lt;/code&gt;, and it works like this and thanks to a comment from &lt;a class="comment-mentioned-user" href="https://dev.to/qm3ster"&gt;@qm3ster&lt;/a&gt;
, it now works like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;jraph&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;jraph&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;jql&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;jraph&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://csb-xpwq1o2824-xravvsjkul.now.sh/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;jql&lt;/span&gt;&lt;span class="s2"&gt;`{
      items{
        title
        info
      }
    }`&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&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;If you like it, you can check it out on npm, &lt;a href="https://www.npmjs.com/package/jraph"&gt;here&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Have a great day guys!&lt;/p&gt;

</description>
      <category>graphql</category>
      <category>javascript</category>
      <category>fetch</category>
      <category>api</category>
    </item>
    <item>
      <title>I made a fetch-wrapper for making graphql api calls!</title>
      <dc:creator>Ian Fabs</dc:creator>
      <pubDate>Sun, 09 Dec 2018 03:51:11 +0000</pubDate>
      <link>https://dev.to/ianfabs/i-made-a-fetch-wrapper-for-making-graphql-api-calls-min</link>
      <guid>https://dev.to/ianfabs/i-made-a-fetch-wrapper-for-making-graphql-api-calls-min</guid>
      <description>&lt;h2&gt;
  
  
  (&lt;a href="https://thepracticaldev.s3.amazonaws.com/i/712x78426cyq8kj5ab3c.png"&gt;https://thepracticaldev.s3.amazonaws.com/i/712x78426cyq8kj5ab3c.png&lt;/a&gt;)
&lt;/h2&gt;

&lt;p&gt;title: "I made a fetch-wrapper for making graphql api calls!"&lt;br&gt;
published: false&lt;br&gt;
description: "An overview of a fetch-wrapper for making graphql queries that I built."&lt;/p&gt;
&lt;h2&gt;
  
  
  tags: graphql, javascript, node, fetch
&lt;/h2&gt;

&lt;p&gt;The other day, I was playing around with GraphQL queries for a side-project that I'm building, when I realized that eventually - I'm gonna need to make calls to that API on the client-side. My first instinct was to look around for a way to do it using fetch, because I &lt;em&gt;love&lt;/em&gt; the fetch API. However the way to do it using fetch is kinda gross, if I'm being honest. The first answer I found on stack overflow, showed it like this:&lt;/p&gt;

&lt;p&gt;&lt;small&gt;note that, for the examples, an example API that I created is used&lt;/small&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;
&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://csb-xpwq1o2824-xravvsjkul.now.sh/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="na"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;query {items{title}}&lt;/span&gt;&lt;span class="dl"&gt;"&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;Now, that's pretty nasty-looking. You could make it better with some variables, maybe a template string, something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="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;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://csb-xpwq1o2824-xravvsjkul.now.sh/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`
        query{
            items{
                title
            }
        }
    `&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;body&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;body&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now while that &lt;strong&gt;may&lt;/strong&gt; look satisfying, it didn't feel like a healthy-enough balance between the feel of fetch, and graphql. So I created a function that did just that for me. I realized how useful this could be to other developers, so I wrapped it up in an npm module, and published it. I call it &lt;code&gt;jraph&lt;/code&gt;, and it works like this and thanks to a comment from &lt;a class="comment-mentioned-user" href="https://dev.to/qm3ster"&gt;@qm3ster&lt;/a&gt;
, it now works like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;jraph&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;jraph&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;jql&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;jraph&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://csb-xpwq1o2824-xravvsjkul.now.sh/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;POST&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; 
    &lt;span class="nx"&gt;jql&lt;/span&gt;&lt;span class="s2"&gt;`{
      items{
        title
        info
      }
    }`&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;I making a major update to the syntax that I think that graphql fans of the world will love.&lt;/p&gt;

&lt;p&gt;If you like it, you can check it out on npm, &lt;a href="https://www.npmjs.com/package/jraph"&gt;here&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Have a great day guys!&lt;/p&gt;

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