Eponymous
   



About
My Infrequently Updated Blog. The web-based journal of M. Forde, computer nerd, endurance athlete, and DeLorean owner


contact

Subscribe
Subscribe to a syndicated feed of my weblog, brought to you by the wonders of RSS.

Flavors
There's more than one way to view this weblog; try these flavors on for size.

  • index
  • circa 1993
  • Sections

  • main
  • musings
  • running
  • DeLorean
  • code
  • unix
  • album
  • TBM
  • Archives

  • 2022
  • 2021
  • 2020
  • 2019
  • 2018
  • 2017
  • 2016
  • 2015
  • 2014
  • 2013
  • 2012
  • 2011
  • 2010
  • 2009
  • 2008
  • 2007
  • Disclaimers, Copyrights, Privacy, Etc.

  • ToS
  • Copyrights
  • Links

  • olix0r.net
  • netmeister.org
  • Giraffes
  • Eat. Run. Sleep.

  •        
    20 Jul 2016 08 Jul 2016

    X11 Mouse Cursor Themes
    Starting after installimg the binary nvidia drivers on both my laptop (Quadro K1100M) and my workstation (GeForce GT 630) Blackbox was defaulting to a mouse cursor that was suboptimal, a black, notched triangle.

    The settings in the Xresources for the mouse cursor theme are honored by XDM at the graphical log in, but when Blackbox or Fluxbox start, the cursor would change to the black notched triangle. TWM honors the settings in Xresources, but TWM is just a little too minimalist, even for me.

    But there's a simple fix!

    Create a file in your home directory (if it doesn't already exist) .icons/default/index.theme. In this file, add the following lines:

    [Icon Theme]
    Inherits = polarblue
    

    where polarblue is the name of the X11 mouse cursor theme you wish to use. FreeBSD installs many of the X11 cursor sets into /usr/local/lib/X11/icons/, your Unix flavor may be different. In theory, you can also install new themes of your choosing into ~/.icons/ and use those without the need for any elevated privileges.

    Additionally, there's the option of creating a .Xdefaults file in the home directory and adding the line
    Xcursor.theme: polarblue
    

    Again, where polarblue is the name of theme you want to use.

    [/unix] [permanent link]

    18 Jun 2016

    FreeBSD Unix on Dell Precision M4800
    I installed FreeBSD 10.3 on the laptop I recently acquired and almost eveything worked out of the box. The gigabit ethernet and wi-fi coards worked fine and by setting the BIOS to discrete graphics only, the nVidia Quadro was recognized.

    I installed the binary driver from nVidia, because they support FreeBSD because they're awesome like that. The nvidia-xconfig(1) program was useful to streamline the process of getting X.org to use the Quadro.

    There were a few things that did need some tewaking though. First there's the sound card. Because the quadro supports HDMI (in addition to VGA and DisplayPort), it includes an HDA-compliant sound card. This card is recognized before the primary HDA-compliant sound card in the machine, the one that's actually connected to the speakers.

    I did some research and there were some suggestions about using sysctl(8) to control soundcard GPIO pins to connect the nVidia sound device to the speackers but what ultimately worked was using sysctl(8) to change the default primary sound device to the dedicated card. There were a few ways to make this happen but the one I found that actually worked was to place sysctl(8) command lines in /etc/rc.local.

    First I found the device I wanted as the default:

    mforde@gaz:~> cat /dev/sndstat 
    Installed devices:
    pcm0:  (play) default
    pcm1:  (play)
    pcm2:  (play) 
    pcm3:  (play)
    


    Device pcm2 was the one I wanted so I added the following lines to /etc/rc.local
    sysctl hw.snd.default_unit=2
    sysctl hw.snd.default_auto=2
    


    Now when boot completes pcm2 is set to my default and sound "just works" and sndstat shows pcm2 as the default.

    I found ACPI support has some weirdness as ACPI support often does. What I found was that Suspend works from console, but resume doesn't... HOWEVER After I start X ACPI suspend and resume work just fine. Normally I prefer to boot into a console and only start X if I really need it, but because I want suspend and resume to work "by default" I've enabled X to start at boot by allowing the xdm console in /etc/ttys.

    But this had one last issue. See, when manually starting X, I added the -dpi 143 option to get graphics and text to be appropriately sized for my screen. XDM needed to know about this.

    This probably wasn't the best place to do it, but I edited /usr/local/lib/X11/xdm/XServers and modified the call to X(7) to add the -dpi 143 option. Now when Xdm loads at start up, the DPI is set correctly.

    The function keys for adjusting the screen brightness don't work; however, xbacklight(1) works just fine. Similarly the volume keys don't work but I can adjust the volume quite easily with aumix(1).

    I've submitted my dmesg output to NYCBUG's dmesgd repository.

    I suppose I've posted this for two reasons. The first is so I have a record of how I eventually got these little things working in case I have to do it again. The second is in case anyone has similar issues with their hardware; if they happen to stumble upon this, it might give them some hints.

    [/unix] [permanent link]

    25 May 2016

    Remapping Keys in Vim
    While I love the keyboard on my relatively new Dell M4800, I'm not particularly fond of the placement of the Page Up and Page Down keys to the left and right of the Up arrow, and above the Left and Right arrow keys. I find myself accidently hitting those keys too frequently while editing code and jumping all over the file.

    So I remapped them. It was quite simple, because Vim is awesome. I added the following lines to my .vimrc file:

    map <PageUp> <Up>
    map <PageDown> <Down>


    This turns Page Up into a second Up arrow, and Page Down into a second Down arrow. For now, I'll leave it like that. I may remap them to the Left and Right arrows in the future. Or not.

    [/unix] [permanent link]

    19 May 2016

    How to Make VMWare suck less Tip #273
    Find the .vmx file for your VM and add a line

    bios.bootDelay = "15000"


    That gives you 15 seconds before the virtual machine launches the boot loader, giving you plenty of time to do things like change the boot order so you start from a recovery CD.

    [/unix] [permanent link]

    03 Nov 2014

    Things I love about vim

    • Tabbed interface in the 7.x line
    • Macro recording
    • Built-in sed
    • :make
    • Not needing to remember a thousand key combinations that require seventeen fingers to properly execute

    [/unix] [permanent link]

    14 Aug 2014

    Resetting Vim
    On occasion while I'm coding, I'll mistype something and vim's code autoindenting will stop honoring my settings. Likely, I've done something stupid that has disabled or modifying the settings from the defaults I set in my .vimrc file.

    If (when) this happens, Vim can be reset without exiting the procces by going into command mode and typing

    :source $MYVIMRC
    

    This reloads the settings of the .vimrc file without forcing you to restart the process, thus losing your place in your code.

    [/unix] [permanent link]

    17 Oct 2013

    ... On man pages, a mini-rant
    I really despise the linux man pages. They're useless at best and wrong at worst.

    From the man page for setsockopt: "The include file <sys/socket.h> contains definitions for socket level options, described below."

    1) The options are not "described below."
    2) No, that file actually doesn't contain those definitions.

    On the other hand... The FreeBSD man page for setsockopt does actually describe the options and under FreeBSD the <sys/socket.h> file does indeed contain the definitions.

    [/unix] [permanent link]

    16 Oct 2013

    [mini-rant]
    I hate bash. I hate it. I hate how it bastardized bourne by adding half-assed implementations of features from ksh and tcsh.

    [/unix] [permanent link]

    12 Oct 2013

    Problems with loader.conf

    First the background. The story of how I got into this mess:



    I'm trying to get ACPI working on my laptop under FreeBSD. Specifically, I'm trying to get Resume to work properly. Suspend works, and resume seems to partially work. The fans spin up, the keyboard's backlight comes back on, but no screen. And without video, it's a little hard to figure out what's going on.

    ACPI works great on my server. It's running the same FreeBSD 9.1 x86-64 build that the laptop is, but the biggest difference is that it's an intel motherboard. The laptop is an Alienware, for our purposes, I might as well just call it a Dell.

    I started comparing the ASL output from both machines and noticed some things. First, the Alienware's ACPI implementation looks for the OS to be various forms of Windows or "Linux." The intel ACPI implementation also looks for these Windows variants and "Linux" but it has an additional OS string. It has an entry for "FreeBSD."

    I figured the easiest next step was to use iasl co compile the intel ASL source and load that DSDT onto the laptop.

    I calculated the odds it would work vs the odds I was doing something incredibly stupid... and I went ahead and did it anyway...

    I compiled the asl and I set /boot/loader.conf to override the DSDT with the intel one I had just compiled and I rebooted. At first everything was good. The machine went down, I got the boot loader, and the FreeBSD kernel started to load. Seconds into the kernel load, it rebooted itself. After the second time, I powered off and tried a cold boot. Same problem just as I had feared.

    Now i was in a situation where I couldn't successfully boot because of an error in loader.conf I needed to find a way to edit it.

    And here's the solution:



    The FreeBSD bootloader, like many others, works in stages. At a certain point, it can be interrupted at which point it provides a set of simple yet powerful commands to control various aspects of the loading process. If you still have that default menu at load, I beleive the option to chose is 6. I disable that menu so during a brief countdown I hit escape before the boot loader turns control over to the kernel.

    Once in the boot loader prompt, I entered the following commands:

    unload
    load kernel
    boot
    


    Pretty simple right? The unload command does what it says, it unloads the kernel and any modules loader.conf had pulled into memory. The load kernel command grabs the kernel and loads it into memory... but only the kernel thus ignoring the broken DSDT in loader.conf. And of course boot tells the boot loader to continue booting the system.

    Once booted, I removed the bad DSDT from loader.conf.

    [/unix] [permanent link]

    21 Jun 2013

    Excluding directories while using pax(1)
    My primary disk is failing. There are large segments that are generating low level IO errors during read or write operations. Most of the files written to the bad area were under /usr/ports/ where the FreeBSD Ports collection is installed. A few files were under the web server's root.

    Figuring I'd take care of things prior to the disk actually failing to the point of it being irrecoverable, I purchased a new disk early. I installed it, partitioned it, and formatted it.

    To copy the data over, ignoring the areas that were causing the IO errors, I used mv to "move" the files from the web root under /usr/ports and used the following command as root:

    pax -rwvpe -s':/usr/ports/.*::gp' -X / /mnt/newdisk/

    The -X prevents pax from traversing into mount points that have a different device ID than the one on which it was started. This prevents an infinitely recursive loop from happening when the new disk's mount point would have been hit. It also prevents data on the non-failing disks from being copied as well.
    the -s option allows for sed search and replace scripts to be run. In this example, the : is used as the delimiter and any path matching /usr/ports/* is replaced by a null string. With this replacement all directories under /usr/ports are excluded from the copy.

    [/unix] [permanent link]

    28 Aug 2012

    freebsd-update
    I'm attempting to update my laptop from FreeBSD 9.1-Beta1 to 9.1-RC1. The freebsd-update(8) utilitly was reporting an error finding the public key. A quick search found this thread. As per tangram's suggestion, I used

    env UNAME_r=9.0-RELEASE freebsd-update upgrade -r 9.1-RC1

    and then the update began working.

    [/unix] [permanent link]

    01 Jun 2012

    Fun little alias
    I use a console based RSS reader written in Ruby. It crashes often and will delete my list of feeds in the process. It also has a tendency to not fully exit, leaving a ruby process sitting in the background soaking up close to 100% CPU time. For such occasions, I've added the following alias to my .cshrc file.

    alias killraggle kill -9 '`ps ax|grep raggle|grep -v grep|awk '\''{print $1;}'\''`'

    [/unix] [permanent link]

    01 Dec 2010

    FreeBSD 6.4 EoL
    As of yesterday, FreeBSD 6.4, and with it the entire 6.x branch, has reached its End-of-Life. It's time to upgrade (or maybe upgrayedd, for a double dose of something-or-other).

    So herein lies the problems. Months (years?) ago, I attempted to upgrade tak to FreeBSD 7.2. I plugged in a SATA disk into my workstation, installed the OS, reconfigured all the daemons, services, and functionalities tak has running, copied over a snapshot of all the data, and then edited the fstab to match the device names as they'd exist on tak.

    I removed the IDE root disk and installed the new SATA disk and tak and watched the kernel fail to find the root disk. Or the other SATA disk in tak.

    Based on the bug reports in the FreeBSD Gnats system, and various conversations in the mailing list, it seems Asus, who made the motherboard in tak, used a slightly non-standard SATA implementation on this particular board. Between the 6.x and 7.x line, some work had been done on the SATA drivers in FreeBSD and mad them more standards-compliant (a good thing). This, however, broke SATA on this Asus board.

    Tak is about 6 years old now, and other than some over heating issues, serves its purpose well. So do upgrade to FreeBSD 8.x on an IDE disk and replace the other SATA disk with another ATA disk, or do I build a new, lower-power, higher-performance system?

    If anyone actually reads this, feel free to use the new comments feature to give me feedback. I think it's working.

    [/unix] [permanent link]

    18 Nov 2009

    SATA Weirdness update
    A BIOS update from Intel corrected this issue.

    [/unix] [permanent link]

    02 Oct 2009

    Gmail and mutt
    I like mutt. Of all the mail clients I've used over the years, it sucks the least. It works well with my mail server.

    Despite having my own domain and mail server, I still use gmail for certain things; things I don't mind being retained for 3 years after I delete them, or more specifically, things I want retained for 3 years after I delete them.

    I don't like the gmail web interface. I find checking my gmail to be annoying because of this. I remembered gmail offering POP and IMAP. I figured I could use that to get my gmail. Shouldn't be too hard right?

    A quick search of Mr. Yahoo and Mr. Google gave me two good starting points: Lifehacker.com and MattCutts.com.

    I read the sites and the getmail man page and figured out what I needed to do. First I enabled IMAP for my gmail account. Next, I created the .getmail directory in my home directory then created a getmailrc file there. I want all gmail mail to be delivered to a specific mbox file without going through my normal mail delivery channels. The contents of the getmailrc file are quite simple:

    [retriever]
    type = SimpleIMAPSSLRetriever
    server = imap.gmail.com
    username = username@gmail.com
    password = usernamespasswordgoeshere
    mailboxes = ("inbox",)
    
    [destination]
    type = Mboxrd
    path = /usr/home/mforde/Mail/GMAIL
    
    The retriever section defines how getmail will retrieve the mail. In this case it uses IMAP over SSL to connect to imap.gmail.com. The mailboxes setting can be used to specify only certain gmail labels to retrieve, but I want anything in the inbox.

    The destination section tells getmail what to do with the mail once it has grabbed it from gmail. This configuration dumps it into an mbox file I've named GMAIL.

    I chose IMAP over POP because of the slightly-less-than-documented "feature" of gmail only allowing 99 messages at a time over POP.

    So to get the initial batch of 7000+ emails, I ran
    > getmail -vvv -l 
    
    to get verbose output and to leave messages on the gmail server. When that was done I pointed mutt at the GMAIL mbox and like magic, there was my gmail, organized nicely in my terminal.

    Now, I want to check to get the latest mail fairly often, and I don't want to download messages already copied over. To accomplish this, I added a crontab to run every 10 minutes and invoke
    getmail -l -n -q
    
    This tells getmail to leave copies on the server, only get new messages it hasn't already retrieved, and be quiet about it.

    This has worked out well for me. If you're interested in setting up something like this, I highly recommend reading the article at matcutts.com. That article also links to several sample getmailrc files.

    [/unix] [permanent link]

    25 Aug 2009

    FreeBSD 8 Beta 3 Available
    FreeBSD 8.0 Beta 3 is now available for download. The final release is expected in about a month.

    [/unix] [permanent link]

    27 Oct 2008

    BSD v. GPL
    Jason Dixon gave a talk at this year's NYCBSDCon entitled "BSD v. GPL (a.k.a. not the sequel to "BSD is Dying")." It's a humorous look at the differences between the licenses and their supporters. Despite the humor, he made some good points.

    You can find a copy of the presentation at The Dixon Group website.

    [/unix] [permanent link]

    17 Sep 2008

    Mailman
    The other night I installed mailman on my server. I integrated it into the apache configuration and restarted that. The mailman web interface became available as expected.

    I used the web interface to subscribe to the one list I had set up and I received an email asking me to confirm my subscription. I went to the included link, and all seemed to be good.

    Another person joined the list successfully, then sent an email to the list. This email never arrived in her inbox. She told me about it, and I checked only to find I did not have a copy either. I sent a mail to the list and promptly received a message saying that [listname] was not a valid recipient at the domain.

    That's when I realized I had forgotten to tell the mail server (postfix) about mailman. I had told apache about mailman, and mailman about postfix, but not postfix about mailman.

    I used mailman to create an alias database for its single list, then updated postfix's configuration to use that as one of its alias maps. All seems to be working now.

    In conclusion, I learned two things. One is always test your configuration before telling people it's ready. The other is, "I'm an idiot."

    [/unix] [permanent link]

    18 Aug 2008

    FreeBSD 7 SATA Weirdness
    Over the weekend I installed the x86-64 build of FreeBSD 7 on my workstation, dib. I haven't had time yet to configure everything to my liking yet, but almost everything works.

    The one really annoying issue centers around a SATA DVD burner. When this device is attached to the primary SATA controller (ICH7), the system refuses to boot from the hard drive. It reports that no system disk has been found. I've tried all of the SATA settings options in the BIOS and none work.

    If I connect the SATA burner to the secondary Marvell "RAID" controller the system boots from the hard drive without issue. In Windows, this requires another driver (which for some reason installed a copy of apache along with it). Under FreeBSD 7; however, this second controller seems to be currently unsupported, leaving me with only the IDE burner available.

    I may spend the $20 and get another IDE burner and just forget about the SATA issue, but I really would like to know what the problem is. If any one has any idea why the system would fail to boot from a SATA hard drive when a SATA optical drive is attached, please email me and give me some insight into this issue. Maybe the Unix category wasn't the best for this. I spent more time discussing the hardware/BIOS weirdness than the installation or configuration of FreeBSD7. In fact, FreeBSD 7 isn't a very good title for this either. I'm going to change that.

    [/unix] [permanent link]

    13 Dec 2007

    chdir(2)
    So today at work another developer many years my senior, with many more years experience than I, came to me with a Unixy problem.
    "When I have a program, how can I have it so the current working directory for all processes it starts isn't the one that it started in?"
    "chdir."
    "No, I want so that if this process starts something like ls, when ls stats 'dot' I want 'dot' to be the directory that process wants it to be, not the directory that process was started from."
    After about 15 minutes of me suggesting chdir while he said that's not what he wanted but then describing chdir, I finally wrote something along the lines of the following

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    int
    main (int argc, char *argv[])
    {
      system("/bin/pwd");
      system("/bin/ls");
      chdir("/tmp");
      system("/bin/pwd");
      system("/bin/ls");
      chdir("/etc");
      system("/bin/pwd");
      system("/bin/ls");
      chdir("/");
      system("/bin/pwd");
      system("/bin/ls");
      return 0;
    }
    

    I compiled that, ran it, showed him the output. He said, "Yeah, that's what I want to do."
    I showed him the code.
    "chdir does that?"

    [/unix] [permanent link]

    08 Dec 2007

    Alpha
    Due to the power failure, there was the loss of several hours of work. Last night I installed FreeBSD 6.2-RELEASE on an old DEC AlphaStation 200 I have. I had started building a new, smaller kernel for it around 23:30 last night. It had not completed by the time of the power outage. I have restarted that build.
    Any one reading this would reasonably ask, "Why are you not as confused/angry/annoyed with a compile that was not finished in 7 hours as you were about one that took 3 hours?"
    The answer is simple. This AlphaStation is powered by a 100MHz DEC Alpha EV4 CPU and has 64MB of RAM. To the best of my knowledge, DEC made this machine around 1994 or 1995. I expected the build to take a long time; the machine is around a dozen years old.

    [/unix] [permanent link]

    06 Dec 2007

    How long does it take to build a linux kernel?
    It has been a number of years since I built a linux kernel. Slackware 9.1 was the last GNU/Linux distro I used before switching back to BSD. Tonight I put together a machine from some old parts (1.2GHz celeron with 256KB cache, 256MB RAM, 20GB hard drive) and installed Slackware 12. I customized a kernel configuration and attempted to build it. I don't remember the 2.4 kernel taking as long to build as this 2.6 kernel. It took nearly two hours. Granted, this machine is fairly old, but 2 hours? After I complete the tasks for which I needed this setup, I'm going to install an older Slackware with the 2.4 kernel and build that. I may also install FreeBSD and NetBSD and build their kernels. I'd like to get an idea how long it takes to compile other kernels on this rig.

    [/unix] [permanent link]


       
    Eponymous
    Eponymous
       



    About
    My Infrequently Updated Blog. The web-based journal of M. Forde, computer nerd, endurance athlete, and DeLorean owner


    contact

    Subscribe
    Subscribe to a syndicated feed of my weblog, brought to you by the wonders of RSS.

    Flavors
    There's more than one way to view this weblog; try these flavors on for size.

  • index
  • circa 1993
  • Sections

  • main
  • musings
  • running
  • DeLorean
  • code
  • unix
  • album
  • TBM
  • Archives

  • 2022
  • 2021
  • 2020
  • 2019
  • 2018
  • 2017
  • 2016
  • 2015
  • 2014
  • 2013
  • 2012
  • 2011
  • 2010
  • 2009
  • 2008
  • 2007
  • Disclaimers, Copyrights, Privacy, Etc.

  • ToS
  • Copyrights
  • Links

  • olix0r.net
  • netmeister.org
  • Giraffes
  • Eat. Run. Sleep.

  •        
    10 Dec 2010

    Hope
    'Cause your mornings will be brighter
    Break the line and tear up rules
    Make the most of a million times "no"

    [/musings] [permanent link]

    01 Dec 2010

    FreeBSD 6.4 EoL
    As of yesterday, FreeBSD 6.4, and with it the entire 6.x branch, has reached its End-of-Life. It's time to upgrade (or maybe upgrayedd, for a double dose of something-or-other).

    So herein lies the problems. Months (years?) ago, I attempted to upgrade tak to FreeBSD 7.2. I plugged in a SATA disk into my workstation, installed the OS, reconfigured all the daemons, services, and functionalities tak has running, copied over a snapshot of all the data, and then edited the fstab to match the device names as they'd exist on tak.

    I removed the IDE root disk and installed the new SATA disk and tak and watched the kernel fail to find the root disk. Or the other SATA disk in tak.

    Based on the bug reports in the FreeBSD Gnats system, and various conversations in the mailing list, it seems Asus, who made the motherboard in tak, used a slightly non-standard SATA implementation on this particular board. Between the 6.x and 7.x line, some work had been done on the SATA drivers in FreeBSD and mad them more standards-compliant (a good thing). This, however, broke SATA on this Asus board.

    Tak is about 6 years old now, and other than some over heating issues, serves its purpose well. So do upgrade to FreeBSD 8.x on an IDE disk and replace the other SATA disk with another ATA disk, or do I build a new, lower-power, higher-performance system?

    If anyone actually reads this, feel free to use the new comments feature to give me feedback. I think it's working.

    [/unix] [permanent link]

    25 Nov 2010

    Happy Thanksgiving
    I'm thankful for my friends and the support structure they provide.
    I'm thankful for my family. While they're not always supportive* they're always accepting.
    I'm thankful for my freedom, and the men and women protect that freedom.
    I'm thankful for running, and the years it's added to my life.
    Every Thanksgiving old mike would consume 1350 calories worth of Cool Ranch Doritos for breakfast before gorging at the traditional dinner. I'm thankful old mike's dead.


    *Running 50 miles in a weekend is not "running too much."

    I felt the need to document all that I cooked today.

    • regular stuffing
    • stuffing with sausage
    • cornbread stuffing (made from corbread I baked early in the week)
    • carrots with brown sugar, clove, nutmeg, and cinnamon (bake until awesome)
    • steamed broccoli
    • asparagus sauteed with garlic and lemon juice
    • baked sweet potatoes
    • mashed sweet potatoes
    • smashed potatoes
    • zucchini with pancetta, garlic, and onion
    • beer bread (oatmeal stout)
    • stuffed mushrooms
    • baked macaroni and cheese
    • mashed turnips
    • sauteed mushrooms
    • cheese lasagna
    • meat lasagna
    • roasted turkey

    I think that's everything.

    [/musings] [permanent link]

    14 Nov 2010

    2010 New York City Marathon
    One week ago, I ran the New York City Marathon. As noted many times throughout this blog, this race was something I've been working toward since December of 2008. This event was the culmination of nearly two years of hard work and dedication. And it was worth every single mile I've run over the last two years.

    At 9:40, the cannon was fired and the marathon started. Within minutes, I was crossing the starting line and running over the Verrazano Bridge. Not only was I running in the footsteps of the current world record holder and the first American to win New York in 27 years, I was running in the footsteps of legends.

    About three and half hours later, I entered Central Park for the last few miles of the race. I looked around and had the odd sensation that I was home.

    It's difficult to put into words the feelings of that day. Despite having completed three sanctioned marathons prior to this day, crossing the finish line was something I couldn't believe I was actually doing.

    It was absolutely amazing.

    [/running] [permanent link]

    13 Nov 2010

    Pre-Race Thoughts
    Last Saturday, I sent a letter to the Giraffes mailing list. I've decided to post here.

    In March of 2008, Brian told me I was running a 5K with The Giraffes. He didn't ask and he didn't give me a choice. Two days later I got off the couch, got on the treadmill, and started running. Six weeks later I ran my first race with this team. This team saved my life that day.

    Nine months later and a hundred and one pounds lighter, I got this crazy idea in my head. I decided I was going to run a marathon. I thought, if I'm going to run a marathon, I'm going to run the biggest marathon in the world. I'm going to run the New York City Marathon.

    I did some quick research about how to get in and found the 9+1 qualifying method. A couple of days later, I told Brian I was going to spend 2009 working toward guaranteed entry for the 2010 NYC Marathon. Almost immediately, he sent out an email to The Giraffes saying, "Mike and I are doing this and so are you." I'm paraphrasing, although it was quite close to that.

    So on January 10, 2009, five of us piled into the car and drove to Central Park on a frigid Saturday morning and began our journey with the Fred Lebow Classic.

    We continued to run, and picked up some new members along the way. Some with an impressive history of ultramarathons, and some just starting out.

    Those of us who first set out that day in January reached our goal and qualified for NYC 2010.

    At some point we decided we should run a marathon prior to NY, to get an idea of what we were really getting into. We chose Philadelphia, and for several Giraffes that day, it was our first. It was the day we joined the ranks of the one tenth of one percent of the population who can call themselves marathoners.

    While training for Philly, I fell in with a group of runners from my hometown and began running with them. At first it was short runs during a 5K training program they were running, but soon thereafter, they began including me in their longer training runs on the weekends. They introduced me to a number of other runners. Eventually I convinced (most of) them to sign up for the Giraffes mailing list.

    For the past two years, I've run with these people, the original Giraffes and the runners who have joined us along the way. And through it all, this team is what has kept me going. Through inspiration, through motivation, through friendships, through training runs and races, you've kept me going. You have been my support system.

    And now I sit here on the eve of the New York City Marathon, less than 24 hours from the start of the race, less than 24 hours from realizing our goal we set for ourselves so long ago.

    To all of you who have been with me for this journey in some way, shape or form... To those who got the team started and pulled me in, to those who saved my life... To those who persevered through qualifying races under grueling weather conditions with me... To those who got food poisoning with me from Macaroni Grill the night before the Scotland Run 10K... To those who got me through the last 5K of Philly... To those who made the 22+ mile training runs a little more bearable at the end... To those who have shown their support in any way they could...

    I offer you my eternal gratitude. I would not be where I am today without all of you. I love you all.

    One final note. To those of you joining me in tomorrow's running of the New York City Marathon... Kick ass and chew bubble gum.

    --
    M. Forde
    "Running never takes more than it gives back."

    [/running] [permanent link]

    30 Oct 2010

    It's been a while...
    I haven't updated this blog in quite some time. A lot has happened since the last post.

    First and foremost, I spent about two months volunteering as the Cross Country team's coach for the local Middle School. Due to budget cuts, all athletics programs were cut. The local Police Athletic League stepped up and volunteered to take over the programs. Many of the teachers who have coached in previous years did not want to do so now, so the PAL went looking for volunteers within the community.

    A friend of mine with whom I train put me in contact with the PAL and after an application and vetting process, I became a Rutgers Certified coach and began my duties.

    The team was relatively small, seventeen boys and six girls. Having never really worked with kids before, I was glad that this year's team was half the size of last year's; however I was still apprehensive about working twenty-three middle-schoolers. Thankfully, several parents helped me throughout the season. One in particular was there with me for almost every practice and every meet.

    I tried to emulate the aspects of my middle and high school coaches that I thought worked, and tried different approaches in an attempt to avoid the aspects I had never liked. I wanted to motivate and inspire these kids.

    I told them about my history as a runner: my experience in 8th, 9th, and 10th grade, my first 53-minute 5K on the treadmill in March of 2008, my marathons, my personal records, and my improvements over the last two years. I told them I would never make them do any thing I wouldn't do myself in training. And I ran with them. Whether the day's training was 100 and 200 meter repeats, running the course, "time on feet" running, or fartlek's, I ran along side them.

    During one session I was catching up to the lead group, the fastest of the 7th and 8th graders, and asked, "Are you really going to let an old man with bruised ribs keep up with you?" One of them turned and said, without breaking pace, "You're not that old and you run marathons."

    During the Cross Country season, in the last six weeks or so I've run a few races and set a few PRs. On September 19, I ran the Marathon Tune-Up 18 mile in Central Park. I set a new 18-mile PR at 2:27:34, taking 18:56 off my time from last year. Also of note, I didn't end up in medical being treated for hypothermia this year.

    The following week I ran the 5th Ave Mile. I shaved 9 seconds off from last year's race and 3 seconds off my previous best in training. My new mile PR is 5:25.

    About 2 weeks later I ran the Hartford Marathon. My friend and I got there very late the night before the race. Because we were stuck in traffic for about four and a half hours, my friend missed the on-site registration. He debated what to do while we went to dinner at a local tavern. I promptly felt sick after eating.

    The next morning we got and got ready to run. I still felt sick from the night before and threw up the previous night's meal shortly before we went to the registration packet pickup. I got my bib and timing chip and my friend failed to convince the race officials to let him enter. When he asked, "can I run unsanctioned?" the response of the somewhat sympathetic official was, "I can't tell you that you can." So my friend decided to run unsanctioned. After all, no one said he couldn't.

    We lined up in the corral. Despite the way I felt, I knew I had to go out there and run my best marathon. I had told the Cross Country team what Prefontaine had said, "To give anything less than your best is to sacrifice the gift." I had to go out there and try to PR. But as Yoda said, "Do or do not; there is no try."

    I started the race keeping the 3:45 pace group in my sights. My friend kept along side me for the first three miles then fell back a bit. I had some conversations with two runners in the pace group, Gavasker, the pacer, and Jen, a woman who was looking to BQ. I kept with them the whole way and finished in 3:43:32.

    Unbeknownst to me at the time, my friend dropped out at mile 8 and made his way back to the start/finish area. He was there at the finish line, waiting for me as I crossed the line just ahead of Jen who BQ'd with 2 minutes to spare.

    The next morning I went out with some other friends and ended up running another 24 miles putting me at 50 miles for the weekend. Monday evening I ran in a charity 5K with another friend, and then took a few days off.

    Since then, the Cross Country season has ended. They had their last meet, a few more days of practice, and then this past Wednesday they had team photos followed by an end-of-season pizza party.

    At the party the kids presented me with a plaque to say "thank you." I damn near cried when I unwrapped it and saw the photo taken at one of our practices. But if anyone asks, I'll deny that part.

    Plaque

    The 6th and 7th graders also asked me to come back and coach next year. During and since the season, I've run across some of the kids in town. Every time, they come up to me and say, "Hey coach!" And that means the world to me. It makes me think I've succeeded, that there's a possibility I've inspired them to keep running. Hopefully they'll love running as much as I do, if not more.

    I've encouraged the kids to enter our town's annual 5K next weekend and several of them have signed up. I'm looking forward to running with them again.

    [/running] [permanent link]

    31 Jul 2010

    If my calculations are correct...
    Over the course of the last two years and four months, I've changed considerably both mentally and physically. I lost 108lbs and then put on 6 while marathon training. This 6lbs was purely lean mass (muscle, bone density) and I'm now at about 6% body fat.

    Running is known to increase bone density, and the various forms of exercise I use in my training increased my muscle mass as well throughout this transformation. I've been curious to know just how much fat I lost.

    If my calculations are correct, throughout this process I lost 123.96 pounds of fat and gained 21.96 pounds of bone and muscle resulting in my current net loss of 102lbs.

    Why is this filed under the Running section? Because running was what enabled this transformation to happen.

    [/running] [permanent link]

    26 Jul 2010

    Damn, it feels good to be a gangsta..
    After I finished my run tonight, still in my soaked running gear, I walked directly to local grocery store for chocolate syrup and had the following conversation with the woman at the check out counter.

    her: Over ice cream or chocolate milk.
    me: Chocolate milk.
    her: Nothing hits the spot like a cold glass of chocolate milk.
    me: Especially after a long run.
    her: How far did you run tonight?
    me: Half marathon. My third in three days.
    her: God bless you. God bless you.

    Then, as I walked away she said, "Nice legs."
    "Thanks. I've worked hard for those."

    [/running] [permanent link]

    04 May 2010

    If all goes according to plan...
    This time tomorrow, my car should be on its way to Texas.

    [/dmc] [permanent link]

    02 May 2010

    2010 New Jersey Marathon
    I was registered for today's NJ Marathon in Long Branch. I lost a few weeks in training due to some IT-band issues, and earlier this week was stricken with a bout of bronchitis.

    I got down there today, and 30 minutes before the race start I did a quick quarter mile and decided I wasn't over the bronchitis enough to run a marathon today. It was difficult for me to be there as the race started, watching my chance at reaching my goals disappear. As the morning went on and clouds disappeared and the temperature rose, my thoughts changed.

    Not running today was probably the best and hardest decision I've made in a while. Often the right choices in life are not the easiest to choose, no matter the circumstances.

    [/running] [permanent link]

    26 Mar 2010

    Powergrabs
    Yay Socialism!
    That was sarcasm. Socialism is bad news. It leads to the government controlling every aspect of your lives. Take for example this story or a bit closer to home, this story.

    [/politics] [permanent link]

    22 Mar 2010

    2010 NYC Half Marathon
    Yesterday was my best half marathon yet. As I stood in the corral waiting for the race to start, the chill in the air was a welcome change from the heat and humidity of last year's race. The decision to move the race from August to March was a good one. The course is definitely a fun one. It starts with an 8 mile loop around Central Park before exiting onto 7th Avenue. From there, the route goes to 42nd street, through Times Square, and out to the West Side Highway where the course finishes near Battery Park.

    I started out with the goal of beating my time from last year. As long as I did better than 1:51:49, I'd be happy. I was hoping I'd finish within a minute or two of the half marathon PR I set back in January, but I wasn't counting on it.

    As I ran I looked at the split times, and roughly gauged how I was doing, trying to stay on target for something close to 1:37 finish, but primarily making sure I was doing better than last year's 1:51. At mile 8, just before exiting Central Park to head to Times Square, the clock time was about 59 minutes. I realized that the winner of the race was about to finish, if he hadn't already, and I hadn't even made it out of the park.

    This year's splits were much better than last year's.

    split20092010
    5K0:23:420:23:22
    10K0:47:320:46:09
    15K1:14:451:07:59
    20K1:46:091:29:28
    final1:51:491:33:26


    This is the first time I've run negative splits. What really amazes me is that not only was the second half faster, but every 5K split was faster than the previous. There was an excitement exiting the park. There was an amazing rush turning the corner onto 42nd street. The crowds were great, cheering every runner as we passed by.I remember around the mile 11 marker realizing I had a chance to PR, estimating my time at about 1:36, and picking up the pace a bit. I started passing people left and right. One runner saw me and yelled, "Go, man! Go!"

    Out of about 15 to 16 thousand people that signed up, 11,493 finished. I finished in 895th place; far, far, behind the winner who took home $20,000.

    Universal Sports had a live telecast of the event. I set the DVR to record it before I left, but I haven't had a chance to watch it yet. It likely focused primarily on the professionals who ran, including the Marathon world record holder, Haile Gebrselassie.

    This was a great race on a great day.

    [/running] [permanent link]

    12 Mar 2010

    Not a Paper Cup
    I recently ordered the Not a Paper Cup from ThinkGeek. It looks like a paper coffee cup but is made of ceramic. The lid is silicone instead #6 plastic. It should be awesome. It's not.

    Advertised as 12 ounces, it actually only holds 8 ounces. Right there, it's at most 66% as awesome as it should be. As one friend put it, "That is significantly less awesome."

    Now that I've used it I'll say that it's about 0% awesome and 90% suck with 10% fail.

    The silicone lid tastes, well, like silicone. It adds this horrible flavor to every sip. I like my coffee to have a strong coffee flavor, not a strong coffee plus silicone flavor. Maybe that's just me...

    The double walled construction of the cup, in theory would add an insulating layer to keep the coffee warm longer than a regular paper cup. This was not the case and in a test yesterday, I found that the standard paper cup kept the coffee warm for about an hour and a half longer than the Not a Paper Cup.

    In summary:

    • Holds 8 ounces instead of 12 (as advertised).
    • Silicone lid adds odd and horrible taste to coffee.
    • Doesn't keep the coffee hot as long as regular paper cups.


    • Don't buy one. If some one gifts it to you, well then that person must hate you or not understand coffee.

      [/musings] [permanent link]

    Coogan's 5K - Update
    Officially I ran my best 5K to date. I finished in 19:41 averaging 6:20 per mile.

    It was a rather hilly course, starting at 173rd and running up to the Cloisters. After circling the museum, the same route was taken back to 173rd.

    On Saturday I said I was going to PR. I was told that was a bit a of a lofty goal given how hilly the course was. Sunday morning I woke up with a bit of discomfort after gorging on sushi the night before and thought I might not do well.

    As I stood in the corral, those feelings changed. I knew I was going to PR. And I did.

    [/running] [permanent link]

    07 Mar 2010

    Coogan's 5K
    Unofficially I just PR'd at 19:44.

    [/running] [permanent link]

    02 Mar 2010

    1267567528
    6790 test.

    --
    ==================================================================
    This mobile text message is brought to you by AT&T

    [/mobile] [permanent link]

    21 Feb 2010

    Run for Haiti
    Yesterday I posted on the mobile section that I had finished the race coming in number 256 of 8704. The statistics have been updated and I need to post a correction. I finished number 266 of 9421 at a time of 27:17.

    This was of course about a minute slower than the Grid Iron classic where I PR'd, but I finished in the top 2.8% this time.

    Yesterday's race raised over $400,000 for the relief effort in Haiti, with over 10,000 people registering and making donations.

    Yesterday's race was also the first time I had run in a week. Last Saturday (February 13) I ran 31.73 miles. With the upcoming race schedule and training for the New Jersey and Pocono Marathons in May, I figured it would be best to actually rest.

    It felt good to run again. I missed it.

    [/running] [permanent link]

    20 Feb 2010

    1266681322
    256/8704. Not a PR time, but not a bad showing.

    --
    ==================================================================
    This mobile text message is brought to you by AT&T

    [/mobile] [permanent link]

    07 Feb 2010

    1265591788
    Game's over! The Who just won!

    --
    ==================================================================
    This mobile text message is brought to you by AT&T

    [/mobile] [permanent link]

    04 Feb 2010

    A couple of things....
    First, am I the only one who gets freaked out when seeing a Toyota in my rear-view mirror?

    Second, google calculator has failed me. I keep trying to do conversions using Joules and it keeps giving me search results for physics forums with no calculator results. WTF google? WTF?

    [/musings] [permanent link]

    02 Feb 2010

    On sunday I ran...
    27.22 miles because I felt like it.

    I woke up Sunday morning, ran some errands, and then met a friend for a run. While I was waiting for him, I ran a one mile warm-up. Then he and I set out and ran a half marathon.

    I felt pretty good afterward, so a little while later I set out to do another 10K. That 10K turned into an 8.4 mile hill work out.

    I realized I was only about four miles shy of a marathon at that point and I still felt really good. After a short break I went out one more time. Four and a half miles later, I was back home and had logged the most miles in a single day that I had ever done, breaking my previous record by a mile.

    It felt absolutely amazing.

    Can every body feel like I do? Can't you can't you trip like I do?

    [/running] [permanent link]

    31 Jan 2010

    It's gotta be the shoes
    Yesterday I picked up the pair of shoes in which I will run the New York City Marathon.

    [/running] [permanent link]

    24 Jan 2010

    1264352606
    1:37:50. New half marathon PR.

    --
    ==================================================================
    This mobile text message is brought to you by AT&T

    [/mobile] [permanent link]

    10 Jan 2010

    Avatar
    Here's my review of the movie.

    There's something about the giraffes if you believe we're apples and oranges. I was disappointed by the ketchup, but the mustard was surprisingly good.

    [/musings] [permanent link]

    09 Jan 2010

    1263048598
    Qualifier #1 done.

    --
    ==================================================================
    This mobile text message is brought to you by AT&T

    [/mobile] [permanent link]

    07 Jan 2010

    I Hate People
    http://www.wpix.com/news/wpix-dog-beaten-in-elevator,0,193301.story

    I saw that on the news last night and it made me sick. There is no reason for this. This is just senseless abuse.

    It'd be nice to see him in prison getting kicked around his cell by another inmate, but that likely won't happen. Under the current laws, he can only be charged with a misdemeanor.

    Haven't there been studies indicating a correlation between abusing animals and becoming a serial killer?

    [/musings] [permanent link]