My Slack Tips

You know those recipe websites filled mostly with the backstory of how they discovered this amazing cookie recipe that changes their lives, and what joy it brings their three free-spirited, yet precocious children every time they make the cookies? This is kind of like that, so scroll down to “The How” if you don’t care about “The Why”.

The Why

I love Cal Newport‘s ideas about deep work. He writes a lot about how to protect your time so that you focus for stretches measured in hours instead of minutes, with no distraction. For Joel Spolsky the same concept was “getting in the zone”:

We all know that knowledge workers work best by getting into “flow”, also known as being “in the zone”, where they are fully concentrated on their work and fully tuned out of their environment. They lose track of time and produce great stuff through absolute concentration. This is when they get all of their productive work done. Writers, programmers, scientists, and even basketball players will tell you about being in the zone.

from “Where do These People Get Their (Unoriginal) Ideas?

Joel followed that up by explaining how task switching is bad, Jeff Atwood echoed him, Rands showed us how he kept distractions at bay and years later, after Slack arrived on the scene making this problem worse, how he used Slack. It being such an important topic — especially with the boom of remote work making Slack even more common — this is my version of that Rands article, with a few years of more Slacking under the belt.

For programmers, standard Slack policy should pretty simple, flowing out of the principle of guarding “the zone” fiercely:

  1. Turn off all notifications, except for when you’re being specifically @ mentioned
  2. Specific mentions aside, only read Slack during your downtime — between meetings or while your VM is rebooting or whatever.
  3. Don’t feel like you have to read everything in all the channels. Start with your favorite channels, and go as far as your downtime will let you.

For engineering leaders though, especially manager- and architect-types, it’s not so simple. The broader your scope is in the organization, the more pertinent info you will learn via Slack discussions, and the more value there is in being in a lot of different channels, so you can glean stuff like team Aardvark being in trouble because they’ve been complaining about their infrastructure daily for a week; or you can quickly unblock Bob who can’t remember where the functional spec is for the login screen, or focus a search API design discussion between Carol and Dave, and then build rapport with the other foodies in #random-food.

At the bottom of it all, underneath all of the turtles, programming is about communication between people. The source code isn’t for the processor, but for other programmers. And every successful team is a well-oiled communication machine. The best teams are the ones that have shorthand and can finish each others sentences. You just know that a team like that — and full of smart people — is going to be off the charts with productivity.

So as an engineering leader, possibly the single most important job we have is to do everything in our power to facilitate effective communication. Which these days, includes being a Slack Jedi. But, we also need to get some actual tasks done, so we can’t let it take over the whole day (at least not every day), which means there’s a balance to be found. Below, is how I found that balance.

The How

I’ll caveat these 10 weird tricks with the fact that this is what works for me, in my situations so far, and while your mileage will probably vary, at least some of this might be helpful. So:

  1. Turn off all notification types except for the badge icon. This is specific to the MacOS desktop app, but I have it set to never make a sound, to never pop anything up, to never bounce anything, to never do anything at all, for any reason, other than make the badge counter appear over the app icon. That way, I can get in the zone when I need to, and won’t get distracted by Slack, but can still glance at it, once in a while, at opportune moments to make sure it doesn’t have 57 urgent messages for me.
  2. Low barrier to enter channels. I’ll enter most channels as I come across them, because in the bad case, I don’t read them and in the worst case, I leave.
    • Slackbot helpfully reminds you about channels you might wanna leave, also.
  3. Low barrier to create channels. Whenever a topic starts getting enough airtime, or when there’s any other reason for it to have a dedicated channel, I create that channel. The more the merrier.
    • You can go overboard, but as long as the reason for the channel is clear, go ahead and create it. You can always archive it later if it was a mistake.
    • Channels are free and an organized Slack is a happy Slack, because it is way easier to find that important conversation about search API design if you know it happened in #dev-search.
    • If you actively want to foster conversation in a channel, consider making it private. People feel safer talking in them, and the Slack stats I’ve seen bear out the fact that the large majority of messages happen in private channels or DMs.
  4. Organize the channels in groups and make them disappear. This is a fairly new feature, I think from late 2020, but you can create channel groups in the sidebar, order the groups however you want and for each group, show all the channels or just the unread ones. You can also order the channels within the group in different ways.
    • I order them by priority within each group and show just the unread ones.
    • My groups are about related topics, ordered by how important they are to my role: my team’s channels and DMs in the first group, various dev channels in the second, then management channels, field support, water cooler, etc
  5. Embrace speed reading. The human brain is great at patterns, and you can quickly pick up the importance of a conversation from some key signals like what channel it’s in, who the participants are, how long the conversation goes for, key words being repeated, emojis being used, etc.
    • In some channels, like ones about nascent projects or downtimes, I read every word carefully — but that’s very much the minority.
    • For the majority, I scroll through at a good speed, slowing down only when my spidey sense tells me I’m speeding through something worthwhile. It works well — false negatives are rare.
  6. Embrace emojis. Not only do they make conversations fun, but they also convey tone (which is super important) and, as reactions to messages, they serve as pithy replies that add value to the conversation without also adding volume to it.
    • e.g., using a check mark to indicate that you read something without indicating judgement, or a dart that their message was right on the money, or an up arrow as an upvote — they’re small, very helpful gestures that significantly improve the conversation.
  7. Use reminders. When I do go into Slack, I like to at least clear all my mentions that turn channels red. But sometimes I can’t actually service a message. Maybe that’s because it’s asking a question I have to research, and I’m in the middle of something. Or I want to make sure that I follow up on a conversation after my current meeting. Or I got an action item in that meeting that I need to do tomorrow morning. I use reminders for all of that.
    • Most of my reminders are set on existing messages that I need to do something about
    • Some of them, I create with the /remind command
    • All of them, I snooze extensively until the time is right to work on them
  8. Don’t use threads. It’s quite possibly the worst feature in Slack. Some people love them, but don’t be those people. Terrible UX aside, all threads are is a way to hide conversations for no good reason. If you want to read every word in a channel, and you’ve read them all, but then Ethan decides to start a thread off of someone’s message 50 messages up, guess what? You’ll never even know.
    • Some people use threads because they came too late upon a conversation that’s scrolled away, and want to continue it; there is a better way: share the message into the same channel, and that posts it at the bottom, with your comment attached.
    • “But I don’t want to bother everyone in the channel with my thread”. The conversation either belongs in the channel, or it doesn’t. If it doesn’t, create another channel or group DM. But there’s no reason to hide it.
  9. Nudge people toward the proper channels. Most people are trying to get their job done and aren’t so worried about keeping Slack organized, so when they start a conversation about lunch in #dev-breakfast, it’s probably because they didn’t even know #dev-lunch existed, or because they had been talking about brunch and it morphed into lunch.
    • The point being that, as is generally the case, people don’t intend to break the rules and usually just make mistakes.
    • I, as Slack Jedi, have to minimize the chance of mistakes by establishing good channel-naming conventions and keeping topics narrow, but when mistakes do happen, it’s not the end of the world, and an innocent mention that the lunch channel exists is normally the only thing that needs to be done.
    • Be super nice and soft about it, because creating anxiety about the proper channels is kind of antithetical, since it then stifles communication.
  10. Try to mark everything read by the end of the day. I don’t always clear my email inbox every day (or longer), but I almost always clear my channels, to give me peace of mind.
    • On days filled with meetings, it’s harder, but I keep up with the @ mentions and high priority channels as I can, and then quickly scroll through the less important ones, just to make sure I’m not missing anything important.
    • Yes, the Slack FOMO is strong with me, but the clearing doesn’t take long. I’m in dozens if not hundreds of channels, in a Slack with hundreds of people and — active conversations aside — I can clear a day’s worth of chatter in about a half hour, knowing then that I’m on top of things and won’t be surprised the next morning by Fiona with a “so what are we gonna do about that nasty database locking issue?”

So that’s how I stopped worrying and learned to love the Slack: by putting it in its corner and giving it attention on my terms — no more and no less attention than is beneficial.

Two More Annoying iOS 11 Bugs

So far, iOS 11 is maybe the buggiest release Apple has put out: it’s had eight updates to fix a bunch of issues, like the infamous A ⍰ bug, and while you’d think they’d have ironed most serious things out by now (11.2.1), I ran into two more, and verified them with Apple support on the phone.

I’m posting them here because I scoured the Internet for answers on them and got nowhere, which is why I resorted talking to Apple on the actual phone, and hopefully this will help you avoid doing the same thing. I’ll also update this post if and when they get fixed.

Bug the First: Edit and Share buttons are grayed out on some photos

This one is straightforward and super annoying and mind boggling: I can’t edit or share some small minority of photos. There seems to be no rhyme or reason as to which photos. The guy I talked to Apple couldn’t find the issue in their database, even though there’s at least one thread on it on (though it’s been erroneously closed).

Workaround: import the photo into an app that’ll let you re-save it. I used Camera+.

Bug the Second: On the first iCloud backup, you can’t choose what to (not) back up

Let’s say you have 5GB of Photos and you wanna do an iCloud backup of just the phone settings, because the photos are backed up already in some other way, and you got a new phone that you want to transfer your settings to. The settings themselves should be around 200MB.

Assuming you haven’t wasted money on iCloud and your limit is still 5GB, even if you have nothing in iCloud, when you turn on Backup it tells you there’s not enough space in iCloud, because it’s trying to upload your photos also.

Image result for ios 11 this iphone cannot be backed up because there is not enough icloud storage available

That’s it: you’re stuck. There is no way to get past this without buying more iCloud space.

In previous versions of iOS, you could switch off Photos, for instance, as well as iMessage and everything else, so you didn’t end up uploading the entire phone’s contents to the cloud. And you can still do this, on a backup-by-backup basis, but only — and this is the maddening part — if you already have a backup in iCloud.

Otherwise, there’s no way to control what goes up there or even see what the Next Backup Size will be.

Image result for ios 11 choose what to backup

Choosing what to back up was so easy in iOS 10, and I was so incredulous that it wasn’t in iOS 11, that I went to the Apple Store so they could show me what pathway I was missing. After that went nowhere, I brought it up with the guy on the phone, and he confirmed this is how things are now.

There’s a StackExchange question out about this, but the problem seems to be too nuanced to have made it onto Apple’s radar.

Workaround: use an iTunes backup to restore the settings onto the new phone.

I’ll update this post if and when these things get fixed.

Home Theater Setup 2016

I love big screens and I cannot lie. My first major purchase after I got my first professional job was a projector. My first major purchase after I got my first house was a new projector. And I got an even newer projector late in 2015. With it came a refresh of the whole setup.

This is now my third projection system, and after a lot of research, I feel like it’s the first that’s actually set up really well. The first projector wasn’t 1080p and I didn’t even have as much of a screen as a really uniform white wall, so… not a great setup. The second generation was a big improvement, but I didn’t do any calculations and so some people thought the screen was too big to watch from the couch. Either due to finally applying the maths, or because the third time’s a charm, this version 3.0 is very much on point, and so this post lays out what I did in excruciating detail, because good documentation is the cornerstone of process improvement.

TL;DR: I put an Epson PowerLite Home Cinema 5030UB on an OmniMount wall shelf 11′ away from a 110″ Elite Screens SK110XHW-E24. There’s VIZIO S5451w-C2 soundbar behind the screen, a Monoprice 40′ active HDMI cable going through the ceiling from an outlet to the soundbar, and another from the soundbar to the projector. Into the outlet, I usually plug in an AppleTV 4, but sometimes I plug in my PC. And because the soundbar is behind the screen, there’s a BAFX IR Repeater with the IR receiver on the screen housing, and the emitter behind it.

Total equipment cost in 2016 dollars: 3250$

Absolutely _not_ my home theater system

The Screen

I had to start with the screen because the projector needed to go into a family room attached to an open kitchen, which limited me to two walls of roughly the same size. The room itself is 11′ square, but in the direction that goes into the kitchen, the projector can go back as far as my wife would let me, which was about 15′, so that “it’s not actually in the kitchen, you know?”.

However, the bigger concern was brightness. The room is not very well light-controlled, and I need to be able to watch certain things — like football games — in the daytime. (The further back a projector is, the less bright it will be on the screen). We also have a TV facing out toward the kitchen, so putting the projector on the other wall would limit me to 11′ projection distance, but allow me to have both TV and projector running at the same time, as opposed to the screen covering the TV when it’s down. And you know what that means: simultaneous viewing of both NBC and CBS election coverage this past year. Oooooh yeah.

With the wall picked out, I calculated the screen size to buy: 11′ is 132″, and THX recommends screen sizes be 0.84 of the viewing distance, which works out to 110″ screen. (If you subtract the length of the projector itself, it works out more to like 100″, but I like screens being a bit on “bigly” side.)

For vertical placement there are two general guidelines:

  1. A rule of thumb that the bottom third of the screen should be below the viewer’s eyes, which are generally at 38″ for a seated adult
  2. That the top of the screen should be no more than 15 degrees above the viewer

For a 110″ screen, which has a height of 54″, the one-third that’s supposed to be below the viewer’s eyes is 18″. That leaves 36″ above the viewer’s eyes, and at an 11′ viewing distance, the top of that screen would be 15.3 degrees above the viewer, so that works out perfectly.

Screens generally have a 2″ black border all around, so that makes the entire screen 58″ tall, and brings the one-third that’s below the eyes to 20″. If the eyes are at 38″, that means the screen’s bottom edge is 18″ off the floor, and the top edge is 76″ off the floor. Unfortunately for me, there was a 96″ tall door frame on part of that wall, so I had to get a screen that had an additional 24″ of black border at the top, so I could essentially hang the housing up that much higher than where the actual white part of the screen needed to be.

With that added requirement, basically the only option I had was the the Elite Screens SK110XHW-E24 for 460$, which was a 110″ screen with 1.1 gain and 24″ drop. I’m not sure if I’d know a bad screen if I saw one, aside from obvious flaws, but I definitely don’t mind this one, and it goes up and down like a champ.

The Projector

Once I had the screen picked out, I started looking at the projectors rated highly on Three stood out:

  1. Sony VPL-HW40ES – 2500$, editor’s choice for 2014
    • According to its calculator, for a 110″ screen with gain of 1.1, placing it at 16′ away would mean using a 1.07x zoom and the image brightness would be 20fL; 13’9″ for 22fL, 11’10” for 24fL
  2. Panasonic PT-AE8000 – 1850$, editor’s choice for 2015
    • According to its calculator, for a 110″ screen with gain of 1.1, placing it at 14’10” away would mean using a 1.47x zoom and the image brightness would be 20fL; 13’9″ for 22fL, 13’1″ for 24fL
  3. Epson PowerLite Home Cinema 5030UB – 2300$, editor’s choice for 2013
    1. According to its calculator, for a 110″ screen with gain of 1.1, placing it at 16’4″ away would mean using a 1.41x zoom and the image brightness would be 20fL; 15′ for 22fL, 13’9″ for 24fL

After some internal debate, as you may have read above, I went with the Epson, for a few reasons:

  1. I liked the previous Epson PowerLite Home Cinema 6100 I had
  2. It had the most reviews of any of these on Amazon (139 reviews, 4.5 stars)
  3. Great zoom and brightness

I also looked at the 5030UBe, which has the interesting wireless HDMI feature, but apparently it has connectivity issues, especially with gaming, so it’s not worth the extra price tag if you can’t reliably use it.

The Speakers

One of the great problems with front projection systems — if not the greatest — is sound. The virtually universal advice is that you need to get a good receiver, run all sound through that, and just run an HDMI output from the receiver to the projector.

Well, I’m a minimalist, I only have two inputs for the big screen (Apple TV and my PC), I’m not an audiophile by any means (stock TV speakers sound great to me) and on a philosophical note, I absolutely will not buy yet another gadget to make up for the fact that projector manufacturers just can’t seem to bring themselves to make simple Audio Out ports be a thing on their devices.

Throw in the annoyance of running speaker wire, and when I saw a well-reviewed Vizio soundbar on sale, and it had wireless speakers, I bought it. It’s the 2014 model, so it was old when I got it, and not even available new anymore. But, I love it.

At first, in an effort to avoid a run of cabling, I tried to have HDMI only go to the projector and to get the audio to the soundbar via Bluetooth from my AppleTV and my PC. But while music worked fine, video absolutely did not: the last syllable to many words would get dropped out, and it was just unwatchable. So I regrouped and ran HDMI to the soundbar and then another HDMI cable from the soundbar to the projector. The soundbar picks off the audio and sends the video to the projector, which means I just have two HDMI cables running through the walls and ceiling and it works beautifully.

The subwoofer is wireless and hangs out hidden away in the TV stand. Two wires come out of the back of the stand and go behind the couch and up to the rear speakers.

The Accessories


For the first leg, from outlet to soundbar, I needed a 40′ cable, which meant I needed an active one, that deals with attenuation over that long of a haul. Monoprice is where I usually get cables, and this was no exception: they have 40′ active HDMI cables for 35$ and after one year, I have zero complaints. But do note that they are unidirectional: you have to have the right end in the soundbar or projector. I got two of these, one for each leg.

Now, a word about installation: for my second generation system, I waited for a cool November day, ran the cables in the ceiling myself, and I have the scars to prove it. Literally: I sliced my knee on an exposed bracket in the attic to what seemed like the bone, and had to superglue it shut (to avoid going to the ER and having them do the same). For this third generation, I was going to repeat history. Then I realized that due to the position of the soundbar in the house, I couldn’t even figure out how to physically get a cable there, much less how to stay conscious for that long in the Florida heat, that in an attic, approaches Venus conditions. So I hired a professional home theater outfit and both cringed and thanked the seven gods while seeing what they went through. Worth every penny.


Second, in an effort to make things look nice, I mounted the soundbar behind the screen. I already had to mount the screen housing about a foot off the wall, so that the screen would drop over a set of drapes, so I had clearance back there. And really, I had nowhere else to put the thing. To my great dismay though, on testing, I found out that with the screen down, the infrared from the soundbar remote control would only work if I walked over and pointed it behind the screen and up to the soundbar. Which really sucks to do when you’re trying to enjoy a movie but it gets loud enough to wake the baby — and the baby is literally the last person you want waking up when you’re trying to enjoy a movie.

To get around this, I bought a BAFX IR repeater for 28$. You stick a small IR receiver on the projector screen housing, plug that into a box that’s mounted and hidden behind the housing, and then plug in an IR emitter that points to the soundbar. Boom! You’re now a light bender.

This particular gadget is a little overkill for this purpose because it could control up to 8 devices and I just needed one, but I couldn’t find anything good for less money anyway.

The repeater is _not_ pretty

Future Improvements

So that’s it for now: pretty simple setup, great results, mostly thanks to the calculations and planning. But nothing’s ever perfect, so while I’m happy with version 3.0 of the Jiva Projection System, I’m definitely planning on upgrading to 3.1 and 3.2 when I “get the time”.

First, I’d really like to actually mount the rear speakers up on the wall someday. Right now, they’re just on the floor behind the couch. Honestly, this is because (again, I’m the opposite of an audiophile) I find them more distracting than anything. Whenever I hear a distinct “rear” sound, I don’t think “oh wow, how realistic”, but more “WTF was that noise?!”. Which means that a lot of the time, surround sound is just off. But, maybe it’s like beer and I just have to acquire a taste for it so I can hang with the cool kids.

Second, I really need to put a power outlet behind the projector. There’s an HDMI outlet there that the nice home theater people put in, but they weren’t licensed enough to run power behind the wall. So now there’s this power cord that just runs down the wall, that a toddler can and would definitely like to tug on. And yeah, I could just drill two holes in the drywall and run the power cable behind it, but that’s not up to fire code, and insurance is a bitch. So I’m currently trying to either work up to running high voltage wire myself, or getting an electrician to do it. And I really don’t want to do the latter, because while delegating is par for the course at work, actually doing stuff is what makes me wake up in the morning.

Third, I probably should get a fancy Harmony remote, because between the projector, soundbar, TV, cable box, Apple TV and homemade DVR, we literally have half a dozen remotes. But, 95% of the time, the Apple TV remote is the only one we use. And I just can’t bring myself to spend 150$ or more on something that’ll get used once a week and only very marginally improve my life. But, I’m keeping it on the backburner as a birthday wishlist item, for when I become the man who has everything, so that I don’t wake up to find myself entombed alive in a cemetery in Mexico.