<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0mm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0mm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0mm;
        margin-right:0mm;
        margin-bottom:0mm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#44546A;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:499857315;
        mso-list-type:hybrid;
        mso-list-template-ids:700753512 1937952902 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l0:level1
        {mso-level-start-at:528;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-font-family:Calibri;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0mm;}
ul
        {margin-bottom:0mm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-GB link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal><span style='color:#44546A'>I know you all love getting these updates…<o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#44546A'>The upload form for uploading scans is working in a bare-bones way. <o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'><a href="https://expo.survex.com/scanupload">https://expo.survex.com/scanupload</a> <o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'>So now anyone can upload the scans from a wallet. It could even be made phone-friendly.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'>I will add a file-browser so you can see what you are doing while you are doing it.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#44546A'>The whole cave description form-filling now actually works without being too painful. Sensible defaults mean that this is no longer an error-prone and frustrating process. If you forget to create an entrance it won’t barf anymore. The documentation (today at least) now exactly matches how the system behaves. [I think it is now easier than editing the xml files in an editor and using git at the command line but I know some will disagree.]<o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#44546A'>The “pending” caves list is now useable: click on one of them in <o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'><a href="https://expo.survex.com/dataissues">https://expo.survex.com/dataissues</a><o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'>and there are instructions for registering the cave properly.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#44546A'>the control panel is now working: <a href="http://expo.survex.com/controlpanel">http://expo.survex.com/controlpanel</a>  <o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='color:#44546A'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>          </span></span></span><![endif]><span style='color:#44546A'>can trigger import of caves, people, logbooks, survex etc. from a webpage<o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='color:#44546A'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>          </span></span></span><![endif]><span style='color:#44546A'>can also export any logbook into one of two formats (html: working or wiki: broken)<o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#44546A'>I propose to use the logbooks export to carefully re-do some logbooks into the same “2005” HTML format.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'>Then we can junk all the parsers of the many and varied ‘artisanal’ formats (to use Phil Withnall’s wonderful epithet)<o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'>which will reduce the amount of code we need to maintain.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#44546A'>There is still some tidying to do, and not everything in the logbooks survives this process so odd bits will need to be copied across by hand. Which, for 26 logbooks, would take a while. But 2003 has its own parser so that at least can be made more regular. [And there are some UTF-8/iso-8859-1 funnies too.]<o:p></o:p></span></p><p class=MsoNormal><span style='color:#44546A'>e.g. compare:<o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><a href="https://expo.survex.com/years/2018/logbook.html">https://expo.survex.com/years/2018/logbook.html</a> <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><a href="https://expo.survex.com/years/2018/newlogbook.html">https://expo.survex.com/years/2018/newlogbook.html</a> (very slow due to parsing confusions I think)</span><span style='color:black'><o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>Sorry, the 3D CaveView is broken. I don’t know why. It was working 2 weeks ago and I haven’t knowingly touched it.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>Initial Therion importing is working, but little more.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>Online wallets all ready for 20201 expo. Wallets script now on python3.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>326 geolocated entrances. And rather a lot more we probably only have a vague idea of where they are.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>Sundry other things: <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>vastly more error messages and unusual conditions caught and handled.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>68 tests in the test suite. <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>All assertions removed from code and replaced with ‘DataIssue’ logged messages: no more unexpected aborts I hope. <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>Cached webpages for the /expeditions/ pages. <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>You can now make a full troggle development system without needing a local copy of /expofiles/ so it fits into a couple of GB including all the repos. <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>Troggle works fine on the latest version of Django 3.2 released in April this year. <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>Mugshots and bios now work for peoples’ biogs linked to the logbooks and surveys. <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>Several confusing and broken functions removed. <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>More thought given to replacing Django: <a href="https://expo.survex.com/handbook/troggle/trog2030.html">https://expo.survex.com/handbook/troggle/trog2030.html</a>  <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>Many files have a ‘to do’ list at the top in a comment and these are collected together automatically in the systems to-do page <a href="https://expo.survex.com/handbook/computing/todo.html">https://expo.survex.com/handbook/computing/todo.html</a> <o:p></o:p></span></p><p class=MsoPlainText><span style='color:#44546A'><o:p> </o:p></span></p><p class=MsoPlainText><span style='color:#44546A'>git gives me the heebie-jeebies so I am trying to make everything work without it being necessary to tangle with it.<o:p></o:p></span></p></div></body></html>