Wednesday, January 24, 2018

Music to Code by

I code a lot.

I don't think I could do what I do without the help of music.

When I started my current job, I found that coding to me was like holding my breath underwater.  By this I mean, I find a problem to solve then dive in to it. I have to hold thoughts like breaths for long periods of time so ideas can vetted out in my head as I move towards solutioning for problem of the moment.

For me, when holding that thought, I need music to help me with patterns as I'm processing the various ideas and pieces of data.

I've found that has been and invaluable resource in helping me locate the specific type of music that help me code.

I prefer music without lyrics and more specifically have found that techno and music with beats and patterns seems to help me best.

Do you code to music?  

If so, what types?

Drop me a comment and share your thoughts on this. ;-)

Happy coding!

Thursday, January 18, 2018

Setting up IP Restrictions in IIS

Today I blocked myself out of one of my websites. How?  By adding incorrect IP restriction in to IIS.

The issue was entering the wrong IP subnet.

I had found the following video helpful in solving my issue.

Happy IP blocking!


Wednesday, January 17, 2018

My best impression of Ferris Bueller, Taking Sanity Days as a Developer and Some Security Stuff

Today's therapy session / blog which I'm pretty sure nobody reads is mostly about work-life balance as a software developer.

A year ago I made the crazy leap from support engineer to "lone ranger developer" at a small but rapidly growing start-up. I literally had no idea exactly what I would be doing, only that my boss knew me and thought I would be a good fit from my previous work. I drove myself to the point of exhausting trying to get up to speed enough to start bringing value to my boss, my newly forming team and the company in an amazingly short amount time. I'm good at that!

My life has been insane for a year with lots of highs and lows but at my one year anniversary, I'm feeling pretty accomplished. 

So today I took a sanity day. It was my first since pledging to take them in 2018.

So what did I do on my day off? 

I took care of stuff like blood work and Christmas tree that needed to be broken down, just stuff that developer who work at start-ups find they end up not having time to do.

I also got to spend a couple of hours coding on the mobile upgrade for my labor of love,

Lastly, I had stumbled upon this article that I thought was helpful for understanding some standard terminology used in today's IT security vernacular.

The article's title had me interest so I thought it was worth a share.

Monday, January 15, 2018

Programming in Spurts vs. Sprints

Today's blog is just some thoughts around product development and IT project management after spending the last 20 years developing a somewhat successful web product on my own and then working this last year at a start-up , maturing development and product support teams past the start-up phase.

Let me preface by saying, my family has entrepreneurial gene that is a blessing and a curse. I have worked on quite a few start-ups but none of them turned out to be big financial successes.  I had several opportunities and was a founder or co-founder on several web and software projects back in the late 90s and all they required was my willingness to jump in, do scary things and empty my bank accounts.

Even though the projects themselves were not successful financially, those life experiences in the tech business have been paying off big dividends in my long running IT career ever since.

Having worked on many small start-ups that never matured past the garage phase, you never get to experience all the things you need to master as your company grows and matures.

Around this thought I will focus primarily on development related issues as I could also just as easily discuss security and dev-ops related items too. I kind of have to do it all in my roles.

Working in Spurts vs. Sprints!

I've recently coined a new term, Spurts, instead of Sprints, to describe how I bundle my development work as a lone developer at a one man, dot com.

At my day job, we use "Sprints" and the Agile software project management methodology. Sprints are small work packages that are entered in to a Agile project management software called JIRA. These smaller work packages make up a build or release. A sprint can be from 4-8 weeks depending on resources. We also have a formal change board that reviews all the build documentation before giving the thumbs up before go-live. It is a complex but thorough system.

For my one man dot com operation, I use "Spurts" instead of Sprints. This is a loosely scripted system that makes the best use of my spare time to develop a product or service in spurts.  I would imagine there are a few people like me but probably few and far between.

If you're reading this, and you're thinking about starting an online venture yourself, I would hope this might bring you some inspiration of what can be accomplished just using your spare time with some focus.  Even if it took you 20 years to build it. If you can dream it, you can build it!

This is probably not a complete list but here are some ideas about Spurts:

  • Have an overall vision and mission statement for your product or service.
  • Think a lot and make lists, a lot.
  • Make lists of problems you're trying to solve or features your customer most likely want.
  • Use tools like OneNote and Evernote to document your rapid learning and development ideas. Inspiration hits me at all sorts or odd times but rarely is it simultaneous with my coding time.
  • Prioritize your list and focus your time on items that will have the most positive impact or "bang for the buck" early on so you can get some small wins, gaining momentum in your favor. Even small wins are great motivators for entrepreneurs. I can't tell you how motivated I was writing code when I was clearing $20K a month. It was amazing but it never lasts. :-(
  • Protect your investment in time and work by learning how to backup your projects how to use version control software like SVN or repositories like GIT.
  • Be ready for when you have any free time, do grab your list and work on your spurt list.
  • Over time, you'll be surprised what you can build in small pieces over time. That is really the essence of software development anyways, right?
That is all the time I have today for blogging. My Spurt list is calling and I have some coding to do on
Happy coding to you!


Monday, January 8, 2018

Testing Your Website for Mobile Friendliness

I'm in the process of upgrading a large site,, from an old tables based layout system to a new and modern mobile friendly responsive design and it is a lot of hard work.

How do you know if you've hit your goal of creating a mobile friendly website that Google will include in their Mobile First index?

Use Google's, is your web page mobile-friendly tool.

After many hours of code updates, finally passed!  This is your goal...

Saturday, January 6, 2018

Responsive, CSS Only, Navigation Bars

Responsive, CSS only, Navigation bars!

I'm on the hunt for some code to help me redesign a navigation bar for

Currently there is old JQuery code that is not responsive that needs to be replaced.

The site is over 20 years old and has code from various stages in my IT career.

I appreciate simplicity when I can find it.  I don't feel that everything has to be tied to the latest Javascript framework.  If you can find a better solution with less code or a more simplistic method of implementing it then I'm all for it.

I decided that my solution must be responsive but not necessarily Javascript and even better if it was just CSS only.

I spent about 2-3 hours watching YouTube videos and reading blog and tutorials on responsive web design techniques and I know there are newer techniques using the latest in CSS grids but I decided to go with a CSS only approach.

I've found the following referencing extremely helpful.

Sunday, December 31, 2017

Blockchains and Hash Tables What you Need to Know from a Programmer Prospective

Here I am, it is New Year's Eve and I've been able to taken advantage of having a little time to learn new things.

One of today's items was to understand blockchain technology a little better and what better way then to watch someone build one in a YouTube programming tutorial.

First, you need to get a grip on Hash Tables.

Here is a good primer video on Hash Tables from HackerRank.

Once, you get through that, then you are ready to watch this video on how to make your own blockchain from Ivan on Tech on YouTube.  I thought it was worth the time.

How to Get a List of IIS IP Restrictions via VBScript, My New Year's Eve Scripting Break

It is New Year's Eve morning and I'm up early and ready to try and learn or improve my knowledge on a couple of topics.

One of them was how to use VBScript to get the IIS IP restrictions.  Why you may ask? Why not, I say. I have some ideas in mind as part of a larger system or tool I may write some day soon.

Even though one of my old engineer friends, Greg, would be saying to me all the time, "why the hell are you still messing around with VBScript when you should be doing that in Powershell".

I say if you can do it in any language or framework, why not know how. Especially, when there are so many repositories of great vbscripts out there for the Windows OS. If there is a way to do something, I'll try it and then just to put that code in my library for some rainy day or integrate it in to something I've already written to improve it.

If you want to get a list of the IP restrictions that have been set on a server running Microsoft's IIS then you just run this VBScript.

It will pop-up an irritation msgbox as it iterates through a list of the server's IP restrictions which can be set on a collection of objects. It can go on forever.

strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:{authenticationLevel=pktPrivacy}\\" _
        & strComputer & "\root\microsoftiisv2")

Set colItems = objWMIService.ExecQuery _
    ("Select * from IIsIPSecuritySetting")

For Each objItem in colItems
    Wscript.Echo "Name: " & objItem.Name
    For Each strDeny in objItem.DomainDeny
        Wscript.Echo "Domain Deny: " & strDeny
    For Each strGrant in objItem.DomainGrant
        Wscript.Echo "Domain Grant: " & strGrant
    Wscript.Echo "Grant By Default: " & objItem.GrantByDefault
    For Each strDeny in objItem.IPDeny
        Wscript.Echo "IP Deny: " & strDeny
    For Each strGrant in objItem.IPGrant
        Wscript.Echo "IP Grant: " & strGrant

As always, I like to share and give credit to the online resources where I find these gems.

Thursday, December 28, 2017

Installing the Eclipse Plug-In: Best Online Resources

This is rare for me, two posts in one day. Even if they are just jots.

I'm getting ready to begin learning how to Code in Apex which is a combination of Javascript and SQL. At least that is what I've heard up to this point.

Before you can run in programming you have to crawl a lot. :-)

Our crawl today is...  Before you can code in Apex you need to get your development environment setup for learning.

That is where I am right now.

We can use the Eclipse IDE to edit our Apex code but we will need to install a IDE plug-in first. How the hell do we do that?

You will, with the help of these resources:

Video: Installing the IDE Eclipse plugin

How to Prevent Page Reload with Javascript onclick Without Using "#"

Just a very short blog jot for today as I'm busy working on a data analysis tool / system.

Since this is a very low budget project, I'm hand coding everything using Notepad++ and VBScript to create a dynamic web application in old school Acitve Server Pages (ASP) that can consume the analytic data that my system stored on a MS Access database.

Again, low budget. Me and my wits pounding out code.

I ran in to an issue where the web page is calling a javascript that passes two variables to an Ajax call to load a Chart.js bar chart in a popup window.  It was working great but the page that had the onlick event to load the pop chart was reloading as well when clicked instead of just loading the popup window with the chart.

What's the fix?

Add "return false;" at the like in the example below and the page containing the onclick link should stop reloading when clicked.

Old Code

<a href="#" OnClick="getChart('John Smith', '2017-01');">John Smith</a>

New Code

<a href="" OnClick="getChart('John Smith', '2017-01');return false;">John Smith</a>

I always give credit to the people who helped me find the answer.  I had found the answer in the stackoverflow page below.