Categories
Local reporting ruminations

Advertising Overload

There’s nothing novel in this post. It’s just a tirade against the ever-increasing presence of advertising in my life, prompted by attending a University of Michigan basketball game.

I went to the Crisler Center last night, where Michigan lost an exciting shootout against Long Beach State. It was entertaining. Both teams were very talented and tried hard.

I make it to a couple of Michigan sports events each year and will crown Michigan Athletics the victors and the best… at cramming advertisements into the experience. Always innovating. I’d love to see a photo series showing the interior of the Crisler Center over the decades, documenting the creep of ads.

How many ads would you think can be placed on the basket itself? Let’s count. Here’s the view of the near hoop from my seats:

That’s between four and six ads, depending on how you count: the base pad, the vertical pad (“meijer meijer meijer” lol), the State Farm pad by the rim, and a freaking TV ad mounted up top. Now let’s look to the other hoop and see what’s facing the court:

From this angle we can see there’s also the UMCU ad and the Libman ad. Each basket is adorned with seven corporate logos plus a TV that plays ads for Coke Zero and Jersey Mike’s. I wonder how many ads I saw over the course of the game. Dozens? Hundreds?

Categories
#rstats Data analysis ruminations Software Work

Same Developer, New Stack

I’ve been fortunate to work with and on open-source software this year. That has been the case for most of a decade: I began using R in 2014. I hit a few milestones this summer that got me thinking about my OSS journey.

I became a committer on the Apache Superset project. I’ve written previously about deploying Superset at work as the City of Ann Arbor’s data visualization platform. The codebase (Python and JavaScript) was totally new to me but I’ve been active in the community and helped update documentation.

Those contributions were sufficient to get me voted in as a committer on the project. It’s a nice recognition and vote of confidence but more importantly gives me tools to have a greater impact. And I’m taking baby steps toward learning Superset’s backend. Yesterday I made my first contribution to the codebase, fixing a small bug just in time for the next major release.

Superset has great momentum and a pleasant and involved (and growing!) community. It’s a great piece of software to use daily and I look forward to being a part of the project for the foreseeable future.

I used pyjanitor for the first time today. I had known of pyjanitor‘s existence for years but only from afar. It started off as a Python port of my janitor R package, then grew to encompass other functionality. My janitor is written for beginners, and that came full circle today as I, a true Python beginner, used pyjanitor to wrangle some data. That was satisfying, though I’m such a Python rookie that I struggled to import the dang package.

Categories
Local reporting ruminations Work

Coworking spaces aren’t profitable

I gave a tour of Workantile this week to a prospective new member who shared her experience working out of The Wing’s DC branch. We got to talking about how WeWork and The Wing were valued in the billions and hundreds of millions of dollars, respectively, before crashing to nothing. Those valuations were clearly absurd, but as a coworking insider, I’ll go a step farther and say there’s not much money in operating a coworking space.

That doesn’t mean coworking spaces aren’t valuable. Workantile has grown friendships, mentorships, careers, side projects, community services and made its members significantly happier. We kick around ideas, eat together, share recommendations and hand-me-downs. A long-time member swears that Workantile saved her marriage. But those benefits accrue to members and their networks and can’t easily be monetized by the space.

And it doesn’t mean people shouldn’t create coworking spaces. On the contrary, now’s a perfect time. Office rents are down, the boom of newly-remote workers are getting lonely, and concern about COVID transmission is receding. But don’t launch a coworking space – or invest in someone else’s – thinking you’ll get rich. The numbers don’t work.

Categories
Gardening ruminations Writing

This thing is still on

I miss writing this blog. Things have been busy. I draft posts in my head but nothing has gotten onto the virtual page. I’ve meant to blog some recent happenings: a nice win at work, my beloved bike commute that is about to change, getting a heat pump, plants I’m growing. I hope I still will.

I stopped using my last regular social media outlet. Mastodon was a nice improvement on Twitter but it was still sucking up my attention. That leaves me without a place to write and share shorter posts. Maybe I can get comfortable blogging faster and more briefly.

On the plus side, I have been back in the groove of working on my novel manuscript. I am more than halfway through line editing and made a pact with a friend to finish this edit by June 23rd (somewhat arbitrary, but I need a deadline). Perhaps when that’s done I’ll write more here.

Here’s a micro-update: I am enamored with Silphium terebinthinaceum, aka Prairie Dock. Gangly, deep-rooted, whimsical flowers, leaves so ugly they’re pretty. I thought about writing an ode to the plant but someone else already did the job nicely. My two Prairie Docks came back this spring and there’s a new one that might survive to join them. Around Ann Arbor there are some nice specimens in the YMCA’s wildflower garden and along the Stadium Blvd bridge, between the bridge and Graydon Park.

See you soon, I hope!

Categories
Life events ruminations

Fractions of a Lifetime

Last week I turned 39 years old. A few people pointed out that next year will be the big four-oh, but I see more significance in this birthday as a milestone delineating the portions of my time on earth.

Halves: if I have a typical lifespan, this moment is just about the halfway point of my life! That striking observation has me taking stock of things.

I hesitated to write this as many of my friends reading this are older than me and it implies that their lives are mostly over. But me not writing it doesn’t change that. It feels right to me to acknowledge the finitude and preciousness of life, whatever age one is.

Thirds: this accounting neatly renders my life into three acts of twenty-six years each. Which works out perfectly in my case: I had my first child at 26 years old and my youngest child will become a legal adult when I’m 52.

That makes a third of my life without children; a third of my life as a parent of young, at-home children; and a third of my life with adult children. This midpoint of my life is also the halfway mark of me having children at home.

Quarters: a quarter of this life would be nineteen-and-a-half years. That interval coincides with the two biggest lifestyle changes I’ve made, both related to diet.

Categories
Climate change Imagine A World Local reporting Politics ruminations

Regular people having a very unregular thought

Olúfẹ́mi O. Táíwò made this lovely remark on a podcast episode:

A lot of these people that we rightly respect and revere in organizing circles were just regular people who had the very unregular thought that they could do something about the world around them. And who just decided to do it.

Olúfẹ́mi Táíwò

And it’s stuck with me, so I’m memorializing it here. It’s dead-on.

The most recent time I thought of it was last week, when catching up with a friend at Workantile. He had organized a group buy of solar panels for his neighbors and, in the process, learned that his subdivision’s homeowners association (HOA) bans solar panels that are visible from the street. The reason? They’re aesthetically unpleasing and will damage property values.

He then had the unregular thought that he could do something about that. So he looked into what it would take to get that rule removed. That led him to power mapping, and in particular, the HOA board of directors. And he found that no one has ever been elected to this HOA board. The member meetings never make quorum, so all board vacancies are filled by appointment. By the board. Pretty unhealthy governance.

Now he’s looking at doing something about that. That’s a bigger challenge and a very boring way to fight climate change. But it’s the right thing to do. And it’s possible, with a big enough dose of unregular thinking.

I send love and solidarity to everyone who sees something that could be better and instead of tolerating it, says, I could do something about that. And just decides to do it.

Categories
ruminations Someday

Finite time for unlimited spring fun

I am reading (like many people) Four Thousand Weeks. That and other similar resources have sharpened my awareness of how little time we have when compared to all the things we could do.

That feeling is especially acute right now, in March. This is when some of my favorite seasonal events happen:

I’ve done all of those things at various times in the past. Never all in the same year, tellingly. Maybe it’s the pull of the longer days and warmer weather that has me wanting to embrace all of these March traditions at once.

Categories
Parenting ruminations

Revisiting skateboarding

I’ve been doing a lot of “mental blogging”, no actual blogging, so here’s an attempt to break that and get something written.

Skateboarding is suddenly popular around here. As a family, we watched the 2021 Olympics skateboarding: all of the women’s final and the condensed version of the men’s final. My kids were surprisingly into it. It probably helped that the women’s winners were so young – the gold medalist was just 13 years old.

That got them interested in skating themselves. We purchased a kid’s board last year, during the height of COVID, but it soon got shelved. It was a nice board, too. The one I’d learned on as a teen had low-quality bearings and I could hardly coast on it, which made it a lot less fun. I compensated for that experience by buying my kids a good starter board. It’s out of the garage and rolling again.

Speaking of my experience, I’m interested in skating again, for the first time in twenty years. I dabbled during my teens, logging maybe a couple of dozen hours on skateboard and longboard before giving up. I remember walking to the park in the summer and practicing my ollie by myself. And just not getting it. Between a lack of progress and having no friends who skated, I soon called it quits.

I continued to enjoy the aesthetics of street skating, though. I got most of the way to completing every achievement in the Tony Hawk Pro Skater 2 – “considered one of the greatest video games of all time, as well as the highest-rated sports video game” – searing the soundtrack into my brain (“lights out, guerilla radio!”). And I watched skating videos, rarer in the pre-YouTube days. Rodney Mullen was my favorite.

Fast forward two decades and it’s easy to rediscover his highlights. Here’s a nice reel; I’m starting it at my favorite kind of trick, with elegant manuals and grinds on street objects:

Is it too obvious to compare him to a ballet dancer?

All of this has been enough to get me back on a board. I bought one off Craigslist this week along with some safety pads. I’m hopeful that I’ll learn more quickly this time around. I had terrible balance as a kid, but since then I’ve done a ton of cycling and fair amount of snowboarding and skiing, so I think I’ll be better. Plus many years of learning new things has made me wiser and more patient. I’d love to be able to ride well, manual, and (stretch goal) ollie over something small.

We’ll see how it goes. If nothing else I’ll have some fun outdoors with my kids.

Categories
Nature ruminations

Welcome, Brood X Cicadas

Next month, if all goes well, Ann Arbor will be overrun by millions of Magicicada septendecim, the seventeen-year cicada. I am giddy with anticipation.

Why am I so excited? I think the cicadas are arriving at just the right moment in my life, in terms of both time and biophilia.

The timing is fortunate. At 3, 6, and 10 years old, my kids will be old enough to appreciate the insects and still young enough to feel wonder. My oldest is already on board: she amassed a collection of cicada shells from more regular “annual” cicadas that emerged in recent years. The next time these cicadas emerge, my kids will be grown, and I may be an empty nester. My oldest will be the age I was when she was born.

I’ve experienced periodical cicadas twice so far, in both cases Brood XIII in Chicago. I was 6 in 1990 and vaguely remember the insects’ ubiquitous noise and bodies. When that brood resurfaced in 2007, I was 23, and have no memories of cicadas from that year. I lived in a 24th-floor apartment in downtown Chicago – maybe there was too much concrete to support any cicadas. I remember my friend Boyu, who was working in the western Chicago suburbs over the summer, telling stories of brushing his car off before getting in and still ending up with cicadas inside. But for the timing to work, I think that would have been stragglers emerging off-year in 2003, which I would have missed in the city.

Now the reverse is true: I’m in the right part of the state for this year’s Brood X emergence. Much of Michigan will miss the cicadas, but Ann Arbor should be as reliable a place as any to experience them.

This will be my third visit with periodical cicadas. Brood X will next emerge in 2038 (I’ll be 54), 2055 (71), and 2072 (88, if I last that long). After this summer, half of my cicada seasons will be behind me.

The cicadas are also coming at the right time for me to appreciate them. In the last year or two I’ve become more appreciative of, knowledgeable of, in love with the natural world. I’m learning about animals, trees, and as much of life on this wondrous planet as I can, cultivating my biophilia. It blew my mind to learn about oak trees evolving to have mast years, where in some years they sync up and together produce an unusually-large crop of acorns to overwhelm predators. Periodical cicadas have evolved a similar mechanism of using staggered timing to their advantage: when they emerge in such great numbers, predators can’t eat them all.

What an incredible feat of evolution, to lie in wait for seventeen years and emerge in concert! I find that outcome especially neat given that at this point, they only reproduce as often as humans do. When the parents of this year’s Brood X cicadas walked the earth, George W. Bush was still president. They wait so long for just a short couple of months above ground. It reminds me of tree time or rock time, timescales slower than our human experience. This strategy has been slowly optimized over millions of years. What to me is a rare, long-awaited, blog-worthy event is just the next repetition of their experiment.

I feel lucky to be living in the right place and right moment for this event. It’s a six-in-a-lifetime occurrence and I don’t even have to leave my neighborhood to enjoy it. This weekend, I’ll pick up a book on cicadas from the library to prepare myself, and look forward to May and June. May this brood be as thick and deafening as ever.

Categories
#rstats Data analysis ruminations Work

Reflections on five years of the janitor R package

One thing led to another. In early 2016, I was participating in discussions on the Twitter hashtag, a community for users of the R programming language. There, Andrew Martin and I met and realized we were both R users working in K-12 education. That chance interaction led to me attending a meeting of education data users that April in NYC.

Going through security at LaGuardia for my return flight, I chatted with Chris Haid about data science and R. Chris affirmed that I’d earned the right to call myself a “data scientist.” He also suggested that writing an R package wasn’t anything especially difficult.

My plane home that night was hours late. Fired up and with unexpected free time on my hands, I took a few little helper functions I’d written for data cleaning in R and made my initial commits in assembling them into my first software package, janitor, following Hilary Parker’s how-to guide.

That October, the janitor package was accepted to CRAN, the official public repository of R packages. I celebrated and set a goal of someday attaining 10,000 downloads.

Yesterday janitor logged its one millionth download, wildly exceeding my expectations. I thought I’d take this occasion to crunch some usage numbers and write some reflections. This post is sort of a baby book for the project, almost five years in.

By The Numbers

This chart shows daily downloads since the package’s first CRAN release. The upper line (red) is weekdays, the lower line (green) is weekends. Each vertical line represents a new version published on CRAN.

From the very beginning I was excited to have users, but this chart makes that exciting early usage seem miniscule. janitor’s most substantive updates were published in March 2018, April 2019, and April 2020, with it feeling more done each time, but most user adoption has occurred more recently than that. I guess I didn’t have to worry so much about breaking changes.

Another way to look at the growth is year-over-year downloads:

YearDownloadsRatio vs. Prior Year
2016-1713,284
2017-1847,3043.56x
2018-19161,4113.41x
2019-20397,3902.46x
2020-21 (~5 months)383,5956
Download counts are from the RStudio mirror, which does not represent all R user activity. That said, it’s the only available count and the standard measure of usage.