Prayer and Fasting

It’s quite an experience. It is not as hard as I’d expected to go without food everyday. I haven’t died, or staggered about, or had difficulty speaking, reading, or talking. I don’t even have a horrible pain in my belly. There’s been no greater discomfort then when I’m really hungry after a long surf. I’m marveled to find even the fact I am fasting can be completely forgotten with any half decent distraction.
Continue reading

Posted in life | Tagged | 2 Comments

500 Error from IIS 5.1 on Windows XP

Problem

Getting a 500 error from IIS 5.1 on Windows XP whilst trying to run from various document roots.

The server was unable to logon the Windows NT account ‘STSSERVERAdministrator’ due to the following error: Logon failure: user account restriction. Possible reasons are blank passwords not allowed, logon hour restrictions, or a policy restriction has been enforced. The data is the error code.
For additional information specific to this message please visit the Microsoft Online Support site located at: http://www.microsoft.com/contentredirect.asp.

Continue reading

Posted in geek | Tagged | Leave a comment

Essential items to take Car Camping

I went car camping recently. In case you don’t know this is the kind of camping which doesn’t require you to carry stuff on your back; you just load up the car, drive, and set up camp next to the car somewhere nice.

I have a few pointers for myself, and maybe you, for the next time.
Essential items to take car camping…

Posted in life | Tagged | Leave a comment

A “testing” email server which doesn’t send out any emails

Problem

I need an email server for testing. It accepts email just like a real one, but does not actually send any email out to the real world. I need to be able to see the emails that it is not sending.
Continue reading

Posted in geek | Tagged | 3 Comments

Million dollar idea #985

A domain name database that goes through every word in the dictionary and shows which words are not currently registered as domains and who owns the ones that are.

Posted in life | Leave a comment

Coles fruit and vegetables: price tag unknown

Coles logo

I’ve got a little beef with the local coles regarding the scales they provide to weigh. Because they’re selling by weight the laws require that the measurement is true. But I suspect there is nothing to say where exactly the scales must be located.

Where can I weigh these goods being sold by weight?

Posted in life | 4 Comments

Zend Framework Quickstart Tutorial: Deploy to a subdirectory instead of web root

When you’re just evaluating something new you do not want to rearrange your whole world just to try something out.

I wanted to try out the Zend Framework and the “QuickStart” tutorial looked very official and the ideal place to start.

However they assume installation is in the webroot. Sorry, but I have other, more important, stuff running on this server and I’m not shoving it aside just for a quick tutorial.

Try as I might, I had great difficulty getting this tutorial to run in a subdirectory. As I’m learning the thing I’ve no idea how to tweak it yet!

Anyway my web root is “/var/www” and I want to put the quickstart tutorial at “/var/www/QuickStart”, which in turn means the public directory is at “/var/www/QuickStart/public”. To make the whole thing work required three changes:

1. Redirect everything to the index in the subdirectory

When I use the cited .htaccess from the tutorial page titled “Create a Rewrite Rule” and call the index it works! Great, except that’s not the test for ‘working’.

Zend needs to feed all requests through the index page so it can farm them out to controllers. The controllers are identified by the ‘filename’ of the request: so the redirection is supposed to catch all the 404′s and feed them into the index. It’s not working until you can call non-existent URL’s without the webserver giving you a 404. eg: “http://servername/QuickStart/public/asdf” should show the “Hello, Zend Framework!” message.

Stay on this step until you get the “Hello” message for made up url under your public directory. E.g. “http://servername/QuickStart/public/asdf”.

My /QuickStart/public/.htaccess became (NB: this is Case Sensitive)


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /QuickStart/public/index.php [NC,L]

This might be done more cleanly with a “RewriteBase” but this worked so I moved on.

2. Set the “BaseURL” of the front controller

Now there is something not right in the Tutorial because the next checkpoint screenshots a message which doesn’t appear in the code so far displayed. That in itself is very frustrating and entire problem of its own so lets not get distracted. I tried to run through the tutorial again from scratch so I could make this post straight from a fresh run through. But not to be.

If you manage to overcome and reach the next checkpoint you’ll need this:

Add a line to “Step 3″ of the the /application/bootstrap.php to set the base url:


// Step 3: CONTROLLER DIRECTORY SETUP - Point the front controller to your action
// controller directory.
$frontController->setControllerDirectory(APPLICATION_PATH . '/controllers');
$frontController->setBaseUrl('/QuickStart/public');

This tells the front controller to prepend Url’s with the subdirectory, and this got me most of the way through the QuickStart tutorial with one exception.

3. Fix the “Action” in guestbook form

When you post to the guestbook you’ll get an error looking for a file “/guestbook/sign” which doesn’t exist. The form is created with that action and you need to fix it in the GuestbookController.php:

Change the setAction in function _getGuestbookForm() to


$form->setAction($this->_request->getBaseUrl() . $this->_helper->url('sign'));

And with that it should generate a form action “/QuickStart/public/guestbook/sign”.

I’m told this last issue has been lodged has a defect and not necessary from releases “1.7″ and beyond. The helper->url will henceforth prepend the baseUrl to its result.

Posted in geek | Tagged | 13 Comments

Zend Framework QuickStart Tutorial: What are the filenames?

I’ve just worked my way through the Tutorial for the PHP Zend Framework. I overlooked downloading the code at the start and launched straight into it creating each piece myself from the tutorial.

After the first couple of pages they (currently) neglect to mention where each piece of code is supposed to go. Maybe I learnt a lot more, but it did not make for a very ‘quick’ start trying to work out where things go from the error messages.

Here’s the final structure of the QuickStart Tutorial…


application/
|-- app.ini
|-- bootstrap.php
|-- controllers
|   |-- ErrorController.php
|   |-- GuestbookController.php
|   `-- IndexController.php
|-- forms
|   `-- GuestBook.php
|-- layouts
|   `-- scripts
|       `-- layout.phtml
|-- models
|   |-- DbTable
|   |   `-- GuestBook.php
|   `-- GuestBook.php
`-- views
    `-- scripts
        |-- error
        |   `-- error.phtml
        |-- guestbook
        |   |-- index.phtml
        |   `-- sign.phtml
        `-- index
            `-- index.phtml
Posted in geek | Tagged | 3 Comments

A 30-second Geek chair review: Aeron, Mirra, or Leap?

A chair is an underrated essential item for a programmer; consider how much time is spent in it. Things came to a head when I moved recently. Whilst lugging around all those boxes and furniture my back insisted on telling me it is in poor health. Most probably I arrived at this situation by sitting a large, very impressive, leather executive chair which my cousin lent me whilst he is overseas. It really looks and feels great to other people who saw me in it; but was terrible for me to actually sit in over time – being quite a short fella perhaps didn’t help. I was adopting such a curved slouch that I was even putting a cushion in behind me to fill some of the gap.

Anyway I decided it was time to get a proper “task” chair to alleviate the situation.

Now everybody (in the internet world) is well aware of the famous Herman-Miller “Aeron”. Needs no introduction really. The price tag does need some recovery time… say AU$1300 as a guide. But in researching reviews from the USA I saw quite a few favourable mentions of the Steelcase “Leap”. They’re an unknown in Australia.

Steelcase Leap

The Steelcase Leap task chair
It seems Steelcase aren’t using the usual retail channel to flog individual chairs. None of the retail stores stock them. I’m not spending a thousand dollars on a chair without sitting in it, but rather fortunately they have a showroom/office in Sydney so I went to check them out. “How many would you like?”, “Well just one.”, “oh”. The sales rep took me to her own desk and invited me to sit in her own chair – which was a little unexpected.

It felt really good. She ran through the controls and I was rather impressed with the variety and particularly the ease adjustments could be made. I wasn’t sitting particularly long, maybe 20 minutes, but my back was saying ‘yes’ and was already envisaging my spine lining up again and long abused muscles getting their wake up call. They don’t stock these things and suggested an order and 12 week wait. I can’t wait that long!

The Aeron and Mirra

The Herman-Miller Aeron task chair
I found an Herman-Miller retailer around the corner, so ran to check out the Aeron and Mirra. Yeah, nice chair, but didn’t immediately impress me as being all that worthy of the price tag. Generally the age of the design was quite evident. To raise/lower the arms I had to get off the chair, walk around the back and wrestle them in to place. To adjust the tension of spring in the backrest required a lot of turning the knob with very little feedback – am I turning it the right way? Is anything happening? To stop the backrest I don’t recall being difficult, but to release the backrest once on the backstop required taking all your weight off the back of the chair – enough to release the pin – before being able to lean back further. This last inconvenience paled the Aeron in comparison to the Leap.

The Mirra came across as a crippled version of the Aeron.

Leap wins

There was no real comparison in my mind. They both might be comfortable chairs but the Leap was equal or more comfortable, vastly easier to use, and 30% cheaper.

The armrests float a surprising distance: 2 inches forward/back and an inch in/out without having to touch any knobs – something the Aeron was entirely void of. The up/down action (2-3 inches) is a simple push button on the armrest. You might rationalize that once you’ve set these things up the ease which they move is no longer relevant. But you’d be wrong. I’m finding myself moving the armrests around all day as various positions become tired and I resettle into a new one. The ease of movement is fantastic.

The backrest is excellent. For one, the tension can be adjusted in quarter turn measures, as opposed to 10 turn measures for the Aeron. But truthfully I don’t change the tension routinely; once I’ve set the tension such that once I settle on an angle it will stay there without having to apply force to keep it there I leave it alone. The major difference here is that if I push further it will go and stay there as I stop pushing. Hard to convey in words but basically it is easy to get both the right amount of back support and a comfortable back angle without touching any knobs. My concern with the Aeron was the requirement to lean forward and release every time I wanted to change the angle of the backrest. The Leap also has four backstop positions which I’m surprised to be using increasingly; when I’m “thinking”, reading, browsing, talking then I let it lean right back. But when concentrating I get upright and set it to the first or second position – right hand click-click-done.

Acquisition

Getting my Leap chair was not all that conventional. As I mentioned Steelcase appear to be neglecting retail sales, no doubt chasing the big deals. I chatted to the sales rep (gosh that was easy, an unsurpassed beauty) at their showroom/office and expressed the urgency of my need and my disinterest in specific options (eg color and quality of the fabric etc). Surely there was one just lying around ready for sale. She said she’d see if she could find a spare one. A few days later I was directed to go to an area near the airport (Mascot) and collect my chair.

It was quite difficult to find the dirt road as it lay through the gates of an unrelated warehouse. I arrived in a brown dusty dirt paddock town made up of shipping containers. The office was, of course, a shipping container. Out in the dust, standing in front of a big red two story shipping container was a large cardboard box in which I found my chair (fully assembled inside the box). I chatted to the lady in the ‘office’ and discovered that the gorgeous sales rep had indeed had to dig around to find me a chair. Seems this particular chair was originally shipped in for a very large Westpac order. I guess they didn’t want it yet/anymore. Lucky me.

Four weeks later and I’m still very pleased with both the decision to spend some real money on a chair, and to get the Leap.

Update: 13 May 2011: 30 months later – Leap still winning!

Long time since I wrote this. Recently I’ve been working full-time and finally I’ve found an employer willing to put some priority on employee comforts. They’ve given me a brand new Aeron. So I can give you an update based on long experience with both chairs.

Lay-back?

A key difference remains the way the “leaning back” works: on the Aeron the angle between back and legs is locked in at right angles – you tip back in a fixed position – like a rocking chair. On the Leap the angle opens and the seat actually pushes forward a bit as the back leans. It’s way more natural and comfortable, in my opinion. During the day I might lean back for a bit to think, then forward to engage again. On the Leap this works quite well. But on the Aeron I find myself kinda bouncing in the rocker to think, and gradually sliding my butt forward into a slouch as I tire. I still manage to find an unhealthy ‘slouch’ position on both chairs, but the Leap handles it much better. If trying to concentrate you can set the lean-back stop to one of five positions (full to none), whereas the Aeron just has ‘rocker’ or ‘not’. Even in ‘rocker’ mode I get myself into that position where your butt is on the front edge, you neck on the top-back and there’s that big empty space for your back to destroy itself between. You know the one.

User Interface?

On the Aeron you set the amount of lean-back pressure by turning a stick knob on the right hand side. It has a lot of turns; no, a lot of turns. Between “hard” and “soft” extremes there would have to be about 15 minutes of turning the knob. I’m not kidding. It’s nuts. Good workout, if that’s what you’re looking for. The Leap has a big knob that is about three turns between extremes. But you don’t actually use this much; it’s a set and forget mostly – by necessity on the Aeron.

But generally I’m finding the controls on the Aeron less useful. Adjusting the height of the armrests is comparatively clunky. The freedom of movement of the armrests is more restricted. The knobs fall off.

Still Leap

Fortunately for my work colleagues I do my bitching and moaning online – I’m sure they’d be tired of hearing how much better my chair at home is. Don’t get me wrong; still way better than an $80 “office chair” but…

This is not a commercial. I’ve no affiliation with either companies. And it is very unusual for me to be such an enthusiast about anything – particularly endorsing a product! Strange days.

Posted in geek | 8 Comments

Million dollar idea #964

You’re in the nightclub but you can’t hear anyone. Product is a nearly invisible hearing piece which you have in your ear (secret service style). It has a small, very directional, wireless microphone you wear it on your collar, earring, on your finger, whatever (accessories). You could just move it into someone’s voice projection to hear them, but that’s going seems a geriatric piece, kinda the stealth/lurker model. No money in that.

So to market this we have a version which is more visible, more social. Your microphone/broach has a red/green light on it. If you like the look of the boy/girl approaching you press it to set the light to green; they press theirs and the two systems connect. You can hear each other talk. Range is 50 centimeters so you have to stay close to stay in radio contact or it drops out. The game is to keep ‘pressing each others buttons’.

Posted in life | Leave a comment