Fireside 2.1 ( Tech Done Right Blog Mon, 10 Jul 2017 09:00:00 -0500 Tech Done Right Blog en-us Tech Done Right Newsletter, July 7th 2017 Mon, 10 Jul 2017 09:00:00 -0500 db9ba056-fb5e-45b8-aef4-06ba4ea959e7 Tech Done Right Newsletter for July 7th, featuring ActiveStorage, Test Debugging Tools, the TouchBar, Perl in Latin and Klingon, WinAmp, Old Programmers, and a couple of cool tools. July 7

If you'd like to get this in convenient email newsletter form, sign up at

Five Things Give Or Take Two

This Week In The Rails Ecosystem

This week the total number of Rails downloads, as counted by RubyGems, hit 100 million. To put that number in perspective, that’s almost one-third of a download for every human being in the United States.

DHH and Rails core celebrated by announcing ActiveStorage, a new Rails sub-gem that abstracts the details of saving a file to cloud storage. Mike Gunderloy dug in to the details with some blog posts, part 2, part 3, and part 4. Looks interesting. I still wish that Rails had some kind of process where interested parties (in this case, the maintainers of relevant gems) could make suggestions.

I’ve been going on in this newsletter a little bit about headless chrome, and here’s Tim Petricola with the first description I’ve seen of how to use headless chrome with Capybara that seems easy enough to use. Basically, it registers headless chrome as a Selenium browser, so it can be called from RSpec or Rails system tests. I still feel like this can be simplified, though.

Also in the, “there’s a good chance these tools will be mentioned in Rails 5 Test Prescriptions” file, here’s Keith Pitt of Buildkite with 5 interesting scripts they built to debug flakey tests. Among the five, they show how automatically dumping the test database on failure, and splitting the log file by test. This stuff seems like it’d be really useful fixing issues in a Continuous Integration environment. I’d love to see these get bundled into a gem.

Reach Out And TouchBar

You don’t always choose the hill you fight on, and for some reason the TouchBar on new MacBook Pros has become my hill. As I wrote a few months ago, I persist in liking the MacBook Pro and I like the touch bar, and I’m about 75% certain I like it more than I would like a touch screen on a laptop. (I say this because when I use my iPad to write with an external keyboard which I do a lot, the touch screen actually doesn’t help much. The touch screen is nice when reading or browsing the web though).

Anyway, Michał Matyas posted a tip for using BetterTouchTool with the TouchBar which is different from how I use BetterTouchTool with my TouchBar. Michał has replaced the entire TouchBar system-wide and is using BTT to tie scripts to show system status on the touch bar.

That’s certainly a thing you can do with the TouchBar, and it’s actually pretty neat. But I like actually, you know, touching the TouchBar. What I’ve done is add touch support to two apps that I use all the time — Atom and iTerm2. For Atom, I basically took about six keyboard shortcuts that I’d use all the time if I could remember them, and created BTT buttons with a bright color and an emoji so I can see and distinguish them quickly. For iTerm, I created keyboard shortcuts for common snippets like rails s using iTerm’s key mappings, then used BTT to put them on the TouchBar. It makes me happy, and I actually use them. (I still think more apps could use color in their TouchBar settings…)


We often talk about programming languages without really thinking about how the main language of programming is English. Artem Chistyakov starts this post with how he learned BASIC in Russia without knowing English, and goes on to untangle programming languages and written language in an interesting way. Honestly, it’s an amazing post and will make you think differently about code.

One thing it made me think of was not just the way English vocabulary affects programming but the way English grammar does. About fifteen or so years ago, Damian Conway wrote Perligata, an attempt to make Perl look more like Latin than English. Not just in the keywords, but in the entire structure. In English, word order determines part of speech, but in Latin, part of speech is determined by a suffix added to the word. So, in regular perl you might say $total = part but in Perligata, you could say totalo da partum, but more to the point you could also say partum da totalo or totalo partum da, and it would all work the same. It all becomes a complete overhaul of everything you think about programming and language. (Oh, and it’s also been done for Klingon.)


My MP3 collection started in 1998 with about six CDs that I ripped and stored on the desktop computer I had at work. Eventually, I talked my employer into getting me a bigger second hard drive, ostensibly for projects, but really for my MP3s. Winamp was the most popular player, though I liked one that had better random playlist support and whose name I could not remember right now on a bet. Winamp was hugely influential, though, especially because it’s easily customizable UI led to a lot of creativity. Amazingly, Winamp is still around, and Ars Technica explains why and how.


I present without comment this Josh Marinacci essay on why you should hire older programmers.

Past podcast guest Claire Lew suggests five questions you can ask to reveal if a company has a healthy culture. Which reminds me of Liz Abinante’s advice on sniffing for culture smells. Honestly, so many people I interview waste the opportunity to ask questions.

Follow Up

If you liked the story by Steven Johnson on SETI that I posted to last week, Johnson wrote a little bit of a commentary track with some material that didn’t make the essay.

On The Podcast

This week is the six-month anniversary of the podcast, and I’m going to post some quotes from early episodes that you may not have listened to:

From our very first episode on feedback and trust:

Jessie Shternshus: And so, before people get used to getting feedback, we'd give them something really, really outlandish. Like your partner came in to work today and he's not wearing pants. How would you tell them that? You could also just brainstorm like the top 50 world's worst ways to give feedback.

From Episode 2 with Brandon Hays on careers:

BRANDON: There's a logarithmic salary curve to what we do because the value that you produce as a software developer continues to go up as you progress in this industry. But for some reason, the salary curve tends to level off as soon as you pay developers enough to not have to talk about money because we hate that stuff.

From Episode 6 on with Andy Slavitt:

ANDY: I got there October 24th. I didn't have a conversation with my wife until, I think November 12th or 13th. When I called her, what I said to her was, "I think I've made it worse.”… We're not going to work smarter. We're going to work hard and what I mean by that is we have 6000 defects and we have in effect, 36 days so I know how many defects we need to get out in a day

Check them all out. And tell your friends. And leave a review on iTunes, all that good stuff.

Coming next week: Doc Norton talking about Agile teams and Escaping Velocity.

Below the Fold

Four Mac or iOS tools that I use all the time, that you might not know about:

  • Soulver: My favorite calculator style app, it’s really more of a hybrid between a calculator and a spreadsheet. I use this for all kinds of things that a spreadsheet is a little bit of overkill for. Mac and iOS.
  • PDF Expert. Also Mac and iOS, a replacement for Preview on a Mac that also lets you edit, and is as easy as anything I’ve used at stitching multiple PDFs together.
  • On iOS, I also use Liquid Text to read and annotate PDFs
  • I use Sequel Pro nearly every day as a GUI viewer for MySQL databases. When I’m using Postgres, I use Postico, which works, but isn’t as nice.

See you next week,


Tech Done Right Newsletter, June 29, 2017 Fri, 30 Jun 2017 10:00:00 -0500 404d3c7e-d283-495a-b7c9-279ede1ffe9c Tech Done Right newsletter for June 29, 2017, including articles by Jessica Kerr, Ryan Biggs, Stephen Johnson, and Justin Searls. Noel rants about iPads and Vim. Five Things Give Or Take Two

A lot of developer related stories this week.

Developers Gonna Develop

Here are couple of essays about making teams more successful. Jessica Kerr, of the Greater Than Code podcast, starts off by noting the tension between individual performance and team performance. Then she describes steps you can take to move from one-developer “hyper performance” to better team performance. This is a nice addition to some of the issues Sarah Mei discussed on the podcast. Apparently onboarding is attracting scholarly research, as shown by this Harvard Business Review article that suggests that making new employees feel socially accepted is the most important part of the onboarding process.

Developers Gonna Develop Part 2

In the meantime, developers are continuing to build weird things. For example, Caffeine, is a live in-browser implementation of Squeak Smalltalk that you can just run in your browser. They are pitching it as a way to live-code your browser experience. Look, I love Smalltalk, I love books about Smalltalk. I even was involved in this once. And in-browser Squeak seems weird to me. Good weird, I guess, but still weird.

Speaking of unusual code, Rails has added support for a mutable global state object recently. Ryan Biggs begs to differ. I mostly agree with Ryan here, though I suspect that like many Rails features, it won’t get much use outside of Basecamp.

Developers Gonna Develop, Part 3

In a more tutorial realm, here’s a nice post by Mario Cardosa about Value Objects in Rails. Come to think of it, this should juxtapose with the last paragraph — the global state is something DHH likes that a lot of people are skeptical of, but value objects are something a lot of people like that is the kind of Object-Oriented structure that DHH has been skeptical of.

I’ve been trying to decide which JavaScript testing framework to feature in Rails 5 Test Prescriptions, and this comparison of Jest and Mocha by Grzegorz Ziółkowski was very helpful. In the end, though, it made me think that Jest is too tied to Node to be the best choice for R5TP.

Science Friday

I thought traveling with a laptop, iPad, and Kindle was bad enough, but if you are a scientist who travels with really weird stuff, like, say 3-d printed rodent genitalia, then your TSA experience is… interesting. The scientists interviewed seem surprisingly happy to get to do unscheduled science outreach.

Finally, here’s a big, classic long read from Stephen Johnson in the NYT Magazine on SETI, entitled Greetings E.T. (Please Don’t Murder Us.), a sentiment I’m sure that many of us can get behind.

On The Podcast

Our newest episode features Maci Peterson, the founder of a startup called On Second Thought, and Table XI’s Alicia Drucker. It was an interesting conversation, despite some audio glitches. Some quotes:

MACI: Quickly, we realized as we spread to 190 countries that people needed the ability to undo tons of other messages like peer-to-peer remittances that they send via like M-Pesa or social media posts … or even attorneys telling us, "I've actually sent the wrong contract to the wrong client."

MACI: That Monday, I learned that I'd been invited to pitch and through a series of miracles that included riding in cars with strangers, very light hitchhiking and flying standby, I made it to the competition. Like I said, out of the 20 companies, we won first place.

MACI: [The focus on inclusivity has] Been a huge advantage. I mean, granted, it doesn't put me in a place at privilege and it still requires me to work twice as hard in order to be considered half as good or good enough. That is still true however, I would say that there is, at least a projected, conscious, desire to make Silicon Valley a more inclusive and diverse place, and also just see diverse entrepreneurs succeed.

Below the Fold

I have two related rantlings this week, both to some extent based on Justin Searls’ essay on using the iPad as a full-time computer, which is great and you should read it. I’ve used my iPads a lot over the years, but the only time I’ve had to use one as my primary device was almost exactly seven years ago. I wrote about it then, and it’s interesting to see what has and hasn’t changed.

iPad as primary device, 2017

My conclusion in 2010 was that I was able to do about 75% of my work on the iPad pretty easily (not coding, at the time my work site had dedicate paring workstations, so that wasn’t an issue). That was before split screen, before a lot of apps were out, and before there was much support for keyboards on the iPad. I’m pretty sure I could do almost everything I do daily now, including coding, on an iPad with the likely exception of recording the podcast. Though some things would probably be difficult. And I’d miss Deckset.

Almost all the things that bothered me in 2010 have been addressed. For example, I spend a lot of time in the 2010 post (and in the actual 2010, to be honest) complaining about the sorry state of iOS text editing apps. That’s a niche that has been saturated with high quality offerings, I have at least five really good ones on my iPad, and I’m definitely missing a few. And I do a lot of writing on an iPad these days.

The Vim Rant, patent pending

That wasn’t actually what I wanted to talk about from Justin’s essay. I wanted to talk about how he was coding. Justin, if I read it correctly, is connecting to a server (technically his desktop, but it could be anything) then using Vim to code from a terminal.

Last time I tried coding on an iPad was when I was trying to make the iPad a full-service writing station for the money book, and I used a weird combination of Textastic, Working Copy (which is an iPad git client), and Coda for access to a server. It was awkward, though I bet in about six months it gets a lot better via somebody setting themselves up as a SFTP server in the new iOS 11 Files app.

The point is that I didn’t even briefly consider using Vim. Because I basically don’t consider Vim to be the answer to any question other then “Do I have to use Vim?”.

I’m sure many of you use Vim, and you can probably do more with arcane key macros before 9:30 than I do all week. That’s fine. Enjoy.

I have a few points about Vim that are well-honed.

  • If you were in a product meeting about designing a text editor and you suggested something like Vim, you’d be laughed out of the room. It’s not that attractive, the interface is not intuitive in any way, it has modes, which most UX design tries to avoid. It’s arcane, and very much a product of the limitations of display technology when it the original vi was created.
  • That said, it’s survived for a long time, and is even beloved, which I think means that our understanding of user experience for experts is not very far along. Vim has a learning curve measured in months if not years if not decades. But if you are going to keep using it, it pays off. It was pointed out to me that it’s rare to believe that a tool is going to be around long enough to justify that time investment. I also think there’s a “real programers use Vim” thing you here sometimes, which I really, really dislike.
  • I tell people I don’t use Vim because I don’t like using a programmer editor for prose, which is true, and therefore I like editors that use standard Mac keyboard shortcuts, which is also true. But it’s incomplete. Basically, I found that learning the key commands took up space in my brain that I didn’t want used, and that even with the key commands, Vim was optimizing for a part of the process that I felt didn’t need optimizing, and wasn’t making it easier for me to read and understand the code. Again, I know that many of you out there disagree and that’s great, enjoy your key commands.

See you next week,