Computer training, it's been a while I write myself most of the
software I need.
This site is designed to show you a free software made of several
tools that I named Cyloop : abbreviation for
Cyclic loop tools.
Cyloop is a variant of another free software named RRDtool.
RRDtool what is it ?
Let's begin by talking about RRDtool before explaining how Cyloop
RRDtool is a set of tools that can record the value of one or more
numeric variables at different times, and then generate a graph
showing changes over time in the value of one or more variables
RRDtool processes the time linearly. To create a RRDtool blank file,
you must specify how often the variable values will be saved and
for how many times. However, we can choose to save the values for
different time scales.
For instance, you can create a RRDtool file with reasonable size
that will record the values of variables as to :
One value per minute during 4 hours,
one value every 5 minutes during 1 day,
one value every 30 minutes during 1 week,
one value every 2 hours during 1 month,
one value per day during 1 year.
The graphs generated by RRDtool traditionally cover a period of
time ranging from one moment more or less distant in the past
to the present.
Unless if you create a gigantic RRDtool file able to store variable
values every minute or every second for 10 to 100 years (what is
never done), this leads to the following limitations :
Let the graph shows the recent evolution of values of one
or several variables with high temporal resolution,
whether it represents the evolution of these values over a
longer period, but with less accuracy in time,
after a certain period, the oldest changing values of
variables will no longer be stored in the RRDtool file.
How is Cyloop different ?
In the case of Cyloop, time is considered as a series of cycles
each of which starts after the previous one.
To create a blank cyloop file, you have to define the cycle on
which it will work. It may be a period of time based on the
calendar (day, week, month, year) or any period of time period
You must also choose in how many pieces of the same duration
(possibly with one second of precision) you will cut the cycle
to save data.
In this website, we will talk about moments of the cycle to
identify these pieces.
The data that can be stored in a cyloop file are 2 kinds :
Counters that can increment or not each time a cycle,
When a cycle ends, the next begins, and new data stored in the
cyloop file add to the value already stored from previous cycles
for the same moment of the cycle.
The graphs generated by Cyloop represent the average value of
counters and variables measured over several cycles for each
moment of the cycle.
In the simplest case, data from successive cycles are added to the
cyloop file. Each cycle is of equal importance in the outcome and
after many cycles, the graphics evolve very slowly.
It is also possible for each cycle change to make a weighting
calculation (multiplying the values already stored by a coefficient
chosen between 0 and 1) to give greater importance to most recent
cycles when calculating the average value.
Example using Cyloop
At what time of day or week am I working with my computer ?
(the project Cyloop came from this issue),
changes in the amount of a bank account over the month,
development of meteorological data for the year,
average energy consumption over the day, the week, ... the
Cyloop for what computers and what operating system ?
Cyloop was written in C and uses only very basic functions of this
language. It can therefore work with any computer model and any
operating system for which a C language compiler is available.
However, it is highly desirable to use Cyloop on computers equipped
with an operating system able to run commands automatically on a
periodic scheduled at times, as does the UNIX cron.
Moreover, the command cylgraph starts by generating graphics
with format .bmp . If you want the graphics to be stored in
another image format (the format .pngis a good choice), it
is necessary to have the ImageMagick convert command located
on the computer.
The Cyloop project and this website has been made on my free time
with no prospect of financial gain.
To work on computer, I use PCs running GNU/Linux. I am opposed to
bundling of PCs with Windows (one of the few forms of bundling
allowed in practice in France and in many other countries). When a
computer is sold with Windows, OS (Home Edition) is about a hundred
euros on the total price. If I buy a full desktop computer, I choose
a shop that sells it without Windows and my laptops have been
purchased when it was possible to find some running GNU/Linux.
Accordingly, this website does not broadcast directly executable
Cyloop version for Windows, Mac OS X and other platforms other
than GNU/Linux PC. If you want to use Cyloop on other operating
systems, you will need to compile yourself sources, or to give me
the equipment and the C compiler which would allows me to undertake
Although knowledge of the language of American (or British version
of which it is derived) is convenient to communicate in a lot of
countries expecialy with virtually all Scandinavian without knowing
their local language, I consider that a website only in English (as
many free software websites) or in French and English is not ideal.
On the other hand, to make a website and the user interface and
documentation of a multilingual software takes time and online
translators available on the web are imperfect. Moreover, those
who translate directly from the French (google does not, he uses
the English language, a language rich in homonyms as intermediate
language) are only limited to very small texts.
For this site, but also for user interface and Cyloop documentation,
in addition to English, I chose to add 2 more widespread languages
in the world among those who use the Latin alphabet and the same
sentence structure than French. With Esperanto (a language
internationally oriented, but too few taught), my website should
be accessible to a large number of people.
But as human translations are the best, readers of this website are
invited to contribute to the work of translation into the language
of their choice.