Welcome to my website. My name is Thomas Ballard. My ambition is service and entrepreneurship. My training and background is computer science, software engineering, and business. My professional roles have centered around web development; emphasizing user-interface and user experience.
Who is this Thomas Ballard?
Allow myself to introduce, myself. I fell in love with computers through Apple ][ and learned to write games and tools for fun and profit during my formative (nerdy) youth. That has manifested as a career--building software and technology on the Web, and tech-stacks leading up to the Internet. I'm increasingly interested in large model solutions as artificial intelligence waxes; Specifically the technology and techniques getting traction. Solving difficult problems is like a muse for a technologist's mind. I'm also interested in electrification/alternative energy, transportation, healthy community, and housing, and how computer science can help model and solve issues faced by young and sage alike. I enjoy designing, writing, and programming games and tools, information architecture, learning/teaching/mentoring, personal finance and investing, music, movies, and good friends; a few of which get more attention here.Contact Info
- On Facebook at https://www.facebook.com/thomas.b.ballard
- On LinkedIn at https://www.linkedin.com/in/thomasballard/
- On GitHub and/or Bitbucket respectively, at
- You might be able to get in touch with me by email at thomas.ballard@gmail.com
Personal projects and curiosity
Aside: These may not rise to professional-level work. (Sharing dev as work and hobby creates a conundrum: Not all projects warrant commercial production-level time and effort. They may be here as a waypoint to a prototype or MVP and can mean sans-the benefit of review and iteration of a professional team setting.)- Hexcabulary: - A six-sided twist on the classic word search game which runs in a web-browser as a free online puzzle. Using a hexagonal game board vocabulary words are hidden in the puzzle using some novel strategies. More examples expanding the six-sided word find puzzle concept.
- Minecraft Portal Calculator - the game Minecraft has been popular with friends and family. I wrote some basic tools to help parse XYZ coordinates and calculate the placement of gates to pair them as well as helping keep track of the points of interest associated with those gates using a game journal.
- 100 Hundreds Table Math Exercises for Grade School Kids - An interactive client-side application demonstrating skip counting with the hundreds table. This collaboration with my son also helped illustrate JavaScript programming, and HTML/CSS presentation.
- Stock Research Tool - An example using localStorage, import/export via JSON, various APIs to stock lookup services, and playing around with Bootstrap and various ESNext features.
- Create an HTML Word Search Game Board using JavaScript - An example showing, among other things, a contrast between "unobtrusive" and by implication "obtrusive" (?) inclusion of javascript in HTML projects.
- Hyper Lander - an MS-DOS days game I wrote using C (a pet project that has seen numerous incarnations since I started programming as a kid, this version was a catalyst to help my brother learn programming). I've been fiddling with some of the assets rewriting as a web game using JavaScript and basic responsive techniques (non-functional currently, but a work in progress).
- How to Build a Graph using HTML5 Canvas Tag and JSON - Another quick example, this time breaking down one way to plot graphing data.
- Online Time Sheet Calculator - An older utility I wrote to help track and calculate work hours.
- Trello Board - This one is for me/teammates (behind a login). More recent/active TODO and near-term consideration. ("Self or friend, got five/ten minutes? Put some time in here!")
- Github "Gist" -
Experimenting with these, (unclear if they'll play an ongoing role).
For now, here's an example of a "secret" gist: General study (~5-min time-boxed)
And some rambling...
Online Jigsaw Puzzles using Flash: A Cautionary Tale.
Before the Internet, I never liked jigsaw puzzles. They were messy, required work space, and were a pain to clean up after. My family on the other hand, loved them. How to find a compromise a nerd like me could embrace? After all it was the decade of the aughts, we were living in the future! Heck, we could even animate web pages with Macromedia Flash!
Enter a cool little Flash application that creates puzzles from any photo fed it. We fed it some and wrapped the output with additional features to change the backgrounds for better contrast, provide links, labels and verbiage for search engines, banners, and other fodder from the aughts. All that was needed was a few minutes to kill, some basic hand-eye coordination, and a browser that supported the increasingly controversial proprietary technology.
And, for the sci-fi twist...
Browser support for Flash has been in the process of being phased out for some time now. And we're getting very close finally to having little to no remaining support. While there are alternatives, the cost of cutting over content may mean instead that some content will simply disappear as it's not economically feasible to rework.
The lesson may be that once shiny technology, ecosystems, frameworks can have a limited shelf life. Many developers don't yet have the wisdom to recognize this and can become invested before technologies mature. It can be a delicate balance differentiating between leading edge and bleeding edge. For personal projects like this puzzle example its just hurting some poor grandmother's feelings (shameful). But, if your company spent millions of dollars pivoting to shiny, ...oops?! Given the opportunity, making a technology choice which has broad buy-in and support by governing bodies such as the W3C can sometimes offer a hedge against this kind of forced obsolescence.
JavaScript Hangman and Ancient (Web) History
Long ago, one of my first web projects was fiddling with making a web page/game for vocabulary lists. It took the form of a customizable hangman game written in JavaScript, before support for things we take for granted today such as XHR, JSON, CORS, and even good support for event listeners.
Over the years it has needed minor revisiting, but what I appreciate about it is just how little has needed to change in order to keep it running over two decades of changes to web technologies. To me this is at least a rudimentary example of how choices during the development investment can have long lasting effects and pay dividends over a very long tail.
The (now ancient) front door for the project is here (on a free web host from the time): Play Hangman Game. The underlying engine for the javascript hangman game is hosted here. (As time permits, expect updates and notes here.)
Here are some customized variations that use the base game engine, feeding different themes, word lists, etc. While there are more recent examples of web games, consider this was written around twenty years ago and still works (for the most part) without a lot of changes. Hopefully code written today will enjoy the same longevity.
- Play JavaScript Reserved Keywords Hangman
- Play 50 US States List Hangman
- Play Resume Glossary Hangman
- Play Health Insurance Glossary Hangman
- Play Statistics Glossary Hangman
- Play Popular Tourist Vacation Destinations Hangman
- Play Bible Study Hangman
- Play Real Estate Glossary Hangman
- Favorite Artists and Eighties Bands Hangman
- US State Capitals Hangman
Back to top