Archive for June, 2009
Stats, Calc and Loadtests
Preface: Kids, PAY ATTENTION IN MATH CLASSES. YOU NEED IT.
So I’ve been spending a lot of time at work doing loadtests, and one question that keeps coming back is “what metric do we want to use to gauge progress?” We’ve been going with a simple throughput (pages/second), but that doesn’t take into account errors, average times, or samplecounts.
You can have 30 pages/second and have the following conditions:
- average page takes 10 seconds to load (300 threads over a 10 second period)
- 50% error rate (pages that spit out a 500 error can return REALLY fast)
- 30 threads, 1 second page load
That number doesn’t tell the whole story. There’s also the number of samples, overall error rate, and average, median and 90th percentile page load times.
So how do you come up with a number that covers all of that?

This is my current (unweighted) equation.
The short version is ‘the higher the better’. The longer version is:
- higher samples good
- higher throughput good
- high page loads bad
- errors penalize score
Missing from this equation:
- proper weighting
- KB/sec
- Min and Max times
- a unit describing it’s awesomeness
So that’s what I’ve done today…
Jaunty’s Accidental Second Chance
So last week in an attempt to update… something (*shrug*, don’t remember what), I upgraded to intrepid, which bumped me up to kde4. It was a lot smoother this time around, but there were a few bugs left… mainly the fglrx driver didn’t like me. so I decided to go full bore and try jaunty again. it’d been 2 months since initial release, so it should be a bit more stable.
Well, things sorta exploded. fglrx still wouldn’t work. I ended up burning a copy and doing a clean install (my home dir is on another partition now so no data loss!) I got jaunty up and running fine with the radeon driver rather than the fglrx driver, and started getting everything into place. And by ‘use the radeon driver’ I mean remove all fglrx packages so it defaults to radeon (or whatever else).
Knetworkmanager still sucks, but the plasmoid worked properly this time and is quite nice.
When I got to work I burned half an hour trying to get dual monitors working (again, trying to get fglrx working) and found xrandr works great now. I used the following command to set up my dual monitors:
sudo xrandr –output LVDS –preferred –mode 1600×1200 –auto –left-of DVI-0 –output DVI-0 –auto –mode 1680×1050
and the following is the ONLY xorg config I have:
Section “Device”
Identifier “Configured Video Device”
EndSectionSection “Monitor”
Identifier “Configured Monitor”
EndSectionSection “Screen”
Identifier “Default Screen”
Monitor “Configured Monitor”
Device “Configured Video Device”
SubSection “Display”
Virtual 3280 1200
EndSubSection
EndSection
Note the only thing I added with the Display subsection. Anyone who’s been using Linux on GUIs for the past 10 years can tell you how amazing that configuration is, and how far Xorg, xrandr and linux as a whole have come.
Amarok gave me some problems, but I was just missing some codecs. I forced KDE to 96 DPI and the screen looks great. The one thing I’m missing now is a functional Quickaccess plasmoid (on that does vertical mode properly) and I’m good. maybe I’ll write about the plasmoids (widgets) I’m using later.
There are the occasional video glitches here and there- mainly flickers or lines that flash for a 10th of a second and then are gone for an hour or 3. The other thing is when I pop open krunner and begin to type, there’s a little noise in the box. over my text as it tries to resize the window.
Other that that minor annoyance I think I’ve been converted to kde 4. That’s an amazing turnaround.
Keeping Busy
So I’ve been keeping busy with the outside of the house the past few days.
Cleaning the Shed
A few weeks ago I cleaned out the shed, but I still have a lot of crap in there. This past weekend I got around to hanging a shovel/rake tool organizer thing, plus a couple of J hooks so the floor is mostly clean. All that’s left is getting the stupid toilet and sink outta there.
Gate
The old back gate used to be too small (35″ in a 40″ gap), so the previous owner jammed a plank into the ground to block the gap and called it good. I ripped out the old gate, put in a new post and put in a new 42″ gate. I was afraid I shortened the rail a bit too much, but it worked out pretty well. I put a bigger latch in place to hold the gate and added a couple washers so it didn’t jingle around. It turned out pretty nice I think. The only crappy part is the yard is at an angle, so the gate doesn’t swing all the way open. Next spring I’ll get a roller and see if I can fix that, but for now it’s good.
Leveling and Seeding
Since it’s too late/dry in the season for rolling the yard, I leveled the ground another way- more dirt, more dirt, more dirt. Filling holes, laying down grass seed. yard is looking more and more level, and some of the worse ankle turning holes and valleys have been filled.
Moving Plants
so we had these flowering shrubs behind the house where I put my garden- I didn’t move them at first because I wasn’t sure where to put them- but once Jackie and I agreed that putting them by the back fence would work, I pulled those puppies up and transplanted them (after chopping down all the leaves). They look crappy now, but they’re out of the way, giving me more room to plant…
More Garden
Onions and Tomatoes. Jackie and I picked up some Beefsteak and roma tomato plants and some onion seeds, and planted those today. Garden will turn out crappy this year, I’m sure, but I’m just trying to get some experience at this point.
Tree Stump
There’s a dead treestump that is on the property line between me and the neighbors- it looks like it’s mostly on my side of the fence, and more importantly, the dead, hollowed out tops are on my side- I gouged them out, filled them with dirt and planted some oregano (and jackie planted some lavender). There’s already some stuff growing there, but I suspect it’s all weeds. I’ll see what grows though, *shrug*.
ok, time for bed.
The appeal of Who Knows What
I watch Lost. From what I can tell, one of the appeals of the first season was the disconnect between characters. Their lack of communication drove the plot and drove the viewers crazy in the process.
I’ve come to a point in my book where I know what the catalyst is, and I know what the result is, I just don’t know how it gets from point A to point B. What’s the missing part?
Who knows what.
The Setup:
Ziggy is working as a stable boy for an Inn in a small, walled town (Devitt). The Innkeeper (Clayton) and his wife (Katherine) act as surrogate human parents for Ziggy as he acclimates to living with humans.
A powerful wizard (Leopoldo) rides into town and Ziggy, having never seen a wizard, follows him around, earning a stern reprimand from Clayton who fear overzealous retribution from the wizard. Ziggy opens one of the Wizard’s saddle pouches and finds a powerful amulet that he accidentally activates, raising an army of undead from the cemetery south of town. The way the amulet works, if the user is not powerful enough, the zombies attack the user, otherwise they become willing servants. Since Ziggy isn’t a wizard, the zombies stumble forth through the town, making a beeline for him. Since it’s mid-afternoon, the townsfolk react as you’d expect, immediately rushing to attack the zombies (who would have otherwise left them alone).
The Result:
Ziggy flees the town to the north (towards the capital city of Willis, which can handle this threat), knowing that the zombies will follow him. Ziggy feels deep shame, essentially running away. He never travels to Devitt again, and avoids all contact with the town.
The difficult part is figuring out what happens between those two bits of story.
In Between:
- The Wizard sees Ziggy, realizes he was the one who activated the amulet. Demeans him, gives exposition on how the amulet works and that the zombies are after Ziggy. Says He is responsible for the carnage that ensues, and he’ll deal with him later.
- After Ziggy flees, the wizard is killed by angry mob who thinks he was controlling the zombies, not trying to stop them.
- Clayton may or may not be killed in battle
Questions:
- Does Clayton know Ziggy betrayed his request?
- Does Ziggy think Clayton knew Ziggy betrayed his request?
- Does Katherine know Ziggy betrayed his request?
- Does Katherine blame Ziggy for Clayton’s death?
- Does Katherine (or Clayton) know Ziggy survived the battle? Do they know he ran to Willis? Do they care?
How do I tie this up in a way that leaves Ziggy in Willis?
West Asset Management is Harassing me.
As I discussed earlier about AT&T Still Sucking, it turns out I’ve found a company that’s even worse- West Asset Management.
Now, just to be clear, I gave these guys a fair shake- If a Vulture sees you lying on the ground crawling, it’s expected that they’ll circle. It’s their nature, I won’t fault them for it.
What I WILL fault them for is continually calling me, trying to get me to settle even after I file the dispute charges. I just spent 5 minutes on the phone being berated by one of their telethugs- he
A) admit that I disputed the claims and they received the dispute
B) admitted that my dispute was being processed by them
C) they were waiting to hear back from AT&T
D) that continuing to harass me and attempt to collect while it was being processed on their end was standard operating procedure
So basically they’re going to harass me until I give them money (that I don’t owe) for someone who has admitted that I don’t owe them anything. My favorite part of the whole thing
[me] So let me get this straight- I filed a dispute as you asked me to, and you guys are processing it and waiting for a response back from AT&T. So in the meantime you continue to call me asking me to pay or dispute… do you see the failure of logic here?
[asshat] yes/no. In my experience we are never wrong in this blah blah I’m a moron jackass.
The worst part is he was purposfully antagonizing me- I nearly hung up, but quickly realized it might be one of their rules that hanging up is tantamount to admitting guilt so they’re allow to take further actions (calling at midnight, knocking on my door, etc). so I played it out and asked him (while he was continually berating me) “sir, what do you want from me?” he never answered. Finally after he ran out of steam I asked him if he was done, and told him that I was already disputing the claim and to have a nice day.
So Jackie and I will be looking for a nice attorney who will help us file a cease and desist or harassment charge- whatever it takes to get them to leave me the hell alone. This guy had an attitude problem, and I dearly hope that if this goes to court, they recorded the call so I can drag that shit out and he gets fired. grrrrr.
Ahh. I feel better. A waste of a lunch, but I feel better.
nerd alert
I pride myself on being a geek, but every once in a while I do something that can’t be described any way other than “Nerdish”. Today I think I crossed that line again.
1) A while back I hooked up my old PC speakers (kinda nice) to my server in the basement, then streamed music through it. Well, this was fine and dandy for me, but jackie wanted “her” music.
2) I set up a web interface with several radio stations that jackie could select from with HTML “radio” buttons. This worked great, but it still required a laptop to hit the web interface to change channels.
3) A few years ago I bought a nice soundcard to attempt to record my guitar playing on my workstation- that never panned out, but the card came with an USB IR receiver and a dinky little remote for watching DVDs… well, I got the remote working in linux (on my server) with lircd. I then have irexec listening to the lircd socket for buttonpushes, and executing commands based on my config in /etc/lircrc which liiks like this:
begin
remote = Creative_RM-1500
button = Vol_Down
prog = irexec
config = amixer -c 0 -- sset Master playback -1dB+
mode = order
end
begin
remote = Creative_RM-1500
button = Vol_Up
prog = irexec
config = amixer -c 0 -- sset Master playback 2dB+
mode = order
end
begin
remote = Creative_RM-1500
button = Mute
prog = irexec
config = amixer -c 0 -- sset Master toggle
mode = order
end
The end result? it raises and lowers the volume and can mute the audio on the server… what’s next?
4) get Next and Previous to change stations.
Oh, and it’s all running as an unprivileged user rather than root, which makes me feel warm and fuzzy.
btw, here’s my /etc/lircd.conf:
begin remote name Creative_RM-1500 bits 16 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 9078 4671 one 0 0 zero 0 0 pre_data_bits 16 pre_data 0x8322 gap 106974 toggle_bit_mask 0x0 min_repeat 4 begin codes Power 0x000000000000619E 1 0x0000000000008B74 2 0x0000000000008F70 3 0x000000000000906F 4 0x0000000000008A75 5 0x000000000000847B 6 0x0000000000007887 7 0x0000000000008976 8 0x000000000000837C 9 0x0000000000007788 0 0x000000000000807F CMSS 0x000000000000718E EAX 0x0000000000008C73 Mute 0x0000000000006E91 Vol_Down 0x000000000000639C Vol_Up 0x000000000000629D Up 0x0000000000007B84 Left 0x0000000000008778 Ok 0x000000000000817E Right 0x000000000000758A Down 0x0000000000008D72 Return 0x0000000000008E71 Start 0x0000000000008877 Cancel 0x0000000000007C83 Rec 0x000000000000738C Options 0x000000000000827D Display 0x0000000000007689 Previous 0x0000000000007F80 Play 0x0000000000007986 Next 0x0000000000007A85 Slow 0x0000000000007D82 Stop 0x000000000000857A Step 0x0000000000007E81 end codes end remote
Drains, Gardens, Grass Seed, Wii Fit and Darth Vader
Ok, so time for some updates:
About 2 weeks ago I got my CPAP mask, and boy is it uncomfortable. I feel like it does help, but I wake up in the middle of the night with a small panic attack that this thing is on my face and end up taking it off. The idea is it’ll keep me breathing properly all night which means better sleep -> more energy -> easier to lose weight, etc. I have noticed I have more energy, but that might just be placebo.
For mother’s day I got Jackie a Wii Fit, and have been using it steadily for the past few weeks- as a matter of fact, yesterday was the first day I missed. I’ve been doing some of the stuff in there to help with my balance and posture, which are totally screwed up because I’m a lazy SOB.
I’m also slowly getting into this whole home ownership thing- last night I spent 3 hours snaking the utility sink drain so the basement wouldn’t flood when jackie did laundry. She’s out of town for a few days so I had the opportunity last night to do some stuff that I couldn’t do with Ian around. If I had to guess, it looked like bits of candy wrapper or something from a pocket made it’s way out of the washer and into the pipes, where it caused clogs and was unaffected by the small fortune in draino I tried. Now the floordrain is draining like a champ. Hurray.
Also started patching the lawn- tried laying down grass seed in a couple places, but most of it washed away. Where it did come in it looked great (I’m using the el cheapo meijer grass seed in the white and green bag), so I tried again, but the soil quality was just crap. Fortunately meijer had super cheap bags of potting soil as well (more on this later) so I grabbed a couple and dumped nice black soil on the bare spots- grass popped through within a week- AWESOME.
So I did the entire back yard like that. All the damage that was done last year with the weed-b-gone/roundup mixup should be mostly fixed within the next month. I’ve also overseeded the whole backyard and frontyard with this seed because it was so good. $50 worth of grass seed and $15 worth of dirt went a looong way towards making the yard look nice; even then I have 2/3rds of a bag of seed left- I’ll save that for another month or so.
So, back to the soil- why was I looking at soil? because we decided to tear out the ugly landscaping behind the house and put in a small garden- chives, cillantro, hot peppers, jalapenos, watermellons, pumpkins, carrots- even a few stalks of corn. This was our trial run, so I’m not expecting much- mainly just trying to figure out what we can grow back there. I used a garden weasel type thing to tear up the ground, extended it out so it was relatively even for the length of the garden, then put in a little white fence to keep Ianasaurus rex from stomping everything flat (which almost works) I also dumped some potting soil on top of the garden, but too little too late I suspect- hence I’m making sure to put plenty of miracle gro on it to see if I can get stuff to grow.
While getting more soil I saw some asparagus roots and raspberries that looked pretty cool, so I decided to expand a bit- also picked up a cherry tomato plant. This time around I turned the rich, black potting soil into the ground before I planted, and another bag on top of the asparagus for good measure. On our way out Ian wanted a cantaloupe, so we ended up saving the seeds and planting that as well. I’ll try and get some pictures of it when Jackie gets back with the camera.
Oh, and while I was gardening, I knelt on a rock and tore up my knee and had to wear a kneebrace. Good times. I was supposed to get a ‘just in case’ x-ray this weekend but ended up having to go to a housewarming in Grand Rapids- by the time we got back, the pain was almost gone so we skipped it.
OH, and I got a weedwhacker with my refund money- hurray!