Six Years Later

Patrick Smith is a commercial airline pilot and writes a section for the New York Times Blog called Jet Lagged: Navigating the Unfriendly Skies.
Here’s an excerpt from his latest article, The Airport Security Follies.

From jetlagged.blogs.nytimes.com:

Conventional wisdom says the [9/11] terrorists exploited a weakness in airport security by smuggling aboard box-cutters. What they actually exploited was a weakness in our mindset – a set of presumptions based on the decades-long track record of hijackings.

In years past, a takeover meant hostage negotiations and standoffs; crews were trained in the concept of “passive resistance.” All of that changed forever the instant American Airlines Flight 11 collided with the north tower. What weapons the 19 men possessed mattered little; the success of their plan relied fundamentally on the element of surprise. And in this respect, their scheme was all but guaranteed not to fail.

For several reasons – particularly the awareness of passengers and crew – just the opposite is true today. Any hijacker would face a planeload of angry and frightened people ready to fight back. Say what you want of terrorists, they cannot afford to waste time and resources on schemes with a high probability of failure. And thus the September 11th template is all but useless to potential hijackers.

The entire article is a great read. The TSA is easily one of the greatest failures of America in the 21st Century, perhaps even greater than the war in Iraq. I suppose it’s fitting then that the TSA is now tied with the IRS for least popular government agency in America.

via Photo Matt and BoingBoing

Countdown Timer v2.0, Now with v2.01 goodness!

Update: There was a bug in the initial 2.0 version that required the plugin to have PHP5 or greater. This has now been fixed and it works with PHP4 and PHP5. Thanks to Jim Lynch for bug report.

Well, I finally managed to push Countdown Timer v2.0 out the door. It’s a bit later then I wanted, but it’s out and that’s all that matters for now. The biggest update for v2.0 is the ability to have the time automatically update using some Javascript. The idea for this has actually been around for a while and credit for it goes to Tobias (see: Ultimate Countdown Timer; 1-Up’d by a 14 Year Old). I was hoping I could use a lot of Tobias’ code, however I had changed a lot between then and now.

During the development phase, I wrote some code that basically took a look at what value the timer was at and then subtracted one second from that. Unfortunately, it quickly became clear that this method would not work. Because there are a variety of options in what units of time are displayed, screen scraping and then recalculating would have been pretty cumbersome. It also meant that I had two ways of calculating the time (the first way was the PHP-based fuzzyDate function I wrote, the second would have been this monstrosity). So I did what any code programmer does and copied myself. I converted the PHP-based fuzzyDate function into Javascript and then passed the needed values to the JS function. Voila!

In any event, here’s the changelog:

  • Updated plugin description line
  • Rearranged text in the installation notes to emphasize using the widget rather then the code
  • Fixed a bug that crashed the plugin if no dates were present (a PHP 5 problem??)
  • Implemented the ‘register_activation_hook’ function rather then the old way
  • Changed the way DB updates are handeled. Instead of having a specific update regimine for each version, the plugin will only update an option field if it doesn’t exist (if it exists, but is blank, it will NOT update…as it shouldn’t).
  • Updated fergcorp_countdownTimer_fuzzyDate with another variable so that the real target date is always known.
  • Removed code dealing with updates since WP 2.3 now does this automatically
  • Bug fix. Widget title isn’t saveable due to a programming error. Thanks to Michael Small for the catch.
  • Renamed some functions from afdn to fergcorp
  • Added JavaScript function for JS countdown
  • Tabbed $afdnOptions array to make it more readable
  • Fixed strtotime typo
  • Brought time display inline with current WordPress practice. This fixes the dreaded timezone glitch.
  • Strip non-sig zeros option added
  • Fixed bug where “No dates present” would _not_ show if the data was returned instead of echo’d
  • Renamed to $getOptions to $fergcorp_countdownTimer_getOptions to avoid clashing

Read more or download version 2.01!

Note: Comments moved and closed. Please leave future comments, questions, pleads for help, etc on the Countdown Timer page.

Countdown Timer v1.97 Technical Preview 2

It’s been many moons since I released the last technical preview of Countdown Timer 2.0. Honestly, things were stalled for a bit because I was busy with school and trying to figure out how I wanted to do what I wanted to do with the program.

The semester is over and I got it all figured out. So welcome to Countdown Timer version 1.97, better known as version 2.0 technical preview 2.

The Javascript that handles the updating of the countdown has been completely rewritten. I ended up scrapping what I had and then taking the PHP code I was already using and converted it to Javascript. This is the “elegant solution” I mentioned I was looking for earlier.

In terms of stability, everything seems fine; I am currently using this Technical Preview on AFdN. There are a couple known bugs that deal with stripping non significant digits and I haven’t fully tested the upgrade process. Other then that, everything is complete. I’m hoping to have 2.0 shipped before the New Year.

Go download it!

The Lanyard

by Billy Collins

The other day I was ricocheting slowly
off the blue walls of this room,
moving as if underwater from typewriter to piano,
from bookshelf to an envelope lying on the floor,
when I found myself in the L section of the dictionary
where my eyes fell upon the word lanyard.

No cookie nibbled by a French novelist
could send one into the past more suddenly–
a past where I sat at a workbench at a camp
by a deep Adirondack lake
learning how to braid long thin plastic strips
into a lanyard, a gift for my mother.

I had never seen anyone use a lanyard
or wear one, if that’s what you did with them,
but that did not keep me from crossing
strand over strand again and again
until I had made a boxy
red and white lanyard for my mother.

She gave me life and milk from her breasts,
and I gave her a lanyard.
She nursed me in many a sick room,
lifted spoons of medicine to my lips,
laid cold face-cloths on my forehead,
and then led me out into the airy light

and taught me to walk and swim,
and I, in turn, presented her with a lanyard.
Here are thousands of meals, she said,
and here is clothing and a good education.
And here is your lanyard, I replied,
which I made with a little help from a counselor.

Here is a breathing body and a beating heart,
strong legs, bones and teeth,
and two clear eyes to read the world, she whispered,
and here, I said, is the lanyard I made at camp.
And here, I wish to say to her now,
is a smaller gift–not the worn truth

that you can never repay your mother,
but the rueful admission that when she took
the two-tone lanyard from my hand,
I was as sure as a boy could be
that this useless, worthless thing I wove
out of boredom would be enough to make us even.

Editors Note: Merry Christmas!

2007 Year-End Zeitgeist

Google is publishing their Zeitgeist, so I thought I’d get mine done too.

Here are the top ten search key phrases for 20071:

  1. countdown timer
  2. andrew ferguson
  3. andrew
  4. posted
  5. wordpress countdown
  6. countdown timers
  7. blockquote cite
  8. count down timer
  9. wordpress countdown plugin
  10. boeing

Top five identified web crawlers for 20071:

  1. Yahoo Slurp
  2. MSNBot
  3. Googlebot
  4. Ask
  5. MSNBot-media

Top three identifiable operating systems for 2007:

  1. Windows 69.1%
  2. Macintosh 6.9%
  3. Linux 1.9%

Top seven identifiable Internet browsers for 2007:

  1. MS Internet Explorer 41.6 %
  2. Firefox 31.0%
  3. Mozilla 3.7%
  4. Safari 3.0%
  5. Opera 1.9%
  6. Netscape 0.7%
  7. Camino 0.2%

Bandwidth: 37.67 GB of data served
Page hits: 776,512
Average monthly views2: 7633

1 as measured by AWStats for the entire andrewferguson.net domain
2 as measured by WordPress.com on the andrewferguson.net blog only for the months of May to November

Final Grades

Grades for this semester are in. Drum roll please:

Fluid Mechanics: B
Digital Logic: A
Advanced Engineering Math: B
Information Systems: D
Engineering Circuit Analysis: B

GPA for this semester: 2.875
Cumulative GPA: 2.615

This brings me to 94.5 earned hours which officially makes me a senior. Three more semester left.

Back In Seattle

I’m back in Seattle for break.

I’m waaaay behind on email and RSS feeds, so I’m spending some time catching up on those. But I’m pretty free over break (I do actually have some awesome events I’m going to, but I can fit you in). I’ll be working on some writing stuff if I can get my act together (read as: if my brain will unknot itself).

Drop me a line: email (I read the new ones, I promise), txt, call, facebook, etc.

Circuits Final

I finished my circuits final on Sunday night at 9:30 pm. There are five problems are on the take home exam and it took me about 9 hours of work to get the entire thing done. That’s almost two hours per a problem. So much so that I decided to document my entire exam here for posterity.

So here it is: My Fall 2007 Engineering Circuit Analysis Take Home Final.

One note I would like to make. The last problem turned out to be very easy since there was an example in the book, almost. In the example, there was an extra resistor (R3) that connected to ground that is not present in the exam. However, I figured that if I put a resistor in there anyway and it’s resistance infinite, it would allow me to use the equations from the book. The Lazy Genius.