Wednesday, October 21, 2015

Lynx Program Downloader

Today I am proud to announce version 1.0.0 of my very first finished program, Lynx Program Downloader! This program is really just a bash script that a person could run in any Linux operating system (sorry, no Windows support at this time). It automates the process of downloading your favorite programs on a regular basis, regardless of where you go to for your downloads or what platform you are downloading for. It logs which files have changed since the last download, how long ago you downloaded it, and sorts the downloads into the categories you want them to go into. Because it is script-able, anyone could create the pattern for downloading a file from a given website. Once the program has done it once, you can have it download dozens of files from the same site using the same macro!

You can attach your initials to signify who downloaded the program, and look through the logs to see which files succeeded and which ones failed. A filter decides what files to consider good (.exe's, .deb's, etc.) or bad (.html). Because of its open nature, anyone can take this program and make it run on as many programs and categories as they want by simply editing a CSV file that acts as the program's database.

In my runs, when I tell it to download all files, it takes hours and goes through gigabytes of data because I have so many programs in the spreadsheet! All on its own. It's pretty cool.

I encourage everyone who finds this at all interesting or helpful to give the program a try! You can clone or fork it on GitHub or download the source as a .zip or .tar.gz. You can also report bugs and request features here.

It has been quite a process: I started it at work as my very first scripting job. At first, it worked...unreliably. I never really was happy with it, so I continued on my own, tweaking it every couple weeks. Eventually I got people to try the program and review the code! I went through a ton of editing, changing aspects of the program, adding and removing certain features to bring it to a stable state. I think I have finally gotten to the point where it is stable, and I want to share it with as many people as I can to get it reviewed and tested. So here it is!

I am always getting ideas for another project, and in the future I'd like to use python and QT to create a program with a graphical user interface. I'd like to create a program that presents a timeline--something that a person could use to view certain events in history, whether ours or in a fantasy. I have ideas for filters, events and people to be stored in a database, and I want to be able to zoom in and out of any period in history. This project will be a little more ambitious than this last one, but I am excited to get started and look forward to seeing my work represented in more than a terminal.

I'll be supporting Lynx Program Downloader and working on this new project in my spare time between college and work. I look forward to it and am so excited to start working with Python and QT! Some day, hopefully, I'll be able to use these skills professionally, and I'd also like to work on some KDE projects. Until then, I've got some programming to do!

No comments:

Post a Comment