We have released Genie v4 just a couple of weeks ago and we’re already looking forward to bringing more cool features. But with web development evolving so fast and with so many use cases and applications, we could really use your help to understand how can we make Genie work better for you!
I would love to learn more about your experience so far. What’s missing from Genie and Stipple in particular – and from Julia’s web development ecosystem in general? What’s good? What can be better?
Looking forward to hearing from you and if you can spare a few minutes, please fill this quick survey: Genie User Survey
I have some experience programming in julia, but I would really love to create things that users can interact with on the web. I just find there is a chasm from the ATOM REPL to doing things that other people can access and interact with in their browser.
I wish there was a library of minimal examples that I could access and learn from.
In my specific case, I wonder how I can create a user input box in a browser that allows people to enter a number, press a submit button, and then see a histrogram of all numbers that users have entered so far. Seeing a simple example of how to do that using Julia would be a great start for me, I think.
Dash.jl should work. Dash was originally for Python, now R and finally also officially Julia. I’ve done something similar in the Python version (to edit, not a histogram, while I think available, or most likely). Dash.jl should have the same capabilities, at least that’s the plan, and you can use the Python docs, they are very extensive, should map easily to Julia.
Stipple.jl is a Julia-only competitor, to dash, also with tutorial (I haven’t looked at them in a while), with similar functionality. Please compare the docs/tutorials (and the code). You can look into that, or just Genie.jl it builds on.
Does Stipple have the same ‘one output can be assigned to a single callback’ philosophy as Dash? I understand that this restriction makes code easier to debug and is more ‘functional’, but in many cases it forces me to put everything in one big callback and write logic to decide what to update.
Adding the finishing touches and I’ll deploy it production + setup a Github repo to open source it.
Coolest web thing I saw the last time was “Julia Markdown”.
Julia Markdown with embeded executable julia code(chunks) and “weave”
generates a HTML, PDF/LaTex/Text or Jupyter notebook from the .jmd file.
Thank you so much for taking the time. That is so helpful as a building block for understanding and progressing!
Hi Essenciary, I can’t seem to find the code. Have you uploaded it to GitHub?
→ I will add a readme today.
I think a walkthrough of the code would be useful too (the new API is pretty cool).
It would be really nice to have a walkthrough, the structure of this code is not clear, like src/WhatsYourNumber.jl has almost nothing in it, and what is in it is calls to eval, and it’s not clear why, and then most of the code seems to be in routes.jl and it’s not clear why or what. Perhaps this was all thrown together to get something out quickly, or perhaps this code structure is like this for a good reason? But in any case it would be great to hear some commentary on what one should do and why, and how this framework works.
I really appreciate the example though, I’d like to make some reactive interactive visualization apps and having a solid example will help a lot.
That’s a good point, I was thinking about a line-by-line explanation as well.
About your questions, I was assuming the viewers would have some familiarity with Genie/Stipple - there’s docs that address these questions.
But to answer quickly,
src/WhatsYourNumber.jl is for bootstrapping the app, it’s not meant for user editing.
As a common design pattern that “organically” emerged in the user community, small apps are developed directly in
routes.jl - at 100 LOC there’s no benefit to break it down into multiple files (although you can).
Can you please detail, I’m not sure what you have in mind.