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.

  •        
    11 Jul 2009

    I Survived Julyapalooza!
    My friend had his annual Julyapalooza Barbecue in Brick today. This time I made it through the day without any near-death experiences!

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

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


       
    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.

  •        

       
    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.

  •        

       
    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 2013

    Thoughts on National Computer Science Education Week
    This week is apparently National Computer Science Education Week. Code.org is organizing the "hour of code" to promote teaching of Computer Science and Programming in schools. They're also organizing petitions to make CS courses count as credits in Mathematics or Science for High School graduation requirements.

    In High School, my CS courses were by far my favorites, Programming in Pascal, AP Comp Sci in Pascal, Programming in C++, and AP Comp Sci in C++ ( the language for the exam switched my junior year). I learned a lot about structured code, elegant, efficient code. I learned enough about Data Structures and Algorithms that I didn't have to study for my college CS classes until Computational Structures (Discrete Math II with Scheme, essentially) in my third semester. I had an amazing Computer Science teacher who also taught me Calculus and the proper order of precedence in life: God, Family, Math. I wouldn't be where I am today without that educational opportunity I had in High School. I want others to have that opportunity too.

    However, this is where I differ with the opinion of the Code.org folks. I do not believe that CS classes should count toward the Math or Science requirements. In this state, CS counts toward the "practical or performing art" requirements, I'm assuming under the "practical" label. I think this is a better place for it at the High School level.

    Computer Science is not a hard Science. It's not Physics. It's not Biology. It's not Chemistry. There's a saying that if the subject has science in its name, it's not really a science. That is true with Computer Science. It's not studying the how and why of atoms, of molecules, of living systems, of anything really. It's not science.

    Computer Science is really applied mathematics. I am very fortunate that the college program I went through was very strong in mathematics: Calc I and II, Linear (Matrix) Algebra, Discrete Math, Discrete Math II in the guise of Computational Structures, Probability and Statistics, Theory of Computation, Algorithmic Analysis... the list goes on. All of these mathematical foundations were then applied to a machine, to make the machine carry out a task in an efficient manner. It's those mathematical foundations that are the true core of Computer Science.

    While mathematics is the core of Computer Science and Computer Science is essentially applied mathematics, I do not believe it should count toward the Math requirements. The CS classes would likely detract from other mathematics courses such as Geometry, Trigonometry, and Calculus. These courses are far too important to an education to be replaced by a Computer Science course. Many, maybe even most, High School Computer Science courses focus more on "programming" than the fundamental mathematical theories. They will pick the language du jour and teach you the syntax and semantics. They'll teach about basic data structures like arrays, and linked lists. The AP exam currently focuses not on implementing lists, trees, stacks, queues, and sorting and searching algorithms, but on arrays and lists using Java library calls. This is not math. This is learning Java syntax.

    [/code] [permanent link]

    05 Nov 2013

    Normalcy
    I realized that if and when I have children, they will grow up thinking it's normal to have a DeLorean.

    [/dmc] [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]

    10 Oct 2013 05 Oct 2013

    1381017534
    Good night, demonslayers.

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

    [/mobile] [permanent link]

    1381006292
    --_CEEC49CB-DE1D-4A1E-9DFE-114E3B54D3CB_
    Content-Transfer-Encoding: quoted-printable
    Content-Type: text/plain; charset="Windows-1252"

    Test blog

    Sent from my Windows Phone=

    --_CEEC49CB-DE1D-4A1E-9DFE-114E3B54D3CB_
    Content-Transfer-Encoding: quoted-printable
    Content-Type: text/html; charset="Windows-1252"


    pe>


    Test blog R>
    Sent from my Windows Phone
    =

    --_CEEC49CB-DE1D-4A1E-9DFE-114E3B54D3CB_--

    [/mobile] [permanent link]

    1381005175
    Corning is a quaint little town. Looking forward to exploring.

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

    [/mobile] [permanent link]

    09 Aug 2013

    chafing...
    WARNING: possible TMI

    I thought I had healed from the chafing left after Saturday's River to Sea Relay... Until I ran in the rain yesterday. To quote a friend, "It feels like someone took a cheese grater to my crotch."

    [/running] [permanent link]

    22 Jul 2013

    Why do I run?
    So, why do I run? Here's one reason:


    [/running] [permanent link]

    15 Jul 2013

    Windows 8.1 in Virtual Box
    I was attempting to run the Windows 8.1 Preview in a VM using Sun's Oracle's Virtual Box on a Windows 7 host. I ran into a minor problem.

    The OS wouldn't boot. I received an error stating:

    Your computer needs to restart. Please hold down the power button. Error Code: 0x000000C4 Parameters: [redacted]

    Looking for the error code online led me to this article describing the issue and a fix. The key to fixing this was running the command:
    "c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "" VBoxInternal/CPUM/CMPXCHG16B 1

    The CMPXCHG16B is an instruction in 64-bit X86 processors that allows for atomic operations on octal words.

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

    18 Jun 2013

    Senator Elbert Guillory
    Elbert Guillory, a state senator in Louisiana, has switched his party affiliation from Democrat to Republican. This website has a short commentary on the matter, as well as an embedded video of Senator Guillory explaining his decision.

    [/politics] [permanent link]

    30 Apr 2013

    I LOL'ed

    PATIENT: "The problem is that obesity runs in my family."
    DOCTOR: "No, the problem is that no one runs in your family."

    [/running] [permanent link]

    02 Apr 2013