January 2006

You are currently browsing the monthly archive for January 2006.

[IPD] Form Manager

Invision Power Dynamic is a very modular system. At IP.Dynamic’s core is nothing more than a framework - the actual functionality comes from the ‘components’.

IP.Dynamic will ship with default components, such as the menu manager, articles manager, RSS import/export manager and a form manager.

The form manager has been designed as a flexible system that can handle pretty much every form requirement you might have; from a simple contact form to a more complex customer survey.

The form manager allows one to capture the input as well as email the results to multiple addresses or activate a custom module when the form has been completed so that you can use the form manager to power your own mini-applications.

The movie shows a form group’s options, a form field’s options as well as browsing the form results. The ‘public’ side looks very scrappy - this is because we’ve still to create the ‘default’ site HTML and CSS so we’re still using the alpha tester’s demo site for the output with IPB CSS. This will all be cleaned up prior to shipping.

IPD: Form Manager (Quicktime .mov 9.1mb)

[IPD] Pedigree Chum

We, at IPS towers, often eat our own dog food. We do this with development builds to discover new better ways of presenting our product and to high light any areas which can be improved.

Rob (IPS designer / web site lead) has been working with IPD at a top secret location for top secret reasons and he’s been busily offering suggestions which he’d find useful and it’s been a very productive experience.

One area highlighted was the initial confusion with the components and how one uses components in a page. It was felt that it was too cumbersome to have one click on the components tab, click on the component ‘Manage’ link and then proceed to add or edit a new instance of that component (such as a new articles group, etc) and then, click back on the ‘Content’ tab, click on the page one wishes to edit to use the ‘Insert IPD Tag’ from the text editor.

My solution was to tweak the components framework a little and allow the IPD user to choose which type of page they want to create. If they choose advaned, they are taken immediately to the normal IPD page form (complete with proxy options, etc). If they choose a component page, they get a slightly ‘dumbed’ down form with separate rich text editors for content above and below the component along with a link that creates a pop-up window with the component’s manage screen loaded.

The result is a much easier introduction to IPD. Advanced users will appreciate the flexibility of being able to use multiple components on a single page.

IPD: Adding a new page (Quick time .mov 7.2mb)

This blog entry started out as a reply to comments on my previous blog about Web 2.0 and the abuse of AJAX. It turned into another mini-rant that was a little too lengthy for a comment, so here we are.

I think the thing that irritates the most is that “Ajax” is a term than captures most ‘new’ DHTML methods.

Ever since the iFrame we’ve been able to send POST data quietly back to our scripts and read the results for javascript to add to the DOM. In fact, I wrote a prototype spellchecker (IPS SpellWell) years ago that used an iFrame to send the raw data back to the spell checker script which returned the corrected version.

Certainly, using XMLHttpRequest is a much neater solution that doesn’t require ‘hacky’ methods such as the iframe - but that’s all it is - a neater DOM method.

Let’s face it - nearly all the ‘flashy’ work that makes “AJAX” seem so cool is nothing but bog-standard JS work that’s been done before.

Take IPB’s “edit topic title in place” feature: (For those that don’t know, IPB 2.1+ allows one to click and hold the topic title in a forum listing which turns it into a text input box. On clicking away from the text box or hitting enter, it’ll turn back into a normal topic title using the newly edited text). The actual ‘whoo’ factor comes from simply taking a span of text and making it a CSS styled text input box. The “AJAX” part is totally invisible.

Moving on, it seems that someone else has a great idea: Wouldn’t it be cool if we could use “AJAX” methods but using an iframe! I give it a week before someone has dubbed it “AJAF” (Asynchronous Javascript And iFrames).

I read the term “mashup” the other day. This is another Web 2.0 buzzword that encapsulates the result of taking two “Web 2.0″ APIs and creating a new product (for example, taking the Google Maps API and using it with the Flickr API to render a map with the Flickr user’s location pinned on it). It’s another buzzword that makes me want to cry. Whenever I read it or hear it, it strikes me as something a terminally untrendy person would say at a party to appear trendy. “Oh yeah, I saw a wicked mashup the other day online”.

Seriously. Enough. Please.

It’s not often than a media buzzword can make you start to really dislike a technology or technique - but everytime I read or hear “Web 2.0″ I want to tear out every single AJAX enhanced feature of IP.Dynamic and weep quietly in the corner.

Don’t get me wrong; I love what AJAX can do for web applications and used correctly it can solve many design problems that would be cumbersome without it. However, when I see people jump all over a new product or script just because it uses AJAX, I want to vomit. I remember someone showing me a WHOIS script that used AJAX to give the results inline. It wasn’t a very pretty or complicated script and an iframe or a page reload would have acheived the same result but as it used AJAX, it was being held aloft as another shining example of why Web 2.0 is a revolution.

Josh sent me a link this morning which sums up my feelings in a much more eloquent manner than I can muster:

Steven, a young web wiz, has just celebrated his bar mitzvah. He received a dozen gifts and must write a dozen thank-you notes. Being webbish, he creates an on-line “Thank-You Note Generator.” Steven shows the site to his friends, who show it to their friends, and soon the site is getting traffic from recipients of all sorts of gifts, not just bar mitzvah stuff.

If Steven created the site with CGI and Perl and used tables for layout, this is the story of a boy who made a website for his own amusement, perhaps gaining social points in the process. He might even contribute to a SXSW Interactive panel.

But if Steven used AJAX and Ruby on Rails, Yahoo will pay millions and Tim O’Reilly will beg him to keynote.

AlistApart Invents Web 3.0

Ok, so it’s a week or so late - but hey, better late than never?

What a return to work its been. We’re just over the week-back mark and Josh and I have already written extensive specifications for ..er.. something.

I’ve also started work on the API system for IP.Dynamic. We want to encourage other applications to hook into IP.Dynamic as its a root-level application. We also want to encourage other applications to send and request data via APIs. Now, we don’t want to restrict the APIs to file-based classes as that won’t do a lot of good for applications not on the same physical machine (and we don’t want to get involved with replication, etc) so I’ve decided to use XML-RPC. I was going to use SOAP, but that would require extra libraries to be compiled with PHP which makes it a little redundant for those who don’t have shell / root access.

I’ve written my own XML-RPC classes which work well in testing and I’m looking forward to getting the actual APIs written. I’m also going to implement this system into IPB, so the API-HTTP system can finally become a reality.

Now I’m done with that, I can finish off the templating tweaks for IPD that I started before Christmas…

About Me

Me
I'm a web developer (PHP / MySQL / DOM) based in the UK. I am the co-founder and C.S.A of Invision Power Services, Inc.

Last.fm Chart

XBox Live

Spam Monitor