Looking for additional tools for your coding toolbox? Here are 4 useful GIS developer tools you may or may not know about. Oh, they are also FREE!
Some of the little things Notepad++ has will make it hard to use other notepad programs: highlight the corresponding open/close tag when you click on either tag, and also allows the collapsing of sections based on tags or indentation (python). Line commenting (CTRL+K) and uncommenting (CTRL+SHIFT+K) lines of code is also very handy and it understands the current language commenting syntax. On the topic of languages, there are tonnes supported by default, but you can also add custom styles, and add additional languages if yours is missing - such as Github markdown.
A few great plugins include:
- Compare: Side-by-side file comparison with every line highlighting for new/deleted/changed content.
- DSpellCheck: Simple spell checking options.
- Tidy2: A plugin to add easy HTML tidying to Notepad++ with various config and pre-set options.
- More great plugins are listed at Backslash.gr and Lifehacker.com.
If you’ve never heard of this application, be warned: You might be upset you haven’t heard about it sooner. 7-zip works with many formats you use every day: ZIP, DMG, ISO - and it also works with 32 other formats you may deal with from time to time: RAR, TAR, GZIP to name a few. 7-Zip also includes an open architecture, a “7z” format with LZMA/2 compression, AES-256 encryption, and Petabyte size support.
So why mention 7-zip when discussing developer tools? Well, beyond being a great compression/extraction tool, it also includes full access via command line! With two different ways to access: A limited functionality EXE; or full featured EXE+DLL, you have all the same features as the desktop GUI. These command line options are well document and work great with Python and .NET projects. You can create a copy of the EXE+DLL into any python directory to have a portable copy of python code with no installation steps required of the 7-zip tools. PS. It’s only a 1 mb download.
Already mentioned a few times, Python is a great development environment for any size project. It’s included with many popular GIS software applications and can be extended way more than the custom scripting languages from the days of old (looking at you AML and Avenue). Python is available in both 32/64-bit, and runs on over 21 different operating systems and environments.
Python’s strengths start with an amazing support community and extend to the number of supported environments, easy to read/write/understand the language and syntax, and the module design. For the Esri community, Python has become an integral part of the ArcGIS architecture (both desktop and server thanks to a growing number of ArcPy functions).
As for notable modules, two always jump to the front of the for me:
- PYODBC: Allows you to use ODBC to connect to almost any database from Windows, Linux, OS/X. It also simplifies database connections while built on the Python Database API specs. Define a connection string or ODBC connection to your favorite database and you are off to the races.
- rPython: Adds the powerful R statistical computing and graphics programming objects into the Python environment. There are some great demos using Esri’s Spatial Analyst extension, and passing the output to R for additional analysis.
Are you currently using a revision control / source code management system? If not, Git is a great option. No longer will you need to make copies of your code with cryptic names and track each one by yourself.
Git is a very powerful revision and source code management system (command line focused), with GitHub and GitHub for Windows making it super easy to get started with a great GUI and little or no command line required. You can work on local repositories with GitHub for Windows as well as complete synchronization with your online GitHub account. GitHub also puts you into a community where other developers can add/enhance/fork your code to help move ideas and code forward. Many companies are also posting code snippets and applications online with open licensing to build their communities and development environments.