Floobits News

Floobits Atom: Fixing Bugs (in Atom)

02 Aug 2016 by ggreer

Our Atom package has been improved significantly since it was originally announced. Several of these improvements were thanks to fixes in Atom.


Lodash v4.0.0: Not All Bugs are Created `isEqual()`

25 Jan 2016 by ggreer

On January 13th (two weeks ago), Lodash v4.0 was released. After waiting a week (for others to shake out the bugs), I branched our repos, bumped the lodash dependency in them, and fixed compatibility issues. I tried lodash-migrate, but it wasn’t particularly useful. lodash-migrate works by running all lodash functions twice (once with the old version and once with the new), then logging if the results are different. That means any code with side effects will trigger a false positive or just break. Instead, I read the v4.0 changelog and reviewed every incompatible call in our codebase. (This wasn’t as hard as it sounds. There were only a few dozen.) After reviewing, testing, and manually poking around after deploying to staging, I deployed the new release to prod. Success!

…or maybe not.


New Feature: Atom Chat

20 Dec 2015 by ggreer

A few months ago, we launched Floobits for Atom. Since then, we’ve been fixing bugs and adding features. Ever since the initial release, users have been asking for the ability to text chat. Well, it’s here.

Floobits Chat in Atom

Thank you, everyone, for being patient!


New Feature: Request Code Review

02 Dec 2015 by ggreer

If you use our web-based editor, you may have noticed a button in the upper-right with the label, “Request Code Review.”


New Feature: Custom Highlight Colors

09 Nov 2015 by ggreer

If you use Floobits with IntelliJ, Atom, or our web editor, you’ve probably noticed that users’ selections have have different colors. You might also have noticed that these colors can’t be changed. If you get unlucky, your colleagues might have the same color. Then it’s hard to tell who is editing what.


Bad Base64, a Not-so-Tricky Bug

02 Nov 2015 by ggreer

Last week, I explained how we found a bug that caused Node.js to crash when given invalid base64. That post was already rather long, so I didn’t explain how one of our back-end services was getting invalid base64. Today, I satisfy everyone’s curiosity.


Why is Node.js Crashing? A Deep Dive into a Tricky Bug

26 Oct 2015 by ggreer

In early September, we started seeing one of our backend services exit with the following error:

2015-09-10_23:28:11.75413 node: ../src/node_buffer.cc:226: v8::MaybeLocal<v8::Object> node::Buffer::New(v8::Isolate*, v8::Local<v8::String>, node::encoding): Assertion `(data) != (nullptr)' failed.

Typically, Node.js exits with a JavaScript stack trace. This error was at a lower level. Node.js was dying because of an assertion in its Buffer code. At worst, creating a new Buffer should throw an exception. This was a crash. This was a Node.js bug.


Developing Atom Packages, Part 2: So Much Potential, So Many Bugs

14 Oct 2015 by ggreer

Atom has improved drastically since its first release, but it’s still not perfect. While building our Atom package, we ran into quite a few bugs. Some have been fixed, but many still persist. Previously, I discussed Atom and its progress. That post addressed larger, broader issues. This post gets into specifics. Lots of specifics.


Developing Atom Plugins, Part 1: On the Bleeding Edge

12 Oct 2015 by ggreer

Back in February of 2014, GitHub announced their new editor: Atom. We’ve followed Atom since it went public, and recently developed a Floobits plugin for it. What follows are our impressions from the experience.


IntelliJ IDEA Plugin Development and Java 6

27 Aug 2015 by bjorn

Based on my experience of the last couple of years writing editor plugins for Floobits, I can say that IntelliJ IDEA’s plugin system is phenomenal. Extending IntelliJ IDEA is particularly stellar. Unlike most editors, IntelliJ’s plugin API gives you access to everything. The IDE architecture is very well designed. The core is open source and easy to follow. And IntelliJ plugins have all of Java’s libraries available. It is quite amazing.


Sublime Text's Plugin API: It's Python... Sort Of

17 Aug 2015 by ggreer

“Sort of” is such a harmless thing to say… sort of. It’s just a filler. Sort of… it doesn’t really mean anything. But after certain things, sort of means everything. Like… after “I love you”… or “You’re going to live.”

Demetri Martin

Sublime Text is my editor of choice. It’s powerful, flexible, and accessible. But as much as I like it, Sublime Text has one glaring problem: its plugin API is Python… sort of. That “sort of” is responsible for much frustration and annoyance.


Introducing Floobits Pro

12 Aug 2015 by bjorn, ggreer, and kansface

Today, we are proud to introduce Floobits Pro. Floobits Pro lets you to hire other developers to help you out on your project. Whether you just need another pair of eyes to double-check a function, or an expert to track down a race condition, we’ve got you covered.


New Chat Feature: Floobot

29 Mar 2015 by ggreer

If you chat in workspaces or our organization chat, you might notice that pasting URLs can cause a mysterious “Floobot” user to describe them. Don’t be startled, this is expected behavior. Similar to showing images in chat, Floobot helps you to get information about a URL without having to click on it.


IntelliJ IDEA User Interface Updates

24 Mar 2015 by bjorn

We’ve listened to your feedback and made some big improvements to our IntelliJ IDEA plugin.


On Moving to io.js

23 Feb 2015 by ggreer

Last weekend, we migrated our production environment from Node.js to io.js.[1] This move may seem premature, but we had several reasons for switching.


New Feature: Follow Individual Users

09 Dec 2014 by bjorn

We have added a new feature! You can now follow changes from specific users in a workspace. Previously, it was only possible to follow everyone in a workspace. While useful, this can be distracting and hectic. If more than one person is editing at a time, you’re liable to get jumped back-and-forth between files. Some of our users requested a more fine-grained approach. Now we’ve added this to all of our editor plugins and our web-based editor.


Floobits Now Supports Neovim

04 Nov 2014 by bjorn

We’ve made a Neovim-compatible plugin. It deprecates our Vim plugin. We have updated all of our documentation and references to Vim to reflect this. The reason for this change is simple: Neovim offers the asynchronous architecture required to make a real-time collaborative plugin painless.


Building an Office in Software

22 Jul 2014 by ggreer

We use Floobits to develop Floobits, so we encounter many of the same pain points as our users. One problem we’ve had is chat. Often, we want to be able to communicate without necessarily working on the same code. Our first solution was to designate one workspace for chatting (both text and video). This worked, but the experience was definitely sub-optimal.


Dear Network Admins, Stop Blocking Non-HTTP/HTTPS

17 Jul 2014 by ggreer

One of the biggest problems we’ve had at Floobits is network filtering. Many network administrators block outbound connections that use protocols besides HTTP/HTTPS. It’s not uncommon for this to happen in schools, large companies, government offices, and hotels. This is troublesome.


Error Reporting in Floobits

02 Jul 2014 by bjorn and ggreer

Automated error reporting is an oft-overlooked way to improve software. Linters, tests, QA, and pairing can all reduce bugs, but they don’t answer the most important question: Do users encounter errors? Internal testing simply can’t imagine (let alone discover) the myriad ways in which users will break your code. Detecting and reporting errors gives feedback that can find gaps in your testing and QA. Error reporting also makes customers happier. Users love it when we contact them, apologize for an error they ran into, and mention that we’ve shipped a fix.


Screen Sharing in Floobits

05 Jun 2014 by bjorn

Floobits is very useful for working together on code or the command line, but sometimes we want to share something else on our computer. We might want to share debugger output in IntelliJ or discuss profiling information in Chrome’s Web Inspector while trying to track down an issue on Floobits.com. We use Floobits to build Floobits and what we had just was not enough sometimes. Often we need a way to share screens, and our customers probably do too.


A Tale of Two Newlines: Carriage Returns, Line Feeds, and JavaScript Hair-Pulling

27 Apr 2014 by ggreer

Text files; they’re the lowest common denominator. Practically anything that runs on electrons can understand them. There’s just one tiny wrinkle: newlines.


Security Update: Heartbleed OpenSSL Vulnerability

08 Apr 2014 by ggreer

Yesterday, OpenSSL published a security advisory. While the advisory itself sounds rather benign, the implications of being able to read 64kB of server process memory are horrifying. Heartbleed.com describes them in detail. That memory can contain session secrets, form POST data (including passwords before they’re hashed), and even the server’s private key.


New Features: WebRTC Video Chat, Nicer URLs

13 Nov 2013 by ggreer

WebRTC Video Chat


Dropping Windows XP for Better Transport Security

09 Nov 2013 by ggreer

If you still use Windows XP, you might have some trouble visiting Floobits.com.


Bjorn Tipling works at Floobits!

16 Oct 2013 by ggreer

Bjorn Tipling is talented, intelligent, and driven. In addition to his thorough knowledge of JavaScript and CSS, he has an eye for design and usability. Most importantly, he’s a pleasant person to work with. He’d never tell you all that, of course. He’s too humble to brag about himself.


Adding setTimeout to Vim

17 Sep 2013 by ggreer

At the end of the previous post, Matt and I finally got the bright idea to patch Vim. Both of us had experience contributing to open source projects, but we knew very little about contributing to Vim. To maximize our chance of success, we decided on a few guidelines:


Adding Realtime Collaboration to Vim

16 Sep 2013 by kansface

When we started Floobits, we thought we’d be able to write one editor plugin per month. Like most estimates, ours were ridiculously optimistic. So far we’ve averaged 3 months per editor. Vim has taken longer than average.


Workspace Status Images

02 Sep 2013 by ggreer

Similar to services such as Travis-CI, we’ve added status images to Floobits workspaces. This makes it easy to let others know when you’re working on something.


What We've Been Working On

17 Aug 2013 by ggreer

We’ve been working tirelessly to improve Floobits. If you haven’t tried Floobits in a while, you should have another look. Over the past couple of months we have:


Floomatic: A Headless Floobits Client

02 Aug 2013 by ggreer

We made a new tool: Floomatic. Floomatic synchronizes a directory with a Floobits workspace. Like our plugins, Floomatic is open source software. Check it out on GitHub.


Begin Transmission

25 Jul 2013 by ggreer

This site is where we post things related to Floobits. To keep current with our goings-ons, subscribe to our Atom feed or follow us on Twitter.


About Floobits

Floobits lets you collaborate on code like you're in the same room. Think Etherpad or Google Docs, but in Sublime Text, Vim, Emacs, or IntelliJ.

If you're interested, sign up.