The Official Xanjax Blog

AJAX Client Side CMS

July 11th, 2009 by chappo, in Xanjax Chat

Xanjax XHR/AJAX Client Side CMS is here!

I like to call it C two MS or C squared MS (C2MS). I’ve dubbed it C2MS because not only do I predict that client side CMS will be the second generation of CMS, but that incredible flexibility will result from the combined deployment of server side CMS and client side CMS. That’s the C squared bit!

I predict here and now that C2MS, or whatever you want to call it, will be yet another generational leap in Web interaction. Xanjax’s own C2MS is just a tiny step towards this new generation.

Xanjax C2MS uses JSON template files. Denoted by a file extension of .ctx, under Xanjax these are called context files, or simply contexts. These need to be manually edited at this time, ruling out beginners until Xanjax includes an authoring tool. For the seasoned Web Designer however, the power of C2MS is well worth the editing effort. Just as a CSS style can be changed site wide with a single property change, C2MS sub-content such as an advertisement,  menu, link list, or image, can be changed, either site wide or selectively, by a single change in a JSON Contexts file.

With C2MS, a single change in a single place can alter how sub-content is viewed site wide or by page. The contexts are fully processed client side, perhaps reducing server load by up to 90% compared to server side CMS systems. With C2MS, the server only has to do what servers do best; that is, serve files and authenticate users.

Download the Xanjax sitekit and have a play with this new technology.

Xanjax C2MS is so new that you can even have a hand in how the technology is developed. Use it, send feedback about what else you think it should do, or what should be changed, and it will probably morph with users wishes.

I’d like some developement help with Xanjax too. If after you have used Xanjax, you understand it, like what you see, and have the discipline to write or maintain tiny fast code and/or understandable documentation I’d like to hear from you. I’m interested in people who can organise and maintain, just as much as I am in people who can implement tight, fast code from novel ideas. Of course, because Xanjax is Free Software, you’ll be doing this entirely as a volunteer, or for the good of the world, or for status, or whatever…  unless of course you come with a huge funding donation – and then I get paid first…  :-)

No Comments »

Xanjax Update 10/07/09

July 11th, 2009 by chappo, in Xanjax Chat

Xanjax Release Candidate 1 is now ready for download.

Client Side CMS is now an integral feature of Xanjax, which has developed way beyond the AJAX History framework it once set out to be. Other features include Server Pushlets, AJAX based Webmail, and AJAX PHP support.

The core Javascript code of Xanjax remains tiny at about 10 kilobytes. An extra 4K gets you Client Side CMS using JSON templates, and a further 5K gets other extras including Dynamic Font Scaling and Dynamic AJAX Conversion of Legacy PHP Forms.

In other words, you get all the functionality of Xanjax for a mere 20 kilobytes of Javascript code. And that’s not compressed or minified. Compressed, total Javascript size shrinks to around 7 kilobytes. Supporting PHP code, if used, is similarly tiny.

To understand what Xanjax is really about, you need to download and use the Xanjax Sitekit, which is a combined Xanjax demo and tutorial.

NOTE: Because Xanjax is an XHR/AJAX framework it must be served by a web server, otherwise it will not operate.

Note that library and function names are still subject to change until release of version 1.0 and there may be minor function parameter alterations also.

No Comments »

Xanjax Release Approaches

July 9th, 2009 by chappo, in Xanjax Chat

I’ll soon be confident to give Xanjax the thumbs up for version 1.0 official release.

There’s still work to be done defining API’s and finalising library and function names so it’ll still take some time, but the code seems to be stable now. If you find any bugs, please report them as soon as possible so they can be corrected prior to version 1.0 release.

There are two main areas I want to address in the short term, post version 1.0 release, with Xanjax. The first is a code tidy-up with an emphasis on further code size reduction and performance improvements, and the second is a super fast and compact widget library to put Xanjax firmly in the Web Application space.

I’d be very keen to get some coding and documenting assistance, so if you support free software philosophy, and are technically able to assist, please contact me. This would make a superb study project for anyone wanting a real challenge because the total Javascript code size of Xanjax including all extensions is still way under 20 kilobytes, so the bar is high. As far as I know, there is nothing coming anywhere near as small and fast as Xanjax, and as the technical director of the project, I intend to keep up the size/performance pressure, so it’s lots of fun trying to do the impossible!

I’ll be scaling back my own contributions to Xanjax for a while, because I’ve got business projects to attend to; but as these other projects will be based on Xanjax, any problems that arise should be noticed and fixed in due course. Then of course there’s always the possibility that there’ll be something that I need to do that Xanjax still doesn’t – leading to more development….

1 Comment »

Client Side CMS Emerges

July 9th, 2009 by chappo, in Xanjax Chat

Xanjax has now morphed into a client side content managment system. The core code size is still only 10K uncompressed!

As you may remember, Xanjax started out just being an XHR/AJAX navigation/history framework. It all came about as a bit of a surprise after I wanted to create programmable menus, which I decided on using JSON for. While I was nutting this out, I had something of an epiphany leading me to a very compact method of processing JSON objects, which in turn led to the CMS template support that Xanjax now offers.

This should be very useful to web designers converting static websites into dynamic ones, and also to organisations needing to host as cheaply as possible because server load is outstripping revenue growth. By processing client side all content associations, or contexts as I call them, the web server only has to serve files, which is very efficient. Client Side CMS should outperform Server Side CMS dramatically on low end servers, and due to a reduction in caching granularity there should be an improvement even on high end servers.

I already have enhanced SEO/Accessibility degradeability working on the templated content, using a supplementary PHP module. This will be available for release very soon, and it simply processes the same JSON format template file. This means you can have SEO readable content with no additional design effort.

Not everyone will be comfortable at first with JSON template files, but I can promise that the efficiency is worth the initial struggle with JSON syntax. You only need a few days to get over the unfamiliarity. I have kept the template keywords as simple as possible consistent with flexibility. Templates can be nested, so there should not be problems with scalability. Look at the commented root.ctx file in the Xanjax sitekit for more information, and for an output example navigate to json contexts (#contexts.xml) in the sitekit.

2 Comments »

Xanjax Wraps WordPress

April 18th, 2009 by chappo, in Xanjax Chat

It was a great surprise to me, when after much work and refinement of Xanjax code, WordPress suddenly began to work natively within Xanjax. Being able to wrap a quite intensive PHP application like WordPress natively within Xanjax proves the viability of Xanjax code for more general use. In the end, URL query and anchor filtering, and cross browser support for anchors within a DIV element, were the main stumbling blocks to be solved before WordPress finally worked inside a DIV instead of having to be wrapped in an OBJECT element. Of course, extensive CSS layout changes were needed to make things look pretty, so I wrote a WordPress theme specifically for Xanjax. At this time, the admin sections of Wordpress don’t integrate into Xanjax.

As far as I know, there only remain some IE issues with OBJECT elements to be solved before “anything” can be shoved in a DIV, cross browser. However, broad public testing will be required to confirm that.

No Comments »

Most Browsers Compatible!

April 6th, 2009 by chappo, in Xanjax Chat

After working around some silly browser bugs in Safari and other webkit based browsers I was able to coax Xanjax into compatibility with all major browsers. The webkit based browsers are unable to scroll content if the scrollbar is hidden. This is a massively stupid bug in a browser engine that lays claim to being the most compliant with W3C recommendations. It also has wierd behaviour on page redirection unlike all other browser engines. I certainly hope the developers address these bugs soon. For the moment, Xanjax degrades from event based navigation to polling; just for the buggy webkit browsers. If the developers either get around to fixing the problem in webkit, or providing an onhashchange event, Xanjax will just automatically use the best event model.

IE8 is a disappointment apart from the onhashchange event which is brilliant. The engine is seriously not much further toward meaningful W3C compliance than either IE6 or IE7.

Firefox and Opera browsers stand out because neither have bad habits from a web designers point of view. Congratulations to their design teams!

No Comments »

Firefox 3 Compatible

June 14th, 2008 by chappo, in Xanjax Chat

I finally got around to installing Firefox 3 beta, which appears to work as expected with Xanjax. We can reasonably confidently add Firefox 3 to the compatibility list.

Internet Explorer 8 testing coming soon!

Xanjax is now known to work with the following browsers: IE’s 5.5, 6.1, 7.0; Firefox 2, 3 and probably all other Mozilla based browsers; Opera 9.

Mac Safari does not work properly yet. It’s not known yet the extent to which it is broken. Because Apple have released WebKit under the LGPL open source licence, we can now expect to see a rash of new and existing minor browsers using it; already Gnome Epiphany has announced they intend to switch from Mozilla to WebKit. I’ll do my best to achieve compatibility with WebKit based browsers.

No Comments »

Ugly Fonts In Windows

April 6th, 2008 by chappo, in Xanjax Chat

Just discovered after doing the first actual test of Xanjax in Windows XP for about a year (yes that’s how long since I last used Windows for anything!) that there’s no anti-aliasing by default and various fonts/sizes on Xanjax website look terrible! Supposedly you can turn Clear-Type on (or some such feature) but that won’t make things look any better for W2K, W98 users, or anyone else without Clear-Type. Do you actually get it in XP home anyway?

Us Linux Gnome Desktop users have had font anti-aliasing since at least W98 days! I really forgot how terrible older versions of Windows look.

Please, if anyone can tell me what’s the reliable way to get halfway decent looking fonts in Windows in IE without clear-type, I would like to know. Is it necessary to choose specific fonts and sizes, avoid italics; what?

You may have noticed that Xanjax website scales to fit the window size of the browser, font size too. This looks just great in Linux, even in Internet Explorer in Linux, but not in Windows.

This is just a Windows anti-aliasing issue, nothing to do with Xanjax, I’d love to hear about a good solution.

No Comments »

Finally Going Live!

March 18th, 2008 by chappo, in Xanjax Chat

Welcome to the Xanjax blog!

In case you arrived here directly, Xanjax is a micro (about 10KB) AJAX framework that enables navigation, history and bookmarks, XML to HTML direct DOM insertion, and XHTML 1.0 Strict Virtual Frames. There’s more ambitious plans too, but let’s get it going really well first.

Although this website runs entirely inside Xanjax, its current status is ‘beta release candidate,’ so we need lots of interested folks to test it out and report back!

This blog entry marks the start of first public release testing. Xanjax took a about a year in the making; it’s been a part time effort except for a couple of energetic spurts like this one to finally publish online.

I’m very new in this field. I have never released a public project before and don’t have a degree in computer science. It’s been hard work, a lot of research, and quite a lot of fun and frustration.

My thanks goes out to the many people who have publicly contributed valuable insights into AJAX navigation issues, without which Xanjax would never have been written. In particular, the websites listed under resources here have been of tremendous help; special thanks to their authors.

A special acknowledgement goes to Brad Nueberg of Coding in Paradise who initiated Really Simple History in about 2005. I think I found out about text areas for storage from his project and certainly adapted his blank html page for iframes idea to objects for my project.

Xanjax aims to be the smallest, fastest AJAX navigation framework available. If you’ve delved into the basic AJAX browser navigation issues that Xanjax aims to solve, you’ll know that many techniques have been tried in one form or another, with varying degrees of success, elsewhere. While some of these techniques have been informative, all Xanjax code is original and written from scratch.

As far as I know, Xanjax is the only fully event driven navigation solution. I hope you’ll find my slant on solving AJAX navigation both interesting and refreshing. I hope you’ll also appreciate the effort which has been (and will continue to be) put into optimizing performance. Improvements in speed, code size, ease of deployment and cross browser compatibility are, for me, ongoing goals.

Ease of use is crucial. Some effort in this direction has already been applied. Xanjax is not difficult to deploy right now, but there’s obviously more to be done.

Compatibility issues will be ongoing for some time (maybe forever), but Internet Explorers 5.5, 6.1, 7.0 and Firefox are going pretty well right now, subject of course to your feedback. It’s especially important to let me know if you think you have found a compatibility issue (and/or improved solution) with these browsers, which together probably account for 95% of Internet users. Opera is almost working with Xanjax and will hopefully be included in the compatible list soon. Safari is untested – MAC users please report. Konqueror isn’t working – KDE enthusiasts please help; the issues appear to be with window.onscroll and XMLHttpRequest.

New: Opera working as of 20080410 with addition of cancel bubble code.

Although Xanjax is quite basic at present, this web site runs in it completely. When visiting xanjax.org, the index page remains persistent in your browser. All other site content is then ‘XaNjax-ified’ into a div or object in the original index page.

Xanjax is free! For the moment it’s experimental, and of course has ABSOLUTELY NO WARRANTY.

I hope in time Xanjax will become well used and well supported. I suppose we’ll just have to wait and see.

Have fun with it!

(Dave) Chappo

1 Comment »

footer