Monday, December 25, 2006

Mind the gap.

See the Paul Graham essay (www.paulgraham.com/gap.html) of the same name.

I like this essay. It made me mad at first, but then I caught on and it made me feel good. I got giddy realizing that I'd been wrong all these years, and my problem wasn't figuring out what I wanted to be when I grew up, or finding the right job, or figuring out how to be extroverted and fearless enough to go out and talk people into working with me, but my problem was just relaxing and giving myself permission to grab whatever it was that I wanted and needed in life. Honestly, and through hard work, sure, but grabbing need not inspire guilt.

If there is no shortage of wealth, then I can have as much as I want, and I don't have to worry where it comes from. If I don't happen to create my quota then someone else will just make more, because wealth is not found or given but created. So easy.

Mr. Graham has opened my eyes: "making money is a very specialized skill...but when a few people make more money than the rest, we get editorials saying this is wrong.... What causes people to react so strongly?

"(1) the misleading model of wealth we learn as children

"(2) the disreputable way in which, till recently, most fortunes were accumulated

"(3) and the worry that great variations in income are somehow bad for society."

Because we're given money as children, and do not earn or manufacture it, we grow up with a distorted view, he says. In the past, fortunes were created largely by taking what others had and saying, in effect, "It's mine now, just come and try to take it back and I'll kill all the rest of you too."

And now that the world has become so technologically intense, some of us can be ever so much more productive than others, and we get fantastically rich because of it, and the poorest among us are fantastically richer than the poorest of the past, and both the poor and rich alike are now all pretty much the same. We eat the same foods, buy the same goods, live in houses with central heating, drive cars, and so on.

So what's the big deal then? Why should anyone get upset because Mr. Bill Gates owns something in the neighborhood of $60 billion, and the average person with a median sort of income makes somewhere in the neighborhood of $50,000 a year. Does it matter that an average person would have to work 1,200,000 years to equal that wealth?

Yes.

One of the current political arguments is about inheritance of wealth. Some refer to taxation of inheritance as a tax on dying. I understand that there is something called an estate tax and something called an inheritance tax, and that the former kicks in upon death, and the latter upon descent of value to one's heirs. And that isn't the issue.

Neither is the amount, or the cutoff value.

What is relevant is that we live in one world and that wealth is not infinite, and neither can it be created on the fly. Sorry, Mr. Graham. Such taxes exist because wealth is dangerous. Hardship we can handle. It brings us together and coaxes the best out of us. Not so with being wealthy, especially if we inherit it. It sours us. That's why we tax inheritance.

I know all too little about economics, but one of the things I do know is that there are various kinds of industries, and the wealth-producing industries are those like mining, fishing, hunting, agriculture, in which value is either directly removed from the belly of the earth itself, or free natural processes are harvested. Without sunshine, air and water, agriculture would be pointless, and agriculture would be pointless if a farmer had to produce light, heat, air and water to feed crops and livestock. What gives farming a shot at profitability is the availability of energy, substances, and processes that are there for the taking.

Yes, farmers may have to pay for the use of irrigation water, or pay to pump it from the ground, but they don't have to create hydrogen and oxygen, combine them, capture the resulting water, and apply it to their plants. No farmer has to create plants or animals from piles of minerals, and invent metabolic pathways that consume water, air, and nutrients, and then provide nourishment. It takes smarts, care, hard work and luck, but the basics are there for use by anyone, for free.

All industries except for a very few just transform that wealth which is created, and since wealth, fundamentally, is material, it is limited. Don't confuse energy with immateriality. Energy equivalent to matter. It is also limited. The universe at large may contain more matter and energy than humanity can even comprehend, let alone use, but right here where we live there are limits.

"Materially and socially, technology seems to be decreasing the gap between the rich and the poor, not increasing it. If Lenin walked around the offices of a company like Yahoo or Intel or Cisco, he'd think communism had won.... Everything would seem exactly as he'd predicted, until he looked at their bank accounts. Oops," says Mr Graham.

But it's just not so. Technology and politics are increasing the gap between rich and poor. It may be true in the past that the nobility lived far better than the other 98% of the population, and that a simple peasant could never have dreamed of becoming king. A peasant may have dreamed of having enough bread to eat, but no more.

But in that far distant past, almost everyone was pretty much at the same level, the other 98% of them. They may have been abjectly poor compared to even our common homeless street alcoholics, and diseased, and ignorant, but there was no real gap. Everyone was like them, except for a few exotics in feathers and brocades, who lived in high palaces and kept armies. Those few were seen as gods, not as rich humans.

Those clever youths mingling freely in bright offices of technology companies did not create the world. And we cannot compare them only one to another. There never was, is not, and never will be the self-made-man. We depend on each other. We are better now at extracting and shaping the things we can harvest from the earth, and make a much wider variety of things from out common raw materials. Because of our education (from knowledge slowly built up over the last 4.5 million years of human existence) we have learned about new raw materials. We no longer seek only to mine silver, gold, copper, coal, iron and lead. We now make from sand machines that think. But the sand is still free. We take it and use it but no matter how clever we might be, we still can't afford to make it.

But even beyond that, there is the use of the rest of the world's people as raw material. Those bright young happy people in offices are not the whole story. We should not compare them one to another, but to the rest of the world's peoples.

If a factory in Mexico can make shirts cheaper than one in Cincinnati, then it's off to Mexico with the factory and our jobs. Then to India from Mexico, and then to China from India, and to Vietnam, Laos, Malaysia, and who knows where. Anywhere people are paid less for more work is good for our cubicle dwellers. Cheaper goods means that they keep more of the money they make, and through taxes apply subsidies for our own industries, so they and we get wealthier and wealthier. Some of us. Not all of us.

Some of our own, lots of our own in fact, are going down with the ship as well. It isn't just the farmers of India who are paid so little for their crops that they can't afford to eat. Even though the grain they produce is sold to Australia and Europe as cattle feed, and even though some is repurchased and imported back again into India to serve as emergency rations for the poorest. Even in this country the price paid farmers keeps dropping while retail prices hold steady. And many Americans scratch through food banks now, seeking enough to just get through the month.

It doesn't matter much that as Palagummi Sainath has said, India ranks eighth in the world in the number of billionaires (as figured in U.S. dollars, no less). India is getting both richer and poorer at the same time, as the gap between the richest and the poorest widens. As it is in this country, which has the biggest gap among all "developed" nations. And we can feel it.

We're long past the time when one income could support a family. Like it or not, many women if given the choice would prefer to work at home raising their children. It happens that women are really good at that, and it can be really good for children. But few can do it, because even with a woman and her husband working, they still have trouble getting by these days.

No, wealth doesn't come out of the air. It doesn't materialize when smart, educated, driven people apply themselves. That's needed, but wealth grows exceedingly slowly if it has to be created. Only when wealth is taken, as Mr Graham has said happened in the past, does the graph take a sharp upward jump.

And we are more and more rapidly taking from the poorest of the world to benefit the richest. We are taking resources and labor from the poorest of the world and using them for our benefit, and not giving back. We are dealing with the lowest bidder, the one who does not provide clean water, enough food, medical care, education, and who does not enforce even the most basic labor laws. And that's one reason why we are getting richer.

Some of us.

I simply don't agree with Mr Graham that "in a modern society, increasing variation in income is a sign of health". I believe that the opposite is true. Wealth creates both economic and political power, and the wealthy use power to become even wealthier and more powerful. That is the way it is today, and that is the way it has always been. We are too weak to control our lust for wealth and power. It is the human disease.

That is why the United States has a constitution.

If you want a truly healthy and happy society, one full of rich competition and growth in the arts, sciences and in business, you need to have an egalitarian one. One that has learned from the sad mistakes of human history. One that is wise enough to know that unchecked capitalism is as dangerous as unregulated military power.

If wealth is good, and a gap in wealth is better, and increasingly better as it grows wider, then power is also good, and a disparity in power is better, and absolute power is best. Either route will lead to an intense concentration of wealth, political power, religious power, police power, and military power. Dictatorship. The ultimate monopoly. It always happens. That is not what I want for the United States, or for the world as a whole.

Mr Graham ignores the story of Europe, a subcontinent that has learned the hard way. The European Union has a larger population than the United States. It is wealthier than the United States. Its people are better educated and happier. They all have health care, and don't worry about their pensions. They have high taxes and they pay them willingly. They know what the alternative is. They know what they're getting for the money. Several countries, including France, even have higher productivity than the United States. Bite that.

Europeans know that too much difference between the two ends of the economic spectrum creates problems for everyone. It isn't a personal moral failure to be poor, it's a social moral failure. It makes sense to share. An educated population can adapt and innovate. It can be more creative and peaceful. A healthy population need not fear epidemics bred and spread through a diseased underclass.

Toward the end of his essay, Mr Graham says a couple of interesting things.

"If I had a choice of living in a society where I was materially much better off than I am now, but was among the poorest, or in one where I was the richest, but much worse off than I am now, I'd take the first option.... It's absolute poverty you want to avoid, not relative poverty."

This is of course just the opposite of reality. Poverty is poverty. Being poor in a rich society is a little better than being poor in a poor society, but not much. The poor always suffer more. It doesn't matter whether they drive old cars or walk shoeless . The status of poverty is the crime, and the poor live shorter, less happy and less healthy lives because of it. Period.

And if Mr Graham lived as a rich man in a poor society, he would be much better off. If it bothered him too much, he could use his wealth to do good. This is rare, but some have done it. Without modern medicine and sanitation he might die relatively young, but maybe not. Many premodern societies were full of the elderly. It was the first five years of life that were the most dangerous. After that, if you didn't have to work too hard, if you were rich, you probably had it made. And the rich get a big boost just from being rich, and from being powerful. That's why they lived into old age.

Mr Graham's final comment is "You need rich people in your society not so much because in spending their money they create jobs, but because of what they have to do to get rich. I'm not talking about the trickle-down effect here. I'm not saying that if you let Henry Ford get rich, he'll hire you as a waiter at his next party. I'm saying that he'll make you a tractor to replace your horse."

Um, yes he is. It's right in there. "In spending their money they create jobs" is a standard line of the wealthy, even though he says it isn't so. Every wealthy person believes in an absolute, innate right to their own wealth: because I am wealthy I am good, and because I am wealthy I create jobs all around me, and so I deserve to be even wealthier, because I am blessed. If I were not blessed, I would be poor too.

But try to find a person who actually manufactured a significant portion of his or her wealth. It doesn't happen. My wealth comes from getting someone else's wealth. It's that old economic thing again. Money does grow on trees, and in oil wells, but hardly anyone gets it there. It's too much work. It's much easier and more fun to get it from someone else. Just to pick on Bill Gates again (well heck, everyone knows who he is), he didn't create wealth. He accumulated money from you and me for a long time. What he has now was once ours, and we willingly gave it to him.

Therefore he is now rich. Not a self-made man, but one that you and I made.

Will you pray for him? Or for Rupert Murdoch? Or for Warren Buffett? Larry Ellison? Do you sob with joy when you think of what Donald Trump has done for the world? How do these people compare to Albert Schweitzer, Mohandas Gandhi, Martin Luther King, Jr., or the Dalai Lama? How about Jesus?

Rich men, were they? Self-made millionaires? Do you admire them because of that? Or because they gave? Who's powerful now?

What really does matter? What is the value of a rich man, except to excite our own greed? Is there even a single thing to admire about a rich man? Isn't wealth a measure not of how much one has, but of how much one gives?

Mr Graham would not want to live as a poor man in a rich society. The basis of his essay has an opposing thrust. He is an entrepreneur. He values accumulating and winning. To be happy as a poor man means that he is not an entrepreneur. But he is.

If free enterprise is followed to its limit, and the accumulation of wealth is worshipped above all else, well, it leads somewhere we've heard of. It was called the Dark Ages. There is no such thing as a free lunch. We can't all be rich, and unfortunately, being rich still means that someone is rich and someone else can't be. It will always be that way, by definition. If we were all tall, then none of us would be. If we were all fat, then no one would be. Get the picture?

Think back a few years when IBM owned about half the software in the world, Microsoft owned nearly all of the rest, and a few other companies held title to what was left.

Compare that to now. Because of a few crackpots who insisted on sharing software freely, things have changed radically. Ownership, secrecy and lawsuits are no longer the keys to success. First called the "Free Software" movement, now sometimes also called the "Open Source" movement this change has revolutionized the world.

Almost everyone who wants to get into software now has a shot at it, and not only is free to take the source code and bend it into new shapes, but often can get it all free of cost.

This is progress. This we can celebrate. No one has to win or lose. We can share and rise together.

Monday, November 20, 2006

Ruby Nooby Review of Up and Running

Ruby on Rails: Up and Running, by Bruce Tate and Curt Hibbs
* Paperback: 167 pages
* Publisher: O'Reilly Media (August 1, 2006)
* ISBN: 0596101325
* Dimensions: 9.4 x 6.8 x 0.5 inches

This is a Qwik-N-Dirty little book that I like a lot. To say that it's quick and dirty is partly praise and partly a lament. There is a lot to like about this book and some not to. So what else is new in your life, then?

The book is about Ruby on Rails, the relatively new web development environment that has arisen from the blending of what is in internet years an old language (Ruby) and a new framework built on Ruby (Rails). Ruby is 11 years old, and now at version 1.8.5, and Rails is two and a half years old, now at version 1.1.6.

Ruby is the creation of Yukihiro "Matz" Matsumoto, who during a period of unemployment set out to create a programming language for programmers: "...we need to focus on humans, on how humans care about doing programming or operating the application of the machines. We are the masters. They are the slaves".[1]

Rails arose from David Heinemeier Hansson's work on Basecamp, a project-management tool which he contributed to at 37signals. He realized that the work he had put into this project could be extracted into a model-view-controller [3] framework that could be applied to other projects. And he wanted to put fun back into programming.

This book starts off well, with an overview of some of the guiding technical and philosophical aspects of Rails: metaprogramming, Active Record, convention over configuration, scaffolding, built-in testing, and the three standard environments for development, testing, and production. Then we explore the standard directory structure of a Rails application, views and controllers.

As the book unfolds we get more details on:
  • Active Record (the model part of MVC; an intermediary level between the application and its database)
  • Scaffolding (the controller part of MVC; automatically-built code linking application parts together)
  • Views (the view part of MVC; how pages render via various templates, helpers, and pieces of content)
  • Ajax (Asynchronous Javascript with XML; and how some of it is built into Rails) [4]
  • Testing (unit, functional, and integration)
There are also references to third party IDEs [5] and third party tools for testing. The final section of the book is a 31-page reference on tools, servers, and various aspects of Rails.

I came to this book after first working through "Agile Web Development with Rails", by Dave Thomas and David Heinemeier Hansson, et al. It was good.

My main problem is that after spending a good bit of time with "Agile" and rebuilding my personal web site, I did other things for about four months, and got really dumb again. I do that. It runs in the family. So I was hoping that "Up and Running" would be a good refresher and also give me another angle on the subject.

It has, sorta. Again, some things to like and some, well, maybe elsewise.


Schema Migrations

I do like the style of the book, and it clarified for me several areas where I thought that "Agile" was a little vague on. One thing I especially liked was the section on schema migrations. This isn't mentioned in "Agile", and maybe it's a new feature of Rails 1.1+. I started with Rails before version 1.0 came out, and "Agile" was also written in that environment, so that book obviously couldn't reference anything developed since it was written.

Rather than having to write DBMS-specific [6] SQL script files to drop tables and databases and then recreate and reconfigure them, migrations allow you to write Ruby code within the Rails environment, and then write add-ons incrementally. And thusly rejigger the database.

In other words, you create a database, and then you code the database schema, and Rails will create and manipulate the tables for you. An "up" routine will add features, and a "down" routine will remove them. This is very handy, and consistent with the rest of the environment: you get to write object-oriented code in Ruby, and don't have to switch to SQL and fumble with the syntax filter in your head while you're doing that.


Rails Console

This part comes just after the schema migrations section. "Agile" touches on this aspect of the environment, but much more briefly, and sticks more to basic, generic Ruby code than "Up and Running". The former book is 558 pages and the latter is 167, so the longer and more frequent examples in "Up and Running" form a relatively larger part of this smaller book. And they apply directly to the sample application that gets developed throughout the course of the book.

The first example brings up the console, a command-line, text-based application, and shows the reader how to access the newly-created database and even how to add new objects to it. Later on, you get to see validation at work. I know that testing is built into Rails, but a tool like this can be really valuable when you're starting to write code, and long before you have something to run through more formal tests harnesses, so seeing the Rails console in action was valuable.


Dynamic Scaffolding

"A Rails scaffold is an autogenerated framework for manipulating a model." [7] That's about what I learned from "Agile". That and learning how to create one. That was good, but only the half of it.

"Up and Running" describes a second kind of scaffolding. Not a command run once to autocreate directories and files which then can be further configured and tweaked, but a tag dropped into a controller. It adds capabilities through library calls inside one of the controllers you already have, enabling a quick evaluation of the developing application.

"The scaffold tag is dynamic, allowing you the freedom to build on the database schema; the user interface automatically changes to keep up." [8] They say, and "you can use Rails scaffolding to provide a simple user interface while you're working on your database schema. Your users can then verify that you're maintaining all of the data you need." [9]

Adding "scaffold :photos" to the PhotosController class allows the application to access the photos datbase table and enables you to add new photos to the database, list all the photos, edit them, and display them individually.

With one line of code. Amazing. Now I know this too. And it does work.


The Bad and the Ugly

OK, all of that plus lots of typos. There is a list of errata published at O'Reilly, but it is a short list of the actual typos appearing in the text. There's really no excuse for this. It's all too common in technical books, and guess what? Typos REALLY MATTER in technical books. When will they learn, these people? When, I ask you?

Part B, The Code Samples.

Ach, code samples. Things I do not like. Things which can however be lifesavers. When all else fails, drop in the canned code and keep working. Or refer to it later, to see how the pros format their code, or see it later to see how a particular thingy is built, a thingy you want but just don't quite know how to write.

And "Up and Running" comes with certified code samples, for chapters 1, 4, and 7, but not for the code through the end of chapter 7, the last in the book. Just for the START of chapter 7, before the final modifications. Too easy for smart people? Don't know, but we could use the final, finished code. We dopes, out here.

If you want to work along with the text and create the photographic slideshow application as I did, you'll probably need the supplied code. You can download it as zip files from the O'Reilly site. The code listings in the book are sometimes long, and not 1000% clear. The format for these could be a lot better.

It's not always evident when you're typing in a page and a half of code whether you're adding to something or replacing the whole shebang. This is a perennial problem with coding books. Maybe they could post it all online somewhere, with "before" and "after" sections circled in bright colors for us dummies. With lots of arrows and big print for us to follow. For us. The ones who buy the books in order to learn something.

Yeah, I'm somewhat at fault here. I had to do a lot of debugging because though I type well, I do much better when writing code than when transcribing from a book. And I made a lot of typos. Another one of my specialties. This always adds hours of fun when learning a new technical subject.

One thing that did annoy me though, was that after exploring a lot of cool things in the early chapters of the book, the authors jumped from some relatively simple examples right into a full-blown application, which then had to be tweaked further.

If you start out in good faith, and get it all right, you'll have to dump your own code and lay in theirs, or else invent the application on your own so you can keep up. And of course if you do that, your application won't match theirs and you'll be screwed anyway.

Nuff said there. The part that bugged me the most was at the end, in the testing section. The unit tests went OK. Then I moved to the functional tests, and using code that worked in the application, code written by the authors, the functional test failed. It wasn't the assertion violation shown in the book, no, it was a nil object error.

Don't know what or why. I just gave up here. Had to move along. The authors do not provide a final code download for the finished application. If I'd had that I would have dropped it in, but would only have come to the final annoyance, the section on integration testing.

Rather than having the reader work through this by running it, the authors just provide some text and describe what happens. Since "integration tests are a new feature in Rails 1.1", and "Integration tests are higher-level scenario tests that verify the interactions between the application's actions, across all controllers", it would have been ever so nice to have seen this part of the environment actually work. [10]

But no. Not in the lifetime of this edition. You just get to read about it.

One final festering figment of orneriness. And that is with the Instant Rails environment. Curt Hibbs is creator of this recommended installation technique. Maybe it's OK now, but I tried this several months ago and was unable to get it working.

I know it works, and it probably works far better today than an earlier version six months ago, but I couldn't get it to work for me, then. You don't need the Apache web server because Ruby on Rails has a simple server called Webrick built in, and though it's not efficient, it's very handy for development work. But Apache comes with Instant Rails. Whether you want it or not.

When I tried Instant Rails (remember, this was months and months ago), I had some kind of Apache problem popping up at me, even though I didn't need or want Apache. I also had a prior MySQL installation that Instant Rails didn't like. As I recall, I got the MySQL problem first, and then when I dumped the data from my tables and saved it, and uninstalled MySQL, Instant Rails didn't have that problem anymore, but decided to choke on something related to Apache. Maybe that was it.

Over and over I tried to configure it, but there isn't much you can do. Instant Rails is the sort of environment you just drop in, and it just works. Except...

If I was smarter or more experienced, things would have gone better, I know. I know it in my little heart of hearts. They would have. They would. But I've not led a pure enough life for that, and that route is closed to me, so I've stuck with Plan A. I started with the "One-Click Installer" [11] and upgraded across the internet, and that has worked fine. I'm tickled all to bits when things don't blow up in my face, and they haven't, with this route. It works. Yay!

So there you are. Let's try some concluding remarks then.

If you want a book to learn Ruby on Rails with, try the upcoming second edition of "Agile Web Development with Rails", by Dave Thomas and David Heinemeier Hansson, et al. [12] I still think that's the best, and most complete. I've only seen the first edition, and it is good. Edition two can only be better.

If you want a second book, try "Ruby on Rails: Up and Running", by Bruce Tate, Curt Hibbs. It's good, and will give you another perspective. Hope for a corrected and updated second edition too. The first edition is not truly great. Good, but not great.



---- references --------------------------------------------------------------------

[1] http://en.wikipedia.org/wiki/Ruby_%28programming_language%29

[2] http://en.wikipedia.org/wiki/Ruby_on_Rails
http://www.rubyonrails.org/

[3] http://www.pcmag.com/encyclopedia_term/0,2542,t=MVC&i=47550,00.asp
http://www.cs.ucc.ie/~dgb/courses/swd/glossary.html

[4] http://en.wikipedia.org/wiki/Ajax_(programming)
http://webdesign.about.com/od/ajax/g/bldefajax.htm

[5] http://www.pcmag.com/encyclopedia_term/0,2542,t=IDE&i=44707,00.asp
http://cplus.about.com/od/glossar1/g/idedefinition.htm

[6] http://www.pcmag.com/encyclopedia_term/0,2542,t=DBMS&i=40952,00.asp

[7] ("Agile", p. 58, first edition)

[8] ("Up and Running", p. 59)

[9] ("Up and Running", p. 58)

[10] ("Up and Running", p. 124)

[11] http://rubyforge.org/frs/?group_id=167

[12] http://www.pragmaticprogrammer.com/titles/rails/index.html

Tuesday, October 31, 2006

Cold geezer sweats

Here I am, sitting unemployed by choice, wondering what to do next, and watching things get weird.

I often awake in the middle of the night and wonder just what in hell I think I'm doing. I'm not young anymore. And though I've passed most of my life for someone 10 or 20 or more years younger than I actually am, and still sort of can do that, now my younger self is still an old guy. As defined by our culture.

It's worse if you're a woman. To be a woman and over 25 is to be old. Guys get character with age, and are admired. Women are discarded. Like Halloween pumpkins forgotten on the back porch. Women over 25 are moved into the hag column. Personally speaking, I classify any woman without wrinkles as a girl, but even my sister says I'm weird. No one is beautiful, though, up close, unless you can see the soul.

Bodies are just packages of meat. I don't care who you are, you're still a piece of meat. Without animation of the life force, or whatever you want to call it, without personality, without dignity and goodness and integrity, you're just meat. You stink, you sweat, you have blotchy skin. Your hair is too thin or too thick, or the wrong color, or too thick in some places and too thick elsewhere. Your feet are flat. You have hangnails and veins running in the whites of your eyes.

The beautiful people are beautiful at a distance, after a good going over by professional hands. In the days before Photoshop. With Photoshop, beauty grows exponentially, and anyone who is not actually dead and well along the road to obvious decomposition can still be made achingly gorgeous. Lust keeps apace. We desire them without regret or reflection.

There is no limit to this process, except the old one. Getting up close, face to face, and spending time with a person. No one is beautiful up close. Unless they're also good and kind and fun, and when you can get close enough to see those in a person, you overlook most of the physical things. You just don't care anymore. You know better. Your old lizard brain kicks in. The one that had to evolve the hard way. The lizard knows. You know.

So I still look a lot younger than I really am, but am not beautiful, and never will be. I try to be good but know so few people that it really doesn't matter. I am all alone in my wallowing unemployed ugliness.

I quit my job about a year and a half ago and still have no idea in hell what I'm going to do for money. If nothing changes, I should be able to keep going for eight to 10 years, at best. That ain't bad. I don't have to sweat it, but I still do. Credit that one to my upbringing, or my incorrigible, unchanging wimpish nature. I fear, and therefore I am fearful. Fearocious. I fear, and desire an income. But I'm not desperate. Yet. Except quite often in the dark of night

Still, I should be looking. I finally decided yesterday to post my resume in a few places, let it sit, and see what happens. Dang. I should have known. Within minutes I had the first hit. And it was totally inappropriate. A guy looking for a body to stuff into a hole that an employer had. Didn't even read my resume. The job would have been exactly what I was not interested in. He must have just spotted my skills list, my location, and then scared the snot out of everyone around him when all the bells went off in his head.

He had nothing else to fill the vacuum there. Just bells, poor boy.

So I had to respond to him and apologize (since I try to be good), saying that I should have known, and I should, that I had no interest in becoming a piece of meat to be slung around to one job interview after another until something happened, and I got placed and he got his commission. And there I would be, in hell again, but living somewhere else, stuck, and paying three times the rent I am here, and not able to be walking in the woods within 10 minutes of leaving my place the way I am now.

Some things about my life are OK. Screaming awake in the dark of night is an experience, but so is getting out at six in the dark, and just walking in cold rain, alone with the sky, free and untethered. Unlicensed. Unregulated. With hair on my face and breath in my throat.

So I replied. Maybe that took care of him, but then this morning there were more messages. Within the first 12 hours or so my resume had been read 23 times. Another contact came, from a contracting agency. Damn.

When I told him I wasn't interested in working through third parties, he replied that his company wasn't a third party, that I'd be working for them, for uh, someone else, while working for someone else, but really them, or something. He didn't get it. Nor did the people at Allstate insurance who just flat out spammed me with a form letter in case I wanted to take wing and sell insurance for the sheer joy of it.

One of my cousins became an accountant. Back in the days before accountants could bring down companies like Enron. When accountants were accountants, whatever accountants were. But not hunters, not pillagers, not warriors. The joke among accountants back then, way back then, was to say "I always wanted to be an accountant when I grew up". Instead of a fireman, or a cowboy. Long dead accountant humor. Insurance salesmen might be different. I think they don't feel embarrassed because they lack a sense of humor. They may never feel at all, navigating solely on instinct and blood lust. I wouldn't fit in without the instincts of a horsefly.

So right now I'm back to the books, back on the learning curve with "Ruby on Rails: Up and running", trying to relearn most of what I forgot over the summer, and wondering just what the hell I'm up to anyway. Phil Hughes, publisher of Linux Journal, has settled in Nicaragua. Been there 10 years for some reason. I could take my money and move there, and I would run out before the money does, I think, though I'm nowhere near either rich or even comfortably well off. Is that what it takes to get by in America these days?

At least I'm male. Ugly and unloved, but maybe not expected to be lovely or cuddly because I'm not a woman, and can get as old as I want and not get any uglier, even if I am over 25.

I did sleep well last night though. After all, several people contacted me yesterday about jobs. They think they still want something from me. I still have a hot bod.

Monday, September 25, 2006

Web Designer's Success Guide -- HAH!

"Web Designer's Success Guide: How to profit from freelance web design" by Kevin Airgid (http://book.airgid.com/ and http://www.airgid.com/)

The best thing about this book is that you can get a free PDF copy of it via "http://book.airgid.com/". I found this out shortly after I ordered a printed version of it from Lulu.com, the on-demand publisher. I ordered the book after reading the reviews referenced at "book.airgid.com" and deciding that even though all these people seem to be friends, or at least friendly colleagues, that the book was a pretty sure bet.

Add to that the notice "Thank you to everyone for making WDSG hit the Lulu top 100 books list!". And add the idea that I may be writing a book or two on unrelated topics and this was a chance to see what Lulu's production quality looks like.

All this seemed to presage that the book would be both a good bet for information on how-to-roll-your-own-business-as-an-independent-web-designer.

After downloading the free PDF version I was immediately sorry that I had ordered the printed version. As of today, September 25, 2006, this book is not listed among the Lulu top 100. I suppose that changes are frequent, but the author could check and update his web site accordingly -- it was only last week that I got an email from him about making the list, and noting that the free version was now available.

"...No fluff, no page fillers with useless graphics that bump up the page count. In most of the chapters I end with a step by step tutorial on how to use software to achieve some of the goals of the chapter. This book isn't about theory, it is about practical applications you can use right away," says the author.

Sadly, not so. The tutorials are specific to three applications that the author has managed to master. They are "Installing PHPMailList", "Setting up your blog: Installing WordPress", and "Build your Dreamweaver/Contribute CMS Solution Tutorial".

This book is 81 pages in length, and 19 of them are devoted to detailed instructions (including screenshots) of how to install just these three particular pieces of software. Nine pages for PHPMailList, four pages for WordPress, and six pages for Contribute. Instead of going into detail about WHY and WHEN to use a mailing list, and how to stay clear of anti-spam laws, and what to look for in an application, the author wastes a huge amount of space on showing you how to install software you may not ever, ever want to use.

OK, add to this the fact that PHPMailList is not available at the location indicated by the author (http://www.warpedweb.net/php/maillist/). Try it. You will get "The page you have requested could not be found. (404)". The PHP mother site, php.net, hasn't heard about PHPMailList. This is really sloppy, a very bad sign for a book with a 2006 copyright notice. Based on a quick look which, granted, may not be totally accurate in itself, PHPMailList seems last to have been updated in 2001 (http://php.resourceindex.com/detail/01381.html).

The book sounds good. The chapter titles are:
1: Starting up
2: Tooting your own horn
3: Office on the cheap
4: When projects go wrong
5: How to share your knowledge and make money
6: Project management and pricing
7: Teach your clients to make bread
Resources: Things you can use

Here's a quick summary by chapter:

(1) Starting up - why do it; money issues; building your own web site; locating and contacting clients.

(2) Tooting your own horn - finding free advertising online; researching yourself online; staying in touch with clients; mailing list software; the whys and wherefores of creating an online newsletter.

(3) Office on the cheap - furniture; some (sadly) rudimentary hardware and software recommendations.

(4) When projects go wrong - egos; a case study about poor client communication; a case study about when to fire the client; some business rules of thumb (create a written estimate and a contract; get at least 30% up front; use your Jedi powers, a.k.a. intuition about people and situations).

(5) How to share your knowledge and make money - sharing info with others (in general, and writing books in particular); contributing articles to other web sites; public speaking; blogging.

(6) Project management and pricing - pricing; fixed versus hourly rates; managing the creative process (really about managing clients and projects); project extranet (with crappy examples); billing. These are followed by a great essay by Kathleen Hickey titled "Customer service: keeping them coming back for more". And then by three fake interviews with other designers that contribute almost nothing to the value of the book.

(7) Teach your clients to make bread (or how to install and use the Dreamweaver/Contribute content management system).

Resources (Appendix): Things you can use. This is a very limited short appendix with a poor set of resources (two books and four web sites, one of which is Lulu.com, and another of which is the author's site about Flash).

The author's basic approach seems to be that technical issues are so far beyond his capability that since he's managed to figure out a couple of tools, he'd better document that for everyone else too. "Installing PHP software can be a daunting task for creative individuals like myself," he states on page 20. Even, in the case of PHPMailList, something which apparently is no longer available. And which is no help whatsoever if your web host does not offer PHP support. Or you find something better.

In addition to all of this, Mr. Airgid is either not a good writer or does not know about spell checkers and grammar checkers, and couldn't find a proofreader. Try these on for size:

"No matter what types of freelance projects you take on same day some how a client will ask you this question..." (page 69)

"It's a very wise idea to avoid this type of situation at all costs...The solution to this problem it to avoid this situation at all costs." (page 69)

"There would be nothing worse than having a client produce a 1000+ static pages of content and outgrowing a CMS that has it's content trapped in flat HTML."(page 72)

"If you client plans to add sections..."(page 72)

"Contribute is a robust CMS system for the rest of us!." (page 73)

"Using a $150 dollar program..."(page 78)

"During training I learned that one of the process's they used to build..." (page 79)

If only the dear man knew about spell checkers. There is no telling what he might accomplish even with Microsoft Word giving grammar suggestions. Apparently no one he knows wanted to proofread this book before it was offered up for sale at $25.99. He does list two editors, but they must have been busy with other things on the day that this book sailed by.

And don't get me started on the sample documents. Well, OK, I guess I'm already started so let's take a whack. He has a hidden web page at "http://book.airgid.com/secretgoodies/". A couple of examples saved as Excel spreadsheets, so if you don't have Excel, guess what? Has the good doctor Airgid encountered Adobe Acrobat, one wonders? Could not these have been save as such? But yes he does know bout Acrobat because he talks about supplying PDF documents to clients. But he doesn't do his readers the same favor, and so we're stuck with Excel files.

And, oh, there's a sample document in Word format to rub it in, and a "sitemap_sample.ai" file. What's an ".ai" file? Well ".ai is the file extension for the Adobe Illustrator and Corel Trace drawing files". So, um, what do you do if you don't have Adobe Illustrator? Just by luck I discovered that this file could be opened with Adobe Acrobat Reader.

One really has to wonder how "The author, Kevin Airgid, grossed over $100,000 USD a year developing sites for various national level clients," as he claims on his web site (http://book.airgid.com/). If he did, then heck, maybe I can too. Maybe I can. I know how to use a spell checker. I can program. I can install software and design databases. And although I'm not a graphic artist and not trained as a designer, I can recognize good work, and am good with a camera, hey.

What I do like.

One of the reviews at book.airgid.com mentions creativepublic.com, which looks like it has a lot of business-related resources for free. I'll have to get back to that.

The author does bring up some good business-related issues in his first two case studies, which cover customers from hell. In chapter six "Project management and pricing" you do get a good overview of the single entrepreneur's way of approaching the client's needs. And just before he does into the distressing dead end of showing how to install the Contribute content management system, Mr. Airgid does run through a long and detailed checklist about customers' needs, likes, dislikes and ultimate goals. There are several questions in that list worth squirreling away for one's own use.

These bright spots however are not worth the price of the book. Not for me. Too bad it's already in the mail. Instead, check out creativepublic.com for some specific information about forms and templates. And have a look at:

* Web Design from Scratch (An unrelated site which can give you a few nuggets of wisdom about design and development issues.)
www.webdesignfromscratch.com/

* 3 Things You Wish Clients Knew About the Web
www.andybudd.com/archives/2006/06/3_things_you_wish_clients_knew_about_the_web/index.php

* Becoming Clueful: What You Should Know Before You Redo Your Web Site (Five tips on what businesses should expect from their web designers and developers)
www.itbusinessnet.com/articles/viewarticle.jsp?id=53266-0

* Steps to Becoming a Freelance Web Developer
www.garrettdimon.com/archives/steps-to-becoming-a-freelance-web-developer

* Several articles on freelancing at Sitepoint
www.sitepoint.com/search/search.php?ps=10&q=freelancing&submit=Search

* How to Charge
www.1099.com/c/ar/ta/HowToCharge_t042.html

Wednesday, September 20, 2006

Newbishness

Initial, inarticulate post. Am planning a review of Kevin Airgid's Web Designer's Success Guide as soon as I finish it in a day or two.