kirit.com

Created 26th April, 2005 13:12 (UTC), last edited 5th July, 2007 06:59 (UTC)

Writing about C++, Programming, FOST.3™, Mahlee™, the web, Thailand and anything else that catches my attention—with some photos thrown in

The unloved state of this site

Posted 21st April, 2013 07:54 (UTC), last edited 21st April, 2013 09:00 (UTC)

Since the Windows server that was running this web site got unexpectedly turned off some time ago I put in a bit of work to transform the site into something that would work on Linux, but it hasn't received any love since then.

There's more than a few things that I need to do. Because I'm a bit of an idiot, I accidentally deleted the photo backup from S3 when clearing old buckets one day, so when the server was turned off I lost most of the images (the ones that are here now where on the way back machine). There are also parts of the site that don't work properly. Property pages and the postcode pages are the most noticeable I guess.

The plan

Fixing the photos is going to take time. I have all of the original photos, but I may need to re-edit some so they will never be exactly the same as the ones that were lost. I don't think that matters all that much really. There are also missing diagrams and screen captures. These will have to be re-created. All in all, this process is going to take time and it would help me to get some measure of progress.

For the functionality that isn't working, I need to implement new versions of these parts of the site. I'm thinking of making much more use of AngularJS to drive these parts of the site. The Fost 4 technology stack has some very cool RESTful JSON database technology that should make this fairly simple, so long as I don't care about Google indexing these pages. That's probably find to start with.

The main thing of course is new content. I have a few open source projects that really need to have much better documentation. The two main ones are Fost 4 and Django Slumber, and I need to make time to start to put that together in a much better form.

What is hard right now is the publishing process. I'm still running the old FOST.3™ stack on a Windows VM that I use for authoring. I then have some Python scripts that dump that data out and transform it into something that the new Fost 4 based web server I wrote can deal with. This is all a bit awkward, but passably workable. It'll be a lot of work to put together something with the features that the site uses that make authoring directly on the site available again.

The other thing that I've been forced to turn off is the user comments. Due to the spam issues this wasn't such a big deal, but something like Disqus should make it reasonably simple to get working comments again without too much work.

The progress

One of the things that I should probably also write a bit about is an old test spider. You can let this loose on a site and it will crawl it looking for errors. When I turn it lose on the site it sees a total of 1,194 resources, of which 248 are errors of one form or another.

So, until I get around to fixing more of this, you'll just have to put up with the new larger font :)


Categories:

Fost 4 release 4.13.03.44670 now out

Posted 12th April, 2013 04:16 (UTC), last edited 12th April, 2013 04:16 (UTC)

The latest release was tagged a little while ago and I've been late putting this note together :(

There are a number of small changes, and two breaking changes, although they're quite easy to deal with. The old functions replaceAll and absorbException have been renamed replace_all and absorb_exception in order to fit in with the naming convention of everything else.

The biggest new addition is the start of a progress meter. There is only a very basic implementation so far and I think the interface will change once we work out how to deal properly with tracking progress of multiple tasks across many threads.

Linux & Mac
svn co http://svn.felspar.com/public/fost-hello/tags/4.13.03.44670 fost-hello
cd fost-hello
Boost/build
hello/compile
dist/bin/hello-world-d

On the Mac you will need to set DYLD_LIBRARY_PATH before running hello-world-d

export DYLD_LIBRARY_PATH=dist/lib
dist/bin/hello-world-d
Windows
svn co http://svn.felspar.com/public/fost-hello/tags/4.13.03.44670 fost-hello
cd fost-hello
Boost\build
hello\compile
dist\bin\hello-world-gd

Download locations

Everything is available through our Subversion repository. Below are the locations for the tagged releases for Fost 4.13.03.44670 components.

Detailed change log

fost-base

  • Added the ability to set the log message module when using the logging DSL through a new `.module()` member on the log message builder.
  • `fostlib::absorbException` has been deprecated in favour of `fostlib::absorb_exception`.
  • `fostlib::replaceAll` has been deprecated in favour of `fostlib::replace_all`.
  • Changed a couple of exceptions to put extended data into the JSON data rather than the free form text.
  • Changed the `what()` implementation of `fostlib::exceptions::exception` to no longer write out more than one line (unless the info member of the exception does so). Also removed the settings for controlling the format of the `what()` string.
  • Implemented better error detail for when a JSON array is accessed out of bounds.
  • Refactored `FSL_CHECK_NEQ` so that it only evaluates it's arguments once.
  • Moved the file specific functions into their own header. Now include `fost/file` rather than `fost/unicode` if you only need file handling APIs. Also added a `unique_filename` function suitable for generating temporary file names.
  • Add a `directory_iterator` typedef which allows us to iterate over wpath based directory names across all supported versions of Boost.
  • Initial simple progress meters allow progress from remote threads to be measured in a control thread.
  • Implemented the file input operator for the `digester` so it is now possible to hash files on the file system.

fost-orm

  • Added a new setting to control whether or not the JSON DB disk files are pretty printed. It defaults to false for release builds and true for debug builds. The setting section is `JSON DB` and the setting name is `Pretty print database files`.

Categories:

Fost 4 release 4.12.12.44490 now out

Posted 22nd December, 2012 05:01 (UTC), last edited 22nd December, 2012 14:01 (UTC)

A fairly small release this time, but does include some important fixes for later versions of Boost and Python. There's also an important improvement to the backup files for the JSON databases.

Linux & Mac
svn co http://svn.felspar.com/public/fost-hello/tags4.12.12.44490 fost-hello
cd fost-hello
Boost/build
hello/compile
dist/bin/hello-world-d

On the Mac you will need to set DYLD_LIBRARY_PATH before running hello-world-d

export DYLD_LIBRARY_PATH=dist/lib
dist/bin/hello-world-d
Windows
svn co http://svn.felspar.com/public/fost-hello/tags/4.12.12.44490 fost-hello
cd fost-hello
Boost\build
hello\compile
dist\bin\hello-world-gd

Download locations

Everything is available through our Subversion repository. Below are the locations for the tagged releases for Fost 4.12.12.44490 components.

Detailed change log

fost-base

  • Added Boost Chrono to builds on Windows for Boost 1.47 and later.
  • Removed the `workerqueue` as it doesn't do anything useful that a work pool doesn't already do.

fost-internet

  • Allow the SMTP port to be set on the SMTP client and the tests.

fost-orm

  • Create a backup of the old JSON database file (via a hard link) before creating the new one. For older versions of Boost (pre 1.46.0) there is still some small period of time when there is no disk file.
  • Added a post commit hook to the local JSON DB transaction handler which allows code to run after a transaction is successfully committed.

fost-py

  • Fixed an order-of-destruction problem in the in-process Python host that showed up on Ubuntu Quantal/Python 2.7.

Categories:

Fost 4 release 4.12.09.44431 now out

Posted 16th November, 2012 12:39 (UTC), last edited 16th November, 2012 13:09 (UTC)

This release was tagged a bit late, and this announcement is even later — sorry for that. Hopefully all of the good stuff in it makes up for that.

Linux & Mac
svn co http://svn.felspar.com/public/fost-hello/tags4.12.09.44431 fost-hello
cd fost-hello
Boost/build
hello/compile
dist/bin/hello-world-d

On the Mac you will need to set DYLD_LIBRARY_PATH before running hello-world-d

export DYLD_LIBRARY_PATH=dist/lib
dist/bin/hello-world-d
Windows
svn co http://svn.felspar.com/public/fost-hello/tags/4.12.09.44431 fost-hello
cd fost-hello
Boost\build
hello\compile
dist\bin\hello-world-gd

Download locations

Everything is available through our Subversion repository. Below are the locations for the tagged releases for Fost 4.12.09.44431 components.

Detailed change log

fost-base

  • Removed a dead constructor that does nothing in worker.
  • No longer pass on log messages captured during tests. This stops expected errors from being displayed and confusing the test results.
  • Added a basic parser for the RFC1123 formatted dates used in protocols like SMTP and HTTP. Only the format produced by the Fost libraries is currently supported.
  • The parser lock is now recursive. This means that we can be more aggressive about using it without causing deadlocks. Also removed the parser wrapper that doesn't take a lock so all uses are explicitly forced to acquire the lock at the right time.
  • Deliberately leak the thread counter so that it can't be destructed before threads that are terminating in a global destructor get run.
  • Added instrumentation for the number of worker threads in use. Also added decrement to the counter implementation.
  • Fixed a bug on Windows where the pre-increment would return the old value rather than the new one.
  • Dynamic loading of a library now tries with platform specific prefixes and suffixes before trying the name provided.
  • Implement JSON casts for json::array_t and json::object_t.
  • Allow the use of constant workers (and in_proc) which makes certain thread wrappers more obvious to implement.
  • Implement futures with void type for worker and in_proc. We can still wait on them.
  • Added startswith and endswith members to the string class.
  • Allow time stamps and time differences to be added and subtracted.
  • Made time stamps comparable and also added in a new timediff implementation based on the Boost library version.
  • Silenced a clang warning that turns up under some circumstances.
  • Added configuration for the log level for the stdout global logger.
  • Changed the logging DSL for logging JSON objects thanks to suggestions from jeroen Vermeulen.

fost-internet

  • The URL parser (string constructor) now acquires the parser lock. This should help stop Boost Spirit failures.
  • Changed some log output for the HTTP server to produce JSON objects rather than an array.
  • Support the clang toolset in the compile script.
  • Removed some dead code.

fost-orm

  • Added set to the jsondb::local transaction to update the value of the JSON irrespective of what is already there.
  • The JSON DBs backed to disk can be created with a boost::filesystem::wpath instance, not only from a fostlib::string.
  • Changed the logic when a JSON DB is loaded so that it doesn't rely on exceptions.


Categories:

Fost 4 release 4.12.06.44200 now out

Posted 23rd June, 2012 09:55 (UTC), last edited 27th June, 2012 00:21 (UTC)

The latest version of Fost was tagged in our repositories a few days ago.

This release features the first new library in some time, fost-web. This library contains a number of building blocks to help build web servers in C++ — like the web server that runs this site. This is the first of the libraries that is hosted on GitHub rather than our normal Subversion repository.

Linux & Mac
svn co http://svn.felspar.com/public/fost-hello/tags/4.12.06.44200 fost-hello
cd fost-hello
Boost/build
hello/compile
dist/bin/hello-world-d

On the Mac you will need to set DYLD_LIBRARY_PATH before running hello-world-d

export DYLD_LIBRARY_PATH=dist/lib
dist/bin/hello-world-d
Windows
svn co http://svn.felspar.com/public/fost-hello/tags/4.12.06.44200 fost-hello
cd fost-hello
Boost\build
hello\compile
dist\bin\hello-world-gd

Download locations

Everything is available through our Subversion repository. Below are the locations for the tagged releases for Fost 4.12.06.44200 components.

Detailed change log

fost-bas

  • Finally implemented the decode portion of base 64 support.
  • Implemented a new logging DSL that makes it much simpler to create JSON objects in the log. Look at fost-base/Cpp/fost-core/log-tests.cpp for an example.
  • Fixed up a problem where the crypto++ library wasn't installing properly on Windows.
  • Renamed the fostlib::logging namespace to fostlib::log to make it shorter.

fost-internet

  • Exposed the HTTP server's status codes as text.
  • Extended the set of allowable characters for the file specification and the query string in the HTTP server to include apostrophes.

fost-meta

  • Added fost-web to the build targets.

fost-py

  • Removed the Fost authentication middleware for Django as this is now a separate pypi package.
  • Silenced a clang warning.

Categories: