Using Element as an IRC client

Like many who work in open source communities, IRC is a key part of my daily life. Its simplicity has made it a mainstay. But the lack of richness also makes it unattractive to many newcomers. As a result, newer chat protocols are gaining traction. Matrix is one of those. I first created a Matrix account to participate in the Fedora Social Hour. But since Matrix.org is bridged to Freenode, I thought I’d give Element (a popular Matrix client) a try as an IRC client, too.

I’ve been using Element almost exclusively for the last few months. Here’s what I think of it.

Pros

The biggest pro for me is also the most surprising. I like getting IRC notifications on my phone. Despite being bad at it (as you may have read last week), I’m a big fan of putting work aside when I’m done with work. But I’m also an anxious person who constantly worries about what’s going on when I’m not around. It’s not that I think the place will fall apart because I’m not there. I just worry that it happens to be falling apart when I’m not there.

Getting mobile notifications means I can look, see that everything is fine (or at least not on fire enough that I need to jump in and help), and then go back to what I’m doing. But it also means I can engage with conversations if I choose to without having to sit at my computer all day. As someone who has previously had to learn and re-learn not to have work email alert on the phone, I’m surprised at my reaction to having chat notifications on my phone.

Speaking of notifications, I like the ability to set per-room notification settings. I can set different levels of notification for each channel and those settings reflect across all devices. This isn’t unique to Element, but it’s a nice feature nonetheless. In fact, I wish it were even richer. Ideally, I’d like to have my mobile notifications be more restrictive than my desktop notifications. Some channels I want to see notifications for when I’m at my desk, but don’t care enough to see them when I’m away.

I also really like the fact that I can have one fewer app open. Generally, I have Element, Signal, Slack, and Telegram, plus Google Chat all active. Not running a standalone IRC client saves a little bit of system resources and also lets me find the thing that dinged at me a little quicker.

Cons

By far the biggest drawback, and the reason I still use Konversation sometimes, is the mishandling of multi-line copy/paste. Element sends it as a single multi-line message, which appears on the IRC side as “bcotton has sent a long message: <url>”. When running an IRC meeting, I often have reason to paste several lines at once. I’d like them to be sent as individual lines so that IRC clients (and particularly our MeetBot implementation), see them.

The Matrix<->IRC bridge is also laggy sometimes. Every so often, something gets stuck and messages don’t go through for up to a few minutes. This is not how instant messaging is supposed to work and is particularly troublesome in meetings.

Overall

Generally, using Element for IRC has been a net positive. I’m looking forward to more of the chats I use becoming Matrix-native so I don’t have to worry about the IRC side as much. I’d also like the few chats I have on Facebook Messenger and Slack to move to Matrix. But that’s not a windmill I’m willing to tilt at for now. In the meantime, I’ll keep using Element for most of my IRC need,s, but I’m not quite ready to uninstall Konversation.

#info as a measure of meeting productivity?

It all started with a tweet:

That started a discussion between Matt and Karsten Wade about how to measure whether or not a meeting was productive. Matt suggested a count of “#action”, “#agreed”, and “#info” MeetBot commands.

about how to measure whether or not a meeting was productive. Matt suggested a count of “#action”, “#agreed”, and “#info” MeetBot commands. At this point, I had to jump in. “#info”, I felt, did not really belong in a measure of whether a not a meeting was productive.

My take is that #info should be used primarily as a reminder of things that have already been brought up on the appropriate mailing list. It serves as context for what’s going on in the discussion and should not be used to bring up new ideas.

Fedora teams particularly, and many open source teams generally, are too geographically distributed for IRC meetings to be where new items come up. Ideally, even #agreed should be mostly a formal recognition of the consensus on the mailing list. When contributors span the globe, it is nearly impossible to find a time when everyone can meet, making asynchronous communication essential.

This lines up with my philosophy about meetings in general. It’s better to share information ahead of time so people can evaluate it before the meeting. This saves time, since less explanation is required during the meeting, and it gives people the opportunity to more rationally consider their position on the topic.

Matt also suggested that #info is a way to call out things that were brought up as new in a meeting. To the extent that it’s better than not calling out new things, I agree. However, as Karsten suggested, perhaps #idea is a better.

Each team will have, to some extent, its own culture and its own rules for coming to decisions. The important thing is to make sure that contributors who can’t regularly attend IRC meetings still have the opportunity to participate in the decision-making process.

Is Twitter just a crippled version of IRC?

Back in May, Karsten Wade posted “microblog format/interaction is a crippled, radically transparent form of . Otherwise, seems to serve same purposes.”  I don’t know if that’s his own conclusion or if he was quoting someone else, but I disagree either way.  The other evening, I had a related discussion with a friend.  Her take was that Twitter is a less-featureful version of Facebook status updates.  I don’t believe that either, but it seems to highlight a problem with Twitter: it’s utility isn’t readily apparent.

Twitter easily supports one-to-one and one-to-many interaction.  Many-to-many is possible, but requires some searching and/or client configuration.  That makes it a rather poor replacement for IRC.  IRC is also more real-time than Twitter is necessarily.  Although Twitter is often used for real-time events, it doesn’t have to be.  The big difference between IRC and Twitter is that IRC is self-contained.  This is a point I made several times during the Mario Marathon, when people in chat felt they were being ignored.  IRC can be very active, but no one outside the channel will notice.  With Twitter, the message gets spread each time someone posts.  If a topic begins to trend, that can pull in even more participants.

There’s a better case for saying Twitter is just like pulling the status updates out of Facebook.  Several people I know post Facebook status updates with their Twitter accounts, so it seems reasonable.  I’d agree that they are mostly the same, but there are a few differences.  The primary difference is that Facebook more easily allows threaded discussion, whereas a tweet stands alone.  Neither way is necessarily better; in certain circumstances one is preferable over another.  There’s also the lack of passive support.  In Facebook, you can “like” a status with impunity.  On Twitter, to express support, you must re-tweet and therefore own the statement.

To me, there’s a clear use for Twitter.  That’s not the case for many people, and until they can figure out a use, they simply won’t use it.

How helpful is helpful enough?

I have a confession: I am a compulsive favor-doer. When someone asks for my help, I have a hard time saying “no”. Since there’s only so much Ben to go around, this gives me a tendency to over-commit.  I recognize this as a problem, but I can’t help myself.  It’s in my nature to be helpful.

So how helpful should I be?  My wife works at the county library, and last week a gentleman was checking out a book about Linux.  In the course of small talk it came up that he’s trying to dual-boot Ubuntu and Windows 7.  Angie mentioned that I run Linux at home and he wrote down his phone number and e-mail address for her to give to me.  I’m not mad at her for it, she hasn’t committed me to anything, but it got me wondering.

My initial reaction was to e-mail the guy and introduce myself.  After all, I’m a nice guy and that’s what I do.  Then I realized that this would probably make me his go-to support.  I don’t mind helping people, but an open-ended commitment isn’t exactly what I’m in the market for.  I already do a fair bit of free work for strangers.  I answer questions in the #fedora IRC room, on LinuxForums.com and on Serverfault.  Additionally, I write this blog, and I write documentation for the Fedora Project.  Maybe I don’t do as much as others, but I’m definitely contributing back to the community.

So maybe, I thought, I should set a rate and charge him for help.  That seems like too much effort, though. I’m not really interested in doing enough consulting/contract work to make it worth the trouble of filing the appropriate paperwork.  Besides, I have such a hard time asking for a reward for being nice.

Where does that leave me then?  I have no idea.  In the meantime, I’ve gone with the head-in-sand approach.  I’ll just pretend like this never happened.  Perhaps someday I’ll be able to solve this quandary.

Setting up a new Mac

As part of my new job, I got a shiny new 13″ MacBook Pro.  Even though I’m quite a Linux fanboy, I really enjoy the quality of the hardware and OS X. However, it isn’t perfect.  There are a lot of applications that I like to have available.  Since I have nothing better to talk about, I figured I’d list them here:

  • Adium — one of the best instant messenger clients I’ve ever used.  It has support for just about every major IM protocol except…
  • Skype — I don’t really use it for IM, but it’s great for audio and video calls.
  • Firefox — I prefer it to the Safari browser that ships with OS X.  It happens.  And with that comes…
  • Xmarks — a browser plug-in that syncs bookmarks.  It comes in very handy when you use multiple computers.  So does…
  • Dropbox — allows you to synchronize arbitrary files between multiple computers.  I mostly use it for configuration files (e.g. .bashrc, .screenrc)
  • VirtualBox — sometimes you actually need to use another OS to do some important task (like play Sim City)
  • DOSBox — is good for playing some of the older games that I like
  • Chicken of the VNC — I’ve played with several VNC clients for Mac, and this one is the best.
  • iTerm — hands-down better than the default Terminal.app
  • ZTerm — a program to make serial connections.  I used it a fair bit in my old job, I don’t anticipate needing it much in my new job.
  • Colloquy — an Internet Relay Chat client
  • VLC — a media player that will play just about anything
  • Grand Perspective — a program that shows a graphical representation of disk usage, allowing you to find the files that are chewing up all the space on your hard drive.