Dojo Lesson #1 -- FormAPI and CCK

joshk's picture
2007-01-05 12:00 - 14:00 Etc/GMT-8

kung-fu droop by SquidsterAfter some discussion in IRC, it seems that there's definitely interest in having "lessons" here at the Dojo. Ideas range from HOWTO on specific features and topics to having creators of interesting sites lead the group in an under-the-hood tour. Really, the sky is the limit.

It is my intention to try and make lesson-time be a recurring weekly feature. To that end I will run the first few. Hopefully within a couple weeks we will have a format that works and other experts can step in/step up.

For our first lesson, we will try to cover the basics (ala Angie's lesson plan): drupal terminology and what it means, the basic module hooks, good coding style and best practices.

Since this is of high value to all dojo members -- and it's a lesson that could/should be repeated many times as new developers join -- we're also going to try and create good documentation out of this. A primer for new Drupal coders, so to speak.

(image credit: Squidster)


Student Requierements And What To Expect

JasonMR's picture

You're truly "keeping the iron hot" Josh :) Thanks for the initiative.

What comes to mind...

Regarding "good documentation". My experience with learning suggests, that there is no "one way" to write a "bloody good tutorial", but rather, that everyone has their own idea and perception, what makes a good tutorial. I for one like it abstract and brief, others like it as verbatim as possible, others like a lot of pictures, and so it goes on.

The reason I mentioned the above is the following. May I suggest/ask the teachers/experts of this class, to keep an eye on patterns of the above crystallizing during the lesson, and then suggest groups of people to work together, and create a specified "tutorial". Maybe we should think before hand of what types (as briefly outlined above) we want to focus on (obviously I will be working on a "Cheat Sheet"-style tutorial, while there will definitely be a need for Drupal Terminology for Dummies {no insult intended, just a popular style of writing}).

Maybe we could also use this class/lesson to interactively review the official documentation, and attempt to tie together existing resources spread across the web. As well as collect suggestions for improvement, and organize teams (which could then turn into a Documentation Writing Class, linked to this one).

How do other Dojo members expect a web based lesson to be executed? Is everyone happy with using IRC? Also, please keep in mind, that we are all learning, not only about Drupal, but how to teach and transfer knowledge, so please be lenient with those willing to take on the role of a "teacher".

This is a great experiment, and the more activity that is arising, the more excited I'm becoming. Once we get going, we might want to ask other Drupal Groups to merge with the Dojo, for attention and productivity focus (e.g. Documentation Group).

By the way, I love the pic created by Squidster, would make great for a poster.

Bright Regards

(Student of Lifestyle-Design - Real ID)

Bright Regards

(Student of Lifestyle-Design - Real ID)

How do other Dojo members

Gary Feldman's picture

How do other Dojo members expect a web based lesson to be executed? Is everyone happy with using IRC?

IRC doesn't work for me, as the irregular, uncontrolled pacing wreaks havoc with my ADD. I much prefer a more or less static, linear lesson that can be processed at one's own pace.



joshk's picture

For starters we're stuck with the tools we have, which is this group and IRC, and it's good enough to do something. I like Jason's idea of trying to get a number of different takes on what good documentation is. Perhaps by putting them together we can create something that will satisfy those who want to learn at their own pace. It seems to me that if we take a more wiki-type approach to documenting, and let people who come to the work later enhance it with their own experience, it might work out well.

But as in all things, it's a big experiment, we we'll see. ;) |

where would we make the wiki?

victorkane's picture

and would we use the freelinking module or another?

Victor Kane

There is an interesting

ajwwong's picture

There is an interesting Flash-based Video Conferencing system which apparently allows chat / whiteboard / recording for later replay from OpenLearn / LearningSpace that is available free so long as the course material presented is shared under an Open Source agreement.

I do not have personal experience with it, but it seems like an interesting possibility.

What about using the book

seanbfuller's picture

What about using the book module? Each lesson / topic could be a chapter. It could work in a similar way to the Drupal Handbook, but with a focus on Dojo tutorials. There might be some duplication of content, but it would hopefully be warranted by the difference in focus. Links to the handbook and api docs could be used where appropriate. IRC transcripts, video tutorials, additional information could be added as needed as sub pages.

Doc, doc and doc

scb's picture

IRC and other similar "live" systems (like videoconferencing, etc) is great for lessons, but it has several critical drawbacks if used alone.
- Many people won't be able to be online because of timezones.
- People want to go at their own pace.
- It's not a good way of documenting things. People don't want to hear a 2-hour recording just to find out something. Plus, information is mixed up with non-relevant chat, etc and not structured at all.

We need to document everything, and make good tutorials/docs/whatever. These should be included in the main drupal docs, which, IMO are really lacking and disorganized. I know this is a huge work, and everyone will want to learn tricks, look under the hood and practice, but not take the time to write some good docs, because that is boring and time consuming. But I think that if this is not done, the Dojo will eventually become just an extension of the main Drupal forums, with all the info scattered throughout the site posts (or even worse, in audio or video recordings!), and would be far less helpful that way.

I'd like to see some kind of wiki system, or similar. Could be the Drupal books, or something similar, I don't know. There should be a main doc with a focused subject (i.e. "The Drupal Search Index"), with interesting info, and practical samples. The base for this could be an IRC chat or whatever. Then people would ask questions regarding that subject, in comments or the like. Then answers should be included back in the main doc.

With this kind of workflow we will have useful docs, with answers to practical questions. It is nothing new, but should work.


joshk's picture

There's also a whole group dedicated to documentation that can use help if you have an interest in that. |


jjlowe's picture

IRC is not good for me as a tutorial/lesson delivery system. A more structured format is highly desirable. IRC should be used as a supplement. I would much rather see the blog posting / comment format for knowledge delivery.

Good idea

joshk's picture

I will endeavor to create a post in the group that outlines what I want to cover which we can flesh out. IRC is meant for live Q&A and for people who want to implement as we go. |

IRC - not yet

mcurry's picture

See my misplaced comment, titled "Call me lame", above. (Sorry about that.)

Michael Curry
Exodus Development | Drupal and other developer info

I've never used IRC...

Walt Esquivel's picture

...but I'm willing to give it a try.

What IRC client do Drupal folks recommend?

I found a few IRC references for "IRC virgins" like me. ;) Here they are:
- IRC, as discussed on
- Top Ten Tricks and Tips for New IRC Users, as discussed on
- What IRC client do you use?, as discussed on
- Comparison of IRC clients, as discussed on

I thought about using mIRC but discovered it's shareware and they want $20 after the 30-day trial period so I'm passing on it.

What about Gaim? "The multi-platform open-source instant messaging client Gaim also supports connection to the IRC networks."

What about ChatZilla? "ChatZilla is an IRC client, written in XUL and JavaScript for Mozilla web browsers."

I think I'm leaning towards either Gaim or ChatZilla...but suggestions welcome. Thanks in advance!

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

For my money, Miranda is a

techczech's picture

For my money, Miranda is a great IM/IRC client. It's lightweight, installer free and flexible. On the downside, it does take a bit of setting up to get just right.

Dominik Lukes


greggles's picture

I tried chatzilla but it seemed unintuitive to me and it ties my IRC session to my browser session. So, if I want to close/restart firefox that means I have to also shutdown my IRC.

I already use gaim pretty regularly for other chat so it's already loaded - therefore using gaim for IRC was a natural. It works fine for me.

Knaddison Family | mmm Beta Burritos

IRC client for Mac OS X

karldied's picture

Hi, I'm also brand new to IRC and Skype, and was wondering what IRC client to select for Mac OS X from the wikipedia list or comparison chart. I found a couple recommendations for Colloquy:

Michelle says it is the client a lot of Mac users use (in the forum).

Robert Castelo mentions it in the lists.

It is an open source application released under the GPL software license. Requires 10.3.9

Colloquy is at See also Colloquy wikipedia page


I agree that...

rconstantine's picture

I agree that various people prefer different levels of detail for a tutorial. For that reason, perhaps everything should be put together in a way that more or less detail can be revealed according to the viewer's preference. In other words, there could be three levels of detail such as 'brief', 'standard', and 'full'. Brief may simply show an outline of steps or features. Standard may add explanations, and maybe use the outline from brief as headers for the sections. Full would add source code examples and/or screen shots to the standard view.

I think this would be easier than breaking folks into groups to make separate (and possibly incomplete) tutorials for each style.

I see you made it even

Wim Leers's picture

I see you made it even better than last night in IRC :) Nice work, squidgy!

Call me lame...

mcurry's picture

...but I don't do IRC. Never have. Anyone who has read my blog will know that I'm not anxious to install any new software on my system... unless there's a very lightweight, highly trusted, installer-less IRC client for Windows XP, that is. Any suggestions for this bloatware- and installer-averse Windows user?

(I can fire up a Debian linux box, if that's a better way to do IRC)

Michael Curry
Exodus Development | Drupal and other developer info


JasonMR's picture

ChatZilla ?

Bright Regards

(Student of Lifestyle-Design - Real ID)

Bright Regards

(Student of Lifestyle-Design - Real ID)


victorkane's picture

I'm using gaim, on linux but also windows

IRC is only useful within a small range of time zones

pieterdt's picture


Although I have no problem using IRC for these lessons, i think it is not the most useful way of working. Living in quite some different timezone it's hard for me to attend. Some other more static way seems more appropriate for reading at other times.


joshk's picture

There's nothing like "live" Q&A for problem solving, but we're definitely going to be focused on creating quality static documentation. |


eljustino's picture

Will the IRC transcripts be posted in this thread or in some yet-to-be-determined place? Need to plan ahead of time in case I can't make the live show (ie my wife says I can't play with the other kids that night).



Walt Esquivel's picture

Today I downloaded an IRC client in an attempt to use IRC for the first time in my life...but I don't have time today to test it out.

Seeing as how the first Dojo lesson is this Thursday, I would very much appreciate being able to view the IRC transcript in case I can't make it. Thanks in advance!

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

IRC first-timer too

glendac's picture

Hi Walt, I'm an IRC first-timer too. One of those basic things that, if one doesn't know at this point, should probably tell me that I should look for a pre-dojo group instead. But we put on the mojo and somehow find a way to learn and contribute.

So, I've installed both ChatZilla and Gaim. In the former, I select a network (freenode) but no channels are showing. Is there a particular network and channel I should select to get on the Drupal Dojo conversations? Do I need to create a buddy list like in MSN Messenger or AOL?

In Gaim, I chose the IRC protocol (which gives freenode as the default network?). Tried to log in but keep getting this:
Only local images are allowed..

What to do? I've used other chat applications before but these ones have different interfaces. Perhaps someone can give a quick lesson here on using IRC?

#drupal-dojo is the channel

ca_grover's picture

There are many IRC clients out there. I use the Konversation tool provided with KDE. Once you have a connection to the server (this seems to be an issue in your GAIM setup.. hmmmm), you can either use the application's method for joining a channel (in Konversation it's File -> Join Channel), or you can type in "/join #drupal-dojo" in the text entry box. (the /join is a standard IRC command...)

I've never tried doing IRC through my messenger (I use Kopete), but just did. I set it up to use the freenode server. One thing to note here is that you only need to specify a nickname. You do not need to specify a username/password.

HTH some.

drupal-dojo it is

glendac's picture

Thanks Victor and Shawn. Was able to sign up in ChatZilla but kept getting the same 'disconnected' message with Gaim. Glad to learn one thing today.

Perhaps its a no-brainer but is it taken for granted that everyone knows #drupal-dojo is the name of the channel? I didn't see it mentioned in previous posts. Just wondering about gaping holes in a learning continuum or in the array of communication media or development tools a person uses. Sometimes, I come across a post in the Drupal general forum like one asking about how to open a .tar file and I realize how much I take for granted. It's amazing how many of us muddle through and somehow gets something done.

IRC blocked?

Anonymous's picture

Not sure if you resolved this, but I know IRC is blocked at work for me by the corporate firewall - and I get the same message you were reporting when I try to connect to a IRC server.

Web-based IRC

eljustino's picture

We block IRC here at the office, too, but you might try one of the web-based IRC clients mentioned elsewhere., for instance, should get you minimal functionality through the ol' corporate firewall.

Have you seen this simple tutorial?

victorkane's picture

Looks like a helpful tutorial:

If you keep having trouble, speak up and I will make a fresh install and write up the steps.

Important: what OS are you using (apparently XP through the graphic)? And what version of Gaim?

You need to set up an account, with the IRC protocol, screen name and as the Server (no password).

Hope this helps, otherwise give a shout!

Victor Kane

Had Same Issue

JasonMR's picture

My solution was to just hit Reconnect until it did so. Thought it was due to me being on dial-up at the moment.

Bright Regards

(Student of Lifestyle-Design - Real ID)

Bright Regards

(Student of Lifestyle-Design - Real ID)

*LIVE* screencasting software

Wim Leers's picture

As mentioned in IRC, here is some possibly good software to do live screencasting: Spy X.

I've tested it and can confirm that this DOES work. It may be a good thing to not cast the full screen, but just a box, to make things faster AND legible.

(This is OS X only software, though it generates regular HTML pages, it runs its own webserver. josh_k uses OS X, so that's not a problem at all, though it may be for other eh... 'Drupal Masters'.)

I won't make it to the

dvessel's picture

I won't make it to the lesson but here another screen shot serving app.

Very simple. It's been around for a while (stimpsoft) but it never failed me.

I noticed there's a limit of

Wim Leers's picture

I noticed there's a limit of 10 concurrent clients connected simultaneously for Spy X ... perhaps SnapperHead doesn't have such a limitation?


webavant's picture


Tresler's picture

Here is a thought.

Can we build the structure of this on Angie's lesson plan with the goal being refining the docs.

Something like this:

1) Identify the bullet points in Angie's Plan we are going to cover in IRC

2) Publish a forum thread with all relevant docs that exist in the current state from and and any existing tutorials from peoples sites we can garner through google.

3) Pick a project,or projets from our pool that will cover those topics.

4) Do them realtime, learning as we go. Paying close attention to how the docs explain something as compared to how we learn it.

5) Final products of the projects AND updated docs to benefit the community.

This process allows for those who come behind or can't make the IRC to get the full benefit of our work. It allows for us to invent and recreate if we find areas that ned new code or patches. It also improves documentation as we go along.

AND it is a set structure we can repeat for any system in drupal. So we can systematically tackle this entire CMS as we go.


Tresler Designs

The more I think about this

Tresler's picture

The more I like the way it can be done to integrate

A) The group message board thread as a record for work done in IRC and elsewhere

B) The ability to branch out and tackle issues, and under the hood coding, while sticking to specific projects.

C) The RECORD or how we did it all, and returning that to the community. i.e. we can't label a 'Chapter' done until we update or create documentation - which can be a wiki format and then submitted back to

Inside all this we can start to create a better format for documentation. i.e. it would be great if the docs at had an easy ross reference to the functions at can we add those as we go along?

Also, it covers the various ways people learn. i.e. by doing, by reading the instructions, by examining the code itself before diving in, and by interaction with others....

Tresler Designs

eljustino's picture

First, I think Angie's Plan is a great place to start and gives people a perfect road map for getting to know Drupal. That said, though, I'd personally like to see the "Installing Drupal" part removed for the purposes of these lessons. I think there's enough documentation out there and the assumption should be that you a) already have it installed and/or b) you have the ability to do so later either on your own or with existing documentation.

I'd hate to see half the first lesson wasted by covering that part, especially when it's already been so well covered. With all the different permutations out there (Apache/IIS, MySQL/PostgreSQL, Windows/*nix, etc...), that could be a lesson in and of itself. In fact, if people feel strongly about keeping it in, maybe it should be its own lesson?

Also, I think it could be helpful if we did everything from the MySQL standpoint, given that there seems to be a good number of contributed modules that don't want to work with PostgreSQL out of the box.


joshk's picture

We will not be dealing with installation. There are pre-requisites that cover this. It's assumed you have your own drupal site and are comfortable administrating it, installing new modules, etc. |


joshk's picture

I've been busy with regular work the past couple days, but wanted to thank everyone for their energy and enthusiasm. I think we'll try using a skypecast for free audio (supports up to 100 users) and maybe one of these screen-sharers if I can get one working. Remember a big part of this is creating condensed, valuable documentation for people who want to go at their own pace too. Hopefully we can work out a collaborative way of doing this.

I'll try to set something up for that in advance. At the very least I'll post an outline of what I plan to cover with some links for people who want to get a start ahead of time.

Thanks again! |

Web Conferencing

webavant's picture

I set up WebHuddle on a dedicated server which provides screen sharing, voice, text chat and session recording/saving all in a java applet in a web browser. There seems to be a bug on Safari Mac, (hopefully works in Firefox). Perhaps some folks can test it out and let me know if you have any problems. Create a user and invite a friend to join using your email and password. Check out one of the recorded sessions (they take a minute to start and the devs haven't implemented controls for it yet)

It appears to work pretty

phoenix911's picture

It appears to work pretty good in FireFox, I watched and participated in the Firewall demo on the site and had no problems at all. One nice thing about it, is the Q&A tab to post questions about the topics so that they can be answered at the end of the session without clogging up the main chat area. I give a thumbs up for it.

I should add a couple of

webavant's picture

I should add a couple of other cool features that WebHuddle supports: import PowerPoint slideshow with next/back control. Scriptability with image upload and slideshow controls. User moderation allowing passing screen sharing or voice to another user.

Please help us test the scalability

webavant's picture

We have an open WebHuddle session. > join meeting > enter host's email address: > enter key: test. Please stay logged in as long as you can to help test. Feel free to chat, but I'll be away from the keyboard for a bit, so you'll be limited to seeing only my chat window, which may not update very frequently depending on activity in the #drupal-dojo chat cannel. Feel free to start up your own meeting too.

Ha, cool!

webchick's picture

Glad to see that those curriculum efforts didn't get lost! :D

That outline is geared toward creating a "Drupal courseware" for helping people in a classroom totally new to Drupal get up to speed quickly. So yeah, there's a bunch of stuff in there that might not be relevant, like the installation stuff. I think it was based on Drupal 4.6/4.7 and some small parts might need to be updated now.

HUGE +1 to improving existing documentation. This represents an excellent opportunity to get feedback en masse from new, bright-eyed developers which is something we don't normally have except during Summer of Code, which only happens once a year, and only for 10-14 new developers.

Also big +1 to people learning IRC. Yeah, it's a little weird to get used to, but if you're hoping to get seriously involved in Drupal, you really need to know how to use the tool that dozens of us use every day to collaboratively plan new features, troubleshoot bugs, etc. Even just "idling" (staying in the chatroom and not saying anything) presents huge learning opportunities. There are even CGI/Java IRC clients that require no software installation (although they're not as full-featured as desktop clients).

IRC Documentation

joshk's picture

I may be totally wrong, but i don't think there's a good page explaining the various #drupal-channels... I think even if people don't necessarily find it intuitive, it does really work. As you say, much of the community happens there. I'll see if I can do a little stup as a part of my lesson plan (how to participate). More IRC-savvy peoples will be good though. |


joshk's picture

Well, in answer to my own suggestion, for anyone wondering about how to add "official" documentation to, here's the link:

The documentation team is definitely looking for more participants if you have an interest in that. |


webavant's picture

I've been spamming this thread a bit about screen conferencing and I apoligize if it is excessive. If anyone has a better solution, please do chime in, but it seems like a lot of people are racking their brains trying to figure out how to get on IRC. If everyone just logs into WebHuddle, the chat can be conducted there with a separate channel for Q&A all built in, that is, if the powers that be deem it a worthy realm for conducting the meeting.

We have an open WebHuddle session. > join meeting > enter host's email address: > enter key: test. Please stay logged in as long as you can to help test. Feel free to chat, but I'll be away from the keyboard for a bit, so you'll be limited to seeing only my chat window, which may not update very frequently depending on activity in the #drupal-dojo chat cannel. Feel free to start up your own meeting too.

Better than Spy X

Wim Leers's picture

Tested yesterday in IRC and I must say that it works very good, providing a better interface (chatbox on the same page) and it seems to be much more efficient as well (no limit on the number of clients). This is definitely the best option IMO.

dang it...

nlindley's picture

I'm gonna have to back out on the lesson tonight. Some stuff has come up that conflicts. Anyway, I'll be watching and will work through the material once docs get posted, and hopefully I'll make it to the next one. By the way, did the signups go away? (I'm not trying to be obvious, I just had signed up and didn't know if that list still existed somewhere. If so, take me name off. :) )

Walt Esquivel's picture

Please see these comments for an explanation.

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Walt Esquivel, MBA; MA; President, Wellness Corps; Captain, USMC (Veteran)
$50 Hosting Discount Helps Projects Needing Financing

Drupal Dojo

Group organizers

Group events

Add to calendar

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week