Posts in the ‘News’ Category

JSGI vs Connect for Node Middleware

Friday, June 11th, 2010

JSGI (JavaScript gateway interface) is the broadly adopted standard for server-side JavaScript web applications and middleware. JSGI is designed specifically for ease of use in asynchronous, evented environments, and consequently JSGI has been a perfect fit building applications on Node. JSGI-Node has existed for sometime as lightweight JSGI server/adapter for running JSGI-based applications on Node. However, “Connect” was recently released as a new alternate middleware system for Node. This spurred me to make sure JSGI-Node was optimized, and compare the Connect middleware design to JSGI.

(more…)

Thoughts on Apple vs. Adobe

Friday, April 30th, 2010

There’s really no obvious “winner” in the Apple vs. Adobe spat. While both sides make some good points, they miss the mark on many details as well.

First, Steve, we appreciate your bold Thoughts on Flash, but a few comments:

  • Steve, Apple did not invent WebKit… you rewrote Konqueror and KHTML. Give credit where credit is due.
  • H.264 is not truly open.
  • Your app store review process is anything but open.
  • Tools to generate source code that can be deployed to the app store should not be discouraged. Either the app passes or fails in a quality review process that you need to open.
  • Flash exists because while the open web is great, it’s not perfect and there are still things that are easier to do with Flash’s development tools (this from a major open web supporter).
  • The lack of true APIs for native features on the phone for web developers has been holding us back for three years. Camera, GPS, geolocation, native graphics acceleration, address book, etc. iPhone OS 4.0 helps a bit, but it’s way overdue.
  • Give open web developers access to the things they need to make the native app development process less important.

Unfortunately, Adobe’s CEO did himself no favors in his Interview with the Wall Street Journal:

  • Developers already have multiple workflows.
  • Don’t make excuses and pass the buck on Flash’s performance problems on Mac OSX. Where’s the proof?
  • One set of developer tools but support for all platforms is convenient for Adobe or Microsoft. Real developers mix and match tools rather than locking into a single vendor stack.
  • Your tool stack isn’t open, so you really can’t complain. Unless you offer a decompile option, it’s hard to judge the quality of your generated application code. Your history of quality generated code leaves me skeptical.
  • Flash being an open spec. is a misuse of the term open. Where’s the competing plug-in?
  • The Adobe stack should innovate to support the open web as another platform, per your logic, and my advice. See PhoneGap as a great example of working more openly to solve similar problems.
  • Overall, your view is that everything you deploy to should be open, except for your tool stack. We disagree.

Persevere 1.0

Friday, November 13th, 2009

Persevere 1.0 is now available for download. Persevere is a JavaScript storage and application server that uses a standards-based interface of HTTP/REST, JSON-RPC, JSONPath, and REST Channels. Persevere is designed for rich client applications and can be used with any framework or client. The Persevere Server runs on Rhino and provides persistent data storage of dynamic JSON data in an interactive server side JavaScript environment with the following key features:

  • Create, read, update, and delete access to persistent data through a standard JSON HTTP/REST web interface
  • Dynamic object persistence – expando objects, arrays, and JavaScript functions can be stored, for extensive JavaScript persistence support
  • Remote execution of JavaScript methods on the server through JSON-RPC for a consistent client/server language platform
  • Flexible and fast indexed query capability through JSONQuery/JSONPath
  • Comet-based data monitoring capabilities through HTTP Channels with Bayeux transport plugin/negotiation support
  • Data-centric role-based object level security with user management, Persevere is designed to be accessed securely through Ajax with public-facing sites
  • Comprehensive referencing capabilities using JSON referencing, including circular, multiple, lazy, non-lazy, cross-data source, and cross-site referencing for a wide variety of object structures
  • Data integrity and validation through JSON Schema based definitions
  • Class-based data hierarchy – typed objects can have methods, inheritance, class-based querying
  • Pluggable data source architectures – SQL tables, XML files, remote web services can be used as data stores
  • Object versioning with transactional history of record states

Persevere in use

Recently, Cramer Development put together a slick little application for making sticky notes. They discuss how quickly the application came together, as Persevere allowed them to quickly establish a data API, and then focus on the client side interface.

Other users include:

  • DataStream Content Solutions is using Persevere to build an XML repository for legal data in combination with MarkLogic.
  • Montana State University is using Persevere for their Yogo Data Management Project.
  • Another multi-national company is using Persevere in production for Intranet applications, with consistent usage from a number of users.
  • And, of course, we at SitePen are using Persevere for a number of the applications we are developing.

Numerous others are using Persevere in a variety of ways.

Learning more

There are a number of resources for learning more about Persevere and getting started with it.

What’s Next

With Persevere 1.0 finished, we are already working on the next version which will be based on the new Pintura architecture. Pintura is the new JavaScript core for the Persevere HTTP interface that is based on the CommonJS and JSGI API. Pintura will run on any CommonJS/JSGI capable JavaScript engine (support for V8, JSCore, and Spidermonkey coming).

Bespin Goes Social

Monday, August 24th, 2009

The Dojo-based Bespin project has added collaboration and social features so developers can more easily share code in real-time! Finally, a truly productive use of social networking for developers!

By combining the benefits of SubEthaEdit and many of the social features you find on networking sites, the project is headed in a very useful direction that should significantly improve the way software is developed.

(more…)

Queued: Theming

Friday, April 3rd, 2009

As part of our series on how we built Queued, today we’re going to talk about theming the Queued application, and touch on a few examples of what made putting the skin on Queued so much fun.

The foundation for the beautiful theme for Queued was laid down by colleagues Damon Dimmick and Torrey Rice, and their amazing wireframe and mockup work (respectively) provided the building blocks for laying down Queued’s skin.

(more…)

Stocker: Advanced Dojo Made Easy

Wednesday, April 1st, 2009

SitePen is excited to announce Stocker, which demonstrates some of the more advanced capabilities of Dojo, including the newly released DataChart, the DataGrid, Data Store, Comet, Persevere, and BorderContainer. SitePen is also offering a one-day workshop where you will learn how to create Stocker yourself, but I’m here to give you a sneak peak of what Stocker is and how it works.

Stocker uses these technologies to emulate a stock monitoring application. We’re using made up data, but that’s actually more interesting. The Persevere server generates new stock items at certain intervals, and then pushes them to the browser with Comet. Then the Data Store updates its items and triggers an onSet notification. The DataGrid and DataChart are both connected to the same store, and are listening to that event. They then update their displays and show the stock items and their latest data.

Stocker

(more…)

Queued: Demystifying Deferreds

Tuesday, March 31st, 2009

At SitePen, we work very hard to to provide our customers and fellow developers with useful web app development services. We’re currently deconstructing the development of Queued, our Netflix Queue management application built with Dojo and Adobe AIR. Having presented on dojo.deferred and related topics at the Ajax Experience, and having heard that the Queued team ran into a few problems with them, I thought it would be interesting to review problems that are sometimes encountered when using Deferreds. What is the source of these problems, are these problems related to bugs or because there are misunderstandings, and how should we address this going forward?

(more…)

Introducing DojoX DataChart

Monday, March 30th, 2009

The latest addition in the Dojo 1.3 release is the new dojox.charting class, DataChart. Its primary purpose is to make connecting a chart to a Data Store a simple process. There are also other benefits with DataChart: less parameters are needed to create a basic chart, and more defaults and convenience methods get you up and running quickly with Dojox Charting.

(more…)

Queued: API Challenges

Thursday, March 26th, 2009

SitePen’s new Queued application works very well with the Netflix API, but the smoothness of this functionality was the result of a lot of research, and trial and error. In fact, this experience led me to propose that future project timelines should budget extra time when working with an unfamiliar API—and even more time when that API is brand new and untested. Netflix released one of the more exciting APIs in recent months and SitePen began to work with it right away. The Netflix team did great work on their API and they were also very helpful with us when we had questions or there was a bug on their end. I can imagine the challenges of setting up a (Netflix) REST API with an existing system and a large and complex library of items was not simple. Integration with the Netflix API presented its own set of challenges to us.

(more…)

Queued Overviewed

Tuesday, March 24th, 2009

Last month, we announced Queued, an open-source application for managing your Netflix Queue. Queued is a desktop application created with web technologies and techniques including the Dojo Toolkit, and it is distributed as an Adobe AIR application to provide several performance boosting benefits from living on the desktop.

At SitePen, we help our clients build great web applications. Most are not available for public consumption as they live behind company firewalls and/or require licensing. On the other hand, Queued is free and open-source software, BSD-licensed, and hosted on Google Code.

(more…)