Dr Administrator

Author's posts

Book review: Sound tracks by Graeme Lawson

This is a review of Sound Tracks: Uncovering Our Musical Past by Graeme Lawson, a history of musical instruments discovered through their archaeological remains. Unusually for a book such as this the action takes place in reverse, starting from the present day and finishing several million years ago. Also unusually the chapters are very short, typically less than 10 pages. Chapters are grouped into 12 chronological periods. Each chapter introduces an object, or a few objects and discusses a wider issue prompted by the object. Issues may be something like the discovery of a music shop in medieval Oxford and how it is identified from court records relating to crimes (counterfeiting) committed by the owner, how different materials are preserved, or how an instrument has developed. Although unusual I liked this style, I thought it would work quite well for history lessons. It means my usual note taking process was modified, rather than writing notes on individual pages, I read a whole chapter and wrote notes on that.

It is a fair sized book running to 50 or so (short) chapters.

Sound Tracks is focussed on archaeological finds, in terms of quantity the most finds are small, ubiquitous instruments with metal, bone or ceramic components which means things like harmonicas, mouth harps, small whistles/flutes and the metal tuning pegs of instruments like harps. These items are found as discards but not commonly. Musical instruments are also found as grave goods. However, they are not as common as finds like weapons or jewellery – unsurprisingly since few are so committed to music that they would take their instruments to the grave.

Musical instruments are also found as “sacrificial” items – sound and often valuable items which have been systematically broken or destroyed are common in archaeology – what is not clear is the “why” of such breakages.

The oldest stringed instruments, dating back to 3000BC, found in Ur in Iraq were discovered because an archaeologist spotted several interesting looking voids in a tomb they were excavating and decided to fill them with plaster of Paris. They turned out to be lyres, and their approach meant the structure of the instruments were fantastically well preserved. Even in high status graves and tombs preservation is the exception rather than the rule.

Somewhat to my surprise shipwrecks are sites of sometimes remarkable preservation in musical instruments. In the right conditions artefacts will quickly be buried by anoxic sediments which gives excellent preservation – in fact on one shipwreck written musical notes were found (although the paper on which they sat had decayed away). Lawson cites violins recovered from the Kronan in Sweden (sunk 1676) and the Mary Rose (sunk in 1545). These examples show the effect of standardisation on instrument design often fine instruments are upgraded as fashions change. In some cases instruments from shipwrecks even preserve use patterns – showing what notes were commonly played. Related to shipwrecks, Lawson also talks about whistles and trumpets used not for music but for communication and command.

A recurring theme is that instruments often appear in the archaeological record “fully-formed”, that is the earliest examples found are fully-functional and sophisticated. The cause of this might be illustrated by the development of steel drums in Trinidad, this process started in the 1930s when the colonial authorities banned the traditional bamboo drums – in no more than 20 years the steel drum was fully formed in design. So musical innovation can happen in the blink of an eye. Furthermore, experiments in musical design are not preserved – at best their components will be reused, and at worst used as firewood. Pipes/flutes with evidence of deliberate, consistent tuning have been found dating back 40,000 years.

I was intrigued to learn that the earliest keyboard instruments were Roman pipe organs dating back 1700 years, this illustrates another feature of the archaeological record – the key specimen of Roman pipe organs was found in Hungary rather than back home in Rome. In another case, the understanding of Greek lyres was advanced by the discovery of a “bridge” on the Isle of Skye, in North West Scotland.

Musical instruments can represent incredibly advanced technology. For example, a chapter is dedicated to casting church bells in situ by digging a large pit at the host church, another to a carnyx from the late Iron Age, another to a carillon of 64 tuned bells from a Chinese tomb (dating back to the 5th century BC). There are numerous well-crafted tubes forming flute/wind instruments. Lawson is an experimental archaeologist, so has experience in trying to reconstruct these instruments – it is not easy, or without risk – one researcher died from inhaling toxic yew wood dust, another from trying to play his reconstructed instrument – he blew too hard!

Writing music is a bit outside the remit of this book because it is largely a historical exercise rather than an archaeological one although Lawson mentions some musical graffiti and the earliest example of lyrics and musical notation together found on a clay tablet dating back to 1300BC in Syria. This also touches on the theme of the relationship between poetry and music. There is some evidence that epic poems like Beowulf were performed with musical accompaniment.

The book finishes with a couple of chapters on what music might have existed in the deep past on the basis on human biology, genetics and cave art. The oldest wooden artefacts recovered date back 300,000 so there is a slim chance of discovering musical instruments back to this time.

I really enjoyed this book, the short chapters worked very well for me and I’m interested in music.

Book review: Buried by Professor Alice Roberts

Continuing with my Alice Roberts binge, I now review Buried: An Alternative History of the First Millennium in Britain. Following the theme of the two other books in the series, Ancestors and Crypt, Buried looks at history through the lens of seven burials. It finishes with a final, more general chapter which looks at identity and the balance between migration and cultural diffusion.

The first millennium covers the Roman occupation of Britain followed by the period sometimes known as the “Dark Ages” or the “Anglo Saxon Period”.

The first three burials are in the Roman era, they cover a weird pipe burial where the ashes from a cremation are buried in a lead container with a pipe leading up to the surface. This is believed to be a a facility for enabling mourners to symbolically eat and drink with the deceased. This was a funeral practice known in the Roman period and continued for a long time in, for example, Russia where food and drink were left on the grave. To a degree this is a chapter about cremation, which was the favoured Roman practice – sky burials were more the preference in Iron Age Britain – they leave little trace. After the Romans left inhumation became the common practice.

The second chapter is a somewhat traumatic one on infant burials in the Roman period, focused on the 97 infant burials found at the Yewden Roman Villa near Hambledon. Infants were often buried close to homes rather than in cemeteries in the Roman period. Some of the bones at Yewden show signs of cutting, it isn’t entirely clear why there are such injuries but obstetric surgery is a possibility. It has been estimated that infant mortality was as high as 30% in this period. There are hints that infanticide was practiced more widely than today on those infants who might today survive with treatment. These infant burials highlight the difficulty of understanding what was happening, and how people felt from fragmentary remains.

The last of the Roman burials covers decapitation, burials where the corpse has clearly been decapitated – it focuses on the Whelnetham cemetery at Bury St Edmunds. One thing that is becoming clear is that there is no such thing as a typical cemetery from this period, each of the burials in this book illustrates another variation from the “norm” – whatever that may be. Perhaps that is the result of the selections made by the author but it may be that in an era before mass communication and a strong nation state or church, burial was much more a local affair. Ultimately why bodies were decapitated before burial is unclear, sometimes it was as the result of execution or a final punishment for criminals in other cases it may have been a superstitious measure to prevent ghosts or other apparitions.

The diversity of burial practices is again highlighted in the next burials at Breamore in Hampshire dating from around 600CE where the local style seems to have been burial with a bucket amongst many other grave goods! The site was discovered after a metal detectorist discovered a very elaborate bucket which appears to have come from a workshop many miles away in the Southern Türkiye. It is here that the theme of Anglo Saxons, and how they came to replace the Romans takes place. The term “Anglo Saxon” has its own postscript chapter since it is a problematic term. For archaeologists it has a precise meaning: the period from the end of the Roman occupation to the Norman invasion but more recently it has been co-opted as an ethnic term meaning “white, of Northern European origin”. Some (approximately one) historical records suggest the Anglo Saxon takeover of culture in Britain was the result of mass migration or invasion. However, the writer of this history – Gildas – certainly had an axe to grind. It seems more likely that the apparent Anglo Saxon invasion was a cultural shift that came from longstanding trade links across northern Europe. The Roman invasion of Britain was more a replacement / coalition of the ruling class than a mass migration, although soldiers and mercenaries came to Britain from around the Empire. The Anglo Saxon “invasion” appears to have been more of a re-instatement of the Iron Age status quo drawing on existing trade and cultural links.

The next chapter is not focussed on a burial as such but on the Staffordshire horde, and the intensive study of a single type of jewellery and how it changes over time. Although dramatic, discoveries such as the Staffordshire Horde are frustrating since they come with no context, they are typically found with no accompanying burial, building or even roadway.

The local interest for me is in the sixth chapter, where Roberts looks at burials near Benllech in Anglesey – where we have been on holiday a couple of times. The “burials” are basically bodies thrown into a ditch, and the key question is whether they are part of a battle against Viking invaders. This again touches on the movement of people around Northern Europe and the degree to which they assimilated locally.

Towards the end of the Roman Empire it became Christian, and in the subsequent years Roman burial practices, and those countries where the Church prevailed, changed. Cremations were replaced with burials, grave goods fell out of favour (to the chagrin of modern archaeologists), and churches and cemeteries combined – in the earlier Roman period there were temples in settlements and separate cemeteries on the outskirts. In some ways the Roman Empire seems not to have fallen but rather have been replaced with the Catholic Church, based in Rome.

As I finish my binge on Alice Roberts I find her books make engaging reading, as well as archaeological detail they also cover historiography and the broader questions of the period the burials address. Buried addresses more of the historical record than Ancestors which focussed on an earlier period (where there were no historical records), and less of the ancient DNA work which is found more in the recent Crypt. Ancient DNA is particularly relevant to understanding disease. The field of ancient DNA is evolving very rapidly, even in the couple of years between the writing of Buried and Crypt.

Book review: A Philosophy of Software Design by John Ousterhout

Next for review is A Philosophy of Software Design by John Ousterhout. This a book about a big idea for software design. The big idea is that good software design is about managing complexity. In Ousterhout’s view complexity leads to a set of bad things: (1) change amplification – small changes in code lead to big effects, (2) cognitive load – complex software is difficult to understand, and (3) unknown unknowns – complex software can spring the unexpected on us.

Ousterhout covers this big idea in 20 short chapters with frequent reference to a projects that he has run with students repeatedly (including a GUI text editor and a HTTP server) – providing a testbed for reviewing many design choices. He also uses the RAMCloud project as an example, as well as features of Java and the UNIX operating system. This makes a refreshing change from artificial examples.

To decrease complexity requires developers to think strategically rather than tactically which goes against the flow of some development methodologies. Ousterhout suggests spending 10-20% of time on strategic thinking – this will pay off in the long term. He cites Facebook as a company who worked tactically and Google and VMWare as companies who worked more strategically.

At the core of reducing complexity is the idea of “deep modules”, that’s to say systems that have a relatively small interface (the width) which hides information about a potentially complex process (the depth). The Java garbage collector is the limiting case for this – having no user accessible interface. The aim of the deep modules is to hide implementation details (information) from users whilst presenting an interface that only takes what is required. This means deciding what matters to the user – and the best answer is as little as possible.

This goes somewhat against the ideas of the Agile development movement, as expressed in Clean Code by Robert C. Martin (which I read 10 years ago) – who was a big fan of very short functions. I noticed in my review Clean Code that I have some sympathy with Ousterhout’s view – small functions introduce a complexity overhead in function definitions.

Also on the theme of Agile development, Martin (in Clean Code) sees comments as a failing whilst Ousterhout is a fan of comments, covering them in four chapters. I recently worked on a project where the coding style was to rigorously exclude comments which I found unhelpful, that said I look at my code now and see orphaned comments – no longer accurate or relevant. The first of Ousterhout’s chapters on comments talks about four excuses to not provide comments, and his response to them:

  1. Good code is self-documenting – some things cannot be said in code (like motivations and quirks)
  2. I don’t have time to document – 10% of time on comments will pay off in future
  3. Comments get out of date and are misleading – see later chapter
  4. The comments I have seen are useless – do better!

The later chapters focus on the considered use of comments – thinking about where and what to comment rather than sprinkling comments around at a whim. The use of auto-documentation systems (like Sphinx for Python) is a large part of realising this since they force you to follow standard formats for comments – typically after the first line of a function definition. Comments on implementation details should be found through the body of a function (and definitely not in source control commit messages). He also introduces the idea of a central file for recording design decisions that don’t fit naturally into the code. I include the chapter on “Choosing names” under “comments” – Ousterhout observes that if you are struggling to find a good name for something there is a good chance that what you are trying to name is complex and needs simplification.

Certain types of code, Ousterhout cites event-driven programming, are not amenable to producing easy to understand code. He also dedicates a chapter to handling errors – arguing that errors should be defined out of existence (for example deleting a file that doesn’t exist shouldn’t cause an error, because the definition of such a function should be “make sure a file does not exist” rather than “delete a file”). Any remaining exceptions should be handled in one place, as far as possible.

There is a chapter on modern software development ideas and where they fit, or don’t, with the central theme. Object-orientation he sees as good in general, with information hidden inside classes but warns against over use of inheritance which leads to complexity (just where is this method defined?). He also comments that although design patterns are generally good their over-application is bad. He is in favour of unit tests but not test-driven development. This seems to be related to his central issue around Agile development – it encourages tactical coding in an effort to produce features rapidly (per sprint). He believes Agile can work if the “features” developed in sprints are replaced with “abstractions”. He doesn’t like Java’s getters and setters, nor its complex serialisation system which requires you to setup up buffering separately from opening a file as a stream – I remember finding this puzzling.

I enjoyed this book – it provides some support for continuing to do things I currently do although they are a little against the flow of Agile development and food for thought in improving further.

Book review: The Mythical Man-month by Frederick Brooks Jr.

mythical-man-monthNext up The Mythical Man-Month: Essays on Software Engineering by Frederick Brooks Jr.

This is a classic in software engineering which I’ve not previously read, I guess because it is more about software project management rather than programming itself. That said it contains the best description I have seen as to why we love to program, it is a page long so I won’t quote it in full but essentially it divides into 5 parts.

  1. the joy of making things;
  2. the joy of making things which other people find useful;
  3. the joy of solving puzzles;
  4. the joy of learning;
  5. the joy of working in such a malleable medium;

The majority of the book was written in the mid-seventies, following the author’s experiences in the previous decade, delivering the IBM OS/360 system. This means it reads like Asimov’s Foundation in places, dated technology, dated prose, but at the same time insightful. This is the 20th anniversary edition, published in 1995 which includes 4 new chapters tacked on the end of the original book. Two of these – No Silver Bullet and No silver Bullet – refired are a couple of essays from the eighties around the idea that there are no silver bullets to making software production greatly more efficient – this is in the context of hardware improvements which were progressing at unimaginable speed – Brooks was looking for routes to similar evolution in software development.

The other two new chapters are a bullet point summary of the original book and a retrospective on the first publication. The bullet point summary chapter removes the need for my usual style of review!

The core of the book is the observation that large software projects frequently fail to be delivered as scheduled. There then follow some chapters on addressing this issue. The Mythical Man-Month chapter is the most famous of these, it essentially says the enticing idea of throwing more people at a problem will speed up delivery is wrong. In some cases this is trivially true – you may have seen the example from the book that two women do not produce a baby in 4.5 months rather than 9 months for a single woman. The reason increasing team numbers for software development similarly fails is the cost in time of effective communication between more people, and the cost in time of onboarding new people. Despite our knowledge we still routinely under-estimate programming tasks, largely through mis-placed optimism.

As mentioned above, The Mythical Man-Month is quite dated. The anachronisms come in several forms, there is the excitement over computer text-editing systems – a revelation at the time of OS/360 was being developed. There is a whole chapter devoted to memory/storage usage which I am pretty sure is no longer a concern except in a few niche cases. There is quite a lot of discussion of batch versus time share systems, from a time when there were one or maybe two computers in a building rather than one on every desk, even one in every pocket. There are role anachronisms, where a team has two secretaries and a "Program Clerk" whose role it is to type stuff into the computer!

There are some places where Brooks describes practices which sound quite modern but differ slightly differently to the current sense. So "architecture" in his parlance is more about interface design than "architecture" as we would describe it now. There is some pair-like programming but it has a leader and a follower rather than equals. Agile is mentioned but not in the modern sense.

I was interested to read Brooks disdain of flowcharts. I remember learning about these – including proper stencils from my father – a programmer trained in the early sixties. Brooks argument is that the flowchart is useful for programming in low-level languages like assembler but not useful for high level languages – particularly those using the "structured programming" approach which was new at the time. Structured programming replaces the GOTO statements found in earlier languages with blocks of code executed on if – then – else conditions and similar.

In a chapter entitled Plan to throw one away Brooks talks about the inevitability of the first iteration of a product being thrown away to be replaced by a better thought out version although he caveats this a little by allowing for progressive replacement. He notes that maintenance costs can be 40% of original cost and each new version fixing bugs has a 20% chance of introducing new bugs. This means the progressive replacement approach is a losing game.

In some ways this book is depressing, nearly 50 years after it was written software projects are still being delivered late with great regularity. On a more positive note I believe that the widespread availability of web APIs and online module libraries (such as PyPI for Python) can produce the sort of large uptick in programmer productivity that Brooks’ felt was out of reach. Perhaps this will not be seen as a productivity boost since it simply means the systems we aim to build are more complex and the number of lines of code measure of code does not capture the complexity of external libraries. The consistent user interfaces provided by Mac OS and Windows are also something Brooks was looking for in his original publication.

Is The Mythical-Man Month still worth reading? I’d say a qualified "yes", the issues it describes are still pertinent and it draws on quantitative research about teams of software developers which I believe will still be broadly relevant. It is a relatively short, easy to read, book. It gives a glimpse into the history of computing. On the downside, much of the incidental detail is so far out of date to be distracting.

Book review: The Earth Transformed by Peter Frankopan

frankopanIt is rare that I am menaced by the sheer size of a book but The Earth Transformed by Peter Frankopan has done this to a degree. The Silk Roads, by the same author is similarly massive. So in a break from my usual habit I am going to review as I read.

The book is about the interplay of climate and humanity, and how humanity impacts the environment with an attempt to cover history across the world rather than focussing on Western Europe.

The extensive footnotes for this book are found in a separate downloadable pdf.

0 – Introduction – Frankopan is a year younger than me – born in 1971, and his early memories were shaped by news reports of acid rain, the fear of nuclear winter and Chernobyl – all stark demonstrations of man’s potential impact on the environment.

1 – The World from the Dawn of Time(4.5bn-7m BC) – The earth’s environment has always been changing, in deep time there was a much lower concentration of oxygen in the atmosphere. Those animals we see around us are the result of evolution through multiple cataclysmic environmental events.

2 – On the origins of our species (7m BC-12,000BC) – Climate change in central Africa and growing social groups led to speciation of the hominid group. We started large scale manipulation of the environment – managing forests with fire – 65,000 years ago.

3 – Human interactions with Ecologies (c.12000-c.3500BC) – End of the Younger Dryas and the start of the Holocene is a key point for civilisations, the climate becomes more benign and stable and larger settlements start to grow.

4 – The first cities and trade networks (c3500-c2500 BC) – the first cities are founded, and arguably the first anthropogenic climate change takes place. With cities came hierarchies, ownership and vulnerability to shocks and disease.

5 – On the risks of living beyond one’s means (2500BC-c.2200BC) – One such shock is the great drought of 2200BC, often seen as a global phenomena but actually rather complicated with different regional effects and an impact which was perhaps most obvious on the ruling class.

6 – The first age of connectivity (c.2200-c.800BC) – the environment provides resources unevenly, and so trade is necessary as societies become more sophisticated, these trade networks lead to interdependence so when one society falls others are impacted. The trade is not just in goods but also in ideas.

7 – Regarding Nature and the Divine (c1700-c.300BC) – Religions which we still see today arose several hundred years BC, and many of them made references to the environment. The ruler was often an intermediary to the gods/control of the weather – rain being particularly important. Even in this time there were exhortations to preserve the environment.

8 – The Steppe Frontier and Formation of Empires (c.1700-c.300BC) – the Eurasian steppes provided a catalyst for the growth of empires in the neighbouring region, alongside the domestication of the horse in about 3000BC. This combination provided rapid transport, and the flatness of the terrain made expansion easy. There is also an interplay between nomadic and pastoral peoples.

9 – The Roman Warm Period (c.300BC-AD c.500) – the Roman Empire grew at a time of benign and stable climatic conditions – and fell when those climatic conditions changed. Contemporary writers noted the pollution in Rome and other big cities. We can see the lead of the Roman Empire in Greenland ice cores.

10 – The Crisis of Late Antiquity (AD c.500-c.600) – the decades from 530AD saw multiple volcanic eruptions leading to global cooling, food shortages, and the rise of disease (the Justinian plague) and the fall of empires.

11 – The Golden Age of Empire (c.600-c.900) – the Prophet Mohammad’s agreement with the ruling elite in Mecca in 628AD provided an Arab identity that grew to an Empire stretching across North Africa and into Spain. Trade grows with sub-Saharan Africa. These patterns are replicated in the Americas and the Far East. Literacy grew in the eighth century with the introduction of paper from China. Empires started to decline in the 9th century as another warmer drier period started.

12 – The Medieval Warm Period (c.900-c.1250) – the Medieval Warm Period was both warm, and stable with unusually low levels of volcanic activity. During this time there was a large growth in global population, and Northern Europe saw significant growth. This growth was a result of improvements in crops and technology, as well as the benign climate.

13 – Disease and the formation of a New World (c.1250-c.1450) – the 13th century saw the rise of the Mongol empire, under Genghis Khan, stimulated by wetting weather in the steppe leading to more productive pasture when other areas were suffering drought. But the wet weather and the extensive trade networks of the Empire led to the rise of Black Death. Interesting parallels between post-Plague and post-1918 influenza Europe – the roaring twenties.

14 – On the expansion of Ecological Horizons (c.1400-c.1500) – the 14th and 15th century saw the fall of some of those empires that rose during the earlier more benign and stable weather, more driven by the instability of large empires than by climate change. It also saw the European "exploration" of the world and the large scale transport of plant and animal species across the world.

15 – The Fusion of the Old and the New Worlds (c.1500-c.1700) – the European "discovery" of the New World introduced a massive migration of flora and fauna around the world, potatoes, tomatoes,chillies from the New World to the Old. Pigs, sheep, goats and cattle from the Old to the New.

16 – On the exploitation of Nature and People (c.1650-c.1750) – the new sugar, tobacco and cotton industries required a large workforce, resistant to malaria, and Africans fitted the bill – this chapter to about slavery.

17 – The Little Ice Age (c.1550-c.1800) – the Little Ice Age has long been known but its magnitude was quite variable around the world, many things have been ascribed to the Little Ice Age but connections and causality are tenuous. The 17th century saw significant developments in military technology and spending on professional armies in Europe. There was also a large rise in urbanisation. Variable weather, uncertain crops hit some countries hard.

18 – Concerning Great and Little Divergences (c.1600-c.1800) – 1600-1800 was the period in which the economies of Europe diverged from those of Asia and Africa, and in Europe the North pulled away from the South. The introduction of the potato to Europe was important, as was maize and manioc (cassava) to Africa.

19 – Industry, extraction and the Natural World (c.1800-c.1870) – markets became truly global with wheat from North America cheaper to ship from Canada to Liverpool than from Dublin to Liverpool. Colonialism was at its height with Britain leading the world and the Americans expelling indigenous people from their own lands.

20 – The Age of Turbulence (c.1870-c.1920) – new resources became ripe for exploitation like rubber, guano and tin. Industrialisation proceeded apace. Concerns about climate began, and the Carrington Event and the Krakatoa eruption started scientists thinking about global impacts. Global pandemics made an appearance for both people and animals.

21 – Fashioning New Utopias (c.1920-c.1950) – the middle years of the 20th century saw a new wave of exploitation with oil, copper, uranium and more recently lithium becoming important resources. Colonialism receded but was replaced by corporate and government interference in states. In the Soviet Union ecological damage, and great human upheaval was driven by the dash to modernise but in a communist rather than capitalist framework.

22 – Reshaping the Global Environment (the mid-Twentieth Century) – the USSR and the USA started large scale environmental modification projects, see Teller’s proposals to use nuclear explosions to change just about anything.

23 – The Sharpening of Anxieties (c.1960-c.1990) – in the sixties the USA and USSR got heavily into weather modification, and the Americans into Agent Orange in Vietnam. The USA programme was conducted in deep secrecy, and when it was revealed there was an outcry which lead to a treaty banning such environmental modification. This led to a wider thaw of Cold War interactions.

24 – On the edge of Ecological Limits (c.1990-today) – the 1990s saw the fall of the Soviet Union and the rise of Industrial China. It also saw the discussions over climate change heating up.

25 – Conclusions – Frankopan’s conclusion is rather gloomy, he highlights how we are failing to act on climate change but then points we may suffer worse consequences from volcanic activity, or an asteroid strike!

There are themes across the whole book, in the environment we see periods of stable climate interspersed by periods of change – particularly driven by volcanic eruptions. From the human side we see the growing scale of civilisations, larger civilisations with more connections are more vulnerable to instability and the fall of other civilisations. We see ever increasing urbanisation and exploitation of the environment at ever greater scale.

Although initially intimidating, I found The Earth Transformed rather readable – perhaps because I saw each chapter as a separate essay.