The Thin Data Pipe

Diskettes I recollect a time, seven or so years back, I was at a place where I celebrated the successful download of a 10MB installation file. I would compress it (WinRar), chop it up and then save it to several 1.44MB diskettes!

We have progressed well since that time but I still find myself using a thin pipe to tape to the internet!

A Tinkeror’s Necessity

For any ‘Tinkeror’ internet access is an indespensable assay but, the average Joe has to tinker more to get ahead. With the boom and proliferation of FOSS tools, ability to download at will is largely a given, the means, quite the contrary - for my part of the world. The connections to the interweb are there and the speeds are reasonable. The challenge is what you trade for to get your data chunk. Some great geo-toys even assume you’re always connected to the internet. Well, thanks to initiatives like the Smart Cape, I can budget the 500MB data allocation per month to download only critical programs to my ‘workbench’ or trusty S4 Mini mobile phone. But wait, I need to

$ rake deploy

to have my latest blog post published, and that requires some data currency. Thanks to git, I don’t need to push a file horde, just a simple markdown text file and a few pics. The 150MB/ month I get from my Service Provider atomises within four days of receiving it - provided I decide to be conservative about visiting Facebook. Trouble starts when I need that 729MB Landsat 8 file to check out what is happening this rainy season with the once disastarous Tokwe-Mukorsi Dam.

Landsat Data Download

I could download just the bands I need but, even that would deplete my monthly quota by (~59MB x 3) 35% for a true colour band combination. This is too much to sacrifice just for one project. Work arounds have to be fathomed, working with a D-Link 3G 21Mbps, USB Modem and Mobile phone (Mobile hotspot functionality).

# Wait For Night

I’m sure am not the only tinkeror who sacrifices sleep now and then.

Work all night, Sleep all day, Wake up at 8pm really confused

@lyzidiamond

MTN Night ExpressAt night, one can get a bit of reasonably prized data. I ran a USSD request on my service provider (07 May 2015) and got ‘Night Express’, 1GB for R10. Remember this will be chowed by a single landsat scene multiband image and would cost me a few hours of snooze.

An alternative service provider has a similar data deal:

But there is a catch, I get to sleep a bit later. Yay! Cell C Night
Data

# Sip or Chow & Work

There are 101 restaurants and Cafes with ‘Free-Wifi’ access. But having to trade 50MB/ day for your phone number and email address is a bit too much. Don’t even start on the idea of moving from Cafe to Cafe until a project is done. Sipping on a cup of coffe for two hours! Really?

Google Search is like a pencil and scrap pad. I transfer mental notes to there. More often than not I have typed Define:{Mind drift idea here} in that nifty search box. The thought that my browser is connected to the interweb never occurs in all of this.

# A Mesh Of All

Well, a 40Mbit/s ADSL line in the house, enabling one to read ‘Done!’ after a repository clone command simultaneously with the lifting of the finger off the ‘Enter’ key would be ideal. Until then, patience and data budgets remain the order of the day for the average Joe.

Installing Octopress on Windows 7 for Blogging on GitHub

Having a working Octopress install on Windows 7 was not straightforward for me. This post outlines the steps I would recommend to have a working environment.

Important: There are upcoming changes to the whole of the Octopress ‘platform’ so please readup, but while we wait …

Step 0: Pre-Requisite:

To have the environment going, you’ll need to have git up and running. But to save yourself the tears setting up SSH and permission stuff, I recommend you download and install Github for Windows. This will provide you with a ‘reliable’ command line interface. The correct paths for applications readily setup for you.

Step 1: Install Ruby

My working environment used the installer, Ruby 1.9.3-p194 (This might be an outdated version but it works well). Download and install the package, be sure to tick the check-boxes as shown in the image below (This will save you “command not found” errors later on) Ruby Install

Step 2: Install The Development Kit

Download DevKit-tdm-32-4.5.2-20111229-1559-sfx and extract this to C:/RubyDevKit.

Step 3: Create/ Choose Your Repositories Folder.

Create a folder, something like c:/github. In here we’ll store the files and folders which make up our blog, configuration files, posts, images, etc.

Step 4: Setting Up The Environment At The Command Line

Git Shell Now, using the Git Shell that was co-installed when you installed GitHub for Windows, run the following command:

$ cd c:/RubyDevKit
$ ruby dk.rb init
$ ruby dk.rb install

Thats should have the Ruby environment setup for you. Now continue with:

$ cd ..
$ cd c:/github          
$ git clone git://github.com/imathis/octopress.git yourusername.github.io

This clones the octopress repository. Now open the folder you cloned Octopress to, viz yourusername.github.io. Locate the Gemfile and using a text editor (I use Notepad++), open the file, replacing https with http. This is important!

Now do:

$ cd c:/github/yourusername.github.io
$ gem install bundler
$ bundle install

If, after everything is done the word error does not appear on the command line, you’re good to go. Still on the command line, continue with:

$ rake install

This installs the default Octopress theme. I wanted a different theme, Justin-Kelly-Theme in particular, so had to run:

$ git clone https://github.com/wallace/justin-kelly-theme.git ./themes/justin-kelly-theme
$ rake install['justin-kelly-theme']

Step 5: Setting Up A Repository on GitHub

You probably already have a GitHub account. Logon to GitHub and create a repository yourusername.github.io. Never mind the must have README suggestion by GitHub. Copy your SSH clone URL to a text editor or clipboard. It is similar to git@github.com:yourusername/youruserame.github.io.git and you can see it when you visit your newly created repository. So you should now be having https://github.com/yourusername/yourusername.github.io

Go back to the command line and run:

$ rake setup_github_pages

You will be prompted for a url: type git@github.com:yourusername/youruserame.github.io.git

You can then continue on the command line with:

$ rake generate
$ rake deploy

Opening http://youruserame.github.io in your browser should land you at your sparkling new blog, albeit, without content.

Now it’s time for some content creation.

The Octopress Website has excellent documentation to get you started. So head over there and get blogging.

Extras

After several tweaks to my blogging environment, I added a sidebar twitter widget, Comments via Disqus and Search(Currently in the works), to have a more appealing blog. Tutorials to do this are ubiquitous on the web and since i didn’t struggle setting them up I saw no need to include the howto with this post. I Include references below for quick access.

“ Parting Quote ”

@erickndava, March 2015

If the problem is IT related in whatever manner, and you can’t seem to find the solution, it’s probably on the internet - you just have to google harder for it.

#postscript

> Murky waters. (tl;dr)

After I had initially setup my environment according to the procedure outlined above, at somepoint evrything just broke. (could have been some Windows update)I lost my debut post. Tried to setup again using, Jekyll on Windows. That too had me in circles of troubleshoot. So I did the whole thing over, following the procedure here and Voila! I’m back in business.

Why another guide?

  • In the event my current environment goes awry, I will have a reference should I need to start over.
  • This is a deliberate move to force myself to document stuff - the usual thing for me is once I have it working successfully, I continue, ‘storing’ the procedure/ methodology.

  • Git vs GitHub for Windows - Initially I installed git and attempted through command line to set up SSH keys and all. That had me in circles troubleshooting. I must say there is great documentation out there so a novice can start with git. Since my current objective was to BLOG! I decided to quit the git-command line route and installed GitHub for Windows. What a breeze! (I am planning to deepen my knowledge of git so planning on even using GitEye for its graphic cues to git commands)

Wordpress, Medium, Tumblr…Anyone?

I chose Octopress and blogging on GitHub over other ‘easier’ methods for a few reasons:

  • This becomes my gentle introduction to git and GitHub
  • I like to be in ‘control’, viz I enjoy seeing cogs of a technology/ implementation moving.

Introducing neaRThings

On Names

So, I decided to start a blog and I picked a name - neaRThings, my succinct version of Tobler’s first law of geography, should reflect the domain I am passionate about - ‘geo’ and atleast, well, be intriguing enough.

Nowadays people don’t have time for verbose articles and I’m glad you’re on the third sentence already! My few professional years have led me to realise that tinkerers make things happen. I watched the Leaflet Mapping library grow from being just a speck on GitHub to the time it took on the Google Maps API. I also witnessed MapBox hire this Leaflet dude as I watched them evolve since I was following them closely because of TileMill.(Evolved to Mapbox Studio)

Tinkering gives one an edge, with contentment, without the restrain of structured seminars, classroom lessons or guided training. As a tinkerer I can quit when I want to (rarely) without feeling guilty about it. Research while troubleshooting, opens up (often unwanted) divergent paths from the task at hand and the tools, technologies and tutorials stumbled upon end up being appended to an ever growing ~ TODO!

Hencefrom

I learned about QGIS when it was still 0.7 (It’s at 2.8 at the date of writing this article), I was just about to leave varsity then, later ditched the prospects of becoming a Land Surveyor post graduation after having been made to wait the whole day by the would-be-mentor, only to be told to come back the next day. The first GIS related job was with an institution that had spreadsheets for a Land Information System - I was heart broken. This was nothing near what had been said in the interview and fell far short of what I had read from ArcUser Magazines at college. A few years later I met a mentor like no other, Johann Groenewald of Tracks4Africa. He led me on a teach-yourself path and gave me room to do it. I discovered QGIS again and PostGIS as well this time. Things have not been the same since.

(Aside: you may want to readup of T4A products and check out their Africa Map. Their business model still befuddles me. )

Along the way I discovered gis.stackexchange.com and jumped onto twitter. I was already faithfully following geobloggers amongst them James Fee - for starters, then the list grew to warrant the use of Feedly and not unparsable bookmarks in the browser. During my regular reading I bumbed into a statement that almost described my situation and led to serious introspection. It was by Paul Ramsey on his blog.

“…a career where 90% of the activity is actually in data creation (digitization monkey!) and publication (map monkey!), not in analysis…”

It was an eye opener regarding where I wanted to be professionally. Ever since I have been endeavouring to conform to the Spatial-IT padigm.I also took to heart the advice he gives in one of his presentations:

“Learn something new or hard. Learn something uncomfortable.”

And that was not the last on the matter as I kept coming across similar thought provoking and spurring tweets:

Inspired Tweets

Well, I had left varsity thinking spatial was special!

Henceto

Compass Direct thyself.

From the one and many blog posts I have read. I drew the conclusion - the best way to learn a technology, programming language or tool, is to be handson with it. Get to do some project with it. Thus the direction I am taking is to learn as much as I can through projects that come to my mind … light bulb moments.

Another Blog?

The day job doesn’t necessarily task me enough in the directions of the many tools and technologies out there. Sufficient for a day’s work are the tools in the office. For diversity I choose to waddle the “forest”. On this blog I intend to share my thoughts and experiences. Several posts on career development I’ve read up on recommend blogging for various reasons. I decided the following were relevant to me:

  • Improve my writing skills. - I like poetry and ‘twisted’ english. So I will see how much of that can be used in technical writings. Metaphors say?

  • Cement the things I learn. - By writing down procedures, that forces one to think about it, cementing the concepts in the head and hopefully birthing alternative approaches.

  • Re-share what I have Read-up - rewrite what I would have learnt. Often I have used steps of ‘how-to’ from more than one blog post to get something right! Let others rediscover it. So I see no harm in having three pseudo-identical articles on the web.

What Tree?

Yes, I am using the Windows Operating system. I have had my stint with Linux, did 101 data recoveries from broken Windows. At one time I became an OS ethusiast, carrying around several distros on 3.5 inch floppy disks. I even damned the machines I was using daily, calling them Windoze.The revolutionalism got me nowhere! The food on my table and the railment I gait in, have been earned from spending atleast 8 hours a day using this operating system. Working against it doesn’t help but rather with it. Regardless, I can presently fire-off Ubuntu off my VirtualBox installation. To add to my consolation, one of the ‘geo’-bloggers I read after makes continued use shameless.

Floppy
Disk

(Aside: At one point in my career I had to unistall Ubuntu from 30 PCs or so to install a Windows OS just because the adoption of OpenOffice and such just couldn’t happen. It was retrogressive to try and enforce it.)

In The Meantime

off to a project on GitHub for Geo - the thought “I need to learn JavaScript fast”, dogging my path after 2014 end of year geo-discussions, a turf call!

“ Parting Quote ”

@briantimoney, April 2012

Learning spatial SQL may not help getting a $45K job now, but is critical to getting a $85K job three years from now.

#postscript

The cost (gain) of the first post

It has been the ascent, albeit slow, of steep and slippery learning curves and unfamiliar terittory. There was serious tyre-kicking just to get the framework properly set-up - git, Ruby, ruby-gems… had to resort to using GitHub for Windows when SSH keys and things became a tangle while setting up git (command line).

Setting up Ruby was toughest, top-hit Google Search Octopress setup tutorials led me into infinite loops of troubleshooting. After weeks of trying, I had to do the whole Ruby setup ‘thing’ all over after finding this excellent and straight forward article on the matter. In a nutshell tools and apps that were used:

  • Octopress - [Tool] Setting up, customising for font, but then git was a pre-requisite!
  • GIT - [Technology] The tears and sweat of ensuring it installed and was working.
  • Markdown - [Language] Learning the language. Luckily Cheatsheets made it easier.
  • SublimeText - [Tool] Learning the Keyboard shortcuts. Searching for useful plugins. Must say OmniMarkupPreviewer did come in very handy while editing the blog post

Well, I must say the temptation to dump the Octopress path and go for WordPress (on Openshift) was great at one time but I prevailed. Tinkerers tinker until it works!