I passed my registration exams (and other news)

I know it’s already a month into the new year, and I haven’t been active on the blog for a while, but that’s mostly because I had nothing to post. However, that will all be changing because in January I returned to Aurecon. This time around, I’m fulfilling a technology expert role within the Asset Management team, so I’ll be designing and driving our technology strategy going forward. I’ve got a few interesting things lined up, particularly around spatial data warehouses and ontologies, so I’ll be posting about it alot here while I work through my ideas.

I also got my SAGC exam results today – 100% for Paper A and 96% for Paper F, so once the fees are paid, I will be registered as a Geomatics Technologist. When I’m finished with my BscHons next year, I’ll be able to upgrade to Practitioner as I’m just short of the academic requirement.

Speaking of Hons, I just registered for the 2nd (final) year, and am currently studying for 3 exams next week. To be honest, it has been painful studying, simply because many of the concepts we have discussed are outdated and having been in industry now for almost 6 years, it is irritating to have to study these things. I’m just pushing through to get that piece of paper. Hopefully I get a good research topic for the project (or can convince one of the supervisors to take me with my own topic). I’ll worry about that after the exams.

I’ll probably be able to return to my normal posting schedule in March. I just thought it was about time I post something.

Aaaaand now I'm thinking about how much I miss Community. #SixSeasonsAndAMovie

Aaaaand now I’m thinking about how much I miss Community. #SixSeasonsAndAMovie

The issue with names

I recently underwent a name change, and though I have yet to make it official (who wants to waste a Saturday at Home Affairs?), I have been thinking about the implications of my name change.

Now that my surname contains a hyphen and is 18 characters long (with my full name now 26 characters), I’ve been wondering how I should abbreviate it. Some hasty Googling shows that there is no standard for this. My entire life I just assumed that the first part of the surname takes precedence so the initials remain the same. In other words, Cindy Lee Williams (CLW) becomes Cindy Lee Williams-Jayakumar (CLW).

I toyed around with the idea of dropping my middle name (itself having been an issue with people assuming I’m Cindy-Lee and not Cindy Lee) to become Cindy Williams-Jayakumar (CW), but the thought of having only two initials terrified me.

I came across this blog post which calls out the assumptions programmers make when building systems which need to accept names (I’m guessing that’s about 95% of all systems). Now that my name has become slightly more complicated, I’m going to be more aware of my own assumptions when writing code, and not just when it comes to validating names.

I’ve also decided to be a bit more difficult and use CWJ as my initials. I had CLW for 27 years, it was time for a change.

DAT201x Querying with Transact-SQL: A timely MOOC

I mentioned a while ago that while I was chuffed that Microsoft has started offering MOOCs on edX, I was not at all pleased about the peer assessment requirement in DEV203x.

peer assessment meme

Fortunately, another MOOC caught my eye: DAT201x Querying with Transact-SQL. The timing could not be better – I’m currently preparing for my first university exam in 5 years, so I’m trying to get back into that frame of mind. The exam is focussing more on the theory of database administration, best practice etc (so pure study work – my favourite!), but one of the assignments included a question where the answer was to write a query in T-SQL.

While I did that in undergrad, things have gotten understandably hazy over the years. Coincidentally, I had to modify some queries at work on one our SQL Server databases recently, so after not doing anything pure SQL related in 5 years (besides the SQL stuff in ArcGIS), in the same month I get hands-on experience at work, plus this MOOC to refresh my memory. Just in time for the exam in 3 weeks. Yay!

Also, no peer assessments. Just pure learning.

My approach to studying

I have always studied alone, even in high school. Study groups made absolutely no sense to me. Particularly for the study subjects I took (Geography, Biology, Computer Studies (the theory part), History), I would tend to zone out in class and not listen to the teacher. In the evenings I would get busy underlining, highlighting, writing possible essay answers and memorising it all.

That’s why I could take on History as an extra subject in Grade 11, and why I got 1st position for it at the end of the year, as well as the highest mark for it in Matric (with distinction). Getting the notes from a classmate, studying the work on my own, and only showing up to write tests and exams, resulted in those achievements. I’m pretty sure the History teacher was not too happy about that fact.

That is not something I’m bragging about – I’m saying it because just like how some kids were good at sports, I am good at studying. I’ve always enjoyed the act of learning – my parents never had to force me to study for a test, or draw up a schedule for me during exams. I did those things out of my own, because to me, learning is fun. For reals.

I studied full-time at Stellenbosch University when I was completing my undergraduate degree, BSc Applied Geoinformatics. In my first year, I attended most of my classes; missing Maths was a nightmare, and I had to attend Biology because I hated the practicals, and would have had no idea what was going on if I didn’t.

By second year, I was over it. From that point on, I would attend class for about the first 3 weeks, then only sporadically after that. I did not see the point of a lecturer saying words at me – I needed to be in my room, music on, highlighter in hand, absorbing the information. Again, this approach is what helped me obtain distinctions in most of my modules at university – at least, those that weren’t Computer Science.

When I made the decision to postpone Computer Science for one year, effectively adding an extra year to my studies, I did not do it on a whim. As I had started school a year earlier, back when we were still allowed to, I matriculated when I was 17, not 18. As a result, I had an “extra” year due to me anyway, so I would graduate a year later than I was supposed to, but I would be 21.

I could not, in my mind, link the theory of CS with the practicals we were doing. When I failed the 2nd year Data Structures & Algorithms module, the only subject I have ever failed, I was furious. This was something I could not study my way out of. So before I retook the module the following year, I prepared. I went through all the previous exams and tests, I drew up detailed notes, and started practicing on the old assignments. I went from failing the first class test the first time with 30% to getting the 3rd highest mark (above 70%).

My point is, I have never been able to work in a group when it comes to studying. This is why I can’t take the fact that most of the MOOCs I want to join on Coursera seem to have a discussion forum/peer assessment component. This is also why Unisa is the best institution for me right now – no contact time at all, no classmates, online submission of assignments, and lecturer available via email if needed. Bliss.

Creating, saving and loading a custom route onto a mobile device: Part 2

In my previous post, I related my experience with loading a custom defined route onto a mobile device (my Nokia Lumia 1020) for offline navigation. This is a task I easily carry out as part of my work, so I assumed it would be easy for me to come up with a solution from the end user side instead of the config side.

After trying 4 other technologies (here, Google Maps, Bing Maps, ArcGIS), I soldiered on, despite feeling dejected. I have come to embrace that feeling, because it often appears when I have been staring at a piece of code for hours. It always signals that a breakthrough is coming.

Everything up until this point then led me to Strava. Since I am not a cyclist (you need to be able to ride a bike in order to be one of those), I did not realise that this is a common task for them. I only discovered this when I performed a convoluted Google search for “best mobile app upload custom routes+navigation”.

I figured I would need to convert the route to GPX, create a Strava account, upload the gpx file manually, and use third party app Striver to connect to my Strava account so that I could view my custom routes.

I tried converting my feature class to gpx before I realised ArcGIS only has a GPX To Features tool, not the other way around. I downloaded a script from the always great Kevin Hibma to quickly do the conversion.

Once I figured out where Strava hides their manual activity upload button, I selected my gpx file, only to be told it won’t accept file names with “foreign characters”. As a GIS person, who has “always _, never ” tattooed somewhere on my brain, this was unacceptable.

Against my will, I changed the underscore to a space, only to be told that I could not upload a gpx file without time information. That is where my ride with Strava ended.

Now that my horizons had been broadened, I uploaded the gpx file to my OneDrive, and downloaded the GPX viewer app on my phone. I connected my OneDrive to it, and could view the gpx file in the folder, but it refused to download onto the phone.

At my wits end, I ended up at Bikemap. Not hoping for much, I uploaded my gpx file, which Bikemap very kindly accepted and displayed for me. I logged into my account on my phone using the official Bikemap app (who would’ve thought?) and there it was. Too bad it can’t do turn by turn offline navigation. Oh yes, here maps can do that….

I feel like this shouldn’t be this hard. I ended up looking at my planned routes before leaving, and using here maps to navigate there in online mode so that I could monitor the traffic.

I am prone to going for the most complicated solution when a simpler one exists, so what this all boiled down to was: Can I predefine a route, load it onto my mobile device and navigate that predefined route using offline turn-by-turn navigation? It would seem to me that the answer is no.

Creating, saving and loading a custom route onto a mobile device: Part 1

I’ve decided to post this here and not on my personal blog, even though this problem arose because of the awesome holiday I had planned. This has turned into a little personal project, so I tried to approach it from an end user point of view, instead of an enterprise GIS point of view. I scheduled several places to visit, and wanted to optimise the routes to these places based on my preferences, not time or traffic etc.

Here+logo+2012 google-maps-logo Bing_Maps_blue20logo ESRI_ARCMAP_transparente

  1. I created a collection on here.com and diligently added each place, along with a note describing which date the place would be visited and in which order.

    Naturally, I forgot that saving a custom route to a collection in Here maps is an absolute pain, and I can’t save it offline anyway.

  2. I then searched if Google Maps can do it. Moving on.
  3. Next, I tried Bing Maps. To my surprise, and similar to how here maps surprised me, Bing Maps allows you to add places, create polys and lines, set styles and export to KML or GPX! Colour me impressed.

    With my Microsoft account signed in, I added two places and selected the route I wanted. I then launched Maps on my Windows Phone to see the fruit of my labours. Of course, nothing happened.

    A quick Google search (sorry Bing, but it’s really never going to happen for me) confirmed that places would synchronise between Windows devices, which I can verify as places I added in the Windows 8 Maps app do appear on my phone. However, they do not synchronise with places added through the web interface, even though it’s the same Microsoft account. Sigh.

  4. This is how I ended up back in ArcMap, using the Find Route functionality, and converting the route graphic to a feature class so I can GIS it up nicely. However, generating each route and converting for each feature class did not appeal to me, even by writing a script to do it for me. Ultimately, it would still leave me with pretty jpegs, and I am not setting up an ArcGIS Online trial to load in my phone just for this.

Home is where the GPS says you are

Yesterday during Kevin’s presentation on our mobile data capture workflow, he brought up an example of insufficient training/assumptions of user aptitude. The fieldworkers were capturing sign posts, and the way the schema was structured was that the device prompted for a photo of the sign before asking for a GPS point. The fieldworkers would cross the road to get a nice picture of the sign, which is great, but then they would take the location of the point where they were standing, without crossing back to the pole.

The end result contains points which are not true reflections of where the poles are. If the photos were stored as geotagged attachments, we could extract the correct location from there, but that’s an additional unnecessary step. If the fieldworkers were in a road with >2 storey buildings, such as in most cities, then GPS error could also add complexity to the issue. If the photos were stored as embedded rasters, then there would be no secondary location information stored as it would be embedded within the incorrect GPS point.

My point is, when Kevin mentioned this example, everyone laughed when he spoke about the point being captured in the wrong place. It’s not like he made a joke, as he was just saying what happened. Only a room full of spatial nerds would understand the full implications of what he was saying, and the amount of post-processing required for something which could have been easily avoided, and then still laugh about it. It’s a coping mechanism, I think.