Today marks a Big Deal for me — something I’ve been working on for the better part of the past year off and on has finally reached its first stage of completion. This has been something I’ve kept pretty quiet about because I know I have a tendency to say I’ll do something, or say I’m working on something, and then never follow through on that thing to completion. But I surprised myself here and actually made it this far, and find myself not fed up with it in the least, with as much enthusiasm for continuing to develop it even further as I’ve ever had. This doesn’t happen often with me, so I’m pretty stoked about this.
I don’t want to oversell it because, frankly, it’s nothing too amazing, but what I’ve basically made is a GUI for entering video data into the Genome Project spreadsheet, so that the user doesn’t have to interact with the spreadsheet directly. Like I said, not really a big deal in the grand scheme of things, but this is a huge accomplishment for me — my first real, useful, non-textbook Python project that I and others can use on a regular basis. I had to learn and relearn a ton in order to make this, and it tested me in some very interesting ways, so making something functional like this gives me a certain sense of pride, even if the result is something of somewhat limited use, currently. It’s available for download here. All you have to do to get it to work is the following:
(1) Extract the ZIP file to your directory of choice.
(2) The executable file is found in the gpGUI\dist\genome_project folder, it is called gpGUI.exe. I recommend making a shortcut and at least putting it in the main gpGUI folder, or elsewhere on your computer. Double-click the .exe (or shortcut you created) to start the program.
And that’s it! There’s a Readme file in there which I would recommend reading if you decide to check it out, but it should be pretty self-explanatory. If you need a refresher on what the Genome Project actually is, well, I decided to write a short description here.
So why did I make this? Besides the fact that I love programming and tackling a project like this gave me an achievable goal to work towards, this represents a huge step in getting the Genome Project into the hands of everyday AMV viewers who might be interested in contributing. So far this has been an entirely one-man project; I’ve been entering videos into an ever-growing spreadsheet for the last 2+ years, and while I’ve collected a decent amount of data, working with a spreadsheet directly is unwieldy for most people. I’m under no illusions about how interesting the Genome Project in general might be to the average person, but I think the fact that so far its only existence is found within the confines of a spreadsheet limits the audience even further.
That’s what this program is aiming to correct. I don’t just want to make it so it’s easy to enter data into the spreadsheet (although that’s important), I want to eventually make all the data available in the spreadsheet accessible to the user through a full-featured GUI, so no one ever has to actually look at the spreadsheet in the first place. This is a long-term goal, and the more I think about it the more I keep adding features in my head — looking up videos by editor, by star rating, and by tag/genre is just the start. Eventually I hope to be able to do actual data analysis within the program itself, rendering graphs and charts by comparing certain types of data against others. It’s a hugely ambitious idea on my part (this dinky little thing took around 2,000 lines of code to create; to do half the things I want would probably take at least 10x that much), but I truly believe it’s within my reach to accomplish. I refuse to set a timeline at this point — getting this done before the end of the year was a win in my book, but things should hopefully go quicker from here, now that I’ve familiarized myself with all the important Python stuff I had forgotten or needed to learn from square one.
A few points of clarification before you decide to check this thing out. First, this is what I would consider an alpha-stage program — although I’ve tested it pretty thoroughly and it works well, there are a few bugs here and there, but none of them (so far) affect the functionality of the program. I plan on fixing those things that I know about and updating the program before moving on to the next stage of adding features, but given that it does work from everything I can see I figured I’d release it before the end of the year to get it off my plate (especially as I need to start focusing my free time on all my end-of-the-year lists and such that are coming up).
Second, this does not actually have the full Genome Project included in it — it ships with a blank spreadsheet. Since the user can’t use this program to search for anything, just to enter data, there’s no point to putting the actual Genome Project spreadsheet in it yet. That will come at a later date, but this right now is just for people to mess around with, and to get a concrete idea of what entering data into the Genome Project will entail. If for whatever reason you want to start adding stuff to the Genome Project directly, just download the up-to-date spreadsheet here, copy it to the gpGUI\dist\genome_project directory, and rename it to “AMV_Genome_Project.xls” (you’ll have to delete, move, or rename the spreadsheet that’s already there). Now when you run gpGUI, it will add to the Genome Project spreadsheet instead of the initially blank one that comes with the program.
Finally, if you do decide to check this out, PLEASE let me know what you think! I am looking for feedback on the layout, the general aesthetics (it’s purely functional right now, and looks it), the clarity of how it works, literally everything about it. This is my first time ever doing something like this, so I have no idea if the way it’s being presented makes sense to a user who has little or no idea about the Genome Project. Please also try to break it — enter stuff that doesn’t make sense, try to advance the program by not entering certain data, try to enter contradictory data — do anything you can think of to exploit any inconsistencies it may have. I’ve compensated for everything I can think of, but I likely haven’t thought of everything.
And a HUGE thank you to anyone who does decide to look at this, as I’ve put a lot of sweat and effort into this (mostly in my free time at work, I admit, but still). I really appreciate your interest, and please look forward to future updates with expanded functionality and more features. Feel free to hold me accountable to that!