Leave it to Beaver

I set out early yesterday morning to photograph two things: A bridge and a beaver. I knew the bridge was likely to be there. But I wasn’t so sure about the beaver. They’ve proven somewhat tricky for me just to see let alone capture on camera.

Last week I was watching some birds with my back to the canal I was near when I heard a loud splash close behind me. I spun around and scrambled to get my camera up to my face. Unfortunately, I had my wide angle lens on and by the time I remembered to get the cap off, all I could see was a tiny brown speck way out in the water.

Yesterday was almost as disappointing. I spent a little time photographing the bridge but was getting a little tired (I’ve been under the weather since last week). I decided to start heading back to the car. After crossing back over the bridge I happened to glance over my left shoulder and caught a glimpse of what at first appeared to be a log. But the next instant I knew it was the beaver.

I wanted to climb down by the water but figured it would take too long and might scare off the little rodent. So I ran back onto the bridge and peered over the edge. I saw the beaver go under the bridge but as I watched, I couldn’t see him come out on the other side.

I stood there scanning the tangled canal bank for a couple of minutes figuring Mr. Beaver had probably submerged to carry out some business. Sure enough, I eventually saw a small break in the surface of the water about a hundred feet downstream.

I thought it was going to be a far-away photo at best but was surprised to see the little snout that was poking above the water coming closer. And he kept coming. He was staring right at me as he slowly battled the current and approached to about ten feet of the bridge.

Of course this entire time I was trying to get a clear picture of the little guy. I was wishing I could have been down at the water’s edge but after thinking about it, looking down from the bridge allowed me to see part of his body and tail. If I had taken pictures at a lower angle I would have only seen the snout and glare on the water.

I was happy to have achieved both of my morning’s goals. None of the pictures were spectacular or particularly interesting but I count it a win just to have recorded my elusive subject this time.

The Indisputable Existence of Today’s Blog Post

I just finished a book titled The Indisputable Existence of Santa Claus by Dr. Hannah Fry and Dr. Thomas Oleron Evans. In it, the authors conclude (on pages 11 and 152) that two simple logic statements are all that is needed to prove Santa Claus exists. Fortunately for those who buy the book, they then filled the intermediary 139 pages with interesting calculations, projects and mathematical formulas about things related (sometimes marginally) to Christmas.

You might be wondering why I read a book about the existence of Santa Claus in March. Well, for one thing, it was there. I like to read interesting books when I find them. I found it in passing at the library and figured I could probably keep it for a long time without anyone else putting a hold on it. Also, if they’re wrong about the premise of the book, I want to make sure there’s still time to buy presents.

This is one of those books that you could read every word of but you’d probably drive yourself insane. It was funny and witty and possibly even useful (how to wrap presents in a mathematically efficient manner) but a little too deep in parts. Or maybe I’m just not “into it” because it’s March.

Future Proofing a Technology Career

Is it possible to “future proof” a career in technology?  An article yesterday by IDG Connect proposes that to future proof your technology career you should learn “cyber security, business intelligence, data science/big data, DevOps, JavaScript and UX/UI development and design”.

Their suggestions are based on the fact that these domains are in high demand right now. But the must have technology today may be the forgotten technology of tomorrow. Basing your career on a single language or specialty almost ensures your skill set will become obsolete.

Specializing in a given tech field or becoming proficient in a particular programming language isn’t bad. But you shouldn’t base your entire career on it. A better approach is to gain broad knowledge in computer technology or programming and supplement that with specific expertise. That way when the language of the day changes or the cyber security field is saturated with employees, you’ll be able to shift to the new tech need easier and with more authority.

But there might be an even better way to avoid technology skills obscurity. In his book You Can Do Anything, author George Anders suggest that the key to securing a long lasting place in the work world is to develop skills that might be completely unrelated to what you think you should learn. The book’s premise is that a liberal arts degree could be the key to securing high paying jobs in a number of career fields including technology.

Anyone can learn a programming language. Anders says it’s “nothing that can’t be picked up in a few months of concentrated effort”. But it takes a different skill set to think creatively and apply technology training to the problems companies face. Liberal arts degrees can give you those different skill sets.

They can help you develop creative and critical thinking, communication and obtuse analysis skills among other things. My own political science degree solidified my analytical abilities and taught me how to look beyond seemingly obvious answers to problems and find solutions with more permanent outcomes. And it was my interest in political theory and intelligence that led me to a career in geographic information systems.

Having a computer science degree doesn’t doom you. Science degrees still produce some of the primary skills tech employers are looking for. But if you want to guarantee your place in today’s ever changing world of technology, hone your soft skills. Carve your own niche by looking outside of technology for the skills businesses are looking for in their best employees.

You Have To Walk The Streets

Last weekend I got up early, grabbed my camera and headed down to a local canal-front trail to take some photographs. I was only planning on being gone for about forty-five minutes. However, when I got back to my car, I discovered I had somehow lost my keys. After searching around my car and peering in through the windows, I determined that I must have lost them along the trail. I walked back along the trail. This time, instead of looking for wildlife and interesting geometries, I was scanning the dirt along the trail.

A few images from my walk:

By the time I got back to my car (again) I had already walked two miles. I looked at my phone and realized it would be another three miles to walk home and get a spare key. I’ve never been one to sit around and bemoan my situation. So I started walking.

Now the route I took to get home was one I had driven hundreds of times. It’s made up of several major roads and a parkway. As I walked, I was amazed at what I was noticing. For one thing, I wasn’t sure if the entire route was walkable. When you take driving for granted you don’t notice how accessible your route is for other modes of transportation. It turns out, it was very walkable. There was even an interchange that had a small footbridge over it that I had never noticed.

When you walk, everything is slowed down. Instead of looking straight ahead while driving 45 mph, I had time to look down side streets and notice the businesses I never knew existed. I saw entrances to trails that couldn’t be seen from a car. There were new vantage points for taking interesting photographs. I even found a dirt lot with hand-cast concrete planters shaped around found items like wheelbarrows and grocery shopping carts.

I learned two lessons from my one hour, one mile turned three hour, five mile journey. First, don’t lose your keys. Second, to really notice your surroundings you have to slow down and engage those surroundings. Park the car and walk places you normally wouldn’t. You’ll be able to see things in a way a car just won’t allow.

Simple Design is Usually Best

You can design things for a variety of reasons. You might want to create something to be the tallest or the widest or the most efficient of its kind. But unless you’re specifically trying to design complexity, the simplest and most straightforward design is often the best. My son demonstrated this recently in his design of a Pinewood Derby car for his AWANA group.

He started by determining the purpose of his car. Awards are given for the fastest car as well as the most creative. Because we were a little short on time this year he decided that he wouldn’t be able to put the level of commitment in to win the creativity award. Speed became the only consideration in the build at that point.

The classic Pinewood Derby car shape is the wedge. There are endless variations of the wedge shape but basically, you’re just cutting off half of your pine block at an angle from the bottom front to the top rear. We made a further weight reduction by removing a portion of the block on the bottom rear. At this point, we added lead fishing weights to the bottom of the car by drilling holes and gluing them inside about an inch in front of the rear axles. The wheels were installed with a slight cant so only the outside edges would be in contact with the track to reduce friction. Finally, one of the front wheels was installed high so it wouldn’t contact the track at all.

Our purpose was speed and our design reflected that by taking the most direct route.  The simplicity of the design allowed for a fast prototype and build and at the end of the night, resulted in a first place win.

The winning car

I think the principle of simplicity in design can be extended to almost anything you are trying to design. Buildings, vehicles, and story plots are all more enjoyable when their structure isn’t convoluted.

When too many different things are attempted and not allowed to stand on their own, the user gets confused. No matter how smart they are, they will get confused, if only for a few moments. Those few moments are enough to lose someone.

A perfect example of this principle is a web site. You only have seconds to capture someones attention on a web site. If your site is difficult to navigate, takes too long to load, or doesn’t immediately provide what the reader is looking for, they will quickly go somewhere else.

Ask yourself what’s necessary? Make a list and whatever isn’t on the list is something that can be removed. People think they want bells and whistles, add-ons and upgrades but what they really want is a great experience. If my son and I had complicated our car design, our experience probably would not have been as great as it was. Simplicity won the race.

Of course, if you are trying to set your work apart, designing purely with usability in mind might not be good enough. Sometimes beauty is the goal (although I would argue that simplicity is beautiful) and practicality takes a back seat.

There were many pinewood derby cars at my son’s race that were designed without a thought to speed or to winning races. Instead, they were designed to delight people who looked at them They were an extension of the designer’s personality. They made a statement about the designer’s interests.

But even right-brained artists have to be careful not to go overboard. A painting can have many different shades of color and layer upon layer to build up a scene. But there comes a point when the picture is done and even a single stroke more will ruin it.

 

The Power of Story

This pencil sketch was hand drawn by my 10 year old son yesterday. He’s been reading a lot from the Warriors book series by the multiplicitous and pseudonomous Erin Hunter. After each book he tends to get inspired to create fan art like this. Now, he’s a great artist but it’s still hard to get a 10 year old boy to sit long enough to put in that amount of detail. It goes to show how a powerful story can be the genesis of further creation.

Passion Not Profession

This isn’t one of those posts where the author says “sorry I haven’t been posting much lately but now I’m back and plan to start writing more”, although I haven’t and I do. Those posts are usually written in a burst of inspiration or guilt followed by never posting again. The post I’m writing now is happening during a semi-ketogenic stupor so it must be genuine and long lasting.

Over the last seven years I’ve been blogging, I’ve waffled about why I was writing in the first place. I originally named the site RyanRandom because I had so many interests and wanted to share them with others. I didn’t want to be tied to a single topic. However, I later felt compelled to write primarily about geographic information systems (GIS) because that was my profession. All the blogs about blogging tell you to be consistent with your subject. Pick one niche and stick to it so your readers won’t get confused. This way you’ll establish yourself as an expert in your field.

The problem is I don’t want to only write about GIS or programming. Those things are still important to me and I’ll still write about them. But what about art, poetry, fiction, photography, gardening and design? I certainly don’t have the time and energy to create separate sites around every interest (although I might change my mind tomorrow). For now, this site will be the central place for all my work. I’m just not that interested in followers, shares or Google rank.

What I’m trying to say is that going forward I’m making a concerted effort to blog my passions rather than just my profession. And instead of a consistent subject, I just want to be a consistent writer. I probably could have just said that in the first place and made this post a lot shorter. But then it wouldn’t have been at least 300 words which the SEO gurus say it should be to establish subject authority.

How Observation Influences Art

For my birthday yesterday I went to a lecture by mixed media artist Mary Robinson called Shifting Perspective. She talked about the role  our environment and experiences play in making art.

The writeup in the paper for the lecture used the word observation to describe this. However, I found it interesting that Mary never used the word observation in her talk (unless I was hearing but not really listening). We so often go through our days seeing things without really observing them. It takes a conscious shift in thinking to truly observe our surroundings and understand what we’re seeing.

This is the same concept Maria Konnikova writes about in her book Mastermind: How to Think Like Sherlock Holmes. I wrote a post about this book a few years ago and just started re-reading it earlier this week. It surprised me to spot the apt description of this lecture in the paper on the morning of the talk.

We see things every day but we rarely observe. Yet true mindfulness and observation of our surroundings and interactions are so important for everyone from photographers to programmers and everyone in between. It allows you to discover new ideas, methods of implementation and more efficient strategies to accomplish goals. At the very least you’ll get better at Trivial Pursuit.

Objective Reasoning – The Basic Javascript Object

What is an Object?

In Javascript an object is simply a container or store of properties that are related to what the object is modeling. These properties can be primitive data types, other objects or functions. Here’s an example of an empty object with no properties:

const furBearingTrout = {};

I’ve used object literal notation which is doing just what it sounds like – literally writing out the notation of an object. We do this using curly braces {}.

How to create properties

When we want to set a property on our object we can do it one of two ways:
1. Use bracket notation where we state the object name along with a property name in brackets and then assign a value using the equal sign:

furBearingTrout[“name”] = ‘Alpino-Pelted’;
furBearingTrout[“url”] = 'http://www.furbearingtrout.com/fish2.html';

2. Use dot notation where we state the object name followed by a dot followed by the property name we want to use and then assign a value using the equal sign:

furBearingTrout.name = ‘Alpino-Pelted’;
furBearingTrout.url= 'http://www.furbearingtrout.com/fish2.html';

I could have created our object with properties already assigned. Note that properties are written as name:value pairs separated by commas.

const furBearingTrout = { 
  name: ‘Alpino-Pelted’, 
  url: 'http://www.furbearingtrout.com/fish2.html'
}

How to access properties

Once we have properties we can access them using the same two methods we used to set them just without the equal signs that assign values.

console.log(furBearingTrout.name); //outputs ‘Alpino-Pelted’
console.log(furBearingTrout[‘url’]); //outputs 'http://www.furbearingtrout.com/fish2.html'

We can also create objects using the constructor method (new Object) or the Object.create() method but for this article we’ll stick to the literal notation for its simplicity and visual aid.

Functions in objects are methods

When the property is a function we call it a method. Methods do something with the data stored in the object. Imagine we had the following properties:

const furBearingTrout = {
  name: ‘Alpino-Pelted’,
  url: 'http://www.furbearingtrout.com/fish2.html',
  view: function () {
    console.log(`View the ${this.name} trout at ${this.url`;)
    }
}

You call a method by accessing the property name it’s associated with followed by parentheses.

furBearingTrout.view(); //ouputs ‘View the Alpino-Pelted trout at http://www.furbearingtrout.com/fish2.html

Why do I use ‘this’ ?

The ‘this’ keyword simply references the very object it’s inside of. So this.name is the same as saying neighbor.name. Outside of the object we would refer to furBearingTrout.name but inside the object we refer to this.name.

There’s a lot more to objects than what I’ve written here. But if you understand these basics you’ll already be able to model some fairly complex real world data and be able to manipulate it.

A Little Background on Map Elements

The problem

If you’ve ever had to place map elements like north arrows, text or scalebars on an ArcGIS made map, you know how they can get lost in the background of imagery or some other basemap. You can always try to change the items color or size to make it stand out. But the easier and more effective method is to change its background color to a solid color like white.

Compass Rose
Map elements can get lost in the noise.

The problem with doing that is the background extent only stretches to the edges of its element. There is no padding between the element edge and the background edge.  Thankfully, ArcMap provides us with the ability to set a gap between the two edges.

Compass rose with white background.
Default backgrounds on map elements have no padding.

How to fix it

In ArcMap, right-click or double-click on the element to open its properties. Open the Borders and Background tab and select your backround color from the dropdown. Next, change the X and Y values next to “Gap”. The higher the number, the more padding you’ll get between element and background edge. You can also apply a “Rounding” percentage value to give your background panel rounded corners. That’s all it takes to make your ArcGIS map easier to read and more professional looking.

Map elements.
Adjusting background gap gives elements room to breathe.