Goat 1000 home

Welcome to Goat 1000 - this is where you'll find some of the bits and pieces of software that I cobble together for fun. Please feel free to download them and try them out. All this stuff is freeware, no guarantee that it will do anything, etc. (though if it does fail to do anything, please let me know!)

Quick links • JPEG SaverSVGGraphTagCanvasDownloads

RSS Feed



SVGGraph 3.16

Version 3.16 of SVGGraph continues my quest to produce a fully-featured Gantt chart class. I think I have all the important stuff done now, but please feel free to point out whatever is still missing.

Gantt charts (once more, with feeling)

The example below shows all the major changes in this version. Probably the most obvious is that there are axes all the way around the chart. This is enabled with the new axis_double_x and axis_double_y options, which duplicate the main X or Y axis on the other side of the graph. These options should work for all axis-based graph types, not just Gantt charts.

Double axes, axis padding and multiple Gantt entries

If you've read the caption, you'll see that there is axis padding now. Or maybe you noticed the gap - in any case, there are now options for adding space between the axis and the grid area, axis_pad_left, axis_pad_top, axis_pad_right and axis_pad_bottom. Because these options move the grid and axis apart there are also new options for what to do at the end of the axis: axis_extend_left, axis_extend_top, axis_extend_right and axis_extend_bottom. In the example they are left at the default values, which extend the axis lines to fill in the gap between the axes.

Read more . . .


SVGGraph 3.15

Version 3.14 added support for Gantt charts, but I didn't include all the features I had been meaning to add because I didn't want to delay the release while I added things that would be less useful. Version 3.15 adds in the things that I didn't get around to last time.

Gantt charts revisited

The example below is mostly the same as the last time, but with the addition of dependency lines. These link tasks, groups or milestones to display when previous tasks (or groups or milestones) must be completed or initiated before the current task can begin or complete.

A Gantt chart with dependencies

Setting up dependency lines is a little bit complicated and there are a few options for how they behave, so I've added a new page that covers them and a few of the other Gantt chart options here.

Read more . . .


JPEG Saver 5.20

This new version of JPEG Saver doesn't add much, but it does complete my plan to add support for presets in all the places that it makes sense.

Item presets

This is it, the last preset thing that was missing, the ability to load and save preset lists of items. You could argue that style presets are missing too, but I didn't come here for an argument. In fact I would argue that style presets are also in this update, because each item preset also contains whatever styles are required to make it work.

I have included a few simple built-in presets for displaying clocks, borders, EXIF, IPTC and GPS data, but I couldn't think of anything else that would be really useful. Email me with suggestions if you want anything added in the next version.

Read more . . .

Older news . . .


Contact me

If you want to contact me, my email address is at the bottom of the Readme.txt file or PDF in any of the zip files, or in the source of Javascript files, or you could try to figure it out from a combination of my name, (graham) this domain name (goat1000.com) and the @ sign.

About this site

All pages on this site are written in PHP. Titles and sub-titles use the Diavlo font by Jos Buivenga (exljbris), with CSS @font-face files generated by the Font Squirrel @font-face generator.

The site uses cookies, find out more

Site search

The search box on this web site (“Search Box”) is powered by Google Inc (“Google”). You acknowledge and agree that Google's privacy policy (located at http://www.google.co.uk/privacy.html) shall apply to your use of the Search Box and by using the Search Box you consent to Google using your personal data in accordance with its privacy policy.

Last updated 01/08/2022.