What Changed in September 2009
Saturday 5 September 2009
- Allowed hours-per-day to be a non-integer. Required changing the default value to 0.0 instead of 0, and then a small tweak in the rounding code to prevent the "number of days" displaying wrongly (although not affecting the actual planning). Resolves Issue 40
- A major reorganisation of the source code around places. I created a new place.c file, removed a lot from route.c and folded place_match.c into it. I reworked the data structures to reduce the huge number of tiny mallocs that were taking place, and to separate names from place entries, which makes it easy to have several names or versions of names for the same place (for places with different names in different languages, and for folding accents). Plenty there to justify upping the minor version number.
- Added jump-to-day hyperlinks to Itinerary (satisfies issue 39).
→ Release 9.4
Sunday 6 September 2009
- Patched a bug (pre-this-release) where waterways gazetteer was failing because of constraints introduced in previous release (needed a '$' adding in some placeinfo calls).
- Error logs show that the "big place" code is being called from time-to-time and fails (it's never been ported). I reworked it, and replaced the associated code which handles places off the waterways (Crewe for example) to use Google's geocoder rather than a big static database.
- In doing this fixed a number of bugs in the JSON parser (needed to cope with additional blank space, needed to cope with floating point numbers, needed to cope with negative numbers).
- Set canalplan.org.uk up with the right API key.
→ Release 9.4.1
- Matches on places a long way away don't blow up
- Links with the re-write engine on are to the right part of the system (/gazetteer rather than /place), rather than being caught inside. This is right - mapping 4 character names to IDs will blow up the moment we have a place with an ID of, say, "leek", but muight break some cached versions in search engines for a while.
→ Release 18.104.22.168
Monday 7 September 2009
- Fixed (and pre-release patched) another bug from the above - lots of "NOT FOUNDS" appearing in the mini distance table in gazetteers because of missing '$' signs in the code
- Removed some obsolete code from gazetteer.can
Tuesday 8 September 2009
- Fixed bug that was blowing up the gazetteer
→ Release 22.214.171.124
to Wednesday 16 September 2009
- (programming language) Fixed bug in parsing to allow lists of lookup literals
- (programming language) Fixed bugs where empty lists couldn't be reversed
- Restored OS Grid references to UK gazetteers
- A major check through the code for missing '$' signs
- Complete rewrite of the placefinder code:
- restructured to make it table driven, greatly reducing the amount of code
- new scoring algorithm that seems to return places in a better order
- coordinate recognition reintroduced
- reverse geocoding to suggest a name for coordinates
- reverse geocoded and geocoded places and nearest suggestions are shown on a map
- messages generally made more friendly
- geocoding now caches
- logging of changes turned on, ready for another study as to how it can be made even better
→ Release 9.4.2
- Fixed bug in new lists of lookup literals code that was breaking non-lists in some circumstances
→ Release 126.96.36.199
- Pre-release bugfix where links by ID were breaking (too many $ signs now!)
- Slight tidy-up in placefinder output to remove stray markup
- Fixed a bug where furthest place was segfaulting
→ Release 188.8.131.52
Saturday 19 September 2009
- Added a new sort mode to the language, letting me sort lists of lookups based on a field.
- Used this to complete converting an early "moderate" feature into a "see new changes". Limited at follows (all changes ever are shown).
→ Release 9.4.3
- Tidied up the left-hand menu icons
- Added more stylish buttons
- Patched round a bug in list function where new sort broke old one. It looks like the confusion between a variable that's a list and a list of variables in function parameters (again - I thought I'd eliminated that one with literal lists).
- Fixed a typos in the new menu item ("uses" → "users")
→ Release 184.108.40.206
- Turned off part-completed "load ring" code
- Added users to modification display
- Fixed bug where users were not logged for many modifications
Sunday 20 September 2009
- Found an invalid API key that might be the cause of a long-standing bug that I'm still trying to track down
- Properly turned off the part-written "Load ring" code this time
→ Release 9.4.4
- More consistent CSS styling for headers. Now small-caps used for all, but should be centred in route pages but not in gazetteers.
- Check and correct error message produced when data loops are operated without any data
- Started serious work on load rings - the existing process was too slow, so I had to do some imaginative C coding. I'll write more about this elsewhere.
Wedneday 23 September 2009
- Finally got new rings code to produce very similar output to the old one, except it shows the length of the ring and how far away it is as well. I might as well - I'm collecting it!
- Removed the Google plug-in from the live version - that's what's causing the bugs in a way I don't yet understand.
Thursday 24 September 2009
- Added a new "header" file that draws stylesheet and title from the configuration file. Makes many files tidier, will remove inconsistencies as I spread it across the whole set of templates, and will make porting and skinning easier.
- Enhanced "module" feature to allow multiple callbacks within module files - adding subsequent stages to cruising rings.
Saturday 26 September 2009
- Added a new "skipping" operator to the language. This differs from "after" in that if it doesn't match a leading string it won't change it. So «"$xyz" skipping "$"» will return "xyz", but «"$xyz" skipping "x"» will return "$xyz" as will «"$xyz" skipping "q"» (with "after" instead of "skipping" they'd return "xyz", "yz" and "" respectively").
- In developing the ring loading code, there were inconsistent bugs. I carried out a major valgrind attack on the code - there were a few instances of integers used unitialised, but I didn't find any stray pointers. But the oddities seem to have gone away.
Sunday 27 September 2009
- Completed a load cruising ring feature that does everything the version 8 one did. This was a surprisingly big piece of work, and is another of the major features needed to complete this version. Discharges Issue 50.
Monday 28 September 2009
→ Release 9.5
- Tracked down cause of persistent Google plugin problem (chunked encoding again) and used wget to work round it
- Fixed syntax error in "recent changes" display
→ Release 220.127.116.11
- Improved formatting in Wikipedia plugin
- Changed data to avoid segfault when displaying recent user changes (new photos)
→ Release 18.104.22.168