Posts

TIL: CSS Firefox Gotcha with background-position

I’ve been erroneously what I thought were CSS properties for years:

background-position-x and background-position-y

It turns out, these are not and never will be supported in firefox. https://bugzilla.mozilla.org/show_bug.cgi?id=550426

So, if you declare a background-position somewhere, and then want to subsequently override the position on just one axis, they recommend that you use CSS variables var(bgX) and var(bgY).

This is a <sarcasm>great</sarcasm> workaround, since Firefox is the only browser to support CSS variables at all.

Bummmer.

Chat in the Workplace

Every time I think about ‘group chat’, I remember mIRC; hanging out in chat rooms on creepy IRC servers with people misrepresenting every aspect of themselves, sharing useless if not damaging information (very fond feelings from my youth). As a developer however, group chat offers a ton of real value to our team, that occupies an important space between e-mail and passive document storage.  For the last few months, we have experimented with several different [free to us] options including IRC chatrooms on public networks, to Google Hangouts (multi-user Google Chat), and more recently HipChat, which is a hosted group chat from Atlasssian with both a web client and native clients for all Operating Systems and the major mobile platforms (HipChat is free for rooms up to five users, and we have exactly five users.) Some of the ways in which we use our room throughout the day include:

  • informal message passing without vocally interrupting our shared space (ex., ‘Did anyone see that Skryllex gif on reddit’?)
  • less informal message passing which requires back and forth between more than two members, where e-mail isn’t always convenient (what does your config for this look like?)
  • providing a record of when a particular change, error, etc. occurred in order to look at the potential relationships between such events (NewRelic reports an error on the shared server 20 minutes after a deploy, two minutes after a commit to Gitlab; now we can click the link and instantly get connected with the offending code)
  • great way to keep a list of links for the good of the team
  • posting of common configurations (here’s my eRequest for RailsConf)
Here are some very brief impressions of my experience with these options as we have used them.

IRC

Internet relay chat relies on an ages old, decentralized network of servers providing rooms that clients connect to, generally using a chat clients. It has had a huge resurgence in the Open Source community, offering both a space for developer collaboration and real-time support for hundreds or thousands or projects, large and small. Many different software clients exist, from basic and modern, to command-line based, to in-browser options, and a few clunky mobile offerings. Without running a chat network, use of IRC is done in a public-network, though some degree of protection can come out of password protection of rooms. While not-trivial to configure services to send information to IRC channels, it’s certainly possible, though in our trial, we didn’t bother because the channel was infrequently fully attended, perhaps because of a lack of ‘modern’ touches. The upsides of IRC; options, options, options, and FREE. The downsides; it feels twenty years old in most cases, and doesn’t provide any real security.

Google Hangouts

Google’s ubiquity among members of our team makes it the most natural option for us to use a medium for message passing. Unfortunately, much of the value that comes out of group chat is through automated messaging from applications and servers, and Google doesn’t go an inch out of their way to make this easy (though many large hosted services such as Github will integrate). Our use of Google  was great for publishing links and quick real-time communication when the team was out and about, but did not serve as a timeline for our work. The upsides of Google: most of the team was already logged in, voice and video chat for free, and easy mobile access. The downsides: no easy way for us to send custom information, chrome extension is a bit of a nuisance.

HipChat

HipChat currently provides best mix of useful features, integration points and availability. Some features, such as URL’s getting automatically scraped for information displayed with them, inline HTML content and easy file sharing address the shortcomings of IRC. Additionally, we can easily grant guest access if we need to, for instance to collaborate outside of our team The downsides of hipchat: Atlassian’s terms aren’t friendly for OSU (which means we have to observe not sharing anything remotely sensitive or proprietary), the service isn’t free beyond five users, one person can’t be a user in different ‘networks’.

Other Options

There are a zillion other hosted or open source options which provide value; among developers, the 37 Signals product Campfire provides a great web-based solution similar to Hipchat with numerous service integrations, but no official native clients.

Group chat provides our team with a very convenient medium to communicate things which are not ideal for e-mail, but for which it makes sense to ‘push’ information. It’s an active medium which can be easily tuned out when needed without feeling like anything important will be missed, but the infinite history of the room provides a great archive for certain kinds of information. I suspect we’ll keep HipChat alive for now, until a better solution (or an acceptable one from a larger unit) becomes available. Feel free to leave any insights about ways of using group chat, or if you know of any service offerings we should explore.