JGate Blog

JGate - The easiest way to get your ideas online. 

Nginx is doing well

As we announced in our change log, we exchanged the reverse proxy layer from Apache web server to Nginx. There are a lot of positive reports all over the net that favor Nginx over Apache especially for static content and high number of requests. This is due to the different architecture they are using. Apache is using a blocking IO model with threads and processes. Nginx on the other hand is using event loops and a non-blocking model.

The new servers are now running for 40 days with great success. The performance has gone up significantly, not only shown in monitoring values but also in real statistics measured by Google Labs:

Performance overview: On average, pages in your site take 0.7 seconds to load (updated on Jul 5, 2010). This is faster than 96% of sites. These estimates are of low accuracy (fewer than 100 data points). The chart below shows how your site's average page load time has changed over the last few months. For your reference, it also shows the 20th percentile value across all sites, separating slow and fast load times.

Non-blocking IO really seams to be the key to better performance. So it does not surprise that Node.js, which uses the same architecture, is currently getting so much attention. We are keeping an eye on this. 

Loading mentions Retweet
Filed under  //   nginx   node.js  

Comments [0]

Improved Statistics, IDE and new Check-In Database

In the last post, I introduced the new Aristo skin being available as lib-aristoforms. JGate is using it now to display all pages with form elements and it is looking great. The IDE profits from a consistent look on different browsers and OS'es. The new "click to publish" button hopefully inspires more developers to publish their apps. Currently only every fifth app is set to published. This is kind of sad, as learning from other apps is, what makes the JGate platform so powerful.

Once you have published your application, the IDE shows the Subversion controls. From that point you can commit versions of your app to the repository. The new commit database records your revisions and allows querying the history records. It also provides RSS feeds for every application and a consolidated feed of all applications.

Changes to the platform statistics allow now sorting, application statistics per month and additional metrics like storage use.

Loading mentions Retweet
Filed under  //   ViewVC   aristo  

Comments [0]

Fancy Forms Made Easy

HTML forms are central elements of nearly every web application. AppJet.jar supports HTML forms with its QuickForms library, which makes it easy to create even complex forms. It has some limits though and uses just the built-in browser control elements. Most UI JavaScript libraries shine through the use of skinning effects which provide a modern and consistent look and feel.

Pixelmatrix Design's Josh Pyles has written a cool forms skinning library based on jQuery. Uniform currently provides 3 great looking skins, among them the Aristo theme from 280North, which is also used by the Cappuccino framework. You can even design your own themes using the theme kit and the theme generator. 

We have combined the QuickForms and Uniform libraries, added missing theming for input fields and multi button support, both build on top of QuickForms. The resulting library is ready for use in your own applications. We will also adapt the platform code to make use of it.

See the lib-aristoforms library for its use and the source code.

Loading mentions Retweet
Filed under  //   appjet.jar   aristo   jquery   quickforms   uniform  

Comments [0]

Using the server-push technique called Comet

The AppJet protocol stack includes the org.cometd server component which implements the server-side Bayeux API. On the client-side there are implementations and bindings for the Dojo toolkit and the JQuery toolkit. Having all these components on-board makes JGate an ideal prototyping platform for server-push experiments.

I reactivated the comet-counter sample and the required libraries written by David and J.D. from AppJet Inc. The sample is now online and includes the complete source code as with every AppJet application. These server-push experiments are kind of fascinating and where the foundation for AppJet Inc's later EtherPad platform. It is now being merged with Google's Wave and also available as open source.  

See: http://comet-counter.jgate.de

 

Soundtrack: "Transitions I" by soundprank (CC) Attribution (3.0)

 

Loading mentions Retweet
Filed under  //   appjet   comet   dojo  

Comments [0]

Tutorial: Building a Task Web Application on AppJet

For those of you, who just started using the AppJet framework on JGate, we have prepared a short tutorial. It explains the basics from creating a new application, adding database support and designing the UI using Ajax. It also shows how to use server-side and client-side JavaScript and how to import libraries.

Tutorial 1: Tasks.

Time needed: 9 min.
Lines of code: 60
Difficulty: beginner 

Loading mentions Retweet
Filed under  //   appjet   tutorial  

Comments [0]

Version Control Now Online

The JGate platform keeps now track of all versions of an application and makes it easy to see what has changed from revision to revision. Adding an application to the repository is easy.

  1. Go to the IDE and load your application.
  2. When you want to commit a version, just click Commit in the toolbar. Commit as many versions as you need.
    Toolbar

  3. Clicking Revision Log opens a list of all revisions of you application. From the log you can compare revision, create deltas and download old versions.
    Revision Log

There is also readonly public access to the repository using Subversion client tools. There are several of them for every operating system. When asked for the repository location enter the following URL: svn://jgate.de/appjet

Loading mentions Retweet
Filed under  //   ViewVC   Subversion  

Comments [0]

JGate Soon With Version Control

Ever had the feeling that something could break during application updates? With the next platform update, JGate supports version control using Subversion and ViewVC. It allows you the see what has changed from revision to revision, generate patches and download old versions of your apps.

The Repository

The repository is located on the JGate servers with a projects folder for each of your public apps. Whenever you wish to keep a version during development, just hit the "Commit" button in the IDE. That's all, not additional software or knowledge about Subversion is needed.

ViewVC

ViewVC is a Web-based browser interface for Subversion. It generates templatized HTML to present navigable directory, revision, and change log listings. It can display specific versions of files as well as diffs between those versions. The revision log is easily accessible right out of the IDE.

Loading mentions Retweet
Filed under  //   ViewVC   IDE   Subversion  

Comments [0]

How It All Started

AppJet was a website that let users create web applications in a client web browser, with no other client software. It went public beta in December 2007. "AppJet" also refers to the server-side JavaScript framework that powers AppJet applications. 

AppJet Inc. not only provided app hosting, they also released appjet.jar to the community with everything needed to run applications on own servers. Later it has been open sourced in the version used to run the EtherPad platform. The multi-app hosting technology however, was kept as their secret sauce.

The Clone

Using the original service, a few community members came up with the idea of an AppJet clone simply by executing (eval) sub applications from a running instance of appjet.jar. The idea of an alternative hosting platform was born. In February 2009, we at JGate took the idea and added multi-tenancy, multi-app hosting, thus building an alternative platform. Herby, one of the active community members added new ideas and provided security tips. He also came up with his own AppJet clone implementation following a different approach.

Taking The Torch

In June 2009 AppJet Inc. informed their users, that they were cancelling AppJet hosting a month later. This was a big surprise, because the platform was amazingly hosting over 2,500 apps at that time. AppJet played their joker with their new EtherPad realtime communication platform, which they had developed in parallel on AppJet. It was years ahead of Google's Wave platform which played in the same field. AppJet Inc. concentrated on a new business model and left app hosting out of focus.

AppJet users however looked for something to migrate their work to. Having the clone platform, it was time for JGate to take the torch and to start hosting migrated apps. Community members wrote libraries to migrate even the data to the new platform. Since then JGate is hosting the old jewels, like infinitecanvas from the Microsoft Live Labs, or Groupr as well as newly developed apps of all sorts.

Loading mentions Retweet
Filed under  //   appjet   appjet.jar   JGate  

Comments [0]

AppJet: The Platform behind JGate

JGate was created and hosted using the AppJet Web Platform, a new platform, that has been developed by AppJet Inc. for building realtime web apps. We are providing a free hosting service, so that you can run and develop your own applications using this fantastic platform.

AppJet Features:

JavaScript execution on both the client and server

This enables authors to be more productive by writing all parts of the application in the same language, and shuttle data between the client, server, and database all using JavaScript objects.

Flexible, memory-cached JavaScript object database

All the objects that the AppJet application code works with are JavaScript objects, so why on earth would we convert them to and from any other format when storing them in the database? JGate stores all its data in the AppJet Database, which automatically scales and caches itself in memory as necessary. This makes it fast to implement new features, fast to change storage models, and fast to serve requests in production.

Access to the world's biggest collection of libraries: the JVM

There are more high-quality and well-documented libraries written for the Java VM than for any other runtime. We wanted access to all of them when building JGate, so we made an easy way to import Java libraries for use in JavaScript, based on Rhino's JavaScript/Java bridge.

Loading mentions Retweet
Filed under  //   appjet  

Comments [0]

About JGate

What is JGate about?

JGate provides cloud-based application hosting using the AppJet Web Platform. It features a web-based IDE, an object database and everything needed to run modern web applications. We launched in February 2009 and we've been steadily growing and adding features.

Who is behind JGate?

JGate is driven by a small team of technology professionals and internet enthusiasts. Our aim is to make internet developers' lives easier by providing everything to run web applications without the need of deploying the necessary infrastructure. A modern web browser is all that is needed to start developing. 

More Information

To contact us for any reason, please use this form and we will respond as soon as possible. We love to hear from our users. You may also follow us on Twitter.

Loading mentions Retweet
Filed under  //   Appjet   JGate  

Comments [0]