I flew out to Phoenix and back this week and had some airplane time to work on wp-SwimTeam. I have completed what I am calling “Phase 2” of the Event Model changes. Events can now be assigned to a swim meet AND the Opt-In/Opt-Out system is working in the Event Mode (which I had broken in v1.18).
The majority of the work in this build is related to Events and their connection to swim meets which is the precursor to Phase 3 which will be the generation of Meet Entries in SDIF format that can be imported into tools like MeetManager and WinSwim. I have also fixed quite a few bugs in the report manager which were present when either the User or Swimmer option count was set to zero. There was some logic that didn’t test right and would result in using the default count which is 5. So if you have seen checkboxes without labels on the User or Swimmer report generator, this has been fixed.
Please let me know if you run into any issues. I am doing some testing with our team right now and we have our pre-season open house this weekend which tends to result in a good chunk of our registrations. Assuming all goes well, I’ll release an update to the WordPress repository early next week if not sooner.
A few weeks ago I mentioned that I had started working on a new swim team project. I am calling it Flip-Turn. Flip-Turn is a basic PHP/MySQL web application which allows a swim team or swim association to publish swim results on the web in a format that is easy to navigate and view.
Dealing with results has been the last real big hole in wp-SwimTeam and I’ve started working on it a couple times only to abandon it because I didn’t like where it was headed. Over the winter I had an e-mail dialog where a team was simply looking to store results in a database so they could be easily displayed on a web page. As I started thinking about this I came to the conclusion that it would be an interesting project to work on and would be an easy way for me to find a better way to manage results.
For the last couple weeks I have been working on Flip-Turn as time permits and I now have a basic demo up and running. You can see it here: http://demo.flip-turn.com The demo is pretty simple, it allows a user to upload results in SDIF format and parses the results and stores them in a database. The results can then be queried based on swimmer, event, or swim meet. While pretty basic, it works pretty well.
In its current state Flip-Turn doesn’t deal with relay (E0) records but does handle individual (D0) records correctly. In most cases, what people seem to be concerned with are their individual results so that is what I have focused on. I don’t anything I have done will prevent dealing with relay records at a later date but for now, I don’t plan to address them.
Wile the code seems fairly robust, I am not ready to distribute the code yet as I don’t have a great solution for initializing the database tables or changes to the tables. I need to figure something out there – right now I have an SQL script that needs to be run against the database to create the tables. I used phpMyAdmin to initialize mine.
I fully expect to roll this effort back into wp-SwimTeam as this is something I’ve wanted to do for our swim team for a couple seasons.
I get a fair number of questions about how to import swim team data from one place to another. Most of these questions are from people like me who have information in one place and want to figure out how to use it again without having to type it in again.
In theory, SDIF (Swim Data Interchange Format) should address this issues. SDIF is a standard published by USA Swimming. If you visit the USA Swimming web site and search for SDIF, you won’t find much. The SDIF 3.0 specification is pretty old, it was published in 1998.
If you are interested sharing ideas, solutions, problems, etc. with others who are trying to solve similar problems, please join the SDIF Forum Google Group. It seems like there are quite a few people trying to solve similar problems, the Google Group should help people communicate.
As it relates to wp-SwimTeam, one of the first things I need to solve is the ability to upload a Hy-tek Events File and connect the events to a swim meet. This is necessary in order to upload results for a meet and connect them to a swimmer. This information could be extracted from a results file but Hy-tek events files are frequently available so I want to leverage the information they contain.
Being able to engage in a dialog on how to parse the .hyv or .hy3 files would be really helpful for me, I am sure it would be beneficial to others as well. In many cases, someone has probably already written a script or Excel macro to extract the information. I can’t imagine how many times the wheel is being reinvented – I am guessing lots!
I’ve been doing some research into Meet Manager and its ability to import an SDIF entries file. Since so many teams use Meet Manager, getting data into it is pretty much of a requirement.
I posted previously on this topic but this year, as I was preparing our entries for the Cary City Meet, I did some experiments. Hy-tek now makes a demo version of Meet Manager available. The demo version is limited to six (6) events which makes it useless for doing much real work but it is fine for some simple experiments like I wanted to do.
What did I learn?
Meet Manager is really picky about SDIF. This really isn’t a surprise. The first thing I ran into was SDIF files (which are ASCII) that go through e-mail as simple attachments rarely will read into Meet Manager successfully. There is something about line endings that Meet Manager is unusually sensitive too. This issue can be avoided by zipping an SDIF file before sending it via e-mail. You can actually load the zip file into Meet Manager directly, Meet Manager will unzip it for you.
The real compatibility issue comes from D0 and E0 SDIF records which don’t have a seed time. Meet Manager simply does not like records without a seed time (blank) even though the SDIF specification indicates this is legal.
To get past this issue, the SDIF file must contain either “NT” or “00:00.0” (right justified) in the seed time field AND the course code. Meet Manager will accept both formats as “no seed time”.
Unfortunately Meet Manager still does not read heat and lane information from the SDIF record. This is really a nuisance. As near as I can tell the only way to get heat and lane information into Meet Manager is via a .CL2 file (maybe) or via a .HY3 file (definitely). Of course both of these file formats, which are similar to SDIF, contain the Hy-tek proprietary checkum for each record.
I would really like to solve this problem as it would make interchanging data so much easier.
I am considering adding some SDIF utilities to wp-SwimTeam. Just this week I have had to deal with submitting meet entry data to a team who uses Meet Manager. Ugh. Everytime I have to do this it reinforces my dislike for the Hy-tek products.
Fortunately Hy-tek now has a demo version of Meet Manager available which while limited to 6 events, is useful for testing in a limited fashion. For example, I was able to verify that the MM RE1 export from wp-SwimTeam will load in Meet Manager. I was also able to test quite a few permutations of SDIF E0 and D0 records until I figured out what combination of course and seed times would load successfully.
Now that I know what works I am considering adding a couple utilities that will apply changes to an uploaded SDIF file and send it back for download. If you have ideas for SDIF manipulations that need to be made, drop a note in the comments and I’ll see what I can do.
The first one I will do will modify SDIF files to include seed times (which are optional per the SDIF specification) when the fields are blank.
A couple of new features have been added to wp-SwimTeam.
It is now possible to export a single swimmer’s record to CSV of SDIF. When a single swimmer is selected, the exported file will contain the information for just that swimmer. When no swimmers are selected, the entire roster will be exported. Single swimmer SDIF export is useful for importing late additions into WinSwim which is something I’ve had to do a few times this week.
The LSC Registration Pyramid (SDIF) can now be generated using the Age Group Age (computed base on cut off date) instead of the swimmer’s true age. By default the real age is exported which is what wp-SwimTeam has done traditionally. If you want to use the computed Age Group Age, change the setting on the SDIF Profile tab from the Options menu.
A new version, v0.2.486, of wp-SwimTeam is available for download from the Download page.
Yesterday I completed the first pass of exporting a LSC Registration Pyramid SDIF file. Since I only have the demo versions of the Hy-Tek tools (Team Manager and Meet Manager), I sent the SDIF file to the support contact I have been working with at Hy-Tek. Meet Manager can’t read the file which makes sense because it contains roster information, not meet entries. Team Manager can’t read it either because it doesn’t import SDIF. Great. It turns out Hy-Tek really only supports a subset of SDIF. Now what do I do?
When I first started looking into this problem, I found a couple other similar applications which manage swim team rosters and meets. One was from EasyWare, the other from WinSwim. I tried to import the data into WinSwim and didn’t have much luck. I then sent the file to their support e-mail address and hoped I had simply made a mistake in my SDIF file. I got a nice reply stating that WinSwim didn’t support the LSC Registation Pyramid and suggested I structure my file a little differently OR use their ASCII import method.
The ASCII import method didn’t look too difficult but instead of tackling it last night, I played Rock Band with my son. I am really glad I played Rock Band instead of working ont he plugin! This morning I woke up to an e-mail asking me to download and try a new version of WinSwim which support the LSC registration pyramid. Yeah! I installed it and imported my sample data without any issues. How cool is that? Unless I run into a problem, I expect our team will make an investment in WinSwim instead of Hy-Tek.
Today I finished the first pass on generating an SDIF file for the roster. I sent it to Hy-Tek and it doesn’t import. Great. Apparently they don’t seem to support all of the SDIF specification, just some of it. No mention of that anywhere on their web site.
I have been trading e-mail with a support guy at Hy-Tek regading Team Manager’s ability to import SDIF. After our dialog, I am not sure Team Manager can import the roster I am trying to generate. It can import results but based on the samples Hy-Tek sent me, it isn’t clear if it will deal with the D1 and D2 records or not. Since they won’t send me an evaluation version, only the Lite version which doesn’t support SDIF import, I have to sending them my SDIF file for them to import and see what I get back.
I am also looking at WinSwim which actually looks like a better solution for most club swim teams. WinSwim also offers a really useful SDIF Checker which will help me out greatly. Using the checker, I should be able to send Hy-Tek what I believe is a good SDIF file.
It really boggles my mind that Hy-Tek is the defacto standard when their tool is so hard to use and to get data in and out of. Convincing our team that WinSwim may be a better choice for us will be no small feat.