Love like a dog

If a dog was your teacher you would learn things like:

When loved ones come home, always run to greet them.
Never pass up the opportunity to go for a joyride.
Allow the experience of fresh air and the wind in your face to be pure ecstasy.
Take naps.
Stretch before rising.
Run, romp, and play daily.
Thrive on attention and let people touch you.
Avoid biting when a simple growl will do.
On warm days, stop to lie on your back on the grass.
On hot days, drink lots of water and lie under a shady tree.
When you're happy, dance around and wag your entire body.
Delight in the simple joy of a long walk.
Be loyal.
Never pretend to be something you're not.
If what you want lies buried, dig until you find it.
When someone is having a bad day, be silent, sit close by, and nuzzle them gently.
Enjoy every moment of every day.

This was quoted in an article from the Huffington Post called "How to Teach Your Children About Death".

A nice quote

From a reading by Unitarian Universalist minister Robert Fulghum, quoted in this Daily Kos article:
Maybe we should develop a Crayola bomb as our next secret weapon. A happiness weapon. A Beauty Bomb. And every time a crisis developed, we would launch one. It would explode high in the air - explode softly - and send thousands, millions, of little parachutes into the air. Floating down to earth - boxes of Crayolas. And we wouldn't go cheap, either - not little boxes of eight. Boxes of sixty-four, with the sharpener built right in. With silver and gold and copper, magenta and peach and lime, amber and umber and all the rest. And people would smile and get a little funny look on their faces and cover the world with imagination instead of death. A child who touched one wouldn't have his hand blown off.
  • Current Music
    Gel-Sol, "Schwein Kuchen"

Mad lib

I've been writing mad libs on the refrigerator here lately. My housemate is very creative, so she rises to the occasion. The last one caused her to write about the coming robot apocalypse. I wrote this tonight:

My ____ ____ unnaturally ____. Please ____, or ____ will ____ us all. Love, ____
  • Current Mood
    devious devious

Worse than anything you've seen

From chat.

<Someone> ... I just saw something worse than Goatse.
<Me> Results 1 - 10 of about 4,430 for "worse than Goatse". (0.15 seconds)
<Me> Results 1 - 10 of about 282 for "worse than Goatse and tubgirl". (0.35 seconds)
<Me> Results 1 - 1 of 1 for "worse than Goatse and tubgirl and lemonparty". (0.32 seconds)
<Me> oh, and
<Me> Results 1 - 5 of 5 for "worse than bloodninja". (0.24 seconds)

I feel the hands of God in this.
  • Current Mood
    mischievous mischievous

Thoughts on David Carradine

The early BBC report, as well as later rumors, claimed that David Carradine died due to an accident with autoerotic asphyxiation.

First off, I'm glad that he may have died in a state of biochemical grace. I admired his work, especially in the Kill Bill films.

Second, I think this was a preventable death.

One would expect that in this day and age, one could build and sell a simple device that cuts or loosens the rope if blood oxygen levels drop dangerously low for more than a user-settable amount of time (not to exceed 2-3 min).

But that would require that the oxygen sensor be clipped onto a finger, and that could easily slip off during feverish prayer. But that could lead to the development of less intrusive blood oxygenation sensors.

(I sense a patent coming my way.)

Update: Added link

Neurolinguistic programming steel cage deathmatch

I bought a copy of Meta-Magick: The Book of Atem a few weeks ago, and began reading it. This book, rooted in neurolinguistic programming (NLP), makes a lot of interesting suggestions, and contains a 36-day set of exercises for developing one's awareness and self-programming skills.

I learned a few NLP-related things a few years ago from a practitioner in the Bay Area. The list of presuppositions he gave me helped me release a tremendous amount of self-judgment that I had carried with me from childhood. In particular, the statement that "there is a positive intention behind every action" helped me look at some of my counterproductive behaviors more clearly, and create alternatives that were much more supportive of other aspects of my life.

As a result of what I learned from the NLP counselor, I have made considerable progress in my own development by adopting two general habits: questioning my assumptions and thoughts, and fostering more explicit dialogue within myself. But in those two activities, NLP only served as a jumping-off point, rather than a training regimen.

In the time since those encounters, I've had a continuing interest in NLP, but never felt like I had a real handle on what it was about. I lacked the money to go to any seminars or workshops. I did pick up a few things here and there about it, but nothing that resembled a cohesive body of knowledge.

So in response to what I've read thus far in Meta-Magick, I looked up the Wikipedia article on NLP, which led me to a critical article about NLP from the Skeptic's Dictionary. The critique also gave me a lot to think about, and showed me that there does not seem to be a single coherent body of knowledge on this topic. But the most valuable short-term thing I take from it is the idea that if I do the guided meditation exercises in Meta-Magick in good faith, the burden of proof will be on the book and not me.

I may do the exercises soon. If and when I finish, I'll post my impressions here.

My adventures with CSS rollovers and buttons

I've been a coder for most of my career. I have not tried to exercise any significant design sense with regard to web pages, until recently. I'm now creating a website for someone here in Columbus all by myself, which means that I am now learning how to build style sheets and make the site look good.

To that end, I thought it would be nice to put in some navigational buttons -- iconic buttons that one can click to move through a time-ordered sequence of pages (first, previous, next, and last). Since the latest fashion statement seems to be to use Cascading Style Sheets (CSS) to accomplish this, I decided to give that a try. CSS was one of the few areas in web development that remained a mystery to me, so I thought it would be an interesting challenge. (Cue the theme music from "Gilligan's Island.")

Four days later, after reading far too many pages on CSS buttons, I think I have
a working solution. I'm posting it here to try to save someone else the grief I went through. (The source of the demo page includes all the necessary style information and markup.) I've been told that image flicker may still occur in some versions of Internet Explorer, so caveat lector.
Collapse )

Spot the application

From chat.

<someone> MVE Semen Tanks - - MVE Semen Tanks XC Millenium $499 Buy the Best and Skp the Rest
<someone> wonder what gmail is trying to tell me
<me> it wants you to pay $500 for a semen tank. whatever it's asking you to do must be very wrong. unless you're a veterinarian.
<me> because, you know, horse juice occupies a lot of volume.
<me> for that application, i imagine you could recoup the cost after only a few uses.

[python] List rotation

I was working on something this morning, and thought I'd share the solution, even if it is easy to recreate.

I wanted to rotate a list in Python left or right by a certain number of elements. I wanted elements which dropped off one end to be rotated back in from the other end. I would be doing this rotation a fixed and small number of times to short lists, so high efficiency was not necessary in this case. I also didn't want the size of the list to constrain the rotation.

So, I ended up combining two slices, like this:
import copy
import math

def rotate_list(l, offset):
    Rotate a list by (offset) elements. Elements which fall off
    one side are provided again on the other side.
    Returns a rotated copy of the list. If (offset) is 0,
    returns a copy of (l).
        >>> rotate_list([1, 2, 3, 4, 5, 6], 2)
        [3, 4, 5, 6, 1, 2]
        >>> rotate_list([1, 2, 3, 4, 5, 6], -2)
        [5, 6, 1, 2, 3, 4]
    if len(l) == 0:
        raise ValueError("Must provide a list with 1 or more elements")
    if offset == 0:
        rv = copy.copy(l)
        real_offset = offset % int(math.copysign(len(l), offset))
        rv = (l[real_offset:] + l[:real_offset])
    return rv

I'm posting this because my Google search for "python two slices" yielded far more complicated approaches.

Update: Added a check for zero-length lists. If you don't pass a list in the first place, you get what you deserve.