My name is Tom Hartung, and here is an overview of the important projects I keep on
with links to specific repositories as appropriate.
Note that I work every day, and
can prove it!
Not only that, this is allwork that I have done on my own time.
And to make sure the whole story is perfectly clear, and ensure expectations are properly aligned with reality,
please note all projects are on-going.
This is because I feel learning from these projects is much more important than completing them.
You could call this a "menu" if you like, but I want this page to be simple and keep the focus of it on content.
github repository contains the source for my
It is, for the most part, a standard
These sites are going offline — or at best will be far less functional —
when I switch to the new server,
which is running Ubuntu 16.04 and PHP 72.
This is a static site, one of the first ones I built, and it has no repo on github.
It is not mobile-friendly, but it is not obsolete either.
I like to think of it as being a cave wall painting and
I have no plans to update it at any time in the near future.
Of course, if what I am reading about https in articles such as
this one on arstechnica.com comes to pass this one may wind up with some sort of "red flag."
Interesting times are ahead, indeed!
The static ip is included with my land line, so although it is "free," bandwidth is limited.
My Sites Run My Dog Food Only
Note that these sites run only the base distribution of the CMS and the extensions that I write.
That is, they do not run any third-party extensions.
Most recently I have been using Device Detection, provided by the
adapter API, to implement Adaptive Web Design (AWD), or more specifically,
Responsive Design With Server Side Components (RESS).
This work is fairly extensive and appears on a
separate page on this site.
Please be sure to check out the two separate pages listed above, especially the one on
Adaptive Design and RESS Using Device Detection.
They summarize and explain quite a bit of the work I've been doing lately — and all of it on my own dime.
It would be great to get a chance to do more work like this, especially if I could actually get paid for it!
repository on github contains the source for
my adaptive, interactive, and comprehensive
How It Adapts to Your Device
When you visit it on a desktop or tablet, the resume appears as a single page —
using slightly different styles on the tablet.
When you visit it on a phone, the server:
Breaks each section into a separate screen
Adds navigation bars at the top and bottom of each screen,
allowing the user to focus on one section of the resume at a time
And although it lists all of my jobs — and is hence comprehensive — it will show all of them only if the
visitor really wants to drill back into my past.
Try It Yourself!
These repos include documentation that should be enough to enable you to create your own
adaptive, interactive, and comprehensive online resume.
I write scripts and document processes that help me
keep my sites functioning, keeping many — but not all — of these on
I am language-agnostic,
and happy to work with older languages such as
As you might guess, I use English to define processes and when giving presentations,
and I use Python, Bash, and Perl to write the scripts.
The joomoowebsites directory contains some plans I was working on for awhile
Images, slides, and other notes from presentations I have given are in the presentations directory
I still keep most of my Bash and Perl utility scripts locally (as opposed to on github), and
move them to github as I convert them to Python.
Therefore this repo does not yet include many, if any at all, of the Bash and Perl utility scripts
I use on a daily basis (e.g., to quickly ssh between hosts on my LAN).
Also, there are a very few utility scripts in the
I had to separate them out because they help me quickly find and kill processes and so are extremely important
And while the eventual goal is to convert all of them to python3,
I could not get python3 to run on the Edison.4
Like all the other projects on this page, this is fun and educational
but not important enough for me to focus on exclusively at this time, and so still very much
The Edison is a micro-computer — about the size of a largish postage stamp.
Having virtually no recent experience with this sort of computing,
for me that weekend was a huge and wonderful learning experience.
After the event I spent some time writing basic programs to run on it, keeping the code on
Although there is support for other languages, including Java, I chose the following:
contains C/C++ sketches (programs) that perform basic digital and analog input and output,
along with a few more fun things that work best using this method.
Most of these programs work similarly in all three languages, but there are significant
differences in capabilities and the ability to write elegant, understandable code
once one gets past the basics.
I have additional repos —
— that contain supporting code.
I bought several books, most of which are published by
to help guide me through all this.
This entire project has been a huge amount of fun!
Both seem to be constantly undergoing significant changes, and
it is important to spend some time on occasion keeping up with these,
repo has some work I have done recently at
repos contain some work I started for a client who has since gone dark on me.
This new technology, which allows visitors to save a site to their phone's home screen, sounds quite exciting!
This looks like a great idea for my
However, at this time (2015-08-02) it works properly only on Android Phones, and my mobile phone is an Apple.
Bummer, right? Well that is exactly why they call it "Progressive..." — but that's another story.
There are some online tutorials and classes at
Keep an eye on the progress I make on this in
I have been hearing a lot of buzz about this new technology and
definitely want to check it out.
I suppose that
will be an excellent place to start, once I find the bandwidth.
Along with other benefits, keeping the code I write for these classes on github allows me to
start coding for a class on one pc, commit and push what I've done, and
resume the class or tutorial on another pc. Sweet!
My original intent was to use the
directions at gnu.org
to open-source all of this work,
making it available for reuse under the
GNU Public License
I have done this with some of my code, and in particular
many of the individual files have been open-sourced to varying degrees.
I believe I am like most people in that I really don't mind people using and learning from my code.
However there is some concern that a black hat of some sort
might somehow make a bunch of money off of my hard work.
Another concern is readiness for production.
For one thing, different environments require different levels of performance and security, and
for another, this term is virtually impossible to define, because new methods of attack are constantly evolving.
Although I use some of this code on my personal sites,
these sites are for demonstration purposes only.
They run only the core CMS code and
my own code,
and no other third-party extentions.
Additionally, I keep many backups of both the code and the database, in case one of my sites gets hacked.
If you do not follow the same precautions, I certainly cannot guarantee positive results.
Due to monetary constraints, there is only so much work I can afford to do, alone and by myself,
without getting any sort of financial compensation for it.
And moreover, as fun as it sounds, producing and giving away production-ready is just not one of
my goals at this time.
So you should not assume that any code you find in any of these repos —
whether licensed or unlicensed — is production-ready.
This code is strictly available as-is —
but: I would be
more than happy to work with you
to make any of the code you find in any of these repos production-ready upon request.
Using My Code
I would definitely be flattered if you wanted to use some of the code I have worked so hard on,
but it's impossible for me to feel flattered if I don't know about it!
So if you are interested in using some of my code, please:
Check to see if the repo has a LICENSE file, and if so, abide by those terms
to see if I would be willing to do more work on it, or add a LICENSE file to the repo, or both — and we'll take it from there
Better yet, let's
on getting it ready for production in your environment
I have a spreadsheet filled with hundreds of articles I would like to post to these sites at some point,
but instead of creating content I invariably find myself working on other, more technical and
ultimately more interesting projects in my
I am looking into completely rewriting these sites using the latest technology from google and/or facebook,
and making one or both a
Progressive Web App
(PWA), or maybe use
which is getting a lot of buzz lately (ooh shiney, let's play!)
For up-to-the minute information on the progress I am making on this project, see the
Lifelong Learner section and associated repo(s).
Unfortunately much of that work is now obsolete....
Fwiw, I did not try all that hard to get python3 to work on the Edison....
Which is ok, because truth be told, I am all about the learning, and I told him I do not charge for research.