31 July 2006

Ultimate Web Developer Lists

While searching for some developer information I found the Ultimate Web Developer List. How utlimate it is depends on your own perspective I guess, but it contains a lot of information.

New Open Source Web Development IDE: Aptana

Aptana is a web development IDE based on the eclipse platform. It has a strong focus on Javascript, but it's a real nice plugin for web development. Since I try to use nothing else then Eclipse during my development, I'm very happy to see it's also available as a single Eclipse plugin. It's free and soon to be open sourced.

Via Ajaxian.

28 July 2006

Google launches Subversion driven open source project hosting service

At OSCON, the O’Reilly open source conference, Google announced an open source project hosting site called: Google Code Project Hosting. Greg Stein, an open source engineer with Google and chairman of the Apache Software Foundation, says in an interview with NewsForge that it's not supposed to rival SourceForge.net, but I guess that SF will of course suffer from Google's new service.

Google's new system is built on a modified Subversion repository that stores it's data in Big Table, a scalable, storage technology used in Google. Subversion is a very flexible and proven technology these days.

At a first glance, the smooth AJAX interface is not very present as with GMail and Google's Calendar, but as allways the interface is very straightforward. For now it doesn’t provide as much information as you would expect, but as Stein says: "it's not yet feature complete". They are working very hard on delivering new features.

Stein describes the project as ideal for smaller open source projects, rather than larger projects with more complex needs, such as Apache. However, they also say that larger projects are welcome of course.

Well let's wait and see what happens with this new service. A little competition doesn't hurt anybody!

27 July 2006

Picasa Web Albums


picasa_logo.gifGoogle has been busy as always. Creating new features, new application and thinking of innovative solutions.
Recently they released Picasa Web Albums. As you might have guessed, this is another web 2.0 application. It looks a little like Flickr, but has a real Google feeling to it.



Web Albums is free to use if you have an Google/Gmail account. The new Picasa version with the Web Albums feature is currently Windows only. Each Picasa Web Albums account comes with 250MB of free storage space, or room to post and share approximately 1,000 wallpaper-sized photos (at 1600 pixels each). Of course there is also an account with more space for a small fee.



26 July 2006

Lookout: Fast searching in MS Outlook

For all those Windows users out that still suffering with MS Outlook there is a free extension available that will boost your search result and give a result from your entire mailbox within seconds. It's called Lookout and it's quite old actually. Maybe some of you already heard about it, but I still wanted to mention it.

Lookout can search your messages, contacts, notes, etc and can be used in combination with Outlook 2000, Outlook XP and Outlook 2003, running on Windows 2000 or later. If you are in need of a fast search engine, go and check it out at their website. I noticed they are bought by Microsoft now, but the product still remains downloadable through their website.


11 July 2006

Javascript debugging in Internet Explorer

I guess most web developers feel the same about Javascript debugging in IE. I think it's really hard and it sucks bigtime. I just did not want to start placing alert's all over the place again, to see what was going on. There is just not enough information comming from the browser (by default), about what's really going wrong compared with how Firefox handles Javascript errors. The best Firefox script debugger in my opinion is Venkman of course. You should really give it a try.

In IE's alert window, the line number of an exception is almost always incorrect and nowhere to be found. After a frustrating start today, I went searching for what I hoped to be an extensions or something similar to improve IE's functionality.

I found out that there are a couple of them. Microsoft released a new script debugger with their latest Microsoft Office (XP/2003), called 'Microsoft Script Editor'. As an alternative you can also use the 'Microsoft Script Debugger' which is free to download from the Microsoft website. I never noticed it, but could it get any worse? I gave it a try and it presented me with more useable information of what IE was complaining about, so it made me very happy.

Before using any of these script debuggers you will have to enable debugging in IE.

Go to tools->internet options->advanced. Make sure that “Disable Script Debugging (other)” and “Disable Script Debugging (Internet Explorer) are NOT checked.

07 July 2006

Debugging the Hippo CMS GUI framework

All user interface components within Hippo CMS are handled by a javascript framework, which regulates the interaction between the different views and perspectives within the user interface. This framework will also handle the AJAX requests to the server for updating all perspectives and views.


I think one of the most unknown and underestimated features within Hippo CMS is the ability to debug this framework. If you want to create a new view or perspective within the CMS you will have to get a deeper understanding of what is going on in the background.


Ok well I will stop talking and show you guys how to do this! The configuration for the framework can be found in the framework component.xml. Each important component in the CMS has it's own component.xml. (perspectives, framework, workbench). For the debugger window to appear you will have to modify the following framework attributes:



  • showLogger: set this to true

  • logEnabled: set this to true

  • logLevel: set this to '1' to put this to DEBUG

  • logger: this should be the name that represents you component in the debug window.


A typical example of the framework component configuration is shown in the next code sample.




undockLogger="false" logEnabled="true"
logFrame="bottomframe" topFrame="topframe"
mainFrame="mainframe" logLevel="1"
logger="framework">

container="top" maxPoolSize="20"
wrapper="/workbench/remoteCall">


className="EventManager">




Each perspective has it's own component.xml file, where you can add the logger attribute to display only the messages of that specific perspective. So did you modify your component? OK! Now refresh the CMS instance in your browser window and you will notice the debug window in the bottom of the page. You can also detach this window if you want or detach it by default (see the other configuration options in the framework configuration). This debug window should give you enough information on what's going on inside the CMS, why your new view isn't working or what calls are beeing made to the server.


logframe.png


More information on how to handle debugging in Hippo CMS can be found on http://www.hippocms.org.



06 July 2006

Configurable cocoon.createObject()

Today I was working on a new feature in the CMS. I had to do some flowscript coding in order to implement this feature. By default you can create an instance of a Java class in flowscript by using the following syntax:


cocoon.createObject(Packages.nl.hippo.cms.Class);


Since I did not want to hardcode my class file, but wanted to create a configurable object, I had to find a solution.
So first I set the value of the variable in the DefaultsModule. (this can also be a XMLFileInputModule so you can really make this configurable from outside of you Cocoon application.



<component-instance class="org.apache.cocoon.components.modules.input.DefaultsModule" logger="core.modules.input" name="myconstants">

   <values>

     <cms-object>nl.hippo.test.XMLDemo</cms-object>

   </values>

</component-instance>



So now from my flowscript I can fetch the value of the cms-object constant.



var myConstants = cocoon.getComponent(InputModule.ROLE + "Selector").select("myconstants");



var myObject = myConstants.getAttribute("cms-object",null,null);



// Add the "" to the myObject variable, otherwise the interpreter will think that it's a scriptable object instead of a String or Class object.



var myXMLObject = cocoon.createObject(myObject+"");


You will have to declare the import for the Cocoon input package at the top of your flowscript before this will work.



importPackage(Packages.org.apache.cocoon.components.modules.input);

Well that's it! I could not find any documentation about how to do this. I hope this small chunk of code will help others out in the future.



Usefull links:




01 July 2006

ApacheCon Europe 2006 part 2

I'm sitting outside now in sunny Amsterdam, after catching up some sleep, rethinking the ApacheCon Europe 2006 in Dublin. Arthur, Dennis and myself arrived on wednesday evening, so we had all thursday to attend sessions. Most of them were about AJAX, but there were some other interesting sessions that I really wanted to attend as well.



The day started late for me, since I had to attend some other business first, which I will tell you about in a couple weeks or so. In the morning I had planned to attend the "The WebWork and Struts merger" session and the "Introduction to Apache MyFaces", but I was not able to join them due to the above. Arje did attend the session about Apache MyFaces and you can read-up on what happened during that session.
The next session was "MyFaces and Ajax" which was more about AJAX, then it was about MyFaces. I was interested in the AJAX part anyway, but afterwards I can't really think of what I was trying to get to know about this particular subject. It's just another way of implementing AJAX within a framework. What I did find interesting was that you hear a lot of projects switching from Prototype to the Dojo toolkit libraries. What really is there to learn about AJAX? In most cases it's just a couple of libraries for some fancy effects, XMLHTTPRequest handling or DOM processing.
In the afternoon I attended a session about "Building Highly Available Apps" which I found the be very interesting. The session was about how to build end-to-end highly available multi-tier web applications using Sequoia (http://sequoia.continuent.org) with Apache HTTP web server, Tomcat, Geronimo and Derby. The main focus in the talk was about using Sequoia.
The great thing about Sequoia is, that you do not have to change your application in order to use it, but you will just have to change the way you application connects with JDBC or ODBC. It also features high availability through an advanced RAIDb technology. I really need to give this prodcut try!
The last real session that I attended in the afternoon was about Cocoon and REST by Gianugo Rabellino. Gianugo is always fun to listen to. He's serious but has a nice way of presenting a certain subject. The talk was nothing new, but I never heard the term REST before. I learned REST (Representational State Transfer) is an architecture style of networked systems.
When all sessions ended, the Lighting Lottery Talks started. It was my first time, but it was very serious, but also very funny! Johan also did a small serious 5 minutes talk about SAnt (Shared Ant). One of the funniest session was: "What's on Kens belt". It was hilarious.
Well so far for my first ApacheCon EU experience. It was great and I hope to see everybody next year!