August 22, 2004
Online Banking with Quicken for Mac. Why I don't give a damn about free checking.
One day towards the end of 2000 my wife finally lost her financial patience with me. As she threw a pile of bills and receipts at me she screamed "That's it! I'm never doing the accounts or paying the bills again. You never collect receipts, you never write a memo in the checkbook, and your work expenses are impossible to understand!" She then stormed out of the room. I was in no doubt that she meant it and she has remained free of the household accounting burden ever since. I unfortunately have not. It is true that until that day I had never balanced a checkbook in my life and habitually threw bank balances in the trash without even opening them - another contributing factor to my wife's rant. In fact the only time I ever knew my bank balance was when the ATM refused to dispense cash. So it was with great trepidation that I began my fiscally responsible life. I figured that as I had designed and built large financial software systems I ought to be able to use a small one. So after some research I selected Quicken as they had a large share of the market and had a version for Mac.
I have been using Quicken, on a Mac, for all our finances for four years now. I can monitor our financial activity at any level of detail. I can find any transactions in any account, and can create summary reports and graphs showing spending in various categories, for any time period. I can even calculate my net worth - a depressing activity! It takes between 15 and 30 minutes a week to maintain our accounts depending on the amount of financial activity that has occurred during the previous week.
In bringing our accounts under control I have come to realize that complete and accurate financial information is a powerful thing. We recently bought a house, and were able to calculate exactly what we could afford based on four years worth of data. Without Quicken we would have been guessing. Looking back over the past four years using Quicken I can now see that I have gone through several distinct phases. These phases are parts of an unconscious optimization process aimed at reducing the overall cost and effort involved in managing our finances. I did not plan this process it just became obvious once I had access to complete and accurate data. The result is that the banks get less of my money and I spend less time managing it. From the banks perspective financial management software like Quicken is a "bad thing" because customers who use it are less profitable. The following sections describe the optimization process that emerged and some of the pitfalls I encountered.
Stage 1 Account Setup
It took about three months to get everything setup. First I had to find out what accounts we had - quite a few as it turned out. As I discovered each account I set it up in Quicken. The actual setup was trivial but finding all the required information and getting my account "activated" so I could access it through Quicken took many phone calls to the customer support desks of each financial institution. Getting technical support from a bank is like getting medical advice from a hairstylist - it lacks authority and can be completely misleading. Sometimes, it was not until I had been passed through several customer service representatives that I finally heard "Oh ! we don't support that feature for Quicken on a Mac!" Once the account is setup it takes at least one billing cycle to cross check the paper statement with the Quicken managed data to make sure they reconcile.
Quicken for Mac provides four levels of support for maintaining an account. These levels provide increasing control for the user and decreasing control for the bank. Most of the tradeoffs I made were to do with the cost and level of service I would accept from an institution for the benefits I would get. The four levels of support are described below.
- Manual maintenance
This is the worst solution. If your account has more than a few transactions a month entering them by hand will be a major headache. This is the only solution for financial institutions that provide no support at all for Quicken. I avoid these institutions if I possibly can.
- Web connect
This is the basic level of support provided by most financial institutions. It requires a visit their website once a month to download a file containing all the transactions which must then be imported into the correct account in Quicken. You can get data more frequently but you have to remember exactly what dates you have already downloaded since you can get duplicate transactions if you are not careful. This approach is ok if you have a limited number of accounts but rapidly becomes a pain if you have more than a few accounts.
- Direct connect
This is the best approach if you need to monitor the account on a daily basis. Transactions are downloaded whenever you request and are automatically loaded into Quicken. I have this option for all my bank and credit card accounts. I will not open a new account of this type unless I can get this level of service. I pay $3 a month to my current bank for this service. But my credit cards provide it free. It is interesting that credit card companies will provide this service free but banks will not. I believe the banks fee for this is a deterrent intended to drive customers to use the banks web based service instead.
- Direct connect with online bill payment
This provides all the benefits of direct connect but also allows payments to be made through Quicken. This feature means I hardly use checks at all anymore and I can schedule payments to be made at any date in the future. I pay my current Bank $6.95 a month for this service. Again I believe this fee is a deterrent and a way to make up for lost income as I no longer use checks. Paying this fee is a compromise, as well as online banking I want access to a large network of ATMs. I can avoid out of network ATM transactions and do online bill payment through Quicken.
- Sketch of The Analytical Engine Invented by Charles Babbage. By L. F. Menabrea of Turin, Officer of the Military Engineers from the Bibliotheque Universelle de Geneve, October, 1842, No. 82. With notes upon the Memoir by the Translator Ada Augusta, Countess of Lovelace.
- Passages from the Life of a Philosopher. Chapter VIII. Of the Analytical Engine by Charles Babbage. 1864
- Report of the Committee, consisting of Professor Cayley, Dr. Farr, Mr. J. W. L. Glaisher, Dr. Pole, Professor Fuller, Professor A. B. W. Kennedy, Professor Clifford, and Mr. C. W. Merrfield, appointed to consider the advisability and to estimate the expense of constructing Mr. Babbage's Analytical Machine, and of printing Tables by its means. Drawn up by Mr. Merrifield. 1878
- The Analytical Engine, paper by Major-General Henry P. Babbage (Charles Babbage's son), read at Bath on September 12th, 1888; published in the Proceedings of the British Association, 1888.
- Babbage's Analytical Engine. By Major-General H. P. Babbage. 1910 April 8. From the Monthly Notices of the Royal Astronomical Society 70, 517-526, 645 [Errata] (1910).
- Comdr. Howard H. Aiken USNR. Officer in Charge
- Lt. Comdr. Hubert A. Arnold, USNR
- Lt. Harry E. Goheen, USNR
- Lt. Grace M. Hopper, USNR
- Lt(jg) Richard M. Bloch, USNR
- Lt(jg) Robert V. D. Campbell, USNR
- Lt(jg) Brooks J. Lockhart. USNR
- Ens. Ruth A. Brendel, USNR
- William A. Porter, CEM
- Frank L. Verdonck, YI/c
- Delo A. Calvin, Sp(I)I/c
- Hubert M. Livingston, Sp(I)I/c
- John F. Mahoney, Sp(I)I/c
- Durward R. White, Sp(I)I/c
- Geary W. Huntsberger, MMS2/c
- John M. Hourihan, MMS3/c
- Kenneth C. Hanna
- Joseph O. Harrison, Jr.
- Robert L. Hawkins
- Ruth G. Knowlton
- Eunice H. MacMasters
- Frederick G. Miller
- John W. Roche
- Robert E. Wilkins
- Download and install the latest firmware upgrade from Linksys. This is not enough to fix the problem on its own. I tried this first and the network still hung. But it's a good idea and this solution may not work without it.
- Uninstall the Cisco VPN client and the Proxim client utility from the laptop
- Reinstalled the Proxim client utility on the laptop
- Reinstalled the Cisco VPN client on the laptop
- The First Draft of a Report on the EDVAC. by Jon von Neumann. 1945
- Proposed Electronic Calculator.by Alan Turing. 1945.
- Preliminary report on the proposal for an IAS machine by A.W. Burks, H.H. Goldstine and John von Neumann. June 1946
- The distribution of nodes on the internet is fractal and is strongly correlated with the fractal distribution of humanity. In the past the distribution was thought to be random.
- The likelihood of two nodes being linked decays linearly in proportion to the distance between them. In many existing models this likelihood was thought to decay exponentially as the distance between nodes increased.
- Preferential attachment is the name for the process by which scale free networks are thought to grow. It assumes the probability that a new node will link to an existing node is related to the number of links the existing node already has. The results indicate that the rate at which a node increases its degree is linearly proportional to the number of links the node has.
- Mechanical and electro-mechanical hand calculators
These Machines could add, subtract, multiply and divide and were used by human computers to simplify their task. - Electro mechanical Punched Card Tabulators
These machines were used in commerce and government statistics to sort and count large quantities of data. - Differential Analyzers
These machines could solve differential equations considerably faster than other methods. - A tape, divided into squares each of which contains one of two possible symbols (for example 1 and 0). The tape moves through the machine one square at a time in either direction.
- A device that can read and write symbols to the tape.
- A simple table of rules that governs the behavior of the machine. Each rule instructs the machine which symbol to write to the tape and the direction in which it should then move .
- A record of the current condition or "state" of the machine.
- Arithmetic-logic unit (ALU)
Implements elemental functional capabilities such as mathematical and logical functions (+ - / x AND OR) - Control unit
Receives and interprets program instructions and either carries them out directly or causes another component (such as the ALU) to carry them out - Memory
Retains data so they can be used at some later time. This data includes the program. - Input/Output
A mechanism to input and output data - Bus
Provides communication between all the components - As an example of a well defined conceptual architecture it is worthy of study. It anticipates many modern design techniques such as practice of defining a system metaphor - von Neumann draws parallels with the brain throughout the paper. The clear description of the roles and responsibilities of the various architectural components without referencing implementation details shows von Neumann knew the dangers of getting into details too soon.
- The similarities between this paper and other works are remarkable. When read in parallel with the description of Charles Babbage's Analytical Engine Sketch of the Analytical Engine and Alan Turing's 1936 paper On Computable Numbers with an Application to the Entscheidungs-problem many parallels are immediately apparent.
- The Architecture itself demonstrates that it's authors had a firm grasp of practical problem solving. The inclusion of the ALU discards the theoretical simplicity of a Turing Machine but reduces the complexity of the software needed to operate the machine - a brilliant compromise. And finally the most significant innovation was the ability to store the program in memory
- Single purpose Computers were able to solve simple mathematical problems such as addition, subtraction, and multiplication, of two numbers, or model a single complex system such as the solar system . Most of the Mechanical and electro-mechanical hand calculators described by Lavington fall into this category as do Orrereys and even the Antikythera Mechanism of ancient Rhodes.
- Special-Purpose Computers. were able to solve a specific set of problems anticipated by their designers. These machines required physical reconfiguration before each calculating run. Charles Babbage's Difference Engine I and II were early examples of this type of machine, Later examples were the differential analyzers of the 1930's. The early code breaking machines of the Second World War (the Bombes and the Colossus Mk I) and the ABCwere also in this class.
- General-Purpose Externally Programmed Computers were able to solve a large set of problems many of which may not have been anticipated by their designers. Charles Babbage's Analytical Engine, ENIAC , the Collosus Mk II machines, and the Zuse Z3 where all examples of this type of machine. These machines relied on external programs or physical reconfiguration. Theoretically these machines were General-Purpose. However, from a practical point of view they were only ever operated as multi-purpose machines. They were just too slow and cumbersome to be used as real general-purpose machines.
- General-Purpose Internal Stored Program Computers. were able to solve any computable problem, given enough memory. These machines followed the von Neumann architecture and stored their program in their own memory along with the data it operated upon. This is the crucial differentiating feature the modern general-purpose machines. The machines included Baby, EDSAC, BINIAC EDVAC and many others
Stage 2 - Categorization
Once my accounts were setup I started to classify transactions. Initially I used Quicken's default categories but over time I started developing my own categories tailored to my needs. This meant I started to monitor the things that mattered to me. After a while I began to see patterns of spending where we could easily make savings. These patterns were only visible because of the customized categorization scheme.
Stage 3 - Cost Reduction
One of the obvious costs that could be reduced was banking fees. Firstly we decided to only get cash from our Bank's ATMs. Those $2:00 fees for using other banks ATMs add up quickly. Then there was the $10 fee for automatic transfers from the savings account to the checking account at the end of the month. With the forward view available in Quicken I can anticipate these events and transfer money to avoid any fees. Cumulatively these savings easily cover the cost of the yearly software upgrade.
Stage 4 - Account Consolidation
The next big realization was that we had too many accounts. By consolidating accounts we could further reduce banking charges and the effort required to manage them. For example one savings account was under the threshold balance for free banking. As a result we were being charged once a quarter for the privilege of leaving our money in the account. So I consolidated our savings in a few accounts. This put the account in question over the threshold and stopped the charges.
Stage 5 - Increasing Ease of Use
I have now reached the stage where the main driver for my financial decisions is the ease with which I can integrate new financial institutions into my system. There is enough choice out there that if an institution will not support my computing needs then I will take my business elsewhere. Even my primary checking account can be moved if necessary. I don't rely on my bank for anything other than acting as the interface between my software and the rest of the financial world. In short they have become a utility provider. The telephone companies provide dial tone and my bank provides the financial equivalent and that's it. I believe this is why banks make it so difficult to integrate their systems with personal financial software and why they try so hard to get you to use their proprietary online banking systems. They want to lock our data into thier systems and prevent their services becoming commoditized.
Quicken is without doubt the most valuable piece of software I use and has returned the small investment I made in it many times over. It is also a valuable weapon for managing the sharks of the personal finace world.
Posted by John R. Harris at 10:29 PM | Comments (1) | TrackBack
July 28, 2004
Wikipedia Article for the term Computer
I just re-wrote the first four sections of the Wikipedia article for the term Computer. The Current page is here.
This link to the change history page for the article currently shows one change on line 6. This was a trivial typo that I just fixed in my final version. Over time this link should change to show all the modifications to the article made by other people. I'm curious to see how signifcant the changes will be...
Posted by John R. Harris at 11:24 PM | Comments (0) | TrackBack
March 30, 2004
Charles Babbage and Howard Aiken. How the Analytical Engine influenced the IBM Automatic Sequence Controlled Calculator aka The Harvard Mk I
In 1936, [Howard] Aiken had proposed his idea [to build a giant calculating machine] to the [Harvard University] Physics Department, ... He was told by the chairman, Frederick Saunders, that a lab technician, Carmelo Lanza, had told him about a similar contraption already stored up in the Science Center attic.
Intrigued, Aiken had Lanza lead him to the machine, which turned out to be a set of brass wheels from English mathematician and philosopher Charles Babbage's unfinished "analytical engine" from nearly 100 years earlier.
Aiken immediately recognized that he and Babbage had the same mechanism in mind. Fortunately for Aiken, where lack of money and poor materials had left Babbage's dream incomplete, he would have much more success.
Later, those brass wheels, along with a set of books that had been given to him by the grandson of Babbage, would occupy a prominent spot in Aiken's office. In an interview with I. Bernard Cohen '37, PhD '47, Victor S. Thomas Professor of the History of Science Emeritus, Aiken pointed to Babbage's books and said, "There's my education in computers, right there; this is the whole thing, everything I took out of a book."
[The Harvard University Gazette. Howard Aiken: Makin' a Computer Wonder By Cassie Furguson]
The quote is incorrect. The "brass wheels" were a small demonstration piece for the Difference Engine I not the Analytical Engine. They were one of six such pieces constructed by Babbage's son Henry after his fathers death. These demonstration pieces were distributed among various universities including Harvard. Aiken must have been sufficiently intrigued by the mechanism to investigate Babbage. In the course of this investigation he would have discovered Babbage's Analytical Engine and the similarities it bore to his own machine. It is not clear when Aiken was given Babbage's "books" or indeed what they contained. They did not contain plans of the Analytical Engine since the only plans have always been stored at the Science Museum at Kensington in London. Aiken may have been able to obtain some of the following documents which together comprise the complete published account of the Analytical Engine
These documents along with Babbage's "books" would have given Aiken a high level description of Babbage's planned machine.
The pictures below show front and rear views of one of six demonstration pieces for the Difference Engine I created by Henry Babbage after his Fathers death. This piece is similar to the one shown to Howard Aiken in 1936.
Aiken may also have seen photographs of the largest test piece of the Difference Engine I held by the Science Museum, Kensington, London, UK.
Two large fragments of the Analytical Engine were constructed by Babbage's son and Aiken may have seen photographs or otherwise become aware of their existence.
In 1991 the Science Museum in London constructed the Difference Engine II, the printer was added in 2001. These pieces are on display in the Museum, which is well worth a visit. The construction of the Difference Engine II is documented by Doron Swade in his book The Difference Engine Charles Babbage and the quest to build the first computer. The Difference Engine II was the last machine Babbage designed and employs lessons he learned from both the Difference Engine I and the Analytical Engine. For example the printer was designed for use by the Analytical Engine and Babbage reused it for the Difference Engine II. The similarity between the Difference Engine II and the machine that Aiken built is striking. Note the drive shaft running along the bottom of both machines and the general arrangement with printers at one end of a long tall frame. This may be the result of convergent evolution rather than direct influence but the similarity is still striking.
In the foreword to the manual for the operation of the Automatic Sequence Controlled Calculator (ASCC) Howard Aiken states that "The appendices were prepared by Lieutenant [Grace] Hopper" with the assistance of others and that "[She] acted as general editor, and more than any other person is responsible for the book." It seems safe to conclude that Howard Aiken and Grace Hopper were not only influenced by Charles Babbage but they and their team held him in high regard and considered themselves guardians of his reputation and inheritors of his quest.
Chapter 1. Historical Introduction
"If, unwarned by my example, any man shall undertake and shall succeed in really constructing an engine embodying in itself the whole of the executive department of mathematical analysis upon different principles or by simpler mechanical means, I have no fear of leaving my reputation in his charge, for he alone will be fully able to appreciate the nature of my efforts and the value of their results."
Charles Babbage The Life of a Philosopher (1864)
[The Manual of Operation for the Automatic Sequence Controlled Calculator. By the staff of the Computation Laboratory with a forward by James Bryant Conant. Cambridge, Massachusetts. Harvard University Press. 1946.]
The staff of the Computation Laboratory at the time the ASCC manual was published in 1946 are listed below. They went on to have a considerable influence on the development of the modern computer. Not least of which was Grace Hooper who developed the first compiler and several popular languages.
The influence of both, Howard Aiken, and the IBM ASCC - Harvard Mk I machine, on the later development of computers should not be over stated. The published notes from The Moore School Lectures (held in 1946) are rather scathing with respect to Aiken and his understanding of the direction in which the new electronic computing machines would lead.
Hartree was very forward looking and was excited by the mathematical potential of the stored program computer. On the other hand, Aiken was absorbed in his own way of doing things and does not appear to have been aware of the significance of the new electronic machines.
[ The Moore School Lectures (Charles Babbage Institute Reprint)]Unlike Aiken and his machine, Grace Hopper and some of her colleagues went on to have a significant influence in the early development of compilers and language design. One wonders what if any influence Babbage and Ada Lovelace had on Grace Hopper's ideas. Unfortunately I can find no comments by Hopper regarding either Babbage or Lovelace.
[ Pictures via The Science and Society Picture Library]
Posted by John R. Harris at 11:03 PM | Comments (7) | TrackBack
February 11, 2004
Vannevar Bush and The Limits of Prescience
Today Vannevar Bush (rhymes with achiever) is often remembered for his July 1945 Atlantic Monthly article As We May Think in which he describes a hypothetical machine called a Memex. This machine contained a large indexed store of information and allowed a user to navigate through the store using a system similar to hypertext links. At the time of writing his essay Bush knew more about the state of technology development in the US than almost any other person. During the war, he was Roosevelt's chief adviser on military research. He was responsible for many war time research projects including Radar, the Atomic Bomb, and the development of early Computers. If anyone should ever have been capable of predicting the future it was Vannevar Bush in 1945. He is an almost unprecedented test case for the art of prediction. Unlike almost anyone else before or since Bush was actually in possession of ALL the facts - as only the head of technology research in a country at war could be.
The Editor of the Atlantic Monthly introduced the article as follows:
As Director of the Office of Scientific Research and Development, Dr. Vannevar Bush has coordinated the activities of some six thousand leading American scientists in the application of science to warfare. In this significant article he holds up an incentive for scientists when the fighting has ceased. He urges that men of science should then turn to the massive task of making more accessible our bewildering store of knowledge. For years inventions have extended man's physical powers rather than the powers of his mind. Trip hammers that multiply the fists, microscopes that sharpen the eye, and engines of destruction and detection are new results, but not the end results, of modern science. Now, says Dr. Bush, instruments are at hand which, if properly developed, will give man access to and command over the inherited knowledge of the ages. The perfection of these pacific instruments should be the first objective of our scientists as they emerge from their war work. Like Emerson's famous address of 1837 on "The American Scholar," this paper by Dr. Bush calls for a new relationship between thinking man and the sum of our knowledge. -THE EDITOR
The essay was prescient in many respects. However, it failed to anticipate several innovations that are fundamental to modern information management and made many predictions that are only partially correct. It is easy to ignore Bush's off-target predictions and focus solely on what he got right, but this would be a waste of an opportunity. By examining the innovations Bush failed to anticipate and the predictions he got half-right, and even wrong, we can develop a better understanding of prediction itself.
Background
Before the War Bush had been involved in the design and construction of analog computers for many years. At MIT He led colleagues and students in the development a series of analog machines that could solve differential equations. In 1927 Bush and others started developing the Integraph - a machine capable of solving first order differential equations. This was followed by the Bush Hazen Differential Analyzer, a general purpose equation solver that could solve 6th order differential equations. The Bush Hazen machine was operational at MIT in 1932 and served as the prototype for many similar machines built elsewhere. Finally in December 1941 the Rockerfeller Differential Analyzer (RDA) became operational at MIT. Financed by the Rockefeller Foundation, this machine used vacuum tubes and relays. It weighed 100 tons and was immediately classified. It spent the war calculating artillery tables. By the Wars end the RDA was redundant having been superceded by totally electronic machines like the ENIAC.
As Director of the Office of Scientific Research and Development Bush was Roosevelt's chief adviser on military research. He was an engineer, an expert administrator, a capable politician, and was not afraid of fight. He allocated funds and managed priorities for many of the major US funded research projects of the Second World War. At the end of the war when he wrote the essay he knew many secrets.
Veiled Secrets not Predictions
Vannear Bush's paper was published at the dawn of the digital age in July 1945. Many of the "predictions" it contained were merely veiled descriptions of secret wartime developments that had yet to be declassified. When Bush wrote his essay the great electronic computers that had been developed to aid the war effort were still secret. The ENIAC was the first of these machines to be publicly announced by the New York Times on February16th, 1946. Bush undoubtedly knew of ENIAC and other machines under development. The following quote from the essay is stated as a prediction but is actually a fairly accurate description of the ENIAC.
Moreover, they [computers] will be far more versatile than present commercial machines [punch card tabulators and hand calculators], so that they may readily be adapted for a wide variety of operations. They will be controlled by a control card or film, they will select their own data and manipulate it in accordance with the instructions thus inserted, they will perform complex arithmetical computations at exceedingly high speeds, and they will record results in such form as to be readily available for distribution or for later further manipulation. Such machines will have enormous appetites. One of them will take instructions and data from a whole roomful of girls armed with simple key board punches, and will deliver sheets of computed results every few minutes. There will always be plenty of things to compute in the detailed affairs of millions of people doing complicated things.
The first atomic bomb was detonated at the Trinity site in New Mexico on July 16, 1945. a few weeks after the essay was published. Bush is said to have had a nervous collapse after witnessing the test detonation. It's success must have been a tremendous relief for Bush who had persuaded the President to commit the $2 Billion necessary to build the bomb. The following paragraph describing the impact of the war on scientific research, especially physics, seems to refer to the massive Manhattan Project and all the physicists involved.
It is the physicists who have been thrown most violently off stride, who have left academic pursuits for the making of strange destructive gadgets, who have had to devise new methods for their unanticipated assignments. They have done their part on the devices that made it possible to turn back the enemy, have worked in combined effort with the physicists of our allies. They have felt within themselves the stir of achievement. They have been part of a great team. Now, as peace approaches, one asks where they will find objectives worthy of their best.
Predictions
Bush starts his visionary predictions by suggesting that computers could be made to manipulate premises in than same way they manipulate numbers.
It is readily possible to construct a machine which will manipulate premises in accordance with formal logic, simply by the clever use of relay circuits. Put a set of premises into such a device and turn the crank, and it will readily pass out conclusion after conclusion, all in accordance with logical law, and with no more slips than would be expected of a keyboard adding machine.
He then describes the Memex as a personal desktop interactive device. However it is here that his foresight breaks down because the Memex it described as analog not digital. While it contained some computing components information was stored photographically on microfilm and retrieved electro-mechanically. The Memex was nothing like the room sized computers of the late 1940's. In the 1946 New York Times article announcing the ENIAC the new computer was described as "an amazing machine which applies electronic speeds for the first time to mathematical tasks hitherto too difficult and cumbersome for solution." It took a long time before people began to implement Bush's suggestion that computers could manipulate premises as well as numbers. Alan Turing had understood that computers were manipulators of symbols and that those symbols could represent any concept. But this knowledge was tightly bound to his work on code breaking and he in turn was bound by secrecy not to discuss it.
Ultimately Bush's prescience was limited by two factors: Failure to anticipate the emergence of fundamentally new technologies, and failure to predict the exponential improvements in many areas that such inventions would support.
The Relay gave way to the Thermionic Value which in turn gave way to the Transistor which itself was replaced by the Silicon Chip. Each paradigm shift maintained the exponential rate of growth in computing power. Bush could not have predicted this chain of technological advances. But as Moore has shown the exponential growth it has produced is predictable.
In 1945 the ENIAC could not even store its own meager program in what little memory it had and all data was stored externally. The idea of storing vast quantities of data digitally was not considered realistic, it was accepted that there had to be some form of external physical storage. Bush merely replaced the punched card with a microfilm. But memory storage advanced in a similar way to computing power, from mercury delay lines, and magnetic drums to William's tubes, magnetic core memory and tape, to modern chip based RAM, and high speed disc drives. Today a standard home computer is typically shipped with over a 100 Gigabytes of storage and several hundred Megabytes of memory.
Bush's biggest failings were in predicting implementation details and his most accurate predictions concerned the interaction of people and technology. The Memex is eerily similar to a networked PC running a web browser. Even Bushes description of the wearable camera is remarkably close. We don't wear our cameras because they double as portable phones but everything else about them from their size to the number of photos they can take is remarkably accurate.
Conclusions
Reading this essay with hind sight, and knowing that large amounts of information were still secret in July 1945, one is forced to wonder who was the intended audience of the essay. The essay seems to be an inverse call to arms, aimed at the scientists and researchers who would have recognized their own secret war time work between Bush's lines. In effect Bush was suggesting a path for post war research and development based on his uniquely broad knowledge of the state of technology. The Memex was a technological phoenix to be built from the ashes of wartime science. It was an example of how various wartime advances could be combined to create something awesome but benign. A modern library of Alexandria on every desktop.
The ability to see even a decade into the future is impressive. That Vannevar Bush was able to see much further is remarkable and a testament to his brilliance. It would be a shame if he were only remembered as the inventor of hypertext. When in fact he foresaw the information revolution.
Posted by John R. Harris at 02:17 PM | Comments (1) | TrackBack
December 29, 2003
Source Code as History
When the history of early software development is written it will be a travesty. Few historians will have the ability, and even fewer the inclination, to learn long dead programming languages. History will be derived from the documentation not the source code. Alan Turings perplexed, hand written annotation "How did this happen?" on a cutting of Autocode taped into his note book will remain a mystery.
What kind of bug would stump Alan Turing? Was it merely a typo that took a few hours to find? a simple mistake maybe? Or did the discipline of the machine expose a fundamental misconception and thereby teach him a lesson? The only way to know would be to learn Autocode.
The first stored program to be successfully executed was written by Tom Kilburn and executed on Monday 21 st June 1948 at Manchester University, England. It is said that this was the first and last program that Kilburn ever wrote. The program found the highest factor of a number and took 1 minute to complete on it's first run. A second run with a different number took 2 minutes and 52 seconds. Unfortunately no one thought to document the program until Geoffrey C. Tootill wrote an amended version in his note book a month later on the 18 th July 1948. The original has been lost. Below is a copy of Tootill's version.
[Via The National Archive for the History of Computing]
Posted by John R. Harris at 11:33 PM | Comments (1) | TrackBack
November 29, 2003
Linksys BEFW11S4 Wireless-B Broadband Router Problems - Low Reliability and Poor Fault Tolerance
Background
A few months ago I had to setup a home office and decided I would take the opportunity to upgrade my home network. My Linksys BEFSR41 Etherfast Cable / DSL Router had never given me any problems and so I decided to upgrade to the Linksys BEFW11S4 Wireless-B broadband Router. I now have everything working reliably but getting to this happy state and resolving the problems took a lot of luck and in the end the solution was far from obvious. Judging by the bad reviews on Amazon and elsewhere it appears that many people have been unable to fix similar problems with this device. Below is my description of the problem and a solution that worked for me. Hopefully this will help others, but as always, your mileage may vary!
Configuration
I have two Macs running OSX on my home network, both machines have static IP addresses and are wired to the router. I wanted to add a wireless Windows Laptop with a DHCP assigned IP address. I purchased a Linksys BEFW11S4 Wireless-B broadband Router and at the same time I bought a Proxim ORiNOCO Gold 802.11a/b/g ComboCard for the Laptop this came with a Proxim client utility. Installation and setup of the laptop card was very easy. Simply plug in the card, insert the disc and install the driver. The card immediately picked up my neighbors open network and I was on the Internet. Setting up the router was a bit more challenging; I copied the configuration from my previous device and enabled DHCP to start issuing IP numbers out of range of my 2 static machines. Everything worked and I was connected to the Internet via my new router.
Symptoms
The wireless network seemed to work fine for several days but then it "hung". The only fix was to turn off the router and turn it back on again. This hang affected all machines connected to the router. Whenever they attempted any network operations they would time out. However the Proxim client utility and the laptop claimed the wireless network was still running! The network hung once or twice a week - Annoying, but tolerable. Then I upgraded the laptop from windows 2000 to XP and things got worse! The network would hang one or two times a day. At first I did not connect the OS upgrade with the router problems, besides, I had another bigger issue.
I connect to work via a Cisco VPN client which seemed to be working ok but all of a sudden (in fact immediately after the XP upgrade), Microsoft Exchange slowed to glacial speed. It would take hours to sync with the Exchange Server. This was not acceptable. I had to fix things. I called our company technical support and got through to the guy who manages the VPN. He said "What order did you install the wireless card driver and the VPN client? Because they don't play nice together and you must install the wireless card driver first and then the VPN client".
Solution
Outcome
The network has been running for 10 days without a single hitch.
Cause
I'm still not certain what the cause was but this is what I suspect. The VPN client and Proxim client utility share something in common dlls or configuration or something! When installed in the wrong order things get messed up and in unusual circumstances the laptop sends network traffic that is somehow malformed. This affects the router and causes it to hang. Basically the router appears to be intolerant of glitches in low level network messages and this leads to low reliability. Not a great explanation I know and it may be completely spurious but my network now works reliably so I'm happy!
Posted by John R. Harris at 03:15 PM | Comments (60) | TrackBack
November 27, 2003
The Evolution of the Modern Computer (1934 to 1950): An Open Source Graphical History
Some time between 1934 and 1950 the first modern computer was created. Pinning down exactly when that event occured is not easy. It depends on how you define the term computer and what you think is more important: The concept, the design, the first succesful test, or the first time the machine solved a real problem. In those early days it usually took years for a team to progress from concept through design to working machine. There were many such teams working mainly in the US and UK. These teams competed and cooperated somtimes they shared ideas and designs, and they sent representatives to visit each others laboratories. On one famous occassion in the Summer of 1946 almost all the leaders in the field got together at the Moore School for an 8 week long series of lectures. In short the story of the emergence of the modern computer is a complex one that involves both direct and indirect contributions from many people.
There are many Computer History Timelines in existence. But all of these suffer from the same flaws. They are incomplete and thier linear nature fails to capture the complex web of influence that was the hallmark of computer development.
Downloadable files available here
In an effort to visualize this web of interaction. I have started to develop a graphical representation of the evolution of the modern computer. Fortunately AT&T have kindly released a package called Graphviz which is capable of drawing complex directed graphs. The graph above is produced by Graphviz from a text file.
The text file contains a detailed description of my approach, the classification I have used, and lists all the machines and the references to the data sources I used. I have not duplicated that information here because the whole point of the exercise is to gather all the data in one place.
I have licensed this file with an attribution, share alike creative commons license. So please feel free to download and improve what I have started. If you do make changes please send me a copy and I will share the updates on this page.
For the record. I believe that The Manchester Mk I Prototype was the first Computer in a modern sense. But the text file is not intended to prove this or any other machine was first. It is only intended to record the known dates and influences for computing machines designed between 1934 and 1950. I Believe that the graph is complex enough to support many interpretations.
Posted by John R. Harris at 03:40 PM | Comments (0) | TrackBack
October 19, 2003
The Moore School Lectures and the British Lead in Stored Program Computer Development (1946 -1953)
In 1946 between 8th July and 31st August the Moore School of Electrical Engineering at the University of Pennsylvania held a special course entitled Theory and Techniques for Design of Electronic Digital Computers. The course was organized in response to interest generated by; the schools public announcement of the ENIAC, and the publication of The First Draft of a Report on the EDVAC. 1945 by Jon von Neumann. Attendance was by invitation only and the "Students" were selected from the leading experts at the major institutions working on the development of computing devices in the US and UK. At the time of this event there were only three published designs for a stored program computer and it was expected that all those present were familiar with these documents.
Within two years of these lectures the first stored program computer was operational, within 3 years there were 5 operational machines, and within 5 years stored program machines were commercially available. The Moore School Lectures, as they became known, were responsible for focusing all the leading developers of computing devices on a single problem:- How to design and build a stored program computer. It is interesting that despite being outnumbered and out-funded the British took, and held, the lead in this development effort between 1946 and 1953. In some areas such as business applications the British held the lead for much longer. How they were able to do this is not directly explained in any of the historical material available online, which tends to focus on individual development efforts and not on the larger picture.
Attendance at the Moore School Lectures
The lecturers who delivered the course are listed below.
| Lecturer | Organization |
|---|---|
| Aiken, Howard H. | Harvard University |
| Burks, Arthur W. | Institute for Advanced Study, Princeton |
| Chu, J. Chuan | Moore School |
| Crawford, Perry U., Jr. | Office of Research and Inventions, U.S. Navy |
| Curtis, John H. | National Bureau of Standards |
| Eckert, J. Presper, Jr. | Electronic Control Company |
| Goldstine, Herman H. | Institute for Advanced Study, Princeton |
| Hartree, Douglas R. | University of Manchester |
| Lehmer, Derrick II. | University of California, Berkeley |
| Mauchley, John W. | Electronic Control Company |
| Moores, Calvin N. | Naval Ordnance Laboratory |
| Rademacher, Hans | University of Pennsylvania |
| Rajchman, Jan | RCA |
| Sharpless, T. Kite | Moore School |
| Sheppard,C. Bradford | Moore School |
| Stibitz, George | Independent consultant |
| Travis, Irven R. | Moore School |
| Von Neumann, John | Institute for Advanced Study, Princeton |
| Williams, Sam B. | Consultant, Moore School (Bell Telephone Laboratories) |
40 lectures were delivered 5 days a week over 8 weeks. Most days a formal morning lecture lasting up to 3 hours was followed by an unstructured afternoon seminar.
The Lecture titles and the lecturer are listed below
| Lecturer | Lecture Title | |
| 1 | George Stibitz | Introduction to the Course on Electronic Digital Computers |
| 2 | Irven Travis | The History of Computing Devices |
| 3 | J.W. Mauchly | Digital and Analog Computing Machines |
| 4 | D.H. Lehmer | Computing Machines for Pure Mathematics |
| 5 | D.R. Hartree | Some General Considerations in the Solutions of Problems in Applied Mathematics |
| 6 | H.H. Goldstine | Numerical Mathematical Methods I |
| 7 | H.H. Goldstine | Numerical Mathematical Methods II |
| 8 | A.W. Burks | Digital Machine Functions |
| 9 | J.W. Mauchly | The Use of Function Tables with Computing Machines |
| 10 | J.P. Eckert | A Preview of a Digital Computing Machine |
| 11 | C.B. Sheppard | Elements of a Complete Computing System |
| 12 | H.H. Goldstine | Numerical Mathematical Methods III |
| 13 | H.H. Aiken | The Automatic Sequence Controlled Calculator |
| 14 | H.H. Aiken | Electro-Mechanical Tables of the Elementary Functions |
| 15 | J.P. Eckert | Types of Circuit -- General |
| 16 | T.K. Sharpless | Switching and Coupling Circuits |
| 17 | A.W. Burks | Numerical Mathematical Methods IV |
| 18 | H.H. Goldstine | Numerical Mathematical Methods V |
| 19 | Hans Rademacher | On the Accumulation of Errors in Numerical Integration on the ENIAC |
| 20 | J.P. Eckert | Reliability of Parts |
| 21 | C.B. Sheppard | Memory Devices |
| 22 | J.W. Mauchly | Sorting and Collating |
| 23 | J.P. Eckert C.B. Sheppard |
Adders |
| 24 | J.P. Eckert | Multipliers |
| 25 | J.W. Mauchly | Conversions between Binary and Decimal Number Systems |
| 26 | H.H. Goldstine | Numerical Mathematical Methods VI |
| 27 | Chuan Chu | Magnetic Recording |
| 28 | J.P. Eckert | Tapetypers and Printing Mechanisms |
| 29 | J.H. Curtiss | A Review of Government Requirements and Activities in the Field of Automatic Digital Computing Machinery |
| 30 | H.H. Goldstine | Numerical Mathematical Methods VII |
| 31 | A.W. Burks | Numerical Mathematical Methods VIII |
| 32 | Perry Crawford | Application of Digital Computation Involving Continuous Input and Output Variables |
| 33 | J.P. Eckert | Continuous Variable Input and Output Devices |
| 34 | S.B. Williams | Reliability and Checking in Digital Computing Systems |
| 35 | J.P. Eckert | Reliability and Checking |
| 36 | C.B. Sheppard | Code and Control -- I |
| 37 | J.W.Mauchly | Code and Control -- II Machine Design and Instruction Codes |
| 38 | C.B. Sheppard | Code and Control -- III |
| 39 | C.N. Mooers | Code and Control -- IV Examples of a Three-Address Code and the Use of 'Stop Order Tags' |
| 40 | John von Neumann | New Problems and Approaches |
| 41 | J.P. Eckert | Electrical Delay Lines |
| 42 | J.P. Eckert | A Parallel-Type EDVAC |
| 43 | Jan Rajchman | The Selectron |
| 44 | C.N. Mooers | Discussion of Ideas for the Naval Ordnance Laboratory Computing Machine |
| 45 | J.P. Eckert | A Parallel Channel Computing Machine |
| 46 | C.B. Sheppard | A Four-Channel Coded-Decimal Electrostatic Machine |
| 47 | T.K. Sharpless | Description of Serial Acoustic Binary EDVAC |
| 48 | J.W.Mauchly | Accumulation of Errors in Numerical Methods |
The notes of the lectures published in The Moore School Lectures (Charles Babbage Institute Reprint) make the following observations about the lecturers.
Hartree was very forward looking and was excited by the mathematical potential of the stored program computer. On the other hand, Aiken was absorbed in his own way of doing things and does not appear to have been aware of the significance of the new electronic machines. The excellent review by John H. Curtis gave a very clear picture of contemporary computer development in the United States. But for most of the Students the real value was gained from the informal afternoon seminars.
Moore School Lecture "Students" are listed below. The term student is misleading as these people were the leading researchers in the field of computing.
| Student | Organization |
| Alexander, Sam N. | National Bureau of Standards |
| Breiter, Mark | Office of the Chief of Ordnance, War Department |
| Brown, David R. | MIT Servomechanisms Laboratory |
| Cannon, Edward W. | National Bureau of Standards |
| Clark, Howard L. | General Electric Co. |
| Curtis, Roger | National Bureau of Standards |
| Elbourne, R. D. | Naval Ordnance Laboratory |
| Everett, Robert, R. | MIT Servomechanisms Laboratory |
| Galman, Herbert | Frankford Arsenal |
| Gard, Orin P. | Armament Laboratory, Wright Field |
| Gluck, Simon E. | Moore School |
| Gridley, D. H. | Naval Research Laboratory |
| Hobbs, G. W. | General Electric Co. |
| Horton, Arthur, B. | MIT |
| Loud, Warren S. | MIT |
| Lubkin, Samuel | Ballistics Research Laboratory, Aberdeen Proving Ground |
| Pendergrass, J. T. | OP-20G CNO Navy Department |
| Rees, David | Manchester University, England |
| Rosenbloom, Joshua | Frankford Arsenal |
| Sayre, Albert | Army Security Agency |
| Shaffer, Philip A., Jr. | Naval Ordnance Testing Station Pasadena, California |
| Shannon, Claude E. | Bell Telephone Laboratory |
| Smith, Albert E. | Navy Office of Research and Investigations |
| Suss, Louis | Naval Research Laboratory |
| Verzuh, Frank M. | Rockerfeller Electronic Computer Project, MIT |
| Wilkes, Maurice V. | Cambridge University |
| Wilson, Lou D. | MIT |
| Zagor, H. I. | Reeves Instrument Company |
Additional Attendees included
| Vistor | Organization |
| Cuthbert C. Hurd | IBM |
| Jay Forrester | MIT |
| Robert Everett | MIT Servomechanisms Laboratory |
| David Brown | MIT Servomechanisms Laboratory |
Other people attended but no record has been kept.
Analysis and Speculation
What follows is mostly speculation, I would be interested in evidence that supports or refutes these ideas.
I suspect the British were able to take the lead in computing in 1946 because the main challenge had become the rapid construction of a machine while solving the one remaining major technical problem - storing a program in memory. This problem was well understood in concept but the practical solution was more challenging than it appeared. As a result of their experience in the war the British were approximately 2 to 3 years in advance of the Americans in the crucial area of rapid prototyping and evolution of complex electronic devices. It was this ability that enabled them to take the lead from America.
During the War the British had developed RADAR further than any of the other combatants. This work occurred in secret at the Telecommunication Research Establishment TRE in Malvern. Meanwhile at Bletchley Park, they had secretly built and operated 10 Colossus Mk II code breaking machines. These machines were complex special purpose computing devices, they matched ENIAC in complexity and capability if not in size and generality. At the end of the war Britain had the largest concentration of electronic computing devices in the World and a significant number of engineers with practical skills in rapidly building complex electronics. The British centers of electrical engineering excellence which included; Bletchley Park, the Telecommunications Research Establishment (TRE) at Malvern, and The General Post Office Research Station at Dollis Hill, had all been driven by desperation to work with great speed and had each developed similar evolutionary prototyping approaches. The Colossus Mk I, and Mk II were constructed by Tommy Flowers in a matter of months at Dollis Hill, and the development of RADAR at the TRE had been similarly rapid. Americas leading center of excellence in the field of electronic computing - The Moore School - had become used to working at a slow pace. The ENIAC had taken 5 years to construct and was not completed until after the war ended.
In 1946 the Moore School's leading experts left the school and went to other institutions. John von Neumann went with Herman Goldstine to the Institute for Advanced Study in Princeton and Mauchly and Eckert also left to setup their own company which was later purchased by Remington Rand. Both these groups lost valuable time in these reorganizations, however this was not the cause of the lead in computing passing to the UK. Similar reorganizations had happened already in the UK and other countries, as military programs were wound down and research expertise returned to civilian institutions.
By 1946 the conceptual architecture for a stored program computer was well understood by those interested in the field of electronic computing. Both John von Neumann and Alan Turing had developed and published designs. While these designs were revolutionary they were not particularly complex conceptually. As has been pointed out elsewhere a competent electrical engineer can grasp the main features of von Neumanns' design in a day. Maurice Wilkes was famously given only one night to read the First Draft and decided there and then that this was the correct approach and that he would develop a machine along these lines - The EDSAC, generally accepted as the second operational stored program computer and the first machine to actually perform useful work. By the time the Moore School lectures had finished there were many people who understood exactly what needed to be done.
Two basic types of stored memory were under investigation, Serial Access Memory (SAM) and Random Access Memory (RAM). SAM could only be read in the order it was written while RAM was much faster as it could be read in any order. SAM devices in the form of mercury acoustic delay lines were already available as a result of RADAR development which need memory devices to improve image quality. RAM devices such as the Selectron were still under development but at the time of the Moore school lectures they were expected to be ready within a year.
In the UK all three centers of computer development hired people from either TRE Malvern, Bletchley Park or both to fill Senior positions. These men combined their expertise and rapidly developed plans for building stored program computers.
At Manchester University Max Neumann, who had directed efforts to break the Lorenz Cypher at Bletchley Park, became Fielden Professor of Pure Mathematics. He recruited, I.J. Good and D. Rees both from Bletchley. Meanwhile the Electrical Engineering Department recruited Freddie Williams from the TRE Malvern. Williams brought Tom Kilburn and later Geoff Tootill also from TRE to continue the development of a memory device based on the Cathode Ray Tubes CRT. Once at Manchester Williams and Kilburn rapidly perfected a working RAM based on the cathode ray tube. The Williams-Kilburn tube was working by March 1947 just over a year later The Baby, the first stored program computer was operational. The speed of this development must be compared with the ill-fated development of the Selectron which was running into difficulty in the US and was still not operational in the middle of 1948 when The Baby became operational. It was not used in a computer until the Johniac in 1953..
There is some dispute over who actually led the effort to build the Baby at Manchester the mathematics department or the Electrical Engineering departments. But what is clear is that men from TRE Malvern were able to solve the technical problems that were slowing efforts elsewhere and by employing a rapid evolutionary prototyping approach the Manchester University team was able to beat all the other teams in the UK and US to build a working stored program computer. The Baby ran its first successful program on 21 st June 1948.
At Cambridge University, Maurice Wilkes who had also been involved in Radar Development at TRE Malvern took a different approach. He chose to build a machine of modest capabilities from stock parts, or as near to stock as he could get - he chose mecury delay lines for the memory. The machine was called EDSACit was the second operational stored program computer after the Baby in Manchester and ran its first successful program on the 6 th May 1949. Wilkes was funded in part by the J. Lyons Company a forward thinking British teashop chain similar to today's Starbucks. Lyons decided to build a computer of their own based on the EDSAC designed. Lyons hired John Pinkerton also of TRE who seconded two of his staff to Wilkes to help build EDSAC. In 1951 Loyns built their machine and called it LEO. It was the first business computer every used and was rapidly commercialized. IBMs first computer the Defense Calculator was not available until March 1953.
At the National Physics Laboratory (NPL) Alan Turing of Bletchley Park was leading efforts to build a computer of his own design called the Pilot ACE. Both Max Neumann and Alan Turing tried to recruit Tommy Flowers to help with development in 1946. Both failed, sadly he stayed at the Post Office. Alan Turing continued to use the Post Office research center at Dollis Hill to build mercury delay lines but Flowers and W. M. Combs another Bletchley man were being pulled onto other "more important" work and progress was delayed. Eventually Turing was persuaded to go to Manchester by Max Neuman. The Pilot ACE was constructed without him and was operational in 1951.
Meanwhile in America the situation was not improving. The Eckert Mauchly Computer Corporation built the BINIAC for the Northrup Aircraft Corporation for a classified airborne application. It was tested and ran successfully for 44 hours in April 1949. It was then dismantled and delivered to Northrop in California were it was never successfully rebuilt. The IAS team led by von Neumann at Princeton was struggling with the Selectron and switched to the Williams-Kilburn tube soon after the Manchester team announced the Baby.
(The BINIAC operation date (April 1949) needs to be confirmed. I found it in an Amazon review of the book ENIAC: The Triumphs and Tragedies of the World's First Computer by Scott McCartney. The review was written on July 22 nd in 1999 by jbartik@ibm.net who claimed to have worked as a one of the first ENIAC programmers. If this date is correct it means BINIAC as operational before EDSAC. )
In Australia yet another alumni of TRE Malvern was having more luck. Trevor Pearcey had moved from the UK to Australia in 1945 where he decided to design and build a computer. In 1948 he visited England and confirmed the soundness of his design. By November 1949 the CSIR Mk I was operational.
With 50+ year hindsight and knowledge of the secret British activities at TRE Malvern and Bletchley Park the Moore school lectures can be seen in a different light - one that raises many questions. To what extent did the hosts at the Moore School know about their British guests experience and skills? Had they known the truth would they have been so open with their information?. What would have happened if the British had been able to share their knowledge? One fact seems undeniable, only four stored program computers were operational before 1950 and three of these were built by people who had worked at TRE Malvern during the Second World War. The one exception, the BINIAC, worked for 40 hours and was then dismantled never to work again. At the beginning of 1950 there were three working stored program computers in the world and none of them were in America. The expertise developed at Telecommunications Research Establishment (TRE) Malvern placed its engineers 2 to 3 years ahead of anyone else. How the British lost this lead is much less clear. The post war Austerity measures contributed and the failure of the UK government to make adequate investments may have been a factor. There was no direct equivalent to the US ARPA and the agencies that did exist were not well funded. Industry and universities failed to partner well in the way J. Lyons and Cambridge University had done. Whatever the case between 1950 and 1960 the British lost a 2 to 3 year lead in computing to America. But it may be fairer to say that the Americans took the lead back from the British.
Finally consider the case of David Rees of Manchester University. He must have had a uniquely interesting and frustrating experience at the Moore school in 1946. He had been sent by Max Neumann from Manchester University to the lectures as a "student" and yet he was the only person present who had first hand knowledge of Bletchley Park - the largest computing facility in the world, but, in the interests of British national security he was not allowed to talk about it.
Posted by John R. Harris at 10:08 PM | Comments (2) | TrackBack
September 10, 2003
Economics and the Internet's Large-Scale Topology
Distribution of the Internet around the world. (Top) Worldwide router density map obtained using NetGeo tool to identify the geographical location of 228,265 routers mapped out by the extensive router level mapping effort of Govindan and Tangmunarunkit. (Bottom) Population density map based on the CIESIN's population data. Both maps are shown using a box resolution of 1 degree by 1 degree. The bar next to each map gives the range of values encoded by the color code, indicating that the highest population density within this resolution is of the order 10**7 people/box, while the highest router density is of the order of 10**4 routers/box. Note that while in economically developed nations there are visibly strong correlations between population and router density, in the rest of the world Internet access is sparse, limited to urban areas characterized by population density peaks.
This graph and the explanation above are taken from Modeling the Internet's Large-Scale Topology by Soon-Hyung Yook, Hawoong Jeong, Albert-Laszlo Barabasi. Department of Physics, University of Notre Dame, Notre Dame, IN 46556, USA.
The authors state that the performance of Internet protocols is greatly influenced by network topology. It is therefore important to build accurate models of the Internet in order to test new protocol designs. This paper explains their findings about the large-scale structure of the Internet. They document several significant findings that contradict existing models:-
The Authors then describe a mathematical model built on these findings and point out that the existing models of the internet do not fit well with their findings and are therefore of limited value.
This is great but I think the authors have missed the economic side of things. The graphs clearly show the Internet is related to population density but I would guess it is more closely related to wealth density. If a map of the earth could be drawn with 1 degree by 1 degree squares color coded by the product of GDP per capita and population density I think it would look much more like the Router density map than the population density map does. Some of the graphs I produced in this article hint at this kind of distribution. I think using a wealth density approach would link Internet growth to the ecomony and provide a much better model.
Posted by John R. Harris at 05:05 PM | Comments (0) | TrackBack
September 09, 2003
Misinformation and the Evolution of Early Computers
Amazing and totally inaccurate!
Click on the image to get a legible version
It's difficult to know where to start in cataloging the faults with this diagram. So rather than waste my time trying I've started collating information to produce a better version. I'll publish it here when I'm done.
I'm not sure where this diagram came from. It could be "Computer Structures" by Gordon Bell. But the reference was unclear.
Posted by John R. Harris at 10:32 PM | Comments (1) | TrackBack
September 04, 2003
The First Railway Station: Unlikely Home for the First Computer
The Liverpool Street Station in Manchester, England is now part of The museum of Science and Technology. The Station was built in 1830 and is the oldest railway station in the world. On the opposite side of the tracks to the ticketing hall is the world's first railway warehouse. In this building is a working replica of the worlds first stored program computer, Baby, the Manchester Mk I Prototype.
The Liverpool Street Station Building Manchester.
The Warehouse at the Liverpool Street Station.
The Replica of Baby, the Manchester Mk I Prototype.
The juxtaposition of these two firsts raised many questions in my mind: Why was the first "Stored Program" computer so important? Why Railways and Computers in Manchester? How were the two revolutions prompted by these inventions similar and what can they tell us about the nature of radical technological change? But, what bothered me most as I stood alone in the room that housed the Baby Replica was the complete absence of any serious attempt by the Museum to answer these questions.
The Baby was hidden on the top floor of the warehouse. The "explanation" of the machine that was provided was pitched at the average 13 year old visitor. There was almost no explanation of the context in which the machine was developed and no analysis of the machines impact or importance. I understand that many museums would claim it is for historians not museums to provide such analysis. But standing in front of what many people claim as the World's first computer that argument seemed like a thin excuse.
Posted by John R. Harris at 11:13 PM | Comments (11) | TrackBack
August 24, 2003
The First Modern Computer - The Case for Baby, the Manchester Mk I Prototype
Finding an authoritative history of the Computer's invention is almost impossible. There are several reasons for this problem: People disagree on the meaning of the word "invent", they also disagree on the meaning of the word "computer". Finally significant parts of the history were either lost or deliberately concealed and only came to light again in the 1960's and 70's. The United States Army was the first organization to stake a claim to the invention of the computer with the 1946 public announcement of the ENIAC (Electronic Numerical Integrator and Computer). It has since become commonly accepted that ENIAC was the worlds first computer when in fact it was not a computer, in the modern sense, at all, and was not even the first of its class.
What is Invention?
In the 1840's after working on a mechanical calculating device called the difference engine Charles Babbage conceived of the Analytical Engine. Its detailed plans describe, a brass and steel, steam powered, machine that comprised; a central processor called the mill, a memory called the store, an input device that read problem data and processing instructions from punched cards, a printer for data output, and a mechanism to pass information between these various elements. Had it ever been built the Analytical Engine would have been the first general purpose, externally programmed, computer.
Invention is the art of changing paradigms by successfully realizing new concepts. Babbage did not invent the computer just as Leonardo did not invent the flying machine, the tank, or the parachute. Inventors are held in high regard precisely because they make the concept real. The Wright brothers are rightly recognized as the inventors of manned flight but they did not conceive of the idea nor were they the first to attempt the construction of a winged flying machine. They were not even the first to make a working heavier than air flying machine. But they were the first to solve all the major problems associated with manned flight in a single machine and thereby created a new paradigm. I believe this is the essence of invention.
Part of the problem with the History of the computer is that it took 100 years from concept to working prototype. There were several distinct development efforts and it is not clear which of these informed the work of later pioneers and which were dead ends. The leading actors in the invention saga were a mixture of academics, and engineers of various types. They often had different concepts of invention and placed different value on theoretical discovery vs. practical realization. When all this is considered in the light of; extreme military secrecy, rampant homophobia, chauvinistic patriotism, and entrenched legend it becomes very difficult to discern the truth.
What is a Computer?
The word "computer" has a complex etymology , it's meaning has evolved considerably. Originally (1646) the word computer referred to a person who performed mathematical calculations. Maintaining accuracy was obviously a problem for a person performing thousands of calculations by hand. To reduce the likelihood of error various devices were designed to assist, or automate, the job of the human computer. The word computer gradually changed its meaning and began to refer to the devices themselves. By 1892 the Second Edition of the Oxford English Dictionary (OED) records that one sense of the word was a mechanical calculating device. By 1946 various qualifiers had to be introduced, The OED of that year records electronic, digital and analogue as qualifiers needed to differentiate between the various types of computer. It is clear that the computer rapidly evolved through several forms that eventually resulted in the first modern computer - a device that, like the Wright brothers plane, had all the important features of its contemporary descendants.
To clearly identify the exact time and place where the first modern computer emerged it is worthwhile identifying the various types of machine that gave rise to computers. Simon H. Lavington, author of Early British Computers. The Story of Vintage Computers and the People who built them. classifies early calculating machines of the 1930's into three types:
What is Programming
Many early computing devices and advanced calculating devices were programmable to some degree. This increased their utility by changing them from single purpose devices into devices that could solve a variety of problems. There were two main methods of programming; Physical reconfiguration, and Symbolic Programming. Symbolic Programs can be further broken down into those which are stored externally (outside the machine) and internally (inside the machine's memory) this distinction is important and will be covered in detail later.
Physically programmed devices required reconfiguration before they could solve a new problem. For mechanical and electro-mechanical devices this involved setting cogs and wheels in the correct starting positions and for electrical devices this was accomplished by reconfiguring some form of switchboard or even rebuilding or reconnecting parts of the machine. This process often took days and sometimes weeks to complete.
Symbolically programmed devices did not need to be physically reconfigured instead they were programmed by entering a sequence of instructions through an input device, usually some type of a punched card or tape reader. The holes in the cards or tape represented symbols that coded specific instructions that the machine could interpret and execute. The set of symbols was finite but it could be combined in many ways that allowed for great variety.
What is a General-Purpose Computer
Just because a machine is programmable does not automatically make it General-Purpose. The term General-Purpose has a very specific meaning when applied to computers. In 1936 Alan Turing wrote a paper called On Computable Numbers with an Application to the Entscheidungs-problem. In this paper he described a simple computing machine and showed how this device could be programmed to calculate any computable number (given enough time and a large enough memory). This machine has since become known as a Turing Machine.
A Turing machine consists of:-
The machine reads the contents of the current square on the tape. It looks up the rule to execute in the rule table. The table is arranged by state and symbol. Each state and symbol combination has only one possible rule. There can be any number of states so the rule table can be very long, but it must be finite. The machine then overwrites the current square with the symbol indicated by the rule and moves the tape in the direction indicated by the rule. This cycle is repeated until the machine stops. A more formal definition is available from the Stanford Encyclopedia of Philosophy
In his paper Turing defined a table of instructions that allowed a Turing machine to emulate any other Turning machine. This special class of Turing machine was called a Universal Machine.
It is possible to invent a single machine which can be used to compute any computable sequence. If this machine is supplied with a tape on the beginning of which is written the Standard Description [A Logical representation of a Turing Machine's table of instructions] of some computing machine M then It will compute the same sequence as M.
On Computable Numbers with an Application to the Entscheidungs-problem 1934, Alan Turing.
Turing proved that a Universal Turing Machine can be used to calculate any computable number, in other words a Universal Turing Machine is a General-Purpose computer and is said to be Turing Complete. In this case General-Purpose is used in its mathematical sense, it means a Universal Turing Machine is capable of imitating any formally describable system (given enough memory). Furthermore, A Universal Turing Machine is symbolically programmable and stores its program in the same "memory" (the tape) it uses for its input data and intermediate data store. This, as we shall see later, is a crucial feature of the von Neumann Architecture. For the first time in 100 years the theory of machine computation had advanced beyond the vision of Charles Babbage.
Between 1936 and 1938, after he had written his paper on computability, Alan Turing became a graduate student at Princeton. He was invited to stay by John von Neumann who was in the Department of Mathematics there. Turing declined and returned to Cambridge. This event Is worthy of note because John von Neumann was to play a crucial role In later developments.
Stored Program Computers and the von Neumann Architecture
In 1944 John von Neumann was head of computing on the Los Alamos Project. He visited the US Army Ballistics Research Laboratory at the University of Pennsylvania's Moore School of Electrical Engineering in search of computing devices. There he found the design for the ENIAC complete and the design for the EDVAC just beginning. ENIAC had been designed to compute World War II ballistic firing tables. He spent the next year and a half as a consultant on the EDVAC project and he wrote the First Draft of a Report on the EDVAC. 1945, In this document he defined the Conceptual Architecture of almost every computer built since then. Although von Neumann was the sole named author J. Presper Eckert and John W. Mauchly who designed ENIAC claim they devised the fundamentally revolutionary stored program aspect of EDVAC's architecture.
The von Neumann Architecture describes roles, responsibilities and interactions of the following major components of a computer.
The First Draft is remarkable in many respects.
In an externally programmed machine the tape or cards were read one symbol at a time and the machine immediately performed the action indicated by the symbol. If the machine needed to change the sequence of instruction execution the tape had to be reversed or advanced to the correct position. The process of advancing and reversing the tape was not implemented in many externally programmed machines. In those that did implement it the process was cumbersome at best and so slow that it's use was kept to a minimum.
With an internally stored program the machine read the entire program into it's own memory and then began to execute the program. Intermediate calculations could be stored in the same memory as the program. This approach gave the machine much greater flexibility Program instructions could be executed in various sequences as control could jump from one position to another at very little cost. Furthermore the program could even be re-written in memory as it was executing. As any programmer will tell you this is a double edge sword. Memory management has been the bane of programmers lives ever since. The problems associated with making an externally programmed machine with these same capabilities were such that while it was attempted to some degree it was never successfully realized.
If Turing's paper and von Neumann's First Draft are compared it is clear that the von Neumann Architecture is a conceptual model for the implementation of Turing's theoretical Universal Machine. The similarities are striking. However, this does not mean von Neumann was influenced by Turing. The history of computing is replete with rediscovered concepts and ideas so I suppose it is possible that von Neumann was not aware of Turing's work on computability, but not very likely given the fact that he had asked Turing to stay on at Princeton in the 1930's. What is more possible is that J. Presper Eckert and John W. Mauchly had independently come up with the idea of stored memory program, but had not grasped its fundamental importance. Neither man was Turing's equal when it came to Mathematics although von Neumann was in the same league and would definitely have understood the implications of the Universal Turing Machine.
Classification of Computing Machines
It is clear that the calculating machines of the early 1930's were not computers however, within 20 year innovations in the theory of computability, and advances in electronics, would lead to the modern computer. With hindsight it is possible to identify four different classes of machine that have all been called computers. These classes did not develop in strict chronological order but they do represent an evolutionary trend that resulted in the first modern computer. These classes are defined below.
Almost every computer built since 1950 has been a General-Purpose, Stored Program machine. Furthermore the term Computer now refers exclusively to this category. General-Purpose, Externally Programmed machines are extinct. Special Purpose machines exist only inside other devices; automobile ignition systems, cell phones, smart cards, scientific digital calculators etc. Single purpose machines rarely exist in physical form at all. Today they usually take the form of software applications that run inside general purpose computers. From these facts we can conclude that the first computer, in the modern sense of the word, was the first General-Purpose, Stored Program Machine.
A slightly more formal definition:-
A modern computer is a General-Purpose, Stored Program machine. It implements all the components of the von Neumann Architecture and is therefore able to efficiently take full advantage of the fact that it is Turing Complete, within the constraints of it's finite memory.
It should be noted that there are people who will dispute this definition. I believe their dispute is based on the belief, or desire to believe, that ENIAC, the Colossus II, the Zuse Z3, or some other General-Purpose Externally Programmed computer was the first modern computer. I believe they are wrong. In theory these devices were General-Purpose computers (see the demonstration that the Zuse Z3 was a Universal Computer) but in practice they were multi-purpose at best. This is the crux of the debate. I believe a truly modern computer requires a memory to store a program internally as this is the only practical way of building a General-Purpose machine. While Externally Programmed computers may have been General-Purpose in theory they were a long way form General-Purpose in practice.
The First General Purpose Stored Program Computer
In the Late 1940's the challenge for those involved in the development of advanced computing devices became the construction of a reliable memory in which a program and data could be stored. In 1947 F. C. Williams and Tom Kilburn working at Manchester University in the UK developed a novel Cathode-Ray tube memory device called the Williams tube or more properly the Williams-Kilburn Tube. Together with G.C. Tootill they built a small prototype stored memory computer to thoroughly test their invention. The first machine to successfully implement the von Neumann Architecture was, Baby, the Small Scale Experimental Machine (SSEM), also known as the Manchester Mk I Prototype. This machine ran the first stored program in the morning of the 21st June 1948. It took 52 minutes to execute. This was the first operational computer in the modern sense of the word.
The diagram below shows a reconstruction of the original program as best as Tom Kilburn and G.C. Tootill could remember it in 1996. It found the highest proper factor of a number by using repetitive subtraction simulate division.
General-Purpose Externally Programmed Computers
General-Purpose Externally Programmed Computers began to appear in the late 1930's and became extinct in the 1950's. They were a short-lived stage in the evolution of computers - Not quite a computer and more than a calculating machine.
ENIAC is often described as the first General-Purpose ComputerI believe this is incorrect. It is not clear that ENIAC, was Turing Complete. In it's original format ENIAC was programmed by physical reconfiguration and this was a complex time consuming task. There were definable computational tasks that ENIAC could not perform.
In programming the ENIAC by plugging cables, its users were literally rewiring the machine each time, transforming it into a special-purpose computer that solved a particular problem. In a sense this is what happens whenever one programs a modern computer; only with the ENIAC, as with the Differential Analyzer from which the concept was derived, the changes were made by a person rather than automatically by the computer itself.
The important point is that however time-consuming the setup period was, it allowed the ENIAC to solve a wide range of mathematical problems, including many that its designers never anticipated. It was not fully a "general-purpose computer" - for example, it could not solve large systems of linear equations as Atanasoff's machine was designed to do. But its ability to be reconfigured to perform an almost limitless sequence of steps, including iterative loops of operations, sets the ENIAC apart from the other electronic calculators described thus far, and places it astride the categories of "calculator" and "computer."
Computing Before Computers. Edited by William Aspray with contributions by W. Aspray, A. G. Bromley, M. Campbell-Kelly, P.E. Ceruzzi, M. R. Williams. copyrighted 1990 Iowa State University Press, Ames, Iowa ISBN 0-8138-0047-1
ENIAC's status as the first computer is largely due to two factors. The, American claim was made in 1946 before the revolutionary significance of stored program computing was widely understood and before knowledge of other earlier devices was widely available.
Only America, was prepared to admit it had developed a General-Purpose computer in the immediate post war years. For 30 years after the War's end the United Kingdom did not mention the crucial role Bletchley Park played in winning the battle of the North Atlantic and significantly shortening the war. They did not mention Alan Turing's vital contributions and therefore, conveniently, did not have to mention how they had driven him to suicide by mercilessly persecuting him for his homosexuality. In particular they did not mention the ten Colossus Mk II machines and the people who built and operated them. These machines were developed to break the German code named Fish produced by the Lorenz cipher machine. Like ENIAC, the Colossus MK II machines were General-Purpose, Externally Programmable machines that supported conditional branching. The first Colossus Mk II was operational on June 1st 1944 in time for the D-day invasion. By contrast ENIAC became operational in the fall of 1945 after the war ended.
Another claim made by the pro-ENIAC lobby is that only ENIAC had any direct decedents. In effect they claim that the secrecy surrounding Colossus Mk II and the obscurity of other machines prevented any of the knowledge gained from being reused. This of course is nonsense. Both Max Neumann and Alan Turing had direct knowledge of Colossus Mk II machines and both were involved in the development of the Manchester Mk I Prototype. Many others from Bletchley Park went on to work on in the fledgling UK computer industry were they were free to use their skills and knowledge of electronic computing even though they remained bound never to speak of Bletchley Park.
An even earlier machine that also lacked publicity but not influence was the one constructed by John Vincent Atanasoff and Clifford Berry at Iowa State University. Together they built a prototype machine in 1939 and a full-scale model in 1942. The Atanasoff-Berry Computer, or ABC as it was also known did not operate for long and was much slower and simpler than ENIAC. It was dismantled during the second world war but not before John W. Mauchly had seen it and quizzed Atanasoff about Its operation. The inventors of ENIAC certainly had knowledge of the ABC and even lost a patent infringement court case over patents filed in relation to the ABC.
But the ABC and Colossus Mk II machines were not the first operational General-Purpose, Externally Programmed machines either. Konrad Zuse was almost completely ignored in his native Germany. During the Second World War he struggled with inadequate funding but still managed to build the Zuse Z3. This was the third in a series of machines that he started in 1934. The Z3 was operational in 1941 and was program controlled by an external program coded on punched movie film, it had a memory and was constructed of relays. In a recent paper Raśl Rojas has demonstrated, at least in theory, how to make Zuse's Z3 a Universal Computer and therefore General-Purpose. But as Rojas points out this is a rather curious result since the Z3 had no conditional logic. Rojas shows how a machine that can only compute sequences of arithmetical operations (addition, subtraction, multiplication and division) can be made to emulate a Universal Turing Machine. This is a remarkable proof but the machine was never programmed in this way. Zuse's machines, except the Z4, were destroyed by allied bombing at the end of the War and he did not resume work on the Z4 until 1948, by which time he had been overtaken. He was visited in Germany in 1949 by IBM and signed some form of short term contract with them so there is some evidence that some of his ideas were adopted by others.
Finally Charles Babbage was the first to design a General-Purpose, Externally Programmed Computer. His design for the Analytical Engine recorded in 1837 stood unchallenged and largely forgotten for nearly a century. Alan Turing and others at Bletchley Park may have been aware of Babbage but his main influences was through Howard Hathaway Aiken who was told of Babbage's work in 1936 and shown a test piece for one of Babbages Difference Engines. He was given a set of books by Babbage's grandson and in an interview with I. Bernard Cohen Aiken pointed to Babbage's books and said
There's my education in computers, right there; this is the whole thing, everything I took out of a book.
Between 1937 and 1943 Hathaway designed and built the IBM Automatic Sequence Controlled Calculator (ASCC) also known as the Harvard Mark I. Like the Zuse Z3 this was a slow relay based externally programmed machine and was the first such machine operational in the United States.
Far from being the first computer ENIAC was one of the last in a line of general-purpose externally programmed machines that started with the design for Charles Babbage's Analytical Engine. Each of these machines is claimed by it's own supporters as the first "Computer" but it is not clear that any of these machines were general-purpose in a practical sense. They all lacked the same essential feature of every modern computer - A memory capable of storing the program. It is this feature that has allowed modern computers to really take advantage of their General-Purpose capabilities.The first modern computer was the first to implement the von Neumann architecture - Baby, the Manchester Mk I Prototype. It's design was directly influenced by Alan Turing, Max Neumann, John von Neumann, J. Presper Eckert and John W. Mauchly. But it's crucial component, the CRT memory store was developed by F. C. Williams and Tom Kilburn who together with G.C. Tootill actually designed, built and programmed it.
Posted by John R. Harris at 09:29 PM | Comments (3) | TrackBack

