{'fraction_non_alphanumeric': 0.020050125313283207, 'fraction_numerical': 0.004177109440267335, 'mean_word_length': 4.546296296296297, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
In the beginning

The history of computers has been the history of two components; memories and software. These two depend heavily on each other, and all else depends on them.
 The early computers had none of either, it almost seems in retrospect. The Harvard Mark I had 132 words of 23 decimal digits, usable only for data. ENIAC had ten registers of ten decimals, each capable of doing arithmetic.
 It was von Neuman who pointed out that putting the program into the memory of ENIAC (instead of reading it from cards) would increase the throughput. Thereafter computers were designed to have data and instructions share the memory.
 The need for larger storage was apparent to all, but especially to programmers. EDVAC, the successor to ENIAC, had recirculating sounds in mercury filled pipes to get a thousand words of storage. The Manchester machine had a TV tube to store a thousand bits.
 Then the reliable magnetic core displaced these expedients, and stayed a whole generation. It was only in recent times when larger memories became available that the programmer had a chance. And of course it is his sophisticated software which makes the modern computer system responsive and effective.