News archive


SVGGraph 2.23

There are a couple of bug fixes in SVGGraph 2.23, but the main change in this version is the addition of a date/time axis. Here's an example:

ScatterGraph using date/time axis

For comparison, the same data without the date/time axis enabled is shown here:

ScatterGraph *not* using date/time axis

The graph without the date/time axis has spread the values out evenly, not making any use of the date and time information. You could still use a callback function to reformat the axis text if this is the way you want to present your data.

Read more . . .


TrayBlank 1.7

Only two and a half years after the last release, here is version 1.7 of TrayBlank. I didn't bother releasing version 1.6 because it only added one extra option, a slight delay before the screen saver starts.

Version 1.7 adds an extra hotkey for configuring the screen saver, and there are now checkboxes in the hotkeys setup dialog to enable/disable each of the hotkeys individually. I added this after I found myself turning the monitor off accidentally a couple of times.

The new version of TrayBlank is available from the downloads page.


SVGGraph 2.22

Version 2.22 is another small SVGGraph update, this time improving the way that the legend works. The bulk of the legend code has been moved out of the main class into a new SVGGraphLegend.php file which is only loaded if you are using a legend. Here's an example bar and line graph:

BarAndLineGraph with legend

This graph is using legend_entries to set an entry for each dataset, but it is also using the new legend_text option for structured data, adding an entry to the legend for the red marker in the “Jul 2016” position. The data and relevant options are shown in the code snippets below.

$settings = array(
  'structure' => array(
    'key' => 0,
    'value' => array(1, 2),
    'colour' => array(null, 3),
    'marker_stroke_colour' => array(null, 4),
    'legend_text' => array(null, 5),
    'axis_text' => 'axis',
  'legend_entries' => array(
  'legend_position' => 'bottom right -5 -5',

Read more . . .


JPEG Saver 4.17

There isn't as much new stuff in JPEG Saver 4.17 as I had planned but I wanted to release it now because it fixes a couple of bugs, one of which was really hard to find.

The main change in this version is the addition of filter presets in the filters dialog. I've compiled in a few that I think will be useful, but you can also add your own, modify the defaults, and mix them together using the “Insert” option. If you have any really good ideas for filters please let me know and I can add them into a future version.

I'm still planning to add filtering by tags/keywords, but that was too complicated to make it into this version.

Read more . . .


SVGGraph 2.21

This is a relatively small update to SVGGraph, mainly because I'm trying to release updates more often instead of saving up a bunch of changes to release all at once. So this version is centred around the best-fit or trend lines.

MultiScatterGraph with projected best-fit lines

Until now these lines were only supported by the scatter graphs, but now the line graphs support them too. The example graph above has four datasets and four best-fit lines, though the green and blue datasets are using the new best_fit_range and best_fit_project options. The best_fit_range option lets you specify the range of values to be used in calculating the angle of the best-fit line, and best_fit_project tells SVGGraph which bits of the line outside the range to draw.

By default the projected part of the line is drawn with a 4-pixel dash pattern, but there are best_fit_project_dash, best_fit_project_colour, best_fit_project_width and best_fit_project_opacity options for changing its appearance. There is some more explanation on the scatter graphs page.

Read more . . .

« Previous old newsNext old news »