Author's posts
Apr 08 2019
Book review: Empires of Knowledge by Paula Findlen
My next review is on Empires of Knowledge: Scientific Networks in the Early Modern World edited by Paula Findlen. Here I find myself venturing a little further into academic history of science than I am entirely comfortable with!
Empires of Knowledge is a collection of essays. Its focus is on networks, and it was stimulated by Stanford’s project on mapping the Republic of Letters. The introduction cites Francis Bacon’s New Atlantis, inspiration for the Royal Society but Findlen focuses on the network which brings the knowledge of the world to Bensalem (the location of this fictional Atlantis).
The first chapter is by Robert Morrison, entitled A scholarly intermediary between the Ottoman Empire and Renaissance Europe. It concerns Copernicus and how he potentially was exposed to Arab astronomers whilst at Padua University. More widely it talks about diffusion mechanisms from the Ottoman Empire through Jewish intermediaries to Europe. I felt it could have done with some lists of actors, and network diagrams. I suspect this is why I’m not a historian.
The second chapter is by Findlen and concerns the Jesuits and their network starting in about mid-16th century. The Jesuits saw scientific knowledge as a supplement to their missionary work. This worked two ways, sharing knowledge from Western Europe to the far flung places they visited was a benefit in their missionary work but they also saw collecting new scientific knowledge and bringing back to Rome as important too. The chapter also talks about some of the travails of trying to coordinate observations across large distances with sometimes inexpert collaborators. The simple passage of a letter from Japan to Europe could take 3 or 4 years. “Scientists” outside the Jesuits saw the potential of this organisation for gathering knowledge. It struck me that the Jesuits rose before New Atlantis was written and before the Royal Society and the Academie des Science in France were founded, these could be seen as secular equivalents.
The third chapter continues the Jesuit theme discussing the Ignatian Tree by Marcelo Aranda, an illustration in Athanasius Kircher’s book “The Great Art of Light and Shadow” which showed the 466 missions of the Jesuit church in 1646 as a tree. Also included were sundials which showed their location as determined by lunar eclipse measurements – a method for finding the longitude but only relevant for fixed locations. Determining the date of Easter was an astronomical problem which had been partly resolved by reform of the calendar but in the 17th century there was some risk of celebrating on the wrong day due to the effect of time zones.
Next up is a chapter by Carol Pal on Samuel Hartlib, called The Early Modern Information Factory: How Samuel Hartlib turned correspondence into knowledge. Hartlib was active in the years just before the Royal Society was founded and kept an expansive correspondence network. He republished within that network but also made work available in print (sometimes to the ire of his correspondents). He left approximately 5000 letters in his archive currently at the University of Sheffield and it is likely that amount is doubled if letters from him in other archives are considered. This seems to be typical of the size of the correspondence of such actors. In a time before scientific journals were published his imprimatur was seen as a sign of quality. The chapter also discusses how such men usually employed scribes to keep up with the level of correspondence, in the absence of photocopiers or word processors.
There’s a certain repetitiveness in my paragraphs, this next one is on the chapter by Iordan Avramov on “Letters and questionnaires: The correspondence of Henry Oldenburg and the early Royal Society of London’s Inquiries for Natural History”! Inquiries for Natural History were essentially surveys containing questions on all manner of topics sent out to correspondents. These were used to elicit information, their consistency allowed for information to be verified and monitored over time, and their very existence provided correspondents with a framework in which to reply – they were not faced with a blank page. The Inquiries also had the function of expanding Oldenburg’s network. He could send out a questionnaire to one of his existing correspondents and ask that they forward it on to someone else if they could not reply.
Ingenuous investigators by Ivano Dal Prete, a vignette on the activities of Antonio Vallisneri (1661-1730) who was a member of the Republic of Letters but corresponded mainly with local contacts in Northern Italy. The point Dal Prete is making here is that although distant lands get the headlines, the Republic of Letters was fractal, what was visible on a global scale was also visible locally. In the late 17th century even Europe was to some degree terra incognita. Del Prate reports that Vallisneri never visited a local (17 miles away) fossil location, the travel was hard in the mountainous area and the natives were hostile.
Corresponding in war and peace by Elise Lipkowitz covers the communications of Joseph Banks and Charles Blagdon during the Peace of Amiens in 1812/13, a brief period in which France and England were not fully at war. This includes some numerical work the volume of transactions. The Peace was fairly tense and the character of the correspondence is cagey compared to earlier periods. Much of the correspondence is between Banks and Blagdon, who was in Paris for the whole of the Peace.
Giant bones and the Taunton stone by Lydia Barnett is about the reception in London by the Royal Society of communications from Cotton Mather in 1712 regarding fossil bones, now believed to be of mastadons, found in New York state and the “Taunton Stone” an inscribed stone discovered in Massachusetts. Mather spent much space in his reports analysing the fossils to a cool reception by the Royal Society – they were much more interested in getting hold of the specimens for their own inspection and interpretation. The Taunton Stone, on which Mather had written much less, raised much more interest. Illustrations (although poor) allowed them to make their own interpretations, and gave access to a history of North America. This was to be used to rationalise the colonization of the area, and the persecution of the native Americans.
The tarot of Yu the great by Alexander Statman reports on investigations into China as the source of all ancient knowledge following an appreciation of the length of its recorded history.
Spaces of circulation and empires of knowledge by Kapil Raj talks about the importance of local knowledge, and local experts in India. Both in William Jones work on comparative linguistics and also James Rennell’s mapping of India. Raj prefers to talk about “spaces of circulation” rather than networks. This seems to be based on an assumption that links in a network must either exist or not exist, my more mathematical view of networks is that links can have weights which may indicate distance or frequency of contact, or any number of attributes.
Recentering centres of calculation by Matthew Sargent continues this theme with a discussion of Van Rheede’s Hortus Malabaricus, a volume on the plants of the Far East. It highlights the varied loci of activity, the book was written mainly in the Far East but published in Amsterdam. Plant samples, and drawings of plants could circulate, travelling the networks of knowledge, without carrying with them the context in which they were collected or the native uses of a plant.
The Atlantic World Medical Complex by Londa Schiebinger traces the path of “bois fer” in a treatment for yaws, a tropical infection. The story brings together medicine as practised in Europe, Africa and the Americas and the difficulties in tracing the contributions made by slaves and native Americans given their position. It also highlights how difficult it can be to be sure of the identity of plants such as “bois fer” at such great separation in time – particularly when the participants at the time were not clear.
The final chapter is Semedo’s Sixteen Secrets by Benjamin Breen, this refers to the medical works of João Curvo Semedo (1635-1719), a Portuguese physician. He collected the elements of medical preparations from around the world in particular those areas which had been under Portuguese writings. The interesting side to his writing is that although much of the material he recommended was fro outside Europe, the authorities he cited for their use were Western European.
The book finishes with epilogues by three different authors who do something similar to what I have done here. The format of the book, a set of 20 page chapters, helped me along. Each presents a single thesis, and if I didn’t get along with the author’s style the next chapter came up soon enough. I’m glad I read it but I’m going for something a bit easier next!
Mar 29 2019
Book review: justinguitar.com Intermediate Method by Justin Sandercoe
It is possibly inevitable that my guitar playing has leaked into my book reviewing, or that time I should have spent practicing has gone into reading books, or buying gadgets. So far I have been well-behaved on the guitar buying front, my guitar count is still at one.
However, I have bought a Boss Katana 50 amplifier which counts as saving money since it simulates other amplifiers! As well as 5 amplifier models it allows for 3 effects to be chained together to such as reverb, chorus and overdrive. Justinguitar.com has a whole section on the amplifier (link), this includes downloadable settings which if you’re playing correctly will give you the same tone as Justin and the original track. Any differences in sound will be down to your skill.
But back to the next book, justinguitar.com Intermediate Method by Justin Sandercoe is the follow up to the Beginner’s Course I reviewed previously. I reviewed the Beginner’s Method when I’d worked most of my way through it, this one I’m reviewing after just reading it and trying out a few of the new things.
The Intermediate Course contains five stages in contrast to the nine in the beginners stage, it finishes with a section on different improvisation styles including jazz and fingerstyle playing. The stages tend to develop ideas in previous stages rather than each stage representing a new area. Four months after I started playing it is probably a bit soon for me to be working seriously on this course, although I have a good memory for chord shapes and the minor pentatonic scale my playing is really slow which I think will only be fixed by practice. I could do with learning some more songs too. Justin pitches this very much as an optional course, the Beginner’ Course should leave you competent to play a wide range of tunes.
Barre chords were introduced towards the end of the Beginner’s Course, in this course they are expanded and developed further — indeed barre chords are the main chord work of the book. The beginner’s course just looked at the Major E-shape barre-chord, here we meet the variants of the E-shape (minor, dominant 7th and minor 7th), as well as other shapes (the A-shape and the diminished/half-diminished). One of my achievements playing guitar is a fairly good barre –gained by practicing bits of Creep by Radiohead excessively – it isn’t yet entirely useful since I can’t change very quickly.There are still some of the one minute chord change exercises which I found really useful in the beginner course.
A new feature of this course is an introduction to standard musical notation. TAB notation works very well for guitarists since it tells you where to put your fingers but it doesn’t provide a visible sign of the rise and fall of a melody also other musicians don’t speak TAB.
The beginner’s course introduced the minor pentatonic scale, here we learn the major scale, the blues scale and a hybrid scale. The importance of scales is that they provide a basis for improvisation.
The intermediate course also covers some more advanced techniques including note bending and hammer on/flick off. This is handy because any cursory glance at guitar tutorials on YouTube will show tutors using these techniques fairly casually. As for the beginners book, Intermediate Course works best in combination with the video tutorials on the justinguitar.com website (which are free). I read the Blues material but the website pulls it together more clearly than the book and certain technical skills are very hard to learn off a page. nI particular the online course talks very clearly about using licks (short runs of individual notes) as “words” in a Blues language.
Alongside the course books there are also Songbooks, I have the Beginners Songbook and the Rock Songbook. These complete the online videos well, provided a record of chords and TABs for what can be complex songs.
I should probably review my “learning journey” at this point, I think the way forward here is to pick a few songs and learn them properly, maybe making a recording. Ideally these should focus on improving particular skills. So far I’ve learned riffs from a few songs – Seven Nation Army, Smoke on the Water, Teenage Kicks, Creep but not really the whole thing. The only exceptions to this are Link Wray’s Rumble, which is pretty simple and I’ve been practicing a 12-bar blues which varies from the version Justin teaches with an intro and an “outro”.
Although I’m not ready to work through this book systematically I’m glad I got it now.
Mar 20 2019
Book review: JavaScript Patterns by Stoyan Stefanov
More technology related reviewing next, JavaScript Patterns by Stoyan Stefanov. This is part of my continuing effort to learn JavaScript.
For me this isn’t a question of learning the nuts and bolts of a language but rather one of learning to use it fluently and idiomatically.
I thought this book might be in the spirit of the original “Gang of four” design patterns, but although it mentions these design patterns it is more generally about good style in JavaScript. The book is divided into eight chapters including an introduction.
The first substantive chapter on “essentials” talks mainly about variable declarations and some odds and ends. The most interesting one of these was the behaviour of parseInt which converts a string into an integer. Except if the string starts with a zero, as ISO8601 days and months would, then parseInt assumes it is a number in base 8 (octal)!! I can foresee many long hours trying to debug this problem without this forewarning. This chapter also discusses the importance of coding style conventions.
The second chapter talks about literals and constructors. It strikes me that much of this is about unwinding the behaviour of developers more used to statically-typed languages. The JavaScript way is to create objects by example, rather than take a class definition and derive from that. Although in the permissive manner of many languages it will let you do it either way. Since this book was written JavaScript has gained a “class” keyword which allows you to construct classes as you might in Java or C#.
Next up are functions, JavaScript shares Python’s view of functions as objects, allowing them to be passed as arguments. This is particularly important in JavaScript to provide “callback” functionality which is very useful when doing asynchronous programming. I learn here that the “currying” of function is named after Haskell Curry, who also has a whole language named for him. I always feel when passing functions as arguments that I am fiddling with the underpinnings of reality – it can make debugger difficult too.
I found the idea of functions that redefine themselves on first run interesting, it sounds useful and dangerous at the same time.
The chapter on object creation patterns is all about introducing module like behaviour and namespacing to JavaScript which at the time the book was written were not part of the language. Also covered are making private properties by hiding them in function closures.
The code reuse chapter is largely about patterns for achieving inheritance-like behaviour. This introduces a range of patterns which build up to almost exactly replicate class-based inheritance.
Finally we meet some of the classic Gang of Four design patterns. Some of these patterns, such as the iterator pattern, have been absorbed entirely into the core of languages like Python and more recently, JavaScript. The Observer patterns is implemented in web browsers as events, which are ubiquitous. Perhaps the lesson of this chapter is that some of the Gang of Four patterns have been absorbed into the core of languages, we use them almost without thinking. The Strategy Pattern, which determines algorithms at runtime, fits well with the chapter on functions and JavaScript’s view of functions as objects.
The book finishes with a chapter on patterns for the Document Object Model, or rather JavaScript in the browser. It includes well-known advice such as not testing for browser type but rather testing for functionality. It also has advice on optimising JavaScript for deployment.
There is minimal mention of specific tools or libraries in this regard, although Yahoo’s YUI library is mentioned a few times – Stefanov has worked on this library so this is unsurprising, and not unreasonable.
This book had more of the air of Douglas Crockfords’ JavaScript: The Good Parts than a book on patterns which was what I was expecting. Alternatively perhaps “JavaScript for users of statically-typed languages”, as such it probably works pretty well for Python programmers too although modules have always been built-in to Python and there is a “class” keyword for specifying classes.
JavaScript Patterns is readable though, I’m glad I picked it up.
Feb 18 2019
Book review: The Birth of Loud by Ian S. Port
More guitars next with The Birth of Loud by Ian S. Port, this is the story of Leo Fender, Les Paul and assorted musicians and other guitar and amplifier makers.
As a recently started electric guitar player, and long time listener of guitar based rock, this is right up my street. It is most likely that any electric guitarists reading this will have a guitar with either the Les Paul or Fender name on it, or like me, have a cheaper variant of something like the Fender Stratocaster.
People started to attach amplifiers to guitars in the 1930s, the problem with a guitar is that it is not very loud when compared to other instruments. The problem with naive amplification of an acoustic guitar is feedback. The body of the guitar is a natural amplifier, it resonates at particular frequencies. Couple it with an electric amplifier and once you get above a certain volume the electric amplifier makes the body of the guitar vibrate, which it then re-amplifies making a horrible squealing noise (when done accidently). I know all this because feedback is an important part of undergraduate physics courses! Solid-bodied guitars avoid this problem by having no natural amplification.
Les Paul was a musician who experimented with instruments, guitars in particular and recording technology. He had a string of hits in the 1950s with his second wife, Mary Ford. He gave his name to the first solid body guitar from the Gibson company. More importantly he demonstrated what the new electric guitar could do. In terms of guitar hardware Les Paul feels somewhat incidental, as a musician he experimented with his guitars and recording equipment but he had very little involvement with Gibson and the guitar that bore his name.
Leo Fender on the other hand was a technician, an expert with design and electronics. He collaborated closely with musicians to bring them the instruments and amplifiers they wanted but he did not play music himself.
Both men had produced solid-body guitars in the 1940s which were pretty close to fence posts with strings and pickups attached. Such devices worked as guitars but ergonomically and aesthetically they were poor. They weren’t alone though, Paul Bigsby made what is arguably the first practical solid-body guitar and lap steel guitars with solid bodies had also been around for a number of years
Fender’s first solid-body commercial guitar was the Telecaster launched in 1950, renamed pretty much at birth from Broadcaster because Gretsch had a drum kit called the Broadkaster and threatened to sue. This was followed by the Precision Bass (1951) whose design is also apparent in the Stratocaster which came later (1954). These instruments had somewhat prolonged and difficult births. Fender was keen to perfect them, and whilst his sales team led by Don Randall went out and sold them there were frequently long waiting times in the early days and designs were finalised and production ramped up. The early Fender factory sounded rather chaotic, and there were problems with product quality. The Gibson Les Paul was first released in 1952.
It strikes me that the Les Paul / Leo Fender rivalry is actually relatively unimportant. Les Paul was one a a range of musicians whose demands drove the development of electric guitars and amplifiers. If Fender had rivals it was with Gibson, Rickenbacker and other guitar companies. They vied for the imprimatur of the popular artists of the time, Les Paul initially but then musicians like the Beatles, Eric Clapton, and Jimi Hendrix.
Carol Kaye is also introduced, I first came across her in a BBC4 TV programme Guitar, drum and bass. She appeared as a bass player on an enormous number of hits from the sixties, playing as a highly sought after session musician at a time when you get the impression that songwriters didn’t bother writing a bass part but left it to the session player to come up with something on the spot. The link with Fender is the Precision Bass she used.
I had fun hunting down some of the tracks mentioned in the book, Dickie Dale and the Del-Tones – Misirlou is a particular favourite which I’m trying to learn to play. Fender’s contribution to Dickie Dale were robust high watt amplifiers with spring reverb which made the surfer rock sound. And if you want to hear Les Paul then Lover published in 1948 is an important milestone. It is like nothing else that went before.
The bulk of the story ends at the close of the sixties with an epilogue describing what happened to everybody in the aftermath. Both Fender and Gibson became parts of larger organisations, CBS and Norlin respectively. They both seemed to have suffered from corporate neglect, leading to poor quality products, until they experienced a revival in the late eighties following sales to private investors. Gibson recently filed for bankruptcy whilst Fender seems to have thrived.
The book is comprised of many short chapters with long titles. It’s a very easy read, and a nice story. There’s a lot of the descriptive prose of imagined meetings and scenes that I associate with this style of journalistic story telling. It is well referenced, and the final sections of the book provide ample pointers to those who wish to learn more about the history of the electric guitar.
Feb 13 2019
Book review: Eloquent Javascript by Marijn Haverbeke
This is a review of a more technical book, Eloquent JavaScript by Marijn Haverbeke. The book has the appearance of being about learning programming from scratch but I suspect anyone using it as such would struggle. However, if you have some background in programming it is something of a delight.
The book is divided into three parts, on JavaScript itself, the web browser, and node.js – where JavaScript can run without a browser. Along with a description of the core features of the language there are some significant examples, elaborated over full chapters.
These are quite engaging although a bit off the wall. One concerns were-squirrels, another crows, making a pixel art editor and a platform game seem rather tame in comparison. These examples show you how you should use language features, rather than just giving you a pile of bricks from which to construct your building.
JavaScript has evolved since it was first introduced in 1995 with a major update in 2015 including modules, promises, and generators amongst other things – Haverbeke covers these (highlighting what is new). This is useful to know since I started programming in JavaScript a while back where I observed, for example, that arrays were looped over by index, but now I find I no longer need to do this.
Coming to JavaScript from another language I find the event driven, asynchronous features of the language most difficult to understand, and the older JavaScript way of using callbacks to handle these features produces code which is difficult to read – certainly to my eyes. Promises offer a clearer way of implementing asynchronous code.
Importing modules still feels like an area undergoing much needed development. Originally JavaScript had no built-in functionality to handle modules, but this gap was filled with third party libraries. Now module management has been built into the language but a lot of legacy code uses incompatible third party libraries, and node.js doesn’t fully support the new module features (as far as I can tell). Haverbeke mentions how some of these difficulties are handled with the toolchain associated with JavaScript.
JavaScript seems to have some pretty wacky features: month numbers start at zero, exactly like absolutely no system of date description I have ever seen. The case-switch syntax seems really odd, although I understand it is inherited from C/Java like languages. JavaScript’s try/catch functionality is indiscriminate by default which is considered bad style in Python although there are workarounds for this.
Although I’ve been working with browsers and JavaScript for the last 6 years or so, I still learnt new things about how browsers work. Such as the different applications of the onclick attribute and addEventListener, the former only allows for one listener per element.
One of the examples uses “long polling” to demonstrate how to update a web page at regular intervals, or when the content changes due to actions elsewhere.
The material on node.js was new to me. I’m aware I should probably be writing tests for my JavaScript code, and node.js is the easier way of doing this. node.js is based on the Chrome V8 JavaScript engine with extensions for handling Input/Output amongst other things, features which belong on the server side rather than the browser, client side.
I quite like that, in common with Python, JavaScript uses convention to make class methods private. Basically programmers agree not to use a method if it’s name starts with an underscore!
Python (my favoured language) and JavaScript both have the air of being little things designed to smooth your path rather than serious languages for serious projects like C, C++, Java, Fortran, and C#. However, Python is arguably the most important language in data science applications and many of the big internet companies have significant investment in Python code. Whilst JavaScript is arguably the most important language in the world at the moment, almost everything that happens in a web browser has JavaScript behind it.
The book finishes with a chapter on performance, I found this really interesting. JavaScript engines have a multi-stage approach to compiling JavaScript into executable code. It starts with a quick and dirty compile, but then returns to do optimisations if code is run frequently. Somewhat disconcertingly different JavaScript engines handle the programmers attempts at optimisation differently i.e. you can optimise your code for Google Chrome only to discover it runs more slowly in Microsoft Edge.
There’s no description of the JavaScript dev environment or tool chain in Eloquent JavaScript. Although I missed this it is probably best not to include in a book such as this – tools change rapidly and what works for one developer doesn’t work for another both in aesthetic and practical terms.
I think this is one of the most enjoyable programming books I’ve read. It covers the core features of the language concisely but then goes on to illustrate how to use those features. It also discusses the key environments in which JavaScript runs.