![]()
good old thunderhill, I'll be back soon :)
![]()
argh, all this for junkmail I never asked for :(
![]()
viewing platform for Mt St Helens
![]()
Museum of Aviation visible on the left of the runway
![]()
I had no idea the concorde had an anti tailstrike tailwheel
![]()
Their warbird collection was quite good and well layed out
![]()
the drone was supposed to launch with nukes in unfriendly territory
![]()
the smith tower is a nice view open later than the BOA tower and better view than the space needle
![]()
a seaplane was doing patterns with passengers on the nearby lake
![]()
cool shadow of our plane in the clouds with a rainbow around it. Neat!
![]()
little island just next to Lopez Island, pretty cool.
![]()
they have a catalog of local orcas
![]()
we saw a few orcas after a long boat trip
![]()
making sure my blood O2 saturation was still good at altitude

![]()
while in our way, the cloud made a nice wave, like surfing inside a crashing wave (this was just as we turned west)
![]()
we then got some nice VFR on top all the way back
![]()
and by Oakland, we got under the forming overcast that was starting to cover the bay (incidently, not Palo Alto yet)


color black/cyan yellow/cyan default /default default 0 timeout 10 title Launch "The Ultimate Boot CD for Windows" fallback 1 find --set-root /ntldr chainloader /ntldr savedefault --wait=2 title pause # doesn't work without patched grub #title UBCD menu #chainloader /boot/isolinux/isolinux.bin #savedefault --wait=2 title BIOS configfile /ubcd/menus/grub4dos/bios.lst title CPU configfile /ubcd/menus/grub4dos/cpu.lst title HDD configfile /ubcd/menus/grub4dos/hdd.lst title Memory configfile /ubcd/menus/grub4dos/memory.lst title Others configfile /ubcd/menus/grub4dos/others.lst title Peripherals configfile /ubcd/menus/grub4dos/periph.lst title System configfile /ubcd/menus/grub4dos/system.lst title Parted Magic V4.10\n Linux distro for manipulating partitions (eg. create, resize). Includes\n TestDisk, PhotoRec, Partition Image...) configfile /pmagic/boot/grub4dos/grub4dos.lst title UBCD FreeDOS R1.38 (Based on NwDsk V3.40)\n FreeDOS boot disk used to run many of the other DOS apps on the UBCD. map --mem /ubcd/images/fdubcd.img.gz (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) title User-defined configfile /ubcd/custom/custom.lst title pause title Reboot\n Reboot the PC. reboot title pause title commandline savedefault --wait=2 commandline title floppy (fd0) chainloader (fd0)+1 rootnoverify (fd0) savedefault --wait=2 title reboot savedefault --wait=2 reboot title Darik's Boot And Nuke v2.0 ~ Submenu configfile /dban-Grub4dos.ini title FreeDos map --mem (hd0,0)//Images/freedos.img (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) title GOBACK Removal Tool map --mem (hd0,0)//Images/goback.ima (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) title Memtest86 v3.5 (iso boot) map (hd0,0)//Images/memtest.iso (hd32) map --hook chainloader (hd32) boot title NTFS-Dos map --mem (hd0,0)//Images/ntfs4dos.img (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) title Launch "Windows(tm) Recovery Console" fallback 1 find --set-root /cmdcons/setupldr.bin chainloader /cmdcons/setupldr.bin ##################################################################### # write string "cmdcons" to memory 0000:7C03 in 2 steps: ##################################################################### # step 1. Write 4 chars "cmdc" at 0000:7C03 write 0x7C03 0x63646D63 # step 2. Write 3 chars "ons" and an ending null at 0000:7C07 write 0x7C07 0x00736E6F savedefault --wait=2Other random links I found:
![]()
moderately happy with the ride :)
![]()
ok, I won't quit my day job :)
![]()
this was a fun elevator ride up and down
![]()
The new 4D shooting show was quite fun
![]()
all these years, my dad liked cats, he just didn't know :)
![]()
nice dinner before visiting Disneyland
![]()
more meat parts than I know about
I went through my old pictures at VA Linux, and selected a few "best of" category.
It's a good trip in memory lane if you'd like to indulge :)
Beer Bashes:



Funny thing, I still have those two weapons in my cube:

Eh, we actually built and shipped stuff:




Oh yeah, that:







classic T-shirt:


Chris was always meant to be a penguin :)


Walt:

We're not alcoholics :)

IPO:





Can't argue with the logic:


Don Dugger, classic:

San, my man:

Getting hardware from the trash:



Allhands:


Funny slide:

new buildings:

who's the ice cream man?

Xmas:






Jeremy, you make me horny:

Steve, the master cook:

Chris Antilla/and Theresa Marie, Chili Judges:

For those who were there, our scooter and chair race around the track:


(I won the chair race by the way :) )
And in no time, Engineering was let go, Walt doing BBQ for us:

Josh, and his many hawaiin shirts:



We didn't quite come close:

Morale was high:






VA hemoraging staff:



Aaah, Leanne :)


You look good Steve:



Oh man, Brian was stoned big time

Oh, well, maybe it wasn't just him:


Hair to impress:






Jeremy, I think of you at night still, and I wish I didn't :)

Ah, our new CFO, she was cool, I liked her. Too bad she picked the wrong
company:

Yes, TM, you look good too :)


Classic Linuxworld:

And that's all folks, fun memories, good times :)
![]()
another nice view of the cemetary
![]()
they have a nice array of solar panels
![]()
why do people fill their garages with junk and park outside?
![]()
I calibrated the TTs vs the split 60CTs and the small CT-40s by comparing measurements of the same load
![]()
the 2 white boxes are the ECMs1240s, but I also have my older and bigger brand one power meters in there
![]()
the small donut CT-40s are great, they take no room at all
Of course, I have a lot of single interesting graphs. Can you tell when my disk to disk backup completed? :)
More importantly, and worryingly, compiling the same kernel took 30mn and 20W on my dual core duo laptop:
While compiling the same kernel on my dual Xeon P4 server took 2H and 80W-ish:
Another interesting graph was charging a 12V marine battery for my UPS:
Thanks to this graph, I was able to find that my TV and speakers took 30W when off. I got a smart power strip that turns them off totally and saved about 30W off my base load:
Ever wonder how much power your fridge is really using?
So, how much power does AC use? Well, not only 3500W for AC, but another 1000W for the whole house fans:
A cool graph showing House Power Use (calculated) from PG&E meter and PV production probe:
And for the money shot, all the house uses combined on one graph:
And the same graph, but with AC that was activated:
![]()
my source control system was _this_ big :)
![]()
software patents are both interesting and depressing
![]()
the questions on geeks vs nerds were a bit disappointing though

that was the linux pavillion at Comdex in 1996
![]()
ok, they have somewhat historical buildings :)
![]()
french dinner for our anniversary
![]()
no, I don't have a DSLR or even a tripod :)
![]()
this is what they look like when they're very old
![]()
this one landed on my pants :)
![]()
that was a few years ago, this is how cop cars looked back then
![]()
putting it on top of the dome must have been hard, it had to be helicoptered down
![]()
and yes, they have their own cop cars too
![]()
I got lucky with this one considering it was handheld from a moving boat
![]()
UV sensor in mostly water proof box
![]()
gets inside the attic through a water proof hole
![]()
the trick was not to bury the sensor too deep: just as deep as my grass roots
![]()
protecting the board from water
![]()
regular DS18B20 outside temperature probe in the shade
cat /etc/owfs/moisture/35\ Front_Lawn/current; echo
-1.35875
I looked at the range of values I typically get for full dry and full wet, and this is definitely sensor and board dependent. There is also the problem that the hobby-board design up to 2010/05, did not have a ground loop isolation transformer (without which the sensor would behave erratically as soon as you put it in the ground). Once you add the isolation tranformer, it does change the current values for dry and wet though, so each person may have to compute their own. Unfortunately I've seen my sensor briefly return values all the way to -2.55 instead of the typical wet -1.74# 0.56625/0.5675 bone dry, but once got 0.335625. # glass of water yielded 1.74 but I've sometimes seen 2.555. What to use? my ($min, $max) = (0.33, 2.6); # value should be temp ajusted in an ideal world, but I don't have correction tables. $value *= -1; $value = $min if ($value < $min); $value = $max if ($value > $max); $value = (100 * ($value - $min) / ($max - $min));I've struggled on finding the upper value. First, I got -1.74 but eventually I sometimes got -2.55 out of the blue for a few samples, which yielded some clipping, so I changed the max value from -1.74 to -2.6 at noon on this graph, explaining the sudden dip. You can however you can see on the left the jump to 100% when the sprinklers were started: Despite the sensor being noisy, temperature dependent, and hard to calibrate, the overall graph is still useful enough to show whether your sprinklers are keeping the dirt moist enough, or if your overall moist is just going down (bad).
/configure --enable-debian did the right thing for me, but you need to make sure you have the right headers on your system
I wrote this script, read_owfs that reads from an owfs symlink tree and generates a digitemp looking logfile so that it's easy to parse the logfile later with the same code regardless of whether you use digitemp or owfs to capture the data.
owfs with a hub is a bit "interesting" since you have to find your devices in subtrees, which is why I made a symlink tree to make my life easier. I setup a symlink for each hub port and a chain name to point to each of the 3 buses' AUX or MAIN branch. This is what it looks like:
/etc/owfs/bus1 -> /owfs/1F.F05005000000 /etc/owfs/bus2 -> /owfs/1F.E25005000000 /etc/owfs/bus3 -> /owfs/1F.E15005000000 /etc/owfs/chain1 -> bus2/main /etc/owfs/crawlspace_chain -> bus2/aux /etc/owfs/dining_chain -> bus3/main /etc/owfs/roof_chain -> bus1/aux /etc/owfs/humidity/56 Hall_Closet -> ../chain1/26.2E4DF5000000/HIH4000 /etc/owfs/moisture/35 Front_Lawn -> ../crawlspace_chain/30.131A62120000 /etc/owfs/temperature/11 Family_Room -> ../chain1/10.A8D1ED010800 /etc/owfs/temperature/12 Living_Room -> ../chain1/10.52D1ED010800 /etc/owfs/temperature/15 Garage -> ../chain1/10.2223EF010800 /etc/owfs/temperature/21 Attic -> ../roof_chain/10.5DE1ED010800 /etc/owfs/temperature/22 Roof -> ../roof_chain/10.94A2ED010800 /etc/owfs/temperature/23 Outdoors_Roof -> ../roof_chain/28.57B659020000 /etc/owfs/temperature/25 Roof_UV -> ../roof_chain/EE.E749CB010800 /etc/owfs/temperature/31 Crawlspace -> ../crawlspace_chain/10.F9F3EE010800 /etc/owfs/temperature/32 Outdoors_Crawlspace -> ../crawlspace_chain/10.D1D0ED010800 /etc/owfs/temperature/35 Front_Lawn -> ../crawlspace_chain/30.131A62120000 (...)This is how I start owfs and the xpl-owfs gateway:
gargamel:/etc/owfs# cat /etc/init.d/owfs
#!/bin/sh
case "$1" in
start)
umount /owfs 2>/dev/null
# serial
/opt/owfs/bin/owserver -d /dev/DS9097U -F --error_print 0 --error_level 1 --nozero
# usb
#/opt/owfs/bin/owserver -u -F --error_print 0 --error_level 1 --nozero
/opt/owfs/bin/owfs -F -s localhost:4304 /owfs --nozero
/opt/owfs/bin/owhttpd -F -s localhost:4304 -p 8082 --nozero
# this comes from xpl-perl, reads /owfs devices and relays their data periodically
# over XPL, where they can be relayed to misterhouse.
xpl-owfs --interface eth1 --owfs-mount /owfs >/dev/null &
;;
stop)
pkill -f '/opt/owfs/bin/owfs'
pkill -f '/opt/owfs/bin/owserver'
pkill -f '/opt/owfs/bin/owhttp'
pkill -f 'xpl-owfs'
;;
restart|force-reload)
$0 stop
$0 start
;;
*)
echo "Usage: owfs {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0 XPL_SENSOR, bnz-owfs.*:10.2223EF010800, garage_temp, , temp XPL_SENSOR, bnz-owfs.*:28.3359C7010000, freezer_temp, , temp XPL_SENSOR, bnz-owfs.*:28.998D4D020000, computer_closet_temp, , temp XPL_SENSOR, bnz-owfs.*:26.2E4DF5000000, hall_closet_temp, , temp XPL_SENSOR, bnz-owfs.*:26.2E4DF5000000.1, hall_closet_humidity, , humidityIf you use xpl-owfs, adding .1 behind a humidity value lets it pick another DA converter between the default one in owfs: .1 for HIH4000, and .2 for HTM1735 (it makes a difference since the analog value is turned into a different moisture percentage value as a result).
gargamel:~# grep . /owfs/26.2E4DF5000000/{.,*}/humidity
/owfs/26.2E4DF5000000/./humidity: 58.8895
/owfs/26.2E4DF5000000/HIH4000/humidity: 60.5681
/owfs/26.2E4DF5000000/HTM1735/humidity: 56.8768
--- /usr/share/perl5/xPL/Dock/Owfs.pm.orig 2010-04-17 09:08:43.000000000 -0700
+++ /usr/share/perl5/xPL/Dock/Owfs.pm 2010-04-17 09:25:25.000000000 -0700
@@ -154,6 +154,8 @@
foreach my $dev (@$devices) {
foreach my $rec ([ "temperature", "temp" ],
[ 'humidity', 'humidity' ],
+ [ 'HIH4000/humidity', 'humidity', 1 ],
+ [ 'HTM1735/humidity', 'humidity', 2 ],
[ 'counters.A', 'count', 0 ],
[ 'counters.B', 'count', 1 ],
[ 'current', 'current' ]) {
Once you have misterhouse configured to receive XPL messages, with those in mh.private.ini:
ipaddress_xpl_broadcast = 192.168.205.255 ipaddress_xpl = 192.168.205.3 # this is how you turn it off #xpl_disable = 1 # if you are using a better XPL hub, turn off the mh built in one #xpl_nohub = 1Then, you can simply read owfs values in misterhouse via XPL like so:
my $compcloset_temp = $computer_closet_temp->state()(there is one caveat there: misterhouse does not currently have a timer to remove the temperature value if you aren't getting updates from xpl/owfs) Note that there are other ways to read owfs in misterhouse, namely:
/etc/owfs/ and populates a digitemp looking file in /var/log/temperatures./var/log/temperatures file and converts it into rrdtool data or cacti compatible query data.sort -u < dump | time xargs rrdtool update $RRD --template `cacti_owfs --cacti-dump-header`(after having freshly re-created the RRD and make sure you use
--start 1271572300 with the right second value that's just before the first one in your dump).
![]()
damper opened (notice the 2 small wires which got to my 1-wire 8 channel IO board)
Top/Hvac Damper Open to Close Video (click me)