x

Practical Archaeological Excavation Techniques, day five

#134

Morning, Sunday 2nd November. Weather: cold, but sunny.

Read the rest of this entry »

Practical Archaeological Excavation Techniques, day four

#133

Day Four, afternoon of 31st October 2008.

Recording of a trench section on context recording sheets, and some interpretation. Read the rest of this entry »

RSS take-up peaks at 11pc

#132

I won’t be spending $279 to find out the details:

Nearly half of interactive marketers use RSS, but consumer adoption has only reached 11%. Of the consumers who haven’t adopted RSS, most don’t understand how RSS is relevant to their lives and the way they seek information. If marketers expect to reach a critical mass of consumers by using content syndication, then they must take on the burden of education.

[source: forrester.com...150,00.html]

So I wonder how many people knew they were using RSS, and how many accessed syndicated material without realising the nature of it’s origin. Yahoo Pipes for instance, mashups etc.

Were Podcasts included or excluded?

Practical Archaeological Excavation Techniques, day three

#131

My third day on site for the Archaeological Excavation Techniques course.

Afternoon of Saturday18th October 2008. Weather -A sunny afternoon that turned wet and windy.

Today I was to build on the reading I’d done from Philip Barker’s book and the Liverpool Museums site recording guide and begin to put the theory into practice.

I was allocated an area of a trench to examine and record appropriately on context sheets. The sheets form detailed textual descriptions of the contexts (a layer of sand for example, or feature within it) apparent in a trench along with descriptive diagrams.

Today I learned of a new importance for the balks between trenches. In addition to providing safe access (for excavator and the archaeology) across the site, leaving a near complete depth of the trench undisturbed allows features not previously noted (for example, if the weather or daylight precluded them from notice) to remain and be recorded.

In this instance, the trench section had some intrigue – beneath a layer of sandy soil already recorded, lay a circular section of small and larger stones, finer gravels within, surrounded by grey sand. Beneath this, the section had areas of orangey iron panning. These and other features of the trench lead us to believe this is a (Mediæval) ditch – the stones seem to form a line across the site indicating they were posited to allow water flow. The gravels and iron deposits beneath, add to the notion that water once flowed along the lines of stones.

My job was to record in detail on the context sheets a description of each context ( the circular stoney area and its surroundings, and the iron layer beneath). On a third sheet, the ‘cut’ of the section – the perceived edges of the ditch as they’d been originally cut – was to be recorded, although it was thought that this would be done on another day as the feature was difficult to discern.

Before that I had to clean up the section, removing areas that had been slightly weathered by rain by careful removal of material to give a crisp edge that reveals the colour of the earth and aids identification of the different contexts.

The little cleaning I did revealed a second small cluster of gravel adjacent to the larger cluster of stones and an upward curve in the underlying layer that could influence a decision on where the cut of the ditch might lie.

The finer details of the section are difficult to see and require some adjustment of the eye to discern. For this reason repeated discussion of what is apparent in the section can help to determine what features are present. The clear layering of the contexts was disturbed only by runs of light grey sand which are thought to be evidence of animal burrowing. Nevertheless care must be taken to ensure that what the eye sees is not recorded without thought.

The supervisor showed me a drawing of the section I was to further record. These use a 1-to-10 ratio of measurement as opposed to the 1-to-20 ratio used on plan drawings. Recorded in the section drawing were the outlines of the contexts I was to further examine along with outlines for the larger rock features. As with every other aspect of the site, sections have unique numbers of their own for later cross-reference with site, trench, context and find numbers. The drawings also record their orientation so a section may be recorded for all sides of a trench.

I also learned today that another numbering scheme exists for excavation – view numbers – numbers (preceded by a letter ‘V’) given to photographed areas. These are (as ever) retrieved sequentially from pre-printed sheets as required and written on a small blackboard placed in shot.

The recording reference manual contains guidance on the format of all the information that needs to be recorded in each section of the context sheet. The methods range from the ordered to the anecdotal in order to allow as many facets of the context to be recorded, but also allow for quick understanding later on. For example to describe a cut a recorder details a numbered list of predefined features:

  1. Shape in plan
  2. Shape in Section
  3. Dimensions

For a section, these elements are denoted by letters:

  1. Consistency
  2. Texture
  3. Colour
Munsell soil chart  - www.dgcolour.co.uk
An example Munsell Soil Colour chart from dgcolour.co.uk

I was also introduced to Munsell soil colour charts today. A flipbook of punched card pages with printed colour indicators of different soil colours. Each lozenge of colour is bounded by punched holes so that a sample of earth may be dampened and placed on a finger or trowel beneath the page in order to match it to a colour. On the facing page to these punched pages are divided spaces that show the chroma and value definitions (for example 5/4, along with a brief description such as ‘weak red’) for the sample which may then be recorded on the context sheets. Each page has it’s own identifier too – for example 10 YR for a degree of Yellow-Red.

Sadly the weather changed for the worse before I could begin recording and the day’s work was drawn to a premature close.

Before leaving the site I walked towards the farm where the site owners are constructing what will probably be the only Iron Age roundhouses you’ll find (standing!) in this region.

The first is being built to the same dimensions as the roundhouse found in the same field in previous excavations, and will be one of six arranged for the purpose of providing an educative environment for this under-examined period in the North West’s history.

Practical Archaeological Excavation Techniques, day two

#130

An account of my second day on the Archaeological Excavation Techniques course run by Liverpool University Continuing Education in conjunction with National Museums Liverpool.

Monday 13th October 2008. Weather – Morning overcast, cold. sunnier in the afternoon, wind speed increased.

Read the rest of this entry »

Practical Archaeological Excavation Techniques, day one

#129

An account of the first day on the Archaeological Excavation Techniques course run by Liverpool University Continuing Education in conjunction with National Museums Liverpool.

Monday 6th October 2008. Weather – Morning sunny with a light mist visible over distance. Overcast in the afternoon.

Read the rest of this entry »

Peter Ellis’ other build

#128

Picture of Sixteen Cook Street, LiverpoolPicture of Sixteen Cook Street, Liverpool
View of Sixteen Cook Street, Liverpool

Peter Ellis’ other build, 16 Cook Street Liverpool.

Stonehenge, big fence

#127

Archaeologists have found traces of the 20ft-high timber fence that snaked almost two miles across Salisbury Plain and hid sacred ceremonies from unworthy locals more than 5,000 years ago.


Dr Josh Pollard, of Bristol University, who is co-director of the dig, said: ‘The construction must have taken a lot of manpower … The palisade is an open structure which would not have been defensive and was too high to be practical for controlling livestock … It certainly wasn’t for hunting herded animals and so, like everything else in this ceremonial landscape, we have to believe it must have had a religious significance.’

‘The most plausible explanation is that it was built at huge cost to the community to screen the environs of Stonehenge from view. Basically, we think it was to keep the lower classes from seeing what exactly their rulers and the priestly class were doing.’

Read this news Courtesy of Moss on TMA

Hard found gains in Symfony

#126

My first production Symfony application is a newletter manager and sender. This gave me a few headaches that I couldn’t easily find solutions for in the Docs. In the end trial, error and other sources came up with some gems that kept things moving.

Assigning complete module output to a variable

sfContext::getInstance()->getController()->»
getPresentationFor('module','action');

This is pretty useful, dropped into your Action this retrieves the fully rendered (layout, template, content) output of another Action/Module. Many of the email examples recommend putting the content you wish to send out into a partial or component and show how to grab it for variable assignment, but this will take a whole page you might want to email ‘as is’. I use it retrieve a current newsletter page as it is would be rendered for the web so I can drop it into an email.

Flexible but full Absolute URLs to assets

mymodule:
  stylesheets:    [main , 'http://mysiteDotCoDotUK/path/to/this.css']
  javascripts:    ['http://mysiteDotCoDotUK/path/to/that.js']

The books don’t seem to mention it, but you can use absolute URLs in your view.yml for embedding stylesheets and javascripts. So you can set granular stylesheet and script settings down to the module while still producing absolute links to them. When your assets also use the absolute=>true boolean options in Link and Asset Helpers, then you have dynamically generated fully standalone output. I’ll be using this to make sure email newsletters find their supporting content.

With this, I can provide the editor interface, management and preview options, a live copy of the current newsletter and archive of old ones on the web, and share the very same content in mails to subscribers.

Mixing Object and Form Helpers in Symfony

#125

Being new to Symfony I’m still getting my head around some of its paradigms. Two months with the manual before embarking on any development taught me that it was worth pursuing, but there’re always areas you need to see working.

The Object form helpers looked particularly useful, so for my first production development I aim to use them wherever possible. These helpers allow you edit objects directly, simplifying the update process back in your actions.

sample form in editformSuccess.php template:

<?php echo form_tag('editform/updatetitle'); ?>
<?php echo object_input_hidden_tag($newsletter, 'getID') ;?>
Title: <?php echo object_input_tag($newsletter, 'getTitle') ;?>
<?php echo submit_tag('update'); ?>

and in actions.class.php:

<?php
public function executeEditform($request)
{
$this->newsletter = »
NewsletterPeer::retrieveByPk($request->getParameter('id'));
$this->forward404Unless($this->newsletter);
}

public function executeUpdatetitle($request)
{
$nltoupdate = NewsletterPeer::retrieveByPk($request->getParameter('id'));
$this->forward404Unless($nltoupdate );
$nltoupdate->fromArray(»
$this->getRequest()->getParameterHolder()->getAll(),BasePeer::TYPE_FIELDNAME);
$nltoupdate->save();
return $this->redirect(»
'newsletters/view?id='.$request->getParameter('id'));
}

The update code uses the fromArray method to update any properties of your object it holds data for, received from your form. Adding fields to your form doesn’t require changes to the action.

I got into difficulties when it came to setting a boolean field for my object, called “IsPublished”. Wishing to stick with the Object form helpers I investigated the Object_select_tag, however this has a different use altogether – allowing you to grab properties of other objects to match with your current object. The classic example being choosing an author from the authors object to match up to a post object.

I still wanted to save a property for my object, but I didn’t want to have it select from the object, or grab values from other objects. Further searches revealed I wasn’t alone in wondering how to set default selected values and generally get to grips with object_select_tag.

Mixing Object and Form helpers seemed the best solution, using select_tag for my boolean field. However this meant I wasn’t using the Object helper exclusively, so would it still work with fromArray?

The form code generated looked promisingly simple, so I tried a mix of object_input_tag and select_tag in my editformSuccess.php template:

<?php
$defaultOption = »
$newsletter->getIsPublished() == 1?1:0; # get current, set default
echo select_tag('in_published', options_for_select(array(»
0, 1),
$defaultOption));
?>

Note the highlighted property in select_tag. My Object Property is called “IsPublished”. To object-generate a plain text input field I’d have used:

<?php
Published: <?php echo object_input_tag($newsletter, 'getIsPublished') ;
?>

So my current field value would be retrieved, and the Object helper generates form fields using BasePeer::TYPE_FIELDNAME which in turn is used in my fromArray method to update the Db.

Normally one would use select_tag with internal field names (BasePeer:: TYPE:PHP_NAME) and write more action code to marry them up before a save(), however here I have to add my database field name into my view code.

Tethering your templates to your database schema is a route no-one should go down. So the internal name should be converted to the Db name on-the-fly in your template. The Peer classes have a function for this, and its public. The following call converts your usual internal field name for you, ready to drop into your select_tag:


<?php
$IsPublished_translated = BaseNewsletterPeer::translateFieldName(»'IsPublished',BasePeer::TYPE_PHPNAME, BasePeer::TYPE_FIELDNAME )
?>

You could assign this in your action, but it works just as well in the template:

<?php
echo select_tag(»
'BaseNewsletterPeer::translateFieldName(»
'IsPublished',BasePeer::TYPE_PHPNAME, BasePeer::TYPE_FIELDNAME
',»
options_for_select(array(»
0, 1),
$defaultOption));
?>

A final step would be to migrate this into a function higher up that so as to make templates a little prettier when editing.