Sunday, November 24, 2019

USTA - The Harm of Appealing

Open Letter to the USTA


For years now, I've been a member of the USTA. I love what it is, and I love being a part of it. However, there is one seriously disturbing flaw in how things are done: the appeal process.

From what I've been told, when a player gets rated up a level, like from 3.5 to 4.0, the player can hit the appeal button on the USTA site and go back to being a 3.5. What that means is that we have a legitimate 4.0 player being allowed to play 3.5. That reduces the fun of the league.

I'm an above average 3.5 player that can sometimes beat lower-level 4.0s. So when I get hammered 6-2, 6-0, or worse, something isn't right. When I find out they've appealed, it's just frustrating knowing I played someone that the USTA ranked at a higher level and shouldn't be in my league.

Teams have used 4.0 players, that have appealed to 3.5, as their singles players for an entire season. Unless someone files a complaint (and I think pays), they get away with it. And when a complaint is filed, the offending team has to forfeit their matches. Why even let it happen at all?

I just traveled hundreds of miles, and paid hundreds of dollars, to compete in a  tournament this weekend. I get home and find out that our final loss (5-7, 6-1, 1-0) was to someone that was a 4.0 and appealed. It's so frustrating. All it does is make me want to appeal when I become a 4.0. There's no reason for me to do so, other than everyone else does it.

USTA: Please stop letting people appeal their rankings.

Thank you.

Monday, July 15, 2019

JavaScript Closure Summary

Excellent article explaining closures: JS Closure Article
The fiddle: https://jsfiddle.net/h59k1v8z/

The important point:
The closure is the function AND a collection of all the variables in scope at the time of creation of the function.

In this example, the closure is in bold.

function createCounter() {
  let counter = 0 // the counter variable is included in the closure, but the initialization to 0 is not
  const myFunction = function() {
   counter = counter + 1
   return counter
  }
  return myFunction
}

const increment = createCounter()

// For each of these, resetting the counter to 0 (first line in createCounter()) doesn't get hit,
// BUT since counter was in scope at the time myFunction was created, it's included in the
// closure. So counter is available, and the output, below, is indeed "example increment 1 2 3".
const c1 = increment()
const c2 = increment()
const c3 = increment()

console.log('example increment', c1, c2, c3)