New Crossbar.io web site

111 views
Skip to first unread message

Tobias Oberstein

unread,
Jul 18, 2014, 8:47:09 PM7/18/14
to autobahnws
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

Jay Martin

unread,
Aug 12, 2014, 5:17:34 PM8/12/14
to autob...@googlegroups.com
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!

Marcel Maré

unread,
Aug 16, 2014, 1:48:46 PM8/16/14
to autob...@googlegroups.com
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

tim.in...@gmail.com

unread,
Aug 16, 2014, 3:33:28 PM8/16/14
to autob...@googlegroups.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

Tobias Oberstein

unread,
Aug 16, 2014, 5:08:33 PM8/16/14
to autob...@googlegroups.com
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.

===
> --
> 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.

Tobias Oberstein

unread,
Aug 16, 2014, 5:20:32 PM8/16/14
to autob...@googlegroups.com
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
> --
> 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>.

Tobias Oberstein

unread,
Aug 16, 2014, 5:39:57 PM8/16/14
to autob...@googlegroups.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.

Alexander Gödde

unread,
Aug 21, 2014, 1:11:24 PM8/21/14
to autob...@googlegroups.com
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 


--
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.
Reply all
Reply to author
Forward
0 new messages