Digital Minefield

Why The Machines Are Winning

The Dark Side of Computer Programming


October, 2014 is exactly fifty years (and one month) since my first job as a programmer. My training was a three months internship. In four years I was offered double my first salary, but I wasn’t a professional. I decided to move on. Read why.

I didn’t want to take time out from learning on the job to get a computing degree. In a field changing so rapidly, I felt my best shot to become a professional had to include experience in new developments. I also joined the professional computing society.

This was the oddly-named Association for Computing Machinery. I didn’t just join, I read as many of their publications as I could comprehend and attended conferences whenever I could. (I even had a paper accepted at a regional conference.)

I also chose jobs for learning opportunities, not salary. Positive choices means avoiding negatives ones. I shunned programmers who thought they were superior to non-programmers. If you had a problem with their software, it was your fault, not theirs.

I saw many people confounded by code written by those smarter-than-thou programmers. Instead of caring about their customers, these high-and-mighty programmers were more interested in showing off their cleverness. Not smart in my book.

The more of this arrogance I saw, the more I looked for gems of real wisdom. Early on, I discovered a programmer’s best tool was ignorance. Admit when you don’t know and get help. You can bluff clients for a while but not computers for a nanosecond.

My next epiphany came when I realized it was my job to communicate clearly to the client, not theirs to understand my jargon. Lose the tech terms and rely on common English. If you fail, try again. It’s not their fault—clarity is your responsibility.

In recent years (as I’ve written in this blog), I’ve seen a serious decline in good programming. I encounter errors so egregious they astound me. Too many programmers follow fashion, eschewing both logic and common sense. And worse.

I swear there are programmers who enjoy needlessly punishing users. I know there are programmers who write what’s easiest for them, ignoring whether it makes sense or how hard it is to use. It’s ridiculous to see this, but why do companies permit it?

The goal is obvious: things should work exactly as the user expects without thinking twice about it. The programmer may write the code, but the user should see nothing between what he or she wants and how to get it. In two words, total transparency.

Like a good writer, a programmer should produce the best experience possible without showing how it’s done. Just because you are in control is no reason to show off. Being clever is just ego. If you need that, you should avoid the reality of computers.

Search Engine Obfuscation


I imagine many of you realize this title means I’m about to take a poke at Search Engine Optimization (SEO). Probably not as many recall I’ve already written a post about this (May 13 2013).

Here’s a short quote from that post:

“No matter what you’re searching for or which search engine you use, what you get are never really the best matches. Many hits are there simply because their position was manipulated by Search Engine Optimization.”

Just in case you’re unfamiliar with SEO, it’s the process of improving the visibility of a website or page in a search engine’s results. While this may seem a reasonable goal for many a business, the service is available to everyone—for good or evil.

If you need to know more about what services SEO provides, take a peek at the obvious, www.seo.com. Of course, they (or any SEO provider) won’t tell you anything about the downside.

See here’s the thing, the dirty little secret no SEO provider or search engine ever talks about. If you improve one site’s visibility, you also decrease the visibility of every other site.

All search engines have strategies, even if implicit. They can be found, analyzed, and manipulated to a site’s advantage. Some strategies may be more complex than others, and some may be revised more often than others, but there’s always something to be finessed if they’re clever or finagled if they’re devious.

In case you doubt how often search engine strategies change, here’s a quote from seo.com: “Online marketing has developed beyond search engine optimization. At SEO.com our services have eVolved to keep delivering the results you want.”

Calling it evolutionary is deceptive. These services optimize for all the major search engines, and strategies are always changing. And if you (or your company) want to benefit from these services, you need to keep buying what they keep delivering.

Of course, your webmaster can buy the SEO books and do this in-house. Either way, once you’ve bought into SEO, the fear of dropping out grows like a cancer. Since the spread of SEO is inevitable, so is the increasing distortion of search results.

What the purveyors of SEO and search engines don’t say is it’s just like an escalating arms race. After all, the more search become obfuscated, the more money they make. Not from us. We get to search for free; and it’s worth what we pay for it.

Down the Software Drain


This blog contains over fifteen posts on programming (so far). They offer a variety of explanations as to why software has declined in recent years. However, this post is less about the fading quality of software than examining its consequences.

First, consider a computer’s three main components: hardware, software, and peopleware. Assuming users are trained and proficient in both hardware and software, we will always have human failings. Once ordinary, these have now become digital.

For every program that’s strictly business, there are thousands whose sole purpose is distraction. Add thousands more that can be either time-savers or time-wasters. Now we have mountains of frantic over-activity yielding mouse-sized useable output.

Connect this person to others on a network and unless strongly roadblocked, apps like email, texting, and their many annoying relatives will drive even a dedicated monk to distraction.

Despite these expanding diversions, people are convinced they can juggle it all and still do the job. The personal delusion of multitasking goes against decades of scientific evidence. And if people can do it all, why do they always say, “I didn’t see that car.”

Software has developed over decades, and we should have improved quality, effectiveness, and reliability. Intentional selection should enhance the breed better and faster than blind natural selection. Yet it hasn’t for at least a dozen years.

Although software did advance in the early decades of computing, that progress is slowly eroding. In many (but not all) areas, software quality is not only becoming less efficient but less effective. But that’s not the worst of it.

Maintenance is essential to keep our software abreast of endless upgrades in hardware and software. Things change so quickly, we are overwhelmed by shortfalls in maintenance; we fail to see it’s totally inadequate. Replacements do not inspire confidence.

I said this post was about consequences. Having listed the causes, enumeration seems superfluous: lost time, wasted effort, missed communications, and lost or corrupted data. Ordinary business transactions are no longer easy, simple, or seamless.

Slipshod software goes hand in hand with careless and undisciplined humans. We can do better. We have done better. How much is lack of education; how much failure of management? Do we not care? Or do we simply lack the will?

Wither AI?


On the spectrum of smarts, what the pretenders to AI aspire to is cleverness. Why? Because it’s what they know, what they do, and therefore what they value (and think other people should also).

What they dismiss (because they can’t do, and therefore don’t value) are common sense and wisdom. The former is far more valuable than clever in our daily lives, and the latter invaluable for our future—as individuals and as a species.

Another reason common sense and wisdom are not valued is because they can’t be measured like IQ. To speak of smarts can only mean IQ—which is mere cleverness. We’d be better off with common sense or wisdom, both harder to attain.

The advocates (and acolytes) of AI, not only think super-clever will solve our all-too-human problems, they think it can solve them without our supervision. Not only wrong, but stupid.

By way of proof, I offer one man: John Von Neumann (1903-1957). JVN excelled in at least four areas: physics, mathematics, computing, and economics. In any one of these, his work achieved not only fame but proved him to be a unique genius.

As to which of the four was his greatest contribution, it’s hard to say but right now computing may be in the lead. Of course, that’s placing it above the development of the atomic bomb.

One of his lesser known books is Theory of self-reproducing automata. Machines making machines. It’s said its ideas led to the concepts of DNA (maybe that’s his most influential work.)

However, none of these are why I invoke him. Combine what JVN knew about computers (and their future), the brain (and AI), decision-making (Game Theory), and self-reproducing automata, and you’ll envision a dystopia worse than the Terminator’s.

Yet, he didn’t. Combine them, that is. He never saw AI as making decisions for us. Not at all. Here’s what he thought:

“. . . the best we can do is to divide all processes into those things which can be done better by machines and those which can be done better by humans and then invent methods to pursue the two.”

This I submit goes far beyond smart. More than clever, it’s actual wisdom. And I have to ask, why have we ignored it all this time? Why do we still listen to the pie-in-the-singularity-sky prophets?

Oh yeah, JVN also coined the term “singularity.” In his short life, he knew more than all these so-called smart guys combined. If we look to them for answers, then it is we who are unwise.

Insecurity, Part Three


Last week’s post ended with three questions: Why are we under attack? Who will protect us? Is there no hope for privacy? Here’s three more: Why do I have to do this? How did this problem get so bad? Does my life have to be this complicated?

The most important piece of advice I can give is this: choose carefully. All the concerns in the previous paragraph can be minimized by making good choices. You can do more with less if you simply buy less, and that includes the “free” stuff.

Far too many people buy new technology as fast as it’s announced. They’ll stand in line all night and dive deeper into debt to have the next great thing. Until the next great thing.

The cost of new technology goes far beyond dollars. It burns up your time and punches new holes in what’s left of your security. No matter how dazzling new technology is, you must see past the fun. What are the risks? How much of your life is at stake?

Media extols new technology, but ads are only the good news. Who will tell you about the downside of using public WiFi—whether for email, selfies, or shopping. Sites won’t warn you. Convenience trumps safety when banks push mobile banking.

Saying your data on the Internet is on a Cloud doesn’t make it safer, or quicker, or easier to access, or anything different from what it was before. But calling it a Cloud sounds really cool.

Advertising is all about appearances. Buyer Beware won’t reveal reality. If you want reality, you’ll have work hard and dig deep, Reality is where the risks are. Appearances can hide the risks.

Clouds are as irrelevant as the speed of Google searches. Speed only counts if you get what you want and get out. Google searches aren’t fast if you don’t get what you need right away. Google wants you looking (at ads), not finding. That’s browsing.

Finding is what the Internet does. And tracking. If this was a game, you would be IT (pun intended). When you’re online, how many people are looking at you? Literally if you’re Skyping.

GPS or triangulation reveals where you are. Texting or email speaks your thoughts. A selfie will pick you out of today’s lineup. We have lost any possible expectation of privacy.

What technology doesn’t bother to tell you is what makes the hacker’s job easier. The less you’re aware of exactly how and to what extent you are at risk, the more likely you will be a loser.

Clearly, the best we can do is minimize our losses. Web sites won’t help us; software can’t be bothered; government only listens to lobbies. We have to protect ourselves—and each other.

Insecurity, Part Two


Last weeks post (“Insecurity, Part One”) was getting a little long, so I left a few things out. One was very simple: keep your security information on paper, or hard copy as we used to say.

Or you could use a flash drive or any other medium not ordinarily connected to your computer, and therefore portable. If it’s not connected, it can’t be hacked. If it’s paper, hide it well.

The other point I omitted was Two-Factor Authentication (or 2FA). This was recommended by all the experts interviewed in those news stories last week. Unfortunately, it confused the reporters.

It’s supposed to work like this. You sign on to the site and then the site takes a second step (like sending a code back to you). This is meant to ensure it’s actually you and not some computer.

But no one agrees on just how to do this. For example, Google wants to send it to your phone, regardless of what device you used to sign on. In effect, they want two-device authentication.

It makes sense for the site you just accessed to authenticate by sending you a query to the device you just used. This will work even if you sign on from someone else’s computer. Just carry your security information with you (flash drive, hard copy).

If 2FA is a good idea, why not always use it? Well, for one thing they have to offer it. Currently, I use over twenty sites requiring secure access, but only one offers 2FA. Hasn’t really caught on.

So far, these things I’ve discussed are more work for you and me. The bigger question, which no one—not even the experts on TV—ever mention, is, Why don’t these sites do more to help us?

First, and most obviously, is their lack of imagination in providing Security Questions. Most of them seem only to copy from each other. Very few are unique to a single site. Laziness?

As for passwords, why can’t these sites make sure we don’t use any real words? Why can’t they come up with a way to measure the randomness of passwords, to help us make better ones?

Not only that, why can’t they suggest changing our passwords when they’ve been in use too long? Same goes for Security Questions. They could do all these things, but then they’d have to write some code. Guess our security isn’t worth their time.

Next week, the really big questions. Why are we under attack? Who will protect us? Is there no hope for privacy?

Insecurity, Part One


The big story after Labor Day (in Entertainment) was hacking of celebrities. Because it involved Apple’s iCloud, it made all the news shows. All this coverage revealed the bigger problem.

It was apparent from their questions that many of the news people didn’t really understand the extent of the danger. I guess talking heads are really more celebrity than reporter.

High profile people are by definition too busy to bother with technical details or to seek a deeper understanding of the technology they depend on. But in the end their behavior is very much like any teenager or ordinary uninformed user.

When users want access to their data (including clouds) they’re faced with three barriers: User Name, Password, and Security Questions. These are not what they seem, e.g., passwords aren’t words.

A User Name, if you’re a celebrity, should never be your name. This makes hacking as easy as accessing you on Twitter or Facebook. Don’t use anything like a name, because you can only use it once. That’s right; one User Name for each account.

Here’s your first clue: Whatever you use to get past these three barriers at one site, don’t use the same information at any other site. Ever. Each site must have its own set of security keys.

“Wait a minute!” I hear you shouting, “How am I going to remember all that?” You shouldn’t. None of these, User Name, Password, or Security Questions, belong in your memory.

There was a time way back when all we had was one email account. Today, everybody has too many online accounts to try to remember all the access codes. Clue number two: You have a computer. It has a better memory than you do. Why not use it​?

How? You can create a file with the access codes for each account. Protect it with a password (e.g., Zip files can do this). Don’t give it an obvious name or put it in an obvious place. Yes, this means every time you want access you must open this file.

Another method is to get a program that does all this for you. Such programs also generate random passwords. Speaking of passwords, never use a real (or disguised) word. Hackers can automatically run dictionaries comparing everything like a word.

They can, that is, if the site lets them. Apparently Apple did. Instead of adhering to the three tries and you’re out that’s been an industry standard for many decades, they allowed multiple attempts. Apple made a big deal of saying they’ve now fixed this.

My question is, How did they allow it in the first place? If the guardians of our data are going to be this careless in protecting our data, why trust their services? I wonder who else ignores the three-strike rule? We should go to all our sites and test each one.

Another question, the one that drives me nuts is when their Security Question asks for my mother’s maiden name. Clue number three: never give an answer someone could look up.

Why bother with real answers, anyway? Since you need your security file for User Name and Password, it also has the answers to your Security Questions. So as long as you give the same answer—any crazy answer—it’s valid. Clue number four: Lie.

Next week’s Part Two will give you even more to worry about. And more helpful clues.

Bigger Brothers


Some twenty-five years ago, I was a partner is a web design business. Our big pitch was not only would your website represent your store 24/7/365, you could track where in the store people went. We could even tell you how long they looked at each page. It was like virtual footprints in your virtual store.

We had no idea how this idea would catch on. It’s more than Big Data tracking everything on the Internet. They compare every track and know which are yours and which are mine.

They also know who we are, where we live, and where we are right now. But there’s more: they also buy data about us from the other big collectors of our data. Who are these firms? Read on.

Data doesn’t only come from online; it can come from the myriad of forms we fill out. You can rent a car online or over the counter at the rental agency. If you do, there’s a form. Think of all the forms every time you see a doctor or go to a hospital.

The rental agency doesn’t necessarily do business directly with Big Data, neither does the hospital. Or anyone else who has your personal information. No, other companies buy and sell our data.

And you’ve never heard of any of them, e.g., C&C is the largest data collection agency in North America. Whether they do Data Collection, Data Science, Data Mining, Market Research, or Field Intelligence, they’re all Data Brokers (See 60 Minutes).

These companies don’t do business with you. They do business about you, whatever they can monetize. The last thing they want is for you to see what data they have and whom they sell it to.

Before you go screaming to your congressperson, remember these brokers are only middlemen (middlepersons?). Who’s buying this information besides Big Data, e.g., government?

Is it legal? Well, somewhere on that form or the website or the software you’re using there’s some legalese that says it is. Of course, no one ever reads the unreadable legal mumbo-jumbo buried in what we sign (or the EULAs we click on to agree).

So until there’s a big enough law suit to get to the Supreme Court and a decision, we’re stuck with companies vacuuming up all our data and selling it to whomever for whatever purpose.

Who are the Biggest Brothers? Those who collect and broker our data or those who buy it from them? The first keep adding to your profile to keep selling it. The second keep buying it, from many sources. They have enough data to predict your behavior.

The data buyers know where you’re likely to go and what you’re likely to buy—and how much they can get you to spend. They know what you owe and how much you’re willing to owe. What they won’t do is leave you alone. Your data makes them rich.

Programming’s Three Tasks


Recently, an old programming friend in Florida sent me a link to an online book about JavaScript. I don’t do much with Java, but it did get me thinking about all those books on how to program.

There are scores of such books (particularly now that we use so many languages), but there are also a great many books on how to program User Interfaces. That is, how to make the user’s interaction with the program transparent (some say intuitive).

Unfortunately, there’s a disconnect in the code created by these two approaches. The concerns of good style don’t overlap those of good user interfaces. Should users even care about style?

Non-programmers don’t realize that even the simplest program can be written a million different ways. Of these, a hundred are probably flawless. Of the hundred, a dozen could be perfect in every aspect of their construction and execution. There is no best.

However, perfect code can still be opaque to the user. Clearly, the answer is to write clean code, then make it easy to use. Finally, improve the style without changing its functionality.

Regrettably, the programmer’s job is still not done. The concerns of style and user ignore the future of “finished” software. This is maintenance—and its usually eighty percent of the total effort.

When the first completed version (1.0) is released to the world, the responsibilities of maintenance begin. Whether it’s quick fixes, like typos, or major revisions and upgrades, the job usually goes to programmers who did not develop the program.

So, even after writing code that is kind to users and has excellent style, there are still the needs of the maintenance programmers. To meet these, software developers must write readable code.

In a recent search, I found exactly three books on writing readable code. Still, that’s three more than existed when I wrote a paper on this topic some twenty-five years ago.

Without readable code, maintenance is more than difficult, it’s nigh impossible. But readability cannot be another step, nor an afterthought. Doing it as you write aligns code with concepts.

Six months after a program is complete, you may be the one who has to fix it. After that long, you may be a stranger to your own code. If you made it readable, you will appreciate the effort.

Virtual Shopping


Last week’s post (“Needles and Haystacks”) showed the advantages of searching structured data. These were contrasted with time-wasting searches using brute force computer power.

Such searches not only waste our time, they are incredibly wasteful of computer time and power. If providers of structured data could use just a fraction of this squandered power, how many ways could they enhance our access to their data?

Let’s take a simple example from last week: libraries. What could be achieved by adding a relatively small amount of computing power to online access of a library’s catalog? Close your eyes. Picture yourself at the library versus their website.

The library you’re envisioning need not be confined to the imagination. With a relatively small amount of additional computer power it can be made real, that is virtually real.

If you browsed the library virtually, you could head out now because you found a book you really wanted, or you could take your time (nothing urgent). Same library, enhanced by software.

There are other advantages to virtual libraries. You can browse all the branches in a big countywide system. If your library is a member, you can do the same for all the libraries of the Interlibrary Loan Service. An infinite virtual library.

You may question additional public dollars for libraries, but the same technology can be used for bookstores. Virtual browsing enhances every online retail experience already using databases.

People forget that before computers, it was common to shop virtually—from catalogs. In fact, it was easier to browse those catalogs than today’s crude database websites. Going virtual would make those sites outperform catalogs, and for less money.

In the past twenty years, computing has transformed from a text-based box of limited application to a plethora of graphics-based devices doing everything. It wasn’t simply the increases in speed and storage; it was using the power for unimaginable graphics.

Today, power is being drained by our unstructured searches and social media meandering. All to be monetized by Big Data. Why not add power to improve graphics? Wouldn’t virtual shopping boost our economy? Don’t businesses need it? Don’t you?

Post Navigation

Follow

Get every new post delivered to your Inbox.