[Gambas-user] [GambasMag] Articles for Feb 2015 issue
Tobias Boege
taboege at ...626...
Sat Nov 22 22:59:08 CET 2014
Hi Randall,
since the Oct 2014 issue had problems and I don't see anything for the Dec
issue, I want to let you know that I'm in my element with Feb 2015. I have
three articles in mind which I'm eager for submitting:
1. Graphs in Gambas. I will explain _in detail_ the objectives behind the
design of gb.data's Graph interface (the ability to _interpret_ existing
data as a graph while saving memory) and show two sample graph classes.
One will be a solver for certain systems of linear inequalities using
the Bellman-Ford algorithm, for the more theoretic audience. The second
is a little more "salonfaehig"[*]: a flood fill using breadth-first-
search over a graph implicitely defined by the pixels of a picture.
[ The latter I have actually already sent to the mailing list, so maybe
I do something different. But it will surely be implicitely defining
a graph via properties of an already existing object and using graph
algorithms to solve the original problem. ]
Also I intend to write a small GraphViz class which can export graphs
as PNG images via graphviz' "dot" utility. I'll see if this fits in...
[*] A German word I can't find a suitable translation for. It means to be
appropriate/decent in the particular society's context/etiquette. Here
it simply means: not so theoretic, more appealing for those hands-on
people (because you actually see something).
2. Boolean expression parser. Some years ago I have developed a simple
boolean expression parser in C which understands up to 26 variables and
the boolean functions not, and, or, equivalence and implication. It
will print out the given expression and its truth values in all
possible configurations for the variables. [ It solved all of these
boring "write down the truth table for this expression" assignments for
me in the first semester :-) ]
I will use the Shunting-yard algorithm to parse the input and then a
queue-based RPN evaluator to get the truth value. So we have Stack and
Queue as the central characters here. We will also face the need to
extend the Queue class -- a very cool technique in Gambas which too few
people seem to be aware of.
3. Graphical Gnuplot control. Another question which I saw popping up
frequently lately is that people want to write their own graphical
controls to put on their forms.
In this article I will do just that: write a GnuplotArea control which
you can give a function to let gnuplot plot onto your form. It will
support some style options which gnuplot offers. The gnuplot / data
visualisation part is why it is relevant to the Feb 2015 issue. The
beginning of this thing goes back to a thread from, I think, Bruce on
the mailing list. The outcome of this article will be a standalone
(modulo gnuplot), reusable control.
[ Maybe I will throw a class in there for interpolating functions
using Lagrange's method if I find that the GUI is not already too
crammed. ]
By-product insights of this article are: how to write a custom control
and integrate it with the IDE; and how to talk properly to an external
process (including error management).
[ With (quite!) some luck I'll have trees by that time in gb.data for your
evolutionary algorithms... but don't count on that. ]
As you see, those three will loosely fit into the agenda for Feb 2015. While
we are at it, looking at the current article depression, maybe it would be
better if the magazine schedules new issues for every half a year instead of
quarters?
Most work of writing the articles will just be recapitulating things I have
already done, so I'm pretty confident that I can make all three until Feb.
But I can't promise to make it until the deadline which appears to be already
towards the end of December! I promise to make articles then which won't
require review ;-)
Regards,
Tobi
PS: I will send a copy of this to the mailing list in an effort to install
some moral pressure there to write articles. If you want, you can also
read that as "... in an effort to inspire others ..." :-)
--
"There's an old saying: Don't change anything... ever!" -- Mr. Monk
More information about the User
mailing list