Sorry about the _why thread, but I got to the party late.
(I was unluckily having an emergency job hunt last August, and then
switched to Django, so I didn’t notice then when _why abruptly
switched careers and, apparently, persona.)
But just today, I felt like displaying an image file and edit a
pathname, so I installed the shoes that came with my ubuntu and went
to town.
Then I discovered that, inside a Shoes app, Pathname#dirname returned
nil.
I commented out all the Shoey stuff and ran the app as ruby, and
Pathname#dirname worked.
One of my personal technical style guidelines is all filesystem paths
of any time shall always reside in Pathnames, never strings. Style
guidelines are good - they help a project grow while remaining clean.
Folks, _why considers himself lucky because he has the stamina,
braincells, and apparent free time to hacketyhack his way, cross
country, blazing new trails. However, at the top of the list of things
Shoes did wrong was cloning the entire environment, including ruby,
AND including the installer. That’s not DRY. Shoes should have been a
simple gem. It could still be.
Make no mistake, the idea of attaching a low-level display driver
(cairo) directly to a high-level language thru a take-no-prisoners DSL
is brilliant.
And, despite that is exactly the kind of situation I have researched
for years how to TDD, _why should not have rejected my offer to help
there. I suspect his shoes project passed its inflation phase and then
bogged down in trivia and bugs, like any project without developer
tests. That’s the technical lesson for everyone in this episode.
Mr _why, wherever you are, someone wise once said if you are not
having fun, you are not doing anyone, anywhere, any good. If proving
to the 'net that you are having fun is fun, do it. And if doing
something else is, then go ahead do that, instead.
Life goes on within you and without you.