Archive for the ‘Uncategorized’ Category

Announcing Orbited 0.7.0

Friday, October 10th, 2008

Today marked the release of Orbited 0.7.0, along with the first 0.7.0 tutorial over at CometDaily. Thanks to everyone who helped with the release.

A couple of new features include:

  • Embedded Stomp broker via MorbidQ. Now you put stomp:// urls in the [listen] section of the configuration
  • Reworked startup api for easier use with outside projects like WillowChat.
  • Improvements to the IRC client (via js.io)
  • Increased stability for Connection handling when the page is reloaded navigated away from then returned to
  • Various small bug fixes
  • See the commit logs and timeline

Django + Orbited 0.6.x Tutorial

Friday, September 26th, 2008

Dark Porter posted a tutorial on using Orbited with Django. Michael Carter linked to it on Comet Daily, and said:

Obviously it makes sense to migrate to separate processes for a high-concurrency production deployment, but this method is perfect for developing applications and deploying small to medium instances.

The tutorial uses a different technique than the STOMP method I described. Dark Porter takes advantage of the fact that Django and Orbited are both written in Python, and puts everything in one process, including a custom threaded TCP server.

Heartbeats Handle Dropped Connections and Timeouts

Wednesday, September 17th, 2008

The 0.6.1 release of Orbited adds a feature called heartbeats that improves dropped connection handling and also decreases reconnects due to timeouts. Dropped connection handling is important because it affects the user experience of a web application. Heartbeats are better than the previous solution of reconnecting at a fixed interval because they do a better job at a lower network cost.

Dropped Connections

A web application can’t prevent most dropped connections. It can only handle them in the best manner possible. Dropped connections are a problem because unless there’s some notification mechanism, the browser won’t automatically try to reestablish the connection. Furthermore, the user will think that the application is operating in a connected state, and won’t realize that they are missing messages.

(more…)

Integrating Orbited with Web App Frameworks

Sunday, September 7th, 2008

The simplest Orbited architecture is to have Orbited proxying messages between the TCP server and the browser using socket connections. Many people, however, choose to use web application frameworks like Django or Ruby on Rails because they helpfully abstract away certain cumbersome tasks. You can easily connect Orbited and frameworks using message queue brokers, and the 0.7 release will feature an integrated basic broker.

(more…)

Contributor License Agreements

Tuesday, August 19th, 2008

Michael and I have recently formed a nonprofit corporation to manage Orbited and related projects such as js.io. One of the main reasons for the nonprofit is so that contributors can sign a Contributor License Agreement (”CLA”) with an appropriate legal entity. The CLAs will protect users of the open source software projects managed by the nonprofit, and are a good reminder to think about intellectual property.

(more…)

Talk at OSCON 2008

Tuesday, July 22nd, 2008

A couple of members of the Orbited team are in Portland for the 2008 OSCON. Michael Carter and Jacob Rus are giving a talk on Wednesday about the recent developments with sockets in the browser and how they’ll make web app development easier and faster. Michael has written two articles for Comet Daily that describe how to use the new HTML5 WebSocket spec:

Michael and Jacob will be around after the talk to chat and answer questions.

Update: We’ve scheduled a Comet BoF for Thursday 8p-9p in room E146. Stop by to chat about anything related to Comet.

Comet for the Non-Web Programmer

Wednesday, July 16th, 2008

the revolution
Orbited 0.5 enables a software developer to create robust, performant network applications for the web. If you know one of the common web frameworks, or are already comfortable writing PHP, for example, just download the Orbited client for your preferred language and you’re good to go. However, if you’ve never done any web work before, or are fed up with the traditional approach, you can just bypass the HTTP hacks altogether and instead write your internet application the way folks have been writing network software since the 70s - with a socket.

(more…)

Socket Proliferation

Saturday, July 5th, 2008

Since discussing browser sockets, I’ve been doing some research on other implementations. For some time now, David Davis has had a browser socket with his Sprocket.Socket implementation.

(more…)

New Tutorial: How to Write an IRC Client in JavaScript

Wednesday, July 2nd, 2008

There is a new tutorial for Orbited 0.5 explaining how to write an IRC client with no server-side code! This is a good introduction to using TCPSocket for implementing clients for other protocols.

Shapes on a Plane

Tuesday, July 1st, 2008

I’ve been making various little canvas graphics for an upcoming browser-based pure-JavaScript real-time multiplayer game, and decided to implement some shape primitives. Specifically, I created functions for drawing circles and regular polygons. Then, I decided I could use some curvy and straight stars, and, based on the regular polygon code, made two more functions, regularQuadraticStar and regularStar. Here’s an example of 50 of these shapes drawn on a canvas:

First, and most simply, a circle function. This one is not too much easier than just using the «context».arc function directly, but it makes code a tiny bit clearer, and also saves a couple of lines of code for each circle:

var circle = function (context, x, y, radius) {
  var c = context;
  c.beginPath();
  c.arc(x,y,radius,0,Math.PI*2, true)
  c.closePath();
}

(more…)