What's the first thing you do after waking up? Maybe take a shower or drink a cup of coffee? For me and many hockey fans in Finland, it's taking a look at YLE's Teletext on page 235. It's an iconic experience that's been a main stay for years and decades. I can't remember when I first opened the page 235 but it's been a part of my morning routine for as long as I can remember.
So what's at page 235 that makes it such a culturally important thing? Latest results of NHL games. We Finns tend to love hockey and while most NHL games are played during the night, so often we have to rely on text and colors to catch up with what's going on.
235 on command line
Now you can get the same experience from the comfort of your command line.
nhl-235 is a CLI tool that takes inspiration from the original and provides a comparable experience.
It can be installed from crates.io with
cargo install nhl-235 or downloading the latest binaries from GitHub. Since Rust doesn't allow crate names to start with a digit, I recommend doing a symlink to the installed crate to make the experience a really good one.
ln -s ~/.cargo/bin/nhl-235 /usr/local/bin/235
Built with Rust
235 is built with Rust. I started learning Rust for the first time in December when I attended Advent of Code but struggled to grasp the nuances of Rust. In January, I picked it up again after a month of not coding in Rust and built this tool.
It's my first published Rust project and I'm so proud and excited that I have made something that excites people and provides real utility. I've learned so much in the process and there's still a lot to learn.
Basically since the beginning of my programming hobby, I've been a big fan of web as a platform. What I love about the web is that I can deploy changes anytime and they will be immediately available to everyone using it.
Now, with building a command line tool, it's a very different world. Users will only get the newest updates if they remember to update manually (btw, to do that with crates, re-run
cargo install nhl-235 – even the symlink will keep on working).
What's still missing?
One important thing that the tool is still missing is the comforting color green: seeing the goals, assists and goalie performance of Finnish NHL players. It's still something I gotta figure out a robust way to implement since the data itself doesn't provide country information on players.
On another hand, it makes the tool more globally fair as every player gets the same treatment. In one form or another, I'm still commited to add the green to our screens.
Other than that, I'm not planning to add features. I'll keep on working to make the code better and the application more stable but I want to keep it very simple in design and features. You're welcome to ask for features or report bugs via GitHub issues though but I won't make any promises.
Open sourced and supported by Spice Program
I believe in open source and sharing my work so others can use it but also to learn from it (I'm not sure if my first Rust project is a place to look for example though). Thus, this project has been published under MIT license.
On my daily work, I work at Futurice and one of my favorite perks at the company is the support we offer for our people when it comes to open source. Through Spice Program, I get extra compensation for working with open source and this project has been supported by that program.
Share it, use it, get in touch
I hope this project brings fun and utility to the lives of terminal using NHL fans. If you know someone who might like it, share this blog post or the project page and tell them about it.
If you find joy from it, let me know. It makes me very happy when I see a tweet or an email (juhamattisantala [at] gmail [dot] com) and hear about people finding my work useful.
Sign up for Syntax Error, a monthly newsletter that helps developers turn a stressful debugging situation into a joyful exploration.