I am still not working on anything big right now, but
among the things I did in the last two weeks or so, I
improved the widgets-project I maintain. This one is
to be used to support as many different GUI toolkits
as possible (including use cases for javascript + the
web). The idea is to have objects that are abstract
and represent a widget, say:
button1 = create_button('Hello world!')
button1.on_clicked {
the_hello_world_button_was_clicked
}
# this is the verbose variant in a pseudo-DSL,
# I like things being explicit. In most code
# I may omit some parts e. g.
_ = button('Hello world!') { :the_hello_world_button_was_clicked }
It defaults to ruby and what ruby supports (including
jruby-swing) but two additional languages to use are
python and java. Anyway.
I recently added the possibility to describe what kind
of widgets are to be used via a yaml file, as an option.
This may not sound like a huge win, but so far what I
like here is that it becomes easier to modify individual
widgets without having to sift through code; and it
works for more programming languages too. Any customization
for the widget, including method-invocations if necessary,
can be done via a yaml file now. There is of course a trade
off in that the yaml file can become a bit complex (if the
GUI uses many widgets), so for the most part I use this for
smaller widgets/components that do one specific functionality
(or, few specific functionalities). For instance, a GUI over
wget. Then if other larger programs need that, I make this
small widget more useful and flexible.
The distant goal is to actually use a simple DSL that also
would allow average Joe to customize everything in a very
easy manner; and to have a widget set that can be used for
as many different parts possible including wonky ideas such
as having a whole operating system as a GUI available one
day (a bit like webmin, but not limited to what webmin does;
for instance, I'd also have games such as solitaire, reversi
and so forth). I'd like to see how far that idea can go, but
it is just a hobby so I can only invest little time into it.
I recently added the possibility to describe what kind of widgets are to be used via a yaml file, as an option. This may not sound like a huge win, but so far what I like here is that it becomes easier to modify individual widgets without having to sift through code; and it works for more programming languages too. Any customization for the widget, including method-invocations if necessary, can be done via a yaml file now. There is of course a trade off in that the yaml file can become a bit complex (if the GUI uses many widgets), so for the most part I use this for smaller widgets/components that do one specific functionality (or, few specific functionalities). For instance, a GUI over wget. Then if other larger programs need that, I make this small widget more useful and flexible.
The distant goal is to actually use a simple DSL that also would allow average Joe to customize everything in a very easy manner; and to have a widget set that can be used for as many different parts possible including wonky ideas such as having a whole operating system as a GUI available one day (a bit like webmin, but not limited to what webmin does; for instance, I'd also have games such as solitaire, reversi and so forth). I'd like to see how far that idea can go, but it is just a hobby so I can only invest little time into it.