Documentation:

  • We have started a FAQ.

Absolute Beginner's Guide to Programming on the Web:

appjet.com:

IDE:

  • Improved error messages for some common cases such as missing parenthesis, quote, etc. (More improvements to come).

Hosting:

  • Many storage system optimizations. In particular, it is now dramatically faster to perform lots of successive writes of small amounts of data.
  • Requests to www.app-name.appjet.net now redirect to app-name.appjet.net.

Misc:

  • Fixed bug in sign-up form where it was improperly caching invalid usernames.
  • Cursor is now a "text insertion icon" always in code editor.
  • Post/reply links now appear in the forum when you're not signed in, and redirect to sign-in page.
  • The mini-ide in the absolute beginner's guide now has a "clear storage" button when developing database-backed apps.
  • Fixed typo in QuickButton documentation: It defaults to GET, not POST.

Code Editor

  • Fixed bug in IE where selection couldn't be scrolled out of view.

Libraries

  • page: The default page HTML is more standards-compliant. (It was just shy of being valid XHTML.) We also removed some HTML-style comments from inside the automatically-generated <script> tag created by an /* appjet:client */ section.

  • page: Added support for setting a page's favicon, using page.setFavicon(url). This change also provides a default favicon, the AppJet "jet" icon, which prevents browsers from requesting /favicon.ico, thus making debug logs a bit cleaner. (See the Wikipedia article on favicons for more information.)

  • utilities: Fixed a bug in wget that prevented proper character encoding detection if non-ascii characters appeared before a meta tag describing the character encoding.

  • printing: The html function for printing raw HTML now takes multiple arguments and concatenates them.

  • quickforms: Added support for chaining operations.

  • dispatching: Fixed a bug in patternDispatch that required the path not found handler to be the 5th argument; now it must be the last argument.

Libraries

  • storage: We've reimplemented our storage backend to be much faster! We've also added a number of functions that should help make StorableCollections much more useful:

    • sortBy("-foo"): use to sort a StorableCollection by a property name, instead of writing a sorting function. Prepend "-" to reverse the sort order.
    • limit(7): use to limit a StorableCollection view to a set number of items. A forEach over a limited view will just end after the limited number of items.
    • skip(10): use to return a view that skips the first n items of a collection.
    • reverse(): use to return a view that reverses the sort order of the given view.
    • first(): use to get the first object in a StorableCollection or view.

    In addition, we've expanded these functions:

    • filter({foo: [3,4]}): filter can now take array arguments and matches objects that match any of the given values.

    Be sure to check out the storage docs for more detail on how to use the new methods, and let us know in the forums if you experience any trouble with the new implementation!

appjet.com

  • The App Directory now defaults to sorting by which apps have been commented on recently. It also shows how many comments there are on an app below its name.

We've sure been busy!

appjet.com

  • New graphical site design. We're working on updating the look and feel of the AppJet site. Thanks to user dylan for some great site design suggestions!

  • Comment on apps. Have something to say about someone's app? Post a comment. You'll be notified by e-mail when someone comments on your app or responds to a comment you wrote. Comments on app foo are available at comments.foo.appjet.net and linked from the "view source" page. You can give people a link to comment on your app by putting this in your app code:

    print(link("http://comments."+appjet.appName+"."+appjet.mainDomain));
    
  • Notification Settings. Now you can control your notification settings to determine when AppJet sends you emails.

IDE

  • The URL bar in the preview pane now updates as you click on links in your app. (This long-standing issue was difficult to fix for technical reasons.)

  • Misc improvements to the Shell pane.

Code Editor

  • Fixed bug where pasting in Safari would sometimes put all code on one line.

App Hosting

  • Fixed bug where logging errors to the debug log would fail with an error in the presence of unusual cookies.

  • Fixed a bug where response.stop(true) would prevent bytes written using appjet._native.writeBytes from being printed.

  • Added a response.writeBytes(data) function for printing raw binary data.

  • Fixed a number of cases where storage errors wouldn't get logged to the debug log.

Libraries

  • tags: elements with attribute values that contains quotes and newlines are now escaped properly. This lets you put (almost) arbitrary strings into the value attribute of INPUTs, for example.

  • printing: Added a form command and image command for easy HTML printing, much like the link command.

IDE

appjet.com

  • Redesigned My Apps page that separates libraries from apps and presents app statistics in a more readable display.

appjet.com

  • overview pages: Every app in the directory or on a user's profile now has a public "overview" page that contains some interesting stuff such as:
    • When the app was created and last updated.
    • What app it was cloned from and what apps have cloned it.
    • What libraries it imports and what libraries import it.
    • Response timing information.
  • As an example, check out http://appjet.com/app/135075630/overview.

appjet.com

  • There are now automatically-generated documentation pages for every AppJet library and app. To view the docs, visit docs.appname.appjet.net. For example, check out docs.lib-example.appjet.net. Read more in the Guide Page on Documenting Code.
  • We re-designed the view-source page for apps and libraries.
Earlier change on June 19, 2008 at 1:12:58 AM PDT
Earlier change on June 17, 2008 at 1:24:14 PM PDT
Earlier change on June 3, 2008 at 7:51:05 PM PDT
Earlier change on May 18, 2008 at 3:21:10 PM PDT
Earlier change on May 17, 2008 at 9:46:13 AM PDT
Earlier change on May 16, 2008 at 11:06:21 PM PDT
Earlier change on May 13, 2008 at 9:14:59 PM PDT
Earlier change on May 13, 2008 at 5:32:23 PM PDT
Earlier change on May 13, 2008 at 4:08:45 AM PDT
Earlier change on May 9, 2008 at 5:27:33 PM PDT
Earlier change on May 4, 2008 at 12:37:13 PM PDT
Earlier change on May 2, 2008 at 6:52:11 PM PDT
Earlier change on April 18, 2008 at 12:11:11 AM PDT
Earlier change on February 13, 2008 at 5:49:51 PM PST
Earlier change on January 18, 2008 at 3:30:08 PM PST
Earlier change on January 17, 2008 at 5:45:31 PM PST
Earlier change on January 13, 2008 at 3:33:29 PM PST
Earlier change on January 13, 2008 at 2:00:55 AM PST
Earlier change on January 10, 2008 at 6:42:23 PM PST
Earlier change on January 9, 2008 at 10:45:00 PM PST
Earlier change on January 9, 2008 at 3:14:25 AM PST
Earlier change on January 4, 2008 at 8:30:52 PM PST
Earlier change on January 3, 2008 at 5:54:39 PM PST
Earlier change on January 3, 2008 at 12:40:07 AM PST
Earlier change on December 31, 2007 at 2:45:26 AM PST
Earlier change on December 26, 2007 at 9:31:17 PM PST
Earlier change on December 17, 2007 at 7:42:04 PM PST
Earlier change on December 16, 2007 at 11:57:23 PM PST
Earlier change on December 16, 2007 at 1:52:32 PM PST
Earlier change on December 13, 2007 at 3:11:56 PM PST
Earlier change on December 11, 2007 at 10:46:04 PM PST
Earlier change on December 10, 2007 at 4:42:13 PM PST
Earlier change on December 8, 2007 at 12:43:19 PM PST
Earlier change on December 4, 2007 at 5:25:45 AM PST
Powered by AppJet
source
rendered in 0.028s