Category Archives: baseball

The greatest Red Sox / Dodger

After game 2 it was already clear this was an NLCS so great it had to go seven, and it did.  But game seven wasn’t a great game seven.  After six hard-fought games, the Brewers never really mounted a threat, and went down 5-1.  Keenest pain of all was that I got what I’d been waiting for the whole series; a chance for my beloved Jonathan Schoop to be the hero.  He came in to pinch hit for starter Joulys Chacin in the bottom of the second, with two on and two out and the Brewers down by 1.  Schoop grounded out.  He was 0 for the postseason in 6 plate appearances.

So here we have it, a Red Sox / Dodgers series, and so it’s time for my annual post about what player had the best combined career for both teams.  (Last year:  Jimmy Wynn was the greatest Astro/Dodger.)

The greatest Red Sox / Dodger?  A player I’d never heard of, even though he was just a little before my time:  Reggie Smith.  Played in one World Series for the Red Sox (1967) and three for the Dodgers (1977,1978,1981).  Went to the All-Star Game with both teams.  Hit 300 home runs, cannon of an arm in the outfield, got 0.7% of the vote the one and only time he was up for the Hall of Fame.  Well, here’s his all time distinction; with 34.2 WAR for the Red Sox and 19.4 for the Dodgers, he’s the greatest Red Sox / Dodger of all time.

Surprisingly, given how old these teams are, the top Red Sox / Dodgers of all time are mostly recent players.  Derek Lowe is the top pitcher (19.4 WAR for Boston, 13.3 for LA.)  Adrian Gonzalez, Manny Ramirez, and Adrian Beltre are also worthy of mention.   The only old-time player who was a contender was Dutch Leonard, who actually pitched for Boston in the last Red Sox – Dodgers World Series in 1916, notching a complete game win.  But that guy never actually pitched for the Dodgers!  My search got confused because it turns out there were two Dutch Leonards, the second of whom was a Dodger to start his career.  Doesn’t count!

Tagged ,

NLCS game 2: Dodgers 4, Brewers 3

In 35 years of watching baseball I had never been to a postseason game, until this Saturday, when I was able to get two tickets to Game 2 of the National League Championship Series through a wonderful terrific beautiful friend with connections.

First of all, I salute whoever the free spirit was who slammed a Zima right before entering Miller Park.

The game started at 3pm; in late afternoon with the roof shut at Miller Park there’s a slant-line of sunlight across the field which is lovely to look at and probably terrible to hit in.

And indeed there wasn’t a lot of hitting to start with. Wade Miley, once a bad Oriole, now a good Brewer, never looked dominant, giving up lots of hard-hit balls including a shot by Jeremy Freese in the first that Lorenzo Cain hauled back in from over the wall, but somehow pitched 5 2/3 only allowing 2 hits (and collecting a single himself.) Hyun-jin Ryu matched him zero for zero. Every seat in Miller Park full, everyone attentive to the game, a level of attention I’ve never seen there. The guy behind us kept saying “NASTY, throw something NASTY.” CJ believes he sees Marlins Man in the front row — he’s right! Brewers get runners on second and third with one out, Dodgers intentionally walk Yelich to load the bases, (wave of boos), Braun delivers the RBI groundout but can’t score any more. Travis Shaw hits a solo shot to deepest center, the Brewers go up 3-0, and people start to smell win, but the Dodgers lineup has good hitters all the way down to #8 and the usually reliable Milwaukee bullpen starts to crack. Jeremy Jeffress comes in with runners on first and second and nobody out, immediately gives up a single to Joc Pederson, now they’re loaded, still nobody out, Brewers up 3-1. Manny Machado, on third base, keeps jumping off the bag, trying to distract Jeffress. But Jeffress strikes out Yasiel Puig, who’s so angry he smashes his bat over his knee. Crowd exults. Then he walks light-hitting catcher Austin Barnes to force in a run. Nobody’s up in the bullpen. Crowd panics. Yasmini Grandal comes in to hit in the pitcher’s spot and Jeffress somehow gets the double play ball and is out of it. But the next inning, Jeffress stays in a little too long; Chris Taylor leads off with a lucky little dink of an infield single and then Turner muscles a ball out to the short corner in left field; 4-3 Dodgers and it stays that way.

But the Brewers do threaten. 43,000 Brewers fans want to see Yelich get one more chance to be the hero. Hernan Perez draws a walk in the bottom of the ninth, steals while Cain strikes out. So Yelich gets to bat with 2 outs and a runner in scoring position. He grounds out. Crowd deflates. But that’s all you can ask of a baseball game, right? The hitter you want in the situation you want with the game on the line and whatever happens happens. Great baseball. Great team. I hope they win it all.  Maybe I’ll try to be there when they do.

Tagged ,

If I have caught a foul ball it is only by standing on the shoulders of giants

“Combined cap and baseball mitt,” A patent by Richard Villalobos, 1983.

 

This is meant for fans, not players. The idea is that if a foul ball comes towards you, you may not have time to grab a glove you’ve stashed at your feet. Rather, you quickly slip your hand into the cap-mounted glove and snag the foul with your hat still attached to the back of your hand.

Why are the 2018 Orioles so bad, so very, very, very bad?

The Orioles held on to win one tonight, 5-3 over the A’s, getting out of a bases-loaded one-out jam in the top of the 8th, so maybe for once I’m emotionally able to take a look at this loss of a season.

Baltimore was not supposed to be great this year.  But they weren’t supposed to be terrible, either.  The Orioles thought they had an outside chance at a wild card in Machado’s walk year and signed free-agent pitchers Alex Cobb and Andrew Cashner. Before the season, Fangraphs projected them to win 75 games or so and battle with the Rays for fourth place in the AL East.

They’re now 42-104 and en route to the worst record in the team history.

How was everyone so wrong?

Here’s my take.  Nobody was wrong.  The projections were the right projections to make.  Sometimes you get unlucky and everything goes to shit at the same time.

First: the Orioles are not as bad as that record; they’ve been unlucky.  Their Pythagorean record is 50-96.  That’s not good.  But it’s not historically bad.

Second:  let’s look at the players who contributed at least 2 WAR to the 2017 Orioles.

  • Jonathan Schoop
  • Manny Machado
  • Adam Jones
  • Trey Mancini
  • Welington Castillo
  • Tim Beckham (in just 50 games!)
  • Dylan Bundy
  • Mychal Givens
  • Kevin Gausman

Let’s throw in Cobb and Cashner too, since they delivered that much WAR to their 2017 teams.  This is a pretty long list of players from whom the Orioles were counting on some production (except Castillo, who was cut loose.)

Of these, Cobb, Schoop, Beckham, Bundy, and Givens each had the worst season of their career.  So did Mancini, though his career’s only two years long.  Cashner was back to his 2016 level of bad after a good 2017.  Gausman and Machado played about as well as you might expect.  (Machado’s hitting improved a lot, but the move to shortstop made him less defensively valuable.)  Jones hit as usual but baseball-reference rates his defense as having degraded enough to essentially eliminate his value.  And Chris Davis, of course, who was just sort of OK in 2017 but delivered a lot of value in 2015 and 2016, is turning in one of the worst seasons in major league history; his average currently sits at .174.  Or Chris Tillman, a very good pitcher as recently as 2016, who stunk in 2017 and unfathomably stunk even more this year until finally being taken out back and released.  (I saw what may end up being his last major league win.)

So you’re basically taking this entire list of players, who together might have been expected to constitute the core of an respectably mediocre ballclub, and saying that not one of them will play better than you expect, and more than half of them will play worse than you could have reasonably imagined.

I think the Orioles just got snakebit.

But what happens now?  The Orioles haven’t been bad for very long, so they don’t have recent high draft picks.  Machado, Schoop, and Gausman are gone, along with half the bullpen.  Jones might go.  I think in 2019 we are just going to watch Jonathan Villar and Cedric Mullins cavort in front of almost nobody.

I’ll watch that.  And I’ll enjoy it, because I always do.  The losses don’t mean much to me.  Every win makes me proud.

 

Tagged ,

Brewers 6, Marlins 5 / Bucks 104, Celtics 102 / Orioles 6, Tigers 0

I’ve lived in Madison for 13 years and this is the first time I’ve noticed anybody caring about the Milwaukee Bucks.  It’s definitely the first time I’ve cared about the Milwaukee Bucks.  But now the Bucks have a legitimate superstar in Giannis Antetokoumnpo  and a likeable cast of supporting characters like 19-year-old former refugee and skinny blockmaster Thon Maker.  The kids had a rare unscheduled day on Sunday and the Bucks were in the playoffs against the Celtics and there were nosebleed tickets on Stubhub for $40 apiece so why not?

You may know that I kind of hate driving so if I’m gonna drive all the way to Milwaukee it’s got to be for more than a Bucks game.  When I thought about what the kids would really want to do it was pretty clear — see the Brewers, stay over, then see the Bucks.  So that’s what we did!

Notes on the Brewers:

  • I got lost in the impossible off-ramp spaghetti surrounding Miller Park and we ended up not getting into the ballpark until the second inning.  The Brewers were already down 4-0.  4-0!  To the sad Miami Marlins, the team Derek Jeter is using as a tax dodge, the team so bad Marlins Man cancelled his season tickets!
  • But as soon as we sat down, Travis Shaw muscled a huge home run to left center.  Didn’t even look like he got all of it, he kind of sliced it.  But Travis Shaw is a big strong man.
  • Brewers just keep creeping back.  Crowd stays in the game, at no point do you really feel the Brewers are out of it.  Three straight Brewers hit what look like go-ahead home runs but each dies at the wall.  (Ryan Braun at least gets a sacrifice fly out of it.)   In the 8th, Derek Dietrich loses an Eric Sogard fly ball in the, I dunno, the lights?  The roof?  He plays for the Marlins and he just doesn’t care?  Anyway the ball plunked down right next to him, Shaw hustles in from second to tie it, Eric Thames, who starts the play on first, tries to get in behind with the go-ahead run but is tagged out at or rather substantially before the plate because Eric Thames made a bad decision.
  • Josh Hader looks like he should be playing bass in Styx.
  • Then comes the bottom of the 9th and the play you might have read about.  Still tied 5-5.  Jesus Aguilar, who’s already warmed up twice in the on-deck circle, finally gets his chance to pinch-hit against Junichi Tazawa.  Gets behind 0-2.  And then just starts fouling, fouling, fouling.  Takes a few pitches here and there.  Full count.  Foul, foul, foul.  And on the 13th pitch, Aguilar launches it to center field.  I thought it was gonna be one more death on the warning track.  But nope; ball gets out, game over, fireworks.  I felt like my kids got to see true baseball.

On to Milwaukee.  Bucks play the Celtics at noon, in what, if they lose, could be the last ever game played at Bradley Center.  (This is a bit of a sore point for UW folks, who absorbed as a budget cut the $250m state contribution to the arena’s cost.)  We have breakfast at the hotel and chat with a nice older couple in Packers/Celtics gear — what?  — who turn out to be Boston forward Al Horford’s aunt and uncle from Green Bay.

This is only the third NBA game I’ve been to, CJ’s second, AB’s first.  We wander around inside the arena for a bit.  Two separate groups of Bucks cheerleaders come up to AB and applaud her curly hair.  I think people are especially struck by it when they see us together, because I don’t have curly hair, except here’s a little-known fact:  I do have curly hair!  I just keep it short so it doesn’t curl.  In 1995 or so it looked like this:

Anyway.  The atmosphere, as I have promised AB, is more intense than baseball.  Bucks build up a 19-point lead and seem poised to coast but the Celtics come back, and back, and back, and finally go ahead with 52 seconds left.  Jaylen Brown plainly capable of taking over a game.  Aron Baynes has a very dumb-looking haircut.  Milwaukee’s Thon Maker is ridiculously skinny and has very long arms.  He’s just 21, a former refugee from South Sudan.  We saw his first game as a Buck, an exhibition against the Mavericks at Kohl Center.  Those long skinny arms can block a shot.

Game tied at 102, 5 seconds left, Malcom Brogdon (called “The President” — why?) misses a layup, and there, rising like a Greek column above the scene, is the Greek arm of Giannis Antetokounmpo — the tip-in is good, Celtics miss the desperation last shot, Bucks win 104-102, crowd goes berserk.

 

I was going to blog about this last week but got busy so let’s throw in more sports.  Bucks eventually lose this series in 7, home team winning every game a la Twins-Braves 1991.  The next Friday, I’m giving a talk at Maryland, and the Orioles are playing that night.  It’s been five years since I’ve seen OPACY.  I brought CJ along this time, too.  The Orioles are not in a good way; they’ve won 6 and lost 19, though 3 of those 6 were against New York at least.  Attendance at the game, on a beautiful Friday night, was just over 14,000.  The last baseball game I went to that felt this empty and mellow was the AAA Tucson Toros, several months before they moved to El Paso and became the Chihuahuas.  Chris Tillman, tonight’s starter, was the Orioles’ ace five years ago.  Now he’s coming off a 1-7 season and has an ERA over 9.

So who would have thought he’d toss seven shutout innings and take a no-hitter into the fifth?  Never looked overpowering but kept missing bats.  His first win in almost a year.  Manny Machado, surely now in his last year as an Oriole, strokes a home run to dead center to get things started.  It’s a beautiful thing.  It doesn’t even look like he’s working hard.  It’s like he’s just saying “Out there. Out there is where this ball should be.”  Pedro Alvarez homers twice, in exactly the opposite manner, smashing the ball with eye-popping force.  Jace Peterson, who the Orioles picked up off the Yankees’ scrap heap, steals third on the shift when the Tigers third baseman forgets to pay attention to him.  He did the same thing against the Rays the night before.  I am already starting to love him the way I love Carlos Gomez.  Maybe now the Orioles are going to go back to being a bad team that makes good use of players nobody else wants, like Melvin Mora and Rodrigo López.

Besides me and CJ, this guy was at the game:

Never get tired of that flag.

 

Tagged , , , , ,

Hall of Fame ballots: some quick and dirty clustering

Since all the public Hall of Fame ballots are now available online in machine-readable form, thanks to Ryan Thibodeaux, I thought I’d mess around with the built-in clustering functions in sklearn and see what I could see.

The natural metric on ballots is Hamming distance, I guess.   I first tried the AgglomerativeClustering package.  I didn’t tell it what metric to use on the ballots, but I’m assuming it’s using Hamming distance, aka Euclidean in this case.  I asked AgglomerativeClustering to break the Hall of Fame voters into 2 clusters.  Guess what I found?  There’s a cluster of 159 voters who almost entirely voted for Barry Bonds and Roger Clemens, and a cluster of 83 who universally didn’t.  You won’t be surprised to hear that those who voted for Bonds and Clemens were also a lot more likely to vote for Manny Ramirez, Sammy Sosa, and Curt Schilling than the other cluster.

Which candidate was most notably unpopular among the Bonds-forgivers?  That would be Omar Vizquel.  He was on 53% of the steroid-rejector ballots!  Only 24% of the Bonds cluster thought Omar deserved Cooperstown.

Then I tried asking AgglomerativeClustering for four clusters.  The 83 anti-steroids folks all stayed together.  But the bigger group now split into Cluster 1 (61 ballots), Cluster 2 (46), and Cluster 3 (52).  Cluster 1 is the Joe Posnanski cluster.  Cluster 2 is the Nick Cafardo cluster.  Cluster 3 is the Tim Kurkjian cluster.

What differentiates these?  Cluster 1 is basically “people who voted for Larry Walker.”  The difference between Cluster 2 and Cluster 3 is more complicated.  The Cluster 2 ballots were much more likely to have:

Manny Ramirez, Sammy Sosa

and much less likely to have

Mike Mussina, Edgar Martinez, Curt Schilling

I’m not sure how to read this!  My best guess is that there’s no animus towards pitchers and DHs here; if you’re voting for Bonds and Clemens and Sosa and Ramirez and the guys who basically everybody voted for, you just don’t have that many votes left.  So I’d call Cluster 2 the “2000s-slugger loving cluster” and Cluster 3 everybody else.

Maybe I should say how you actually do this?  OK, first of all you munge the spreadsheet until you have a 0-1 matrix X where the rows are voters and the columns are baseball players.  Then your code looks like:

import sklearn

model = AgglomerativeClustering(n_clusters=4)

modplay.labels_

which outputs

array([1, 0, 3, 1, 1, 1, 0, 0, 0, 0, 2, 1, 2, 1, 3, 0, 0, 0, 2, 1, 0, 3, 2,
1, 2, 1, 1, 3, 1, 3, 3, 0, 2, 2, 0, 1, 1, 1, 0, 2, 0, 0, 1, 2, 1, 3,
2, 2, 1, 3, 0, 2, 0, 3, 1, 0, 0, 2, 0, 2, 1, 2, 1, 0, 0, 0, 1, 0, 2,
0, 1, 1, 2, 0, 1, 3, 0, 0, 2, 0, 0, 0, 0, 0, 1, 1, 0, 0, 2, 0, 1, 0,
0, 0, 3, 1, 1, 0, 1, 0, 3, 1, 3, 3, 2, 0, 2, 1, 0, 2, 2, 3, 2, 3, 1,
3, 0, 3, 1, 0, 2, 1, 0, 0, 0, 1, 3, 1, 1, 3, 2, 3, 3, 2, 2, 0, 3, 3,
1, 0, 0, 2, 2, 3, 1, 3, 1, 2, 0, 1, 3, 1, 0, 0, 2, 3, 0, 2, 1, 0, 2,
1, 3, 3, 0, 1, 3, 1, 1, 0, 0, 2, 0, 1, 2, 0, 2, 1, 0, 0, 3, 3, 1, 1,
2, 3, 2, 0, 2, 0, 0, 1, 2, 1, 0, 3, 1, 3, 0, 3, 3, 3, 0, 3, 3, 3, 0,
2, 0, 3, 3, 0, 1, 0, 1, 2, 3, 2, 2, 0, 0, 0, 1, 3, 3, 1, 0, 0, 1, 3,
0, 2, 3, 1, 0, 0, 0, 0, 0, 3, 3, 3])

i.e. a partition of the voters into four groups.

(Agglomerative clustering naturally generates a hierarchical clustering, i.e. a tree with the HoF voters on the leaves; there must be some way to get sklearn to output this directly, but I don’t know it!

Of course, if you have a 0-1 matrix, you don’t have to cluster the rows — you can cluster the columns! This time, just for kicks, I used the hierarchical clustering package in scipy.  I think this one is just agglomerating too.  But it has a nice output package!  Here, Y is the transpose of X above, a 0-1 matrix telling us which players were on which ballots.  Then:

>> import scipy
>>> Z = scipy.cluster.hierarchy.linkage(Y)
>>> Dend = scipy.cluster.hierarchy.dendrogram(Z,labels=(a list of player names))
>>> plt.xticks(ha=’right’)
>>> plt.show()

gives

Not bad! You can see that Bonds and Clemens form their own little cluster in red.  There is not that much structure here — maybe worth noting that this method may be dominated by the variable “number of votes received.”  Still, the two stories we’ve told here do seem to have some coarse features in common:  Bonds/Clemens are a cluster, and Larry Walker voting is kind of its own variable independent of the rest of the ballot.

OK, this picture was nice so I couldn’t resist doing one for the voters:

Pretty hard to read!  I think that black cluster on the end is probably the no-Bonds-no-Clemens gang.  But what I want you to notice is that there’s one outlying node all the way over to the left, which the clustering algorithm identifies as the weirdest ballot made public.  It’s Sadiel LeBron, who voted for Clemens, Sosa, and Ramirez, but not Bonds.  And also he voted for Andruw Jones and Omar Vizquel!  Yeah, that’s a weird ballot.

I’m sure this isn’t the right way to visualize a 0-1 matrix.  Here’s what I’d do if I felt like spending a little more time:  write something up to look for a positive definite rank-2 matrix A such that

A_{ij} > A_{ik}

whenever voter i voted for player j but not player k.  That models the idea of each player being a point in R^2 and each voter being a point in R^2 and then voters vote for every player whose dot product with them is large enough.  My intuition is that this would be a better way of plotting ballots in a plane than just doing PCA on the 0-1 matrix.  But maybe it would come out roughly the same, who knows?

Presumably there are known best practices for clustering subsets of a fixed set (or, more generally, finding good embeddings into visualizable metric spaces like the plane.)  Tell me about them!

 

Tagged , , , ,

The greatest Astro/Dodger

The World Series is here and so it’s time again to figure out which player in the history of baseball has had the most distinguished joint record of contributions to both teams in contention for the title.  (Last year:  Riggs Stephenson was the greatest Cub/Indian.)  Astros history just isn’t that long, so it’s a little surprising to find we come up with a really solid winner this year:  Jimmy Wynn, “The Toy Cannon,” a longtime Astro who moved to LA in 1974 and had arguably his best season, finishing 5th in MVP voting and leading the Dodgers to a pennant.  Real three-true-outcomes guy:  led the league in walks twice and strikeouts once, and was top-10 in the National League in home runs four times in the AstrodomeCareer total of 41.4 WAR for the Astros, and 12.3 for the Dodgers in just two years there.

As always, thanks to the indispensable Baseball Reference Play Index for making this search possible.

Other contenders:  Don Sutton is clearly tops among pitchers.  Sutton was the flip side of Wynn; he had just two seasons for Houston but they were pretty good.  Beyond that it’s slim pickings.  Jeff Kent put in some years for both teams.  So did Joe Ferguson.

Who are we rooting for?  On the “ex-Orioles on the WS Roster” I guess the Dodgers have the advantage, with Rich Hill and Justin Turner (I have to admit I have no memory of Turner playing for the Orioles at all, even though it wasn’t that long ago!  It was in 2009, a season I have few occasions to recall.)  But both these teams are stocked with players I just plain like:  Kershaw, Puig, Altuve, the great Carlos Beltran…

 

 

Tagged , ,

Game report: Cubs 5, Brewers 0

  • I guess the most dominant pitching performance I’ve seen in person?  Quintana never seemed dominant.  The Brewers hit a lot of balls hard.  But a 3-hit complete game shutout is a 3-hit complete game shutout.
  • A lot of Cubs fans. A lot a lot.  My kids both agreed there were more Cubs than Brewers fans there, in a game that probably mattered more to Milwaukee.
  • For Cubs fans to boo Ryan Braun in Wrigley Field is OK, I guess.  To come to Miller Park and boo Ryan Braun is classless.  Some of those people were wearing Sammy Sosa jerseys!
  • This is the first time I’ve sat high up in the outfield.  And the view was great, as it’s been from every other seat I’ve ever occupied there.  A really nice design.  If only the food were better.
Tagged

The greatest Cub/Indian

Congratulations to the Cubs, the Indians, and their fanbases, one of which will enjoy a long-awaited championship!

Now here’s the question.  Which player in baseball history was the best combined Cub/Indian?  My methodology, as it was last year, is to draw the top 200 position players and pitchers from each team by Wins Above Replacement, using the Baseball Reference Play Index.  Then I find the players with the highest value of

(WAR for team 1 * WAR for team 2)

Now I have to admit I couldn’t actually think of a player who played for both the Cubs and the Indians!  And this was borne out by the Play Index results:  there were only five position players and no pitchers who ranked in the top 200 all-time contributors to each team.  Pretty surprising, considering how long both teams have been around!  And here are your top five Cub/Indians:

  1.  Riggs Stephenson (193.6)
  2.  Andre Thornton (98.8)
  3.  Jose Cardenal (47.4)
  4.  Mel Hall (9.0)
  5.  Mitch Webster (7.8)

I almost wonder whether I did something wrong here.  There was so much more overlap last year between the Royals and the Mets!  But until you tell me otherwise, it’s the Riggs Stephenson Series.

Tagged , , ,

Orioles postmortem 2016

What is there to say?  Should Showalter have used Britton?  Probably.  When?  Probably when O’Day came in, when the Orioles desperately needed a double play to keep the game tied.  (But O’Day got the double play ball anyway.)  Barring that, you bring Britton in to start the 11th, I think, because Britton doesn’t give up home runs and you’ve got the home run guys coming up.  But what difference does it make?  The Orioles weren’t hitting, not off Liriano, not off anybody.  Jimenez would have been come in to pitch the 12th or 13th anyway.  The real mistake was pinch hitting Reimold for Kim.  Why?  Kim is the only guy on the team who gets on base.  Maybe he walks and Machado comes up and you have an actual chance.  Reimold is a bad defender, too; his misplay in the 11th, letting Devon Travis get to third, could have been decisive if Encarnacion had hit a single instead of a home run.

I said on Twitter it reminded me of the last game of the 1997 ALCS, but when I think it over, this one was a lot less heartbreaking.  In that game, Mike Mussina delivered one of the best Orioles playoff starts of my lifetime, and we wasted it.  Ten hits and five walks and we couldn’t push one run across.

And here’s the thing.  That 1997 team was the best Orioles squad in 15 years, and you had the real sense it was a one-shot deal.  The next year we were back to losing.  The 2016 team is probably the third-best in the last five years, and the main contributors will all be back next year.  It’s been a big adjustment, rooting for a team that’s consistently good, but my ability to absorb this loss makes me think it’s finally starting to sink in.

Tagged
%d bloggers like this: