Friday, September 12, 2014

Project Beginning and Goals

As an SKCC member, I find that I am always hunting for new contacts. I would go to http://pa4n.xs4all.nl/bandmap.html to see whose on the air, then go to the SKCC member page to see if they were just a member, a C, T or S, where they were located, then it was off to search the log to see if I had ever spoke to them before. Well, frankly it was a pain the ass to find out that most of the people who are currently on the air, I've already had QSO with and by the time I found the one I hadn't spoken to, they were gone. I am also working on WAS, pfx and 2xQRP, so I am hunting around a lot to find those targets amongst all the other members on the air. That was the impetus for this project, besides, I am a geek who loves to write software that makes life easier.
The initial requirements are
1. Create a database to hold the current SKCC membership information, QSO information, DXCC entity list and a state list.
2. Build an application that will find out who is on the air, where are they, have I ever had a QSO with them and will a QSO with them aid me in moving further along as a Tx on my way to S, obtaining a WAS award, 2xQRP award or PFX award.
3. If possible build the app in such a manner so that it will be multi-platform and be able to be installed and used by non-geeks. (This probably will be the hardest part -- more on that latter).

I chose to use Microsoft C#, Visual Studio 2010. The rational there was, C# is fairly objective, comes with all the gui widgets I think I will need and can be cross platform via WINE. It also builds it's own deployment package.
For the database I chose MySQL - I felt there was better native cross platform support than going with any of the MS offerings (SQL Server or Access) and I just wasn't in the mood for Oracle. Yes there is postgress but I felt more comfortable with MySQL.

So that was the rational for the project and the development environment. The project started in Mid August and is pretty close to Alpha at the moment. Proof of concept code is working well.

The first release will test data import, basic GUI and App functionality for hunting members on the air that I have not had a QSO with. When I am comfortable with this working properly then I will work on PFX and then 2xQRP - for the QRP I will use the SKCC QRP award list as target QSO candidates. If they earned the QRP, then it is safe to say they do QRP.

A word on development - since this is an Alpha release, I have violated some of my own programming rules in order to move things along. Things such as queries living in code - not in the real world on my watch, stored procedures only. Application user has all database privilidges- that will be changed to insert, update and delete, no ability to add or drop objects or modify schema in any way. More try - catch blocks for better exception (error) handling.

Areas that I know I will need help in
1. Interfacing to radios -  I have a TenTec rebel that does not talk to a PC so things such as capturing frequency and other radio specifics is not there.
2. Importing data from other logging programs - right now the app will do .txt file imports with fields surround by ", delimited by ; with rows ending in /r/n. The variable here is I don't know how many fields and in what order they are exported from in anything but WinLog32. Importing ADIF files will also be interesting - I love non standard standards, if it was straight XML it would be a piece of cake but that would be too simple so I don't know how many variants there are of ADI files - although I could standardize on LOTW ADI files only.

Areas that need to be addressed - how often should the app contact the web site - should this be manual only or timed in a thread. The same goes for SKCC data. Should the app use only http://pa4n.xs4all.nl/bandmap.html or should the app get the data from another skimmer site - the advantage of pa4n is that the spots are pre-screened for SKCC membership, and the JSON data scraping is working well.
If you have an interest in being involved in testing this out or aiding in the development please drop me a line.
If you want to test, you must be able to set up MySQL on your own , I don't have that scripted, I will have the schema creation scripted.
So drop me a line if this sounds like fun. This program will be available free to all SKCC members once it is past Beta and is prime time ready. Below is a screenshot of the program in action - for testing purposes the age is 20 minutes, non selectable, yet.


No comments:

Post a Comment