The battle of Shiloh was fought on April 6, 1862 seventy miles from where I live now with 23,746 casualties. I woke up this morning still glad to be here. I'm not afraid to die and I will not hunker down and hide, nor will I fight my fellow man over a roll of asswipe.

Alright, here's the deal, the stupid world is shutting down around me. As I prepare to launch a road trip in my little truck the bars in Nashville are being forced to close after going through major tornados. Are you kidding me?

Well here it is Friday the 13th, I see the writing on the wall, and it is profane. Big events are shutting down everywhere, people aren't traveling and the economy is crashing. What everyone seems to be missing is what happens when the people that work in the grocery stores, the Walmarts, the Amazon fulfillment centers say screw this and stay home? What happens when truck drivers stop driving? What happens when the police stay away? Just sayin...

Phrases like Boomer Remover are sweeping the net but my favorite is: Does the unlimited drink package extend into the quarantine period? I don't think so...

Saturday morning numbers: Thank god, some good news. The experts are predicting that only 1.7 million people in the U.S. will die. Cool, and we only have 925,000 hospital beds in this country with only 1/10th available for the critically ill. I actually have more numbers but I'll just stop here.

My dear nephew Brian. My friend. So good to hear from you, it's been months since we last connected.

The Nashville tornados missed me but the one a month before went right over my little house while I sat at the screen door and watched.

Sorry to hear about Dave's broken foot from the snow machine but it's not like the guy has never had nothing broken before, sheesh... and I relate to quality time with your cat, it's the only thing that keeps me sane.

As to that ex-girlfriend, well, you don't need to pour booze on your hand, just drink it when necessary.

How am I? I realized today that this will be one of those periods in life that I will look back on someday and wish that I could recapture, because it's going downhill rapidly. Not that I'm feeling sorry for myself, just pissed that it's all finally catching up with me.

So what to do? I drank a lot of Corona back in my mexican beach bum days so I'm immune to that shit, so I should travel while everyone else is hunkering down like spineless bastards. It's not like this stuff knocks you down and makes blood spurt out of every orifice until you die a horrible death within minutes. Again, sheesh...

I will be heading your way at some point shortly in my trusty truck looking for new hot springs to conquer and smoke to soak in. We should hook up.

Your Uncle Jim.

Modern map API's (Application Programming Interface) use a data structure called GeoJson which represents geographical features and their attributes in JSON (Javascript Object Notation) format, to plot places on the map.

Over the many years writing map code I've devised a variety of ways to achieve this, most of them convoluted, involving PHP modules and MySQL databases.

My new app OMJRoute has now achieved a wonderful level of simplicity. The program reads a basic CSV (Comma Separated Value) file using some sweet JQuery asynchronous code, converts it to an Object, then into a GeoJson entity, and then places it on the map as a Layer.

The file format is simple and efficient: Longitude,Latitude,Name. For example, here's three Walmart stores with store number as the Name:




The file contains 4,339 entries for the US and is 113 KB in size, so it loads really quick.

You still with me? This allows me to create some cool layers on top of my Route Map showing things like Rest Areas and Flying J/Pilot fuel stations. The points are clustered so the further you zoom in, the more are displayed.

My ultimate goal is to apply the Places only to the Route. If it ain't along the way, you ain't gona see it, because it doesn't matter. I create this stuff to help me travel, and hopefully others...

I had the most profound dream last night. I was walking out of a large city towards skid row when I came upon an old black man struggling to pull a piece of plywood over a small arched bridge. I grabbed one edge and helped him carry it, glancing down at my arms and realized I too was black. There was a wild eyed crazed white guy on the other side pointing a large revolver at us, urging us to move on.

We came upon a mass of rundown apartments that we had to navigate to reach our destination. Behind us a throng of people several hundred strong had joined us as we walked through filthy kitchens and bedrooms, twisting and turning from one to the next. At one point we walked through a nursery with toddlers watching us in awe.

We finally burst through the last door to find a beautiful beach and sparkling ocean where we all threw off our clothes, ran joyfully into the water and bathed the grime of the inner city from our bodies.

Good morning America from southern Tennessee, I need to grab my coffee and get on with my code...

What a wild technical ride I just went on. I've created a new Player which launches from OMJRoute (Tools/Perma) and creates a stand alone page with a Leaflet map showing what the route looks like in a simplified manner. Click the icon in the middle to launch the main program and play the route. The player is stripped down to the bare minimum to load as quick as possible and the map system (Leaflet) has the smallest footprint in the map world.

The goal was to be able to run everything in a window inside the blog as you see below, but browser security was getting in the way. The solution was to buy a server security certificate for OMJRoute (https vs http) like I have for OldManJim and OMJMaps. Bottom line, it cost me money to do what I do, so I hope you enjoy!

To break out of the blog and run it full page (like on your phone) click the route key number in the top right corner :-)

There comes a time when a project has evolved to a high enough state, that it needs it's own platform. I've been working hard on the directions code that has been sitting in my tools directory as an app and it finally shouted out Get me my own domain!, so I did.

Coming up with a name wasn't hard, I've already created and the OMJ (OldManJim) prefix is becoming my trademark so I logically acquired as the new website. I'll leave the app sitting in tools alone and continue development on this one.

The latest version is pretty slick, click anywhere on the map to acquire data about the location and chose when and where you want to create an A/B route right from the infobox.

I'm having fun with code in my new Directions app. I've added an Auto Advance feature that will move from waypoint to waypoint automatically and then wrap around from point B to point A. You can just click the button and watch the route unfold. Flip it into Satellite view, set a cool Pitch and Bearing and you can fly across the country visually for as long as you like.

I considered an adjustable timer so the user could determine how long the app pauses at each waypoint for reading, but I scraped that and wrote a timer that counts the words in the text and apples a constant to it. The number I came up with that matches a normal reading speed was 420 milliseconds per word. So, a waypoint with a longer description will allow you more time to read it. Did I mention I was having fun?

It's funny what grabs your eye sometimes, in this case it was the wall of my little house reflecting sunlight that looks like white paint on the trim of my front door.

I find joy in the little things these days as my sarcasm drips, my logical brain expands, and the wound on my head slowly heals.

My life has improved dramatically since I moved from Idaho here to Tennessee a year and a half ago. It used to take me almost an hour to walk to the liquor store in Idaho...

...and now I can do it seven minutes!