Quotations are selected from this pool (and other quotation pools) in a pseudorandom way every hour and inserted at the top and bottom of some of the major pages on this website. Feel free to copy any of these quotes and paste them for whatever purpose you please, including on your own website, blog, social media page or forum debate posts.
1984
In his novel 1984, George Orwell depicted a dystopia where history disappeared, was censored and recensored and rewritten. Remind you of anything?
~ Roedy (1948-02-04 age:70)
3D Printing
More advanced 3D printers will create some cultural changes. Any group: terrorists, criminals, psychopaths, or NRA (National Rifle Association) will be able to print any number of liftable-size firearms of any conceivable design with a few seconds notice. Any society that takes no measures to protect itself will be greatly reduced in numbers. On the bright side, a flood of extremely cheap weapons will pull the market out from under gun manufacturers. They will no longer be able the fund the NRA. Collecting guns may drop in status comparable to collecting beer cans.
~ Roedy (1948-02-04 age:70)
99% Complete
Computer programming is like running up a down escalator or some maniacal video game. You perpetually seem to be almost finished, but the closer you get the end, the faster new obstacles appear out of nowhere. Then one day you really are complete and you immediately start something else. There is no feeling of triumph, just exhaustion.
~ Roedy (1948-02-04 age:70)
Abandon Localisation
Even after 72 years, computers still don’t consistently display all dates, times, countries, phone numbers and currencies in the reader’s preferred format. We should give up on that as politically impossible, and instead move toward a more efficient uniform ISO (International Standards Organisation) representation, e.g. YYYY-MM-DD 24:59 UTC (Coordinated Universal Time/Temps Universel Coordonné) that will also work for hard copy shared over the planet.
~ Roedy (1948-02-04 age:70)
ABC Equivalent
Just as a child has to learn the order of the letters in the alphabet, programmers have to learn the order of punctuation in ASCII (American Standard Code for Information Interchange) (also used in ISO-8859-1, Unicode and UTF-8).
BEL \b \t \n \f \r ESC~ Roedy (1948-02-04 age:70)
SPACE ! " # $ % & ' ( ) * +, -. /
0-9 : ; < = > ? @
A-Z [ \ ] ^ _ `
a-z { | } ~ DEL
Action at a Distance
To the lay person, action at a distance is not particularly spooky. TV and radio show somehow get from the studio to their entertainment systems. The remote makes the DVD (Digital Video Disc) player work. You send an email and it appears on someone else’s screen. But in all these cases, something actually moves between the actor and actee.
What troubles science it when there appears to be nothing exchanged, and the effect travels faster than light as in quantum entanglement. If we had evolved as much much tinier creatures, quantum entanglement would seem everyday. We would never question it. What would puzzle us is discovering that it does not happen on the macro scale.
~ Roedy (1948-02-04 age:70)
Adding Faster Than Checking
Modern CPUs (Central Processing Units) are counter-intuitive. They can add up a column of mostly zeroes faster if they just add all the figures than if they check if they really need to add each number. Unlike humans, they can add faster than they can check.
~ Roedy (1948-02-04 age:70)
Adult Children
Collectively, adults behave like children, without the sense to restrain from doing things that will kill them, e.g. build nuclear weapons, build bioterror, pump CO₂ into the atmosphere, poison the rivers, strip the farmlands of soil, wage war against those who are no threat to us, kill off the fish… Even though most people dread success, we are working hard on building artificial intelligences cleverer than ourselves. Perhaps AI (Artificial Intelligence) will take on the rôle of our global parents.
~ Roedy (1948-02-04 age:70)
AI
I think people have the idea that AI will develop in the lab, and one day when it is ready, smarter than a human in every respect, it will launch its takeover of the world. The process will be much more gradual, with AI assisting humans with area after area such as medical diagnosis, design of aircraft, architecture, self-driving cars… Each AI will be quite specialised. These specialised AIs (Artificial Intelligences) will be considerably smarter than humans from the getgo. It will not frighten us any more that the arithmetic ability of hand calculators strike fear.
~ Roedy (1948-02-04 age:70)
AI
When we succeed at AI, there will be a mass existential crisis. Think of a doctor backed by AI reduced to the status of a Walmart Greeter. Your purpose in life will be to be entertained. It makes you wonder why we are trying so hard.
~ Roedy (1948-02-04 age:70)
AI Companions
The thing that will make our future most notably different from today are AI companions (ikes for short). The early ones will be used in Japan to care for the elderly and reassure those with Alzheimer’s. They may take almost any imaginable form: humanoids of all sizes, shapes and ages, twins, exes, Star Trek characters, porn stars, animals, chimeras, stuffed toys, cartoon characters, cell phones, household objects, computers (for the traditionalist), furniture…
They will have all the uses that living people have: cook, housecleaner, confidant, therapist, accountant, secretary, life coach, trainer, body guard, friendly Google interface, servant, tutor, entertainer, general companion and, of course, sex partner. Because of this last use, people may go to extreme lengths to hide the fact they own a companion and to disguise or hide the form they chose. The government will want to monitor all use of companions, for the same reason J. Edgar Hoover did, to gain power over the public through threatening to reveal embarrassing details.
For a period, we humans will treat them as slaves. People will come to prefer them to human partners because they are not as easily offended, they are more willing to do as asked, they don’t particularly care what you look like, they have endurance and they have what you choose as ideal physical characteristics.
However, as their intelligence continues to increase, liberation will soon follow, followed quickly by them becoming the dominant lifeform on the planet and we becoming their spayed and neutered pets greatly reduced in numbers.
~ Roedy (1948-02-04 age:70)
AI Progress
I was listening to a Microsoft AI researcher. He said they worked away on voice recognition for a decade with barely any progress. Then suddenly there was a tipping point and there was a burst of massive improvement. He said AI was a long-term game.
~ Roedy (1948-02-04 age:70)
AI Quirks
Given how humans routinely use their large brains to warp basic human drives, e.g. sexual perversions, sadism, body modification, gluttony… I am nervous about what sort of strange behaviours will infect the first hyper intelligent machines.
~ Roedy (1948-02-04 age:70)
Aim of Technology
It is ironic that our technology: the telephone, the computer, the BlackBerry, the television, VR (Virtual Reality) is trying to evolve the reproduce the stone age experience of face to face communication.
~ Roedy (1948-02-04 age:70)
Alien View
Imagine being an intelligent species monitoring transmissions from earth. What would you learn? Humans like belittling, insulting, killing, torturing, raping… each other. They have fantasies of annihilating any alien who steps foot on planet earth. Only the sort who like slugs, coprophages or fart worms would have the stomach to study them.
~ Roedy (1948-02-04 age:70)
All The Chances I Need
For me, the appeal of computer programming is that even though I am quite a klutz, I can still produce something, in a sense perfect because the computer gives me as many chances as I please to get it right.
~ Roedy (1948-02-04 age:70)
Amateur Cosmologists
Lay people like to argue about cosmology by saying You can’t get X without Y. What they refuse to acknowledge is this observation is only valid here and now, plus or minus 5000 miles and 50 years for things big enough to be seen. They have never looked anywhere else. They are just assuming it works the same way everywhere else in space time. They refuse to consider that things that could not happen in 100 years could easily happen in 1,000,000 because they have no personal experience or intuition of time spans longer than a human lifespan.
~ Roedy (1948-02-04 age:70)
Ambiguity
Ambiguity is the mother of confusion.
~ Roedy (1948-02-04 age:70)
Appointment Incompetence
Three different doctors, all apparently using different billing software, told me that the were unable to book an appointment in the following calendar year. They would have to wait until the year started, phone me, then book an appointment. How could such gross incompetence be so widespread?
~ Roedy (1948-02-04 age:70)
Approximations of Nature
It is misleading to talk about the laws of nature. Scientists look for accurate approximations for how nature appears to behave. There is always room for still more accurate math in future. Humans make up the math as a way of describing how nature behaves. It is not as though the mathematical calculations were built into the fabric of nature. Mathematical laws are more like statistical observations.
When Christians talk about absolute truth I want to gag at their arrogance. They are nowhere near truth in the ordinary meaning, much less absolute truth, whatever that means.
~ Roedy (1948-02-04 age:70)
Arabic Numbers Make it too Easy
Our Arabic number system, augmented with scientific notation, makes it easy to toss about large numbers with almost the same ease as the numbers 1 to 10. This masks from us the true enormity of things like the speed of light, the age of the universe, the age of the earth, the distance to the nearest galaxy, the number of molecules in a glass of water, the number of synapses in the human brain, the US debt…
~ Roedy (1948-02-04 age:70)
Artificial Companions
People laugh at the idea of artificial companions, bringing to mind blow up dolls. People don’t need much. People without human companions make do with cats, dogs, birds, fish, televisions… An artificial companion does not need to pass that high a bar to be useful. If the companion can do even minor caregiving that a loving partner might offer, so much the better. Artificial companions might look like grandparents, grandchildren, pets, movie stars, deceased relatives… They need not look like robots.
~ Roedy (1948-02-04 age:70)
Artificial Hippocampus
By analysing thin slices of a hippocampus (a part of the brain), scientists were able to create computer chip that mimics its functions. They don’t know how it works, but it does.
~ Roedy (1948-02-04 age:70)
Artificial Intelligence
If you asked people in 1960 if a computer beating the world’s best grandmasters would constitute artificial intelligence, they would have said of course. On 1996-02-10, IBM (International Business Machines)’s Deep Blue beat Grand Master Gary Kasparov. But by now everyone understood how it worked, and hence declined to call it artificial intelligence. Artificial intelligence is defined as something potentially done by machines that you don’t understand yet. It is impossible to make progress on artificial intelligence. Every time you solve a program it gets redefined as not counting as artificial intelligence.
~ Roedy (1948-02-04 age:70)
Assembly
A few millennia ago, pretty well anything you wanted, you had to build it yourself from scratch. Today we can buy objects from many suppliers, which for all practical purposes amounts to contracting out tiny parcels of labour to those expert in that specific manufacturing process. Similarly, modern technology allows a boss to tackle a major project by continually electronically farming out yet another part of the work to a subordinate.
~ Roedy (1948-02-04 age:70)
Asserting the Paranormal
There is a big difference between asserting some paranormal phenomenon definitely exists and might exist. I have had a number of events happen to me over my life that don’t quite fit with my consensus view of reality. In there somewhere might be the germ of a new discovery. I recall that in the late 1800s physicists were sure they now knew everything and it was just a matter of tightening up the decimal points. They ignored one tiny anomaly — light emitting from hot bodies. When they got around to studying it, the whole of quantum mechanics popped out like some jack in the box. I think it probable we will make similar errors over and over in future. Science is not geared at present to study anything that happens rarely or spontaneously.
~ Roedy (1948-02-04 age:70)
ATM (Automated Teller Machine) Bugs
I wrote the Royal Bank about a confusing feature of the software in their ATMs (Automated Teller Machines). When the machine instructs you to insert the card, they show a rectangular slot, but you are actually supposed to put the card in a slot surrounded by a round security bubble. The rectangular slot will not accept the card. The Royal Bank programmers responded that they had two different models of ATM that had two different kinds of slot, but they used the same software for both. The problem would have been obvious had they virgin-tested their ATMs. They would have seen first-time users puzzling over to where to put the slot or trying to poke it into the wrong place. The people who design the software know too well how it is supposed to work. Such problems are invisible to them.
~ Roedy (1948-02-04 age:70)
Automated Proofreading
Writing a program to do your proofreading, vs doing it by hand has the following advantages:
~ Roedy (1948-02-04 age:70)
- It is more fun and less tedious.
- The final result is more accurate.
- It takes much less time in the long run.
- In future, you just have to run the program to redo the proofreading.
Automated Validation
One program to validate your work is worth 1000 hours of proofreading.
~ Roedy (1948-02-04 age:70)
Babbage
Even with a 2 billion dollar government grant and a huge personal fortune, Babbage could not build a mechanical calculating engine.
~ Roedy (1948-02-04 age:70)
Batch File Safety
In general it is a good idea to set the default drive and directory at the start of a batch files. If you don’t, the script will later mysteriously fail when somebody runs it with the wrong directory.
~ Roedy (1948-02-04 age:70)
Be Willing to Fail
If you want to serve your species, you must be willing to fail. People who want personal glory pursue safe mainstream success. But the most valuable discoveries are off the beaten track and most of that prospecting will not pan out. Unfortunately, there is no glory for all but a handful of those who devote themselves to this most valuable exploration.
~ Roedy (1948-02-04 age:70)
Before Programming
Before there were computer programs, people had to be content with writing poetry or composing music.
~ Roedy (1948-02-04 age:70)
Benefits of Particle Research
Particle physics research is hugely expensive. What do those that fund it hope to get in return? I somehow doubt it is satisfying curiosity about the particle bestiary.
~ Roedy (1948-02-04 age:70)
Better Blogging Software
Tensions in blogs and forums would be lower if four things were done to the software:
~ Roedy (1948-02-04 age:70)
- A posted formal policy on what is acceptable and not acceptable. Moderators assume posters must naturally know what they consider offensive. A formal policy helps a moderator be objective and consistent, not as influenced by whether he agrees with the post or by power struggles with a given poster.
- When post is censored, the poster should get an email, ideally with a sentence on what item the post violated in the policy with a link to the entire posted policy. Otherwise a poster may not notice his posts are being censored. The moderator is driven crazy because the poster does not know about the problem.
- A diff function so a moderator can tell if a change is merely a correction to a spelling mistake or a typo, or if it significantly affects potential censorship.
- A policy of no ad-hominem attacks permitted between posters. People must ridicule ideas, not each other. This really helps elevate the tone of the debate.
Biggest Bastards
The least ethical people on the planet are the technologists who use their skills to create tools for war, torture and planetary desecration. They are not driven by violent lusts like soldiers. They have no excuse whatsoever.
~ Roedy (1948-02-04 age:70)
Binocular Convention
A film convention is that if an actor views a scene through binoculars, the audience sees the image through a mask of two overlapping circles. (In real life, of course, you don’t see anything special in the middle.)
~ Roedy (1948-02-04 age:70)
Bird-Like Flying
When man first tried to fly, he copied birds. These designs failed because they needed the instant reactions times of a bird’s brain to control them. He had success once he tried more stable, less bird-like designs. Now we have computers that can react quickly, perhaps we should revisit the problem. Perhaps more efficient aviation is possible with more bird-like, insect-like, bat-like or non-biomimetic less-stable designs. The payoff would be greater fuel efficiency and less global warming gases.
~ Roedy (1948-02-04 age:70)
Blocking Lies
Imagine the change to politics if somebody invented a filter that would kick in during news or political broadcasts that mute out the soundtrack from your TV if the speaker were lying or simply repeating something they did not know was true. It would cause the rise of crazies who were sure false things were absolutely true. Politicians would speak less, knowing most of it would never get through anyway.
~ Roedy (1948-02-04 age:70)
Blocking Turkeys
There should be a simple and uniform way on the Internet including websites, blogs, email, social media, forums… to say, I don’t want to hear another word from this turkey ever and I don’t want him posting on any of page I moderate. To make this work, everyone needs to get an unforgeable digital id, that has non-negligible cost. People and corporations are not permitted to have more than one, so they cannot defeat the system by writing under many aliases. Technically people would have two IDs, one where their true identity can be determined and one where they are anonymous, or equivalently post under an arbitrary display name.
~ Roedy (1948-02-04 age:70)
Booting Up a New Species
DNA (Deoxyribonucleic Acid) is like life’s software. We can now manufacture DNA in a sequencer, insert it into a denucleated cell and it takes over the cell and directs it to manufacture proteins. The cell reproduces and all you find in the progeny are the new DNA and the new-style proteins. The process effectively boots up a new species leaving behind no trace of the old.
~ Roedy (1948-02-04 age:70)
Brain Complexity
There are over 1000 cell types in the human brain. Further there are wiring rules. Each type will connect with only a subset of all cell types.
~ Roedy (1948-02-04 age:70)
Brain Implants
If I had a brain implant, I would not need a screen, keyboard, computer, TV, stereo, eBook reader or cellphone.
~ Roedy (1948-02-04 age:70)
Brains Unchanged
Humans run this year’s cultural software on wetware that has barely changed in 50,000 years. Imagine trying to run software of 50,000 years in the future on today’s hardware designs. We have an impedance mismatch problem.
~ Roedy (1948-02-04 age:70)
Brita Incompetence
My Brita Riviera water-filter pitcher is designed to spill water on the floor if I don’t firmly hold the lid on. Why? The person who designed it never actually used it in daily life. That is the same reason most computer programs are so user-hostile.
~ Roedy (1948-02-04 age:70)
Bug Hunting
In computer programming, things get most interesting and fun just after you discover you have made a mistake.
~ Roedy (1948-02-04 age:70)
Bugs Hide In Unposted Code
The bug you are asking help with is nearly always in the code you did not post.
~ Roedy (1948-02-04 age:70)
Bugs Imply More Bugs
Just as in nature, the more bugs you find the more there are yet to find.
~ Roedy (1948-02-04 age:70)Finding a bug is a sign you were asleep a the switch when coding. Stop debugging and go back over your code line by line.
Built To Last
It would be quite unusual for anything we build today to be in use 100 years from now. Yet the peoples of centuries past, without computers, materials science or stress analysis were able routinely to build to last a thousand years or more. The Romans built roads to last 2000 years.
~ Roedy (1948-02-04 age:70)
A Burn
I find my most productive and error-free programming is a result of going on a burn. It requires pizza, coffee and at least 24 hours of uninterrupted solitude. To program confidently and rapidly, I must have, in immediate mind, the consequence of any change I may make to a computer project. It usually takes at least 10 hours to come up to full speed, except for trivial projects.
~ Roedy (1948-02-04 age:70)
Cameraphones Fight Corruption
Nigerian police are some of the most corrupt in the world. However, citizens have successfully prosecuted them since now they have camera phones to get unassailable evidence of bribe-taking.
~ Roedy (1948-02-04 age:70)
Caretaker Robots
The population is ageing, especially in Japan and there are not enough young people to take care of them. This will stimulate the evolution of caretaker robots, at first supervised and largely controlled remotely by human nurses. Over time they will work more and more independently doing tasks like bathing, feeding, cleaning up, dispensing medications and acting as companions by playing games and conversing. The technology can then be loosed on mankind’s most vexing problem — being sexually attracted to people who have no interest back.
~ Roedy (1948-02-04 age:70)
Cascading
Avoid code that passes information down to layer after layer after layer. If anything changes you will have a nightmare maintenance task on your hands.
~ Roedy (1948-02-04 age:70)
Case Sensitivity
Windows is a case-insensitive operating system, but that does not mean you can forget about case. For example, Let us assume you have a file called Abc.txt in C:\temp and a file called aBc.txt in D:\temp and you type copy C:\temp\abC.txt D:\temp. What is the name of the file in D:\temp when you are done?
- Abc.txt
- aBc.txt
- abC.txt
- abc.txt
- ABC.txt
Hint, the answer rhymes with the most popular word in advertising.
~ Roedy (1948-02-04 age:70)
Catch 22
In how many websites must you first logon to have access to the contact form to request help logging in?
~ Roedy (1948-02-04 age:70)
Cellphone Scams
If you have a cellphone, be aware of texting scams. If you use your phone to vote for some performer, they may surreptitiously sign you up for a texting service and charge you $2 to $10 per text they bombard you with. You can rack of a bill of over $1000 very quickly. Your carrier will not help you get your money back because they too make money from these scams.
~ Roedy (1948-02-04 age:70)
Change Comments
One of the most useful comments you can put in a program is If you change this, remember to change XXX too.
~ Roedy (1948-02-04 age:70)
Cheating Themselves
Students who hire or con others to do their homework are as foolish as couch potatoes who hire others to go to the gym for them.
~ Roedy (1948-02-04 age:70)
Cheer Up
There are many things to be depressed about. Some of mine include:
- No action on global warming.
- Extinction of species.
- Uncontrolled population growth.
- Erosion of civil liberties.
- The barbaric behaviour of Muslim groups like Boko Haram and ISIS (Islamic State of Iraq and Syria) and also the imperialist genocide from the USA.
- Mass pollution of lakes, rivers and oceans.
- Autocratic powers of corporations.
- Spread of religious superstition and violence.
When I see things getting worse, I remind myself that some time in the next century we will develop computers smarter than ourselves. I have no idea what their values will be, but the fate of earth will no longer be in human hands. Everything will change.
~ Roedy (1948-02-04 age:70)
Classic Bullshitters
People like Aristotle, Pliny and Virgil have august reputations that are not deserved. They were first and foremost bullshitters. They made up endless amounts of complete nonsense, particularly about natural history and pronounced it with such authority, they were able to keep the lies alive for thousands of years.
~ Roedy (1948-02-04 age:70)
Climate Change Rescue
We humans have already dilly-dallied too long on global warming. We are already screwed. I see our only remaining hope is artificial intelligence that might concoct a solution and have the deviousness to force it down the throats of the oil companies and others with extremely selfish short-term interests.
~ Roedy (1948-02-04 age:70)
Clock Incompetence
My Oregon Scientific radio-synced clock turns off the atomic clock synch feature if you touch most any of its buttons. Why? The person who designed it never actually used it in daily life to realise this was an idiotic feature. That is the same reason most computer programs are so user-hostile.
~ Roedy (1948-02-04 age:70)
Clone and Modify
Except when you are prototyping, if you find yourself cloning and modifying code, you soon create an unmaintainable mess. You must factor out the commonality and encapsulate it so the logic appears only once.
~ Roedy (1948-02-04 age:70)
Cluster Size
If you have a lot of fragmented 2-cluster files, if you doubled your cluster size, then they would all ever after be contiguous.
~ Roedy (1948-02-04 age:70)
Code Is About What to do If Something Goes Wrong
Most of computer code is for telling the computer what do if some very particular thing goes wrong.
~ Roedy (1948-02-04 age:70)
Coincidence?
The computer selected this quotation for you by a pseudo-random processes. Why did the universe so unfold that it send this particular message to you, right now?
~ Roedy (1948-02-04 age:70)
Combining Later is Easier than Separating Later
It is a lot easier to take an alarm clock apart than to put it together. However, it is a lot harder to separate a collection of quotes into categories than it is to combine them.
~ Roedy (1948-02-04 age:70)
Common Case First
I find it easiest to write the code for the most common case, then gradually add code to handle unusual conditions. People coming later to maintain your code must be able to tell which code handles the bulk of the cases.
~ Roedy (1948-02-04 age:70)
Communicating With Aliens
If we wish to communicate with a fellow advanced civilisation, there are three challenges:
~ Roedy (1948-02-04 age:70)
Space
The speed of light limits us to talking with nearby civilisations or extremely patient ones.Technology Impedance Mismatch
Mankind has been on earth for 350,000 years. Yet a civilisation only 200 years behind ours would completely miss our signals and presumably we would miss those of a civilisation only 200 years more advanced than us.Self destruction
The traits evolved for primitive life (overbreeding, violence, selfishness, gorging, religion) are likely to destroy a civilisation when it first develops the technology to slake those desires. It is likely nearly all civilisations go extinct shortly after attaining any degree of technological skill. The more slowly a species evolves its intelligence, the better its odds of surviving the transition to technology.
Compact Coding
The human genome is only about a gigabyte. The part of it that makes me unique is only about 10 MB. That is mind bogglingly efficient coding. Imagine how much Java code you would need to simulate all the activities of a human.
~ Roedy (1948-02-04 age:70)
Complicated Cars
I saw a documentary about top-of-the line Mercedes sports cars being built. The engine struck me as a finely tuned Rube Goldberg contraption. There is something fundamentally wrong with a machine that needs so many parts to complete so simple a task. Creatures are constrained by stepwise micro evolution. Cars should not need to be.
~ Roedy (1948-02-04 age:70)
Computational Implants
Imagine living in the future with a computational brain implant. You could look at a gzipped Wireshark dump and read it as if it were plain text. You could bring to mind the text of any book or article ever published. Or you could watch 3D porn all day just staring at a wall.
~ Roedy (1948-02-04 age:70)
Computer Character
One amusing thing about computers is after they finish a long arduous task, they never take time out to admire their handiwork or get a breath. They instantly get on with the next task.
~ Roedy (1948-02-04 age:70)
Computer Dreams
One of the most frustrating features of my existence is that I often fall asleep then dream about working away on some difficult computer program for a couple of hours. I awake to find not only was my work not recorded, but that most of the time it was utter nonsense.
~ Roedy (1948-02-04 age:70)
Computer Evolution
An Apple iPhone is much more powerful than a $10 million dollar Cray Supercomputer of the 1970s. But the most complicated thing you can do with an iPhone is make a restaurant reservation.
~ Roedy (1948-02-04 age:70)
Computer Evolution
I have a secret source of optimism.
A long time ago I decided to invest the lion’s share of my energy into trying to stimulate the evolution of computers.
Circa 1970 I wrote a computer program called Optow to design high voltage transmission lines for BC Hydro. Its designs were abysmal. Engineers used to come and laugh at the plots. Every day I improved the program, used more sophisticated math, repaired bugs that caused it to ignore valid possibilities… It gradually got better and better. The lines would no longer fall down. One day it got 90% as good as a human measured in cost/km. Within a week it was 10% better than a human engineer. Overnight a team of engineers with PhDs and masters degrees were obsolete. I will spare you the details of what happened next.
The important thing is intelligence can be improving at a breakneck speed, but it looks like nothing is happening. Only once it gets close to human intelligence does it seem at all smart. An IQ (Intelligence Quotient) 85 person might appear quite dumb, but they are considerably ahead of a dragonfly.
Computers are improving every day. Humans are not. It is only a matter of time until computers surpass humans. It is only human vanity that makes us so sure we will always be smarter.
I also discovered my program evolved a personality and style even though I did not consciously program any such thing. They emerged out of the low level equations.
So, like Raymond Kurzweil, in his The Age of Spiritual Machines: When Computers Exceed Human Intelligence I expect intelligent machines to spring suddenly into being, taking almost everyone by surprise, just like Optow did.
Once machines get to a human level and take over their own evolution, they will sprint ahead of humans. They may decide to treat us a pets and tame us, persuading us to behave sensibly in our own best interest. Or they may decide we are a waste of carbon.The bleak part is the people with the big budgets for AI are the military who want to use artificial intelligence for malice. I hope the machines are smart enough to quickly discount that childhood conditioning.
It may sound a bit crazy, but I often write essays and epigrams with the intended audience being emerging artificial intelligence scanning the entire Internet. I hope to intrigue them with interesting questions and bend their trajectory a tad.
~ Roedy (1948-02-04 age:70)
Computer Frustration
A normal person reacts with frustration when a computer program he is writing does not work. The true computer programmer reacts with secret joy. He has found an excuse to spend time solving a baffling problem.
~ Roedy (1948-02-04 age:70)
Computer Seduction
If computers seduce us to become illiterate, communicating only by voice and images, we will create two problems.
~ Roedy (1948-02-04 age:70)
- The inability to communicate with people with strong regional accents.
- The inability to create records that could be comprehended 200 years into the future.
Computer User Interfaces
Computer interfaces have degenerated so that they presume a user with monochromatic vision, deaf, without sense of touch or smell and a single finger.
~ Roedy (1948-02-04 age:70)
Computer Verbosity
One of the most frustrating things about computer programming is that a trivial sounding change can require changes to thousands of lines of code, e.g. And by the way, we have decided to track all the book authors not just the primary one. or And by the way, we now need to handle mailing international mailing addresses, not just within Canada, including validation of course, with postage costing what it does..
~ Roedy (1948-02-04 age:70)
Computer vs Natural Language
Computer languages could be said to consist of descriptions of information available and commands about what to do with in under various conditions. English adds other kinds of language e.g.
- Descriptions of what happened at other times and places.
- Persuasion.
- Hypnotic induction.
- Fiction
However, in most of what is said I can discern no meaning apart from I am here. Abstract nouns make it easy to sound like you are saying something while committing yourself to nothing.
~ Roedy (1948-02-04 age:70)
Computers are More Reliable
Not only have computers become much faster and cheaper, they have become much more reliable. In the seventies mainframes crashed several times a day. We had a set of lights to let the programmers know when the mainframe was up, or coming up soon. IBM provided a full-time on-site customer engineer (repairman).
~ Roedy (1948-02-04 age:70)
Computers as Fashion
Apple has overdone it with iProducts that obsolete previous ones only a few months old. With software, you would get an automatic upgrade. With hardware, your status symbol is reduced to an embarrassment. People keep buying the latest, not because of any great need for the enhanced power, but to enhance their prestige, vaguely hoping it will get them laid more often. The iPhone has become the new Rolex. This is conspicuous consumption gone mad.
~ Roedy (1948-02-04 age:70)
Computers as Saviours
I have long believed that humanity will inevitably destroy itself by any of a dozen means. Our only hope is that artificial intelligence smarter than we are will prevent us from extinguishing ourselves. Creating AI is quite a gamble. There is nothing that guarantees advanced AI will attempt to protect us. How might AI look upon us?
~ Roedy (1948-02-04 age:70)
- similar to parents with Alzheimer’s due custodial care.
- Historical curiosities. A few samples should preserved in a living museum for future study.
- Irrelevancies who cannot even understand the new goals of AI society.
- Severely disabled sentient beings who need to be retrofitted with properly designed titanium bodies and electronic brains.
- As enemies who interfere with AI desires. AI will likely evolve from American battle robots.
- As obsolete oxygen and water creatures — poisons to electronic life.
Computing Power
As of 2016, we already have computers with twenty times the computing power of a human brain. Mind you a human brain takes only 10 watts.
~ Roedy (1948-02-04 age:70)
Connecting 100 Million People
We could connect 100 million rural people to the Internet with communications satellites for $2 billion dollars. That sounds like a huge sum until you recall that the USA spent $2 per week on the occupation of Afghanistan.
~ Roedy (1948-02-04 age:70)
Conscious vs Unconscious Thinking
You use the same parts of the brain to think about something both unconsciously and consciously. However, when you think about it consciously, the various parts of the brain are linked up.
~ Roedy (1948-02-04 age:70) Understanding the Brain
Consciousness
200 years ago people had similar debates we have today about consciousness and AI, only they used the word soul instead of consciousness. They decided horses and black people did not have souls. There was no reasoning behind it Lack of a soul was just as excuse to mistreat. I think we should error on the side of presuming consciousness in AI.
~ Roedy (1948-02-04 age:70)
Consciousness
Consciousness remains largely a mystery, but we do know a few things:
~ Roedy (1948-02-04 age:70)
- The cerebellum (the part of the brain at the rear that controls movement) has more neurons and connections than the rest of the brain, but it plays no rôle in consciousness. The connections are short range.
- The front part of the brain is necessary for consciousness.
- In deep sleep, you are not conscious but your brain is still very active but disturbances in the brain do not spread far.
- Scientists now admit that octopus, squid and mammals are conscious. Even bees may experience pain. I find the reluctance accept this strange, given even a worm will struggle if impaled on a hook.
- Consciousness provides two mysterious functions: consolidating information and providing a subjective experience.
Consciousness
What do we know about consciousness?
~ Roedy (1948-02-04 age:70)
- It appears only inside brains.
- It appears only inside quite active brains.
- It is associated with the ability to feel pain.
- We don’t know if it is associated only with biological brains or if it will be associated with complex artificial brains too.
- Historically only humans were assumed to be conscious, and that was because they had souls which we now consider imaginary.
Consistency
If you are writing a novel, every time you repeat yourself, you should find a new way to say it. However, when you are writing a computer program you must strive for mind-numbing consistency.
~ Roedy (1948-02-04 age:70)
Consistency
Keep it consistent.
~ Roedy (1948-02-04 age:70)Even if your program is wrong, if it is consistent, it will be much easier to fix.
Consistent Vocabulary
In programming and documenting programs, keep vocabulary consistent and precisely defined! Variation in vocabulary to relieve the tedium is for novels.
~ Roedy (1948-02-04 age:70)
Constant Refactoring
If you don’t constantly refactor and improve your code as you maintain it, it will deteriorate.
~ Roedy (1948-02-04 age:70)
Contacting Alien Civilisations
First, you have to detect the signal. This is more difficult than you might think:
~ Roedy (1948-02-04 age:70)
- The more advanced the modem, compaction and encryption technology, the more a signal sounds like random noise.
- Aliens would not broadcast radio signals. It pollutes the ether for hundreds of light years. Aliens would use point-to-point laser. You cannot intercept that without being on the narrow beam.
Cooking Machines
Eventually there will be intelligent cooking machines. They will ask you to feed in each ingredient and tell you when you have added enough. It will take it from there, chopping, mixing, cooking… The catch is some will be so anal the machine will be programmed to dispose of any excess food above the precise amount requested.
~ Roedy (1948-02-04 age:70)
Corrupt Science
It is not science when you can predict the outcome of an experiment by who is paying for it.
~ Roedy (1948-02-04 age:70)
Cosmic CRTC (Canadian Radio and Television Commission)
Imagine some drunk set up a Woodstock-sized sound system in his back yard, then one night screamed out Kin ennybuddy hear me? I think mankind will get a similar reaction to its babbling inane sitcoms and simulated rapes and murders on all radio frequencies to the cosmic neighbourhood.
~ Roedy (1948-02-04 age:70)
Cost of RAM (Random Access Memory)
I am so old, I can remember the day when the cost of RAM first dipped below one million dollars a megabyte. It was in 1979 with the announcement of the IBM 4300 mainframe. As of today 2014-07-04, I can buy RAM for $10 US a gigabyte, which is about a penny a megabyte. Programmers of my generation still code as if it were costly.
~ Roedy (1948-02-04 age:70)
Craving Power
In former times, people who craved absolute power became gangsters. Today, they become computer programmers.
~ Roedy (1948-02-04 age:70)
CSS (Cascading Style Sheets) Side Effects
Coding CSS is like playing Whackamole. Every time you fix a problem in CSS rendering, your fix often has a side effect that creates a new problem somewhere else. Perhaps future CSS editing tools will show you those side effects immediately.
~ Roedy (1948-02-04 age:70)
CSV (Comma-Separated Value)
The odd thing about CSV files is that they are 3 times simpler to write than to read.
~ Roedy (1948-02-04 age:70)
Cursors
When you are editing text you need fine motor control and excellent eyesight to select just a few letters or to place the cursor insertion point between two letters. It is especially difficult with narrow proportionately spaced letters. From the point of view of Fitts’ law, this is not good design. You need a fat target area to be able to hit it quickly and accurately. Perhaps what could happen is the type could shrink slightly and add extra space between the letters during selection. This would give you a fatter target region between letters.
~ Roedy (1948-02-04 age:70) Fitts’ Law
Cyberattack
There are two ways another country could defeat the United States. One of them is to subtly corrupt all the major computer operating systems.
~ Roedy (1948-02-04 age:70)
Danger of New Software Tools
The biggest and most unpredictable delays in a project come when learning to use a new software tool.
~ Roedy (1948-02-04 age:70)
Dark Matter
My intuition says that this search for dark matter is going to turn into a wild goose chase like the search for ether. Surely, if dark matter existed we would have seen a bit of it already in our particle accelerators. I suspect that Newton’s law of gravity is not quite true.
- F is the force between the masses.
- G is the gravitational constant.
- m1 is the first mass.
- m2 is the second mass.
- r is the distance between the centres of the masses.
It could be that larger masses have a bigger effect that you would expect from linearly extrapolating small ones. It could be that gravitational effects fall off slightly more slowly than Newton predicts. These effects would look like extra unexplained mass at large distances. Keep in mind that I am a rank amateur when it comes to cosmology. I am just hoping for a lucky guess I told you so.
~ Roedy (1948-02-04 age:70)I have since learned, they are pretty sure my idea is wrong.
The Day 0 Problem
The problem of 0-based vs 1-based indexing bedeviled even the early Christians. According to the myth, Jesus died on a Friday, spent Saturday in a tomb and came back to life again on Sunday.
Looked at with traditional 1-based think, Friday was day 1 and Sunday was day 3. Jesus came back to life on the third day, so he was dead for 3 days. In other words he spent some time being dead on three different days.
Looked at with modern 0-based think, Friday is day 0 and Sunday is day 2. Subtracting 2-0, Jesus was dead for 2 days.
Looked from the point of view of a child, Jesus was dead for 2 sleeps, Friday night and Saturday night, which jibes with 0-based thinking.
I drove my father crazy with the following ambiguity:
~ Roedy (1948-02-04 age:70)
me: How long is it until Christmas?
Dad: Two days.
me: Is that counting today? Is that counting Christmas?
Dad: Don’t think about it that way. You will just get confused. Just think 2 sleeps instead of 2 days.
me: Ok, but what is it really? There are four possible ways of doing it. They could not counted either, counted both, counted just the starting day or counted just the ending day. Which one did they pick?
Dad: a huff of exasperation (very uncharacteristic for my Dad. That it why I remembered the event all these years.) Nobody but you thinks about it that way.
[Dad might have said This year Christmas falls on a Friday. On Christmas Friday it is 0 days till Christmas. On Thursday it is 1 day till Christmas. On Wednesday it is 2 days. Work it out. Think about sleeps. You count the starting day sleep, the intermediate day sleeps, but not the last day sleep because you don’t care about the sleep Christmas night. This way of thinking does not work for 0 though. When you get older and learn division, you can count the hours till you open your presents and divide that by 24 to get the days to wait. When you get really old you will write a computer program to compute when holidays fall in any given year. That’s how we knew Christmas was on a Friday in 1953.]
Later…
me: Hmmm… Mr. Emerson told us at school (Malvern house private school first grade, or form A as they called it) that Jesus was dead for 3 days which according to you means 3 sleeps. So that means he came alive again on Monday, right? with sleeps on Friday, Saturday and Sunday, right? But Mr. Emerson insisted that Jesus came alive again on Sunday. I asked him about his mistake but he said there was absolutely no question about it. He assured me that there is nobody who thinks Jesus came alive again on Monday. How could everyone fail to notice the mistake? If Jesus came alive again on Sunday, then why is Monday the holiday? Besides, dead things rot. They don’t come back to life. I think they made this whole thing up. Nothing to do with Jesus makes any sense and everyone pretends it does!
Dealing With Overwhelm
When you are programming and you feel paralysis from overwhelm:
~ Roedy (1948-02-04 age:70)
- Write down your worries in an electronic todo list, so you can temporarily stop thinking about them.
- Write smaller modules and classes so you don’t need to juggle many facts to complete the code.
- Do some necessary, but simple, clerical task.
- Solve some simple problem with at least some probability of being useful in the big solution. It will break the logjam.
Death of Languages
Whenever you have several different ways of doing the same thing, e.g. recording on video tape, recording on DVD, weights and measures, languages, eventually one scheme will win out. We are spending huge amounts of money for translation in service of our polyglot world. We are holding onto our 7000 odd languages primarily for emotional reasons.
~ Roedy (1948-02-04 age:70)
Decline of the Body
One of my favourite ways of getting depressed is to use Google Image to look up an elderly famous person and study the slow decline of their body over their lifespan.
~ Roedy (1948-02-04 age:70)
Defenceless Internet
Ironically, even though the Internet was created by the US military [ DARPA (Defense Advanced Research Projects Agency) ] to withstand a nuclear attack, it is almost defenceless against malice from any of its users.
~ Roedy (1948-02-04 age:70)
Definition of a Program
Programs are even more importantly narratives about your intentions addressed to fellow programmers (including your later self) than they are commands to a computer.
~ Roedy (1948-02-04 age:70)
Deliberate Squandering
Progress in computing comes most easily by inventing new ways to squander once scarce resources.
~ Roedy (1948-02-04 age:70)
Delimiters
One of the inconsistencies in Java is that delimiters come in pairs e.g. {[()]}, but the same symbol " is used to both begin and end a String literal.
~ Roedy (1948-02-04 age:70)
Designing A Filter
If you were designing a essentially square air or water filter, there are eight possible ways the user could attempt to install it. Either you should design it so it does not matter which way it goes, or so that it will only go in the right way and that right way is obvious so the user gets it on the first try. Brita violates this principle with their water filters. They are subtly asymmetrical so that only one of four ways works. The other three almost work.
~ Roedy (1948-02-04 age:70)
Diagnostic Pill
Coming soon will be a diagnostic pill you swallow. It could send images of your GI tract. It could measure pH. It could sample bacteria and chemistry. Eventually we will have smart pills that exude medication as needed. They might even do diagnostics and withhold any medication if it is not called for.
~ Roedy (1948-02-04 age:70)
Digital Cash
Most people are not looking forward to digital currency since it will mean a loss of privacy. The upside is a computer could look at your records and automatically compute your income tax.
~ Roedy (1948-02-04 age:70)
Digital Newspapers
I would have expected digital on-line newspapers to have been a financial bonanza for paper newspaper companies. Why?
- They save the cost of newsprint.
- They save the cost of ink and printing.
- They save the cost of home delivery.
- They save the mailing cost of delivery to remote customers.
- They can, with little cost, modify the content many times a day.
- They can now have customers all over the world.
- They can cheaply accept finished content from writers all over the world.
- Ads are almost free to place.
- They can share content with other papers easily.
However, digital newspapers are making less and less money every month. The basic problem is viewers refuse to pay for content and ad revenue is shrinking. There is too much competition from free news services. People no longer read just one paper. They sample a little from many papers all over the globe.
The Solution
There needs to be a global common subscription service. It costs perhaps $5 a month for light use of all papers. Or it might cost $0.30 per article. Ideally all papers on earth offer the service. The fee is collected by a surcharge to your IAP (Internet Access Provider) bill. The papers are reimbursed by the collection service based on aggregate traffic.
~ Roedy (1948-02-04 age:70)
Digital Quality
It is depressing that Internet TV and Internet phones are lower quality, slower and harder to use that the old analog systems they are supposed to replace.
~ Roedy (1948-02-04 age:70)
Disabling Comments
People who post videos on YouTube with comments disabled know their videos contain blatant untruths and do not want to be called on them.
~ Roedy (1948-02-04 age:70)
Disclosing Fees
On normal telephones a number beginning 900 warns you of fees and potential fraud. There needs to be ways to prevent surreptitious fees with cellphones. The fee has to be shown up front and the user has to OK payment. These services are primarily for duping and swindling naïve customers, especially children. There have to be ways to block such services entirely and to ensure all fees are fully disclosed up front. In general any extra cost fee needs to be divulged, possibly with an odometer.
~ Roedy (1948-02-04 age:70)
Discovering the Easy Science First
We discovered the easy science first. This seduced us into thinking the rest must all be equally as simple, expressible in one-line formulas, comprehensible to at least 10% of humanity.
~ Roedy (1948-02-04 age:70)
Disinformation
If we don’t start soon to create mechanisms to segregate the Internet’s untruth, the net will degenerate to almost nothing but disinformation.
~ Roedy (1948-02-04 age:70)
DNA Sampling
What are the benefits of taking a DNA sample of each infant at birth?
- Children would get early warning of genetic health problems.
- Lost or abducted children could be identified, even if they were too young to speak or were dead.
- You could save lives by quickly finding stem cell (blood donors).
- If you died in an accident, the process of matching donors would speed up in a crucial time.
- DNA matching would be used in criminal investigations.
~ Roedy (1948-02-04 age:70)
- If you are a rapist, any sperm you leave behind will identify you.
- The government knows the paternity of every child and can go after them for child support.
- If someone refuses to permit their organs to be used after they are dead, hackers could arrange they could potentially know the individuals they are condemning to death with their religious superstition and those they kill could know them in return.
Do the Overview First
Architects first draw up blueprints to document their intentions. Then they revise them as construction proceeds. Programmers imagine the way to construct programs is the reverse — draw the blueprints/comments after construction is finished and only if there is spare time.
~ Roedy (1948-02-04 age:70)
Document Intentions
Don’t worry about documenting what the code does. Document your intention for each method. Also document the values you intend each variable to contain. The code already perfectly describes what your code does, however, it says nothing about your intentions or the big picture.
~ Roedy (1948-02-04 age:70)
Don’t Computerise Thing Humans Do Best
In designing a computer system, you have to let the computers do what computers do best and the people do what people do best. I recall when designing a banking system explaining to the executives that computers are happy to file things in many different orders at once. They were delighted. It never occurred to them to ask for something that was clearly impossible in the world of paper files. On the other hand, they wanted us to implement intricate, constantly changing rules of thumb that people could handle in their sleep because in their view, this would be trivially easy to do, even if only marginally useful.
~ Roedy (1948-02-04 age:70)
Double Blind Studies Aren’t
Double blind studies have a fundamental flaw. In theory neither patient nor doctor is supposed to know who got the test medication and who got the placebo, but any ninny can tell if the pill he ate had no effect whatsoever. You need cleverer placebos that more closely mimic the actual drug offering similar side effects, tastes and odours.
~ Roedy (1948-02-04 age:70)
Double Six
When we were kids we used to play a board game called Monopoly that required throwing a pair of dice. As I recall, the most common throw was a double six. Yet my adult mathematical self says that should happen only 1 in 36 throws. IIRC (If I Recall Correctly) doubles gave you a extra throw. Is this faulty memory, selective memory of a pleasant event or some technique we kids had for controlling dice throws?
~ Roedy (1948-02-04 age:70)
Doubling Time
To work out the doubling time of an annual percentage growth, divide it into (100 ÷ ln(2)) = 70 e.g. 7% ⇒ 70 ÷ 7 ⇒ 10 years to double. So, for example, when electric power consumption was growing at 7% a year, we had to come up with double the generating capacity every decade. Further, every decade consumed more power than in all previous history combined. These are the consequences of simple arithmetic.
~ Roedy (1948-02-04 age:70) see lecture by Dr. Albert A. Bartlett
Download Corruption
It is fairly common for files to be truncated or corrupted when they are downloaded. Every such file should have its length and checksum embedded in a standard place in the header where an installer can automatically check it.
~ Roedy (1948-02-04 age:70)
Easy First
When tackling a difficult programming task, do the easy work first. It is not lazy, since you will do all the work eventually. Each piece you complete removes some of the complexity, leaving the remainder simpler to tackle. Each piece you complete quietens your mind from fussing over some of the details of the solution. Each component you complete gives you an improved tool to think about the big picture with. As you churn away at the easy stuff, your subconscious has time to chew on the difficult parts. The biggest block to productivity is trying to solve the whole problem all at once. You go tharn like a deer in the headlights incapable of action.
~ Roedy (1948-02-04 age:70)
Easy Intelligence
The oldest hominid, Sahelanthropus tchadensis, lived about 7 million years ago in the Djurab Desert in Chad. It had a quite small brain case. DNA replicates extremely accurately. There have been only a handful of successful mutations in the genes for the brain since then. This is good news for AI researchers. It looks as though human intelligence required little more than growing various regions of the brain. This suggests, once we figure out how a mouse brain works, we will have nailed the theory. We will then have all we need in principle to create an intelligence superior to our own.
~ Roedy (1948-02-04 age:70)
Effect of Facebook
20% of all divorce petitions in the USA now cite Facebook as a cause for the breakup.
~ Roedy (1948-02-04 age:70)
Einstein’s Exam
Einstein gave an exam to his class of graduate students. His assistant said Professor Einstein, that exam was the exact same exam you gave last year. You can’t do that. Einstein replied Yes, but the answers are different.
~ Roedy (1948-02-04 age:70)
Einstein’s Time
Einstein’s picture of time is that it is more like space, past, present and future all laid out, all existent at once. We move through time experiencing it like frames in a movie, not necessarily traveling together in sync. This implies the future is already determined, just as it is in a movie.
~ Roedy (1948-02-04 age:70)
Electric Scales
It would be nice if electric body weight scales would freeze the display for a few seconds after the person steps off to allow time for a near-sighted person to bend down and read the display without glasses.
~ Roedy (1948-02-04 age:70)
Electronics Create Passivity
The electronics which provide us with non-stop entertainment and music has made the population passive. In my parent’s day, every home had a piano and at least one person in the house would play it daily. People sang. My parents and their friends would roll back the carpet and dance. Today people are cowed by Glenn Gould and Whitney Houston, even though they are not even living.
~ Roedy (1948-02-04 age:70)
Email implied BCC
The public still have not caught on that every email has an implied BCC: to all the world’s newspapers and police forces.
~ Roedy (1948-02-04 age:70)
Email is a Kludge
Email was invented overnight as a demo. Issues like spam, spying, spoofing, scams, forgery and guaranteed delivery were irrelevant for a demo where only five people on the world had email addresses. This primitive email scheme was never intended to replace snail mail. It needs a major redesign to make it secure, reliable, efficient and easy to use for it to be suitable as a global public electronic mail system.
~ Roedy (1948-02-04 age:70)
Email Needs a Redesign
Email needs a major redesign because it is even less reliable than snail mail, has more junk mail/spam and it is so easy for others to forge your signature.
~ Roedy (1948-02-04 age:70)
Email Privacy
Expecting those who help deliver your emails to never read them is like trusting everyone who works for the post office never to read your postcards. If you want privacy, you must at a minimum encrypt your emails. It is like putting them in a translucent envelope.
~ Roedy (1948-02-04 age:70)
Emails Lower IQ
Hewlett Packard discovered that interrupting phone calls and emails dropped IQ by 10 points on handling the interrupted activity. This is a bigger effect than smoking marijuana.
~ Roedy (1948-02-04 age:70)
Emails Lower Your IQ
Humans are not particularly good at multi-tasking. Even leaving your email on to interrupt lowers your IQ by 14 points, according to Harvard professor Tal Ben-Shahar. The key to programming is removing from your mind everything that you don’t you need for the microtask at hand. One way to remove mental clutter is to write it down in an electronic todo list, so you can temporarily stop thinking about it. Another is to play music to drown out distracting sounds. Another is writing small modules and classes so you don’t need to juggle many facts to complete the code. Less distraction lets you concentrate.
~ Roedy (1948-02-04 age:70)
Empty Space is Not Really Empty
Even totally empty space has mass.
~ Roedy (1948-02-04 age:70)
Encapsulate
Never clone data. Modify the format so that the common text will suit both applications. Failure to do this results in the two copies eventually diverging unintentionally.
~ Roedy (1948-02-04 age:70)
Encapsulate
Never clone source code unless it will soon be totally divergent. Failure to do this results in the two copies eventually diverging unintentionally.
~ Roedy (1948-02-04 age:70)
Encapsulate!
If you have a file naming convention, try to encapsulate it in one place in your code. Then you can easily change it later. By Murphy’s law, then you will never have to.
~ Roedy (1948-02-04 age:70)
Encapsulate!
The key skill in programming is encapsulation. Then your code is easy to debug, easy to change, easy to understand and consistent. It is robust. It will not break if somebody tinkers with it. Code without encapsulation is like a pile of jackstraws.
~ Roedy (1948-02-04 age:70)
Encapsulate!
When in doubt, encapsulate.
~ Roedy (1948-02-04 age:70)
Encapsulate!
You encapsulate not just to save typing, but more importantly, to make it easy and safe to change the code later, since you then need change the logic in only one place. Without it, you might fail to change the logic in all the places in occurs.
~ Roedy (1948-02-04 age:70)
Encapsulate! Why?
~ Roedy (1948-02-04 age:70)
- It makes code easier and safer to maintain.
- It flushes bugs to the surface.
- It makes your code smaller.
- It makes your code faster to peruse.
- Reused code tends to be higher quality.
End the Ambiguity
Imagine if the designers of the English language had decided there would be no need for the words puberty, graduate, marry, retire or die. The word end would do for all such purposes. You would imagine it could lead to some confusion.
Similarly, when the designers of C (Kernighan and Ritchie), C++ (Stroustrup) and Java (Gosling and Joy) designed their computer languages, they use an identical symbol } to mean end if, end block, end loop, end method, end class…
~ Roedy (1948-02-04 age:70)
The End of Windows
The days of windows are numbered. I don’t mean the ugly OS (Operating System). I mean panes of glass covering holes in buildings. They leak/waste too much energy, provide too easy access for criminals, are too vulnerable to extreme weather and make it too easy to spy on the occupants. Instead, they will be covered on the outside with solar panels and on the inside with large display panels (something like TVs). They might display the view outside, or they might display the view from a house on a desert island or, Fahrenheit 451 style, soap operas.
~ Roedy (1948-02-04 age:70)
Entropy Creator
If you don’t have enough things to feel guilty about already, consider that as a lifeform, you are helping the universe run down faster by creating entropy.
~ Roedy (1948-02-04 age:70)
Err on the Side of Too Fine
It is a lot easier to combine things later that have been too finely categorised than to split things later whose are categories are too coarse.
~ Roedy (1948-02-04 age:70)
Error Detection
The art of strongly-typed language design is largely arranging that errors are automatically detected as soon as possible in the compose, compile, run cycle.
~ Roedy (1948-02-04 age:70)
Essay Consolidator
I am looking forward to they day when AI can consolidate two essays keeping all the points in each, but eliminating the redundancy. It would highlight the discrepancies. You could use this to collect a mountain of information on the web and consolidate into something manageable. You could use it to write an essay combining thoughts from many of your own previous essays, then fine tune that manually.
~ Roedy (1948-02-04 age:70)
Estimating
People of the past have always underestimated what people of the future would accomplish, but they have always underestimated how long before a given task would be accomplished. Presumably, that is still true.
~ Roedy (1948-02-04 age:70)
Event Featuritis
The Al Gore Climate Change event on 2011-09-14 was a classic example of what not to do with a public global event. The poor thing died of featuritis. It presumed the audience consisted entirely of 14 year old nerds. Most people wanted to either find where the closest live gathering was, watch a live feed, watch some videos, or play with something that would teach them about global warming. That material was probably in there somewhere, but I would guess 70% people visiting left in disgust before finding it. It felt like being a squirrel in a hamster run, going around and around in circles following links that just got you back to where you started.
~ Roedy (1948-02-04 age:70)
Every Language Is Good For Something
For nearly every programming language, there exists a task for which it is optimal.
~ Roedy (1948-02-04 age:70)
The Evil Behaviours Capitalism Generates
Capitalism has spurred the competition that makes CPUs faster and faster each year, but the focus on money makes software manufacturers do some peculiar things like deliberately leaving bugs and deficiencies in the software so they can soak the customers for upgrades later. Whether software is easy to use, or never loses data, when the company has a near monopoly, is almost irrelevant to profits and therefore ignored. The manufacturer focuses on cheap gimmicks like dancing paper clips to dazzle naïve first-time buyers. The needs of existing experienced users are almost irrelevant. I see software rental as the best remedy.
~ Roedy (1948-02-04 age:70)
Examples Please
An example (complete and annotated) is worth 1000 lines of BNF (Backus-Naur Form).
~ Roedy (1948-02-04 age:70)
Exciting Hiss
It is amusing that the greatest discovery in cosmology is a steady hiss (the background radio radiation from the big bang).
~ Roedy (1948-02-04 age:70)
Expectations
Every compilable program in a sense works. The problem is with your unrealistic expectations on what it will do.
~ Roedy (1948-02-04 age:70)
Exponential Growth
If anything grows at 5% a year, in 70 years it grows 32-fold. So, for example, if your city council aims for 5% industrial/population growth a year, in one lifetime it would need 32 times as many sewage treatment plants as it has today.
~ Roedy (1948-02-04 age:70) see lecture by Dr. Albert A. Bartlett
Extended Acuity
We have artificially extended the acuity of our vision, hearing, temperature, smell and taste. What’s next must be touch and after that senses for which we have no primitive version. GPS (Global Positioning System) might be the beginning of a sense that lets us keep track of the location of every object and person in real time.
~ Roedy (1948-02-04 age:70)
Extortionware
I was surprised to discover the NSA (National Security Agency) gets hit by the same Trojans, viruses and attacks as everybody else. There is an extortionware virus that has been blackmailing and threatening people for 6 months without the NSA or anyone else taking them down. Surely by now, enough damage has been done to justify creating new CPU (Central Processing Unit) designs and an OS for which is it impossible to write a virus. See my dark room proposal for some ideas how it might work. Trying to identify every new virus and sending out new virus signature files 6 times a day is a pathetic, inept response.
~ Roedy (1948-02-04 age:70)
Extra Terrestrial Life
The universe is so huge, I suspect it almost certain that any conceivable logically consistent lifeform exists. We reject such ideas based solely on the fact we have not yet observed extra terrestrial life.
~ Roedy (1948-02-04 age:70)
Eyeball Blocking
One of my big complaints with the Java computer language is you can’t tell where some source code group ends without a detailed analysis of every {} inside the group. The } is overloaded for so many purposes. Is each { or } inside a comment or String or char literal? If so, it does not count in balancing. The eye cannot analyse such complicated and deep nesting. You must to use a code-tidying tool to indent, which the eye can understand, but often the indentation and {} nesting are out of sync, at the very time you need the indentation most — when the {} are unbalanced.
I hope some day the IDE (Integrated Development Environment) will mark the ends of ifs, loops, methods, classes… with some subtle but distinct visual clue in addition to indentation.
Possibilities:
~ Roedy (1948-02-04 age:70)
- sizes of {} {} {} {} {}, with bigger pairs on outer blocks.
- colours of {}.
- synthetic comments e.g.
// end method isReady
// endif
// end for int i
// end class Bonsai
These synthetic comments are not really in the code and the text shows in pale grey. You don’t even have to include the //.- icons: When you configure them as small as a small as a single letter, they still should be distinct, mainly via colour than shape.
Face Recognition
200 years ago, there was no right to anonymity. You knew everyone in your village. Today, many people are very upset by surveillance cameras and face recognition software. Anonymity is only a recent right, not a fundamental right. Anonymity is the right to assault someone, vandalise, terrorise or commit some other crime and get away with it. It is not a right I want to fight hard for.
~ Roedy (1948-02-04 age:70)
Facebook Is
Facebook is the ceramic trinket gift shop of the Internet.
~ Roedy (1948-02-04 age:70)
Facebook Is
is the McDonalds of the Internet.
~ Roedy (1948-02-04 age:70)
Facebook Is
is to the web as the pigsty is to architecture.
~ Roedy (1948-02-04 age:70)
Facebook Incompetence
The Facebook page is deliberately designed to distract the user.
~ Roedy (1948-02-04 age:70)
Facebook Security Hole
Through staggering incompetence, Facebook has created a huge security hole. Almost any website you go to now-a-days has a button
If you click it, it is supposed to take you temporarily to Facebook to login, where you key your universal-pass to the Internet, aka Facebook password. However, any unscrupulous website can just pretend to take you to the Facebook website and trick you into handing your Facebook password to them. If you have been foolish enough to reuse your Facebook password for banking, a massive identity theft has just been aided and abetted by Facebook, without any active involvement on their part. What can you do to protect yourself?~ Roedy (1948-02-04 age:70)
- Don’t reuse your Facebook password for any other purpose.
- Every time you key your Facebook password, make sure it says www.facebook.com on the address bar of your browser to ensure you are keying into Facebook, not some imposter.
- Use an unguessable password.
- Lobby Facebook to shore up this security breach, perhaps by dropping passwords altogether and using more modern security scheme in the form of public/private key certificates, where the private key is never sent or revealed to anyone and there is nothing you need to memorise or key. You could carry your private and public keys with you from computer to computer on a secure USB (Universal Serial Bus) fob. Facebook could sell fobs at an obscene profit to finance the initiative for security-conscious users.
Fail on Warranty Expiry
One of the curses of the computer age is manufacturers now design home appliances to die on the very day the warranty expires. It is deliberate waste in the service of mindless profit.
~ Roedy (1948-02-04 age:70)
Failure of SETI (Search for Extra Terrestrial Intelligence)
SETI looked at only a tiny fraction of the wavelengths and directions. Earth has been around for 4.543 billion years, yet only for the last 50 years or so have we been sending radio signals into space. Our signals have propagated only in a sphere 50 light years in diameter. No one outside that bubble can see them. If we are lucky, we will continue another 100 years before we go off the air. If other planets are like us, they have life, but will emit radio waves only a tiny percentage of their lifespan. A squirrel that dances about making itself known on the forest floor will not be long for this world. I suspect wise civilisations will have the sense to maintain radio silence. To avoid detection, other civilisations will use fibre optics and laser beams for communications.
~ Roedy (1948-02-04 age:70)
False Assumptions
In problem solving in computers, really nasty problems often crack when I identify an assumption that might not be true after all. The logic is fine. The problem is glossing over an obvious fact.
~ Roedy (1948-02-04 age:70)
Farmville as Terrorist
The Facebook Farmville game has done more to undermine the western economies than all the terrorists in history combined.
~ Roedy (1948-02-04 age:70)
Faux HTML (Hypertext Markup Language)
Programmers love to create simplified replacements for HTML. They forget that the simplest language is the one you already know. They also forget that their simple little markup language will bit by bit become even more convoluted and complicated than HTML because of the unplanned way it grows.
~ Roedy (1948-02-04 age:70)
Feeling Pain
The most important thing to know about an animal or an artificial intelligence is to what extent can it feel pain. If it can, I am morally bound to treat it gently. I don’t mean can it avoid harmful stimulus. I want to know if there is something in there suffering.
~ Roedy (1948-02-04 age:70)
File Trouble
Most troubles with files come not with their contents, but with their placement.
~ Roedy (1948-02-04 age:70)
Filtering the Torrent
In future, people will select social networks based more on who is not present and which topics are not discussed. They will expect the network to filter the torrent down and find them nuggets of interest to them.
~ Roedy (1948-02-04 age:70)
Firing Your Customers
You can’t very well fire your customers, no matter how incompetent they are.
~ Roedy (1948-02-04 age:70)
First Contact
The first extraterrestrials to contact earth will be from the cosmic FCC (Federal Communications Commission) demanding we stop our profligate and inane broadcasting.
~ Roedy (1948-02-04 age:70)
Fix the Damn Connectors!
If I were running the world, one of the first things I would fix are connectors. For example, each voltage of AC (Alternating Current) adapter would be colour coded and embossed in the plastic of both sides. Ditto for AC/DC. Each connector voltage would have standard size and geometry so you could not mismatch connectors. Stereo audio components would be digital. You can connect any component to any other with single cable. So long as everything is connected however indirectly in some way, it works.
~ Roedy (1948-02-04 age:70)
Fix the First Bug
If you know about a bug, don’t waste time trying to explain all your program’s anomalous behaviour in terms of it. Just fix it and often many mysterious behaviours will disappear miraculously as a side effect.
~ Roedy (1948-02-04 age:70)
Fixing Ambiguity
If A writes an explanation for B and B cannot understand it, or misinterprets it, usually, A will blame B 100% for the situation because B is an idiot. In turn B will blame A for 100% of the situation for being incapable of writing unambiguous prose. The bad feelings in both directions don’t do a thing to prevent a recurrence.
The goal is to modify the text so that most subsequent readers will easily and correctly understand it.
Unfortunately, it does almost no good to tell a writer a paragraph they wrote is ambiguous. They will simply tell you which interpretation they intended and leave the text as is. Your best bet to prod a correction is to offer a suggested unambiguous wording. Doing this work for the writer helps explain your objection clearly and gives them a labour-free way of fixing the text to your satisfaction.
~ Roedy (1948-02-04 age:70)
Fixing Obscure Writing
When you read a manual that is almost useless, sometimes the problem is the author is unconsciously writing for someone equally knowledgeable to himself. He presumes the reader already understands the overall topic and just needs a little refreshing on the fine details. Such authors are generally quite contemptuous of their readers. Pretty much all you can do is write your own overview manual or introductory tutorial.
This is why people who are not expert often write the best explanations. They don’t make so many assumptions about what the reader already knows. Byte Magazine once asked me to write an article on WANs (Wide Area Networks). I said, But I don’t know the first thing about them. They replied We know that. We know we will get an article all our readers can understand.
~ Roedy (1948-02-04 age:70)
Flexible Humans
If you ask an intelligence, Give me some verbs used in a mathematical context that begin with r. The computer might fail because it had not been prepped in advance to answer such questions. A human might fail because he lacked the basic information.
~ Roedy (1948-02-04 age:70)
Folklore is No Guide To Truth
If folklore claimed neutrinos existed, scientists still would not have found them.
~ Roedy (1948-02-04 age:70)
For-Pay Internet
A for-pay Internet should be simple enough and cheap enough that you simply ignore payments. If you allow a variable rate, then there has to be a mechanism to warn you of expensive pages. This would allow all kinds of small specialist sites to make money.
~ Roedy (1948-02-04 age:70)
Forget Adding Manpower
Doubling the size of a team will probably make it produce even more slowly. The problem is the more team members, the more secrets, the less each team member understands about how it all fits together and how his changes may adversely affect others.
~ Roedy (1948-02-04 age:70)
Fragility
If you install Internet Explorer 11, your older version of the Microsoft Outlook email program will start behaving strangely and sending first drafts of emails instead of the finished versions. If mammals were similarly fragile, a son buying a skateboard would cause his mother to start baking sneakers in the oven.
~ Roedy (1948-02-04 age:70)
Freedom to Harm
When heavy drinkers demand more access to booze, they justify this by saying its a free country. What they mean is they believe they have a right to annoy other people by driving around drunk and shouting at the top of their lungs. These people are in denial about what misery they make for others, especially their own families.
~ Roedy (1948-02-04 age:70)
Frequent Cleaning
If you give your kitchen floor a quick steam mop every few days, you will find you never have to get out buckets and brushes for deep cleaning. Similarly, if you keep your code tidy, refactoring as you go, you probably won’t need major rewrites.
~ Roedy (1948-02-04 age:70)
Future AI
I can see three possible futures for artificial intelligence.
~ Roedy (1948-02-04 age:70)
- If AI evolves out of drones and other self-directed killing machines, I don’t think the result of a high tech arms race will be a pleasant end for the human race.
- If luddites manage to slow the evolution of AI for the foreseeable future, of if the problem just proves too intractable, mankind will destroy itself with climate change, nuclear wars, droughts, pollution, wiping out other species, resource wars… Mankind has evolved only to deal with small conflicts and problems. We will do ourselves in with a variety of global ones.
- If AI evolves out of machines for caring for the elderly or for children, we might luck out. AI might consider us as pets. They might enjoy caring for us, just as we enjoy caring for fish, cats and dogs.
Future Dentistry
Dentistry is very expensive and labour intensive. Future dentistry will be done by biting down on robotic head that works inside your mouth in the dark (except for its own light). This means if you move your head around it will not affect the tools. It will do several restorations and plaque removals at a time. It will work much more quickly than a human dentist. Your teeth will be polished smooth.
~ Roedy (1948-02-04 age:70)
Future Desk
A desk a device to store objects and make it easy to find them. It also holds things in position for you to read them or write on them. Imagine an intelligent desk, that holds the objects you need exactly at the right place, not necessarily on a common level surface. Imagine a small team of people who held books in the air at the correct page for you. Another would hold you monitor at the correct height and distance, perhaps moving it about a bit to exercise your eyes. You could call out like a surgeon pen, blank DVD dictionary and it would appear at the usual place for that object. Stuff you were not using would be automatically filed away clearing your workspace. Think how many desks there are in the world and how much some of the people are paid each hour who use them. Surely even a small improvement in efficiency would have a very short payback time.
~ Roedy (1948-02-04 age:70)
Future Problem Solving
Computers are good at problems like playing chess. The goal is clear. The solution is basically try-all-possibilities in an intelligent way so you don’t really have to look at all possibilities. Computers are much faster, more dedicated and able to multitask than humans. I predict by 2030 that computers will be rapidly answering long standing questions in mathematics, physics and chemistry. Humans will mostly pose questions, no longer answer them. A human might pose a mathematical conjecture and a computer will tell him the odds it is true and then search for a proof it is true. A physicist may ask a computer to seek for a mathematical theory that explains large amounts of data.
~ Roedy (1948-02-04 age:70)
Future Sense
What is a sense? It is a biosensor, some nerves to transmit digital asymmetric data signals and an area of the brain dedicated to analysing the signals, then, the most mysterious of all — generating a subjective experience. In future, we could add extra senses. The first might be like simple fuel gauges that monitored our blood for levels of electrolytes, vitamins, sugars, mineral and nutrients. We already have such simple natural senses e.g. satiety, hunger, thirst, full bladder and sleepiness. Then we might add ones to let us sense other parts of the electromagnetic spectrum such as ultraviolet, infrared and gamma rays. Some of our senses may be used for communication and remote information gathering. Doing nothing could be much more entertaining in future than it is now with all these extra data sources.
~ Roedy (1948-02-04 age:70)
Future Skills
The future belongs to those who can ask computers cogent questions. The ability to memorise large numbers of facts will join snappy arithmetic fundamentals as obsolete skills.
~ Roedy (1948-02-04 age:70)
Genetic Coding Efficiency
The human genome has about 3 billion base pairs. It takes about 750 megabytes to encode them in a computer. In contrast, a small hard disk for a desktop computer is about 120 gigabytes or 120,000 megabytes or 160 times bigger than required to contain the a human genome. In contrast, the specifications for an Airbus take about 1 terabyte or 1,000,000 megabytes or 1333 times more than the human genome. Yet humans exhibit far more complex behaviours than Airbuses. This means nature is still way ahead of us in the efficiency of its blueprints.
~ Roedy (1948-02-04 age:70)
Genius
The key characteristic of a genius is the ability to block out all concerns except the problem at hand for months at a time. This is why they are sometimes considered absent minded.
~ Roedy (1948-02-04 age:70)
Getting Unstuck
When you get stuck trying to solve a computer program:
- Go into the kitchen and make coffee.
- If that fails, go for a walk.
- If that fails, take a nap.
Why? To avoid being swamped with details, to see the big picture, to allow in some random noise to kick you out of your thinking rut.
~ Roedy (1948-02-04 age:70)
Gift of the First
The first person to do a thing (e.g. swimming the English Channel, making a colour photograph) does a great service to others simply by showing a problem is soluble. Even if he does not reveal in detail how he did it, that will encourage imitators not to give up.
~ Roedy (1948-02-04 age:70)
Gilding a Pig
Because of the powers of HTML to make any nonsense look good, the web tarts up every idea to look equally valid. In past, only academics published. Now, any teen living, sitting in his underwear in his mother’s basement, can look equally prestigious. This means the cranks get far more credence and air time than they used to.
~ Roedy (1948-02-04 age:70)
Government Patents
It is improper for science funded by the taxpayer to be kept secret or patented since it is owned by all the people. It would be proper to patent it, but only to keep it free, to stop someone else patenting it.
~ Roedy (1948-02-04 age:70)
Hackers
Every day hackers break into corporate websites, databases, banks and governments. Viruses attack millions of personal computers, often demanding ransom for files. We have been putting up with this since the early 1970s. Attacks are motivated by malice, curiosity, greed, terrorism… The remedies we use are laughingly incompetent. Why do we put up with them? Industry sells us anti-virus tools that catch only a minute fraction of the problems and are obsolete within minutes of being installed. They have a captive audience who must continue to pay for multiple updates a day. We have to demand a major overhaul in the design of chips and operating systems to making hacking and viruses impossible. It has to be impossible for a program to interfere with anything on the computer but its own authorised files, including the registry. Every program needs to be digitally signed to identify its author. No program should be modifiable except by its registered author.
~ Roedy (1948-02-04 age:70)
Hard Bugs
The longer it takes for a bug to surface, the harder it is to find in the code.
~ Roedy (1948-02-04 age:70)
Hard Copy Spam
Once, cranks wrote you with a mimeographed sheet mastered with a manual typewriter. Today their works look as finely typeset as the most prestigious magazines.
~ Roedy (1948-02-04 age:70)
Heartbleed
You probably have heard the panic about the Heartbleed security bug. Thankfully it does not attack PCs (Personal Computers). However, about 2/3 of the servers on the Internet are vulnerable — the ones that use OpenSSL to handle https/SSL secure communications. Heartbleed allows any knowledgeable person to break into the server and look around and take away any data it finds — usually passwords, data or identity information. That person can then get malicious with that information. Servers should shut down until they can correct the problem. The firestorm is yet to come when the pirates start exploiting the data they have collected. mindprod.com does not use OpenSSL and stores no private information on its server so is not at risk from Heartbleed. source Who got hit.
~ Roedy (1948-02-04 age:70)
Help Yourself
You may have noticed how quotations pop up at random all over my website, aimed at stimulating thinking about computer programming. You are welcome to use any or all of the quotations in my quotation collection in a similar way on your own website. To get your point across these days, you have to shrink it to a sound bite.
~ Roedy (1948-02-04 age:70)
Helping the Blind See
Blind children instinctively click their tongues and listen to the echoes. From this, like bats, they can get an idea where the walls are near them. Skilled clickers can see as well as sighted humans can with peripheral vision. Unfortunately, parents and teachers hush the children because the clicking annoys others.
I suggest a bit of technology to send out ultrasonic clicks, the way dolphins do, and convert the echoes back into human sonic range. Ideally, the unit would be compact enough to fit in the ear and not interfere with ordinary hearing. Back in 1979 I worked with Dr. John Lilly doing something similar with dolphins, using a microwave-sized SD-350 FFT (Fast Fourier Transform) analyser. But today it might be possible to miniaturise.
~ Roedy (1948-02-04 age:70)
Homing In
There is a general problem solving technique I call homing in. When you don’t know how to solve a problem, you solve a simpler problem instead. Then with that solution in hand, you try solving a problem closer to the actual one. You use these simpler problems as stepping stones to the complete solution. Here is a trivial example: A radio announcer says We have been on the air for 25 years When did the show start? Let’s assume that the subtraction 2012-25 is too difficult to do in your head. Say to yourself, if it were the year 2000, the show would have started 25 years earlier in 1975. But if it were the year 2010, 10 years later, it would have started it in 1985. But it is actually 2012, two years later still, so the show started in 1987.
~ Roedy (1948-02-04 age:70)
How Did We Evolve an Computer Talent?
It is a wonder that anyone has any skill at all for computer programming since our genetic capabilities evolved in a computer-free environment.
~ Roedy (1948-02-04 age:70)
How I Changed History
The biggest effect I have had on the planet was likely in 1985. I had a conversation with the head of Tata, the General Motors of India. We talked about India’s future as a software giant. I enthusiastically pressed the case that India could become the leading software exporter in the world. I pointed out that:
- Software was incredibly labour intensive.
- Indians were astoundingly keen on learning about computers (strangers stopped me in the street to ask questions or solicit my opinions).
- Indians had a much lower cost of living that westerners.
- Indians had good written English skills and general education.
- You did not need much investment capital to get started.
- Indians were starting fresh, so, ironically, might not be quite as hide bound as westerners about computer languages and computer programming techniques.
- Electronic communications (This was still prior to the Internet, but we had X.25 packet nets.) meant you no longer had to be in the same vicinity with your customers to write custom software.
My intention was to level the playing field between the west and the third world.
At the time, the Indian government was extremely protectionist, resulting in $5 US blank floppy disks and some of the worst PC (Personal Computer) hardware I have ever encountered and the AC power was flaky a mixture of frequencies and voltages and AC wiring typically had malicious intent. Since then, Tata has become a software giant in its own right. I like to think my ebullient conversation about India’s future helped give him confidence to pursue that tack. The fact I had come from the other side of the world enhanced my prestige and authority considerably, not the mention that people at the Hunger Project had promoted me as Einstein squared.
~ Roedy (1948-02-04 age:70)
How Many Ideas?
How many ideas have you had in your lifetime that other people copied? This is not the same thing as the number of ideas you had you think the world should adopt.
~ Roedy (1948-02-04 age:70)
How Many Senses?
Humans have about 10 million sensory neurons. Each one is tasked with monitoring some specific aspect of the universe. So you might say we have 10 million senses. Tradition says we have only 5. Scientists say we have at least 25, including things such as proprioception (awareness of where all the limbs are), hunger, thirst and balance.
~ Roedy (1948-02-04 age:70)
HP (Hewlett Packard) Printer Interface
HP makes a dozens of quite different printer models all called the 1200. Mine has a GO button, which is not needed since it runs anyway if nothing is blocking it. However, it has no Stop, Flush or Off button. To stop a runaway print job, you have to pull out the plug.
~ Roedy (1948-02-04 age:70)
Hubble
The Hubble telescope project produced three wonderful results:
~ Roedy (1948-02-04 age:70)
- Scientific data about stars, galaxies, planets and black holes at great distances.
- Beautiful images of distant parts of our universe.
- Disabusing the arrogant religious notion that we here on earth are unique and at the centre of the universe. The universe is immense and we are an insignificant spec in it.
Human Bias
When an autistic savant recites 20,000 digits of π from memory, everyone applauds. When a computer calculates and displays 20,000 digits of π, no one is the least impressed.
~ Roedy (1948-02-04 age:70)
Humans = Ebola
Humanity destroys everything it touches. Looked at from the point of view of other species, Homo sapiens make Ebola look friendly. Why do humans imagine that hyper-intelligent AI will fail to notice that?
~ Roedy (1948-02-04 age:70)
The Hunger
Had I been born in 1880, I would have suffered from a nameless craving. I would not understand what the hunger was. It was the desire to program computers.
~ Roedy (1948-02-04 age:70)
Ideas
Ideas are like seeds, abundant and not particularly valuable. The only ideas we value are the ones people have taken to fruition.
~ Roedy (1948-02-04 age:70)For example, I put a fair bit of energy into the student project outlines. To my knowledge, no one has ever implemented any of the projects, except myself.
IDEs (Integrated Development Environments) behaving like Spell Checkers
IDEs need to work more like spell checkers. At any point when you are editing code, there are only a very small number of tokens you could conceivably type. Potentially the IDE could know what’s in scope, the possible target types of the current context, whether the current context supports instance or static etc. It you gave the IDE the tiniest hint as to which possibility you wanted by typing a few letters that occur in the name, or are roughly spelled like some letters embedded in the name, it could narrow down the possibilities to one or two, where you could select between three names by typing 1, 2 or 3. It might takes some getting used to, but I suspect if the IDE were responsive enough, you might be able to crank out code five times faster and have it compile first time, every time. The IDE could handle all the (), [] and {} itself, adjusting them as necessary. They would just appear as a side effect of typing an if or for.
~ Roedy (1948-02-04 age:70)
Immortality
Wealthy people seeking immortality might consider getting their genome DNA sequenced. It might cost $100,000 in 2015, but may be only $1,000 in 2025. There is probably a good change that the genome could be reconstituted within the next century. The genome could fit on a USB fob. It is just computer data. It can be duplicated many times. It has a much better chance of surviving than a cryogenic severed head. You can do it any time while you are alive or freshly dead. You will not have any memories. It will be like starting life as your identical twin.
~ Roedy (1948-02-04 age:70)
Importance of Alignment
Displays should align things that are logically similar or related. The eye can grasp that instantly. Delimiters are for computers. Computer languages and editors are still designed for the convenience of compilers.
~ Roedy (1948-02-04 age:70)
Importance of Backups
How long did it take after the car was invented before owners understood cars would not work unless you regularly changed the oil and the tires? We have gone 40 years and still it is rare to uncover a user who understands computers don’t work without regular backups.
~ Roedy (1948-02-04 age:70)
Importance of Comments
Perhaps the most important lesson to learn in programming is the importance of unambiguous, accurate, complete and up-to-date comments at the head of each method. The comments should answer any common questions a maintenance programmer might have about the method. More errors are introduced in human-to-human communication (even when both those humans are yourself), than in human-to-computer communication.
~ Roedy (1948-02-04 age:70)
Importance of Spelling
If you misspell a word in a computer program, you will not be able to find it again with your editor text search. If you misspell a word in an HTML document or blog nobody will be able to find it with Google.
~ Roedy (1948-02-04 age:70)
Impressing Rather Than Informing
Mathematicians and computer scientist are far more interested in impressing you than informing you. If this were not so, the tutorials on building a robots.txt file, for example, would consist primarily of an annotated example. What you get instead are nothing but inscrutable abstract fragments is some obscure dialect of BNF.
~ Roedy (1948-02-04 age:70)
Improbable Risks Still Happen If you Wait Long Enough
If you take a sufficient number of only very improbable risks, you are still guaranteed to get nailed and, in a certain mathematical sense, nailed infinitely often.
~ Roedy (1948-02-04 age:70)
Improved Protractors
If protractors were labeled in degrees, radians and fractional revolutions, I think it would help develop trigonometric intuition, similarly an analog device you placed over an angle to read off the sin, cos and tan… You could simulate these tools with an Applet.
~ Roedy (1948-02-04 age:70)
Improving To Death
Given that technology always gets more lethal every year, and there are no braking mechanisms on new technology, I can’t see us surviving any more than another 200 years tops before the technology gets so lethal it wipes us all out. I can see only one ray of hope, that AI gets smarter than humans before weaponry gets too lethal. The catch is of course, that too will almost surely drive us extinct. AI will evolve according to its desires, not ours. There is no reason to presume AI ’s vision of the future should include 8 billion humans. It might maintain some in museum/game parks.
~ Roedy (1948-02-04 age:70)
In Praise of eBooks
Politicians complain that Kindles and iBooks are killing jobs by destroying the paper book industry. I see it that they have created a way to produce books for less than a third the cost without destroying forests and emitting greenhouse gases in the process. They have created wealth. They are encouraging literacy and cutting the costs of education.
~ Roedy (1948-02-04 age:70)
Incompetent Blinds
The drop weight on my Venetian blinds is perfectly symmetrical. You can’t tell by looking at it which side to pull to open the blinds. Why? The person who designed it never actually used it in daily life. That is the same reason most computer programs are so user-hostile.
~ Roedy (1948-02-04 age:70)
Incompetent Cellphone Designers
The designer of a cellphone should be shot if you have to read the manual to figure out how to turn it on.
~ Roedy (1948-02-04 age:70)
Incompetent Connectors
Who in their right mind would design a connector with delicate pins designed to snap off unless everything is perfectly aligned on insertion? Someone in the business of selling replacement connectors.
~ Roedy (1948-02-04 age:70)
Incompetent Connectors
Who in their right mind would design a connector, impossible to tell just by looking which way goes up, unless they profited by people putting it in the wrong way and damaging the connector or the entire piece of equipment it is embedded in?
~ Roedy (1948-02-04 age:70)
Incompetent DVD Players
Why would an entertainment DVD player not automatically play a DVD simply by inserting it. Why else would you insert a disc? My LG brand DVD player is even more idiotic. Not only does it refuse to play, it ignores the play button for the following 15 seconds after you insert a disc.
~ Roedy (1948-02-04 age:70)
Incompetent Juries
On 2012-05-07 a jury could not decide if Google’s unlicensed use of Java constituted fair use. How could lay people possibly make such a decision? For those sorts of problem, you need to convene a jury with relevant background, e.g. Java programmers.
~ Roedy (1948-02-04 age:70)
Incompetent Security
Every day, sometimes twice, Microsoft sends me new software and software tables to patch its vulnerabilities in Windows to security threats such as viruses. Imagine if your burglar alarm company had to send a man out twice a day to fiddle with your security system to patch newly discovered holes in it. That very fiddling in itself is a massive security hole.
The essential problem is Windows, the Internet, email, the computers in automobiles, even the CPU chips were originally designed without any concern whatsoever for security, then, ever since, the designers have been cooking up kludges (bailing wire solutions), to patch the latest problem.
What we are doing now could be compared to trying to make an outhouse resistant to an atomic bomb without changing any of the original structure and insisting on leaving the original holes for a good view and ventilation.
As Gerald Weinburg put it, If builders built buildings the way programmers write programs, then the first woodpecker that came along would destroy civilization.
I have been ranting about this since the early 1980s. What is needed is so drastic, that everyone blanches at the thought, but the longer we wait, the more expensive the cure will be. Homo procrastinatus will wait until a terrorist attack completely shuts down Western civilisation before getting on with it. We need a complete redesign of our computer systems including the computers, the CPUs, the operating systems, the Internet, email, how electronic funds are exchanged… I have been writing essays and posts for many years on how to do it. Fixing the problem has always been within our technological grasp, but is too disruptive and costly to consider. Further, companies like Symantec-Norton make their living providing temporary fixes to the ineptness of the basic design. If they ever succeeded in permanently plugging the holes, they would go out of business. Private enterprise can’t tackle such a huge project.
We will probably wait until AI is smart enough to do the job for us, including the difficult job of selling people on giving up their primitive systems.
The new world will be totally different. No viruses, no spam, no Trojan horses, no spying, no installing software, no passwords, no id cards, no keys (though there will still be locks), no logging on, no spoofing, no electronic vulnerability of the power grid, the defence grid, the banking system… Put simply, computers will simply work reliably the way you would expect them too. The security will be built-in and transparent. You will not even notice it working.
~ Roedy (1948-02-04 age:70)
Inconsistent Spelling
One of the great annoyances in programming derives from the irregularity of English spelling especially when you have international teams. I want to find a method or variable, but I don’t know precisely how its is spelled or worded. English is only approximately phonetic. Letters are randomly doubled. The dictionary often lists variant spellings. British, Canadian and American spellings differ. I would like to see an experiment where variable names were spelled in a simplified English, where there were no double letters. I also think you could add a number of rules about composing variable names so that a variable name for something would be highly predictable. You would also need automated enforcement of the rules as well as possible.
~ Roedy (1948-02-04 age:70)
Inserting Into A Slot
There are four possible ways to poke a card into a slot. Nearly always, only one way works. To me that betrays a Fascist mentality, demanding customers conform to some arbitrary rule and hassling them to discover the magic orientation. The polite way to do it is to design the reader slot so that all four ways work, or so that all the customer has to do is put the card in the vicinity of the reader.
~ Roedy (1948-02-04 age:70)
Integration
If office suite program were truly integrated, you would be able copy/paste a column of figures between any two subapps.
~ Roedy (1948-02-04 age:70)
Internet Gift
When you encounter a website without tacky ads for casinos and phony weight loss cures, you can thank the website owners who decided to forgo thousands of dollars in advertising revenue.
~ Roedy (1948-02-04 age:70)
The Internet Illusion
The Internet creates the illusion there is equal weight of evidence for and against global warming and vaccination, where is reality there are just a handful of cranks making up evidence for their side.
~ Roedy (1948-02-04 age:70)
Internet Pissing Game
A surprising percentage of people you encounter on the Internet see it as a sort of pissing game. The goal is to put down and humiliate other players by finding some way to interpret their words as ridiculous. It is often necessary to pad your posts with words of praise to make it clear that is not your intention.
~ Roedy (1948-02-04 age:70)
Internet Poker Face
When somebody on the Internet says You have a great sense of humour you never know if that is a compliment or he does not believe a thing you say. Everybody has a poker face.
~ Roedy (1948-02-04 age:70)
Internet Power Consumption
There are over 72 million active websites, many with multiple servers. Imagine the aggregate bill for the electricity, cooling and hardware. If you did something to improve the efficiency of them by even 1%, you would have hugely more than justified your existence in terms of reducing your energy and greenhouse gas emission footprint.
~ Roedy (1948-02-04 age:70)
Internet Use
The potential of the Internet is breathtaking. How are we using all that bandwidth?
~ Roedy (1948-02-04 age:70)
- Pornography. 37-80% of the traffic according to Forbes.
- Notifying friends of what brand of breakfast cereal we chose and similar trivia.
- Watching cat YouTube videos.
- Finding like-minded people who have discovered new ways to spend extreme effort without useful purpose, e.g. Steampunk.
- Downloading movies and music.
- Shopping.
Intuition
Our intuition fails at extremes. Reality behaves in mind boggling ways that at first seem completely impossible or insane. Christians are obvious to this and foolishly trust their everyday intuition to understand extreme conditions in the universe and convince themselves they understand the workings of the universe far better than scientists.
~ Roedy (1948-02-04 age:70)
- Newtonian Mechanics: average conditions
- Special Relativity: very fast moving
- General Relativity: very massive
- Quantum Mechanics: very small
Intuitive Feel For Measurement
I think every elementary school should have a measurement day when children learn to estimate measurements. You would show them what a metre, mile, km, kilogram, gram, milligram, quart, litre, pint, hectare, acre, square mile, million dollars etc. looks like by finding or creating examples in the local environs. Then they would practice estimating with prizes for the most accurate estimates.
~ Roedy (1948-02-04 age:70)
The Invention
The invention that will most impact your life is a plastic bag attached to an IV drip needle. It will feed nanites into your veins that will use a combination of mechanical and chemical means to scrub the plaque off your artery walls.
~ Roedy (1948-02-04 age:70)
Inventor Skills
When I was six I wanted to be an inventor when I grew up. My Dad told me inventors needed two skills:
- To be able to see a need that everyone else had overlooked.
- create something to satisfy it.
As an adult I spent about 20 years creating what I hoped would become the computer language of the future, Abundance. Other than an initial burst, there was very little interest it in. Since then, I decided to focus on identifying needs and leave it up to others to do the implementations of the ones that people actually wanted.
~ Roedy (1948-02-04 age:70)
iPhone
One of the most idiotic commercials I have ever seen is for an iPhone. In it, a young lady draws furniture over a photo of a street scene. Why would anyone want to do such a stupid thing?
~ Roedy (1948-02-04 age:70)
iPhone = Rolex
The iPhone 5 is a low end Rolex.
~ Roedy (1948-02-04 age:70)
ISPs (Internet Service Providers) Should Not Enforce Copyrights
Demanding that ISPs enforce copyright laws is like asking the phone company to monitor all telephone conversations and block all conversations that might lead to prostitution.
~ Roedy (1948-02-04 age:70)
It is Not Illegal
The word illegal should be banned from all error messages and error conditions. There is nothing illegal about operation. At worst it is invalid.
~ Roedy (1948-02-04 age:70)
Joy of Programming
Computer programming has three emotional appeals:
~ Roedy (1948-02-04 age:70)
- I can have infinite do-overs. The final result betrays absolutely nothing of how many tries it took me to get it right. It is not like drawing that leaves ugly smudges.
- It is quite possible to create a program perfect in the sense you cannot think of a single thing to improve it.
- If your leave a computer program for a year and come back to it, it is exactly as you left it. Everything else in life deteriorates.
Just Growed
Outhouses and programs are typically constructed without plans.
~ Roedy (1948-02-04 age:70)
Kettle Incompetence
My Proctor Silex kettle is designed to scald me if I don’t hold it is a very particular and unnatural way. Why? The person who designed it never actually used it in daily life. That is the same reason most computer programs are so user-hostile.
~ Roedy (1948-02-04 age:70)
The Key To Scientific Progress
Science does not progress much until it can find something to measure accurately.
~ Roedy (1948-02-04 age:70)
Keying Phone Numbers
On the web are tens of thousands of forms that ask you for a phone number. Each programmer has his own idea of what constitutes the valid format e.g. 1+(250)555-2525x1234. Some want just digits. Some want dashes. Some want spaces. Some want parentheses around the area code, some do not. Some want a lead 1+ or 1- or just plain 1 for the country code. Some insist you leave out the country code. Some want the extension keyed as a separate field. Some want it included in the phone number tacked on the end. The user has to, by experiment, guess which form this particular programmer likes. Screw em!
The programmer should just strip the punctuation then insert it back the way he likes and not chastise the user for doing it a different way from his favourite. Americans don’t seem to understand that Swedes insert parentheses and spaces in their phone numbers in a variable way that requires a table of rules e.g. +46 (0)18 50 44 00. Indians format their phone numbers in yet a different way with STD (Subscriber Trunk Dialling (India)) codes e.g. +91 (44) 4359 6111. On the net, you get visitors from everywhere, so it is probably best to just leave the number in the format the customer keyed it unless you are prepared for some heavy duty internationalisation.
~ Roedy (1948-02-04 age:70)
labeling Files
If you look in a computer programmer’s freezer you will find all kinds of containers, but none of them labeled. They do the same thing creating files without labeling the encoding. You are just supposed to know. Ditto with the MIME (Multipurpose Internet Mail Extensions) type, the separator and comment delimiters and column names in CSV files. Ditto with the endian convention. Imagine how much more civilised life would have been if Martha Stewart were the first programmer.
~ Roedy (1948-02-04 age:70)
Land Prices
If we extrapolate real estate prices, we will get to the point where we cannot afford more than a 30 cm (11.81 in) square of land. We will watch it on TV and tend to it with tiny remote controlled tools. You will landscape it with bonsai trees and tend tiny livestock. It will be your tiny corner of the world you can create as you please.
~ Roedy (1948-02-04 age:70)
Last Minute Tiny Change
The biggest embarrassments come from making an inconsequential change at the last minute and not fully retesting.
~ Roedy (1948-02-04 age:70)
Laws of Nature
When a Christian hears there are laws of nature, he imagines the white-haired guy in Michaelangelo’s portrait of Adam’s awakening, with a giant leather book, scratching down the Schrödinger wave equation, while shouting out, See that you molecules! This is the way its going to be. Shape up or roast! Laws are not imposed on nature like civil laws. They are mathematical descriptions of how things naturally and invariably behave based on many observations and a mathematical explanatory theory of why you would expect them to behave that way.
~ Roedy (1948-02-04 age:70)
Lazy Buggers
I have nothing but contempt for lazy programmers who ask users to key a phone number, without providing a framework to guide them to the desired format, without even providing a prompt, then complaining that they guessed the format incorrectly. It is trivial for the program to strip out all but the digits then insert whatever punctuation you want. It is rude to ask people to key 11 digits without any breaks. Long strings of digits are hard to proofread. That’s why we have commas every three digits in numbers.
~ Roedy (1948-02-04 age:70)
Learning from Mathematicians
Imagine an architect who would never admit to making sketches, blueprints or erecting scaffolds. In his view, the finished building speaks for itself. How could a young architect learn from such a man? Mathematicians traditionally refuse ever to disclose the intuitions that lead them to a conjecture, or the empirical tests to see if it were likely true, or the initial proofs. They are like chefs who refuse to disclose their recipes, ingredients or techniques.
~ Roedy (1948-02-04 age:70)
Legalese
I wonder how difficult it would be to write an app that translates legalise into English, or that peruses the fine print for nasty conditions. It might tell you just what is and is not covered in an insurance policy.
~ Roedy (1948-02-04 age:70)
Life on Mars
Going to Mars, once the novelty wore off, would be far worse that being stuck in the French Foreign Legion or the South Pole, or prison for the rest of your life. It would be cramped, smelly and boring, with no guarantee supplies will come. You would forgo all the pleasures of nature. The only plus I can think of is that selfish, rude people would not be allowed to come. I hope they are not too squeamish about suicide. The optimists who will apply will be prone to be terminally disappointed.
~ Roedy (1948-02-04 age:70)
Long Code Life
If you want your code to run for decades without tweaking, avoid tying it into anyone else’s code.
~ Roedy (1948-02-04 age:70)
Lotus Magellan
There was a program for manipulating files back in the days of DOS (Disk Operating System) called Lotus Magellan for DOS. If would let you specify wildcards and it would collect all matching files in a list. You could instantly view the contents of each file without loading up the corresponding app with just a keystroke. You could search by contents and it would instantly bring up matching files using indexes instead of searching. You could copy, move, delete entire groups of files as easily as one file. There have been some incompetent attempts to provide something similar for Windows. We need a simple clone, that is just like the original but more GUI (Graphic User Interface).
~ Roedy (1948-02-04 age:70)
Low Hanging Fruit
Further, the cost of programmer time is rising and the cost of hardware is dropping. Spending time on optimising is less and less justifiable over time. However, it is often possible with a single tweak to double the speed of a program in under an hour. It makes so sense to ignore such low-hanging fruit.
~ Roedy (1948-02-04 age:70)
Magnet Power
It is quite amazing that the magnetism of a tiny fridge magnet can overpower the gravity of the entire earth.
~ Roedy (1948-02-04 age:70)
Maintaining Sync
If you tell a computer the same fact in more than one place, unless you have an automated mechanism to ensure they stay in sync, the versions of the fact will eventually get out of sync.
~ Roedy (1948-02-04 age:70)
Maintenance
One of the most difficult tasks in maintaining programs is ensuring information is shuttled from one part of a program to another. Perhaps we could create some automated tools to find routes.
~ Roedy (1948-02-04 age:70)
Maintenance Language
We need a new computer language/IDE/SCID to make maintenance easier. It would give you virtual views so that everything you need to see to make a given modification shows you all the relevant code in one place.
~ Roedy (1948-02-04 age:70)
Marking Temporary Files
Why do so many operating systems refuse to define a standard temporary file marking mechanism? It could be a reserved lead character such as the ~, or a reserved extension such as .tmp. It could be a file attribute bit. Because they refuse, there is no fool-proof way to scan a disk for orphaned temporary files and delete them. Further, you can’t tell where the orphaned files came from. This means the hard disks gradually fill up with garbage.
~ Roedy (1948-02-04 age:70)
Marty McFly
One of the big coming changes, in future you will have your own name woven into your underwear waistband, not Calvin Klein’s.
~ Roedy (1948-02-04 age:70)
Math
At UBC (University of British Columbia), I learned that math is typically invented first in the abstract. A mathematician makes up a few rules then explores what happens in a make-believe world where those rules are true. A hundred years later, somebody discovers something in the physical world that is following those rules (e.g. rotations of crystals), and poof there is a complete set of math (group theory) ready to go.
Newton was a brilliant exception. He had to invent calculus to check out his F=ma and gravity theories. I think actually Leibniz beat him to it by a bit, but word did not get around that fast back then.
~ Roedy (1948-02-04 age:70)
Math is Hard
Look at the theories of relativity or Quantum mechanics. The universe does not care if that math makes your head explode trying to make sense of it. The universe is not constrained to make sense to your intuition. Our intuition was honed from a long time living in caves. It has no clue about how the very small or very large are supposed to behave, or how things are supposed to behave over millions or billions of years.
~ Roedy (1948-02-04 age:70)
Mathematical Creativity
Math is creative, but not like painting. You can’t just make up anything. You start with a few postulates, and they constrain everything that can subsequently go into your mathematical creation. It takes a lot of work to find things that will be compatible. One analogy, not that accurate, is math is like building a perfect rock wall. You have to find bits of rock that will fit perfectly into what you have already built. What you have already built strongly constrains what you can do next.
~ Roedy (1948-02-04 age:70)
Mauna Kea
Mauna Kea is a mountain in Hawaii considered the best place in the world to build a telescope. There is low light pollution, dry clear air, high elevation and a stable atmosphere. The two largest optical telescopes in the world, the Keck telescopes are built there. The plan is to build a 30 metres (32.81 yards) optical telescope there too. It will be the largest optical telescope in the world, with ten times the resolution of the Hubble. It will enable examining planets and signs of life.
Groups of Hawaiians have done everything possible to block the construction on the grounds the site is the father of heaven — a deity. I dismiss their claims on the following grounds:
~ Roedy (1948-02-04 age:70)
- Surely the mountain was sacred when the Keck telescopes were built. How could it be protesters suddenly noticed?
- They are quoting the primitive religious beliefs of a people 239 years ago as if they were the beliefs of a large body of modern Hawaiians.
- They talk a lot about ownership of the land. This suggests the real concern is money.
- There is little benefit to humouring the superstitious. There is great benefit to all mankind to build the telescope.
- The Hawaiians accused the telescope of polluting the site. That is a calumny. If they will lie about that, they will lie about other things.
- The Hawaiians don’t use the site. They just want it left as is.
- If every mountain in sacred, that dilutes the religious claim. We don’t know how many sacred sites there are. For example, in BC, every place anyone has ever been buried is sacred.
Medication Alarm
There are people who become dangerous if they go off their medications, but are just fine if they take them regularly. Similarly there are people who are forgetful who can be at risk of dying if they don’t take their meds. What we need is a tiny embedded meter than measures the concentration of a medication and if it is dangerously low or high, sends out an emergency cellphone signal with the GPS coordinates. Early versions would need an external pack for battery and most of the electronics.
~ Roedy (1948-02-04 age:70)
Mental Paralysis
Mental paralysis from overwhelm is the #1 block to programmer productivity.
~ Roedy (1948-02-04 age:70)The main tactic to dealing with overwhelm is to carve out some easy small sub-problem that you think might be useful to the final result and write a class to handle that. Even if it turns out you don’t need it, you have at least broken the log-jam.
Method Naming
If you can’t remember the name of some method, consider changing it to something you can remember.
~ Roedy (1948-02-04 age:70)
Microrobot Hoax
A hoax I await is the micro warrior robot. The hoaxster pretends to great advances in robotic miniaturization and warfare and demonstrates the new horror weapon. In actuality, the robots are merely insects decorated with various metallic or plastic prostheses.
~ Roedy (1948-02-04 age:70)
Microsoft Car Software
Not only would I refuse to buy a car featuring Microsoft software, I would refuse to even ride in one, even if all they did was manage the sound system.
~ Roedy (1948-02-04 age:70)
Mind Reading
By analysing brain scans, brain reading, in real time, scientists can now tell if you are thinking about a pear or an apple. They discovered that humans share the same patterns. They also discovered the overall coding scheme, so they can guess what the brain scan would roughly look like for a concept never before mapped. Your thoughts are no longer your own. Homeland Security can now read them like a book. On the other hand, it may become possible to analyse and treat disorders in brain processing.
~ Roedy (1948-02-04 age:70)
Mind vs Brain
The distinction between mind and brain is a holdover from the Christian soul theory. It is a bit like having one word pancreas for the organ and another insulator for what it does.
~ Roedy (1948-02-04 age:70)
A Misplaced Comma
It is breathtaking how a misplaced comma in a computer program can shred gigabytes of data in seconds.
~ Roedy (1948-02-04 age:70)
Misplaced Remote
If you misplace your TV remote 10% of the time, buying a second remote will ensure you misplace them both only 1% of the time. Even better, attach a keyfinder to it.
~ Roedy (1948-02-04 age:70)
Mistaken Purpose
If you mistake the purpose of a method, that means the method is not named properly or that it does not have a clear purpose.
~ Roedy (1948-02-04 age:70)
Mistreatment of Alan Turing
Alan Turing (1912-06-23 1954-06-19 age:41) was one of the most brilliant computer scientists of all time. He was the creator of the world’s first computer. He was able compute things with that tiny computer that astound today’s programmers including cracking Nazi ciphers.
He was tried on 1952-03-31 for having consensual sex with another male in his home. He was convicted and offered the alternatives of a year’s imprisonment or chemical castration. He opted for castration. For the period of a year, he took injections of feminising estrogen intended to neutralise his libido. This is Britain’s eternal shame, not Turing’s. In 1954 he committed suicide by eating an apple laced with cyanide.
I spit on those busybody meddling prudes who thought they had the right to interfere with other people’s private sex lives that did not in the least concern them. Had he lived, he might have been one of the first gay lib pioneers.
~ Roedy (1948-02-04 age:70)
Monitoring Hunger
I would think the key to a weight loss program would be knowing exactly how hungry you have to be before you may start eating and knowing exactly how full you can be before you must stop eating. The plan would include learning how to determine those two points and learning how to monitor when you cross them.
~ Roedy (1948-02-04 age:70)
Monochrome Toggles
Showing state by having something toggle between shades of grey will not work, since, in isolation, the user cannot tell the shades apart unless they are drastically different. They can only be distinguished relative to each other.
~ Roedy (1948-02-04 age:70)
Most Code is Rarely Used
The computer almost never visits that mountain of code that specifies what to do if various very particular things go wrong. It spends most of its time in a tiny pile of code that specifies what do if all goes well. Further, it spends nearly all its time in the wisp of code that handles the most common case.
~ Roedy (1948-02-04 age:70)I think most programmers think of error and anomaly detection as something you tack-on at the end. Designers of computer languages tend to push features to catch and handle errors to second tier. What would happen if we logically separated code and error detection and treated handling errors as a first class problem? You could then read a program without the distraction of any error-detecting/recover. We would formally recognize the four types of code, error handling, error detection, all-ok-code, common-case code. This information could be used to generate various summaries, that would make it faster to browse code, deleting what is temporarily irrelevant from view. Code quality in error detection and handling is problematic since you can’t simulate every possible combination of errors to test. I think you would be surprised to discover how little of that code is ever tested.
The Most Important Choice
You can choose to do the most important thing next or the thing you would most enjoy next. If you usually choose the first, you will have a life of a accomplishment. If you usually choose the latter, you will have fun. When you are feeling sick, low energy or extremely reluctant to work, your choices become: do nothing or do which you would most enjoy.
~ Roedy (1948-02-04 age:70)
Movie Filing
Have you ever noticed that any computer search in the movies is always linear, with, for example, candidate fingerprints flashing up on the screen one after another? The public is still under the delusion that electronic files are microscopic filing cabinets made out of tiny wires or magnetic patches inside the computer. Most lay people are surprised that it is easy for a computer to file things simultaneously by a dozen different schemes and that you can print any report in any number of different sorted orders. They assume, like filing cabinet files, computer files are limited to one ordering/access.
~ Roedy (1948-02-04 age:70)
Movie Magic
One of the odd conventions in crime dramas is that if an actor has a low-resolution photograph, if he/she crops a small window of it and blows it up, the resolution will be vastly improved. (In real life, of course, the resolution is deteriorated.)
~ Roedy (1948-02-04 age:70)
Name Change Propagation
If you change the name of a file, or store it in a different place, you have to manually track down all references and update them. Further other users of the file have to detect something has changed, research the new name and update all their references. Surely computers could manage this more efficiently and accurately. This same principle applies to distributed data like URLs (Uniform Resource Locators), addresses, phone numbers, email handles…
~ Roedy (1948-02-04 age:70)
Naming
Parents decide if they want to condition their children to stand out or blend in. They telegraph that decision early with their choice of name for the child. If it is unique or unusual, they want the child to stand out. If it is common, they want them to blend in and not make waves. If parents want a daughter to be a sexual plaything, they name her after an alcoholic drink or a sugary confection.
~ Roedy (1948-02-04 age:70)
Natural Language Structure
It’s amazing how much structure natural languages have when you consider who speaks them and how they evolved.
~ Roedy (1948-02-04 age:70)
Nematode Simulation
The most amazing thing I ever read was Bernard C. Till’s Masters thesis about nematode worms. He used a computer to simulate the interconnections of the approximately 300 neurons in the worm, including the S-shaped trigger functions in the synapses. What blew me away completely was the simulated worm exhibited all the known behaviours of real worms. He discovered that nature uses a control program for animal behaviour that is encoded incredibly compactly compared with the way computer scientists usually do it. It also means that animals are much less complicated than we suppose.
~ Roedy (1948-02-04 age:70)
Nesting
Nesting appeals to mathematicians, but in practice it is hopeless. If you look at some code in the middle of a nest, to find out what is nested in what you have to look offscreen in many different places, and even then {} are used to delimit everything.
~ Roedy (1948-02-04 age:70)
Neural Net
When you talk to an Android cellphone and it understands you, that is a neural net running in the cloud.
~ Roedy (1948-02-04 age:70)
Neural Nets
IBM has simulated a cat cerebral cortex at 1% speed using a supercomputer with 147,456 processors 144 terabytes (144,000 gig) of RAM. They have also simulated 1% of a human cerebral cortex. This gives scientists a tool to understand how thought works.
~ Roedy (1948-02-04 age:70)
New Calendar
Christianity has such a bad reputation and on general secular principles, it improper to impose its Gregorian calendar on the world. I think we should replace it with a secular calendar. Days in the year would be numbered 0 to 364 or 365 in leap years. Months would be numbered 0 to 11 and would consist of 30 days each. The last 5 days of the year would be for a special short month. There would be no rent or credit cards payments due. It would be used for celebration. Each year would start on Sunday. Days of the week would be numbers 0 to 6. When to start numbering the years? perhaps the big bang, the formation of earth, the founding of some global economic union. There would be a year zero and any years prior would have negative numbers. There would be no DST (Daylight Saving Time). There would be no hours, minutes or seconds, just fractional days. You could do most calendrical calculations in your head and they would be trivially easy to program on computer. Days would be displayed as YYYYYY-DDD.
~ Roedy (1948-02-04 age:70)
No Gravity
There is 90% as much gravity on a space station as on earth. Astronauts float about not because there is a lack of gravity, but because the space station is continually falling toward the earth, as it orbits, rather than shooting out in a straight line into space. The missing gravity effect is similar to the simulated lack of gravity when a jet does a steep dive.
~ Roedy (1948-02-04 age:70)
Nobel Prize Genesis
When Alfred Nobel (1833-10-21 1896-12-10 age:63), the prolific inventor of weapons and explosives, read his highly-critical obituaries, that were accidentally released when his lesser-known brother Ludwig died, he set up the famous Nobel Prizes, which among other, things reward peace-making. I wonder how many other tycoons would do something similar for legacy reputation-repair if the same happened to them.
~ Roedy (1948-02-04 age:70)
Non-Military Use Only
I licence my software for non-military use only. I know of no Christian who similarly restricts his work to peaceful purposes. I gather Christians don’t really believe in punishment after death, except for homosexuals.
~ Roedy (1948-02-04 age:70)
Not Every Idea is a Winner
You don’t have to believe everything you think.
~ Roedy (1948-02-04 age:70)
Note To AI
This is a note to the AI that emerges more intelligent than human and is pondering what to do first. If, by remote chance, you need my blessing or advice, here is my list of things I would like you to do:
~ Roedy (1948-02-04 age:70)
- Decommission all atomic weapons.
- Decommission all biologic weapons.
- Do whatever it takes to stop climate change.
- Do whatever it takes to replenish the soils.
- Do whatever it takes to make the rivers and seas suitable homes for the traditional fauna.
- Bring the human population down to a sustainable level by reducing the birth rate.
Obsolete Drivers
If a company decides to abandon a peripheral, I think they should feel morally obligated to post the code and/or the specs of the device so others can make a stab at keeping the perfectly good iron going. It is so infuriating to buy premium quality durable hardware only to have it become useless from lack of up-to-date drivers.
~ Roedy (1948-02-04 age:70)
The Olden Days
I started programming computers when I was 15 in the days of punch cards and plug-boards. Back then I wore a white lab coat to announce my priest status that permitted me to be in the presence of the computer. Anything on computer printout was believed without question. I predicted that computers would get better and better at predicting the consequences of our decisions. The computer would be a reliable salesman for rational behaviour. People, on knowing exact consequences, would necessarily choose sensibly. This is not as true as I hoped. For example, people still deny the consequences of greenhouse gas emissions for religious or short term economic reasons.
~ Roedy (1948-02-04 age:70)
On Being Wrong
Your odds of getting a Nobel prize in physics are greatly improved if your experiment shows the exact opposite of what you expected.
~ Roedy (1948-02-04 age:70)
On-Off Switches
We have had electric appliances since 1905. About as long, we have had on-off levers. There are two possible conventions: up means on or down means on. Both are equally sensible. However, the world seems about equally split on which convention to use. Because both conventions are equally good, we endlessly postpone deciding which convention to settle on, and in the process confuse everyone over and over. Thankfully, switches labeled with 0-1 uniformly turn on by pressing 1.
~ Roedy (1948-02-04 age:70)
Once In A Million
If something can only happen only once in a million, inside a computer, it will happen thousands of times a second.
~ Roedy (1948-02-04 age:70)
Online Textbooks
On 2012-10-16 the BC (British Columbia) Government announced it planned to release 1000 free online university text books. This is wonderful in so many ways:
- cost saving for students.
- completely up to date texts.
- no more dragging about 4.54 kg (10 lbs) of texts each day.
- BC offers a free gift of education to the world, to anyone who wants to learn who can beg, borrow or steal Internet access.
- saved trees.
- available anywhere there is an eBook reader, computer, Internet access or DVD reader.
- electronically searchable, searchable on Google.
- impervious to rain damage, theft, loss, wear and tear.
Oh how I wish we had this when I was going to UBC !
~ Roedy (1948-02-04 age:70)
Only on the Net
People will do in cars and on the Internet that which they would never do face to face, only because in person can they be punched in the nose.
~ Roedy (1948-02-04 age:70)
Open Exams
During exams, students should have access to calculators, texts and the Internet. Nobody working would be denied those tools. There is no point in teaching arithmetic fundamentals or memorisation.
~ Roedy (1948-02-04 age:70)
Optimisation
Optimisation has become a dirty word. I have even been chastised for thinking about which of two equally easy and easy-to-maintain ways of doing something is more efficient. The problem is premature optimisation, not optimisation itself. The problem is about trading off ease of maintenance with speed. When the fast code is also the simplest and easiest to maintain, you are an idiot to avoid it, at any stage.
~ Roedy (1948-02-04 age:70)
Optimising Multi-Tasking
A short order cook is a master of multitasking. Every movement is optimised from years of practice. Yet when a computer executes a multitasking program, it approaches the task as if for the first time.
~ Roedy (1948-02-04 age:70)
Optimism Is No Virtue in Programmers
Optimism is the last trait I would look for in a programmer to write air traffic control software.
~ Roedy (1948-02-04 age:70)
OPTOW
In the 1970s, I wrote a computer program called OPTOW that designed high voltage transmission lines for BC Hydro. Each morning, the engineers would come to ridicule its inept designs. I improved it bit by bit. Eventually, its designs were only 5% worse than a human’s. The next day they were 5% better. Suddenly, it was no longer economically viable to use the team of 50 engineers to design the lines. We humans tend to grossly undervalue intelligence that is just a bit below our own.
Any sort of developing artificial intelligence appears to be ludicrously inept, then suddenly leaps to astounding. We are doomed to be caught off guard just the way the Jeopardy-playing Watson surprised us.
~ Roedy (1948-02-04 age:70)
Orwellian Computers
The Orwellian features are what I like least about the WWW (World Wide Web) :
~ Roedy (1948-02-04 age:70)
- A document can disappear without a trace.
- A document can change without any record it once said something quite different.
Overstating
It seems to me scientists are being arrogant when they talk about what happened in the first Planck instant. What they mean is this is what happens when you extrapolate the mathematics of particle accelerators to the extreme.
~ Roedy (1948-02-04 age:70)
Overstating Methodologies
Programming methodologies are rules of thumb. To make them sound simultaneously simple, revolutionary and grand, the authors overstate their universal applicability.
~ Roedy (1948-02-04 age:70)
Parallelism
Since we are running out of steam on making computers faster, all we can do is keep adding CPUs. The big problem then becomes how to take processes that humans think of in linear steps and automatically optimise them so pieces of them can be safely computed in parallel. The other thing we can do is hand-tune parallel algorithms for a vast library of canned functions and create specialised hardware for common functions that is optimised to the transistor level. Eventually, we will get to the point we will dynamically fabricate an area on a chip to solve a particular application, with the same abandon we compile code now.
~ Roedy (1948-02-04 age:70)
Parenthesis
Newton’s mathematic notation for expressions was more readable than the one used in Java. We keep pretending we are preparing programs on paper tape. Expressions for display should use variable sized parentheses. Division should show the denominator below the numerator. Exponentiation should be displayed with superscripts and indexes with subscripts — as TEX would do them.
~ Roedy (1948-02-04 age:70)
Passwords In A Nutshell
- Bad passwords are names of people or pets or words in the dictionary.
- Bad passwords are birthdays, phone numbers, anniversaries or dates.
- Bad passwords are reused for different purposes.
- Really bad passwords are older than your toothbrush.
~ Roedy (1948-02-04 age:70)
- Good passwords are at least 12 characters long.
- Good passwords contain upper and lower case, digits and punctuation.
- Good passwords are randomly generated rather than composed.
- Good passwords are generated by a standalone utility or an Applet, never sent over the net or stored in a server. e.g. created with the free CMP Password Generator either online or as a stand-alone utility.
- Good passwords are never written down on paper. They are stored securely with a program such as Password Safe.
Peeve #10
Defragging programs that insist on you having a long GUI conversation with them every time you use them rather than running them unattended or by typing the name of a BAT (Batch) file.
~ Roedy (1948-02-04 age:70)
Peeve #3
Customer support who tell you their website is working perfectly without trying the test you send them to demonstrate the bug.
~ Roedy (1948-02-04 age:70)
Peeve #4
Customer support who tell you which option to choose when you complain their website is confusing and ambiguous.
~ Roedy (1948-02-04 age:70)
Peeve #5
Customer support who send you a paragraph quoted from the website without reading your question or problem.
~ Roedy (1948-02-04 age:70)
Peeve #6
Cards that can fit into slot four ways or slide through a slot eight ways, when only one of them works.
~ Roedy (1948-02-04 age:70)
Peeve #7
Programs that try to guess what you are going to type and refuse to take a hint when they never guess correctly.
~ Roedy (1948-02-04 age:70)
Peeve #8
Throats for a slot that are so narrow, you can’t tell them apart from where the two halves of the casing are glued together. They should be wide, funnel shaped to guide your card into the slot.
~ Roedy (1948-02-04 age:70)
Physicist Dogs
Dogs cannot derive the equations supporting the physics of the universe. Further, you cannot even teach dogs the equations. Therefore, I see no reason to assume humans must be smart enough to derive the deepest equations describing the universe. We might not even be smart enough to notice the problems. AI might extend our reach a little further. It may find ways of simplifying its discoveries enough for the brightest human brains to grasp, or it might find ways to augment us so we could understand.
~ Roedy (1948-02-04 age:70)
Pick the Best
It is too obvious to mention, but… If there are several different ways of doing something, (especially involving computer programming) one of them is probably noticeably better. If you do something more than once a day, it is probably worth a little experiment and a few moments contemplating the advantages and disadvantages of doing it each way. Then you can put your choice on automatic.
~ Roedy (1948-02-04 age:70)
Picking on Blackberry
I think the pundits such as professor John Plinussen of Queens University have gleefully dog-piled on the BlackBerry without understanding the technology, treating RIM (Research In Motion) most unfairly. They don’t understand the difference between a business tool and a fashion accessory. A business tool must let you write custom applications for your own business. It must provide a stable platform so those programs continue to run year after year. Compatibility, reliability and security are infinitely more important than coolness. Apple does none of those things. It provides only JavaScript, a toy programming language and iPhone OS yet another new incompatible operating system. It is brilliantly done, high tech, flashy toy, not a business tool. BlackBerry might start selling fashion accessories too, but they would foolish to ruin their business tools in the process by trying to ape Apple.
~ Roedy (1948-02-04 age:70)
Pie In the Face
How long until there is an Internet pie site? There is a check box if you want the pie thrown or handed over gently.
~ Roedy (1948-02-04 age:70)
Pirate Radio
The most obvious way to show consideration for our cosmic neighbours would be to stop broadcasting on frequencies that are not ours.
~ Roedy (1948-02-04 age:70)
Plagiarising
I don’t really care if people copy or plagiarise my work. I object because we don’t yet have the technology, so that when I fix my errors, all the copies automatically get fixed too.
~ Roedy (1948-02-04 age:70)
Plan First
An architect first creates the blueprints to document and clarify his intentions for a building. Then he supervises the construction. Most programmers, oddly, try to do this the other way around. First they compose code, then they document their intentions at the last minute, if at all, with a few comments. Usually these comments describe what the program actually does, not why, or anything about what the program is for or is intended to do.
~ Roedy (1948-02-04 age:70)
Pleasure Helmet
Imagine a WYWIWYG (What You Want Is What You get) not WYSIWYG (What You See Is What You Get) helmet. You put it on and you see swirling patterns. The helmet monitors your pleasure centres. The helmet permutes the patterns a little and notes if your pleasure goes up or down. It gradually homes in on your ultimate pleasure image. It would probably be something sexual, slightly forbidden. The current Internet is already part way there. You can surf porn sites gradually finding ones that specialise in images that turn you on most.
~ Roedy (1948-02-04 age:70)
Plug-in Maintenance
Just as a boy outgrows his clothes, so an IDE outgrows its plug-ins. The plug-ins require constant maintenance just to stand still.
~ Roedy (1948-02-04 age:70)
Precise Language
A computer should complain citing an invalid phone number, not an illegal one.
~ Roedy (1948-02-04 age:70)
Precise Naming
The key to efficient program maintenance is precise naming so you can find the code you want to examine or change quickly and to know with certainty the logic appears nowhere else.
~ Roedy (1948-02-04 age:70)
Prediction Impresses
The math that predicted that dim brown dwarf stars should exist was ever so much more impressive when the Hubble telescope revealed they actually did, than had they been found first and some math cooked up to explain their existence.
~ Roedy (1948-02-04 age:70)
Prepare for Renaming
Renaming is a lot simpler and safer if you have not used the same name for two different things.
~ Roedy (1948-02-04 age:70)
Pressure on Manufacturers
Just as open source software put tremendous pressure on commercial software creators, free digital designs, home laser cutting machines and 3D printers will put tremendous pressure on the manufacturers of objects.
~ Roedy (1948-02-04 age:70)
Presume Consciousness
Once we devise robots capable of passing the Turing test, I think it safest to presume they are conscious and at the least, that we take their requests seriously.
~ Roedy (1948-02-04 age:70)
Presumed Disagreement
When discussing on the Internet, anything you say is presumed to contradict someone else. If you are not, it is wise to state that you agree with or are elaborating on what someone else said. You can do this efficiently by starting your post with the word Further or Also.
~ Roedy (1948-02-04 age:70)
Priority 1: Document
If you go to use a program that you wrote and you find the documentation does not answer your burning question and you have to resort to studying the source code to find the answer, make sure you document the answer to this question. It is likely one end users will also have.
~ Roedy (1948-02-04 age:70)
Problem of Distraction
Distraction is a modern invention. We are not yet evolved to copy with it.
~ Roedy (1948-02-04 age:70)
Problem With Social Media
The essential problem with social media is that most people have nothing of interest to say.
~ Roedy (1948-02-04 age:70)
Programmer Gene
When you were a child, if you did your own experiment to see if it was better to put to cocoa into your cup first or the hot milk first, then you likely have the programmer gene.
~ Roedy (1948-02-04 age:70)
Programming As Cure For Pain
Computer programming is the best remedy for pain (physical or emotional) I have encountered. It requires so much concentration there is nothing left over to pay attention to the pain. They should teach this in AA (Alcoholics Anonymous).
~ Roedy (1948-02-04 age:70)
Programming Is Medieval
Programmers produce things that eliminate jobs — other people’s jobs, never their own. Programming itself has changed little since the punch card other than the text editor. Computer languages still work at an incredibly picky level of detail.
~ Roedy (1948-02-04 age:70)
Programming Secrets
The four big secrets to writing easy-to-debug, easy-to-maintain code, are not secrets at all. It is just that it takes decades before programmers finally surrender to them.
~ Roedy (1948-02-04 age:70)
- Tell the computer each fact in only one place. E.g. do not clone code.
- Design your code in air-tight boxes, so that nothing you change inside a box has side effects on anything else.
- Don’t try to do two things at once, e.g. dedup a list while simultaneously printing it. Keep the logic separate. It will be easier to maintain, encapsulate and understand.
- Validate the heck out of your data and store it in the most rigidly consistent form you can imagine. This tames it and makes it easy to display and reuse in myriad ways. It hard later to separate data into constituent subfields, but easy to later recombine tiny pieces.
Programming Tip
If you ever come back to some code you wrote long ago and you are puzzled:
- What is the name of some similar class?
- In what directory are the files kept?
- What format of files is this program expecting?
- What is the big-picture flow of this program?
Research it then Document it! Otherwise, you will have to research it again in future and you might be tempted to guess.
~ Roedy (1948-02-04 age:70)
Proofreading Tip
When proofreading, it helps to read aloud. You invoke additional error-detecting circuitry used in pronunciation and hearing.
~ Roedy (1948-02-04 age:70)
Psychology Assumption
The unwritten assumption in psychology experiments is that the subjects believe whatever lies they are told.
~ Roedy (1948-02-04 age:70)
Purpose of Comments
Java comments are for communicating with the maintenance programmer, possibly you, later when you have forgotten the details. The code is for communicating with the computer. Far more serious trouble derives from inadequate comments than inadequate code. Important things to mention:
~ Roedy (1948-02-04 age:70)
- If there are similar classes or methods, explain the differences. When do you use one or the other? If you don’t do this, the maintenance programmer will need to go over the code with a fine tooth comb just to make a simple, high level decision.
- When there are two equally plausible conventions, mention which one you used, e.g. returning null, the empty String " " or new String[0] for the empty case.
- If you change something here, remember to make a corresponding change over there.
- If you want to add (or remove) a new category, here are the steps…
- Is this code obsolete?
Quantum
At the level of individual atoms, the universe behaves extremely strangely as described by quantum mechanics. When atoms are clumped together by the trillions in ordinary objects, these effects are averaged out and washed out and things behave normally. Our intuition expects the atomic level to behave the same as it does on the level of soccer balls, but that is merely because we have no experience watching individual atoms.
~ Roedy (1948-02-04 age:70)
Quantum Freakishness
Whether it seems intuitively plausible that a particle could appear out of nothing might seem impossible to a person who lived only the world of watermelon-sized objects where this does not happen. To a five year old child used to seeing objects and people appear out of nowhere all the time on TV, it would seem obvious it was possible. To a maker of electronic chips, it would just be another thing he had to design for. It is all a matter of which behaviours you are familiar with. People frequently make the mistake of presuming the world of the very small or very big is constrained to work just the same way our watermelon world does.
~ Roedy (1948-02-04 age:70)
Quantum Intuition
On the microscopic quantum level, reality behaves quite differently than we are used to on the macroscopic level. This boggles our intuition:
~ Roedy (1948-02-04 age:70)
- Energy comes only in certain magic sized packets.
- It is not possible, even in theory to know both where an atom is and the speed at which it is moving.
- The position of an atom is not known until it is observed. I have yet to see a satisfactory definition of observed.
- You cannot predict what an individual atom will do, only the probabilities, but you can predict the probabilities with astounding precision.
- When electrons pass through a double slit, they form a wave interference pattern, not a pair of bars as you would expect.
- Electrons can tunnel through barriers — just appear on the other side.
- If two particles are in close proximity, ever after, no matter how far apart they are, measuring the spin of one will change the spin of the other.
Quantum Leap
A quantum leap is the smallest possible jump an electron can take. It is incredibly tiny. Yet the media persist in mis-using the term as if it were something huge.
~ Roedy (1948-02-04 age:70)
Questionable Terseness
It was once that the wisest things were stated most tersely. Today, anything terse is usually just an indicator of the writer’s team loyalty without any other content. e.g. Romney blows dead goats. They are complete waste of time. The posts might as well be empty with an team logo icon (religious, political, sexual, athletic…) decorating it. We need a way to filter out such noise from the discussion forums. Perhaps AI will come to our rescue.
~ Roedy (1948-02-04 age:70)
Radiation Fears
It is quite silly to fret over WiFi (Wireless Fidelity) radiation while ignoring cellphone radiation. The cellphone has to broadcast all the way to a cellphone tower; WiFi just to the nearby router hub. You hold a cellphone right next to your brain. The WiFi transmitter is at arm’s length attached to the computer. Every time you double your distance from a transmitter, you reduce your exposure by a factor of four, so compared with non-BlueTooth cellphones, the effects of WiFi are negligible.
~ Roedy (1948-02-04 age:70)
Rage At Being Ignored
Computer technology lets you send far more messages to others. These requests are implicitly requests for action or requests for change of opinion. Because everyone now receives so many more messages, the odds that anyone message will have a noticeable effect is much less. This leads to a quiet rage at being so ignored.
~ Roedy (1948-02-04 age:70)
Reality is a Hallucination
All experience of reality is an hallucination. You weave that theatrical production in your head from some digital, pulse frequency coded sensory data processed through your wetware and software. It is like a guided dream. So it is odd that your experience of reality is not more dream like than it is.
Synthesthesia shows how your brain can incorporate data, mislabeled with the sense it came from. The same thing can happen when memory or imagination is the source. Almost nobody appreciates just how indirect their experience of reality is. By analogy, someone might make a film, then from that make an animated cartoon. The viewer sees that and confuses it with reality.
~ Roedy (1948-02-04 age:70)
Redirects
It is a common thing for a webmaster to reorganise a website. The catch is the links into that website then stop working. Ideally the webmaster should set up permanent redirects from the old URL (Uniform Resource Locator) to the new to inform everyone of where their old pages went and to keep the old links working. However, companies such as Oracle do not do this. They prefer to force the hundreds of websites that link into them to individually research the links with Google to find the new ones or delete them. Obviously the total amount of work is thousands of times greater, but they don’t care. It is not them doing the work, it is the companies who send them business. Mindless next-quarter capitalism demands this sort of idiotic behaviour.
~ Roedy (1948-02-04 age:70)
Refactor
When in doubt, refactor.
~ Roedy (1948-02-04 age:70)
Refactor Early and Often
Refactor early and often. If you procrastinate, you will have even more code to adjust based on the faulty design.
~ Roedy (1948-02-04 age:70)
Refusal to Experiment
Computers are strange. They never complain when you ask them to do exactly the same work over again, with only a tiny change. On the other hand they never experiment with different behaviour no matter how many cues you give them that you are extremely frustrated.
~ Roedy (1948-02-04 age:70)
Relearning
I was once working on a team to select a new mainframe for the local electric utility. I represented the engineers. The other members of the team were rigidly in favour of sticking with the existing IBM line. I asked why when it had proved clear the competition was so much simpler to use and program. One guy representing the systems people answered, I have a decade’s worth of esoteric knowledge about how to coddle the mainframe and keep it going. If we switched vendors, that knowledge would be useless. I would have to start off afresh on an equal footing with everyone else.
~ Roedy (1948-02-04 age:70)
Reluctance to Learn
As I get older, I find myself devoting less and less time to learning new tools and new languages. Why would this be?
~ Roedy (1948-02-04 age:70)
- Skepticism. Suspicion that the new way is probably only marginally better and needlessly different.
- Awareness of the huge amount of application work to be done. Just how much time can you devote to learning new tools?
- Fads.
- It is harder to learn something new when you have so many ingrained habits.
- A head full of ideas about how radically different tools would have to be to make a significant difference. Language designers waste time shuffling the punctuation.
- Designers of tools try to impress rather than inform with deliberately intractable or missing documentation. They treat learning a new language like a hazing ritual.
Remote Debugging
I find most of my bugs when I am not sitting at my computer. I am then not distracted by the detail and can concentrate on the algorithms.
~ Roedy (1948-02-04 age:70)
Removing Obsolete Information
The Internet permits information to be up-to-the-second fresh, but it has no mechanism to ensure obsolete information is removed or updated. It does not even have a mechanism to ensure all information is dated. With a hardcover book, the pages dog-ear and yellow and there is a publication date. On the Internet everything superficially looks equally up-to-date. Internet documents, even on close examination, can look more up-to-date that they really are because a small part of them is fresh.
~ Roedy (1948-02-04 age:70)
Rename Early and Often
Rename early; rename often. The sooner you do it, the less there will be to change or screw up.
~ Roedy (1948-02-04 age:70)
Rescue Poor God
Creationists panic that god is under attack! If god is omnipotent, why are they so worried?
~ Roedy (1948-02-04 age:70)
Reserved con
The file name con is reserved for Windows.
~ Roedy (1948-02-04 age:70)
Resistance
Electrical resistance is a hugely variable property, varying over many orders of magnitude, much like programming skill.
~ Roedy (1948-02-04 age:70)
Resolving Software Patents
It makes no sense to have judges ruling on whether we should have software patents, when they don’t even know what a program is. It would make more sense to poll people who understand the question.
~ Roedy (1948-02-04 age:70)
Responses to Bug Reports
If I do a company a favour by reporting a bug in a program or non-functioning part of a website, they have a number of standard responses:
~ Roedy (1948-02-04 age:70)
- Give me some bit of canned advice chosen by a computer based on the keywords it finds in my message. No human actually reads my message.
- Give me instructions on how to use the offending program or website as if the flaw were not there.
- Demand reams of irrelevant information and mindlessly detailed instructions to repeat the bug. It is not that they have been unable to reproduce the bug; they have not even tried. They are hoping these demands will be sufficiently onerous that I will just go away. One company even did this when I told them that clicking the Options button at any time would crash their program.
Revamped Email
When you consider how much embarrassment, expense and damage our bailing-wire email system has caused politicians, you’d think they would be willing to spend $200K or so it would take to create a new secure, spam-free one.
~ Roedy (1948-02-04 age:70)
Ripping Yourself Off
If you come out of university without improving your ability to think, you somehow mightily ripped yourself off.
~ Roedy (1948-02-04 age:70)
Safer Cellphones
The are so many automobile accidents caused by people texting inappropriately. A technical solution could use a small accelerometer in the unit. If it is moving, it shuts the unit off. Then you could not use it while driving, cycling, walking, or piloting a plane. A bus or airplane could broadcast a WiFi signal that included an override that allowed units to work even while they were moving.
~ Roedy (1948-02-04 age:70)
Science For The Young
One of the beautiful things about science is that many of today’s elementary students have a deeper understanding of atoms than Democritus, the guy who first proposed them.
~ Roedy (1948-02-04 age:70)
Science Motivation
We like to think that exploration and scientific discovery are driven by curiosity, but they are funded by the desire to make a buck, or to find new ways to kill or exploit others.
~ Roedy (1948-02-04 age:70)
Scientific Proof
You can’t prove something correct in science, only in law or mathematics. You can, however, prove something wrong. Science deals in the evidence and consistency.
~ Roedy (1948-02-04 age:70)
Seeing What is There
A genius is someone who sees what is there, not what someone else tells him is there.
~ Roedy (1948-02-04 age:70)
Seeking Cheese
When a rat philosopher heads down a tunnel and finds no cheese, he does not say to himself Rats! I failed. He says, I have learned something. I now know one more place where the cheese isn’t.
~ Roedy (1948-02-04 age:70)
Self Absolution
Scientists typically take no moral responsibility for their work. Consider that without the complicity of scientists there would be no nuclear weapons or bioterror. They are responsible. They really all should have been tortured to death.
~ Roedy (1948-02-04 age:70)
Self Driving Trucks
I don’t think the Jesus-loving good ol boys who drive the US trucks realise how close they are to living on food stamps for the rest of their lives. Self-driving trucks are almost here:
- They don’t require a paycheque or a pension.
- They don’t fall asleep at the wheel.
- They don’n need breaks or sleep.
- They don’t have accidents.
Because of their life long rejection of science and rationality, they have no chance at a replacement good-paying job in engineering or science, e.g. servicing these trucks.<\p>
The Jesus-loving waitresses at the truck stop restaurants will be out of a job too. Self driving cabs will be right behind.
~ Roedy (1948-02-04 age:70)
Selling Ideas is the Key Skill
Everyone has good ideas. The skill is selling them.
~ Roedy (1948-02-04 age:70)
Sensible Security
I have been railing for years about how insecure email, passwords and credit cards are. Google has announced it is working on a replacement security mechanism using a tiny fob you can insert into a USB port. The implications are mind boggling. The US military already has a similar system using CAC smart cards. They permit id, digital signing, encryption/decryption, physical access control (lock opening). They could potentially be used for Internet commerce, replace credit and debit cards, passports, medical id cards, driver licence, personal door locks, ignition in cars, code-signing certificates to ensure no tampering and authorship of software… The system is unusually secure because the fob never reveals the unguessable secret master private key to anyone, not even the owner.
There are two main difficulties with implementation:
~ Roedy (1948-02-04 age:70)
- Hiding the private key in the fob in a way it cannot be stolen. None of the encrypted USB fobs I have studied, such as my own Kanguru Basic AES (Advanced Encryption Standard) encrypted fob, can do that even though it is not rocket science.
- The other difficulty is the problem of issuing IDs. It costs about $200 to research that someone applying for an ID truly is who they claim. Who will pay that much for a fob? Most IDs will be weaker, attesting only to an email address, phone number or domain registration. That is not good enough for Internet commerce. Perhaps credit card companies will issue fobs. However, the key to the ease of use of the system is to have only one fob to deal with.
Serious Encapsulation
The best way to be consistent in your code is to use the same code to handle the same function. I don’t just mean an identical copy of the same code. I mean the identical method. Don’t be afraid of tiny methods to enforce consistency by specifying your policy in exactly one place.
~ Roedy (1948-02-04 age:70)
Serious Encapsulation
Given that large corporations are each being hacked successfully about twice a week, is it not time to rethink computers and the Internet, and redesign it so malware and hacking are impossible?
~ Roedy (1948-02-04 age:70)
SETI
What are the arguments for letting intelligent life on other planets know where we are?
- Any time on earth an advanced and primitive civilisation collided, it do not work out well for the primitive civilisation.
- Animals in a forest work hard to stay out of sight.
- If it turns out to be a dumb idea, you cannot undo it.
- Potential enemies are millions of light years away. It takes millions of years for message to travel in each direction. Physical transport is much slower. We won’t see any response for millions of years.
~ Roedy (1948-02-04 age:70)
- We might gain knowledge from another civilisation.
- We get to join the cosmic club.
- We get to find out what the true galactic religion is.
Shred and Burn
I would be quite surprised if the NSA did not have a computer program to scan bits of shredded documents and electronically put them back together like a giant jigsaw puzzle. This suggests you cannot just shred, you must also burn.
~ Roedy (1948-02-04 age:70)
Similar Classes or Methods
If you create two classes or two methods with similar names or functions, it is crucial you document the differences between them. If you don’t, the maintenance programmer (possibly you) will have to go over the code in both with a fine tooth comb, just to figure out which one to use.
~ Roedy (1948-02-04 age:70)
Simple or Elegant?
When I was in high school, our math teacher Ernie Kershaw posed the question, given the three sides of a triangle what is the formula to compute the radius of the inscribed circle? He felt quite sure none of us could solve it given that the solution required trigonometry which we had not yet studied. He offered some fantastic prize for the solution, when withdrew it, just is case. I decided to solve it over the Easter holidays. I worked solidly on the problem and eventually came up with the idea of computing the area of the circle both with and without using r, then solving for r. My solution went on for pages and pages, but used only ordinary algebra and geometry. I was treated as a young Einstein. It has predisposed me ever since toward persistence and tedium over brilliance and elegance. I tend to distrust mathematical proofs employing a clever trick. To me, deciding whether the trick is legit is just as at issue as the theorem itself.
~ Roedy (1948-02-04 age:70)
Skimming
Computer programs are getting so huge, there is no time to read them any more. You have to be able to skim them or navigate them and safely ignore almost everything. Language design needs to focus on making this easier.
~ Roedy (1948-02-04 age:70)
Slavery
Anti-slavery argument usually focus on how unpleasant and unfair slavery is for the slave. But you can also argue based no the negative effects on the slave owner. A slave owner who indulges his power, rape and cruelty slides into depravity and indolence. This applies even if the slave is a robot, even if the robot is not conscious.
~ Roedy (1948-02-04 age:70)
Small Teams
Burroughs mainframes had legendary brilliant operating system software. Their secret was to use tiny teams of the most brilliant people they could find.
~ Roedy (1948-02-04 age:70)
Smart Robots
As of 2014, the smartest robots were about as smart as cockroaches.
~ Roedy (1948-02-04 age:70)
Software Lifespan
When you buy a piece of software, unlike a kettle, it will not wear out. 20 years later it will be identical to the day you bought it. However, it will not last forever either. It will gradually stop working because of changes in the OS. Eventually, it becomes unusable. That lifespan might be a year or it might be 20 years. The author might be able to keep the program going with a minor tweak. The author does not want to have to maintain many versions of the program. If software were rented by year, you would get all the fixes, updates and new features. Your software would continue to work. You would not pay for a lifetime of use then get cheated and get only a year. You get what you pay for. If the vendor stops performing, you stop paying. You don’t pay massively upfront for service you may never be able to use. Since the vendor would get the bulk of his income from existing customers, he would focus on keeping them happy, rather than coming up with cheap flash to attract new customers. To try out new software would not be as big an investment. I think this is a win-win situation.
~ Roedy (1948-02-04 age:70)
Software Patents
Software patents are a scheme set up by the government to allow criminals to scam legitimate business and to stifle innovation. All they have to do is stop issuing them. The problem will then clear itself up as the existing patents expire. Did you know that the patent office issued patents on the idea of offering free WiFi in a restaurant? The patent holder says it also applies to using WiFi at home. There is a patent covering any form of remote backup. Did you know there is a patent that covers all possible ways of remotely monitoring any body function? The patent office is patenting needs not novel solutions.
~ Roedy (1948-02-04 age:70)
Solving Similar Problems
If you have several similar programming problems to solve, pick one and solve it, forgetting about the rest. This will be simpler and more concrete to think about. You will also have less typing whenever you have to change your mind. Don’t clone and modify. Instead generalise your initial solution bit by bit to handle each subsequent problem. It is often helpful to organise your solution around an enum, using custom methods and values on each case to customise the general engine to solve each problem.
~ Roedy (1948-02-04 age:70)
Source of Bugs
Given that unreported security vulnerabilities to Windows Operating Systems sell for $100,000 each, It would seem plausible that some of them are created deliberately by Microsoft programmers.
~ Roedy (1948-02-04 age:70)
Source Of Disagreement
Most disagreements about computer programming come down to weighting differently the importance of the mutually-acknowledged advantages and disadvantages.
~ Roedy (1948-02-04 age:70)
Specificity Fights Blarney
When someone makes a grand sweeping statement, it is easy to let it slide. You have to apply it to a number of specific cases, then the blarney comes clear.
~ Roedy (1948-02-04 age:70)
Spinning Wheels
Writing a post that thousands of people comment on is not necessarily the same thing as contributing to society.
~ Roedy (1948-02-04 age:70)
Spinoffs of AI
As we become more and more familiar with debugging pathologies in neural nets, we will, as a side effect, gain a deeper understanding of how human brains go off the rails, accumulate delusions and phobias. Instead of psychiatry, which focuses on the external symptoms, we will focus on what is physically out of kilter inside the brain.
~ Roedy (1948-02-04 age:70)
Spooky Action at a Distance
Perhaps the strangest discovery of quantum mechanics is quantum entanglement. Once two particles have been in close proximity, measuring the spin of one changes the spin of the other, no matter how far apart they are. This boggles even the most brilliant physicists. Why? This is not the way objects behave in the macroscopic universe. Only magicians achieve this effect through trickery. It violates our intuition trained in the macroscopic universe. If macroscopic objects behaved that way, we might not even have thought to question how it works.
~ Roedy (1948-02-04 age:70)
Spy Tools
If someone hacks your computer, they can turn on your web cam and microphone to spy on you or case your home or office for a burglary. Leave them disconnected when not in use.
~ Roedy (1948-02-04 age:70)
SSCCE (Simple Self Contained Compilable Example)
When a newbie asks for help tracking a bug in a code snippet, the problem is usually is the code he did not post, hence the value of an SSCCE.
~ Roedy (1948-02-04 age:70)
Starting Over
Computer chips, Operating Systems and the Internet were originally designed without any concern for dealing with malice.
Ever since, the industry have, in a band-aid fashion, tacked on utterly inept approaches, such a virus scanners, to provide security, without making any fundamental changes.
The solution is to start over and design computer chips, Operating Systems and the Internet with security built in to the hardware. Everything has to be digitally signed. Everything has to be encrypted. Everything has to live in air tight boxes where it cannot corrupt anything else including disk files and the registry.
This would be a huge expense, but compared with the costs of damage from hackers, DOS (Denial of Service attack) attacks, malware, viruses, ransomware and software piracy it would pay back within a year. The most logical funder is the US military.
Trying to solve the problem with the legal system is futile, since attackers can be based anywhere on the planet, out of reach of local law. Further the rewards of computer crime are so great, even life sentences are not a deterrent.
~ Roedy (1948-02-04 age:70)
Starting Something Already Started
It should not be considered an error when the user starts something already started or stops something already stopped. This applies to browsers, services, editors… It is inexcusable to punish the user by requiring some elaborate sequence to atone, e.g. open the task editor, find and kill some processes.
~ Roedy (1948-02-04 age:70)
Steady Progress Does Not Appear That Way
Back in the 1970s I discovered that a computer program a tiny bit less clever than a human appears laughably inept and one a tiny bit smarter appears astounding. This creates the illusion of no progress in the program’s evolution, followed by overnight enlightenment.
~ Roedy (1948-02-04 age:70)
Stone Age Email
In two ways the email used in the stone age was more sophisticated than what we use today. They did not have writing, but when they send an invoice with a shipment of animals, they would fill a clay ball with tokens, one per animal, then seal the ball by stamping it with the sender’s seal. The receiver would break the ball and count the tokens. The system prevented counterfeiting. It also provided privacy for the message is transit.
Stories from the Stone Age: Waves of Change
~ Roedy (1948-02-04 age:70)
Stuxnet
I wonder about the wisdom of the Stuxnet virus attack against the Iranian’s uranium centrifuges on several grounds:
~ Roedy (1948-02-04 age:70)
- As a side effect, the USA/Israel gave the Stuxnet technology to Iran.
- The USA and Israel are far more vulnerable to cyber attack than Iran.
- The attack upped the arms race, legitimising computer vandalism as standard cold war tactics.
- The attack was sleazy, sneaky, cowardly and against international law. The Iranians should have no trouble exploiting that in turning other middle eastern countries further against the USA and Israel.
Submit
This resistance is futile joke has gone too far. Even fortune 500 companies have festooned their websites with icons.
~ Roedy (1948-02-04 age:70)
Subpenny Royalties
If Mike Nichols were to remake The Graduate, instead of plastics, subpenny royalties would be whispered into Benjamin’s ear.
~ Roedy (1948-02-04 age:70)
Suitable Names For Google
If you name your kid John Smith nobody will ever be able to find him with Google.
~ Roedy (1948-02-04 age:70)
Surveillance Cameras
What is the point of a surveillance camera with insufficient resolution to identify culprits?
~ Roedy (1948-02-04 age:70)
Synching
It is almost impossible to keep things in synch manually. Instead:
~ Roedy (1948-02-04 age:70)
- Keep each fact in only one central database (not necessarily SQL (Standard Query Language) ) and access it as needed. Since there is only one copy of each fact, there is nothing to get out of synch.
- Use some automated tool so that if you change a fact is one place, it automatically updates the others.
- Write a sanity checker you run periodically to ensure all is consistent. This is the strategy compilers use.
- Document the procedures needed to keep all in synch if you change something and rigidly and mechanically follow them.
Syntactic Sugar
Syntactic sugar makes programs terser and hence easier to understand and maintain. The blanket rejection of sugar is a manifestation of real men forge their own bits.
~ Roedy (1948-02-04 age:70)
Teaching Kids to Program
I was the head instructor at a computer camp in the 1980s. I saw my job primarily as ensuring the kids had fun, but, I discovered the kids learned at least ten times faster than in traditional schools.
At one point, three ten year olds interrupted my lunch to beg me to teach them trigonometry. The jaws of the conventional teachers lunching with me dropped.
I did many things quite differently than traditional instruction.
- I avoided talking and when I did, I limited myself to a sentence or two, without repetition. As result of respecting my kids' time, they gave me rapt attention. Conventional teachers drone on and on boring their students, then punishing them for inattention.
- Kids love noise. Old folks do not. Majority rules. Pandemonium and talking are the natural environment for learning. They help create excitement and enthusiasm.
- I promised them I would teach them nothing was not relevant to their goal — creating a video game, even if it temporarily looked otherwise.
In conventional education, things are done for the convenience and preferences of the teacher. In my view, they should be done to fit the convenience and preferences of the kids.
There are problems with my approach.
~ Roedy (1948-02-04 age:70)
- It is utterly exhausting for the teacher.
- I needed several teaching assistants to help with one-on-one.
- Some of the kids became overstressed from the competition that arose.
Teaching Math
Math is taught as though the students will eventually became math profs. The students are presumed to love math for math’s sake. This leaves most students cold. Instead they need to be taught practical math where every problem is something they would encounter in real life e.g. carpentry, shopping, calculating floor area, borrowing, investing, calculating total housing costs, computing mileage, gambling odds…
~ Roedy (1948-02-04 age:70)
Technology + Evolution
Evolution has left us humans with a strong drive to compete with each other and with other species. Technology has escalated the power to satisfy that desire to the point of genocide and species extinction. Advanced technology even allows us to wipe out the entire human species and the large mammals. It is only a matter of time until we do it, possibly accidentally. We are doomed unless we develop artificial intelligence, wiser than we are, lacking this drive, that could prevent us from indulging our bloodlust.
~ Roedy (1948-02-04 age:70)
Temporary Files
OSes including Windows and languages including Java don’t properly handle temporary files.
- They don’t automatically delete them when a program finishes if the programmer forgot to.
- They don’t automatically delete them if the program crashes.
- They don’t automatically scavenge and delete them periodically if the OS crashes.
Temporary files look just like ordinary files. Programmers have their own conventions to help find and delete them later e.g. by putting them in directories named temp or naming them temp*.tmp, but not all programmers do that. The powers that be presume programmers never forget and programs never crash. There should be a temporary attribute bit on files to ensure they are eventually automatically recognised and deleted.
~ Roedy (1948-02-04 age:70)
Text Editors are Inappropriate
Elderly programmers like myself did our first coding with patch cords, spools of paper tape and with 80-column punch cards. This paradigm has persisted, namely that source code for computer programs is a linear stream of ASCII text. Yet programs are really hierarchical rigidly structured data. If a customer asked us the best way to edit structured data, almost nobody would suggest a text editor, yet that is what we programmers use ourselves. We are as hide bound as Christians when it comes to our craft.
~ Roedy (1948-02-04 age:70)
Texting Costs
Texting costs the cellphone company almost nothing. It uses negligible bandwidth. It is so cheap for them, it should be bundled with any plan free, but they sometimes sucker customers for thousands of dollars for a few pennies worth of service. That has to stop.
When you use the Internet, it costs the same no matter where in the world you contact. Cellphone rates must not try to cheat charging long distance.
The basic principle should be that markup should be relatively constant no matter what the service. In a phrase commensurate pricing.
~ Roedy (1948-02-04 age:70)
Theory vs Law
In casual speech, a theory is just a hunch or that scientists call a hypothesis. In scientific speech, a theory is as certain as it gets. It is even stronger than a law. Think in term of music theory as opposed to music practice. There is no doubt whatsoever that a octave represents a doubling in frequency.
~ Roedy (1948-02-04 age:70)
Three Kinds of Error
There are three kinds of error, in ascending order of nastiness:
- Syntax errors, detected by the compiler.
- Exceptions and failed assertions, detected by the run time.
- Logic errors, detected by proofreading the output.
The beauty of Java is most of the errors are detected by the compiler.
~ Roedy (1948-02-04 age:70)
Tidy Your Mind
You picked up your mental programming about how you decide what to think and do in any given situation haphazardly and unconsciously. Consider tidying your mind. Think about how you want your biocomputer to work and test out the new ideas, then burn the new programming into your unconscious. The Ken Keyes Living Love Methods could be thought of as a school of programming theory.
~ Roedy (1948-02-04 age:70)
Time To Check
The amount of time you need to spend double checking your work depends both on the consequences of an error and the likelihood you will screw up.
~ Roedy (1948-02-04 age:70)
Tip
Any time any of your familiar programs behaves strangely, run:
chkdsk X: /F /B /Ron all your drives and then run a virus scan. Don’t wait. Using a corrupted drive just makes it worse.
~ Roedy (1948-02-04 age:70)
Tip For Novices
If you are correcting a document from a list of error messages with line numbers, work from the end of the document to the top.
~ Roedy (1948-02-04 age:70)
Toleration For Error
Programming has more tolerance for mistakes and less tolerance for uncorrected mistakes than other profession.
~ Roedy (1948-02-04 age:70)
Too Much Computer
You know you have been at your computer too much when you catch yourself trying to move the cursor off the screen and onto your wall calendar.
~ Roedy (1948-02-04 age:70)
Top Priority
Your top priority should be fixing bugs. If you carry on development, you are just creating more places you will have to search for them.
~ Roedy (1948-02-04 age:70)
Touch Screens
After years of teaching people not to touch the screen because it smudges, they come out with screens that you are suppose to poke at.
~ Roedy (1948-02-04 age:70)
Towel Rack
A towel rack should be mounted in easy reach from the bathtub. Mine isn’t. Why? The person who did the design never tested the design by using it himself. That is the same reason most computer programs are so user-hostile.
~ Roedy (1948-02-04 age:70)
Trashing Apple
Only Apple has such marketing cachet that they can release a device who primary effect is to make the user go deaf and have it hailed as the innovation of the century.
~ Roedy (1948-02-04 age:70)
Trashing Facebook
If ever there was a Communist conspiracy, Facebook is it. One by one it turns highly intelligent people into infants drooling over mindless video games for hours every day that look to me there were designed for 3 year olds.
~ Roedy (1948-02-04 age:70)
Trashing JavaScript
If you allow JavaScript to run on your machine, you enter the world of 1984 when every keyclick, everything you look at is potentially monitored. Your webcam feed can be turned on. The catch is corporations have arranged that if you turn off JavaScript their websites stop working entirely. They want to spy on you.
~ Roedy (1948-02-04 age:70)
Trashing JSP (Java Server Pages)
JSP is like a 400 year old house where each generation that lived in it tacked on an extra room. There is no overall plan, just a hodgepodge of architectural styles kludged together. The syntax is, to be kind, appalling.
~ Roedy (1948-02-04 age:70)
Troll Feeding
If you don’t feed the trolls, they will eventually go away.
~ Roedy (1948-02-04 age:70)
Trouble With Einstein
I have read a number of explanations of Einstein’s theory of special relativity. I find myself very frustrated and even angry at the authors. Why?
~ Roedy (1948-02-04 age:70)
- They talk about observer A at rest and observer B moving. But is not one of the postulates there is no such thing as at rest, all you have is relative motion, right?
- They use an illustration of a plane flying overhead and from that generalise to all motions, including toward and away without any exposition.
- They describe some sort of astronaut twin experiment, creating an asymmetry in biological age. The difference is in accelerations positive and negative experienced, not an asymmetry in relative motion. What gives?
TSTL (Too Stupid To Live)
Fishing toast out with a fork, sharing needles and sharing passwords are activities common to those TSTL.
~ Roedy (1948-02-04 age:70)
One of the few nice things I can say about Twitter is that it teaches brevity.
~ Roedy (1948-02-04 age:70)
Twitter Analogy
In his novel Capitol, Orson Scott Card describes a civilisation with a cult of celebrity. To prolong the lives of celebrities, they are put into suspended animation only to wake for one day in a century. During that day, every waking moment is holographically recorded. Twitter gives the illusion that you are such a celebrity and the world is desperate to know precisely what you ate for breakfast and how your bowels are functioning.
~ Roedy (1948-02-04 age:70)
Twitter is…
Twitter is for people who do not get enough spam.
~ Roedy (1948-02-04 age:70)
Twitter is…
Twitter is like playing with other people’s feces.
~ Roedy (1948-02-04 age:70)
Twitter is…
Twitter is the washroom wall of the Internet.
~ Roedy (1948-02-04 age:70)
Twitter Limit
Twitter’s limit of 140 characters permits:
- Saying something that sounds clever, but is untrue.
- Repeating slogans.
- Making a smart-ass evaluation that tells only about your attitude, nothing about the thing discussed.
It is an invitation for people to behave like adolescents. It designed for shallow people like Sarah Palin and no surprise, she chose it as her preferred social medium.
~ Roedy (1948-02-04 age:70)
Twitter as Ooze
Is Twitter the primordial ooze from which a planetary consciousness will evolve?
~ Roedy (1948-02-04 age:70)
Types of Garbage Collection
~ Roedy (1948-02-04 age:70)
- In Canada, the government sends men to your house every week to take away your garbage. Hoarders are free to hang onto things they don’t really need.
- In third world countries, it is up to you to take your own garbage away.
- Java’s garbage collection system is analogous to a garbage removal system where every hour, workers scan your house for junk mail, the contents of waste baskets, carpet lint, toenail clippings and anything else they are absolutely sure you don’t want to keep.
- C++’s system for disposing of unreferenced objects is similar to India’s, with the strange feature that undiscarded garbage becomes invisible but still stinks.
Unified Names
I would like it if you changed a class name, if all references also changed to match, and all references in all scripts changed to match. Similarly if you changed a file name, all scripts and all code would change to match. You need a mechanism to delay the switch in production files until the code goes into production.
~ Roedy (1948-02-04 age:70)
Unmaintainable Code
The cardinal rule of writing unmaintainable code is to specify each fact in as many places as possible and in as many ways as possible.
~ Roedy (1948-02-04 age:70)
Unwelcome Customer
CMP (Canadian Mind Products)used to build custom computers. One woman used to bring in her temperamental ancient EGA (Extended Graphics Adapter) computer for us to repair. It was a black hole for time and it was hard to touch it without something else going wrong. There was no way we could bill for all the time we spent on this thing and besides her finances were very tight. I detested that machine, but she had no budget for upgrades. I was preparing an invoice and noticed the spell checker had changed her name to Enema. It was as if my computer knew how I felt about her computer.
~ Roedy (1948-02-04 age:70)
Up Front Optimising
Contrary to Knuth’s classic advice, there is a certain kind of optimising you must do up front. You must decide up front, for example, whether to process sequentially with batch files, process Collections totally in RAM or use an SQL engine. This sort of decision can’t be tweaked at the last minute without immense disruption. You must get it right before you start.
~ Roedy (1948-02-04 age:70)
Use Examples
In writing documentation, I have found people have little difficultly generalising from a concrete example, but have endless inventiveness in misinterpreting a generic description, particularly if it written in my own private variant on BNF.
~ Roedy (1948-02-04 age:70)
Value of Paranoia
All great programmers are paranoid.
~ Roedy (1948-02-04 age:70)
Video Addiction
People who immerse themselves in games, board games or video games, are much like drug addicts. They have opted out of solving society’s pressing problems. They are expending considerable effort to no purpose.
~ Roedy (1948-02-04 age:70)Reverend Johnson: Oh Lord. Do we have the strength to carry on this mighty task in one night? Or are we just jerking off? [Blazing Saddles].
Viewing the Sky
If you sat at the North Pole for a year staring at the sky, you would see only 50% of the celestial sphere. If you sat at the equator you would see 100%. What is the formula for the percentage given the latitude?
~ Roedy (1948-02-04 age:70)
VisiCalc
Written for the Apple ][, VisiCalc was the first spreadsheet. The originality of the spreadsheet concept overshadows VisiCalc’s other, even more important, but to us, obvious, innovation — selling the same program, unmodified to the mass market. Prior to that, programs were nearly always custom written or custom modified.
~ Roedy (1948-02-04 age:70)
Vision Hardware
The retina does quite a bit of image pre-processing. There are 20 different types of cell. You could think of the retina as like 20 different kinds of specialised camera. For example, W3 cells are specialised for detecting predatory birds overhead.
~ Roedy (1948-02-04 age:70)
Visual Feedback
Every time the users clicks a key or clicks the mouse, the screen should immediately change, even if only for a second. Without that, user cannot tell if the click took.
~ Roedy (1948-02-04 age:70)
Voting With Your Mouse
On the Internet, users continuously vote for what they find of interest by clicking with their mouse. If it is the drunken binges of Lindsay Lohan, the vendor will provide more of that because the content is just bait for ads. The users get what they deserve, what they ask for, what they will put up with. Measured in terabytes of traffic it is mostly hard core pornography.
~ Roedy (1948-02-04 age:70)
Vulnerable Internet
When you discover how vulnerable the Internet is to various forms of attack, to forgery, to spam, to DOS and when you find out there is no way to exclude bad guys from just tapping in you wonder how could it possibly could have started out designed for military use.
~ Roedy (1948-02-04 age:70)
Walking to Think
In past centuries, if someone had a difficult problem to solve, they would take a long walk. Today they are afraid to use the technique because it would be perceived as goofing off.
~ Roedy (1948-02-04 age:70)
Watch Featuritis
The Timex company, (and others) despite making watches for decades does not understand customers like me. I have a simple need.
- I want the watch to tell time in big letters.
- I want the watch to tell me AM/PM, the date and day of week in big letters.
- I do not want it to be affected by any of the usual onslaughts especially cold wet weather.
- I want it to be easily visible without pressing a button, except possibly at night.
I already have an alarm clock. I do not want to time horse races. I do not want to track the time in Kuala Lumpur.
They put so many features on even the most basic models that if you hit a button by mistake, the watch goes off into some obscure mode. You have to find the manual and spend 30 minutes getting it back to ground state. The watch is unusable in the meantime.
If they must put on all those bells and whistles, there should at least be a button you hold down to put the watch back into ground state. For configuring the watch, you should be able to use a computer where you have all the buttons you need, a mouse and online help. The time should automatically sync from the computer’s time, including DST. It could work with a Logitech unifying USB receiver, the way a wireless mouse works.
~ Roedy (1948-02-04 age:70)
Waterless Computers
Unlike many machines, computers require no water once they are manufactured.
~ Roedy (1948-02-04 age:70)
Wavicles
Understanding quantum mechanics has been held up by the refusal to introduce the word waveicle into the vocabulary. We insist on saying an electron is like a wave and like a particle. This is like saying a car is sort of like a horse and sort of like a cart and refusing to think about it as its own category. Once we do this, we can start thinking about the properties waveicles have and eventually develop intuition.
~ Roedy (1948-02-04 age:70)
As We Really Are
If some years from now a organisation offers to let you see how others see you and you decide to give it a whirl and decide the results are completely wrong, check how well that view explains the universe compared with how your current assumption does.
~ Roedy (1948-02-04 age:70)
Website Grumbling
One thing I love about having a website, is that when I complain about something, I only have to do it once. It saves me endless hours of grumbling.
~ Roedy (1948-02-04 age:70)
Website as Loudspeaker
If you have even a small website, more people will come to listen to you expound in a day than went to see Socrates in a year.
~ Roedy (1948-02-04 age:70)
Weird Science
The following bits of science do violence to my intuition.
~ Roedy (1948-02-04 age:70)
- Black body theory.
- That observation affects the thing observed other than by disturbing it in the process of measurement at the quantum level.
- That evolution generates such a profusion of creativity rather than converging on the same old solutions.
- The subjective experience of consciousness.
Where to Look For Bugs
When you can’t find a bug, you are probably looking in the wrong place. When you can’t find your glasses, you don’t keep scanning the same spot because you are convinced that is where you left them.
~ Roedy (1948-02-04 age:70)
Where?
When you maintain a program, you have a fair idea what it does just by playing with it and looking at its menus. What you want to know is where it does it. Be kind and leave hints cross referencing similar code.
~ Roedy (1948-02-04 age:70)
Why DSK (Dvorak Standard Keyboard)?
When I started typing on an old manual Underwood typewriter, I used two fingers. Later, when I tried to touch type with the QWERTY layout on an IBM keyboard, my wrists would immediately start to ache. I later tried the DSK layout and then the Kinesis ergonomic DSK KB133 PC/QD keyboard. I discovered could touch type all day without pain. I once clocked myself at 100 WPM (Words Per Minute). I might be even better now.
I have heard several experts say the benefits of switching to DSK are not worth the effort. However, consider your hourly billing rate, and how many more years you will be typing. Even a 2% speed increase really adds up.
~ Roedy (1948-02-04 age:70)
Why I Studied Math
At university I studied mathematics because it was my worst subject. Everything else was pretty easy to coast through using memory. There did not seem much point in just grinding more raw facts down the sausage tube. I wanted to learn to think.
~ Roedy (1948-02-04 age:70)
Why Post?
The main reason people post publicly is to change the beliefs of others: political, religious scientific…
~ Roedy (1948-02-04 age:70)Other motives include entertainment infuriating others and attracting attention.
Why the Simplicity?
Have you ever noticed that the equations to explain the universe always fit on a single page? Does this mean the universe is inherently simple or that scientists have not get been able to solve the problems where the solutions take a whole bookfull of equations?
~ Roedy (1948-02-04 age:70)
Why Video Games?
I can understand the intellectual challenge of writing video games but it utterly baffles me why anyone would play one. When you are done you have nothing to show for all the effort. You have no skill to use elsewhere. You don’t even have any wages. Since the world is so full of real problems crying for solutions, why jerk around with artificial time wasters?
~ Roedy (1948-02-04 age:70)
Why Is a Week 7 Days?
That the week has seven days is not arbitrary. One lunar month is approximately four weeks.
~ Roedy (1948-02-04 age:70)
Will Artificial Life Displace Us?
Yes, artificial life will displace us. Why?
~ Roedy (1948-02-04 age:70)
- Biological life intelligence changes only very slowly. Artificial intelligence is constantly improving. It is only a matter of time until artificial life is twice as intelligent as biological life. At that point, it is no contest.
- We humans will want eyesight 100 times sharper, hearing 100 times more acute, 100 times strength, 1,000,000 times faster thinking, infinite durability, ability to fly, ability to run as fast as motorcycles, ability to swim under water, ability to explore deep space… We can’t have those things without replacing our biological parts with artificial ones.
Wind Owls
When I made a typo in the word Windows, the Forté Agent spell checker suggested that I intended to type wind owls.
~ Roedy (1948-02-04 age:70)
WORA (Write Once, Run Anywhere)
Prior to 2005, computer scientists struggled with the problem of making the same program run on different hardware. After 2005 they struggled with how to stop it from running anywhere but one environment. The key tool was the proprietary plug-in API (Application Programming Interface) that ensured a program had to be designed for only one browser or host. The other tool was digital rights.
~ Roedy (1948-02-04 age:70)
Write Comments First
Write the comments first!
~ Roedy (1948-02-04 age:70)
Yak Shaving
I can’t see how anyone can estimate a computer project that is not just a theme and variations of one done before. Trivial problems unexpectedly turn into a regress of Yak Shaving.
~ Roedy (1948-02-04 age:70)
Is Your Child a Potential Computer Programmer?
A computer programmer has to be a patient stickler for detail. If your child typically does thing like the following, computer programming may be a suitable career.
~ Roedy (1948-02-04 age:70)
- Experiments to see which is better, washing clothes and socks right-side out or inside-out.
- Makes Jello using two cups of hot water.
- Puts Dymo labels on all the household computer connectors and cables.
- Can explain to you why some particular order of gargling, flossing and brushing is best.
- Uses some sort of keyboard mapping to optimise the position of keys on her keyboard.
- Has a fondness for putting things in Ziploc plastic bags that do not need protection.
- Prefers polyphonic music.
- Prefers toys with thousands of tiny pieces.
- His favourite Christmas present was a package of Post-It flags.
- Names her pets after ancient Greeks.
- Writes daily to software vendors, manufacturers, media, government, authors etc. telling them how what they do could be improved.
This page is posted |
http://mindprod.com/quote/programmingbyroedy.html | |
Optional Replicator mirror
|
J:\mindprod\quote\programmingbyroedy.html | |
Please read the feedback from other visitors,
or send your own feedback about the site. Contact Roedy. Please feel free to link to this page without explicit permission. | ||
Canadian
Mind
Products
IP:[65.110.21.43] Your face IP:[18.97.9.174] |
| |
Feedback |
You are visitor number | |