[ANN] Flammarion: The Nifty Ruby GUI Toolkit

Announcing a brand new nifty gem for gui development in ruby!

* Home: https://github.com/zach-capalbo/flammarion
* Docs: http://zach-capalbo.github.io/flammarion/doc/Flammarion.html
* Gem: gem install flammarion

Flammarion is a gem for easily creating simple GUIs for displaying
information or simple interactions. Rather than being a full fledged
application development framework, Flammarion is aimed at making it
simple to display pieces of information or get some graphical user
interaction for scripts or simple applications. For instance, the
Flammarion "Hello World" is super simple:

    require 'flammarion'
    Flammarion::Engraving.new.puts "Hello World"

Check out the github page (https://github.com/zach-capalbo/flammarion)
for more examples and some screenshots.

I created Flammarion because the existing ruby GUI packages (Gnome 2,
Shoes, etc) all seemed way too involved, when all really wanted was to
pop up a window with some text and a few buttons that I could click.
It has since evolved to be decently powerful, while still retaining a
super easy to use interface.

Under the hood, Flammarion uses either Electron or Google Chrome to
display an HTML / Javascript interface, and WebSockets to communicate
with your ruby process.

I've found Flammarion to be really useful so far, and I think others
may, as well!

Hi
Screenshots look very nice, perhaps an (optional) geid for tables ?
A.

···

Am 04.01.2016 10:59 schrieb "Zach Capalbo" <zach.geek@gmail.com>:

Announcing a brand new nifty gem for gui development in ruby!

* Home: GitHub - zach-capalbo/flammarion: The nifty ruby gui toolkit.
* Docs: Module: Flammarion — Documentation by YARD 0.9.14
* Gem: gem install flammarion

Flammarion is a gem for easily creating simple GUIs for displaying
information or simple interactions. Rather than being a full fledged
application development framework, Flammarion is aimed at making it
simple to display pieces of information or get some graphical user
interaction for scripts or simple applications. For instance, the
Flammarion "Hello World" is super simple:

    require 'flammarion'
    Flammarion::Engraving.new.puts "Hello World"

Check out the github page (https://github.com/zach-capalbo/flammarion\)
for more examples and some screenshots.

I created Flammarion because the existing ruby GUI packages (Gnome 2,
Shoes, etc) all seemed way too involved, when all really wanted was to
pop up a window with some text and a few buttons that I could click.
It has since evolved to be decently powerful, while still retaining a
super easy to use interface.

Under the hood, Flammarion uses either Electron or Google Chrome to
display an HTML / Javascript interface, and WebSockets to communicate
with your ruby process.

I've found Flammarion to be really useful so far, and I think others
may, as well!

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk&gt;

Hi there,

congrats on Flammarion!

I created Flammarion because the existing ruby GUI packages (Gnome 2,
Shoes, etc) all seemed way too involved, when all really wanted was to
pop up a window with some text and a few buttons that I could click.
It has since evolved to be decently powerful, while still retaining a
super easy to use interface.

this confused me a bit, where does Shoes seem to involved when putting
some text and buttons on the screen:

Shoes.app do
  para "Hello world"
  button "click me" do alert "popup!" end
end

Just checking what you are referring to so Shoes may do a better job in
the future :slight_smile:

Cheers,
Tobi

···

On 01/04/2016 10:58 AM, Zach Capalbo wrote:

Hi

Docs and examples look really cool, but when I try it, nothing happens
(just tried the simplest example with puts in irb, all works without
errors, but new window is nowhere to be seen).
System is Ubuntu, Ruby is 2.20.
What am I doing wrong?

V.

···

2016-01-04 11:58 GMT+02:00 Zach Capalbo <zach.geek@gmail.com>:

Announcing a brand new nifty gem for gui development in ruby!

* Home: GitHub - zach-capalbo/flammarion: The nifty ruby gui toolkit.
* Docs: Module: Flammarion — Documentation by YARD 0.9.14
* Gem: gem install flammarion

Flammarion is a gem for easily creating simple GUIs for displaying
information or simple interactions. Rather than being a full fledged
application development framework, Flammarion is aimed at making it
simple to display pieces of information or get some graphical user
interaction for scripts or simple applications. For instance, the
Flammarion "Hello World" is super simple:

    require 'flammarion'
    Flammarion::Engraving.new.puts "Hello World"

Check out the github page (https://github.com/zach-capalbo/flammarion\)
for more examples and some screenshots.

I created Flammarion because the existing ruby GUI packages (Gnome 2,
Shoes, etc) all seemed way too involved, when all really wanted was to
pop up a window with some text and a few buttons that I could click.
It has since evolved to be decently powerful, while still retaining a
super easy to use interface.

Under the hood, Flammarion uses either Electron or Google Chrome to
display an HTML / Javascript interface, and WebSockets to communicate
with your ruby process.

I've found Flammarion to be really useful so far, and I think others
may, as well!

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk&gt;

Hey Zach,

Announcing a brand new nifty gem for gui development in ruby!

congratulations on the Flammarion Gem!

Flammarion is a gem for easily creating simple GUIs for displaying
information or simple interactions. Rather than being a full fledged
application development framework, Flammarion is aimed at making it
simple to display pieces of information or get some graphical user
interaction for scripts or simple applications. For instance, the
Flammarion "Hello World" is super simple:

    require 'flammarion'
    Flammarion::Engraving.new.puts "Hello World"

From inspecting the source, it seems that Flammarion uses Chrome to display
HTML that is customized using Slim. Correct? If so, I'm a bit at loss here:
What's the exact use case? I can see that a "Hello, World!" is easily done,
but Flammarion requires the user to have Chrome installed --- or the
programmer to make sure Chrome is present.

To me, that seems quite heavyweight. Flammarion seems to buy a bit of
ease/niceness API-wise with quite an heavy dependency. Where's the advantage
in comparison with, to pull another heavyweight, Qt with QML? Or Shoes? Do you
care to elaborate?

Thanks.

      --- Eric

···

On Monday 04 January 2016, 04:58:55, Zach Capalbo wrote:

Hi Tobi,

Shoes is a great library, but here are some of the reasons I started
working on Flammarion:

1. Shoes installation seemed pretty involved, at least when I started
working on Flammarion. On the other hand, most machines I was working with
already had Chrome and ruby installed.

2. Most of the scripts I wanted to put guis on were targeted toward console
output with ANSII color and ASCII graphics. I knew how to convert this
HTML, and my super limited glance at Shoes seemed to suggest it would take
me a little bit of time to figure out.

3. I wanted to be able to use CSS and HTML for interface components. It
seems to me that web tools are the future of ui, and using JavaScript /
HTML means I can easily incorporate things like FontAwesome icons and
Leaflet maps.

4. I had a what-if-I-did-this? moment late one night and decided to run
with it.

5. I was surprised at the lack of gui gems. There's about a zillion gems to
do just about everything, but only a couple to do guis.

I didn't intend Flammarion or this announcement to knock Shoes in any way.
Just pointing out there's a new alternative. It's good to have options :slight_smile:

···

On Jan 4, 2016 8:22 AM, "Tobias Pfeiffer" <pragtob@gmail.com> wrote:

Hi there,

congrats on Flammarion!

On 01/04/2016 10:58 AM, Zach Capalbo wrote:
> I created Flammarion because the existing ruby GUI packages (Gnome 2,
> Shoes, etc) all seemed way too involved, when all really wanted was to
> pop up a window with some text and a few buttons that I could click.
> It has since evolved to be decently powerful, while still retaining a
> super easy to use interface.
>

this confused me a bit, where does Shoes seem to involved when putting
some text and buttons on the screen:

Shoes.app do
  para "Hello world"
  button "click me" do alert "popup!" end
end

Just checking what you are referring to so Shoes may do a better job in
the future :slight_smile:

Cheers,
Tobi

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk&gt;

corr: grid :), maybe with specifying color and a thicker line below the
header...
A

···

Am 04.01.2016 13:28 schrieb "A Berger" <aberger7890@gmail.com>:

Hi
Screenshots look very nice, perhaps an (optional) geid for tables ?
A.
Am 04.01.2016 10:59 schrieb "Zach Capalbo" <zach.geek@gmail.com>:

Announcing a brand new nifty gem for gui development in ruby!

* Home: GitHub - zach-capalbo/flammarion: The nifty ruby gui toolkit.
* Docs: Module: Flammarion — Documentation by YARD 0.9.14
* Gem: gem install flammarion

Flammarion is a gem for easily creating simple GUIs for displaying
information or simple interactions. Rather than being a full fledged
application development framework, Flammarion is aimed at making it
simple to display pieces of information or get some graphical user
interaction for scripts or simple applications. For instance, the
Flammarion "Hello World" is super simple:

    require 'flammarion'
    Flammarion::Engraving.new.puts "Hello World"

Check out the github page (https://github.com/zach-capalbo/flammarion\)
for more examples and some screenshots.

I created Flammarion because the existing ruby GUI packages (Gnome 2,
Shoes, etc) all seemed way too involved, when all really wanted was to
pop up a window with some text and a few buttons that I could click.
It has since evolved to be decently powerful, while still retaining a
super easy to use interface.

Under the hood, Flammarion uses either Electron or Google Chrome to
display an HTML / Javascript interface, and WebSockets to communicate
with your ruby process.

I've found Flammarion to be really useful so far, and I think others
may, as well!

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk&gt;

If so, I'm a bit at loss here:
What's the exact use case? I can see that a "Hello, World!" is easily done,
but Flammarion requires the user to have Chrome installed --- or the
programmer to make sure Chrome is present.

I'm not the author of Flammarion and not affilated with him, but I'll try
to answer this.
(I was planning to do almost the same in the future, with one difference:
just run Sinatra server in-process in separate thread, and point user's
default browser to it, thus eliminating dependency on concrete browser.)

About the use case.
Assume, I'm doing some useful script, which wants to ask some questions to
user, and output some data, but mostly it does some script-y task, theres
no need in constant GUI.
Or assume I'd want to experiment with something in IRB, but results are to
complicated to just show them in console (think some charts, or just
RMagick::Image). Or input is easier to do with mouse (think 2d "select the
point", or pick a color, or just some slider).

What options I have currently for those tasks?
Shoes is great, but relies on JRuby. Tk, which once was provided with Ruby,
is not more doing so. Qt? FXRuby? All of them have multitude of
dependencies, hard to bring to life on Windows, and typically are
"frameworks", not "tools".

So, the tool we need:
* Has simple API, targeting tasks like "ask for input" and "show the
output";
* Has as low dependencies and assumptions about target OS as possible;
* Looks rather contemporary to user;
* Provides now assumptions about structure of your project, being a library
you can call with one line of code and forget.

And here, the Flammarion.

···

2016-01-04 16:24 GMT+02:00 Eric MSP Veith <eveith@wwweb-library.net>:

Hey Zach,

On Monday 04 January 2016, 04:58:55, Zach Capalbo wrote:
> Announcing a brand new nifty gem for gui development in ruby!

congratulations on the Flammarion Gem!

> Flammarion is a gem for easily creating simple GUIs for displaying
> information or simple interactions. Rather than being a full fledged
> application development framework, Flammarion is aimed at making it
> simple to display pieces of information or get some graphical user
> interaction for scripts or simple applications. For instance, the
> Flammarion "Hello World" is super simple:
>
> require 'flammarion'
> Flammarion::Engraving.new.puts "Hello World"

From inspecting the source, it seems that Flammarion uses Chrome to display
HTML that is customized using Slim. Correct? If so, I'm a bit at loss here:
What's the exact use case? I can see that a "Hello, World!" is easily done,
but Flammarion requires the user to have Chrome installed --- or the
programmer to make sure Chrome is present.

To me, that seems quite heavyweight. Flammarion seems to buy a bit of
ease/niceness API-wise with quite an heavy dependency. Where's the
advantage
in comparison with, to pull another heavyweight, Qt with QML? Or Shoes? Do
you
care to elaborate?

Thanks.

                        --- Eric

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk&gt;

Thanks Victor! Excellent summary. IRB use is central to flammarion.

Also, I'll be adding more error handling to the next release to be able to
figure out the issue you encountered. Flammarion is still super new and
relatively untested, so I expect many issues to arise.

···

On Jan 4, 2016 10:09 AM, "Victor Shepelev" <zverok.offline@gmail.com> wrote:

If so, I'm a bit at loss here:

What's the exact use case? I can see that a "Hello, World!" is easily
done,
but Flammarion requires the user to have Chrome installed --- or the
programmer to make sure Chrome is present.

I'm not the author of Flammarion and not affilated with him, but I'll try
to answer this.
(I was planning to do almost the same in the future, with one difference:
just run Sinatra server in-process in separate thread, and point user's
default browser to it, thus eliminating dependency on concrete browser.)

About the use case.
Assume, I'm doing some useful script, which wants to ask some questions to
user, and output some data, but mostly it does some script-y task, theres
no need in constant GUI.
Or assume I'd want to experiment with something in IRB, but results are to
complicated to just show them in console (think some charts, or just
RMagick::Image). Or input is easier to do with mouse (think 2d "select the
point", or pick a color, or just some slider).

What options I have currently for those tasks?
Shoes is great, but relies on JRuby. Tk, which once was provided with
Ruby, is not more doing so. Qt? FXRuby? All of them have multitude of
dependencies, hard to bring to life on Windows, and typically are
"frameworks", not "tools".

So, the tool we need:
* Has simple API, targeting tasks like "ask for input" and "show the
output";
* Has as low dependencies and assumptions about target OS as possible;
* Looks rather contemporary to user;
* Provides now assumptions about structure of your project, being a
library you can call with one line of code and forget.

And here, the Flammarion.

2016-01-04 16:24 GMT+02:00 Eric MSP Veith <eveith@wwweb-library.net>:

Hey Zach,

On Monday 04 January 2016, 04:58:55, Zach Capalbo wrote:
> Announcing a brand new nifty gem for gui development in ruby!

congratulations on the Flammarion Gem!

> Flammarion is a gem for easily creating simple GUIs for displaying
> information or simple interactions. Rather than being a full fledged
> application development framework, Flammarion is aimed at making it
> simple to display pieces of information or get some graphical user
> interaction for scripts or simple applications. For instance, the
> Flammarion "Hello World" is super simple:
>
> require 'flammarion'
> Flammarion::Engraving.new.puts "Hello World"

From inspecting the source, it seems that Flammarion uses Chrome to
display
HTML that is customized using Slim. Correct? If so, I'm a bit at loss
here:
What's the exact use case? I can see that a "Hello, World!" is easily
done,
but Flammarion requires the user to have Chrome installed --- or the
programmer to make sure Chrome is present.

To me, that seems quite heavyweight. Flammarion seems to buy a bit of
ease/niceness API-wise with quite an heavy dependency. Where's the
advantage
in comparison with, to pull another heavyweight, Qt with QML? Or Shoes?
Do you
care to elaborate?

Thanks.

                        --- Eric

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk&gt;

Unsubscribe: <mailto:ruby-talk-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk&gt;

Thanks for that explanation. I see now what problem Flammarion solves, and
does so well.

Indeed, the state of GUI in 2016 is a sorry one, because it forces developers
--- who should know better --- to force a single browser on their users, much
in the same way the sorry state of the web in the 90's forced everybody to use
the Internet Explorer. Many of us once concluded that the browser was the only
way to go to achieve a cross-platform GUI, because the different platforms
tried to force us to use their very own toolkit. Now we ourselves (need to?)
limit us to one browser.

(Sorry, Zach: I don't want to hijack your announcement. Whoever wants to
discuss the previous paragraph should probably do so under a new topic.)

      --- Eric

···

On Monday 04 January 2016, 17:09:01, Victor Shepelev wrote:

> If so, I'm a bit at loss here:
> What's the exact use case? I can see that a "Hello, World!" is easily
> done,
> but Flammarion requires the user to have Chrome installed --- or the
> programmer to make sure Chrome is present.

I'm not the author of Flammarion and not affilated with him, but I'll try
to answer this.

[...]

What options I have currently for those tasks?
Shoes is great, but relies on JRuby. Tk, which once was provided with Ruby,
is not more doing so. Qt? FXRuby? All of them have multitude of
dependencies, hard to bring to life on Windows, and typically are
"frameworks", not "tools".