Documentation:
- We have started a FAQ.
Absolute Beginner's Guide to Programming on the Web:
- It's now open to the public!
appjet.com:
- New docs page with simpler navigation.
- Complete redesign of the home page.
- New reference documentation for storage API, with more examples.
- The Library Reference now highlights example code
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
wgetthat prevented proper character encoding detection if non-ascii characters appeared before ametatag describing the character encoding.printing: The
htmlfunction for printing raw HTML now takes multiple arguments and concatenates them.quickforms: Added support for chaining operations.
dispatching: Fixed a bug in
patternDispatchthat required thepath not foundhandler 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. AforEachover 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]}):filtercan 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
fooare available atcomments.foo.appjet.netand 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 usingappjet._native.writeBytesfrom 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
valueattribute of INPUTs, for example.printing: Added a
formcommand andimagecommand for easy HTML printing, much like thelinkcommand.
IDE
- Added a debug log to make it easier to debug apps. Get more information on the IDE guide page or in the dlog library reference.
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.
