New Crossbar.io web site

#1

Hi,

in the last days, we've put up new content on

http://crossbar.io

For one, the landing page now actually tells something;)

Then, there is a complete documentation set

http://crossbar.io/docs/

The nice thing: this is generated right from the Wiki

https://github.com/crossbario/crossbar/wiki

For example, the Wiki page

https://github.com/crossbario/crossbar/wiki/Getting%20started%20with%20Python

looks like this on the Crossbar.io web site

http://crossbar.io/docs/Getting-started-with-Python/

This means, there is now an extremely simple way of contributing
doc content to the live web site:

- just edit the Wiki
- wait for next deployment cycle

That last step works by running a shell script and can be made automatic like every day or hour.

For those interested, here is how it works:

The Web site is run as a Flask app. The Flask app has a route handler for docs that runs the Wiki markdown source files through a custom Markdown renderer (based on https://github.com/lepture/mistune). The output is fed through Jinja2 templating. Then the whole site is run through FrozenFlask to produce a set of static HTML files. Those files are then uploaded to Amazon S3. The Crossbar.io Web site runs directly from S3.

So, if you have improvements for the Crossbar.io docs / Wiki content, awesome!

Cheers,
/Tobias

0 Likes

#2

This is a really cool way to get people involved in the docs and I look forward to chipping in as I get familiar with Crossbar!

0 Likes

#3

Hi Tobias

I appreciate the effort to improve the docs.

Though I really want to like autobahn/wamp/crossbar I’m having a hard time to get up to speed. Of course, all this async stuff is very new as well, and that doesn’t help either…

The docs seems kind of scattered, on the autobahn site, the tavendo blog, and the crossbar site.

What I’d like to see is a tutorial or series of examples that build from the trivial to the more complex.

For example:

A minimal web socket example, python server and client.

Add javascript client

Maybe a more expanded ws example.

Then indicate how to move to production.

Then explain what WAMP adds to the mix.

Minimal WAMP example, python server and client. Add javascript client.

Then explain why one would use crossbar.

Expand the examples to include crossbar

Then indicate how to move this to production.

In all this reduce the degrees of freedom. Stick to 1 async solution (eg asyncio) or create fully parallel tutorials/examples, but do not interleave say twisted and asyncio examples.

Hope this helps a tiny bit…

Marcel

0 Likes

#4

Hello Tobias,

I agree with Jay. I think the tutorial he proposes could be a great way
to show what Autobahn and crossbar.io are all about, and their power.
Perhaps create a series of lessons that can be consumed in 10 minute
slots at lunchtime, maybe even youtube videos.

BTW - I just found some of your youtube videos, like
https://www.youtube.com/watch?v=Egvu4jL_Wlo
and
https://www.youtube.com/watch?v=va7j86thW5M

These are great demos, but you only realise that once you understand
what is happening - live feed of real-time data from an embedded micro
to a web-browser based viewer on a remote PC, and all via websockets.
This stuff is so exciting. I get that now I’ve learned a little about websockets,
WAMP, Autobahn, crossbar.io, but if I had come across this before, I would
not have had a clue about the significance.
Do you have code for these examples available under the crossbar.io demos ?

Tim

Tim

0 Likes

#5

Hi Marcel and Tim,

I hijack this mail to coalesce answers to you both ..

Thank you both! This is important feedback. Let me give a reply now .. I try to address some of the points you raise rgd docs tomorrow.

/Tobias

···

===

"Stuff is scattered"

I just wrote a piece today:

http://tavendo.com/blog/post/tavendo-technology-stack/

in the hope this explains why this isn't 1 website / technology. In fact, what we are doing here is building an ecosystem.

Does that help?

===

Regarding asynchronous programming:

For Python, I tried to collect - what I think - useful pointers here:

http://autobahn.ws/python/asynchronous-programming.html

I highly encourage checking out the links from the _first_ section. Probably I'm getting too involved later in this page again. Well.

But yes, if you've never done it, there will be a learning curve. I'm afraid I can't do much about that .. there are whole books that only talk about this.

And then Autobahn supports multiple languages. Take C++: this is heavy artillery .. and AutobahnCpp is using cutting edge features like C++11 and even newer. The fun thing is: once you got it, the know how translates. Granted, C++ will probably stay tricky;)

===

Regarding WebSocket programming with Python: have you looked at

http://autobahn.ws/python/websocket/programming.html

?

It explains everything you need to know for probably >90% use cases (pure WebSocket programming).

This _single_ page took me >1d work/fiddling. It's the best I can do;( If this isn't sufficient, I'm afraid others need to jump in.

@Marcel: Yes, this text alternates between Twisted and asyncio - deliberately. I wanted to show how _similar_ both are. Also in the It's really mostly syntactical (the differences). You think this is bad?

===

@Tim: Regarding "how do all those pieces fit together":

Do you want to know how Crossbar works _inside_? Then yes, I can explain that.

If you are just interested in _using_ Crossbar, say from JS, then you only need to know AutobahnJS + CB config.

You don't need to know Twisted, asyncio, Python, whatever. Forget this. You can do WAMP programming with a browser, JS and Crossbar alone.

If you are interested in using CB from Python, then yes, you need AutobahnPython, plus either Twisted or asyncio.

I have mostly finished this page:

http://autobahn.ws/python/wamp/programming.html

This page covers all you need to get started with Python writing WAMP components that run under CB.

===

Am 16.08.2014 19:48, schrieb Marcel Maré:

Hi Tobias

I appreciate the effort to improve the docs.
Though I really want to like autobahn/wamp/crossbar I'm having a hard
time to get up to speed. Of course, all this async stuff is very new as
well, and that doesn't help either..
The docs seems kind of scattered, on the autobahn site, the tavendo
blog, and the crossbar site.
What I'd like to see is a tutorial or series of examples that build from
the trivial to the more complex.

For example:
A minimal web socket example, python server and client.
Add javascript client
Maybe a more expanded ws example.
Then indicate how to move to production.
...
Then explain what WAMP adds to the mix.
Minimal WAMP example, python server and client. Add javascript client.
...
Then explain why one would use crossbar.
Expand the examples to include crossbar
Then indicate how to move this to production.

In all this reduce the degrees of freedom. Stick to 1 async solution (eg
asyncio) or create fully parallel tutorials/examples, but do not
interleave say twisted and asyncio examples.
Hope this helps a tiny bit...

Marcel

--
You received this message because you are subscribed to the Google
Groups "Autobahn" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to autobahnws+...@googlegroups.com
<mailto:autobahnws+...@googlegroups.com>.
To post to this group, send email to autob...@googlegroups.com
<mailto:autob...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/autobahnws/82721192-a5c9-4fcf-b053-84e94adfb45b%40googlegroups.com
<https://groups.google.com/d/msgid/autobahnws/82721192-a5c9-4fcf-b053-84e94adfb45b%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

0 Likes

#6

Hi Tim,

just a quick reply .. need to get some sleep;)

Have you stumbled across

http://tavendo.com/blog/

yet?

E.g. tutorial for the Arduino Yun Video:

http://tavendo.com/blog/post/arduino-yun-with-autobahn/

If you wanna get another flash, here you go:

http://showroomdummy.com/

Also Crossbar.

The code for the Yun stuff was still WAMP1, and in general needs much cleanup. Don't look inside, but here it is:

https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/wamp1/apps/serial2ws

It can be done muuuch nicer now.

Your comments below are really helpful. I will try to consolidate those tomorrow.

And I do hope that as you guys and others start to use and understand all this new tech, you could then help others and perhaps help improving the docs. You know, it's an _insane_ amount of work.

Anyway, thanks for your feedback!
/Tobias

···

Am 16.08.2014 21:33, schrieb tim.in...@gmail.com:

Hello Tobias,

I agree with Jay. I think the tutorial he proposes could be a great way
to show what Autobahn and crossbar.io are all about, and their power.
Perhaps create a series of lessons that can be consumed in 10 minute
slots at lunchtime, maybe even youtube videos.

BTW - I just found some of your youtube videos, like
https://www.youtube.com/watch?v=Egvu4jL_Wlo
and
https://www.youtube.com/watch?v=va7j86thW5M

These are great demos, but you only realise that once you understand
what is happening - live feed of real-time data from an embedded micro
to a web-browser based viewer on a remote PC, and all via websockets.
This stuff is so exciting. I get that now I've learned a little about
websockets,
WAMP, Autobahn, crossbar.io, but if I had come across this before, I would
not have had a clue about the significance.
Do you have code for these examples available under the crossbar.io demos ?

Tim

Tim

--
You received this message because you are subscribed to the Google
Groups "Autobahn" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to autobahnws+...@googlegroups.com
<mailto:autobahnws+...@googlegroups.com>.
To post to this group, send email to autob...@googlegroups.com
<mailto:autob...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/autobahnws/7b990b96-5886-443c-b063-fad3149dec30%40googlegroups.com
<https://groups.google.com/d/msgid/autobahnws/7b990b96-5886-443c-b063-fad3149dec30%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.

0 Likes

#7

Though I really want to like autobahn/wamp/crossbar I'm having a hard
time to get up to speed. Of course, all this async stuff is very new as
well, and that doesn't help either..

The quickest way probably is (after installing Crossbar)

http://crossbar.io/docs/Getting-started-with-Python/

[or the other "getting started"s for other languages]

This sets up a _complete_ application, Python backend, JS frontend, including Crossbar config.

You can then just tweak the code from a "known good".

A slightly nicer demo is what Jay was running (see the recent mail thread here): a real-time Votes app.

0 Likes

#8

Hi all!

The collection of documentation related suggestions now is Crossbar issue #017.

We’ll be trying to address as many of these as possible in the near term.

Further suggestions are highly welcome, and are probably best filed as comments on the above issue.

Regards,

Alex

···

2014-08-16 23:39 GMT+02:00 Tobias Oberstein tobias.o...@gmail.com:

Though I really want to like autobahn/wamp/crossbar I’m having a hard

time to get up to speed. Of course, all this async stuff is very new as

well, and that doesn’t help either…

The quickest way probably is (after installing Crossbar)

http://crossbar.io/docs/Getting-started-with-Python/

[or the other "getting started"s for other languages]

This sets up a complete application, Python backend, JS frontend, including Crossbar config.

You can then just tweak the code from a “known good”.

A slightly nicer demo is what Jay was running (see the recent mail thread here): a real-time Votes app.

You received this message because you are subscribed to the Google Groups “Autobahn” group.

To unsubscribe from this group and stop receiving emails from it, send an email to autobahnws+unsubscribe@googlegroups.com.

To post to this group, send email to autob...@googlegroups.com.

To view this discussion on the web visit https://groups.google.com/d/msgid/autobahnws/53EFCFA8.6030200%40gmail.com.

For more options, visit https://groups.google.com/d/optout.

0 Likes