Categories
Connecting

Slagged Redux

Recovered from the Wayback Machine.

Dorothea writes today:

Today I found out (never mind how; it was not through my direct agency) that a decidedly ungentle set of words, questioning not my courage but my ability to feel and act as a human being should, has been levelled at me elsewhere.

Honestly, I wish I hadn’t found out. I wish I still didn’t know. Tilt

Unfortunately, I was the agent of Dorothea’s discovery, because I was also a recipient of the words she speaks of. And I understand—all too well—that tilt she feels.

Dorothea writes of courage, and how she has no courage. I think she’s the bravest person I know, because she speaks out even though she dislikes confrontation. She speaks out because it’s right to do so, not easy to do so.

My reaction to the words differed because I reacted with emotion, my own personal Boggart (and if you haven’t read Harry Potter, find a child and ask them to tell you what a Boggart is). I react with fire and passion and hurt. I am nothing if not a bundle of emotions, to my detriment because I do know that these same emotions can lose me respect.

(Yet, aren’t these same emotions, passions, whatever you want to call them the impetus that begins conversations on difficult topics, time and again?)

Dorothea, for all of her ‘lack of courage’, and me for all of my ‘over emotionalism’ are at least willing to step outside of our comfort zones and speak of difficult things, to take a stand, and to face within ourselves our own “Boggarts”.

I wonder how many of those who read us, who speak of courage and emotion and feelings and love, can say the same?

Categories
Just Shelley

Karate anyone?

Recovered from the Wayback Machine.

I studied Karate once, for almost four years. It was Okinawan karate, which means all hands, little foot action.

One of things I loved to do was spar. We had sparring Tuesday and Thursday nights, and on Saturdays, and I rarely missed a session. Sparring isn’t as dangerous as it sounds because we would wear teeth guards and shin pads (a must!) and boxing gloves, of course. I also had sports glasses since I wear glasses.

I particularly loved sparring with the Sensei because aside from being a great teacher, he was also drop dead gorgeous. Better looking even than Hugh Jackman and Johnny Depp, and that says a lot.

With Sensei, we could always try out dangerous moves because he was so good you couldn’t hurt him. Once I decided to practice a punch whereby I swung all the way around, arm extended, hand in a fist aimed at his head. He blocked. And then since he felt I needed to learn control, he arm locked me around the neck, picked me off the ground, and threw me against the wall.

Unfortunately, his wife saw this. Now you have to realize that the only person in the world Sensei was afraid of was his wife, this drop dead beautiful woman who came up to his chest if that. She lit into him something awful, getting all over his case for roughing me up. I tried to interrupt, tried to say, “Sensei didn’t hurt me, he knew what he was doing”, but nothing could stop this really breathtaking scold.

(Followed by hugs all around, of course.)

Sensei would never hurt me because he had a real thing about people getting hurt and did everything in his power to prevent this. Sometimes when we sparred, though, a tap in the right place on my glasses would cause a cut on the bridge of my nose and I would start bleeding.

(I was used to it, didn’t even really bother me as long as the blood didn’t start dripping down on my uniform. I always thought that the blood on my face gave me a sort of cachet with the guys.)

Anyway, when I would get one of these cuts, my Sensei would start to slow down, his face getting more and more puzzled until he would finally stop and say, “Your face is bleeding. I can’t believe you don’t know that your face is bleeding.” And off I would have to go to get the cut taken care of. Pain in the butt.

Now, I’m taller than the average woman. In fact, I’m taller than the average man. As so happens my best friend, who was two belts higher than me, was about five foot tall, 90 pounds if that. In spite of our height differences, though, we loved to spar together. We knew each other so well, we knew how far we could go and we looked very impressive when we fought — with much whirling of feet and arms and lots of cries of “Heya!” People would stop and look, we were that hot.

Unfortunately, Sensei didn’t know that we knew how far we could go with each other and was always getting on my case about me beating on my friend. What impressed others alarmed him. Even when my friend would say, “Sensei, she knows what she’s doing! She’s not hurting me”, he would scold me for using my height against my friend. What was I thinking of.

Well, gee, Sensei. Uh. We were having…fun?

It was frustrating sparring with my friend and the other women. I was always having to hold back because I didn’t want to look like I was beating on them, even though half the time I would be the one of the floor because they felt they didn’t have to hold back with me (me being so much bigger and all).

Finally, one day I said, no more sparring with the women, I was sparring with the men only from that point on.

What a difference this made. I could now spar to my fullest potential without having to worry about being seen as a bully. And what was better is that I earned my ‘stripes’ with the guys, and they enjoyed sparring with me just as much and we treated each other equally. I would sometimes land a punch too hard and put someone on the ground, but that was okay, because they would do the same.

One time I was sparring with Jim, who was about 250 pounds and had a bit of a control problem at times. When He’d landed one punch too many too hard, I hauled off and hit him in the side beneath the ribs in a punch sweet as it could be. It was about perfect. Put that man on the floor groaning in pain, but without any lasting damage. When Sensei came over, I just smiled at him sweetly. Sensei understood, and so did Jim.

I loved sparring with the guys. I ended up with a broken nose and cracked ribs, but I had a lot of fun.

Categories
Diversity

New Voices

Recovered from the Wayback Machine.

New voices are entering the discussion on feminism and girlism. Brave souls.

AKMA has joined the conversation, but carefully, aware that the discussion related to this topic has achieved a level of emotion and engagement that transcends previous topics:

One reason I haven’t joined in earlier lies in my fondness for everyone in the room, and my sense that I can see the admirable heart in what each one says, whether or not they’re on the same page as me. And it’s awfully hard to enter this sort of discussion without treading on some toes that already ache from others’ stomping.

As one who has participated in the tromping as well as being a trompee, I can understand AKMA’s caution. There is something about this topic that seems to touch the core of us, generating strong agreement or disagreement, but not indifference. Perhaps its because men and women remain men and women, with all the age-old complications, confusion, and concerns, regardless of socio-politico events.

I almost wrote David Weinberger to ask him, “Well, David. Here’s your pieces. Now where’s the glue?”

But AKMA does discuss the issue, albeit being careful to separate the message from the messenger (to quote one of the comments to my posts) and talks about the effects of girlism:

Effect One: it severs women who can and will use this tactic from those who don’t have access to that tactic. I get very edgy about strategies of resistance that engender division; we don’t have to look far, though, to see that girlism doesn’t only advance the cause of “girlists,” but distinguishes “girlist”-women from “non-girlist-women” (and that can pretty quickly be elided to “fun, cool” women versus “uptight, bitchy” women). Effect Two: girlism tends to reinforce men’s latent notions that women are there principally to titillate and delight them. Lots of fascinating women (whom no one has grounds to assume sexually inhibited, though I can’t claim empirical research on this point) don’t want to go anywhere near re-affirming the Playboy Bunny image that haunts men’s expectations of what women should be like.

As somewhat of a directly unrelated counter-point, the second person to join the debate today (that I know of ), Elizabeth Lawley, writes:

I spoke up in defense of Halley’s original post, and I stand by that. I consider myself a feminist. Unlike Halley, I don’t think feminism is dead. And I definitely don’t agree with her assessment that it only encompassed lesbian sexuality to begin with. But one of the reasons that I–and, I think, many other women–have become frustrated with feminism is its renouncement of…well…femininity.

In Shelley’s blog, she reposts and comments on comments by Suzanne, in which she expresses concerns with “girlism” because it’s limited to those with the physical attributes to use it. But all strengths, all power, is unbalanced. Some women aren’t beautiful, true. (Though far more are than realize it.) But some women aren’t smart. Some women aren’t hard-working. Some women aren’t charismatic. Life’s just not fair.

I respect Liz’s reaffirmation of feminism, and appreciate it. However, my opinion diverges from her’s when the discussion returns to ‘girlism’ (if I may continue to use the original term). To me, the argument against Elizabeth’s assertions is actually contained within her argument. How can we equate hard-working, a state a woman can control completely, with beauty, a state that is not only outside a woman’s control, but is also ephemeral and changeable based on society, culture, and era? In some ways this forms the basis of the feminism/girlism debate — control from within (feminism) versus control from without (girlism). I’ll bank on control from within, myself. It’ll last me when gravity finally wins all.

(As a side note, it is a puzzle to me where the confusion arose about feminists not being feminine; unless you equate femininity as being derived only from a male consumers point of view.)

I can respect that Elizabeth has worked hard to develop a body that she’s proud of. And she should be proud, it’s not easy maintaining the discipline to keep yourself in shape. I knew a quadraplegic at Boeing that worked equally hard with his body to be able to lift a finger to control a computer console we were designing for him. I can respect hard work.

But when Elizabeth writes:

The men who tended to view me as an object were flummoxed. And I was okay with that. More than okay–delighted. I loved watching people who had no problem ignoring me (or worse) when I felt like a shlump caught so suddenly off guard.

I am unsure how to respond, except that I know I would not experience delight if someone who previously treated me with disregard and disdain suddenly started noticing me because I had a body that they now found acceptable.

One last thing before closing today’s post, and this message is specifically aimed at Doc — but in the friendliest non aggressive, non-attacking, non-categorizing way I possibly can:

Doc, personally, I don’t care what you call either feminism or sexism, as long as we’re all agreed that something is about discrimination based on gender, and something else is based on the continuing effort to ensure equality, safety, and control of one’s body for all women. However, you might want to consider leaving the labels, because it’s a lot easier writing them out rather than the definitions each time we discuss the topics*.

Regardless, if the label seems too constricting, then we’ll change them and see if we can get the world to agree. Or we’ll continue to use the definitions, instead. As long as you agree that the important thing is what the labels represent, not the labels, themselves.

And one other note: I have said this before, more than once, but I will say it again. I respect Halley’s opinion and her courage in expressing this opinion. Because I don’t agree with the words, doesn’t mean I don’t value the speaker. If I am vehement on this topic, it’s because it impacts on my core beliefs about being a woman, not because I am ‘angry’ at Halley, or at anyone who agrees with her opinion. Halley should be proud that her words started what has become an incredible conversation.

Just a quick note, for what it’s worth.

Now, it’s been a long, long, long day, and this tired, unsexy, unfun, roughshod riding, unloving, toe-trodden, anti-male, non-girlist feminst (or whatever) is going to bed.

* This is my last posting on this topic for this go-around. I don’t think I would have anything new to contribute to the dialog that I haven’t already said — in excessive detail.

Categories
Burningbird

Burningbird flies south for the winter

I started out taking a break because I needed it, and I came back because of work on the RDF book. I opened my mouth — again — which has not had universally postive results. News that started out good turned out to be not so good; and friendships have been permanently lost. Friends mean a lot to me.

This is a time of holidays and family and friends for all of you. You do not need the Burning Bird of Gloom perching over your heads waiting for a bright glimmer of joy so that I can swoop down and tear it to shreds. Gloom just does not become me — all that black.

I am resuming the break I took earlier and stopped prematurely, in order to focus on things that you all don’t really need or want to know about.

Happy Chanukah! Merry Christmas! Bright Kwanza!

See you next year.

Categories
Technology

Save Dr. Dotty from the Quicksand

Copy from the Wayback Machine Archive.

Dr. Dotty is exploring in the jungle and accidently walks into quicksand. The object of the game is, of course, to save Dr. Dotty.

The Save Dr. Dotty from the Quicksand games are a variation of the old paper game “Hangmans’s Bluff”. The object of the game is to fill in all the missing letters from one or more words within a phrase and save Dr. Dotty from DOOM.

Playing the Game

-The playing board for each of the Quicksand games is 800 x 600 pixels.
-Each game has an opening animation, and an ending animation if you correctly find all the missing letters.
-Pressing the “ENTER” key after the opening animation stops will start the game.
-Type a letter into your keyboard and every place that the letter exists gets filled in.
-If you type in an incorrect letter, poor Dr. Dotty sinks a little further into the quicksand.
-Close the playing window at any time by clicking the space bar.

The Dr. Dotty games work with Navigator 4.x, Netscape 6.x, IE 4.x, IE 5.x, and IE 6.x, and Mozilla.

 

  • Game 1 If you know about hurricanes, you know the answer to the question in this game. However, you can find the answer in the How the Game Works section, below.
  • Game 2 If you know about minerals and mineral identifications, you know the answer to this game. However, you can find the answer in the How the Game Works section, below.

 

How the Game Works

The Dr. Dotty games use DHTML for all interactive effects. This includes the use of CSS to position elements as well as alter their presentation; and JavaScript to perform all actions, interactive or otherwise.

The elements of the game page are positioned using CSS2 absolute positioning. Doing this I can control the layout of the page at any time. Using absolute positioning also exposes all of the elements to script access once the page is loaded for a browser such as Navigator 4.x. All elements are exposed as part of a Document Object Model (DOM), and hence exposed to interactive scripting access for the IE 4.x and IE 5.x, Mozilla, and the upcoming Navigator 5.x browsers, but to ensure cross-browser and cross- version compatibility, I code to Navigator 4.x, which requires that the elements be positioned absolutely:

   <DIV id="dotty1" style="position:absolute; left: 20px; top: 20px">
   ...
   </DIV>

To ensure that the games work with both IE, Mozilla, and Netscape I used the Burning Bird X-Objects to hide most DHTML implementation techniques. Because of this, when I want to move an object to an absolute position of 100 pixels from the left, I can use the method exposed on the cross-browser objects:

   theobjs["dotty1"].objSetLeft(100);

I’ve also created a set of higher-level animation objects that use the cross-browser scripting objects and JavaScript timers to manage all animation effects. These Animation objects, are basically arrays of animations, with each step in the animation synchronized with matching steps in the other associated animations.

So, to show an element that both moves and clips, I create a new animation sequence (co-ordinated animations that are all performed sequentially in the order they are added to the sequence), and then attach one animation object to the sequence. The animation object is defined with a set number of animation steps, each played out after a specified number of microseconds. After the animation object is created, I then crate new Animator objects, one for the clipping animation and one for the move animation:

   var seq = new animatorSequence();
	
   anim = seq.newAnimator(10,100);
   anim.addAnimator(theobjs["dotty4"],"M",180,160);
   anim.addAnimator(theobjs["dotty4"],"C",0,0,330,200);

When the animation sequence is played, each successive steps of the animations contained in the sequence is synchronized and played:

    seq.play();

So, when Dr. Dotty moves across the screen in the opening sequence, one Animation Sequence is created for the entire opening animation; several Animations are created to handle such things as moving Dr. Dotty, showing the different word bubbles and words that he says, and even changing Dr. Dotty’s expression. Different types of Animators objects are created for each animation effect, and the Animators are added to Animation objects to provide for the synchronization for multiple-animator effects.

Want to see the code creating the animation sequence, animations, and animators for the opening animation? Well, it’s a bit long, but here you go:

function setup_start(){
   seq = new animatorSequence();

   // add animation objects to sequence
   // this animation plays for 200 microsecond, with each
   // step in the animation sequence timed at 20 microseconds --
   // 10 animation steps in all
   var anim = seq.newAnimator(20,200);

   // add animators
   anim.addAnimator(theobjs["dotty1"],"M",180,160);
   anim.addAnimator(theobjs["bubble1"],"M",180,400);
   anim.addAnimator(theobjs["bubble1"],"Z",4);
   anim.addAnimator(theobjs["words1"],"M",230,460);
   anim.addAnimator(theobjs["words1"],"Z",5);

   // second animation, this time one step at 100 microseconds 
   anim = seq.newAnimator(1, 100);
   anim.addAnimator(theobjs["words1"],"H");

   // third animation, 1 step, 1500 ms
   anim = seq.newAnimator(1, 1500);
   anim.addAnimator(theobjs["dotty2"],"S");
   anim.addAnimator(theobjs["words2"],"S");
   anim.addAnimator(theobjs["words2"],"Z",5);

   // fourth animation, 1 step 200 ms
   anim = seq.newAnimator(1, 300);
   anim.addAnimator(theobjs["dotty3"],"S");
   anim.addAnimator(theobjs["dotty2"],"H");
   anim.addAnimator(theobjs["words2"],"H");
   anim.addAnimator(theobjs["words3"],"S");

   // fifth animation, 1 step 2000 ms
   anim = seq.newAnimator(1, 2000);
   anim.addAnimator(theobjs["dotty1"],"H");
   anim.addAnimator(theobjs["words3"],"S");
   anim.addAnimator(theobjs["words3"],"Z",5);

   // sixth animation, 1 step, 100 ms
   anim = seq.newAnimator(1, 100);
   anim.addAnimator(theobjs["words3"],"H");
   anim.addAnimator(theobjs["dotty3"],"H");
   anim.addAnimator(theobjs["dotty4"],"S");
   anim.addAnimator(theobjs["words4"],"Z",5);

   // seventh animation, 1 step, 1000 ms
   anim = seq.newAnimator(1, 1000);
   anim.addAnimator(theobjs["words4"],"S");

   // eighth animation, 1 step, 1000 ms
   anim = seq.newAnimator(1, 1000);
   anim.addAnimator(theobjs["words4"],"H");
   anim.addAnimator(theobjs["words4"],"Z",5);

   // ninth animation, 1 step, 3000 ms
   anim = seq.newAnimator(1, 3000);
   anim.addAnimator(theobjs["words4"],"H");
   anim.addAnimator(theobjs["words5"],"S");
   anim.addAnimator(theobjs["words5"],"Z",5);

   // tenth animation, 1 step, 1000 ms
   anim = seq.newAnimator(1, 1000);
   anim.addAnimator(theobjs["words5"],"H");

   // eleventh animation, 1 step, 3000 ms
   anim = seq.newAnimator(1, 3000);
   anim.addAnimator(theobjs["bubble1"],"H");
   anim.addAnimator(theobjs["dotty5"],"S");
   anim.addAnimator(theobjs["bubble2"],"S");
   anim.addAnimator(theobjs["bubble2"],"Z",4);
   anim.addAnimator(theobjs["words6"],"S");
   anim.addAnimator(theobjs["words6"],"Z",5);

   // twelth animation, 1 step, 1000 ms
   anim = seq.newAnimator(1, 1000);
   anim.addAnimator(theobjs["words6"],"H");

   // thirteenth animation, 10 steps, 100ms (10 ms each) 
   anim = seq.newAnimator(10, 100);
   anim.addAnimator(theobjs["words7"],"S");
   anim.addAnimator(theobjs["title"], "M",200,500);

    // fourteenth animation, 10 steps, 100 ms
    anim = seq.newAnimator(10, 100);
    anim.addAnimator(theobjs["dotty5"],"H");
    anim.addAnimator(theobjs["words7"],"H");
    anim.addAnimator(theobjs["words8"],"S");
    anim.addAnimator(theobjs["words8"],"Z",5);
    anim.addAnimator(theobjs["title"], "M",300,500);
	

     // play all 14 animations, in order 
     // as they are defined in sequence array
     seq.play();
}

At the very end of the function that creates the opening animation sequence, the sequence is played.

One last aspect of the Dr. Dotty games is the interactive portion. This is handled by capturing the keypress event for the Web page, and passing the event to a function:

// handle keyboard events
if (navigator.appName != "Microsoft Internet Explorer") 
   document.captureEvents(Event.KEYDOWN);

document.onkeydown=keypress;

In the function, the keycode for the keypress event is accessed and compared to the letters for the answer: if a match is found, the letter is “filled in” in the answer (using DHTML to replace the existing underscore character with the letter); if a match is not found, Dr. Dotty is lowered into the quicksand further (using clipping to lower the good doctor, and DHTML “hide and show” to change Dr. Dotty’s message and expression).

Download the game source code from the link to the right and make your own version of the game. Have fun!