Wednesday, December 31, 2008

Happy New Year!

Hope you're all ringing in the new year in a way that you enjoy, and that the new year brings peace and happiness to all.

Tuesday, December 30, 2008

On Travel

I am a homebody.

I really hate traveling. I hate sitting in the car or on an airplane for hours, awaiting arrival at my travel destination. I hate sleeping in strange beds, living out of a suitcase, or being someone's guest. I hate using strange showers and not having the right soap, shampoo, or conditioner. I hate not having the staples of my diet easily available or accessible.

Part of this is because my family always lived in the same house, with the exception of my dad's one-year sabbaticals to California and England. They had bought the house several years before I was born, and Dad still lives in my childhood home. While the stability was good, I think it also made it more difficult for me to adjust to changes in my living environment.

But sometimes, you have to travel. And sometimes, the fun outweighs the misery of travel, and it's worth it. For example, our Grand Canyon vacation was fun, and worth living out of a suitcase for a week, as was our recent holiday family time. Similarly, a good professional meeting or conference can cancel out all the travel misery.

Other times, the travel is not worth it. I do what I can to get out of that travel. I was supposed to attend a meeting next month in a very luxurious location, but I chose not to attend that meeting. The travel required would have been especially miserable -- a long flight followed by three hours in a shuttle van, and the same thing in reverse to get home. While it was tempting to go to this resort vacation spot for a one-day meeting, and do some tourist activities while I was there, I quickly realized that if I were going to go to that place, I would want to enjoy it with my family, not my colleagues. Since the meeting wasn't vital, I just decided to skip out.

Incidentally, I may not like traveling, but I do enjoy having guests.

Monday, December 29, 2008

Like a Play in Which He's Reading My Lines

Me: Vinny, did you poo-poo?
Vinny: No. [Pause] I think he did.
Me: ...
(If he says that last line, we know he's pooped.)

Me: Would you like to read "Born"?*
Vinny: Okay. [Pause] Let's do it!

[At the table, after he's finished eating]
Vinny: I finish. I get down?
Me: Okay, let me get a washcloth.
Vinny: Good eatin'!

Me: It's time for sleepy-sleep. Let's go upstairs and brush teeth!
Vinny: Waaah! [Pause] I sowwy, it disappointing!


* On the Day You Were Born, by Debra Frasier, one of his favorite books.

Sunday, December 28, 2008

Holiday Travel

Did y'all miss me?

We were gone for a week to see both sides of the family in Kentucky for the holidays. We started with my dad and bonus mom, where my sisters, brother-in-law, and nephew all converged.

Before my siblings et al. arrived, we took the opportunity to see some old friends from high school and college. We went over to their house and had a great time catching up and eating pizza. The highlight of the evening for Vinny was their gigantic inflatable jump house in their basement that he could jump all over.

Once the family arrived, a good time was had by all. There was much food, much talking, and much laughter. My sisters and I had a girls' night out, and went to a museum we used to frequent as children, followed by a sushi dinner and then hot chocolate and deep conversation.

On Christmas Day, we headed over to the in-laws, where we had dinner and opened presents with Granny and Granddad and the fearless Aunt Ginger and Uncle Johnny. We spent the rest of our time there with the grandparents and with Jeff's aunt and uncle, who came up from their home in southeastern Kentucky for a visit.

It was nice to see all the family. This was the first time I didn't completely chicken out and isolate myself on Christmas Day itself. I had some special therapy which helped me to overcome the painful holiday memories of the past.

Sunday, December 21, 2008

Motherhood and Identity

Dr. Isis has a really profound post up on motherhood and maintaining your identity.

How can you make it as a successful scientist and a successful mother? There are a lot of women (as Dr. Isis describes in her post) who completely separate the work and personal spheres, have no pictures of their children up in the office, and deny that there is any difference between their current state of job devotion and their pre-children state.

Personally, I couldn't do that if I tried. My son is such an important part of my life that I can't imagine shutting down that part of my brain during the day. I do tell people at work what he's been up to lately, but I don't think I'm one of those people who can talk about nothing else. I mostly just recount some amusing vignettes and leave it at that.

He's not the first thing I talk about to everyone I meet at work, but if you work with me for long enough, you'll figure it out. I have a mini-shrine of baby pictures at my desk. My computer's screensaver is pictures of Vinny. And to anyone who asks I will tell a funny story about him.

Whether I like it or not, Vinny has changed the type of person I am, and I couldn't go back to pre-baby even if I wanted to. Like any major life event, the entrance of this little person into my life has been life-changing. I have a much different perspective now -- I don't sweat the small stuff so much, I feel more confident, and I'm a better leader.

Furthermore, I don't want to go back to that state. This has been a transformation for the better. He is an inspiration and an encouragement to me at work as well as at home.

I'd like to be an inspiration to other women who want to be scientists and mothers. Can you do both jobs well? Sure, it's just that you have to determine your priorities and be flexible about things that don't directly help you meet your goals. For example, having a spotless house is nice, but if cleaning takes up so much time that you don't have enough time to spend with your child, then adjusting your expectations may be a good idea.

Anyhow, I thought that Dr. Isis' post was really good and I'm glad that she is also keeping her scientist and mother identities integrated.

Saturday, December 20, 2008

Inquiring Minds Need to Know: Elmo Potty Time Edition

  • Why does Elmo talk about himself in the third person? Is this supposed to resemble the way toddlers talk? Because mine never talks about himself in the third person; he talks about everyone else in the first person (e.g., I sit Mama = Mama sit).
  • Would you feel like a failure if the apex of your artistic career was to be the singer of the "Dirty Diaper Blues" or the dude who raps about the manufacture of toilet paper?
  • In addition to being furry like his son, Elmo's father has hair on his head and a mustache of a yellowish-orange color. He also has eyelids. Will Elmo develop those features?
  • Elmo's dad also wears shirts. Why does Elmo go around naked?
  • Where is Elmo's mom?
  • Elmo talks about wearing big-kid underpants with Grover. Yet neither of them appear to wear clothes. How does that work?
  • Who the heck is Baby Bear and why does he have that annoying speech impediment?
  • Why does the big finale song get so stuck in my head that I wake up singing it?

Friday, December 19, 2008

Grammar Lesson of the Day

I was reading my usual blogs when I came across Dr. Mom's post on grammatical tips for writing, and while I did mention my most prominent pet peeve of the misplaced only, I decided to write this post rather than make an entire post-length comment on her blog.

I have heard this commercial on the radio too many times (well, more than zero times is too many times) where they say "All countertops are not created equal."  Whenever I hear that I want to dig my ears out with a spoon!

The proper negation of "All countertops are created equal" is "Not all countertops are created equal" -- okay, people?!?!

The reason is this: let's say you're going around examining countertops, and you come across one that is unequal (whatever that even means!).  Then, you have found a counterexample to the hypothesis of "All countertops are created equal."  There could still be some countertops that are equal, but there exists at least one countertop that is unequal.  Therefore you have shown that "Not all countertops are created equal," but since there exist some countertops that are still equal, you cannot say that "All countertops are not created equal," since clearly, there are some countertops that are equal.

Thursday, December 18, 2008

Christmas Presents

I'm not big on ritual or tradition. That's why Jeff and I just gave each other our Christmas presents when the packages arrived in the mail, rather than waiting for that special date.

For him: a new desktop computer. The old one had died, and he needed a replacement. This one isn't the latest model, but the price was right.

For me: a small digital camera. It's small enough that it fits in my purse. It's slightly larger than a deck of cards. There have been times when I've wished I had a camera available, to take a picture of some beautiful scenery, for example. This camera is perfect for my needs.

For Vinny: a big-boy bed and sheet set. The mattress is from Big Lots. The fully enclosing, waterproof vinyl mattress pad is from Wal-Mart. And the musical instrument-playing sea creatures comforter, sheet set, and throw pillows came from Sears. He has seen all the components -- the package from Sears is still languishing in our furniture-free living room -- and knows all about the big boy bed. We'll leave the Christmastime surprising to his grandparents, at least for this year.

Tuesday, December 16, 2008

Stay-at-Home Dads in the Area

Jeff attends Quaker Meeting on Sundays. For a while he took Vinny along, but Vinny has been in a screaming stage lately so these days he usually leaves Vinny with me. This past Sunday, Jeff couldn't find his wallet, so I drove him to the Quaker Meeting House and Vinny and I went shopping for an hour or two while Jeff participated in the Meeting.

When we came back, Jeff was involved in something-or-other and not quite ready to leave. While Vinny and I were waiting there, I got the opportunity to meet a stay-at-home dad and working mom couple who have a daughter who's about two years older than Vinny.

Jeff met this man and his family the first time he went to Quaker Meeting, because the man watches the children in the children's room during the service. I think Jeff was really happy to meet another stay-at-home dad, because this is the only other one we know. I know of another woman at my place of work who has a stay-at-home spouse, but I don't know her at all, having only seen her at women-oriented events.

It's nice to not be the only ones doing the reverse-traditional family arrangement, and I think we could be good friends with this other family. We should probably invite them over sometime.

Monday, December 15, 2008

Supercomputing Course: OpenMP Syntax and Directives, Part II

In order to be parallelizable by a parallel for construct, a loop must satisfy certain conditions. First, the number of iterations of the loop must be fixed, and knowable upon entry into the loop. Second, each iteration must be independent of the others. And finally, there must be no data dependence between iterations.

So, here are some things we can't parallelize with a parallel for construct:
  • Conditional loops (e.g., many while loops; it's best to recast your parallelizable while loop as a for loop if you want to use the parallel for construct)
  • Iterators over a loop (e.g., C++ STL iterators over a std::list)
  • Loops in which any of the iterations are dependent upon any of the previous iterations
  • Loops in which there is data dependence between iterations.
So, how do we determine whether a loop is parallelizable? Let's take a look at a real-life example!

In many scientific problems, we want to solve a system of linear equations. One of the ways to do this is known as Gaussian elimination. Suppose we want to parallelize the following Gaussian elimination code:

/* Gaussian Elimination (no pivoting): x = A\b */
for (int i = 0; i < N-1; i++) {
  for (int j = i; j < N; j++) {
    double ratio = A[j][i]/A[i][i];
    for (int k = i; k < N; k++) {
      A[j][k] -= (ratio*A[i][k]);
      b[j] -= (ratio*b[i]);
    }
  }
}


We have three possible candidate loops to parallelize. Which one should we select?

First, we need to really understand how Gaussian Elimination works. For this, I refer to the below picture. (Click to embiggen.)
You can see the progression of Gaussian elimination in the four frames of this picture. The i loop is represented by the yellow row and column. Basically, we take the entries in the yellow row and column and use them to update the green submatrix before going on to row/column i+1. This tells us all we need to know about the parallelizeability of the i loop. The values of the entries in the (i+1)st yellow area depend on what operations were performed on them at previous values of i. Therefore we can't use OpenMP to parallelize this loop because of data dependence.

What about the j loop? The number of iterations in that loop varies with i, but we do know the number of iterations every time we are about to enter the loop. Do any of the later iterations depend on earlier ones? No, they do not. Can the j iterations be computed in any order? Yes, they can. So it looks like the j loop is parallelizable.

What about the k loop? Like the j loop, its number of iterations varies but is calculable for every i. None of the later iterations depend on earlier ones, and they can all be computed in any order. Therefore the k loop is also parallelizable.

So, we can't parallelize the outermost loop, but we can parallelize the inner two. Which one should we select? It's best to select the outer loop, because then we'll have more uninterrupted parallelism.

So, our Gaussian elimination code now looks like this (changes in red):

/* Gaussian Elimination (no pivoting): x = A\b */
for (int i = 0; i < N-1; i++) {
  #pragma omp parallel for
  for (int j = i; j < N; j++) {
    double ratio = A[j][i]/A[i][i];
    for (int k = i; k < N; k++) {
      A[j][k] -= (ratio*A[i][k]);
      b[j] -= (ratio*b[i]);
    }
  }
}

(Observe that we can combine the parallel and for constructs.)

Isn't that just amazing? We can parallelize this piece of code for the modest cost of one additional line! And our algorithm is still easy to read: It's not obscured by calls to OpenMP functions. Compare this to our old friend MPI. I never cease to be amazed by the compactness of OpenMP.

Next time, we'll talk about some other OpenMP directives, including sections, reduction, and some synchronization directives.

Sunday, December 14, 2008

Supercomputing Course: OpenMP Syntax and Directives, Part I

The OpenMP standard covers the C, C++, and Fortran programming languages. There is one syntax for C and C++, and another for Fortran. In this tutorial, I will focus on the C/C++ syntax.*

The basic format of an OpenMP directive is as follows:
#pragma omp directive-name [clause] newline

(Incidentally, the word pragma is Greek for "thing.") If you have a compiler that doesn't understand OpenMP, it will simply ignore the pragma lines, making it possible to use the same code file for both OpenMP-parallelized and serial code.**

A few more points about the syntax:
  • Note the newline at the end of the directive line. We will see some pragma that require braces around the code to be parallelized. You must put the beginning curly brace on the line after the directive, not on the same line as the directive like many people do in the case of for loops.
  • The pragma are case sensitive, and follow all the standard C/C++ pragma rules.
  • If your directive is really long, you can continue it on the next line by putting a backslash as the final character in the previous line.
With that out of the way, let's talk about the most important directive, the parallel directive. Its basic syntax is as follows:
#pragma omp parallel private(list) shared(list)
{
/* put parallel code here */
}

The parallel directive is used to create a block of code that is executed by multiple threads. The code in brown are optional arguments to the directive -- private and shared variables, which we'll talk about later.

Here is a sample code -- the OpenMP equivalent of "Hello World":

#include <stdio.h>
#include <omp.h>
int main (int argc, char *argv[]) {
  int tid;
  printf("Hello world from threads:\n");
  #pragma omp parallel private(tid)
  {
    tid = omp_get_thread_num();
    printf("(%d)\n", tid);
  }
  printf("I am sequential now\n");
  return 0;
}

Suppose we run this program using four threads. What will be the output of this example?
Hello world from threads:
(0)
(1)
(2)
(3)
I am sequential now

may be the answer you're counting on, but it may not be what you receive. The output
Hello world from threads:
(3)
(1)
(0)
(2)
I am sequential now

is just as valid and just as likely. The point being, the operating system schedules the threads, and you should not count on them executing in any particular order.

The most common directive other than the parallel section directive (which you must use in every program to contain the parallel section of code) is the parallel for directive. The syntax is as follows:

#pragma omp for schedule(type [,chunk]) \
private(list) shared(list) nowait

{
/* for loop */
}

where type = {static, dynamic, guided, runtime}. If nowait is specified, then the threads won't wait around for all threads to finish up the for loop before moving on to the next thing.

The default scheduling is implementation dependent. The scheduling choices are somewhat intuitive in meaning. Static scheduling simply means that the ID of the thread that is assigned a given iteration is a function of the iteration number and the number of threads, and is determined at the beginning of the loop. This is a simple way to assign iterations, but it could be a bad idea if different iterations have different amounts of work to them. For example, if every fourth iteration has extra work, and we have four threads, then a certain thread will be assigned that work-laden iteration every time, and we will have a load imbalance.

In that case, the dynamic scheduling algorithm may be a better choice. The threads are assigned iterations of the loop over the course of the execution of the loop, in a round robin fashion. So, a thread that is idle gets the next piece of work to do, meaning that threads are assigned work based on their ability to complete the work. In this way, load balance can occur.

You are probably wondering how to use the parallel for construct, but this entry has gotten very long so I will stop here for now. Next time, we will discuss the parallel for further, and I will provide an example.



* This is because as a computer scientist, I think that C and C++ are pretty nice languages, and Fortran, which in a just world would be nothing more than a fascinating relic of the past, is an undead zombie language that refuses to die.

** This is true for OpenMP directives, but if you use any of the runtime library routines, you will need to do a little more to make things work. We will talk about this when we talk about runtime library routines.

Saturday, December 13, 2008

Propaganda

We have begun a propaganda campaign in this household. The campaign is pro-potty (or "polly" -- as it's referred to around here).

We have the DVD "Elmo Potty Time," and it is quite popular with the demographic to which this campaign is directed. Unfortunately for us, Elmo's high-pitched voice gives us a headache, and his laugh sounds evil. But perhaps that is what makes Elmo so successful -- he is evil, and uses his evil superpowers on your children.

At this point, we don't really care. Whatever gets our 32-pound karate-kicking expert to use the potty so we no longer need to dodge his whirling feet at the changing table, we're all for it.

Thursday, December 11, 2008

By Thy Money Gently Flowing, Illinois, Illinois*

As I'm sure you've all heard by now, the governor of Illinois was arrested on Tuesday morning for corruption, including attempting to use the filling of Barack Obama's empty senate seat for personal gain.

Wow.

Dang.

I must admit it: I voted for Blagojevich in 2002, but by the time he was up for re-election, I had moved to Tennessee.

That makes two completely corrupt, lawbreaking frauds we elected in a row (George Ryan, and now Blagojevich).  What other state can say that?!?!

It's funny, because when I moved to Illinois from Kentucky, shortly after Operation Boptrot, I was relieved to be moving away from such a corrupt state.  How wrong I was!

* For you non-Illinoisians out there, this is a reference to the Illinois state song.

Wednesday, December 10, 2008

Adventures with Vinny

This past weekend, we had a lot of fun with Vinny.  He loves the trains at our local children's museum, and on Saturday night, they had a special showing of the larger model trains in their outdoor train garden.  The trains were decorated in a Christmas theme, and all the little buildings had lights on them.  Vinny loved seeing the trains, and if it hadn't been so darn cold we would have stayed there just watching the trains the whole time.

Then the next day, we took him back to the museum during daytime hours, so he could check out the H-O scale model trains inside, plus all the other stuff he loves in the museum (such as the nests that light up when he pushes the coordinating buttons).  It was also our intention to let him run around and wear himself out.  But it was a lot of fun because he was just so thrilled to be there and to see all the interesting stuff.

On Monday, Jeff was feeling a little under the weather so I took it upon myself to cook dinner.  Vinny helped me make some pancakes.  He's really interested in cooking, and he especially loves the mixer.  We didn't use the mixer but we did use a whisk, which he also finds fascinating.  I let him help me by dumping the measuring cups of flour into the bowl, and holding the end of the whisk handle while I stirred the batter up.  He was really eager to help --  "I help me, Mama?" he offered.

I let him stand on a step-stool while I cooked the pancakes on the griddle in the middle of our stovetop.  I sufficiently impressed upon him the fact that it was hot, such that he didn't even try to touch it.  But he did watch in fascination as the pancakes cooked.  We made BIIIGGGGG PANCAKES (said with great breadth and in a low voice) and itty-bitty pancakes (said in a thin, high voice) and he ate probably 4 of the smaller pancakes while we were standing there making pancakes.  Then at the table he ate another two.

When I come home from work every day he is always delighted to see me.  He hugs me and regularly says "I miss you all day."  Today he was working on a very intricate drawing -- "I draw stars!" he said -- which was a new development.  Normally he just scribbles a bit and moves on to the next piece of paper, but according to Jeff he'd been working on this one all day.  It is completely abstract -- nothing recognizable at all, no repetitions or patterns -- but really quite stunning.  I will have to take a picture of his masterpiece.

Tuesday, December 09, 2008

Supercomputing Course: OpenMP

OpenMP is the industry standard shared memory programming model. First developed in 1997, the OpenMP standard is updated by an architecture review board (ARB).

There are several really great advantages to OpenMP. First, it allows you to take an incremental approach to parallelization. You can parallelize the the parts that will have the most impact before parallelizing the rest, optimizing your effort-to-improvement ratio. Second, the constructs you use to parallelize the code are simple to read, and most are one-liners, so your code doesn't grow that much. And finally, you can use the same code as parallel or serial code -- just compile it with or without OpenMP enabled, depending on what you want.

The OpenMP API is a combination of directives, runtime library routines, and environment variables. These components of the API fall into three categories: expression of parallelism, data sharing among threads, and synchronization.

The OpenMP parallelism model is a fork-and-join model. That is, when your program starts running, there is a single thread of control. When it reaches a parallel section, it forks into multiple threads, which rejoin into the single thread upon reaching the end of the parallel section.

The nuclear physicist in our previous installment could write a hybrid MPI/OpenMP program to solve a bigger problem. She would reproduce the basis functions once on each node, and then use OpenMP to parallelize the computations across the node. As we will see in the next installment of this course, there are many OpenMP directives that can be used to parallelize many common features of algorithms.

Monday, December 08, 2008

Supercomputing Course: Scalability, Memory, and Multicore Architecture

Remember my supercomputing course? Good! Here's another installment.

We discussed scalability before. To review, there are two primary measures of scalability of your program: strong scaling, in which we throw different numbers of processors at a constant-sized problem, and hope that the wall time to completion is inversely proportional to the number of processors; and weak scaling, in which we throw a constant amount of work per process at varying numbers of processors, and hope that the wall time to completion remains constant.

Scalability is a very handy concept, because it alerts us to bottlenecks in our algorithms. We may not know exactly what's wrong, but if we see that the numbers are not what we would like them to be, we can go in and check it out.

Sometimes, however, we get some false readings from our scaling studies. For example, I once had superlinear speedup, meaning that in my strong scaling study, I found that it took less than half the wall time on 2N processors that it did on N processors. This was because of caching effects -- a (2N)th of the problem fit fully into cache memory, while an Nth did not. Since the machine never had to access the slower memory, the computation went even faster than it would have otherwise.

Speaking of memory, to solve some problems we have to duplicate a data set across every process. For example, a nuclear physicist might need to store her basis functions on every process, because the basis functions are used in the computation of potentials for every particle in the nucleus. This can be very redundant, and especially in the case of today's mixed distributed and multicore supercomputer architecture, it is also a waste of memory space.

On a multicore supercomputer, instead of each processor consisting of a single CPU plus memory, we have multiple CPUs that physically share one large chunk of memory. If we use MPI, then we treat each CPU as if it is a single CPU with memory that is inaccessible to all the other processes, even the ones that are on the same board sharing the same memory pool with it. So in this scenario, the nuclear physicist would have to reproduce the same data twice for a dual-core node, four times for a quad-core node, or eight times for an eight-core node. For example, on a quad-core machine with 2 GB memory per core, if our basis functions take up 1 GB, then the redundant basis function storage occupies 4 out of the 8 GB available. Wouldn't it be cool if we could just reproduce it once? We could use that extra 3 GB to solve a bigger problem.

We could use only one of the cores on the node, letting the rest remain unused, and use all the memory on the node for that one processor. Unfortunately, any computations that we perform will be done on only one of the cores, thereby slowing them by a factor of n for an n-core node.

What we need instead is a way to take advantage of all the memory while simultaneously using all the processors when we do computations. In other words, we want to use a distributed memory programming model between multicore nodes, and a shared memory programming model within the nodes. Is there a shared memory programming model that we could use for this purpose?

Of course there is; it's called OpenMP, and it's the topic of the next installment of this course!

Sunday, December 07, 2008

Apparently, He Understands Sequence, but Not Consequence

Typical scenes in our lives:

Vinny: [Screams loudly]
[Then, in a stage whisper:] Shhh! Be quiet!

****

[Vinny begins climbing up on a chair in order to reach the light switch.]
Vinny: Be careful!

Saturday, December 06, 2008

Productive Week

Despite the fact that I took a sick day on Monday, and felt crappy for much of the remainder of the week, I accomplished a lot at work last week. I successfully compiled and ran a code I'd been trying to get working for three weeks, which felt really good. Also, I did some performance runs on my main project that I'd been meaning to do for a really long time and finally got around to doing. And finally, I started working on implementing some I/O for one of my other projects.

I don't know if I have it working right, but I was pleased that I got a good start on it. This project is particularly challenging because I don't really understand what the code is doing, and it's written in Fortran (not my first choice of programming languages, let me tell you...). What I have to do for them is to convert their checkpointing I/O from MPI-IO to another type of I/O. This is hard because this new type of I/O is completely foreign to me; in fact, I am kind of a guinea pig because I am the first person outside of the developers to try to use it. Luckily the developers live down the hall from me, so I can just talk to them when I run into trouble. The documentation isn't very clear yet (because, as I said, I am a beta tester) and I will have lots of feedback for them once I finally figure out what I'm doing.

But I can see that this new I/O system is extremely powerful and will make people's lives a lot easier. Something else that's bogging me down in converting from MPI-IO is deciphering from the I/O subroutines just what it is that the code developers want to be output and input. An analogy I used yesterday is this: I know that they want to write a capital letter of some sort, but instead of them just saying "I want to write out the letter A," I instead have only clues about how the letter is constructed: "A diagonal line beginning from the bottom and going up and to the right; another diagonal line beginning where that one ends and going down and to the left; and a straight line left-to-right connecting the two at the midline." From that, I follow the instructions and realize that they're writing a capital A. But it is hard to decipher.

Luckily I have a friend and colleague who works in this field and is proficient in Fortran. She's also supposed to be working with me on this project, although she works on different aspects than I do. So I have talked to her and had her help me decipher what they are trying to do. In one case, she was able to crack the code and figure out what the heck was going on, and determined that they were doing the output really inefficiently, kind of like saying "create a diagonal line from the bottom left corner to the midline, then create a diagonal line from the top and center down to the right, to the midline, then create a diagonal line up and to the right from where you ended the first stroke on the midline, then create a straight line left-to-right connecting the two diagonal lines at the midline, and then create a diagonal line from the right end of the midline horizontal line down to the lower right corner." Yes, that makes a capital A, but it's a kind of inefficient way of going about it.

So anyhow, I should be ready to start compiling this new code sometime next week. I'm pretty excited about it, although I know that there will be many errors to fix. But it feels good because I know this work has the potential to really transform their science capabilities.

Friday, December 05, 2008

Scientiae Carnival Posted

For those of you who are fans of hot science, might I recommend the latest installment of the Scientiae Carnival?  Dr. Isis has carefully and lovingly included many very fascinating posts detailing the hotness of many diverse scientific areas.  Thanks, Dr. Isis, for such a great Scientiae Carnival!

Thursday, December 04, 2008

Typhoid Vinny

I love my son, truly.  He is the sweetest child ever, and he's so thoughtful, generous, and caring.  But I must admit, I could do without the generosity when it comes to sharing illness.

After you share so many glasses of water, bowls, and eating utensils; after you get touched by snotty fingers enough; and get coughed in your face enough, eventually you will succumb to the illness.  And succumb I have!

I went to bed really early on Sunday night.  But when I got up the next day, I felt really bad so I stayed home from work.  Tuesday was a little better, so I went ahead and went to work, but by the time I got home I was pretty much dead to the world and went to bed at about 8 pm.  Yesterday was a lot better, so I think I am on the home stretch in terms of getting well.

Tuesday, December 02, 2008

Inquiring Minds Need to Know: Oswald Edition

Important questions about the world of Oswald:
  • How does Oswald the Octopus survive outside of water?
  • Why does an octopus need a life preserver or flippers when going in the water?
  • What holds up Oswald's sunglasses, seeing as he has no nose or ears?
  • Is Daisy anorexic? (She's very thin, always exercising, and almost never eats -- for example, when she and Henry came over to Oswald's for hot cocoa, she had peppermint tea instead of cocoa.)
  • Is it cannibalism when Daisy drinks peppermint tea or eats sunflower seeds?
  • Also, does Daisy ever sleep? She was the only person to wake up when the town clock stopped.
  • Why does Henry the Penguin hate water?
  • What happened in Henry's life that made him develop OCD and narcissistic personality disorder?
  • Did Oswald's insurance premiums go up after he popped so much popcorn that it filled up his apartment and spilled down the steps, and put so much bubble solution in the wading pool outside that the froth expanded across the yard and into the building?
  • The bottom of Oswald's apartment window is at the same level as the top of Henry's window in the same building. Are the levels of the building staggered?
  • Did the turtle who was seen ascending the stairs from the time Oswald went to Henry's for a sleepover to the time they went to sleep, and descending the stairs in the morning, get any sleep?
  • Why does everything cost exactly one coin -- anything from a single marshmallow to a bucket of paint?
  • Where does Oswald get his money?
  • After the number of times that Madame Butterfly has lost her daughter Catrina and Oswald has rescued her, why hasn't Child Protective Services taken Catrina away?
  • And what does single mother Madame Butterfly do with Catrina when she has to work?
  • How does Johnny the Snowman not melt?
  • Is it cannibalism that Johnny operates an ice cream shop?
  • What does Oswald do to his plants to make them grow so quickly, e.g., his banana seeds that yielded a gigantic banana overnight; his tomato plants that produced ripe tomatoes in less than 12 hours?
  • He has the same talent with animals. How did he get his pet goldfish to grow from inch-size to bathtub-size in under a week?

Monday, December 01, 2008

November Experiment

As you may have observed, I posted a lot last month. I wanted to see whether I was capable of posting once a day while still conforming to my rules of computer use.

It seems like I was successful. I confess that I cheated and used the advanced post scheduling feature for at least half the posts. I don't think I will keep up this pace, but maybe I'll post a little more often than before.

Sunday, November 30, 2008

My Totally Hot Science

I don't normally talk about anyone or anything being hot, with the possible exception of the weather, but this month's Scientiae Carnival is being hosted by Dr. Isis, whose devoted worshipers all know that she, her shoes, and her science are totally hot. The topic for the carnival is what makes your science as hot as Dr. Isis' Naughty Monkey shoes.

While Dr. Isis' shoes are hot, they do not hold a candle to my science.

My science is hot because it is so all-encompassing. Applied mathematicians such as yours truly get to work with scientists and engineers studying almost anything you could imagine.

Personally, I've worked mostly with chemists and nuclear physicists, but I've been branching out into biofuel production and groundwater modeling. Do I know anything about chemistry, nuclear physics, biofuels, or groundwater? Not really! While I certainly know more about those subjects after working with these scientists than I did before, the cool thing is that I don't really need an in-depth knowledge of their science in order to make a difference in their research. All I need to do is find a way to leverage my knowledge of mathematics and computational science to help them solve their problems faster, more efficiently, or on a larger scale than ever before.

For example, in my biofuel production project, I'm helping to solve biofuel production logistics problems. The PIs of this project were worried about solving a really huge mixed-integer programming problem. As it turns out, I knew of some software that we could use on the supercomputer to solve their problem. Solving the problem at this large scale will revolutionize the biofuel supply chain modeling field -- they will be able to solve problems that they never thought they could solve, and in a reasonable amount of time, too.

That is the sort of thing that keeps me going every day. The fact that I can take something that I might consider basic knowledge, and apply it in a way that it's never been applied before, is smokin' hot.

Saturday, November 29, 2008

Store Loyalty?

I hadn't realized how much Vinny enjoyed going to the grocery store until I took him there earlier this week. "Kroger!" he exclaimed excitedly. And through the store he was practically singing, "I go Krogering!!!" I was laughing so hard that people were looking at me funny.

The next day, I was remarking to Jeff how Kroger should start a new ad campaign featuring our son. He agreed, and we were laughing about how much money we could make on this idea.

Then, Jeff asked Vinny if he wanted to go to Kroger.

"No thanks," he said. "I go Wal-Mart."

Friday, November 28, 2008

Thanksgiving Meal Assessment

Yesterday's meal had some problems. For one, my rolls turned out badly. Sometimes it seems that I heat the water/milk too much and end up killing the yeast. So I bought a candy thermometer and made sure the milk was the right temperature. In fact, it was too hot, so I let it cool down to the right temperature. Then, the dough rose, I made it into 24 rolls, and they rose again. They looked pretty good going into the oven, but when I took them out they were burned on the bottom. The temperature control on the oven is a little off, and also, my muffin tins were too close to the heating element, I suspect. Also, I should have stuck around and observed them, even though I came back in time to take them out according to the recipe.

So I made some cornbread instead, and it worked out okay, but again the oven did its best to burn it. This time I kept a closer eye on it though, and the oven did not ruin my cornbread too.

Another problem was that they so-called "fresh" turkey breast I had bought was frozen when we took it out of the fridge. It was probably at least partially the fridge's fault; things at the bottom of the fridge often freeze. In any case, we had to improvise to get the turkey to cook. I'm not sure exactly what Jeff did but it worked out and the turkey was delicious.

Vinny ate only cornbread and cranberry sauce for dinner. He loves him some cranberry sauce (but not plain cranberries!). When I was making the cranberry bread, I let him help me put the cranberries in the mixer, and he popped one in his mouth, making the funniest expression as he tasted the SOUR.

After dinner, Vinny wanted to call his grandparents, so we did. When he called Granny and Granddad, he even got to talk to Aunt Ginger! Grandma and Grandpa were at a movie when we called, but they called back later.

It was a good holiday, even if the food didn't come out quite as I had hoped.

Thursday, November 27, 2008

Happy Thanksgiving!

Hope you're all enjoying a nice day with the family. We're having a small Thanksgiving with just the three of us and our favorite Thanksgiving foods: turkey breast, rolls, cranberry sauce, corn pudding, broccoli casserole, and cranberry bread. Why make all the other stuff when you don't really like it that much anyhow?

Anyhow, gotta get to work. Those rolls don't bake themselves!

Wednesday, November 26, 2008

If I Were a Rich Woman

The meme I did the other day got me thinking about what I would do if suddenly, millions (or billions) of dollars fell in my lap.

My list of five things I would do is pretty accurate. I think I would semi-retire from my job, and take a small slice of the money to use as a pension for myself and my dependents. I would probably not give any money to friends or family, or use it to buy myself a huge mansion, or anything like that. My friends and family are all capable of taking care of themselves, although should disaster strike them, I might reconsider. I wouldn't want to buy a huge mansion because we have a hard enough time keeping our 2800 square foot house clean. I might consider buying some acreage of land, but only to create a nature preserve or something like that.

The remainder of the money I would put into safe investments such as bonds, and fund projects that I like with the interest. Things that I would be interested in funding include (but are not limited to) providing high-risk K-12 students with opportunities for learning about STEM fields (science, technology, engineering, and mathematics); building secular schools in indigent parts of the world, and funding programs that assure girls the opportunity to go to school; developing renewable energy sources; and influencing government policy to build a country that provides its citizens with the opportunity to live up to their full potential.

What would you do with millions (or billions) of dollars?

Tuesday, November 25, 2008

Conference Pictures

As promised, some pictures from the conference.


First, I walked an awful lot, especially the first few days of the conference, but I also had to construct some signs for people who didn't realize they needed a sign until the day of the conference, or a substitute sign for one that didn't come in for whatever reason. So this is a picture of me designing a sign.

I know that I made a few minor mistakes/typos (we found one case where we had an extra comma, and another case of a missing parenthesis), but let me tell you how glad I am that I did not make the following banner:
In case you're having trouble reading it, the first sentence reads
In this dual, your data is Bulletproof, lightening fast and reliable.
Ouch! That sentence alone contains at least three errors. To go all Evil Editor on them,
In this dual [what about the primal?], your data is Bulletproof [while your signs are not proofread], lightening fast [since when does any hair coloring product work quickly?!?!] and reliable [unlike the copy editor's skillz].
They took the sign down on Saturday, and replaced it with the following:
and I no longer involuntarily shuddered every time I walked under their sign.

Because we were in Austin, the conference had a music initiative. As part of the music initiative, people could sign up to sing and/or play in the music room. I was conned into playing the violin:
That is not my violin; they rented one just for me from a local music store. I hadn't prepared for this occasion so I just played stream-of-consciousness; I started with Amazing Grace (which I always play for my grandma) and went wherever the thought train took me.

Each year at this conference we have a special Thursday night event. Last year in Reno we saw the Blue Man Group; this year, we went to a ranch outside of town and experienced the three cultures of Texas (cowboy, Native American, and Mexican). The event was pretty fun except that it was too crowded and it was really cold; a lot of people were underdressed for the weather and froze their butts off. Anyhow, they had some Native American Fancy-Dancers:

and a real mariachi band!
From what I understand, what makes them a mariachi band (unlike Los Cientificos Locos) is the presence of the big guitar (guitarrón) in the center of this photo.

They were great and we stood there and listened to them for a long time. At one point they played La Bamba and it morphed into Twist and Shout. I hadn't put it together until then that those songs are basically identical, or at least follow the exact same chord progression.

Anyhow, we had a great time at the conference and are looking forward to it again next year. I'm so crazy that I agreed to sign up as signage chair for next year. I figured, I know exactly what to do now, so why not exploit that knowledge? Now I just have to recruit someone to help me.

Monday, November 24, 2008

Vinny Status

Vinny had a great time with Grandma and Grandpa while we were in Austin. Grandpa took Vinny to see his (Grandpa's) mother, who lives in Indiana, and Vinny entertained himself by pointing out all the bridges over the interstate. He also slept like a champ, crying for a maximum of 45 seconds each night before going to sleep.

So we tried just putting him in his room to sleep last night, and instead of carrying on and whacking the door, he cried for a couple of minutes before going to sleep. So maybe he's reached a new developmental level and is no longer afraid of sleeping alone. Either that, or he couldn't play Grandma and Grandpa like he could his parents, and has gotten out of the habit.

Sunday, November 23, 2008

Home Again

Just a quick note to say that we've made it back home safely. We arrived back in Kentucky last night, and then drove home this afternoon. Vinny was happy to see us but I know he had a great time with Grandma and Grandpa while we were gone. We missed him a lot but felt very confident that he was safe and having a great time.

Anyhow, it's good to be back home. I think I'll probably go to bed early tonight.

Saturday, November 22, 2008

Five Things Meme

I was tagged by ScienceWoman to do the Five Things meme.

Five Things I Was Doing Ten Years Ago:
  1. Getting adjusted to married life.
  2. Wondering whether I was smart enough to make it through graduate school.
  3. Missing Kentucky and all my friends.
  4. Trying to figure out how to afford to buy a house.
  5. Hoping my husband would land a non-temp job.
Five Things on My List to Do Today:
  1. Pack all the loot I've acquired into my suitcase.
  2. Make it to the airport in time for our flights.
  3. Beg the airline to let us be on the same flight together. (Good luck on that one.)
  4. Make my flights and hope not to miss my connection.
  5. Hug my little boy after 8 days without him!
Five Snacks I Love:
  1. Cherries
  2. Peaches
  3. Ice cream
  4. Cookies
  5. French fries
Five Things I Would Do If I Were a Millionaire:
(I'm assuming this is a multi-millionaire -- millionaire doesn't get you very far anymore!)
  1. Retire, or cut back to part-time work.
  2. Create a foundation with my money, providing myself with a small salary and investing the money safely.
  3. Use that money to fund projects I deem worthy.
  4. Spend more time with my family.
  5. Use my spare time to encourage social change.
Five Places I Have Lived:
  1. Kentucky
  2. California
  3. Kent, England
  4. Illinois
  5. Tennessee
Five Jobs I've Had:
  1. Summer Intern
  2. Volunteer
  3. Graduate Teaching Assistant
  4. Graduate Research Assistant
  5. Postdoc
Five People to Share this Meme with:
  1. Whoever wants to do it
  2. Whoever wishes I picked them
  3. Whoever has nothing better to do
  4. Whoever likes this sort of thing
  5. Whoever wants me to ruin their life

Friday, November 21, 2008

Last Day

It's hard to believe the conference is over already. We had such a good time last night at the event. I'll tell you more about the experiences we had at the conference after we get home, including a picture of the most horrible sign I have ever seen (luckily not designed by us; a very costly mistake for the company involved).

Tonight we have a farewell dinner, and then tomorrow we leave for home (well, Kentucky, on the way home).

Thursday, November 20, 2008

Signage Update and Notes for Next Year

Tuesday was the biggest volume of signs, but yesterday was competitive. Today there are a respectable number of signs, especially when you consider the event signs we have to place this afternoon. Tomorrow we have five signs for the technical program so that should be easy to do.

Next year, I am crazy and have agreed to do signs again. For that, I would like to offer the following notes to self about how things can go better next year.
  • Get the convention company to place all the sign stands ahead of time. Or, if I can't do that, get 2-3 big burly student volunteers at first convenience to place the sign stands, and another one to help me sort through the signs.
  • Develop a schedule, and post it on the wall, detailing when we have to do what. Some signs that were not part of the scheduled technical program got lost and we were scrambling to find them and place them in a timely manner.
  • Create a database from people submitting signs, that will have the above information in it.
  • Put date, time, and location on the bottom of every sign, not just technical program signs
  • Office supplies: 11x17 paper, at least 2 rolls of tape, paper cutter, scissors, pens, 8.5x11 tabletop sign easels.

Wednesday, November 19, 2008

More Conference Fun

Tuesday night was the big night for vendor parties. The vendor who provides my place of work with our supercomputers was having a big bash, so I acquired several invitations and invited three graduate school friends and a graduate school professor of mine, my conference protegée, and the fabulous ScienceGirl and her better half.

We met in the lobby of the hotel at which the party was being held, just before it began. We partook of the food and drink that our fearless vendor hosts provided, and spent a lot of time talking, even after the party was officially over. It was good to see my friends from my graduate school days, and it was wonderful to get to know ScienceGirl better.

Tuesday, November 18, 2008

More Signage, Less Walking

Last night, at the opening gala, I got carded! I wanted one of these blinking martini glasses, but in order to get one, you had to get a martini. When I went to get the martini, the bartender asked me for ID. "I am flattered!" I gushed as I pulled out my ID. He was slightly embarrassed when he read my date of birth.

By the time we got back to the hotel, my feet were just killing me. One of my colleagues had recommended soaking my feet in cold water -- as cold as I could stand it -- before going to bed. So I tried it, and it really seemed to help! This morning, my feet felt better than they'd felt yesterday morning.

I'd been worried, because today was going to be a big signage day. But luckily, we got some student volunteers who came looking for work to do, so they put out all the signs tonight instead of us (awesome!).

I spent most of the day (other than the signage part) meeting people. I had signed up to be a mentor for some of the students participating in the conference, so I met my protege, a very nice young woman majoring in mechanical engineering. I also met the ever-fabulous ScienceGirl, who is every bit as fascinating and engaging in real life as she is on the computer screen.

I also went to an interesting BoF (Birds of a Feather) session on diversity. I am always interested in making the computing community more diverse, as it gets kinda lonely sometimes when you're the (token) female. I am going to be leading a BoF on a similar topic at the Tapia conference next year, so I was excited to see the eponymous leader of this BoF.

Other than that, I haven't really participated in much of the technical program. Hopefully I will make it to a session or two tomorrow or the next day.

Monday, November 17, 2008

Update

In addition to running around putting up signs, I ran into my former boss from when I was working at the supercomputing center at my alma mater. I don't remember how long ago it was that I last saw him but it was really nice to see him again.

Now, I'm off to rest up before the Grand Opening of the showroom floor.

Sunday, November 16, 2008

Another Short Post

...but maybe not quite as short!

We arrived safely in Austin on Friday afternoon and hit the ground running. There was lots of signage prep that afternoon, and then a dinner event for the committee members that evening.

On Saturday, I walked perhaps more than I have walked all year (only a slight exaggeration), setting up easels and other sign holders, and putting out signs. Also, I sorted through a lot of the signs in our signage storage office, and tried to put them in the right order.

Today, there was more signage placement, delivery, and sorting. We have everything set for tomorrow's events, and I went ahead and checked our signs for Tuesday. We're missing a couple but otherwise it looks good. We just have to get those printed.

Did I mention that I've been walking a lot? This morning upon waking up, I felt that I was at about the same level of soreness as if I'd had a long day and was ready to go to bed. That's how sore I was. Today was less walking-intensive but still plenty tough.

Friday, November 14, 2008

From the Depths of My Mind

A sampling of the things I'm thinking about at cruising altitude:
  • Do they make any good windshield wipers that don't squeak? The wipers on our VW Beetle make the most horrendous scraping sound when the windshield is not "wet enough" for them. It's really loud and annoying. And it startles me while I'm driving.
  • How do I properly use a pointer-to-function that's actually a singleton templated class method in C++? E.g.,
template <typename T> class Singleton {
public:
Instance() {
static T& instance;
return instance;
}
private:
Singleton();
~Singleton();
Singleton(Singleton const&);
Singleton& operator=(Singleton const&);
};
// then, I have another templated class
class MyCostFn {
public:
template <typename T> Cost cost_fun(T arg1) {
// return some Cost (Cost is typedef'd unsigned long)
}
// some other irrelevant stuff
};
// Then, I have a function like this:
void blah(Cost c);
// and I want only a single instance of MyCostFn,
// which I want to use inside the function blah(...),
// so I try
blah(Singleton <MyCostFn>::Instance().cost_fun<double>);
// and the compiler can't figure out what type
// the stuff between parentheses is.
  • Where is my iPod? Oh there it is.
  • Why do colleagues A and B not get along? I get along fine with both of them, but put them in the same room and there's friction. Obviously the transitive property does not apply to friendship.
  • Don't lose your sunglasses for the third time this year. Put them in the carry-on, instead of on top of it.
  • Why would a later version of autoreconf fail to reconfigure the same package that a slightly earlier version reconfigured just fine on another (but very similar) machine? Did I incorrectly install g4/autoconf/automake on the first machine? It passed all its internal tests!
  • There was something I was going to think deeply about while on the plane. Now what was it? I knew I'd have plenty of time to think about it but I can't remember for the life of me what it was.

Thursday, November 13, 2008

Last-Minute Preparations

I think we got all the signs done.

I think I packed all the clothing I'll need.

You'll hear otherwise.

Wednesday, November 12, 2008

Happy Century, Grandma!

Today is my maternal grandmother's 100th birthday! That's right, my Grandma, whom I thought last year was not much longer for this world, has made it to 100 years.

The world was a very different place 100 years ago. I'm sure that she never expected many of the developments that have occurred over the past 100 years. If she were aware of what was going on today, I'm sure she'd be thrilled to learn that we'd elected our first African-American president. It was from her that I got much of my sense of justice.

We'll probably go see her tomorrow, and give her a picture that Vinny drew in her honor.

Anyhow, just a shout-out to my grandma, and congratulations for making it 100 years!

Tuesday, November 11, 2008

Countdown to Conference

On Thursday, we'll be taking off for Kentucky, and Jeff and I will be leaving Vinny behind with my dad and bonus mom while we're at the conference.

I am extremely grateful that my dad is willing to look after Vinny for us. I know he feels a special bond with his grandson, because he was there in the room when Vinny was born. Also, since we live so close by, he's gotten to see Vinny at least once every two months, so he's gotten the opportunity to watch him grow up. And getting to take care of him over the course of a week like this also adds to the experience.

Vinny loves his Grandma and Grandpa, and often requests to go to their house. We've been telling him for a while now that he'll get to go there soon, but I don't think he really has a concept of time.

Anyhow, I think Vinny will have as much fun as we will. Plans include taking him to see my dad's mother in Indiana for a few days. I don't know what else they plan to do, but anything with Grandpa is bound to be fun!

Monday, November 10, 2008

More Vinglish

Continuing the documentation of his ever-expanding vocabulary:
  • Buhsh teeth: brush teeth
  • Choca milk: chocolate milk (actually, ovaltine)
  • Cwanbewy: cranberry sauce (yes, he is my son!)
  • Noonels: noodles
  • Banganga: banana (he's been saying all three syllables, in his idiosyncratic way, for several months now)
  • Ike sweam: ice cream
  • Wauger: water (it's pronounced just like water, except with a "g" rather than a "t." And, we think it's so cute that now we've started calling it wauger too!)
  • Slowflake: snowflake
  • O by doodness: oh my goodness!
  • Look-a aww de lights: Look at all the lights!
  • I dwaw papew: I want to draw on paper
  • Coink: coin
  • Money: any slip of paper -- a dollar bill, a receipt, a coupon...
  • Lightning bulp: light bulb
Also, he's been singing the alphabet song for quite a while, and has almost all the letters included in his song. These days, it goes something like, "A, B, C, Deee, F, G/ H, I, Jaaay, L, M en P/ Q-wah S, T-uh V, duba-aw X and Z."

Sunday, November 09, 2008

And Now, Some Levity

My son has the most interesting sense of humor. One of his favorite things to do is to propose something ridiculous, and then say "NOOOOO!" afterwards.

Some of my favorite recent examples:
  • Eat moon? NOOOOO!
  • Eat vacuum cleaner? NOOOOO!
  • Touch star? NOOOOO!
  • Get inside washing machine? NOOOOO!
Also, whenever I emphatically tell him not to do something, I say "No, sir!" The other night, he was kicking me during a diaper change, all the while saying, "No sir! No sir!"

Saturday, November 08, 2008

In Which I Feel that I'm Vicariously Living through Junior High Yet Again

I was filled with such hope this past Tuesday evening, when Barack Obama was elected President of the United States. I kissed the wiggling boy in my arms as I felt a lump forming in my throat. My precious son will think nothing of electing a president of any race or ethnicity. Tonight, we have made this world a better place for him to inherit.

But by morning, my hope turned to despair. The same state that delivered the presidency to a man who would have been forced to take the back seat of a bus forty years ago had told its gay and lesbian citizens that their temporary welcome at the front of the equality bus was overstayed, and it was back to second-class status for them.

I wept when I saw confirmation of my worst fears: California's Proposition 8 passed. I spent my prescheduled counseling session crying and discussing the damage California's voters had done to my psyche, rather than talking about the personal issues I had hoped to work through. The sadness and depression has been lingering over my head all week long.

I have never given money to any political cause, but I gave money to the "No on 8" campaign. As my longtime readers know, two members of my first family are gay, so while this was a personal fight to me, it seemed to mean a lot more to me than that, for some reason. My goodness, I am more upset than the person nearest and dearest to me who is impacted the most by this defeat! She was taking it in stride, while I am still a mess.

After some Friday night introspection, I was able to figure out why this defeat upset me so: It's like living through Junior High School all over again! Hear me out.

Proposition 8 was a measure to decide what kind of rights a minority group of people should be allowed to have. Are their actions sufficiently acceptable to the general public? Basically, it boiled down to a popularity contest -- were gays and lesbians popular enough to be allowed to remain on equal footing with their heterosexual counterparts?

Do you see how flawed that method of decision-making is? It's reminiscent of Junior High School, in which your fate is determined by consensus of the most popular students -- they decide who gets tripped on the way to the cafeteria or who gets their face plunged into the toilet bowl; whose life is hell on earth and who can just live their lives in peace. It's juvenile and it's not in the spirit of the entitlement of all people to the rights of life, liberty, and the pursuit of happiness.

I'm sorry, but nobody's rights are up for debate. Even the most vile and bigoted people are deserving of equal protection under the law. That's the whole point of having a Bill of Rights, and of having separation of church and state -- to allow people to follow their own path even when their views or private behaviors are incredibly unpopular.

For example, I think (as do most people who would read this blog on a regular basis) that white supremacists are some of the most vile and bigoted people in the world. Should we vote on their right to vote, marry, or live their private lives in peace? Absolutely not! Their popularity (or lack thereof) should not be a consideration when it comes to how they are treated under the law.

I see that some gay rights groups have filed lawsuits against Proposition 8, arguing that by allowing Proposition 8 to stand, "you are effectively rendering equal protection a nullity if a simple majority can so easily carve an exception into it. Equal protection is supposed to prevent the targeting and subjugation of a minority group by a simple majority vote." By contributing to their legal fund, I hope to find some cathartic release, almost as if I were helping my fellow nerds fight back against the assholes who dunked their proverbial heads in the toilet. A win for equality will go a long way towards healing many emotional wounds, including those I sustained at school some two decades ago.

Friday, November 07, 2008

Keeping to Your Principles in a World that Disagrees with You

Fearless commenter Pete takes exception to my comments in the previous post that nurses or doctors should do the job they're paid to do. Quoth Pete:
If something is wrong you shouldn't do it. Being `hired' implies you agreed to perform abortion services, you are trivializing this issue....
I completely agree, Pete, that if you believe something is wrong you shouldn’t do it. However, my point is that you should know what is required of a job and either perform the job you were hired to do, or quit. A job at an abortion clinic necessarily requires participating in the abortion procedure, and if you’re opposed to the procedure, you should not get a job there in the first place. Likewise if you don’t feel able to weigh the physical and mental health of a rape victim versus the potential life that could (against her desires) form inside her, or to make snap judgments about the life of a fetus versus the life of its mother, then it sounds to me like emergency room medicine may not be for you.

Similarly, a job as a pharmacist necessarily requires dispensing medications by prescription. If you are opposed to birth control medication, the morning-after pill, or even prescription vitamins, well, that is too bad for you. You do not get to make the decisions about what medications another autonomous human being takes. Those decisions are made by that person with the help of his or her doctor, not by you.

I have no sympathy for people who do not do the job they are paid to do. Why is that? Because I, too, have faced moral dilemmas in my line of work, and have resolved them simply by not accepting any job that involves morally questionable work.

The biggest employer of computational scientists in this country is the United States Government and its contractors. Most of us perform work for the Department of Energy or Department of Defense.

I am morally opposed to war and nuclear weaponry. Remaining consistent with my morals significantly limits my career opportunities. I had the opportunity to work at an NNSA (National Nuclear Security Administration) lab. I turned it down for a lower-paying job at an Office of Science lab. I'm happy with my decision; the 50% larger paycheck I was offered could not pay for the moral contortions or soul-selling I would have had to do.

Likewise, many of my colleagues at my Office of Science lab do contract work for the Department of Defense. They are flush with funding, while my funding situation is a little more unstable. But I would not trade my moral consistency for their monetary stability. I've never been asked to work on their projects, but if I were, the answer would be an unequivocal no, even if it put me out of work. Life is too short to sell myself out like that!

I understand, however, that others have different morals than I do. I can see why people might feel that keeping an active nuclear arsenal is an effective deterrent to nuclear war, but I happen to disagree. If I felt even more strongly about it, I might find a line of work that helped to reduce the necessity for nuclear and conventional weapons (for example, something that works to solve the problems of poverty and iniquity in the world).

I spend my days making a difference by enabling scientists to perform basic science and energy research using supercomputers, and I couldn't be happier. Had I tried to fit myself into the NNSA/DoD mold, I would be a lot richer monetarily, but much poorer inside my soul. I would encourage morally conflicted medical professionals to find a different path where their morals can't be compromised.

Thursday, November 06, 2008

Sounds Like a Plan

Predictions* from Focus on the Family for an Obama administration (my editorializing in color):
  • From the end of 2009, Justices Roberts, Thomas, and Alito have been constantly outvoted 6-3 and they are essentially powerless. (Awesome!)
  • The most far-reaching transformation of American society came from the Supreme Court’s stunning affirmation, in early 2010, that homosexual marriage was a “constitutional” right that had to be respected by all 50 states because laws barring same-sex marriage violated the equal protection clause of the U.S. Constitution. (Yes, I think that is where the interpretation is going. Oh, and get over your bad selves and stop using scare quotes already!)
  • Boy Scouts: “The land of the free”? The Boy Scouts no longer exist as an organization. They chose to disband rather than be forced to obey the Supreme Court decision that they would have to hire homosexual scoutmasters and allow them to sleep in tents with young boys. (Remember, homosexual == pedophile. Oh wait, no it doesn't! Sounds fair enough to me. And they can't discriminate against atheists anymore if they're shut down.)
  • Adoption agencies: “The land of the free”? There are no more Roman Catholic or
    evangelical Protestant adoption agencies in the United States. Following earlier rulings in New York and Massachusetts, the U.S. Supreme Court in 2011 ruled that these agencies had to agree to place children with homosexual couples or lose their licenses. (Providers of public adoption services are no longer allowed to discriminate against people? Awesome!)
  • Doctors and lawyers: “The land of the free”? Physicians who refuse to provide artificial insemination for lesbian couples now face significant fines or loss of their license to
    practice medicine... (Doctors have to do the jobs they're hired to do? Outrageous!)
  • Homosexuals in the military: One change regarding the status of homosexuals did
    not wait for any Supreme Court decision. In the first week after his inauguration President Obama invited gay rights leaders from around the United States to join him at the White House as he signed an executive order directing all branches of the military to abandon their “don’t ask, don’t tell” policy... (Well, I think this is where public sentiment is going anyhow. Sounds great to me!)
  • The U. S. Court of Appeals for the Ninth Circuit heard a new challenge to the phrase “under God” in the pledge, and, as it had in 2002 in Newdow v. United States Congress, Elk Grove Unified School District, et al., it held the wording to be unconstitutional. Now the Supreme Court has upheld this decision. (Sounds awesome. There's no need for those words in the pledge, which was originally written without it.)
  • Congress lost no time in solidifying abortion rights under President Obama. In fact, Obama had promised, “The first thing I’ll do as President is sign the Freedom of Choice Act” ... (Awesome! Finally, a president who thinks that I know better than anyone else does when it comes to the contents of my uterus!)
  • Nurses and abortions: “The land of the free”? Nurses are no longer free to refuse to
    participate in abortions for reasons of conscience. (Forcing nurses to do the job they're hired to do? Awesome!)
  • Terrorist attacks: “The home of the brave”? President Obama directed U.S. intelligence services to cease all wiretapping of alleged terrorist phone calls unless they first obtained a specific court warrant for each case. Terrorists captured overseas, instead of being tried in military tribunals, are now given full trials in the U.S. court system... (Oh no! Treating terrorists like they're actual human beings? Godless forbid!)
  • The new Congress under President Obama passed a nationalized “single provider” health care system, in which the U.S. government is now the provider of all health care in the United States, following the pattern of nationalized medicine the United Kingdom and Canada. The great benefit is that medical care is now free for everyone -- if you can get it. [Some blathering about ridiculously long waiting lists...] (Sounds about like things are now, except that instead of waiting lists, we have price lists. Instead of out-of-control wait times, we have out-of-control prices that are unaffordable for most people with serious diseases. Either way, people who need medical help can't get it. But I doubt that this would happen should we have national medical care; it doesn't work that way in Canada despite what these people would have you believe.)
I expect President Obama to get right on it. Sounds like a plan to me!

* Except that they're not actually predictions, because, like, predicting stuff is witchcraft and shit. Except, yeah, they are, by any normal definition of prediction, predictions.

Wednesday, November 05, 2008

Coming Attractions

This is the month of the big conference for which a colleague and I are in charge of placing thousands of signs. I have traveled four times this year to the conference planning meetings, and gotten well acquainted with the Austin (Texas) Convention Center. It's a big place, so we're going to be doing a lot of walking in order to place all these signs.

This conference is the biggest conference in the high-performance computing field, with nearly 10,000 attendees. I think we have almost everything done. There are just a few signs we have to finish up. We've also ordered twenty blank signs, for things we might have missed.

I've managed to convince my better half to come along too, and help us place the signs. He (foolishly?) agreed to help. We're leaving Vinny with my dad again, this time for ten days. The conference is the week before the week of (American) Thanksgiving. We're leaving for Austin on the Friday before the conference, and coming back the Saturday after it's over. Luckily, we're flying in and out of Lexington, so that will make things easier for my dad in terms of dropping us off and picking us up. Unluckily, I had to make Jeff's flight arrangements separately from my own (which were made by my workplace), and by the time I went to do his, my return flight was sold out, so he's taking a different flight back to Lexington than I am. The good news for him is that he leaves an hour later than I do and gets in an hour earlier. The bad news is that we're not together.

In preparation for the walking we're going to do at the conference, Jeff and I purchased some (expensive) walking shoes this past weekend. We went to the New Balance store and were fitted for some shoes. Jeff declared that his shoes were heavenly, like walking on air. Mine are comfortable, but not quite that nice.

I think we should have a lot of fun. I may get the opportunity to meet up with a fellow blogger, and if I do and assuming it's okay with this person, I'll let you know all about it. But even if I don't get to do the meet-up, there are so many things to do and people to see that I know we won't be bored!

Tuesday, November 04, 2008

Have You Voted Yet?

Hello, my dearest American friends. If you have not yet voted today, please do. Yes, even if your vote and mine would cancel each other out. Especially if you want to cancel my vote out, because by the time this posts I will have already voted, so there!

Seriously, it's an extremely historic occasion, and I am proud to say that I voted on the day that we will probably elect the first non-white president in the history of the United States, even though I live in a state that is going to go the other way, no doubt about it.

Anyhow, go out and vote. Exercise your rights. And make sure to double- and triple-check your vote before you turn it in.

Monday, November 03, 2008

Six Pseudorandom Facts about Me

I was tagged by Acmegirl to do this meme, so here goes. I hate tagging other people, though, so if you want to be tagged, consider yourself tagged; otherwise, don't worry about it.

The rules:
  1. Link to the person who tagged you.

  2. Post the rules on your blog.

  3. Write six random things about yourself.

  4. Tag six people at the end of your post and link to them.

  5. Let each person know they’ve been tagged and leave a comment on their blog.

  6. Let the tagger know when your entry is up.
Okay so here goes.
  1. I am very allergic to (dog and cat) fleas. This is an important reason why we have no pets. The misery I experience when a flea bites me is really too much to bear. I first discovered my flea allergy when I was home the summer after my first year of college. I developed all these bright red welts with watery heads on them that itched beyond belief. My mom took me to the doctor, who immediately ruled out flea bites, since we had no pets. He then thought I must have some sort of micro parasite, and the only way to kill it was to cover my entire body (skin, scalp, soles of my feet, you name it!) with some kind of really stinky cream, and leave it on overnight. I did that, the itchy welts didn't go away -- in fact, I kept getting more and more! -- and boy was I annoyed. Then, a cousin who grew up on a farm with pets came for a visit, and she immediately found and captured a flea. My mom took it to the extension entomologist, who identified it as a dog-and-cat flea. We had the house flea-bombed while we were gone, and the problem was solved. To this day, my bout with the fleas adds an extra layer of discomfort to my interactions with other people's pets. The last thing I need in life is another round of flea bites.
  2. Every weekday morning, I eat yogurt with cereal on it and drink a tall glass of water. I liked the Dannon Lite-n-Fit kind, until they recently changed the recipe and I don't like their "improvements." Luckily my local grocery chain has a good store-brand-equivalent, and I eat that. I used to have a sprinkling of Rice Krispies (or their store-brand-equivalent) on my yogurt, but lately I have been enjoying Uncle Sam cereal on my yogurt. Uncle Sam is pretty vile stuff if you just eat it plain, but the sweetness of the yogurt counteracts its natural flavor. And Uncle Sam stays very crunchy through the course of breakfast, something that was an issue with Rice Krispies.
  3. When I was a kid and we would travel, we would eat fruit-flavored yogurt with sweet cereal (such as Alpha Bits) for breakfast just about every time we spent the night in a hotel. There weren't so many hotels that offered you a "complimentary" breakfast like there are nowadays. So we would have these yogurt cups and a box of cereal handy. My weekday breakfast is much lower in calories than those breakfasts of my childhood, but it does still evoke those memories.
  4. On those trips when I was a kid, I visited all the states in the continental United States, and a few Canadian provinces. Our summer vacations (not the whole time we were out of school; I mean the time we traveled in the summer) usually involved traveling to wherever my dad had a conference, and back. We had a big tan van and my parents drove that thing across the country I don't know how many times. Some of my favorite places we went were the Canadian Maritime provinces (okay, that may have actually been the Summer of the Fleas -- not exactly when I was a kid), the Southwestern U.S., and the Pacific Northwest.
  5. I do not have a diamond engagement ring. My engagement ring is a gold band that's a replica of a medieval French ring. On it, it says "Vous et nul autre" (You and none other). Then, I have a similarly wide gold wedding band, that is beveled but otherwise plain. The wedding bands were $60-70 each at Service Merchandise, a store that no longer exists, but was known at the time for its low jewelry prices. The lack-of-diamond was at my request, because first, I like the flat profile of my rings, making it much harder for me to snag my clothes, panty hose, or whatever; second, diamonds are overrated; and most importantly, with all the cruelty associated with the diamond industry, I could not with good conscience indulge in one.
  6. I am an avid proponent of the hyphen in writing. Not just because I have a hyphenated name -- it's because the hyphen is a very useful tool for communication. It can help clarify what word is modifying what. Take, for example, Bach's work "The Well-Tempered Clavier." The hyphen tells you that "well" modifies "tempered," not "clavier." When you say it, your vocal inflection and your pauses between the words is what gives you this clue, but in the written word, we rely instead upon the hyphen. So, if you were saying one of the terms I run into all the time, "high-performance computing," you would say "high performance (brief pause) computing." My colleagues joke with me that thanks to my dogmatism, their hyphen usage has increased by 2000%.

Sunday, November 02, 2008

The Junior Park Ranger

During our trip to the Grand Canyon last month, we were missing our favorite little boy a lot. So when Jeff saw a cute little park ranger costume at the shop in Grand Canyon Village, well... he bought it for Vinny.

Luckily, Vinny's really too young to understand what's going on, so we could get away with picking his costume for him (this is probably the last year for that). So Daddy dressed him up as the cutest little park ranger out there, and took this outstanding picture of our junior park ranger examining his sunglasses:


(Shouldn't that just win the cutest costume for two and under award?)

I think he's just as cute as his first and second Halloweens, but maybe I'm just biased. But no picture is as outstanding as this one of our cute little devil from last year:

(Clearly, this is a contestant for best picture ever.)

Before we took him trick-or-treating, I explained the rules. "We ring the doorbell, say 'trick or treat,' and then we get a piece of candy and put it in the bag." He really didn't understand what I was talking about, and at the first house, refused a piece of candy but wanted to go inside the house. Eventually he started to understand not only that people were offering him something, but that that something was CANDY, and then had I left him to his own devices, he would have taken everything from the bowl. He still didn't catch on that we were supposed to just stand at the door and not go in, though. He managed to give me the slip and go into several houses before I realized what was going on. A lot of people thought he was dressed as an explorer and just commented that he was acting in character.

Anyhow, it was the most engaged that he's ever been with Halloween. The first year, he mostly slept through the trick-or-treating. The second year, he wasn't walking yet so it was kind of a hassle to get him in and out of his wagon and carry him to people's doors. This year he's walking on his own and he really enjoyed seeing the people and walking into their houses (much to my embarrassment).

This post encouraged to be posted in a timely manner by the Parentbloggers Halloween costume contest, in which you can win a gift certificate for blurb -- where you can create a coffee table book custom-designed by you!

Saturday, November 01, 2008

Caught in a Loop

Here's a clear explanation of the ridiculous loop that people with chronic illnesses can get caught in under our current healthcare situation.

Basically, if you're so ill that you can't make enough money to support yourself, then you become eligible for disability payments from Social Security, and Medicare (eventually) and finally get the care you need. Then, you get well enough (thanks to the expensive care and medication paid for by Medicare) to support yourself, at which time you become ineligible for Medicare. But your job doesn't provide health insurance benefits that will give you the care you need, and you can't afford to pay out-of-pocket, so you get ill again, go on social security and Medicare, and then once again become eligible to receive the treatments you need...

Anyone who wants to reduce the number of people on Social Security disability would do well to support a single-payer health care system. In that way, people would get the treatments they needed from the beginning, and those whose chronic conditions are treatable would never need to rely on disability payments.