Showing posts with label centraliowachess. Show all posts
Showing posts with label centraliowachess. Show all posts

Monday, September 21, 2015

Software Process - An Idea In Practice

  In July I wrote about the process of giving users the ability to sign up for my tournaments using my www.centraliowachess.com website. My first tournament using the self sign up process was on Saturday. There were 52 participants in the tournament with 31 signing up via the website and four more that I set up myself via the website.

  The self sign up option was available in July but I formally announced the option in my tournament email of September 5th. I had a few parents create accounts and add their children but weren’t able to sign them up for the tournaments. I looked into the issue and found out that the company that hosts my site (GoDaddy.com) ends user sessions after five minutes of inactivity. Since I store the login information in session variables, when the GoDaddy web server ends the user session my website won’t know who is logged in and doesn’t know who to display when the signup link is clicked or just won’t show the signup link on the tournament page. This meant that anyone spending five minutes reading the tournament announcement or browsing on another tab or being distracted in some other way would have their session ended and get an error when they tried to sign up for the tournament.

  I think five minutes is an awfully short time for a session to be terminated but it’s not my world –I just live in it. To combat this problem I built in a ‘your session has ended’ page and a timer to route the user to it after five minutes of inactivity. That solved most of the issues with the only remaining problem being that I don't have a message on the ‘session has ended page’ to remind the user that they’d have to log in again.

  A couple of people wrote to ask why they couldn’t see the sign up link and were able to register soon after I wrote back to tell them about the ‘not logged in’ problem. Most users were able to set up an account, add their children, and sign up for the tournament without any help from me. When people emailed me to sign their children up for the tournament, I politely but firmly asked that they attempt to use the self sign up option on my website. If anyone was offended they didn’t say so and at the tournament I got a lot of positive comments about how easy the sign up process was.

  As for me, adding the self sign up option made my job as tournament organizer way easier. During the week of past tournaments I'd have a bunch of emails to both of my primary email addresses from parents registering their children. Many of these emails wouldn't say what section (rated) or which sessions (morning or afternoon) so I'd have to send an email asking and wait for a reply to enter the players in my tournament software. It was time consuming and the chance for error good. This past week was completely different. Whenever someone signed up for a tournament my website sent me an email telling who was signed up and the session and section they were signed up for. Each night after work I’d check the emails from my website to see if anyone signed up and put them in the tournament software if they did. I didn’t have to worry about any missed emails – I just went to the website and crosschecked my tournament software’s player list with the tournament signup list. If the counts were off I knew I missed an email – otherwise I was good to go.

  There were a couple of problems. I had some people sign up online and then not show up. This happens at every tournament although I think it is easier to forget when signing up online by clicking a mouse instead of taking the time to send an email. The other problem was that some parents put their children in both the rated and unrated section. It wasn’t a big deal but I had to remember to find out which section the player was in before the tournament started.

  These small problems were outweighed by the benefits. I already outlined how it made it easy for me to keep track of the signups. I don’t know if the ability to see who has signed up helped attract more players. I do know that it helps with the Okoboji Open and I believe it will help attract players once more parents are aware of the feature. The day after the tournament I was able to easily assemble an email list to let the parents know where they could find the cross tables and pictures because I had the email addresses of everyone who used the self sign up option at my fingertips using an SQL query.

  The tournament itself was quite successful from a participation standard with the most players I’ve ever had for a September tournament. From the sporting perspective the tournament was awesome. The kids had a great time playing, there were enough players for the rated sections in both the morning and afternoon, the parents were happy to have my tournaments back after taking the summer off, my energy level was high, and my students all showed improvement. Most chess games have a winner and a loser and there is nothing that can make a group of chess playing kids uncomfortable like having a sore loser that starts crying or accuses their opponent of cheating or pulls some stunts like making illegal moves or knocking the pieces off the board. There was none of that on Saturday.

  In the last game of the tournament Nate from St. Francis was playing Meg (a girl from another parochial school). Both players had two points out of four which meant there were no prizes on the line, just bragging rights. The St. Francis player was down two pawns in a desperate situation when he set up and uncorked a beauty of a move.

Nate was white and played d7!! Not only does the pawn move allow a check from the ninja bishop on b4 which prevents the bishop from capturing it, it covers the e8 square and prevents the king from stopping the pawn from becoming a queen next move. If I could pull off a move like this in one of my games I'd never stop writing about it!

  Because this was the last game going there was a crowd of kids hanging around watching when Nate played his killer move. With the crowd and the tension I would have understood if Meg had gotten upset as she realized there was no way she could stop the pawn but she just smiled, shook Nate’s hand, and congratulated him on a good game. It was an example of how having a great group of kids and parents make for a fun tournament where everyone is playing games of chess instead of a day where there are winners and losers and competition is king.

  Adding the self sign up feature to my software didn’t all of a sudden imbue the participants with a ‘good sport gene’ but it made my job as the organizer a lot easier which helped free my mind to give more thought to how to dial down the competition aspect and make the tournaments more fun. Enough parents found it easy to use which makes me think my design was more right than wrong. My next project on the www.centraliowachess.comwebsite is to redesign it suing a new toolkit that will make the website adjust its display from a smartphone to a desktop browser while providing an easy to use interface. I’ve finished all the pieces except the self-sign up part and expect to be finished the next time I have a vacation.

Friday, July 17, 2015

Software Process

  Two months ago I decided to modify my chess website CentralIowaChess.com to allow users to sign up for my fall tournaments and see who has signed up for the tournaments. I worked on this project a few hours every weekend. I thought the process of making these changes to an existing web site was interesting enough to write a post about and I also get to kill two birds with one stone since I needed to provide an instruction sheet for prospective users. Creating the sign up option is simple in and of itself. The part that required a lot of thought was trying to make the signup process as easy as possible.

  I don’t charge more than $5 for any of my tournaments and saw no need to collect payment in advance but I wanted to validate the people who were signing up for my tournaments as opposed to popping up a text box for anyone to put any name into. I had a signup link for my email list at the bottom of each web page that fed into an email table. I modified my email list table into a user table and changed my email sign up link to a ‘Login’ link that I placed at the top of each web page.

To sign up for a new account, click the login button...

...and choose to signup for a CentralIowaChess.com account.

  When the user clicks the login link they can enter their email address and password, request a new password, or sign up for a user account. I thought about adding exotic features like challenge questions for a lost password or a username instead of the email address. After some reflection I came to the conclusion that I could add them later if the need arises. One scenario that could make me take this step would be if someone starts requesting new passwords for people by guessing their email accounts. I don’t think this will happen but it only takes one bad apple to spoil the barrel.

Enter your basic information and click 'Save'.

  Once a user signs up or logs in, the login link is replaced by ‘Logout’ and ‘Edit Profile’ links. The ‘Edit Profile’ brings a user to an Edit Profile web page that looks similar to the ‘Signup’ page with the addition of a ‘Family Member’ list users can add, edit, or delete. It is a simple little function but it meets my purpose for connecting players to a user.

To change your profile or add family members (including yourself), click the 'Edit Profile' link.

Click the 'Add New Family Member' link...

  Not every tournament I have on my website will allow signups so my next step was to add a flag to my tournament table that lets the website know whether the tournament allows user entries and an additional table that assigns sections to each tournament. Then I had a number of changes to my tournament page. When a tournament has sections I display a link that allows any viewer to see who has signed up for the tournament and what sections they have signed up for. I didn’t want to reroute users to an entirely new web page so I show the participants in a pop up box that can be discarded in one click.

...enter the name and click 'Save'.

Family members can enter selected tournaments on the 'Upcoming Events' page.

  The final step was to enable a tournament sign up link. I only show the link when a user that has at least one family member is logged in, the tournament allows manual user entry, and the current date is before the tournament date. That last step sounds odd but if I’m having a tournament where I don’t have internet access I don’t want people signing up for a tournament online when I have no way of knowing about it. When the user clicks the link I do some SQL (Structured Query Language) to perform a ‘cross join’ between the tournament sections and the user’s family members and I have a nice popup with a check box for every possible combination of users and sections. To test my changes I created a test tournament, signed myself as a user on four separate accounts, added family members to each account, and started signing up for tournaments. I created an email module and sent the user an email whenever they save a tournament signup and sent myself emails whenever a user signed up, changed their profile, did anything with a family member, or signed up for a tournament. Not only will I know who signs up for a tournament but I will also be the first to know if anyone adds profanity laced family member names and signs them up for tournaments. Last week I added a ‘shutoff’ switch to all the users and family member records that would allow me to block anyone I deemed abusive from signing up for tournaments.


Tournaments that allow for user signup will have a 'Sign up for the tournament' link. Click on the link and a popup box will display each family member and each section. Check the appropriate box(es) to enter the tournament.

  I ran tests from my computer using the production database. My tests were all successful and I promoted my changes to the production server that is hosted by GoDaddy over the July 4th weekend. I then repeated my tests and found that 10% of the emails would error out when using the GoDaddy email server.


You can see who has signed up for a tournament (and verify your entry) by clicking the 'Tournament sign up list' link.

  The emails that errored out gave the very cryptic “Failure sending email” message with no further information. I changed the routine that sends emails to retry up to three times in case of failure. That fix worked out well enough but I realized that I had no way of knowing when an email errored out. That led me to my last change which was to log every email my website attempts to send into a database table and flag successful sends. For now I will check the table periodically and resend any emails that fail. If manually resending the emails turns out to be a too common occurrence I’ll write an automated program to resend failed emails or send duplicate emails in case I find emails that mysteriously get lost in the internet.

  I expected to finish these changes by the end of July and I’ve finished three weeks early. My next project is to create a 21st century version of my basketball prediction program. I expect that to be an easier project than adding a tournament signup sheet because I will only have one user – myself.

Sunday, January 22, 2012

Spread the Word

  On Thursday I got an email from the IASCA scholastic director asking me what my plans were for a summer chess camp and would I like him to include them in his broadcast email? The last time the IASCA sent out a broadcast email concerning my chess activities, it was to recommend that people not go to my November tournament, so I curtly declined the invitation to spread the word. This led to another email from the IASCA scholastic director telling me he was trying to do me a favor in November because a lot of chess parents and the IASCA board members were so upset by my having the tournament in Des Moines on the same day as the IASCA Cedar Rapids tournament in November that he felt he had to mention it to stop all the negative talk about me and my tournament, but that it was a mistake to mention my tournament that way.

  I guess I can accept this explanation. After all, nobody’s perfect, especially me. And since one of my little imperfections is to hold onto my grudges like a kid holds on to their first chess trophy, I’ve had as little as possible to do with the IASCA over the last couple of months and that’s not going to change anytime soon. I can't control what other people say or do, but I can take care of the things I can take care of, like making sure I have my own means to spread the word about my chess tournaments and other chess activities. Because of my www.centraliowachess.com website, I have a place to post my news articles and upcoming tournaments and thanks to Ben Tessman’s advice, the site is already on the front page of the Google searches for Iowa chess. Sometimes I wish I was the type to just not tell the families who come to my tournaments about the scholastic tournaments the IASCA puts on, but that’s not one of my imperfections.

 
  Even in this age of the Internet, Google, Twitter, Facebook, etc…, I think email is the best way to let people know about chess tournaments and that word of mouth remains the best way to grow attendance at chess tournaments, especially in Iowa. Maybe in a densely populated area like New Jersey it would pay to advertise in Chess Life, but not in Iowa where there are only a few hundred people who are USCF members and even get the magazine. I like to send out an email a few weeks before each of my tournaments to let the parents know about it and then I wait and see. It’s always kind of depressing the first couple of days after I send out the emails because I get more UNSUBSCRIBE emails than signups, but as the week goes on, I feel better as the signups start to come in.

  Yesterday I had my 13th straight monthly family Des Moines chess tournament at St. Francis. I got the date set up last month and I found out during the first chess club of the year that the local Cub Scout troop was having their pinewood derby at St. Francis on the morning of the tournament. I knew that was going to depress attendance in the morning, but since this was my 5th straight month with the morning and afternoon tournaments, any chess players that participated in the morning pinewood’s derby (or the basketball games being played in the gym next door) were just a minute or two away from the afternoon chess tournament if they cared to play.

 
  The morning tournament had 23 youth and 6 parents playing, about an average number if a bit on the smallish side. I was on target for another 30 players in the afternoon, but on Friday I picked up another 10 players and when the expected snowstorm didn’t dump the predicted 4 to 6 inches in Des Moines, another half dozen players showed up to play. After recruiting some siblings and parents to give me an even number of players for all the sections, I ended up with 52 players in the afternoon for a total of 81 players with 12 playing all day (including me, because I got to play a game in the parents section!).

 
  It was a great day of chess and while I was busy, I still had more than enough time to meet a lot of parents who had recently signed up to help with the clubs at their schools. They were asking me about starting chess clubs, instructing beginning players, and how would they know when the kids were ready for unrated tournaments. Some of the parents of the successful players in the unrated tournaments asked me when they should get their players into the rated tournaments. I told them to leave it up to the child and offered my assessment of what their rating would be when they started playing in the rated tournaments. The only big problem I had was with my new additions of trophy prizes for the unrated players. I had been giving them first through fifth place labels to put on their participation medals, but since September I’ve had more unrated players than rated players so I decided to add trophies to the unrated players prizes. A very talented 7-year old from St. Francis had a great morning unrated tournament (winning 3 out of 5 games), but he finished tied for fourth place and missed out on the last trophy by tiebreak. He thought he was going to get the trophy and was really upset when he didn’t. I’ve seen this enough with my kids and plenty of others to know that the bad feelings won't last, but it didn’t make me feel any better to see it yesterday. I had debated whether I should lower the unrated entry fee rather than ramping up the pressure by introducing trophies, but in the end I think the trophies are modest enough that it won’t lead to too many hard feelings.

  This was a unique tournament in that there were only 5 players that came from outside the Des Moines metro area. I had about a dozen new players, who were all told about the tournament by existing players or Jose Gatica, the professional chess teacher who works at all the other Des Moines Catholic schools except St. Francis. One of the new players was Ronaldo Enamorado. The reason I mention Ronaldo is to illustrate the circuitous path by which he ended up playing chess in West Des Moines yesterday.

 
  Twice a year I send an email to all the schools within 3 counties of Des Moines to let them know about my tournaments. I rarely get any responses, but last January I got an email from Kelly Haase, the chess club advisor at Carlisle Middle School asking about the tournaments. Kelly let her club know about the tournament and her top player, Mathew Hintz, came to play in the unrated tournament last January. In February, Matt brought Sean Urban from the Carlisle Chess Club to play in the tournament. By April, Matt and Sean had both purchased USCF memberships and were playing in the rated tournaments. When I was setting up the chess camp for July, I let the parents know that I needed a nurse at the camp and was offering a discounted camp fee for the child of a nurse who would monitor the camp. Sean’s mom knew the Carlisle school nurse, Julie Reed, whose son Alex liked to play chess. Alex and Sean came to the camp and Alex started playing in the rated tournaments. Alex’s parents told a friend of theirs, Dell Spence, about the chess tournaments and last month Dell brought his 2 sons Seylan and Kylan to play in the unrated section. And this month Dell brought Ronaldo to play in the unrated section. And that is how Ronaldo Enamorado came to play chess in West Des Moines on January 21st, 2012. All because I sent a letter to a school in late 2010 and 4 different players liked the tournaments enough to get a friend to play. Now that’s what I call word of mouth!!

  And if I keep taking care of the things I can take care of, namely providing a positive fun family chess experience, it's only a matter of time before Ronaldo brings a friend, too!

Wednesday, December 28, 2011

In Search of Consistency

 
2 x 52 = 104
...after today!
  This will be my last blog of 2011. I’ve written 2 posts a week every week this year except on Okoboji weekend in April when I wrote my Sunday post on Friday in order to be able to enjoy a great weekend directing the Okoboji Open and hanging out with my friends Jodene Kruse, John Flores, Sam Smith, Riaz Khan, and the rest of the crowd. Just like holding a youth tournament every month in Des Moines is something I am proud of, having kept to a blogging schedule of two posts a week for an entire year is also something I’m looking back on with pride since consistency is a virtue I prize very highly. If you click the little ‘next blog’ button on top of this page a dozen times, you will probably see 8 blogs without a post this month and 4 or those without a post in the last 6 months. If you’ve given your best effort and decided the results aren’t worth the work I see nothing wrong with walking away, but shouldn’t these people at least write a good bye post?

  One of my rewards for regularly writing my blog for an entire year is being able to go back and read an entire years’ worth of writing in a couple of hours like I did this past weekend. I think I got better at writing as the year progressed, but I'm not a good judge. I got a lot of blogging material from my monthly Des Moines family chess tournaments, but my visits to Zanzibar’s Coffee Adventures and my quest to win an award from the Chess Journalists of America also provided many blogging miles. I found time to write a little about sports and politics, but Daisy, Baxter, and Cheetos dominated my non-chess postings.

  Another reward a long running blog provides is to use the Google Analytics tool to see which of my 103 posts this year have proven the most popular. Even though my blog is primarily about chess, the most looked at posts this year were my March review of the Joe Namath biography, the January posting about Daisy and Baxter titled ‘Beagle Puppy Update’, my first visit to Zanzibar’s Coffee Adventure titled ‘Coffeehouse Chess’, and my May story about my in-laws dentures (‘A Tooth for A Tooth’). These rankings are skewed towards older posts since they have been available for ‘googling’ for many months, but it is undeniable that Joe Namath is still a football rock star and Beagles are one of the most popular pets in the world. I’m not surprised that my Cheetos posts aren’t looked at more, after all why would anyone read about Cheetos when they could be eating them instead!?!

  On the inconsistent side, for the third straight year I’m ending the year at a different job than I started the year in. I think I’ve finally found a place to settle in for a long stretch, but I thought the same about the last 3 jobs. After having my job sold out from under me 5 years ago, I’m happy to have gotten my skills upgraded to the point that I don’t get calls from recruiters looking for fossils to work on legacy systems. Now I get calls from recruiters that are looking for people with modern skills. Taking a new job was a huge gamble on my being able to hold my own in a super-fast paced environment and so far it’s paid off. The job market looks good for programmers in the coming year, but all it takes is one clown crossing out names with a red pen and no job is safe so I'm still looking to keep my skills as current as I can.

  My new skills have come in handy in developing my chess website www.centraliowachess.com. Because I have a better understanding how to build these things from the ground up, I was able to put it together in around a week and now I’ve started to add the types of features that dovetail with my series of blitz and family tournaments. Players in my Thursday Night Blitz and Youth Chess tournaments can see seasonal and all-time won-loss records and view their playing history. The USCF website does the same thing (only better), but my site also shows statistics for unrated and parents tournaments. I have a good amount of work remaining for a first class web site, but since I’m committed for the long haul I can afford to be patient and let the content build up as I continue writing about my chess tournaments. In a year or two my reward will be a website that is a central part of my work and chess resume and a selling point for independent website development.

 
 
  When the year started, we had just gotten Daisy and Baxter, and seeing them grow up has been a year-long treat. I took a few pictures and posted them on Facebook when they were little pups, but then when I missed a week, Kathy’s family wanted to see more pictures of Daisy and Baxter, so each week I assemble our pictures and post them on Facebook. It takes about 20 minutes a week (not counting the time spent taking the pictures) but to look at an entire year of pictures on Facebook makes it seem like time well spent indeed (Here is a bonus link to the Christmas album). I can look at the cover picture on all the beagle albums on one screen and it’s almost like watching them grow up in the blink of an eye. I’m very jealous of young parents who can take pictures of their children every day, post them on Facebook or some other social media site, and then be able to look back in a year or 2 and watch the growth of their kids. Matt graduated from high school and Ben went through confirmation this year, but we just have a few pictures a year of them. I don’t know if I’ll still be taking pictures of the beagles as they start to turn gray and age and decline, but I tend to think I will. I still look at pictures of Queenie and Tuffy. Kathy and others will look at the pictures and say how old they look, but I never see them as old, I just see all the enjoyment I got out of my friendship with them.

  I don't take myself too seriously, but I take being consistent very seriously. I’ll leave the why to psychologists. I’ve always tried to be consistent and always valued consistency in others. I enjoy working with honest people and people who I can depend on to work hard and do the right thing, but that isn’t always an option. And when that option isn’t available and I can’t go it alone, I’ll take the people who are always looking out for themselves at the expense of everyone else and the people who you can tell are lying because their lips are moving every time over the people who make you guess whether they’re telling the truth or if today will bring a pat on the back or a kick in the rear. At least with the former I always know what to expect and will never be disappointed.