phiffer.org

Dan Phiffer Dan Phiffer is an Internet enthusiast based in Troy, NY

Never Use Futurawww.subtraction.com

Khoi Vinh on the book Never Use Futura:

I’m so happy to see this new book by designer, writer, and historian Douglas Thomas all about the typeface Futura which, it’s worth noting, predated Helvetica by three full decades—and it looks as beautiful and timely as ever.

Futura is probably my favorite typeface that ships with macOS by default. It’s one of the few bundled with an OS with more weights than just Regular and Bold.

Link

Grid Correctionsvimeo.com

Grid Corrections shows, as Curt Meine puts it, “places where theory and reality meet.”

Geoff Manaugh, writing for Travel + Leisure:

De Ruijter soon learned that these kinks and deviations were more than local design quirks. They are grid corrections, as he refers to them in a new photographic project: places where North American roads deviate from their otherwise logical grid lines in order to account for the curvature of the Earth. You could drive out there your whole life, de Ruijter realized, and not realize that certain stop signs and intersections exist not because of eccentric real estate deals, but because they are mathematical devices used to help planners wrap a rectilinear planning scheme onto the surface of a spherical planet. In order to avoid large-scale distortion, the Jeffersonian grid—shorthand for the founding father’s 18th-century geometric vision of six-square-mile township parcels, intended to guarantee equal and democratic land-distribution nationwide—is occasionally forced to go askew.

Link

How gerrymandered is a district?mike.teczno.com

Michal Migurski is working on a project for measuring legislative gerrymandering. Redistricting shenanigans can be detected from current, historical, and proposed legislative districts.

PlanScore is doing two things to address partisan gerrymandering.

We are creating score pages for district plans to provide instant, real-time analysis of a plan’s fairness. Each district plan will be evaluated for its population, demographic, partisan, and geometric character in a single place, with backing methodology and data provided so you can understand the number. We’ll publish historical scores back to the 1970s for context, current scores of proposed plans for voters and journalists, and dynamic scores of new plans for legislative staff who are designing tomorrow’s plans.

We are also assembling a collection of underlying electoral data from sources like Open Elections, elections-geodata, and other parallel efforts. Our goal is to provide valid scores for new plans in any state. As we await the outcomes of gerrymandering challenges in Wisconsin and North Carolina, voters and legislative staff in other states are wondering how to apply new ideas to their own plans. In 2020, everyone will have to redraw their maps. PlanScore will be a one-stop shop for district plan analysis.

Link

The past is our burdenmapzen.com

Aaron Cope on Who’s On First (which I also work on) and the responsibility that comes with naming things.

We have been blind to the fact that the First Nations were already here living on these lands long before the European settlers arrived. It is important to recognize that we have not been passive in our blindness but brutally deliberate. First out of malice and then later out of negligence and more recently out of shame.

Link

“We thought we were gonna change the world”medium.com

From Mike Monteiro’s One person’s history of Twitter, from beginning to end:

Their goal was giving everyone a voice. They were so obsessed with giving everyone a voice that they never stopped to wonder what would happen when everyone got one. And they never asked themselves what everyone meant. That’s Twitter’s original sin. Like Oppenheimer, Twitter was so obsessed with splitting the atom they never stopped to think what we’d do with it.

Related: more Twitter-related news from the Civicist.

Link

ftrain at twentywww.ftrain.com

Paul Ford continues to be an inspiration, even if ftrain.com isn’t as active as it once was. You really should go read the archives if somehow you haven’t explored them before.

20 years is arbitrary nonsense. A blip. Our software is bullshit, our literary essays are too long, the good editors all quit or got fired, hardly anyone is experimenting with form in a way that wakes me up, the IDEs haven’t caught up with the 1970s, the R&D budgets are weak, the little zines are badly edited, the tweets are poor, the short stories make no sense, people still care too much about magazines, the Facebook posts are nightmares, LinkedIn has ruined capitalism, and the big tech companies that have arisen are exhausting, lumbering gold-thirsty kraken that swim around with sour looks on their face wondering why we won’t just give them all our gold and save the time … In the spirit of this thing I won’t be editing this paragraph.

Thanks for sharing what you know!

Link

Escape from distractionland

I recently added some scripts to my work laptop designed to help me break out of my reflexive “cmd-T, T, enter” keyboard habit. That keyboard sequence loads up my Twitter timeline in a new tab before I’ve even realized what’s happening. I’m untraining myself out of habitual social media grazing by enforcing a rigid schedule.

Based on Mike Rugnetta’s excellent write-up, I basically hijack my Mac laptop’s /etc/hosts file on a daily interval from 10am to 6pm, with a one hour lunch break at noon. I’ve modified his approach slightly, since I tend to edit my /etc/hosts file regularly for web development, and can’t be bothered to maintain two separate copies of it. Instead of swapping between two different hosts files, I use sed to modify the file in place.

In my hosts file I have a couple lines that look like this at the beginning of the day:

# distractionland
# 127.0.0.1 twitter.com mobile.twitter.com api.twitter.com instagram.com mltshp.com

The rule starts the day commented out, so up until 10am it’s still open season on my wandering attention. Notice that you can stack up a bunch of hostnames after the IP address, there’s no need to make a separate line for each one. I recently deactivated my Facebook, so I don’t need that one in the mix any more.

My first script /usr/local/bin/disable-distractions blocks access to Twitter, et al by uncommenting the line:

#!/bin/sh
sudo sed -i .bak -E 's/^# (127.0.0.1 twitter.com.+)$/\1/' /etc/hosts

The script creates a backup file hosts.bak and then removes the comment like this:

# distractionland
127.0.0.1 twitter.com mobile.twitter.com api.twitter.com instagram.com mltshp.com    

The second script /usr/local/bin/enable-distractions comments the line back out, unblocking the websites:

#!/bin/sh
sudo sed -i .bak -E 's/^\s*(127.0.0.1 twitter.com.+)$/# \1/' /etc/hosts

The -i flag for sed is for “inline” editing, and the -E activates extended regular expression syntax. The edit command uses the form 's/.../.../', which basically reads as “search for … and replace it with …” The first … is a regular expression matching the line, and the second … either prefixes the line with # or removes the #.

I use the launchd daemon to call these scripts using four .plist files according to a daily schedule:

  • 10am: disable-distractions
  • 12pm: enable-distractions
  • 1pm: disable-distractions
  • 6pm: enable-distractions

Note that the computer must be running at each transition time, or the scripts won’t fire. But I can always just invoke one or the other from the command line if needed.

The launchd configuration is handled by four .plist files saved in my /Library/LaunchDaemons folder. Once everything was set up I activated them like this:

sudo launchctl load /Library/LaunchDaemons/org.phiffer.workday-start.plist
sudo launchctl load /Library/LaunchDaemons/org.phiffer.workday-end.plist
sudo launchctl load /Library/LaunchDaemons/org.phiffer.lunchbreak-start.plist
sudo launchctl load /Library/LaunchDaemons/org.phiffer.lunchbreak-end.plist

I’ve found this “one simple trick” has been effective at managing my novelty-seeking brain. Each time I absent-mindedly load up a blocked page I take a deep breath and close the tab. For now I’ve chosen not to block my feed reader, so I’m keeping up with the weblogs I subscribe to much more regularly than I did before. Keep on posting, friends!

I’m as mad as hell, and I’m not going to take this anymore!

On September 5, 2016 I won the Listserve lottery. In case you haven’t heard of it, the Listserve is a one-message-per-day email newsletter. Each day a single person from the 21,000+ subscriber list gets to send a message out to the entire list. Here’s what that invitation looks like:

Hey there, you’ve been chosen to write to the rest of The Listserve. You have 48 hours to respond with the following:

Name:
Email*:
Current Location:
Subject Line:
Email body:

*this can be blank, but you will not receive responses

We’re excited to read what you have to say!

—Your friends at The Listserve

GUIDELINES:

What can I send?
– Text — letters, numbers, symbols
– No links, images, HTML, Javascript, etc.
– 600 words max

What can I write?
– Anything! Well, almost anything… We reserve the right not to send your message if it threatens the spirit of the list — hate speech, etc.
– If you send something overtly controversial, or (self-) promotional, you must provide your name and email information and why you believe in what you are endorsing — you cannot be anonymous. Spam is unappreciated.

The following are random suggestions for you from the Listserve community:

  1. Motivational/life tips should be kept to a minimum. Those are a dime a dozen. Instead, tell me a story, give me a reason to want to know more about you.

  2. Your subject line is everything. I choose which listserve emails to ready solely based on the subject line. No pressure, though :)

  3. Tell me a story. Write a poem. Did you meet somebody interesting? Do something outrageous? Experience something spooky?

By submitting an email to The Listserve, you are agreeing to license it under the Creative Commons Attribution 3.0 Unported License, and you agree that you have sufficient rights to be able to grant such a license.

Oh, by the way, sometimes there is a queue of emails, so don’t worry if you don’t see your email go out right after you submit it. We’ve got it, and unless we contact you, it’ll be going out soon! Thanks!

I thought about what I would do, how I would spend my 600 words. I emailed friends and collaborators to bounce ideas off them. I thought about what it meant to get so many people thinking the same thing at approximately the same time.

Around this time I was also working hard on a side project, an SMS-based group chat server that resembles what the very first Twitter service looked like. This software was still very much a work in progress (it still is!). I decided I would announce my new social software and effectively launch it via the Listserve.

Here is my Listserve message, sent September 15, 2016:

(TL;DR—this one is kind of an experiment, scroll to the bottom for the punchline.) There’s a scene from the movie Network (1976), where TV news anchor Howard Beale has a series of epic on-air rants about the uncertain state of the world. He urges his viewers: “I want you to get up now. I want all of you to get up out of your chairs. I want you to get up right now and go to the window, open it, and stick your head out and yell…”

Then he says the line maybe you’ve heard—“I’m as mad as hell, and I’m not going to take this anymore!” He stands up, repeating the line with increasing intensity. The movie cuts to a shot of an apartment complex, and people start opening up their windows. It’s hard not to feel a sense of excitement when they start hollering out their windows, it almost feels like it’s really happening.

But I’m not so interested in Howard Beale, or the “mad as hell” speech itself—some of which is uncomfortably similar to the populism of a certain American political candidate. What’s really striking to me is how our use of broadcast technology has changed since the ’70s. All those people hearing the same message from their TVs, all at once. And with the ethical weight of Watergate-era news journalism. It kinda feels like we’ve lost that capability with DVRs, social media, and Internet streaming.

I mean, we also have all this new stuff—so many new (relatively) inexpensive capabilities that let more of us reach many more people. Today’s Internet mega-viewerships surely outnumber 1970s TV, but it’s also interesting how many smaller in-between scales we have now. The Listserve is on that spectrum, somewhere between a receiving a postcard and browsing through trending hashtags.

I’m curious: what’s the present-day equivalent of sharing a common acoustic space, like those apartment-dwellers in Network? Who are we all? Where do we live? What could we achieve if we acted in concert somehow?

Instead of yelling a slogan out of our windows (basically a 1970s retweet), I have a couple other ideas.

  • Let’s meet up IRL! We could select a handful of central locations and convene at a common time to build stuff/get weird/stare at each other awkwardly/make art/plan to overthrow the government/etc.
  • What about a backchannel? I’ve been working on a new project that I’m eager to try out. It’s a group chat, kind of a pared-down, SMS-based Twitter.

(Insert here: the part where I pitch my project, Small Data. It’s a data cooperative I’m starting up with some friends, a collectively run alternative to cloud-based-advertising-ware.)

Just reply to this email and I’ll let you know when I figure out how this meetup(s) thing will go. If you’re feeling adventurous and want to try out the backchannel—that part is already working! Send an SMS message to (646) 846-4777 and you’ll be able to pseudonymously chat with other people who sign up.

And for my money, Ned Beatty’s boardroom speech in Network deserves to be every bit as famous as the “mad as hell” rant. Look it up if you haven’t seen it!

Dan Phiffer
dan@phiffer.org
California

If you were reading closely, you may have noticed the span of time between when I won (September 5) and when my email actually got sent out (September 15). This was a very stressful time for me. Each day I hoped against hope that they would delay my message a little longer, so I could work more on my SMS software, and get it ready for an influx of new users.

The email went out. I thought well, here we go!. People started replying, and they were into the idea. I got messages from old friends I hadn’t been in touch with. I got a very kind message from Josh Begley, one of the co-creators of the Listserve.

This one was amazing to receive:

Hello Dan
I’m Asare from the republic of Ghana.
I’m really inspired by you listserv today. Thank you ver much.

Hope to establish a friendship between.

I loved getting all these replies, but I realized with a sinking feeling that the SMS messages weren’t getting delivered. The server had recorded outgoing messages as sent, but they were not actually getting sent. But I could see the incoming SMS messages, and the list of phone numbers started stacking up in my MySQL table.

Oh shit.

That’s when I panicked. What if it really shits the bed? What if I start SPAMMING all of these people with SMS messages? I disabled the SMS service and hunkered down with the code. Meanwhile, I replied to each incoming email reply as best I could.

And then, life just kind of bumped my weird project down the list of priorities. I can’t even remember what specifically happened, but I know I was traveling and focused on other work responsibilities. The end result is that I just kind of … didn’t follow up.

And so here we are. It’s just before 10:30pm PDT on Email Debt Forgiveness Day (a useful holiday invented by the Reply All podcast).

I am posting this here to explain what happened to the many adventurous Listserve subscribers who took the time to reply, or send an SMS message.

To all of you, I want to say: I’m so sorry!

But I also think this idea still has legs! Maybe it just needed some more time and motivation to actually be workable. I have ran some more test runs with the SMS software since then, and it’s still not perfect, but it is starting to feel stable enough for actual use.

So much has happened since last September to warrant being mad as hell. I don’t know what it means to connect with a distributed group of mostly-strangers. But I think it could still be an interesting cross-section to mobilize to … do something.

If any of this resonates with you, please get in touch! The SMS service (fingers crossed) should actually work this time. I will try to do better with all the emailing and such.

And happy EDFD!

The world is weird and wonderful!mapzen.com

A tile mural at the 36th Street subway station in Sunset Park.

I wrote a post over on the Mapzen blog that I think came out nicely.

The territory means different things to different people. Depending on your perspective, the kinds of data that are captured about places may be missing, insufficient, or downright hostile. Who’s On First is opinionated—like all datasets, no collection is truly unbiased—but we hope to be aware of when we’re asserting our own opinions about places and create a framework where a polyglot of place-feels will be welcome.

The multifaceted maps we make simply reflect the weird and wonderful territory they represent.

I’m going to be adapting this as a talk at csv,conf. If you’ll be in Portland May 3, come out and say hello. (Bring your CSVs!)

Email to a former student

Last night I got an email from a former student, and figured I’d publish my reply. Maybe it could be helpful to you!

Hey Professor Phiffer,

I hope all is well with you. Its A— from CCNY. I took a JS course with you a few years ago. I hope that this is not a bad time to reach out to you. I’m reaching out to you in regards to programming and becoming a fully fledged software engineer. I see that now JS is one of the most important languages that are being used today, and I would love to master it and programming concepts in general.

However, I’m realizing that there are a lot of flaws to the way that I approach programming, such as how to solve a simple problem. I realized it during a technical interview that I’ve had a few months back.

I know that this is out of the blue, but I’m wondering if there is any way to accurately learn how to properly program? I believe that all of these years I’ve been doing something wrong despite building out lots of websites. I was heavy on declarative languages such as HTML and CSS but never fully understood imperative programming languages such as JS and other real programming languages. Would you have any advice as to how to properly go about this?

I also truly don’t know what I’m missing as a programmer because I would love to get a frontend engineering job. Thank you for listening, and I look forward to your response Professor.

Sincerely,
A—

Hey A—,

I can totally relate to this! I think landing your first junior developer gig is among the hardest things to pull off working in tech. I crashed and burned in 3 or 4 of my first interviews, just completely red-faced and speechless, unable answer some “basic” tech question (especially the trivia kind).

The thing to realize is that you probably don’t want those jobs anyway! I bet they’re awful places to be a junior dev, they’d work you raw and not give you professional development or space to grow. So don’t get too discouraged if it doesn’t work out at first.

If you want it to happen, it will happen with time, the job market is in your favor here. It’s just a matter of finding your way to the right people. This is a largely a networking thing, and that’s probably one of the reasons grad school is still a good investment despite the crushing debt that’s often involved.

And by all means learn JavaScript, it is a super relevant tool, but it is just one tool in the toolbox. HTML and CSS are 100% real programming languages, don’t let anyone tell you otherwise. I find that mastery of CSS and the DOM is way more valuable than being a hotshot with a flavor-of-the-month JS framework.

Taking programming seriously is helpful for improving your software, but it’s also a great way to gain the confidence to interview well. Some of that just comes from doing it repeatedly, and learning from other people’s code (read the jQuery source, read the annotated underscore.js). There are also a lot of soft skills that have helped me along the way: send emails to people (you are already doing this!), buy the O’Reilly books, subscribe to blogs, listen to podcasts, get familiar with the “lore” (see: The Rise of Worse Is Better, The Jargon File, Macintosh Folklore).

Realize that some of all that (and my advice) will be somewhat outdated. You are going to have to invent a lot of the shit yourself that doesn’t exist yet, because our profession is still in the dark ages. Architecture and urban planning are decades more advanced than where we are, you are by no means arriving too late to the party.

Write your own blog posts, embrace the beginner’s mind, start going to BrooklynJS (or ManhattanJS, JerseyScript etc.) meetups—apply to be a speaker, don’t be intimidated that your talk ideas might be too basic.

And hopefully all of that doesn’t sound too overwhelming!

Dan