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.

  •        
    15 Dec 2023

    1702672835
    ---boundaryRMS123
    Content-ID:<0000>
    Content-Type:text/html
    Content-Disposition:inline
    Content-Transfer-Encoding:base64

    PGh0bWw+PGhlYWQ+PHRpdGxlPlQtTW9iaWxlPC90aXRsZT48L2hlYWQ+PGJvZHkgbWFyZ2lud2lk
    dGg9IjAiIG1hcmdpbmhlaWdodD0iMCIgbGVmdG1hcmdpbj0iMCIgdG9wbWFyZ2luPSIwIiBiZ2Nv
    bG9yPSIjZmZmZmZmIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iNjAwIiBjZWxsc3BhY2luZz0i
    MCIgY2VsbHBhZGRpbmc9IjAiPjx0cj4KCQkJCSAgICAgPHRkIHdpZHRoPSI2MDAiIGNvbHNwYW49
    IjIiPjxpbWcgc3JjPSJjaWQ6ZG90dGVkbGluZTYwMC5naWYiIHdpZHRoPSI2MDAiPjwvdGQ+CgkJ
    CQkgICAgIDwvdHI+PGJyPjx0cj48dGQgd2lkdGg9IjYwMCIgY29sc3Bhbj0iMiI+PGltZyBzcmM9
    ImNpZDp0bW9iaWxlc3BhY2UuZ2lmIiB3aWR0aD0iNjAwIiBoZWlnaHQ9IjIwIj48L3RkPjwvdHI+
    PHRyPjx0cj48dGQgY29sc3Bhbj0iMSIgYWxpZ249ImxlZnQiPk9uZSBsYXN0IHRyeSA8L3RkPjwv
    dHI+IDxUUj4KICAgICAgICAgICAgICAgIDxURCB3aWR0aD0zNTAgY29sU3Bhbj0xPgogICAgICAg
    ICAgICAgICAgPElNRyBzcmM9ImNpZDp0bW9iaWxlc3BhY2UuZ2lmIiB3aWR0aD0iMzUwIiBoZWln
    aHQ9IjMwIj4KICAgICAgICAgICAgICAgIDwvVEQ+CiAgICAgICAgICAgICAgICA8L1RSPgogICAg
    ICAgICAgICAgICAgPFRSPgogICAgICAgICAgICAgICAgPC9UUj4KICAgICAgICAgICAgICAgIDx0
    ZCB3aWR0aD0iMjQwIiBiZ2NvbG9yPSIjZjJmMmYyIj4mbmJzcDs8L3RkPgogICAgICAgICAgICAg
    ICAgPC90cj48dHI+PHRkIHdpZHRoPSI2MDAiIGNvbHNwYW49IjIiPjxpbWcgc3JjPSJjaWQ6Zm9v
    dGVyLmdpZiIgd2lkdGg9IjYwMCIgaGVpZ2h0PSIxMDUiPjwvdGQ+PC90cj48L3RyPjx0cj48dGQg
    d2lkdGg9IjYwMCIgY29sc3Bhbj0iMiI+PGltZyBzcmM9ImNpZDp0bW9iaWxlc3BhY2UuZ2lmIiB3
    aWR0aD0iNjAwIiBoZWlnaHQ9IjQwIj48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+DQo8L2h0bWw+

    ---boundaryRMS123
    Content-ID:0
    Content-Type:text/plain;Charset="us-ascii"
    Content-Disposition:Attachment;Filename="text_0.txt";Charset="us-ascii"
    Content-Location:text_0.txt

    One last try
    ---boundaryRMS123
    Content-Type: image/gif; name=tmobilespace.gif
    Content-ID:
    Content-Disposition: inline; filename=tmobilespace.gif
    Content-Transfer-Encoding:base64

    R0lGODlhAQABAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8AAAMzMAADMAMwAzMxYW
    FhwcHCIiIikpKVVVVU1NTUJCQjk5Of98gP9QUNYAk8zs/+/Wxufn1q2pkDP/AGYAAJkAAMwAAAAz
    ADMzAGYzAJkzAMwzAP8zAABmADNmAGZmAJlmAMxmAP9mAACZADOZAGaZAJmZAMyZAP+ZAADMADPM
    AGbMAJnMAMzMAP/MAGb/AJn/AMz/AAD/MzMA/2YAM5kAM8wAM/8AMwAz/zMzM2YzM5kzM8wzM/8z
    MwBmMzNmM2ZmM5lmM8xmM/9mMwCZMzOZM2aZM5mZM8yZM/+ZMwDMMzPMM2bMM5nMM8zMM//MMzP/
    M2b/M5n/M8z/M///MwAAZjMAZmYAZpkAZswAZv8AZgAzZjMzZmYzZpkzZswzZv8zZgBmZjNmZmZm
    ZplmZsxmZgCZZjOZZmaZZpmZZsyZZv+ZZgDMZjPMZpnMZszMZv/MZgD/ZjP/Zpn/Zsz/Zv8AzMwA
    /wCZmZkzmZkAmcwAmQAAmTMzmWYAmcwzmf8AmQBmmTNmmWYzmZlmmcxmmf8zmTOZmWaZmZmZmcyZ
    mf+ZmQDMmTPMmWbMZpnMmczMmf/MmQD/mTP/mWbMmZn/mcz/mf//mQAAzDMAmWYAzJkAzMwAzAAz
    mTMzzGYzzJkzzMwzzP8zzABmzDNmzGZmmZlmzMxmzP9mmQCZzDOZzGaZzJmZzMyZzP+ZzADMzDPM
    zGbMzJnMzMzMzP/MzAD/zDP/zGb/mZn/zMz/zP//zDMAzGYA/5kA/wAzzDMz/2Yz/5kz/8wz//8z
    /wBm/zNm/2ZmzJlm/8xm//9mzACZ/zOZ/2aZ/5mZ/8yZ//+Z/wDM/zPM/2bM/5nM/8zM///M/zP/
    /2b/zJn//8z///9mZmb/Zv//ZmZm//9m/2b//6UAIV9fX3d3d4aGhpaWlsvLy7KystfX193d3ePj
    4+rq6vHx8fj4+P/78KCgpICAgP8AAAD/AP//AAAA//8A/wD//////ywAAAAAAQABAAAIBAD/BQQA
    Ow==
    ---boundaryRMS123
    Content-Type: image/gif; name=dottedline600.gif
    Content-ID:
    Content-Disposition: inline; filename=dottedline600.gif
    Content-Transfer-Encoding:base64

    R0lGODlhWAIBAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/
    /////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm
    AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/
    MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm
    ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/
    mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm
    zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/
    /5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ
    AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA
    M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ
    ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A
    mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z
    zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAABYAgEA
    AAhFAFP9+yeQ4MCCCA8qNMgwYcOFDiNCnPiwokSLFC9qzMgRo8eNHzuCHCmyZMiTJFGaTMlypUuV
    MFvGfCmzJs2bM3Pa9BgQADs=
    ---boundaryRMS123
    Content-Type:image/gif;Name="footer.gif"
    Content-ID:
    Content-Disposition:inline; filename=footer.gif
    Content-Transfer-Encoding:base64

    R0lGODlhWAJpANUAAOMhfq+vr9fX1/mUwP7K4PBcoISEheHh4bi4uPX19aOjpZmZmo+Pj8LCw3p6
    e+vr7Pyw0HBwcVpaW8zMzecxhvaGuP/x9//X5//l8O1OmPV4sOs/kGRkZfNqp/uhyP282P///wAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0
    IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4
    bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAg
    NjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpy
    ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRl
    c2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94
    YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
    ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIg
    eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTE4OEM2RDU3
    QzcwNzNBMDg5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUwOTMxNEYwQTZGRDExRTNCNDIz
    RjZGQjBFMURGOEYzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUwOTMxNEVGQTZGRDExRTNC
    NDIzRjZGQjBFMURGOEYzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFj
    aW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDI4
    MDExNzQwNzIwNjgxMTg4QzZENTdDNzA3M0EwODkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6
    MDE4MDExNzQwNzIwNjgxMTg4QzZENTdDNzA3M0EwODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwv
    cmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx
    8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4
    t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/
    fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdG
    RURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4N
    DAsKCQgHBgUEAwIBAAAh+QQAAAAAACwAAAAAWAJpAAAG/0CQcEgsGo/IpHLJbDqf0Kh0Sq1ar9is
    dsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaX
    mJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q
    0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMI
    EypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rc
    ybOnz/+fQIMKTYiBgNGjSJMSGMoUUAEAUKNKnQpAC4EBWLFeOHI164ClSyBg1VAh7IAPQ7IWgNCU
    5VOoHdBGJXBhAIWoWiC8harhSAepGdguqbABagElF6JaEFLgLoABbVe+FQxirpALjrlAiLrhiGMA
    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
    ---boundaryRMS123--

    [/mobile] [permanent link]

    07 Oct 2022


    I'm looking California and feeling Minnesota

    [/musings] [permanent link]

    29 Dec 2021

    Fireside Chat


    Tonight I signed up for the Fireside beta. They asked for all my social media accounts to prove I'm a human. The problem is, I don't have a twitter account, a facebook account, instagram, etc. Years ago I took the advice of numerous psychology studies and my own therapist's advice and got off the social media platforms. It was one of the best things I've ever done for my mental health.

    So hopefully this blog, though infrequently updated (and slightly broken since the last major perl update), will serve as proof to the people at Fireside that I am human and not a bot.

    It was the Astonishing Legends Podcast that led me to Fireside. It would be nice to use it for one of their interactive live chats sometime.

    [/musings] [permanent link]

    07 May 2020

    Bill Gates is Satan's Minion
    Bill Gates was Satan's minion, is Satan's minion, and always will be Satan's minion.

    [/musings] [permanent link]

    13 Mar 2018

    Tenth Runniversary
    Today is my tenth runniversary. It's been a decade since I first stepped on that treadmill. Like my first day running, I ran on the treadmill while listening to br\oken. I've had some set backs in my recovery. Not properly rehabilitating the atrophy in the left leg has caused some problems with the muscles around my hip. Listening to my trainer only made it worse. But now I'm taking care of it properly. Like that first day ten years ago, I have a goal I am working toward. This time it is the Dublin Marathon in October. This will be marathon number 13. I don't expect to PR. I think 10 minute miles are a much more reasonable goal at this point, but frankly I'll be happy just to cross that finish line. It's been a long, hard road out of Hell, but God has been by my side and put some amazing people in my life to help me along the way. I have to thank the Giraffes for today. I have to thank the Giraffes for much of my life this last decade. I was heading for an early grave, and they changed that. Giraffes, I thank you from the bottom of my heart and I look forward to running the LTC and many other races with you in the next decade.

    [/running] [permanent link]

    12 Mar 2018

    Take back your privacy
    Recent surveys have found that 76% of [the most visited] websites in the world cotain trackers from google and 24% contain trackers from facebook. This has been reported by CNBC, PC World, The Verge, Fortune, and Breitbart.

    Almost anywhere you go on the internet, they are following you, building a profile on you, and selling that information, your information, to the highest bidder. Even if you don't have a user account for google or facebook "services," they've built a profile of you using this surreptitiously collected data.

    It turns out there are some steps one can take to prevent these companies from following you wherever you go. It's not perfect, but it helps a lot. First, don't use Chrome. Second, install ad-blocker plugins for your browser. Third, use your firewall.

    It turns out Google and Facebook are large enough that they have their own Autonomous Systems (AS) composed of numerous subnets. Google owns AS 15169, while Facebook owns AS 32934. Using a little bit of shell, it's relatively easy to look up all the subnets owned by these companies.

    whois -h whois.radb.net -- '-i origin AS32934' | grep "^route:" | awk '{print $2;}'
    whois -h whois.radb.net -- '-i origin AS15169' | grep "^route:" | awk '{print $2;}'


    That's a lot of subnets. Because I have different operating systems on different computers and still want to block traffic to and from all those IP addresses, I've written some simple scripts to add rules to various firewalls. I have scripts for IPFW on FreeBSD, IPTables on Linux, and the Windows Firewall that should work from XP SP3 through Windows 10. I've only tested it on Windows 7 and Windows 10, and it worked in those.

    All of these scripts can be found in this directory. The IPFW and IPTables scripts are self-contained. For the Windows command shell batch files, the *ips.txt files are also needed.

    I have to say, the internet looks very different with these firewall rules in place. There are noticeably fewer advertisements and pages load faster. Embedded YouTube videos and Instagram photos don't appear. Sometimes the frame disappears, sometimes you get a "failed to connect" page appearing in a frame in the middle of a page. (Yes, these rules block YouTube and Instagram; they are owned by google and facebook and reside in the subnets owned by those companies.) On a relatively rare occasion, I come across a site using some sort of javascript or css or something hosted by a machine in one of those ASs and that will be blocked. Sometimes the site handles that gracefully, sometimes it stops being functional. A small price to take back your life.

    Update: Twitter has trackers on a decent amount of sites out there too, so I've added scripts to block Twitter's AS 13414 as well. Those scripts are in the same directories as the others.

    [/musings] [permanent link]

    17 Oct 2017

    St Michael, defend us in battle
    Crisis Magazine has a great piece about St Michael and the ongoing spiritual warfare in the world.

    [/musings] [permanent link]

    12 Oct 2017

    New PGP Key!
    So apparently Evil32 happened. Approximately 24,000 PGP keys were generated that had collisions with the 32-bit short IDs of existing keys. Then someone decided to use those conflicting keys to generate revocation certificates and upload them to the keyservers. Joy.

    Though my old keys still work, they were affected by this mass revocation of collsions. I have created a new key which can be found at http://skinnymf.com/~mforde/mforde.asc.

    On a related note, if anyone is interested in Key Signing Party, shoot me an email. I haven't been to one of those since college.

    [/musings] [permanent link]

    30 Sep 2017

    Time Travel?
    A few months ago I happened to snap a photo of the DeLorean on Main Street in Boonton near the Darress Theatre. It's probably one of my favorite photographs of the car and certainly one of the best I've ever taken.
    The theatre was built in 1919 and has remained largely unchanged since then. A lot of Boonton still has a very old "look and feel" to it, and this section of Main Street served as a perfect backdrop for the DeLorean.

    DeLorean DMC-12 Darress
Theatre Boonton

    [/dmc] [permanent link]

    24 Aug 2017

    How to Drive a Classic Rolls-Royce, or a DeLorean, Any Time You Want
    Bloomberg has posted an article entitled How to Drive a Classic Rolls-Royce, or a DeLorean, Any Time You Want. It's really quite simple, actually. You take your keys, go out the the garage, and you drive the DeLorean any time you want.

    [/dmc] [permanent link]

    16 Aug 2017

    Sometimes...
    Sometimes it's dificult to find a reason to continue.

    [/musings/self] [permanent link]

    14 Mar 2017

    Ninth Runniversary
    Yesterday was my ninth runniversary. Like my first day running, I ran on the treadmill while listening to Broken. Unlike the first time, I only listened to it once, and covered 4.48 miles during the duration of the EP, thanking God every step of the way.

    I'm confident in knowing that the bone in my ankle has healed completely now; however, I'm still rebuilding the muscle in that ankle and the rest of that leg. There was significant atrophy during the early phases of recovery. Slowly as it may be, I am making progress, and I am thankful for that.

    [/running] [permanent link]

    24 Dec 2016

    Merry Christmas
    While the holidays are supposed to be a joyous time, I know and understand how hard they can be for some people. If you're having a rough time over the next week or so and need someone to talk to, feel free to message me. If you're reading this blog, you likely know my email address or phone number.

    [/musings] [permanent link]

    28 Oct 2016

    Aisling at 35
    She's still looking good at 35....
    DeLorean DMC-12 with
gullwing doors open

    [/dmc] [permanent link]

    02 Oct 2016

    Happy Birthday Aisling!!!!
    My DeLorean, #5333, was built in October of 1981. This month, the car will be 35 years old and she looks and handles like the day she came off the assembly line.

    [/dmc] [permanent link]

    26 Sep 2016

    Don't Call it a Comeback
    On June fourth, I was running in the Tourne on a trail I first ran twenty years ago, a trail I've run hundreds if not thousands of times before. On that morning, my foot came down on a wet rock at just the wrong angle, slipped just enough and I rolled my ankle. Not only did I roll the joint, I came down on it with enough force to break it; a fact I would learn when I final saw a doctor about it on June ninth.

    No surgery was required, but I was unable to run for three months. I was finally cleared to run. The plan was to start with short distances, about a quarter mile, on a rubberized track then build up from there, moving on to treadmills and eventually roads and trails. I was instructed to spend six months rebuilding my 60 mile per week base.

    On the morning of September 11 (a day I will never forget and a morning that will always make me feel a bit uneasy), I took to the track for the first time. I started by walking a mile. As I finished the fourth lap, I said a prayer, asking God to give me the run I needed and the wisdom to know when to stop. I queued up my playlist: AC\DC's "Back in Black" and LL Cool J's "Mama Said Knock You Out." I took my first stride.

    I've been progressing well in the last two weeks; pushing it on some days, resting when necessary. Though the short, slow distances have been frustrating, it feel good to be running again. Every stride I take I'm reminded of everything I love about the sport.

    It's good to be back.

    [/running] [permanent link]

    18 Sep 2016

    Fun Conversations
    The DeLorean often leads to conversations one wouldn't normally expect. Case in point: today I had to call my auto insurance provider for an issue with my daily driver. After taking some info to pull up my account the conversation went something like this:

    Agent: Which car is this?
    Me: The Pontiac.
    Agent: Am I reading this right?
    Me: Reading what?
    Agent: I'm sorry, do you have a DeLorean?
    Me: Yes.
    Agent: I never thought I'd see someone with a policy on a DeLorean.
    Me: Well, you've insured both of mine...
    Agent: You've had two DeLoreans?
    Me: Yes.

    At that point there were a few more questions and then we got back to the issue which my phone call had been about originally.

    [/dmc] [permanent link]

    24 Aug 2016

    An Observation
    There is something satisfying about driving in a DeLorean while listening to The Clash's Live: From Here to Eternity.

    [/dmc] [permanent link]

    13 Aug 2016

    What Year is This?!
    So this was my Saturday night....
    A bottle of Crystal Pepsi with Metallica's Ride the Lightning and
Joy Division's Unknown Pleasures vinyl records sitting on the hood of a
DeLorean Joy Division's Unknown Pleasures on a record player

    [/musings] [permanent link]

    09 Aug 2016

    He's Not Wrong...
    Over at Net Meister there's a nice peice entitled Things They Don't Teach You in School". A lot of what Jan has to say is spot-on observation and good advice.

    It's definitely worth a read.

    [/code] [permanent link]

    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]

    08 Jun 2016

    Megapath sucks
    Speakeasy was by far the best ISP I ever dealt with. Freindly, and above all, knowledgeable. Since they have been purchased by Megapath then merged into Global Capacity, their tech support has been, frankly a bunch of idiots. Furthermore, their website routinely has "Service failed" errors that prevent you from logging in, changing passwords, and viewing account information.

    Today, after being unable to log in to the website due to "service failed" the tech support rep on the phoned didn't understand what a subnet mask or gateway address were. Eventually I just got her to read me "all three IP addresses" on the screen in front of her.

    But at this point my only other option is Verizon. So I'm sticking with Megapath.

    [/musings] [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.

  •        
    15 Dec 2023

    1702672835
    ---boundaryRMS123
    Content-ID:<0000>
    Content-Type:text/html
    Content-Disposition:inline
    Content-Transfer-Encoding:base64

    PGh0bWw+PGhlYWQ+PHRpdGxlPlQtTW9iaWxlPC90aXRsZT48L2hlYWQ+PGJvZHkgbWFyZ2lud2lk
    dGg9IjAiIG1hcmdpbmhlaWdodD0iMCIgbGVmdG1hcmdpbj0iMCIgdG9wbWFyZ2luPSIwIiBiZ2Nv
    bG9yPSIjZmZmZmZmIj48dGFibGUgYm9yZGVyPSIwIiB3aWR0aD0iNjAwIiBjZWxsc3BhY2luZz0i
    MCIgY2VsbHBhZGRpbmc9IjAiPjx0cj4KCQkJCSAgICAgPHRkIHdpZHRoPSI2MDAiIGNvbHNwYW49
    IjIiPjxpbWcgc3JjPSJjaWQ6ZG90dGVkbGluZTYwMC5naWYiIHdpZHRoPSI2MDAiPjwvdGQ+CgkJ
    CQkgICAgIDwvdHI+PGJyPjx0cj48dGQgd2lkdGg9IjYwMCIgY29sc3Bhbj0iMiI+PGltZyBzcmM9
    ImNpZDp0bW9iaWxlc3BhY2UuZ2lmIiB3aWR0aD0iNjAwIiBoZWlnaHQ9IjIwIj48L3RkPjwvdHI+
    PHRyPjx0cj48dGQgY29sc3Bhbj0iMSIgYWxpZ249ImxlZnQiPk9uZSBsYXN0IHRyeSA8L3RkPjwv
    dHI+IDxUUj4KICAgICAgICAgICAgICAgIDxURCB3aWR0aD0zNTAgY29sU3Bhbj0xPgogICAgICAg
    ICAgICAgICAgPElNRyBzcmM9ImNpZDp0bW9iaWxlc3BhY2UuZ2lmIiB3aWR0aD0iMzUwIiBoZWln
    aHQ9IjMwIj4KICAgICAgICAgICAgICAgIDwvVEQ+CiAgICAgICAgICAgICAgICA8L1RSPgogICAg
    ICAgICAgICAgICAgPFRSPgogICAgICAgICAgICAgICAgPC9UUj4KICAgICAgICAgICAgICAgIDx0
    ZCB3aWR0aD0iMjQwIiBiZ2NvbG9yPSIjZjJmMmYyIj4mbmJzcDs8L3RkPgogICAgICAgICAgICAg
    ICAgPC90cj48dHI+PHRkIHdpZHRoPSI2MDAiIGNvbHNwYW49IjIiPjxpbWcgc3JjPSJjaWQ6Zm9v
    dGVyLmdpZiIgd2lkdGg9IjYwMCIgaGVpZ2h0PSIxMDUiPjwvdGQ+PC90cj48L3RyPjx0cj48dGQg
    d2lkdGg9IjYwMCIgY29sc3Bhbj0iMiI+PGltZyBzcmM9ImNpZDp0bW9iaWxlc3BhY2UuZ2lmIiB3
    aWR0aD0iNjAwIiBoZWlnaHQ9IjQwIj48L3RkPjwvdHI+PC90YWJsZT48L2JvZHk+DQo8L2h0bWw+

    ---boundaryRMS123
    Content-ID:0
    Content-Type:text/plain;Charset="us-ascii"
    Content-Disposition:Attachment;Filename="text_0.txt";Charset="us-ascii"
    Content-Location:text_0.txt

    One last try
    ---boundaryRMS123
    Content-Type: image/gif; name=tmobilespace.gif
    Content-ID:
    Content-Disposition: inline; filename=tmobilespace.gif
    Content-Transfer-Encoding:base64

    R0lGODlhAQABAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwMDcwKbK8AAAMzMAADMAMwAzMxYW
    FhwcHCIiIikpKVVVVU1NTUJCQjk5Of98gP9QUNYAk8zs/+/Wxufn1q2pkDP/AGYAAJkAAMwAAAAz
    ADMzAGYzAJkzAMwzAP8zAABmADNmAGZmAJlmAMxmAP9mAACZADOZAGaZAJmZAMyZAP+ZAADMADPM
    AGbMAJnMAMzMAP/MAGb/AJn/AMz/AAD/MzMA/2YAM5kAM8wAM/8AMwAz/zMzM2YzM5kzM8wzM/8z
    MwBmMzNmM2ZmM5lmM8xmM/9mMwCZMzOZM2aZM5mZM8yZM/+ZMwDMMzPMM2bMM5nMM8zMM//MMzP/
    M2b/M5n/M8z/M///MwAAZjMAZmYAZpkAZswAZv8AZgAzZjMzZmYzZpkzZswzZv8zZgBmZjNmZmZm
    ZplmZsxmZgCZZjOZZmaZZpmZZsyZZv+ZZgDMZjPMZpnMZszMZv/MZgD/ZjP/Zpn/Zsz/Zv8AzMwA
    /wCZmZkzmZkAmcwAmQAAmTMzmWYAmcwzmf8AmQBmmTNmmWYzmZlmmcxmmf8zmTOZmWaZmZmZmcyZ
    mf+ZmQDMmTPMmWbMZpnMmczMmf/MmQD/mTP/mWbMmZn/mcz/mf//mQAAzDMAmWYAzJkAzMwAzAAz
    mTMzzGYzzJkzzMwzzP8zzABmzDNmzGZmmZlmzMxmzP9mmQCZzDOZzGaZzJmZzMyZzP+ZzADMzDPM
    zGbMzJnMzMzMzP/MzAD/zDP/zGb/mZn/zMz/zP//zDMAzGYA/5kA/wAzzDMz/2Yz/5kz/8wz//8z
    /wBm/zNm/2ZmzJlm/8xm//9mzACZ/zOZ/2aZ/5mZ/8yZ//+Z/wDM/zPM/2bM/5nM/8zM///M/zP/
    /2b/zJn//8z///9mZmb/Zv//ZmZm//9m/2b//6UAIV9fX3d3d4aGhpaWlsvLy7KystfX193d3ePj
    4+rq6vHx8fj4+P/78KCgpICAgP8AAAD/AP//AAAA//8A/wD//////ywAAAAAAQABAAAIBAD/BQQA
    Ow==
    ---boundaryRMS123
    Content-Type: image/gif; name=dottedline600.gif
    Content-ID:
    Content-Disposition: inline; filename=dottedline600.gif
    Content-Transfer-Encoding:base64

    R0lGODlhWAIBAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/
    /////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm
    AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/
    MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm
    ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/
    mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm
    zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/
    /5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ
    AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA
    M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ
    ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A
    mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z
    zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///yH5BAEAABAALAAAAABYAgEA
    AAhFAFP9+yeQ4MCCCA8qNMgwYcOFDiNCnPiwokSLFC9qzMgRo8eNHzuCHCmyZMiTJFGaTMlypUuV
    MFvGfCmzJs2bM3Pa9BgQADs=
    ---boundaryRMS123
    Content-Type:image/gif;Name="footer.gif"
    Content-ID:
    Content-Disposition:inline; filename=footer.gif
    Content-Transfer-Encoding:base64

    R0lGODlhWAJpANUAAOMhfq+vr9fX1/mUwP7K4PBcoISEheHh4bi4uPX19aOjpZmZmo+Pj8LCw3p6
    e+vr7Pyw0HBwcVpaW8zMzecxhvaGuP/x9//X5//l8O1OmPV4sOs/kGRkZfNqp/uhyP282P///wAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0
    IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4
    bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAg
    NjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpy
    ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRl
    c2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94
    YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlw
    ZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIg
    eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTE4OEM2RDU3
    QzcwNzNBMDg5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUwOTMxNEYwQTZGRDExRTNCNDIz
    RjZGQjBFMURGOEYzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUwOTMxNEVGQTZGRDExRTNC
    NDIzRjZGQjBFMURGOEYzIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFj
    aW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDI4
    MDExNzQwNzIwNjgxMTg4QzZENTdDNzA3M0EwODkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6
    MDE4MDExNzQwNzIwNjgxMTg4QzZENTdDNzA3M0EwODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwv
    cmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx
    8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4
    t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/
    fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdG
    RURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4N
    DAsKCQgHBgUEAwIBAAAh+QQAAAAAACwAAAAAWAJpAAAG/0CQcEgsGo/IpHLJbDqf0Kh0Sq1ar9is
    dsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaX
    mJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q
    0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMI
    EypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rc
    ybOnz/+fQIMKTYiBgNGjSJMSGMoUUAEAUKNKnQpAC4EBWLFeOHI164ClSyBg1VAh7IAPQ7IWgNCU
    5VOoHdBGJXBhAIWoWiC8harhSAepGdguqbABagElF6JaEFLgLoABbVe+FQxirpALjrlAiLrhiGMA
    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
    ---boundaryRMS123--

    [/mobile] [permanent link]

    07 Oct 2022


    I'm looking California and feeling Minnesota

    [/musings] [permanent link]

    29 Dec 2021

    Fireside Chat


    Tonight I signed up for the Fireside beta. They asked for all my social media accounts to prove I'm a human. The problem is, I don't have a twitter account, a facebook account, instagram, etc. Years ago I took the advice of numerous psychology studies and my own therapist's advice and got off the social media platforms. It was one of the best things I've ever done for my mental health.

    So hopefully this blog, though infrequently updated (and slightly broken since the last major perl update), will serve as proof to the people at Fireside that I am human and not a bot.

    It was the Astonishing Legends Podcast that led me to Fireside. It would be nice to use it for one of their interactive live chats sometime.

    [/musings] [permanent link]

    07 May 2020

    Bill Gates is Satan's Minion
    Bill Gates was Satan's minion, is Satan's minion, and always will be Satan's minion.

    [/musings] [permanent link]

    13 Mar 2018

    Tenth Runniversary
    Today is my tenth runniversary. It's been a decade since I first stepped on that treadmill. Like my first day running, I ran on the treadmill while listening to br\oken. I've had some set backs in my recovery. Not properly rehabilitating the atrophy in the left leg has caused some problems with the muscles around my hip. Listening to my trainer only made it worse. But now I'm taking care of it properly. Like that first day ten years ago, I have a goal I am working toward. This time it is the Dublin Marathon in October. This will be marathon number 13. I don't expect to PR. I think 10 minute miles are a much more reasonable goal at this point, but frankly I'll be happy just to cross that finish line. It's been a long, hard road out of Hell, but God has been by my side and put some amazing people in my life to help me along the way. I have to thank the Giraffes for today. I have to thank the Giraffes for much of my life this last decade. I was heading for an early grave, and they changed that. Giraffes, I thank you from the bottom of my heart and I look forward to running the LTC and many other races with you in the next decade.

    [/running] [permanent link]

    12 Mar 2018

    Take back your privacy
    Recent surveys have found that 76% of [the most visited] websites in the world cotain trackers from google and 24% contain trackers from facebook. This has been reported by CNBC, PC World, The Verge, Fortune, and Breitbart.

    Almost anywhere you go on the internet, they are following you, building a profile on you, and selling that information, your information, to the highest bidder. Even if you don't have a user account for google or facebook "services," they've built a profile of you using this surreptitiously collected data.

    It turns out there are some steps one can take to prevent these companies from following you wherever you go. It's not perfect, but it helps a lot. First, don't use Chrome. Second, install ad-blocker plugins for your browser. Third, use your firewall.

    It turns out Google and Facebook are large enough that they have their own Autonomous Systems (AS) composed of numerous subnets. Google owns AS 15169, while Facebook owns AS 32934. Using a little bit of shell, it's relatively easy to look up all the subnets owned by these companies.

    whois -h whois.radb.net -- '-i origin AS32934' | grep "^route:" | awk '{print $2;}'
    whois -h whois.radb.net -- '-i origin AS15169' | grep "^route:" | awk '{print $2;}'


    That's a lot of subnets. Because I have different operating systems on different computers and still want to block traffic to and from all those IP addresses, I've written some simple scripts to add rules to various firewalls. I have scripts for IPFW on FreeBSD, IPTables on Linux, and the Windows Firewall that should work from XP SP3 through Windows 10. I've only tested it on Windows 7 and Windows 10, and it worked in those.

    All of these scripts can be found in this directory. The IPFW and IPTables scripts are self-contained. For the Windows command shell batch files, the *ips.txt files are also needed.

    I have to say, the internet looks very different with these firewall rules in place. There are noticeably fewer advertisements and pages load faster. Embedded YouTube videos and Instagram photos don't appear. Sometimes the frame disappears, sometimes you get a "failed to connect" page appearing in a frame in the middle of a page. (Yes, these rules block YouTube and Instagram; they are owned by google and facebook and reside in the subnets owned by those companies.) On a relatively rare occasion, I come across a site using some sort of javascript or css or something hosted by a machine in one of those ASs and that will be blocked. Sometimes the site handles that gracefully, sometimes it stops being functional. A small price to take back your life.

    Update: Twitter has trackers on a decent amount of sites out there too, so I've added scripts to block Twitter's AS 13414 as well. Those scripts are in the same directories as the others.

    [/musings] [permanent link]

    17 Oct 2017

    St Michael, defend us in battle
    Crisis Magazine has a great piece about St Michael and the ongoing spiritual warfare in the world.

    [/musings] [permanent link]

    12 Oct 2017

    New PGP Key!
    So apparently Evil32 happened. Approximately 24,000 PGP keys were generated that had collisions with the 32-bit short IDs of existing keys. Then someone decided to use those conflicting keys to generate revocation certificates and upload them to the keyservers. Joy.

    Though my old keys still work, they were affected by this mass revocation of collsions. I have created a new key which can be found at http://skinnymf.com/~mforde/mforde.asc.

    On a related note, if anyone is interested in Key Signing Party, shoot me an email. I haven't been to one of those since college.

    [/musings] [permanent link]

    30 Sep 2017

    Time Travel?
    A few months ago I happened to snap a photo of the DeLorean on Main Street in Boonton near the Darress Theatre. It's probably one of my favorite photographs of the car and certainly one of the best I've ever taken.
    The theatre was built in 1919 and has remained largely unchanged since then. A lot of Boonton still has a very old "look and feel" to it, and this section of Main Street served as a perfect backdrop for the DeLorean.

    DeLorean DMC-12 Darress
Theatre Boonton

    [/dmc] [permanent link]

    24 Aug 2017

    How to Drive a Classic Rolls-Royce, or a DeLorean, Any Time You Want
    Bloomberg has posted an article entitled How to Drive a Classic Rolls-Royce, or a DeLorean, Any Time You Want. It's really quite simple, actually. You take your keys, go out the the garage, and you drive the DeLorean any time you want.

    [/dmc] [permanent link]

    16 Aug 2017

    Sometimes...
    Sometimes it's dificult to find a reason to continue.

    [/musings/self] [permanent link]

    14 Mar 2017

    Ninth Runniversary
    Yesterday was my ninth runniversary. Like my first day running, I ran on the treadmill while listening to Broken. Unlike the first time, I only listened to it once, and covered 4.48 miles during the duration of the EP, thanking God every step of the way.

    I'm confident in knowing that the bone in my ankle has healed completely now; however, I'm still rebuilding the muscle in that ankle and the rest of that leg. There was significant atrophy during the early phases of recovery. Slowly as it may be, I am making progress, and I am thankful for that.

    [/running] [permanent link]

    24 Dec 2016

    Merry Christmas
    While the holidays are supposed to be a joyous time, I know and understand how hard they can be for some people. If you're having a rough time over the next week or so and need someone to talk to, feel free to message me. If you're reading this blog, you likely know my email address or phone number.

    [/musings] [permanent link]

    28 Oct 2016

    Aisling at 35
    She's still looking good at 35....
    DeLorean DMC-12 with
gullwing doors open

    [/dmc] [permanent link]

    02 Oct 2016

    Happy Birthday Aisling!!!!
    My DeLorean, #5333, was built in October of 1981. This month, the car will be 35 years old and she looks and handles like the day she came off the assembly line.

    [/dmc] [permanent link]

    26 Sep 2016

    Don't Call it a Comeback
    On June fourth, I was running in the Tourne on a trail I first ran twenty years ago, a trail I've run hundreds if not thousands of times before. On that morning, my foot came down on a wet rock at just the wrong angle, slipped just enough and I rolled my ankle. Not only did I roll the joint, I came down on it with enough force to break it; a fact I would learn when I final saw a doctor about it on June ninth.

    No surgery was required, but I was unable to run for three months. I was finally cleared to run. The plan was to start with short distances, about a quarter mile, on a rubberized track then build up from there, moving on to treadmills and eventually roads and trails. I was instructed to spend six months rebuilding my 60 mile per week base.

    On the morning of September 11 (a day I will never forget and a morning that will always make me feel a bit uneasy), I took to the track for the first time. I started by walking a mile. As I finished the fourth lap, I said a prayer, asking God to give me the run I needed and the wisdom to know when to stop. I queued up my playlist: AC\DC's "Back in Black" and LL Cool J's "Mama Said Knock You Out." I took my first stride.

    I've been progressing well in the last two weeks; pushing it on some days, resting when necessary. Though the short, slow distances have been frustrating, it feel good to be running again. Every stride I take I'm reminded of everything I love about the sport.

    It's good to be back.

    [/running] [permanent link]

    18 Sep 2016

    Fun Conversations
    The DeLorean often leads to conversations one wouldn't normally expect. Case in point: today I had to call my auto insurance provider for an issue with my daily driver. After taking some info to pull up my account the conversation went something like this:

    Agent: Which car is this?
    Me: The Pontiac.
    Agent: Am I reading this right?
    Me: Reading what?
    Agent: I'm sorry, do you have a DeLorean?
    Me: Yes.
    Agent: I never thought I'd see someone with a policy on a DeLorean.
    Me: Well, you've insured both of mine...
    Agent: You've had two DeLoreans?
    Me: Yes.

    At that point there were a few more questions and then we got back to the issue which my phone call had been about originally.

    [/dmc] [permanent link]

    24 Aug 2016

    An Observation
    There is something satisfying about driving in a DeLorean while listening to The Clash's Live: From Here to Eternity.

    [/dmc] [permanent link]

    13 Aug 2016

    What Year is This?!
    So this was my Saturday night....
    A bottle of Crystal Pepsi with Metallica's Ride the Lightning and
Joy Division's Unknown Pleasures vinyl records sitting on the hood of a
DeLorean Joy Division's Unknown Pleasures on a record player

    [/musings] [permanent link]

    09 Aug 2016

    He's Not Wrong...
    Over at Net Meister there's a nice peice entitled Things They Don't Teach You in School". A lot of what Jan has to say is spot-on observation and good advice.

    It's definitely worth a read.

    [/code] [permanent link]

    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]

    08 Jun 2016

    Megapath sucks
    Speakeasy was by far the best ISP I ever dealt with. Freindly, and above all, knowledgeable. Since they have been purchased by Megapath then merged into Global Capacity, their tech support has been, frankly a bunch of idiots. Furthermore, their website routinely has "Service failed" errors that prevent you from logging in, changing passwords, and viewing account information.

    Today, after being unable to log in to the website due to "service failed" the tech support rep on the phoned didn't understand what a subnet mask or gateway address were. Eventually I just got her to read me "all three IP addresses" on the screen in front of her.

    But at this point my only other option is Verizon. So I'm sticking with Megapath.

    [/musings] [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.

  •        
    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]