Friday, May 10, 2019

Running Minikube in Win10 Hyper-V without admin privileges

I wanted to try out minikube, and have access to a Windows 10 computer. Windows 10 has the MS hypervisor Hyper-V built in. There are several blog entries on getting minikube running in such an environment, but all of them that I found assume or explicitly state that you must run as an administrator on the Win10 host. Desktop security is part of my job, so I wanted to try and run minikube as a normal user. Here is how I got it working.

My Environment

  • Windows 10 1809
  • physical machine (not a VM, since we want to run a hypervisor)
  • minikube version 1.0.1
  • I log in and run things as an account that is only in .\Users, but I do have access to another account that is in .\Administrators (this is needed only for a couple of the setup steps)

Grant yourself permissions to manage Hyper-V

Win10 has a local group named "Hyper-V Administrators". All you need to do is ensure your normal, non-admin account is a member of this group.

NAT and DHCP on Win10

Hyper-V on Win10 only has three networking options for the VMs, at least that is all you see in the GUI. None of the options are NAT, which is what I want to use. There are powershell commands to create a NAT environment, but it still does not have a built-in DHCP service, like other hypervisors do. Here is how I got all of that running.

Create a NAT'd vSwitch

This command will create a new vSwitch (named "NAT") in HyperV


C:\Users\daves> New-VMSwitch -SwitchName "NAT" -SwitchType Internal

Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
NAT  Internal

You will need the ifIndex of the new switch's interface in a later step, so here is how to get it.


C:\Users\daves> get-netadapter | ft -Property Name,ifIndex

Name                         ifIndex
----                         -------
vEthernet (MinikubeLAN)           21
vEthernet (NAT)                   60
Wi-Fi                             15
Bluetooth Network Connection      14
Ethernet 2                         9
vEthernet (MinikubeWIFI)           8
vEthernet (Default Switch)        53
Ethernet                           5
Network Bridge                     3
In my case, the ifIndex of the interface is 60.

Configure the NAT gateway

Use the ifIndex from the adapter assigned to the new vSwitch (60 in my case). I am using private network 192.168.7.0/24 (GW will use 192.168.7.1).
This has to be run in an elevated powershell instance.

PS C:\WINDOWS\system32> New-NetIPAddress -IPAddress 192.168.7.1 -PrefixLength 24 -InterfaceIndex 60 


IPAddress         : 192.168.7.1
InterfaceIndex    : 60
InterfaceAlias    : vEthernet (NAT)
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Tentative
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : ActiveStore

IPAddress         : 192.168.7.1
InterfaceIndex    : 60
InterfaceAlias    : vEthernet (NAT)
AddressFamily     : IPv4
Type              : Unicast
PrefixLength      : 24
PrefixOrigin      : Manual
SuffixOrigin      : Manual
AddressState      : Invalid
ValidLifetime     : Infinite ([TimeSpan]::MaxValue)
PreferredLifetime : Infinite ([TimeSpan]::MaxValue)
SkipAsSource      : False
PolicyStore       : PersistentStore


Create the NAT configuration. You will need to know the CIDR formatted network you selected from above (192.168.7.0/24 for me).
This also has to be run in an elevated powershell instance.

PS C:\WINDOWS\system32> New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.7.0/24


Name                             : MyNATnetwork
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : 192.168.7.0/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True


Create and configure a DHCP service for you VMs


Installation is easy, and the download comes with a good readme. Here is a high-level summary of how I configured it.


  • Extract the files to C:\Program Files\DHCP\
  • From that folder, run dhcpwiz.exe
    • Select the NAT ethernet adapter created abovce for the NIC on which to run DHCP
      • Mine was labeled "vEthernet (NAT)"
    • Save the settings in an INI file
    • Enabling the HTTP web server will help you troubleshoot - go to http://127.0.0.1/dhcpstatus.xml to check the services status
    • Set your DNS server
      • I used OpenDNS
    • enter your network range
    • Under [Advanced] you can specify DNS and other services to be sent to DHCP clients
    • Use [Write INI file] to save your settings to C:\Program Files\DHCP\dhcpsrv.ini
    • Use the [Admin] button to install a Windows Service to run DHCP
      • The service will be named "dhcpServer" (Display name is "DHCP Server")
  • User powershell or the services control panel to start and stop the service. The service must be running when you start your minikube VM, or it won't get an IP address
Here is what my copy of dhcpsrv.ini looks like:


[SETTINGS]
IPPOOL_1=192.168.7.1-254
IPBIND_1=192.168.7.1
AssociateBindsToPools=1
Trace=1
DeleteOnRelease=0
ExpiredLeaseTimeout=3600

[GENERAL]
LEASETIME=31104000
NODETYPE=8
SUBNETMASK=255.255.255.0
NEXTSERVER=192.168.7.1
DNS_0=208.67.222.222
ROUTER_0=192.168.7.1

[DNS-SETTINGS]
EnableDNS=1
FORWARD=208.67.222.222

[TFTP-SETTINGS]
EnableTFTP=0
ROOT=C:\Program Files\DHCP\wwwroot
WritePermission=0

[HTTP-SETTINGS]
EnableHTTP=1
ROOT=C:\Program Files\DHCP\wwwroot


As the service leases addresses, they will show up in this file as well.


Install minikube

Install kubectl through the powershell gallery

https://kubernetes.io/docs/tasks/tools/install-kubectl/

I want my minikube related executables in c:\bin\ (which is in the systems PATH env variable)

C:\Users\daves> Install-Script -Name install-kubectl -Scope CurrentUser -Force

C:\Users\daves> install-kubectl.ps1 -Downloadlocation "C:\bin\"
==>analyzing Downloadlink
==>starting 'C:\users\daves\AppData\bin\kubectl.exe version'
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.0", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"windows/amd64"}
Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it.

You can now start kubectl from C:\bin\kubectl.exe

copy your remote kubernetes cluster information to C:\Users\daves\.kube/config

Install minikube


To install Minikube manually on Windows, download minikube-windows-amd64, rename it to minikube.exe, and add it to your path. I installed it to C:\bin\

Configure user environment variables for minikube

In a powershell, as the non-admin user you want to run minikube as, add an env variable named "MINIKUBE_HOME". This is a single command, and you will need to reload your shell when done.

C:\Users\daves> [System.Environment]::SetEnvironmentVariable('MINIKUBE_HOME', 'C:\Users\daves\.minikube', [System.EnvironmentVariableTarget]::User)

Configure minikube to use Hyper-V and your NAT'd switch by default

While you can specify the hypervisor and switch in command arguments, I like to set defaults.

C:\Users\daves> minikube config set vm-driver hyperv
!   These changes will take effect upon a minikube delete and then a minikube start
C:\Users\daves> minikube config set hyperv-virtual-switch NAT

Start minikube

Be sure your dhcpServer service is running!

This takes a few minutes, so be patient. You can troubleshoot by making the output more verbose with the arguments "--v=7 --alsologtostderr". You can also watch some of the progress in the Hyper-V admin console.

C:\Users\daves> minikube start
o   minikube v1.0.1 on windows (amd64)
$   Downloading Kubernetes v1.14.1 images in the background ...
>   Creating hyperv VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
-   "minikube" IP address is 192.168.7.5
-   Configuring Docker as the container runtime ...
-   Version of container runtime is 18.06.3-ce
:   Waiting for image downloads to complete ...
-   Preparing Kubernetes environment ...
-   Pulling images required by Kubernetes v1.14.1 ...
-   Launching Kubernetes v1.14.1 using kubeadm ...
:   Waiting for pods: apiserver proxy etcd scheduler controller dns
-   Configuring cluster permissions ...
-   Verifying component health .....
+   kubectl is now configured to use "minikube"
=   Done! Thank you for using minikube!

Now you can experiment with kubectl and minicube commands against your minikube instance.

Clean up

Stopping the minikube VM doesn't work with the default command for me. Here is a discussion on the topic

The command "minikube stop" should stop the VM, but doesn't in my current lab. This command works fine:

C:\Users\daves> minikube ssh "sudo shutdown -h now"

If you are done, you can delete the minikube VM.

C:\Users\daves> minikube delete
x   Deleting "minikube" from hyperv ...
-   The "minikube" cluster has been deleted.






Friday, November 2, 2018

Filtering MIDI volume and expression with an Arduino

I need a MIDI filter that simply filters volume and expression CC messages. I use a Hammond XK3c for organ and as a controller for a Yamaha Motif-Rack ES. The organ has two manuals, so in many cases I am playing organ on one and synth on the other. In such cases, I need to be able to change the organ's volume, but I don't want the synth to change volume (at least not the same as the organ). Thanks to Arduino community,  the awesome SparkFunMIDI tutorial, and other places on the Web, I came up with the working code below. This controls an Arduino and the MIDI Shield very well. I'm happy with the functionality.

#include
/*
* MIDI_FilterExp.ino 
* David Summers
* 2018.01.03

* Reads MIDI IN, passes every message except
* CC mnessages for Expression (CC11) and Volume (CC04).
* Useful for controllers that send such data, 
* but you wish for the controlled tone module to ignore it. 
* I use this to control a Yamaha Motif-Rack ES from 
* a Hammond XK3c; I want my expression pedal to
* effect the organ, but not anything on the Motif.
*/
MIDI_CREATE_DEFAULT_INSTANCE();
static const unsigned ledPinG = 6;      // LED pin on Arduino Uno
static const unsigned ledPinR = 7;      // LED pin on Arduino Uno

void setup() 
{
  pinMode(ledPinG, OUTPUT);
  pinMode(ledPinR, OUTPUT);
  MIDI.begin(MIDI_CHANNEL_OMNI);
  digitalWrite(ledPinG, LOW);
  digitalWrite(ledPinR, HIGH);
  MIDI.turnThruOff();
}

void loop()
{
  //digitalWrite(ledPinR, LOW);
  if (MIDI.read())
  {
    
    switch(MIDI.getType()) // Get the type of the message we caught
    {
      //Capture Control Change messages     
      case midi::ControlChange :
        
        //Capture Expression OR Volume CC messages
        if (MIDI.getData1() == 11 || MIDI.getData1() == 4)
        {
          //Don't pass data
          digitalWrite(ledPinR, LOW);
        }
        //All other CC messages
        else
        {
          MIDI.sendControlChange(MIDI.getData1(), MIDI.getData2(), MIDI.getChannel());
        }
        delay(0);
        digitalWrite(ledPinR, HIGH);
      break;
      
      default:
        //digitalWrite(ledPinR, LOW);
        MIDI.send(MIDI.getType(),
                   MIDI.getData1(),
                   MIDI.getData2(),
                   MIDI.getChannel());
        delay(0);
        //digitalWrite(ledPinR, HIGH);
      break;  
      
    }
  }
}

Thursday, June 19, 2014

'69 beetle and the turn signal indicator that wanted to be grounded

I found that the light bulb assembly for my turn signal indicator was wired in a non-standard way. Somebody in the past had soldered a wire to the metal jacket and hard wired it to ground. They also wrapped it in rubber insulation so that the assembly would not conduct through the socket in the speedometer. The generator and oil lights remain unmolested and work as the should. My inner picture-straightener took over, and I began to undo this - I want close to stock electrical and the assembly did not fit inside the socket very well anyway (which caused a dim turn signal indicator). With the light assembly returned to normal, the light no longer flashes with the turn signals (they work fine, by the way). I confirmed that there is good conductivity by testing with a DVM and swapping light assemblies. The generator light assembly, when moved as a whole into the socket for the turn signal, works as expected; the turn signal assembly, when moved to the generator's socket, does not work.

The wiring between the speedometer and the top of the fuse box seems to be correct, per Bentley. There is a single wire coming from all three indicator lights going into the left-most (front is front) two fuses.

My turn signals work as expected regardless of how the indicator light is wired.

The flasher is part  DNI 0214 S4. Here is a photo:

And here is a schematic:
http://www.dni.com.br/media/Manual_DNI_0412S4.pdf


I found this hint:
"NOTE! If the Turn Signal Indicator Bulb does not blink when the turn signals are on, move the wire from the KBL terminal to the 49a terminal (use a piggyback or jumper connection) with the Black/White/Green wire."
here:
http://www.jbugs.com/product/211953215C.html?Category_Code=vw-bug-switches-flashers-relays-1968-70

I hookled the light up to terminal 49a and it is working fine.


Here is a nice wiring diagram:
http://www.oldvolkshome.com/6870turnswitcht1_OVH.pdf

Glutamoto has a great explanation at:
http://www.thesamba.com/vw/forum/archive/index.php/o-t--t-508609--.html

Friday, September 20, 2013

How to be a keyboardist in a band

A friend asked if I would teach his classically trained pianist daughter how to play in a band. I said "no"....

Actually I declined because I don't have any time and I don't think I have very much to teach. I want to share what I do know though.


  1. Learn your chords. Sight reading is great, but doesn't help you communicate with a lot of amateur musicians. Most of them will know their chords though and so should you. First know all the simple triads, both minor and major. Next learn the dominant chords, with the lowered 7th. Next learn what diminished and augmented chords are. Finally, learn the rest such as 13th, b9 major 7th, etc. I won't go into what these are here. It is incredibly valuable to be able to instantly recall any of these. This skill will be used in many of the following points.

  2. Chart out the tunes you will be playing. When you know what songs you will be playing, get a copy of each and listen to them. Listen to them again, paying attention to the general structure like verse 1, chorus, verse 2, chorus, bridge, chorus (I prefer simple section labels like "A", "B", "I" for intro, etc.). Listen for where sections can be defined and where they are repeated. Write this down, and then study each section. Determine what the chord changes are (more on this later), where you'll play what, articulations, etc. Marking sections first saves you time because once you've figured out how one section goes, you don't have to do so again for the repeats. With the cart, you can see the flow of the song and what to play when. Write it all down and use it to rehearse until you have memorized the song.

    Many amateur musicians do not do this - maybe even most; they rely on their memory of when they heard the song over the radio or in their car. Many of them are very good at doing it this way, and many of them are not as good at this as they think they are. Charting forces you to study the tune and helps you play it correctly and consistently.

  3. Be prepared and able to change a song. Don't feel frustrated if you spent time charting a song only to have another band member argue that it is wrong. There could be many reasons for this, such as different recordings or maybe that person has played it a different way for years and is more comfortable. Be a team player, discuss the implications of playing the song one way or another, and come to an agreement. It is easy to become adamant about a way a song should be played, but this makes the band less fun. If you feel strongly about how a song should go, make your case in a friendly way and allow the majority to win.

    Related to this, you should also be adept at transposing songs. Many keyboards have a built in transpose function; that is alright if you are careful to set it back when you are done. I've forgotten to do this enough times that i just avoid using the transpose button. You'll be a valuable asset to any band if you can transpose on the fly, especially to vocalists.

  4. Don't always play. You don't have to fill every empty space of a song. If you don't hear keyboard parts in a section, try staying out of it. Amateur musicians have a hard time with this and with dynamics in general, but it is a critical part of music.

  5. Steal solos. This is related to number 2, but I don't do this at the same time. Listen to, write out, and memorize solos that you enjoy. I use a program called trascribe! to help me with this. It allows you to slow down a song to help you figure it out (it does much more as well - I highly recommended this tool).
That's what I can think of for now.

Tuesday, May 10, 2011

10 years

Today University of Idaho is holding a Staff Appreciation ceremony. If I were to go, they'd give me a mug or something for 10 years of being employed at UI (it's actually been longer, I don't know how they calculate it). This isn't where I imagined I'd be when I would day dream of my future life as a teenager; but it pays the bills I suppose. I hope they will mail my mug to me, because I'm a bit too busy with work to attend the ceremony.

Tuesday, April 19, 2011

Motorcycling - Spring 2011

I got my motorcycle out and rode it to work this morning.

Now I am torn. I had convinced myself that I would sell the ninja to help pay off my keyboard. Also, there are things I just don't like about the ninja.

This morning's ride reminded me how much I enjoy riding. It's going to be hard to convince myself to go ahead and sell the ninja.

Monday, March 7, 2011

Repairing the vibrato in my Hammond A100

Recently and suddenly, the quality of the vibrato and chorus on my Hammond A100 went bad.

I posted questions at the Hammond Zone yahoo group and Keyboard magazine forums and got some great advice.

Using this advice, I tested the wires that connect the scanner to the vibrato filter box and the switches. These all tested good.
There appears to be evidence that someone has (poorly) resoldered these wires in the past:



























Here is an image of the scanner in the A100. It is the round thing on the left:



Googling the issue led me to learn about zinc dendrites that tend to grow in some of the electronics in these old organs.

I used a continuity tester to see if there was a connection between any of the brass screw connectors on the scanner and the scanner case (which is grounded). As you can see in the video below, there indeed was a connection on one of them.

Since the connections proved to be sound, my options were to either open the scanner up to clean or try the "zap" method to fry the zinc dendrites that tend to grow in these old organs.

On the Web there seem to be two lines of thought: zapping is too risky and zapping is fine (with proper precautions).

I really didn't want to open the scanner up, since there are fragile parts such as the oiling wicks and the axle.

After reading about the zapping method, and learning more about how the scanner works and what connections it has, I decided I was comfortable trying it.

The idea is that you apply a voltage across the dendrite, effectively turning it into a fuse which you "blow". In my case, I used a pair of 9 volt batteries in series to achieve an 18 volt source.




























I used an alligator clip to connect the positive post of the battery to the scanner body:


























With a wire connected to the negative post of the battery, I touched the brass screw on the scanner that allowed current through when previously tested with the continuity tester. There was no spark or pop etc. Continuity test failed after this, proving the dendrite was no longer conducting electricity.

After disconnecting the battery, I turned the organ on and the vibrato was back to its old self!

Here's a video I shot of the sound and testing for the dendrite:


And here are the photos I took during the operation:
https://picasaweb.google.com/davyyd/FixedA100Vibrato#

Thursday, December 23, 2010

Hammond A100 connected to Leslie 3300

Long time no post.

Using a very slightly modified version of the circuit you can find here, and information about the 11-pin connector here, I built a box to connect my Hammond A100 to my Leslie 3300. Here are some images:


























The red button is connected to Leslie pins 5 & 6 so that I can turn the Leslie on and off from the box.



























The toggle switch is my Main-Echo-Ensemble switch, though since it is a DPDT Toggle switch it is just an M-E for now. I will consider putting in a proper switch to allow a mix option between the internal and external speakers, but for now I am happy being able to easily switch between the two.


























For the most part, I am quite happy with the results. I do need to hide the wires (where do people run the half-moon switch wires on an A100?).


























Since I no longer have reverb when using the Leslie (since I tapped into the preamp and not the main & reverb amp outputs), I've been hearing reverb in Hammond recordings lately. I think it would be easy to put an insert into the circuit that would let me put a reverb foot pedal in; but that is down the road.

The 3300 is a fabulous Leslie, especially after replacing the factory 12AX7 with a 12AT7 (thanks Jim Alfredson!). A new concern though, is that with the higher fidelity of the 3300 compared to the A100s internal amps and speakers, is that pops, clicks, and crackling noises are much more noticeable now. My next step is to order some de-oxit and clean all of the tube sockets in the A100 - I hope that resolves the noises.

Thanks to Jeff Dairiki and Harvey Olsen for the original circuit schematic.

Tuesday, January 27, 2009

Jan 2009 update

After waiting all summer to get new tires, I decided I did not want or need two bikes. I put both the shadow and the ninja up for sale, and the shadow is the one someone was willing to pay for. I think it went to a good home, but I wish that the ninja would have been the one to go.

Shortly after that, I finally got new tires on the ninja. Just before winter, the coolant sprung a leak. It's been in my garage since because I just have not wanted to work on it. I'm disappointed that it has had as many problems as it has in its short life span. I won't buy another ex500, and maybe not another kawasaki.

My other major hobby is music. In the last year, I joined a classic rock band. The band went through some major changes, including a full-on mutiny! It tries my patience at times, but I stick with it because I appreciate the chances to play and use the skills I learned as a music major. The other members are good people.

I also bought a hammond XK3-c (have always loved the hammond) and started a jazz organ combo. That has been very fun and educational. It is my first experience leading a group, and I often don't know what to do. I think everyone is enjoying it though.

It has been a long and snowy winter. My sleep schedule is really messed up - I am very tired all afternoon and early evening, but at bedtime I am wide awake. In the morning I have a difficult time getting up. I want to get up at 6 to practice piano, but lately it is all I can do to get up at 7:30 and rush off to work. Maybe now that I have written it down I will have more ambition in the morning and be able to get up.

I've been missing my family lately. They all live in the same area 9 hours away from us. I think it would be nice to be able to join them for get-togethers like birthdays or just for an occasional boardgame. At the same time, I don't want to leave the comfort of my stable job, familiar mortgage, etc.

Friday, June 29, 2007

July 2007 ride

Google Maps lets you save custom maps now.

I will be riding my ninja (with my new tribags from cortech) along this route to my parent's house.

My brother Alan, who just got a Honda Nighthawk 650, will be meeting me part way.

Friday, May 11, 2007

Water in my oil

Several weeks ago I noticed droplets of water condensed onto the inside of the oil level viewer on my ninja. I changed the oil shortly after, but the droplets remained. Not too long after the water in the viewer was replaced by a white foam. In order to prevent problems with the foam interfering with oil flow throughout the engine, I removed the crank case cover to clean the engine out.

Here's what I found:




That is a thick and sticky foam, I believe caused by water mixing with the oil.

I was able to clean it all out, and I let the crankcase drain and dry for a few weeks while waiting for the replacement casket. The bike is back together and has been running for two weeks with no sign of water in the oil level window. Hopefully no permanent damage was done.

I don't know how water could have got into the engine - I suspect it was just from riding so much during the wet winter.

Saturday, October 14, 2006

Leaf Peep 2006

October 14 2006

Riders in New England, and I'm sure elsewhere, go on a "leaf peep" ride in the fall to view the changing foliage. I decided to go on my own leaf peep today.

Here is the photo album.

I rode down to Kendrick, then to Orofino, through Kamiah and Kooskia, up onto the Camas Prairie at Grangeville, and now I'm sitting in a dinner called the Cadillac Ranch.



I stopped to take a picture of the Cadillac, complete with bull horns on the grill, hoisted atop a thick pole. A combination truck stop / cafe, this is as good of a place as any to step inside to stretch my legs and use the restroom.

Above the toilet was a sign stating that if I wasn't a customer I don't get to use their johns. The claim was that 15 to 20 people use their toilets each day without buying anything. Well, too late to stop now... I picked up a candy bar to purchase so I wouldn't make any enemies.

Another sign at the cash register warned of a minimum $5.00 purchase for all debit and credit cards. I added some fries, a peanut butter shake, and some crackers to just get over the minimum purchase requirement. No worries if it would have been just under $5; to-go orders are an extra twenty cents. The grub is good, but I wasn't hungry. Maybe I'll use the bathroom one more time before I leave to get my money's worth..

I hope they don't charge for the entertainment. As I've been sitting here under a dead bear's head, I've been watching the local colors do their shopping. A boy of about 10 grabs a box of Q-tips off of the shelve and shows his enormous mother. Acting exasperated, she growls that she had already bought Q-tips. He puts them away with a look on his face that he's tired of trying.



I just ate a fried dirt clod that somehow got mixed in with my freshly cut fries. Perhaps the gas station attendant / short order cook forgot to rinse off the russet before slicing it in their stainless-steel french (or perhaps freedom) fry machine.

Near my table is a glass case full of knives and belt buckles. Next to a two foot long knife with an antler for a handle is a belt buckle that says "Wichita Kansas - 1985". Where else but Craigmont, Idaho can I get a Kansas belt buckle for five bucks? Maybe I should have sprung for that instead of the treats.

A pickup pulls up next to the window at my table with a dead elk in the bed. It's tongue is hanging out of it's stiff mouth as if it's dying wish was a glass of water. The driver and his son enter the store to purchase sodas. They are congratulated on their prize by the owner of the shop.

As I leave the diner, there's a 5 year old girl playing in the landscaping with what looks like an eight foot rattlesnake. A better look reveals the snake is just a toy, but looks real enough.



I love to ride. I read books and Internet message boards about other rider's adventures around the world through interesting places like Mongolia and Africa. I hope to someday soon take on those adventures and experience the people of the World. Today's ride reminds me that there are interesting, if not a bit bizarre, experiences to be had not far from home.

Saturday, September 30, 2006

David and Teri's ride to Kendrick

Teri's afraid to ride.

It's understandable. She passed the MSF basic course using a Honda Rebel 250. We own an 800 cc Shadow and a 500 cc Ninja. Both bikes are faster than the Rebel, the Ninja is taller (she can't flat foot on it) and the Shadow is a lot heavier.

Shortly after she got her endorsement, we rode past Potlatch and to the end of White Pine drive. The day was windy and there was (as always) moderate traffic on Highway 95. She also mistook a gravel pit for a gravel road and dropped the Shadow. This particular ride did not help with her riding confidence.

On September 30, several months later, we got a babysitter and planned another ride. This time she took the Ninja, which is lighter and easier to control than the Shadow. Even a day before the ride she was getting nervous. I tried to comfort her and remind her she always has the option to back out. I also told her that she needed to go her own pace and not worry about me or any other traffic. We picked an easier path too, Moscow to Troy on Highway 8, then South to Kendrick (which includes a neat little canyon road that has very little traffic).

Teri never got any faster than 5 miles per hour under the speed limit all the way to Troy. We had a bit of a parade going, but I stayed close behind her and towards the center lane in an effort to hide the traffic and keep her from worrying about it. She did pretty good, though I could tell she really needed to learn to trust the lean in corners.

When we stopped in Troy she told me that she still thought the bike would tip over if it leaned much at all (which isn't true). She also suggested that she get on the Shadow with me and we ride two-up the rest of the trip, picking up the Ninja on the way home. I did not like the idea of leaving the Ninja alone like that and offered to just head home. She decided to ride the rest of the way. Her body language revealed that she was pretty wound up and stressed.

The traffic, though not bad on 8, was even lighter on the highway between Troy and Kendrick. I think this made things easier on her because she brought her speed up a little. Her corners were still incorrect - she would slow down in the middle of a turn rather than lean a little harder. She took the canyon road at the end of the stretch into Kendrick surprisingly well. I could tell she was learning to trust the bike and her skills. She even tried a small swerve.

We stopped at a park in Kendrick to rest and talk. Teri said she was still nervous and I don't think she realized that she was doing just fine. I tried not to give too much advice; I thought she just needed time in the saddle to get confident. After a short rest and drink, we took off for home.

I watched a completely changed rider in front of me this time. Teri kept her speed up, took corners at a proper speed, and rode with much more confidence. I pulled up next to here at a stop sign in Troy and gave her the thumbs up. She had a big smile on her face.

From Troy to Moscow was even better. Teri even safely passed a slow motorcycle.

Both of us were really excited about the progress she made when we got home. It was great to see her start to believe in the skills she gained while taking the motorcycle training course. I hope to do it again soon and often.

Friday, September 22, 2006

selkirk2006

Sept 10 2006

I took a week off of work with the intention of riding the Selkirk scenic loop - taking my time to stop and visit anythging that looked interesting.

Here is the album.

This morning, as I prepared to go, I kept finding reasons to bail on the trip. First of all, I just had a bad feeling about it - can't say why. I also found that I had been reading my service manual wrong and missed my 7500 mile service (though I did a full lube job yesterday). By the time I packed everything on the bike, it just looked way too top heavy. I removed some things even though I did not feel I had packed anything unnecessary.

Teri and the boys got home from church at noon, and were surprised to see I had not left. I told Teri about my apprehension with leaving, and she said to just take off and if I felt like it, turn around and come home.

I am now a few miles North of Bonners Ferry along side a logging road, and have had a very good ride.

I took Highway 95 to Potlatch, where I had to fill up. The White Pine scenic byway leaves Potlatch to St. Maries and includes the wonderful White Pine drive - a twisty corridor of trees and little traffic. From St. Maries, I went along the St. Joe river and Lake Benewah to Plummer. Back on Highway 95, I headed North to Coeur d'Alene. Just south of CdA is an elaborate tribal casino, which was just a tent when Teri and I moved here in 1997.



There's a long bridge that takes highway 95 across Lake Pend Orreille; parallel to a train track bridge. It was an exceptional view riding alongside a three engine train atop the beautiful lake. I raced tha train from Sandpoint to Pend Oreille (the city) where we parted paths.

Although it was just 6 pm when I arrived in Bonners Ferry, the sun was dropping below the mountains and I decided to begin looking for a camping sport. But first I needed to fuel up. I found a 24/7 conoco whose credit card reader slots at the pumps were duct taped over. A sign said to pay inside. I went to the doors, and there was a sign hung that said "Closed Sunday for church and restock." Luckily Bonner's Ferry is NOT a one gas station town.

About 6 miles north of Bonner's Ferry, I saw a camping sign and turned off. I followed a gravel road for about three miles before picking a spot to set cammp. Along the way, I saw a large black bear. I really need to figure out a way to get to my camera fastyer. The bear made me decide to skip dinner tonight.


Woke up at 6am after a chilly night.


By the time I packed and started to roll out, the sun was just peaking over the mountains.

Riding in the cold towards the border, I thought of the things I did right and wrong so far on the trip:
right: packing my winter riding gloves and helmet liner.
wrong: leaving my sweats (no packing space)
right: bringing long johns
wrong: bringing an old tarp with paint on it (should have sprung for a new one)

I hit the northern end of US highway 95 at about 8:00 am. I spent a bit of time taking pictures before crossing the border. Crossing was no hassle, I just had to answer a few simple questions and show my drivers license. A family of wild turkeys welcomed me as I entered British Columbia.


I filled up and had breakfast in Creston. From Creston I head north along highway 3a.

I arrived at the Kootenay Bay at 11:30, and boarded the Osprey 2000 at 12:15. The loader told me to pull up right next to a Harley Softail in front; the riders weren't too pleased about that nor was the guy in the car adjacent to me who was trying to get out just as I pulled up. The ferry ride is supposed to be the largest free ferry in N. America, and runs just over 30 minutes. The scenery across Kootenay Lake is wonderful - the type of clean blue mountain air that makes you take a deep breath and clear mountain water that makes you thirsty.

There's a real friendly local guy who asked what type of bike I had. I told him it was a Kawasaki Ninja. "Crotch rocket, eh?" He rides a Yamaha V-star himself. We talked bikes for a bit. Later he saw me typing and said "Boy you just bring yer computer right with ya hey?"

Another guy came up to ask where in the States I was from. I told him Moscow, ID and he said he had heard that there was a "Testy Festy" near there in Montana. I told him I had seen the signs but never attended. He'd heard it was a real party and was going to look it up on the internet. One of these days I might ride to the famous Testical Festival - might even try a nut.

While debarking, I apologized to the harley rider for crowding him. He smiled and said that's ok. He said he just likes to watch over his bike because sometimes when he parks it but doesn't put it in gear it likes to walk off while on the ferry.



From Balfour it's on to Nelson.

Update Sept 21 2006
The rest of the ride was beautiful - so much so that I didn't even stop to write.

On my way back to the border at Nelway BC & Metaline, WA, I had a desire to cut across Highway 3 instead. The only problem was that it was getting late in the day and I needed to find a camping spot. I flipped a mental coin and went to Highway 3. I'm sure glad I did because it is one of the more scenic roads I have been on. The highway is closed during the winter, and features nice rocky cliffs and unspoiled forested valleys.



Crossing the border at Rykerts / Porthill was interseting. I took pictures, but got into trouble because of it with the border guard. He told me it was a risky thing to do on 9/11, and asked to examine my pictures. He said he wouldn't make me delete them (I didn't care if he would have..). Although he said there was a sign posted that said no photos, I didn't see it. He then proceeded to lecture me on the risk of hitting animals I was taking by riding a motorcycle. I was in a foul mood by the time he finally let me go.

As I rode south, I was keeping an eye open for a camping spot. Something drove me to keep riding. I got as far as Sandpoint and it was still light. I began calculating how late it would be when I got home, and this combined with whatever was making me want to keep at it made me decide to just return home. This was Monday night, the beginning of what was supposed to be my week long vacation.

Riding South of Coeur d'Alene, Highway 95 is narrow and under construction with a 45 mph speed limit. It was dark, and a guy was tailgaiting me real bad. I usually pull over and let these clowns move on out of my life in this type of situation, but there is nowhere to pull over on this stretch of road. He finally passed me on a double yellow line, driving me to the edge of the road. The shoulder there was steep gravel, so I dared not go onto it. I couldn't see it due to the tailgater's bright headlights, but immediately behind him was a semi truck pulling a trailer. I don't know if the driver didn't see me or was just being a jerk, but he passed on the double yellow as well. Since I did not see the truck, I was starting to pull back onto the highway. I saw the truck just barely in time and swerved over. As the trucker passed, he laid on his horn (it was too late for the sound to have warned me). I was glad when that stretch ended at the casino.

I made it home just after 10 pm. Shortly after that I broke out in a fever and spent the rest of the week in bed with a terrible flu. I'm glad I wasn't in a tent when the bug hit me.

The trip was good. I learned I can be awake and aware and ready to react to aggressive drivers late at night on narrow roads.

Sunday, August 20, 2006

Group Ride

Yesterday I went on a group ride with 5 other people I know from work and the pnwriders.com message board. All of us were on sportsbikes.

The plan was to ride Spiral Highway, then Rattlesnake and back.

Spiral was fun. Although I tell myself I won't let others in a group push me beyond my comfort riding level, if I was completely honest I'd admit that I also wanted the others in the group to be impressed by me. I think I may have pushed it a little bit because of this, but not by much. This, to me, is one of the dangers of riding in a group and one of the reasons I prefer to ride alone. I took off first from the top of spiral, partly in hopes of being able to get to a good corner to take some pictures. It only took a few seconds for three of the other riders to pass me. I didn't even see the first one come up behind me. I took most of the curves at 50mph after that, so it was pretty easy going.

The Asotin grade was fun as well. I scraped a peg in one of the final corners, but was still one of the slower riders.

Rattlesnake is where things got interesting. I fell behind on the flat highway before Anatone; my ex500 just couldn't keep up with the others, except for one other which was also an ex500. We met up at the campground near Rattleskale, and I elected to take up the rear (I thought I'd probably be stopping for pictures and didn't want to slow anyone down). After approximately three miles, the bikes in front of me suddenly slowed down. Around the corner I saw that one of the bikes had gone down. It was wedged wheel first into the guard rail, If I hadn't been thinking about making sure everyone was OK, I would have thought to get some pictures. Except for being quite shaken up by the experience and some minor scratches, the rider was fine.

It appears that he may have fixated or took the corner too fast and rode into the rail. All he remembers is flying ahead of his bike. The bike took a pretty bad beating. It's forks were broke, front upper and lower fairing cracked, gas tank punctured, and most things that stick out like blinkers and pedals were snapped off. Past the guard rail was a 200 foot drop – everyone commented that it was a good thing the rail was there.

As we were waiting for a pickup, some guys in the group commented on how many wrecks they had seen and been in. One guy has either seen or been in a wreck on eveery group ride this summer. This is the one that passed me first on Spiral. I've been riding for about two years now, and this is the first wreck I have seen.

I can't help but wonder, if they see and experience so many accidents, why ride so aggressively? Maybe a sense of self-preservation is something that comes with age, or with having a family. I know of some people who would quit riding after seeing one wreck. I certainly cannot give up riding yet, but I have kept my speed in check since seeing the accident yesterday.

I have also been thinking a lot about riding alone versus with a group. I have always been a loaner. At times I wish I could be more social; it's dificult for me to initiate communications, and I often feel akward around others. When it comes to riding, I do enjoy rides with small groups, and have been in one large one that was pretty fun, but I enjoy myself much more when riding alone. I like the freedom of selecting a speed I comfortable with, having my choice of when to stop for whatever reason, and many times what path to take or explore without a specific destination. There is one thing I would change – I'd like Teri to be with me more often on my lonesome rides. I think riding with her would have all the benefits of riding solo, but with the pleasure of sharing the experience with her.

Friday, August 4, 2006

Hells Canyon

On a whim, I asked for Friday and Monday off. I had been building up a lot of comp time and was really getting burned out from work. I've been reading other people's accounts of their motorcycle adventures at places like advriders.com, and have really been wanting to hit the road. I ran across someone's description of their ride to Hell's Canyon, and decided to take it on.

Here is the photo album

I left this afternoon at 1pm. Since my Shadow is down, I brought the ninja. I can't pack nearly as much on the ninja as I can on the shadow, but I managed to get everything I need for four days.

From Moscow, I went into Clarkston via the Spiral Highway. Through Clarkston and up the Asotin Grade, then across the plains to Rattlesnake Summit. I love the road that winds down Rattlesnake to the Grande Ronde river. The road coming back up the other side of the canyon towards Enterprise, OR is great as well.

Along highway 3, I passed Joseph Canyon (I thought it was my first glimpse of Hell's Canyon, but it is too far West). A woman who had also stopped there told me that there were fires near Enterprise. I hoped that the roads were open.

I stopped in Enterprise to fill up (err, have a gas station attendant fill up, this is Oregon don't forget) and buy a map. Past Enterprise is Joseph, named after Chief Old Joseph (as opposed to Chief Young Joseph, his son). This is a neat resort town, and I'd like to come back here to walk around sometime soon.

Just outside of Joseph is the grave site of Chief Joseph. People have placed all sorts of trinkets at the tombstone and hung in the tree next to it. Among McDonald's Happy Meal toys and pennies were some bead and feather crafts and a dreamcatcher. I was led to believe, from the description of the site, that it was an Indian graveyard. The only Native American headstone I could find was Chief Joseph's; the others engraved with European names with a disclaimer that so and so was allowed to be buried here due to their friendship with the Nez Perce.

I noticed campground icons on my map at Lake Wallowa, not far from Joseph. It was getting later in the day so I decided to stop there to camp. The problem with traveling and camping in unfamiliar territory is that you are sometimes forced to take what lodging you can get. The only place I could find was the Lake Wallowa State park campground, where tent sites are $17 per night. I did not want to spend that much to sleep, but was out of options. The campground is very nice and includes KOA style commodities such as general stores and showers. There are a couple of deer, including a buck that wander amond the campers. Some girls were picking something out of a tree and feeding the buck.

So far I've ridden 143 miles, and have been getting around 50 miles per gallon (rough estimate). I roder for about 5 hours today, including quite a few stops for photos.

August 5 2006

I woke up at 7am and took off at 8am this morning. It took me two passes through Joseph to find the road that leads up to the Hell's Canyon Overlook. This road winds through the Hell's Canyon Recreation area in Oregon, is part of the Hell's Canyone Scenic Byway (again, Oregon side), and connects Josphe to highway 86. A few miles up the road, I came acorss a sign that said it was closed past a certain point. This was the low point of the trip, but I decided I'd get as far as I could. I'm glad I did, because the closed road was actually a part I did not need to use (it was closed due to the fires).

My first glimpse of the canyon, peaking through a break in the trees and hills to the East of Canyon Ridge Road, was quite exciting. Shortly after that I arrived at the lookout. From this point, you get a view of just how deep the canyon is. I easily imagine giant prehistoric mammals grazing the massive hills along the top.

I rode down to highway 86 and turned West to fuel up in Halfway. I was able to see the aftermath of the wild fires caused by lightning on this road. The hills were scorched and the few trees that were left standing among the ash were dried and yellow. I passed the firefighter's base camps, scattered with hellicopters, commands posts, and dome tents.

The only gas station I found in Halfway was an older one with a dirt lot. In Oregon, the stationa ttendants control the pumps for you. This morning, the attendent gave me the impression that he was in no mood for me to take my time, so I put my magnetic tank bag on the ground without thhinking carefully so I could fuel up. I misjudged the attendant – he was quite friendly and told me a bit about the fires (he was a volunteer firefighter himself and had first hand experience with it). Once the tank was full, I placed my tank bag on the tank and heard a sickening scratching sound. The magnets had grabbed a bunch of rocks and dirt filled with iron filings, which were now being pressed to and dragged across the paint on my bike. I cleaned up as well as I could – and learned a lesson. Hopefully I can paint the scratches out.

I backtracked along highway 86, and followed it across the Snake River into Idaho. Idaho Power Company maintains a road up to the Hell's Canyon dam. This is a wonderful destination highway, with gorgeous views of the canyon, good pavement, and very little traffic. Each turn brought a more magnificent vista, and it got so that I had to fight the temptation to pull over for pictures because I expected something better to be just around the corner. At the dam, I saw some big horn sheep. Big horn's were reintroduced to the area in the 1990's, and these specimens had tags in their ears and wore radio collars. Something about this cheapened the experience for me a bit – but I'm glad that an effort is being made to repopulate the species. I also saw very large trout swimming at the edge of the river below the dam. I can't help but wonder what the area would look like if man hadn't changed it by building the dams and hunting and fishing the native animals out of the area. Then again, if man hadn't built the dam, I would not have been able to ride here.

The ride out was fun, but HOT. The road is too twisty and you can't predict when a large rock will be in the road around a corner, so I kept my speed down. Both me and the bike were feeling it too. It was nice to hit highway 86 again and head down to highway 71 across Brownlee dam.

Brownlee resorvoir ... neat road, the area look like Idaho. I grew up in Southeast idaho with a lot of lava, sage, and brown grassy hills. The lake of beauty here was actually a good thing, because an SUV with California plates was riding my ass and I needed to concentrate on riding. I let the creep pass me as soon as the opportunity presented itself, and the guy slowed way down. I was riding 10 mph or more slower than before and still had to brake at every corner to keep far enough behind him. At this point I decided to pull over and stretch and lete the SUV move on.

I got gas and water in Cambridge, Idaho. Sitting at a table outside the station was a ~300 pound woman, I'd guess in her 40's or 50's, with a shock of pink dyed hair holding a large can of beer and occasionally reaching for a bottle wrapped in a brown bag under her bench. As I was drinking my water, she asked if was alone. When I told her that I was, she asked if I wanted company.

“On the bike?”
“yeah”
“uhh, I don't think there is room...”
“OK, drive safe” (takes a swig)

I wonder what my excuse would have been if I had a Goldwing.

I also met a couple of biker in Cambridge (who actually passed me up the road while I was stretching). One had a KTM Adventure, the other a Yamaha FJR. The had left Baker, OR that morning and were going to Kooskia, ID. I told them i was familiar with that trip and it was lovely. They asked if I wanted to join them, but I didn't want to slow them down with my picture taking so I declined. Another time, it sounds fun!

I had been riding for about 7 hours at this point and I was sore and tired. I began looking for places to camp, though a part of me wanted to get home as well. I turned off onto a paved road to Seven Devils Recreation Area. This followed a really nice little canyon, if it weren't for the fences. Just like almost everywhere else, fences litter every yard along both sides of the road. The land doesn't even appear to be used for anything either, except to border the very large houses in the distance. I came toa sign that said a campground was 17 miles from here. I began calculating mileage and remaining fuel and decided it might be tight but I should be fine. I got about 10 miles in when the pavement ended. Waste of time, waste of fuel. I was in a bad mood, pissed at the waste tired of seeing beautiful country fenced of for the exclusive use of rich people, tired of buzzing hands...

Back on highway 95, and stopped in Riggins to get some food and a drink. I splurged and bought a piece of pepperoni and some chocolate. This was just what I needed, because my spirits were brought right up and I was once again enjoying my trip (but still thinking a lot about the need for people to fence off every bit of country). It also helped that a teenager boy told me I had a “real seet bike”. His girlfiren asked what kind it was, and I told them it was a Kawasaki Ninja (I left off the 500 part..). The first boy asked if they were as fast as they say they were, and I said problably not this one since it is so loaded down. He said he could see that, but heard that Ninjas were “two steps below a ducati” - whatever that meant. I was just happy to have the attention :)

Everytime I pass Whitebird and go up the grade, I look over at the old highway as it zig zags up the mountain and wonder how it is to ride. This time, I decided to try it. It was great fun until the pavement ended. Another waste of 10 miles. I tunred around and went up the normal grade, and stopped at the rest stop that overlooks Whitebird. With my binoculars, it appears to me that the road is paved all the way to the top, though there are parts I can't see. It was very windy up there, and I thought I heard the wind make a peculiar howl. Then it died down and I relized it was the high pitched howls from coyotees. At the top of the grade, I turned onto old highway 95, which is the top half of what I started eariler. It was paved for as far is I went (it was getting late and I didn't want to waste too much time on whyat I knew would be a dead end). I was also scanning for places to stop and set up camp – but everywhere there were more fences. I'm very irritated at this. Everything has to be owned and shut off from everyone but the owner. There are no tresspassing signs and barbed wire everywhere! As I ride past a pile of Keystone Light cans and brown shattered glass, I see the other side of this coin. If people treat it like this, maybe it's better to shut them out.

All of Northern Idaho and Eastern Oregon is rich with Native American history, and here at Whitebrid is no exception. I've been readin Historical Site boards and thinking a lot about how the Indians were forced into smaller and smaller reservations, forbidden to return to their homelands. These homelands were then fenced off for private use, and the wildlife that lived there hunted to extinction. Sometimes I believe in karma, sometimes I don't. If it exists, then white man is screwed for what they did to the Nez Perce in this area. On the other hand, while I feel bad that it happened I don't feel guilt or like I owe any retribution, as I had nothing to do with it. How's that for taking the easy way out? Well – this is what goes through my mind as I ride.

The rest of my trip was peaceful. I rode, I thought, and I pulled over for some pictures of a sunset. I pulled into my driveway at 10pm.; 14 hours on the road today, and 593 miles after I left yesterday. I saw Hell's Canyon, and rode farther and longer than I thought I could. The ninja held up wonderfully and is a very impressive bike, especially for being an old design. I held up pretty good as well, and hope to be doing another trip soon