[julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-07-26 Thread Shashi Gowda
@Robert

This discussion was continued here:

https://github.com/shashi/Escher.jl/issues/1#issuecomment-124576960



On Sun, Jul 26, 2015 at 8:49 PM, Robert Feldt robert.fe...@gmail.com
wrote:

 Michael,

 This is not exactly what you are asking for but at least there are some
 plans for integrating Vega.jl (d3-based) and Escher.jl at some point:

 https://github.com/johnmyleswhite/Vega.jl/issues/16

 If you/others know about other ways to have d3-based/interactive graphs
 in/with Escher please share.

 Regards,

 Robert Feldt


 Den fredag 24 juli 2015 kl. 19:10:49 UTC+2 skrev Michael Turok:

 Package looks beautiful.

 I see that you are using Gadfly, and using rendering offered up by the
 Compose package.

 Any thoughts about how I would render a d3-based infrastrcture?

 Michael

 On Monday, June 8, 2015 at 12:23:21 PM UTC-4, Shashi Gowda wrote:

 Hello all!

 I have been working on a package called *Escher* over the past several
 months.

 It is now quite feature-rich and ready to use in some sense. I put
 together an overview here:

https://shashi.github.io/Escher.jl/*

 My aim is to converge at a UI toolkit that any Julia programmer can use
 to create rich interactive GUIs and deploy them over the web, *within
 minutes*.

 Escher simplifies the web platform into a simple and pleasant pure-Julia
 library. You don't need to learn or write HTML or CSS or JavaScript. Many
 problems associated with traditional web development basically disappear.
 There is no need to write separate front-end and back-end code, layouts are
 tractable and similar to layouts in the original TeX. Communication is done
 under-the-hood as and when required. No boiler plate code. Things just look
 great by default.

 Briefly, here is how Escher works under the hood:

 - A UI is an immutable Julia value that is converted to a Virtual DOM
 http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM
 using the Patchwork https://github.com/shashi/Patchwork.jl library.
   Compose graphics and Gadfly plots also get rendered to Virtual DOM as
 well.
 - Subsequent updates to a UI are sent as patches to the current UI over
 a websocket connection
 - Input widgets send messages to the server over the same websocket
 connection
 - Complex things like tabs, slideshows, code editor, TeX and dropdown
 menus are set up as custom HTML elements using the Web Component
 http://webcomponents.org/ specification, mainly using the Polymer
 library http://polymer-project.org/. These things are just Virtual
 DOM nodes in the end.


 This is still a work in progress, I am very happy to receive any
 critique on this thread, and bug reports on Github
 https://github.com/shashi/Escher.jl. I am very excited to see what
 you will create with Escher.

 Thanks! :)
 Shashi

 * - Escher uses some bleeding-edge Web features, this page might not
 work so well on Safari, should work well on a decently new Chrome, and on
 Firefox if you wait for long enough for all the assets to load. I will be
 fixing this in due time, and also working on a cross-browser testing
 framework.

 PS: I have been dealing with RSI issues of late and my hands will
 appreciate any help with expanding the documentation! See
 https://github.com/shashi/Escher.jl/issues/26 if you wish to help.




[julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-07-26 Thread Robert Feldt
Michael,

This is not exactly what you are asking for but at least there are some 
plans for integrating Vega.jl (d3-based) and Escher.jl at some point:

https://github.com/johnmyleswhite/Vega.jl/issues/16

If you/others know about other ways to have d3-based/interactive graphs 
in/with Escher please share.

Regards,

Robert Feldt

Den fredag 24 juli 2015 kl. 19:10:49 UTC+2 skrev Michael Turok:

 Package looks beautiful.

 I see that you are using Gadfly, and using rendering offered up by the 
 Compose package. 

 Any thoughts about how I would render a d3-based infrastrcture?

 Michael

 On Monday, June 8, 2015 at 12:23:21 PM UTC-4, Shashi Gowda wrote:

 Hello all!

 I have been working on a package called *Escher* over the past several 
 months.

 It is now quite feature-rich and ready to use in some sense. I put 
 together an overview here:

https://shashi.github.io/Escher.jl/*

 My aim is to converge at a UI toolkit that any Julia programmer can use 
 to create rich interactive GUIs and deploy them over the web, *within 
 minutes*.

 Escher simplifies the web platform into a simple and pleasant pure-Julia 
 library. You don't need to learn or write HTML or CSS or JavaScript. Many 
 problems associated with traditional web development basically disappear. 
 There is no need to write separate front-end and back-end code, layouts are 
 tractable and similar to layouts in the original TeX. Communication is done 
 under-the-hood as and when required. No boiler plate code. Things just look 
 great by default.

 Briefly, here is how Escher works under the hood:

 - A UI is an immutable Julia value that is converted to a Virtual DOM 
 http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM 
 using the Patchwork https://github.com/shashi/Patchwork.jl library.
   Compose graphics and Gadfly plots also get rendered to Virtual DOM as 
 well.
 - Subsequent updates to a UI are sent as patches to the current UI over a 
 websocket connection
 - Input widgets send messages to the server over the same websocket 
 connection
 - Complex things like tabs, slideshows, code editor, TeX and dropdown 
 menus are set up as custom HTML elements using the Web Component 
 http://webcomponents.org/ specification, mainly using the Polymer 
 library http://polymer-project.org/. These things are just Virtual DOM 
 nodes in the end.


 This is still a work in progress, I am very happy to receive any critique 
 on this thread, and bug reports on Github 
 https://github.com/shashi/Escher.jl. I am very excited to see what you 
 will create with Escher.

 Thanks! :)
 Shashi

 * - Escher uses some bleeding-edge Web features, this page might not work 
 so well on Safari, should work well on a decently new Chrome, and on 
 Firefox if you wait for long enough for all the assets to load. I will be 
 fixing this in due time, and also working on a cross-browser testing 
 framework.

 PS: I have been dealing with RSI issues of late and my hands will 
 appreciate any help with expanding the documentation! See 
 https://github.com/shashi/Escher.jl/issues/26 if you wish to help.



[julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-07-24 Thread Michael Turok
Package looks beautiful.

I see that you are using Gadfly, and using rendering offered up by the 
Compose package. 

Any thoughts about how I would render a d3-based infrastrcture?

Michael

On Monday, June 8, 2015 at 12:23:21 PM UTC-4, Shashi Gowda wrote:

 Hello all!

 I have been working on a package called *Escher* over the past several 
 months.

 It is now quite feature-rich and ready to use in some sense. I put 
 together an overview here:

https://shashi.github.io/Escher.jl/*

 My aim is to converge at a UI toolkit that any Julia programmer can use to 
 create rich interactive GUIs and deploy them over the web, *within 
 minutes*.

 Escher simplifies the web platform into a simple and pleasant pure-Julia 
 library. You don't need to learn or write HTML or CSS or JavaScript. Many 
 problems associated with traditional web development basically disappear. 
 There is no need to write separate front-end and back-end code, layouts are 
 tractable and similar to layouts in the original TeX. Communication is done 
 under-the-hood as and when required. No boiler plate code. Things just look 
 great by default.

 Briefly, here is how Escher works under the hood:

 - A UI is an immutable Julia value that is converted to a Virtual DOM 
 http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM 
 using the Patchwork https://github.com/shashi/Patchwork.jl library.
   Compose graphics and Gadfly plots also get rendered to Virtual DOM as 
 well.
 - Subsequent updates to a UI are sent as patches to the current UI over a 
 websocket connection
 - Input widgets send messages to the server over the same websocket 
 connection
 - Complex things like tabs, slideshows, code editor, TeX and dropdown 
 menus are set up as custom HTML elements using the Web Component 
 http://webcomponents.org/ specification, mainly using the Polymer 
 library http://polymer-project.org/. These things are just Virtual DOM 
 nodes in the end.


 This is still a work in progress, I am very happy to receive any critique 
 on this thread, and bug reports on Github 
 https://github.com/shashi/Escher.jl. I am very excited to see what you 
 will create with Escher.

 Thanks! :)
 Shashi

 * - Escher uses some bleeding-edge Web features, this page might not work 
 so well on Safari, should work well on a decently new Chrome, and on 
 Firefox if you wait for long enough for all the assets to load. I will be 
 fixing this in due time, and also working on a cross-browser testing 
 framework.

 PS: I have been dealing with RSI issues of late and my hands will 
 appreciate any help with expanding the documentation! See 
 https://github.com/shashi/Escher.jl/issues/26 if you wish to help.



[julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-06-09 Thread Steven Sagaert
Looks super! Nice to see such a cool mix of features (functional, reactive, 
websocket, html5, Tex support,...)
I just have one concern: since the GUI is immutable and involves a lot of 
julia code generation (and hence compilation): what's the performance like?

On Monday, June 8, 2015 at 6:23:21 PM UTC+2, Shashi Gowda wrote:

 Hello all!

 I have been working on a package called *Escher* over the past several 
 months.

 It is now quite feature-rich and ready to use in some sense. I put 
 together an overview here:

https://shashi.github.io/Escher.jl/*

 My aim is to converge at a UI toolkit that any Julia programmer can use to 
 create rich interactive GUIs and deploy them over the web, *within 
 minutes*.

 Escher simplifies the web platform into a simple and pleasant pure-Julia 
 library. You don't need to learn or write HTML or CSS or JavaScript. Many 
 problems associated with traditional web development basically disappear. 
 There is no need to write separate front-end and back-end code, layouts are 
 tractable and similar to layouts in the original TeX. Communication is done 
 under-the-hood as and when required. No boiler plate code. Things just look 
 great by default.

 Briefly, here is how Escher works under the hood:

 - A UI is an immutable Julia value that is converted to a Virtual DOM 
 http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM 
 using the Patchwork https://github.com/shashi/Patchwork.jl library.
   Compose graphics and Gadfly plots also get rendered to Virtual DOM as 
 well.
 - Subsequent updates to a UI are sent as patches to the current UI over a 
 websocket connection
 - Input widgets send messages to the server over the same websocket 
 connection
 - Complex things like tabs, slideshows, code editor, TeX and dropdown 
 menus are set up as custom HTML elements using the Web Component 
 http://webcomponents.org/ specification, mainly using the Polymer 
 library http://polymer-project.org/. These things are just Virtual DOM 
 nodes in the end.


 This is still a work in progress, I am very happy to receive any critique 
 on this thread, and bug reports on Github 
 https://github.com/shashi/Escher.jl. I am very excited to see what you 
 will create with Escher.

 Thanks! :)
 Shashi

 * - Escher uses some bleeding-edge Web features, this page might not work 
 so well on Safari, should work well on a decently new Chrome, and on 
 Firefox if you wait for long enough for all the assets to load. I will be 
 fixing this in due time, and also working on a cross-browser testing 
 framework.

 PS: I have been dealing with RSI issues of late and my hands will 
 appreciate any help with expanding the documentation! See 
 https://github.com/shashi/Escher.jl/issues/26 if you wish to help.



[julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-06-09 Thread datnamer
This is absolutely fantastic!!! 

A common impediment I've heard regarding why Julia is not adopted for more 
general/web programming is it's lack of GUI and other general 
toolkits/libraries. 

This will help immensely I think.

Have you considered adding facilities to wrap arbitrary JS libraries ala 
R's HTML Widgets http://www.htmlwidgets.org/? Or does this not go along 
with the server side philosophy?

On Monday, June 8, 2015 at 12:23:21 PM UTC-4, Shashi Gowda wrote:

 Hello all!

 I have been working on a package called *Escher* over the past several 
 months.

 It is now quite feature-rich and ready to use in some sense. I put 
 together an overview here:

https://shashi.github.io/Escher.jl/*

 My aim is to converge at a UI toolkit that any Julia programmer can use to 
 create rich interactive GUIs and deploy them over the web, *within 
 minutes*.

 Escher simplifies the web platform into a simple and pleasant pure-Julia 
 library. You don't need to learn or write HTML or CSS or JavaScript. Many 
 problems associated with traditional web development basically disappear. 
 There is no need to write separate front-end and back-end code, layouts are 
 tractable and similar to layouts in the original TeX. Communication is done 
 under-the-hood as and when required. No boiler plate code. Things just look 
 great by default.

 Briefly, here is how Escher works under the hood:

 - A UI is an immutable Julia value that is converted to a Virtual DOM 
 http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM 
 using the Patchwork https://github.com/shashi/Patchwork.jl library.
   Compose graphics and Gadfly plots also get rendered to Virtual DOM as 
 well.
 - Subsequent updates to a UI are sent as patches to the current UI over a 
 websocket connection
 - Input widgets send messages to the server over the same websocket 
 connection
 - Complex things like tabs, slideshows, code editor, TeX and dropdown 
 menus are set up as custom HTML elements using the Web Component 
 http://webcomponents.org/ specification, mainly using the Polymer 
 library http://polymer-project.org/. These things are just Virtual DOM 
 nodes in the end.


 This is still a work in progress, I am very happy to receive any critique 
 on this thread, and bug reports on Github 
 https://github.com/shashi/Escher.jl. I am very excited to see what you 
 will create with Escher.

 Thanks! :)
 Shashi

 * - Escher uses some bleeding-edge Web features, this page might not work 
 so well on Safari, should work well on a decently new Chrome, and on 
 Firefox if you wait for long enough for all the assets to load. I will be 
 fixing this in due time, and also working on a cross-browser testing 
 framework.

 PS: I have been dealing with RSI issues of late and my hands will 
 appreciate any help with expanding the documentation! See 
 https://github.com/shashi/Escher.jl/issues/26 if you wish to help.



[julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-06-09 Thread Páll Haraldsson
On Monday, June 8, 2015 at 4:23:21 PM UTC, Shashi Gowda wrote:

 My aim is to converge at a UI toolkit that any Julia programmer can use to 
 create rich interactive GUIs and deploy them over the web, *within 
 minutes*.


I see, world domination for Julia is getting a lot closer.. :)

A.
While you say rich interactive and on the page vector graphics, I 
wander about support for really interactive as in 3D/2D games or 
interactive 3D plots.. (e.g. WebGL or canvas, you have plots so I guess 
they are made server side and you just link to pictures) and video (those 
are I guess not a problem). Not that I'm criticizing.. This is great, as 
is, and enough for many, most? not only the Julia target audience. There 
is another thread here on supporting at least 3D (OpenGL ES, not WebGL) in 
Android (and iOS would be a possibility).

B.
[Just looked up Java/Dukescript Minesweeper example, that is 1202 SLOC/1.8 
MB + XML.. but at least it is portable to all platforms and the web..

https://dukescript.com/update/2015/01/04/Common-misconceptions-about-DukeScript.html

http://wiki.apidesign.org/wiki/MineSweeper
]

Just looking at 80-line (90, really, there are comments.. just looked up 
Java/) Minesweeper example, seeing not really any boilerplate code, I 
wander how easy it is to make this portable. It's ok I guess if you made 
something on your PC and it displays in your browser (localhost), but in 
Android this should of course work from a server, I'm just not sure as 
Android is not a server OS, that you can run both the server and client 
part there. That is what hybrid apps/WebViews are for I understand. I guess 
it could be made too work, and also for iOS.

The problem with pure standalone web app, say for Firefox OS, the least of 
my concerns.. not sure it will take off, would be to get the server part 
(that would include the whole of Julia runtime..) to also run in the 
phone/tablet/TV.. And a MIPS Firefox OS tablet under $100 (that also 
supports Android) was announced also complicating supporting that/those OS..

For a pure Windows, Linux or Mac app, I guess you could reuse everything. 
We can neglect Firefox OS/pure standalone apps for now..

I'm a little conflicted what is needed for world domination, people 
consider JavaScript an important language to learn as the web uses it and 
everything is there and now JS even outside of it.. I hate to be force to 
use it and you seem to have shoot down that argument.. I wander if I need 
to learn any web-technologies, such as jQuery etc. (I'm a little ignorant 
of all those), or if you can still access them (or need too). I think the 
only APIs you need in the web may be the DOM and you have that?

C.
As your project is also a web-server, would that be a problem for big 
sites? I'm not sure you need Apache anyway.. maybe you can have that (or 
other web servers) for static content. For dynamic, I'm not aware of any 
mod_julia, and not sure it is a problem. What do the others with good 
concurrency, Erlang and Go, do, always have web serving inbuilt? Now, I'm 
really curious, I understand Go's goroutines are not the same as 
coroutines, but close enough, is Julia at least good enough? Better?
 

 * - Escher uses some bleeding-edge Web features, this page might not work 
 so well on Safari, should work well on a decently new Chrome, and on 
 Firefox if you wait for long enough for all the assets to load. I will be 
 fixing this in due time, and also working on a cross-browser testing 
 framework.


I'm not sure this is a problem.. hopefully Safari will just catch up soon 
to support any big web apps people may be planning, by the time of 
completion.. Any idea about IE? Alternatively, adding support for Safari, 
as is, working better is an option?

-- 
Palli.



[julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-06-09 Thread Avik Sengupta
There is no compilation of Julia code into JavaScript. At the cost of 
simplifying, you essentially manipulate a shadow DOM in Julia, that 
generates the corresponding  HTML. And browser events are delivered to 
Julia using reactive signals. 

So yes,  I suppose you could say that it is all driven from the server. 

On Tuesday, 9 June 2015 14:01:43 UTC+1, Sebastian Good wrote:

 Looks pretty interesting and in line with a lot of current web framework 
 thinking. Are there any pieces inside Escher which help with compiling 
 Julia code to JavaScript? Or is it all driven from the server?

 On Monday, June 8, 2015 at 12:23:21 PM UTC-4, Shashi Gowda wrote:

 Hello all!

 I have been working on a package called *Escher* over the past several 
 months.

 It is now quite feature-rich and ready to use in some sense. I put 
 together an overview here:

https://shashi.github.io/Escher.jl/*

 My aim is to converge at a UI toolkit that any Julia programmer can use 
 to create rich interactive GUIs and deploy them over the web, *within 
 minutes*.

 Escher simplifies the web platform into a simple and pleasant pure-Julia 
 library. You don't need to learn or write HTML or CSS or JavaScript. Many 
 problems associated with traditional web development basically disappear. 
 There is no need to write separate front-end and back-end code, layouts are 
 tractable and similar to layouts in the original TeX. Communication is done 
 under-the-hood as and when required. No boiler plate code. Things just look 
 great by default.

 Briefly, here is how Escher works under the hood:

 - A UI is an immutable Julia value that is converted to a Virtual DOM 
 http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM 
 using the Patchwork https://github.com/shashi/Patchwork.jl library.
   Compose graphics and Gadfly plots also get rendered to Virtual DOM as 
 well.
 - Subsequent updates to a UI are sent as patches to the current UI over a 
 websocket connection
 - Input widgets send messages to the server over the same websocket 
 connection
 - Complex things like tabs, slideshows, code editor, TeX and dropdown 
 menus are set up as custom HTML elements using the Web Component 
 http://webcomponents.org/ specification, mainly using the Polymer 
 library http://polymer-project.org/. These things are just Virtual DOM 
 nodes in the end.


 This is still a work in progress, I am very happy to receive any critique 
 on this thread, and bug reports on Github 
 https://github.com/shashi/Escher.jl. I am very excited to see what you 
 will create with Escher.

 Thanks! :)
 Shashi

 * - Escher uses some bleeding-edge Web features, this page might not work 
 so well on Safari, should work well on a decently new Chrome, and on 
 Firefox if you wait for long enough for all the assets to load. I will be 
 fixing this in due time, and also working on a cross-browser testing 
 framework.

 PS: I have been dealing with RSI issues of late and my hands will 
 appreciate any help with expanding the documentation! See 
 https://github.com/shashi/Escher.jl/issues/26 if you wish to help.



[julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-06-09 Thread Sebastian Good
Looks pretty interesting and in line with a lot of current web framework 
thinking. Are there any pieces inside Escher which help with compiling 
Julia code to JavaScript? Or is it all driven from the server?

On Monday, June 8, 2015 at 12:23:21 PM UTC-4, Shashi Gowda wrote:

 Hello all!

 I have been working on a package called *Escher* over the past several 
 months.

 It is now quite feature-rich and ready to use in some sense. I put 
 together an overview here:

https://shashi.github.io/Escher.jl/*

 My aim is to converge at a UI toolkit that any Julia programmer can use to 
 create rich interactive GUIs and deploy them over the web, *within 
 minutes*.

 Escher simplifies the web platform into a simple and pleasant pure-Julia 
 library. You don't need to learn or write HTML or CSS or JavaScript. Many 
 problems associated with traditional web development basically disappear. 
 There is no need to write separate front-end and back-end code, layouts are 
 tractable and similar to layouts in the original TeX. Communication is done 
 under-the-hood as and when required. No boiler plate code. Things just look 
 great by default.

 Briefly, here is how Escher works under the hood:

 - A UI is an immutable Julia value that is converted to a Virtual DOM 
 http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM 
 using the Patchwork https://github.com/shashi/Patchwork.jl library.
   Compose graphics and Gadfly plots also get rendered to Virtual DOM as 
 well.
 - Subsequent updates to a UI are sent as patches to the current UI over a 
 websocket connection
 - Input widgets send messages to the server over the same websocket 
 connection
 - Complex things like tabs, slideshows, code editor, TeX and dropdown 
 menus are set up as custom HTML elements using the Web Component 
 http://webcomponents.org/ specification, mainly using the Polymer 
 library http://polymer-project.org/. These things are just Virtual DOM 
 nodes in the end.


 This is still a work in progress, I am very happy to receive any critique 
 on this thread, and bug reports on Github 
 https://github.com/shashi/Escher.jl. I am very excited to see what you 
 will create with Escher.

 Thanks! :)
 Shashi

 * - Escher uses some bleeding-edge Web features, this page might not work 
 so well on Safari, should work well on a decently new Chrome, and on 
 Firefox if you wait for long enough for all the assets to load. I will be 
 fixing this in due time, and also working on a cross-browser testing 
 framework.

 PS: I have been dealing with RSI issues of late and my hands will 
 appreciate any help with expanding the documentation! See 
 https://github.com/shashi/Escher.jl/issues/26 if you wish to help.



Re: [julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-06-08 Thread Filipe Braida do Carmo
Great!!! :D

On Mon, Jun 8, 2015 at 1:41 PM, Simon Danisch sdani...@gmail.com wrote:

 This looks great =)


 Am Montag, 8. Juni 2015 18:23:21 UTC+2 schrieb Shashi Gowda:

 Hello all!

 I have been working on a package called *Escher* over the past several
 months.

 It is now quite feature-rich and ready to use in some sense. I put
 together an overview here:

https://shashi.github.io/Escher.jl/*

 My aim is to converge at a UI toolkit that any Julia programmer can use
 to create rich interactive GUIs and deploy them over the web, *within
 minutes*.

 Escher simplifies the web platform into a simple and pleasant pure-Julia
 library. You don't need to learn or write HTML or CSS or JavaScript. Many
 problems associated with traditional web development basically disappear.
 There is no need to write separate front-end and back-end code, layouts are
 tractable and similar to layouts in the original TeX. Communication is done
 under-the-hood as and when required. No boiler plate code. Things just look
 great by default.

 Briefly, here is how Escher works under the hood:

 - A UI is an immutable Julia value that is converted to a Virtual DOM
 http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM
 using the Patchwork https://github.com/shashi/Patchwork.jl library.
   Compose graphics and Gadfly plots also get rendered to Virtual DOM as
 well.
 - Subsequent updates to a UI are sent as patches to the current UI over a
 websocket connection
 - Input widgets send messages to the server over the same websocket
 connection
 - Complex things like tabs, slideshows, code editor, TeX and dropdown
 menus are set up as custom HTML elements using the Web Component
 http://webcomponents.org/ specification, mainly using the Polymer
 library http://polymer-project.org/. These things are just Virtual DOM
 nodes in the end.


 This is still a work in progress, I am very happy to receive any critique
 on this thread, and bug reports on Github
 https://github.com/shashi/Escher.jl. I am very excited to see what you
 will create with Escher.

 Thanks! :)
 Shashi

 * - Escher uses some bleeding-edge Web features, this page might not work
 so well on Safari, should work well on a decently new Chrome, and on
 Firefox if you wait for long enough for all the assets to load. I will be
 fixing this in due time, and also working on a cross-browser testing
 framework.

 PS: I have been dealing with RSI issues of late and my hands will
 appreciate any help with expanding the documentation! See
 https://github.com/shashi/Escher.jl/issues/26 if you wish to help.




-- 
--
Filipe Braida do Carmo
-
BSc em Ciência da Computação - Universidade Federal do Rio de Janeiro - UFRJ
Mestre em Engenharia de Sistemas e Computação - PESC/COPPE/UFRJ
Doutorando em Engenharia de Sistemas e Computação - PESC/COPPE/UFRJ


[julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-06-08 Thread Tom Breloff
Shashi: This looks really cool.  And I'll be trying it out soon... thanks 
for the effort.

On Monday, June 8, 2015 at 12:23:21 PM UTC-4, Shashi Gowda wrote:

 Hello all!

 I have been working on a package called *Escher* over the past several 
 months.

 It is now quite feature-rich and ready to use in some sense. I put 
 together an overview here:

https://shashi.github.io/Escher.jl/*

 My aim is to converge at a UI toolkit that any Julia programmer can use to 
 create rich interactive GUIs and deploy them over the web, *within 
 minutes*.

 Escher simplifies the web platform into a simple and pleasant pure-Julia 
 library. You don't need to learn or write HTML or CSS or JavaScript. Many 
 problems associated with traditional web development basically disappear. 
 There is no need to write separate front-end and back-end code, layouts are 
 tractable and similar to layouts in the original TeX. Communication is done 
 under-the-hood as and when required. No boiler plate code. Things just look 
 great by default.

 Briefly, here is how Escher works under the hood:

 - A UI is an immutable Julia value that is converted to a Virtual DOM 
 http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM 
 using the Patchwork https://github.com/shashi/Patchwork.jl library.
   Compose graphics and Gadfly plots also get rendered to Virtual DOM as 
 well.
 - Subsequent updates to a UI are sent as patches to the current UI over a 
 websocket connection
 - Input widgets send messages to the server over the same websocket 
 connection
 - Complex things like tabs, slideshows, code editor, TeX and dropdown 
 menus are set up as custom HTML elements using the Web Component 
 http://webcomponents.org/ specification, mainly using the Polymer 
 library http://polymer-project.org/. These things are just Virtual DOM 
 nodes in the end.


 This is still a work in progress, I am very happy to receive any critique 
 on this thread, and bug reports on Github 
 https://github.com/shashi/Escher.jl. I am very excited to see what you 
 will create with Escher.

 Thanks! :)
 Shashi

 * - Escher uses some bleeding-edge Web features, this page might not work 
 so well on Safari, should work well on a decently new Chrome, and on 
 Firefox if you wait for long enough for all the assets to load. I will be 
 fixing this in due time, and also working on a cross-browser testing 
 framework.

 PS: I have been dealing with RSI issues of late and my hands will 
 appreciate any help with expanding the documentation! See 
 https://github.com/shashi/Escher.jl/issues/26 if you wish to help.



[julia-users] Re: Announcement: Escher.jl - a toolkit for beautiful Web UIs in pure Julia

2015-06-08 Thread Simon Danisch
This looks great =)

Am Montag, 8. Juni 2015 18:23:21 UTC+2 schrieb Shashi Gowda:

 Hello all!

 I have been working on a package called *Escher* over the past several 
 months.

 It is now quite feature-rich and ready to use in some sense. I put 
 together an overview here:

https://shashi.github.io/Escher.jl/*

 My aim is to converge at a UI toolkit that any Julia programmer can use to 
 create rich interactive GUIs and deploy them over the web, *within 
 minutes*.

 Escher simplifies the web platform into a simple and pleasant pure-Julia 
 library. You don't need to learn or write HTML or CSS or JavaScript. Many 
 problems associated with traditional web development basically disappear. 
 There is no need to write separate front-end and back-end code, layouts are 
 tractable and similar to layouts in the original TeX. Communication is done 
 under-the-hood as and when required. No boiler plate code. Things just look 
 great by default.

 Briefly, here is how Escher works under the hood:

 - A UI is an immutable Julia value that is converted to a Virtual DOM 
 http://en.wikipedia.org/wiki/React_%28JavaScript_library%29#Virtual_DOM 
 using the Patchwork https://github.com/shashi/Patchwork.jl library.
   Compose graphics and Gadfly plots also get rendered to Virtual DOM as 
 well.
 - Subsequent updates to a UI are sent as patches to the current UI over a 
 websocket connection
 - Input widgets send messages to the server over the same websocket 
 connection
 - Complex things like tabs, slideshows, code editor, TeX and dropdown 
 menus are set up as custom HTML elements using the Web Component 
 http://webcomponents.org/ specification, mainly using the Polymer 
 library http://polymer-project.org/. These things are just Virtual DOM 
 nodes in the end.


 This is still a work in progress, I am very happy to receive any critique 
 on this thread, and bug reports on Github 
 https://github.com/shashi/Escher.jl. I am very excited to see what you 
 will create with Escher.

 Thanks! :)
 Shashi

 * - Escher uses some bleeding-edge Web features, this page might not work 
 so well on Safari, should work well on a decently new Chrome, and on 
 Firefox if you wait for long enough for all the assets to load. I will be 
 fixing this in due time, and also working on a cross-browser testing 
 framework.

 PS: I have been dealing with RSI issues of late and my hands will 
 appreciate any help with expanding the documentation! See 
 https://github.com/shashi/Escher.jl/issues/26 if you wish to help.