Letterpress Digest

I had the opportunity to chat with Jordon Berry of Letterpress Digest a few weeks ago. It was nice to take a break from the hectic workday to reminisce about the early years of Boxcar Press. This month marks our 19th anniversary, and, if you’re interested, you can hear some highlights of those years on the Letterpress Digest podcast.

Insta

My Instagram feed started as a family album for me. I posted photos of Stella reading her first book and Jasper writing his first computer program not for your enjoyment, but because if I were to squirrel away the photos of these moments I’d have a hard time finding them again later. I never was good at scrapbooking or journaling, but the visual nature of Instagram has worked well for me.

I was coding a website earlier today when I needed a break. As I walked around the building, I pulled up the Instagram feed and saw this interesting post from St. Brigid Press:

The thought hurt. This Instagram is not being a cozy family album anymore. Despite all the years printing (and coding), letterpress hasn’t come so far from the imminent extinction threat that existed at Boxcar Press’s founding. 18 years later, we’re still worrying about the equipment being locked up, unused, dusty, and relegated to a museum?

In 1998 I was worried the presses would be junked as scrap metal. I suppose in 2017, the greater concern is that the presses have become so precious that they’re simply hard to acquire. They’re locked away and inaccessible to young entrepreneurs. I’m seeing signs that there are fewer new students of letterpress: signups at our sites are slightly down, letterpress classes at book arts centers are running fewer sessions, memberships in trade organizations appear to be stagnating.

I didn’t realize at the time that Andrew Steeves penned this comment four years ago, but I shot off a half-intelligible comment as if he wrote it this week (and needed an immediate response): “@gaspereaupress Swing by @boxcar.press [the next] time you’re feeling that way :)”

Yes, our presses are in running steadily in the new year, flush with invitation orders. And yes, my knee-jerk comment sounds confident and bold. But the business and brashness can’t hide the fact: Andrew’s concern is as well founded in 2017 as in 2013 as in 1998. If the industry lacks a steady stream of entrepreneurs to keep letterpress commercially relevant, we should all be concerned.

Heidelbot

Last night I gave a geeky presentation at the Wells College Book Arts Center. Before I had kids I spent a lot of time in Morgan Hall, but had fallen out of touch in the years since. Walking in the front door for the first time in six (or so) years was surprisingly emotional. It felt good to be back.

My talk was entitled “Type High Tech” and delved into how Boxcar Press has embraced software development to support its letterpress printing. In that spirit, I present the Heidelbot. All tweets are assembled by a (print-savvy) Twitterbot that pulls language from Heidelberg press manuals at Letterpress Commons:

Hope you enjoy the printing manual of the future!

Credit: Cheap Bots, Done Quick!

Less Ink, More Impression

From Clifford Burke’s Printing Poetry:

The magic secret is: Less Ink, More Impression
This was also the advice given to me verbally by Phil Gallo of the Hermetic Press after he saw some of my blotchy early printing. These four words stuck with me over the years: solid printing advice and also words to live by.

A few years ago, Boxcar Press published an article in which letterpress printers explained the advice of their mentors. Art Larson described Harold McGrath telling him the same message (in reverse) around 1979: “More Impression, Less Ink.”

I searched both of these phrases to see if they had a common origin, and Google’s index only contains five entries currently. A sad fate for such important words! Here’s another record to ensure this important message doesn’t get lost for any new letterpress printer: “Less Ink, More Impression.”

Bounds for Duals in a JuMP Model With the Gurobi Solver

It’s rare that I come across a problem whose solution is, as far as I can tell, nowhere on the Internet. I’m posting this here in case someone else, like me, wonders: after solving a linear optimization problem using JuMP with the Gurobi solver in Julia, what are the upper and lower bounds to the duals (shadow values)? If that’s why you’re here, at least you know you’re not alone!

There is a method to access the duals themselves in Julia’s Gurobi interface: simply run getduals(constraint). There is no similar method to extract the upper and lower bounds for these duals, however. They exist within Gurobi constraints as the attributes SARHSUp and SARHSLow, respectively. After poking around the Julia Gurobi interface source code, I suspected I could access the bounds directly via some of its methods.

Sure enough, if jumpModel is a JuMP LP model with continuous variables, here is how to access arrays of the constraints’ dual upper bounds, dual lower bounds, and slack:

# extract the raw Gurobi solver
grbmodel = getrawsolver(jumpModel)

# count its number of constraints
cs = num_constrs(grbmodel)

# extract the attributes' values as arrays
Gurobi.get_dblattrarray(grbmodel, "SARHSUp", 1, cs)
Gurobi.get_dblattrarray(grbmodel, "SARHSLow", 1, cs)
Gurobi.get_dblattrarray(grbmodel, "Slack", 1, cs)

The function get_dblattrarray is part of the Gurobi interface that returns an array of attributes. We’re simply spoon-feeding it the raw solver, the property name, the index of the first constraint, and the number of constraints. You can also use this technique to expose the underlying model’s variable attributes, in which case the fourth parameter should be the number of model variables.