Why and How to use OpenDNS.com

I’ve been recommending to friends and family that they use OpenDNS.com to help safeguard their homes from adult content. A few things have changed since I originally started using their service and I thought I’d write up a little article to help everyone understand.

Lets start with the “why”. I’m not going to focus on the reason to have some filtering technology. Instead, I want to help educate on the different types of filters and why I prefer OpenDNS. Basically, there are two types of technology being used to filter content. One methodology is to install software on a computer that monitors the computers network activity and redirects filtered content to a blocked page. The second approach is to not intrude upon the computer’s installed programs, but to handle the filtering at a network level. OpenDNS.com falls into the second category. I prefer it because I don’t have to manage every computer in our home and I don’t have to have software that potentially slows my computer down.

Continue reading

Posted in System Administration | Tagged , , | 2 Comments

Simplified Envelope Budgeting for GnuCash

OK, out of popular demand, I’ve decided to revisit this topic. My original Better Budgeting with GnuCash article is still highly relevant and worth a read for the background if you haven’t read that yet.

The method I proposed in my 1st article works. I used it for over a year with great success. After some time though, I decided we could simplify a few things.

Continue reading

Posted in Miscellaneous | Tagged , , , , | 37 Comments

How to export 1080p HD video with iMovie 08

So I’ve been playing around with video a bit more lately. I have two different cameras that record natively at 1920×1080 (1080p). I can get my videos into iMovie just fine, but one thing that always annoyed me is that when I went to share a move I created with iMovie, the default options were pretty pitiful.

Continue reading

Posted in Miscellaneous | Tagged , , , , , , | Comments Off on How to export 1080p HD video with iMovie 08

Google map with Utah Repeaters

I thought it would be helpful to visualize where all the radio repeaters are in my area. I found a lack of map information available for this sort of thing but I found readily available CSV data with the information. Google Fusion Tables to the rescue!

I tried to embed the map in this post but for some reason the google map terrain data wasn’t showing up when I combined everything with the template. For the time being, just access the separate page.

Utah Repeater Map

Enjoy

Posted in Miscellaneous | Tagged , , , | 12 Comments

YUI Image Uploader works with YUI 2.8.1

I thought I’d better double check that the image upload still works fine with YUI 2.8.1 If you haven’t read the original YUI Image Uploader page, start there. After that, you can use this page for an example getting the script to work with the latest YUI.

Continue reading

Posted in Programming | Tagged , , , , , | 15 Comments

Debugging Linux Kernel Modules with VirtualBox and KGDB

I found a few different pages with information on debugging a Linux kernel with kgdb. There wasn’t a single source with all the information I needed to get set up and working though. So here is how I set things up on my Linux host machine to debug a target Linux kernel running in a VirtualBox VM.

  1. Set up the virtual machine

    When setting up the VM, add a serial port and set it to use Host Pipe. You can check the box to have VirtualBox create the pipe too. Give a path to the file on the host where you want the pipe. This will become the virtual serial console that gdb connects to on the host machine.

    Install VirtualBox with a VM containing the kernel you want to debug. Build the kernel with debug symbols, kgdb support, sysrq keys

    Kernel hacking-> 
       [*] Magic SysRq Key
       [*] Kernel debugging
       [*] Compile the kernel with debug info
       [*] KGDB: kernel debugging with remote gdb ->
          [*] KGDB: use kgdb over the serial console
    

    Build your kernel and install the modules like you would any other kernel.

    Add kgdboc=ttyS0,115200 to the kernel paremeters (ttyS[0-3] depending on which COM port you choose in the VM setup.)

    Copy the vmlinux (uncompressed version to the host machine).
    Also copy the .ko for the module you want to debug.

    Start VM.

  2. Get the target VM ready for debugging

    After your module is inserted, you need its .text address so that you can see the source lines in gdb.

    cat /sys/module/XXX/sections/.text
    0xffffffffa00c0000
    

    When you’re ready to start a debug session:

    echo g > /proc/sysrq-trigger
    
  3. Ready the Host to connect to the VM

  4. You need to convert the pipe that VirtualBox created to a serial port like object. socat does that job:

    > socat -d -d /path/to/pipe pty &
    2010/04/29 12:18:44 socat[4411] N successfully connected from local address AF=1 "\0\0\0\0\0\0\0\0\0\x02\0\0\0\0[\0\0\0|\0\0\0w"
    2010/04/29 12:18:44 socat[4411] N successfully connected via C\xE66
    2010/04/29 12:18:44 socat[4411] N PTY is /dev/pts/3
    2010/04/29 12:18:44 socat[4411] N starting data transfer loop with FDs [3,3] and [4,4]
    

    Notice that your dev is pts/3.

    Now we make a .gdbinit file so you can start gdb without typing the commands every time.

    file vmlinux
    set remotebaud 115200
    target remote /dev/pts/3
    

    You’ll change your pts setting to whatever is relevant.

    start gdb.

    On the target, when you send the g to sysrq-trigger, you should drop to a breakpoint in gdb.

    Next job is to load the module symbols.

    > add-symbol-file  <.text address>
    > b some_file.c:NNN
    > c
    

    Now you can set breakpoints or press c to continue. The target should continue until it comes to a breakpoint or encounters an error.

A last tidbit, when I wanted to close gdb on the host, use detach instead of quit.

Happy debugging!

Posted in Programming | Tagged , , , , | 4 Comments