Categories
ruminations

Should I stop flying?

Summary: I like riding in airplanes and to me, it’s normal.  And I’m under social pressure to fly.  But when I confront the science of climate change, air travel seems immoral.  Should I stop?  Will I stop?


I’m writing this because it’s been on my mind and:

  1. Posts & articles are typically about “this thing I did” not “something I’m considering.”  I want to show that making decisions is messy.
  2. If I decide to stop flying, which may seem drastic, this will show I was considering it…
  3. … and if I keep flying, this will show I considered it – which could make me look thoughtful, or more likely, weak and unprincipled.

Why

The climate situation is dire.  I can’t overstate this.  Read coverage of the most recent (Oct 2018) IPCC report and/or Joseph Romm’s book Climate Change: What Everyone Needs to Know.  Humanity is on pace to destroy the world.  And the worst polluters are well-off Americans like me.  Because we do high-carbon luxury things that most of the world can’t afford.  Flying is one of the most-polluting activities.

Categories
Making Someday

Upcycling yard sign frames into a papasan chair?

Filed under “ideas I’d pursue if I had infinite time:” could I weld the metal wickets from old political yard signs into the bowl of a papasan chair?  There are tons of signs rendered useless each election when a candidate loses or a proposal is decided.  These are free or nearly-free, and indeed many are left by the side of the road to rust.

The thin metal rods bend well.  I imagine giving them the proper curve, then welding a grid of them into a bowl shape.  Welding is on my long-term to-learn list, perhaps in 2019.  Would this be an easy trial project or a foolishly hard one?  It would at least be low stakes.

I’m not sure what material the rods are.  Galvanized steel?  I’ve seen some of them rust.  If galvanized, I gather additional safety precautions may be in order from zinc fumes that off-gas during welding.

Someday, perhaps.  I wonder if it’s been tried, or what else people have made from this source of free metal rods.

Categories
Work

Fully-remote jobs don’t need in-person interviews

I hired a data analyst last year who started working for me in December.  He lives in Colorado, I live in Michigan.  After 10 months of working together, week in and week out, I finally “met” him at our annual company conference last month (September).  Does that seem funny?  I was surprised by how tall he was, but otherwise, no, it’s business as usual around here.

I’ve now embraced the idea of hiring someone and working with them without first meeting them in person.  If you’ll be working with them remotely, and your team and organization have the right culture and systems in place for that, why would you insist on in-person interviews?

In a truly remote-first organization, there’s little cause to fly someone out for an in-person interview.  And there are many reasons not to.  When you weigh the costs and benefits, it’s not worth it.  You’re a remote organization – embrace it!

Categories
Biking

The cargo bike changed my life

In the summer of 2016, I was visiting Brooklyn for work.  Walking down Fulton Mall during morning rush hour, I saw a man pedaling through traffic with his school-aged daughter perched on the back of his bike, her feet resting on running boards.

I had never seen such a thing and couldn’t get it out of my head.  I did some research online, searching terms like “bike transport kids running boards” and encountering the proper name: cargo bike.  When I found myself back in NYC a few months later, I stopped by 718 Cyclery, talked to Joe, and ordered a Yuba Boda Boda.

That bike changed my life.  Let me count the ways:

My health

My bike before the Boda Boda was an old hand-me-down Trek hybrid that I neither took care of nor rode much.  At most maybe a 3 mile commute a few times per month in the summer.

Categories
DIY Homebrew Making

DIY Hops Trellis

I started growing hops at my parents’ home in Chicago in 2008.  In the summer of 2011 we moved them to Michigan and I built this trellis:

hops trellis
Hops grow from the frames on the right up the lines to the tree on the left

Now that it’s time for the trellis to find a new home, I’m writing up my design for posterity.  Notable aspects include that it can be harvested without ascending a ladder and that the top is mounted on a tree.

Each of the three hop plants (Cascade, Mt. Hood, Centennial) has its own starting frame.  It runs up the yellow chain for 5 feet, then starts climbing a line up into the trees:

closeup of wood hops frame
Overgrown vegetation shows I’ve lost interest
Categories
Brewing process Other fermentables

Batch 79: 2016 Dry-Hopped Plymouth Orchards Cider

Started with 5 gallons of juice from Plymouth Orchards, fermented (and left on the lees) for 2 years before tweaking what was a boring final product.

  • 2016-10-08: Pitched D47 yeast.  Can’t remember if I used sulfite/Campden tablets to knock back wild yeasts.  OG 1.050.
  • 2017-03-25: added cinnamon stick, now common practice for all of my ciders.  At low levels, enhances apple perception and does not stand out as cinnamon.
  • 2018-08-18: racked and added:
  • 2018-08-23: kegged.  I hadn’t stirred in the leaf hops and they had formed a thick layer on top, with the top half being dry.  So the practical impact of the dry-hopping will be less than 4 oz for 5 days.

The cider itself was clean but dull before dry-hopping.  To test the idea of dry-hopping, I’d pulled a 1 liter sample and added the equivalent of 4 oz Mosiac per 5 gallons.  The result was fascinating, like a white wine with tropical fruit notes.

I’ve become inconsistent with taking final gravities, especially if the batch is many months old or is being stabilized.  Here it’s both, and I never measured the FG.  Let’s assume it’s 1.000 which would be an ABV of 6.5%.

Categories
Beer Homebrew Recipe

Batch 78: Belgian Golden Sour II

Our AABG Knob Creek Barrel Project group decided to rebrew our Belgian Golden ale.  This is our first re-brewing of a previous recipe and a testament to how good that beer was.

Brewed 2018-07-18.  Yielded about 21 gallons at 1.071 OG, I was targeting more gallons at lower gravity but this was okay.  I could always add water at the end of the brewday, but it feels wrong.

Recipe was shaped by the convenience of using a full bag of malt.  It’s here on BrewToad.  I omitted the CaraPils because I didn’t have any, but would recommend it if brewing again.

The recipe was as simple as it gets:

  • 55 lbs Pils malt
  • 2 oz Magnum hops (12.5% AA) @ 75 minutes
  • Whirlfloc
  • Repitched the CCYL 129 Eagle River yeast used in Batch 77: Zingibier VI.

Had a boilover, doh.

Quick active fermentation.  Racked about 16 gallons into the barrel a few weeks later, reserving one 5 gallon share to drink clean.

One participant in the barrel project wasn’t able to participate this round, so we covered his share by adding a carboy of 2-year-old Quadrupel ale I had lying around.  It was too dull and boozy to drink and had become slightly oxidized.  This will slightly boost the SRM of the combined beer and the other 90% of the fresh beer should cover up the oxidation notes.

Categories
#rstats Data analysis

Generating unique IDs using R

Here’s a function that generates a specified number of unique random IDs, of a certain length, in a reproducible way.

There are many reasons you might want a vector of unique random IDs.  In this case, I embed my unique IDs in SurveyMonkey links that I send via mail merge. This way I can control the emailing process, rather than having messages come from SurveyMonkey, but I can still identify the respondents.  If you are doing this for the same purpose, note that you first need to enable a custom variable in SurveyMonkey!  I call mine for simplicity.

The function

create_unique_ids <- function(n, seed_no = 1, char_len = 5){
  set.seed(seed_no)
  pool <- c(letters, LETTERS, 0:9)
  
  res <- character(n) # pre-allocating vector is much faster than growing it
  for(i in seq(n)){
    this_res <- paste0(sample(pool, char_len, replace = TRUE), collapse = "")
    while(this_res %in% res){ # if there was a duplicate, redo
      this_res <- paste0(sample(pool, char_len, replace = TRUE), collapse = "")
    }
      res[i] <- this_res
  }
  res
}

Here’s what you get:

> create_unique_ids(10)
 [1] "qxJ4m" "36ONd" "mkQxV" "ES9xW" "5nOhq" "xax1v" "DLElZ" "PXgSz" "YOWIG" "WbDTQ"

This function could get stuck in the while-loop if your N exceeds the number of unique permutations of alphanumeric strings of length char_len.  There are length(pool) ^ char_len permutations available.  Under the default value of char_len = 5, that’s 62^5 combinations or 916,132,832.  This should not be a problem for most users.

On reproducible randomization

The ability to set the randomization seed is to aid in reproducing the ID vector.  If you’re careful, and using version control, you should be able to retrace what you did even without setting seed.  There are downsides to setting the same seed each time too, for instance, if your input list gets shuffled and you’re now assigning already-used codes to different users.

No matter how you use this function, think carefully about how to record and reuse values such that IDs stay consistent over time.

Exporting results for mail merging

Here’s what this might look like in practice if you want to generate these IDs, then merge them into SurveyMonkey links and export for sending in a mail merge.  In the example below, I generate both English- and Spanish-language links.

roster$id <- create_unique_ids(nrow(roster), seed = 23)
roster$link_en <- paste0("https://www.research.net/r/YourSurveyName?a=", roster$id, "&lang=en")
roster$link_es <- paste0("https://www.research.net/r/YourSurveyName?a=", roster$id, "&lang=es")
readr::write_csv(roster, "data/clean/roster_to_mail.csv", na = "")

Note that I have created the custom variable a in SurveyMonkey, which is why I can say a= in the URL.

Categories
Beer Brewing process Homebrew Recipe

Batch 77: Zingibier VI

I first created Zingibier, a “grand cru” style spiced Belgian ale, in 2010.  With beginner’s luck, it won a gold medal in the 2010 National Homebrew Competition, and the recipe is featured on the American Homebrew Association’s website.

The beer is tough to categorize.  It’s a strong (~8%) wheat beer that uses a Belgian Witbier yeast and spices typically associated with the Witbier style: coriander, bitter orange peel, and chamomile.  It also packs a prominent ginger note, with the ginger sufficiently cooked as to not contribute heat.

This was my 6th time brewing the beer.   The recipe was on Brewtoad (now defunct) and embedded as BeerXML (now not displaying).  Luckily I grabbed a PDF copy before Brewtoad shutdown, though.

Categories
DIY Making

Improvising an AC/DC wall wart adapter

Yesterday I had a nice maker win that felt like validation for time spent building confidence in the basics of electronics.

The problem

The situation was dire.  The Medela Pump-In-Style breast pump was needed immediately.  We found the old pump but couldn’t locate its battery pack or AC/DC adapter.  It was late and local stores were closed.

The hack

On Amazon.com I found the specs for a replacement Medela adapter: output 9V, 1000 mA.  Rummaging in my to-be-recycled electronics pile, I found a 9v 1000mA power adapter from an electric pencil sharpener I’d used as a high school teacher.  But its prong was too small for the Medela.

More rummaging turned up an adapter prong that did fit, this from the power adapter to an old Asus RT-N16 router (12V, 1.25 amps).  I cut each adapter’s cord in half, stripped the wires, attached them with crimp-on butt end splices – noting that the positive wire on each pair was marked with stripes –  and voila!  The pump worked and saved the day.