<li>You should be able to use any OS to interact with expo, but it's a bit simpler to get set up using Linux or MacOS, rather than Windows, just because the core stuff will already be installed.</li>
The <i>expo laptop</i> uses <ahref="https://www.debian.org/intro/about">Debian</a> with the <ahref="https://computingforgeeks.com/how-to-install-cinnamon-desktop-environment-on-debian/">Cinnamon</a> interface, but pretty much any Linux system works fine. This handbook does assume that you are using apt - the Debian package manager - which is good for all Debian-derived Linuxes such as <ahref="https://ubuntu.com/">Ubuntu</a>. Old, slow machines without much memory can be very effective with <ahref="https://xubuntu.org/">Xubuntu/xfce</a>. If using a Red-Hat-based linux you'll need to work out the equivalent rpm/yum commands.</li>
<li>Windows machines can do almost everything needed (rsync is a problem), but some useful software has no Windows version and you will need to find your own equivalents. There are also some 'gotchas' to look out for due to filesystem differences (e.g letter case). If you have the choice, use Linux.</li>
<li><ahref="winlaptop.html">A Windows laptop for expo</a> - a page of more detailed instructions for those who are definitely going to be using a Windows PC or laptop.</li>
<p></a>Long-standing Expo policy is to use open tools and protocols so we can retain control of our own data over the long term. And not to require expo-goers to sign up to external services or spend money on software.
So we use <ahref="https://en.wikipedia.org/wiki/Free_and_open-source_software">FOSS software</a>.
You can use other software on your own machine if it is format-compatible and exports data in the formats we want,
<li><ahref="https://github.com/CaveSurveying/tunnelx">Tunnel</a>: 2.5D cave drawing program based on Survex-compatible data which can also read PocketTopo files. (Generally called 'tunnel' even though the project and executable is actually 'tunnelx'.)
<li><ahref="https://sourceforge.net/projects/viking/">Viking</a> - an alternative to GPSprune. The <ahref="https://github.com/viking-gps/viking">code</a> is on github.
<li>python, if you are extending troggle or the scripts in expoweb/noinfo/ - already installed on Linux <imgsrc="https://www.python.org/favicon.ico"width=64hspace="20"align="right">
<li><ahref="https://github.com/patrickbwarren/qgis3-survex-import">qgis3-survex-import</a> - plugin to import/export survex .3d files</li>
<li><ahref="http://www.thomas-holder.de/projects/inkscape-speleo/extensions/">inkscape-speleo</a> - plugin to import/export survex, therion and pockettopo files to the drawing package inkscape.
<p>Nearly all our Austrian surveys have beeen produced using Tunnel (or were hand-drawn) but many smaller caves and some areas of SMKsystem are done with Therion because Therion does elevations and Tunnel doesn't.</p>
<p>Note that on a Debian/Ubuntu machine you should normally install the versions that come with the distro, not be getting things fromthe above sites</p>
<li>Your favourite text editor. gedit is installed on the <em>expo laptop</em> and has syntax highlighting for .svx files too. This works with <ahref="https://survex.com/changes.html">all GtkSourceView-based editors</a> (thanks to Phil Withnall).
<li><ahref="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html">PuTTY</a> including pagent. Version 0.73 was released on 2019-09-29. You need this to generate and to use ssh keys on Windows. Otherwise none of git, mercurial, scp, ftp or rsync will work. It includes command line tools ssh, scp (pscp) and sFTP (psftp).
<li><ahref="https://notepad-plus-plus.org/">Notepad++</a> or any other syntax-highlighting code editor for HTML and python such as <ahref="https://www.aptana.com/">Aptana Studio</a>. Configuring these to syntax-highlight .svx files has yet to be done.
<li><ahref="https://www.cygwin.com/">Cygwin rsync</a> - not installed as standard on Windows so you need to get Cygwin or <ahref="https://serverfault.com/questions/878887/rsync-server-using-windows-subsystem-for-linux">use WSL</a>. But getting WSL to work with ssh keys has been <ahref="https://heejune.me/2018/08/02/setup-rsync-server-over-ssh-on-windows-server-2012-easy-way/">tricky</a> and pagent-managed ssh keys are apparently not visible to ssh and rsync in WSL. If you find a good solution for Windows please edit this documentation.
<li><ahref="https://www.termius.com/">Termius</a> - command line to create a key for your phone, to ssh (and mosh) login to the expo server. To get sftp you have to buy it.
<li><ahref="https://sites.google.com/site/speleoapps/home">TopoDroid</a> makes cave surveys with the DistoX.
<li><ahref="https://sites.google.com/site/speleoapps/home">Cave3D</a> is a Therion 3D viewer.
<li><ahref="https://sites.google.com/site/speleoapps/home">ThManager</a> organizes single surveys, exported by TopoDroid, into Therion projects encoded by Therion "thconfig" files.
<li><ahref="https://bitbucket.org/product/">Bitbucket</a> - create an account to help develop tunnel. <imgsrc="https://tortoisehg.bitbucket.io/img/bitbucket-icon.png"width=64hspace="20"align="right">
<p>You need to <ahref="keyexchange.html">register a key with the expo server<a/> to get upload (i.e. read/write) access. Do this first, Without it none of git, mercurial, scp, ftp or rsync will work.
You can do this entirely on your own if you have access to the <i>expo laptop</i> to upload and install the public key generated by your laptop.</p>
<p>On a Windows machine you will need to configure pageant (the putty authentication agent)
to <ahref="https://blog.shvetsov.com/2010/03/making-pageant-automatically-load-keys.html">run at startup to load your key</a>. Note that you are loading your <em>private</em> key, the .ppk file, into pageant and that this key never leaves your laptop.</p>
<p>The above gets TortoiseHg and the command-line PuTTY tools (ssd, sftp, pscp) running, but doesn't get Cygwin rsync working. You might like to try <ahref="https://stackoverflow.com/questions/23517023/rsync-from-windows-to-linux-using-puttys-pagent-authentication">this</a> (untested).</p>
<p>When using Windows please, please be <ahref="http://expo.survex.com/handbook/survey/getin.htm#filenames">excessively careful when naming files and survex names</a> and be <ahref="../manual.html#quickstart">exceptionally careful when using rsync</a>.
<p>The handbook has documents where it is necessary to use scp or sftp to manage large files in 'expofiles'. See <ahref="../upload-expert.html">Experts: Uploading files</a>, <ahref="../uploading.html">Uploading files</a> and <ahref="../gpxupload.html">Uploading GPS tracks</a>. Only machines which have done the key exchange process can do scp, sftp or rsync.
<li><ahref="http://expo.survex.com/expofiles/tunnelwiki/wiki/pages/Tunnel.html">The Tunnel tutorial</a> - installation notes and a wiki of examples and tutorials
<li><ahref="https://bitbucket.org/goatchurch/tunnelx/src/default/">bitbucket.org/goatchurch/tunnelx</a> - documentation and source code in the bitbucket repository system.
<p>When maintaining the HTML files in the expo handbook a link-checker is useful to report bad URLs (links to external sites go bad regularly) and to find orphaned pages with no in-links. The website has <ahref="https://www.klebos.net/subdomains/keldos/LinkScans/TUNNEL-wiki-link-report.html">about 2,000 internal URLs</a> in just the Tunnel wiki section alone.
<li><ahref="https://www.brokenlinkcheck.com/">Online brokenlinkcheck tool</a> - does not install on your laptop. Limited to 3,000 pages.
<li><ahref="https://www.deadlinkchecker.com/website-dead-link-checker.asp">Another online brokenlinkcheck tool</a> - does not install on your laptop. Limited to 2,000 pages but breadth-first rather than depth-first, so it covers a different chunk of the expo website.
<li><ahref="http://home.snafu.de/tilman/xenulink.html">Xenu Link Sleuth</a> - install on Windows to do comprehensive link check.
<li><ahref="https://www.digitalocean.com/community/tutorials/how-to-find-broken-links-on-your-website-using-wget-on-debian-7">Linkchecking with wget</a> - command line methods on Linux