George Flanagin

George Flanagin is a computer science professional with 35 years of experience (give or take) in the design, delivery, and business positioning of software products.

A Password Corner Case

My bank has one of those idiotic rules forcing us to change our password for online banking every 90 days. It is my opinion that their rule increases vulnerability rather than resistance to attack, but it is a situation about which I can do nothing, and I otherwise like the bank.

Continue reading

What language is that?

I spend some of my time reading liner notes of the music CDs that I buy. Like the Rosetta Stone, they are often written in three languages, although the languages are usually English, French, and German, rather than hieroglyphs, demotic script, and Ancient Greek. Once in a while, I open to the wrong language, and for a few seconds my eyes skim the German version of the text before it dawns on me that I am not looking at the English. 

Like most native speakers of a European language I can recognize a number of other European languages that I have no ability to read, write, or speak. How does this recognition work? Can it be put into a simple, not very sophisticated or difficult computer program? Continue reading

Still no silver bullet

From the time of publication of the essay “No Silver Bullet” in 1986, we have been looking for the silver bullet ever more diligently.  Even the essay’s author, Dr. Fred Brooks, Jr., wrote a sequel called “‘No Silver Bullet’ Refired” that appeared in 1995. On a less grand scale, five years later, I gave a sad keynote address at Software Methods and Tools 2000, a part of which was a prediction that project management would become another failed silver bullet in this century.

Sadly, all of the above predictions have turned out to be true. Continue reading

Problem 7: Cryptography 101

Cryptography fascinates the inner thief in almost everyone, from children who have tried to steal a cookie while their mothers were not looking, to professionals attempting to steal secrets. This interview question is a good one to discuss for a 45 minute hour to determine if a candidate understands the basic principles of cryptography as opposed to security.

Continue reading

Easy and better passwords

In this morning’s mail I received a link to a good post about passwords and entropy and the like. There is so much cruft about passwords that it is difficult to reliably suss the good and the bad, but the above posting is both correct and reasonable. Sometimes I need a password, not a password system, and I offer the following as a free solution for you to use. Continue reading

Problem 5: As unpredictable as the weather

Whether or not you intend to be an SQL programmer (ever, or for the rest of your life), you will spend a large amount of your time in IT modeling data. For now, throw the MVC meaning of model out the window, or if you happen to be on the 17th floor, just put it on the sill, and restrict yourself to the abstract problem of transforming real world data into a something you can read, search, and display. Continue reading

Problem 4: Ewe no what Eye mean?

English is the most orthographically difficult language written with the Roman alphabet, meaning, there are not always clues to a word’s pronunciation from its spelling, and the reverse. Only speakers of English can enjoy the perverse event of the grammar school Spelling Bee. I was so bad at spelling in school that I assumed it was a “Spelling Be.” Continue reading

Asking what you need to know

Bungled interviews go back a long way, and a mythological example comes to us from The Ring of the Niebelungen. Wotan, the God who had Valhalla built, and Mime, a dwarf, have a mutual interview that goes awry. At the start, they agree to bet their heads on their abilities to answer each other’s questions. Things do not go well. Continue reading

Problem 3: Checking the no-fly list

There always seems to be an interviewer who is out to make his mark by asking the big-O question. Not that big-O question, but the one where a data structure is presented with little of the real world information that might accompany its use, and then the question is asked “What’s the big-O notation for the performance of ….” To me it is always clear that the interviewer did not hear a word I said up to that point, and that my pass/fail grade is simply whether or not I recall that it is proportional to x*ln(x) or some such, or whether I can clumsily work it out with a pencil and paper instead of looking it up in Volume 3 of Knuth which is what I would do on the job. Continue reading

Problem 2: Trade-offs

Trade-offs are the bread and butter of software design. No matter what anyone says, every system is optimized for something, and one measure of a satisfactory system is whether the some-thing is the right thing. Continue reading