<?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: Greg Arnold</title>
    <description>The latest articles on Forem by Greg Arnold (@arnold805).</description>
    <link>https://forem.com/arnold805</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%2F770577%2F86f9ffda-de78-4bf7-bb67-c0f09c2a1b73.jpeg</url>
      <title>Forem: Greg Arnold</title>
      <link>https://forem.com/arnold805</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/arnold805"/>
    <language>en</language>
    <item>
      <title>To --api or not to --api?</title>
      <dc:creator>Greg Arnold</dc:creator>
      <pubDate>Tue, 05 Jul 2022 14:44:53 +0000</pubDate>
      <link>https://forem.com/arnold805/to-api-or-not-to-api-4odf</link>
      <guid>https://forem.com/arnold805/to-api-or-not-to-api-4odf</guid>
      <description>&lt;p&gt;Getting started on setting up a Rails project from scratch and stumble on &lt;em&gt;rails new my_api --api&lt;/em&gt; and wonder what exactly the &lt;em&gt;--api&lt;/em&gt; flag does? This post will investigate the differences and summarize the main uses for including or not including this tag when starting a Rails project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Including &lt;em&gt;--api&lt;/em&gt; flag will:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Configure your application to start with a more limited set of middleware than normal. It will not include any middleware primarily useful for browser applications (like cookies support) by default.&lt;/li&gt;
&lt;li&gt;Make &lt;strong&gt;ApplicationController&lt;/strong&gt; inherit from &lt;strong&gt;ActionController::API&lt;/strong&gt; instead of &lt;strong&gt;ActionController::Base&lt;/strong&gt;. As with middleware, this will leave out any Action Controller modules that provide functionalities primarily used by browser applications.&lt;/li&gt;
&lt;li&gt;Configure the generators to skip generating views, helpers, and assets when you generate a new resource.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Including this tag is ideal for API only applications. by default it omits features that are usually required for browser access; layouts and templates rendering, flash, assets, and more. If any of that functionality ends up being needed later on in the project, it can be added back in. This is done by simply changing &lt;strong&gt;ApplicationController&lt;/strong&gt; to inherit from &lt;strong&gt;ActionController::Base&lt;/strong&gt; instead of &lt;strong&gt;ActionController::API&lt;/strong&gt; and then you can add in the desired middlewares. Vice versa can be done if you start without the -api tag and determine to only need API functions. For more options that can be useful with crating a new Rails API, run: &lt;strong&gt;rails new --help&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Sources:&lt;br&gt;
&lt;a href="https://api.rubyonrails.org/classes/ActionController/API.html"&gt;Rails API Docs&lt;/a&gt;&lt;br&gt;
&lt;a href="https://guides.rubyonrails.org/api_app.html"&gt;Rails Guides&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/rails-api/rails-api"&gt;Rails::API Github&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rails</category>
      <category>webdev</category>
      <category>api</category>
    </item>
    <item>
      <title>Agent-Based Modeling with NetLogo</title>
      <dc:creator>Greg Arnold</dc:creator>
      <pubDate>Mon, 14 Feb 2022 10:46:53 +0000</pubDate>
      <link>https://forem.com/arnold805/agent-based-modeling-with-netlogo-2oc</link>
      <guid>https://forem.com/arnold805/agent-based-modeling-with-netlogo-2oc</guid>
      <description>&lt;p&gt;Agent-based modeling (ABM) is a bottom-up simulation technique where a system is analyzed by its individual elements that interact with each other. These elements, called agents are identified and given a behavior, such as humans and viruses, trees and spreading fires, etc. ABM is a common approach to studying complex biological and social phenomena.&lt;/p&gt;

&lt;p&gt;Earliest example of ABM dates back to the 1940s, with John von Neumann's universal constructor. This non-computerized model described a cellular printer that could print itself with the printing instructions in its own cells. Later on in 1970, John Conway invented The Game of Life. This game is "played" by configuring a grid of cells with rules of interaction and observing after the game is started. Fast forward to 2022 and there are over a dozen ABM softwares. I went with NetLogo, as it is user friendly and quick to work with.&lt;/p&gt;

&lt;p&gt;Tutorials: &lt;a href="http://ccl.northwestern.edu/netlogo/bind/"&gt;http://ccl.northwestern.edu/netlogo/bind/&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LhWWkKGD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k9xylocsixqbty0qe8w0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LhWWkKGD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k9xylocsixqbty0qe8w0.png" alt="Image description" width="880" height="893"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mfdL9MfR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5a5h1uuxcpfn20vc1nvv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mfdL9MfR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5a5h1uuxcpfn20vc1nvv.png" alt="Image description" width="880" height="859"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--APGGZ4mH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vnd818rn72bh1eq54hkn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--APGGZ4mH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vnd818rn72bh1eq54hkn.png" alt="Image description" width="816" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SN8Iy70V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8s0t0yty3cwbfahdn157.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SN8Iy70V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8s0t0yty3cwbfahdn157.png" alt="Image description" width="880" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sources&lt;br&gt;
&lt;a href="https://en.wikipedia.org/wiki/Comparison_of_agent-based_modeling_software"&gt;https://en.wikipedia.org/wiki/Comparison_of_agent-based_modeling_software&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://towardsdatascience.com/intro-to-agent-based-modeling-3eea6a070b72"&gt;https://towardsdatascience.com/intro-to-agent-based-modeling-3eea6a070b72&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://ccl.northwestern.edu/netlogo/docs/"&gt;http://ccl.northwestern.edu/netlogo/docs/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>netlogo</category>
      <category>modeling</category>
    </item>
    <item>
      <title>High Level Programming Language 0-60</title>
      <dc:creator>Greg Arnold</dc:creator>
      <pubDate>Wed, 22 Dec 2021 18:04:46 +0000</pubDate>
      <link>https://forem.com/arnold805/high-level-programming-language-0-60-5cip</link>
      <guid>https://forem.com/arnold805/high-level-programming-language-0-60-5cip</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Has the need for speed ever caught you off guard during a coding session? If so, buckle up hit the turbo button and get ready as we dive into a study of performance of a few popular high level programming languages.&lt;/p&gt;

&lt;p&gt;This study was done by Zahida Parveen and Nazish Fatima, Department of Computer Science, University of Ha’il, Hail, Saudi Arabia and is published in the International Journal of Computing Academic Research (IJCAR). It focuses on Java, C# and C++ and the main criteria are: syntax, Lines of Code, MachineDependency, Compilation Time, and ExecutionTime, Speed or efficiency and flexibility. the ultimate goal of this study was to generate more understanding of the best characteristics and strong points in some high level programming languages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Properties of Selected Languages
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Java
&lt;/h3&gt;

&lt;p&gt;Originally called OAK, it's main goal was to create a language to act as a bridge for communication between home entertainment appliances, and later expanded with global networking into the need of browsers. Simple syntax by omitting complex data types. Java's speed is slower than other languages, as it does not directly compile the program to machine code until run time, an attribute of being a portable language. Uses a special scheme to have its highest performance that is interpreter run at full speed without accounting for run-time environment. Java makes sure that memory is available on demand, achieved by running automatic garbage collector at a low priority background thread.&lt;/p&gt;

&lt;p&gt;Basic syntax example:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZMxfZjTK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jgd7lfmfgdhsi742b8ht.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZMxfZjTK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jgd7lfmfgdhsi742b8ht.PNG" alt="Image description" width="661" height="241"&gt;&lt;/a&gt;&lt;br&gt;
Mostly considered as independent of machine or platform. &lt;/p&gt;

&lt;h3&gt;
  
  
  C sharp
&lt;/h3&gt;

&lt;p&gt;Originally called Cool (C-like Object Oriented Language), but was not finalized due to trademark reasons. Most of the main concepts C# borrows from Java yet it is modern, simple and general-purpose object oriented language. The programs written in C# need .NET Framework to be executed .As .NET framework is a Microsoft product and it only supports Windows platform. Recently a 3rd party framework, MONO has been introduced to run ASP.NET on Linux. All the .NET languages have slow speed when compared with other like Java and C++. The reason behind this is C# consuming high memory and the consumption cannot be controlled with ordinary methods. Another reason that cause the slow speed and deficiency in C# language is JIT low level optimization as the program optimization is done at runtime so cannot be take too much time. This factor can also affect the speed and efficiency to some extent. Performance is is not very high, yet is popular due to many of its characteristics.&lt;/p&gt;

&lt;p&gt;Basic syntax example:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0sqgePQ5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mq8xpbn3ozwhtl5h0gl.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0sqgePQ5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8mq8xpbn3ozwhtl5h0gl.PNG" alt="Image description" width="589" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  C++
&lt;/h3&gt;

&lt;p&gt;An extension of C  by Bjarne Stroustrup to integrate Simula structures into C to improve distributed computing in 1979 with first commercial implementation released in 1985. Considered very fast and powerful, primarily due to already have been compiled to machine code. Built to run on a specific machine efficiently, and generally assumes a good programmer is behind the keyboard due to being a harder to use language. This is due to a mix of lot of low level control with high level control. C++ integrated both object-oriented programming and procedural programming in its design. Since it is so platform dependent, , the easiest solution is to use a specific library for that system (in this case Microsoft C++ .NET) or connect to existing system utilities to do&lt;br&gt;
the work (as can easily be done on UNIX systems). The same program can be developed quickly in Java and still be cross platform compatible simply by using the included standard networking libraries.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hrLAT7P7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3efg15l7hz30hqh2l4ka.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hrLAT7P7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3efg15l7hz30hqh2l4ka.PNG" alt="Image description" width="880" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Performance:
&lt;/h2&gt;

&lt;p&gt;Each language was given a common program, "Printing Fibonacci Series".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---29jeFMg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x1xe29f822reonp9pvib.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---29jeFMg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x1xe29f822reonp9pvib.PNG" alt="Image description" width="880" height="871"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5BzZb_Tt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n287cpd9ph47yv9sjsd6.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5BzZb_Tt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n287cpd9ph47yv9sjsd6.PNG" alt="Image description" width="693" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lines of code (LOC), is a software metric used to determine the size of a computer program. The size of program can be estimated by counting the number of lines of the code in its textual form, the size of program can help in estimating the programming productivity or maintainability. More lines of code means more efforts needed to maintain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AFjriUC5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8h3x7tkzjhuaq64l7epr.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AFjriUC5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8h3x7tkzjhuaq64l7epr.PNG" alt="Image description" width="880" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To calculate the lines of code used in these programs a common program “LocMetric” was used to count the number of lines in Fibonacci series program. LOC; C Sharp: 68, Java: 34, C++: 20.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wIphhosA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3mxw71amkkwp3xgi1jux.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wIphhosA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3mxw71amkkwp3xgi1jux.PNG" alt="Image description" width="880" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0q-03IXK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0a38kig7ivbsfy5q9ngo.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0q-03IXK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0a38kig7ivbsfy5q9ngo.PNG" alt="Image description" width="800" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It can be concluded that C++ has the advantage of having the minimum lines of code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VOKxcbm7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ax572w485j3bokstubo0.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VOKxcbm7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ax572w485j3bokstubo0.PNG" alt="Image description" width="880" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mboXxjpx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v1m2z1kplo1ciskx5jey.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mboXxjpx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v1m2z1kplo1ciskx5jey.PNG" alt="Image description" width="880" height="537"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Fi88hY1_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l72ykrderg0sqy43yw4c.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Fi88hY1_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l72ykrderg0sqy43yw4c.PNG" alt="Image description" width="880" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;This research concluded that there is no ideal language to choose for all purpose, rather each language has its own strengths and weaknesses depending on the project requirements.&lt;/p&gt;

&lt;p&gt;Source &lt;a href="http://www.meacse.org/ijcar/archives/109.pdf"&gt;http://www.meacse.org/ijcar/archives/109.pdf&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>cpp</category>
      <category>csharp</category>
      <category>performance</category>
    </item>
    <item>
      <title>Programming &amp; GIS</title>
      <dc:creator>Greg Arnold</dc:creator>
      <pubDate>Wed, 08 Dec 2021 17:59:15 +0000</pubDate>
      <link>https://forem.com/arnold805/programming-gis-1a9n</link>
      <guid>https://forem.com/arnold805/programming-gis-1a9n</guid>
      <description>&lt;h2&gt;
  
  
  What is GIS?
&lt;/h2&gt;

&lt;p&gt;GIS (Geographic Information System) is a system of spatial data creation, management and analysis. It connects location, where things are, to descriptive information, what things are like there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why programming is vital in GIS
&lt;/h2&gt;

&lt;p&gt;Utilizing programming and scripts can unlock endless possibilities in map editing and analysis. It can allow users to create custom buttons and functionality that was not provided in off-the-shelf GIS software. An organization can dedicate one member to create custom functionality, then distribute to other users who are not as familiar with the process; just like how libraries and code is shared in web and app development projects. Automating workflows is another benefit. Mapping processes that previously required manual intervention for analysis and QA/QC can be expedited with scripts   &lt;/p&gt;

&lt;h2&gt;
  
  
  Prominence of Python in GIS
&lt;/h2&gt;

&lt;p&gt;There are numerous programming languages utilized with GIS software, but the most popular GIS software such as ArcGIS and QGIS integrate Python, as it is generally a beginner friendly for users with limited or no background in programming and can be efficient in creating scripts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;p&gt;ESRI ArcGIS ModelBuilder allows users to create, edit, and manage workflows of geoprocessing tools. It is like a visual programming language, resulting in Python code that can be used again later and distributed easily.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcxrd43qkz9p794amfoji.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcxrd43qkz9p794amfoji.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Traditional Python programming in QGIS for more experienced (or brave!) users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgzdzeskv0ezdjxff3e30.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgzdzeskv0ezdjxff3e30.PNG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Programming &amp;amp; GIS are important to me
&lt;/h2&gt;

&lt;p&gt;I have a degree in GIS and have always had a passion of mapping. Programming allows me to integrate my new interest of software development into my mapping passion and open doors to exciting career opportunities.&lt;/p&gt;

&lt;h4&gt;
  
  
  Resources
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.esri.com/en-us/what-is-gis/overview" rel="noopener noreferrer"&gt;https://www.esri.com/en-us/what-is-gis/overview&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.e-education.psu.edu/geog583/node/67" rel="noopener noreferrer"&gt;https://www.e-education.psu.edu/geog583/node/67&lt;/a&gt;&lt;br&gt;
&lt;a href="https://desktop.arcgis.com/en/arcmap/10.3/analyze/modelbuilder/what-is-modelbuilder.htm" rel="noopener noreferrer"&gt;https://desktop.arcgis.com/en/arcmap/10.3/analyze/modelbuilder/what-is-modelbuilder.htm&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.gislounge.com/use-python-gis/" rel="noopener noreferrer"&gt;https://www.gislounge.com/use-python-gis/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geospatialworld.net/blogs/geospatial-python-do-you-need-to-learn-it/" rel="noopener noreferrer"&gt;https://www.geospatialworld.net/blogs/geospatial-python-do-you-need-to-learn-it/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>gis</category>
      <category>scripting</category>
    </item>
  </channel>
</rss>
