I'm afraid that there are no changes in this release, but that doesn't mean things aren't changing. My intention is for this to be the last release done through the Subversion repository as all the source will be moved over to Git.
The plan is to split each library into two repositories — the first being the actual library code itself, and the second being the library build environment. This is how the fost-beanbag functionality is already done, see beanbag and fost-beanbag (although the motivation is different and this will mean a slightly different naming convention for the base libraries).
Development will be done using Git flow, but I don't foresee using the release mechanism. What this means in practice is that the unstable code now in trunk will be in a develop branch and the stable version will be in master. The quarterly releases will simply be tagged versions of master. By having everything in Git it'll make this process significantly easier to manage and will mean that the libraries currently in Git will get proper tagged releases.
I've yet to sort out the details of how to do the transfer of the code and the structure of the libraries themselves, but I do hope to get most of this done during the course of the next week.
|Linux & Mac|
svn co http://svn.felspar.com/public/fost-hello/tags/126.96.36.199866 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
svn co http://svn.felspar.com/public/fost-hello/tags/188.8.131.52866 fost-hello cd fost-hello Boost\build hello\compile dist\bin\hello-world-gd
Everything is available through our Subversion repository. Below are the locations for the tagged releases for Fost 184.108.40.206866 components.
As a demo for the lightweight JSON databases supported by the fost-beanbag library and AngularJS I put this together one day. The original version is in the fost-beanbag source code, this is an adapted version to make it compatible with my web site.
The declarative style of programming is not to everybody's taste. There are many who simply prefer the overtly operational nature of machine-oriented programs—for them, there is more psychological satisfaction to be had in exercising active control over the 'moving parts' of a computation than there is in the seemingly more passive business of declaring what the computation is to achieve. This preference may persist whatever claims are made or substantiated about the virtues of (present-day) logic programming.
I bet you thought that quote was going to be about functional programming until the last two words?
The quote is from Christopher Hogger's 1990 book Essentials of Logic Programming¹ [1This book was my university text on logic programming at Imperial College and Chris Hogger gave the lectures.]. Although the importance of logic programming has declined over the nearly twenty years since he wrote that passage the difference between declarative and imperative programming and the preference of some for one or the other is very much still with us.
He is right in talking about the fun aspects of programming—this is a big draw for many developers, but not all. I think many who prefer imperative programming simply have more trust in their solutions when they can see the moving parts and can fiddle with them. Getting to see and play with the ballistics of a program makes all sorts of things readily understandable that are hidden in declarative systems.
That doesn't mean that declarative programming isn't fun and it doesn't mean that we shouldn't trust our solutions even though we don't know how the answer is derived. Many of us are very happy to use compilers we barely comprehend, database engines which resolve problems for us that many don't even know exist and languages which abstract away not only the underlying machine but nearly all of the layers above that too.
Given the normal history of these things I think there'll be a resurgence in logic programming interest sometime in the next ten to fifteen years, as seems to be the repeated rise then decline and then rise again of programming paradigms—just look at object orientation and functional programming for two examples.
The decline of logic programming itself is certainly a shame. Logic programming has many useful things to teach us, for example, it allows us to reason about looping constructs and conditionals in a unified manner—something very important in Test Driven Development because it allows us to understand exactly what we get for our tests and how to test more of the program whilst writing fewer tests.
A day trip to have lunch at a restaurant featuring tables in one of the rivers.
I deliberately over exposed the photos of Freyja playing in the river as an experiment to see if it made them feel more summer-y.
I just upgraded my laptop to Saucy Salamander, and just about the only thing that broke was Skype, which had been pretty flaky already. I think that Skype isn't particularly happy with a 64 bit runtime, even the multi-architecture version is just the 32 bit code wrapped in some way.
What I wanted to do was to be try to run it inside the Lucid 32 bit runtime as I figured that's what they've been targetting and ideally I'd also have a very clean install with nothing else in there. I've been playing around with the tools
debootstrap for some other work, and have written mkschroot as a way to make the building of these environments totally reproducible. I hoped getting Skype to run was going to be easy, and it turned out to be trivial.
You'll need to install a few packages:
sudo apt-get install python-setuptools schroot debootstrap
python-setuptools is just so you can install
mkschroot and the other two packages are needed to get the
sudo easy_install mkschroot
You may want to substitute that with a
pip command and maybe a virtual environment too, but if you know about that sort of thing you don't need me to tell you the commands.
Below is the configuration file:
There are a couple of things you may need to change:
rootitem is where
mkschrootwill create the
schroot. On my system the total environment size (including Skype installation) is 438MB.
sourcepoints to a download mirror. A list of Ubuntu mirrors can be found here, or you can look in your
/etc/apt/sources.listfile to find what you're using already.
http-proxyshould point to your apt-cacher. If you don't have one then remove that line. For quickest results also make sure that your
/etc/apt/apt.confcontains the right apt-cacher configuration.
You need to create a local file with a copy of this configuration file with appropriate changes for your environment in order to use it.
schrootand installing Skype
Create the lucid runtime using this command (
skype.json is the file name you saved the configuration file to):
The first time you run this it will need to ask for
sudo rights in order to create the configuration file for you in
If you ever want to update to newer lucid packages in the
schroot (for example, when security patches are released) you can simply re-run this command.
schroot that is created will automatically mount your home directory and have a user with the same permissions as you, so if you already have a Skype configuration on your machine it will be picked up by the version inside the
Now to install Skype. Download the 10.04 32 bit version. At the time of writing I got
schroot -c skype -u root -- dpkg -i Downloads/skype-ubuntu-lucid_220.127.116.11-1_i386.deb
The required packages that Skype needs should already be installed.
To run Skype start it from a command line like this:
schroot -c skype -p /usr/bin/skype &
Doing this allowed Skype to run without segfaulting.
schroot also ensured that the mic and webcam were properly available for Skype to use and because
schroot also mounted my home directory for me inside the
chroot jail Skype had access to my existing configuration and history etc.
Now I just have to keep using it to see if it's more stable in its preferred environment than it was when running under raring…