Topic Pages

05 February 2020

I decided to maintain a few more pages on the bipedalprog website.

Adding Content

I added a "Topic Pages" drop down to the navigation bar so I can add pages that are more durable than blog posts. I will eventually add a search function to the site but my free time is limited now that I have to spend almost two hours commuting in my car each day. These pages capture topics that I am personally invested in and would like to see succeed.

The first page is IndieWeb. I am setting up a Synapse server at home and have gone down the independent/distributed web rabbit hole. If this works we may be able to save the internet. A personal website should be table stakes, but I also think that I can automate the creation of an ActivityPub website so that anyone with an internet connection can host their own site and interact with the rest of the world.

An Open Source API for Managing the Public Right of Way

20 January 2020

I listened to the recent Talking Headways podcast during my run today. There is actually effort to establish an open interface for regional governments to implement that would allow others to evaluate right of way policies in real time. At just over 30 minutes, this would be great for your drive or ride to work. See Talking Headways.

Installing Ubuntu 18.04 on a Dell Inspiron 5593

18 January 2020

I picked up a Dell Inspiron 15 5593 on my way home from work on Friday night. I also picked up a 16 GB memory extension so all of those cores can run without swapping. I have spent the weekend trying to get a Windows 10 system backup disk, then trying to install Ubuntu 18.04. I have come to the conclusion that secure boot is a living hell.

This helped: NVMe Disc Config The final solution was to disable Secure Boot and turn RAID back on to allow Windows to boot again. I am really wondering if it is worthwhile to keep Windows on a laptop anymore. I may make it a data partition in a few weeks.

Finally Left Facebook

13 January 2020

I deleted the Facebook account last night. I really will miss all of the updates from the local businesses that I follow, and the people that I really want to keep up with, but the nastiness that I appears in my feed has actually left me worse off for spending my time reading the posts. I have been on the fence with respect to Twitter lately, I suppose I will hang on to that until I figure out the whole Mastodon thing. ActivityPub seems to address the who is doing what issue nicely, while avoiding the curated experience that turns me off of the social sites.

BTW: If you actually subscribe to my RSS feed, let me know. Email me and I will add you to my reader.

Tweaking the Home Network

11 January 2020

I have been re-evaluating my use of the internet lately. I rely on several big internet suppliers to provide my access. I have followed along with the rise of Google, Facebook, and Amazon Web Services. I have also supported these efforts, now I think we should divest from the internet hegemony.

Suppressing Surveillance

We are certainly the product, when we use free services we also accept the terms of service which allows the provider to use our usage data. That is part of the deal, I do not regret it. I looked at my router’s top ten DNS queries and I did not recognize a single one.

I decided to look for a different DNS provider than the one chosen by my internet provider. It turns out that this does not help you with your internet browsing. The best option is to setup your own DNS but event that did not reduce my DNS queries to sites that I did not know. Looking up the sites, most were advertising tracking sites.

Alternative searches turned up a couple of options, Pi-hole was the only open source option that I could find. The idea is actually simple, an open group of people analyze DNS queries and flag those that are directed towards advertising tracking services. Looks like many malware sites are also excluded. It is not a turnkey solution, you need to know how to update your router and setup a dedicated DNS solution for your home network. I used a Raspberry Pi 3+. If you can follow instructions and are comfortable with Linux, this is really easy.

Suppressing the surveillance of your site using the links in the sites that you are accessing is one thing. The sites also send you links to other sites that will also send you links to "helper" scripts that will make your experience much better. Most browsers just follow these links because that is what the web experience requires. Many of these scripts are not in your best interest. I was trying to expand my knowledge of front-end development, web pages. When I looked at the page source code, I found most of the links included in the page were actually links to sites I did not know.

I also was having trouble with the Chrome browser at the time, I decided to give Firefox a try again. I had some trouble in the past with Google Docs so I went to Chrome for my day to day tasks. I was still having issues with Firefox but many of the sites that I use recommended Firefox, so I installed it on my laptop, which is a Ubuntu based distribution. I also found a plug-in called NoScript, it prevents JavaScript from reaching out to the internet for including sources.

This is the most infuriating extension that I have ever installed. So many sites that you visit are full of links to sites that you have no idea what they provide. So now I have found that most of the sites that I visit are also sharing my visit with other sites. NoScript blocks most of these sites, I have to go up to the toolbar and specifically allow them to send code to my browser.

Firefox and NoScript have become a blessing. Suppressing sites actually makes me a more interested party in the internet experience. Yes, it is a pain in the ass to have to authorize every escape from the browser to the internet, but I also have intimate understanding of each page I visit. When I was younger, when the internet was younger, we all assumed that everyone was a good guy. We all need to be suspicious today.

TEDx Music - How did I miss this?

10 January 2020

I was watching some excellent TEDx videos from a show in Cincinnati, which are really worth your time on their own. See TEDx Cincinnati for those. Good old YouTube also showed me some recommendations on the side, I noticed a TED talk/concert in the list and clicked. Diamonds on the Soles of Her Shoes. That totally hooked me.

The YouTube algorithm seems to account for my varied tastes in music, and when it merged the TED content in I decided to let it go. Next up was a title that I love, Pachelbel’s Canon. Completely beyond what I expected. I guess I found something to binge on now while I’m coding.

Will the Internal Revenue Service Provide Online Tax Filing?

03 January 2020

Update to previous post.

In a story yesterday a corresponent from ProPublica followed up on a previous story regarding the prohibition against the IRS developing their own tax filing software. It seems enough people had trouble using the TurboTax and H&R Block free filing sites that Congress may actually have to allow the IRS to provide a site for the free filing of taxes, much like in the rest of the world.

See my original post for more details. The ProPublica articles are great too, I recommend them for the full story.

Fernald Preserve End of Year Hike 2019

31 December 2019

I missed last year’s end of year hike due to illness. Luckily the Christmas virus caught me over Christmas so I was healthy and ready for the hike this year. It was lead by Angela, the new naturalist on staff at the preserve. I am looking forward to learning more from her. Forgot to take the phone with me, so no pictures.

The Setting

We started at 08:00 this time, a little earlier than previous years. It should have made spotting the crepuscular animals easier. Except for the wind that kept everything that relies on hearing laying low. I saw a few snowflakes on the drive to the preserve but none while we were hiking. It was 37 degrees when I arrived with a wind chill of around 20.

The Hike

We walked out through the northwestern wetlands to look at the beaver habitats. The beavers thrive here. Several lodges are found on the preserve, some with muskrats cohabiting the lodge. I always thought the muskrats moved in after the beavers had moved on, another learning for this year.

We picked up the Hickory trail after checking out the beaver meadow and were surprised by a bald eagle overhead. That was my first at the preserve. I usually see one or two along the Great Miami River. I figured the red tail and Cooper’s hawks had Fernald to themselves.

Entering the woods around 10:30 we could hear each other better. Much warmer with the trees breaking the wind. Walked through the hardwoods and up to the hickory grove on the north line. We saw some red-bellied woodpeckers, kingfishers and a couple gray squirrels. Surprising few deer, but it was noisy for them.

The group returned to the visitor’s center for a warming break and to figure out how to get everyone to the lodge pond at the entrance before returning to climb the on-site disposal hills. My knee was pounding so I oped to head home for a knee wrap. The car showed that it had warmed up to 39, although I cannot say that I could tell the difference.

Hal Abelson Interview

16 November 2019

I found another great podcast, but I have difficulty finding time to listen to it. I really need an hour of mindless yard work so I can focus on the interview.


I went out to rake leaves for the compost pile today and decided to listen to Language Oriented Design and SICP with Hal Abelson which really made the chore go quickly. Hal Abelson is one of the authors of "Structure and Interpretation of Computer Programs" which came out while I was still in college. I was studying mathematics and coding in imperative languages. This book blew up my approach, it also started me down the path of using Scheme to explore patterns in programming.

My go-to exploratory language now is Python, but I remember finding out that SICP was the introduction to computation book at MIT and we formed a book club to work through it. Scheme seemed different from the languages that we were using for our work, but then again we were not thinking about solving the problem, just the problem we were given.

The interview explains why they wrote the book in the way they did, and how it would be written differently today in light of the cooperative programming practices used for problem solving. If you have given any thought to working through the book, give this podcast a try and then decide. You can work yourself through the entire book over the holidays, and I recommend that you code the examples. The text is even online now. SICP so price should not be a factor.

This Week 2019-11-08

08 November 2019

This has been a humbling week for me. I made a few milestones and missed a few due to my continued decline as I age. I am beginning to rearrange my bucket list.

Amazon Web Services vs DotNet

This really feels like an impedance mismatch. Microsoft development for non-Microsoft platforms is challenging, to say the least. This week Microsoft signed on to the Java Community Platform. We are having difficulty getting C# application to build and deploy on Azure so I really do not have much hope for their expansion into open source platforms. The dotNet Core platform is having some problems with non-Windows deployments.

Getting Older

I tried to keep some old veggies going on Wednesday. I ended up with food poisoning. My wife had to come pick me up from the office because I was too dizzy to drive home. On the bright side, I no longer trust myself to overcome physical disabilities but I used to just get sick and get over it. Clearly I am not twenty anymore.

Mindy drove me to work on Thursday and I put in a full day. I felt awful by the time I left and came home to leftovers in the refrigerator. I found one of my favorites, country ribs from the weekend. The fat did not agree with me. I lost my gall bladder twenty-five years ago. Now my liver has a fit when I dump a load of fat on an empty belly. Spent another night in pain.

I slept a little later and found that I could still get through my strength training this morning. A little later than I would have liked at work but I am encouraged that I can still find the discipline to get myself to physical training after a night of hell.


Why the hell would I eat something that was blinky? When I was young food was a measure of wealth. Everything I remember eating was cooked, thoroughly. When I started high school I learned that people ate differently. In university I learned that people in other parts of the world had completely different palettes. I still have problems with throwing food away. Years of backpacking have given me a pretty good resistance to most food-born problems, but nature is always trying to thin the herd.

It is probably time for me to accept that I cannot rely on my youth for protection against drinking from any water source or eating any plant that I can identify. I have accepted that I need sleep and time to study things other than the latest shiny thing. Maybe my personal life need some temperance as well.

This Week 2019-10-25

25 October 2019

A summary of the my week in technology. I really hope it gets better.

DotNet Development

We have a client that has developed an impressive system in and C# along with a large number of SQL Server stored procedures. They also host their public infrastructure on AWS, which is a core interest of mine. I have not worked in the Microsoft stack since 2010 and many things have changed, but most have not. I suspect I should dabble in this more often but the stack is still Microsoft specific. Examples for Mac and Linux are few and far between.

If you are looking for a server side language I would recommended Python or PHP. They work pretty well even if your host OS is Windows. I would still encourage new developers to replace Windows with an open operating system. If you have a Mac I recommend installing VirtualBox and using all of that extra horsepower to work in a virtual machine running your favorite distro. If enterprise development is your goal, the latest JVMs run fine in a virtual machine.

Back to DotNet as a platform. Examples are lacking for how to put together a REST application if you do not need a database (WTF, nobody uses SQL Server anymore). I have found that everyone tends to use a single solution for a given problem. I asked why there are so many de-facto standards, looks like the culture supports the solution that has the fewest problems. Coming from a more vibrant community this "sucks less" philosophy feels counterproductive.

Spring Boot 2.2

Spring Boot 2.2 went GA, given all of the depreciation this should have been 2.9. I suspect I will just generate a new application and port my application code to the new framework style. Migrating looks to be a chore now.


Most of my professional work is in shops with ReactJS front-ends. I started to (re)learn the stack a couple of months ago. AngularJS seems like the better solution for JVM applications but I need to go where the mass of our clients are going. I would still rather use a template system to generate actual web pages so the semantics of the web continue to work but I have three teenagers to feed.

Will Congress Prevent the IRS from Providing Tax Applications

17 October 2019


ProPublica published another article today with details of Intuit’s effort to prevent the IRS from providing a web site for filing your taxes. See Inside TurboTax’s 20-Year Fight to Stop Americans From Filing Their Taxes for Free The bait and switch techniques used in their "free" offering would be fodder for a CFPB investigation if they were still legitimate.

Original Post - 10 April 2019

Today I came across a post on exposing an effort in the United States Congress to prevent the Internal Revenue Service from providing any form of tax preparation software. You can find the full text at Congress Is About to Ban the Government From Offering Free Online Tax Filing. Thank TurboTax. If you would like to see how the rest of world handles tax filings you might want to look at a slightly dated transcript from PBS Newshour.

The effort is instigated by Intuit, maker of TurboTax and H & R Block. They seem to fear that if the IRS provided humane service to its constituents they will somehow loose their profits from providing software and tax filing services. I think they underestimate the desire of most Americans to avoid thinking about finance and also avoiding any semblance of interaction with their government.

Here is what I would prefer to see. The IRS has all of our legally transacted income, and probably most of our expenses available in its data stores. They should provide an API to surface this information. This would benefit the tax preparation companies as much as individual tax filers. They should also provide an API for filing tax forms. We could then create a Code for America project with developers and tax experts to provide this as a community supported application.

Government should be open. If for profit enterprises want to provide a polished application that may provide extended features or audit probability scores for a fee, people can use these services. The rest of us can contribute to making tax filing for everyone a painless experience.

A Small Change

10 October 2019

I made a small change to the site today. I removed Google Analytics from all pages. I did get a small amount of satisfaction knowing that some of my posts in development were being recognized by search engines, but I have problems with routing visitors to my site through a third party. This is really a place for me to publish my work, not another method for gathering data on people’s browsing habits.

This was really the purpose of adding HTTPS to the site. If I allow third parties to observe traffic, then I really do not need the overhead of TLS. You may not care, but I do.

What if Europe sent Explorers

30 September 2019

The past few days I have been working on the problem: "What if Europe sent their Explorers instead of their missionaries?" Imagine if the explorers adopted the native beliefs, we could be attached to the land instead of chasing growth. So maybe we would not have gone to the moon, but what if we had not killed most of the indigenous people. Maybe climate change would not be our fault.

I know a few missionaries, I also love them. I also believe that spreading the iron age point of view is going to fuck up our world. We need to live in the present, we need to be present. I think you can be critical of modern morality and still participate in modern life. I simply want everyone to accept that we are in a heterogeneous world. You do not have to support organizations that you do not agree with, or even that offend you. I do think we have to entertain them, if they are not against your way of life, why be against theirs?

Blogging in Boston - Part 2

24 September 2019

More about the Boston trip.

Monday, Continued

We went to see the remodeled offices at InterSystems last night as part of their Global Summit. The cool part was we were picked up outside the hotel in a duck boat. We had a tour of the Boston area and the Charles River. Mindy even got a turn at driving the vechile.

Our duck boat for the evening.

The dinner was a Revolutionary War theme complete with a living bronzed Minuteman, town crier and fife and drum. The food was great as usual. Inside the office space was open for inspection. Their entertainment room was better than what I am used to a work, but they have more sales than we do.

We returned to the hotel on the duck boat as well. No river this time, but after a couple glasses of wine and some beer, maybe that was for the best.


Mindy did not have sessions this morning so we decided to check out the Boston Public Library downtown. The classic part is beautiful. Mindy worked in Government and Business in Cincinnati when were younger, so we checked that out. Actual printed copies of census and government statistics available to hold in your hands without having to find a staff member. And it smelled great.

We wandered over to the new construction and found an exhibit of pre-Civil War maps showing the expansion west. There were hands on exhibits too. We took a few minutes to work on a magnetic puzzle.

Magnetic map puzzle.

Birthday 2019

23 September 2019

Looking back through my journal for the year I found some useful conclusions for a retrospective. Maintaining a career in software and hiking in the mountains actually require some of the same skills.


I am an eight hour person, I can get by on seven, but I am not at my peak in the morning. This is especially hard when I have to go to an office on a regular basis. I enjoy working in the garden until sundown, but in the summer that puts me in bed after 22:00, which doesn’t cut it by Wednesday.

The best solution I have found is get around 90 minutes back in by day be working from home. The current engagement does not have a work from home option so I have to cut other things out of my day. After work events are gone, an extra walk after supper, week night outings. Sleep is just too important to my mental and physical health.


One of the benefits of an almost daily journal is that I track what I have been eating, exercise, physical, and mental health. I’m sure that these details will be of no benefit to any of my kids after I am gone. The do allow me to reflect at the end of the week on how my choices are affecting my overall health.

My major learning this year was that I need to reduce sugar and alcohol. The sugar was the easy one. A soda or candy bar gives me a real boost, followed by a serious crash. I really do not want to do anything except take a nap after that. Since the feedback is so quick, I decided to just dump refined sugar.

Wine is harder. I have had to change other parts of my diet to adjust my wine to one glass while doing the dishes. I was really putting away too much tea during the day, I needed a way to chill in the evening so I would have two or three glasses on work nights, usually finish a bottle on weekends when I did not have to get up. This was not helping my weight, and I was not getting through my recreational reading. So I have spent the past month decreasing the caffeine and wine intake.


I suppose the heading should be exercise, but to me that pretty much means walking outside. I have an elliptical for days when I know I will be stuck inside but I need to encounter things while walking. The exercise is good for my body and the obstacles are good for my mind. I try to stay present with the walk rather than ruminate on what I have been working on, and let serendipity help me solve my problems.

Walks through the woods or grasslands are really my favorite. If I can find some hills, that is even better. Sound is really important to me and natural sounds seem to leave me feeling much better than a walk down the street. I am fortunate to live close to several large parks and nature preserves, so the limiting factor is again time. See the archives for some of my favorite places.


Software development is not kind to developers that do not stay current with upcoming technologies. I let my guard down for a bit in the late nineties. Had to work twice as hard to catch up, but then I learned how to learn again. What works for me the past couple of years is learning about each promising tool at a superficial level, if I see the use growing, I can ramp up pretty quickly.

Linux Academy is great for learning cloud and Linux technologies quickly. I use it enough to get the yearly subscription. Udemy Is great for front-end courses and quick language introductions. The labs are what I really like, both sites have good labs to make the lessons stick.


The garden has pretty much stopped producing now, except for some tomatoes that I really appreciate as the season winds down. This take much more time than I would like to spend, but weeding has to be done during the spring and summer. I tried landscape fabric this year. Costs more than grass clippings but it saved me an enormous amount of weeding where I placed it. The control areas took about four times more effort. I hope to recover most of it and use it again next year.

Blogging in Boston - Part 1

23 September 2019

On the road in Boston, Massachusetts for a few days while my wife attends a conference for the product that her company uses. I needed a few days away from my normal routine to do some thinking and I love to travel with her so I came as a guest. I get to do the fun stuff in the evenings and I get to see a little of the city and write during the day.

The City

We arrived at Logan Airport on Saturday afternoon. We decided to ride the trains into town. First we had to catch a Silver Line bus to the South Side Train Station, transfer at the Park Street Station, then on the third train to the Prudential station. I was humping a fifty pound rolling duffle on and off the trains and up the station stairs. I am going back to my travel pack for these trips. Mindy is fine with her carry on bag.

I love the public transit and bike lanes. There are even e-bikes available for one way rental. I know that an area needs density for these services to be affordable, and we probably do need to quit building suburbs and start moving people closer together.

The one thing that would clinch the deal to live in Boston or Cambridge would be a ban on private vehicles within the city. The extra noise and pollution really makes sidewalk travel unpleasant.

Things to Do

We walked up to see the "Make Way for Ducklings" statue in the Public Garden. I was surprised to see how many people were out in the park and the number of young people. I know Boston is a college town, but I really had to look for the older generation.

We had some time on Sunday to go to the Mary Baker Eddy Library. They have a room called the Mapparium with a three story stained glass globe of the world circa 1935. I was impressed, it is worth the trip if you are in the area. We wandered back to the hotel and I set out to explore the sky walks and find some lunch. There is an extensive network around town, maybe because it gets cold here.

Last night we had a welcome reception at the Prudential Tower Skywalk Observatory. It is a nice venue for a few hundred people, although I suspect we had more than that. It was pretty tight. I did enjoy seeing all of the city from above, and the sunset over the Charles River was cool.

Spending today working on some of the unpublished posts in the blog. I break it up with Udemy lessons on ReactJS. I want to be able to do some of the lighter weight front-end coding at work. While ReactJS is not my first choice for a web component framework, it is what most of our clients are asking for lately.

PowerShell Development

04 September 2019

I started a new engagement last week. Our client has several EC2 instances that are configured as pets. I have been automating these sorts of environments for around a decade now. This one is a little different, it is a Microsoft Windows based stack. I would normally run (not walk) from an environment such as this, but one of the partners said that Microsoft has made some significant progress on the server side in the last decade.

Met with the client last week. I knew they spent a fair amount of time on-boarding new clients. Mostly due to human bandwidth issues. We walked through the process and determined that most of the steps could be automated using Windows PowerShell scripting. I had studied up the week prior so I would not appear to be a complete idiot, and was already impressed with the level of integration that PowerShell has in the Microsoft space.

All of the steps taken to bring a new client into our partner’s infrastructure can be automated. We can free the system administrators from setting up new business and script it so the support engineers can submit a simple command to configure several web servers with the latest version of the software. Next week we can automate the database configuration tasks so on-boarding can happen in a few minutes as opposed to days.

I am looking forward to providing assistance in segmenting logic into self-contained services that can scale in the AWS infrastructure. This is what I have spent my career working towards, providing solutions that continue to provide value long after my engagement has ended.

AWS Developer Associate

23 August 2019

After a month of study, deploying software to AWS, and reading through Amazon Web Services white papers I decided to give the official test a shot today. I passed it on the first try. The test is much more difficult that the practice tests that I have purchased, so I recommend that you score 90% or better on the practice tests. I also recommend reading the white papers a couple of times, I really needed the details reinforced. My personal development experience was helpful, but knowing the why was helpful.

The bad news is that the AWS papers are some of the least interesting technical writing that I have had the misfortune of reading in my lifetime. Stick with it, you will be a much more efficient developer in the AWS ecosystem.

Shout out to Linux Academy for the training videos and labs. And udemy, your practice tests made me feel totally unprepared, until they did not. Money well spent.

Update 2019-08-23 I even have an official badge now.

When Electrons Become Flowers

23 June 2019

My day job is a mix of programming a search and recommendation engine for a retail grocery chain. We have a home grown engine built by people much smarter than I am, which I now maintain and am actively working to expand into a cloud based offering that also learns from user searches and feedback. I work in a very risk adverse organization, which has many technological challenges. This organization also has a gap in capabilities versus capacity.

I end most days with an unrequited desire to make a positive contribution to both making my client successful and the end user happy with their searches. I really want the user to be successful, and I have to rely on many other developers to also provide their best effort to make the shopper successful in their search for items that they want to buy. I accept that technology will continue to change and challenge me to keep my mind sharp enough to keep up. I also accept that everyone that I depend upon is doing their best to make our customer’s experience as good as possible.

And yet, I know that what I do with my software will never satisfy my intended audience. Some nights I work on small projects that I hope will satisfy my intended audience, this website, my website generator. Here is the rub. Even though I love to manipulate the bits on the internet, I also need concrete things that I can identify with and feel that I have given myself to and made real in this world. I need to grow even when the organization that I toil for does not.

So you have to have a life beyond work. I found that I have perfect life beyond work with my family and my land. Therapy will identify the issues you have with growing up to be a leader in your family. You will also need to know what to do with yourself. I deal with this be doing my best to provide food and shelter to my family. The next post will provide more on this issue.

I have learned through therapy that my work life is not my whole life. What I did not learn was what the rest of my life should be like. I did learn to enjoy the messiness of what I am trying to do as a husband should be a measure of what I am trying to build in my life. My wife and children should know that I am their strongest supporter. Now what can I do to make their lives better?

My answer is to support my family members in any en devour. If it is important to them it is important to me. I also need time for me. I split the difference by raising a 45 by 45 foot garden to keep me grounded. I get to work from home most days so I do not have to spend over an hour on the road to work. However, this plot is more than I can manage in two nights of work after I return. When the kids are off in Europe or scout camp I am the sole gardener.

Do not think I am complaining. The green bean bushes are blossoming, so are the zucchini, squash and cucumbers. The tomato plants (purchased this year) are also showing their sex. The days of pulling weeds from leaving the patch fallow and tilling under the weeds are starting to yield fruit. This time of year makes me feel rooted to the land. In a few weeks we will be enjoying tomatoes and corn of my effort. I wish more of my kids participated in the cultivation.

I feel blessed that my position allows me to maintain fertile land which provides my family with produce. I can also enjoy the crawdads from the creek and the fish that it provides. The technology I live with is really a way to live closer to the land. I am contemplating using my savings to obtain more land that I can educate my children on the benefits of providing for yourself. Seeing your work on the internet is fine, but seeing the flowers on your produce brings so much promise. I know which one brings me the most joy when I can share the harvest with my neighbors and co-workers.

A Place of Your Own

11 February 2019

There appears to be resistance growing to social media sites such as Facebook, Twitter, and others that I really do not know enough about to consider. While I do enjoy seeing what everyone is up to each day, I also know that I have to be extremely careful how much attention I give these sites on a daily basis. I have come to miss the days when I would simply open my Google Reader and catch up on the feeds that I had happened upon in the course of stumbling around the internet.

I actually spend more time now in my current favorite reader Feedly. Yes I even have a paid membership, not for the extra capacity but because I write software myself and really value tools that just work. I maintain this site with a feed using a static site generator, sourcing my content in AsciiDoc and then publishing HTML. I’d like to think that almost anyone can do this. Then I read my notes and posts on configuring web servers and network configuration. I think the social sites still have an advantage there.

Looks like you can spin up a WordPress site with minimal effort. If you are willing to take on a little more work, you can register a domain, follow the instructions to spin up a droplet at Digital Ocean. The instructions are not hard, but I find they do assume more than a layman’s understanding of a website. All the same, you are still tied into the WordPress platform. I think we can probably do better with a more open platform, I just do not know what that looks like right now.

I think RSS and sitemaps solve the problem of discovery within a site. Lately I have been watching Interplanerary File System (IPFS) and Solid. IPFS is still in the alpha stage, I do not feel like there is enough there to begin to build a read/write platform there just yet. Solid is farther along, and addressing hard issues such as authentication and authorization. I’m also keeping an eye on Keybase. Their teams implementation is pretty nice, and they seem to understand that I don’t want to share everything with everyone on the internet.

I do not know what the post social site looks like yet, but I know I really want to control my own data. It seems like just publishing web standard HTML with some metadata to help find things is a good start.

Programmer and Human

04 February 2019

I’ve become an avid bus rider in the past six months. Partly because I can put my earphones in and listen to a podcast while I catch up on work during the drive. The WiFi enabled long-haul buses that Cincinnati Metro are the next best thing to walking to work.

One podcast in particular has come to my attention: Team Human. All of our technology comes at a cost, I was cognizant of that before. I didn’t really think about hidden costs of our infrastructure. The people that build and recycle our devices are, as likely as not, harmed by their employment. The amount of energy we expend to power our devices and provide the always present cloud is really astonishing.

Most of my day is spent working on systems that are intended to make you desire consumer package goods, and then sell them to you. My success is measured by how many more goods that each visitor buys. I see all of the parts and processes that are involved in getting your dish soap and crackers from manufacturer to your door. I also see all of the GPU cycles needed to predict your needs and fine tune your search results.

Given that my main reason to work is to provide my with the means to travel, hike and camp with my family. I am not sure that means are going to justify the end.

Brasstown Bald

22 June 2018

Our extended family vacation this summer was in northeastern Georgia. Our First stop was the tallest point in the state, Brasstown Bald. We happened to arrive on Appalachian Trail day, which provided the boys with a scavenger hunt to solve.

We drove up the mountain to the visitor’s parking lot. People sixteen and over are $5 each, the 15 year olds were free. The price includes a ride up to the top in an enclosed van. I had to come back down and walk up so the boys could get do a simulated Appalachian Trail to the top. The 0.6 mile trail was split up into proportional sections by state. There were stops along the way where the answers to the scavenger hunt questions could be found.

High Point Marker

USGS Marker

The USGS marker is behind a gate to the watch tower which is not open to the public. If you ask at the desk, one of the staff will gladly open the gate for you so you can get a picture.

The visitor’s center is a great place to get out of the heat and learn about the local history. The staff is friendly and willing to answer questions. If you go up on the observation deck you can walk 360 degrees around building, taking in the mountains.

Hiking with Troop 408, Dan Beard Riverwalk

19 May 2018

May turned out to be a busy month for my sons' scout troop, the older boys are busy with prom, graduations and such. The Memorial Day weekend eliminates one more weekend for camping so they decided on a day hike to get the new scouts past their five mile hike requirement.

Just such a hike exists around the Cincinnati and Northern Kentucky riverfront, it is called the Dan Beard Trail. We met at Sawyer Point and walked across the Purple People bridge into Newport, Kentucky. Along the flood wall to the bridge crossing the Licking River into Covington, Kentucky. We found Dan Beard’s home and then walked down the Covington river walk to the Roebling Suspension Bridge. Back in Ohio we walked along the Cincinnati river walk back to our cars.

This is pretty flat hike. Even the young scouts can do this in under a couple of hours. Leave the hiking boots at home, walking shoes or sneakers are all you need. You can even turn it into outing if you want to stop for lunch at Newport on the Levee or at one of the restaurants on the Cincinnati side.

Spring Break 2018 - Knoxville, Tennessee

06 April 2018

The family has been through Knoxville numerous times on the way to Florida, the Great Smokey Mountains, and Dollywood with the kids were younger. When we needed a place to stop on the way home Mindy suggested we get a room in the city. I thought it might be fun for the kids to stay in a city for a change so we booked a room at the Hampton Inn.

This a very walkable city. I’m looking forward to making this into a couples trip in the near future.

Gay Street

We didn’t get to the hotel until after 19:00, so there wasn’t much daylight. We decided to walk a few blocks up to Gay Street. This looks like fun, plenty of entertainment venues, food and bars. We decided to make this a destination for the next adult vacation. We walked back to the hotel across pretty deserted streets. The city feels safe enough, and had some interesting sculpture on the sidewalks.

World’s Fair Park

After breakfast we wanted to check out the Sunsphere. We found the elevator to the observation deck and looked out around the valley. It’s free and worth the trip if you in the area. There’s plenty of parking around the area so it may be worth a detour even if you are just passing through. You can get out and stretch for a bit.

View of Sunsphere from the park.


We had to take pictures of the park itself so we walked around for a bit in the rest of the park. The kids found the park marker and sort of posed for a picture. They were really more interested in finding some place to get a snack so we walked be farther into town.

Kids in the same place on the same day.

World’s Fair Park

Knoxville Museum of Art

We decided to check out the Knoxville Museum of Art since we were walking by and I needed to submit my time sheet for work. I figured the kids would make a run through the first exhibit while I beat my head against the wall that is our payroll system. By the time I finished my task they had found a self guided tour of the museum and wanted to check it out.

The glass sculptures are mind blowing. I have watched several people make ordinary glass vessels and been awed, these are beyond functional glass blowing. All of the objects presented were deftly created. I am now on a glass kick, trying to learn how someone can create things like these from a super-cooled fluid.

The rest of the collection is also enjoyable. I picked up a few postcards and magnets for my office in the gift shop, on the off chance that the pieces won’t be there the next time I’m in town.

Spring Break 2018 - Backbone Rock

05 April 2018

We were looking for something to break up the trip to Knoxville on the way home and chose Backbone Rock when we saw it’s claim to fame as the world’s shortest tunnel. We had lunch in the picnic area and then went looking for the falls that we could hear but not see.

We decided to climb the stairs to cross the road on the rock. Boy, there are a lot of stairs. I ended up doing that twice since each kid had their own agenda. The bridge build on top of rock makes navigating the dodgy parts easy. I would still keep an eye on small children. The ones you like anyway.

I hiked up the hillside about half a mile on a blue blazed trail. Didn’t see anyone else. Didn’t find much other than a very surprised turkey on the trail. We both had a bit of a scare there.

The little bridge that makes it easy.

Backbone Rock Bridge

Spring Break 2018 - Blowing Rock

05 April 2018

The Blowing Rock attraction has been on the radar for a while now. We were going to try for it last year on Spring Break but spent a little too much time at a waterfall. It was around forty degrees when we arrived so there wasn’t a crowd. We paid our admission and pretty much had the run of the place.

This is a good place for families with small children. There are rails everywhere and not much walking. The observation tower is a good place to take in all of the area. You can see Grandfather and Grandmother mountains from here. We probably spent as much time in the gift shop as on the ledges.

Mindy on the Blowing Rock

On top of Blowing Rock

Spring Break 2018 - Elk River Falls

04 April 2018

We were out driving around North Carolina looking for another waterfall when Mindy found another one with a short trail that looked good. We had to drive around the mountain to the other side of the watershed to get there, but made it by 17:30, we figured we would still have plenty of daylight.

If you like waterfalls this one is great. It was a little to chilly to wade at the base, so we only took pictures and skipped leaving footprints. Elk River Falls is a fine spot to have a picnic on the rocks. All we had were some nuts and raisins so it was time to go find supper.

Elk River Falls

Family at Elk River Falls

Spring Break 2018 - Watuga River Headwaters

04 April 2018

We stayed in Linville, North Carolina for the majority of Spring Break. I was waiting for the kids to get their act together after breakfast so Mindy and I decided to walk down the road to the source of the Watuga River. I’m not sure if I’ve ever been to the source of a river before so I didn’t know what to expect. We walked down the road to where it was marked our the map in the cabin, found a small area that could fit a car and I proceeded to climb down the hill into the river.

The hill is mostly matted grass and fallen trees, about thirty yards down to the river. I was happy that it was a bit chilly so the chances of putting my leg into a nest of active copperheads was reduced. A short walk up the banks of the river and you can see the spring that is the source of the river.

Spring as the source of the Watuga River

Watuga River Source

Spring Break 2018 - Grandfather Mountain

03 April 2018

Day two of Spring Break 2018 was spent on Grandfather Mountain. We chose to go directly to the attraction area. Walking up the mountain is free, but with the family it is easier to pay the fee to drive up the mountain. When we arrived there was already a line to get in the gate. One of the parking guides suggested that we go on-line and order our tickets so we could use the priority entrance, which we did. That saved us about a half hour, and taught us to do a little research before heading out.

We drove right up to the Mile High Bridge. It’s not really a mile down, only a bit more than 80, but you are on top of the mountain. It’s a suspension bridge but stabilized with cables connected to the ground below to prevent the normal sway you would find on a light weight bridge. After crossing you can climb around on the rocks and enjoy the views of the valley below.

Mile High Bridge

Mile High Bridge

Lookout with my favorite daughter.

Mile High Overlook with Meredith

We made a visit to gift shop for decals for the family Conestoga and one for my laptop along with t-shirts for the kids. I still needed some steps for the day so Nate and I decided to hike out to Grandfather Gap. We filled out a trail permit and started out around 14:00. The trail is well groomed, they even toss in a cable on the steep parts.

Grandfather Gap - Nate

Nate at Grandfather Gap

Grandfather Gap - Dennis

Dennis at Grandfather Gap

We ran into a family at the Gap that was heading on up to the summit. The mom said that it was only another quarter mile or so with ladders and cables which sounded like fun. The sky was getting pretty gray, and I don’t read weather very well in the mountains so we decided to head back to the parking lot. We beat the rain, but the rest of the family was getting impatient for our return. I think we made the right decision.

We started down the mountain and stopped at the nature center. It’s a nice place that would be great for younger kids. Mine have seen black bears and elk without fences and walls so we didn’t spend much time there. A short walk down the hill takes you to the fudge shop. Now they were interested. Another short walk down the hill takes you to Split Rock. It is a comfortable climb for the family.

Grandfather Mountain - Mindy, Meredith and Nate on Split Rock

Mom and kids on Split Rock

Spring Break 2018 - Chained Rock

02 April 2018

Our first stop on spring break this year (not counting Krystal’s) was on Pine Mountain in Pineville, Kentucky. We had been driving in rain all morning and it had started to clear so we decided to give the mountain a try. It was a decent drive up in the fog, when we reached the summit and walked out on the overlook we were rewarded with a fine view of the fog from above.

It was still a nice day, around forty degrees so we walked the trail to the chained rock to see if we could get a good look. It’s only a half mile trail, down the mountain. You will find a few benches along the way, if you aren’t in good shape note their position. They will give you something to look forward to during the climb back up to the parking lot.

The trail is is pretty good condition, with stairs on the steeper parts. The path out to the chained rock is narrow but stable. See the story at Roadside America. You may want your trekking poles for the climb back to the parking lot, especially if you brought a pack with you.

Chained Rock

Chained Rock

Chained Rock Plaque

Plaque at Site

Dennis at Rock


Fernald Preserve Walk off the Stuffing Hike 2017

24 November 2017

I have put on a few extra pounds this year, between client lunches and not having a standing desk anymore, so an opportunity to go walking with my friends at Fernald Nature Preserve. My son Scott could not explain why he should not go so he came with me.

We started out to the northwest to walk out on the train trestle that was built by the original land owner to provide building supplies and then used to build the Fernald uranium collection facility. It may someday provide a bike path crossing of Paddy’s Run.

We continued out on the Hickory trail. At the wetland observation tower we struck out across the wetlands on the mowed trails that are normally out of bounds for hikers. We climbed the cells were the remains of the collection buildings are interred.

Dennis on top of the cells


Scott on top of the cells.


We always have a group picture on top of the cells. I try to get one of whoever accompanies me too. Down the cell and around the south side of the preserve to the visitor center for around seven miles. I’m looking forward to the New Year’s Eve hike.

Shawnee Lookout Miami Fort

22 November 2017

The kids had the day off of school before Thanksgiving. They wanted to go to a movie so I dropped them off at the theater and ran errands. After I picked them up they wanted to do something other than go home and clean for the following day. Shawnee Lookout was close so we went there.

We hiked out to the lookout, two of the boys with me were indoor enthusiasts so the initial climb up the hill to the area didn’t thrill them. Once we hit the relatively even trail in the village they had a better time. We walked out to the lookout and found that a tree had been felled. Nate decided to count the rings.

Counting Tree Rings

Counting Tree Rings

Miami University Nature Preserve Update

12 March 2017

I bought my youngest and smallest a pack from Campmor. Nate is a small kid for his age and I’ve tried to find a pack to fit his frame for the past year. The Outdoor Products Dragonfly Frame Pack 8.0 finally fit the bill. We woke up to another chilly Sunday so we decided it would be a good day to put packs on and work on technique.

I like to just put a couple of two liter bottles of water in a pack to get a feel for how to adjust it. That’s enough to give me an idea of where to put the loads and if the kid starts to bonk it’s easy to pour the water out. I remember thinking that the yellow trail would make a good training hike for the scout troop last month and wanted to give a try with my favorite hiking partner.

Nate crossing the suspension bridge.

New backpack

This is a good trail for shaking down young backpackers. Just enough hills and muck so they get an idea for the technique. Stop every mile or so and check the pack for fit, and they will get the hang of it pretty quickly. The Dragonfly is definitely a win for a smaller kid. Plenty of adjustment points and hip belt isn’t so huge to be worthless.

Last Day for Shawnee Lookout Golf Cart Trail

11 March 2017

The website said the trail was open through the 10th but it was below freezing when I woke up this morning so Nate and I put our walking shoes on and headed over to Shawnee Lookout. The sign was still up so we hit the trail.

Nate, done for the season.

Done for the season.

We walked it last weekend too. Now that he has some experience with the trail, Nate has named each hill, all of the names contain a F-bomb. We pulled it off in 91 minutes this time. I could feel the burn in the calves when we were done. Since it was around lunch time we headed over to Nick’s American Cafe in Cleves, Ohio. They have a fine selection of burgers for post hike celebrations.

Time for lunch.

Burgers for lunch.

Miami University Nature Preserves

26 February 2017

Another sunny and 45 degree day in February. I opened up 60 Hikes within 60 Miles: Cincinnati. I found a trail in the Miami University Nature Preserve that looked worthy of a trip. Oxford, Ohio is only about twenty miles away so I was surprised that I have not heard of this before. The directions in the book were good, I found the trail head without trouble.

Yellow Trail

We had some rain of Friday, thunderstorms actually, so the trail was damp. I decided to hike the Yellow Trail from the head on Ohio 73. If you are in the dry season you can probably get by with walking shoes. Today I was glad I wore my hiking boots. I also brought my staff. Most of the trail is flat, but once you get north, you will find hills. Since I started hiking alone, I find a staff is one of the better tools in my kit.

There are some mature Sycamore along the trail. A few have begun to hollow out as you will notice hiking in the trail from the parking lot. I chose to head east on the Bachelor Preserve East Loop when I arrived at the fork. You have to skip across several cement piers to cross the creek. Then a gentle climb up to Bachelor Pond. No swimming signs all around. Probably best not to try.

At the Northeast side of the pond is trail to the Reinhart Preserve Loop. It was muddy but I decided to follow it up to Bonham Road. A brief hike along the road and you reach the trailhead to Bachelor Preserve North Loop. This connects to the Kramer Preserve Loop. I am looking forward to checking this out next month when the wildflowers start to bloom.

I followed the yellow blazes down through Bachelor Preserve Pine Loop to the original fork in the road. I really wanted to see the suspension bridge so I hiked back up the center trail for about a half mile. Crossed the bridge and back again. Retraced my steps back to the parking lot. Ended up with about a seven mile day.


One of the old Sycamore trees on the way in to Bachelor Preserves.

Starting to hollow out.

Hollow core.

Needs something for scale.

A big Sycamore.

Bachelor Preserve East Loop

Cedar grove in Bachelor Preserve

Hiking through the cedars.

Bachelor Pond

A view of the pond.

Kramer Woods

Kramer Preserve

Kramer Woods Trail

Wilderness Engineers at work.

Bridge with Backup

Janky Bridge

Swinging Bridge

Suspension Bridge

Shawnee Lookout Golf Cart Trail

11 February 2017

There is a temporary trail at Shawnee Lookout until the beginning of March. You can walk the eighteen holes of the golf course using the cart trail.

Golf Cart Trailhead

Golf Cart Trail

You can walk, run or bike the golf cart trail without the danger of flying balls this winter while the course is closed. This is a strenuous trail, Nate and I were impressed with number of hills that can be packed into 3.75 miles of paved trail.

I recommend taking a water bottle for this. All of the fountains are turned off for the season. Park at the golf course parking lot and choose which nine you want to do first. We did them in order, I may do the back nine first next time. I can’t prove it, but I swear it is steeper.

The pedometer said I had 9829 steps in 87 minutes. Actual clock time was closer to 100 minutes. Nate wanted to check out each bench along the way. I decided we burned enough calories for a stop at Dairy Queen after this one.

Shawnee Lookout Hiking Trails

05 February 2017

Another Hamilton County Great Park is in southwest Hamilton County. Shawnee Lookout has three (four in the Winter) trails for hiking. Today I started with the Blue Jacket trail.

Blue Jacket Trail

Blue Jacket Trailhead

Blue Jacket Trailhead

This has some hills so you burn a few calories in just 1.4 miles. There is a gradual decent from the trailhead to the loop portion. I like to alternate directions on this loop too, so the views are revealed in different ways. Today I chose clockwise at the loop.

View of Great Miami River

Bend of the Great Miami River

The payoff view on this trail is of the Great Miami River. There is a large bow at this point. It’s about midway into to loop and a bench is provided so you can enjoy it for awhile. The walk back to the parking area is more up from here on. As you cross the right of way for the electric towers you may see a variety of wildlife. In the summer you can usually find some blackberries growing here too.

Little Turtle Trail

Little Turtle Trailhead

Little Turtle Trailhead

Another lollipop trail, around two miles in length. This too has some hills, but not as many as Blue Jacket. You can easily walk this with your family in about an hour, including stops at the burial mounds and overlooks. It is also a fine date hike. The trail is wide enough and well groomed for walking together.

View of the Ohio River

Ohio River Overlook

There are two overlooks of the Ohio River and the Kentucky shoreline on this trail. These are where the trees have fallen and revealed a view. The park just placed benches and rails at these spots so you can enjoy the sights. I used to take some snacks for resting at these when the kids were small. Now I just sit and watch the barges go up and down the Ohio River.

Reusing JavaScript in Java Services

17 January 2017

I have found that in several of my projects lately that I need to duplicate the same logic in the client that already exists in the server side validation methods. My server side code is usually written in Java while the clients are web pages coded in JavaScript. Given that these exchanges happen using JSON it makes sense that the code should also be written in Java Script.

JavaScript in Java

Prior to Java 8 the JavaScript interpreter was Rhino from Mozilla. Since then a "native" implementation has been added to the JVM called Nashorn. As of Java 8 this is a ECMAScript 5.1 compatible JavaScript engine with hooks into the Java runtime environment. Future releases will support ES6.

To start using Javascript in your application you will need to create a Nashorn engine to process the scripts. I save this for later use.

Get a Nashorn Engine
private ScriptEngine engine;

public CallJs() {
    ScriptEngineManager manager = new ScriptEngineManager();
    engine = manager.getEngineByName("nashorn");


Evaluating a script is pretty straight forward. We take the engine and pass the script to the eval method. The result is returned as a Java object. The interpretation of the object is up to you.

Execute a script.
public Object execute(String js) {
    Object result = null;
    try {
        result = engine.eval(js);
    } catch (ScriptException e) {
    return result;

For example we can evaluate a JSON object.

Test case.
public void shouldReturnObject() {
    Object result = subject.execute("JSON.parse('{\"key\": \"value\"}')");
    assertTrue(result instanceof java.util.Map);
    assertEquals("value", ((java.util.Map<String, String>)result).get("key"));

So now this is where it get interesting. We can also load a script from our resource path and use it within our Java services.

External script.
 * Determine if the address conforms to our validation rules.
function isValidShippingAddress(address) {
    // Only US addresses are supported now.
    if ( && === "USA") {
        // We cannot shipt to a PO Box.
        if (address.poBox) return false;
        // We need a locality.
        if (!address.zipCode || !address.state || ! return false;
        // And a street address.
        if (!address.street1) return false;
        return true;
    } else {
        return false;

 * Multiple argument function.
function makeAddress(country, zip, state, city, address1, address2) {
    var me = {}; = country; = zip;
    me.state = state; = city;
    me.address1 = address1;
    me.address2 = address2;
    return me;

Create a method to load scripts from local resources and then invoke the functions in the Javascript files.

Load Javascript and call functions.
public void compile(Reader reader) {
    try {
    } catch (ScriptException e) {

public Object call(String methodName, Object... args) {
    Object result = null;
    try {
        Invocable invoce = (Invocable) engine;
        result = invoce.invokeFunction(methodName, args);
    } catch (NoSuchMethodException | ScriptException e) {
    return result;

So we now have the ability to load and call the functions.

Call Javascript functions.
public void shouldBeValid() {
    UsAddress address = new UsAddress();
    address.setStreet1("100 Harrison Avenue");
    Boolean valid = (Boolean)"isValidShippingAddress", address);

public void shouldAllowMultipleArgs() {
    Object obj ="makeAddress", "USA", "45030", "Ohio",
            "100 Harrision Avenue", "");
    ScriptObjectMirror mirror = (ScriptObjectMirror) obj;


I found almost everything I needed to know about Nashorn in the guide Riding the Nashorn: Programming JavaScript on the JVM. A quick introduction and then a thorough treatment of the Nashorn implementation.

A demonstration project called jsbridge is available in my GitHub.

Converting Microsoft Word (DocX) to Asciidoc

09 January 2017

I’m starting a side project to get a better understanding of full text searching using Elasticsearch and SOLR and I needed some input. I have been keeping a daily journal for the past six years in Google Docs so I thought I would start with that. The reason I kept it there was for Google’s excellent search. But I also have this uneasiness about leaving it all in Google’s care. There is the remote possibility that they will sunset Google Docs.

When I exported my Journal folder I found that the default format was Microsoft DocX. I really don’t need that level of abstraction. I have since switched to the Asciidoc format for my journal so I went looking for a library that I could use to convert over a thousand files. I found pandoc. It’s a swiss army knife of documentation format conversions. A quick read of the Getting Started guide and off to the shell.

$ find ./ -iname "*.docx" -type f -exec sh -c 'pandoc "${0}" -t asciidoc -o "./output/${0%.docx}.adoc"' {} \;

Thank you pandoc. Now on to Elasticsearch and SOLR.

Mitchell Memorial Forest Hiking Trail

01 January 2017

Entrance to Mitchell


New Year’s Day was sunny with an expected high of 46 degrees. I decided to head for a trail that I had not hiked recently at Mitchell Memorial Forest. The Wood Duck trail is advertised as a 1.0 mile loop. I park at the top of the hill by the Stone Shelter to pick up an extra quarter mile down to the trail head. This is where the trail started when I started coming here around 1990.

Stone Shelter - A nice place to eat out of the rain.

Stone Shelter

Walk down the lane through the trees and cross over to the current trail head. You head down hill on a wide gravel trail. It levels off at a old watering trough that was spring fed in the day. There is a bench close by on the edge of the creek where you can spend a quiet morning in the spring watching the insects and amphibians in the creek.

I usually hike the loop both ways. I see things differently from different directions and the loop is only about a half mile so it doesn’t take much longer. The lower portion takes you past an pond that has silted up over the years. A the end of pond is a concrete dam that doesn’t appear to be going anywhere. The trail turns up the hill for the return to the parking lot.

I turn around when I get back and enjoy the same trip back around the loop. The walk back down to the dam allows me to get a good view of the pond. In the summer time I usually stop at the dam and wait for one of the turtles to appear. The trip back up to the parking lot isn’t a bad climb. I walk around the fishing lake too, just to get another third of a mile before heading back up to the shelter.

This park is a great place for a family picnic. Bring a bag of charcoal and something to cook. There are plenty of grills available. The Wood Duck trail is short enough for the kids and there is the creek to play in during the warm months.

Fernald Nature Preserve End of Year Hike

31 December 2016

So this was my fourth consecutive year at the end of year hike at the Fernald Nature Preserve which also happens to be my favorite place to hike in Hamilton county. This year I brought my youngest son Nate.

We walked out to see the new beaver lodge and the original train tressle for the Fernald properties. We picked up the remainder of the Hickory trail and then diverted to the hazardous waste containment area. We hike past several cells and then summited.

Nate and I on cell 7

On top of the burial mound.

We had lunch back at the visitor’s center while a winter shower passed by and then we headed out for the rest of the hike. Nate enjoys his peanut butter sandwhich more when he’s been out in a brisk wind for a couple of hours.

Nate Having lunch

Lunch with Nate.

We walked out to the Sycamore trail and bounced out to the service road at the loop. We found a trail that worked its way back to the access road and followed the road back to the visitor’s center. My pedometer showed a total of 7.6 miles for the day.

Add a Local Website for Testing

23 December 2016

I like to keep a local website for testing my blog changes before I push them to my public server. I have a local nginx running on my development machine which is configured to serve content through To get this working quickly you only need to add the following file at /etc/nginx/sites-available.
# Virtual Host configuration for
server {
        listen 80;
        listen [::]:80;


        root /var/www/;
        index index.html;

        location / {
                try_files $uri $uri/ =404;

You will need to create the new directory at /var/www/ and add an index.html for testing. Then create a symbolic link in the sites-enabled directory.

Create Directory and Enable Site
$ sudo  mkdir -p /var/www/
$ sudo ln -s /etc/nginx/sites-enabled/ /etc/nginx/sites-available

I added an alias for to my /etc/host file.

/etc/hosts       localhost

Now restart the nginx service to enable these changes. Your default index.html should be rendered when the server restarts.

Restart server
$ sudo service nginx restart

Hosting the site on Digital Ocean

20 December 2016

I decided to host this site in the cloud. I looked at various options such as AWS, Google Compute Cloud, Google App Engine and a few virtual host providers. I write in AsciiDoc and generate the site using JBake. The entire site is statically generated so my compute needs are not great. Yes, I could host it on github, but I really do need something to keep my web skills sharpened, so I decided to go with a virtual host.

After looking at several providers I settled on Digital Ocean. Their $5 a month plan is more than enough for a website or two. I even have enough capacity to run some small services as well. The sign up process was easy and they had plenty of getting started material. There is even a tutorial on adding Let’s Encrypt support. I had this site up in an evening.

Yes there are other virtual host and cloud providers with great documentation and communities, everyone should look at their own requirements and decide which provider works best for their needs. If you decide Digital Ocean is the way to go use Digital Ocean Sign Up to save $10. That gets you two months free if you are just creating a static site.

Secure Your Domain with Lets Encrypt

20 December 2016

Why bother using the HTTPS protocol for your website? It does require extra setup in your web server, and you need to obtain a signed certificate which until the past year has been a hassle. I’m not especially concerned that anyone will try to read my content, I’m thrilled when they do. I am interested in ensuring that What you see is actually the content I intended, without any changes being made on its way to you.

Eventually as I add services and APIs to the site, I want to protect these with SSL encryption. When I looked at the tutorial for Let’s Encrypt on Nginx I decided that it really was easy. The Let’s Encrypt scripts provide automatic renewal every 90 days so you don’t have the expired certificate issues that you would normally run into with other providers. And the best part is that the signed certificate is free.

That being said, I went to the Let’s Encrypt and hit the donate button. This is one community that I really am proud to support.

Spring Break at Carter Caves

28 March 2016

I spent spring break (2016-03-28 through 2016-03-30) at Carter Caves State Resort Park in Olive Hill, Kentucky. We arrived around 16:00 and checked into our cabin in the park. Found a trail map in the Welcome Center. We noticed that there was a natural bridge within a quarter mile of the cabin so Mindy and I went for walk. Fern Bridge is an easy walk from the cottage circle. I would recommend using the trail at the end of the circle, the trailhead between 243 and 244 was wet.

Our cottage was nice, in good repair and quiet. There is a playground in the middle of the circle to keep the kids occupied, which comes in handy since the cabins do not have WiFi. The 4G is adequate and there is enough signal to browse, probably not enough to work. You can always head to the lodge if you need more bandwidth.

The lodge looked to be well kept too. We didn’t try the restaurant during our stay, I prefer to cook whenever I have the time. The park is in a dry county and I didn’t see wine or beer on the menu so I likely would have been disappointed with dinner anyway.

We spent our full day checking out the natural bridge trails and finished the day the X Cave tour. All of the trails were well groomed, and as safe as you make a trail along a cliff. They are fine for my twelve and over crew. We were back at the cabin around 1700 so I could grill some steaks on the charcoal grill outside of the cabin.

The last day we spent checking out some more the trails around the park. We mostly hiked around the lake. We left the main park and drove out to the Cascade Cave area to hike the lollipop trail there. That provided the kids with a little more challenge. We wrapped up our day around 1600 and started back home. Happy that we were only about 3 1/2 hours from home.

Adding the SSH key to GitHub

02 February 2016

git is much more convenient if you create a ssh key for use when accessing your repository.

First, do you have a ~/.ssh directory? No? Then:

$ mkdir ~/.ssh
$ chmod 700 ~/.ssh

Do you have xclip installed? No, then:

$ sudo apt-get install xclip

Okay, lets generate the public and private keys for github.

$ ssh-keygen -t rsa -b 4096 -C

When prompted for a file name I used: /home/dennis/.ssh/id_rsa_github

Give it a passphrase for additional security.

Now start the ssh-agent to manage your keys.

$ eval "$(ssh-agent -s)"

Add your new key to the agent.

$ ssh-add ~/.ssh/id_rsa_github

Then copy your public key to the clipboard.

$ xclip -sel clip < ~/.ssh/

Now log into github and go to your settings, add an SSH Key. Give it name relative to the current computer and paste your public key into the space provided.

If you have previously cloned a project, you will have to update your remote. Otherwise, get you ssh URL from GitHub and clone your project. You will have to enter your passphrase the first time.

Older posts are available in the archive.