June 02, 2007

Google Gears

 Images Gears SmThe web development or web engineering space has been pretty quiet as late with nothing really new being developed by anyone or any amazing ideas being put into action, until now. The Google guys have done it again with their release of Google Gears. Google Gears is an API for web developers to allow their applications to be run in an offiline mode and therefore accessible while their user's computer is not connected to the Internet. Google Gears supports both Firefox and Internet Explorer on Windows, OSX and Linux therefore supporting 99% of the Internet population. Google gears consists of three components, Local Server that stores the web application resources, and local database to store the content for the application and a WorkerPool that allows your applications to be more responsive (somehow).

If you want to see it in action head on over to Google Reader as it has been enabled with Google Gears support or if you are a web developer head on over to the Google Gears Developer page.

Links
Google Gears Home
Google Gears Developer Page
Google Reader

Posted by Egon Kuster at 05:04 PM

May 22, 2007

CSS Dock

Css-Dock-Menu

I am a big fan of Macs, I am also a big fan of good use of technologies for the web. So I bring to you the CSS dock Menu. Ok so maybe it is not really such a good use of web technologies, but it is still impressive.

Links
CSS Dock Article
CSS Dock Demo

Posted by Egon Kuster at 10:06 PM

May 06, 2007

Web Developers Links

Df LogoHere is a great set of links for Web Developers. It contains links for Javascript Libraries, AJAX frameworks, Fonts, icons and more. All the common links are there plus a heap more I have not seen before.

Links
Web Designers Tool Kit

Posted by Egon Kuster at 11:11 PM

March 25, 2007

Eclipse Plugin: History Flow

HistoryflowHere is an interesting new plugin for the Eclipse development environment. Rather than the traditional file history the History Flow plugin provides a different way to view the history of your files in CVS.

Links
History Flow Plugin

Posted by Egon Kuster at 11:01 AM

January 22, 2007

Stikkit -The smart sticky note

StikkitStikkit is a new Web 2.0 application available which provides an interesting spin on web-based sticky notes. Unlike normal electronic sticky notes that simply allow you to create little yellow squares to capture mainly textural data Stikkit takes this one step further by trying to understand the content of the sticky note. For example is you start typing out the details for a meeting then it will actually create a meeting request and automatically name the note with the subject of the meeting. The best way to understand is to watch the videos on the home page.

Links
Stikkit.com

Posted by Egon Kuster at 09:21 PM

December 03, 2006

Web Graph Diagram API

Jsviz031SvgFor a current project I need to be able to display a graph of objects on a web page, which is essentially a set of nodes and lines between these nodes. After looking around the Internet I came across JSVis which is a JavaScript library that allows you do exactly what I wanted and even has AJAX support to dynamically create the graph.

Links
JSVis Home Page

Posted by Egon Kuster at 10:48 AM

October 03, 2006

ALE: AJAX Linking and Embedding

Zimbra, the developers of one of the best Open Source communication platforms for the enterprise market, which runs completely within your browser has developed ALE. ALE is short for AJAX Linking and Embedding and is a specification on how to develop applications that can allow rich content be embedded within other pages all of which run within the web browser. Zimbra uses ALE in their advanced email client to allow content such as a table to be embedded into an email message in the browser, which can be edited, in place, still within the web browser. This specification is only for the most advanced AJAX developers as the specification is extremely void of content and really needs some work. However, even though the specification is thin the overall concept is extremely powerful and if taken up will allow for even greater capabilities within web-based applications.

Links
Zimbra Article on ALE
ALE Specification

Posted by Egon Kuster at 12:51 AM

July 20, 2006

NeoBinaries: Listing of Web 2.0 Applications

200607201745More and more Web 2.0 (AJAX enabled applications) are appearing on the Internet, sometimes providing quite advanced functionality normally only found in Desktop applications. NeoBinaries is cataloging these Web-based applications to make it easy to find and select an application that meets your needs.

Links
NeoBinaries

Posted by Egon Kuster at 06:47 PM

July 16, 2006

JavaScript Library to Create Curved Corners

CurvycornersCurveyCorners is a great little javascript program that any website developer can place in their pages. Then using some simple HTML and Javascript you can easily create curved corners on any HTML DIV element. So what you must be thinking, because there are lots of things like this that achieve the same results with plain CSS. Well the benefit of curvyCorners is that is will create corners that are antialiased, which means they appear extremely smooth as though it was done in a proper graphics program.

Links
curvyCorners Site

Posted by Egon Kuster at 08:41 PM

June 21, 2006

Script.aculo.us: Javascript Library

200606212223Script.aculo.us is one of the more well known JavaScript libraries. Like many other JavaScript libraries it is built upon the Prototype library. There is good support for this library if you are using Ruby as your server side scripting language.

Links
Script.aculo.us Home Page

Posted by Egon Kuster at 11:25 PM

Swat: Javascript Library for PHP applications

200606212218Looks like I am finding all sorts of JavaScript libraries to add animations, AJAX and other support to your web pages. This one is for developers who are using PHP as the server side language for creating your pages.

Links
Swat Home Page

Posted by Egon Kuster at 11:20 PM

Rico

200606212213Rico is yet another Javascipt library for adding AJAX support, drag and drop and other JavaScript user interface components to your web apps.

Links
Rico Home page

Posted by Egon Kuster at 11:14 PM

Moo.fx: Lightweight Javascript Animation Library

200606212210This is a cool little library that builds on the prototype javascipt library to create lightweight javascript animations. Useful if you want to easily add animations to your web-based applications.

Links
Moo.fx Website

Posted by Egon Kuster at 11:12 PM

June 17, 2006

Eclipse on Mac Intel

200606171234Ok so I haven't been using Eclipse on my mac for a while, actually since I upgraded to the new intel-based MacBook Pro. To my disappointment the 3.1.2 release of Eclipse that I was using crashes when trying to start it. After digging around I have found out that this is because that version of Eclipse does not support mac intel; however, the 3.2 release candidates after RC5 do. Therefore if you wanting to use Eclipse on one of the new intel-based macs then you are going to have to start using the 3.2 stream of eclipse even though it has not finished production. I hope that this will not screw up any plugins that you rely on.

Links
Eclipse 3.2 Project Plan
Eclipse Home Page

Posted by Egon Kuster at 01:35 PM

June 07, 2006

Colormixers

200606070007This is a cool little page that allows you to select a primary colour and then the page will select secondary colours that compliment the first based on standard colour matching rules from art and graphic design. The page even gives you a preview of the colour choice if you were to use it in a web page. If that was not good enough you can also export the colour selection for use within Photoshop, Illustrator or as a text file (web development). Great for new to graphic design or web development

Links
Colormixers

Posted by Egon Kuster at 01:07 AM

June 06, 2006

AjaxLoad: Activity Image Generator

200606062245If you are developing Ajax-based web applications then you are no doubt needing to display activity to the user when they click on a button or page widget. This is because without this feedback there is nothing to indicate to the user that anything is actually happening. For example you could have a button called “Save” that uses an Ajax message to save the current data back to the server and waits of a confirmation from the server. If no visual feedback is provided then the user has no idea if anything is happening until the browser receives the final response from the server. Therefore we need some sort of animation to indicate that the browser has not crashed and that something has happened, hello AjaxLoad. AjaxLoad is a simple web application that given a foreground and background colour will create an animated GIF image that you can display to a user (such as the image below).

Ajax-Loader

There is a reasonable number of different styles to choose from so you should find something that will meet your needs

Links
AjaxLoad Site

Posted by Egon Kuster at 11:47 PM

June 04, 2006

Spiffy Corners

So you are using lots of CSS in your site and you want to have rounded rectangles for menus or bounding boxes. Well most of the tutorials that use CSS do this but they are not antialiased. Well with the code shown in Spiffy Coners you can have CSS only rounded corners that are antialiased (smooth) without having to create individual images.

Links
Spiffy Corners

Posted by Egon Kuster at 02:40 PM

May 18, 2006

The Future of Web Applications?

200605182131Google creates some really nice cross browser AJAX based Javascript applications. Now they have released their internal development environment in a package called the Google Web Toolkit (GWT). This toolkit is Java 2 Enterprise Edition based and resolves around developing your application completely as Java code that then is compiled and turned into Javascript when the client requests a page. This is the same approach as used in Ruby on Rails and has the benefit of cleaning up the code and making it easier to create the server and client side code and they are one and the same with the framework handling the details.

So what is happening here? Well we are starting to see more and more of these frameworks becoming available for web developers to use. These are reducing the complexity to create advanced web applications therefore we are getting more interaction and more true web applications, rather than just web pages that provide a function. I believe that this will continue to grow and the line between web application and standard desktop application will start to blur. What we will see as the next generation are applications that are developed once and run as either server side applications or client hosted applications that then connect back to a data source for their data. This results in write once, run anyway (connected, disconnected, standalone, client/server or even peer to peer).

Links
Google Web Toolkit

Posted by Egon Kuster at 11:39 PM

April 26, 2006

BEEP Networking

200604262039I was looking at the Mac application SubEthaEdit today due to an article about MacZot.com and noticed that SubEthaEdit was using something called BEEP to collaborate with other users using SubEthaEdit. This reference to BEEP peaked my interest as it was a technology/software/gadget/thing that I did not know about and therefore I had to know about it (I am bad with things like this).

After a quick search on my good friend Google I found the BEEP home page and after reading about it have found out that BEEP is a low level library for making it easier to create your own networking protocol. BEEP provides all the common functionality that most applications have to recreate whenever they need to implement their own communication protocol. BEEP makes this easier and even provides a number of predefine profiles for common protocols like TCP or even SOAP. The best way to understand BEEP is to read the article in the links section below as the Beep home pages is a little thin on information.

Links
Beep Home Page
Article describing Beep

Posted by Egon Kuster at 09:53 PM

April 25, 2006

Javascript WYSIWYG DHTML Editors

200604252213There are a number of JavaScript based code libraries becoming available on the Internet to allow developers to easily add WYSIWYG editor capabilities to their web pages. These editors work pretty much the same as a normal desktop editor like Word but they operate completely within the web browser and purely use JavaScript to provide the required functionality. In addition they support multiple browsers. The latest one I have seen is TinyMCE that provides support for all major browsers and is pretty easy use. So if you are a developer and require users to enter formatted text then stop forcing your users to learn either HTML or a Wiki-style syntax and use a JavaScript based editor.

Links
TinyMCE Home Page

Posted by Egon Kuster at 11:13 PM

April 23, 2006

Web Service Modeling Ontology (WSMO)

200604231937In the eclipse plugin feed that I am subscribed to I noticed the WSMO Studio plugin. On further research I have found out that this is an editor for the WSML and related ontologies for use in web services. This seems to be a part of the semantic web research that is occurring around the world for trying to correlate, reason and determine relationships between disparate sources of data. This type of research is extremely important when trying to get multiple service be interoperable within a complete Service Oriented Architecture within an Enterprise.

I still have not got a handle on the details of this but I am going to conduct some more research and potentially applying some of this work to my current job. So expect to see some more information about this in the near future.

Links
WSMO Working Group
WSMO Studio

Posted by Egon Kuster at 08:40 PM

EasyEclipse: The easy way to develop using eclipse

200604231849Are you interested in developing using Eclipse but have found there are too many different plugins and you are not sure what you need? Well the folks at EasyEclipse are trying to make your life that one little bit easier by including all the plugins in an easy to install version of eclipse or readily packaged plugin bundles. Although you can actually do this all yourself I am all for making things a little easier and quicker to use so go and check it out.

Links
EasyEclipse Home Page

Posted by Egon Kuster at 07:50 PM

March 14, 2006

DHTML Goodies

 Images Heading3Here is a great website for all of your DHTML needs. If you are developing a website and want to add some dynamic capabilities to your client side web pages you are going to have to start playing around with DHTML, which is essentially the use of JavaScript (or other client scripting language) to manipulate the browser's Document Object Model (DOM) of your HTML page. If you have done this before you know how much of a pain it is especially if you are trying to support multiple web browsers due the slight differences between DOM objects and HTML rendering engines. DHTML Goodies is a cool little sight that will help you get a head start by providing lots of good little DHTML scripts that you can plug into your pages and customise for your needs.

Links
DHTMLGoodies Site

Posted by Egon Kuster at 01:07 PM

March 12, 2006

AJAX Frameworks and Toolkits

 Ajax Images Ajax-Icon-32X32After reading about the IBM AJAX toolkit that i just posted I thought that I would have a longer look around the web and see how many different AJAX development frameworks and toolkits were available. What I found is the following:

AJAX Frameworks:
Dojo
Zimbra AJAX Toolkit
SAJAX
Rialto
Microsoft Atlas (codename for part of ASP.NET 2.0)

Other Information:
Ajaxian Blog (All things about Ajax)
Ajax Toolkit and Framework Roundup from June 2005

Posted by Egon Kuster at 04:07 PM

IBM Releases AJAX Toolkit

IBM has released a toolkit to help developers create web applications that use the AJAX connection technique to allow web pages to open a connection back to the originating server and request more data. AJAX therefore allows developers to create web pages that can provide more dynamic page behaviour with additional data controls without having to continuously reload the page, which takes time and bandwidth. The IBM toolkit is available from the alphaWorks site as part of the Emerging Technologies Toolkit (ETTK) and has been proposed as an Eclipse Incubation Project.

Links
IBM AJAX Toolkit Framework

Posted by Egon Kuster at 03:19 PM

January 28, 2006

Ruby on Rails with AJAX support

 Images RailsOne of my friends and collegues has started using Ruby on Rails and has now become a complete convert, so much so that everything can be done with Rails (short name). Rails is a complete web development stack for creating dynamic web applications with very little fuss and painful configuration that is synonymous with other web development stacks, such as J2EE. I was also pointed in the direction of script.aculo.us that provides AJAX support to Rails by using the Prototype JavaScript Library. Some of the examples at script.aculo.us are drag and drop shopping carts, auto-completing text boxes and pretty JavaScript animations.

Rails is built around using the Ruby programming language, which is easy to learn and quick to develop with. Doing things quickly is the moral of the story when developing with RAILS. By adding Prototype enabled scripts on the client end greater interactivity is created and by using AJAX pages no longer need to be fully reloaded speeding up the response times as only the data is sent through the AJAX bindings. One issue with adding all this JavaScript to the client web pages is that the HTML code can become littered with <script> tags; however, this can be solved by attaching the JavaScript events by using CSS selectors. For a description and example of this approach have a look at the Behaviour web page.

Rails and supporting scripts can all be downloaded from the links below. If you are developing on a mac you can download pre-compiled binaries from here. For Windows users a quick install can be downloaded from here.

Links
Ruby on Rails Homepage
script.aculo.us Homepage
Prototype JavaScript Library Home Page
Behaviour Page
Agile Web Development with Rails Book
Programming with Ruby Book
Rico Homepage (Addition JavaScript Libraries using Prototype)

Posted by Egon Kuster at 11:38 AM

January 23, 2006

FacesClient

One of the big problems with developing web application is creating good interactivity for the user without having to refresh the page. Using multiple technologies like AJAX it is possible to enhance this interaction but the work required for developers to achieve this is great. Therefore using the Model View Controller (MVC) concepts from Java Server Faces the FacesClient has been developed. IBM has an implementation of this JavaScript library and components and is available from their AlphaWorks site in the Emerging Technologies Toolkit (ETTK). If you would like to just have a read then below is a link to the FacesClient developer guide.

Links
Emerging Technologies Toolkit (ETTK)
Faces for Laszlo
FacesClient Components, Part 1 : Portlet Programming with FacesClient Components
FacesClient Components Developer's Guide (second edition)

Posted by Egon Kuster at 05:02 PM | Comments (1)

January 05, 2006

FacesClient

One of the big problems with developing web application is creating good interactivity for the user without having to refresh the page. Using multiple technologies like AJAX it is possible to enhance this interaction but the work required for developers to achieve this is great. Therefore using the Model View Controller (MVC) concepts from Java Server Faces the FacesClient has been developed. IBM has an implementation of this JavaScript library and components and is available from their AlphaWorks site in the Emerging Technologies Toolkit (ETTK). If you would like to just have a read then below is a link to the FacesClient developer guide.

Links
Emerging Technologies Toolkit (ETTK)
Faces for Laszlo
FacesClient Components, Part 1 : Portlet Programming with FacesClient Components
FacesClient Components Developer's Guide (second edition)

Posted by Egon Kuster at 09:29 AM

November 12, 2005

JavaScript Editor for Eclipse


Jseclipse Lonely H50-1Here is a great plugin for the Eclipse development environment for all those creating JavaScript applications for their websites. This especially good for using the AJAX concepts to develop interactive web-based applications that I have mentioned in earlier posts. Installation is easy by either downloading the plugin and manually installing or adding a new remote site to the update manager of Eclipse itself. Downloads, screenshots and flash presentations of the plugin in use are available from the link below.


Links

JS Eclipse

Posted by Egon Kuster at 06:08 PM

October 17, 2005

Monket Calendar

 Uploaded Monket-Calendar-Large
Ok I already know about phpiCalendar which is a great web application that quickly and easily displays calendars, but that is all it does, display. Monket Calendar does the displaying but also allows for calendars to be edited. Monket still uses the ICS (Internet Calendaring System) calendaring format for the storing calendars but provides great client side editing which includes drag and drop capabilities.

Links
Monket Webpage

Posted by Egon Kuster at 10:51 PM

RoundCube: Web-based IMAP email client

 Images Main ScreenLike my previous post RoundCube is a web application project that is using the AJAX communication model to allow the browser based interface to communicate with the server without having to refresh the whole page. What this application provides ontop of Webnote is also the ability to use drag and drop like a normal desktop application. RoundCube is a web-based IMAP email client probably one of the best I have seen so far.

Links:
RoundCube Website

Posted by Egon Kuster at 10:38 PM

October 08, 2005

Swarmcast

Screen Sim 500K Noswarm-350X376So you know Podcasts and you have been using Bittorrent, now get ready for Swarmcast. Swarmcast uses the concept bittorrent to spread the network load of viewing and downloading large content (such as video or software files) by enabling all clients to connect to each other to create adhoc download networks. Unlike Bittorrent that downloads parts of files randomly Swarmcast ensures that the files is downloaded contiguously so that video files can be streamed and watched while the download is still continuing.

Links
Swarmcast Homepage
FAQ on What Swarming is

Posted by Egon Kuster at 08:06 PM

September 11, 2005

Mozilla Development Centre

Mozilla foundation has released a beta of their Mozilla Development Centre site. This site contains documentation and links for everything to do with the Mozilla platform and includes such core features as Documentation Wikis, Developer News and a Webwatch weblog. If you are interested in the Mozilla Platform of products (Firefox, Thunderbird, Camino, etc) then get on over to the Mozilla Development Centre.

Links
Mozilla Developer Center (MDC) Beta

Posted by Egon Kuster at 10:17 PM

July 24, 2005

Rich Internet Applications: OpenLaszlo

G Head LogoIt looks like IBM is getting involved with OpenLaszlo to compete with Macromedia in the Rich Internet Application environment. If you have been reading this blog for a while you would know that I am a big proponent for this enhanced method of delivering applications to users rather than the traditional HTML sites that do not provide much client interaction expected in standard desktop applications. Unlike Macromedia's offering of Flex OpenLaszlo seems to be an open source and freely available platform; however, you will require a J2EE platform to run the server's Java Servlet.

If you are interested in the new way of delivering applications to users then have a closer look at OpenLaszlo.

Links
Article about IBM and Laszlo Connection
Macromedia Flex
OpenLaszlo.org

Posted by Egon Kuster at 11:51 PM

May 13, 2005

Wiki in a Browser Page

I find wiki's a really cool idea. If you are not familiar with them they are essentially a way of creating web pages using a very simple markup language, so simple that anyone can edit a wiki page, even if you know nothing about HTML. The whole idea behind wiki's is to make it easier for people to create and edit web pages. The other benefit of wikis that creating links between pages is all based on creating a wiki link with the name of the new page, that is it. Well now on the meat of this article, enter GTDTiddlyWiki. GTDTiddlyWiki is an implementation of TiddlyWiki that allows you to create and edit a web page that is stored completely in your browser. Yes that is right none of the information is stored on the server, which allows you to edit a TiddlyWiki page even without a connection to a server. In fact it does not work by connecting to a server at all. TiddlyWiki works by using CSS and Javascript to save and manipulate the page contents and then save them in the file for future reference. The GTDTiddlyWiki implements the “Getting Things Done” concept a personal productivity method by David Allen. Have a go for yourself.

Links
GTD Tiddlywiki
TiddlyWiki
Getting Things Done Book

Posted by Egon Kuster at 09:35 PM

May 12, 2005

Error Handling in a Web Page using AJAX

I will start this quick blog stating that I really hate the term AJAX, which is just a marketing term some person has thought up to refer to the use of the Javascript XMLHTTPRequest object. However I do have to agree that it is much easier to just refer to AJAX rather than describe what you mean all the time. Well anyway, enough ranting. Here is a quick article on XML.com about using AJAX for error reporting in a web page. This articles also provides a good quick overview of the AJAX concept, well worth a read if you are into developing web pages and want to quickly communicate back to the server.

Links
Error Reporting with AJAX

Posted by Egon Kuster at 06:13 PM

March 12, 2005

Javascript and PHP

There has been lots of fuss about using Javascript and the XMLHTTPRequest object to communicate between the server and browser page. This communication method allows web pages to get extra data or communicate with the server quicker than refreshing the whole page just to retrieve a small amount of data. JPSPAN is an api to easily connect JavaScript with PHP scripts, have a look here.

Links
JPSPAN Home Page

Posted by Egon Kuster at 10:46 PM

March 11, 2005

Drag and Drop API for Web Pages

Want to be able to add drag and drop support to your web pages? Here is a really easy cross-browser DHTML Javascript library that allows you to do just that. This is a must for all web page developers.

Links
DHTML Library, Drag & Drop for Images and Layers

Posted by Egon Kuster at 05:39 PM

March 01, 2005

Another example of XUL

 Presentations T3Fscreenshots SplloadingConor Dowling has sent me a link to another application called 325 Factlog implemented using Mozilla's XUL interface definition language. This application uses RDF to store its database of facts and shows us another way of creating applications. The goal of the “325 Project” is to comprehensively document the year 325 when the west became Christian.

Have a play at http://www.the325project.org

If you are interested in the technical background or knowledge of some of the issues that have been encountered creating this XUL application then have a look at the technical blog.

Links
The 325 Project home page
Technical Blog
Direct Link to the XUL Application (requires either Mozilla or Firefox)

Posted by Egon Kuster at 05:26 PM

February 24, 2005

Heavy-weight Thin Clients

Here is another article in the series of articles that I have posted about using Javascript, CSS and XHTML to create a more responsive web-based application. This article is better than most as it describes the environment and technologies used much better than others and also contains a quick analysis of why this approach is good. The author seems to refer to something called Ajax, which I believe is what he calls this approach to web development. The confusing aspect is that it talks about Ajax as though it is something that you can download and program to. Nevertheless it is still a good article that discusses the technologies and why you would use this approach to web development.

 Images Publications Essays Ajax-Fig2

Links
Ajax: A New Approach to Web Applications

Posted by Egon Kuster at 06:18 PM

February 12, 2005

IBM Web Tools for Eclipse

IBM has released their initial release of J2EE development tools for eclipse free to the public. This is a subset of the tools found in IBMs new Rational Application Developer 6.0 tool suite (also built on top of eclipse).

Be ready to download lots of things for this as there are about 5 different support packages that need to be installed for the toolkit to work within Eclipse. In addition to these there is also a large number of third-party support downloads so be ready for quite a large download if you do not have these files already. There must be an easier way to install this plugin.

Links

IBM Web Tools for Eclipse Page

Posted by Egon Kuster at 08:22 PM

February 04, 2005

Separating Data, Style and Behavior on Web Pages

One of my favorite sites A List Apart has another great article about using JavaScript on web pages. This article identifies a potential way to separate your XHTML data that contains the content and semantic pages structure, CSS presentation data, and JavaScript behaviours. The described solution is to get JavaScript to attach its own behaviours to XHTML elements by manipulating the page's DOM.

For example with the following XHTML form:

<textarea class=“large” maxlength=“300” required=“true”>
</textarea>

You could add this JavaScript to validate the form without having to embed the JavaScript within the XHTML.

function validateForm()
{
 var x = document.forms[0].elements;
 for (var i=0;i<x.length;i++)
 {
  if (x[i].getAttribute('required') && !x[i].value)
    // notify user of error
 }
}

var x = document.getElementsByTagName('textarea');
for (var i=0;i<x.length;i++)
{
 if (x[i].getAttribute('maxlength'))
  x[i].onkeypress = checkLength;
}

function checkLength()
{
 var max = this.getAttribute('maxlength');
 if (this.value.length > max)
  // notify user of error
}

For a better understanding have a read of the article.

Links

JavaScript Triggers Article

Posted by Egon Kuster at 07:30 PM

February 01, 2005

JSON: JavaScript Object Notation - Lightweight Data Inter-change Format

I have been given a link to JSON (JavaScript Object Notation), which is a project to create a data interchange format that is as language independent as XML but not as heavy in the bandwidth and parsing requirements. JSON is based on the JavaScript Programming Language and has bindings in the following programming languages:

  • C
  • C#
  • Java
  • JavaScript
  • Objective CAML
  • PHP
  • ML
  • Ruby

Here is a sample JSON message:

{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": [{
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML", "markup"]}]}}}

The same text expressed as XML:

<!DOCTYPE glossary PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<glossary><title>example glossary</title>
<GlossDiv><title>S</title>
<GlossList>
<GlossEntry ID="SGML" SortAs="SGML">
<GlossTerm>Standard Generalized Markup Language</GlossTerm>
<Acronym>SGML</Acronym>
<Abbrev>ISO 8879:1986</Abbrev>
<GlossDef>
<para>A meta-markup language, used to create markup languages such as DocBook.</para>
<GlossSeeAlso OtherTerm="GML">
<GlossSeeAlso OtherTerm="XML">
</GlossDef>
<GlossSee OtherTerm="markup">
</GlossEntry>
...
</GlossList>
</GlossDiv>
</glossary>

Links
JSON Home Page

Posted by Egon Kuster at 11:49 AM | Comments (0)

January 28, 2005

Search Engines Against Spammers

Some of the largest search engines (Google, Yahoo, MSN Search) are getting together to combat spammers. The aim is to combat spammers who use forum and blog commenting features by allowing site owners to add “rel=”nofollow“” to your links. This additional HTML attribute will identify to the search engines not to follow the link hopefully meaning that the spammers can not automatically find site's comment forms via the search engine reducing the amount of spam.

If you want to enable this on your own blog, forum or online form then just add “rel=”nofollow“” to your <a> tags. For example, change this:

<a href=“the link to comment page”>link text</a>

to:

<a rel=“nofollow” href=“the link to comment page”>link text</a>

As you can see it is very simple.

Links
New Scientist Article

Posted by Egon Kuster at 09:17 PM

December 19, 2004

Google Suggest Ripped Apart

 Images Logo Google SuggestSince Google Suggest first appeared on the Internet everyone in the web development community has been beside themselves in how well it works. I have always been a big advocate of developing “light weight” user interfaces (ie not using applets or plugins and just using JavaScript and DOM) to create interactive and fast user interfaces to sights and web tools. Google is achieving these light weight web interface more often now, first with GMail and now with their Google Suggest feature.

For all you developers out there Chris Justus has extracted the JavaScript from Google Suggest and has gone through and commented everything so it is easy to understand. This will allow many others to use similar functionality in their own web development projects. Have a read here.

Links
Google Suggest
Google Suggest Dissected Blog Article
Google Suggest Dissected JavaScript (for the impatient people)
Previous Google Suggest Blog

Posted by Egon Kuster at 11:42 AM

December 12, 2004

JBoss Formally Enters Middleware Market

JBoss is formally announcing its move to expand its capabilities into the middleware market. By expanding its capabilities JBoss will start to compete against the BEA and IBM giants. One capability that interests me is support for a Business Process Engine developed by Tom Baeyens called jBpm (Java Business Process Management). This expands JBoss' components to include:

  • JBoss Application Server
  • EJB 3.0
  • Hibernate (Object/Relational Java Persistence and Query Service)
  • Javassist (Java class library for editing Java bytecode in Java)
  • JBoss AOP (Aspect Oriented Framework)
  • JBoss Cache (Replicated and transactional Cache)
  • JBoss IDE (Development Environment built inside Eclipse)
  • JBoss jBPM (Process Engine)
  • JBoss Mail (email server)
  • JBoss Portal (Portal implementation)
  • JGroups (Reliable multicast communication)
  • Tomcat (JSP and Servlet Engine)

It will be interesting to see how tight a package is created and whether it works easily without too much hair pulling.

Links
ComputerWorld Article
JBoss Site
JBpm Site

Posted by Egon Kuster at 10:01 PM

December 05, 2004

Where is IBM WebSphere for OSX?

I have been using Apple Macs for the past three years since OSX operating system was first released. Since my switch from PC to Mac I have been very happy. My day to day work mainly involves the use of email and office-based applications, however my other part of work is the development of middleware solutions using enterprise-grade application servers. The problem that I have is that many application servers available run on windows, linux or Solaris (plus other mainframe environments) but not OSX which makes it very painful for me to try out ideas, especially while traveling and using an Apple Powerbook.

Currently I am using IBM WebSphere on a windows platform and it made me start to think about IBM and the way it is marketing its products. IBM is the manufacturer of the G5 PowerPC chips as used in G5 PowerMac and in G5 XServes. IBM also develops the WebSphere application server. You would think that if it wants to sell more G5 processors it would allow its premier application server software to also run on their own hardware (namely Apple XServes). I realise that IBM makes its own server class machines (zSeries) and in the latest version of WebSphere 6.0 also contains support for a new processor on the zSeries machines to run WebSphere even faster, but why miss the XServe market. I would love to be able to move my development environment over to OSX so that I could use either Eclipse or IBM's development IDE and run WebSphere all on my Powerbook or on an XServe (for deployment). I have even queried local Apple representatives about this and had no reply.

So why doesn't IBM provide an OSX version of its application server as this will truly boost Apple's profile to create an enterprise grade application server. I hear you say that Apple does support JBoss, but this application server is not really recognised in corporate and government circles. It makes sense to me for this fusion as Apple wins by having a truly enterprise class application server, IBM wins by selling more of their PowerPC processors and application server products and mac developers out there also win by not having to mix their development environment with those evil windows machines.

Posted by Egon Kuster at 04:12 PM | Comments (2)

November 20, 2004

Sorting HTML Tables

Here is a great article on sorting HTML tables using Javascript and the Browsers DOM.

Links
HTML Table Sorting

Posted by Egon Kuster at 02:28 AM | Comments (0)

November 08, 2004

Java Server Faces Console for Eclipse

Just reading the RSS feed for the Eclipse plugins and I noticed this program called Faces Console. This application is a standalone Swing application that can manage your JSF applications and tag libraries. The console can also be used within Eclipse by right clicking on the JSF file and selecting to open it in the Faces Console.

Download Faces Console

Posted by Egon Kuster at 11:34 PM | Comments (0)

October 29, 2004

Actual Example of a “Rich” Web Client

One of my friends and colleagues (Matthew Phillips) has sent me a link to a page about an application that has been written using Mozilla's XUL. As I have previously written XUL is the XML markup language used by the Mozilla-based Browsers (Mozilla and Firefox) to render the user interface. This site talks about using XUL to develop a “rich” web application to search for products on Amazon.com. You can run the rich client as either an extension or online (like a web page). I believe this type of rich client is the future for all web-based applications that require a centrally managed application repository while retaining highly interactive client-side capabilities.

Have a go for yourself. (You will need to install Firefox or Mozilla)

Links
MAB Rich Client
Download Firefox
Download Mozilla

Posted by Egon Kuster at 12:30 AM | Comments (1)

October 28, 2004

Scrollable CSS Table with Fixed Header

Found this good CSS table that keeps the header roll fixed while the rest of the table can scroll within the page. The table itself is defined in HTML using the table, tr and td tags and then uses Cascading Style Sheets to make the rows scroll while the header does not move. The author has even be able to make it all work on basically all browsers.

Links
CSS Scrollable Table with Fixed Header Example

Posted by Egon Kuster at 09:57 PM | Comments (0)

October 23, 2004

“Rich” Web Clients

I am a keen advocate for “Rich” internet clients. By “Rich” I do not mean Java Applets, but web pages that provide a more complete user experience without having to request new pages from the server whenever the user clicks a button or link. There are few different approaches that provide this type of functionality including XUL (Mozilla Platform), Macromedia Flex and traditional JavaScript and DOM. Many web developers do not exploit the powerful capabilities provided with JavaScript and DOM. A recent example of this type of “Rich” client is Google's new Gmail capability that uses JavaScript and DOM to create a very quick and snappy user interface. By using JavaScript Google has been able to only send the basic requests and data transfers rather sending whole page changes back to the client. This of course takes quite a lot more client-side JavaScript development but does create a very powerful user interface. If you are interested in more information about the Gmail Agent API have a look here.

The Mozilla Platform is a more developer friendly approach as you define your application's interface in XUL and then link it together with JavaScript. However this approach requires your users to use a Mozilla-based browser (Mozilla or Firefox).

For the most interactive “Rich” client experience that will work on any browser Macromedia Flex is your product. Flex is based around a similar concept of Mozilla by defining your interface using XML documents and then linking it together with a scripting languages (Macromedia ActionScript). The difference is that Flex's client is built inside the Macromedia Flash player (available on almost every platform and browser), which allows for highly dynamic and pretty user interfaces. Flex is deployed using a J2EE server and can communicate back to the server by making Web Service calls or exchanging Java objects.

Gmail's approach works on all browsers but is technically much harder to implement. Mozilla's approach works well but requires a Mozilla-based browser. Macromedia's approach provides the best of both worlds but is not free and requires extensive server support. So if you are a web application developer please consider one of these options and provide a more advanced experience for your users.

Links
Mozilla Web Site
Firefox Site
Gmail Agent API Article
Macromedia Flex Site

Posted by Egon Kuster at 07:56 PM | Comments (1)

October 21, 2004

Enterprise Agility: ESB, SOA, Web Services

Web Services Pipeline has another great article about web services by Fred Cummins. This article talks about enterprise agility and how Enterprise Services Bus (ESB), Service Oriented Architectures (SOA) and Web Services can help create an agile organisation. The article is a must read for anyone interested in the way web services are heading as it identifies a good list of requirements to support an Agile environment, or really any large web services deployment. The article also goes onto to concisely identify the middleware requirements and the components that create a complete enterprise service environment.

Links
Web Services Pipeline Article

Posted by Egon Kuster at 11:45 PM | Comments (2)

October 08, 2004

Apache Pluto 1.0.1-rc1 Released

The Apache guys have released a release candidate of Apache Pluto. Pluto is an implementation of the JSR-168 specification that defines an API to be used for the development of portlets to be deployed into a complete Portal implementation. Before JSR-168 each of the portal implementers had the own methods to develop portlets and provide access to personalisation and presentation features. Pluto is not a complete Portal implementation but it does provide the APIs required for the portlet development.

Links
Pluto Home Page

Posted by Egon Kuster at 11:33 PM | Comments (0)

October 07, 2004

IBM WebSphere 6 Announced

Ibm LogoIBM has announced that its new version of WebSphere Application Server Version 6 will be available in December 2004. This is a key release from my point of view as this will be the first release of IBMs J2EE application server to support the J2EE 1.4 standards and of most importance includes Web Services as standard. In the previous J2EE standard Web Services were not included as a core technology, therefore each handled Web Services differently. This created a nightmare when moving code between J2EE servers implemented by different vendors. A pre release of WebSphere Application Server Version 6 has been available to developers for quite some time on the IBM website and is still available if you want to try it out before the official release in December.

Links
IBM Website
The Register Article on WebSphere 6
ZDNet Article on WebSphere 6
CNet Article on WebSphere 6
IBM WebSphere Developer Pre-release Download

Posted by Egon Kuster at 01:42 AM | Comments (0)

September 10, 2004

Internet Chat with the Internet Explorer Development Team

On the Mozilla ezine was a quick little article about a recent Internet chat with the development team from Microsoft working on the Internet Explorer browser. Posted in this blog are the chat logs so that you can read for yourself the questions and answers written in the chat session. Unfortunately the chat session did not reveal any amazing tidbits of information although does identify that work is under way for a new version of IE to be released in the future (no dates were given).

One question that I have that was not answered was when Internet explorer will be using the same DOM as other browsers so that the same JavaScript can be developed and used in ANY browser. The day that this happens I will be a very happy boy.

Links
Internet Explorer Chat Blog
Text Version of Chat Log
Rich Text Version of Chat Log

Posted by Egon Kuster at 08:52 PM | Comments (0)

September 09, 2004

FOAF: Friend Of A Friend Vocabulary

The Friend Of A Friend (FOAF) project is aiming at creating a language that uses both XML and RDF to define a language that can describe the relationships between people and resources in a machine readable format. This works by individuals defining their own FOAF definitions and the exposing the URL of this FOAF file so that others can access and use the data. Exposing the FOAF files allows for a FOAF aggregator to consume multiple FOAF files from multiple individuals and by merging the data can define a complete community of interest.

For a basic description of how FOAF works have a read of Edd Dumbill's article on the IBM DeveloperWorks site. For more detail go to the FOAF home page.

Links:
FOAF home page
DeveloperWorks Introduction to FOAF article

Posted by Egon Kuster at 12:39 AM | Comments (0)

August 26, 2004

Open Source J2EE Components

I have been looking into the JIRA and Confluence products by Atlassian have found that most of the functionality is provided by a few open source components from OpenSymphony. OpenSymphony is an open source project that is developing a number of open source components to support the development of J2EE applications.

Components Provided
WebWork - MVC framework that stresses simplicity and interoperability.
OSWorkflow - Flexible workflow engine based on finite state machine concept.
Quartz - Job scheduling system.
SiteMesh - Page layout and decoration framework that cleanly separates content and presentation.
OSCache - Web-tier caching framework which enables massive speed increases and improved error tolerance.
OSCore - Set of utility-classes useful in any J2EE application.
XWork - Command pattern framework.
PropertySet - Typed properties storage framework.
Clickstream - Utility to track the current users on your site.

Links
OpenSymphony Home Page
JIRA Product Page
Confluence Product Page
Atlassian Home Page

Posted by Egon Kuster at 10:32 PM | Comments (0)

July 31, 2004

CSS Tabs

Unraveled.com has a nice and simple article about creating page tabs by only using CSS, which also works in many different browsers

Links
CSS Tabs Article

Posted by Egon Kuster at 12:13 PM | Comments (0)

July 27, 2004

Gluecode and Geromino

Gluecode who produces Portal and Business Process products has announced its support of the Open Source Geronimo project. Geronimo is an Apache Foundation project working towards releasing an open source J2EE container to rival the large J2EE providers like IBM and BEA.

Links
Apache Geronimo
Gluecode
Gluecode Products Page
Article on Gluecodes support to Geronimo

Posted by Egon Kuster at 09:43 PM | Comments (1)

July 24, 2004

Web Standards coming to a desktop near you.

Web Standards like JavaScript, DOM, HTML, CSS, XML are starting to become more common place in desktop applications. Mozilla already uses XML to define its GUI using their XUL markup language and then use JavaScript as the glue. Apple has also previewed their new Dashboard capability that will allow developers to create widgets that are quickly displayed or hidden by entering a hotkey shortcut. These new capabilities are becoming more and more prolific and signifies a paradigm shift of using these standards in desktop-based application development rather than relegating their use in web based applications using standard client-server architectural designs.

The reason that these standards are becoming more prolific for desktop applications is because of their flexibility, ease of use and platform independence. As more and more applications are becoming network enabled it is a logical step for these web-based applications to be run directly on the desktop. These standards are also very powerful and could be used to develop applications that run both as web-based applications accessed by a standard Internet browser or as fully fledged desktop applications.

The common uses for these standards include:
- Use of XML to define and build GUI components
- Using javascript and other scripting languages as the runtime glue to build the application
- providing lightweight user interfaces that provide a quick access to information that can also be skinned so that users can select the overall look and feel of their application.

I foresee that over the next couple of years you will see a greater number of these localised web applications appearing that support and use web-based standards to provide standalone or network centric applications.

Posted by Egon Kuster at 05:37 PM | Comments (0)

July 23, 2004

What is new in JWSDP 1.4

Sun has released version 1.4 of its very popular Java Web Service Development Pack (JWSDP). If you are interested in quickly finding out what is contained in version 1.4 have a read of this article on java.sun.com. The key updates are the support of all the latest Web Service Standards including the Basic Profile 1.1 standard, which is backward compatible with Basic Profile 1.0 so that it will still integrate with other web services. Also included is a UDDI registry and support of JSP and Java Servlets so it is possible to use the JWSDP to develop and run complete web applications using the bundled Apache Tomcat web container.

Links
Download JWSDP 1.4
Read What is new in JWSDP 1.4 article
java.sun.com

Posted by Egon Kuster at 12:54 AM | Comments (0)

July 05, 2004

BPEL - Business Process Execution Language

BPEL is still in the press and news feeds as the next new thing in the Web Services space. BPEL is a definition language that uses XML to define business processes at a level where business analysts can define an enterprises processes but in a structure that can be used to execute this defined process and coordinate web service activation.

A new article at InfoWorld talks about the BPEL standard. But BPEL is not the only fish in the sea with WSCI (Web Services Choreography Interface) and WSCL (Web Services Conversation Language) as competing standards under development by the W3C standards organisation. BPEL is being developed under the OASIS standards organisation and is supported by some of the larger application and middleware vendors like IBM, BEA and Microsoft. To stop the W3C and OASIS fighting about these standards Oracle and a few other vendors are starting work to coordinate between these standards efforts. The idea is for BPEL to focus on the internal processes while WSCL on external processes so that these two languages are complimentary. Time will tell as to which standard becomes dominant.

Posted by Egon Kuster at 11:45 PM | Comments (0)

June 24, 2004

How to implement a DMZ

Lockergnome has a great little article describing how to implement a simple DMZ for securing a corporate LAN. Demilitarized Zones (DMZ) are used to secure corporate or home networks so that malicious users on the internet can not hack into you local systems while still being about to expose your public web sites, FTP servers and game servers.

Go to article

Posted by Egon Kuster at 11:45 PM | Comments (0)

June 22, 2004

BPML and BPEL4WS

bpmi_logoThe Business Process Modeling Initiative (BPMI) is an interesting organisation responsible for the development of three specifications, BPML (Business Processes Modeling Language), BPMN (Business Processing Modeling Notation), BPQL (Business Process Query Language). These specifications are to be used for the design and development of business processes. If you are familiar with BPEL then BPML is a superset of BPEL, for more details on the interelation then read this very short article. Also of interest is that the BPMI site has a very good list of articles about the Business Process modelling space and can be found here.

Posted by Egon Kuster at 12:37 AM | Comments (0)

June 17, 2004

The next wave for application development

The first applications were only run on large mainframes with a limited number of users normally running batch processing. This was then replaced with the introduction of personal computers and the development of applications to run on these operating on local files. Soon applications were started to be developed that still ran locally but accessed remote databases and networked file repositories. From here we have now a trend in the development of web-based clients (eg. HTML in a browser) to deliver applications to the user, otherwise known as thin clients.

More and more you are seeing applications being developed using thin clients as the user interfaces, however there are many issues with the use of thin clients to provide dynamic or interactive applications for users. Now there is a new trend gathering momentum to use XML-based rich clients to develop applications.

Coach Wei has produced a short article on the Computerworld about XML Rich clients and this new trend.

Go to Article

Posted by Egon Kuster at 08:39 PM | Comments (0)

June 16, 2004

Dynamic Text Replacement

When building web pages one of the biggest problems is using a font that will be available on all the potential viewers so that it can be displayed in the browser. To get around this problem most web developers resorting to using a graphical editor and create a static graphic with the formatted text required. This works fine for text that is static and will never change, but for headings or toolbars where the text will change or you do not know what the text will be at development this static image option will not work.

One of my favorite sites A List Apart has an article that outlines another approach. Stewart Rosenberger uses an approach of a server side script to transform the text into an image that is automatically added to the page rather than a static image. This allows for any font to be used (as long as it is installed on the server) and displayed in an image dynamically.

Posted by Egon Kuster at 08:44 PM | Comments (0)

June 12, 2004

Distributed Java Web Applications

When developing Java Web Applications there are times when you need to cluster or load-share your applications to improve performance, provide better availability or create fault tolerance. There a number of approaches possible but many can not handle all cases especially when user session objects are involved. A new open-source effort has been started called WADI (Web Application Distribution Infrastructure) to provide the features required. WADI will also be included into the Apache Geronimo project when it is more complete.

Go to Greg Wilkins review of WADI
Go to WADI Homepage
Go to Apache Geronimo Homepage

Posted by Egon Kuster at 10:17 PM | Comments (0)

Web Service Standards

There are way too many web service related standards in development or already available. For any developer new to web service of wanting to expand their abilities can easily be swamped by the numerous WS-* standards and what they are. Microsoft as part of its online MSDN library has a great site that contains information about most of these standards. The sites does not provide any way to identify which standards you should use in your application development or system integration but it does provide a way of finding information about what each of the standards contain.

Go to Microsoft Web Service Standards Site.

Posted by Egon Kuster at 09:42 PM | Comments (0)

Why XML has been so successfull

XML was first approved by the W3C as a standard in 1998. Since then the uptake of this standard has been quick and extensive, why is this so?. Peter Abrahams on the IT-Director.com website discusses this topic and describes some of the reasons why XML has had such a great uptake. Peter discusses that the real reason that XML has done well is not because of superior technical capabilities but more about its benefits to business and commercial industry.

Go to full article

Posted by Egon Kuster at 05:02 PM | Comments (0)

June 08, 2004

Web Based WYSIWYG Editor

thumbnail_kupu-plone.jpgEver wanted a WYSIWYG editor that you can run in a web page? Well now you can with Kupu. Kupu is a 'document-centric' open source client-side editor for Mozilla, Netscape and Internet Explorer. It uses JavaScript and DOM to create the HTML in your document so that you can edit web pages in a browser or edit documents stored on a server. It is possible to incorporate Kupu in any development project that you have. If you are interested in a demonstration of the product go here

Links:
Kupu Home Page
Kupu Demonstration (note: does not work in Safari Browser)

Posted by Egon Kuster at 11:10 AM | Comments (0)

June 01, 2004

Drag and Drop in a Web Page

I am developing a web application at the moment and I wanted to be able to drag and drop items in the web pages presented to the users. Having a look around the web to see if there is anything done before I found this web page. On this page Walter Zorn describes how his javascript library works with numerous examples to help demonstrate the capabilities. It also seems to be completely cross browser compatible, even working on Safari. If you find a browser that it does not support please provide a comment to this blog entry.

Go to article

Posted by Egon Kuster at 08:33 PM | Comments (0)

Sample CSS Site

Here is the coolest site for all you Cascading Style Sheet (CSS) developers out there:

CSS Zen Garden

It is a wonderful site that uses a standard HTML file that has been completely marked up with divs, spans and ids but with absolutely no formatting. It then allows people to submit CSS files and graphics to display their creativity on how they can format the page. This page really shows off the power of CSS and as a plus they provide the CSS the developers use so you can see how they did it.

Posted by Egon Kuster at 06:32 PM | Comments (0)