← Previous
Contents
News
Email nondelivery
As of 2025-12-16, all email sent from flaterco.com was being blackholed by
AOL (no bounce message, just disappears).
xtide-2.16-DOS.zip
A DOS binary for the command-line client of XTide 2.16 is available from
https://flaterco.com/xtide/files.html#contrib.
FunkyBuilds-20260209
Available
at https://flaterco.com/xtide/files.html#FunkyBuilds:
This package contains a unified script to build all XTide-related packages
on all flavors of Linux as well as assorted build scripts for DOS, Android,
Windows, and Cygwin.
2026-02-09: Updated DOS build.
XTide 2.16 (libxtide.so.2.0.0) (2026-01-20)
XTide 2.16 makes the globe and map location choosers resizable, fixes a
bunch of sizing, resizing, and layout bugs, and improves CSV format. Get
it
from https://flaterco.com/xtide/files.html#xtide
and see the changelog for details of the
release.
Data refresh 2025-12-28
The data refresh available
from https://flaterco.com/xtide/files.html#harmonicsfiles
includes routine updates and corrections. A corresponding update of the
harmonic constants management package is available
from https://flaterco.com/xtide/files.html#experts.
tcd-utils 2024-02-22
This legacy package for converting Tide Constituent Database (TCD) files
to and from other formats has been refreshed to fix a FTB with GCC 14. Get
the latest
from https://flaterco.com/xtide/files.html#extras.
Mailing list migration 2024-02-04
There is an announce-only mailing list to which I send notices of each
update to XTide or the harmonics data. Effective 2024-02-04, it has moved
to Google Groups. If you want to remain on the list, please subscribe to
the new one.
To subscribe any address, send an email to xtide-announce+subscribe@googlegroups.com and reply to the confirmation email. Those with Google accounts can instead sign in and join directly at https://groups.google.com/d/forum/xtide-announce. The archives can be viewed by anyone at https://groups.google.com/d/forum/xtide-announce.
The archives of the old mailing list will remain at https://pairlist10.pair.net/pipermail/xtide-announce/ until they are deleted.
ftp is dead
The archive is at
https://flaterco.com/files/xtide/.
Old links pointing to ftp://ftp.flaterco.com/xtide/... should be redirected
to https://flaterco.com/files/xtide/....
End of maintenance for non-free data
For various reasons, I have ended
maintenance of the non-free data set. Anyone interested in generating
new harmonic constants from published data can find information and a list of
data sources here.
To do list
XTide
Aging has placed XTide in the undesirable category of legacy X apps that
require ugly scaling by the desktop to prevent things from becoming tiny on
a 4k display. The roadmap for addressing this works from less
disruptive changes to more disruptive ones:
- Make the location choosers resizable—done.
- Improve font selection and other tuning for graphs and clocks on
HiDPI displays.
- Use Pango/Cairo for client side fonts and text rendering when it is
available. Avoid creating a hard dependency.
- Reimplement graph-drawing classes using Cairo and its various
backends. A complete replacement of PixelatedGraph is unlikely for two
reasons. First, Cairo is good for scalable plots but bad for what
PixelatedGraph currently does. Second, a hard dependency on Cairo would
drastically reduce the portability of libxtide.
- Migrate from Xaw/Xaw3d/Xaw3dXft to (maybe) FLTK, acquiring native
Wayland support as a bonus.
Non-GUI items:
- png_destroy_write_struct should get info_ptr instead of null arg. Update libpng usage per plot.c or use the new Simplified API.
- Renovate documentation with updated HTML+CSS or Markdown.
- Replace HTML-dumped-to-text in the tarball with Markdown or another cleaner option.
- Start using pkg-config in configure.ac.
- Delete the AC_TYPE macros from configure.ac. Just include inttypes.h.
- Add a configure option to disable the build and install of xttpd.
- Modernize LaTeX format output (XeLaTeX, better font, maybe auto page sizing).
- Support m/s as a unit for currents. NOAA default is now cm/s.
- Purge antique portability workarounds.
- Make xttpd use https.
- Support lookup by station ID instead of only name.
- The XML parser should be bundled under the libxtide namespace but isn't.
Major things to do in XTide 3 if life turns out not to be too short after
all:
- Move from Latin-1 to UTF-8 (requires libtcd revision or
replacement).
- Support minor axes for currents (requires libtcd revision or
replacement). Calculate speed and direction at any time; plot as a
cylinder.
- Migrate to a better language or at least a newer version of C++.
Renovate programming practices again (exceptions, checked and const
operations, strings).
- Refactor libxtide to remove unnecessary complexity. Remove hydraulic
current support. Standardize units used internally.
- Find a way to put an end to the infinite number of customization settings
for graph mode, such as by dumping ALL of the data, metadata, and events to
a single-file format that an external graphing app will read.
- On exceptions: get the application-specific error messages OUT of
libxtide.
- Harmonize the location chooser with the way that Google Earth operates or
delete it and get coordinates from an external app. Migrate to OpenGL,
Vulkan, whatever.
tideEditor
- Catch up with the latest major revision of Qt or abandon it for a
toolkit with a lower maintenance burden on downstream.
- Modernize autotools scripts to use pkg-config to locate Qt or whatever
replaces it.
- Fix Qt deprecation warnings if still applicable.
- Make tideEditor usable on low-resolution displays as well as 4k displays.
- Synchronize location chooser with XTide.
harmgen
It should be possible to link
directly with liboctave to avoid the very inefficient conversion of input
data from binary to text and back again that currently is done.
However, this would be fixing something that is not broken, and is neither
important nor urgent.
libtcd
Purge antique portability workarounds from configure.ac.
Delete the AC_TYPE macros from configure.ac. Just include stdint.h.
In signed_bit_unpack, extend_mask << numbits uses undefined
behavior.
DEFAULT_TZFILE_SIZE is too small for :America/Argentina/Rio_Gallegos.
In the documentation section on inference, cite NOAA SP NOS CO-OPS 3
Sec. 4.2.3 explaining how bogus it is.
Things to do in the next major revision, if there ever is one:
- Purge COMPAT114 code and documentation.
- UTF-8.
- Move station ID to header.
- Add header field to flag tides versus currents.
- Add depth field for currents.
- Support minor axes for currents.
- Get rid of internal state; fix inability to have more than one database
open.
- Remove gratuitous complexity in the encoding of speeds, equilibrium
arguments, and node factors; make speeds 32-bit unsigned with no
offset.
- Possibly permit node factors to be specified for intervals shorter than
1 year and/or support apps that use libcongen to generate the
node factors themselves.
← Previous
Contents