Firefox is starting to roll out Firefox Hello to more users. Hello is a videochat, very much like our own Talky.

In the WebRTChacks analysiѕ, I described it a small button to your browser that generates a call URL which you can share.

A question by the palava.tv team got me thinking:

It would be awesome if the Hello button could launch a palava tv call

What does it take to add such a button to the browser? It turns out to be surprisingly easy. In Firefox, this requires about 15 lines of code. In Chrome, it’s even less. Opera just works by repackaging the Chrome extension.

Continue reading »

&yet is a highly distributed team, with yetis all over North America and Europe. To keep in touch, we use Talky on a daily basis for impromptu discussions among our teammates. Unfortunately, Talky doesn’t quite work for our all-hands meetings because “full-mesh” media sharing only functions well when the number of people in the conference is small. To change that, we are working on an improved version that we’ve tested up to 20 people, internally known as Talky 2.

Last Friday we had another weekly update meeting and Talky 2 would not work - all the videos remained black. Switching from Chrome to Opera resolved the problem for a while, but at some point every participant in the conference had their browser crash. We had to switch back to Hangouts. Which was embarrassing.

Continue reading »

Recently, several members of our team participated in a week-long business simulation called Enterprise Week for a local school district. It was featured in an earlier post here and was also described in one of the December dispatches for our online community &you.

The week culminated with a touching and personal closing talk by former Enterprise Week participant, illustrator and yeti, Jaime Robles. We are very proud to now be able to present Jaime’s talk to you.

Jaime Robles 2014 Pasco School District's Enterprise Program from &yet on Vimeo.

Continue reading »

The web platform has evolved. Browsers are no longer just document renderers, they have become the most capable and ubiquitous application runtimes on the planet.

Right now, the most common term for applications that use the browser as a runtime is “Single Page App”. I’ve even heard people pronounce it like the word “spa”. If you’ve done this, we can probably still be friends :)

Personally, I’ve always disliked the term “single page app” because it fails to describe what my applications are. The fact that the app consists of a single initial HTML page is not what makes it interesting or unique. In fact, often times it’s plain wrong. A well-built “single page app” updates the URL as the user navigates around to different “pages” within the app, keeping their place if they refresh or share that URL. Perhaps at one time the “single pageness” was its defining characteristic, but these days the term makes it sound more like you’re building an application that doesn’t respect the URL and thus breaks the web.

Continue reading »

I’ve been always drawn to bringing structure where it was lacking, systematizing information and defining processes. Not sure if that’s a designer’s trait (along with a particular fondness of symmetry) but it continues to carry through all the work I do. One of the ways I utilise it is by creating standardized approaches for others to follow.

“Best practices”

When writing software we often look for guidelines on how to do it in the most effective and standards-compliant way. We search for patterns we can follow. Standards are obvious signposts leading us to valid code (which is why we call them standards in the first place). The other way of approaching this problem is to look for so-called best practices.

Continue reading »

Node.js doesn’t have the same problems as the platforms that you’re used to—it has entirely new problems!

The landscape is so different, and there are so many libraries, packages, and approaches that it is tough to navigate. There are just too many opinions on the “best approach.” Even the io.js fork of Node (which we’re excited about and hope gets upstreamed to Node soon) is a good example of this unique ecosystem.

Ask 12 Node.js developers which is the best ORM to use, or how structure your HTTP handlers, and you’ll get 15 answers. On these and hundreds of other topics, there is no consensus, and there are numerous approaches and philosophies to choose from. Many a developer has followed their instincts and gut feelings, only to make a mess.

Continue reading »

When launching our Talky videochat service almost two years ago there was one thing missing: the TURN server.

WebRTC creates peer-to-peer connections between browsers to transfer the audio and video data, but sometimes it needs a little help to establish a connection. The TURN server is the thing that helps here: it is deployed on the Internet and relays data for two clients that fail to establish a direct, P2P connection (thus avoiding the dreaded “black video” problem). TURN is generally considered one of the hard topics when people start doing WebRTC and crucial to running a successful service.

Continue reading »

So there you are, scrubbing bugs in your open-source project. Replying to the people who opened the tickets. But have you ever thought about who your actual audience is when you’re interacting with your user base?

Your whole audience

Just who are you talking to when you’re interacting with users? When you get right down to it, it’s not just that person, it’s everyone watching. It’s the next person who comes along and reads that ticket. It’s the person way in the future who is deciding whether or not to even use your software.

Continue reading »

Underscore.js is the single most depended on module on npm.

It’s impressive work from Jeremy Ashkenas, who also created Backbone.js and CoffeeScript, all hugely popular projects.

But how many of the modules that depend on underscore only use it for one or two methods? I’d venture to guess quite a few.

Conceptually, it makes sense. Why would you go implement your own debounce method when there’s one in Underscore that works great and has clearly been put through its paces. Just install Underscore, be happy, and go fry some bigger fish!

Also, if you end up with 3 different versions of Underscore installed in an app that’s just going to run using Node.js on a server somewhere, it’s unlikely to cause any problems. node’s require mechanism and npm handles that quite nicely for us.

Continue reading »

We believe WebRTC is one of the most important technologies to hit the web in many years. There is a significant opportunity for WebRTC to help deliver on the promise of the open web—but for communication and collaboration.

In several of our colleague Henrik Joreteg’s talks the past couple years, he’s said, “WebRTC needs more Open Web hackers!” It’s very true.

But WebRTC is much more complicated than other browser APIs that web developers deal with.

It seems, from our vantage point, like a large portion of the users of WebRTC have not been Open Web hackers.

Continue reading »