Our Legacies

When I think about the legacy of politicians, I think about the growth of my personal political consciousness. It is hard to show up for every issue, harder still stay ahead and find ways to hold the right views, right-away all the time. Reflecting on my own growth, I have almost never regretted or changed a viewpoint that was informed primarily by exercising maximum empathy. Now I try and lead with this wherever possible, and I hope this heuristic means I make less mistakes.

Jason Becker

Now

Inspired by Manton Reece, who was inspired by Derek Sivers, I too will include on this page what I’m thinking about and working on right now. This page will be updated semi-regularly as seems appropriate. The post date reflects when this was updated, and all Now pages will be archived and linked to from this page as regular posts as they are, themselves, updated. I am the Chief Product Officer at Allovue a job that continues to be my primary passion, an inspiration, and a challenge.

Jason Becker

Does Weighted-Student Funding Imply Autonomy? Sorta.

I tried to make a point today at an AEFP panel on weighted-student funding that came out all wrong. We were discussing the differences between school-based autonomy and fiscal equity via WSF. Too often, it was being argued, these two concepts come together. This serves to hold back on achieving equity (potentially) if districts are unwilling/ready to provide greater school-based autonomy (or don’t believe in that model for better resource decision-making).

Jason Becker

How I start my work in R

Ideation At the start of every project, there’s a blinking cursor. Actually, that’s almost never true for me. If I start staring at a blinking cursor, I’m almost guaranteed to keep looking at a blinking cursor, often for hours. The real work almost always starts weeks or months before I actually type anything. I think it’s easy for folks for whom their ultimate product is a bunch of code or an analysis report to undervalue that our work is creative.

Jason Becker

Stack of Glue

I have some text, but I want the content of that text to be dynamic based on data. This is a case for string interpolation. Lots of languages have the ability to write something like pet = "dog" puts "This is my {#pet}" pet = "dog" print(f"This is my {pet}") There have been ways to do this in R, but I’ve mostly hated them until glue came along. Using glue in R should look really familiar now:

Jason Becker

Naming Manual Colors with ggplot2

I have been using ggplot2 for 7 years I think. In all that time, I’ve been frustrated that I can never figure out what order to put my color values in for scale_*_manual. Not only is the order mapping seemingly random to me, I know that sometimes if I change something about how I’m treating the data, the order switches up. Countless hours could have been saved if I knew that this one, in hindsight, obvious thing was possible.

Jason Becker

This Year in My R Code

Looking back on 2017, there were three major trends in my R code: the end of S4, directly writing to SQL database, and purrr everywhere. The End of S4 The first package I ever wrote extensively used S4 classes. I wanted to have the security of things like setValidity. I liked the idea of calling new as it felt more like class systems I was familiar with from that one semester of Java in college.

Jason Becker

R, Docker, Circle, and Environments

My latest project at work involves (surprise!) an R package that interacts with a database. For the most part, that’s nothing new for me. Almost all the work I’ve done in R in the last 7 years has interacted with databases in some way. What was new for this project is that the database would not be remote, but instead would be running alongside my code in a linked Docker container.

Jason P. Becker

Announcing jsonfeedr, a new R package

I have not yet spent the time to figure out how to generate a JSON feed in Hugo yet. But I have built an R package to play with JSON feeds. It’s called jsonfeedr, and it’s silly simple. Maybe I’ll extend this in the future. I hope people will submit PRs to expand it. For now, I was inspired by all the talk about why JSON feed even exists. Working with JSON is fun and easy.

Jason P. Becker

Functions as Arguments in R

Sometimes, silly small things about code I write just delight me. There are lots of ways to time things in R. 1 Tools like microbenchmark are great for profiling code, but what I do all the time is log how long database queries that are scheduled to run each night are taking. It is really easy to use calls to Sys.time and difftime when working interactively, but I didn’t want to pepper all of my code with the same log statements all over the place.

Jason P. Becker

Making Sense of dplyr 0.6

Non-standard evaluation is one of R’s best features, and also one of it’s most perplexing. Recently I have been making good use of wrapr::let to allow me to write reusable functions without a lot of assumptions about my data. For example, let’s say I always want to group_by schools when adding up dollars spent, but that sometimes my data calls what is conceptually a school schools, school, location, cost_center, Loc.

Jason P. Becker

Foreign Keys and assertr

I have been fascinated with assertive programming in R since this from 2015 1. Tony Fischetti wrote a great blog post to announce assertr 2.0’s release on CRAN that really clarified the package’s design. UseRs often do crazy things that no sane developer in another language would do. Today I decided to build a way to check foreign key constraints in R to help me learn the assertr package.

Jason P. Becker

Labeling Data with purrr

Here’s a fun common task. I have a data set that has a bunch of codes like: Name Abbr Code Alabama AL 01 Alaska AK 02 Arizona AZ 04 Arkansas AR 05 California CA 06 Colorado CO 08 Connecticut CT 09 Delaware DE 10 All of your data is labeled with the code value.

Jason P. Becker

Contributing to vegalite

One of my goals for 2017 is to contribute more to the R open source community. At the beginning of last year, I spent a little time helping to refactor rio. It was one of the more rewarding things I did in all of 2016. It wasn’t a ton of work, and I feel like I gained a lot of confidence in writing R packages and using S3 methods. I wrote code that R users download and use thousands of times a month.

Jason P. Becker

My confrontation with the mainstream

You can check my Goodreads profile. I love science fiction and fantasy. And I know in 2017 and everyone has already observed the dominance of “geek culture”, with the dominance of Disney properties from Marvel and now Star Wars. Hell, Suicide Squad won a goddamn Oscar. Powell's Best Selling Fiction, 2017-02-26 Powell's Best Selling Fiction, 2017-02-26 But I never felt like SFF was all that mainstream.

Jason P. Becker

Siri Won't Catch Alexa

“I just got an Amazon Echo and surprisingly, I really love it.” In one form or another, this story has repeated again and again across the internet. So while the recent headline seemed to be “Amazon’s Alexa is everywhere at CES 2017”, it really feels like this year was the Amazon Alexa year. I have an Amazon Echo. I bought around a year ago during a sale as the buzz seemed to have peaked 1.

Jason P. Becker

A Gateway Drug to purrr

A lot of the data I work with uses numeric codes rather than text to describe features of each record. For example, financial data often has a fund code that represents the account’s source of dollars and an object code that signals what is bought (e.g. salaries, benefits, supplies). This is a little like the factor data type in R, which to the frustration of many modern analysts is internally an integer that mapped to a character label (which is a level) with a fixed number of possible values.

Jason P. Becker

Introducing json.blog

I have written a lot on the internet. This isn’t a surprise, I’ve been here since the mid-90s. But the truth is, most of what I write on the internet doesn’t make me proud. It hasn’t made the world any better. It certainly hasn’t made me feel any better. Most of this terrible writing is easy to associate with me, because a long time ago, I chose to use my real name as my online identity.

Jason P. Becker