<?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: Walter Jenkins</title>
    <description>The latest articles on DEV Community by Walter Jenkins (@aviddabbler).</description>
    <link>https://dev.to/aviddabbler</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%2F375564%2F39b56e5a-8af6-4c5f-a123-332c418a25fe.jpeg</url>
      <title>DEV Community: Walter Jenkins</title>
      <link>https://dev.to/aviddabbler</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aviddabbler"/>
    <language>en</language>
    <item>
      <title>The Self-taught Developer Rules</title>
      <dc:creator>Walter Jenkins</dc:creator>
      <pubDate>Mon, 07 Feb 2022 04:31:24 +0000</pubDate>
      <link>https://dev.to/aviddabbler/the-self-taught-developer-rules-18kn</link>
      <guid>https://dev.to/aviddabbler/the-self-taught-developer-rules-18kn</guid>
      <description>&lt;p&gt;Over the course of my computer science journey to have the title of developer there have been a few rules that I have developed that I often give to others on the same path some tech related and some just focused on maintaining focus and motivation.&lt;/p&gt;




&lt;h3&gt;
  
  
  You don't need to know it all 🧠
&lt;/h3&gt;

&lt;p&gt;You just need to be able to learn the next line &lt;/p&gt;

&lt;p&gt;There are a lot of people out there that are trying to sell the quick solution to level up and become a “real developer” the truth is there really isn't such a thing. If you are working on developing websites, you are a developer. If you are automating your job, you are a developer. If you have to Google syntax, you are a developer because you are developing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Build you toolbox 🧰
&lt;/h3&gt;

&lt;p&gt;In between the podcasts, blogs, google searches and all of the code snippets you have on your clipboard, you probably feel like you are trying to jump on a moving train. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;There is an endless supply of new tech coming out everyday and there is no way that you can keep up with it all.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;What you should be doing is finding tech that is currently being sought after in the market. Look at job postings and see what people out there are looking for and learn a couple of those technologies. &lt;/p&gt;

&lt;p&gt;I think in Javascript you need to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A JavaScript framework&lt;/li&gt;
&lt;li&gt;A state management library&lt;/li&gt;
&lt;li&gt;A CSS framework&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Personally I learned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Redux/Redux-toolkit&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tiny Design Libraries📩
&lt;/h3&gt;

&lt;p&gt;While I think the first thing that a lot of people end up wanting to do is reach for the big libraries like Material UI to handle user inputs. It's often not the best route. These libraries can be difficult to configure and you are often just better of working with smaller ones that handle one thing well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Don't finish the book 📚
&lt;/h3&gt;

&lt;p&gt;Enjoy what you read.&lt;/p&gt;

&lt;p&gt;I have a lot of books that I have started and I have gotten something out of all of them, but it is truly rare to fully finish or pay attention to a whole book. I used to feel guilty for not finishing them, but the fact is that at some point I stopped enjoying and I got something out of every one of those half finished books.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;As of right now I have 18 unfinished courses in Udemy right now.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The same can be said for these courses. They're great and I got a lot out of them, but I'm don't want to sit through all 100 hours of a React with hooks and a million other concepts.&lt;/p&gt;

&lt;p&gt;I think the most that I have gotten through one of these courses is 60% and I'm glad that is not an interview question or that those certificates are worth anything.&lt;/p&gt;

&lt;h3&gt;
  
  
  When you can. Read the docs.📑
&lt;/h3&gt;

&lt;p&gt;I hate being that guy, but coming from an analyst background and now working in dataviz. The types of libraries and packages that I work with can be intracate. Not to say that a good old fashioned snippet isn't amazing, but mastering a library cannot be done with being able to read through the docs.&lt;/p&gt;

&lt;p&gt;What are the main things that made you successful?&lt;/p&gt;

&lt;p&gt;Photo by Nick Wehrli from Pexels&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>geospatial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>WTF is KoopJS</title>
      <dc:creator>Walter Jenkins</dc:creator>
      <pubDate>Sat, 15 Jan 2022 16:38:02 +0000</pubDate>
      <link>https://dev.to/aviddabbler/wtf-is-koopjs-52mj</link>
      <guid>https://dev.to/aviddabbler/wtf-is-koopjs-52mj</guid>
      <description>&lt;p&gt;When it comes to setting up a Geospatial backend there are generally only 3 camps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.arcgis.com/"&gt;ArcGIS Online/Enterprise&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://geoserver.org/"&gt;Geoserver&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Postgres/PostGIS + Server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These servers while extremely capable are difficult to manage and often come with a lot of bloat and can be difficult to configure if you are not someone inclined to work in Windows Server. &lt;/p&gt;

&lt;p&gt;That is until I recently found out about &lt;a href="https://koopjs.github.io/"&gt;KoopJS&lt;/a&gt; a solution that is under the Open Source license to provide an Node backend built with Express to serve up &lt;a href="https://geoservices.github.io/"&gt;GeoServices&lt;/a&gt; which are a standard in the industry to distribute Geospatial specific data.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What am I using it for&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Where it really excels is creating a custom solution (like I was looking for) for the purpose of creating a real-time data solution for transit. As of right now I am able:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;convert &lt;a href="https://developers.google.com/transit/gtfs-realtime"&gt;GTFS-RT&lt;/a&gt; and distribute real-time updates&lt;/li&gt;
&lt;li&gt;backup information into a datalake&lt;/li&gt;
&lt;li&gt;preform scheduled tasks&lt;/li&gt;
&lt;li&gt;query my datalake with &lt;a href="https://aws.amazon.com/athena"&gt;AWS Athena&lt;/a&gt; all within Koop and Node. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Building your own provider&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;If you are interested in building your own provider I recommend you looking at the &lt;a href="https://github.com/koopjs/koop-app-example"&gt;koop-app-example&lt;/a&gt; and &lt;a href="https://github.com/koopjs/koop-provider-example/tree/master/src"&gt;koop-provider-example&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;The &lt;code&gt;koop-app-example&lt;/code&gt; is the framework that I used to build my providers by configuring the files in the &lt;code&gt;src/&lt;/code&gt; file and adding custom providers. In the repo it is already setup for Craigslist and GitHub providers. &lt;/p&gt;

&lt;p&gt;I used &lt;code&gt;koop-provider-example&lt;/code&gt; as a template for all of my custom providers by configuring the &lt;code&gt;index.js&lt;/code&gt; and &lt;code&gt;model.js&lt;/code&gt; files. While there are an extended list this was all I needed to focus on. Below is the list of files and their purposes in the standard Koop provider.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--juQjsvEJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qy6ejnntjeq5ssnm5mvq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--juQjsvEJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qy6ejnntjeq5ssnm5mvq.png" alt="List of Provider files" width="803" height="372"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;The only requirement (that I have found) to creating a custom connection is to be able to provide a GeoJson output of the &lt;code&gt;Model.prototype.getData()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In the index file you just really need to update the name and that will be the name of your service. Example call for feature service would be formatted like this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;http://localhost:8080/:name/FeatureService/0&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;From here you can append &lt;code&gt;query?where=...&lt;/code&gt; and input your standard where GeoService parameters&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QVxA7IHs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9l9gkzf94kcrvtpgv1a0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QVxA7IHs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9l9gkzf94kcrvtpgv1a0.png" alt="Parts of a Provider" width="629" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Takeaways&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Out of the box there are quite a few &lt;a href="https://koopjs.github.io/docs/available-plugins/providers"&gt;different connections&lt;/a&gt; that you can setup including s3, PostGres, Craigslist, BigQuery and others which makes it really alluring considering there are ways to connect existing datasources that will adhere to a laundry list of url parameters. I think there is a strong case for using this type of server for real-time and big data queries as these are typically locked behind another license in the geospatial server world.&lt;/p&gt;

</description>
      <category>koop</category>
      <category>node</category>
      <category>geospatial</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
