Riding the D-BUS

D-BUS is a message bus system, a simple way for applications to talk to one another.

I was looking for a better way of doing inter-process communication (IPC) and I stopped to take a look at D-BUS. After playing with it for a few days and seeing it in action via beagle, I decided it was worth using.

I’ve started work on xchat-dbus, and X-Chat plugin to expose plugin functionality via D-BUS. The advantage to this is that other applications could interface with X-Chat without having to use a plugin and then find a way to communicate with that.

This started out as an idea to create a simple applet that would provide alerts via the notification area. I found one such applet, but it was overly complicated and didn’t work well. I started to write an X-Chat plugin to do it, but then I realized how much easier (and ultimately more useful) a D-BUS plugin would be. Plus, this will let me dig deeper into D-BUS and hopefully I’ll get a better grasp on it’s internals.

The state of wireless

I finally got around to patching the orinoco wireless driver on my laptop, so I threw in my spare Orinoco gold and fired up kismet for the drive home. The ~15 mile drive yielded some interesting results:

  • Total Networks: 264
  • Unique SSID: 156
    • No SSID: 29
    • Netgear: 9
    • Linksys: 36
    • Default: 19
  • Total Networks with WEP: 122
  • Total Networks without WEP: 142
  • % Networks with WEP: 46.2%
  • Total Networks Factory Default: 8
  • % Networks Factory Default: 3.03%
  • Total Clients: 90
  • Total Packets: 11975

The only thing that surprised me was the percentage of networks that actually were using WEP. The Aurora/Naperville, IL area is fairly tech-heavy, so the number of networks I found in one trip is to be expected. I’m going to continue this experiment over the next week or so and cover a few different routes to and from work. If I can get my gps working properly, I’ll even be able to capture geographical data to go with it.

Posted in Uncategorized | 1 Reply

Mono, HttpWebRequest and https/ssl

I just spent the better part of a week tracking down bugs in Mono and a custom application of mine (which I’m porting to Mono). I was having a rough time with some code working against a secure server. After reading this, this, and this, it finally works.

Bottom line: If you’re working with HttpWebRequest and trying to connect via SSL, you need to make sure that you tell System.Net to trust all certificates, especially if you’re developing a non-interactive daemon. There’s nothing more frustrating then spending hour upon hour tracking down why your code won’t work like it did under .NET, only to find out a few lines of code fixes it straightaway.

My first Mono patch

I’ve been working on porting some of my code over to run under Mono and Linux. Yesterday, in the middle of a particularly scary class library, I started to encounter some strange behavior I hadn’t seen before. Cookies that should have been returning simply weren’t. After a little digging (and with the help of tcpdump) I was able to isolate it to a problem in the Mono runtime.

After several hours of hacking and debugging, I was able to file a bug report, including patches to solve the problem.

Who knows, maybe I’ll get to see my name in the Changelog. That would be kind of neat.

Posted in Uncategorized | 1 Reply

prj2make-sharp

I went looking for Jackson Harper’s original Visual Studio project converter, proj2make. I remember bugging him about it at one point long ago, and even sending in a little patch for it. It looks like it’s now been superseded by proj2make-sharp.

I’ve been recently converting some of my projects over to Mono. Writing the Makefile to build my projects is easy, but I couldn’t find any example of how to consume a web service, which I need to be able to do. It looks like prj2make-sharp does the trick, or at least gives me an idea of how to do it.

Cool stuff.

Posted in Uncategorized | 1 Reply

Rhythmbox w/iPod progress

I took a week or so off of iPod work to take care of other pressing issues. Now that things are finally settling down, I sat down to finish what I started, namely, support for the iPod name in Rhythmbox.

screenshot

Nothing fancy. It reads the DeviceName off of the iPod and sets it as the name of the iPod in the sources list. This officially becomes my first patch to Rhythmbox. Wee, I’m so excited. I have more iPod-related work I want to do, including:

    Make iPod name editable
    Drag and drop files to the iPod
    Syncronize the iPod
    Playlist support
    Whatever else sounds like a good idea

It’s a start. I wanted to start with a small change, so that I could get comfortable with the internals of Rhythmbox. I’m feeling pretty good about it now. It’s going to be a happy day when I plug in my iPod and sync with my music library with Rhythmbox.