Archive for category Books

Bo Hellström and copyright protection

I have at my desk an interesting and rare book: “The Israelites’ Crossing of the Red Sea”, by Professor B. Hellström, published in Stockholm in 1950. Bo Hellstrom was a professor of hydraulics in Stockholm, Sweden from 1914-1955. From Ian Larsen’s paper:

In 1923 he [B. Hellstrom] receives a grant to study wind driven seiches in lakes, a subject that he will follow on and off for a long time to come. In 1924 he suggest that it was a well timed wind-generated seiche that was to allow Moses and his tribe to cross the Red Sea and subsequently to drown Faraoh and his army. The reader of the Bible will see that Bo Hellstrom’s theory is well covered in the actual text. Hollywood on the other hand got it completely wrong as usual. (Larsen 2003)

A remarkable thing about this particular book is that it contains a hand-written dedication on the inner page by Hellstrom himself. “Professor A.E. Bretting, with best wishes for Christmas and the coming year, from Bo Hellstrom”. He touched the same page that I am touching! I like that.

The study of physical laws underlying the parting of the Red Sea has a long history. The Jewish historian Flavius Josephus in 94 AD urged people not to wonder if the strange narration in Exodus 14 “happened of its own accord”. But as any parent knows, as soon as you tell kids not to do something, they go ahead and do it! Generations of scientists have ignored Josephus’ advice, preferring to follow Psalm 111:2 instead. Samuel Bartlett in 1879 suggested that Moses might have taken advantage of wind-lowered water levels, crossing on a shallow ford southeast of modern Suez. Sir Alexander Tulloch actually observed a wind setdown event on Lake Manzala, which led him to conclude in 1896 that the famous passage took place between the Great Bitter Lake and Lake Timsah.

Professor Hellstrom brought the science of hydraulics to bear on the Exodus problem in 1924. In his lab he constructed a wind tunnel over a trough containing water, roughly modeling the topography of the northern reaches of the Gulf of Suez. He used an underwater sill to provide a dry crossing with water on both sides at Serapeum, the same site suggested by Tulloch. His book shows maps and detailed diagrams and photos of the water-level gauges that he built on the side of his wave tank to measure the water surface accurately. Bo Hellstrom was quite the experimentalist! His diagrams look a lot like mine.

Thus, by means of this laboratory experiment, which admittedly is only approximate, proof was obtained of the fact that it may very well be conceived that the wind uncovered the bottom of the Red Sea at Serapeum. It was possible by means of these experiments and exhaustive theoretical investigations to establish the natural laws which prevail. (Hellström 1950, p. 21)

So I have this fascinating book in my hands, and I would like to share Hellström’s scholarship with the rest of the world. As Dr. Frank J. Little, Jr. has stated, “Our purpose is to return Hellstrom’s Exodus hypothesis to the scientific community, plus quantify and update it in light of newly synthesized evidence.” How can I do that? Bartlett’s book is available through Google Books, and anyone can read it on-line. I had to get Hellstrom’s book through an Interlibrary Loan with California State University at Fresno. That’s a big difference in terms of ease of access! People will find and read Samuel Bartlett quicker and more often than Bo Hellstrom.

Samuel Bartlett died in 1898. His work is now in the public domain, and this is why Google can legally digitize his book and make it available on-line. Bo Manne Hellstrom died in 1967. Sweden has a copyright term of 70 years after the author’s death, so his copyright will not expire until the fair year 2037. And until then, “The Israelites’ Crossing of the Red Sea” will languish in Interlibrary Loan Land. Ick.

If Hellstrom’s book suddenly became an overnight sensation, and if scads of people were clamoring for it and paying thousands of dollars to obtain one of the rare copies, then the Royal Institute of Technology in Stockholm would take notice and starting printing a new edition of the book. They would make lots of money and send royalties to Hellstrom’s heirs, wherever they are now. That’s why copyrights endure long after an author’s death, and the system works well for people like Mark Twain and Walt Disney.

Unfortunately, the copyright system is not serving B. Hellström very well. His book contains scholarly and historical interest, but with all due respect, “The Israelites’ Crossing of the Red Sea” will never be a best-seller like “Huckleberry Finn”. Nor does anyone expect that – scholars are valued for their intellectual contributions, not necessarily for their popularity with the general public. Bo Hellstrom’s work will remain locked up for another 26 years where only a few determined scholars will read it; unlike his predecessor Bartlett, who can be read by any high school student who enters the right search string into Google.

Professor Hellstrom would have benefited from Open Access. It would have increased his scholarly impact. We would still be reading his work and he would get all the credit. Too bad the Open Access movement came too late for him.

Special thanks to Professor Ian Larsen of the Royal Institute of Technology in Stockholm for supplying additional information on Bo Hellström. Larsen adds, “A E Bretting was professor in Hydraulic Engineering in Copenhagen and retired around 1958.” I would love to know how Hellstrom’s book made its way from Copenhagen to Cal State Fresno, but I have enough historical mysteries for one lifetime already!


Bartlett, Samuel Colcord, 1879. From Egypt to Palestine: through Sinai, the wilderness and the south country. Harper, New York, New York, USA.

Drews, Carl, and Weiqing Han, 2010. Dynamics of Wind Setdown at Suez and the Eastern Nile Delta. PLoS ONE, 5(8): e12481. doi:10.1371/journal.pone.0012481

Drews, Carl, 2011. Could Wind Have Parted the Red Sea? Weatherwise, January-February 2011, 64, 30-35. doi:10.1080/00431672.2011.536122

Hellström, Bo, 1950. The Israelites’ Crossing of the Red Sea. The Institution of Hydraulics, The Royal Institute of Technology, Stockholm, Sweden. First published in the Swedish language in 1924.

Larsen, Ian, 2003. A La Recherce du Temps Perdu: The times of J Gust Richert and thereafter. Zentech Belgium, Brussels, Belgium.

Tulloch, Alexander Bruce, 1896. Passage of the Red Sea by the Israelites. Journal of the Transactions of the Victoria Institute (now Faith and Thought) 28, 267-280. The Victoria Institute, London, United Kingdom.

Tags: , , , , , , ,

Code Review and the King James Bible

I am a big fan of code review! Whether the software is written in Java, C++, Python, or (shudder!) Fortran, code review serves a number of important purposes in an organization that develops software. When I worked at we used a system of code review designed to produce high-quality code quickly. Here were the steps:

  1. When a developer thinks he/she is done with a single code module (one source code file), that developer calls for a code review. The broadcast e-mail and meeting invitation must go out no less than 48 hours before the scheduled review, so the other developers have at least 48 hours to look over the code before the meeting. You can schedule a code review for 3:00 pm on Thursday as long as you click on the Send button by 2:59 pm on Tuesday (and there were a few of those).
  2. The software developer can invite anyone they want to the review, but at least one participant must be at the Senior level. Go ahead and invite your friends! There was some worry about people only inviting people who would be favorable to them, but we quickly learned this principle: Friends don’t let friends write bad software. You are more likely to accept constructive criticism from your friends than from people you don’t get along with.
  3. A quorum is three people: the developer and two other software engineers, one of whom must be at the Senior level. The code review works better with about 4-5 people.
  4. The code file to review must be less than 1,000 lines long. Generally the other developers retrieve the code from the repository.
  5. The meeting will not last longer than 1 hour. If the code review runs overtime, the participants adjourn and re-schedule.
  6. The goal of the code review is to improve the code. All our jobs depend on producing and marketing high-quality software, and it is in everyone’s best interest for the code in the repository to work well and be easily maintained.
  7. Everyone is nervous at first about their work being reviewed, and for this reason there is a Moderator. The moderator makes sure everyone stays on track, watches out for criticism that is not helpful, and ensures that the experience is professionally positive for the developer. The moderator has the power to kick someone out of the meeting if they are being arrogant or derogatory. I never saw that happen, though – usually it is enough to remind someone that the goal of the code review is to improve the code.
  8. Everyone at the review sits around a table with a listing in front of them. The listing is printed with line numbers for easy reference. The developer begins with a brief explanation of the purpose of the code.
  9. The developer leads everyone else through the code, page by page, or subroutine by subroutine. Everything is fair game for improvement. The reviewers speak up in they have comments on a certain section. If not, the review moves on.
  10. It is great for less experienced programmers to attend! They can learn a lot from someone else’s code. Often they make very worthwhile contributions by requesting more extensive comments for some algorithm that is not clear. Sometimes you get people who just watch out for uniform spacing or lines longer than 80 characters. Those people contribute something positive to the process.
  11. Everyone looks for adherence to the coding standards.
  12. Sometimes design flaws are caught in a code review. The script has to sanitize input for web security. The code has to handle Unicode characters. Sometime a subroutine is just too long!
  13. Reviewers can suggest tests that might produce a failure, if they suspect a bug. The developer makes a note of those and will verify later that the software operates correctly, or fixes the bug if it does not.
  14. If extensive changes are requested, then another code review will be scheduled when the first round of changes are complete. This is rare. Even if there are lots of comments, usually the revisions take only a few days to complete.
  15. After the review: When the developer completes the requested changes to the software, he/she adds a note to the header comments of the file saying that the code was reviewed on that particular date by the following people (full names). Then the developer may check in the code, and move on to another file.

The developer under review gets completed feedback in 49 hours. I’m sure our loyal Funmurphys readers can add to this process and improve it. Tweak it for your organization. Remember that the primary purpose of code review is to improve the code. A secondary purpose is to provide on-the-job training for the more junior programmers. From time to time people will see a clever way of doing something, or suggest one, and notice code overlap that can be eliminated.

Those should be reasons enough for any professional software developer to conduct code reviews. But suppose you are out there thinking, “I’m a good engineer! I’ve written code for years, it’s well tested, and there are only a few minor bugs in my work. I’m good! I don’t need code review. It’s just a waste of my time.” Yeah, you’re kind of arrogant, but you have a right to be.

Here’s why you should request and schedule code reviews on your own code. Because someday, when you least expect it, someone else will come along and have to maintain or extend your code. And yeah, they won’t be as smart as you. They won’t understand your brilliance. They won’t take the time to read through your code and figure out how it’s carefully designed to work. What they will do is go to your boss and say the following: “This code that YourName wrote is dog poop! (but they won’t say ‘poop’)! I can’t follow it at all. This code has to be completely re-written!”

Then your boss will be faced with a dilemma. She knows you are a good software engineer and you write good code. She has not heard any problems with your code until now. But the new person is so insistent that your code is dog poop, that it has to be thrown out and re-written from scratch, and the new person uses lots of CAPITAL LETTERS and exclamation marks and derogatory language in his e-mail complaint. I have seen this happen. What should your boss do?

Your boss has to evaluate the complaint. Your boss has to examine the code you wrote with a fine-toothed comb, checking if you are correct or if the new guy has some validity to what he says. Your boss has to call a technical review at which your detractor will be the star witness. You can’t defend yourself very well since you have moved on to another part of the project. You’re under suspicion. Unless . . .

Unless there is a short section in the header saying the following: This code was reviewed on March 28, 2010 by the following people: Ashley Adams, Bob Biltmore, Charlie Chang, and Debbie Dumas. When your boss finds that comment in the code, her course of action is simple: “Sorry, Mr. New Guy, but this code was reviewed by the software development team and found to be acceptable. You can suggest some improvements, but we are not throwing it out and re-writing the whole thing from scratch. If you cannot understand some else’s code, we will send you back into circulation and hire someone who can.”

Yes, code reviews can be held to Cover Your Anatomy. It’s not a great reason to do them. If the good reasons above are not sufficient to urge you to do code reviews, perhaps this bad one will. Enough said.

Now let’s turn back the clock 400 years to post-Elizabethan England, during the reign of King James I. He decided to produce a new translation of the Bible, the Authorized Version that would bear his name. Alister McGrath has written a great book about this period, which you should stop reading this blog to go out and buy, then come back here. The book is “In the Beginning: The Story of the King James Bible and How it Changed a Nation, a Language, and a Culture” (2001). The translators worked in teams. On page 187 we read this account of the actual translation process:

The translation in King James’ time took an excellent way. That part of the Bible was given to him who was most excellent in such a tongue (as the Apocrypha to Andrew Downes), and then they met together, and one read the translation, the rest holding in their hands some Bible, either of the learned tongues, or French, Spanish, Italian, etc. If they found any fault, they spoke up; if not, he read on.

When I read this excerpt I laughed out loud. These guys are doing a code review! They used the same process 400 years ago to produce a good translation of the Bible that we use in modern times to produce good software! They all sat around a table and checked up on each other’s work. When the King James translators found a discrepancy, they worked together to resolve the problem That’s just what we do, too! I am sure that nobody at Smarttalk or any other software company set out to emulate the King James Bible scholars. But we have hit on the same process to produce a high-quality product.

This does not mean that the King James Bible is a perfect translation; the McGrath book documents a few errors that were corrected later. Another example is Hebrews 11:3 in the King James Version, which reads as follows: “Through faith we understand that the worlds were framed by the word of God, so that things which are seen were not made of things which do appear.” But the Greek word used for ‘worlds’ there is Aion (Strong’s Concordance G165), and should be translated into English as ‘eons’ or ‘ages’. God’s word of command caused huge spans of time to come to pass, as well as physical worlds. The KJV is not perfect. Nevertheless, if people are still using my code 400 years from now, my descendants should be very proud!

Maybe someday I will compare and contrast the process of code review with the peer review conducted by scientific journals.

Tags: , , , , , , , ,

Dark Watchmen Vs. The Architect of Fear

Is this the day? Is this the beginning of the end? There is no time to wonder. No time to ask why is it happening, why is it finally happening. There is time only for fear, for the piercing pain of panic. Do we pray? Or do we merely run now and pray later? Will there be a later? Or is this the day?

This is the opening narration for the original Outer Limits episode “The Architects of Fear” where a group of scientists fake an alien invasion in an attempt to forestall escalating international tensions and a potential nuclear holocaust. We took in the Dark Knight over the weekend and this quote could have opened the third act of the film where the Joker is threatening the Gotham City with widespread destruction.

The Dark Knight is a dark film about a city fighting a terrorist. it’s one of the grimmest movies I have seen in a while. It’s not as downbeat as “Seconds” but certainly the “Empire Strikes Back” may be the last mass market film to end on so low a note. It’s very well done but definitely a movie with adult themes.

Heath Ledger’s performance is chilling. His Joker reminded me of Lewis Black on a rant (who they should consider now that this will be Ledger’s last role). It becomes clear that the Joker is truly an agent of chaos, his real goal is for the citizens of Gotham City to lose their faith in orderly society (“the hidden conspiracy of goodwill”) and descend into anomie. I viewed It as a cautionary tale for any free society fighting terrorism.

“He who fights with monsters should look to it that he himself does not become a monster. And when you gaze long into an abyss, the abyss gazes also into you.”
Freidrich Nietzsche Aphorism 146

Batman is challenged to drop his own code of ethics and use whatever means necessary. But in spite of horrific provocation is able to follow his internal compass.

“Sed quis custodiet ipsos custodes?” Juvenal

Which is normally translated as “But who will guard the guardians?” and Alan Moore interpreted as “Who Watches the Watchmen?” (more on that in a moment). To locate the Joker Batman engages in a massive invasion of privacy, but does so in a way that he has no personal control over the information gathered or the mechanism he created, allowing it to be destroyed when it’s no longer needed. This is in the face of a villain who is killing any government official who tries to stand against him, and for good measure follows through on his threat to blow up a hospital.

Although I said it was a dark film about adult themes the boys both enjoyed it and we had a long discussion about civil liberty, and the difference between the police, the National Guard, and the Army. And the difference between the way that a free society fights criminals, affording them protection under the law, and enemy combatants who are committed to the destruction of a society.

“The mature man lives quietly, does good privately, takes responsibility for his actions, treats others with friendliness and courtesy, finds mischief boring and avoids it. Without the hidden conspiracy of goodwill, society would not endure an hour.”
Kenneth Rexroth in the “Introduction to Tolstoy’s The Kingdom of God Is Within You”

Ultimately, when confronted with the challenge to kill complete strangers or be killed themselves, Gotham’s citizens–even its criminals–refrain.

The previews included the new Watchmen movie, which looked outstanding. If you haven’t read the comic graphic novel, it’s an extremely dense and intricately plotted exploration justice, vigilantism, and what it means to be a hero. My personal preference would have been for a 12 episode miniseries, with each episode an hour to 90 minutes long to do Watchmen justice, but that’s probably harder to fund and monetize and it’s taken more than two decades to bring it to the screen as is. It will probably get redone in 30 years as a hypertext movie to do it justice.

Alan Moore was apparently not aware of the Outer Limits episode “Architects of Fear” when he wrote Watchmen, but became aware of it as he and Dave Gibbons were collaborating on it, inserting a reference to it in the last issue.

We watched the the “Architects of Fear” again tonight, and I was surprised and how scary it was and how poignant the concluding narration remains:

Scarecrows and magic and other fatal fears do not bring people closer together. There is no magic substitute for soft caring and hard work, for self-respect and mutual love. If we can learn this from the mistake these frightened men made, then their mistake will not have been merely grotesque, it would at least have been a lesson. A lesson, at last, to be learned.

Tags: ,

No Highway

I read Neville Shute’s No Highway a couple of weeks ago and really enjoyed it, so much that I even checked the movie made from it, No Highway In the Sky from the library and watched it last night. As per usual, the book was better than the movie.

A scientist (Theodore Honey) at the Royal Aircaft Establishment (RAE) at Farnborough has developed a theory about fatigue in light alloys and has obtained a test article to test his theory. Since the book was written in 1948, the theory is laughable now, but that itsn’t important. When Dr. Scott takes over the metalurgical section at the RAE, eventually he gets around to asking Dr. Honey what he’s working on. So when Dr. Honey explains he’s testing his new theory of fatigue and he’s using a Rutland Reindeer tail to do it with. Dr. Scott, clearly an engineer, instantly notices a detail that escaped Dr. Honey’s attention – the Rutland Reindeer is a brand new plane that has just become basis of trans-Atlantic travel for the national (and monopoly) airline BOAC. When Dr. Honey tells him that his theory predicts the tail will fail at 1440 flight hours (shades of the deHavilland Comet), the story really begins.

The story is straightforward and told without villains. Just the natural working of different organizations and their interests provide conflict. The biggest reason I liked the book was that it was about aviation engineers – and there’s no better 1-2 combo than that. Sadly, it’s a combination rarely seen in print or pictures. Since I’ve worked on a couple of different British projects, I had a ball reading about the RAE and Boscombe Down. I was also pleasantly surprised by how little aeronautical engineering has changed in 50 years. The same personality times, the same organizational types, right down to the manager who flips from the biggest doubter that something is a problem to being the champion of the solution.


Three Good Books: Replay, Day Watch, Creatures of Man

I took some time over the Thanksgiving holidays to read three good books

Replay by Ken Grimwood tells the story of Jeff Winston, a man re-living his life several times, meeting a woman who is doing the same thing. He knows the actions and their outcomes from each life and continues to make adjustments. It’s a novel about second chances–many second chances–and learning that there really aren’t any second chances. It’s a novel about middle age, opening as it does with the Jeff’s fatal heart attack at 48 (or 30H) and chronicling his coming to terms with regret and the need to make choices and move on. Daniel Shade reviewed Replay in 2001 on his Lost Books site:

First, life is full of endless happenings that we have little control over. We should live our lives with our eyes set upon the horizon and never look back; controlling those things we can and giving no second thought to those events out of our hands.

Second, given that we only have one life to live (Jeff is never sure he will replay again with each heart attack) we should live it to the fullest extent possible and with the least regret for our actions. Everybody makes mistakes; the point is not to dwell on them but to pick ourselves up and keep on going. Keep moving ahead.

Third, choices must be made – we cannot avoid them. The only failure is to live a life without risks.

The Creatures of Man by Howard L. Myers is a collection of short stories by a very prolific and very thought provoking author whose career was cut short by a heart attack at the age of 41 in 1971. I originally got it for one story “All Around the Universe” which was one of the first to detail the “admiration economy” (later popularized by Corrie Doctorow as whuffie) but started the book and was unable to put it down. It’s also available in the Baen Free Library (what a great idea) where you can read ithere.

Night Watch by Sergei Lukyanenko had been on my shelf for a while. I had rented the movie and then postponed reading it. The movie was wildly inventive but a little scattershot and hard to follow. The book has a number of very complex interacting plots. It’s something like watching a chess game where the White grandmaster has to allow his pieces the free will to do what they want and the Black grandmaster has to convince his pieces that a each move is what’s best for them.

It’s the first book that’s been translated in his four book “world of watches.” I am eagerly awating the English lanuage version of Day Watch, Twilght Watch, and Final Watch.

Here’s some good advice from novelist John Brunner, from his novel The Traveler In Black:

“But — but I counseled against this foolishness!” stammered Jacques.

“No,” corrected the one in black. “You did not counsel. You said: you are pig-headed fools not to see that I am absolutely, unalterably right while everybody else is wrong. And when they would not listen to such dogmatic bragging — as who would? — you washed your hands of them and wished them a dreadful doom.”

“Did I wish them any worse than they deserved?” Jacques was trying to keep up a front of bravado, but a whine had crept into his voice and he had to link his fingers to keep his hands from shaking.

“Discuss the matter with those who are coming to find you,” proposed the traveler sardonically. “Their conviction is different from yours. They hold that by making people disgusted with the views you subscribed to, you prevented rational thought from regaining its mastery of Ys. Where you should have reasoned, you flung insults; where you should have argued soberly and with purpose, you castigated honest men with doubts, calling them purblind idiots. This is what they say. Whether your belief or theirs constitutes the truth, I leave for you and them to riddle out.”

I first read this many hears ago when in high school or junior high and I still remember it. While I have fallen into the trap of flinging insults where I should have reasoned too many times, I do try to be a moderate extremist and use reason as much as my worse nature permits.

Tags: ,