Saturday, May 28, 2005

An Example of Necessary Scope Creep

How do you start with a hot CPU and finish off with an air conditioner? Here's a true story that can double as an allegory.

We have three bedrooms. One for us; one for our daughter and one (on the third floor) for the home office. Heat rises making the highest room the worst choice for a room full of heat belching computers. Nevertheless, its more important to have an infant one room over than it is to prevent a motherboard from puddling into the bottom of a computer case.

Summer came and with it, the heat. Unbearable, wicked heat. A brand new computer that hummed like a kitten growled like a cougar in this heat. It was so bad that I cried 'uncle' and decided to get an air conditioner. My preference was for a portable air conditioner but the cheapest decent air conditioner is $150. The cheapest portable: $750. So, the gap meant that I could not deploy a portable.

When it came home, we hit the strata issues. The condo rules didn't allow external air conditioners. It had to be mounted indoors. An 80 lb. 2'x2'x2' air conditioner will not sit on a 4" ledge. I had to build a shelf capable of holding the weight. To allow the shelf a fighting chance, the ledge would bear some of the weight. I had cut pieces of wood to use for the shelf brackets.

To make the shelf look two steps up from the college dorm cement block chic, I needed to paint the shelf. To make it match the window sill, I had to paint the window sill the same color. To paint the window sill, I had to take down the curtains and clean the windows.

Once the air conditioner was in place, I ran it. It worked great. Like a glass of iced tea on a hot summer day, it gained condensation. Lots of it. So now I need a towel nearby when the air conditioner runs, or it will run in a different way.

How does CPU temperature lead to a towel? Errors in requirements gathering, scope creep and use cases.

  • The home office shouldn't be perched at the highest part of the house
  • Making an allowance for non-portable air conditioner cost a day of production.
  • The shelving option consideration should have included the painting topic.
  • I didn't budget to remove the blinds.
  • I didn't budget to clear the windows.
  • The new solution is less stable.
  • The need for a heat remedy didn't include the feature of a shelf.

Friday, May 27, 2005

Queue Cramps

Problem: Linux Server is choking on its mail and you're a near total Linux newbie.
Solution:
A) Flush the queue.
B) Go into the mail queue (in my situation it was /var/mqueue/) and move files to another location. using mv * ../030204

You may want to count how many files are there at the moment:
ls -l | grep -v ^l | wc -l

If you are hemmed in by a queue full of legit and dud messages, you may have to move some of the files. However, that might give an Argument List Too Long warning. To remedy that, move some of the files.
e.g.
mv qf*01 ../030204
until you have the right messages out of your queue. Make sure you're off loading old messages. All messages climb in an alphanumeric order. For example qfj4I----- is and older piece than qfj4K----- and not by two days neccessarily. Sendmail will add letters to its queue messages as it needs them. A hour or a week may separate a naming change.
C) read the X FIles. (ls x* -al). These will point you to the possible cause of the failure. In my example, the /var/spool/mail/marc file had filled to capacity. I nuked it and went in search of the root cause as to why it wasn't tidying itself up.

Tuesday, May 24, 2005

Nine Pillars of a Successful Web Team

This is a cool think piece on building a good web team. In general, IT has a lot of smart people. But, web development is the exception. People can just get web access, a business card and a phone number and be on their way to becoming a web designer. If they're good at doing the dance, they can be the nexus of a team. When that team grows, it feels growing pains. High-ups may just throw people at a problem until it's solved or it beccomes too expensive to fight the problem.

http://www.adaptivepath.com/.../000242.php