Facebook

Wednesday, June 25, 2008

Viva La Resistance!

I just sent an email to Senator Ron Wyden, D. Oregon, thanking him for attempting to stop the FISA bill, whose corporate immunity provisions are almost surely going to allow Bush, Cheney, and the rest of the gang that's currently raping and pillaging our way of life in the name of their own power and profit, to get out of the White House with all the swag they can carry and no chance of any sort of accounting.

If your Senator was one of the 15 who voted against cloture, send him or her an email, or a phone call, and let them know you appreciate what they did. If your Senator was one of the 80 who voted for cloture, to stop Senator Dodd's filibuster, let them know how despicable an act it was.

Follow the link above to Firedoglake, where the vote, and its significance to rescuing democracy from kleptocracy in the US is discussed in detail.

Voting against Cloture and for the Constitution:

Biden (D-DE)
Boxer (D-CA)
Brown (D-OH)
Cantwell (D-WA)
Dodd (D-CT)
Durbin (D-IL)
Feingold (D-WI)
Harkin (D-IA)
Kerry (D-MA)
Lautenberg (D-NJ)
Leahy (D-VT)
Menendez (D-NJ)
Sanders (I-VT)
Schumer (D-NY)
Wyden (D-OR)


Not Voting:

Senator Kennedy had a good excuse, he's seriously ill, but the rest of them?

Byrd (D-WV)
Clinton (D-NY)
Kennedy (D-MA)
McCain (R-AZ)
Obama (D-IL)

Thursday, June 12, 2008

More Reflections On Software

A few days ago abi sutherland blogged about how artists and software designers are not in control of the outcome of their work, with particular application to devices and contrivances that are intended to be extended and customized by end users. That pushed some buttons in my head, and I posted a comment on the subject, which I've extracted below. I have some more to say on the subject, which I thought only fair to say on my own blog, so more posts will follow at less than the usual irregular intervals, I hope.


Oh-oh, you hit one of my current hot topics. I feel a rant bubbling up; I must take on my Aspect and wield my Attribute.

The system I'm working on now has some major design problems because some fundamental issues about valid character sets and the use and communication of metadata mixed with data weren't addressed at all. These things are central to building a system that's flexible, extensible, and allows mashups to be created without knowledge of the system internals (preferably without any sort of deep technical knowledge at all*).

I've been thinking about the sort of design criteria that are important in software that can meet these requirements. Here are my first thoughts; I'll continue on my own blog as they develop, but you got the juices flowing now, so I'll begin here if you don't mind.

1. Quoting is vital. It must be easy to encapsulate any string of valid data (e.g., text characters, images, the basic vocabulary of a web page) so that the system can treat it as an opaque object except where the data really is meaningful. It shouldn't be necessary for an admin or someone extending the system to deal with escaping characters significant to parts of the system, like '&' and ';' in HTML, or ''' or '"' in SQL literal strings, or (oh, help me Noshabkeming!) spaces in filenames. Always remember that a filename can come from most anywhere.

2. Metadata is data to any system that doesn't have to process it. Opaque objects have to remain opaque unless the software really needs access to the insides. Accidental access is a good creator of truly diabolic bugs. I created a test case yesterday with an object whose name contained an apostrophe. This caused the web application that read the name from the database to crash.

3. Objects shouldn't have to have knowledge of each others' lifecycles. If an object is created in one system and another system creates another object to collaborate with it, then either the first has to exist for as long as the second needs it (and that's often not easy or even possible to guarantee), or the second system has to make sure that it copies everything the second object needs from the first, without creating any issues of staleness of the copies during the life of the second object (and that's as close to an intractable problem in a distributed system as I know about). Anybody who's ever slaved over request-scoped webapp variables has been bitten by this one.

Akk! This is growing from a screed into a tome; not what I intended. I'll stop now and go get ready for work. Let me know what you think of this.

* Librarians are technically-oriented, but don't necessarily have specific knowledge about the administration of software, especially web-based systems. The manufacturing workers who administrate my system are not technically sophisticated at all; they're bright people, but don't have technical educations, so they're not familiar with some basic concepts that would make it easy for them to create a mental model of what they can do with the software. And I can't expect to train them in something that's irrelevant to their jobs.

Friday, March 28, 2008

Blog Against Torture - Not Just Today

No matter how busy I may be, I'm not too busy to say something against the use of torture on the day that Bear reminds me is Blog Against Torture Day. Nor will I forget the subject after the day ends.

An example of why torture is not only evil but also profoundly counter-productive. This is something I wrote, a draft of a newspaper ad, after hearing about the case of Abdallah Higazy. One important thing to remember is that, come to the end of the case, the FBI was more concerned that their mistakes would be covered up than that the job of securing the country would be performed effectively.


The US Government coerced a false confession from an innocent man by threatening to have his family turned over to be tortured by Egyptian security police. Is this what you want your government doing in your name?


Abdallah Higazy was interrogated by the FBI on the basis of information that the Justice Department later admitted was partly incorrect, partly the lies of an informant who has been charged with lying to the FBI. In order to get a confession, Higazy was told his family would be arrested and that the interrogator would “make sure that Egyptian security gives [his] family hell.” Higazy was later released because the original information that led to his arrest was false.

Ask yourself what you would do to protect your own family from a security service with a world-wide reputation for torture and other barbaric practices, a security service that trained many of Saddam Hussein’s torturers. Would you give a false confession, knowing it would probably destroy your own life, if you were told it would keep your family from harm? Abdallah Higazy did. So the FBI obtained a false confession, that they had to know was suspect because of the way it was obtained, and they wasted resources on this case at a time when all of our resources need to be focused on finding and eliminating the terrorists who have caused the US so much harm.

But even more, is threatening a father with the rape and torture of his daughter an act worthy of the United States of America? We believe it is not, that it is an act worthy of Saddam Hussein, the very dictator the US committed military forces to remove from Iraq. Furthermore, we believe it is an act so vile that we want to make clear to the world that we do not condone it and will not allow our names and our honor as citizens to be used to justify it.

We, the undersigned, believe that what the US government does reflects on the honor and integrity of US citizens. As citizens we object to our government committing illegal and immoral acts, and we want other citizens to be aware of what their government is doing so that they too can object. We urge you to take a stand on this issue, to tell your Congressional Representatives and Senators that this kind of behavior is not what America was founded for.

Monday, December 31, 2007

Happy New Year

To everyone out there in the virtual world, a very happy New Year. May this next year bring health, companionship, the culmination of your efforts, and the fulfillment of your dreams.

Wednesday, December 19, 2007

More Wedding Pictures

Some more pictures from Jeremy's wedding. These were taken by various members of the wedding party; the professional pictures won't be back for a couple of weeks yet.





Left to right: me, Eva, Jeremy, Alex








Left to right: Eva's brother Steve, Eva (almost hidden behind Steve), me, Alex, Melissa, Dave, Alex's friend, Ross, Steve's daughter's husband, Rachel, Steve's daughter.







The cupcake toppers







Eating the first cupcake.

Tuesday, December 18, 2007

Wedding Bells for Jeremy


As of last Saturday, the Ides of December, we have no more marriageable children in our family. Our youngest son Jeremy married Debbie, his friend and housemate for the last 9 or 10 years now. It was a great wedding; it worked well because Jeremy and Debbie made all the decisions about how the wedding would be organized, chose the decor and hired the photographer and the caterer. And they chose, instead of a cake, to have cupcakes made by a local specialty bakery called Saint Cupcake. They were delicious, and didn't require a major effort to cut, either. Oh, and Jeremy wanted the primary wedding party to be dressed formally, so he and I and Debbie's father Gene wore tuxedos. First time for me; I never went to the Senior Prom. At this rate I will probably get to wear a tux again when we take a cruise to Titan and the Rings.

Because of the wedding, we put up a lot of relatives from out of town for the wedding. As I write, all but our older son Alex and his wife Melissa have gone back home, but they're staying on for a few days. This worked out well for them, although Melissa had to stay up late last night to finish grading her Design of Psychology Experiments class remotely so the seniors could find out whether they get to graduate. Since her TA is about to flunk out as well, there was a certain amount of drama in the grading.

It's nice to have Alex and Melissa here; it's the first time they've been back in Portland in almost three years. In fact, it's the first time that any of the relatives except our children have seen our new (inhabited three and a half years now) house. The good news is that all the remodeling and most of the painting was done by the week before the wedding, so there was room for people to sleep and no paint cans to trip over.




Tuesday, November 20, 2007

Looney Dune

Soon to be a major motion picture:

Warner Bros. presents "Loony-Dune"



A new retelling of the Frank Herbert classic "Dune" with an all-star cast of Warner Bros. cartoon characters.


Directed by Chuck Jones

Cast:

Paul Usul Muad'Dib Atreides  Bugs Bunny

He stood against the hunters of a galaxy!

Duke Leto Atreides Porky Pig

"Tha-tha-tha-that's all, Duke!"

Lady Jessica, Petunia Pig

She wanted more from her Duke than she was
supposed to!

Thufir Hawat Elmer Fudd

The steely-eyed Mentat master of assassins.

Gurney Halleck Daffy Duck

"Thhhuuufir Hawatttt, eh? I can drink him
under the table withhh one hand behind my back!"

Duncan Idaho Sylvester

He would have been a better hero if he weren't
off chasing birds.

Dr. Wellington Yueh Pepe' Le Pew

Something about this loyal follower stank!

Padishah Emperor Shaddam IV Wile Coyote

Somehow his interstellar schemes always
backfired.

Princess Irulan Miss Prissy

She was far too well-bred for the role she
had to play.

Reverend Mother Gaius Helen Mohiam Granny

There's a gom jabbar in the old girl yet.

Baron Vladimir Harkonnen Foghorn Leghorn

Evil, a shrewd politician, and a chicken
hawk.

Piter De Vries Marvin Martian

Alien to all, his warped views led him to
destruction!

Feyd-Rautha Henery Hawk

If he knew what his uncle really was, he'd
eat him alive!

"Beast" Rabban Tasmanian Devil

His appetites almost brought down a dynasty!

Stilgar Sam Sheepdog

He followed his master, but did not understand
him.

Chani Tweetie Pie

This early bird got the Worm.

Liet-Kynes Yosemite Sam

His knowledge of the desert couldn't save him
from the dangers of the town.

Guild Navigator The Roadrunner

"Meep meep!"

Saturday, August 25, 2007

Why is Software Development the Butt of All Those Jokes?

This is the first in an irregular series of posts on the subject of software development, its history, its current state, and its potential futures. Software development is a subject I've been passionate about for a long time, and one which has demanded a lot of my professional life. I'd like to present some of my experience and the conclusions I've drawn from it for others to use.

I've been a software developer for almost three decades now, and I probably know all the jokes about how bad software development is. There's some reason for the jokes. Software is too hard to develop, it takes too long, costs too much, and has too many bugs. Big systems aren't reliable, are too hard to understand. No one understands how to manage software development, how to plan it, or how to design it so that it performs the functions that are required.

Probably the best known joke about software is the old line, "If buildings and bridges were built the way we build software, the first woodpecker to come along would destroy civilization." True or not, the fact that so many software professionals repeat the joke indicates that someone believes there's truth in it. It shows a bad case of what I call "concrete envy" in the field, a feeling of inferiority to the older, notionally more mature, engineering disciplines.

Now that I've said the things that everyone knows, let's talk about the real elephant in the living room. The reason nobody knows how to manage software is that nobody really knows what software is. Computing is a bastard field, out of electronics by mathematics. Computer science as a research or educational discipline at first was organized in either Electrical Engineering or Mathematics departments, and the two had very different ideas of what "programming" was. Was it science or engineering? Mathematical formulae or electrical diagrams? Abstract symbology or concrete instructions? And then it got more complicated as new generations of computer languages came into use by programmers who had never constructed a patch block or written a program in machine code. They took the abstractions of the languages for granted as real things, not combinations of registers and arithmetic units. Several generations of languages and tools later almost no one in the field has any connection with the original concepts, which are buried under layers of other abstractions.

To most practitioners now, software is neither science nor engineering but a technical craft with its own rules and requirements, its own language and symbology. Its purpose isn't learning about nature or about what can possibly be constructed, it's about building specific devices for specific purposes. It's not done by universities or by engineering labs but by corporations that need software to operate their businesses, and need to manage the cost and schedule of projects to construct it. And the people responsible for the creation of software are often managers who were never programmers themselves and don't have any understanding of what what needs to be done, or what the result of the work will be. Sometimes (especially in open source software communities) the people responsible are also the ones who do the development, but they are less concerned by how the software is used than by how it is designed and built.

Now this is starting to sound like a common software rant, I know. But consider the implications of there being many different kinds of people with different kinds of expertise involved in the software industry. There's no agreement on what they're working on, let alone how to work on it. And then we get into the deep quagmire of requirements versus specifications: the question of how to determine what the software should do, and how to translate that into a description of how the software should work. Many's the project that's bogged down in that pit only to be dug up later by paleontologists in chunks of peat.

So here's the task I've taken on for these posts. I'm going to describe the state that software development is in today, with some attempts to understand how that state came to be. Then I'm going to prescribe what I think is a good, but certainly not the only good, treatment regime to improve matters. Along the way I'll talk about some of the prescriptions that have been handed out before, and why they did or didn't work. I promise that this will not be a completely objective analysis: I have strong opinions, and a particular viewpoint to work from, and that will color what I have to say. I hope that means that it will be colorful as well.

Some topics I will definitely touch on: the checkered history of programming languages, tools, and paradigms, the business of development methodologies, and the effect of the high-tech economy on progranmming. I welcome your comments on what I have to say, and will respond as I can.

Next up: what is software, and what does it mean to "build" it?

Wednesday, August 22, 2007

Wedding Photographs

Pursuant to the "Wedding Apparel - Never Worn" thread on Making Light, follow the link on the title of this post, or go to the "My Current Photo Gallery" link on the left side of this page.

There are some pictures of my older son's wedding in 2005 on the beach in Florida, and some pictured of my own wedding in funny clothes and hairstyles in 1970. Try not to think too badly of us oldsters.

Monday, August 20, 2007

Cthulhu's Wild Ride


Especially for Serge