<?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: Thomas McGoey-Smith</title>
    <description>The latest articles on DEV Community by Thomas McGoey-Smith (@sourdoughdev).</description>
    <link>https://dev.to/sourdoughdev</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%2F69664%2Fdf2f012b-ed67-4026-b966-a38304790c1c.jpg</url>
      <title>DEV Community: Thomas McGoey-Smith</title>
      <link>https://dev.to/sourdoughdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sourdoughdev"/>
    <language>en</language>
    <item>
      <title>Crafting your own tools</title>
      <dc:creator>Thomas McGoey-Smith</dc:creator>
      <pubDate>Sun, 14 Jul 2019 01:49:00 +0000</pubDate>
      <link>https://dev.to/sourdoughdev/crafting-your-own-tools-655</link>
      <guid>https://dev.to/sourdoughdev/crafting-your-own-tools-655</guid>
      <description>&lt;p&gt;For as long as I can remember, I’ve always been obsessed with tracking and managing what I’m working on.&lt;/p&gt;

&lt;p&gt;In the beginning when &lt;a href="https://trello.com"&gt;Trello&lt;/a&gt; first came out, everything was broken down into cards and a little bit of chaos ensued.&lt;/p&gt;

&lt;p&gt;Probably like most people who subscribe to some sort of get things done-esk framework, I started trying to impose a perfect way to mange everything.&lt;/p&gt;

&lt;p&gt;Labels, specialized columns. All the things were tracked and religiously updated.&lt;/p&gt;

&lt;p&gt;As soon things were on their way, I started feeling that I needed something a bit more focused and rigid.&lt;/p&gt;

&lt;p&gt;Then came &lt;a href="https://clubhouse.io/"&gt;Club House&lt;/a&gt;, but it was a little heavy handed.&lt;/p&gt;

&lt;p&gt;Spent a week or two here working out of &lt;a href="https://culturedcode.com/things/"&gt;Things&lt;/a&gt;, &lt;a href="https://todoist.com"&gt;Todoist&lt;/a&gt;, and even went all in &lt;a href="https://workflowy.com/hi/"&gt;Workflowy&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Even decided to get in the habit of creating a daily journal with my own &lt;code&gt;work&lt;/code&gt; terminal app.&lt;/p&gt;

&lt;p&gt;&lt;a href="///assets/images/crafting-your-own-tools/work.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rBBzOrlB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://sourdough.dev/assets/images/crafting-your-own-tools/work.png" alt=""&gt;&lt;/a&gt;&lt;code&gt;work&lt;/code&gt;: a tiny app that lives on your terminal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Embrace the methodology not the tool
&lt;/h2&gt;

&lt;p&gt;One of the biggest realizations I’ve had is despite churning through all these todo list apps, I’ve never took a at my own process for managing work.&lt;/p&gt;

&lt;p&gt;Normally I’d dive in and just churn through item after item, hoping the tool would guide be to some promise land of extreme productivity.&lt;/p&gt;

&lt;p&gt;It got to the point that I almost thought about building &lt;em&gt;yet&lt;/em&gt; another todo list.&lt;/p&gt;

&lt;p&gt;Luckily a good friend talked some sense into that idea.&lt;/p&gt;

&lt;p&gt;In the end I’ve finally found a decent way to work: focus.&lt;/p&gt;

&lt;p&gt;It’s not about the tool, but rather about the process.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I’ve sticking to just three rules:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1) Do one thing at a time.&lt;/p&gt;

&lt;p&gt;2) Don’t edit, add it and forget about it.&lt;/p&gt;

&lt;p&gt;3) Automate + Archive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools
&lt;/h2&gt;

&lt;p&gt;I’m officially back to using Trello but I’m not focused on keeping things extremely simple. To labels, to complicated cards. Things are small and in shippable chunks.&lt;/p&gt;

&lt;p&gt;&lt;a href="///assets/images/crafting-your-own-tools/trello.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xDN4pzDL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://sourdough.dev/assets/images/crafting-your-own-tools/trello.png" alt=""&gt;&lt;/a&gt;I'm following a slightly automated version of &lt;a href="https://trello.com/b/dG64n160"&gt;Amy Hoy's JFS Trello Setup&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I’ve also added a few &lt;a href="https://trello.com/power-ups/5935cab6b26816f9d49fd814/butler"&gt;Butler&lt;/a&gt; rules to help auto archive done cards on a weekly basis and purge anything older than a month &lt;em&gt;(when my Inbox grows to large)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;For the most part this covers my two core rules pretty well, but to get closer to that more mindful state of just jotting down potential todos, I’m actually using two different tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Alfred Trello Workflow
&lt;/h3&gt;

&lt;p&gt;I’m using a modified version (&lt;a href="https://gist.github.com/tamcgoey/8057428de3d1022dceebb2856d1064dc"&gt;gist&lt;/a&gt;) of @MikoMagni’s &lt;a href="https://github.com/MikoMagni/Trello-Workflow-for-Alfred"&gt;Trello Workflow for Alfred&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="///assets/images/crafting-your-own-tools/alfred.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sc-aYmoJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://sourdough.dev/assets/images/crafting-your-own-tools/alfred.png" alt=""&gt;&lt;/a&gt;Trello Workflow for Alfred, &lt;a href="https://gist.github.com/tamcgoey/8057428de3d1022dceebb2856d1064dc"&gt;slightly modified&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This allows me to easily create new cards from my mac, allowing me to quickly capture todos without needing to think about how to get distracted.&lt;/p&gt;

&lt;p&gt;Essentially, I can just type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;t Card Title
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;And I’m done. If I’m wanting to work on the task today, I’ll simply add &lt;code&gt;Today&lt;/code&gt; like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;t Card Title; Today; Card Description
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Normally I don’t bother including a description. I find it a bit too much.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This works great when I’m on my mac but on the go it kinda sucks.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As soon as I have to open up Trello I jump into navigating outstanding cards and jump to trying to clear out my Inbox.&lt;/p&gt;

&lt;h3&gt;
  
  
  A simple ReactNative App for creating Trello cards on the fly
&lt;/h3&gt;

&lt;p&gt;This weekend I hacked together a super quick app for easily adding todos wherever I’m at.&lt;/p&gt;

&lt;p&gt;&lt;a href="///assets/images/crafting-your-own-tools/inbox.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eSli2Kse--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://sourdough.dev/assets/images/crafting-your-own-tools/inbox.png" alt=""&gt;&lt;/a&gt;Inbox, is a super simple ReactNative app built for just my one Trello board.&lt;/p&gt;

&lt;p&gt;Inbox follows my rule for just creating cards, there isn’t an option for descriptions or labels since I don’t use them.&lt;/p&gt;

&lt;p&gt;It’s super speedy and just works. Sometimes the best tools are the ones glued together in an hour or two.&lt;/p&gt;

&lt;p&gt;If you’re curious what it looks like or want to create your own version, here’s what the &lt;a href="https://gist.github.com/tamcgoey/984609d5a33f44592b7b585c5878180f"&gt;&lt;code&gt;App.tsx&lt;/code&gt;&lt;/a&gt; looks like.&lt;/p&gt;

&lt;p&gt;My original plans for Inbox was a complicated ReactNative app with a GraphQL powered API that would help iron out some sharper parts of the Trello API, but honestly it’s just too overkill.&lt;/p&gt;

&lt;p&gt;If you ever want to talk dev productivity or strategies for managing your own time &lt;a href="https://twitter.com/tamcgoey"&gt;get in touch&lt;/a&gt;!&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally posted on my blog at: &lt;a href="https://sourdough.dev/crafting-your-own-tools/"&gt;sourdough.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>productivity</category>
    </item>
    <item>
      <title>GraphQL Voyager for Rails</title>
      <dc:creator>Thomas McGoey-Smith</dc:creator>
      <pubDate>Tue, 02 Jul 2019 23:36:00 +0000</pubDate>
      <link>https://dev.to/sourdoughdev/graphql-voyager-for-rails-26mk</link>
      <guid>https://dev.to/sourdoughdev/graphql-voyager-for-rails-26mk</guid>
      <description>&lt;p&gt;&lt;a href="///assets/images/graphql-voyager-rails/screenshot.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zzBLdlFY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://sourdough.dev/assets/images/graphql-voyager-rails/screenshot.png" alt="Exploring your GraphQL Schema with GraphQL Voyager for Rails"&gt;&lt;/a&gt;Exploring your GraphQL Schema with &lt;a href="https://github.com/tamcgoey/graphql-voyager-rails"&gt;GraphQL Voyager Rails&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It’s been almost a year now working and building with GraphQL backed APIs. One of the best things about GraphQL has always been their dev tooling.&lt;/p&gt;

&lt;p&gt;Firing up &lt;a href="https://github.com/rmosolgo/graphiql-rails"&gt;GraphiQL&lt;/a&gt;, and crafting a query on the fly has been amazing.&lt;/p&gt;

&lt;p&gt;But, one of the struggles I’ve found when building a relatively new and larger API is juggling all the different API requests one can make.&lt;/p&gt;

&lt;p&gt;GraphiQL is great for sketching out a quick query, but starts to fall apart when you’re needing to fire that same query you were working on a week or two ago.&lt;/p&gt;

&lt;p&gt;This is where &lt;a href="https://insomnia.rest/"&gt;Insomnia&lt;/a&gt; comes in! Insomnia is a great beautiful API (REST + GraphQL) client that lives on your desktop.&lt;/p&gt;

&lt;p&gt;It’s great for keeping up with all those partially built out API requests you’ve been collecting.&lt;/p&gt;

&lt;p&gt;One of the biggest problems or really lack of functionality has been &lt;a href="https://github.com/getinsomnia/insomnia/issues/451"&gt;no support for GraphQL API docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That’s where &lt;a href="https://github.com/APIs-guru/graphql-voyager"&gt;GraphQL Voyager&lt;/a&gt; comes in.&lt;/p&gt;

&lt;p&gt;A great GraphQL schema + documentation browsing tool that makes it easy to dig into your API.&lt;/p&gt;

&lt;p&gt;Like a lot of these GraphQL tools, it was originally built outside of the Rails ecosystem.&lt;/p&gt;

&lt;p&gt;So, this past weekend I worked on porting building a Rails engine gem that easily allows you mount GraphQL Voyager on your Rails app.&lt;/p&gt;

&lt;p&gt;Building on top of GraphiQL Rails, I took the same lessons learned to support easily mounting GraphQL Voyager on any rails app.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to get started
&lt;/h2&gt;

&lt;p&gt;First go ahead and add the gem. Since this is only used in development, I’ve actually purposely grouped this dependency.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;gem&lt;/span&gt; &lt;span class="s1"&gt;'graphql-voyager-rails'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Next mount the rails engine in your routes files (&lt;code&gt;config/routes.rb&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;development?&lt;/span&gt;
  &lt;span class="n"&gt;mount&lt;/span&gt; &lt;span class="no"&gt;Graphql&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Voyager&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Engine&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;at: &lt;/span&gt;&lt;span class="s2"&gt;"/graphql-voyager"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;graphql_path: &lt;/span&gt;&lt;span class="s2"&gt;"/graphql"&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;em&gt;You’ll notice that the &lt;code&gt;Graphql&lt;/code&gt; isn’t &lt;code&gt;GraphQL&lt;/code&gt;, I’m hoping in the future to support this naming convention (just wanted to avoid the additional &lt;code&gt;ActiveSupport&lt;/code&gt; changes).&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally posted this on my blog: &lt;a href="https://sourdough.dev/graphql-voyager-rails/"&gt;sourdough.dev&lt;/a&gt;&lt;/em&gt;. &lt;/p&gt;

</description>
      <category>rails</category>
      <category>graphql</category>
    </item>
  </channel>
</rss>
