Comments (14)
See also:
https://github.com/groovecoder/mozilla_owa
from dzslides.
Hey :),
I did this with a PHP library (Hoa\Websocket). The repository is here: http://hg.hoa-project.net/Keynote/file/tip. Look at Shells/Mirror.html, Shells/Script/Mirror.* and Shells/Script/Onstage.js (where I add one method: Dz.startSocket).
The mirror shell supports notes (with localStorage), a red light that turns to green when connected and slides control is made from the onstage shell.
from dzslides.
Awesome! Do you have a zip somewhere? I never get why some of these repositories make it so hard to download them as a zip :-(
Otherwise I'll try and save each page one by one.
Do you have some more n00b-friendly explanation of how it works? What URL do you open on your mobile browser?
from dzslides.
Sorry for the late reply.
All you have to do is cloning the repository like this: $ hg clone http://hg.hoa-project.net/Keynote /tmp/keynote and that's all. This interface (hgweb) has no stub/archive system enabled for now, sorry.
Note for everyone else: the Websocket protocol is released under the RFC6455 (please, see http://j.mp/w3TvkK). I'll try to take time to update the PHP library I used (aka Hoa\Websocket) which is based on the -09 draft for now, as soon as possible.
from dzslides.
In the end I copied it manually (raw-link -> right-click -> save-as, repeat), but couldn't get it to work. Learnt a lot though, like needing your server to support it, etc.
from dzslides.
You need Hoa for sure.
Follow these steps:
$ hg clone http://hg.hoa-project.net/Central /usr/local/lib/hoa
$ hg clone http://hg.hoa-project.net/Keynote /tmp/keynote
$ cd !!$
$ php Shells/Script/Mirror.php&
Now, open file:///tmp/keynote/Shells/Onstage.html#file:///tmp/keynote/PHPTour11.html to command your slides.
And then, on your local network (127.0.0.1), open file:///tmp/keynote/Shells/Mirror.html#file:///tmp/keynote/PHPTour11.html and it works :-). One thing: the Websocket -09 draft is no longer compatible with the last draft, aka RFC6455. That's why Hoa\Websocket is not working on the last Firefox nightly. If you try with Safari for example, it will work (because it's not up to date). I'm trying to update Hoa\Websocket until December.
from dzslides.
I recently made something like this for a presentation I gave and I learnt a few things:
- To support a wide range of browsers I had to rely on socket.io pretty heavily
- Because of this it required the socket.io library and some hacking of the dzslide core, breaking the all-in-one-page rule
There is at least one possible way forward: have two shells one called 'control' and one 'viewer' that present themselves to dzslides as another view and convert any messages to/from websockets. I don't mind making these but I would like to know others think it's a good idea before I spend the time on them.
On the plus side the node.js code is very simple :)
from dzslides.
Hi everyone.
I don't have anything against PHP but I'd rather go for a nodejs implementation.
@pci Your idea with two shells one conrol and one viewer is excellent. It's exactly what I implemented for my web dev courses. The students had a modified embedder and I had a modified onstage that talked to each other through a long polling Java server.
I have more ideas concerning this synchronization feature. What I have in mind could be a whole new project, "DZsomething" that uses DZslides files and provide various synchronization features between speaker and audience. Here's some ideas :
- Who's connected (or how many people)
- Exchange text or source code (mix of etherpad and jsfiddle)
- Throw quizzes or polls. Audience answers and results get displayed on big screen
- And of courses synchronizing DZslides actions (slide changes, video playback, etc...)
Those are ideas from my teacher point of view but it can also be relevant in a speaker/conference environement.
For this to success, we need a very abstract solution that anyone can hack upon.
@paulrouget @pci What's your opinion on that?
from dzslides.
Would it be possible to make an api that could make it possible for different server side sync solutions? There are still lots and lots of PHP and ASP hosts but not so many nodejs ones?
from dzslides.
Yeah you're right. We could provide a reference implementation in nodejs with a clean and abstract API/protocol. That's why I think we may need a separate project.
from dzslides.
The API is very simple. All we have to do is editing Dz.postMsg for redirecting/cloning all messages on a connected Websocket. Do I propose a patch?
from dzslides.
I already started some work on that. Thanks.
For now the priority is on the v2 tagged issues. We'll resume that just after.
from dzslides.
Note for later : https://github.com/groovecoder/dzslides
from dzslides.
(DZServer :D)
from dzslides.
Related Issues (20)
- Notes in the embedder shell. HOT 7
- Chrome handling of mouse drag to select text inside scrollable area causes slide transition HOT 7
- role attribute and graphical editing tool
- Cannot control embedded YouTube videos on scaled players. HOT 1
- Allow arbitrary `incremental` html elements. HOT 1
- Links don't work in tablet (android) HOT 5
- PDF conversion HOT 10
- Named intra-slideshow links HOT 1
- HOME/END navigation seem to transition all slides HOT 4
- Android Webview doesn't work
- Links dead on android HOT 1
- slide change not reciprocated - onstage.html
- fullscreen videos
- comply with HTML parsing rules HOT 1
- WTFPL is unacceptable in some corporations HOT 3
- Integrate shells into the the main file HOT 1
- lists seem to be formatted wrong HOT 1
- broken URL for demo video: videos-cdn.mozilla.net → videos.cdn.mozilla.net HOT 3
- Details does not take text content HOT 9
- Video autoplay HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dzslides.