Wednesday, March 30, 2005

Q: Is there an Answer Key?

A: Yes, but first let's do some questions.

These are some questions that I posed on Rory Bythe's blog about Coding Slave, The Novel. The questions are a response to some buzz about the book. Sometimes the Muse talks to me in great detail.

What is the purpose of not giving the Project Manager a personal name.

There is a pattern in the first sentence of the first paragraph of each chapter as the chapter relates to the Part. What is it?

What is the significance of Ajita feeding Rafael in Chapter 25?

Why did Rafael let go during the plane crash?

What is the relationship between the coders, the kid on the cruise, the Physicians in the Platonic dialog that ships with the book and Meno?

What is the symbolic meaning of Walt's desk location?

Where did Walt want to live?

Why did Walt walk away from Connie?

Why would Katherine want to recruit coders in the San Fernando Valley?

What is the relationship between sex and coding, as alluded to in the book?

What chapters are musical?

I will be honored to provide answers. Or feel free to provide your own. After all, as I have discovered, there are many answers to any given question.

bob@CodingSlave.com

Monday, March 28, 2005

Q: Why study history?

A: To avoid national distraction.

It's hard not to notice all of the attention given to the Terri Schiavo news item. Two weeks ago I as completely unaware of the woman's plight, which I find interesting in that Ms. Schiavo has been in a coma since 1990. From where I sit the situation must be a nightmare for anyone who has a legitimate, personal connection to the woman and her unfortunate circumstances. That a familial struggle (whether to remove life support or continue her life in the present state) has become grist for the media and political mills only adds to the tragedy.

The publicity generated by the news items is so significant that the legal suit associated with the situation almost was tried before the Supreme Court. The Court refused to hear the case.

Again, the Schiavo family's plight is tragic. Yet, to bring the case to the Supreme Court would have given the situation historic prominence. Supreme Court cases affect the nation today and for generations to come. The Dred Scott case helped bring about the Civil War. Brown vs the Board of Education outlawed de facto segregation and Roe vs. Wade, while legalizing abortion, put the present battle over a woman's right to autonomy over her body against the right to life of the unborn into play.

Does the Schiavo case warrant the legal prominence of Dred Scott, Brown vs the Board of Education or Roe vs. Wade?

I cannot help but wonder why the Schiavo case, as tragic as it is, should enrapture the nation's attention so completely. With all of the tragedy out there on the news landscape, why this news item and why now? Why has a legal situation that is more appropriate to be considered as a familial dispute been given such national importance?

I have a theory that a human being can think of only one thing at one time. If the collective national consciousness is thinking of the Schiavo case, what isn't it thinking about?

Thursday, March 24, 2005

Q: Is The Coding Slave Quiz still available?

A: Yes, you can take the Coding Slave Quiz by doing the following:

1. Go to www.CodingSlave.com
2. Click the Enter title on the middle left of the home page.
3. Then click, Take the Quiz, on the top of the navigation menu on the left hand side of the page.

Here is the summary of The Coding Slave Quiz as of 9:30 PM 3/24/2005.

1. Do you labor in an environment where the primary source of light is flourescent?
Yes: 76%
No: 17%
Dunno: 5%

2. Are you overweight due to lack of exercise and movement?
Yes: 60%
No: 33%
Dunno: 5%

3. Does your behind hurt from sitting in a chair all day?
Yes: 58%
No: 34%
Dunno: 6%

4. Do you talk about yourself and the others with whom you work as "Resources"?
Yes: 48%
No: 44%
Dunno: 7%

5. Have you been avoiding speaking to a client or end user in the last 5 years?
Yes: 50%
No: 42%
Dunno: 7%

6. Are forced to create a lame system, about which you haven't any input on requirements or design, that will be associated with you forever?
Yes: 59%
No: 32%
Dunno: 8%

7. Do you find yourself writing code that has been written 1000 times before, just to provide a trace amount of intellectual stimulation?
Yes: 57%
No: 35%
Dunno: 7%

8. Do you wear jeans to work on Friday only?
Yes: 24%
No: 67%
Dunno: 7%

9. Do you have frequent fantasies about intimate human contact (physical and otherwise) within your work environment, yet in reality have little or none at all?
Yes: 39%
No: 50%
Dunno: 9%

10. Do you work in a cube that others have made for you?
Yes: 50%
No: 41%
Dunno: 7%

11. Are you afraid of or resentful about your supervisor?
Yes: 32%
No: 57%
Dunno: 9%

12. Do you spend more time writing code you hate than with your loved ones?
Yes: 54%
No: 36%
Dunno: 8%

13. Do you find yourself thinking that you'll get it right on the next version?
Yes: 66%
No: 24%
Dunno: 8%

14. Do you find yourself fearing a new technology because you don't have the time or desire to learn it?
Yes: 39%
No: 51%
Dunno: 8%

15. Do you have more than $1000 in credit card debt?
Yes: 43%
No: 48%
Dunno: 7%

16. Are you dissatisfied with your sex life?
Yes: 51%
No: 37%
Dunno: 10%

17. Do you find yourself fearing that if you go to a meeting and say what's really on your mind, you'll get into trouble?
Yes: 59%
No: 32%
Dunno: 8%

18. Are you afraid of losing your possessions?
Yes: 41%
No: 49%
Dunno: 9%

19. Have you ever had to change plans in order to work over time?
Yes: 72%
No: 19%
Dunno: 8%

20. Do you find Dilbert funny, but know in your heart that it's really much, much worse?
Yes: 74%
No: 13%
Dunno: 12%

Monday, March 21, 2005

Q: What is sex?

A: A celebration of life.

Beware: This is for BitHeads.

Now that Coding Slave, The Novel has been released as a free PDF, maybe it’s time for me to talk about sex. I mean, I did think a long time after the Muse told me to go wherever the writing took me. As a result I have been taking some heat in the BlogoSphere. One person said that he did not want to work his way through feces in order to find a gold nugget. It sort of hurt; poor thin skinned me.

But if you want to listen to the Muse, you gotta be willing to pay the Piper, I guess.

Yeah, there are some episodes of sexual contact in the book. Ajita puts Raphael’s penis into her vagina. Later, Ajita takes the Project Manager’s penis and puts it into her mouth which prompts Albert to put his penis into Ajita’s vagina.

Sounds hot, huh?

Well if you think that executing the mechanics of genital insertion in its various manifestations is hot sex, well…. oh, I won’t go into it. There is more than enough vacuous coital activity in the world already. Adding comment to the condition will not make things any better.

You see the thing about sex in Coding Slave is that it’s NOT a celebration of life. It’s about implementation, just like implementing an interface in the OOP language of your choice: Here are your method signatures; now add some behavior. Whether you like, want, desire or love is of no matter. Just honor the contract, follow the framework that has been provided for you.

So let’s choose a path:

Sex is a celebration of life.
Programming is a celebration of human consciousness, logic and creativity.

Or

Sex = Insert(genital)
Programming = Do(something)

(Yeah, I am being a bit cryptic tonight. It’s getting late. I am trying to export an MPG into MOV format and it’s talking such a long time that I will not be able to get this little project done. Oh well.)

Sunday, March 20, 2005

Q: Who’s a new hero?

A: Frank

From dictionary.com:
A person noted for feats of courage or nobility of purpose, especially one who has risked or sacrificed his or her life: soldiers and nurses who were heroes in an unpopular war.

My definition:
A person who utilizes personal strength, intelligence, creativity and courage to perform a feat(s) which produces greatness and inspires greatness in others.

The programmer who sits in the old style cube next to me at the LA Weekly is a young man named Francisco, a.k.a Frank. Until my arrival at the LA Weekly, Frank was the only full time programmer that the paper had. Using nothing but ASP 3.0, Outlook and some SQL Server and MySQL databases Frank created programs that made the paper work better and smarter.

When I first arrived at the Weekly, I felt sort of bad that Frank was working in JavaScript, DHTML and ASP, a loose typed, scripting language that I thought to be pretty limited. I was given the freedom to work in ASP.NET. I thought that .NET and Visual Studio .NET would bring the Weekly over the top into more productive programming practices.

That was a year ago. The project that I am working on is shipping....sort of. The many, many projects that Frank is working on are really, really shipping and providing valuable information and service to our most excellent entrerprise.

To my observation Frank has not tried to impress anyone, change anyone, or impose an agenda. All he does is create elegant solutions to big problems using simple tools.

I have a lot to learn from Frank. He is my new hero.

Saturday, March 19, 2005

Q: How do you make butter?

A: You churn.

I feel a bit like a hostage. Allow me to explain.

Presently I am making a pretty good size piece of software for my employer, the LA Weekly. The purpose of the software is to coordinate and report the various production activities that are required to get the paper out on the streets and Web. I am writing the software in .NET using Visual Studio .NET. For all of you that are non CodeHeads, .NET (pronounced, dot net) is Microsoft’s current technology for doing application development for the World Wide Web. Visual Studio .NET is the big ass tool that I use to write the code that runs on the .NET technology and framework. One of the promises that I think that was made to me by the messengers at Microsoft was that the ASP.NET code that I write for .NET using Visual Studio .NET will run properly on any browser that supports the W3C standard for writing web pages.

One feature that my software needs to offer is a way to view a lot of activity information at once and allow the user to respond to the information viewed. In geek parlance we call this view a Report. The Report that I am making is very big Web page that requires scrolling downward through a lot of information on the computer screen. At various points in this very big Report there are buttons that the user clicks to alter the display of the page. Presently when the user clicks a button that you get to by scrolling down in the Web page, when the we page refreshes, it take the user back to the top of the page, NOT to the location where he or she clicked. This is a usability pain in the ass and must be corrected. It is the analogical equivalent of bookmarking a book with a lot of pages, only to find that when you closed the book, someone came around and removed the bookmark. Thus you are left with the labor of thumbing your way through the book to find the place where you left your bookmark. Now imagine doing this about a hundred times a day. I’ll bet that it is only a matter of time before you hide under the table in wait so that when the bookmark removing culprit shows up, you pop out from under the table and beat the bejesus out of the miscreant. Or, you become tired of the whole affair and just throw the book out the window.

If I don’t correct this annoying problem, nobody will use my software. Software that is not used is worthless no matter how feature rich and elegant the software is. Just look at Quattro Pro.

Anyway, I figured that I am not the only person in the world to have this problem and that there must be a solution published some where on the Web.

Good news, there was!

So I read up and made the changes in my .NET code. Sure enough, click a button way the hell down in the web page, and you are brought back to that button when the web page refreshes. I thought I had the problem licked.

Not so. When you program with Visual Studio .NET, when you run the code that you have written using the tool, the code is displayed by default in Microsoft’s web browser Internet Explorer, which is all well and good except for the fact that the Weekly uses a lot of Macintosh computers. The browser that is the standard for the LA Weekly is Firefox. Firefox runs consistently on both Windows and Macintosh OS X computers. So, I always test my code in a Firefox browser before I consider a problem solved.

Well guess what? The page refresh code that I wrote works in the Internet Explorer browser but NOT IN THE FIREFOX BROWSER. (Yes, I am yelling. This is not the first time this has happened.) Thus, the three hours that I invested in implementing the published .NET solution to my problem was a waste of time. (If I were a freelance consultant, not only would it have been a waste of time, it would have been a loss of money. I could never, ever charge a client for my time to produce code that does not work as the client needs it to.)

So what does this have to do with butter?

In my experience programming is not a generic engineering activity where you learn a core technology and that’s it. Programming computers is more like being a translator at the UN rather than a doctor a Cedars Sinai. Unlike medicine, which requires an expert level of knowledge about two models that have not changed in a very long time, there are a lot of languages spoken on the planet. You can’t speak them all. At some point you dedicate yourself to a few. A translator is only as good is his or her proficiency in the language(s) that he or she has chosen to “work”. Fair enough.

Now imagine that you are a translator and the world of language is such that it changes every five years. Not only do the words of the language change, but the actual syntactic mechanics of the language changes as well. One day the language works one way. A few years later it works differently. As a paid translator at the UN, in order to be viable you are required to learn the lingual changes. I would venture to say that eventually your head would hurt.

Now further imagine that the language changed every two years, not every five years and that the language changers published some ideas during the two years as to how the language will change, but without guarantee. You might start to feel anxious and ungrounded.

Now imagine that the mechanics (not just the words mind you) of the language changed every year. I’d wager a reasonable amount of money that your head would just freak out. And, you would not be the only one. At some point all the translators would freak out and you know what? At some point there would be no translators left at the UN. The rate of change would be just too much to handle. Then he UN would become totally ineffective instead of being marginally ineffective.

Now let’s get to the butter.

Some software companies will try to garner competitive advantage by toying with and taking ownership of the mind of the software developer. A company gets a lot of value from a developer learning its product. However, that value is always at risk. Once a developer has mastered your product, he or she is free to learn a competitor’s product and then use it. (Analogically it’s like French and German being competitive.)

How do you prevent a programmer from jumping ship?

You make it so he or she never masters your product. Keep changing how the product works so that the developer is always learning your stuff and not your competitors stuff. It called churning the developer.

For software developer’s it has become a way of life.

At the present time the rate of change in the world of nuts and bolts programming is not so overwhelming that software developers are completely freaked out. That time will probably come. But it’s not here now. Yet, when you sign up to become a programmer, you are signing up to a way of life that requires constant learning and in some case relearning, sometimes at the expense of other things that are important. (Hey, isn't that one of the ways that one defines an alcoholic?)

Acquiring new knowledge while still being productive as a day to day programmer is an arduous task but not impossible. However, most of us have only so much time. What we choose to learn is a significant professional decision and economic investment. We are not dopes. As programmers we’re willing to dedicate ourselves to a technology and do the ever present footwork provided that the technology works to spec and allows us to feed the kids.

But, what if the technology does not work as promised? What then? Do I go back to my boss and say, “Dude, I was told by Microsoft that the code rendered by ASP.NET would run on any browser that supports the W3C standard. It did run as I wanted to on Internet Explorer but not Firefox?”

You know what my boss will say?

“Fuck Microsoft.”

And, after spending eleven months learning the down and dirty of .NET beyond simple data entry on a form and creating a very large body of code in .NET, a technology that I championed because I was promised that the code that I wrote would run in any browser, I am almost willing to agree with him.

Yet Microsoft is but one company in the landscape. Its real claim to fame is that they are the biggest. Believe me Oracle wants our minds and loyalty just as much as Sun, Sybase, IBM, CompuWare and BEA do. If their products happen to work, well so much the better. But I question if the foundation of the desired relationship is based on mutual technological excellence and benefit.

I wonder if these companies understand that the fundamental purpose of a software developer is to create products and provide services that make the planet a better place? Or, are we human currency, where our purpose is to just use tools and technologies while our value is determined according the the per seat license fee each of us represents?

Tuesday, March 15, 2005

Q: Where's it going?

A: To free

A while ago I read a book the book, 10 Rules for the New Economy by Kevin Kelly. One the ideas that he proposed is that things are going to free. For example a portable phone twenty five years ago cost thousands of dollars. Today you can get one for about twenty five bucks, or even less if you look around.

Another idea he has is that the Net rewards generosity.

This has been a month of extraordinary learning and changing awareness for me. Today I am up for trying out new ideas that previously I would have dismissed out of hand. Thus, I am going to follow Kelly's thinking and see where it goes.

So, click here to get the full, free version of Coding Slave, the Novel, in PDF format. Pass it around to your friends. Give it to your coworkers. Slide it under your boss's door.

The book is an important part of my life's work. It is an honor to share it with you all.

Feel free to write me at bob@CodingSlave.com, if any of you feel so motivated.

Monday, March 14, 2005

Q: What's your favorite animal?

A: The High Horse.

OK, in case any of your missed it, there was a lot of good news and bad news that resulted from my recent encounter with the Redmondians. The good news is that I got a lot of strokes for being me. The bad news is that I had to come to terms with the fact that I am not as smart as I like to think that I am, in terms of modern software development anyway. But, the encounter forced me to ride the High Horse so to speak. I have to admit that I am sort of liking the animal. Things are pretty clear up here. Things are also a bit scary. One always runs a risk of having the judgments that one makes against others come back to do some serious haunting. After all, there is some value to the slogan, “Judge not lest ye be judged.”

That being said, let's canter on.

I was reading the LA Times today at lunch and noticed that Michael Eisnerwill be replaced as CEO of Disney by Robert Iger, his number 2 on September 30 of this year. Peter Chernin of News Corporation, the people that bring you Fox news, was in the running, as was Meg Whitman of eBay. (Whoopee for all you tech heads.)

Anyway, Iger got the gig. I wish him well.

Eisner had a definite impact on the Magic Kingdom. Before Eisner, Disney’s revenues were $1.5 billion. Last year Disney clocked in at $30 billion. (Just as a reminder, a billion dollars is a million dollars times ONE THOUSAND, as in 1000 million dollar bills.)

Disney employs over one hundred thousand people, which is about 3 times more than Microsoft has on its payroll. However, Microsoft’s revenue surpasses Disney’s by a little over 6 billion.

Disney has some significant assets-- the ESPN and ABC television networks, not to mention Snow White and the Seven Dwarves, Bambi, Touchstone Pictures and at one time, The Anaheim Angels and The Mighty Ducks of Anaheim. No doubt Disney is a company to be reckoned with, a true cultural icon.

But here is the scary thing to think about: If Disney went away tomorrow, outside of 100,000 more people on the unemployment line, a lot of kids (both young and old) going through significant anxiety over the loss of Mickey and some serious turbulence on Wall Street for a little while, who would miss it? A hundred years from now would someone look back and say, “If only Disney had survived?”

Now here is the scarier thing to think about; if Microsoft went away tomorrow, what would it be like?

Who says that software doesn't rule the world

Saturday, March 05, 2005

Q: What’s your favorite drug?

A: Minoxidil

OK, I admit it. I am a prima donna. I have never met a mirror that I didn’t like. In addition, I am a Leo, for those of you who have more than a passing interest in the Astrological Sciences. Leos like to go into the jungle, roar a lot and get as much attention as the environment will provide. If the Leo is a male, he likes to lie around in the sun all day while the female does all the heavy lifting. Also, he needs his mane fondled and his ears rubbed. A little, no, a lot of procreative activity is good too.

Such is the lot of the lion.

In terms of one's lot in life, I am a lion stuck in the body of a fifty year old man.

The male human body goes through a particularly distressing set of changes as it ages. My feet are a size bigger now than they were tweny years ago. My head is beginning to shrink giving the illusion that my nose and ears are growing. The hair on my head, which I keep comparatively long, has turned gray and is beginning to thin. My ever growing ears and nose have begun to sprout strands of hair, which I shave off. My lower back hurts which makes running difficult. I can still make children, but probably not as many as I could years ago. (Well, if you really must know, I cannot make any children, any more....snip, snip.)

About three years ago I noticed that I was beginning to develop a bald spot on the crown of my head. Yikes! I feared that within a year I would have a head that looks like a cross between Friar Tuck and Steven Wright.

Vanity, thy name is Bob Reselman.

I went to Woodstock-- THE Woodstock, three days of fun and music and nothing but fun and music. (And a lot of mind altering controlled substances. There was sex too, but not for me. At the time it seems that I was not that sexually interesting to unknown females, even though I had a mane of long, dark hair, down to the back of my ass. However my short-haired friend, Henry, who accompanied me to the event, did get some manual stimulation from an unfamiliar young woman in the back of the Greyhound bus on the way up to White Lake. Go figure.)

I come from a generation that has absolutely no hesitancy to address any issue or solve any problem, whether it is personal, institutional, perceptional, educational, hygienic, domestic, foreign or militaristic, through the use of drugs, preferably ones that are legal, pharmaceutical and FDA approved. We are the drug solution society, all the way from Prozac to Extra Stength Tylenol to Sarin.

Anyway, lately I have been watching a little more TV than is good for me. Thus, my subconscious has an overabundance of commercial images, many that have been embedded by the Pharmaceutical Companies. (I tend watch shows that are of interest to people like me, the baby-boomer/AARP generation, a generation of people that are not uncoincidentially part of the demographic target of said Pharmaceutical Companies). These images were not embedded maliciously mind you, but with my complete and utter consent. I mean, if you sit in the barber shop long enough, eventually you will get a haircut, no allusion intended.

So I am losing my hair and I am scared. The first thing that comes to mind to alleviate my fear is Rogaine. I went down to Walgreen’s and inspected a package. The price, which now escapes me, was expensive. So I read the label and noticed that the active ingredient is Minoxidil, 5% for the men’s treatment, 2% for the women’s treatment. (Jeepers, I didn’t know that hair loss in women was a profitable ailment. I guess that you learn something new every day.)

(PS: The active ingredient in Prozac is fluoxentine hydrochloride. The formal name for cocaine is cocaine hydrochloride. I wonder....)

Being that I know that generic drugs are just as effective and in most cases less expensive than the brand name counterpart, I borrowed my most excellent girlfriend’s Costco card and drove on over to the Washington Blvd store, near Marina Del Rey. I trudged my way through the warehouse-like environment, past pallets of tires, bins of blue jeans and institution size cans of Heinz baked beans and there it was perched on a shelf above my balding, angst ridden head: industrial pack Monixidil, two months worth of treatment for $20.00, a bargain at twice the price.

So for two months, twice a day, once in the morning, once at night, I have been taking two eyedroppers full of the topical elixir and dropping it on to my scalp, one eye dropper full over my receding hairline and one dropper full on my thinning crown. And you know what? I feel like a mindless American consumer, hell bent on material acquisition and the promotion of capitalism, but……it works! The hair above my forehead is bushier and my emerging bald spot has been sent back from whence it came. I am once again lion-like!

I guess Dupont was right: better living is possible through chemistry.

Now, if I can only do something about my yellowing teeth, because you know, you don't get a second chance to make a good first impression.