News archive


JPEG Saver 4.18

Version 4.18 of JPEG Saver does not contain many visible changes, but it does have a couple of updates that I have been promising for quite a long time.

But first, something I have removed from this version is support for Windows XP. Microsoft stopped supporting XP a couple of years ago, so writing software that supports it using Microsoft development tools is becoming more and more difficult. So I decided it was time to give up, and set the compiler to target Windows 7 as the minimum version supported. Checking the Goat 1000 web stats showed that I had even fewer visitors using Vista than XP, so Windows 7 it is.

The first of the promised changes is filtering by tag. The tags JPEG Saver uses are scanned from the EXIF and IPTC keywords fields in the image files at the same time as the width and height, then stored in the database. So if you intend to try filtering by tag, I recommend using the “File » Clear database” option to force a rescan beforehand.

Read more . . .


SVGGraph 2.23.1

This version of SVGGraph mainly fixes a few bugs, but I have added one new option too. It doesn't do anything visual, so there is no example graph to show for it.

The new option is datetime_key_format, for use with the datetime_keys option added in version 2.23. This new option allows you to specify a format for parsing your keys instead of relying on PHP recognising the format. The format string is described on this PHP manual page: DateTime::createFromFormat.

The first of the bugs fixed in this version is also related to the datetime_keys option, solving a nasty error when using multiple dataset graphs without structured data.

Read more . . .


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 . . .

Next old news »