Ajax Fundamentals – Part 4

Index | Part 1 | Part 2 | Part 3 | Part 4 | Part 5

5. Development and Debugging Tools

5.1. Documenting JavaScript

JSDoc is an open source tool used to add inline documentation to JavaScript source files.   JSDoc is based on the javadoc tool.   Many of the javadoc characteristics have been included in JSDoc.   An example of using JSDoc can be found here.

5.2. Firefox Tools & Extensions

DOM Inspector is included in the Mozilla Suite and Firefox browser.   This tool provides a graphical user interface that enables a user to brows the document object model of any site.   One can view, update and insert DOM attributes dynamically.   In order to assist JavaScript developers, DOM Inspector can be switched to JavaScript Object mode.   This shows all the properties and methods available to a JavaScript for a particular mode.   DOM Inspector provides a JavaScript evaluation window that allows the user to execute JavaScript against selected nodes.   There is the option to use CSS Style Rules and Computed Style information.   This allows a user to examine the CSS attributes associated with different page elements.

Firefox JavaScript Console is a tool that logs JavaScript errors found on a page when the page is rendered.   The Firefox JavaScript Console gives ‘compiler-type’ messages.   It describes the error that occurred and the gives the line number.

Firebug integrates with Firefox and provides many development tools.   Firebug has a version of a DOM inspector that enables a developer to find elements.   CSS support allows settings to be altered and viewed.   Firebug allows one to monitor the network activity in order to determine how long it takes for different sections of a page to download.      A JavaScript Debugger allows one to debug and step through the JavaScript at runtime.

Continue reading

Very High Level Language – So what?

When I first heard about Python I thought this is just great. I have had to listen to countless conversations about Java vs. C# and now we have to go through it all again with Python thrown in. I know Python is older than Java, but I only came across it after C++, Java etc. Python and Ruby are described as being Very High Level Languages (VHLL). When I heard that term for the first time I thought here comes another meaningless, yet ubiquitously used acronym. At first I did not pay much attention to these languages. I was very familiar with Java, C# and PHP. I figured Ruby and Python could not be too different from these languages. And sure, I may have been caught up in some Microsoft sales propaganda…

As with many developers, it was Rails that pushed me into learning Ruby. From the start, I really enjoyed Ruby – and still do. Dynamic scripting is a real eye-opener! Although I was enjoying this new dynamic paradigm, I still did not see much value in calling it a Very High Level Language.

This all changed at SPA. I attended “Agile Development for the Web and Elsewhere: A Tutorial in Python” presented by Nick Efford. In my opinion, this was the best session at SPA. Well organised and the content was spot on. It was a 6 hour session and Nick made many valuable points. He also explained the VHLL concept in great way. This was done with the use of this simple and effective slide.


This is when I had my first real VHLL a-ha! moment. Nick had placed Python and Ruby in a different class to Java and C#! I had realised that these languages were dynamically typed while Java and C# are (mostly) statically typed. I knew I was not comparing apples with apples, but I thought I was comparing apples with oranges. It turns out that I was comparing apples with apple pie.

When coding in C# you do not need to worry about the low level details that a C programmer needs to be concerned about. Similarly, when programming in Ruby you should not be concerned about the low level details that a C# programmer needs to worry about. Most of us are aware of the low level details a C programmer is faced with e.g. garbage collection. Now what low level details are there at the C#\java level? We can explore this with a simple example.

Continue reading

Ruby and Ruby on Rails IDE

Ruby: “Say hello world to my little friend

Java has Eclipse, .Net has Visual Studio (with ReSharper) and now Ruby has NetBeans! The NetBeans IDE is fast becoming the IDE of choice when it comes to Ruby development. It supports auto-completion, smart navigation and refactoring. In addition to this, NetBeans supports Ruby on Rails!

NetBeans IDE

There are numerous ways to get up and running. In a previous post I suggested Instant Rails as a quick start. You can use NetBeans and Instant Rails together; Brian Leonard’s Blog explains how to do this. If you download the Ruby bundle of NetBeans you can skip some of the steps in Brian Leonard’s tutorial.

Wanted: A Good Ruby on Rails 2.0 Tutorial

There have been many enhancements to the Rails framework. These changes have effected the scaffolding, exception handling , collection fixtures etc. For details about these and other changes I recommend this page.

If you are looking for a Rails 2.0 tutorial, that actually works, then you should visit Fairleads. This tutorial works perfectly. It will help you get to grips with the basics of the Model-View-Controller design of Rails.

If you are using Windows use Instant Rails to get up and running quickly! Instant Rails is a complete package containing Ruby, Rails, Apache, and MySQL. It does not need to be installed. It runs from within a folder of your choice. It will not modify your system. It is not the best looking system, but it does the job well.



Obviously you can use Instant Rails and still follow the Fairleads tutorial. Where Fairleads uses the ‘work’ directory you should use the ‘rails_apps’ folder. You should have your Rails ‘exchange’ application up and running in no time…


Microsoft - Silverlight

Silverlight is a Microsoft plug-in which provides support for Rich Internet Applications (RIAs). Silverlight enables graphical and animation displays with multimedia and interactivity built in. This is comparable to the functionality provided by Flash. Similarly to java, Silverlight runs within a sandbox to cater for security. The programming model is extremely flexible supporting multiple languages including VB, C#, Python, and Ruby. Silverlight integrates with existing AJAX style Web applications.


The Silverlight plug-in uses Extensible Application Mark-up Language (XAML) to render user interfaces within a browser. Silverlight can run on Explorer 6+, Firefox 1.5+ & 2 and Safari 2 on the latest Windows (XP, Server 2003 and Vista) and Mac OS X platforms. The plug-in is capable of playing different media formats (VC-1, WMA and MP3). The plug-in does not require the .NET Framework or Windows Media Player to be present on the client.


Microsoft – Silverlight



Developer Fusion