The past year kept me busy with a lot of little tech projects, programming, scripting, networking, and honing my Linux skills.
Writing Code
Probably the biggest thing for me was the revival of my interest in writing code. This summer I found a couple of notebooks containing some of my source code from my college days Of particular interest was code from a 1998 Computer Engineering class for which I wrote a couple of programs to count logical lines of code. The Function Lines of Code (FnLoC) program I found wasn’t the latest version I’d written but I typed it in to an editor and compiled it.
Then I started improving it and resolving some of the problems it had. One of the big changes I made was to replace the stack holding the function information with a singly linked list. With the stack, the function data was displayed in the reverse order of how it appeared in the code because the last function was the most recent addition to the stack. My implementation of the linked list added new data to the end of the last and displayed it from the beginning so the functions are listed in the same order as they appear in the source code.
I also fixed problems with properly identifying and counting function headers that spanned two lines. If a function header needs to be split (a practice I try to avoid), both lines will be copied to the linked list and later displayed in the output. The two lines are counted as one logical line of code.
There is still a problem with how the program deals with multi-line data structures where the data is comma delimited as in arrays. Currently, mult-line array declarations are counted as two line, regardless of how many lines are in the declaration. One of the challenges I face is differentiating a function from a data strucuture while parsing a line of code.
As part of the FnLoC project, I created a Bash script wrapper for the program which displays the program’s output to the screen as it writes it to a file. I also learned out to create a .deb package to distribute it to Debian/Ubuntu-base distributions and wrote scripts to install on other Linux distributions and on Windows. I also compiled it on Windows 7.
I’ve also been doing some other coding to keep in practice but haven’t found myself another project yet.
Bash Scripts
I continued to write Bash scripts to do several tasks for my own use and I’ve been adapting others’ scripts (particularly Joe Collins of EzeeLinux) to fit my needs. Among the scripting highlights were scripts to insert headers and licenses into existing scripts and to use templates to create new scripts and source code files.
I also created other scripts solved routine problems like renaming file extensions or file names to make them more readable or to conform to naming conventions.
Conky Scripts
During the year I found that due to changes in conky in Mint 18.x and Ubuntu 16.04 repositories, my conky scripts weren’t functioning right.I wrote a new and simpler base script and applied it to my systems. Since developing my conky scripts is no longer a priority, I removed the Conky Configuration page from the blog. I rarely have much need to tweak them any more.
Recently, I created a script to take a template file, fill in the appropriate device names, create the .conkyrc file, and make a copy of it in a designated folder. Then I expanded on the script to install conky and the conky.desktop.
GitHub
In late November, I discovered that I had set up an account on GitHub. I have no recollection of when I did this but since I had it I figured I may as well use it. I found some tutorials on-line and set set up git repositories on my main computer and on my GitHub account. Presently I have two repositories on GitHub – FnLoC and bashscripts.
Windows
Although I’m primarily a Linux user, I still maintain a few Windows machines. On my Windows PC I installed CygWin and MinGW mainly to use rsync for external backup and to compile C source code, respectively. I still have a small number of tasks I do on Windows so I keep a Windows 7 PC around just for that. The rest of the family still hasn’t converted yet. I avoid using Windows 10 like the plague.
Installations
Throughout the year I did several installations of both Linux and Windows. I set up Windows 7 on laptops as gifts for my son and my daughter-in-law and set up a Windows 10 laptop for my grandson. I also put Windows 7 on a machine to replace an older machine. And I set up various flavors of Linux on laptops to try them out.
Near the end of the year, I replaced the aging Dell laptop I keep by the rooter with an HP EliteDesk 8300 USDT. I had intended to install LMDE 3 on it but had some issues with the UEFI partitions so I ended up putting Mint 18.3 on it and letting the installer set it up with a single partition.
A few days later I did get LMDE 3 installed on a desktop mini which is working out very well. It has an issue with sourcing my .profile in the GUI login so my ~/bin folder wasn’t showing in in the path. I had to configure the terminal to login in as a login shell. It’s a work around and something I’ll hope they’ll fix.
Just after Christmas I decided to reinstall Mint on my Lenovo PC. I decided that I was never going to use the Windows 10 partition so I reclaimed that disk space. I struggled with getting the partitions set up to work with UEFI and I somehow managed to disable it and get Mint 19.1 on it. Getting my applications installed was a struggle too. You can read the details in a previous post.
Employment
From mid-January through the end of October, I was again employed by The AME Group, working part-time on the Kettering Health Network project to upgrade their systems to Windows 10. I generally worked four evenings a week imaging computers and tracking the computers that weren’t going to be used in the upgrade. I was able to purchase some very nice computers dirt cheap so I have a nice collection of laptops and ultra-small form factor desktops to play around with.
I stopped working at the end of October because I was nearing my income limit where it would have affected my Social Security benefits and I wanted to get some things done around the house. They are hoping I will return after the first of the year. I’m thinking about it because I could use the extra money. However, I’m not sure I want to do the four-day work week again because I found that I really didn’t have as much time to get things done as I would have liked. I’m thinking a three-day work week for between 18 and 24 hours a week would suit my needs well.
2019
In the coming year, I expect to be doing more with Linux along with building up my coding and scripting skills. I’ve got a couple of small projects in mind.
- Installing LMDE 3 on my HP EliteBook 6570b. I have 18.3 on it now and it’s working well but I want to work with LMDE more.
- Do more with virtual machines – distro testing, programming environments, testing scripts, and Windows tasks.
- Finding more coding projects, either C programs or Bash scripts. I’m sure I’ll find things that pique my interest or a problems in need of solutions.
Filed under: Uncategorized | Tagged: code, conky, GitHub, installation, scripts, Windows | Comments Off on Penultimate Day 2018