Life Stories: November 2003 Archives

Here's another story from the groundbreaking ceremony for the LAAFB.

The mayor of Hawthone (the city where I live) was one of the speakers, and one of the major players in getting the land-swap to happen. He put a lot of work into it, and should get a lot of the credit for the revolutionary deal.

During his speech he went on for a while about how difficult some of the meetings were between the officials at various levels of government, and then he made a joke: "I think we should all get medals of valor and purple hearts for sticking with it, even when times were tough." Now, this seemed particularly inappropriate to me considering we were at the Air Force Base and half the people in the audience were service members. There were probably people there who had earned those medals through great sacrifice, and if I had been one I might have gotten up and walked out.

James 1:17-18

Every good and perfect gift is from above, coming down from the Father of the heavenly lights, who does not change like shifting shadows. He chose to give us birth through the word of truth, that we might be a kind of firstfruits of all he created.

Heavenly Father,

Thank you for such a warm and beautiful day. It's been a long year, but we're almost to the end of it and you've shown yourself faithful every step of the way, in every detail of my life.

Thank you for my family, and that my brother can be home with us over Thanksgiving. Please take care of my dad and step-mom who are up in Reno now, and thanks for letting them buy a house and find a place they really like. Thanks for my mom and step-dad here in Los Angeles, all my brothers, even though they're frustrating sometimes. Thank you for our health and happiness, and all the good circumstances you've blessed my family with. Please comfort my grandmother in this holiday times for the first year she's facing them without my grandfather. Work in the lives of my family to bring them to a saving knowledge of your son.

Thank you for my job and my ability to go to school, help me to work hard and honestly in everything I do, and to make the most of every opportunity you give me. Thank you for all the success you've given me, none of which would have been possible if I was working under my own power. Thank you for giving me tenacity and determination, and a modicum of wisdom. Help me to be wise and generous, caring, compassionate, gentle, kind, and humble in spirit. I have nothing to boast about, because every good thing I have is a gift from you. Use it all to glorify yourself.

Thank you for my amazing church family, who have always been there for me even when my real family hasn't. Thank you for my friends, my small group, my pastor, and all the people I serve with. There's nothing more enjoyable than serving you with people I love, and it's a great blessing to be a member of Venice Baptist Church. Give our leadership wisdom and humility, and keep us from making any decisions or pursuing any course of action other than according to your will. Thank you for all the wonderful kids and college students I get to work with. Thank you for all the wise advisors you've given me to keep me on the right path. Help our church to be a blessing to our community, to those in every kind of need, spiritual and material. Show your love for the world through us.

Thank you for my country, and all the tremendous blessings that come from being an American. Thank you for all the people who make the country possible, from the soldiers to the politicians, all working as ministers of your common grace to the world. Thank you for our President Bush, all our Senators and Representatives, the Governor and Legislature of California, the Mayor and Councilmen of Hawthorne, and everyone who labors to make the country run smoothly. Give them all wisdom and self-control, show yourself to them and make your will clear; give them to courage to do what's right. Protect our soldiers all over the world, and give them peace of mind and comfort even when they're in danger. Comfort their families as well, and give them courage. Use all these people to preserve the peace, and restore it, and to punish evildoers and protect the weak and the innocent.

Lord, I know that my innermost desires are evil and destructive, thank you for lifting me out of the pit of my own sin and depravity. Thank you for sending your son Jesus Christ to live and die as a sacrifice, to pay the penalty for my sins. Thank you for reconciling this sinner to you, for adopting me and making me your son. Thank you for loving me even when I hated you, and for calling me to be your own. Thank you for your Holy Spirit who lives within me and seals me, who sanctifies me and empowers me to do your will. Thank you for your word the Bible that teaches me, guides me, and corrects me. Thank you for the glorious hope you've given me that surpasses all earthly troubles, the knowledge and security that even when this world passes away, your love for me will never pass away. Thank you that nothing I do can ever make you love me less, and thank you that I don't have to work to earn your love, and that nothing I do can make you love me more. Give me the strength and humility to serve you all my days. Forgive my rebellion, my pride, my impatience and selfishness. Give me the power to overcome my base desires and to be an example of Christ's love to the world. Protect me and preserve me, use me however you will but never leave me. I am yours, bought with a price and redeemed from slavery to eternal freedom; no words of thanks will ever be enough to profess my love for you.

Psalm 30

1 I will exalt you, O LORD ,
for you lifted me out of the depths
and did not let my enemies gloat over me.
2 O LORD my God, I called to you for help
and you healed me.
3 O LORD , you brought me up from the grave;
you spared me from going down into the pit.

4 Sing to the LORD , you saints of his;
praise his holy name.
5 For his anger lasts only a moment,
but his favor lasts a lifetime;
weeping may remain for a night,
but rejoicing comes in the morning.

6 When I felt secure, I said,
"I will never be shaken."
7 O LORD , when you favored me,
you made my mountain stand firm;
but when you hid your face,
I was dismayed.

8 To you, O LORD , I called;
to the Lord I cried for mercy:
9 "What gain is there in my destruction,
in my going down into the pit?
Will the dust praise you?
Will it proclaim your faithfulness?
10 Hear, O LORD , and be merciful to me;
O LORD , be my help."

11 You turned my wailing into dancing;
you removed my sackcloth and clothed me with joy,
12 that my heart may sing to you and not be silent.
O LORD my God, I will give you thanks forever.

I went to the groundbreaking ceremony for the new Los Angeles Air Force Base this morning, and it was a pretty exciting event. There was a ton of free food... oh yeah, and the actual groundbreaking and such. Unfortunately I wasn't able to take any pictures with my digital camera, but I'll write down my impressions anyway.

First off, let me tell you all the important people I met: Congresswomen Maxine Waters and Jane Harmond; Mayor Guidi of Hawthorne (who I already knew); Lt. General Brian Arnold, the base commander; Bill Ballhaus, formerly president of Boeing Satellite Systems and now president of The Aerospace Corporation, the company that manages many of the government aerospace projects in the region; Nelson Gibbs, Assistant Secretary of the Air Force for Installations, Environment and Logistics; plus assorted pastries and sandwiches. I was hoping our new governor might be in attendance -- since keeping the Air Force Base lines up with his goal of keeping jobs in California -- but I guess he was busy.

The LAAFB was first constructed some 50 years ago, and without the major renovation that began today it was pretty likely that the base would have been condemned and moved to Arizona or New Mexico in the next round of closures, starting in 2005. Knowing that, the cities of El Segundo (where the base is actually located) and Hawthorne (the adjacent city, where I live) developed a revolutionary land-swap deal to help pay for the construction of new base facilities.

The land-swap worked like this: the Air Force sold a portion of its land (which was located in El Segundo) to developers; El Segundo ceded the land to the city of Hawthorne in exchange for property taxes for 30 years; the Air Force will now use the money it raised to build new facilities on an adjacent piece of Air Force property that is currently sparsely developed. Los Angeles city and county are also kicking in some minor money. In the end, a lot of gimmicks and magic tricks finalized a convoluted deal that basically lets the Air Force sell some land to pay for the renovation itself.

Why is it important to keep LAAFB? Mainly because of the Space and Missile Systems Center that's responsible for all the cool missile and satellite technologies that are crucial for maintaining America's military superiority. The AFB can't do it alone, and works very closely with civilian contractors in the Los Angeles region like Boeing, Northrop Grumman, Lockheed, Raytheon, and many others. If the SAMS Center moved, it would lose close contact with these corporations, and it's unlikely that the corporations (mainly their employees) would be eager to relocate east.

More selfishly, I'm glad the project is proceeding because I don't want to move anywhere, and I like my job. Moreover, it would be bad for the city and community if the thousands of high-paying jobs the AFB supplies were eliminated (or moved). That said, I've never seen my Democrat representatives stronger on national defense than when they're working to protect a base located in their districts. Everyone loves national defense when it pumps billions of dollars a year into the pockets of people who can vote for you. This isn't necessarily a great effect, and I'm sure it leads to inefficiencies, but on the whole the military is one spending program I heartily approve of, and if its spending power can buy votes which in turn work to keep it strong, so be it.

It's been a very busy 24 hours. Yesterday at around this time I left work early to go home and prepare an early Thanksgiving feast for some friends. We did it pot-luck style and everyone brought something great -- so it's not like I did all the work -- but I did reconfigure my living room into a large dining area and then prepare 7 pounds of mashed potatoes. Peeling potatoes isn't fun, but eating potatoes sure is. Plus lots of turkey, way too many pies, too few rolls, and all the other stuff you'd expect. A good time was had by all.

This morning: up bright and early and off to the DMV. I'd moved since I got my license (7 years ago), and the renewal notice had been lost in the mail (surprise!). Since it expires on my birthday (December 7th!) I figured I should get that taken care of. Fortune conpired in my favor, and I had another errand to run at the DMV as well. I arrived at 9am, waited 2.5 hours, required less than 5 minutes of assistance, and then left... late for work. They need a triage desk that seperates people by how long they're going to take to help.

I've got a stack of anomalous bills that I've been putting off dealing with, so I brought those along to do over lunch. Mysteriously, several companies decided to cash my checks without then crediting my accounts; there's a good business model for you. Naturally, none of the customer service people / blood-sucking vampires know anything about such strange occurrences. They'll be happy to do something, however, if I can kindly have my bank fill out a bunch of forms and fax them back and forth for a while. Yeah, right, I'm sure the people at the bank don't have anything else to do than deal with my creditors.

Oh yeah, and my car is almost out of gas. But! One thing it's not out of is tangy orange-pineapple slurpee, because spilled a giant one on the floor.

In the spirit of the season, How Not to Eat Lunch:

1. Drive across town to different building to do work, but then be told that you're too early.
2. Go to El Pollo Loco; order something on the giant menu, but then try to explain exactly what that item is to the guy at the register. Hint: it's got chicken in it, and tortillas.
3. Get salsa, for some reason. This is critical.
4. Spill salsa in car, because the little plastic tubs are not salsa-tight.
5. Drive to work, carry dripping lunch to building.
6. Remember that you left your badge in the car.
7. Return to car, get badge, return to building.
8. Start eating lunch.
9. Spill salsa everywhere, particularly on every piece of clothing you're wearing, including at least one sock.
10. Go to afternoon meetings, act like nothing happened.


I'm dreaming...

Click me.

I had been struggling for a few weeks with some strange behavior I was getting from my dissertation project. I developed my software using the GPL'd Quake 2 engine, and I was surprised when it started crashing unexpectedly and displaying all sorts of weird artifacts. John Carmack and his cohorts are great programmers, and I knew there weren't bugs like this in the commercial game... but I also knew that I hadn't touched any of the code that was throwing me memory violations.

So I spent a few weeks debugging, and didn't get anywhere. I excised the entire collision system and reduced the frequency of fatal errors, but the system still wasn't stable enough to run for more than a few hours. Plus, I really want to use the collision system.

Most of my changes were to the standard data structures, particularly edict_s (which I use to represent my animats -- my artificial creatures). I added a three-dimensional array to keep track of each animat's world knowledge -- one dimension holds the "layers" of knowledge (like food locations, enemy locations, unexplored territory, &c.), and the other two dimensions represent the XY coordinate plane of the world. The world is a square 2048 units per side, and I didn't want the arrays to be that large, so I collapsed the XY plane into a 32x32 grid of "sectors", with each sector being 64x64 units in size; my knowledge array could then have 32x32 entries per layer (0 - 31 in each dimension), rather than 2048x2048.

Because of this granulation, however, I needed a routine to translate an animat's real coordinates into its sector coordinates, so I wrote the following:
#define GRIDX(x) ((int)x->s.origin[0]/C_GRIDSIZE)

#define GRIDY(x) ((int)x->s.origin[1]/C_GRIDSIZE)

Those macros take the X or Y coordinate of animat x and then divide it by C_GRIDSIZE, which is 64. No problem! Except... near the edges of the map it's possible for an animat to nudge itself slightly past 0 or 2047! The knowledge array in the animat structure only goes from 0 to 31, but occasionally these macros would return -1 or 32, or even worse! When I would then try to write to the array, I wasn't writing into the knowledge map at all, I wrote to other locations in the animat structure!

Sorry for all the exclamation points, but it's no wonder I was seeing strange behavior. I just changed the macros as such:
#define MIN(a, b) (a<b?a:b)

#define MAX(a, b) (a>b?a:b)

#define GRIDX(x) MIN(MAX(((int)x->s.origin[0]/C_GRIDSIZE),0),C_XMAX-1)

#define GRIDY(x) MIN(MAX(((int)x->s.origin[1]/C_GRIDSIZE),0),C_YMAX-1)

Everything seems to be quite stable now, and I'm going to leave it running overnight just to be sure. The lesson is: always bounds-check your arrays!

About this Archive

This page is a archive of entries in the Life Stories category from November 2003.

Life Stories: October 2003 is the previous archive.

Life Stories: December 2003 is the next archive.

Find recent content on the main index or look in the archives to find all content.

Supporters

Email blogmasterofnoneATgmailDOTcom for text link and key word rates.

Life Stories: November 2003: Monthly Archives

Site Info

Support