Introducing Spartan Stats

Spartan Stats is my first real open source project that I’m releasing. It is a web app which allows you to track a basketball teams stats in real time and has a live view for authorized visitors to see game stats and scores.

This was an idea that came about near the beginning of Covid. Once things started to start up again my sons basketball team which I help coach was allowed to have games, but there were no spectators.

We tried live streaming some games and that worked ok but internet wasn’t always good and other challenges. Around the same time one of the coaches started keeping track of our players stats during games on a sheet of paper. I thought it would be great to have a solution which we could use to capture stats and show people who couldn’t be at the game what was happening.

It wasn’t until this past December though that I finally started to work on it. I had been going through some career changes and life changes all at the same time so never felt like I had the time to dedicate to a side project. When I went on Parental leave it felt like a perfect time. I felt more comfortable in my new role at work, things were settling down at home, and I had some more time.

Things were slow at first as I was learning new things to set things up. After talking with some people I decided to use Google Firebase as the database as it includes a lot of what I was looking for. After I had a decent start I ended up not working on it again for a while, or just slowly making little additions or changes. More recently I spent some more time at night and on weekends getting most of the main functionality working.

This past weekend Noah’s team had our Provincial Tournament it felt like a great time to try things out and see how it works in its intended use. For the first two games I didn’t share with anyone except my wife Jen and that helped uncover some bugs, but for the most part things worked well and my stats matched what the other coach had on paper. So the next day I shared the link with our parent group and some of them were able to follow along as the game was happening.

It’s a private system so people need to sign up and then be approved before they can see anything. Most people end up with the role of Visitor. Some like coaches who will be entering stats can have the role of Statistician. There is also an Admin role to approve new users and manage peoples roles.

Once signed in visitors can see a list of seasons and then the games recorded for those seasons. Each game has the game score, box score with the player and team average stats, and a play by play view that has a timeline of events that took place during the game.

Entering stats is pretty easy. Players are listed out, you click on the one who did something and then click a button for what they did.

If any one is interested there is also a limited functionality demo version set up at https://demo.spartanstats.com you can log in with the email stats@spartanstats.com and password X9s2!dvxrpiVNslU

You can view and download the code used from spartanstats.com

There is still work to be done but the basics are there. I’m excited about this and it will be something I can be continually working on to add or improve things and learn along the way.

I hope that along the way it is also maybe helpful to other people. I found it hard to find good examples of using some of the features of Firebase, like setting up a role based authentication system. I may post some follow up posts explaining my approach and code to make this all work.

I’d be really interested in hearing from people who find this useful either in using it or just as an example Firebase app.

Good and busy weekend

As luck would have it most of our weekends have worked out really well to not have both basketball tournaments and dance competitions falling at the same time. This weekend was the exception.

Thankfully the basketball tournament is one that we hosted ourselves, so not far from home. The dance competition was in Halifax so a little over an hour away, but close enough that though it required some late nights, it can be driven back and forth without the need for a hotel.

We have a lot of great people around us who helped make the weekend a success and possible. The group of coaches we have for Noah’s basketball team are just the best, together with the other families they made sure the tournament ran smoothly.

We had friends and family who joined us in celebrating our kids and their accomplishments by coming and cheering them on at both basketball and dance. We also had friends who helped make it possible for me to make it to all of Noahs’ basketball games by coming and taking care of Ezra. Caile stayed home on Saturday night so I could go in and catch one of Ellas’ dances as well. I really am so grateful for everyone.

Our team did well in the tournament. They fought hard and won the first three games to put us in the finals, but met our match there to come in second.

Noah had a really good tournament personally with some of the best all-around basketball I’ve seen him play. I think some of it came from a bit of a grudge. A couple of weekends ago we were at another tournament where we split a pair of games against a team. One of his friends ended up showing him a TikTok video that one of the players from the other team posted that had him hitting a three-pointer over top of Noah. Noah had played well those games too including hitting three three-pointers in one game and four in the other. But he was glad we were able to meet this team again in the semi-finals of our tournament. He ended up getting Player of the Game for that one.

We live in rural Nova Scotia Canada. We’ve only ever had two people from our province play in the NBA, Lindell Wigginton who is with the Bucks right now, and Nate Darling who played some with the Hornets on a two-way and had a good season playing for the Clippers G-League team this year.

Nate showed up Saturday morning because we were playing his little brother’s team. Noah hit a couple good threes and guarded his brother a lot through the game. We ended up winning by one point.

Nate congratulated Noah and told him he was a good shooter. Really made his day and boosted his confidence.

The tournament ended on a bit of a downer with the loss, but also in the first few minutes of the game Noah took a charge and ended up hitting his head pretty hard. He didn’t end up going back into the game after that. He’s feeling fine now besides being tired.

Here are a few short Noah highlight videos from the semi-finals game.

Noah grabs a defensive rebound and takes it all the way to the other end but misses a layup, we get the rebound and it swings back around to Noah who takes his man but misses a floater. We get another rebound that makes it back out to Noah again where he hits a three.
Early into the game Noah is left pretty open and drains a three.
Noah catches a steal and takes it back the other way for a layup

18 years

As a family we have a lot of celebrations throughout the autumn, we added one more this year, and then right into the winter holidays. Out of all those special days today, January 3rd, is my favourite. Today is the 18th anniversary from when Jen and I were married.

We never have big celebrations or buy each other gifts, but I love taking the time to think back on our life together so far. We’ve been through so much and this past year has been no exception. Honestly I’m not sure how I would have made it through without her, and even if I could I certainly wouldn’t want to.

Jen is the best person I know. She makes me a better person. Our children are a testament to the mother and role model she is as well.

This family and life we’ve grown together are more then I ever dreamed of, and certainly more then I deserve. For some reason she still puts up with me and seems to usually like having me around.

Though life doesn’t look the way I pictured it would even just a year ago, and I’m confident there will be many more challenges and unseen changes going forward, I know we’ll make it through together and come out better on the other side.

The move to Developer

This past year has been tough, exciting, and brought some big changes. One of the big changes was our adoption of Ezra. The other is the completion of the Developer Apprenticeship program I wrote about previously. As of the first of this month my role switch from Happiness Engineer to Developer became official! That’s the same day as my seventh anniversary with Automattic.

The year was challenging but I feel like we’re on the other side of a lot of things and that we’re in a better position now because of it. Despite the challenges I’m so thankful for the opportunity that Automattic provided with this program, especially my team. Throughout the whole process they’ve been so supportive. They’ve provided guidance when needed, but from early on they also gave me a lot of freedom, trust, and learning opportunities, all to help me grow.

For the majority of the year my team and I worked on Simplenote. This was a great experience and I started feeling pretty confident in myself. I was leading projects, adding new features, fixing bugs, both in the front and back end of the project. I was getting to know the code base pretty well. Then in October things took a bit of an unexpected turn and our team switched focus to work on a different project, Day One. Our team split up some and merged with the existing teams working on this.

This whole change was pretty scary for me. I was getting comfortable where I was, but still had lots to learn. Was I really going to be able to be successful on a new product? How would this effect the Apprenticeship Program for me? It’s also exciting too though. We came in very early in the process of making a new web app for Day One. Getting to be a part of helping create this from the start is a cool experience and has given all kinds of new learning opportunities.

After seven years with the company and six years as a Happiness Engineer I was feeling pretty safe and settled in that role. One of the big lessons I have from this year is learning how to live with that feeling of being uncomfortable and doubting myself and then working through it. It sure seems like in this new role it may be something that happens regularly. There really will always be something new to learn that I haven’t worked with yet. That might be a new language or framework, or a whole new product to work on. It’s really allowing me to live our creed and never stop learning.

After a little more then two months working on Day One I’m feeling more confident and was still able to complete the Apprenticeship Program. The first couple weeks were stressful though and really had me doubting myself pretty hard. It seemed like everyone else was catching on and fitting into the new project quickly and much easier then me. Once again my team, including new members where there.

Now another thing I’m very thankful for is I’ve just started two months of Parental Leave. Automattic gives us six months so I’m going to split mine and Jen will take hers in between with a little overlap in the summer. Having time to focus only on our family is going to be amazing. But I’m also really excited to see the state of the project at work when I get back and see all the progress the team has made while I’m away.

Ezra

Jen told me from early on in our relationship that she would like to have ten children, while I told her I’d be happy with three. Like most things in our life we compromised, though she keeps getting closer to her number 😃

This past year has been yet another of ups, downs, and surprises, but as always things seem to end up where they should be. Maybe I’ve always been this way, but as I get older I feel like I can get stuck in my own ways and that it takes me longer to come around mentally to changes.

When our oldest Alex told us she was pregnant it was one of those times that it took me a while to come around. It felt like she was falling into a long line of our family having a child young when we weren’t really ready or in a great place to do so. Alex has been working through mental health issues and learning disabilities, we try to do what our parents did for us and set her, and all our children, up on at least a bit of a better starting point then we started on. I knew being a single Mom at such a point in life was going to make things even more difficult for her, so when we first heard the news it was hard for me to be happy. In fact I’m not proud to say that when the discussion around what Ezra would call Jen and I came up my family thought it would be hilarious if he called me Grumpa instead of Grandpa.

Thankfully I came around and of course we did all we could to support Alex during the pregnancy and after Ezra was born. I quickly began to love the idea of being a Grandfather and having a new baby around to maybe spoil a little, but then be able to send back to Alex.

When Ezra was about a year an a half a number of things came to a head and he came to stay with us full time. The initial plan was for it to be while Alex got the help she needed and worked on herself. This yet again was one of those times where it took me a while to wrap my head around another big change. I was loving the Grandfather role and the place we were in life, and I could see that our lives and plans were going to be changed yet again.

After a while Alex made the hard but mature decision that her process wasn’t going to be an overnight thing and it would be best for Ezra if he was with us permanently. We started the process of adopting him.

Things have certainly changed and it made some things more difficult, but we love Ezra and having him with us always. Our other kids were on board right from the beginning and, just like everything else, they are amazing, loving, and helpful with him. We also now have added to our immediate families list of Fall celebrations. Noah’s, Alex’s, Caile’s, Ezra’s, and my birthday, and now the day the adoption became official!

Though there were times through this process where I was selfish and spent too long looking at the negative side of the changes, I know I’m so extremely lucky and blessed. I’m not sure what I’ve done in life to deserve it but I have the most awesome family, friends, and career, all full of support and love. I’m so glad that Ezra is right here with us and surrounded by all of this as well.

Beautiful views & eye opening realizations

A couple of my good friends are celebrating birthdays this month. As part of that they wanted to hike Cape Split as a group.

Despite living here for a long time, and it being a well known trail I’ve only been out to the point twice before, the first time was just over a year ago. That time I decided to bike the trail. It went surprisingly well. There were some rough spots and I had to get off and walk my bike a bit but I made good time and enjoyed the point very much.

The second time I did it was a couple of months later when me and two other friends ran it. That had me worried as I wasn’t sure how I’d make. I wasn’t as good as the two people with me, but still did ok and kept a pretty good pace. Things were sore at the end but not anything bad.

Since my last time out there has been a lot of work done on the trail. A completely new loop was made and some look off areas added, so when plans were being made to do it today I was excited to see.

The changes in the trail weren’t the only changes that took place since my last time out.

Early this year I started training for a half marathon. Not too far into it I hurt my knee and that set me back a bit. Very shortly after that I hurt my back. That was the beginning of yet another downward spiral. Since then I’ve done very little physical activity. My eating habits are back to the old terrible ones, and my weight as sky rocketed yet again.

I seem to have trouble keeping a good balance in my life. It’s rare that I can keep my family life, my career, and my health all in good spots at the same time. This past bit has seen a few areas struggle for me, but mostly me taking care of myself by living a healthy life.

So today, we were only about half way into the hike and I was feeling it. Nothing terrible, but I knew making it to the end was going to hurt, and at that point there is no choice but to continue on out.

The views and company were wonderful, it was cool to see the new work done to the trail and the look offs, but I’m now paying the price. The last few kilometres out were slow and hard. I struggled to walk up my stairs and get a shower. Not long after that came a cold chill and shivers. Everything from my toes to my shoulders hurt. But likely most of all my pride or view of myself.

It was eye opening. I obviously knew I was going down a wrong path with my health, but to see the effects of that play out so drastically does not feel good. Let the be the push I need to change and get that balance back in my life.

Thank to to the crew for getting me to come, and to Jen and my sister for taking care of all the kids while we were gone.

Easy task, all gone wrong

Today was the day I was finally going to take care of a task I’d been putting off for a while. Getting the winter tires off my and my daughters car.

This is a pretty easy task that I’ve done a bunch, thanks mostly to good friends who loan me their floor Jack and electric ratchet, but not much went right doing it today.

The first thing was finding a screw in one of my tires that I was about to put on, it was completely flat. Couldn’t find a place open to fix it today. I resorted to going and buying the tools and supplies to plug it myself.

Get it plugged, go fill it up with air, come back and go to put it on, and the Jack won’t work. Looks like it’s leaking hydraulic fluid. Find a new similar one on sale at the same store I was at earlier to get things to fix the tire. Thankfully Jen was running errands so she stopped in to pick it up for me.

She gets back with it and I go out to finish changing that last tire, but she accidentally grabbed the wrong one. So back in I went to return it and get the new one. Back home and change that tire and then switch to get started on my daughters.

That’s when I notice the two indentations in the driveway itself. Things were so warm that the driveway got soft and the wheels on the Jack sunk into the driveway.

With the help of a piece of plywood I managed to get things all changed. So the task is done, but something that should have taken an hour turned into an almost all day ordeal and fairly expensive. With the luck today I’m almost scared to drive the cars now.

Quarter way through my apprenticeship

Time is flying by, I’m already over a quarter way through the year developer apprenticeship program at work. It’s been fun, exhausting, and rewarding all at the same time.

Like all the teams I’ve been apart of so far at Automattic my new team is fantastic. All incredibly smart, dedicated, and willing to give their time and support to help me succeed. There is still a long way to go, but with their help I’ve already learned so much.

I’m working mainly on the web version of Simplenote. It is also used to build the Windows and Linux version of the app with Electron. It’s a React app and not something I’ve worked with before, but I feel like I’m coming along pretty well learning it.

There are so many parts to learn even beyond the code directly. Before this I hadn’t used version control very much, but now feel pretty comfortable using GitHub for most of the everyday use cases. I’ve also had the chance to dig into the build process that is used to build modern web applications like this. Things like Webpack and Electron which are fairly complex in their own way but essential for pulling everything together and making it work.

Recently I’ve started a new project within the web version of Simplenote that I’m the lead of. With help I’ve outlined what needs to be done and have started breaking it down into smaller pieces to work through. I’m looking forward to learning a lot through this process as well.

Though there are a lot of positives it hasn’t all been smooth sailing. I’ve had my share of self doubt and questioning if this is something I’m capable of. I’ve run into problems that I’ve tried hard and spent lots of time on trying to figure out but just couldn’t. Thankful again for my awesome team for helping me get unstuck in these cases.

I also still feel very slow at things. Even when I can figure them out and get things working it seems to take way longer than it should. Each thing seems to send me down a path where I have to learn or dig into to be able to do the task. I think this will get better as I build up experience, but it can still be hard when I close my computer at the end of a day and even though I was busy all day and feel exhausted, I don’t have a lot to show for my effort.

One of the great things about this program though is the group of people who are in it with me. On my team there is another apprentice which is great having someone else right here going through some of the same things I am. We’ve also had group coaching sessions which have been very helpful as well.

Those sessions have ended but I’ve continued on with one other apprentice, who I had a good working relationship with already, having regular peer coaching sessions. I look forward to each one. We have a lot of similarities in the way we work and think and can help call each other out on things that we may not do for ourselves.

Even though it’s still early in I’m so thankful for this program and all the support I’ve been given. This is a role I very much enjoy and hope that things can continue down the path as it is now so that I can do this as a permanent role.

A month of running

We’ve reached the end of 2020 and also the end of December which was the month long virtual 5k wwwp5k.

When I first decided to challenge myself to do not just one 5k during the month but try to run a 5k every day I wasn’t really sure I was going to make it. Even right down to today when I pulled something in my leg this morning while walking the dog.

A couple of my favourite moments were the midnight 10k run I did on where I started around 11:30pm on December 23rd and ran until about 12:30am on December 24th. Doing 5k on each day. There was also the Christmas day rainbow run.

In a round about way I also ended up with a new book to read thanks to an interaction made because of the social aspect of tagging the posts.

I’m looking forward to seeing how the charity donations end up and see how much with the matching from Automattic was raised.

%d bloggers like this: