Monday, November 8, 2010

wumpus status

Wumpus status - 8 November 2010

Wumpus-Core
Wumpus-Core is now at version 0.37.0 on Hackage. The drawing model in Wumpus-Core is comparatively mature - the Picture API tends to get tweaked every release but the tweaks are mostly minor. Now that Primitives can be combined as Primitives rather than needing a promotion to Picture the design is satisfactory.

Adding free annotations for SVG would be useful, so SVG output can support mouseover hints. This should be doable with a new function in Core.Picture working like the xlink function. Otherwise no changes to the Picture API are currently envisaged.

It would be nice if the PostScript output was more efficient for the hkernlabel and vkernlabel functions. PostScript Level 2 has the xshow and yshow operators which appear to support this efficiently. Wumpus-Core could support two printing modes for Level 1 or Level 2 output but this is not currently a priority.

The Text Encoding API has not changed very much recently, however it should be considered unstable. Its limitations are due to the authors own limited understanding of how PostScript encodes character names and codes (fonts != Unicode). Work on direct font support in Wumpus-Basic should improve Wumpus-Core, (e.g. the Encoding table types can be refined, other Encoding Vectors can be added) whilst Wumpus-Core should be able to maintain its font agnostic status.

Edit 9 Nov - I've identified an unfortunate oversight in the SVG handling of Encoding tables which will be corrected as I work on glyph metrics. In a nutshell, the SVG renderer should not use the Encoding tables as they are only really pertinent to PostScript.

Wumpus-Basic
Wumpus-Basic is at version 0.12.0 on Hackage. The SVN repository has already changed significantly from this version as the Basic.Graphic modules have been substantially re-worked. I have no plans to update the version on Hackage until progress has been made on glyph metrics and the Basic.Text modules. The previous attempts at text handling without glyph metrics - Basic.Text.LRText and Basic.Shapes.Plaintext - are considered obsolete though they won't be removed from the code base until they have a functioning replacement.

Wumpus-Basic should always support simple text through functions in the Basic.Graphics modules. Working with glyph metrics will add complexity to text drawing and make it less efficient so a path to avoid the penalities when not necessary for drawing is essential. Glyph metrics will also mandate than font loading has to be IO, though this should not IO-contaminate the rest of Wumpus-Basic.

Much of the work for handling glyph metrics will be farmed out to the Wumpus-Fontkit package. Reading text (AFM) and binary (TrueType) font files will need dependencies that I don't want to burden Wumpus-Basic with. Wumpus-Basic will define the tpes it needs and the table look up functions. Wumpus-Fontkit will build the metrics tables. Also I anticipate having to equip Wumpus-Fontkit with a quite a lot of code to introspect into font files - adding font loading support to Wumpus will open up many avenues for errors so giving users tools to investigate errors for themselves seems wise.

The new combinator basis in Basic.Graphic for building graphics is not yet systematically elsewhere in Wumpus-Basic. Overtime I will have to improve the code for Shapes, arrowheads etc. so that the source is more exemplary. Shapes themselves need work adding more shapes.There is also a lot of work to be done on designs in Wumpus-Basic as all the good examples so far e.g. the Petri-net and the Feature diagram use explicit coordinates.


Wumpus-Tree
Wumpus-Tree is at version 0.10.0 on Hackage. Wumpus-Tree has not had much attention since its initial release except to make sure it is compatible with the latest versions of Wumpus-Core and Wumpus-Basic. This is largely due to the deficiencies of text handling in Wumpus-Basic - for text labelled trees having left-aligned text is unwelcome. I intend to improve Wumpus-Tree once better text support is present in Wumpus-Basic.


Wumpus-Microprint
Wumpus-Microprint is at version 0.11.0 on Hackage. Microprint is rather underwhelming - unlike Wumpus-Tree it is not a particularly good subject to drive development of Wumpus-Basic as the graphic work is quite secondary to the input tokenizing. I will keep bumping the version on Hackage when Wumpus-Basic gets a release but unfortunately I don't anticipate doing any work to improve its capabilities. Unless it finds a compelling use my time is better spent working on Wumpus-Basic.


Poor Small Chart
Not released on Hackage. Charting is well served by other libraries, so it is a niche I don't see Wumpus occupying. As with Wumpus-Microprint the subject requires significant work that is not directly graphical (successful chart libraries appear to do a lot of automatic work interpreting the data for scaling ranges etc.). It would be nice to improve charting as there are still useful graphics to be manufactured, but I don't see it as a priority that will be worked on any time soon.

Blog Archive

About Me

My photo
Disambiguating biog as there are a few Stephen Tetley's in the world. I'm neither a cage fighter or yachtsman. I studied Fine Art in the nineties (foundation Bradford 1992, degree Cheltenham 1992 - 95) then Computing part-time at Leeds Met graduating in 2003. I'm the Stephen Tetley on Haskell Cafe and Stackoverflow.