Wednesday, October 26, 2011

Victory! Vindication! Version 0.4.0!

Success! I'm very excited this evening because the newest version of FluxClassify, my spectra-categorizing program, is now functional. The three weeks I spent learning new code and racking my brain over how to do things was not in vain. It's already a huge step up from the previous version, and much, much, easier to use. It's not quite ready to release to my eager group of spectra-classifiers due to some details I intend to implement to make it even easier, but I hope to have it out with a bare minimum of extra features by this weekend. I'm even more excited about this, my first program written with Pygame, than I am with its predecessor, written in wxPython (and my first GUI), because Pygame is much lower-level than wxPython so I had to learn how to do a lot of things the hard way or re-invent the wheel in various places. The flip side is that I have extremely fine control over everything, so if I can figure out how to do something, I can do it exactly the way I want it. Ah, the sweet taste of victory.

See this? This is a shot of FluxClassify's main menu. It may not look like much, but that list of observations to choose from is auto-generated. That's right, it automatically takes stock of the data you give it to dynamically create a clickable menu on start-up. Also? Everything you see there is relatively placed based on the size of the screen, so it should work just fine on differently-sized screens.

Although, it is a bit sparse right now...I may add a better background in the future. I do plan to add some "Options" buttons later this week, such as the ability to mute the sound.

...Oh, I didn't mention it has sound effects? That's another nice thing about Pygame, it allows easy integration and playback of sounds. It's amazing how much a simple "click" sound when you mouse over a menu option  adds to the experience. In essence, I'm designing a program that I would enjoy using, to make sure that other people enjoy using it too. And I won't stop improving it till it's nice and polished. It doesn't hurt that I have fairly high standards in program usability and quality.

The entire reason I spent three weeks learning and writing new code was for what you see before you here. This here is a shot of FluxClassify in action. As I mentioned before, one observation comes in two parts, one taken through a blue filter, one taken through a red one. Up until today, people have had to classify those two parts separately, by manually flipping through pictures and switching between them and FluxClassify to record their results. It's time consuming, inefficient, somewhat boring, and obscures the big picture of the observation. This program is designed to do away with all that, by displaying both the blue spectrum (on the left) and the red spectrum (on the right) together in one place, something I couldn't figure out how to do in wxPython (I couldn't get it show any pictures, period). I chose this picture, incidentally, because of the strong flux seen in both spectra - a good hydrogen-beta emission line on the left, and an even nicer hydrogen-alpha line on the right.

If you're wondering how exactly to use this program, well, that's why I said it's not quite ready to release yet. Currently you can classify spectra with a few key presses (and I plan to keep that), but I also plan to include mouse clicking, and buttons to show people their options and what they picked. Once I have that stuff down, and a few other odds and ends I've thought of, it'll be ready to release for beta testing! A hui hou!


  1. I'll admit I understand very little of this, but yay! Adding sound is definitely exciting.


Think I said something interesting or insightful? Let me know what you thought! Or even just drop in and say "hi" once in a while - I always enjoy reading comments.