Sunday, May 18, 2008

Connections

Part I - Prius-To-Linux Connections

At long last, I finally achieved what I was beginning to think was impossible. I finally got my Toyota Prius to connect to my Linux-based laptop via Bluetooth. I've been trying for over a year to find a way to transfer a computer-generated phone book to the car so that I could synchronize my car's phone book with essentially what's in my phone. The problem has always been that my phone can only transfer one phone book entry at a time, and the steps needed to get the Prius to receive a single OBEX (object exchange, like a file transfer) push is close to ridiculous. As I figured, all that was needed was to create a single .vcf file with a cluster of VCARD objects and get that pushed out to the car. The bad news is that the steps necessary to coerce the car to accept a connection from the Linux laptop borders on the insane. However, manually entering all the phone book entries to the car isn't just bordering on insane -- it is insane. Oh, did I mention that the Prius has no way of backing-up those phone book entries (up to 1,000) to some kind of media in case the 12V battery needs to be replaced?

Several things learned here though:
  1. It is possible for Linux to talk to a Prius over Bluetooth, and here is at least one practical application for doing so.
  2. The Linux Bluez libraries are a pain in the ass to use, and there's little to no documentation for them. Bluez is written to use "dbus" which is a god-awful twisted object-oriented contortion that was designed by a group of people who forgot the old K.I.S.S abbreviation (keep it simple stupid).
  3. The Prius user interface has a lot of good points, but the way that the telephone control is implemented needs some work. Frankly it was almost like someone made it difficult for the Prius' Bluetooth subsystem to communicate with anything other than a real, honest-to-goodness mobile phone. It didn't need to be that hard.
  4. The Prius would benefit greatly from a USB port where a memory stick could be plugged-in and settings could be downloaded from and/or backed-up onto it. If that existed and the phone book was in some open format, it would be unnecessary to do what I did.
In any case, the secret to getting this to work is in the bonding sequence. I had to write a small C program to emulate the command exchange that my cell phone would normally do. The timing and how the responses are sent is critical. Once that was working, and I convinced the car it was talking to a cell phone, I then went to the menu selection that allowed phone book entries to be downloaded. I then stopped my cell phone emulator, and did an OBEX to channel 1 (yes, the channel that is supposed to only be for the DUN commands, but I digress) with my .vcf file, and voila -- my car's phone book was, indeed, populated as expected.

Part II - Sexual Connections

At the suggestion of a friend (for informational purposes only), I read the book "Squirms, Screams, and Squirts: Going from Great Sex to Extraordinary Sex" by Robert J. Rubel, PhD. In truth, let me say I "sort of" read it, because there were a couple of parts I simply didn't bother reading as it was kind of inapplicable as far as I was concerned. I didn't really like the book much. While I did find some of it interesting (if not educational), and some a small amount entertaining, in general I found the book depressing. In my opinion, it had a tone about it like, "if you want great sex from a woman, here are the things you need to do to assure that it happens." The atmospheric preparations (aka "getting her in the mood" part) seemed written more for the friends-with-benefits crowd. If this is what is necessary to make women happy (or, happy enough for sex), then it's no wonder that I'm failing miserably (and I don't see myself changing anytime soon, either).

Personally, I'm a big fan of the "innocent exploration and empathy" method myself. That is, forget what you read about in these books -- you and your partner agree that you're allowed to explore each other's body and communicate your desires without criticism. If something you're thinking isn't appealing (maybe appalling?) to the other person, or if the timing isn't right, than that person kindly indicates that it isn't something that they're comfortable with (right now), and move-on. Think about how you'd feel if you were in your partner's place. This allows two people to connect on a deeper emotional level rather than just put-on a performance with the final act being "squirms, screams, and squirts." Good grief. (PS: Yes, I know that the book indicates that the idea is to please your woman, but I personally see its method as contrived. Sorry.)

I'm sure that my faithful readers are now having an embarrassing giggle at my expense. It is funny, in a way. What's even more funny is that I keep saying I don't do much reading outside of technical information. So there you go...

Part III - Science Connection

Remaining on the male-female relationship topic for a moment more, I want to thank another friend for suggesting the "dating site" called Science Connection (www.sciconnect.com). It is essentially a matchmaking site like many of the others out there, but the difference is that this one is geared toward the scientific types, is not free, and lacks the anonymity of the usual dating sites. After everything else I've seen before, I was refreshed to see that much of what I saw on this site (there's a wealth of useful information in their Member Polylogue section) helped counteract a lot of the relationship nonsense I've experienced lately that has only served to discourage, confuse, and frustrate me. It's worth checking out but I'm still not sure if I'm going to join (I'm getting over a weird woman and a depressing book yet). This information came, of all places, from an ad in Scientific American magazine.

Part IV - Zombies

A fair amount of my work last week was in the prevention of zombies ... zombie processes that is. Zombie processes on a UNIX-like system is a process (a "child process") that has terminated for some reason, but the parent process (the one that started it) has not yet acknowledged that the process has ended. The acknowledgment is necessary so the parent process can determine why the child process terminated (even if the software running as the parent doesn't really care). Zombie processes take up process slots, are annoying, and persistent ones are the result of a software bug. Think of it as a connection between a parent and child process that can only be severed once the parent process has gotten closure.

The new version of Asterisk (the open source phone system software we're using) had such a bug in it that prevented the proper checking of child process termination states, and created a load of zombies. I discovered the problem, reported it as a bug, collaborated with someone on a fix, but the fix they proposed didn't entirely fix the problem for us. After a fair amount of work, I finally came up with a not-so-elegant solution that appears to fix the trouble.

In any case, I thought it was interesting to indicate that last week I killed a lot of zombies. Kind of sounds like I've become a Ghostbuster (I ain't afraid of no zombie).

On that note, I conclude all the connections for tonight.

1 comment:

JC said...

I like how you transition from a Linux 'bonding sequence' to sexual connections. Heh.

I also liked that you critiqued this book, rather than swallowing it whole. As prudish and disinclined to discuss sex with anybody as I am, I will say that I read a great article (somewhere, can't remember now) about women being responsible for their own - ahem - pleasure. You know. Rather than waiting for someone else to 'make it happen', that we need to be aware of what works for us and to collaborate to make sure it happens when we want it to. Wish someone would've told me that 15 years ago.

The zombie thing is cool. Seems like it would be really gratifying, finding and terminating them. Kind of like deadheading spent flowers in the garden, which I can completely get obsessed with when I'm in that kind of obsessive/compulsive mood.