My greyhound can run faster than your honor student.

Monday, February 28, 2005

I really like the new nickel.

Saturday, February 26, 2005

I bought a pound of the house blend, Wild Ass, at what I think is my new favorite coffee house. Stupid name for a coffee house, Java Juice, but they roast the coffee right there in the seating section. We will probably go back tomorrow and I will try to get some pics of the place and their roaster. We are heading into the City now for game night at a friend that lives in a highrise. 46th floor I think. Cranium, Outburst, Trivial Pusuit. Stuff like that.
I think I am going to make myself an iced espresso to take with before we leave.

-Brad out.

Friday, February 25, 2005

I've lost 10 pounds this month eating mostly nuts, seeds, Trader Joe's soy powder, soy burgers, soy hot dogs, eggs, cheese, guacamole with low carb tortilla chips, and Lean Cuisine / Weight Watcher type frozen meals for lunches.

I am modeling my intake somewhat on the Atkins and South Beach diets, but not going crazy on the saturated fats. Eggs once a week. Just a little bit of cheese at a time.

My intention is to make this a permanent change in my eating habits, not just a sprint to drop 20 pounds and then start eating Ho Ho's, ice cream, and crap until the 20 pounds goes back on. That is not a healthy cycle to fall into.

The soy protein powder is especially important to me. In the morning I am not usually hungry (I think because of the glycogen that is released from the liver into the blood while you sleep.) A lot of times I would therefore just run out of the house without breakfast. After an hour or so at work the glycogen gets burned up and I am starving. This leads to eating things I shouldn't. Donuts in the break room. Chocolates that they keep in the Impact Fee department. Stuff like that.

For the past month I force myself in the morning to mix three scoops of protein powder with 16 ounces of water and six packs of Equal sweetener in the blender. I knock that back and I don't even think about food until between 11:00 am and 11:30 am. Then I will have a couple handfuls of low salt almonds from Trader Joes and a glass of water. That holds me until about 1:00 pm when I stick a frozen meal in the microwave. Around 3:00 pm I start getting a little hungry again and I will have another couple handfuls of almonds. That has been my habit for the last month, and it is pretty easy to stick to.

On the weekends we have made a meal on a batch of guacamole, low carb tortilla chips, and some shredded cheese to make a few nachos out of under the broiler. That is satisfying and feels indulgent, but is very healthy. It feels like party food when we watch movies. (Avocados are one of the best foods you can put in your body. The oils they contain lower your cholesterol, lower your blood pressure, fight certain kinds of cancer, especially colon cancer, and help your skin. They also have more potassium than bananas and have a ton of fiber. Don't feel bad about the calories if they are displacing other unhealthy fats and calories from your diet.)

It is a danger time if I come home from work in the evening and I am starving. That is when I am most likely to go on a rampage through the fridge. On those days I force myself to make up another 16 ounce protein shake and wait a few minutes until that settles in. Then I am better able to make healthy food choices rather than eating things I will regret.

Thursday, February 24, 2005

Because Sheri is too modest, I am posting the e-mail that her boss sent her regarding the results of the week she worked from home on a big ugly project:

I wanted to forward this to you so you can see what an outstanding job you did with the ### report. We went from over 7,000 vulnerabilities to just over 1,000 as a result of your work. That is what one would call great work! I think the scan should continue to decrease in number, but if you could work on these vulnerabilities over the next week, I'd appreciate it. We look the best of all cities at this time by far, thanks to your efforts.
I wrote this Visual Basic code from scratch yesterday. It works pretty well. It is for my NPDES project. All of the storm water structures in the county that fall within the Chicago MSA area will be surveyed with GPS.

When each point is collected, the field person will also enter into the GPS unit:
- each pipe that enters that structure
- how many inches in diameter each pipe is
- which compass direction each pipe is heading

As the data comes back into the office I need to connect the structures to represent the pipes. This code will put the pipe measurements around the point on the screen in the approximate compass heading. It will look something like this:

48 - -
- · -
- - 48

In this example there is a 48" pipe coming into the structure on the NW side and the SE side. The dot in the middle represents the GPS location of the surveyed feature.This visual representation will make it easier for me to validate the accuracy of the data.

The end result of all this will be a network showing how the stormwater is drained out of the county. It is an EPA requirment. In case of a chemical accident they will use this information to see which areas downstream are at risk, and as a diagnostic tool to find out the source of the spill.

Here is the code:

option explicit

Function FindLabel ([Pipe1Size], [Pipe1Dir], [Pipe2Size], [Pipe2Dir], _
[Pipe3Size], [Pipe3Dir], [Pipe4Size], [Pipe4Dir], [Pipe5Size], [Pipe5Dir],_
[Pipe6Size], [Pipe6Dir], [Pipe7Size], [Pipe7Dir], [Pipe8Size], [Pipe8Dir])

dim N, NE, E, SE, S, SW, W, NW, PipeDir, PipeSize
N = "-"
NE = "-"
E = "-"
SE = "-"
S = "-"
SW = "-"
W = "-"
NW = "-"

PipeDir = [Pipe1Dir]
PipeSize = [Pipe1Size]
if PipeDir >23 and PipeDir <= 68 then
NE = AssignValue(PipeSize, NE)
elseif PipeDir >68 and PipeDir <= 113 then
E = AssignValue(PipeSize, E)
elseif PipeDir >113 and PipeDir <= 158 then
SE = AssignValue(PipeSize, SE)
elseif PipeDir >158 and PipeDir <= 203 then
S = AssignValue(PipeSize, S)
elseif PipeDir >203 and PipeDir <= 248 then
SW = AssignValue(PipeSize, SW)
elseif PipeDir >248 and PipeDir <= 293 then
W = AssignValue(PipeSize, W)
elseif PipeDir >293 and PipeDir <= 338 then
NW = AssignValue(PipeSize, NW)
elseif PipeDir >338 and PipeDir <= 360 or PipeDir >= 0 and PipeDir <= 23 then
N = AssignValue(PipeSize, N)
end if

PipeDir = [Pipe2Dir]
PipeSize = [Pipe2Size]
if PipeDir >23 and PipeDir <= 68 then
NE = AssignValue(PipeSize, NE)
elseif PipeDir >68 and PipeDir <= 113 then
E = AssignValue(PipeSize, E)
elseif PipeDir >113 and PipeDir <= 158 then
SE = AssignValue(PipeSize, SE)
elseif PipeDir >158 and PipeDir <= 203 then
S = AssignValue(PipeSize, S)
elseif PipeDir >203 and PipeDir <= 248 then
SW = AssignValue(PipeSize, SW)
elseif PipeDir >248 and PipeDir <= 293 then
W = AssignValue(PipeSize, W)
elseif PipeDir >293 and PipeDir <= 338 then
NW = AssignValue(PipeSize, NW)
elseif PipeDir >338 and PipeDir <= 360 or PipeDir >= 0 and PipeDir <= 23 then
N = AssignValue(PipeSize, N)
end if

PipeDir = [Pipe3Dir]
PipeSize = [Pipe3Size]
if PipeDir >23 and PipeDir <= 68 then
NE = AssignValue(PipeSize, NE)
elseif PipeDir >68 and PipeDir <= 113 then
E = AssignValue(PipeSize, E)
elseif PipeDir >113 and PipeDir <= 158 then
SE = AssignValue(PipeSize, SE)
elseif PipeDir >158 and PipeDir <= 203 then
S = AssignValue(PipeSize, S)
elseif PipeDir >203 and PipeDir <= 248 then
SW = AssignValue(PipeSize, SW)
elseif PipeDir >248 and PipeDir <= 293 then
W = AssignValue(PipeSize, W)
elseif PipeDir >293 and PipeDir <= 338 then
NW = AssignValue(PipeSize, NW)
elseif PipeDir >338 and PipeDir <= 360 or PipeDir >= 0 and PipeDir <= 23 then
N = AssignValue(PipeSize, N)
end if

PipeDir = [Pipe4Dir]
PipeSize = [Pipe4Size]
if PipeDir >23 and PipeDir <= 68 then
NE = AssignValue(PipeSize, NE)
elseif PipeDir >68 and PipeDir <= 113 then
E = AssignValue(PipeSize, E)
elseif PipeDir >113 and PipeDir <= 158 then
SE = AssignValue(PipeSize, SE)
elseif PipeDir >158 and PipeDir <= 203 then
S = AssignValue(PipeSize, S)
elseif PipeDir >203 and PipeDir <= 248 then
SW = AssignValue(PipeSize, SW)
elseif PipeDir >248 and PipeDir <= 293 then
W = AssignValue(PipeSize, W)
elseif PipeDir >293 and PipeDir <= 338 then
NW = AssignValue(PipeSize, NW)
elseif PipeDir >338 and PipeDir <= 360 or PipeDir >= 0 and PipeDir <= 23 then
N = AssignValue(PipeSize, N)
end if

PipeDir = [Pipe5Dir]
PipeSize = [Pipe5Size]
if PipeDir >23 and PipeDir <= 68 then
NE = AssignValue(PipeSize, NE)
elseif PipeDir >68 and PipeDir <= 113 then
E = AssignValue(PipeSize, E)
elseif PipeDir >113 and PipeDir <= 158 then
SE = AssignValue(PipeSize, SE)
elseif PipeDir >158 and PipeDir <= 203 then
S = AssignValue(PipeSize, S)
elseif PipeDir >203 and PipeDir <= 248 then
SW = AssignValue(PipeSize, SW)
elseif PipeDir >248 and PipeDir <= 293 then
W = AssignValue(PipeSize, W)
elseif PipeDir >293 and PipeDir <= 338 then
NW = AssignValue(PipeSize, NW)
elseif PipeDir >338 and PipeDir <= 360 or PipeDir >= 0 and PipeDir <= 23 then
N = AssignValue(PipeSize, N)
end if

PipeDir = [Pipe6Dir]
PipeSize = [Pipe6Size]
if PipeDir >23 and PipeDir <= 68 then
NE = AssignValue(PipeSize, NE)
elseif PipeDir >68 and PipeDir <= 113 then
E = AssignValue(PipeSize, E)
elseif PipeDir >113 and PipeDir <= 158 then
SE = AssignValue(PipeSize, SE)
elseif PipeDir >158 and PipeDir <= 203 then
S = AssignValue(PipeSize, S)
elseif PipeDir >203 and PipeDir <= 248 then
SW = AssignValue(PipeSize, SW)
elseif PipeDir >248 and PipeDir <= 293 then
W = AssignValue(PipeSize, W)
elseif PipeDir >293 and PipeDir <= 338 then
NW = AssignValue(PipeSize, NW)
elseif PipeDir >338 and PipeDir <= 360 or PipeDir >= 0 and PipeDir <= 23 then
N = AssignValue(PipeSize, N)
end if

PipeDir = [Pipe7Dir]
PipeSize = [Pipe7Size]
if PipeDir >23 and PipeDir <= 68 then
NE = AssignValue(PipeSize, NE)
elseif PipeDir >68 and PipeDir <= 113 then
E = AssignValue(PipeSize, E)
elseif PipeDir >113 and PipeDir <= 158 then
SE = AssignValue(PipeSize, SE)
elseif PipeDir >158 and PipeDir <= 203 then
S = AssignValue(PipeSize, S)
elseif PipeDir >203 and PipeDir <= 248 then
SW = AssignValue(PipeSize, SW)
elseif PipeDir >248 and PipeDir <= 293 then
W = AssignValue(PipeSize, W)
elseif PipeDir >293 and PipeDir <= 338 then
NW = AssignValue(PipeSize, NW)
elseif PipeDir >338 and PipeDir <= 360 or PipeDir >= 0 and PipeDir <= 23 then
N = AssignValue(PipeSize, N)
end if

PipeDir = [Pipe8Dir]
PipeSize = [Pipe8Size]
if PipeDir >23 and PipeDir <= 68 then
NE = AssignValue(PipeSize, NE)
elseif PipeDir >68 and PipeDir <= 113 then
E = AssignValue(PipeSize, E)
elseif PipeDir >113 and PipeDir <= 158 then
SE = AssignValue(PipeSize, SE)
elseif PipeDir >158 and PipeDir <= 203 then
S = AssignValue(PipeSize, S)
elseif PipeDir >203 and PipeDir <= 248 then
SW = AssignValue(PipeSize, SW)
elseif PipeDir >248 and PipeDir <= 293 then
W = AssignValue(PipeSize, W)
elseif PipeDir >293 and PipeDir <= 338 then
NW = AssignValue(PipeSize, NW)
elseif PipeDir >338 and PipeDir <= 360 or PipeDir >= 0 and PipeDir <= 23 then
N = AssignValue(PipeSize, N)
end if

FindLabel = MakeLabel(NE, E, SE, S, SW, W, NW, N)

End Function

' ********** End of main function. Custum functions used above are below.

function MakeLabel (NE, E, SE, S, SW, W, NW, N)
dim Row1Cnt, Row2Cnt, Row3Cnt, MaxLine, _
TopSpace, MidSpace, BottomSpace, TopExtra, BottomExtra

Row1Cnt = len(NW & N & NE)
Row2Cnt = len(W & E)
Row3Cnt = len(SW & S & SE)

' If a row has an odd number of characters, this adds an extra space to make it even
if Row1Cnt mod 2 <> 0 and Row1Cnt > 3 then
TopExtra = " "
else TopExtra = ""
end if

if Row3Cnt mod 2 <> 0 and Row3Cnt > 3 then
BottomExtra = " "
else BottomExtra = ""
end if

' The next two if statements finds how long the longest line is
if Row1Cnt > Row2Cnt then
MaxLine = Row1Cnt
else MaxLine = Row2Cnt
end if

if Row3Cnt > MaxLine then
MaxLine = Row3Cnt
end if

' This makes sure that the longest line will have on space between each section
MaxLine = MaxLine + 2

TopSpace = space(int((MaxLine - Row1Cnt)/2))
MidSpace = space(int((MaxLine - Row2Cnt)))
BottomSpace = space(int((MaxLine - Row3Cnt)/2))

MakeLabel = NW & TopSpace & N & TopSpace & TopExtra & NE & vbNewLine & _
W & MidSpace & E & vbNewLine & _
SW & BottomSpace & S & BottomSpace & BottomExtra & SE
end function

' **********

function AssignValue(PipeSize, DirVar)
' If one of the compass point variables already has a value
' assigned to it, this will append the value rather than overwriting
' it. If there is no value it will just write the value over the
' default dash character.

if DirVar = "-" then
AssignValue = PipeSize
else AssignValue = DirVar & "/" & PipeSize
end if
end function

' ********** End of code

Monday, February 21, 2005

Because it is a vacation day for us, and because we were both a little bummed about Hunter's death, we decided to treat ourselves to some breakfast at McDonalds. I swiped my credit card through the reader after the cashier told me the total, but an error message popped up, so he called his manager. She came over, asked me to swipe my card again, and pushed some buttons. It didn't work, so she pushed a few more buttons to comp our entire meal! I had my hand on a twenty ready for her to say "Sorry the credit card terminal is down. We can only accept cash." But no. Free breakfast. Yeah!
The Edge... there is no honest way to explain it because the only people who really know where it is are the ones who have gone over.

The person who doesn't scatter the morning dew will not comb gray hairs.

When the going gets weird, the weird turn pro.

"...journalism is a terminally lame job, but it's better than working."

I always wanted to be Hunter, but didn't everyone, at least secretly?

Sad

"One of God's own prototypes. Some kind of high powered mutant never even considered for mass production. Too weird to live, and too rare to die."



RIP Hunter S. Thompson

Sunday, February 20, 2005

We both have tomorrow off because of President's Day! Yeah!
Carly Simon's dad is the Simon in Simon & Schuster.

You can go sleep at home tonight if you can get up and walk away

I think the first song I heard on CD was "Who Are You" by The Who. It was on the tenth floor of the Park Hall dormitory on The Ohio State University campus.

What was your first?

Friday, February 18, 2005

I made a resolution to myself today to switch from using shapefiles to only using geodatabases. I think you should too.

Wednesday, February 16, 2005

Does anyone have any success stories or horror stories about their experience with VoIP? I am really tempted to cut my ties with the phone company and go this route.

Vonage service is $25 per month, and my ISP offers VoIP service for $37 per month. We currently pay MCI about $70 per month for unlimited local and long distance, which includes all taxes and fees.

One of my big concerns is number portability. I know I can transfer our current home telephone number to whichever VoIP provider I choose, but since VoIP providers are not regulated, I am worried that I would not be able to ever move my number from them once they have it.

Monday, February 14, 2005

It might be worth your time ($1,500 to be exact) to inspect your change for the rare Wisconsin state quarter that has an extra corn leaf on the back. I received two Wisconsin quarters today, but not the good ones. [story]

Sunday, February 13, 2005

Yesterday afternoon we went to Starbuck's to hang out and read the paper. I wanted an iced coffee, but a lot of the stores only keep a pitcher of iced coffee on hand in the summer time. (They sell iced tea though. Go figure.) The barista suggested an iced Americano instead. I think I like that better than the plain old iced coffee now. The iced coffee is double strength drip coffee that is then stored in the fridge. The Americano is freshly pulled espresso shots, diluted with a little water, and then served over plenty of ice. I add milk and Equal. It has a better fresher stronger coffee taste.

I have some Starbucks's Sumatra beans at home so I just made myself an iced Americano to enjoy while I type this.

We have 5 coffee makers:

Krups espresso machine


Stove top espresso maker


12 cup drip
4 cup drip
Senseo

I have been craving chicken salad for about the last two months. Yesterday evening we went to Bobak's. A lot of times they have rotisserie chickens on sale, and last night they were $2.50 each. We bought two and left them on the kitchen counter to cool while we watched The Grudge. After the movie, at about midnight, I de-boned both chickens and made an excellent batch of chicken salad.

I also made another good batch of guacamole last night. I used fresh cilantro, tomato, and onion instead of using the salsa shortcut.

It is supposed to rain all day today in Chicago. I think I am going to back the car out into the driveway so that some of the heavy salt and road grime gets washed away.

The movies we have in right now from our queue are Ray and Friday Night Lights. I am excited about seeing Friday Night Lights.

We don't know what we are going to do with ourselves today.
I want this watch. It has a 24 hour movement instead of a 12 hour movement, so the hour hand only goes around once a day instead of twice.

Saturday, February 12, 2005

We just got done watching The Grudge. The hairs on my arms literally (not figuratively) stood on end at least seven or eight times. Very scary. Don't watch it alone.

Wednesday, February 09, 2005

Is your computer screen dirty? This amazing little thing will actually clean it for you right now!

Tuesday, February 08, 2005

Are there any Super Bowl ads that you missed or wanted to see again? Well they're all right here.
I just spent 1.5 hours with a sales rep talking about this $6,500 GPS unit. It is the GS20 from Leica Geosystems. Yes it is the same Leica that makes cameras. It comes with a half-day training session. We will probably take delivery within a month or so. I love my job.
At work the salt we use is mined in Avery Island, Louisiana and then loaded on barges and shipped up the Mississippi River to Lemont, Illinois, a suburb about 14 miles south-west of Midway Airport.

Once it reaches Lemont the salt is offloaded and treated with magnesium chloride and food grade molasses.

After the salt is treated it is loaded back onto the barges until orders are received from the various municipalities. It is then scooped back off of the barges and into the big tractor-trailer dump trucks and delivered.
Wow! I love it!

maps.google.com was just released today. You can use your mouse to drag the map image around on your screen. It caches parts of the map you have already viewed so when you drag that part back into view it just appears. No waiting for the images from the web. This might be my new favorite on-line mapping site.

Monday, February 07, 2005

Rhetorical Question...

Why are almonds the only nuts that are smoked? Why don't I ever see smoked peanuts or smoked pistachios at the grocery store?
I was pretty excited that I got to use the word "photogrammetrically" today, both in print and conversation!

Sunday, February 06, 2005

We were going to go into the city (near Addison and Western) to watch the Super Bowl at the apartment of a friend of Sheri's from work. He ordered authentic cheese steak's from some place in Philadelphia to go along with the Eagles. Sheri's head cold is getting the better of her though and we are going to stay home. She would feel self conscious about coughing and blowing her nose every five minutes.

Therefore we just got back from a Super Bowl food run. We got:

very ripe avocadoes for my award winning guacamole
Trader Joe's low carb tortilla chips
shredded chedder to melt on top of a few of the tortilla chips under the broiler
a box of Trader Joe vegetable samosas

That is the "for sure" list. We also got the following to prepare as needed:

Trader Joe's frozen pizza
soy chicken nuggets

We are going to watch Employee of the Month right now, and then switch to the Super Bowl after that.

We watched Sky Captain and the World of Tomorrow last night. The story and acting was not as bad as people said it was going to be. The look and feel of the movie however (I can not state this strongly enough) I LOVED! It was gorgeous. If nothing else, you have to rent it just to see what is possible with film making technology today. I thought the first ten minutes was especially good. The ENTIRE movie, even scenes set in an office, are all done on a blue screen stage. Here is a link to a trailer so you can get an idea. (click on either the large, medium, or small buttons to start the clip) There is also a link to download a free game that I just noticed. I think I will give that a quick try right now.

Saturday, February 05, 2005

Sheri's birthday so far

We had a great afternoon and evening at the hotel. We checked in around 2 PM, got settled in our room, and then went straight to the pool. We swam and splashed for probably a little more than an hour, then Sheri got out to rest for a while and read some of the trash magazines she bought just for the occasion. I stayed in the pool and read a couple of stories from my latest National Geographic. We had the entire pool to ourselves so I just propped the magazine on a towel on the floor by the side of the pool while I stood in about 5.5 feet of water.

After about 30 – 45 minutes and a few fat free Pringles Sheri got back in the water and we did laps back and forth and talked until 5 PM.

Then we both got out, toweled off and read magazines pool-side for 30 minutes while we air-dried.

After that we went upstairs, showered and went out to dinner at the Atlanta Bread Company. We started off splitting a wood fired sausage pizza and an iced tea. The pizza was not nearly as good as we anticipated. After that I went back up and got a sandwich/salad combo. I had half of a chicken salad sandwich on 9 grain bread and Sheri had a salad that had field greens, apples wedges, blue cheese, dried cranberries, onions, and a nice dressing. Then we split a cappuccino and an oatmeal cookie and sat in the comfortable chairs by the fireplace, read the paper and talked until I think about 8 PM.

We were more tired out than we thought we were from swimming, so we just hung out in the room, watched TV, and surfed the web. (They have free wireless internet and Sheri brought her laptop.)

While we were watching TV there were loud people in the hallway and in the room next door. At about 11:45 PM after we had turned out the lights they were getting louder, so I called the front desk. The second I hung up the phone (literally) all the talking and door banging stopped. Cool. We both started to drift off.

About an hour later they must have returned from a food run and started up with the loud talking again. I called the front desk and they said the guy went up last time and didn’t hear anything. I told her it was weird that they stopped the second I hung up, but they are back at it again. She apologized and said she would send someone up again. This time I think he caught them because all of a sudden the whole floor is dead silent. Great, but now I am wide-awake, which is why I am making this post. I think Sheri is asleep, but I am not sure. I think I hear deep breathing off and on. I hope my typing isn’t keeping her awake.

We have a great room! I was going to reserve a room from their website for $79, but at the last minute I called their front desk and chit chatted with the woman for a few minutes. I ended up getting the $109 room for only $69. Yeah me! Right now I am sitting in a big recliner by the ceiling to floor length picture window with the curtains fully open typing by the light of the city lights.

The plan for tomorrow is to get up as early as possible and have breakfast downstairs, come back upstairs to open Sheri’s birthday presents, and then go swim for a few more hours before checking out.

Thursday, February 03, 2005

I have not left the building since I got to work this morning. When I got here is was in the low 20's. Accuweather says that it is 42° outside right now. I can't wait to get some warm (it's all relative) fresh air.