header photo of Bob Shank


HTML Cheatsheet

April 2, 2023

Learning HTML is fun! I enjoy experimenting and trying new elements and tags. One problem I have though is remembering all the vast information in the HTML code. It is not easy for me to quickly recall some of the obscure tags at a moment's notice. Repitiion and writing code daily certianly helps. To assist me in remembering the tags better, I decided to write some code that I call an HTML Cheatsheet. It uses modals to pop up a dialog box to explain a tag or elment. Writing the code was fun, too!

You can see what I've been up to with this on my projects page and then clicking on the HTML Cheatsheet. It is only in the beginning stages, but I will be expanding it and including more and more html tags. When I click on one of the boxes on the project page, a dialog box pops up to explain that tag or element in more detail. Some are straightforward and easy but others are a bit more obscure and more difficult for me to remember.

Perhaps one day I will even make a memory game out all this html information. That might even help me to remember everything even better!

Chessboard Visualization Test

March 4, 2022

Every chess player needs to be able to think ahead and move the pieces in his head before they are moved on the chessboard. This is much easier said than done. Imagining a sequence of just three or four moves by each opponent, without actually seeing the moves on the board, can be very difficult indeed.

So, chess players are encouraged to work on their memorization skills. Blindfold chess, where a player cannot see the board and just sees the moves of the whole game in his head, is one example of a memorization skill. It takes great effort to be able to accomplish such a feat. Other, less difficult memory exercises can assist the player to eventually reach this goal. One simple memory exercise is to memorize the shade of each square on the chessboard.

A chessboard is made up of 64 squares. Half of them are a dark color and half of them are a light color. In addition, each square has a specific and unique name or coordinate. The board is made up of eight files, which run vertically between the opponent’s, and eight ranks, which run sideways. The files are lettered from A to H, from left to right of the player playing the light-colored pieces. The ranks are numbered from one to eight. Thereby, each square is assigned a letter and a number. For example, the bottom left square, again from White’s position, is called A1. All along the bottom rank, the squares are assigned, A1, B1, C1, D1, E1, F1, G1, and H1. These squares also alternate in their color shading. A1 is dark, B1 is light, C1 is dark, D1 is light, and so no. Each square on the board is thereby assigned a unique combination of a letter, a number, and a shade.

Two players can challenge each other by naming a square, say E6, and the other player has to name the shade of that square. E6 is a light-shaded square.

One day recently, I got to thinking: what if a chess player is alone and wants to challenge himself to memorize the board without looking at it. I thought about it and came up with the idea that a code could generate a random square assignment from A1 to H8. Then when this random square was presented to the player, he would have to guess the shade of that square. The code could return the result, indicating if the player was right or wrong!

So I got right to work on generating such a code to see if I could make my bright idea work. I began with the generation of the random square assignments. I limited the numbers from 1 to 8 and limited the letters from A to H. This part was fairly easy. Then I generated a quiz, providing two buttons to allow the player to indicate if he thought the particular square was light-shaded or dark-shaded. Again, this was easy. Then I had to write the code to provide the correct answer. This was a little more difficult but still not bad. In the end, I was able to write the code to make this possible.

You can see the resulting Visualization Test here.

I enjoy the challenge of creating code to accomplish a task. It is even better when such an accomplishment works for a client who is tackling a difficult dilemma or striving to present their business in an attractive and competitive way. Little projects, like this one, are fun, too. They keep me coding and trying to find functional and helpful solutions to everyday problems.

Code on!

My Squared Number Coding Project

April 18, 2020

I enjoy coding. The challenge of taking a design concept, putting feet to it, and creating a usable project is great! I love the challenge of coding and I love the creative side to it as well. Many times the design concept is discovered by some existing problem or a “what if I…” thought process.

Here is one example: When I was in high school, our algebra teacher used math drills to open each class. He had us memorize the squares of numbers up through 20. I had to learn those squares if I had any chance at those math drills and they weren’t easy. Learning the squares from 13 to 20 were difficult for me. I equated it to learning the multiplication table, which I did back in the third grade. This was more difficult and I could have used some help. So the other week, I thought: what if I could code a way to help me learn these squares? I thought it would be a fun challenge, so I set out to accomplish my goal. I wish I had known then what I know now and wrote this code back then!

The first problem was how to have the code create a random number and put it through the mathematical equation, say 17 squared. This was relatively easy; actually easier than memorizing these squares! Once this was accomplished, I just had to find a way to allow the user to input his or her answer. A form was created for this input and then I only had to evaluate the user’s answer with the correct answer. If the answer given by the user was incorrect, then I would encourage them to try again. If the answer was correct, I would reward them with a kind comment of praise.

As I worked on the code and tested it out, it didn’t take me long to realize that one piece was still missing. Implementing the design can teach us a lot and present additional dilemmas we did not initially consider. What if the user tried many attempts but couldn’t give the correct answer? The code would wait forever until the correct answer was given. So I created a new option for the user to click on to reveal the correct answer. He or she would learn this and then apply it later when the same problem was presented again.

I also wanted to allow the user to use the keyboard as much as possible if they so desired. A little more code put the cursor in the input box from the beginning and highlighted the number if the user was incorrect and wanted to try again.

After some testing, it worked like a charm. I only wish I had thought of this when I was in ninth grade!

You can see my Squared Number Coding Project here!

Virtual/Streaming Conference!

April 16, 2020

This week I "attended" the Emerging Technologies for the Enterprise 2020. This is the Mid-Atlantic Premier Developer's Conference and it was still held this year but in a virtual/streaming way due to the Coronavirus. Fred Stluka alerted me to this conference and suggested I "attend." I am so glad I did, too! It was chock full of intriguing presentations on all kinds of topics.

The event started off with a keynote speaker each morning. Then there were three concurrent presentations in three different rooms throughout the day. The topics covered an enormous amount of programming languages and topics. They also embraced looking forward in the industry on several levels. It was fascinating and instructional to hear professionals in the field talk on these topics.

The virtualness (i made that word up) of the event was not the same as being there in person but it did work and it worked well. There was a hallway to chat with others and after each presentation, viewers could ask questions and chat with the presenters. It was really cool! In addition, since I had to make a decision to “attend” one of the three presentations in each time slot, I missed the other two. But each night we received links for all the presentations so we can go back and watch the ones we couldn’t attend! How cool is that?!

If you are in the region, I highly suggest you attend this event next year. It is incredibly valuable and I am so glad I attended this year even in a virtual way. Kudos to the organizers, the presenters, and all who attended. It was an incredibly valuable experience for me!

Emerging Technologies Conference


April 4, 2020

There are several ways we can respond to the Coronavirus and the lockdowns many of us are experiencing. Two immediate ways come to mind: do nothing but be a couch potato or learn a new computer language and sharpen skills we already possess. I am enjoying various resources to help me do the latter. I am not much good at being a couch potato and it isn't very much fun either.

SoloLearn was one of the initial apps I used to learn HTML, CSS, and javascript. It was helpful to me and I found it valuable. I still find it helpful to keep my skills sharp.

More recently, I reconnected with W3Schools There is a ton of information here on several computer languages and it provides not only tutorial learning but practical examples, exercises, and quizzes.

A third resource I find immensely helpful is Bristle Software, Inc. My good friend and computer mentor, Fred Stluka, runs and manages this site. It is filled with great tips and an incredible amount of valuable information. I cannot recommend Bristle highly enough! Thank you, Fred, for keeping your site updated so we can keep learning from you! You are amazing!

I am a visual learner like a lot of people. I learn by seeing and doing. Throw a practical need or project into the instruction and I am all over it and will learn quickly. Writing code requires two basic skills, in my opinion: memorization and repetition. We have to learn functions, statements, and attributes, which requires some level of memorization. I remember back in school when our teachers encouraged us not only to read and listen, but to write it down! Memorization can be equipped and enhanced by actually writing code. I can read the same paragraph many times over and still not quite get it. But when I begin to actually write the code, my memory ability goes way up! Repetition is doing something over and over, repeatedly. Baseball Hall of Famer, Cal Ripken, Jr. teaches: "Perfect practice makes perfect." Mere repetition alone is not enough; it has to be done correctly. By writing statements and elements over and over I more quickly learn and remember what I am doing.

So, instead of sitting around doing nothing, find ways to learn something new and/or sharpen the skills you already posses. Make wise use of this time and it might not be so bad after all and may even propel you into something new and exciting! Give it a try!