Request for a -Live Presentation- Module

Request for a -Live Presentation- Module

by lou Charrier MIS -
Number of replies: 57

i found a folder in CVS named 'Presentation' that i hope is for the creation of a 'Live Presentation' module, i see it is empty so i am just guessing ... and hoping !

i find the moodle system to be fantastic and covers every need for distance learning with only one missing component ; the live in-the-classroom experience. A teacher at the 'blackboard' speaking to the classs and answering questions.

To that end i am working on developing a module that resembles a 'video-conference' type of experience but am calling it 'Live Presentation' to reflect it's true nature; this reduces the amount of bandwidth and places the focus on what this is : a classroom presentation.

i have used freeware tools to create pre-recorded presentations and i want to duplicate the 'multi-panel' lay-out. take a look at openworldpresenter as a 'real media' example and imagine that in a live setting.

my 'Live Presentation' window is split into the familiar 4 frames :
-the top-left for the 'webcam'
-the bottom-left for the 'action menu' (teachers:slideNav, attendanceCount/List, QuestionCount -- Students: AttendanceCount/List, AskQuestion)
-the top-right for the 'slideshow' (it is the largest)
-the bottom-right for the 'transcript' (this is the text version of the presentation)


here is my roadmap:

-use LCMS for the 'slideshow','transcript' and 'Question-and-answer' management

and for the audio/video
-use shoutcast/icecast OR sip-softphone for audio
-use webcam with flashcom/real/helix/darwin server OR ftp multi-part jpeg

Each Slide is a URL - either a JPEG/GIF image or a webpage or FLASH can be used as a slide. the URL will be 'pushed' by the teacher to all students attending , this 'url push' method can be seen in the LiveHelpCenter php code, it's a javascript line of code.

The 'Transcript' is not a chatbox it is one-way from teachers to students, the students can ask a question but that does not 'automatically' appear on everyone's screen. By having a text 'Transcript' the 'Live Presentation' can be databased and so can be searched. The presentation can be reproduced in a 'self-guided' manner as a 'pre-recorded' presentation. The teacher would input this text while creating a slideshow , it is the same as a presenter's 3X5 cards. Each slide has it's own block of text 'url push'd into this frame at same time the slide is pushed.

NOW- the WebCam frame - why not also use a URL ? this could be the url of a webpage with the EMBED player configured for a Real/Helix/Darwin/Flashcom stream, if you have the budget/tech-savy for hosting the server. it could be the URL provided by the teacher's own webcam software server, if they have the bandwidth! It would most often be the URL of the webcam's auto-ftp-uploaded jpeg as this is the most common method used by webcam freeware. In all casses above the top-left corner has a live changing graphic of the teacher, failing all of these alternative we show a jpeg headshot and we dont have motion BUT it doesnt break our module's usability.


and NOW - the 2 way communications 'Ask a Question':
'put up your hand to get the teachers attention'...
a student clicks the 'Ask-a-Question' button to pop-up a form , types in the question , submits form , the teacher's 'QuestionCount' increments.
When a teacher is ready for the 'Q-n-A' , the teacher can click the 'QuestionCount' Link to pop-up the list, each question is a link that 'url push's the text to all student's 'transcript' frame, the teacher answers by voice AND/OR url 'push'd text.
this way the 'q-n-a' does not break into the presentation, it is bandwidth-friendly and it can be databased for later refinement/seach/reproduction.

and lastly the audio by SIP/h323 or Shoutcast/Icecast : as you can see from the 'webcam' feature some users will already have the possiblity of audio if they can have a flashcom/real/helix/darwin server so it doesnt apply to them BUT in a 'serverless' webhost situation the audio can be served direct from the teacher's computer by shoutcast/icecast stream (if they have the bandwidth) or relayed from a proxy server (if they have webhosted proxy shoutcast/icecast server ) OR the audio can be conferenced for free-or-cheap by  installing the openh323 server. Using SIP services through FWD.pulver.com is a very cheap example.

to wrap-up i am looking at developing an all-platform solution to have real-time live presentations with audio/video/slideshow/questions-and-answers .... the 'live Presentation' is also available as a pre-recorded self-guided presentation ( keeping the ask-a-question feature ) and should be 'import/export'-able

i would like to ask : is that 'presentattion' folder in CVS meant for this type of module?

and if not - is this a module that the moodle community could help me develop?

my first post;
loucharriermis@go.com

Average of ratings: -
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Mike Jackson -
I for one think this sounds like a neat idea. Cheers
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Bryan Williams -

Lou,

The Presentation folder in CVS is for a Moodle PowerPoint presentation, which I have not uploaded again since the recent changes at Sourceforge. This folder is used to store items contributed in the Moodle Documentation Project course.

I think your idea is really great, it will be no easy task completing I'm sure. Have you looked at Java Web Start app?

Bryan

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

i don't want to do java , it isn't really needed and i don't like it ...  and webstart is total overkill !

i realize the moodle chat module is in java and thought of  forking that to this but decided all php/mysql is the way to go . the whole thing will be urls and text so can be databased easily into the moodle schema.

and i want to make it easy for non-programmers and first-time-teachers to create a presentation , give the presenter a chance to go through it and edit what they want before they 'go live' as well as editing 'transcrpipts' and 'answers' after the fact.

the audio/video element of the 'webcam' frame is independent of the module so we don't need to manage streams just sessions.

you see, the 'Live Presentation' isnt a true live connection -there is no 'whiteboard' or 'chatbox', the only thing you need is the ip# of participants to push urls , the two-way is simulated: the 'Questions' are stored in database just like the forum module...

in fact : think of the forum module to visualize the db layout  : lets say a 'Live Presentation' is a threaded forum =

each 'Live Presentattion' would be a 'forum'

'Slides' as 'topics'

'transcript' as 'replies'

 'Q's as 'topics' 

'A's as 'replies'

.. relate each of the  'Q' topics to one 'slide' topic as many-to-one, (so they can ask a question about a slide and you can access 'q-n-a' per-slide when self-guided viewing of pre-recorded presentation) 

you see it now eh? but i would still give this module it's own dbtables and not require the forum module , it should stand on it's own...

anyway that is the way i see it ..

Lou

and thanks for the possitive comments, i am feeling the 'vibe'..

PS : sorry to have stepped on your toes there Bryan ;-}...

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Martin Dougiamas -
Picture of Core developers Picture of Documentation writers Picture of Moodle HQ Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers
A correction: the Moodle chat module is not in Java - it's normal PHP code that produces plain HTML with a little bit of Javascript.
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by W Page -
Hi  Lue!

Check out the "Chat" forum.  I think you might get some helpful ideas there about what it is you are attempting to do.

The Chat Forum is located at,
http://moodle.org/mod/forum/view.php?id=734

WP1
In reply to W Page

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

right! i got thown by the gui_java folder and the headers in arsc.java :  import java.awt.*; import java.awt.event.*; import java.net.*; import java.io.*; import java.sql.*; import java.util.*; .................

turns out that the java is all tied into the new whiteboard feature and it isnt part of the chatting at all!

great stuff , will use this for a jumpstart .

thanks

i will start coding this module next week, server upgrade ...

Lou

ps: if  W Page could be more specific on the 'check the chat forum' tip .. i've looked and found requests but no-one working on something like this ...

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by W Page -
Hello Lou!

Actually the threads I wanted you to take a look at were in the Developers Forum.

Addition of Whiteboard - Chat ? / Need Input
http://moodle.org/mod/forum/discuss.php?d=4351

Flash at Moodle??
http://moodle.org/mod/forum/discuss.php?d=6253


>>> My post will be just links because I am overloaded today but I want to respond to your post.

Please look specifically at the following links.

Remote Language Teaching
http://www-mice.cs.ucl.ac.uk/multimedia/software/relate-ui/

Tulka Whiteboard
http://giotto.mathematik.uni-tuebingen.de/~mibe/tulka/

Babylon Java Chat
http://www.visopsys.org/andy/babylon/

WysIDraw
http://products.figleaf.com/

WysIDraw is completely "Flash" however it also has a
$$$$$. I think the rest are OpenSource but please check.

Now some Flash links that may help if you decide to go that way,

Creating a Two-Way Video Chat Application in Macromedia Central
by Giacomo Guilizzoni
http://www.macromedia.com/devnet/central/articles/vchat.html

Creating a WhiteBoard Application With Marcromedia Flash Communication Server MX
by Beau Ambur
http://www.macromedia.com/devnet/mx/flashcom/articles/whiteboard.html

Get Started Quickly With Macromedia Flash Communication Server MX Components
http://www.macromedia.com/software/flashcom/download/

Also you may want to look at,

Ming - a SWF output library and PHP module
http://ming.sourceforge.net/

Check out
Sketchpad (an example of Ming)
http://www16.brinkster.com/gazb/ming/defaultframeset.asp?id=sketchpad

Lastly peek at,

VideoSpark.com
http://www.videospark.com/index.php

Blue Pacific / Turbine Video Encoder (free edition)
http://www.blue-pac.com/products/turbinevideo/default.htm

[This list of links is from my own searches and suggestions from others in the
Moodle community - Thanks!]

I wanted to create a WhiteBoad chat for
Moodle but I am at the low end of the PHP, Flash, JAVA learning curve. You sound like you have a better handle on all of these. If you can create an Online Presentation mod customized for Moodle. Please, roll on with it.

I hope I have given you something that helps.

WP1
Attachment pencil_rolling_lg_nwm.gif
In reply to W Page

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

yes macromedia is a great platform , it even comes with exactly what i want to do : video conference and 'live Presentation' as fully functional modules ... but .. they are not giving it away  8-{  ...

and yes java has sockets for A/V ...  but ...  i dont want to use it . why ? well marratech.com has a beautiful full-featured front-end for a video conference with whiteboard , slideshow, recording, etc ... the client end is a 20 meg download !  I honestly don't think i have that much code in me! 

so .. i am keeping this module to the basic functions of 'Live Presentation' :

NO whiteboard ... that is a good feature but it is not one-to-many it is more of a free-for-all perfect for brainstorming but not what i have in mind. The slide-based 'Live Presentation' will be like a powerpoint presentation in fact you can use powerpoint to make your presentation if that is your preferred tool => export each slide to jpeg format  OR if you are in 'OpenOffice' export each slide to 'flash' swf format (with bonus of having animation and sound-effects ) ... if you want you could use html for your slide (with animation and sound-effects )... any format that is browser viewable and that can be accessed by a URL will work just fine as a slide - one slide = one URL...

NO Video conference ... or at least not yet , that will be for 'version 2' ..

( see http://www.cowboyscripts.org/?page=webcam for a lo-tech 'conference' example and look at the lluna2 jabber client for the visual of what i have in mind  http://www.lluna.de  .... it would be very cool to see the webcams of other students right on the webpage of the course when self-guided, and when on-line the teacher could do an old-fashion attendance head-count  !!  )

This module will not deal with the actual streaming of audio or video , that is for each individual install of this module to decide how to supply the video into the ' webcam ' frame , the module will be calling a URL of an html page that can contain embed of any format ( even M$wmv ). The embed can be audio/video or video only , audio can then come from mp3 stream (shoutcast/icecast or even peercast for the bold ) or my pick : SIP.

Personally i like the 'ftp-upload multi-part jpeg' as a minimal video with sip softphones for audio (check the combination of fwd.pulver.com for free cross-client cross-platform pc-to-pc and  http://www.libretel.com for free pc-to/from-phone long-distance, - all free - no ads -  ), all teacher's bandwidth can handle the  VOIP audio compression combined with uploading a 20kb jpeg every second-or-two on a dail-up connection. The adventurous can install an open source sip server with a conference component, for the non-programmers you can use free-or-cheap voice conferencing service ( openconference.com or fwd.pulver.com or your local asterixAIX host , etc...).

You NEED flashcom server to stream flash video (MING dont proxy live video, so far as i know ... it is a generator - like the free 'turbine' -  not a 'proxy server' - pow-wow called that a 'reflector' ) the open-source 'flash' servers ( like amfPHP and flashnowserver ) implement sockets for data to/from database/clients but not audio/video proxy (that is why jabber - a great IM socket server - only does text-chat - look at neosmt.com - it is a jabber client but to offer videoconferencing  neosmt uses the jabber server to keep track of  the ip addresses  , the a/v is not through jabber server at all ...)

BUT the helix server from real.com and apple's darwin stream server are both free and open source and they would be ideal for videoconferencing because they do proxy live a/v ... so i am leaving it up to the future sysops of moodle boards to decide if they want to buy a 'flashcom' license or if they want to set-up server-side java or if they want to setup an a/v proxy server at all.. if they do or dont the module will still work , the teachers will be Live and the presentation can be enjoyed by all..

a/v proxy streaming is not a job that PHP can handle so, i don't bother trying!

Since i was sooo mistaken about the use of java in the existing chat module ... I've read-through the code in that module and found the place for handling the 'push url' commands =  where it checks for the " /me: " directive (from  'MOO' days of yore )  , adding a couple more else-ifs to look for the " /push: " and the " /q: " commands should do the trick .... it will branch the tasks and we can then process the sql results from either the teacher's or the student's clicks/formsubmits accordingly (all php/mysql - a la helpcenterlive.com).

i am sooo glad that i was wrong about that java! the chat module does just about everything needed for what i had in mind , i still need to trace through the sql table layout to see what if any changes are needed to have the  'slideshow' building/management/reproduction ... that is a big chunk of what this module must have to be a good on-line editor for the teachers and to offer 'pre-recorded' presentations for self-guided learning (teachers sleep , don't they?).

It's very possible that the chat module can be 'enhanced' with the whiteboard as an option and that this 'Live Presentation' could become another selectable option when a teacher is creating a chat , like the 're-curring chat' option is now. 

i will start coding later this week , my server upgrade is scheduled for tuesday and i hope all will go well so i can start on this straight away !

again thanks to all for the comments and tips, it helps to know people are on your side.

Lou Charrier M.I.S.

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

quick update :

got the server running and reinstated my member services .. at last!!

i've installed moodle and am now coding the 'Live Presentation' Module :

created two tables 'chat_presentations' and 'chat_slides' , and edited a few files in the chat package to allow for selection and creation of a presentation from the 'editing chat' panel with a select box to choose a presentation for this chat and a link to 'create new presentation'

created one php page to handle 'create new presentation' , 'edit presentation' , 'ad new slide' 'edit slide' ..

added a select box in 'chatinput.php' to list all slides by id and 'title' for this presentation , a little javascript to onChange send the text "/slide #' to the text input box as if you typed it in (where # is chat_slides id ) , you then hit the return key to send message , which sends that to 'insert.php' where it just adds to db as usual, jsupdate.php uses function in 'lib.php' where i added an else if ( substr($text, 0, 7) == "/slide " ) and that tells us to get the slide data from 'chat_slides' ,

(i remembered a little howto - if you want to ensure you have a numeric value add 0 to it, $textwithanumberatthebegining + 0  - without quotes around the zero -  it wont change the number at the start of string but any extra text will vanish.... )

we format that text and graphic returned from our 'chat_slides' lookup a little differently than usual and send the formatted html to jsupdate.php    and voila !!!

a 'one click' graphic slide presentation with text transcript .....

so that was a nice bit of work. the teacher can edit slide show presentations in advance of the 'live' chat and those presentations are in seperate dbtables from regular chat so they wont be deleted by regular db maintenance  ......

next is : well there's a lot left to do   ;-} ....

g'nite all

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by W Page -
Hi!

This is going to be a really nice mod when completed.

My programming skills are limited but I think your database tables for the mod should all have the prefix "mdl_presentations_SpecificTableName".  For example the tables you refer to above - chat_presentations' and 'chat_slides - should actually be,

  • "mdl_chat_presentations" and "mdl_chat_presentations_slides"
OR
  • "mdl_presentations" and "mdl_presentations_slides"

I think "mdl_presentations" with the names of additional tables of the mod attached to it is better because it is really what your mod appears to be about not chat..

Hope this is helpful.

WP1


In reply to W Page

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

you are of course semi-correct ; the 'mdl_' is a user defined prefix set at installation, my tables do in fact have an additional  prefix that i did not write about , i figured this is the 'developer forum' ya know  ;-} ..

but this is just me nit-picking back at ya ..

your second point is much more salient: 'is this chat?' 

- :  my modification is not a new concept requiring a new module , it is an improvement to the chat module .. same as the whiteboard project in progress.

when the teacher will 'setup a new chat' they will select certain options , this is only one of them . this addition now gives them :

-the option to hold a focused live presentation to the classroom

- the option to control the flow of information and direct the topic

- the option to use the live 'chat' technology to deliver a pre-determined well-defined concept

- the option to prepare the presentation materials in advance and easily deliver the message with a click of the mouse

- the option for moodle to welcome good presenters that just cant type that fast

-the option to hold traditional slide-based presentations that are common place in business

-the ability to integrate 'power-point' type presentations into the moodle framework (discused in many forum postings at this site , eh? )

all this along with the archiving of that presentation's content and it's related  questions/answers - just like an 'approve before public post' forum, but live. 

the present chat will continue to optionaly function the same way : a free-for-all environment where the teacher will go-with-the-flow.

meanwhile that little bit of progess i've made is only the beginning.

last night i found THE way to stop that infernal screen-flicker on refresh ! to give you a peek at the way it will work you can check : http://www.tagboard.net/  ...

i'm not 100% sure on how they do it, BUT ... i did figure out how we can do it :

i am concentrating here on the right-hand frame that lists the people in the chat and displays their name, their icon-image and the 'beep user' button, we put a bit of javascript in the ' users ' frame's html to replace the 'meta refresh' call like this :

check4refresh = new Image() ;

check4refresh.src = "check4refresh.php?"+random_num  

this is on a setTimeOut loop , similar to the way the entire frame's html is now metarefresh "looping", the ' random_num ' part of that code is neccesary to have javascript realize it is a new image name and should be downloaded ... 

what does that do?  instead of auto-refreshing the entire page on a timed schedule we only refresh that one image's source from a PHP generated image , since moodle requires gd library for user icons we can be confident that any moodle can generate images.   

so, what does that do?  when we generate the image we can generate anything , any color, any text data can be inserted into the image but javascript does not 'read' the text in a graphic ... we can also generate any SIZE image... let's say the default size of the image will be 1X1pixels  if there is no new data to be displayed on user's page and the size of the image will be output as 2X2 size if the page needs a refresh to display new content...

no really, what does that do? once the image is in the browser we can use javascript to test the size property of that image like this ---  if (check4refresh.width >1 ){ refreshpage();}

The page will refresh ONLY IF there is new content to be displayed !!! ....

if any one wants to look at and help test my code i have attached a zip file that contains two files: one html page for the 2 javascript LoadImageSize and DetectImageSize functions and one php file for the gd calls to randomly size and send and image, this is just to show my 'proof of concept' it does no calls to db and it does not save the image file at the server. These test files generate a number between 2 and 81 , get an image and only pop-up an alertbox to tell you the value of the image.width sent by php. Since i am confident of php's GD library i am more interested in testing the cross-browser strength of the javascript image.width function . you can beta-test it by uploading both files to any folder of your php enabled website and entering the url of "yourserver.com/yourfolder/imgsize.html' in your browser address bar, let me know what browser you use if you encounter any errors.

 once implemented  into  the chat module this method will reduce bandwidth for both server and client, server ram and sql hits .....  but the important part is visible : it will drastically reduce the amount of 'screen-flicker' for the users !!

well that's my up date for the day ..

Lou Charrier M.I.S.

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by W Page -
All I saw on the page you referred me to was a "ShoutBox".  That's what you are developing, a "ShoutBox"???

Well OK.

WP1

In reply to W Page

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

 i wouldnt waste my time with that.

i pointed to them because they refresh their data FASTER than the 'chat' module and it does not 'flash' the screen ...

did you read their 'SMARTrefresh' explanation?

did you 'view source' on their shoutbox code to see how it was done?

did you try my zip'd code ?

would you like to have a 'flicker free' chat module for moodle?

would you like to help?

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by W Page -
I took a look at the page because you indicated that it was an example of what you had done. I was not asked to look at any explanations.

No I did not take any time to try your "ZIP" code. However, this is the Developer's Forum so I guess someone else will "try" it.

This is the Developer's Forum so I am sure you will get help as well.

And now, as the students would say, "Me Out"!

WP1

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Martin Dougiamas -
Picture of Core developers Picture of Documentation writers Picture of Moodle HQ Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers
Hmm, interesting idea to make the "users" window look nicer.

This image hack sounds a bit convoluted, though. Is it not possible just to call a PHP script (eg usercheck.php) from Javascript and catch the output? For example it could return 0 or 1 .. if it's 1 then we know a user was added or deleted and the page is then refreshed. Refreshing the user page will also have to set a timestamp somewhere for each user so we know how far back to check for the next notification - perhaps it could be a javascript variable that gets passed to usercheck.php.

(I don't agree any of these methods will actually much reduce CPU/RAM load from the current situation, since similar PHP code needs to be run on the server by each client to generate the notification for each user regardless of whether the HTML itself is regenerated or not.)
In reply to Martin Dougiamas

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

yes it certainly is convoluted!!

but i haven't found the technique you described 'javascript calling php for a variable value' and i looked for that, i looked hard, i looked deep, because i thought i'd hit on a 'bright idea' ... 

what i found is : when the results are returned to the browser as text there are returned to a targeted/default browser window/frame so you would need to use yet another 0pixel frame or a hidden iframe to receive the output  ... php outputs text, html, flash or graphics.. what else , i asked myself ... what kind of output could we generate from that 'check if we need to refresh' call?  this is the only solution i found and those 'tagboard' guys sure think it's a big deal calling it 'SMARTrefresh' as if it's " Rich Corinthian Leather"  ..

so i am coding the 'refresh check' that way ...

And i have to hold my ground on the 'saving resources at the server' issue : the user's frame is not the only one with 'meta refresh' tags , the chat module does two seperate checks , one in jsupdate for the 'any new messages' test and one in users for the 'whos on line' report . They each load 'required' lib and config  files into memory and they both hit the sql server for basic info 'is this a valid chat' 'is this chat in progress' 'is this chat restricted to a sub-group'  ... not to mention the fact that the users frame has to reload html and all those user icons even though nothing has changed....

why not integrate the two into one ?

why not check if there's new messages and who's online at the same time ?  

well , right now you can't : once loaded in the browser the users page doesn't know when the msg page has a new message and vice versa ... 

i am coding the image.src dongle to check for both states and to return an image size to be used in a case statement :

if   image.width == 1  donothing | if ==2 refresh users | if ==3 refresh messages | if 4 refresh both ....

that will certainly save resources for both client and server ...

i think that the moodle users who have complained in these forums about 'chat module'  performance under heavy load will be able to see a 'remarkable' marked improvement   ...

and i am making progress , i am still new to moodle so i have to poke around a lot, trace 'includes' to find functions and to figure out 'how could it do that'.....moodle is a great piece of work, i have customized postnuke, phpbb and other php 'instant site kits', i've hand-coded vrml, html, dhtml, javascript and i have to say i like perl the best because it truly is a do-what-i-mean magical sort of language ... but this moodle thing i am diving into is very well done , the more i find the more i am re-assured,  i am so very glad to have found moodle and am happy to create within it's framework. (happily banging my head on keyboard, not a pretty sight, but happy)

On this image.src dongle : i have so far coded the javascript functions to pass values between the frames , this will allow using 'one call to one php file' that returns 2 to 8bytes of data, just what the browser needs to know. i am now integrating the two 'meta refresh' routines into one javascript looped call to one 'php image file generator' but i am not removing the existing php code only the 'meta refresh' , that existing code will be run when the page is refreshed. 

this GDimagecreate is new to me so i researched and i recommend a quick read through a great presentation to explain the possibilities of GD ,  every moodle already has this!!  http://nyphp.org/content/presentations/GDintro/gd1.php

AND while researching how-to code GD stuff i think i found the solution to the 'Whiteboard' ... http://allayers.com/     no java , just php/mysql/javascript ...

you see : if you can create an image in the browser and save it at your moodle server you should be able to URLpush that to fellow chatters.... any way that will be for 'version3'... i am still on 'version0.02' right now ..   :-<  

On the 'live presentation' chat option :  i have added  javascript that passes the current slideID to the 'chatinput.php' so that when a student posts a question it can be associated with a particular part of the slideshow, this will be more important when presentations are self-guided , students will have access to previous q-n-a and be able to post a question even when there is 'no teacher', this will also automate a categorized FAQ. (remember i said it would be like a forum but live...)

Once the 'basic slideshow' is fully functional i will grab mouseXY position info from the chat 'msg' frame (that is where all the chat text and graphics are displayed ) and transfer that XY data onMouseclick to the input frame; that would give the server all the info needed for a 'Pointer' graphic to appear at those co-ords in student's browser. 

Can you see it? After all ; what's a slideshow without a laser pointer?!!? whee!!  

A GD powered whiteboard would use that same javascript function to pass mouseXY to input frame and when satisfied with preview , user submits to the server , server URLpushes to all...             lets talk about the http://allayers.com/  a little more :

here is my GDpowered whiteboard pitch for ya: all participants have their own transparent graphic z-index'd over a shared-view base image. onSubmit their own whitebord image is created and saved at server, keeping transparency of image so that all chatters can see what others have drawn, and can click-link to hide/show all/some/one overlays at a time. the images are saved as files on server, the whiteboard session is saved as text-data in mysql as userlist , text chat message list and imageURLs .....

i think that this is a do-able whiteboard solution for moodle ... i really want to ditch the java .... i dont see the need and it doesn't really fit into the moodle framework....

but that whiteboard is for 'version3'

here is my hit-list :

version1 - the luxury sedan - a very nice text chat , with a slideshow option , with webcam from presenter served by ftp-upload or self provided stream server, audio from presenter served by self-provided mp3 stream  or SIP-VOIP conference.

version2 - the stretch limo - a video conference option :  all chatters represented by a live-video icon , Presenter has larger video with all video icons served by moodle server or optional self-served for higher frame-rate , 2-way audio through SIP/VOIP . 

version3 - the flying car - whiteboard option, chat is no longer confined to the one web page - ALL webpages will display a video icon of fellow students on-line that you can click to private message , push URLs , whiteboard over any page ...                    (a moodle version of :  http://www.lluna.de/   - the moodle chat of the future my friends , this is 'the flying car of tommorow' )

i am thinking ahead , way way ahead ... but i am making progress ...

 

  

 

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

today's update on 'Live Presentation' module:

i got that 'check4refresh-via-image-size-so-browser-gets-the-sql-results' dongle working and it does the job , i set it to check if we need to refresh every second and then both the chat 'msg' and chat 'users' frames only update when required ...... it took a few doomed attempts because i was running that code in the 'users' frame , it would never work right since that frame's refresh would throw-off  the timing and sequencing ...

so i put the check4refresh code into the 'messageinput' frame , that frame doesn't 'meta refresh' ....

after that code-relocation the 'image-size' dongle worked well and was very smooth ... no more irritating screen-flashing-for-nothing, the frames would refresh content ONLY when there is new data to display ...... 

 but i am totally dumping it , it's killed , it's history , out the window !!! (good puns eh?)

why? well , in order to really benefit from this we need to loop the 'check4refresh' call faster than usual and to reduce server resources i am limiting the amount of sql data that my 'check4refresh.php' accesses ... and so it cannot and does not do the actual refreshing of the frames content by itself, we still need to run the existing php code in both frames .... 

this results in a very minor reduction of resources used :

my 'check4refresh.php' code uses about 15% of server resources of both combined 'meta refresh' calls  and it uses about 5% of bandwidth compared to the existing code ... so it is a 'success' .. that is if you only look at an individual 'hit' ...

BUT  check4refresh needs to run more often and we still need to run the old code anyway to refresh the 2 browser frames! ... so everytime it finds that the browser needs refreshing we run similar code twice or thrice if both frames refresh ... this is basically the existing 'redundant' situation i was trying to 'fix'  ... so i find that this is not the 'final' solution....

i am not entirely 'back to the drawingboard' though .... i learned a lot about php and javascript interaction , i had to figure out how all frames can know what old and new stuff is inside other frames and i have decided that it would be more efficient to simply integrate the 'users' refresh into the 'jsupdate' refresh .....

you see :  if 'jsupdate' can document.write new messages into the chat 'msg' frame then it can also document.write into the 'users' frame ....

this will make a 'one refresh - one php' call and THAT will reduce server resources....

i plan on keeping the present method in 'jsupdate' to write into 'msg' frame, after all we are just adding messages to an ever growing list....

but when 'jsupdate' document.write's into 'users' frame we want to add new users AND remove old 'logged out' users ....  here is my plan :

put a javascript function at the top of the 'users' page : the 'refresh_users_online' function will "hide all DIV elements that are named 'user*', show all DIV elements that match user'ID' in list" .....

when we write into the 'users' frame we dont replace what html is in there we only add html just like the way 'msg' works now : we send the additional 'newly-logged-in-chatters' html code required to display the new chatters on screen, we also place a delimited list of all presently logged-in userID's into a hidden form field 'users.formname.usersonline.value=useridsonlinelist'   ... and we also document.write a javascript call to run that 'refresh_users_online' javascript function ... this hides all logged-out chatters and shows all logged-in chatters .... 

this combined with a javascript image pre-loader function to get all user icon images before showing DIVs on screen will get rid of ALL screen flicker and reduce resources at both ends......

the 'image pre-loader' function will also be used in 'video-conference' mode to acheive a flicker-free video icon display of the users' live webcam images.

the 'hide/show' method will also solve my problem in the 'Live Presentation' slideshow:  when 'jsupdate' document.wrote the 'next slide' graphic and text into 'msg' frame it was simply tacked onto the end of a very long webpage ... 'jsupdate' will now also document.write a javascript call to 'hide all slide DIV elements , show this slideID DIV element' .... this will remove all previously displayed material from the visible page .... and that is what i had in mind from the beginning , a real slideshow.....

in 'Live Presentation' mode this method will create a DIV for each slide, all slides are still in the webpage they are just 'hidden', so we can add  SlideNav text links at the bottom of 'msg' frame ( 'lastslide - nextslide' ) to call the 'hide/show' function onClick , the slideNavBar will be visible only 'after the live show' is over to allow presentation material reviewing by students and this navbar will come-in handy for self-guided presentation viewers.

i would like some comments on cross-browser DIV tag compatability :

once i code the above javascript 'hide/show' methods , will i need additional code in 'chat's existing browser-check routine to keep unsupported browsers from crashing?

any javascript experts want to chime in on this one?

g'nite

 

 

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

i think i am on the right path now ...

i have been thinking about what Martin Dougiamas said about php returning text instead of an image.size trigger and of course that is what we want : info to display ! i just couldn't figure out how to loop the call to a javascript.src  like you can loop the call to a new image.src ... but if i was a programmer i would know how , wouldn't i?

Then i found this : 'JavaScript Remote Scripting ' at : http://js-rs.sourceforge.net/  and that is when the 'fog lifted' , put the 'refresh.php' in the 'head' of document and keep refreshing it's source ...   i got that working in the 'users' frame and it works great !   

then i thought 'why not jsrs jsupdate ?' ,  i re-coded that too, and it works !

then i thought 'why not put both -users- and -message- refresh together ? i re-coded that , and it works !

then i thought 'why not get rid of the frames?'  i re-coded that , and it works ! on this part i am 'cheating' right now : i am using this library to create simulated windows : Popup Windows - V 4.4 by Brian Gosselin  , i am using it to generate 4 MS looking iframe/DIV's ( each is movable, re-sizable and can minimize/restore just like MSwindows ) to hold the 'users' 'messages' 'slides' and 'transcripts' displays independent of each other .. this way i can add to the 'chat messages' but overwrite the slides during presentation ...  it all works and i can now concentrate on the 'moodle' ing of my new improved chat module .....

A look at the future of this module :

 FUTURE UPGRADE  A )  has anyone tried using or making Bookmarklets ? also called 'favelets' as they sit in your browser's 'favorites' like a link but they contain javascript and mostly act on the webpage you are currently visiting ... i use a number of bookmarklets to help me in this and other projects and have edited a few for specific projects , like 'logging in ' to a website , babelfish translating,  checking my code , resizing windows, etc... 

To familiarize web-masters new to this technique , here is a tutorial on making a bookmarklet to open a 'remote' window that will display your own html code and maintain a reference to the 'opener' window : http://www.squarefree.com/bookmarklets/remotecontrol.html

now here is the article on creating what the author calls a 'hosted favelet' , this is the 'bookmarklet' method that pertains to our chat module:

http://slayeroffice.com/articles/favelet_article.html

the point i am getting to is this:

the chat module is now working in the 'jsrs' manner (explained here :  http://js-rs.sourceforge.net/  ) and therefore could be 'attached' to ANY WEBPAGE by using the 'hosted favelet' method described in that article ( the 'favelet' installs your 'hosted' js file into the browser's current webpage's 'head' tag  , this is 'jsrs' as a bookmarklet )

cool eh?!  ... here's how it would work for our students :  as a 'moodle' course member you are offered a 'custom' bookmarklet to place in your favorites ( moodle can easily insert course and student id data from sql results into the javascript code presented as a link to the student ) and whenever you want to chat with your fellow class members you click on a 'bookmarklet' in your 'favorites' list and the chat 'installs' itself into the webpage you are browsing .....      (  i anticipated this feature for 'version3' but it may come sooner !  )  this 'hosted favelet' method would also be of interest to the developers of the instant messaging module  ,  whoever you are ...(  nudge and a  ;-} ...  gently coaxing a response  ... )

FUTURE UPGRADE B )   i have found a way for moodle to provide a built-in 'webcam capture' for the chat module , i have previously stated that it will 'have' to be up to the  participants to provide their webcam jpegs or streaming video themselves simply due to the cross-platform nature of moodle installs and knowing that 'to stream video with flash you need flashcom'  and knowing that the 'Flash/FlashMX' browser plug-ins can acces the webcam but CAN NOT take jpg 'snapshots' of video streams ( frustrating eh?! ) ....

 But 'ShockWave' will ! ( surprise ! ) : it has a 'copyPixels' function , that function can take snapshots from live webcam video stream !!!!  so a moodle chat can generate a webpage with hidden fields holding 'chat_sid' 'chat_user_id' for the shockwave embed file that then can :

-access the local webcam stream (we knew that)

-snap a still shot ( copyPixels to a 'blank' place holder image )

-send jpeg to server ( auto-submit form using hidden field data with image file attachment to our PHP handler that saves the 'snapshot' as jpeg)

-shockwave loops this every x seconds as defined by connection speed.

this means : the 'video-conference' can be implemented in the chat module by a 'ShockWave' embed file at each student's and teacher's  browser, the 'shockwave' will NOT display the images : it will capture and send to server , moodle itself will then handle the saving and distribution of the images to all chatters, this process will not require an additional  'server' since the transfer is 'async', it is not live , there is no 'stream'  ....

 the shockwave process to capture stills from video is described with sample code here :    http://www.multidmedia.com/exchange/?filter=detail&id=47  

and a longer article about a very nice example of the 'copyPixels' function :

http://www.macromedia.com/devnet/mx/director/articles/streaming_video_02.html

what does all this mean ? : no need for students/teachers to install and configure additional  'webcam-capture-ftp-to-server' software and no need to allow possibly dangerous external file upload/redistribution into a live chat environment :     

     moodle can truly offer it's own built-in Video-Conferencing chat !!  

( well i haven't found a similar solution for audio yet but c'mon : this is a big step!) 

any 'shockwave' coders out there want to tackle that part of the chat module programming?

( i anticipated this feature for version2 , but with a little help .... who knows !!! )

to recap : the 'Live Presentation' with editing/archiving of '1click slideshow with transcripts'  works as a chat option, chat module is now all 'jsrs' : no more eye-blinding 'meta refresh'! 

end today's update,

LouCharrierMIS@go.com

PS: and thanks to  Wen Hao Chuangfor the support   !

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Martin Dougiamas -
Picture of Core developers Picture of Documentation writers Picture of Moodle HQ Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers
Thanks, Lou ... can you set up a demo site somewhere so we can see this in action? 
In reply to Martin Dougiamas

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

this week Martin Dougiamas  i will do a little show-n-tell 'Live Presentation' for you in the new chat ,  but right now it is still a mess of frames, alerts and test data display ....   i will clean up what i got and try to have a completely 'frameless' chat ready for 'special guests' to test-drive later this week ...

what i need to do is to combine all javascript functions into one js file and load it into the 'head' tag of one chat 'index.php',  that index.php will set up the different DIVs to hold what is held in frameset now, this includes the 'input' form. the 'index.php' will not 'meta refresh' but will loop a call to 'refresh.php' as the src of a script tag also in the 'head' of 'index.php' ....

confused? good,  i shouldn't be the only one !

this moodle'ing is almost as much fun as the time i had to 'program computers for monkeys' , true story, some other time .....

LouCharrierMIS@go.com

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Maki english2day.com -

Fantastic,

I have been in contact with Lou begging for a beta release...

The project he is working on is something that will revolutionise the way we work with moodle and interact with students.. It is something that once it is part of Moodle will give (again) Moodle the edge over any other software package out there.. I am not a programmer, pc stupid and a danger to code.. My contribution will be a Japanese and Dutch translation.. I would ask all that feel a need for a better Moodle to join this project in anyway that is possible,

Perhaps we can setup a fund to have some serious work done on it..

Michiel

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

i thought i would upload a screenshot of what i have so far on the new jsrs chat module...

the background is the 'chat's index page , will code the 'bookmarklet' method later...

all 'windows' are 'DIV's except for the 'input' form which is an external php file in an iFrame

all 'windows' can be resized, moved,minimized,restored by user.. and those actions can be javascripted , i am auto-un-hidding the 'input' form incase a chatter hits that button by mistake , might want to add more checks like that.....

right now i am opening all 5 'windows' by default but when this upgrade is finished only the 'chat messages' and 'users' will be visible unless this chat session is a 'Live Presentation' which would require the 'slide' and 'transcript' 'windows'.

still need to code a 'navbar' for self-guided slideshow ....

there is another 'hidden' iFrame for targeting form submits and 'beep user' clicks, this way the page 'never' flashes when refreshing. i have replaced the 'embed' beep method with an auto-play 'flash' file embeded in that hidden iframe because 'embed'ing into the 'top' window.document would kill the javascript timer ...

you can see the 'Slide' selector field i have added to the 'input' form, the 'add' link opens another window to the 'add a slide' editor , the editor accepts text input for 'name' 'slide url' and 'transcript' and when displayed we 'moodle format' to get the flash player for mp3s and text links , etc...  have added a 'preview' link to open each slide in another window while editing , will need to add an extra field for 'sequence' so slides can be easily re-indexed ...

right now if you make changes to your 'slide list' in that editor page you need to refresh the 'input' form to retrieve the new list... will have to figure out a background updating method ...

now i need to code the php file that will handle the webcam jpegs so that they are resized to 'icon' dimensions and saved into the users folder as set in moodle - this will simply over-write the icon file that is already there , will need to code an 'off-line' image anyway so the existing icon will do the job ....  then on mouseover of a user's icon : display the full-sized webcam image in a new 'DIV window' using the original webcam jpeg's url , not storing full-sized graphics will save us some disk space and 'clean-up' on log-out..... also need to find the right place to store the webcam image urls in db, probably in 'chat_users' table since webcams are not 'always on' and that url may change between sessions , the chatters would be presented a form to enter their webcam jpeg url upon login with a 'preview' button to verify the url before submit...

g'nite

LouCharrierMIS@go.com

and thanks for the 'hype' Michiel !

Attachment Image1.jpg
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Maki english2day.com -

Goodluck Lou,

And if there is anything I can do to help let me know. I hope more people jump on this, it would be worth the effort. If I can donate webspace, test servers or urls let me know I have plenty.

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Wen Hao Chuang -

Just a quick FYI, just in case that some of you haven't tried it before. You could sign up on CLOMedia.com and register in one of the live e-Seminars and get to know the power of Interwise (www.interwise.com). It does require a facilitator but it could do lectures live (no video yet, but sync with powerpoint).

http://www.clomedia.com/eseminar/

It would be really great if Moodle could have an add-on of live-presentation similar to the Interwise in the future!

In reply to Wen Hao Chuang

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

 (www.interwise.com) - hey that's the first time i see a 'conferencing' service that integrates Telephone access to a 'web conference' ! 

and here i thought i was the first to have that idea ...  it's a 'wild wild web' out there  EH?! ....

interwise is very good stuff ... BUT only for windows ... and it ain't free !! sad

Moodle is still free , right? 

MY little 'chat' upgrade will also allow telephone users to dial-in and participate in the audio stream of the 'conference' since i plan on using SIP audio conferencing  ...  many cross-platform SIP softphones can dial-in to the audio , cellular , regular phones ,   MAC ,  and Linux ,  and i see that even PDAs can use wifi to VOIP long-distance for free now...  pretty soon your watch will log-in to moodle for you  .... come to think of it , there is a watch now that can pick-up rss feeds and since moodle can output rss : i guess we are already there!!  

back to the chat module :  i wish i could find a ShockWave coder to join me on developing this .... i am trying out some 'webcam-capture-ftp-upload' freewares and they all work a little differently , enough of a difference to make it very difficult for a 'web-noobie' to set-up properly so they can moodle chat with video .... some freewares require a web-accessible directory in order to ftp-upload the jpegs , most will not resize the snapshots...

  if i could find a programmer with 'ShockWave' experience that little 'grab-shapshot-send-as-form-attachment' flash plug-in would give all video chatters a simple-to-use method AND make this a lot more stable/secure for the moodle site sysops  ....   it is a big gamble to expect all chatters to follow instructions. 

right now my video-chat code will simply display the jpeg 'as-is' and expect the browser to display in the 35X35 format  .... on mouseover we pop-up another 'DIV' to display full-size jpeg ... it's a cheat i guess but i am hesitant to load and resize all the chatters files ..

i started by coding the 'proper way' before deciding on the cheat : 'grab' each chatters jpeg from somewhere :  either 'chat' loops calls to off-site external files every 2-5 seconds and downloads to temp dir OR we allow 'public ftp' access to a directory for all moodle chat users' webcam softwares   (can 'guests' chat?)

then we would still need to re-size each chatter's jpeg to icon proportions , save in moodle users 'safe data' dir,  every 2-3 seconds for every single chatter online.....

so that is a ton of resources wasted , the bandwidth to get an over-sized image to our server , then resizing at the server... and it is insecure since we would be accepting a file every 2 seconds from every chatter (easily hundreds even thousands per hour) all from different locations and of different sizes , a 'malicious' file could get in to to our server by ftp and we could be in big trouble fast!!

With that ShockWave plug-in: all the image resizing would be done at each chatter's own computer, a small icon sized image of 2kb instead of 50kb is transfered , there is no need to allow 'public' ftp access to our server and we can do a little more security checking by giving the plug-in a unique number same way the chat-sid is generated now for the humans, except this 'uniq-id' would be 'inside the graphic image' itself .....

Please :  ANY ONE HAVE MACROMEDIA'S SHOCKWAVE EDITOR? 

i will code this plug-in file myself if you dont have the time but i still need the tool.......

that would really put a 'professional polish' on this 'luxury sedan' of chats...


: INVITATION : 

A 'test chat' session on Sunday, July the 4th at 8pm EST sound good to anyone?

if so post your replies here so that i can set-up your accounts at my moodle. 

Include your computer's OS platform, browser version and connection speed info. Whichever OS you have you will need     http://fwd.pulver.com   compatible softphones to join in the audio stream of the video conference so why not browse there and see if you need to sign-up now .....

if you are planning to use your webcam : let me know which software you will be using to provide your jpegs...some provide a 'web server' and i would need to test the domain:port combo in a refreshing image.src tag , if you use a free webhost service they may not allow direct access to your image files from off-site pages.

After the 'test chat' please provide a report of your experience including any incidents and/or requests for features. If your browser freezes or your computer crashes , there is no liability insurance available, you are accepting the risk in good faith.     


In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Chardelle Busch -
Picture of Core developers

Hi Lou,

I just wanted to say that all of the work you are doing on this is incredible and quite admirable.  Unfortunately, for the most part, I have no idea what you are talking about--its way over my head.  So, a test would be great so everybody can get an idea of what it is you are doingsmile.  Alas, you know Sunday is a big holiday here in the states and most people will be at a BBQ and watching fireworks at that time.  Any chance you can re-schedule?

Also, does it have to be shockwave?  I have Flash MX if that would help. 

Sincerely,

Chardelle

In reply to Chardelle Busch

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

sorry Chardelle  flashmx doesn't have that nifty function 'copyPixels' we need, that's what needed to take snapshots of the webcam stream , only in shockwave, but thanks for the offer...

and yes there will be more 'test chat's in the future , i wanted to give myself a target date to get most 'kinks' out of the code... and i did pretty good , i managed to put all javascript and 'data refresh' into one php file , the slideshow is working , the text chat is much 'smoother'

in my effort to prepare for sunday ( tommorow , yikes !) i added the webcam feature in a sloppy manner which made me decide to re-code 'everything' into object-oriented javascript, now each 'user' is an 'object' with three 'prototype' functions , one is the image preloader for both the icon and the 'full-sized' webcam snapshot, another function deals with displaying the icon with 'user' profile link, the 'idle' time with the 'beep' link..and the first function to 'fire' on 'login' adds a table row and two td cells to display this chatters icon and text. ( im tired .. very tired)

BUT this makes it so the 'users' page actually NEVER refreshes now, only the data is renewed , in fact there is NO REFRESH anymore, all data from the server is received 'in the background' , that was my original goal but it took me this long to get to the heart of it ...

still need to work out the 'log-off' scenario but 'destroying' a record is always easier that creating and keeping up-to-date...

The webcam feature is 'working' .. i am downloading the 'live' jpeg to server and re-sizing to 35X35  since letting the browser handle all the resizing was causing even more 'herky-jerky'ness than that blasted meta-refresh ! 

i am using moodle's built-in user icon display method , added an extra variable so the php file that generates the image from the 'data safe' directory would not insert the 'cache for a day' instruction, this way the user's 35X35 pixel icon ( displayed on many pages at the website as the user's 'signature' ) is actually a 'live' webcam snapshot... i'm not sure if that's a good thing  ... might re-do that completly so we use the webcam only in the chat...

so , a little more polishing on this mod and it will be ready for 'public beta' testing..

featuring:

-- text chat (like always with 'moodle format'ing of links, mp3's .. but smoother) 

-- Slide Presentations : You can edit your Presentation in advance, '1click' and your slides appear in their own 'DIV' , each slide has it's own prepared transcript and that appears in it's own 'DIV' , both of which are not affected by the 'chatting' which has it's own 'DIV'... this way you can do your presentation as you planned, 'questions' appear in their own 'box' and you 'answer' by chatting.

-- WebCam -- all chatters get a 'image url' form at the beggining of chat session to enter the web address of their webcam jpeg, the image can be 'previewed' to test the url before submission. Once in the chat all fellow chatters can see a 'full-sized' webcam image, it will  pop-up onMouseOver of webcam user's icon .

 sounds about right for my 'version1' :  gotta leave'm wanting more , eh?!

'version2' will have a much nicer webcam method ( shockwave i hope ) and possibly a whiteboard ... i really like what alllayers.com has done with GD2 , it would be a perfect fit for moodle .... 

g'nite

LouCharrierMIS@go.com

ps: when you see what little amount of code is actually on my 'chat's webpage you will see what i mean about triggering this from a 'bookmarklet' and chat at any webpage ..........

( i really like the bookmarklet method so it might show-up before i code a whiteboard!)

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Chardelle Busch -
Picture of Core developers

Hi Lou,

Could I ask you a few questions about your module--which by the way will be a great addition to Moodle.  I know that you have put an incredible amount of work into it and if it is something that I will be able to use on my site, I will definitely make a donation to Moodle in your honor smile.

Bryan Williams gave me a tour of Elluminate, (www.elluminate.com) which he offers on his hosted service, and is a really great program.  I was just wondering how your module might compare so I can get a better idea of what you are doing (it seems similar). Elluminate might be similar to Interwise mentioned above, I didn't want to have to register to view the demo so I don't know.

1.  Elluminate does not have video cam (which is fine cause you can always add the presenter's image into the presentation) and it works well even on a 56k connection. 

2. It has a nifty audio section where you can talk to other members via a microphone (no telephones required). This is actually my main question--the ability to communicate like this would be very helpful for me.

3.  You can save the "chat" (they call it Direct Messaging) conversation into a text file. 

4.  It uses java web start (I think) so you have to download that program in order to use it.

5.  It has a white board and a presentation (power point) area.  You can also bring up web pages in this area.

6.  It has a raise your hand feature (similar to the chat beep I think).

7.  You can save an entire presentation to be viewed later.

Thanks Lou!

Chardelle

In reply to Chardelle Busch

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

there is no way i can compete with a corporate solution like that , if you can afford it : buy it .

in fact take a look at : www.marratech.com ,  www.neosmt.com  ...and the grand-daddy of them all : the cu-see-me (now called cu-world) platform www.fvc.com  ....  they offer 'hosted' service and also allow you to install the 'server'.

my chat module is an enhanced text chat.

i am not using java, there is no 'client' to download, i will be using a 'shockwave' plug-in ( approx 50kb ) only to capture webcam 'snapshots' , there will be no video 'server' to install.

audio is not 'integrated' into my chat module, 'audio conferencing' can only be achieved by a 'proxy server' that will accept a stream and re-transmit to all participants.  i don't plan on having that 'proxy server' as a requirement of chat.

each presenter can alternatively host a audio 'server' (like shoutcast) on their own computer but that would require a 'high speed' connection to deliver audio to even just ten 'students'..... 

the reasons i am using SIP VOIP for my audio stream delivery :

- i am building this module with my existing clients' needs in mind, they are all business people and would benefit greatly from learning about IP based telephony solutions.

-once you have an IPphone or a SIP softphone on your computer you can use it to telephone everywhere in the world just like a regular telephone call but for free or very cheap.

-once you have a free http://fwd.pulver.com account you can place a 'call me' link on your website to allow web-surfers to speak with you directly , 2-way voice, not just text chat,  just like a telephone call but free and right through the browser.

-there are many 'web conferencing' solutions out there : how many are free ? how many allow you to join the conference without a computer ? how many allow web-surfers themselves to 'integrate-on-demand' the conference into any webpage, even a webpage they do not 'own'? 

-if i do decide to install a 'proxy server' , i will get much more value out of installing a SIP conference server than a 'mp3 server', both solutions offer audio streaming  but can you imagine what added benefits can be gained from 'giving away' an 'internet phone number' to every member of your on-line course.....

Looking forward to :   TEST CHAT  :  Sunday July 4th 8pm EST.

 Any interested parties should post replies here.

thanks to all for the support.

LouCharrierMIS@go.com

                                                

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Chardelle Busch -
Picture of Core developers
Thanks for the clarification.  I look forward to your next "test". 
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Richard Treves -
Hi Lou,

Looks fantastic, I'm busy planning to use such tools in upcoming courses so VERY interested in what you eventually get to.  I have to admit to still being confused as to the audio part of your module.  You write:

'my chat module is enhanced text chat'

and

'I am using SIP VOIP for my audio stream delivery'

OK, if you are not using audio conferencing, what is the voice over IP for? thoughtful  Can you record a presentation and then stream it to multiple users?

Thanks

Richard
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Martin Dougiamas -
Picture of Core developers Picture of Documentation writers Picture of Moodle HQ Picture of Particularly helpful Moodlers Picture of Plugin developers Picture of Testers
Good idea, Lou - set me up!  - I'd love to see what you're up to. I might be a little late, though. 8pm EST (by which I assume you mean New York) is 8am Monday morning for me - a little early. I should be there before 9 though.


In reply to Wen Hao Chuang

Re: Request for a -Live Presentation- Module

by Bryan Williams -

Wen,

This posting would be of interest to participants in the Business Uses course (Did You Know) I'm sure. I thank you for this tip.

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Bob Boufford -

Hi Lou,

Wandering in a little late. You synchronous web conferencing module (Live Presentation Module) is a definitely a worthwhile project. I've been involved with web conferencing as a supplement to the basic chat/whiteboard found in most course management systems. I would like to offer some input from more of use issues instead of programming issues.

Some of the more popular commercial web conferencing systems that are partnered, trying to partner or used with the commecial course management systems include:

  • HorizonLive (Java)
  • Elluminate (Java)
  • Centra One (Java)
  • Placeware (Java)
  • Macromedia Breeze (Flash)
  • Many others

We have settled on Web4M (Java) from JDHTech for cost and operating system reasons. Most of my experience is with HorizonLive, Placeware, Elluminate and Web4M along with sitting in on a couple of Breeze sessions.

Most of the systems have the following features: text chat, whiteboard, slide shows, audio (one-to-many or many-to-many), video (one-to-many or many-to-many) and application sharing. They also contain features to automatically convert Powerpoint presentations into "slides" as images (screenshots). Most also have some sort of polling/survey (Q&A) and recording capability.

From my experiences and others in terms of use, the greatest demand by faculty is the ability to show live slide shows with one-to-many audio. While some will use the many-to-many audio features, it seems to be more effective to have the faculty/presenter delivering by audio and students posting questions and dialog through text chat. Even with the high-end HorizonLive, their free seminars are often this format. There is very little demand for video and we usually discourage it due to bandwidth issues and equipment issues. I and many others have often found the "talking head" webcam shot to be distracting and a waste of valuable screen real-estate. There are also support issues with video. It's been a challenge for us just to get two-way audio going for most students and we don't have the resources to support video.

And in many situations, due to various factors such as electronic noise in microphones, we have had to resort to plain old telephone for the audio while still delivering the slides through the conferencing system. And I've even had this experience with the high end systems where audio was over a phone teleconference and the system was used for slides shows and one-to-many app sharing.

So in terms of priority in developing your web conferencing module, for me I would like to see:

  1. slide show with text chat
  2. one-to-many audio
  3. Survey/polling
  4. many-to-many audio (optional)
  5. video (very optional)

If you can achieve the first two items without resorting to Java, I would be a happy even though as pointed out by others, you may have to go the Java route for audio to avoid joining some third-party provider.

For a model, take a look at Web4M by JDHTech (http://www.jdhtech.com). You can download a full working 3 user demo. It will give you some ideas on the slide show with text chat and one-to-many audio along with the hassles of incorporating video into a presentation.

I would also recommend seeing the HorizonLive Desktop Lecture archive "Best Practices of Live Online Instruction: Instructional Design Tips for Teaching Live Online" by Phil O'Hara, Dalhousie University, Halifax Nova Scotia, Canada. (http://www.horizonlive.com/try_product/archive_launcher.php?id=64). Phil covers what works best when teaching online. Even though it is focused towards HorizonLive and WebCT, all of what Phil cover's is very applicable to other web conferencing/live presentations.

Thanks in advance for all your efforts.

Cheers,

Bob

 

In reply to Bob Boufford

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

Today's update:

Martin Dougiamas and i had a 'test chat' on sunday with expected results, his browser froze right up!! yeeehaa!! he caught me in the middle of changing my chat's code from 'procedural' to 'Object Oriented' .

That's a nice way of saying ; he caught me with my pants down!

On the up-side the parts that were working at that time were the parts that i had already 'converted' :  The 'users list' was running very smoothly, each chatter is now a Javascript Object which allows me to access their parts individually , so each webcam icon is pre-loaded and updated without 'screen flicker' . very smooth.

Now the 'Full size' webcam is also an Object and is also updated without screen flicker.

Every message is now displayed by the browser in its own html table row. This allows me to add a new message to the top of the page instead of the bottom!!

this way new messages appear at the top of the page without refreshing the whole page and without forcing the page to scroll to the bottom.

With the messages in table rows i can deleteRows from the bottom of the table. The chatters now can set a 'maximum' number of rows before the old messages are removed from the bottom of the list. Simply click on the 'more' or 'less' links to add/remove 20 to the 'maximum', this is live and interactive, the chatter can increase the 'maximum' to any value their is not upper limit but the minimum is 20.

This solves a 'big' problem for high-volume chats.. after a while the chat will slow-down to a crawl, i dont believe the fault is at the server since php and mySQL can handle heavy loads. I know from my own trial/effort that any browser will eventualy reach it's limit on an ever-growing file, and i believe removing old messages from the browser will 'cure' that problem.

Each chatter can now set the refresh delay live while in the chat, i am using two timers : one for the 'user list' and 'messages' refresh, and another for the webcam refresh. Each delay can be increased/decreased by the chatter while in the chat live: simply click on 'faster' or 'slower' links and a half-second will be added/removed from the appropriate delay rate. for example you can set 5 seconds between 'new message' check and a 2 second delay before renewing a fresh full-size webcam image.

this will help solve connection-speed issues for chatters, and since each chatter's own webcam image is ftp-uploaded at their own set time delay, a chatter can slow-down the refresh rate to limit wasting bandwidth if trying to refresh an image every 2 seconds that is only renewed every 5 seconds.  With this new method i may even find a way to handle that situation programatically in-the-background.....

----------------

a quick checklist answer for ya Bob-

  1. slide show with text chat  (DONE ... mix-n-match any format for your slides : jpg, gif,bmp,png, FLASH, QuickTime,WMV, and Real ..... and mp3's too!!            ps: i think i have a 'power point conversion' method i can hack together too...)        
  2. one-to-many audio (DONE ... see below)
  3. Survey/polling (this is built-in to moodle , so.... DONE)
  4. many-to-many audio (optional) (DONE ... also below)
  5. video (very optional) (DONE,  it's 1-frame-a-second but it's there)

3 out of 5 already built-in to this module ...

now to answer the Frequent Audio Question:

i am using VOIP to stream audio, i will not 'integrate' audio into this chat code.

to stream audio to a group you 'need' a proxy server, this proxy server will accept one stream and re-send to all. (one-to-many or all-to-all , either way it's a server you need to send live audio to a group) i do not plan on forcing people to install a stream-server just to 'chat' .

i am leaving the option completely open, if you use my chat module on your moodle , you can have live audio delivered any way you want. there are a few free mp3 stream-servers, and some free multi-media streamers, you don't need a 'macromedia budget'.

if you buy a macromedia server you will find it comes with a fully functional  'video chat' module and a 'Live Presentation' module and many other features.    if you buy it and pay the yearly licenses for your number of users.

you can install a free open-source SIP server that will give you streaming audio for 'audio conferencing' in chat AND also use the same server to dial long distance phonecalls for free!!!

That's what I want, i dont see the 'value' of going through the expense/hassle of installing a stream-server just to have audio in chat and absolutely nothing else.

I DO see a great value in going through the same hassle/expense of installing a VOIP server that will give me audio in chat PLUS free long-distance for my company AND let me 'give away' free long-distance phone time to all my moodle members.

that is why i use VOIP. i will continue to use VOIP.

and if you ask Martin, he will tell you that the VOIP audio was the BEST part of the 'test chat' we had on sunday....

mostly cuz i froze his browser with my half-finished code BUT the audio was perfect...

Here is another very good reason why i will continue to use VOIP: you can allow 'chatters' to join the 'Web Conference' without a computer .. How many of those 'corporate solutions' can offer that?

And my method is 'all free' to you , free to use , and free for you to give away.

There is nothing 'wrong' with mp3 or any other audio-stream solution, i will continue to use VOIP because it gives me more, much more.

 and that's the F.A.Q.

LouCharrierMIS@go.com

thanks to everyone for posting here , when i read back what i wrote i can see someone thinking i might not appreciate the comments , but i can honestly say that i do... all the questions and sugestions make me think through the job at hand, it makes me ellaborate on the 'why's and 'how's of my methods, the links to 'other' sollutions show me what YOU want and that is what i NEED to know!!!!

so thanks to all for the support !!!

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Bob Boufford -

Lou,

Thanks for the update! It is looking to be an excellent module for Moodle. If you get a Powerpoint convert going along with the audio, you will definitely provide Moodlers with a module that outdoes the commercial CMSs.

I'm off for three weeks but look forward to seeing more of your work next month.

Cheers,

Bob

In reply to Bob Boufford

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

ScreenShots of my 'Chat' in Action:

this screen shot : log in ;

This is the Chat's WebCam request form that all chatters see on Login. Right now there is no 'memory' of the previous webcam url a chatter has used, so you will need to enter this info at every log-in.

Before Submitting the webcam url you can  Preview in another window and see for your self that you have typed-in the right info.

If you do-not have a webcam or do not wish to share your jpeg simply submit this form  without a valid web address. 

If you change your mind anytime during the chat session you may edit this info as often as you like by clicking the 'Edit WebCam' link. You may then use the form to : enter a new webcam image, enter a different webcam or to remove your feed. 

Attachment login01.JPG
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

Web Cam Preview ScreenShot:

this is just to show that Feature in action. You can edit the WebCam url in the new windows address bar until you see the image you want then copy-paste it into the form field.

Attachment previewCam.jpg
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

WebCam as Emoticon:

This ScreenShot is to show how the user's icons will capture the 'mood' of their posts.

The Icon displayed next to every message is a concurrent webcam snapshot from the moment of that post.

Each new Message is added the the TOP of the Message List.

Now that chat is in 'Object Oriented Javascript' each message is added to the page by creating a new top row in a html Table instead of  'document.write' to the bottom of the 'body'.  

 

Attachment cam-icon.jpg
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

Chat with Adjustable Refresh Timing And History Depth:

This ScreenShot is to Show the seperate LIVE Timing Controls available to the Chatters.

At the top of the 'webCams Online' panel  you can see a 'Pause' Link: Clicking this with completly STOP the chat refresh cycle. Once Chat stops refreshing you will not receive messages or 'Beeps' , this means the 'idle time' displayed on your screen will not update.

  if you stay in 'Pause' mode longer than the moodle 'log out old chatters' setting : you will be logged-out!!

The 'Pause' feature is more for me , while testing code, and may not remain in the final product. If there is a Pause feature it will probably be a 'temporary pause' (like the 'snooze' button on your alarm) This would allow you to 'do something' that may conflict wth the 'refresh' like resizing or moving windows ..... you guys will tell me what you want.

At the top of 'WebCam Fullsize' panel  you have a 'StopCam' link: Click this link to stop refreshing the webacm image and to close the 'webcam Fullsize' panel, the panel will pop-up the next time you mouseOver a user Icon in the 'WebCams online' Panel IF they have a WebCam available.. 

There is only ONE FullSize webcam panel available, to change which chatter's webcam is in that panel simply mouseOver the chatter's icon in the 'webCams online' panel. You do not need to click 'StopCam' before changing feeds.

Speed Adjustments :  

You can adjust the full-size webcam image refresh rate independant of the rest of the chat elements. BUT the actual refresh rate of any webcam image is not up to you, that is a setting at each chatters software and will depend on their connection speed. When you find a webcam image is not refreshing as fast as you have set, you can increase the delay to match the actual refresh rate of that chatter's webcam.

in the 'webCams online' panel you can adjust the Refresh speed of the entire Chat, this affects how often your Browser asks the server for new messages and for the up-to-date list of chatters online ( this number is in milliseconds ,  don't worry : i will format it to show '2 seconds' instead of '2000' in a little while...)

each time the chatters list is updated you will see each chatters icon change to their latest webcam image.

Clicking on the 'slower' or 'faster' links in either panel will add-or-remove a half-second to the appropriate delay. The shortest delay is '500' , that is the fastest speed at which any element can be refreshed is twice per second. this may be changed to a longer minimum delay in the final product.

 The 'Keep # Messages' setting:

At the top of the 'ChitChat' panel you can see how many messages will be kept on the page before new messages will force older messages to be removed. This can be changed at an time by clicking 'more' or 'less' to increase-or-reduce the maximum number by '20'.

Once a message has been removed from the browser's display it will not 'return' by increasing the 'maximum', there is no local memory of messages. This feature is to aid browsers to manage an ever-growing list of messages so we do not store expired information.

You can set this 'maximum' amount as high as you like , the only limit is your browser's capacity and your computers memory.

Attachment Cam-timing.jpg
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

About the 'Live Presentation':

all text messages submitted with this form is for 'live' chat , creating/editing  a presentation with slides and their text transcripts is done in a seperate pop-up window by clicking the 'Add slide' link., this link is available only to the 'owner' of this 'presentation'.  

 

This screenShot is to show the '1click' slide-push feature:

the process to send a slide to chatters is :    1 ) select slide from list 2) hit 'enter'.

In the 'Chat message' panel you can see an additional 'select' field , this is a list of slides pre-prepared as a Presentation, by selecting a slide from this list the 'message' field will be filled-in with the appropriate command to send that slide to chatters on-line.

in this example the command is : "/slide 6  ::ALL"

the "/slide" part tells the chat's librairy  that this is a slide command ,

the number following that is the sildeID number as stored in the 'slides' datatable.

the chat 'lib.php' will then get the corresponding record set from that table and use that information to create a 'slide' instead of using the text submitted as a 'chat message'.

the "::ALL" part of that command tells 'lib.php' to send the slide to all chatters, only the 'owner' of a presentation can send to 'ALL' .

the chatters online also have a select list of this presentation's slides BUT their command is : "/slide 6  ::99"  where '99' is their own moodle user id number. When a 'reegular moodle member' send this command the 'lib.php' will send the slide to their own browser only and no-one else.

this allows chatters to review slides after a presentation and for the presentation to be 'self-guided' but still inside the live chat environment.

the 'ADD Slide' link is only available to the 'owner' of a presentation.

the 'Edit webcam' link is available to all and will change this 'chat message' form to the 'webcam url' form.

Attachment Slide-Push.jpg
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

A Slide is displayed during a 'Live Presentation':

This screenshot is to show the Separation of 'Slides' and 'Chat Messages':

When the browser receives a 'slide' it will handle differently from a 'chat message'.

The first slide received during a chat session will force the container 'SlidePresentation' container to pop-up, this is still inside the same browser window, it is in a 'div' element.

Each new slide received will replace the previous slide content, there is no 'list' of slide contents only the select list of commands.

In the 'SlidePresentation' container you can see the 'graphic' component of this slide , this is a 'url' in the 'slides' datatable in this case it is a jpeg file but it could be a 'swf'(flash) file or any other media recognized by moodle's multi-media filter: the chat 'lib.php' will itself place any  jpeg/gif/bmp/png/tiff slide file in an 'img' tag and send to 'moodle_format' for any other file types. right now the slide cannot be a webpage as this panel will place tags in a table and not load an external webpage, if using external webpages a slides is required i can add that feature.

below the 'graphic' component is the text transcript, this will also be sent to 'moodle_format' so that you may place mp3 urls and have the flash player automatically wrapped as in this example.

this will allow the same presentation to have both recorded audio per slide AND a live speaker when available.

Any comments or questions posted by chatters during a presentation will appear in the 'ChitChat' panel and does not affect the 'slide' contents. this allows for both 'live' and 'prepared' content to be exchanged by all.

 

Attachment slideSend.jpg
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

Slide Presentation And Webcam .

This ScreenShot shows both Slide content and a webcam during a 'Live Presentation'.

the fullsize webcam image can be changed to any chatter's feed by mouseOver of a chatter's icon in the 'webcams online' panel.

Attachment slideShow.jpg
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by lou Charrier MIS -

Using the webcam feed for Screen Sharing

this screen shot shows a 'live' screen capture as the content of the 'Full size WebCam' panel.

You can see in the 'webcams online' panel that the user icon is a small version of moodle.org's login screen!!

i have set my 'webcam url' to a screenshot that i am uploading on a timed loop the same way that a webcam image is refreshed.

This allows for graphical 'Live Screen sharing', not for true application sharing but for many purposes this would be all that is required.

for an introductory  'how-to' session that explains how to use the different modules of a moodle course for example....

AND let's not forget that 'Power Point' issue ... how many posts at this website are about 'Power Point' conversion....personally, i don't get what the problem is exactly.. what is inside these 'power point' presentations ? i have done power point stuff before with special effects and THAT would not show as a once-a-second snapshot but ....  if it's 'just' a slide show then here is your solution!!

 Now you can screen-share anything you want , a Power Point slide show , software instructions, website mock-ups for clients, compare webpage renders from different browsers, step-by-step anything that you want , and it's live......

i will work on adding a 'recording' feature to this , i hadn't considered recording webcam snapshots before i used this screencap method, but now i think it would be worthwhile to have a list of these graphic files that could then be re-used to create a 'presentation': that way you could do the 'screencap-as-webcam' once, use the list of 'webcam' jpeg's as your 'image urls' for a presentation and then you would just need to add the text transcripts for each slide instead of 'doing it again' from scratch.....

and that feature would be part of this chat module so that makes this a 'Power Point' converter....

cool eh!?

LouCharrierMIS@go.com

Attachment screen-share.jpg
In reply to lou Charrier MIS

Live Presentation update and Whiteboard research report

by lou Charrier MIS -

Todays update:

The Live Presentation Editor is now more 'newbee friendly':

-allows for the re-sequencing of slides

-uses the 'WYSIWYG' editor for 'text transcripts' of each slide and Description of Presentation. This allows for the inclusion of all html tags, emoticons and images, also uploading of images through its interface as required.

While editing a slide , the graphic slide is displayed above the 'WYSIWYG' editor , this enables the creator to see the slide as he is editing the transcripts and allows for better slide previewing.

i still need to add a 'file selector and uploader' for the slide's graphic file itself , i have downloaded the new 'CMS' module from http://moodle.opitaan.fi/moodle_extra_120704.tar.gz and will hopefully see how to get that feature coded.

About a 'PHP Powered' Whiteboard:

the basic description and usage:

 Each chatter would have their own editable 'whiteboard' with a transparent background , this 'whteboard' would overlay a base image , the base image would be selected by the instructor as the 'topic' to be 'brainstormed' during this chat-driven whiteboard session. Each participating chatter would receive updated versions of other's 'whiteboard' overlays , a chatter would select which and how many overlays to view at any one time, each overlay would be contained in its own 'DIV' container that could be 'hidden' or 'show'n on demand. Although a chatter can only edit their own 'whiteboard' , their 'whiteboard' contents can be 'combined' with other's simply by 'show'ing the colaborating chatter(s)'s 'whiteboard' overlay(s).  

possible methods i have found and discarded:

java/flash and other plugins : 

yes pre-made whiteboard plug-ins do exist and there are many , i personally dont like java since it would require java rte install on all 'student's machines, possibly serverside java install required or at least additional php libs to handle moodle-izing of whiteboard data.

  flash plug-in does not 'save as jpeg' by itself so this would require server install. 

vrml (3d) - yes can output vrml with php but need browser plug-in for viewing if not editing.

i believe a php-mysql framework is required for a whiteboard module to be easily installed at any moodle site.

vml - just too early for wide browser compatability.

possible methods i have found and tested and still like:

Moodle's built-in 'WYSIWYG' editor:

yes it would be a viable possibility , every chatter is already familiar with the interface, you can insert text, graphics etc...

Usage :  Each chatter would have their own editable 'message' in it's own transparent background 'div'  and this would become their 'whiteboard overlay' that would be displayed in all chatter's browser...chat module can already handle db storage and transfer to all chatters.

 The editor would need a bit of coding to display the base image along with your whiteboard contents , allow for the on-demand read-only display of other chatter's div contents into the editor, hide/show which chatters whiteboards and how many you want to see at the same time.

this would simply make the editor's area the whiteboard , when other chatter's send their edits into the chat your editor's content would be re-freshed, when you make changes in the editor you are only altering your own 'DIV's whiteboard.

 the limitations are: difficulties in 'pixel-perfect' alignment of your whiteboard's content with the base image, the absence of line-drawing to enable 'pointing' at parts of base image and to connect whiteboard ; as in creating a flowchart.

i like this method as a possibility ; moodle's editor (htmlArea) has already been used in the 'mis-named'  pwhiteboard project, is say 'mis-named' because their implimentation is more along the lines of a 'guestbook' than a live-shared whiteboard.

PHPdraw  is a 'simplistic' php-gd powered 'in-the-browser' image creator i have installed and tested. It creates shapes like 'rectangle' 'line' 'oval'... not 'everything-you've-always-wanted' but free and open-source , a possible starting point...

i have installed and tested a fabulous 'feature rich' 'in the browser' image editor from: http://alllayers.com  . it uses javascript to 'get' mousexy position and form submits to give GD commands server-side through php. they also have a 'flowcharter' version  which would be a perfect way for chatters to easily select and add premade graphic elements to their whiteboard. A free version is available but we would need to alter the code and that is not free , they charge 200$ for 'all my scripts' and to have the edit-rights we need ... it's a good deal considering the amount of features already built-in but i think each moodle site would have to buy a license. still take a look at what they have done ....

PHPcad : is beautifullllll !!! a full-fledged 'in-the-browser' 3d editor : create 3dimensional objects and scenes , instant output of png/jpeg as you edit , mouse clicks for entry of start/end points, form input for code. saves POV format file as you work so the image you see is not the final output: you can output a MPEG movie !!! WOW ... all in the browser !!

i have to say :  PHPcad is still making me drool !! 3d is the only reason i ever considered 'touching' a computer and finding this php-gd based 'in-the-browser' 3d editor is making my mind spin ... this would be dead-on perfect as the ultimate 3d course inside the moodle framework, an online course with an online 3d editor !!! share your 'workspace' and 'results' live .WOW

free and open-source BUT this one is a little too much for a 'whiteboard' , 3D comes with a pretty steep learning curve just to chat... i'll have to keep this one on the back-burner, i will end-up using PHPcad for a moodle '3D animation' course... 

The biggest 'problem' of a GD-php powered whiteboard would be that each edit of each chatters whiteboard overlay would trigger the server to create a new image and send that new file to all chatters ... the overlay's image size would 'have' to be as large as the base image, that is a lot of processing/storing/transfer resources ..... just to put a mustache on the mona lisa !   wink

THEN i found what i think will meet the needs of 'whiteboarding' , stay inside moodle's javascript-php-mysql framework, meet the 'logging' needs of moodle and not use so much server-side resources:

THE method i have found , tested and LOVE:

wz_dragdrop  : a cross-browser javascript-dhtml library : allows for interactive and scripted content creation , placement and animation:

- moving / resizing images interactive with mouse or by script, can add/create images/divs on-demand , has path-based animation functions, can group div/images/content, can show/hide grouped elements.

AND from the same guy ! : Vector Graphics library    : can draw lines, rectangles, elipses on the screen with javascript-dhtml only, live interactive or scripted.

I found this because a was looking to improve the 'windowing kit' i have been using to manage the different areas of the screen in my 'Live Presentation with webcam' chat module enhancement. i was feeling the limitations of using  Popup Windows - V 4.4 .. can't complain ... it is a great bit of javascript but it is created for that purpose only , an instant 'div that looks like a window' kit.

So i have decided to re-code the javascript that manages the different areas of the chat window (well actually write the code, since i was kinda cheating by using that 'kit').

of course i will be using  wz_dragdrop as my library of premade functions .... this will give me the opportunity to extend the chat's features to include 'Live Whiteboard' :

All chatters will have the js functions already loaded in their browser , these same functions that manage the chat areas of the screen can also be used to manage 'whiteboard' areas, i can allow for chatters to send 'pre-defined' commands to others and this will be the way to share your 'whiteboard' to all.....

This is the same technique i am now using to power the 'Live Presentation' Slideshow: when a message is about to be sent from the server to the chatters it is 'checked' for the presence of certain 'commands' already, when these 'commands' are found the message is handled in different ways ...

this method is already in use at your own moodle's chat ! when you type /me: you will see your name instead of /me: at the beggining of your message when displayed in the chat message list.

So far ; i simply added a few 'send slide' commands and by adding even more 'commands' we can handle the storage and transfer of 'whiteboard' contents without overloading the server... the commands would simply state which image to place where on the chatters screen area as defined by the base image's proportions and placement.

i will be adding this method as the 'pointer' during a slide presentation: when the presenter of the slideshow clicks on an area of the slide's graphic the mousexy will be sent to all chatters then their browser will get the 'pointer' image and display as slide overlay at those coordinates. 

Using this method the server would not have to GD 'create' a new whiteboard image for every single change of every chatter's 'whiteboard' ....this would also allow for 'undo' of edits, since the whiteboard will actually be a collection of elements any element can be edited or removed independently.

i will also include a subset of the  Vector Graphics library  to allow for line-drawing in a flowchart setting.

IMPORTANT REQUEST: since i am planning to use the  wz_dragdrop  library as the basis for the entire chat module : Please test that website's demos with as many browser versions as you have ! 

 Let me know if i have a found the cross-browser gem i need !!

Thanks that will help a lot ,

LouCharrierMIS@go.com

In reply to lou Charrier MIS

Re: Live Presentation update and Whiteboard research report... Avant Browser

by Art Lader -
>IMPORTANT REQUEST: since i am planning to use the wz_dragdrop
> library as the basis for the entire chat module : Please test
> that website's demos with as many browser versions as you
> have !

Works great with my Avant browser.

-- Art
Attachment avant.png
In reply to Art Lader

Re: Live Presentation update and Whiteboard research report... Firefox Browser

by Art Lader -
Works with Firefox, too.

--Art
Attachment firefox.png
In reply to Art Lader

Re: Live Presentation update and Whiteboard research report... Mozilla Browser

by Art Lader -
And great with Mozilla.

-- Art
Attachment mozilla.jpg
In reply to lou Charrier MIS

Re: Live Presentation update and Whiteboard research report

by vijay bharadwaj -
Hi,
Could you please tell me from where could I download this module? I need it pretty badly.....
Thanks
Vijay
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Jim King -

Hello,

I am very happy to see work on a voice chat modual.  I am creating courses that are designed for blind students and voice chat is an important component of the courses under development.  I would welcome an opportunity to help test this modual.  I am interested in its accessibility for blind computer users.

In general Moodle is quite accessible for blind users and, in fact, that is the main reason I selected moodle.

Jim King

Jim@JimLKing.com

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Bhupinder Singh -

A THAUGHT FOR CONSIDERATION.

Want to share with you if you could consider the possibility of using / enabling the input using a tablet for input onto the presentation module under consideration. This will help imput by means other that keyboard.

Eagerly await the outcome of the development.

In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Julian Ridden -
Was wondering what has happened to this project? Is it still around?
In reply to Julian Ridden

Re: Request for a -Live Presentation- Module

by Karrie V -
I'd love to know more about this too!
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by fevzi gungor -
Whats up with the project?

Martin do you have any idea?

Fevzi
In reply to lou Charrier MIS

Re: Request for a -Live Presentation- Module

by Brad Iverson -
What is the status of this project. The concept had a lot of promise.