<feed xmlns='http://www.w3.org/2005/Atom'>
<title>WebStat analyser, branch webstat-0.2</title>
<subtitle>WebStat web site access analyser</subtitle>
<id>http://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.2</id>
<link rel='self' href='http://git.randomdan.homeip.net/repo/webstat/atom?h=webstat-0.2'/>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/'/>
<updated>2025-10-06T19:43:52Z</updated>
<entry>
<title>Add parked line import job</title>
<updated>2025-10-06T19:43:52Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-10-06T19:43:52Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=63d6bf7395425be73fd6d9f5c89dc48817afffe6'/>
<id>urn:sha1:63d6bf7395425be73fd6d9f5c89dc48817afffe6</id>
<content type='text'>
Periodically, on idle, scan for and import previously parked lines.
</content>
</entry>
<entry>
<title>Add point to execute scheduled jobs when idle</title>
<updated>2025-10-02T22:42:52Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-10-02T22:42:52Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=5aa9cca0d2ff25c541d7df3b63519c28eb75b656'/>
<id>urn:sha1:5aa9cca0d2ff25c541d7df3b63519c28eb75b656</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Switch to PostgreSQL's oid type for entity ids</title>
<updated>2025-09-29T23:51:54Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-09-29T23:51:54Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=edfaf671d016f675a3a3b87d58d615a92e84148b'/>
<id>urn:sha1:edfaf671d016f675a3a3b87d58d615a92e84148b</id>
<content type='text'>
oid is an "unsigned 4 byte integer", which matches our crc32 approach
perfectly, and is half the storage cost of bigint.
</content>
</entry>
<entry>
<title>Write log lines to files on error</title>
<updated>2025-09-29T23:50:29Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-09-29T23:50:29Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=3e99d080b2a3a9b6eae85ae9e3224534744ad7b9'/>
<id>urn:sha1:3e99d080b2a3a9b6eae85ae9e3224534744ad7b9</id>
<content type='text'>
We call this parking, later we can reattempt ingestion after whatever
caused the failure has been fixed.
</content>
</entry>
<entry>
<title>Create settings structure</title>
<updated>2025-09-24T20:33:13Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-09-24T20:28:56Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=897546d596d8d7213cff60146123bb8f97d4d1cc'/>
<id>urn:sha1:897546d596d8d7213cff60146123bb8f97d4d1cc</id>
<content type='text'>
Holds all the settings and their defaults for use in program_options and
tests. Disables missing-field-initializers in tests because its over
sensitive to structures with defaults where you only provide some values
specifically.
</content>
</entry>
<entry>
<title>Write unparsable lines to the entity table</title>
<updated>2025-09-23T12:31:26Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2025-09-23T12:31:26Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=71803b97f1c9e31f2027da48bb742353f9c43e62'/>
<id>urn:sha1:71803b97f1c9e31f2027da48bb742353f9c43e62</id>
<content type='text'>
Diagnostics and the ability to ingest later.
</content>
</entry>
<entry>
<title>Make DB pool protected for access from unit tests</title>
<updated>2025-09-23T12:29:51Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan.goodliffe@octal.co.uk</email>
</author>
<published>2025-09-23T12:29:51Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=4785b4d8c5bac4e03ed8dd2a4c01ec098da60d7b'/>
<id>urn:sha1:4785b4d8c5bac4e03ed8dd2a4c01ec098da60d7b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Gracefully handle fatal exceptions and display message</title>
<updated>2025-09-19T19:28:04Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-09-19T19:28:04Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=df38ef1ec9af4f3f893323ed5c10e25fa481b1c6'/>
<id>urn:sha1:df38ef1ec9af4f3f893323ed5c10e25fa481b1c6</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Create and perform UA lookup curl op when new user agent is encountered</title>
<updated>2025-09-13T12:24:23Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-09-13T12:24:23Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=84bd17328a4dc027e689ca7b2a85744d6e2b7cf5'/>
<id>urn:sha1:84bd17328a4dc027e689ca7b2a85744d6e2b7cf5</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Perform background curl operations when not processing log input</title>
<updated>2025-09-13T12:23:36Z</updated>
<author>
<name>Dan Goodliffe</name>
<email>dan@randomdan.homeip.net</email>
</author>
<published>2025-09-11T23:13:56Z</published>
<link rel='alternate' type='text/html' href='http://git.randomdan.homeip.net/repo/webstat/commit/?id=55439681e7a45489e5a77c2d6169f4b722525c96'/>
<id>urn:sha1:55439681e7a45489e5a77c2d6169f4b722525c96</id>
<content type='text'>
</content>
</entry>
</feed>
